From ee38b016b7f4ebf4fc6669f425f89ac3bac45d3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Sun, 10 Jul 2022 16:42:01 +0100
Subject: [PATCH] feat: new warnings

---
 examples/sdl/src/main.rs | 6 +++---
 src/pad.rs               | 9 +++++++--
 src/ppu.rs               | 9 +++++++--
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs
index 22cefdde..81aac104 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 814adfeb..7c2bf470 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 0dd7dee9..85f1d278 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),
         }
     }
 
-- 
GitLab