|
|
|
|
|
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. |
|
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.