diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs index 22cefddedf0f124b70e64e2793b93899164c5709..81aac1048546a18951475866f60e7eb7b77712b3 100644 --- a/examples/sdl/src/main.rs +++ b/examples/sdl/src/main.rs @@ -159,14 +159,14 @@ fn main() { //let rom = game_boy.load_rom_file("../../res/roms.prop/dr_mario.gb"); //let rom = game_boy.load_rom_file("../../res/roms.prop/alleyway.gb"); //let rom = game_boy.load_rom_file("../../res/roms.prop/super_mario.gb"); - let rom = game_boy.load_rom_file("../../res/roms.prop/super_mario_2.gb"); + //let rom = game_boy.load_rom_file("../../res/roms.prop/super_mario_2.gb"); //let rom = game_boy.load_rom_file("../../res/roms/firstwhite.gb"); //let rom = game_boy.load_rom_file("../../res/roms/opus5.gb"); - //let rom = game_boy.load_rom_file("../../res/roms/paradius/cpu/cpu_instrs.gb"); // CRASHED + //let rom = game_boy.load_rom_file("../../res/roms/paradius/cpu/cpu_instrs.gb"); // PASSED //let rom = game_boy.load_rom_file("../../res/roms/paradius/interrupt_time/interrupt_time.gb"); // FAILED - //let rom = game_boy.load_rom_file("../../res/roms/paradius/instr_timing/instr_timing.gb"); // FAILED + let rom = game_boy.load_rom_file("../../res/roms/paradius/instr_timing/instr_timing.gb"); // FAILED //let rom = game_boy.load_rom_file("../../res/roms/paradius/mem_timing/mem_timing.gb"); // NO FINISH //let rom = game_boy.load_rom_file("../../res/roms/paradius/cpu/01-special.gb"); // PASSED //let rom = game_boy.load_rom_file("../../res/roms/paradius/cpu/02-interrupts.gb"); // PASSED diff --git a/src/pad.rs b/src/pad.rs index 814adfeb7cf3f82294f702fa2c62fcd92249b02f..7c2bf470f7bbb947183466bc63041cc828bd1ddc 100644 --- a/src/pad.rs +++ b/src/pad.rs @@ -1,6 +1,8 @@ #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; +use crate::warnln; + #[derive(Clone, Copy, PartialEq)] pub enum PadSelection { Action, @@ -77,7 +79,10 @@ impl Pad { }; value } - addr => panic!("Reading from unknown Pad location 0x{:04x}", addr), + _ => { + warnln!("Reading from unknown Pad location 0x{:04x}", addr); + 0xff + } } } @@ -90,7 +95,7 @@ impl Pad { PadSelection::Action } } - addr => panic!("Writing to unknown Pad location 0x{:04x}", addr), + _ => warnln!("Writing to unknown Pad location 0x{:04x}", addr), } } diff --git a/src/ppu.rs b/src/ppu.rs index 0dd7dee9939bde6ac6afe16378ca193b788a8d0f..85f1d2789fb9c182485043cba7f52930c6ff3990 100644 --- a/src/ppu.rs +++ b/src/ppu.rs @@ -7,6 +7,8 @@ use std::{ #[cfg(feature = "wasm")] use wasm_bindgen::prelude::*; +use crate::warnln; + pub const VRAM_SIZE: usize = 8192; pub const HRAM_SIZE: usize = 128; pub const OAM_SIZE: usize = 260; @@ -419,7 +421,10 @@ impl Ppu { 0x0045 => self.lyc, 0x004a => self.wy, 0x004b => self.wx, - addr => panic!("Reading from unknown PPU location 0x{:04x}", addr), + _ => { + warnln!("Reading from unknown PPU location 0x{:04x}", addr); + 0xff + } } } @@ -487,7 +492,7 @@ impl Ppu { 0x004a => self.wy = value, 0x004b => self.wx = value, 0x007f => (), - addr => panic!("Writing in unknown PPU location 0x{:04x}", addr), + _ => warnln!("Writing in unknown PPU location 0x{:04x}", addr), } }