Hacker News new | ask | show | jobs
by narnarpapadaddy 889 days ago
Both, depending on the specific issue and the emulation technique.

There’s a slew of different approaches to emulation, such as bytecode interpretation (you read the ROM on the fly and try to “do the intended thing” using platform native APIs), bytecode translation (you convert the ROM into platform native code), hardware emulation (you simulate the original chips directly, and the ROMs “just work”), and more. In many cases all those techniques are used together for different parts of the system (such as emulating a CPU vs a GPU). Depending on what the issue is, how well the hardware is documented (you may even hit an undocumented hardware bug!), and how difficult it is to create a general-purpose fix for your particular approach to emulation, or how computational expensive it is to emulate correct behavior, you may choose to add a workaround.

Some emulation projects put more emphasis on 100% correct emulation than others. Console emulators tend to be biased towards performance.

1 comments

> Depending on what the issue is, how well the hardware is documented (you may even hit an undocumented hardware bug!)

What's fun is, particularly with older games and hardware, it wasn't uncommon for devs to use hardware bugs to their advantage. DK64 is notoriously hard to emulate because of that.

Can you elaborate on DK64? AFAIK it shipped with a memory leak that was known to the deva but could not be fixed in time for Christmas season 199x. This bug lead to a OOM crash in less than two hours or something so it was decided to require and ship it with the Expansion Pack with 8MB (?) RAM instead of the default jumper pack with half as much. I