[INFO] cloning repository https://github.com/wenhaozhao/gb_simulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wenhaozhao/gb_simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwenhaozhao%2Fgb_simulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwenhaozhao%2Fgb_simulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8314221c2e08428d92253b3d002ca0291ca5dd4f
[INFO] testing wenhaozhao/gb_simulator against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwenhaozhao%2Fgb_simulator" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/wenhaozhao/gb_simulator on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/wenhaozhao/gb_simulator
[INFO] finished tweaking git repo https://github.com/wenhaozhao/gb_simulator
[INFO] tweaked toml for git repo https://github.com/wenhaozhao/gb_simulator written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/wenhaozhao/gb_simulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ddaec4091470e5bb40c35ed6e62c20c9fbaa1f0b92a8084bb13f42b1a4f5014f
[INFO] running `Command { std: "docker" "start" "-a" "ddaec4091470e5bb40c35ed6e62c20c9fbaa1f0b92a8084bb13f42b1a4f5014f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ddaec4091470e5bb40c35ed6e62c20c9fbaa1f0b92a8084bb13f42b1a4f5014f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ddaec4091470e5bb40c35ed6e62c20c9fbaa1f0b92a8084bb13f42b1a4f5014f", kill_on_drop: false }`
[INFO] [stdout] ddaec4091470e5bb40c35ed6e62c20c9fbaa1f0b92a8084bb13f42b1a4f5014f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8726f83643045015563569e7845ccc8bdbc1ed6a127719c63611d68112a69b1f
[INFO] running `Command { std: "docker" "start" "-a" "8726f83643045015563569e7845ccc8bdbc1ed6a127719c63611d68112a69b1f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.68
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling pkg-config v0.3.27
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling xml-rs v0.8.19
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling once_cell v1.18.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling smallvec v1.11.1
[INFO] [stderr]    Compiling downcast-rs v1.2.0
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling rustix v0.38.20
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling libloading v0.8.1
[INFO] [stderr]    Compiling scoped-tls v1.0.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.10
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling bitflags v2.4.1
[INFO] [stderr]    Compiling fastrand v2.0.1
[INFO] [stderr]    Compiling dlib v0.5.2
[INFO] [stderr]    Compiling cty v0.2.2
[INFO] [stderr]    Compiling raw-window-handle v0.4.3
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling nix v0.24.3
[INFO] [stderr]    Compiling minifb v0.25.0
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]    Compiling tempfile v3.8.0
[INFO] [stderr]    Compiling xcursor v0.3.4
[INFO] [stderr]    Compiling wayland-commons v0.29.5
[INFO] [stderr]    Compiling derive_more v0.99.17
[INFO] [stderr]    Compiling wayland-cursor v0.29.5
[INFO] [stderr]    Compiling gb_simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/cpu/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mmu::{Memory, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 156 -                 let n = match (opcode) {
[INFO] [stdout] 156 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -                 let n = match (opcode) {
[INFO] [stdout] 181 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 208 -                 let n = match (opcode) {
[INFO] [stdout] 208 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |         match (opcode & 0x0F) {
[INFO] [stdout]     |               ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         match (opcode & 0x0F) {
[INFO] [stdout] 238 +         match opcode & 0x0F {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let res = (val >> 1);
[INFO] [stdout]     |                   ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 280 -         let res = (val >> 1);
[INFO] [stdout] 280 +         let res = val >> 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefCell`
[INFO] [stdout]  --> src/mother_board.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/mother_board.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 99 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout] 100| |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] ...  |
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:99:32
[INFO] [stdout]    |
[INFO] [stdout] 99 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100| /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103| |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] ...  |
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] 106 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 106 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] 107 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 108 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 109 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:114:32
[INFO] [stdout]     |
[INFO] [stdout] 114 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 117 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 119 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:119:32
[INFO] [stdout]     |
[INFO] [stdout] 119 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 123 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 124 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 125 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 126 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:126:41
[INFO] [stdout]     |
[INFO] [stdout] 126 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 127 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 128 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:132:32
[INFO] [stdout]     |
[INFO] [stdout] 132 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 133 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 134 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:134:32
[INFO] [stdout]     |
[INFO] [stdout] 134 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 136 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:136:32
[INFO] [stdout]     |
[INFO] [stdout] 136 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |               0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 141 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 142 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 143 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:143:32
[INFO] [stdout]     |
[INFO] [stdout] 143 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 144 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:144:32
[INFO] [stdout]     |
[INFO] [stdout] 144 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 146 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:146:32
[INFO] [stdout]     |
[INFO] [stdout] 146 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 149 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 150 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 151 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:152:48
[INFO] [stdout]     |
[INFO] [stdout] 152 |               0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 153 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 154 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stdout] 157 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 172 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout] 173 | |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 173 | /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 174 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 174 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 175 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 176 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] 179 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:176:32
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 179 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] 180 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 180 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 181 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:181:32
[INFO] [stdout]     |
[INFO] [stdout] 181 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 182 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:182:32
[INFO] [stdout]     |
[INFO] [stdout] 182 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 183 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 184 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:184:32
[INFO] [stdout]     |
[INFO] [stdout] 184 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 185 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 186 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 187 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 188 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:188:32
[INFO] [stdout]     |
[INFO] [stdout] 188 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 189 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 190 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:190:32
[INFO] [stdout]     |
[INFO] [stdout] 190 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 191 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:191:32
[INFO] [stdout]     |
[INFO] [stdout] 191 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 192 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 193 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 194 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:194:32
[INFO] [stdout]     |
[INFO] [stdout] 194 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 195 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:195:32
[INFO] [stdout]     |
[INFO] [stdout] 195 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 196 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:196:32
[INFO] [stdout]     |
[INFO] [stdout] 196 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 197 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 198 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:198:32
[INFO] [stdout]     |
[INFO] [stdout] 198 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 199 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 200 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:200:32
[INFO] [stdout]     |
[INFO] [stdout] 200 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 201 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 202 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:202:32
[INFO] [stdout]     |
[INFO] [stdout] 202 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 203 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 204 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 205 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 206 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 208 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 209 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 210 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:210:32
[INFO] [stdout]     |
[INFO] [stdout] 210 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 211 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:211:32
[INFO] [stdout]     |
[INFO] [stdout] 211 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 212 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:212:32
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:213:48
[INFO] [stdout]     |
[INFO] [stdout] 213 |               0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 214 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:214:32
[INFO] [stdout]     |
[INFO] [stdout] 214 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 215 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 216 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 217 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 218 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 219 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 220 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 221 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:221:32
[INFO] [stdout]     |
[INFO] [stdout] 221 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 222 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:222:32
[INFO] [stdout]     |
[INFO] [stdout] 222 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 223 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:223:32
[INFO] [stdout]     |
[INFO] [stdout] 223 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 224 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:225:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |               0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 226 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 227 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 230 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:227:32
[INFO] [stdout]     |
[INFO] [stdout] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]  --> src/io_device/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/joypad.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |             self.matrix |= (*key as u8);
[INFO] [stdout]    |                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -             self.matrix |= (*key as u8);
[INFO] [stdout] 59 +             self.matrix |= *key as u8;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/io_device/interrupt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/interrupt.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout]    |                       ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout] 81 +         self.int_f |= 0x01 << (flag as u8);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::mmu::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefCPU` is never used
[INFO] [stdout]  --> src/cpu/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type RefCPU = Rc<RefCell<Box<dyn CPU>>>;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `memory`, `run`, and `info` are never used
[INFO] [stdout]   --> src/cpu/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait CPU {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 13 |
[INFO] [stdout] 14 |     fn run(&mut self);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_at` and `freq` are never read
[INFO] [stdout]   --> src/cpu/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CPUInfo {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 20 |     start_at: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     freq: u64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CPUInfo {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(freq: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl LR35902 {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 34 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `F` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Register {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     F,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Register` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Registers {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn new(gb_term: GBTerm) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClockStep` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ClockStep {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `now` are never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Clock {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl GPU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> GPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotherBoard` is never constructed
[INFO] [stdout]   --> src/mother_board.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MotherBoard {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `cpu`, and `start` are never used
[INFO] [stdout]   --> src/mother_board.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotherBoard {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(rom_path: String, ram_path: String, rtc_path: String) -> crate::Result<MotherBoard> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn start(&self) -> ! {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_ram` is never used
[INFO] [stdout]   --> src/mmu.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn new_ram<const CAP: usize>() -> RAM<CAP> where {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mmu.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl MMU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl Prohibited {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 264 |     pub fn new() -> Prohibited {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/io_device/joypad.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum JoypadKey {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 13 |     Right = 0b0001_0001,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     Left = 0b0001_0010,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 15 |     Up = 0b0001_0100,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 16 |     Down = 0b0001_1000,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 17 |     A = 0b0010_0001,
[INFO] [stdout]    |     ^
[INFO] [stdout] 18 |     B = 0b0010_0010,
[INFO] [stdout]    |     ^
[INFO] [stdout] 19 |     Select = 0b0010_0100,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 20 |     Start = 0b0010_1000,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JoypadKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/joypad.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Joypad {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 33 |     pub fn new(interrupt: RefInterrupt) -> RefJoypad {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_handler_fn` are never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Interrupt {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> RefInterrupt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK_SIZE` is never used
[INFO] [stdout]  --> src/io_device/video.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const BANK_SIZE: usize = 0x02;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/video.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Video {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Video {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/wram.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl WorkRam {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 18 |     pub fn new() -> WorkRam {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const HEADER_NINTENDO_LOGO_BASE: u16 = 0x0104;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const HEADER_NINTENDO_LOGO_END: u16 = 0x0133;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const HEADER_NINTENDO_LOGO_LEN: u16 = HEADER_NINTENDO_LOGO_END - HEADER_NINTENDO_LOGO_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NINTENDO_LOGO` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const NINTENDO_LOGO: [u8; HEADER_NINTENDO_LOGO_LEN as usize] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const HEADER_TITLE_BASE: u16 = 0x0134;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_GB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const HEADER_TITLE_END_GB: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_GB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const HEADER_TITLE_GB_LEN: u16 = HEADER_TITLE_END_GB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const HEADER_CGB_FLAG: u16 = 0x0143;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_COMPATIBLE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const CGB_FLAG_COMPATIBLE: u8 = 0x80;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_ONLY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const CGB_FLAG_ONLY: u8 = 0xC0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `None`, `Compatible`, and `CGBOnly` are never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum CGBFlag {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 58 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     Compatible,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 60 |     CGBOnly,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const HEADER_MANUFACTURER_CODE_BASE: u16 = 0x013F;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:68:7
[INFO] [stdout]    |
[INFO] [stdout] 68 | const HEADER_MANUFACTURER_CODE_END: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const HEADER_MANUFACTURER_CODE_LEN: u16 = HEADER_MANUFACTURER_CODE_END - HEADER_MANUFACTURER_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_CGB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:72:7
[INFO] [stdout]    |
[INFO] [stdout] 72 | const HEADER_TITLE_END_CGB: u16 = 0x013E;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_CGB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | const HEADER_TITLE_CGB_LEN: u16 = HEADER_TITLE_END_CGB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const HEADER_NEW_LICENSEE_CODE_BASE: u16 = 0x0144;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const HEADER_NEW_LICENSEE_CODE_END: u16 = 0x0145;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 | const HEADER_NEW_LICENSEE_CODE_LEN: u16 = HEADER_NEW_LICENSEE_CODE_END - HEADER_NEW_LICENSEE_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const HEADER_SGB_FLAG: u16 = 0x0146;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `None` and `Ok` are never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum SGBFlag {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 86 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 87 |     Ok,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CART_TYPE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:91:7
[INFO] [stdout]    |
[INFO] [stdout] 91 | const HEADER_CART_TYPE: u16 = 0x0147;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ROM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const HEADER_ROM_SIZE: u16 = 0x0148;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_RAM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const HEADER_RAM_SIZE: u16 = 0x0149;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESTINATION_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:100:7
[INFO] [stdout]     |
[INFO] [stdout] 100 | const HEADER_DESTINATION_CODE: u16 = 0x014A;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_OLD_LICENSEE_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:103:7
[INFO] [stdout]     |
[INFO] [stdout] 103 | const HEADER_OLD_LICENSEE_CODE: u16 = 0x014B;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MASK_ROM_VERSION_NUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const HEADER_MASK_ROM_VERSION_NUM: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:109:7
[INFO] [stdout]     |
[INFO] [stdout] 109 | const HEADER_CHECK_BASE: u16 = 0x0134;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:111:7
[INFO] [stdout]     |
[INFO] [stdout] 111 | const HEADER_CHECK_END: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const HEADER_CHECK_LEN: u16 = HEADER_CHECK_END - HEADER_CHECK_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECKSUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:115:7
[INFO] [stdout]     |
[INFO] [stdout] 115 | const HEADER_CHECKSUM: u16 = 0x014D;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:118:7
[INFO] [stdout]     |
[INFO] [stdout] 118 | const HEADER_GLOBAL_CHECKSUM_BASE: u16 = 0x014E;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const HEADER_GLOBAL_CHECKSUM_END: u16 = 0x014F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const HEADER_GLOBAL_CHECKSUM_LEN: u16 = HEADER_GLOBAL_CHECKSUM_END - HEADER_GLOBAL_CHECKSUM_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Rom {
[INFO] [stdout]     | -------- associated function in this implementation
[INFO] [stdout] 129 |     pub fn new(path: String) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, and `mem` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Ram {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 153 |     pub fn new<F>(path: String, size: usize, content_supplier: F) -> Result<Self>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn mem(&self) -> &Vec<u8> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_ROM_ONLY` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:195:7
[INFO] [stdout]     |
[INFO] [stdout] 195 | const CART_TYPE_ROM_ONLY: u8 = 0x00;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | struct RomOnly {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl RomOnly {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] 202 |     pub fn power_up(rom: Rom) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn new(rom: Rom) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub trait Cartridge: Memory {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] 232 |     fn rom(&self) -> &Rom;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 234 |     #[inline]
[INFO] [stdout] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn logo(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn manufacturer_code(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn cgb_flag(&self) -> CGBFlag {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn title_len(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn title(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn title_text(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn licensee_code(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     fn sgb_flag(&self) -> SGBFlag {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     fn cart_type(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn cart_type_text(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     fn rom_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     fn ram_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     fn destination_code(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     fn destination_code_text(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     fn mask_rom_version_number(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     fn header_checksum(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     fn global_checksum(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     fn info(&self) -> CartridgeInfo {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     fn check_logo(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     fn check_header(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `power_up` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:506:8
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub fn power_up(rom_path: String, ram_path: String, rtc_path: String) -> Result<RefCartridge> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MBC` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MBC: Memory {}
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC1: u8 = 0x01;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC1_RAM: u8 = 0x02;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC1_RAM_BATTERY: u8 = 0x03;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const RAM_BANK_COUNT: u8 = 0b0_11_00000 >> 5 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MBC1 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 31 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC2: u8 = 0x05;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC2_BATTERY: u8 = 0x06;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl MBC2 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC3_TIMER_BATTERY: u8 = 0x0F;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_RAM_BATTERY_2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC3_TIMER_RAM_BATTERY_2: u8 = 0x10;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC3: u8 = 0x11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC3_RAM_2: u8 = 0x12;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_BATTERY_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const CART_TYPE_MBC3_RAM_BATTERY_2: u8 = 0x13;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RTC {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 32 |     fn new(path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const RAM_BANK_COUNT: u8 = 0x03 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl MBC3 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 92 |     pub fn power_up(rom: Rom, ram_path: String, rtc_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn new(rom: Rom, ram_path: String, rtc_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC5: u8 = 0x19;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC5_RAM: u8 = 0x1A;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC5_RAM_BATTERY: u8 = 0x1B;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC5_RUMBLE: u8 = 0x1C;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC5_RUMBLE_RAM: u8 = 0x1D;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM_BATTERY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC5_RUMBLE_RAM_BATTERY: u8 = 0x1E;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RAM_BANK_COUNT: u8 = 0x0F - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MBC5 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 27 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 226 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.44s
[INFO] running `Command { std: "docker" "inspect" "8726f83643045015563569e7845ccc8bdbc1ed6a127719c63611d68112a69b1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8726f83643045015563569e7845ccc8bdbc1ed6a127719c63611d68112a69b1f", kill_on_drop: false }`
[INFO] [stdout] 8726f83643045015563569e7845ccc8bdbc1ed6a127719c63611d68112a69b1f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 397a9d333d4a221ee926763ad6a2b3662ddedf0044c3c9d03197fae108829160
[INFO] running `Command { std: "docker" "start" "-a" "397a9d333d4a221ee926763ad6a2b3662ddedf0044c3c9d03197fae108829160", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/cpu/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mmu::{Memory, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 156 -                 let n = match (opcode) {
[INFO] [stdout] 156 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -                 let n = match (opcode) {
[INFO] [stdout] 181 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 208 -                 let n = match (opcode) {
[INFO] [stdout] 208 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |         match (opcode & 0x0F) {
[INFO] [stdout]     |               ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         match (opcode & 0x0F) {
[INFO] [stdout] 238 +         match opcode & 0x0F {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let res = (val >> 1);
[INFO] [stdout]     |                   ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 280 -         let res = (val >> 1);
[INFO] [stdout] 280 +         let res = val >> 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefCell`
[INFO] [stdout]  --> src/mother_board.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/mother_board.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 99 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout] 100| |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] ...  |
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:99:32
[INFO] [stdout]    |
[INFO] [stdout] 99 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100| /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103| |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] ...  |
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] 106 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 106 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] 107 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 108 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 109 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:114:32
[INFO] [stdout]     |
[INFO] [stdout] 114 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 117 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 119 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:119:32
[INFO] [stdout]     |
[INFO] [stdout] 119 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 123 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 124 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 125 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 126 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:126:41
[INFO] [stdout]     |
[INFO] [stdout] 126 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 127 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 128 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:132:32
[INFO] [stdout]     |
[INFO] [stdout] 132 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 133 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 134 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:134:32
[INFO] [stdout]     |
[INFO] [stdout] 134 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 136 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:136:32
[INFO] [stdout]     |
[INFO] [stdout] 136 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |               0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 141 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 142 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 143 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:143:32
[INFO] [stdout]     |
[INFO] [stdout] 143 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 144 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:144:32
[INFO] [stdout]     |
[INFO] [stdout] 144 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 146 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:146:32
[INFO] [stdout]     |
[INFO] [stdout] 146 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 149 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 150 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 151 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:152:48
[INFO] [stdout]     |
[INFO] [stdout] 152 |               0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 153 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 154 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stdout] 157 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 172 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout] 173 | |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 173 | /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 174 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 174 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 175 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 176 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] 179 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:176:32
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 179 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] 180 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 180 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 181 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:181:32
[INFO] [stdout]     |
[INFO] [stdout] 181 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 182 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:182:32
[INFO] [stdout]     |
[INFO] [stdout] 182 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 183 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 184 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:184:32
[INFO] [stdout]     |
[INFO] [stdout] 184 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 185 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 186 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 187 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 188 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:188:32
[INFO] [stdout]     |
[INFO] [stdout] 188 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 189 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 190 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:190:32
[INFO] [stdout]     |
[INFO] [stdout] 190 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 191 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:191:32
[INFO] [stdout]     |
[INFO] [stdout] 191 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 192 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 193 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 194 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:194:32
[INFO] [stdout]     |
[INFO] [stdout] 194 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 195 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:195:32
[INFO] [stdout]     |
[INFO] [stdout] 195 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 196 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:196:32
[INFO] [stdout]     |
[INFO] [stdout] 196 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 197 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 198 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:198:32
[INFO] [stdout]     |
[INFO] [stdout] 198 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 199 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 200 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:200:32
[INFO] [stdout]     |
[INFO] [stdout] 200 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 201 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 202 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:202:32
[INFO] [stdout]     |
[INFO] [stdout] 202 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 203 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 204 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 205 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 206 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 208 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 209 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 210 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:210:32
[INFO] [stdout]     |
[INFO] [stdout] 210 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 211 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:211:32
[INFO] [stdout]     |
[INFO] [stdout] 211 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 212 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:212:32
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:213:48
[INFO] [stdout]     |
[INFO] [stdout] 213 |               0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 214 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:214:32
[INFO] [stdout]     |
[INFO] [stdout] 214 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 215 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 216 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 217 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 218 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 219 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 220 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 221 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:221:32
[INFO] [stdout]     |
[INFO] [stdout] 221 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 222 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:222:32
[INFO] [stdout]     |
[INFO] [stdout] 222 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 223 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:223:32
[INFO] [stdout]     |
[INFO] [stdout] 223 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 224 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:225:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |               0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 226 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 227 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 230 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:227:32
[INFO] [stdout]     |
[INFO] [stdout] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]  --> src/io_device/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/joypad.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |             self.matrix |= (*key as u8);
[INFO] [stdout]    |                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -             self.matrix |= (*key as u8);
[INFO] [stdout] 59 +             self.matrix |= *key as u8;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/io_device/interrupt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/interrupt.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout]    |                       ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout] 81 +         self.int_f |= 0x01 << (flag as u8);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::mmu::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RefCPU` is never used
[INFO] [stdout]  --> src/cpu/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type RefCPU = Rc<RefCell<Box<dyn CPU>>>;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `memory`, `run`, and `info` are never used
[INFO] [stdout]   --> src/cpu/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait CPU {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 13 |
[INFO] [stdout] 14 |     fn run(&mut self);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 15 |
[INFO] [stdout] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_at` and `freq` are never read
[INFO] [stdout]   --> src/cpu/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CPUInfo {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 20 |     start_at: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     freq: u64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl CPUInfo {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 25 |     pub fn new(freq: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl LR35902 {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 34 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `F` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum Register {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     F,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Register` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cpu/lr35902/registers.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Registers {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn new(gb_term: GBTerm) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClockStep` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ClockStep {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `now` are never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Clock {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl GPU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> GPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MotherBoard` is never constructed
[INFO] [stdout]   --> src/mother_board.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MotherBoard {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `cpu`, and `start` are never used
[INFO] [stdout]   --> src/mother_board.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotherBoard {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(rom_path: String, ram_path: String, rtc_path: String) -> crate::Result<MotherBoard> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn start(&self) -> ! {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_ram` is never used
[INFO] [stdout]   --> src/mmu.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn new_ram<const CAP: usize>() -> RAM<CAP> where {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mmu.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl MMU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 71 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl Prohibited {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 264 |     pub fn new() -> Prohibited {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/io_device/joypad.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum JoypadKey {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 13 |     Right = 0b0001_0001,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     Left = 0b0001_0010,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 15 |     Up = 0b0001_0100,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 16 |     Down = 0b0001_1000,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 17 |     A = 0b0010_0001,
[INFO] [stdout]    |     ^
[INFO] [stdout] 18 |     B = 0b0010_0010,
[INFO] [stdout]    |     ^
[INFO] [stdout] 19 |     Select = 0b0010_0100,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 20 |     Start = 0b0010_1000,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JoypadKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/joypad.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Joypad {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 33 |     pub fn new(interrupt: RefInterrupt) -> RefJoypad {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_handler_fn` are never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Interrupt {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> RefInterrupt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK_SIZE` is never used
[INFO] [stdout]  --> src/io_device/video.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const BANK_SIZE: usize = 0x02;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/video.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Video {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn new() -> Video {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/wram.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl WorkRam {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 18 |     pub fn new() -> WorkRam {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const HEADER_NINTENDO_LOGO_BASE: u16 = 0x0104;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const HEADER_NINTENDO_LOGO_END: u16 = 0x0133;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NINTENDO_LOGO_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const HEADER_NINTENDO_LOGO_LEN: u16 = HEADER_NINTENDO_LOGO_END - HEADER_NINTENDO_LOGO_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NINTENDO_LOGO` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const NINTENDO_LOGO: [u8; HEADER_NINTENDO_LOGO_LEN as usize] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const HEADER_TITLE_BASE: u16 = 0x0134;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_GB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const HEADER_TITLE_END_GB: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_GB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const HEADER_TITLE_GB_LEN: u16 = HEADER_TITLE_END_GB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const HEADER_CGB_FLAG: u16 = 0x0143;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_COMPATIBLE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const CGB_FLAG_COMPATIBLE: u8 = 0x80;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CGB_FLAG_ONLY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const CGB_FLAG_ONLY: u8 = 0xC0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `None`, `Compatible`, and `CGBOnly` are never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum CGBFlag {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 58 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     Compatible,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 60 |     CGBOnly,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const HEADER_MANUFACTURER_CODE_BASE: u16 = 0x013F;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:68:7
[INFO] [stdout]    |
[INFO] [stdout] 68 | const HEADER_MANUFACTURER_CODE_END: u16 = 0x0142;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MANUFACTURER_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const HEADER_MANUFACTURER_CODE_LEN: u16 = HEADER_MANUFACTURER_CODE_END - HEADER_MANUFACTURER_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_END_CGB` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:72:7
[INFO] [stdout]    |
[INFO] [stdout] 72 | const HEADER_TITLE_END_CGB: u16 = 0x013E;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TITLE_CGB_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:73:7
[INFO] [stdout]    |
[INFO] [stdout] 73 | const HEADER_TITLE_CGB_LEN: u16 = HEADER_TITLE_END_CGB - HEADER_TITLE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:76:7
[INFO] [stdout]    |
[INFO] [stdout] 76 | const HEADER_NEW_LICENSEE_CODE_BASE: u16 = 0x0144;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const HEADER_NEW_LICENSEE_CODE_END: u16 = 0x0145;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_NEW_LICENSEE_CODE_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:79:7
[INFO] [stdout]    |
[INFO] [stdout] 79 | const HEADER_NEW_LICENSEE_CODE_LEN: u16 = HEADER_NEW_LICENSEE_CODE_END - HEADER_NEW_LICENSEE_CODE_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SGB_FLAG` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:82:7
[INFO] [stdout]    |
[INFO] [stdout] 82 | const HEADER_SGB_FLAG: u16 = 0x0146;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `None` and `Ok` are never constructed
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum SGBFlag {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 86 |     None,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 87 |     Ok,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CART_TYPE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:91:7
[INFO] [stdout]    |
[INFO] [stdout] 91 | const HEADER_CART_TYPE: u16 = 0x0147;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ROM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const HEADER_ROM_SIZE: u16 = 0x0148;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_RAM_SIZE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const HEADER_RAM_SIZE: u16 = 0x0149;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_DESTINATION_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:100:7
[INFO] [stdout]     |
[INFO] [stdout] 100 | const HEADER_DESTINATION_CODE: u16 = 0x014A;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_OLD_LICENSEE_CODE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:103:7
[INFO] [stdout]     |
[INFO] [stdout] 103 | const HEADER_OLD_LICENSEE_CODE: u16 = 0x014B;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_MASK_ROM_VERSION_NUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:106:7
[INFO] [stdout]     |
[INFO] [stdout] 106 | const HEADER_MASK_ROM_VERSION_NUM: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:109:7
[INFO] [stdout]     |
[INFO] [stdout] 109 | const HEADER_CHECK_BASE: u16 = 0x0134;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:111:7
[INFO] [stdout]     |
[INFO] [stdout] 111 | const HEADER_CHECK_END: u16 = 0x14C;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECK_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const HEADER_CHECK_LEN: u16 = HEADER_CHECK_END - HEADER_CHECK_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_CHECKSUM` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:115:7
[INFO] [stdout]     |
[INFO] [stdout] 115 | const HEADER_CHECKSUM: u16 = 0x014D;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_BASE` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:118:7
[INFO] [stdout]     |
[INFO] [stdout] 118 | const HEADER_GLOBAL_CHECKSUM_BASE: u16 = 0x014E;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_END` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const HEADER_GLOBAL_CHECKSUM_END: u16 = 0x014F;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_GLOBAL_CHECKSUM_LEN` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | const HEADER_GLOBAL_CHECKSUM_LEN: u16 = HEADER_GLOBAL_CHECKSUM_END - HEADER_GLOBAL_CHECKSUM_BASE + 1;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Rom {
[INFO] [stdout]     | -------- associated function in this implementation
[INFO] [stdout] 129 |     pub fn new(path: String) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from`, and `mem` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Ram {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 153 |     pub fn new<F>(path: String, size: usize, content_supplier: F) -> Result<Self>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn mem(&self) -> &Vec<u8> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_ROM_ONLY` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:195:7
[INFO] [stdout]     |
[INFO] [stdout] 195 | const CART_TYPE_ROM_ONLY: u8 = 0x00;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | struct RomOnly {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | impl RomOnly {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] 202 |     pub fn power_up(rom: Rom) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn new(rom: Rom) -> Result<Self> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub trait Cartridge: Memory {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] 232 |     fn rom(&self) -> &Rom;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 234 |     #[inline]
[INFO] [stdout] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn logo(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn manufacturer_code(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn cgb_flag(&self) -> CGBFlag {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn title_len(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn title(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn title_text(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn licensee_code(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     fn sgb_flag(&self) -> SGBFlag {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     fn cart_type(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn cart_type_text(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     fn rom_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     fn ram_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     fn destination_code(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     fn destination_code_text(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     fn mask_rom_version_number(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     fn header_checksum(&self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     fn global_checksum(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     fn info(&self) -> CartridgeInfo {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     fn check_logo(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     fn check_header(&self) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `power_up` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:506:8
[INFO] [stdout]     |
[INFO] [stdout] 506 | pub fn power_up(rom_path: String, ram_path: String, rtc_path: String) -> Result<RefCartridge> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MBC` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MBC: Memory {}
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC1: u8 = 0x01;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC1_RAM: u8 = 0x02;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC1_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc1.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC1_RAM_BATTERY: u8 = 0x03;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const RAM_BANK_COUNT: u8 = 0b0_11_00000 >> 5 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc1.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MBC1 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 31 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC2: u8 = 0x05;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC2_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc2.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC2_BATTERY: u8 = 0x06;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl MBC2 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC3_TIMER_BATTERY: u8 = 0x0F;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_TIMER_RAM_BATTERY_2` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc3.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC3_TIMER_RAM_BATTERY_2: u8 = 0x10;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC3: u8 = 0x11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC3_RAM_2: u8 = 0x12;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC3_RAM_BATTERY_2` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const CART_TYPE_MBC3_RAM_BATTERY_2: u8 = 0x13;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RTC {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 32 |     fn new(path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:78:7
[INFO] [stdout]    |
[INFO] [stdout] 78 | const RAM_BANK_COUNT: u8 = 0x03 - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc3.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl MBC3 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 92 |     pub fn power_up(rom: Rom, ram_path: String, rtc_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn new(rom: Rom, ram_path: String, rtc_path: String) -> Result<Self> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CART_TYPE_MBC5: u8 = 0x19;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const CART_TYPE_MBC5_RAM: u8 = 0x1A;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RAM_BATTERY` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CART_TYPE_MBC5_RAM_BATTERY: u8 = 0x1B;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE` is never used
[INFO] [stdout]  --> src/io_device/cartridge/mbc/mbc5.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CART_TYPE_MBC5_RUMBLE: u8 = 0x1C;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CART_TYPE_MBC5_RUMBLE_RAM: u8 = 0x1D;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM_BATTERY` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const CART_TYPE_MBC5_RUMBLE_RAM_BATTERY: u8 = 0x1E;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RAM_BANK_COUNT: u8 = 0x0F - 0x00 + 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `power_up` and `new` are never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mbc5.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MBC5 {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 27 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 226 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gb_simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/cpu/mod.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mmu::{Memory, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 156 -                 let n = match (opcode) {
[INFO] [stdout] 156 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 181 -                 let n = match (opcode) {
[INFO] [stdout] 181 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 let n = match (opcode) {
[INFO] [stdout]     |                               ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 208 -                 let n = match (opcode) {
[INFO] [stdout] 208 +                 let n = match opcode {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |         match (opcode & 0x0F) {
[INFO] [stdout]     |               ^             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 238 -         match (opcode & 0x0F) {
[INFO] [stdout] 238 +         match opcode & 0x0F {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stdout]     |
[INFO] [stdout] 280 |         let res = (val >> 1);
[INFO] [stdout]     |                   ^        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 280 -         let res = (val >> 1);
[INFO] [stdout] 280 +         let res = val >> 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GBTerm`, `cpu`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{cpu, GBTerm};
[INFO] [stdout]   |             ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::io_device::cartridge`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::io_device::cartridge;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::MMU`
[INFO] [stdout]  --> src/tests/cpu_instrs.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::mmu::MMU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefCell`
[INFO] [stdout]  --> src/mother_board.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Ref, RefCell};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Memory`
[INFO] [stdout]  --> src/mother_board.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:98:32
[INFO] [stdout]    |
[INFO] [stdout] 98 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 99 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout] 100| |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] ...  |
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/mmu.rs:99:32
[INFO] [stdout]    |
[INFO] [stdout] 99 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100| /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103| |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] ...  |
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:100:32
[INFO] [stdout]     |
[INFO] [stdout] 100 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 102 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:101:32
[INFO] [stdout]     |
[INFO] [stdout] 101 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:102:32
[INFO] [stdout]     |
[INFO] [stdout] 102 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] 106 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stdout]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 106 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] 107 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:106:32
[INFO] [stdout]     |
[INFO] [stdout] 106 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:107:32
[INFO] [stdout]     |
[INFO] [stdout] 107 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 108 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:108:32
[INFO] [stdout]     |
[INFO] [stdout] 108 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 109 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:109:32
[INFO] [stdout]     |
[INFO] [stdout] 109 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:110:32
[INFO] [stdout]     |
[INFO] [stdout] 110 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:111:32
[INFO] [stdout]     |
[INFO] [stdout] 111 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:112:32
[INFO] [stdout]     |
[INFO] [stdout] 112 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 114 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:114:32
[INFO] [stdout]     |
[INFO] [stdout] 114 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 115 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:115:32
[INFO] [stdout]     |
[INFO] [stdout] 115 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:116:32
[INFO] [stdout]     |
[INFO] [stdout] 116 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 117 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 118 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:118:32
[INFO] [stdout]     |
[INFO] [stdout] 118 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 119 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:119:32
[INFO] [stdout]     |
[INFO] [stdout] 119 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:120:32
[INFO] [stdout]     |
[INFO] [stdout] 120 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:121:32
[INFO] [stdout]     |
[INFO] [stdout] 121 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:122:32
[INFO] [stdout]     |
[INFO] [stdout] 122 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:123:32
[INFO] [stdout]     |
[INFO] [stdout] 123 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 124 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:124:32
[INFO] [stdout]     |
[INFO] [stdout] 124 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 125 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:125:32
[INFO] [stdout]     |
[INFO] [stdout] 125 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 126 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:126:41
[INFO] [stdout]     |
[INFO] [stdout] 126 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 127 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 128 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 130 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:131:32
[INFO] [stdout]     |
[INFO] [stdout] 131 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:132:32
[INFO] [stdout]     |
[INFO] [stdout] 132 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 133 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 134 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:134:32
[INFO] [stdout]     |
[INFO] [stdout] 134 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:135:32
[INFO] [stdout]     |
[INFO] [stdout] 135 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 136 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:136:32
[INFO] [stdout]     |
[INFO] [stdout] 136 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 139 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:139:32
[INFO] [stdout]     |
[INFO] [stdout] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:140:45
[INFO] [stdout]     |
[INFO] [stdout] 140 |               0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 141 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:141:32
[INFO] [stdout]     |
[INFO] [stdout] 141 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 142 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 143 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:143:32
[INFO] [stdout]     |
[INFO] [stdout] 143 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 144 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:144:32
[INFO] [stdout]     |
[INFO] [stdout] 144 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 145 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:145:32
[INFO] [stdout]     |
[INFO] [stdout] 145 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 146 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:146:32
[INFO] [stdout]     |
[INFO] [stdout] 146 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 147 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:147:32
[INFO] [stdout]     |
[INFO] [stdout] 147 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 148 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 149 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:149:32
[INFO] [stdout]     |
[INFO] [stdout] 149 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 150 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 151 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:152:48
[INFO] [stdout]     |
[INFO] [stdout] 152 |               0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 153 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:153:32
[INFO] [stdout]     |
[INFO] [stdout] 153 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 154 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stdout] 157 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:154:32
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stdout]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 172 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout] 173 | |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 173 | /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 174 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:174:32
[INFO] [stdout]     |
[INFO] [stdout] 174 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 175 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:175:32
[INFO] [stdout]     |
[INFO] [stdout] 175 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 176 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout] 179 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:176:32
[INFO] [stdout]     |
[INFO] [stdout] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:178:32
[INFO] [stdout]     |
[INFO] [stdout] 178 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 179 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout] 180 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 180 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 181 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:181:32
[INFO] [stdout]     |
[INFO] [stdout] 181 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 182 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:182:32
[INFO] [stdout]     |
[INFO] [stdout] 182 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 183 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:183:32
[INFO] [stdout]     |
[INFO] [stdout] 183 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 184 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:184:32
[INFO] [stdout]     |
[INFO] [stdout] 184 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 185 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:185:32
[INFO] [stdout]     |
[INFO] [stdout] 185 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 186 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:186:32
[INFO] [stdout]     |
[INFO] [stdout] 186 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 187 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:187:32
[INFO] [stdout]     |
[INFO] [stdout] 187 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 188 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:188:32
[INFO] [stdout]     |
[INFO] [stdout] 188 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 189 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:189:32
[INFO] [stdout]     |
[INFO] [stdout] 189 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 190 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:190:32
[INFO] [stdout]     |
[INFO] [stdout] 190 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 191 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:191:32
[INFO] [stdout]     |
[INFO] [stdout] 191 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 192 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:192:32
[INFO] [stdout]     |
[INFO] [stdout] 192 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 193 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:193:32
[INFO] [stdout]     |
[INFO] [stdout] 193 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 194 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:194:32
[INFO] [stdout]     |
[INFO] [stdout] 194 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 195 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:195:32
[INFO] [stdout]     |
[INFO] [stdout] 195 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 196 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:196:32
[INFO] [stdout]     |
[INFO] [stdout] 196 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 197 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:197:32
[INFO] [stdout]     |
[INFO] [stdout] 197 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 198 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:198:32
[INFO] [stdout]     |
[INFO] [stdout] 198 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 199 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:199:41
[INFO] [stdout]     |
[INFO] [stdout] 199 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 200 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:200:32
[INFO] [stdout]     |
[INFO] [stdout] 200 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 201 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:201:32
[INFO] [stdout]     |
[INFO] [stdout] 201 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 202 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:202:32
[INFO] [stdout]     |
[INFO] [stdout] 202 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 203 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:203:32
[INFO] [stdout]     |
[INFO] [stdout] 203 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 204 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:204:32
[INFO] [stdout]     |
[INFO] [stdout] 204 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 205 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:205:32
[INFO] [stdout]     |
[INFO] [stdout] 205 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 206 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:206:32
[INFO] [stdout]     |
[INFO] [stdout] 206 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:207:32
[INFO] [stdout]     |
[INFO] [stdout] 207 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 208 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 209 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:209:32
[INFO] [stdout]     |
[INFO] [stdout] 209 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 210 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:210:32
[INFO] [stdout]     |
[INFO] [stdout] 210 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 211 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:211:32
[INFO] [stdout]     |
[INFO] [stdout] 211 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 212 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:212:32
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:213:48
[INFO] [stdout]     |
[INFO] [stdout] 213 |               0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 214 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:214:32
[INFO] [stdout]     |
[INFO] [stdout] 214 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 215 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:215:32
[INFO] [stdout]     |
[INFO] [stdout] 215 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 216 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:216:32
[INFO] [stdout]     |
[INFO] [stdout] 216 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 217 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 218 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 219 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 220 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:220:32
[INFO] [stdout]     |
[INFO] [stdout] 220 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 221 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:221:32
[INFO] [stdout]     |
[INFO] [stdout] 221 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 222 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:222:32
[INFO] [stdout]     |
[INFO] [stdout] 222 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 223 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:223:32
[INFO] [stdout]     |
[INFO] [stdout] 223 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 224 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:224:32
[INFO] [stdout]     |
[INFO] [stdout] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:225:51
[INFO] [stdout]     |
[INFO] [stdout] 225 |               0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:226:32
[INFO] [stdout]     |
[INFO] [stdout] 226 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 227 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stdout] 230 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stdout] ...   |
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/mmu.rs:227:32
[INFO] [stdout]     |
[INFO] [stdout] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stdout]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]  --> src/io_device/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::mmu::Memory;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/joypad.rs:59:28
[INFO] [stdout]    |
[INFO] [stdout] 59 |             self.matrix |= (*key as u8);
[INFO] [stdout]    |                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -             self.matrix |= (*key as u8);
[INFO] [stdout] 59 +             self.matrix |= *key as u8;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cpu::CPU`
[INFO] [stdout]  --> src/io_device/interrupt.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cpu::CPU;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/io_device/interrupt.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout]    |                       ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stdout] 81 +         self.int_f |= 0x01 << (flag as u8);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> src/tests/cpu_instrs.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[test]
[INFO] [stdout]    | ------- in this procedural macro expansion
[INFO] [stdout] 11 | fn test_cpu_instrs() -> ! {
[INFO] [stdout]    |                         ^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         unreachable call
[INFO] [stdout]    |                         any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the attribute macro `test` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mmu::Memory`
[INFO] [stdout]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::mmu::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tests/cpu_instrs.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut mb = MotherBoard::new(rom_path, ram_path, rtc_path).unwrap();
[INFO] [stdout]    |         ----^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `memory` and `info` are never used
[INFO] [stdout]   --> src/cpu/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait CPU {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_at` and `freq` are never read
[INFO] [stdout]   --> src/cpu/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct CPUInfo {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 20 |     start_at: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 21 |     freq: u64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_hi` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_lo` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_bit` is never used
[INFO] [stdout]   --> src/cpu/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClockStep` is never constructed
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ClockStep {}
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `now` is never used
[INFO] [stdout]   --> src/cpu/lr35902/clock.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Clock {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/gpu.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl GPU {
[INFO] [stdout]    | -------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> GPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mmu` is never read
[INFO] [stdout]   --> src/mother_board.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MotherBoard {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 12 |     cpu: RefCPU,
[INFO] [stdout] 13 |     mmu: RefMemory,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cpu` is never used
[INFO] [stdout]   --> src/mother_board.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl MotherBoard {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:241:12
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stdout]     | -------------------------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/mmu.rs:288:16
[INFO] [stdout]     |
[INFO] [stdout] 287 |     impl TestMemory {
[INFO] [stdout]     |     --------------- associated function in this implementation
[INFO] [stdout] 288 |         pub fn new() -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_handler_fn` is never used
[INFO] [stdout]   --> src/io_device/interrupt.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Interrupt {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_LEN` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from` is never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Ram {
[INFO] [stdout]     | -------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ram`, `header`, and `manufacturer_code_text` are never used
[INFO] [stdout]    --> src/io_device/cartridge/mod.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub trait Cartridge: Memory {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] 232 |     fn rom(&self) -> &Rom;
[INFO] [stdout] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 234 |     #[inline]
[INFO] [stdout] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `MBC` is never used
[INFO] [stdout]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait MBC: Memory {}
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 159 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.06s
[INFO] running `Command { std: "docker" "inspect" "397a9d333d4a221ee926763ad6a2b3662ddedf0044c3c9d03197fae108829160", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "397a9d333d4a221ee926763ad6a2b3662ddedf0044c3c9d03197fae108829160", kill_on_drop: false }`
[INFO] [stdout] 397a9d333d4a221ee926763ad6a2b3662ddedf0044c3c9d03197fae108829160
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 60ab59816a4c98c4933c2bf0f4bc61252a860708611c408a860fa484f28456b4
[INFO] running `Command { std: "docker" "start" "-a" "60ab59816a4c98c4933c2bf0f4bc61252a860708611c408a860fa484f28456b4", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Memory`
[INFO] [stderr]  --> src/cpu/mod.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::mmu::{Memory, RefMemory};
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cpu::CPU`
[INFO] [stderr]  --> src/cpu/lr35902/opcode/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::cpu::CPU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:156:31
[INFO] [stderr]     |
[INFO] [stderr] 156 |                 let n = match (opcode) {
[INFO] [stderr]     |                               ^      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 156 -                 let n = match (opcode) {
[INFO] [stderr] 156 +                 let n = match opcode {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:181:31
[INFO] [stderr]     |
[INFO] [stderr] 181 |                 let n = match (opcode) {
[INFO] [stderr]     |                               ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 181 -                 let n = match (opcode) {
[INFO] [stderr] 181 +                 let n = match opcode {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:208:31
[INFO] [stderr]     |
[INFO] [stderr] 208 |                 let n = match (opcode) {
[INFO] [stderr]     |                               ^      ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 208 -                 let n = match (opcode) {
[INFO] [stderr] 208 +                 let n = match opcode {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:238:15
[INFO] [stderr]     |
[INFO] [stderr] 238 |         match (opcode & 0x0F) {
[INFO] [stderr]     |               ^             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 238 -         match (opcode & 0x0F) {
[INFO] [stderr] 238 +         match opcode & 0x0F {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:280:19
[INFO] [stderr]     |
[INFO] [stderr] 280 |         let res = (val >> 1);
[INFO] [stderr]     |                   ^        ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 280 -         let res = (val >> 1);
[INFO] [stderr] 280 +         let res = val >> 1;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RefCell`
[INFO] [stderr]  --> src/mother_board.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::{Ref, RefCell};
[INFO] [stderr]   |                      ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Memory`
[INFO] [stderr]  --> src/mother_board.rs:9:18
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::mmu::{Memory, MMU, RefMemory};
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/mmu.rs:98:32
[INFO] [stderr]    |
[INFO] [stderr] 98 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 99 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stderr] 100| |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] ...  |
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/mmu.rs:99:32
[INFO] [stderr]    |
[INFO] [stderr] 99 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stderr]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 100| /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr] 101| |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr] 102| |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] 103| |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] ...  |
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:100:32
[INFO] [stderr]     |
[INFO] [stderr] 100 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 101 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr] 102 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:101:32
[INFO] [stderr]     |
[INFO] [stderr] 101 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 102 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] 103 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stderr] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:102:32
[INFO] [stderr]     |
[INFO] [stderr] 102 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 103 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] 104 | |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stderr] 105 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr] 106 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:103:32
[INFO] [stderr]     |
[INFO] [stderr] 103 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 104 |             0xFF0F => self.interrupt.borrow().get(addr),
[INFO] [stderr]     |             ------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:105:32
[INFO] [stderr]     |
[INFO] [stderr] 105 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 106 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr] 107 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:106:32
[INFO] [stderr]     |
[INFO] [stderr] 106 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 107 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr] 108 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:107:32
[INFO] [stderr]     |
[INFO] [stderr] 107 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 108 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr] 109 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:108:32
[INFO] [stderr]     |
[INFO] [stderr] 108 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 109 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] 110 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:109:32
[INFO] [stderr]     |
[INFO] [stderr] 109 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 110 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] 111 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:110:32
[INFO] [stderr]     |
[INFO] [stderr] 110 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 111 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] 112 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:111:32
[INFO] [stderr]     |
[INFO] [stderr] 111 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 112 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] 113 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:112:32
[INFO] [stderr]     |
[INFO] [stderr] 112 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 113 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] 114 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:113:32
[INFO] [stderr]     |
[INFO] [stderr] 113 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 114 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] 115 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:114:32
[INFO] [stderr]     |
[INFO] [stderr] 114 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 115 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] 116 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:115:32
[INFO] [stderr]     |
[INFO] [stderr] 115 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 116 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] 117 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:116:32
[INFO] [stderr]     |
[INFO] [stderr] 116 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 117 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] 118 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:117:32
[INFO] [stderr]     |
[INFO] [stderr] 117 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 118 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] 119 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:118:32
[INFO] [stderr]     |
[INFO] [stderr] 118 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 119 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] 120 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:119:32
[INFO] [stderr]     |
[INFO] [stderr] 119 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 120 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] 121 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:120:32
[INFO] [stderr]     |
[INFO] [stderr] 120 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 121 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] 122 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:121:32
[INFO] [stderr]     |
[INFO] [stderr] 121 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 122 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] 123 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:122:32
[INFO] [stderr]     |
[INFO] [stderr] 122 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 123 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] 124 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:123:32
[INFO] [stderr]     |
[INFO] [stderr] 123 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 124 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] 125 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:124:32
[INFO] [stderr]     |
[INFO] [stderr] 124 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 125 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] 126 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:125:32
[INFO] [stderr]     |
[INFO] [stderr] 125 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 126 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] 127 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:126:41
[INFO] [stderr]     |
[INFO] [stderr] 126 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 127 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] 128 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:127:32
[INFO] [stderr]     |
[INFO] [stderr] 127 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 128 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] 129 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:128:32
[INFO] [stderr]     |
[INFO] [stderr] 128 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 129 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] 130 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:129:32
[INFO] [stderr]     |
[INFO] [stderr] 129 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 130 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] 131 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:130:32
[INFO] [stderr]     |
[INFO] [stderr] 130 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 131 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] 132 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:131:32
[INFO] [stderr]     |
[INFO] [stderr] 131 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 132 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] 133 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:132:32
[INFO] [stderr]     |
[INFO] [stderr] 132 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 133 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] 134 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:133:32
[INFO] [stderr]     |
[INFO] [stderr] 133 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 134 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] 135 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:134:32
[INFO] [stderr]     |
[INFO] [stderr] 134 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 135 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] 136 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:135:32
[INFO] [stderr]     |
[INFO] [stderr] 135 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 136 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] 137 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:136:32
[INFO] [stderr]     |
[INFO] [stderr] 136 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 137 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] 138 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:137:32
[INFO] [stderr]     |
[INFO] [stderr] 137 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 138 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] 139 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:138:32
[INFO] [stderr]     |
[INFO] [stderr] 138 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 139 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] 140 | |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr] 141 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:139:32
[INFO] [stderr]     |
[INFO] [stderr] 139 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 140 |             0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |             ------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:140:45
[INFO] [stderr]     |
[INFO] [stderr] 140 |               0xFF4F => self.video.get(addr), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 141 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr] 142 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:141:32
[INFO] [stderr]     |
[INFO] [stderr] 141 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 142 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr] 143 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:142:32
[INFO] [stderr]     |
[INFO] [stderr] 142 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 143 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr] 144 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:143:32
[INFO] [stderr]     |
[INFO] [stderr] 143 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 144 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] 145 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:144:32
[INFO] [stderr]     |
[INFO] [stderr] 144 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 145 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] 146 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:145:32
[INFO] [stderr]     |
[INFO] [stderr] 145 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 146 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] 147 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:146:32
[INFO] [stderr]     |
[INFO] [stderr] 146 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 147 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] 148 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:147:32
[INFO] [stderr]     |
[INFO] [stderr] 147 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 148 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] 149 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:148:32
[INFO] [stderr]     |
[INFO] [stderr] 148 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 149 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] 150 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:149:32
[INFO] [stderr]     |
[INFO] [stderr] 149 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 150 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] 151 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:150:32
[INFO] [stderr]     |
[INFO] [stderr] 150 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 151 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] 152 | |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr] 153 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:151:32
[INFO] [stderr]     |
[INFO] [stderr] 151 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 152 |             0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:152:48
[INFO] [stderr]     |
[INFO] [stderr] 152 |               0xFF70 => self.work_ram.get(addr), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 153 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr] 154 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stderr] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:153:32
[INFO] [stderr]     |
[INFO] [stderr] 153 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 154 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr] 155 | |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stderr] 156 | |             0xFFFF => self.interrupt.borrow().get(addr),
[INFO] [stderr] 157 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:154:32
[INFO] [stderr]     |
[INFO] [stderr] 154 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 155 |             0xFF80..=0xFFFE => self.work_ram.get(addr),
[INFO] [stderr]     |             ------------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:171:32
[INFO] [stderr]     |
[INFO] [stderr] 171 |               0xFF01 => todo!(), /// SB Serial transfer data R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 172 | /             0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stderr] 173 | |             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:172:32
[INFO] [stderr]     |
[INFO] [stderr] 172 |               0xFF02 => todo!(), /// SC Serial transfer control R/W Mixed
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 173 | /             0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr] 174 | |             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:173:32
[INFO] [stderr]     |
[INFO] [stderr] 173 |               0xFF04 => todo!(), /// DIV Divider register R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 174 | /             0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr] 175 | |             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:174:32
[INFO] [stderr]     |
[INFO] [stderr] 174 |               0xFF05 => todo!(), /// TIMA Timer counter R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 175 | /             0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr] 176 | |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:175:32
[INFO] [stderr]     |
[INFO] [stderr] 175 |               0xFF06 => todo!(), /// TMA Timer modulo R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 176 | /             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr] 177 | |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr] 178 | |             0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr] 179 | |             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:176:32
[INFO] [stderr]     |
[INFO] [stderr] 176 |             0xFF07 => todo!(), /// TAC Timer control R/W All
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 177 |             0xFF0F => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr]     |             -------------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:178:32
[INFO] [stderr]     |
[INFO] [stderr] 178 |               0xFF10 => todo!(), /// NR10 Sound channel 1 sweep R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 179 | /             0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr] 180 | |             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:179:32
[INFO] [stderr]     |
[INFO] [stderr] 179 |               0xFF11 => todo!(), /// NR11 Sound channel 1 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 180 | /             0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr] 181 | |             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:180:32
[INFO] [stderr]     |
[INFO] [stderr] 180 |               0xFF12 => todo!(), /// NR12 Sound channel 1 volume & envelope R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 181 | /             0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr] 182 | |             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:181:32
[INFO] [stderr]     |
[INFO] [stderr] 181 |               0xFF13 => todo!(), /// NR13 Sound channel 1 period low W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 182 | /             0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr] 183 | |             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:182:32
[INFO] [stderr]     |
[INFO] [stderr] 182 |               0xFF14 => todo!(), /// NR14 Sound channel 1 period high & control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 183 | /             0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr] 184 | |             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:183:32
[INFO] [stderr]     |
[INFO] [stderr] 183 |               0xFF16 => todo!(), /// NR21 Sound channel 2 length timer & duty cycle Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 184 | /             0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr] 185 | |             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:184:32
[INFO] [stderr]     |
[INFO] [stderr] 184 |               0xFF17 => todo!(), /// NR22 Sound channel 2 volume & envelope R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 185 | /             0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr] 186 | |             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:185:32
[INFO] [stderr]     |
[INFO] [stderr] 185 |               0xFF18 => todo!(), /// NR23 Sound channel 2 period low W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 186 | /             0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr] 187 | |             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:186:32
[INFO] [stderr]     |
[INFO] [stderr] 186 |               0xFF19 => todo!(), /// NR24 Sound channel 2 period high & control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 187 | /             0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr] 188 | |             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:187:32
[INFO] [stderr]     |
[INFO] [stderr] 187 |               0xFF1A => todo!(), /// NR30 Sound channel 3 DAC enable R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 188 | /             0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr] 189 | |             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:188:32
[INFO] [stderr]     |
[INFO] [stderr] 188 |               0xFF1B => todo!(), /// NR31 Sound channel 3 length timer W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 189 | /             0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr] 190 | |             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:189:32
[INFO] [stderr]     |
[INFO] [stderr] 189 |               0xFF1C => todo!(), /// NR32 Sound channel 3 output level R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 190 | /             0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr] 191 | |             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:190:32
[INFO] [stderr]     |
[INFO] [stderr] 190 |               0xFF1D => todo!(), /// NR33 Sound channel 3 period low W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 191 | /             0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr] 192 | |             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:191:32
[INFO] [stderr]     |
[INFO] [stderr] 191 |               0xFF1E => todo!(), /// NR34 Sound channel 3 period high & control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 192 | /             0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr] 193 | |             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:192:32
[INFO] [stderr]     |
[INFO] [stderr] 192 |               0xFF20 => todo!(), /// NR41 Sound channel 4 length timer W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 193 | /             0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr] 194 | |             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:193:32
[INFO] [stderr]     |
[INFO] [stderr] 193 |               0xFF21 => todo!(), /// NR42 Sound channel 4 volume & envelope R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 194 | /             0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr] 195 | |             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:194:32
[INFO] [stderr]     |
[INFO] [stderr] 194 |               0xFF22 => todo!(), /// NR43 Sound channel 4 frequency & randomness R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 195 | /             0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr] 196 | |             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:195:32
[INFO] [stderr]     |
[INFO] [stderr] 195 |               0xFF23 => todo!(), /// NR44 Sound channel 4 control Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 196 | /             0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr] 197 | |             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:196:32
[INFO] [stderr]     |
[INFO] [stderr] 196 |               0xFF24 => todo!(), /// NR50 Master volume & VIN panning R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 197 | /             0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr] 198 | |             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:197:32
[INFO] [stderr]     |
[INFO] [stderr] 197 |               0xFF25 => todo!(), /// NR51 Sound panning R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 198 | /             0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr] 199 | |             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:198:32
[INFO] [stderr]     |
[INFO] [stderr] 198 |               0xFF26 => todo!(), /// NR52 Sound on/off Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 199 | /             0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr] 200 | |             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:199:41
[INFO] [stderr]     |
[INFO] [stderr] 199 |               0xFF30..=0xFF3F => todo!(), /// Wave RAM Storage for one of the sound channels’ waveform R/W All
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 200 | /             0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr] 201 | |             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:200:32
[INFO] [stderr]     |
[INFO] [stderr] 200 |               0xFF40 => todo!(), /// LCDC LCD control R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 201 | /             0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr] 202 | |             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:201:32
[INFO] [stderr]     |
[INFO] [stderr] 201 |               0xFF41 => todo!(), /// STAT LCD status Mixed All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 202 | /             0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr] 203 | |             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:202:32
[INFO] [stderr]     |
[INFO] [stderr] 202 |               0xFF42 => todo!(), /// SCY Viewport Y position R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 203 | /             0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr] 204 | |             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:203:32
[INFO] [stderr]     |
[INFO] [stderr] 203 |               0xFF43 => todo!(), /// SCX Viewport X position R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 204 | /             0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr] 205 | |             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:204:32
[INFO] [stderr]     |
[INFO] [stderr] 204 |               0xFF44 => todo!(), /// LY LCD Y coordinate R All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 205 | /             0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr] 206 | |             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:205:32
[INFO] [stderr]     |
[INFO] [stderr] 205 |               0xFF45 => todo!(), /// LYC LY compare R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 206 | /             0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr] 207 | |             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:206:32
[INFO] [stderr]     |
[INFO] [stderr] 206 |               0xFF46 => todo!(), /// DMA OAM DMA source address & start R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 207 | /             0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr] 208 | |             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:207:32
[INFO] [stderr]     |
[INFO] [stderr] 207 |               0xFF47 => todo!(), /// BGP BG palette data R/W DMG
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 208 | /             0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr] 209 | |             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:208:32
[INFO] [stderr]     |
[INFO] [stderr] 208 |               0xFF48 => todo!(), /// OBP0 OBJ palette 0 data R/W DMG
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 209 | /             0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr] 210 | |             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:209:32
[INFO] [stderr]     |
[INFO] [stderr] 209 |               0xFF49 => todo!(), /// OBP1 OBJ palette 1 data R/W DMG
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 210 | /             0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr] 211 | |             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:210:32
[INFO] [stderr]     |
[INFO] [stderr] 210 |               0xFF4A => todo!(), /// WY Window Y position R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 211 | /             0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr] 212 | |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:211:32
[INFO] [stderr]     |
[INFO] [stderr] 211 |               0xFF4B => todo!(), /// WX Window X position plus 7 R/W All
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 212 | /             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr] 213 | |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr] 214 | |             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:212:32
[INFO] [stderr]     |
[INFO] [stderr] 212 |             0xFF4D => todo!(), /// KEY1 Prepare speed switch Mixed CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 213 |             0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |             --------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:213:48
[INFO] [stderr]     |
[INFO] [stderr] 213 |               0xFF4F => self.video.set(addr, v), /// VBK VRAM bank R/W CGB
[INFO] [stderr]     |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 214 | /             0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr] 215 | |             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:214:32
[INFO] [stderr]     |
[INFO] [stderr] 214 |               0xFF51 => todo!(), /// HDMA1 VRAM DMA source high W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 215 | /             0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr] 216 | |             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:215:32
[INFO] [stderr]     |
[INFO] [stderr] 215 |               0xFF52 => todo!(), /// HDMA2 VRAM DMA source low W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 216 | /             0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr] 217 | |             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:216:32
[INFO] [stderr]     |
[INFO] [stderr] 216 |               0xFF53 => todo!(), /// HDMA3 VRAM DMA destination high W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 217 | /             0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr] 218 | |             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:217:32
[INFO] [stderr]     |
[INFO] [stderr] 217 |               0xFF54 => todo!(), /// HDMA4 VRAM DMA destination low W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 218 | /             0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr] 219 | |             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:218:32
[INFO] [stderr]     |
[INFO] [stderr] 218 |               0xFF55 => todo!(), /// HDMA5 VRAM DMA length/mode/start R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 219 | /             0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr] 220 | |             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:219:32
[INFO] [stderr]     |
[INFO] [stderr] 219 |               0xFF56 => todo!(), /// RP Infrared communications port Mixed CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 220 | /             0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr] 221 | |             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:220:32
[INFO] [stderr]     |
[INFO] [stderr] 220 |               0xFF68 => todo!(), /// BCPS/BGPI Background color palette specification / Background palette index R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 221 | /             0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr] 222 | |             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:221:32
[INFO] [stderr]     |
[INFO] [stderr] 221 |               0xFF69 => todo!(), /// BCPD/BGPD Background color palette data / Background palette data R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 222 | /             0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr] 223 | |             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:222:32
[INFO] [stderr]     |
[INFO] [stderr] 222 |               0xFF6A => todo!(), /// OCPS/OBPI OBJ color palette specification / OBJ palette index R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 223 | /             0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr] 224 | |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:223:32
[INFO] [stderr]     |
[INFO] [stderr] 223 |               0xFF6B => todo!(), /// OCPD/OBPD OBJ color palette data / OBJ palette data R/W CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 224 | /             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr] 225 | |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr] 226 | |             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:224:32
[INFO] [stderr]     |
[INFO] [stderr] 224 |             0xFF6C => todo!(), /// OPRI Object priority mode R/W CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 225 |             0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |             ------------------------------------ rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:225:51
[INFO] [stderr]     |
[INFO] [stderr] 225 |               0xFF70 => self.work_ram.set(addr, v), /// SVBK WRAM bank R/W CGB
[INFO] [stderr]     |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 226 | /             0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr] 227 | |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stderr] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:226:32
[INFO] [stderr]     |
[INFO] [stderr] 226 |               0xFF76 => todo!(), /// PCM12 Audio digital outputs 1 & 2 R CGB
[INFO] [stderr]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 227 | /             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr] 228 | |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stderr] 229 | |             0xFFFF => self.interrupt.borrow_mut().set(addr, v),
[INFO] [stderr] 230 | |             addr => panic!("MMU access denied, addr: 0x{:04X}", addr),
[INFO] [stderr] ...   |
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/mmu.rs:227:32
[INFO] [stderr]     |
[INFO] [stderr] 227 |             0xFF77 => todo!(), /// PCM34 Audio digital outputs 3 & 4 R CGB
[INFO] [stderr]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 228 |             0xFF80..=0xFFFE => self.work_ram.set(addr, v),
[INFO] [stderr]     |             --------------------------------------------- rustdoc does not generate documentation for match arms
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mmu::Memory`
[INFO] [stderr]  --> src/io_device/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::mmu::Memory;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/io_device/joypad.rs:59:28
[INFO] [stderr]    |
[INFO] [stderr] 59 |             self.matrix |= (*key as u8);
[INFO] [stderr]    |                            ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 -             self.matrix |= (*key as u8);
[INFO] [stderr] 59 +             self.matrix |= *key as u8;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cpu::CPU`
[INFO] [stderr]  --> src/io_device/interrupt.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::cpu::CPU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]   --> src/io_device/interrupt.rs:81:23
[INFO] [stderr]    |
[INFO] [stderr] 81 |         self.int_f |= (0x01 << (flag as u8));
[INFO] [stderr]    |                       ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 81 -         self.int_f |= (0x01 << (flag as u8));
[INFO] [stderr] 81 +         self.int_f |= 0x01 << (flag as u8);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mmu::Memory`
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::mmu::Memory;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/cpu/lr35902/opcode/cbprefixed_opcode.rs:233:13
[INFO] [stderr]     |
[INFO] [stderr] 233 |             other => panic!("Unsupported opcode: 0x{:04X}", other),
[INFO] [stderr]     |             ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `RefCPU` is never used
[INFO] [stderr]  --> src/cpu/mod.rs:9:10
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub type RefCPU = Rc<RefCell<Box<dyn CPU>>>;
[INFO] [stderr]   |          ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `memory`, `run`, and `info` are never used
[INFO] [stderr]   --> src/cpu/mod.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait CPU {
[INFO] [stderr]    |           --- methods in this trait
[INFO] [stderr] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 13 |
[INFO] [stderr] 14 |     fn run(&mut self);
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 15 |
[INFO] [stderr] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `start_at` and `freq` are never read
[INFO] [stderr]   --> src/cpu/mod.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct CPUInfo {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 20 |     start_at: SystemTime,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 21 |     freq: u64,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl CPUInfo {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 25 |     pub fn new(freq: u64) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_hi` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn get_hi(src: &u16) -> u8 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_hi` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn set_hi(src: &mut u16, val: u8) {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_lo` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:45:8
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn get_lo(src: &u16) -> u8 {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_lo` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:50:8
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn set_lo(src: &mut u16, val: u8) {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_bit` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:54:8
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub fn get_bit(src: &u16, i: u8) -> u8 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_bit` is never used
[INFO] [stderr]   --> src/cpu/mod.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub fn set_bit(src: &mut u16, i: u8, val: u8) {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cpu/lr35902/mod.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | impl LR35902 {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 34 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `F` is never constructed
[INFO] [stderr]   --> src/cpu/lr35902/registers.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub enum Register {
[INFO] [stderr]    |          -------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 35 |     F,
[INFO] [stderr]    |     ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Register` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/cpu/lr35902/registers.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 49 | impl Registers {
[INFO] [stderr]    | -------------- associated function in this implementation
[INFO] [stderr] 50 |     pub fn new(gb_term: GBTerm) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClockStep` is never constructed
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct ClockStep {}
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `now` are never used
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Clock {
[INFO] [stderr]    | ---------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/gpu.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl GPU {
[INFO] [stderr]    | -------- associated function in this implementation
[INFO] [stderr] 14 |     pub fn new() -> GPU {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MotherBoard` is never constructed
[INFO] [stderr]   --> src/mother_board.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct MotherBoard {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `cpu`, and `start` are never used
[INFO] [stderr]   --> src/mother_board.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl MotherBoard {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 17 |     pub fn new(rom_path: String, ram_path: String, rtc_path: String) -> crate::Result<MotherBoard> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn start(&self) -> ! {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `new_ram` is never used
[INFO] [stderr]   --> src/mmu.rs:57:8
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub fn new_ram<const CAP: usize>() -> RAM<CAP> where {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/mmu.rs:71:12
[INFO] [stderr]    |
[INFO] [stderr] 70 | impl MMU {
[INFO] [stderr]    | -------- associated function in this implementation
[INFO] [stderr] 71 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/mmu.rs:241:12
[INFO] [stderr]     |
[INFO] [stderr] 240 | impl<const SIZE: usize> BlockRam<SIZE> {
[INFO] [stderr]     | -------------------------------------- associated function in this implementation
[INFO] [stderr] 241 |     pub fn new() -> BlockRam<SIZE> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/mmu.rs:264:12
[INFO] [stderr]     |
[INFO] [stderr] 263 | impl Prohibited {
[INFO] [stderr]     | --------------- associated function in this implementation
[INFO] [stderr] 264 |     pub fn new() -> Prohibited {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple variants are never constructed
[INFO] [stderr]   --> src/io_device/joypad.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum JoypadKey {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] 13 |     Right = 0b0001_0001,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 14 |     Left = 0b0001_0010,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 15 |     Up = 0b0001_0100,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 16 |     Down = 0b0001_1000,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 17 |     A = 0b0010_0001,
[INFO] [stderr]    |     ^
[INFO] [stderr] 18 |     B = 0b0010_0010,
[INFO] [stderr]    |     ^
[INFO] [stderr] 19 |     Select = 0b0010_0100,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 20 |     Start = 0b0010_1000,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JoypadKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/io_device/joypad.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl Joypad {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 33 |     pub fn new(interrupt: RefInterrupt) -> RefJoypad {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `set_handler_fn` are never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:61:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | impl Interrupt {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 61 |     pub fn new() -> RefInterrupt {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BANK_SIZE` is never used
[INFO] [stderr]  --> src/io_device/video.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const BANK_SIZE: usize = 0x02;
[INFO] [stderr]   |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/io_device/video.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | impl Video {
[INFO] [stderr]    | ---------- associated function in this implementation
[INFO] [stderr] 23 |     pub fn new() -> Video {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/io_device/wram.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl WorkRam {
[INFO] [stderr]    | ------------ associated function in this implementation
[INFO] [stderr] 18 |     pub fn new() -> WorkRam {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const HEADER_BASE: u16 = 0x0100;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const HEADER_END: u16 = 0x014F;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const HEADER_LEN: u16 = HEADER_END - HEADER_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_ENTRY_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:25:7
[INFO] [stderr]    |
[INFO] [stderr] 25 | const HEADER_ENTRY_BASE: u16 = 0x0100;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_ENTRY_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:27:7
[INFO] [stderr]    |
[INFO] [stderr] 27 | const HEADER_ENTRY_END: u16 = 0x0103;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NINTENDO_LOGO_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:30:7
[INFO] [stderr]    |
[INFO] [stderr] 30 | const HEADER_NINTENDO_LOGO_BASE: u16 = 0x0104;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NINTENDO_LOGO_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:32:7
[INFO] [stderr]    |
[INFO] [stderr] 32 | const HEADER_NINTENDO_LOGO_END: u16 = 0x0133;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NINTENDO_LOGO_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:35:7
[INFO] [stderr]    |
[INFO] [stderr] 35 | const HEADER_NINTENDO_LOGO_LEN: u16 = HEADER_NINTENDO_LOGO_END - HEADER_NINTENDO_LOGO_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NINTENDO_LOGO` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:39:7
[INFO] [stderr]    |
[INFO] [stderr] 39 | const NINTENDO_LOGO: [u8; HEADER_NINTENDO_LOGO_LEN as usize] = [
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:46:7
[INFO] [stderr]    |
[INFO] [stderr] 46 | const HEADER_TITLE_BASE: u16 = 0x0134;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_END_GB` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:49:7
[INFO] [stderr]    |
[INFO] [stderr] 49 | const HEADER_TITLE_END_GB: u16 = 0x0142;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_GB_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:50:7
[INFO] [stderr]    |
[INFO] [stderr] 50 | const HEADER_TITLE_GB_LEN: u16 = HEADER_TITLE_END_GB - HEADER_TITLE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CGB_FLAG` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:52:7
[INFO] [stderr]    |
[INFO] [stderr] 52 | const HEADER_CGB_FLAG: u16 = 0x0143;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CGB_FLAG_COMPATIBLE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:53:7
[INFO] [stderr]    |
[INFO] [stderr] 53 | const CGB_FLAG_COMPATIBLE: u8 = 0x80;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CGB_FLAG_ONLY` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:54:7
[INFO] [stderr]    |
[INFO] [stderr] 54 | const CGB_FLAG_ONLY: u8 = 0xC0;
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `None`, `Compatible`, and `CGBOnly` are never constructed
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub enum CGBFlag {
[INFO] [stderr]    |          ------- variants in this enum
[INFO] [stderr] 58 |     None,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 59 |     Compatible,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 60 |     CGBOnly,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MANUFACTURER_CODE_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:65:7
[INFO] [stderr]    |
[INFO] [stderr] 65 | const HEADER_MANUFACTURER_CODE_BASE: u16 = 0x013F;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MANUFACTURER_CODE_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:68:7
[INFO] [stderr]    |
[INFO] [stderr] 68 | const HEADER_MANUFACTURER_CODE_END: u16 = 0x0142;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MANUFACTURER_CODE_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:69:7
[INFO] [stderr]    |
[INFO] [stderr] 69 | const HEADER_MANUFACTURER_CODE_LEN: u16 = HEADER_MANUFACTURER_CODE_END - HEADER_MANUFACTURER_CODE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_END_CGB` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:72:7
[INFO] [stderr]    |
[INFO] [stderr] 72 | const HEADER_TITLE_END_CGB: u16 = 0x013E;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TITLE_CGB_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:73:7
[INFO] [stderr]    |
[INFO] [stderr] 73 | const HEADER_TITLE_CGB_LEN: u16 = HEADER_TITLE_END_CGB - HEADER_TITLE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NEW_LICENSEE_CODE_BASE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:76:7
[INFO] [stderr]    |
[INFO] [stderr] 76 | const HEADER_NEW_LICENSEE_CODE_BASE: u16 = 0x0144;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NEW_LICENSEE_CODE_END` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:78:7
[INFO] [stderr]    |
[INFO] [stderr] 78 | const HEADER_NEW_LICENSEE_CODE_END: u16 = 0x0145;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_NEW_LICENSEE_CODE_LEN` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:79:7
[INFO] [stderr]    |
[INFO] [stderr] 79 | const HEADER_NEW_LICENSEE_CODE_LEN: u16 = HEADER_NEW_LICENSEE_CODE_END - HEADER_NEW_LICENSEE_CODE_BASE + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_SGB_FLAG` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:82:7
[INFO] [stderr]    |
[INFO] [stderr] 82 | const HEADER_SGB_FLAG: u16 = 0x0146;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `None` and `Ok` are never constructed
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub enum SGBFlag {
[INFO] [stderr]    |          ------- variants in this enum
[INFO] [stderr] 86 |     None,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 87 |     Ok,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CART_TYPE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:91:7
[INFO] [stderr]    |
[INFO] [stderr] 91 | const HEADER_CART_TYPE: u16 = 0x0147;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_ROM_SIZE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:94:7
[INFO] [stderr]    |
[INFO] [stderr] 94 | const HEADER_ROM_SIZE: u16 = 0x0148;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_RAM_SIZE` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mod.rs:97:7
[INFO] [stderr]    |
[INFO] [stderr] 97 | const HEADER_RAM_SIZE: u16 = 0x0149;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_DESTINATION_CODE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:100:7
[INFO] [stderr]     |
[INFO] [stderr] 100 | const HEADER_DESTINATION_CODE: u16 = 0x014A;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_OLD_LICENSEE_CODE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:103:7
[INFO] [stderr]     |
[INFO] [stderr] 103 | const HEADER_OLD_LICENSEE_CODE: u16 = 0x014B;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_MASK_ROM_VERSION_NUM` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:106:7
[INFO] [stderr]     |
[INFO] [stderr] 106 | const HEADER_MASK_ROM_VERSION_NUM: u16 = 0x14C;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECK_BASE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:109:7
[INFO] [stderr]     |
[INFO] [stderr] 109 | const HEADER_CHECK_BASE: u16 = 0x0134;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECK_END` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:111:7
[INFO] [stderr]     |
[INFO] [stderr] 111 | const HEADER_CHECK_END: u16 = 0x14C;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECK_LEN` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:112:7
[INFO] [stderr]     |
[INFO] [stderr] 112 | const HEADER_CHECK_LEN: u16 = HEADER_CHECK_END - HEADER_CHECK_BASE + 1;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_CHECKSUM` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:115:7
[INFO] [stderr]     |
[INFO] [stderr] 115 | const HEADER_CHECKSUM: u16 = 0x014D;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_GLOBAL_CHECKSUM_BASE` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:118:7
[INFO] [stderr]     |
[INFO] [stderr] 118 | const HEADER_GLOBAL_CHECKSUM_BASE: u16 = 0x014E;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_GLOBAL_CHECKSUM_END` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:120:7
[INFO] [stderr]     |
[INFO] [stderr] 120 | const HEADER_GLOBAL_CHECKSUM_END: u16 = 0x014F;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_GLOBAL_CHECKSUM_LEN` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:121:7
[INFO] [stderr]     |
[INFO] [stderr] 121 | const HEADER_GLOBAL_CHECKSUM_LEN: u16 = HEADER_GLOBAL_CHECKSUM_END - HEADER_GLOBAL_CHECKSUM_BASE + 1;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:129:12
[INFO] [stderr]     |
[INFO] [stderr] 128 | impl Rom {
[INFO] [stderr]     | -------- associated function in this implementation
[INFO] [stderr] 129 |     pub fn new(path: String) -> Result<Self> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `from`, and `mem` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr] 152 | impl Ram {
[INFO] [stderr]     | -------- associated items in this implementation
[INFO] [stderr] 153 |     pub fn new<F>(path: String, size: usize, content_supplier: F) -> Result<Self>
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 180 |     pub fn mem(&self) -> &Vec<u8> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_ROM_ONLY` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:195:7
[INFO] [stderr]     |
[INFO] [stderr] 195 | const CART_TYPE_ROM_ONLY: u8 = 0x00;
[INFO] [stderr]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RomOnly` is never constructed
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:197:8
[INFO] [stderr]     |
[INFO] [stderr] 197 | struct RomOnly {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `power_up` and `new` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:202:12
[INFO] [stderr]     |
[INFO] [stderr] 201 | impl RomOnly {
[INFO] [stderr]     | ------------ associated functions in this implementation
[INFO] [stderr] 202 |     pub fn power_up(rom: Rom) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     fn new(rom: Rom) -> Result<Self> {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:232:8
[INFO] [stderr]     |
[INFO] [stderr] 231 | pub trait Cartridge: Memory {
[INFO] [stderr]     |           --------- methods in this trait
[INFO] [stderr] 232 |     fn rom(&self) -> &Rom;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 234 |     #[inline]
[INFO] [stderr] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 239 |     fn logo(&self) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 244 |     fn manufacturer_code(&self) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 253 |     fn cgb_flag(&self) -> CGBFlag {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 263 |     fn title_len(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 272 |     fn title(&self) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 278 |     fn title_text(&self) -> Result<String> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 290 |     fn licensee_code(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 305 |     fn sgb_flag(&self) -> SGBFlag {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 314 |     fn cart_type(&self) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     fn cart_type_text(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 354 |     fn rom_size(&self) -> usize {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 373 |     fn ram_size(&self) -> usize {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 387 |     fn destination_code(&self) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 392 |     fn destination_code_text(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 400 |     fn mask_rom_version_number(&self) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 405 |     fn header_checksum(&self) -> u8 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 409 |     fn global_checksum(&self) -> u16 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 416 |     fn info(&self) -> CartridgeInfo {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 432 |     fn check_logo(&self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 444 |     fn check_header(&self) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `power_up` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:506:8
[INFO] [stderr]     |
[INFO] [stderr] 506 | pub fn power_up(rom_path: String, ram_path: String, rtc_path: String) -> Result<RefCartridge> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `MBC` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mod.rs:28:11
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub trait MBC: Memory {}
[INFO] [stderr]    |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC1` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc1.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const CART_TYPE_MBC1: u8 = 0x01;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC1_RAM` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc1.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CART_TYPE_MBC1_RAM: u8 = 0x02;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC1_RAM_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc1.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CART_TYPE_MBC1_RAM_BATTERY: u8 = 0x03;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc1.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const RAM_BANK_COUNT: u8 = 0b0_11_00000 >> 5 - 0x00 + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `power_up` and `new` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc1.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl MBC1 {
[INFO] [stderr]    | --------- associated functions in this implementation
[INFO] [stderr] 31 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC2` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc2.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const CART_TYPE_MBC2: u8 = 0x05;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC2_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc2.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CART_TYPE_MBC2_BATTERY: u8 = 0x06;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `power_up` and `new` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc2.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl MBC2 {
[INFO] [stderr]    | --------- associated functions in this implementation
[INFO] [stderr] 18 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_TIMER_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc3.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CART_TYPE_MBC3_TIMER_BATTERY: u8 = 0x0F;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_TIMER_RAM_BATTERY_2` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc3.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const CART_TYPE_MBC3_TIMER_RAM_BATTERY_2: u8 = 0x10;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const CART_TYPE_MBC3: u8 = 0x11;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_RAM_2` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const CART_TYPE_MBC3_RAM_2: u8 = 0x12;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC3_RAM_BATTERY_2` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const CART_TYPE_MBC3_RAM_BATTERY_2: u8 = 0x13;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:32:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl RTC {
[INFO] [stderr]    | -------- associated function in this implementation
[INFO] [stderr] 32 |     fn new(path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:78:7
[INFO] [stderr]    |
[INFO] [stderr] 78 | const RAM_BANK_COUNT: u8 = 0x03 - 0x00 + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `power_up` and `new` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc3.rs:92:12
[INFO] [stderr]    |
[INFO] [stderr] 91 | impl MBC3 {
[INFO] [stderr]    | --------- associated functions in this implementation
[INFO] [stderr] 92 |     pub fn power_up(rom: Rom, ram_path: String, rtc_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 96 |     fn new(rom: Rom, ram_path: String, rtc_path: String) -> Result<Self> {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const CART_TYPE_MBC5: u8 = 0x19;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RAM` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const CART_TYPE_MBC5_RAM: u8 = 0x1A;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RAM_BATTERY` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const CART_TYPE_MBC5_RAM_BATTERY: u8 = 0x1B;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RUMBLE` is never used
[INFO] [stderr]  --> src/io_device/cartridge/mbc/mbc5.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const CART_TYPE_MBC5_RUMBLE: u8 = 0x1C;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const CART_TYPE_MBC5_RUMBLE_RAM: u8 = 0x1D;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CART_TYPE_MBC5_RUMBLE_RAM_BATTERY` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const CART_TYPE_MBC5_RUMBLE_RAM_BATTERY: u8 = 0x1E;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RAM_BANK_COUNT` is never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const RAM_BANK_COUNT: u8 = 0x0F - 0x00 + 1;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `power_up` and `new` are never used
[INFO] [stderr]   --> src/io_device/cartridge/mbc/mbc5.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl MBC5 {
[INFO] [stderr]    | --------- associated functions in this implementation
[INFO] [stderr] 27 |     pub fn power_up(rom: Rom, ram_path: String) -> Result<Box<dyn Cartridge>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn new(rom: Rom, ram_path: String) -> Result<Self> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `GBTerm`, `cpu`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{cpu, GBTerm};
[INFO] [stderr]   |             ^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::cpu::CPU`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::cpu::CPU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::io_device::cartridge`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::io_device::cartridge;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::mmu::MMU`
[INFO] [stderr]  --> src/tests/cpu_instrs.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::mmu::MMU;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable call
[INFO] [stderr]   --> src/tests/cpu_instrs.rs:11:25
[INFO] [stderr]    |
[INFO] [stderr] 10 | #[test]
[INFO] [stderr]    | ------- in this procedural macro expansion
[INFO] [stderr] 11 | fn test_cpu_instrs() -> ! {
[INFO] [stderr]    |                         ^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         unreachable call
[INFO] [stderr]    |                         any code following this expression is unreachable
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stderr]    = note: this warning originates in the attribute macro `test` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/tests/cpu_instrs.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let mut mb = MotherBoard::new(rom_path, ram_path, rtc_path).unwrap();
[INFO] [stderr]    |         ----^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `memory` and `info` are never used
[INFO] [stderr]   --> src/cpu/mod.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait CPU {
[INFO] [stderr]    |           --- methods in this trait
[INFO] [stderr] 12 |     fn memory(&self) -> RefMemory;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     fn info(&self) -> &CPUInfo;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `now` is never used
[INFO] [stderr]   --> src/cpu/lr35902/clock.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Clock {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn now(&self) -> SystemTime {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `mmu` is never read
[INFO] [stderr]   --> src/mother_board.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct MotherBoard {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 12 |     cpu: RefCPU,
[INFO] [stderr] 13 |     mmu: RefMemory,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `cpu` is never used
[INFO] [stderr]   --> src/mother_board.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl MotherBoard {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn cpu(&self) -> Ref<Box<dyn CPU>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/mmu.rs:288:16
[INFO] [stderr]     |
[INFO] [stderr] 287 |     impl TestMemory {
[INFO] [stderr]     |     --------------- associated function in this implementation
[INFO] [stderr] 288 |         pub fn new() -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `set_handler_fn` is never used
[INFO] [stderr]   --> src/io_device/interrupt.rs:69:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | impl Interrupt {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn set_handler_fn(&mut self, flag: Flag, handler: IntHandlerFunc) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from` is never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:170:12
[INFO] [stderr]     |
[INFO] [stderr] 152 | impl Ram {
[INFO] [stderr]     | -------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 170 |     pub fn from(mem: Vec<u8>, path: String) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `ram`, `header`, and `manufacturer_code_text` are never used
[INFO] [stderr]    --> src/io_device/cartridge/mod.rs:233:8
[INFO] [stderr]     |
[INFO] [stderr] 231 | pub trait Cartridge: Memory {
[INFO] [stderr]     |           --------- methods in this trait
[INFO] [stderr] 232 |     fn rom(&self) -> &Rom;
[INFO] [stderr] 233 |     fn ram(&self) -> Option<&Ram>;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 234 |     #[inline]
[INFO] [stderr] 235 |     fn header(&self) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     fn manufacturer_code_text(&self) -> Result<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gb_simulator` (lib) generated 226 warnings (run `cargo fix --lib -p gb_simulator` to apply 13 suggestions)
[INFO] [stderr] warning: `gb_simulator` (lib test) generated 159 warnings (143 duplicates) (run `cargo fix --lib -p gb_simulator --tests` to apply 7 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gb_simulator-ddb921ac904c8551)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test cpu::lr35902::registers::tests::test_bc_hi ... ok
[INFO] [stdout] test cpu::lr35902::registers::tests::test_bc ... ok
[INFO] [stdout] test cpu::lr35902::registers::tests::test_bc_lo ... ok
[INFO] [stdout] test io_device::cartridge::mbc::mbc3::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::mbc::mbc1::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::mbc::mbc2::tests::test ... FAILED
[INFO] [stdout] test io_device::cartridge::mbc::mbc5::tests::test ... FAILED
[INFO] [stdout] test tests::cpu_instrs::test_cpu_instrs ... FAILED
[INFO] [stdout] test mother_board::tests::test_mother_board ... FAILED
[INFO] [stdout] test io_device::cartridge::tests::test_power_up ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc3::tests::test stdout ----
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc3::tests::test' panicked at src/io_device/cartridge/mbc/mbc3.rs:222:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5575eff55005 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
[INFO] [stdout]    1:     0x5575eff55005 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5575eff55005 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x5575eff55005 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6ed9e62a156d84e4
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x5575eff7b87b - core::fmt::rt::Argument::fmt::h645c680983f03c9f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63
[INFO] [stdout]    5:     0x5575eff7b87b - core::fmt::write::h8bcd80919a02be29
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21
[INFO] [stdout]    6:     0x5575eff5283f - std::io::Write::write_fmt::h8d0c47c662cad79c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15
[INFO] [stdout]    7:     0x5575eff54dde - std::sys_common::backtrace::_print::h6306f131a28d62b0
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5575eff54dde - std::sys_common::backtrace::print::h7079288e0a26dfcc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x5575eff56809 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba
[INFO] [stdout]   10:     0x5575eff564ce - std::panicking::default_hook::hd56ee406bf547b5c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9
[INFO] [stdout]   11:     0x5575eff1823a - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::he5eacdef44c8728f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   12:     0x5575eff1823a - test::test_main::{{closure}}::h0ec9aed229e79095
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5575eff56e0b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcbd0d80e1ad4e4f9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   14:     0x5575eff56e0b - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13
[INFO] [stdout]   15:     0x5575eff56b4b - std::panicking::begin_panic_handler::{{closure}}::hbc4e76194a5e287c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:656:13
[INFO] [stdout]   16:     0x5575eff554c9 - std::sys_common::backtrace::__rust_end_short_backtrace::h847fedc9d1ff7b6d
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x5575eff568b7 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:652:5
[INFO] [stdout]   18:     0x5575efea78a3 - core::panicking::panic_fmt::hec11a924b87ce965
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x5575efea794c - core::panicking::panic::hb6a980c1ddfde273
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:146:5
[INFO] [stdout]   20:     0x5575efee4a4d - gb_simulator::io_device::cartridge::mbc::mbc3::tests::test::he4c0ab9d60ae7247
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc3.rs:222:9
[INFO] [stdout]   21:     0x5575efee4a17 - gb_simulator::io_device::cartridge::mbc::mbc3::tests::test::{{closure}}::h0f27b04871b8720b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc3.rs:221:14
[INFO] [stdout]   22:     0x5575efed5da6 - core::ops::function::FnOnce::call_once::h850fb32b3cf81f81
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5575eff1cc1b - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5575eff1cc1b - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18
[INFO] [stdout]   25:     0x5575eff1c321 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60
[INFO] [stdout]   26:     0x5575eff1c321 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x5575eff1c321 - std::panicking::try::do_call::h1bf2463bccd4b28c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   28:     0x5575eff1c321 - std::panicking::try::hd6d4808c9fab4fa5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   29:     0x5575eff1c321 - std::panic::catch_unwind::hd5641d97d123f9f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   30:     0x5575eff1c321 - test::run_test_in_process::hc273b71c8b878a4c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27
[INFO] [stdout]   31:     0x5575eff1c321 - test::run_test::{{closure}}::h6838df834eb8467e
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:569:43
[INFO] [stdout]   32:     0x5575efee4ce4 - test::run_test::{{closure}}::h608b98ecff5665fb
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:599:41
[INFO] [stdout]   33:     0x5575efee4ce4 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdc4182b97d1042e9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   34:     0x5575efee9712 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h571773fd21d674c8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:542:17
[INFO] [stdout]   35:     0x5575efee9712 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hdcd384cf2fa70ba3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x5575efee9712 - std::panicking::try::do_call::h4f1a44bd81423be1
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   37:     0x5575efee9712 - std::panicking::try::h5e02afcb81dcd361
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   38:     0x5575efee9712 - std::panic::catch_unwind::h022f75775bfd8c45
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   39:     0x5575efee9712 - std::thread::Builder::spawn_unchecked_::{{closure}}::hf5a62e9e4e6df1f8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:541:30
[INFO] [stdout]   40:     0x5575efee9712 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d56360aeb9509a7
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5575eff5affb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7a343dc551c06baa
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   42:     0x5575eff5affb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h30b8111cbaa644f3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   43:     0x5575eff5affb - std::sys::pal::unix::thread::Thread::new::thread_start::h7404e134e61e7a11
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys/pal/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7f7890cd4ac3 - <unknown>
[INFO] [stdout]   45:     0x7f7890d65a04 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc1::tests::test stdout ----
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc1::tests::test' panicked at src/io_device/cartridge/mbc/mbc1.rs:150:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5575eff55005 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
[INFO] [stdout]    1:     0x5575eff55005 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5575eff55005 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x5575eff55005 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6ed9e62a156d84e4
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x5575eff7b87b - core::fmt::rt::Argument::fmt::h645c680983f03c9f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63
[INFO] [stdout]    5:     0x5575eff7b87b - core::fmt::write::h8bcd80919a02be29
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21
[INFO] [stdout]    6:     0x5575eff5283f - std::io::Write::write_fmt::h8d0c47c662cad79c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15
[INFO] [stdout]    7:     0x5575eff54dde - std::sys_common::backtrace::_print::h6306f131a28d62b0
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5575eff54dde - std::sys_common::backtrace::print::h7079288e0a26dfcc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x5575eff56809 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba
[INFO] [stdout]   10:     0x5575eff564ce - std::panicking::default_hook::hd56ee406bf547b5c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9
[INFO] [stdout]   11:     0x5575eff1823a - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::he5eacdef44c8728f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   12:     0x5575eff1823a - test::test_main::{{closure}}::h0ec9aed229e79095
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5575eff56e0b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcbd0d80e1ad4e4f9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   14:     0x5575eff56e0b - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13
[INFO] [stdout]   15:     0x5575eff56b4b - std::panicking::begin_panic_handler::{{closure}}::hbc4e76194a5e287c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:656:13
[INFO] [stdout]   16:     0x5575eff554c9 - std::sys_common::backtrace::__rust_end_short_backtrace::h847fedc9d1ff7b6d
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x5575eff568b7 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:652:5
[INFO] [stdout]   18:     0x5575efea78a3 - core::panicking::panic_fmt::hec11a924b87ce965
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x5575efea794c - core::panicking::panic::hb6a980c1ddfde273
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:146:5
[INFO] [stdout]   20:     0x5575efec7d4d - gb_simulator::io_device::cartridge::mbc::mbc1::tests::test::h791bc22ac1bb0d8c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc1.rs:150:9
[INFO] [stdout]   21:     0x5575efec7d17 - gb_simulator::io_device::cartridge::mbc::mbc1::tests::test::{{closure}}::h8c95ee572d688179
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc1.rs:149:14
[INFO] [stdout]   22:     0x5575efed5de6 - core::ops::function::FnOnce::call_once::h9f0b55ae4e526bf3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5575eff1cc1b - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5575eff1cc1b - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18
[INFO] [stdout]   25:     0x5575eff1c321 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60
[INFO] [stdout]   26:     0x5575eff1c321 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x5575eff1c321 - std::panicking::try::do_call::h1bf2463bccd4b28c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   28:     0x5575eff1c321 - std::panicking::try::hd6d4808c9fab4fa5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   29:     0x5575eff1c321 - std::panic::catch_unwind::hd5641d97d123f9f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   30:     0x5575eff1c321 - test::run_test_in_process::hc273b71c8b878a4c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27
[INFO] [stdout]   31:     0x5575eff1c321 - test::run_test::{{closure}}::h6838df834eb8467e
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:569:43
[INFO] [stdout]   32:     0x5575efee4ce4 - test::run_test::{{closure}}::h608b98ecff5665fb
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:599:41
[INFO] [stdout]   33:     0x5575efee4ce4 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdc4182b97d1042e9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   34:     0x5575efee9712 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h571773fd21d674c8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:542:17
[INFO] [stdout]   35:     0x5575efee9712 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hdcd384cf2fa70ba3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   36:     0x5575efee9712 - std::panicking::try::do_call::h4f1a44bd81423be1
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   37:     0x5575efee9712 - std::panicking::try::h5e02afcb81dcd361
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   38:     0x5575efee9712 - std::panic::catch_unwind::h022f75775bfd8c45
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   39:     0x5575efee9712 - std::thread::Builder::spawn_unchecked_::{{closure}}::hf5a62e9e4e6df1f8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:541:30
[INFO] [stdout]   40:     0x5575efee9712 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d56360aeb9509a7
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5575eff5affb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7a343dc551c06baa
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   42:     0x5575eff5affb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h30b8111cbaa644f3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   43:     0x5575eff5affb - std::sys::pal::unix::thread::Thread::new::thread_start::h7404e134e61e7a11
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys/pal/unix/thread.rs:108:17
[INFO] [stdout]   44:     0x7f7890cd4ac3 - <unknown>
[INFO] [stdout]   45:     0x7f7890d65a04 - __clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- io_device::cartridge::mbc::mbc2::tests::test stdout ----
[INFO] [stdout] thread 'io_device::cartridge::mbc::mbc2::tests::test' panicked at src/io_device/cartridge/mbc/mbc2.rs:115:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5575eff55005 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
[INFO] [stdout]    1:     0x5575eff55005 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5575eff55005 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x5575eff55005 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6ed9e62a156d84e4
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x5575eff7b87b - core::fmt::rt::Argument::fmt::h645c680983f03c9f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63
[INFO] [stdout]    5:     0x5575eff7b87b - core::fmt::write::h8bcd80919a02be29
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21
[INFO] [stdout]    6:     0x5575eff5283f - std::io::Write::write_fmt::h8d0c47c662cad79c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15
[INFO] [stdout]    7:     0x5575eff54dde - std::sys_common::backtrace::_print::h6306f131a28d62b0
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5575eff54dde - std::sys_common::backtrace::print::h7079288e0a26dfcc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x5575eff56809 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba
[INFO] [stdout]   10:     0x5575eff564ce - std::panicking::default_hook::hd56ee406bf547b5c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9
[INFO] [stdout]   11:     0x5575eff1823a - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::he5eacdef44c8728f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   12:     0x5575eff1823a - test::test_main::{{closure}}::h0ec9aed229e79095
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5575eff56e0b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcbd0d80e1ad4e4f9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   14:     0x5575eff56e0b - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13
[INFO] [stdout]   15:     0x5575eff56b4b - std::panicking::begin_panic_handler::{{closure}}::hbc4e76194a5e287c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:656:13
[INFO] [stdout]   16:     0x5575eff554c9 - std::sys_common::backtrace::__rust_end_short_backtrace::h847fedc9d1ff7b6d
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x5575eff568b7 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:652:5
[INFO] [stdout]   18:     0x5575efea78a3 - core::panicking::panic_fmt::hec11a924b87ce965
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x5575efea794c - core::panicking::panic::hb6a980c1ddfde273
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:146:5
[INFO] [stdout]   20:     0x5575efed006d - gb_simulator::io_device::cartridge::mbc::mbc2::tests::test::h71a83e126781654b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc2.rs:115:9
[INFO] [stdout]   21:     0x5575efed0037 - gb_simulator::io_device::cartridge::mbc::mbc2::tests::test::{{closure}}::hc0f734da67c9af9c
[INFO] [stdout]                                at /opt/rustwide/workdir/src/io_device/cartridge/mbc/mbc2.rs:114:14
[INFO] [stdout]   22:     0x5575efed5d26 - core::ops::function::FnOnce::call_once::h39e9af0545c1337c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5575eff1cc1b - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5575eff1cc1b - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18
[INFO] [stdout]   25:     0x5575eff1c321 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60
[INFO] [stdout]   26:     0x5575eff1c321 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   27:     0x5575eff1c321 - std::panicking::try::do_call::h1bf2463bccd4b28c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   28:     0x5575eff1c321 - std::panicking::try::hd6d4808c9fab4fa5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   29:     0x5575eff1c321 - std::panic::catch_unwind::hd5641d97d123f9f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   30:     0x5575eff1c321 - test::run_test_in_process::hc273b71c8b878a4c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27
[WARN] too many lines in the log, truncating it
