[INFO] cloning repository https://github.com/Guterfps/NES_Emulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Guterfps/NES_Emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGuterfps%2FNES_Emulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGuterfps%2FNES_Emulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 30be714a3dbbe132a7d4a2a3a3fe29e8442c00d0 [INFO] checking Guterfps/NES_Emulator against try#7b3da9103634dffd4f4365cfd8642427c781d99f+rustflags=-Dinherent-method-on-receiver for 152214-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGuterfps%2FNES_Emulator" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Guterfps/NES_Emulator [INFO] finished tweaking git repo https://github.com/Guterfps/NES_Emulator [INFO] tweaked toml for git repo https://github.com/Guterfps/NES_Emulator written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Guterfps/NES_Emulator on toolchain 7b3da9103634dffd4f4365cfd8642427c781d99f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Guterfps/NES_Emulator 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" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sdl3-sys v0.5.11+SDL3-3.2.28 [INFO] [stderr] Downloaded sdl3 v0.16.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a14bdb6ba0c9b3d57be50688317acd45867e60f73a76ccd7db39985c94930a2e [INFO] running `Command { std: "docker" "start" "-a" "a14bdb6ba0c9b3d57be50688317acd45867e60f73a76ccd7db39985c94930a2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a14bdb6ba0c9b3d57be50688317acd45867e60f73a76ccd7db39985c94930a2e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a14bdb6ba0c9b3d57be50688317acd45867e60f73a76ccd7db39985c94930a2e", kill_on_drop: false }` [INFO] [stdout] a14bdb6ba0c9b3d57be50688317acd45867e60f73a76ccd7db39985c94930a2e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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 -Dinherent-method-on-receiver" "-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c8c2ed18441263e55df210ae9b0f875f36ba4f99d1c77246800c5a809cf304b4 [INFO] running `Command { std: "docker" "start" "-a" "c8c2ed18441263e55df210ae9b0f875f36ba4f99d1c77246800c5a809cf304b4", kill_on_drop: false }` [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling sdl3-sys v0.5.11+SDL3-3.2.28 [INFO] [stderr] Compiling sdl3 v0.16.2 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking nes v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::emulator::apu::regs::Reg` [INFO] [stdout] --> src/emulator/apu/channels/dmc.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::emulator::apu::regs::Reg; [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: `SPRITE_0_HIT_FLAG` [INFO] [stdout] --> src/emulator/ppu.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 18 | use status_reg::{SPRITE_0_HIT_FLAG, StatusReg}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::emulator::apu::regs::Reg` [INFO] [stdout] --> src/emulator/apu/channels/dmc.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::emulator::apu::regs::Reg; [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: `SPRITE_0_HIT_FLAG` [INFO] [stdout] --> src/emulator/ppu.rs:18:18 [INFO] [stdout] | [INFO] [stdout] 18 | use status_reg::{SPRITE_0_HIT_FLAG, StatusReg}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/emulator/cpu/test.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut chr_rom = [0u8; CHR_PAGE_SIZE]; [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: unused variable: `bottom_right_nt` [INFO] [stdout] --> src/emulator/ppu/render.rs:54:40 [INFO] [stdout] | [INFO] [stdout] 54 | let (main_nt, right_nt, bottom_nt, bottom_right_nt) = get_nametables(ppu, base_nametable); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bottom_right_nt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/main.rs:104:33 [INFO] [stdout] | [INFO] [stdout] 104 | cpu.run_with_callback(move |cpu| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `AddressingMode` is more private than the item `trace::OpCode::mode` [INFO] [stdout] --> src/emulator/cpu/trace.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub mode: AddressingMode, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ field `trace::OpCode::mode` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `AddressingMode` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/emulator/cpu.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `nes_test` is never used [INFO] [stdout] --> src/main.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn nes_test() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_tile` is never used [INFO] [stdout] --> src/main.rs:243:4 [INFO] [stdout] | [INFO] [stdout] 243 | fn show_tile(chr_rom: &Vec, bank: usize, tile_n: usize) -> Frame { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_tile_bank` is never used [INFO] [stdout] --> src/main.rs:273:4 [INFO] [stdout] | [INFO] [stdout] 273 | fn show_tile_bank(chr_rom: &Vec, bank: usize) -> Frame { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tiles` is never used [INFO] [stdout] --> src/main.rs:312:4 [INFO] [stdout] | [INFO] [stdout] 312 | fn tiles() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `snake_game` is never used [INFO] [stdout] --> src/main.rs:354:4 [INFO] [stdout] | [INFO] [stdout] 354 | fn snake_game() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_user_input` is never used [INFO] [stdout] --> src/main.rs:395:4 [INFO] [stdout] | [INFO] [stdout] 395 | fn handle_user_input(cpu: &mut CPU6502, event_pump: &mut EventPump) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `color` is never used [INFO] [stdout] --> src/main.rs:424:4 [INFO] [stdout] | [INFO] [stdout] 424 | fn color(byte: u8) -> Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_screan_state` is never used [INFO] [stdout] --> src/main.rs:438:4 [INFO] [stdout] | [INFO] [stdout] 438 | fn read_screan_state(cpu: &mut CPU6502, frame: &mut [u8; 32 * 3 * 32]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_interrupt` is never used [INFO] [stdout] --> src/emulator/apu/channels/dmc.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Dmc { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn clear_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_INTERRUPT_MASK` is never used [INFO] [stdout] --> src/emulator/apu/regs/status.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const FRAME_INTERRUPT_MASK: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_REGISTERS` is never used [INFO] [stdout] --> src/emulator/bus.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_cycles` is never used [INFO] [stdout] --> src/emulator/bus.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl<'a> Bus<'a> { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn get_cycles(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ZERO_PAGE` is never used [INFO] [stdout] --> src/emulator/cpu.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const ZERO_PAGE: u16 = 0x0000; // 0x0000 - 0x00FF [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/emulator/cpu.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl<'a> CPU6502<'a> { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn load(&mut self, program: Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn load_and_run(&mut self, program: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn mem_write(&mut self, addr: u16, data: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn mem_read(&mut self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn get_cycles_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | fn skb(&mut self, _mode: &AddressingMode) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 729 | fn skw(&mut self, _mode: &AddressingMode) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OpCode` is never constructed [INFO] [stdout] --> src/emulator/cpu/trace.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct OpCode { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/emulator/cpu/trace.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl OpCode { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 13 | fn new(code: u8, mnemonic: &'static str, len: u8, cycles: u8, mode: AddressingMode) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trace` is never used [INFO] [stdout] --> src/emulator/cpu/trace.rs:367:8 [INFO] [stdout] | [INFO] [stdout] 367 | pub fn trace(cpu: &mut CPU6502) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mem_write_u16` is never used [INFO] [stdout] --> src/emulator/memory.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait MemAccess { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 9 | fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `scroll_reg` and `addr_reg` are never read [INFO] [stdout] --> src/emulator/ppu.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | scroll_reg: ScrollReg, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | addr_reg: AddressReg, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLE_0` is never used [INFO] [stdout] --> src/emulator/ppu.rs:56:7 [INFO] [stdout] | [INFO] [stdout] 56 | const NAME_TABLE_0: u16 = 0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOT_328_IN_SCANLINE` is never used [INFO] [stdout] --> src/emulator/ppu.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | const DOT_328_IN_SCANLINE: usize = 328; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_sprite_0_hit` and `increment_vram_addr` are never used [INFO] [stdout] --> src/emulator/ppu.rs:325:8 [INFO] [stdout] | [INFO] [stdout] 77 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 325 | fn is_sprite_0_hit(&self, cycle: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | fn increment_vram_addr(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/emulator/ppu/address_reg.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct AddressReg { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 4 | value: (u8, u8), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MIRRORS_MASK` is never used [INFO] [stdout] --> src/emulator/ppu/address_reg.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const MIRRORS_MASK: u16 = 0b1111_1111_1111_1111; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set`, `get`, `update`, `increment`, and `mirror_down_addr` are never used [INFO] [stdout] --> src/emulator/ppu/address_reg.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl AddressReg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 14 | fn set(&mut self, data: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn update(&mut self, data: u8, latch: bool) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn increment(&mut self, inc: AddressInc) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn mirror_down_addr(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLE_FLAGS` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const NAME_TABLE_FLAGS: u8 = 0b0000_0011; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASTER_SLAVE_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const MASTER_SLAVE_FLAG: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const NAME_TABLE_SIZE: u16 = 0x400; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLES_ADRESS` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const NAME_TABLES_ADRESS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `vram_addr_increment` and `nametable_addr` are never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl ControlReg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn vram_addr_increment(&self) -> AddressInc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn nametable_addr(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_w`, `get_scroll_x`, `get_scroll_y`, and `get_nametable_select` are never used [INFO] [stdout] --> src/emulator/ppu/internal_regs.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl InternalRegs { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn get_w(&self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_scroll_x(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn get_scroll_y(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn get_nametable_select(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GREY_SCALE_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const GREY_SCALE_FLAG: u8 = 0b0000_0001; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPHASIZE_RED_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const EMPHASIZE_RED_FLAG: u8 = 0b0010_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPHASIZE_GREEN_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const EMPHASIZE_GREEN_FLAG: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPHASIZE_BKUE_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const EMPHASIZE_BKUE_FLAG: u8 = 0b1000_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl MaskReg { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn get(&self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const TILE_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILE_WIDTH` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const TILE_WIDTH: usize = 8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILE_HIGHT` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const TILE_HIGHT: usize = 8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_OF_BG_PALLETES` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const NUM_OF_BG_PALLETES: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COLOR_BITS` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const COLOR_BITS: u8 = 0b11; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const SPRITE_SIZE: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_INDEX_BYTE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const SPRITE_INDEX_BYTE: usize = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_ATTR_BYTE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const SPRITE_ATTR_BYTE: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_X_POS_BYTE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const SPRITE_X_POS_BYTE: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_FLIP_HOR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const SPRITE_FLIP_HOR: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_FLIP_VER` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const SPRITE_FLIP_VER: u8 = 0b1000_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_PALETTE_MASK` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | const SPRITE_PALETTE_MASK: u8 = 0b11; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `START_SPRITE_PALETTE_OFFSET` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const START_SPRITE_PALETTE_OFFSET: u8 = 0x11; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_OF_SPRITE_PALETTES` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | const NUM_OF_SPRITE_PALETTES: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ATTRIBUTE_OFFSET` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const ATTRIBUTE_OFFSET: usize = 0x03C0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TWO_NAMETABLE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const TWO_NAMETABLE_SIZE: u16 = NAME_TABLE_SIZE * 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `THREE_NAMETABLE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const THREE_NAMETABLE_SIZE: u16 = NAME_TABLE_SIZE * 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIRST_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const FIRST_TABLE_ADDR: u16 = VRAM_ADDR; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SECOND_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const SECOND_TABLE_ADDR: u16 = VRAM_ADDR + NAME_TABLE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `THIRD_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const THIRD_TABLE_ADDR: u16 = VRAM_ADDR + TWO_NAMETABLE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FORTH_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | const FORTH_TABLE_ADDR: u16 = VRAM_ADDR + THREE_NAMETABLE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISPLAY_WIDTH` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | const DISPLAY_WIDTH: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISPLAY_HIGHT` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:40:7 [INFO] [stdout] | [INFO] [stdout] 40 | const DISPLAY_HIGHT: usize = 240; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn render(ppu: &Ppu, frame: &mut Frame) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_backgound` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn draw_backgound(ppu: &Ppu, frame: &mut Frame) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bg_pallete` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:136:4 [INFO] [stdout] | [INFO] [stdout] 136 | fn bg_pallete( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_nametables` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn get_nametables(ppu: &Ppu, base_addr: u16) -> (&[u8], &[u8], &[u8], &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_sprites` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:204:4 [INFO] [stdout] | [INFO] [stdout] 204 | fn draw_sprites(ppu: &Ppu, frame: &mut Frame) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sprite_palette` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:260:4 [INFO] [stdout] | [INFO] [stdout] 260 | fn sprite_palette(ppu: &Ppu, pal_idx: u8) -> [u8; NUM_OF_SPRITE_PALETTES] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_name_table` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:271:4 [INFO] [stdout] | [INFO] [stdout] 271 | fn render_name_table( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rect` is never constructed [INFO] [stdout] --> src/emulator/ppu/render/rect.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Rect { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/emulator/ppu/render/rect.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Rect { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 9 | pub fn new(x1: usize, y1: usize, x2: usize, y2: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x` and `y` are never read [INFO] [stdout] --> src/emulator/ppu/scroll_reg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct ScrollReg { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 2 | x: u8, [INFO] [stdout] | ^ [INFO] [stdout] 3 | y: u8, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write`, `scroll_x`, and `scroll_y` are never used [INFO] [stdout] --> src/emulator/ppu/scroll_reg.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ScrollReg { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn write(&mut self, value: u8, latch: bool) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn scroll_x(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn scroll_y(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_OPEN_BUS` is never used [INFO] [stdout] --> src/emulator/ppu/status_reg.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const PPU_OPEN_BUS: u8 = 0b0001_1111; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_OVERFLOW_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/status_reg.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const SPRITE_OVERFLOW_FLAG: u8 = 0b0010_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `update` is never used [INFO] [stdout] --> src/emulator/ppu/status_reg.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl StatusReg { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn update(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mapper` is never read [INFO] [stdout] --> src/emulator/rom.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Rom { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | mapper: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAGS_8_INDX` is never used [INFO] [stdout] --> src/emulator/rom.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const FLAGS_8_INDX: usize = 8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAGS_9_INDX` is never used [INFO] [stdout] --> src/emulator/rom.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const FLAGS_9_INDX: usize = 9; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAGS_10_INDX` is never used [INFO] [stdout] --> src/emulator/rom.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const FLAGS_10_INDX: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `read_prg`, `reag_chr`, `prg_size`, and `chr_size` are never used [INFO] [stdout] --> src/emulator/rom.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Rom { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn read_prg(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn reag_chr(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn prg_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn chr_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bottom_right_nt` [INFO] [stdout] --> src/emulator/ppu/render.rs:54:40 [INFO] [stdout] | [INFO] [stdout] 54 | let (main_nt, right_nt, bottom_nt, bottom_right_nt) = get_nametables(ppu, base_nametable); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_bottom_right_nt` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/main.rs:104:33 [INFO] [stdout] | [INFO] [stdout] 104 | cpu.run_with_callback(move |cpu| { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `AddressingMode` is more private than the item `trace::OpCode::mode` [INFO] [stdout] --> src/emulator/cpu/trace.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub mode: AddressingMode, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ field `trace::OpCode::mode` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `AddressingMode` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/emulator/cpu.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `nes_test` is never used [INFO] [stdout] --> src/main.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn nes_test() { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_tile` is never used [INFO] [stdout] --> src/main.rs:243:4 [INFO] [stdout] | [INFO] [stdout] 243 | fn show_tile(chr_rom: &Vec, bank: usize, tile_n: usize) -> Frame { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_tile_bank` is never used [INFO] [stdout] --> src/main.rs:273:4 [INFO] [stdout] | [INFO] [stdout] 273 | fn show_tile_bank(chr_rom: &Vec, bank: usize) -> Frame { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tiles` is never used [INFO] [stdout] --> src/main.rs:312:4 [INFO] [stdout] | [INFO] [stdout] 312 | fn tiles() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `snake_game` is never used [INFO] [stdout] --> src/main.rs:354:4 [INFO] [stdout] | [INFO] [stdout] 354 | fn snake_game() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_user_input` is never used [INFO] [stdout] --> src/main.rs:395:4 [INFO] [stdout] | [INFO] [stdout] 395 | fn handle_user_input(cpu: &mut CPU6502, event_pump: &mut EventPump) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `color` is never used [INFO] [stdout] --> src/main.rs:424:4 [INFO] [stdout] | [INFO] [stdout] 424 | fn color(byte: u8) -> Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_screan_state` is never used [INFO] [stdout] --> src/main.rs:438:4 [INFO] [stdout] | [INFO] [stdout] 438 | fn read_screan_state(cpu: &mut CPU6502, frame: &mut [u8; 32 * 3 * 32]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_interrupt` is never used [INFO] [stdout] --> src/emulator/apu/channels/dmc.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Dmc { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn clear_interrupt(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FRAME_INTERRUPT_MASK` is never used [INFO] [stdout] --> src/emulator/apu/regs/status.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const FRAME_INTERRUPT_MASK: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_REGISTERS` is never used [INFO] [stdout] --> src/emulator/bus.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const PPU_REGISTERS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_cycles` is never used [INFO] [stdout] --> src/emulator/bus.rs:134:12 [INFO] [stdout] | [INFO] [stdout] 61 | impl<'a> Bus<'a> { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn get_cycles(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ZERO_PAGE` is never used [INFO] [stdout] --> src/emulator/cpu.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const ZERO_PAGE: u16 = 0x0000; // 0x0000 - 0x00FF [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/emulator/cpu.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl<'a> CPU6502<'a> { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn load(&mut self, program: Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn load_and_run(&mut self, program: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn mem_write(&mut self, addr: u16, data: u8) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn mem_read(&mut self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn get_cycles_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 725 | fn skb(&mut self, _mode: &AddressingMode) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 729 | fn skw(&mut self, _mode: &AddressingMode) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OpCode` is never constructed [INFO] [stdout] --> src/emulator/cpu/trace.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct OpCode { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/emulator/cpu/trace.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl OpCode { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 13 | fn new(code: u8, mnemonic: &'static str, len: u8, cycles: u8, mode: AddressingMode) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trace` is never used [INFO] [stdout] --> src/emulator/cpu/trace.rs:367:8 [INFO] [stdout] | [INFO] [stdout] 367 | pub fn trace(cpu: &mut CPU6502) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mem_write_u16` is never used [INFO] [stdout] --> src/emulator/memory.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait MemAccess { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 9 | fn mem_write_u16(&mut self, pos: u16, data: u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `scroll_reg` and `addr_reg` are never read [INFO] [stdout] --> src/emulator/ppu.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Ppu { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | scroll_reg: ScrollReg, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | addr_reg: AddressReg, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLE_0` is never used [INFO] [stdout] --> src/emulator/ppu.rs:56:7 [INFO] [stdout] | [INFO] [stdout] 56 | const NAME_TABLE_0: u16 = 0; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DOT_328_IN_SCANLINE` is never used [INFO] [stdout] --> src/emulator/ppu.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | const DOT_328_IN_SCANLINE: usize = 328; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_sprite_0_hit` and `increment_vram_addr` are never used [INFO] [stdout] --> src/emulator/ppu.rs:325:8 [INFO] [stdout] | [INFO] [stdout] 77 | impl Ppu { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 325 | fn is_sprite_0_hit(&self, cycle: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | fn increment_vram_addr(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/emulator/ppu/address_reg.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct AddressReg { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 4 | value: (u8, u8), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MIRRORS_MASK` is never used [INFO] [stdout] --> src/emulator/ppu/address_reg.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const MIRRORS_MASK: u16 = 0b1111_1111_1111_1111; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set`, `get`, `update`, `increment`, and `mirror_down_addr` are never used [INFO] [stdout] --> src/emulator/ppu/address_reg.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 9 | impl AddressReg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 14 | fn set(&mut self, data: u16) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn get(&self) -> u16 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn update(&mut self, data: u8, latch: bool) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn increment(&mut self, inc: AddressInc) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn mirror_down_addr(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLE_FLAGS` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const NAME_TABLE_FLAGS: u8 = 0b0000_0011; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASTER_SLAVE_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const MASTER_SLAVE_FLAG: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const NAME_TABLE_SIZE: u16 = 0x400; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NAME_TABLES_ADRESS` is never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const NAME_TABLES_ADRESS: u16 = 0x2000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `vram_addr_increment` and `nametable_addr` are never used [INFO] [stdout] --> src/emulator/ppu/control_reg.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl ControlReg { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn vram_addr_increment(&self) -> AddressInc { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn nametable_addr(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_w`, `get_scroll_x`, `get_scroll_y`, and `get_nametable_select` are never used [INFO] [stdout] --> src/emulator/ppu/internal_regs.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl InternalRegs { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn get_w(&self) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_scroll_x(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn get_scroll_y(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn get_nametable_select(&self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GREY_SCALE_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const GREY_SCALE_FLAG: u8 = 0b0000_0001; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPHASIZE_RED_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const EMPHASIZE_RED_FLAG: u8 = 0b0010_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPHASIZE_GREEN_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const EMPHASIZE_GREEN_FLAG: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPHASIZE_BKUE_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const EMPHASIZE_BKUE_FLAG: u8 = 0b1000_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get` is never used [INFO] [stdout] --> src/emulator/ppu/mask_reg.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl MaskReg { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn get(&self) -> u8 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const TILE_SIZE: usize = 16; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILE_WIDTH` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:15:7 [INFO] [stdout] | [INFO] [stdout] 15 | const TILE_WIDTH: usize = 8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILE_HIGHT` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const TILE_HIGHT: usize = 8; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_OF_BG_PALLETES` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const NUM_OF_BG_PALLETES: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COLOR_BITS` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const COLOR_BITS: u8 = 0b11; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const SPRITE_SIZE: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_INDEX_BYTE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const SPRITE_INDEX_BYTE: usize = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_ATTR_BYTE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const SPRITE_ATTR_BYTE: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_X_POS_BYTE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const SPRITE_X_POS_BYTE: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_FLIP_HOR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const SPRITE_FLIP_HOR: u8 = 0b0100_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_FLIP_VER` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const SPRITE_FLIP_VER: u8 = 0b1000_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_PALETTE_MASK` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | const SPRITE_PALETTE_MASK: u8 = 0b11; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `START_SPRITE_PALETTE_OFFSET` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const START_SPRITE_PALETTE_OFFSET: u8 = 0x11; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUM_OF_SPRITE_PALETTES` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | const NUM_OF_SPRITE_PALETTES: usize = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ATTRIBUTE_OFFSET` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const ATTRIBUTE_OFFSET: usize = 0x03C0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TWO_NAMETABLE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const TWO_NAMETABLE_SIZE: u16 = NAME_TABLE_SIZE * 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `THREE_NAMETABLE_SIZE` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const THREE_NAMETABLE_SIZE: u16 = NAME_TABLE_SIZE * 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIRST_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const FIRST_TABLE_ADDR: u16 = VRAM_ADDR; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SECOND_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const SECOND_TABLE_ADDR: u16 = VRAM_ADDR + NAME_TABLE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `THIRD_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const THIRD_TABLE_ADDR: u16 = VRAM_ADDR + TWO_NAMETABLE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FORTH_TABLE_ADDR` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | const FORTH_TABLE_ADDR: u16 = VRAM_ADDR + THREE_NAMETABLE_SIZE; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISPLAY_WIDTH` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:39:7 [INFO] [stdout] | [INFO] [stdout] 39 | const DISPLAY_WIDTH: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DISPLAY_HIGHT` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:40:7 [INFO] [stdout] | [INFO] [stdout] 40 | const DISPLAY_HIGHT: usize = 240; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn render(ppu: &Ppu, frame: &mut Frame) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_backgound` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn draw_backgound(ppu: &Ppu, frame: &mut Frame) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bg_pallete` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:136:4 [INFO] [stdout] | [INFO] [stdout] 136 | fn bg_pallete( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_nametables` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn get_nametables(ppu: &Ppu, base_addr: u16) -> (&[u8], &[u8], &[u8], &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_sprites` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:204:4 [INFO] [stdout] | [INFO] [stdout] 204 | fn draw_sprites(ppu: &Ppu, frame: &mut Frame) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sprite_palette` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:260:4 [INFO] [stdout] | [INFO] [stdout] 260 | fn sprite_palette(ppu: &Ppu, pal_idx: u8) -> [u8; NUM_OF_SPRITE_PALETTES] { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_name_table` is never used [INFO] [stdout] --> src/emulator/ppu/render.rs:271:4 [INFO] [stdout] | [INFO] [stdout] 271 | fn render_name_table( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rect` is never constructed [INFO] [stdout] --> src/emulator/ppu/render/rect.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Rect { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/emulator/ppu/render/rect.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Rect { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 9 | pub fn new(x1: usize, y1: usize, x2: usize, y2: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `x` and `y` are never read [INFO] [stdout] --> src/emulator/ppu/scroll_reg.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct ScrollReg { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 2 | x: u8, [INFO] [stdout] | ^ [INFO] [stdout] 3 | y: u8, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `write`, `scroll_x`, and `scroll_y` are never used [INFO] [stdout] --> src/emulator/ppu/scroll_reg.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ScrollReg { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn write(&mut self, value: u8, latch: bool) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn scroll_x(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn scroll_y(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PPU_OPEN_BUS` is never used [INFO] [stdout] --> src/emulator/ppu/status_reg.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const PPU_OPEN_BUS: u8 = 0b0001_1111; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SPRITE_OVERFLOW_FLAG` is never used [INFO] [stdout] --> src/emulator/ppu/status_reg.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const SPRITE_OVERFLOW_FLAG: u8 = 0b0010_0000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `update` is never used [INFO] [stdout] --> src/emulator/ppu/status_reg.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl StatusReg { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn update(&mut self, value: u8) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mapper` is never read [INFO] [stdout] --> src/emulator/rom.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Rom { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 13 | mapper: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAGS_8_INDX` is never used [INFO] [stdout] --> src/emulator/rom.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const FLAGS_8_INDX: usize = 8; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAGS_9_INDX` is never used [INFO] [stdout] --> src/emulator/rom.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const FLAGS_9_INDX: usize = 9; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FLAGS_10_INDX` is never used [INFO] [stdout] --> src/emulator/rom.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const FLAGS_10_INDX: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `read_prg`, `reag_chr`, `prg_size`, and `chr_size` are never used [INFO] [stdout] --> src/emulator/rom.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl Rom { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn read_prg(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn reag_chr(&self, addr: u16) -> u8 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn prg_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn chr_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.28s [INFO] running `Command { std: "docker" "inspect" "c8c2ed18441263e55df210ae9b0f875f36ba4f99d1c77246800c5a809cf304b4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c8c2ed18441263e55df210ae9b0f875f36ba4f99d1c77246800c5a809cf304b4", kill_on_drop: false }` [INFO] [stdout] c8c2ed18441263e55df210ae9b0f875f36ba4f99d1c77246800c5a809cf304b4