[INFO] cloning repository https://github.com/Kris-Rubrecht17/gemulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kris-Rubrecht17/gemulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKris-Rubrecht17%2Fgemulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKris-Rubrecht17%2Fgemulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 83b384793f62241f2dcde89369299328cf973f95
[INFO] testing Kris-Rubrecht17/gemulator against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKris-Rubrecht17%2Fgemulator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Kris-Rubrecht17/gemulator
[INFO] finished tweaking git repo https://github.com/Kris-Rubrecht17/gemulator
[INFO] tweaked toml for git repo https://github.com/Kris-Rubrecht17/gemulator written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Kris-Rubrecht17/gemulator on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Kris-Rubrecht17/gemulator 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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dfb89c92b0429f742379e15911444ff7ffa0a438759855bc34f3c82ee20756a4
[INFO] running `Command { std: "docker" "start" "-a" "dfb89c92b0429f742379e15911444ff7ffa0a438759855bc34f3c82ee20756a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dfb89c92b0429f742379e15911444ff7ffa0a438759855bc34f3c82ee20756a4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfb89c92b0429f742379e15911444ff7ffa0a438759855bc34f3c82ee20756a4", kill_on_drop: false }`
[INFO] [stdout] dfb89c92b0429f742379e15911444ff7ffa0a438759855bc34f3c82ee20756a4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a4599741db8250a3cc1fdc009378ddb27c2c305b617fdc989f2a5bc1989038dc
[INFO] running `Command { std: "docker" "start" "-a" "a4599741db8250a3cc1fdc009378ddb27c2c305b617fdc989f2a5bc1989038dc", kill_on_drop: false }`
[INFO] [stderr]    Compiling gem_sdl v0.1.0 (/opt/rustwide/workdir/gem_sdl)
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling proc_macros v0.1.0 (/opt/rustwide/workdir/gem_gba/proc_macros)
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Attribute,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ToTokens,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_macro_input`
[INFO] [stdout]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     parse_macro_input,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gem_gba v0.1.0 (/opt/rustwide/workdir/gem_gba)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |                                              ----^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stdout]     |
[INFO] [stdout] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stdout]     |
[INFO] [stdout] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stdout]     |
[INFO] [stdout] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stdout]     |
[INFO] [stdout] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stdout]     |
[INFO] [stdout] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stdout]     |
[INFO] [stdout] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stdout]     |
[INFO] [stdout] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircleBuffer` is never constructed
[INFO] [stdout]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct CircleBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl CircleBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBAEventKind` is never used
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `global_cycles` is never read
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(crate) global_cycles: u64,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_time` and `global_time` are never used
[INFO] [stdout]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Envelope` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Envelope {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareControl` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SquareControl {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sweep` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Sweep {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct SquareChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `WaveData` is never used
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub union WaveData {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WaveChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct WaveChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl WaveChannel {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoiseChannel` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NoiseChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StereoSample` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct StereoSample {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct AudioBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl AudioBuffer {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn available(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APU` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct APU {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartridgeHeader` is never constructed
[INFO] [stdout]  --> gem_gba/src/gb/cartridge/header.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct CartridgeHeader<'data>(&'data [u8]);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/header.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stdout]    | ---------------------------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn entry(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn title_long(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn cgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn sgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn mbc_ty(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn title_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RomOnly(pub Vec<u8>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_cart` is never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn load_cart<T: AsRef<Path>>(p: T) -> Result<Box<dyn MBC>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOYP` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIV` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR10` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR11` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR13` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR14` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR21` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR22` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR23` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR24` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR30` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR31` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR32` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR33` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR41` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR42` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR43` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR44` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR50` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR51` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR52` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_6` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_7` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_8` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_9` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_A` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_B` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_C` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_D` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_E` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_F` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAT` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LYC` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BGP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const RP: u16 = 0x56;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPRI` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSW` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNK75` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `af` is never used
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl SM83CPU {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn af(&self) -> u16 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tma` is never read
[INFO] [stdout]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Timer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub tma: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.76s
[INFO] running `Command { std: "docker" "inspect" "a4599741db8250a3cc1fdc009378ddb27c2c305b617fdc989f2a5bc1989038dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4599741db8250a3cc1fdc009378ddb27c2c305b617fdc989f2a5bc1989038dc", kill_on_drop: false }`
[INFO] [stdout] a4599741db8250a3cc1fdc009378ddb27c2c305b617fdc989f2a5bc1989038dc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0eff42b0dc7fa280d551093d60ca4178dabb5e0d2e2a2330b72756ccb88d3b41
[INFO] running `Command { std: "docker" "start" "-a" "0eff42b0dc7fa280d551093d60ca4178dabb5e0d2e2a2330b72756ccb88d3b41", kill_on_drop: false }`
[INFO] [stderr]    Compiling gem_sdl v0.1.0 (/opt/rustwide/workdir/gem_sdl)
[INFO] [stderr]    Compiling proc_macros v0.1.0 (/opt/rustwide/workdir/gem_gba/proc_macros)
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Attribute,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ToTokens,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_macro_input`
[INFO] [stdout]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     parse_macro_input,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Attribute`
[INFO] [stdout]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Attribute,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToTokens`
[INFO] [stdout]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ToTokens,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_macro_input`
[INFO] [stdout]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     parse_macro_input,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling gem_gba v0.1.0 (/opt/rustwide/workdir/gem_gba)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |                                              ----^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stdout]     |
[INFO] [stdout] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stdout]     |
[INFO] [stdout] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stdout]     |
[INFO] [stdout] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stdout]     |
[INFO] [stdout] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stdout]     |
[INFO] [stdout] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stdout]     |
[INFO] [stdout] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stdout]     |
[INFO] [stdout] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |                                              ----^^^^^
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircleBuffer` is never constructed
[INFO] [stdout]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct CircleBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl CircleBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBAEventKind` is never used
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `global_cycles` is never read
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(crate) global_cycles: u64,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_time` and `global_time` are never used
[INFO] [stdout]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Envelope` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Envelope {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareControl` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SquareControl {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sweep` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Sweep {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct SquareChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `WaveData` is never used
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub union WaveData {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WaveChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct WaveChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl WaveChannel {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoiseChannel` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NoiseChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StereoSample` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct StereoSample {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct AudioBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl AudioBuffer {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn available(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APU` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct APU {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `logo`, `title_short`, `maker`, and `licensee` are never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/header.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stdout]    | ---------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOYP` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIV` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR10` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR11` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR13` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR14` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR21` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR22` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR23` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR24` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR30` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR31` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR32` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR33` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR41` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR42` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR43` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR44` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR50` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR51` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR52` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_6` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_7` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_8` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_9` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_A` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_B` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_C` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_D` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_E` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_F` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAT` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LYC` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BGP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const RP: u16 = 0x56;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPRI` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSW` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNK75` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `af` is never used
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl SM83CPU {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn af(&self) -> u16 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tma` is never read
[INFO] [stdout]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Timer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub tma: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stdout]     |
[INFO] [stdout] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stdout]     |
[INFO] [stdout] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stdout]     |
[INFO] [stdout] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stdout]     |
[INFO] [stdout] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stdout]     |
[INFO] [stdout] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stdout]     |
[INFO] [stdout] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stdout]     |
[INFO] [stdout] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stdout]     |
[INFO] [stdout] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stdout]     |
[INFO] [stdout] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stdout]     |
[INFO] [stdout] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stdout]     |
[INFO] [stdout] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stdout]     |
[INFO] [stdout] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stdout]     |
[INFO] [stdout] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stdout]     |
[INFO] [stdout] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stdout]     |
[INFO] [stdout] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stdout]     |
[INFO] [stdout] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stdout]     |
[INFO] [stdout] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stdout]     |
[INFO] [stdout] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stdout]     |
[INFO] [stdout] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stdout]     |
[INFO] [stdout] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stdout]     |
[INFO] [stdout] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stdout]     |
[INFO] [stdout] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stdout]     |
[INFO] [stdout] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stdout]     |
[INFO] [stdout] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stdout]     |
[INFO] [stdout] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stdout]     |
[INFO] [stdout] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stdout]     |
[INFO] [stdout] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stdout]     |
[INFO] [stdout] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bus`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cpu`
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CircleBuffer` is never constructed
[INFO] [stdout]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct CircleBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl CircleBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  23 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GBAEventKind` is never used
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `global_cycles` is never read
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stdout]    |                   -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub(crate) global_cycles: u64,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_time` and `global_time` are never used
[INFO] [stdout]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Envelope` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct Envelope {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareControl` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SquareControl {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sweep` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Sweep {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SquareChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct SquareChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: union `WaveData` is never used
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub union WaveData {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WaveChannel` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct WaveChannel {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl WaveChannel {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoiseChannel` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NoiseChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StereoSample` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct StereoSample {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AudioBuffer` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct AudioBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl AudioBuffer {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn available(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `APU` is never constructed
[INFO] [stdout]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct APU {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CartridgeHeader` is never constructed
[INFO] [stdout]  --> gem_gba/src/gb/cartridge/header.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct CartridgeHeader<'data>(&'data [u8]);
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/header.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stdout]    | ---------------------------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn entry(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn title_long(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn cgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn sgb(&self) -> u8 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn mbc_ty(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn title_str(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RomOnly` is never constructed
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct RomOnly(pub Vec<u8>);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_cart` is never used
[INFO] [stdout]   --> gem_gba/src/gb/cartridge/mbc.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn load_cart<T: AsRef<Path>>(p: T) -> Result<Box<dyn MBC>, std::io::Error> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOYP` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIV` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TIMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMA` is never used
[INFO] [stdout]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR10` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR11` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR13` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR14` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR21` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR22` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR23` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR24` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR30` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR31` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR32` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR33` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR41` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR42` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR43` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR44` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR50` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR51` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NR52` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_6` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_7` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_8` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_9` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_A` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_B` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_C` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stdout]    |
[INFO] [stdout] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_D` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_E` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVE_F` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STAT` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LYC` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DMA` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BGP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OBP1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY0` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEY1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BANK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA1` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA2` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA3` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA4` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HDMA5` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RP` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub const RP: u16 = 0x56;
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPS` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OCPD` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPRI` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SVBK` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSWY` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSW` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNK75` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM12` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PCM34` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX` is never used
[INFO] [stdout]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `af` is never used
[INFO] [stdout]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl SM83CPU {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn af(&self) -> u16 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tma` is never read
[INFO] [stdout]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Timer {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub tma: u8,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                         ---------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout]  9 | pub(crate) enum GBEventKind {
[INFO] [stdout] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stdout]    |                                                         --- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.65s
[INFO] running `Command { std: "docker" "inspect" "0eff42b0dc7fa280d551093d60ca4178dabb5e0d2e2a2330b72756ccb88d3b41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0eff42b0dc7fa280d551093d60ca4178dabb5e0d2e2a2330b72756ccb88d3b41", kill_on_drop: false }`
[INFO] [stdout] 0eff42b0dc7fa280d551093d60ca4178dabb5e0d2e2a2330b72756ccb88d3b41
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7aaea222960a67737c446e3dc7c3965a0c0322ab7378d711a8e9a0af21c59456
[INFO] running `Command { std: "docker" "start" "-a" "7aaea222960a67737c446e3dc7c3965a0c0322ab7378d711a8e9a0af21c59456", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Attribute`
[INFO] [stderr]  --> gem_gba/proc_macros/src/lib.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     Attribute,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToTokens`
[INFO] [stderr]  --> gem_gba/proc_macros/src/isa_sm83.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     ToTokens,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `parse_macro_input`
[INFO] [stderr]   --> gem_gba/proc_macros/src/isa_sm83.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     parse_macro_input,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `proc_macros` (lib) generated 3 warnings (run `cargo fix --lib -p proc_macros` to apply 3 suggestions)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:177:46
[INFO] [stderr]     |
[INFO] [stderr] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stderr]     |                                              ----^^^^^
[INFO] [stderr]     |                                              |
[INFO] [stderr]     |                                              help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/mbc.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     let mut len = std::fs::metadata(&p)?.len() as usize;
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:220:40
[INFO] [stderr]     |
[INFO] [stderr] 220 |     fn call_update_spl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:227:40
[INFO] [stderr]     |
[INFO] [stderr] 227 |     fn call_update_sph(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:231:35
[INFO] [stderr]     |
[INFO] [stderr] 231 |     fn update_pch(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:242:40
[INFO] [stderr]     |
[INFO] [stderr] 242 |     fn call_update_pcl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:248:33
[INFO] [stderr]     |
[INFO] [stderr] 248 |     pub fn call(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:253:38
[INFO] [stderr]     |
[INFO] [stderr] 253 |     pub fn jr_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:261:31
[INFO] [stderr]     |
[INFO] [stderr] 261 |     pub fn jr(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:266:38
[INFO] [stderr]     |
[INFO] [stderr] 266 |     fn ret_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:271:42
[INFO] [stderr]     |
[INFO] [stderr] 271 |     fn ret_update_spl(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:277:42
[INFO] [stderr]     |
[INFO] [stderr] 277 |     fn ret_update_sph(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:304:42
[INFO] [stderr]     |
[INFO] [stderr] 304 |     pub fn add_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:308:41
[INFO] [stderr]     |
[INFO] [stderr] 308 |     pub fn add_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:323:35
[INFO] [stderr]     |
[INFO] [stderr] 323 |     pub fn add_sp(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:340:33
[INFO] [stderr]     |
[INFO] [stderr] 340 |     pub fn ldhl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:346:40
[INFO] [stderr]     |
[INFO] [stderr] 346 |     pub fn ld_hl_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:351:34
[INFO] [stderr]     |
[INFO] [stderr] 351 |     pub fn ld_hl(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:356:40
[INFO] [stderr]     |
[INFO] [stderr] 356 |     pub fn ld_de_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:361:38
[INFO] [stderr]     |
[INFO] [stderr] 361 |     pub fn ld_de_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:366:40
[INFO] [stderr]     |
[INFO] [stderr] 366 |     pub fn ld_bc_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:371:38
[INFO] [stderr]     |
[INFO] [stderr] 371 |     pub fn ld_bc_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:376:41
[INFO] [stderr]     |
[INFO] [stderr] 376 |     pub fn ld_sp_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:379:40
[INFO] [stderr]     |
[INFO] [stderr] 379 |     pub fn ld_sp_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:384:38
[INFO] [stderr]     |
[INFO] [stderr] 384 |     pub fn ld_sp_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:389:36
[INFO] [stderr]     |
[INFO] [stderr] 389 |     pub fn ld_a_bc(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:394:36
[INFO] [stderr]     |
[INFO] [stderr] 394 |     pub fn ld_a_de(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:399:36
[INFO] [stderr]     |
[INFO] [stderr] 399 |     pub fn ld_bc_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:405:36
[INFO] [stderr]     |
[INFO] [stderr] 405 |     pub fn ld_de_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:412:37
[INFO] [stderr]     |
[INFO] [stderr] 412 |     pub fn ld_a_hli(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:418:37
[INFO] [stderr]     |
[INFO] [stderr] 418 |     pub fn ld_a_hld(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:424:37
[INFO] [stderr]     |
[INFO] [stderr] 424 |     pub fn ld_hli_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:431:37
[INFO] [stderr]     |
[INFO] [stderr] 431 |     pub fn ld_hld_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:438:44
[INFO] [stderr]     |
[INFO] [stderr] 438 |     pub fn ld_imm_a_finish(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:445:43
[INFO] [stderr]     |
[INFO] [stderr] 445 |     pub fn ld_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:451:37
[INFO] [stderr]     |
[INFO] [stderr] 451 |     pub fn ld_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:456:44
[INFO] [stderr]     |
[INFO] [stderr] 456 |     pub fn ldh_a_imm_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:461:38
[INFO] [stderr]     |
[INFO] [stderr] 461 |     pub fn ldh_a_imm(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:466:44
[INFO] [stderr]     |
[INFO] [stderr] 466 |     pub fn ldh_imm_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:472:38
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn ldh_imm_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:477:42
[INFO] [stderr]     |
[INFO] [stderr] 477 |     pub fn ldh_a_c_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:482:36
[INFO] [stderr]     |
[INFO] [stderr] 482 |     pub fn ldh_a_c(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:487:42
[INFO] [stderr]     |
[INFO] [stderr] 487 |     pub fn ldh_c_a_delay(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:493:36
[INFO] [stderr]     |
[INFO] [stderr] 493 |     pub fn ldh_c_a(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:534:47
[INFO] [stderr]     |
[INFO] [stderr] 534 |     pub fn ld_a_a16_finish(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:539:46
[INFO] [stderr]     |
[INFO] [stderr] 539 |     pub fn ld_a_ai6_delay(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bus`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/isa.rs:544:40
[INFO] [stderr]     |
[INFO] [stderr] 544 |     pub fn ld_a_a16(cpu: &mut SM83CPU, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_bus`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cpu`
[INFO] [stderr]    --> gem_gba/src/gb/sm83/mod.rs:209:37
[INFO] [stderr]     |
[INFO] [stderr] 209 |     pub(crate) fn enable_interrupts(cpu: &mut Self, bus: &mut MemoryBus) {
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CircleBuffer` is never constructed
[INFO] [stderr]  --> gem_gba/src/circle_buffer.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct CircleBuffer {
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> gem_gba/src/circle_buffer.rs:11:12
[INFO] [stderr]     |
[INFO] [stderr]  10 | impl CircleBuffer {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr]  11 |     pub fn with_capacity(cap: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  23 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  28 |     pub fn write_byte(&mut self, byte: u8) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  46 |     pub fn write_word(&mut self, word: u16) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  72 |     pub fn write_dword(&mut self, dword: u32) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub fn write<T>(&mut self, input: &[T], len: usize) -> usize {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 129 |     fn write_truncate<T>(&mut self, input: &[T], mut len: usize) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     pub fn read_byte(&mut self) -> Option<u8> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn read_word(&mut self) -> Option<u16> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn read_dword(&mut self) -> Option<u32> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub fn read<T>(&mut self, output: &mut [T], len: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn dump<T>(&mut self, output: &mut [T], len: usize, mut offset: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `GBAEventKind` is never used
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:47:17
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub(crate) enum GBAEventKind {}
[INFO] [stderr]    |                 ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `global_cycles` is never read
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:93:16
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub(crate) struct EventScheduler<K: EventKind> {
[INFO] [stderr]    |                   -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 93 |     pub(crate) global_cycles: u64,
[INFO] [stderr]    |                ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `current_time` and `global_time` are never used
[INFO] [stderr]    --> gem_gba/src/event_scheduler.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr]  95 | impl<K: EventKind> EventScheduler<K> {
[INFO] [stderr]     | ------------------------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub fn current_time(&self) -> i32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub fn global_time(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Envelope` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub struct Envelope {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SquareControl` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct SquareControl {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Sweep` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub struct Sweep {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SquareChannel` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | pub struct SquareChannel {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: union `WaveData` is never used
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:73:11
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub union WaveData {
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WaveChannel` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/apu.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub struct WaveChannel {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `wave_data32`, `set_wave_data32`, `wave_data8`, and `set_wave_data8` are never used
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:92:12
[INFO] [stderr]     |
[INFO] [stderr]  91 | impl WaveChannel {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr]  92 |     pub fn wave_data32(&self, idx: usize) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub fn set_wave_data32(&mut self, idx: usize, value: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 |     pub fn wave_data8(&self, idx: usize) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn set_wave_data8(&mut self, idx: usize, value: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NoiseChannel` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:114:12
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct NoiseChannel {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StereoSample` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:128:12
[INFO] [stderr]     |
[INFO] [stderr] 128 | pub struct StereoSample {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AudioBuffer` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:133:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub struct AudioBuffer {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | impl AudioBuffer {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr] 138 |     pub fn new(cap: usize, n_channels: u32) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn available(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 147 |     pub fn capacity(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn peek(&mut self, channel: u32, offset: usize) -> i16 {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn dump(&mut self, samples: &mut [u16], count: usize, offset: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn read(&mut self, samples: &mut [u16], count: usize) -> usize {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn write(&mut self, samples: &[u16], mut count: usize) -> usize {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `APU` is never constructed
[INFO] [stderr]    --> gem_gba/src/gb/apu.rs:194:12
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub struct APU {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CartridgeHeader` is never constructed
[INFO] [stderr]  --> gem_gba/src/gb/cartridge/header.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct CartridgeHeader<'data>(&'data [u8]);
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/header.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stderr]    | ---------------------------------- methods in this implementation
[INFO] [stderr] 15 |     pub fn entry(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn title_long(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn cgb(&self) -> u8 {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn sgb(&self) -> u8 {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn mbc_ty(&self) -> u8 {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn title_str(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RomOnly` is never constructed
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/mbc.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct RomOnly(pub Vec<u8>);
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_cart` is never used
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/mbc.rs:37:8
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub fn load_cart<T: AsRef<Path>>(p: T) -> Result<Box<dyn MBC>, std::io::Error> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `JOYP` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:2:15
[INFO] [stderr]   |
[INFO] [stderr] 2 |     pub const JOYP: u16 = 0x00;
[INFO] [stderr]   |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DIV` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:6:15
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub const DIV: u16 = 0x04;
[INFO] [stderr]   |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TIMA` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 |     pub const TIMA: u16 = 0x05;
[INFO] [stderr]   |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TMA` is never used
[INFO] [stderr]  --> gem_gba/src/gb/io.rs:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 |     pub const TMA: u16 = 0x06;
[INFO] [stderr]   |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR10` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:14:15
[INFO] [stderr]    |
[INFO] [stderr] 14 |     pub const NR10: u16 = 0x10;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR11` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub const NR11: u16 = 0x11;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR12` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:16:15
[INFO] [stderr]    |
[INFO] [stderr] 16 |     pub const NR12: u16 = 0x12;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR13` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 |     pub const NR13: u16 = 0x13;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR14` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:18:15
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub const NR14: u16 = 0x14;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR21` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:19:15
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub const NR21: u16 = 0x16;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR22` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:20:15
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub const NR22: u16 = 0x17;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR23` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:21:15
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub const NR23: u16 = 0x18;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR24` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:22:15
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub const NR24: u16 = 0x19;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR30` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:23:15
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub const NR30: u16 = 0x1A;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR31` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:24:15
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub const NR31: u16 = 0x1B;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR32` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:25:15
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub const NR32: u16 = 0x1C;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR33` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:26:15
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub const NR33: u16 = 0x1D;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR34` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:27:15
[INFO] [stderr]    |
[INFO] [stderr] 27 |     pub const NR34: u16 = 0x1E;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR41` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:28:15
[INFO] [stderr]    |
[INFO] [stderr] 28 |     pub const NR41: u16 = 0x20;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR42` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:29:15
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub const NR42: u16 = 0x21;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR43` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:30:15
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub const NR43: u16 = 0x22;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR44` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:31:15
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub const NR44: u16 = 0x23;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR50` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:32:15
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub const NR50: u16 = 0x24;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR51` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:33:15
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub const NR51: u16 = 0x25;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NR52` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:34:15
[INFO] [stderr]    |
[INFO] [stderr] 34 |     pub const NR52: u16 = 0x26;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_0` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:36:15
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub const WAVE_0: u16 = 0x30;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:37:15
[INFO] [stderr]    |
[INFO] [stderr] 37 |     pub const WAVE_1: u16 = 0x31;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_2` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:38:15
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub const WAVE_2: u16 = 0x32;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_3` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:39:15
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub const WAVE_3: u16 = 0x33;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_4` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:40:15
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub const WAVE_4: u16 = 0x34;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_5` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 |     pub const WAVE_5: u16 = 0x35;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_6` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:42:15
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub const WAVE_6: u16 = 0x36;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_7` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:43:15
[INFO] [stderr]    |
[INFO] [stderr] 43 |     pub const WAVE_7: u16 = 0x37;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_8` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:44:15
[INFO] [stderr]    |
[INFO] [stderr] 44 |     pub const WAVE_8: u16 = 0x38;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_9` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:45:15
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub const WAVE_9: u16 = 0x39;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_A` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:46:15
[INFO] [stderr]    |
[INFO] [stderr] 46 |     pub const WAVE_A: u16 = 0x3A;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_B` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:47:15
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub const WAVE_B: u16 = 0x3B;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_C` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:48:15
[INFO] [stderr]    |
[INFO] [stderr] 48 |     pub const WAVE_C: u16 = 0x3C;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_D` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:49:15
[INFO] [stderr]    |
[INFO] [stderr] 49 |     pub const WAVE_D: u16 = 0x3D;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_E` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:50:15
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub const WAVE_E: u16 = 0x3E;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WAVE_F` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:51:15
[INFO] [stderr]    |
[INFO] [stderr] 51 |     pub const WAVE_F: u16 = 0x3F;
[INFO] [stderr]    |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STAT` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub const STAT: u16 = 0x41;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCY` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:55:15
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub const SCY: u16 = 0x42;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SCX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:56:15
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub const SCX: u16 = 0x43;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LYC` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:58:15
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub const LYC: u16 = 0x45;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DMA` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:59:15
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub const DMA: u16 = 0x46;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BGP` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:60:15
[INFO] [stderr]    |
[INFO] [stderr] 60 |     pub const BGP: u16 = 0x47;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OBP0` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:61:15
[INFO] [stderr]    |
[INFO] [stderr] 61 |     pub const OBP0: u16 = 0x48;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OBP1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:62:15
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub const OBP1: u16 = 0x49;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WY` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:63:15
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub const WY: u16 = 0x4A;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:64:15
[INFO] [stderr]    |
[INFO] [stderr] 64 |     pub const WX: u16 = 0x4B;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KEY0` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:66:15
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub const KEY0: u16 = 0x4C;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `KEY1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:67:15
[INFO] [stderr]    |
[INFO] [stderr] 67 |     pub const KEY1: u16 = 0x4D;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `VBK` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:68:15
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub const VBK: u16 = 0x4F;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BANK` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:69:15
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub const BANK: u16 = 0x50;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA1` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:70:15
[INFO] [stderr]    |
[INFO] [stderr] 70 |     pub const HDMA1: u16 = 0x51;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA2` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:71:15
[INFO] [stderr]    |
[INFO] [stderr] 71 |     pub const HDMA2: u16 = 0x52;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA3` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:72:15
[INFO] [stderr]    |
[INFO] [stderr] 72 |     pub const HDMA3: u16 = 0x53;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA4` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:73:15
[INFO] [stdout] 
[INFO] [stderr]    |
[INFO] [stdout] running 2 tests
[INFO] [stderr] 73 |     pub const HDMA4: u16 = 0x54;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HDMA5` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:74:15
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub const HDMA5: u16 = 0x55;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RP` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:75:15
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub const RP: u16 = 0x56;
[INFO] [stderr]    |               ^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BCPS` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:76:15
[INFO] [stdout] test tests::instr_test_01_special ... FAILED
[INFO] [stderr]    |
[INFO] [stderr] 76 |     pub const BCPS: u16 = 0x68;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BCPD` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:77:15
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub const BCPD: u16 = 0x69;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OCPS` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:78:15
[INFO] [stderr]    |
[INFO] [stderr] 78 |     pub const OCPS: u16 = 0x6A;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OCPD` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:79:15
[INFO] [stderr]    |
[INFO] [stderr] 79 |     pub const OCPD: u16 = 0x6B;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OPRI` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:80:15
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub const OPRI: u16 = 0x6C;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SVBK` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:81:15
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub const SVBK: u16 = 0x70;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSWX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:82:15
[INFO] [stderr]    |
[INFO] [stderr] 82 |     pub const PSWX: u16 = 0x72;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSWY` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:83:15
[INFO] [stderr]    |
[INFO] [stderr] 83 |     pub const PSWY: u16 = 0x73;
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSW` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:84:15
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub const PSW: u16 = 0x74;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `UNK75` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 |     pub const UNK75: u16 = 0x75;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PCM12` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:86:15
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub const PCM12: u16 = 0x76;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PCM34` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:87:15
[INFO] [stderr]    |
[INFO] [stderr] 87 |     pub const PCM34: u16 = 0x77;
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX` is never used
[INFO] [stderr]   --> gem_gba/src/gb/io.rs:88:15
[INFO] [stderr]    |
[INFO] [stderr] 88 |     pub const MAX: u16 = 0x100;
[INFO] [stderr]    |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `af` is never used
[INFO] [stderr]    --> gem_gba/src/gb/sm83/mod.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | impl SM83CPU {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn af(&self) -> u16 {
[INFO] [stderr]     |            ^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `tma` is never read
[INFO] [stderr]   --> gem_gba/src/gb/timer.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct Timer {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub tma: u8,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                              --------- in this derive macro expansion
[INFO] [stderr]  9 | pub(crate) enum GBEventKind {
[INFO] [stderr] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                              --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                              --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                         ---------- in this derive macro expansion
[INFO] [stderr]  9 | pub(crate) enum GBEventKind {
[INFO] [stderr] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                         ---------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                         ---------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                                         --- in this derive macro expansion
[INFO] [stderr]  9 | pub(crate) enum GBEventKind {
[INFO] [stderr] 10 |     DMA(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                                         --- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     EI(fn(&mut SM83CPU, &mut MemoryBus)),
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> gem_gba/src/event_scheduler.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Eq, Ord)]
[INFO] [stderr]    |                                                         --- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 12 |     TimerUpdate(fn(&mut EventScheduler<Self>, &mut SM83CPU, &mut MemoryBus, u32)),
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: methods `logo`, `title_short`, `maker`, and `licensee` are never used
[INFO] [stderr]   --> gem_gba/src/gb/cartridge/header.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl<'data> CartridgeHeader<'data> {
[INFO] [stderr]    | ---------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn logo(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn title_short(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn maker(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn licensee(&self) -> &[u8] {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `gem_gba` (lib) generated 154 warnings (run `cargo fix --lib -p gem_gba` to apply 48 suggestions)
[INFO] [stderr] warning: `gem_gba` (lib test) generated 151 warnings (150 duplicates)
[INFO] [stderr] warning: `proc_macros` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/gem_gba-e4636e8b7429d5a3)
[INFO] [stdout] test gb::cartridge::header::cart_header_test::simple_header_test ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::instr_test_01_special stdout ----
[INFO] [stdout] Error: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] 
[INFO] [stdout] ---- gb::cartridge::header::cart_header_test::simple_header_test stdout ----
[INFO] [stdout] "/opt/rustwide/workdir/gem_gba/test_roms/cpu_instrs/individual/01-special.gb"
[INFO] [stdout] 
[INFO] [stdout] thread 'gb::cartridge::header::cart_header_test::simple_header_test' (24) panicked at gem_gba/src/gb/cartridge/header.rs:76:39:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a4ebddfe0a2 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a4ebddfe0a2 - std[716c9a7a72e5c14e]::backtrace_rs::backtrace::trace_unsynchronized::<std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a4ebddfe0a2 - std[716c9a7a72e5c14e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a4ebddfe0a2 - <<std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c5ed12ab89cc536a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a4ebde1295a - <core[c5ed12ab89cc536a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a4ebde1295a - core[c5ed12ab89cc536a]::fmt::write
[INFO] [stdout]    6:     0x5a4ebde02f36 - std[716c9a7a72e5c14e]::io::default_write_fmt::<alloc[9c68fdf4f4f29218]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5a4ebde02f36 - <alloc[9c68fdf4f4f29218]::vec::Vec<u8> as std[716c9a7a72e5c14e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5a4ebdddc48f - <std[716c9a7a72e5c14e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a4ebdddc48f - std[716c9a7a72e5c14e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a4ebddf62a9 - std[716c9a7a72e5c14e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a4ebdd91bae - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x5a4ebdd91bae - test[64760d2bdea328cc]::test_main_with_exit_callback::<test[64760d2bdea328cc]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5a4ebddf6462 - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn for<'a, 'b> core[c5ed12ab89cc536a]::ops::function::Fn<(&'a std[716c9a7a72e5c14e]::panic::PanicHookInfo<'b>,), Output = ()> + core[c5ed12ab89cc536a]::marker::Sync + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::Fn<(&std[716c9a7a72e5c14e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x5a4ebddf6462 - std[716c9a7a72e5c14e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5a4ebdddc548 - std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5a4ebddd3f19 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_end_short_backtrace::<std[716c9a7a72e5c14e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a4ebdddd39d - __rustc[4f0b026143eab78e]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5a4ebde12fcc - core[c5ed12ab89cc536a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a4ebde12da2 - core[c5ed12ab89cc536a]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5a4ebdd7e8ef - <core[c5ed12ab89cc536a]::result::Result<std[716c9a7a72e5c14e]::fs::File, std[716c9a7a72e5c14e]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5a4ebdd7e8ef - gem_gba[89be3eb12f4d355b]::gb::cartridge::header::cart_header_test::simple_header_test
[INFO] [stdout]                                at /opt/rustwide/workdir/gem_gba/src/gb/cartridge/header.rs:76:39
[INFO] [stdout]   22:     0x5a4ebdd7b3a7 - gem_gba[89be3eb12f4d355b]::gb::cartridge::header::cart_header_test::simple_header_test::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/gem_gba/src/gb/cartridge/header.rs:71:28
[INFO] [stdout]   23:     0x5a4ebdd7ff36 - <gem_gba[89be3eb12f4d355b]::gb::cartridge::header::cart_header_test::simple_header_test::{closure#0} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5a4ebdd85f5b - <fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5a4ebdd85f5b - test[64760d2bdea328cc]::__rust_begin_short_backtrace::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, fn() -> core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5a4ebdd927ba - test[64760d2bdea328cc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5a4ebdd927ba - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5a4ebdd927ba - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5a4ebdd927ba - std[716c9a7a72e5c14e]::panicking::catch_unwind::<core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>, core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stderr] error: test failed, to rerun pass `-p gem_gba --lib`
[INFO] [stdout]   30:     0x5a4ebdd927ba - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<test[64760d2bdea328cc]::run_test_in_process::{closure#0}>, core[c5ed12ab89cc536a]::result::Result<(), alloc[9c68fdf4f4f29218]::string::String>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5a4ebdd927ba - test[64760d2bdea328cc]::run_test_in_process
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5a4ebdd927ba - test[64760d2bdea328cc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5a4ebdd8cc84 - test[64760d2bdea328cc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5a4ebdd8cc84 - std[716c9a7a72e5c14e]::sys::backtrace::__rust_begin_short_backtrace::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5a4ebdd952b2 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5a4ebdd952b2 - <core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5a4ebdd952b2 - std[716c9a7a72e5c14e]::panicking::catch_unwind::do_call::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5a4ebdd952b2 - std[716c9a7a72e5c14e]::panicking::catch_unwind::<(), core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5a4ebdd952b2 - std[716c9a7a72e5c14e]::panic::catch_unwind::<core[c5ed12ab89cc536a]::panic::unwind_safe::AssertUnwindSafe<std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5a4ebdd952b2 - std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked::<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5a4ebdd952b2 - <std[716c9a7a72e5c14e]::thread::lifecycle::spawn_unchecked<test[64760d2bdea328cc]::run_test::{closure#1}, ()>::{closure#1} as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5a4ebddfd94f - <alloc[9c68fdf4f4f29218]::boxed::Box<dyn core[c5ed12ab89cc536a]::ops::function::FnOnce<(), Output = ()> + core[c5ed12ab89cc536a]::marker::Send> as core[c5ed12ab89cc536a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x5a4ebddfd94f - <std[716c9a7a72e5c14e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   44:     0x77c72f50aaa4 - <unknown>
[INFO] [stdout]   45:     0x77c72f597a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     gb::cartridge::header::cart_header_test::simple_header_test
[INFO] [stdout]     tests::instr_test_01_special
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7aaea222960a67737c446e3dc7c3965a0c0322ab7378d711a8e9a0af21c59456", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7aaea222960a67737c446e3dc7c3965a0c0322ab7378d711a8e9a0af21c59456", kill_on_drop: false }`
[INFO] [stdout] 7aaea222960a67737c446e3dc7c3965a0c0322ab7378d711a8e9a0af21c59456
