From fe6047213be802cb74cac724a1b83b7263c4dcca Mon Sep 17 00:00:00 2001 From: qwertymodo Date: Tue, 27 Jun 2017 16:25:25 -0700 Subject: [PATCH] Fix a byte-masking error in byuu's APU causing issues in Dark Law, Haisei Mahjongg, and Super Pinball --- apu/bapu/smp/core.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apu/bapu/smp/core.cpp b/apu/bapu/smp/core.cpp index 43234f6a..5303bed7 100644 --- a/apu/bapu/smp/core.cpp +++ b/apu/bapu/smp/core.cpp @@ -51,8 +51,8 @@ void SMP::op_write(uint16 addr, uint8 data) { void SMP::op_step() { #define op_readpc() op_read(regs.pc++) - #define op_readdp(addr) op_read((regs.p.p << 8) + addr) - #define op_writedp(addr, data) op_write((regs.p.p << 8) + addr, data) + #define op_readdp(addr) op_read((regs.p.p << 8) + (addr & 0xff)) + #define op_writedp(addr, data) op_write((regs.p.p << 8) + (addr & 0xff), data) #define op_readaddr(addr) op_read(addr) #define op_writeaddr(addr, data) op_write(addr, data) #define op_readstack() op_read(0x0100 | ++regs.sp)