Apparently, Donkey Kong Country 2 has runs into a bug in the old SNES emulator ZSNES, where one of the barrels that you’re supposed to be able to precisely control the spinning direction of ends up spinning forever.
This bug is caused by ZSNES not emulating open bus behavior. I believe this was originally discovered by Anomie roughly two decades ago, who subsequently fixed the same bug in Snes9x. This original fix hardcoded the specific addresses to return the values that the game depends on rather than properly emulating open bus, but it fixed DKC2 and probably didn’t break anything else. The bug was never fixed in ZSNES, which is now a long abandoned project (last release in 2007).
Purely out of curiosity, I wanted to dig into this a little more to figure out what exactly in the game code causes these barrels to spin forever in an emulator that doesn’t emulate open bus behavior.
↫ jsgroth
Just in case you’ve always wanted to know.
> one of the barrels that you’re supposed to be able to precisely control the spinning direction of ends up spinning forever
Just think for a little moment of a world in which every software problem is cared for as attentively as this one. Paradise!
This is why you should use the highest-accuracy emulator you can get your hands on:
PS1 -> Beetle PSX HW
SNES -> bsnes
PC -> PCEm
3DO -> ??? (still working on this one)
Sure, popular games may have game-specific fixes, but more obscure ones don’t. An accurate emulator is accurate with all games.
This is why I don’t understand the whole “underpowered systems like the Raspberry PI make great emulation devices” thing. No, they don’t, you are restricted to crappy inaccurate emulators.
bsnes is an entirely different beast from most emulators. It emulates the hardware at a lower level than usual. The usual thing is to just translate the machine code from one machine to another – bsnes actually simulates the way the CPU processed information down to the cycles, with specific timing and performance calculations, to achieve MUCH higher low level compatibility. It’s insanely cool how it does that, and is why it has such high system requirements.
ZSNES is absolutely my favorite emulator ever. I put so many hours in on that one. It ran on my very first computer – a Pentium 166 with MMX, and an absolutely monstrous 32MB of RAM. Different times.