From db54d0d0d79f1817bfa41ebea7445912cdaea3d1 Mon Sep 17 00:00:00 2001 From: Determinant Date: Sun, 31 Dec 2017 12:55:54 +0800 Subject: add mapper 4 --- src/memory.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/memory.rs') diff --git a/src/memory.rs b/src/memory.rs index 6eb796f..fac5c28 100644 --- a/src/memory.rs +++ b/src/memory.rs @@ -37,15 +37,15 @@ impl<'a> CPUBus<'a> { self.apu = apu; } - #[inline(always)] fn get_cpu(&self) -> &'a mut CPU<'a> {unsafe{&mut *self.cpu}} - #[inline(always)] fn get_ppu(&self) -> &'a mut PPU<'a> {unsafe{&mut *self.ppu}} - #[inline(always)] fn get_apu(&self) -> &'a mut APU<'a> {unsafe{&mut *self.apu}} + #[inline(always)] pub fn get_cpu(&self) -> &'a mut CPU<'a> {unsafe{&mut *self.cpu}} + #[inline(always)] pub fn get_ppu(&self) -> &'a mut PPU<'a> {unsafe{&mut *self.ppu}} + #[inline(always)] pub fn get_apu(&self) -> &'a mut APU<'a> {unsafe{&mut *self.apu}} pub fn tick(&self) { let cpu = self.get_cpu(); let ppu = self.get_ppu(); let apu = self.get_apu(); - if ppu.tick() || ppu.tick() || ppu.tick() { + if ppu.tick(self) || ppu.tick(self) || ppu.tick(self) { cpu.trigger_nmi() } if apu.tick() { @@ -244,7 +244,12 @@ impl<'a> PPUMemory<'a> { #[inline(always)] fn write_mapper(&self, addr: u16, data: u8) { - self.mapper.borrow_mut().write(addr, data); + self.mapper.borrow_mut().write(addr, data) + } + + #[inline(always)] + pub fn tick(&self, bus: &CPUBus) { + self.mapper.borrow_mut().tick(bus) } } -- cgit v1.2.3