Emulator behavior differences

From Glitch City Wiki
Revision as of 14:16, 6 April 2024 by WindyAndHikari (talk | contribs) (Just putting TheZZAZZGlitch's table here.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Most game console emulators are never intended to emulate the real hardware perfectly, as their goal is just to provide a "good enough" emulation to play games on. Even in cases where the emulator does want to replicate some certain feature, emulation accuracy bugs can be difficult to avoid due to the intricacies of the hardware. This page documents some known behavior differences between emulators and real consoles.

GB/GBC

Overview

The following table[1] summarizes some features on GB/GBC where emulators commonly behave differently from the real hardware.

Platform UnknownOpcodes InvalidBanks VRAMAccess EchoRAM InvalidStop
Game Boy Color (CGB-001) PASS4 PASS PASS PASS PASS
Game Boy Advance SP (AGS-001) PASS4 PASS PASS PASS PASS
Game Boy Player PASS4 PASS PASS PASS PASS
3DS Virtual Console FAIL5 FAIL6 PASS PASS FAIL
Stadium 2 GB Tower PASS7 PASS FAIL8 FAIL9 FAIL
bgb 1.4.1 PASS1 PASS PASS PASS PASS
VBA-RR v24 svn440 PASS2 PASS PASS PASS FAIL
VBA 1.7.2 PASS2 FAIL3 FAIL FAIL FAIL
MyOldBoy v1.1.0 FAIL PASS PASS PASS FAIL
LameboyDS v0.12 FAIL PASS PASS PASS PASS10

1 - the emulator breaks into a debugger every time an undefined opcode is encountered

2 - brings up the infamous message "unknown opcode xx at yyyy"

3 - the result is 127 instead of 124 - this behavior needs to be more thoroughly investigated

4 - the game hangs without any message

5 - unknown opcodes are ignored, most likely because of the emulator hooking them to communicate with the hardware

6 - (probably) always returns 0

7 - displays a message: "The saved data has been corrupted, so it is impossible to CONTINUE. Please reset the game and choose NEW GAME", the save is not corrupted though

8 - (probably) always returns 255 - so VRAM access is enabled not during the V-Blank period, but during the V-Blank interrupt, which changes things dramatically

9 - some other data seems to be stored in the echo RAM area

10 - some corrupted stops work, some not - this is to be expected with undefined behavior

References

This article or section is a stub. You can help Glitch City Wiki by expanding it.