Difference between revisions of "Tricky-to-emulate games"
From GbdevWiki
(KiGB compatibility screenshots might help identify candidates for this list) |
(→Game bugs: "I'm going to stroke it" "Your wave is broken!" If Gameboy sound hardware is any indication, DuckTales has this bug.) |
||
Line 32: | Line 32: | ||
; ''A Boy and His Blob in The Rescue of Princess Blobette'' | ; ''A Boy and His Blob in The Rescue of Princess Blobette'' | ||
: Z-fighting between boy and blob. This is common in monochrome Game Boy games, where X position overrides OAM index as determiner of priority. | : Z-fighting between boy and blob. This is common in monochrome Game Boy games, where X position overrides OAM index as determiner of priority. | ||
+ | ; ''DuckTales'' | ||
+ | : Triggers a new wave channel note in NR34 without first stopping playback in NR30. This can cause wave RAM bytes 4-7, 8-11, or 12-15 to be copied over bytes 0-3. | ||
== External links == | == External links == |
Revision as of 17:09, 1 December 2020
Some Game Boy games depend on hard-to-emulate or just obscure behavior that some popular (or formerly popular) emulators get wrong.
- Alone in the Dark: The New Nightmare
- Poster child for hi-color techniques of rewriting GBC background palettes between scanlines.
- Altered Space
- Requires STAT IRQ blocking (if more than one STAT condition (mode 0, 1, 2, LYC) is enabled, all enabled conditions have to be false for a cycle before another STAT IRQ can get through); otherwise graphics are corrupt.
- Daedalian Opus (JP: Bouken Puzzle Road)
- Hangs if vblank interrupt timing is not precise.
- Game de Hakken!! Tamagotchi - Osutchi to Mesutchi
- Complex multi-chip mapper.
- Koro Dice
- Timer glitch, write in second half causes extra tick
- Pinball Deluxe and Pinball Fantasies
- Depends on STAT IRQ blocking and dispatch to the correct handler if the least significant bit of
IF & IE
changes during interrupt processing. Otherwise, a cascading failure occurs within the engine that corrupts the playfield display. (See "Holy Grail" Bugs in Emulation, Part 1 and "Holy Grail" Bugs Revisited by endrift and LIJI.) - Pocket Bomberman (J), Pokemon Card GB (J); Robopon
- Obscure "HuC" mappers.
- Prehistorik Man
- Large scroll text in title screen depends on mid-scanline writes to background palette (BGP) and uses sprite evaluation delay to change the effective horizontal position of these writes.
- Road Rash (original version) and Xerd no Densetsu
- These run only on a monochrome system (Game Boy, Super Game Boy, or Game Boy pocket), not a color system (Game Boy Color, Game Boy Advance, Game Boy Player), because they depend on writes to STAT briefly enabling IRQ for all modes.
- Tokyo Disneyland: Fantasy Tour
- Relies on open bus. One minigame accidentally reads a pointer from disabled SRAM and writes there. It relies on the value being $0A0A (or at least somewhere else where writes are harmless), not $FFFF (which is IE).
- Warriors of Might and Magic
- Draws status bar with mid-screen SCX/SCY changes. It also sets WX=0, which on GBC causes the window not to be drawn, and fills the window with garbage.
Game bugs
Hardware quirks and program errors cause some released Game Boy games to look wrong or odd on authentic hardware. Ideally, games should look exactly as wrong in an emulator as they do on hardware. Refer to this list if you're developing an emulator and a particular game looks wrong so that you don't go "fixing" bugs while breaking your emulator.
- A Boy and His Blob in The Rescue of Princess Blobette
- Z-fighting between boy and blob. This is common in monochrome Game Boy games, where X position overrides OAM index as determiner of priority.
- DuckTales
- Triggers a new wave channel note in NR34 without first stopping playback in NR30. This can cause wave RAM bytes 4-7, 8-11, or 12-15 to be copied over bytes 0-3.
External links
- "Tricky-to-emulate games" on NESdev Wiki
- "Game bugs" on NESdev Wiki
- KiGB compatibility screenshots: Comparing KiGB to outdated VisualBoyAdvance, outdated BGB, no$gmb, and TGB Dual might be helpful for figuring out what games need quirks to be emulated.