diff --git a/src/bus.rs b/src/bus.rs index 74ab198..20ba5e0 100644 --- a/src/bus.rs +++ b/src/bus.rs @@ -123,6 +123,7 @@ impl Bus { 0xFF00 => self.joypad.status.into(), 0xFF01 => self.serial.next, 0xFF02 => self.serial.control.into(), + 0xFF05 => self.timer.counter, 0xFF07 => self.timer.control.into(), 0xFF0F => self.interrupt_flag().into(), 0xFF11 => self.sound.ch1.sound_duty.into(), @@ -209,6 +210,7 @@ impl Bus { 0xFF00 => self.joypad.status = byte.into(), 0xFF01 => self.serial.next = byte, 0xFF02 => self.serial.control = byte.into(), + 0xFF05 => self.timer.counter = byte.into(), 0xFF07 => self.timer.control = byte.into(), 0xFF0F => self.set_interrupt_flag(byte), 0xFF11 => self.sound.ch1.sound_duty = byte.into(), diff --git a/src/timer.rs b/src/timer.rs index 791b484..6b48b0a 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -5,6 +5,7 @@ use crate::instruction::Cycles; #[derive(Debug, Clone, Copy)] pub struct Timer { pub control: TimerControl, + pub counter: u8, } impl Timer { @@ -16,7 +17,8 @@ impl Timer { impl Default for Timer { fn default() -> Self { Self { - control: 0x00.into(), + control: Default::default(), + counter: 0, } } }