From 99cae5a5a37f41f878a84857361eda47910303ba Mon Sep 17 00:00:00 2001 From: crecher Date: Tue, 13 Oct 2026 01:13:13 +0200 Subject: sprites!!!!!! --- nes/bus.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'nes/bus.go') diff --git a/nes/bus.go b/nes/bus.go index af4f242..4f6c720 100644 --- a/nes/bus.go +++ b/nes/bus.go @@ -24,6 +24,10 @@ func (n *Console) Read(addr uint16) uint8 { return n.RAM[addr&0x7FF] case addr < 0x4000: // PPU registers, mirrored every 8 bytes return n.PPU.ReadRegister(addr) + case addr == 0x4016: // controller 1 + return n.controllers[0].read() + case addr == 0x4017: // controller 2 + return n.controllers[1].read() case addr >= 0x4020: // cartridge return n.Cart.Mapper.CPURead(addr) default: @@ -37,6 +41,11 @@ func (n *Console) Write(addr uint16, v uint8) { n.RAM[addr&0x7FF] = v case addr < 0x4000: n.PPU.WriteRegister(addr, v) + case addr == 0x4014: // oam dma + n.oamDMA(v) + case addr == 0x4016: // strobe is shared by both controllers + n.controllers[0].setStrobe(v&1 != 0) + n.controllers[1].setStrobe(v&1 != 0) case addr >= 0x4020: n.Cart.Mapper.CPUWrite(addr, v) } -- cgit v1.2.3