0ldsk00l / nestopia

Cross-platform Nestopia emulator core with a GUI
http://0ldsk00l.ca/nestopia
GNU General Public License v2.0
704 stars 167 forks source link

Nestopia does not ignore the upper bits of registers 5102 and 5103 for MMC5 #311

Closed joepogo closed 3 years ago

joepogo commented 5 years ago

Nestopia MMC5 does not ignore the upper bits of registers 5102 and 5013 accurately. The attached code fixes this:

change line 1223 in MMC5.cpp to:

if ((data & 3) == Regs::WRK_WRITABLE_A)

and line 1229 to:

if ((data & 3) == Regs::WRK_WRITABLE_B)

rdanbrook commented 5 years ago

Thanks for the info. No time to look at it now, but will as soon as I get a chance to breathe again.

ghost commented 5 years ago

sounds correct for me : https://wiki.nesdev.com/w/index.php/MMC5

joepogo commented 5 years ago

Yea, I was hoping this would fix the issue with Castlevania III on nestopia as it exhibits incorrect behavior but even though this fix is correct, something is still off with Nestopia's implementation of the MMC5. This can be exhibited in the first stage of castlevania III when ascending the stairs, there should only be a small amount of (I assume) IRQ glitchiness, but the jumpiness is really bad as you continue to ascend in the level.

rdanbrook commented 3 years ago

It looks like this isn't actually creating any problems.