Difference between revisions of "Tricky-to-emulate games"

From GbdevWiki
Jump to: navigation, search
(beware suggested Koro Dice)
(Pinball quirks)
Line 2: Line 2:
  
 
; ''Altered Space''
 
; ''Altered Space''
: Quirks to be described
+
: 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<nowiki>:</nowiki> ''Bouken Puzzle Road'')
 
; ''Daedalian Opus'' (JP<nowiki>:</nowiki> ''Bouken Puzzle Road'')
 
: Hangs if vblank interrupt timing is not precise.
 
: Hangs if vblank interrupt timing is not precise.
Line 9: Line 9:
 
; ''Koro Dice''
 
; ''Koro Dice''
 
: Timer glitch, write in second half causes extra tick
 
: Timer glitch, write in second half causes extra tick
; ''Pinball Deluxe''
+
; ''Pinball Deluxe'' and ''Pinball Fantasies''
: A combination of quirks, to be described
+
: Depends on STAT IRQ blocking and dispatch to the correct handler if the least significant bit of <code>IF & IE</code> changes during interrupt processing. Otherwise, a cascading failure occurs within the engine that corrupts the playfield display. (See [http://mgba.io/2017/05/29/holy-grail-bugs/ "Holy Grail" Bugs in Emulation, Part 1] and [http://mgba.io/2018/03/09/holy-grail-bugs-revisited/ "Holy Grail" Bugs Revisited] by endrift and LIJI.)
 
; ''Pocket Bomberman'' (J), ''Pokemon Card GB'' (J); ''Robopon''
 
; ''Pocket Bomberman'' (J), ''Pokemon Card GB'' (J); ''Robopon''
 
: Obscure "HuC" mappers.
 
: Obscure "HuC" mappers.

Revision as of 20:38, 20 November 2020

Some Game Boy games depend on hard-to-emulate or just obscure behavior that some popular (or formerly popular) emulators get wrong.

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.

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.

(None yet)

External links