Page:
Difficult to Emulate Games
14
Difficult to Emulate Games
Connor McLaughlin edited this page 2024-08-11 22:35:12 +10:00
Table of Contents
- Castrol Honda Superbike Racing
- Shadow Master
- Monkey Hero
- Hot Wheels Turbo Racing
- Syphon Filter (series)
- Tekken 2
- Spot Goes To Hollywood
- Valkyrie Profile
- Red Asphalt
- Dukes of Hazzard, The - Racing for Home
- Little Princess - Marl Oukoku no Ningyou-hime 2
- Suikoden (version 1.0, not 1.1)
- Deadheat Road
- Colin McRae Rally 2.0
- TOCA 2 - Touring Car Challenge
- Alice in Cyberland
- Battle Arena Toshinden
- Bust A Groove Series
- Championship Motocross 2001 featuring Ricky Carmichael
- Evil Dead - Hail to the King (USA)
- NASCAR 2001
- Casper
- Formula 1
- Spyro 2 PAL
- Spyro 3 PAL
- Final Fantasy VIII
- Final Fantasy IX
- Parasite Eve 2
- Disney's Treasure Planet
- Pro Pinball Series, True Pinball
- Dead or Alive
- Mr Driller G
- Vampire Hunter D
- Victory Spike
- Magical Drop III - Yokubari Tokudai-gou!
- Yuukyuu no Eden - The Eternal Eden
- World Cup Golf - Professional Edition
- Team Buddies
- The Next Tetris
- Wizard's Hamony
- Nickelodeon Rugrats - Search for Reptar
- Jackie Chan Stuntmaster
- MTV Sports Games
- Zen Nihon Joshi Pro Wrestling - Joou Densetsu - Yume no Taikousen
- Remote Control Dandy
- Shadow Master
- Threads of Fate
- Tales of Phantasia
- Zoku Mikagura Shoujo Tanteidan - Kanketsuhen
- WipEout
- Chicken Run
- Arc the Lad III
- Voice Idol Collection - Pool Bar Story
- Dancing Stage featuring DREAMS COME TRUE
- Bedlem
- Rise 2
- Gameshark Sampler Disc
- Kingsley's Adventure
- Idol Promotion - Suzuki Yumie (Yumie Island)
- Transformers - Beast Wars Transmetals
- Ogre Battle - Limited Edition
- Silent Hill
- Ghost In The Shell
- TwinBee RPG
- Duke Nukem - Land of the Babes
- Ultraman - Fighting Evolution
- Megatudo 2096
- NBA Jam Extreme
- Zero Divide
- Moto Racer
- Frogger
- Pandemonium!
- Adidas Power Soccer 98
- Armored Core
- Auto Destruct
This is a list of games with.. interesting issues, which may be difficult to emulate depending on your level of accuracy. The symptoms range from hangs/crashes to minor graphical issues.
Some of these are from my memory a year ago, so there might be some minor errors, but most if it should be correct.
TODO: Sort into categories or something... the list ended up being much longer than I expected.
Castrol Honda Superbike Racing
Shadow Master
- Relies on the CLUT being cached for title screens, the VRAM that the primitives point to gets overwritten.
Monkey Hero
- DMA transfer timing or FMVs lock up
- Commands spanning multiple blocks
Hot Wheels Turbo Racing
- DMA timing or hangs on startup/ingame
- Infinite DMA linked list/chains
Syphon Filter (series)
Tekken 2
- Infinite DMA linked list/chains
Spot Goes To Hollywood
- Requires GPU draw timing for the menus, presumably it alters the DMA chain after starting it
- First draws copy the background, which take a while, so plenty of time for that to happen
Valkyrie Profile
- Requires DMA timing otherwise battles time out/lock up
- Loop address from ADPCM blocks must be ignored with the register value taking precedence
Red Asphalt
Dukes of Hazzard, The - Racing for Home
Little Princess - Marl Oukoku no Ningyou-hime 2
- Hangs in various locations if DMA timing is off
- Locks up if DMA timing is off/CPU does not run
Suikoden (version 1.0, not 1.1)
- Two releases, the old version corrupts palettes if you don't emulate fetch timing from the BIOS ROM
- It executes a bunch of memmoves (running from uncached ROM), which can't complete too quickly, racing the DMA
- Interestingly, version 1.1 spams printf during the same screen transition with a bunch of a's and a number suffix
Deadheat Road
- Kicks off a DMA chain involving a VRAM fill, which takes a while to complete,
- then does a memcpy out of uncached ROM
- then zeroes out some of the headers in the DMA chain before it finishes
- Will hang emulators (if they don't properly handle infinite LLs) or the game will time out and skip a bunch of texture uploads in the loading scren
Colin McRae Rally 2.0
TOCA 2 - Touring Car Challenge
- Has self-modifying code which changes the operands of geometry manipulating functions every frame.
- Will cause slowdown on dynarecs which do not efficiently handle this.
- If you're emulating icache incorrectly, it'll also result in stale code executing, since the game does not flush cache, instead it relies on the old code being evicted implicitly.
Alice in Cyberland
- HUD/UI will flicker during battles if draw and DMA timing is instant
Battle Arena Toshinden
- Runs too fast if CPU/GPU timing is off
Bust A Groove Series
- Audio will drift slowly over time with game if GPU frame rate is incorrect
Championship Motocross 2001 featuring Ricky Carmichael
- Sensitive to DMA timing - rider will be missing from bike if incorrect
Evil Dead - Hail to the King (USA)
- Needs timer0 clocked from dot clock emulated
NASCAR 2001
- Main menu music will drop in and out if SPU interrupts are not re-triggered after enabling
Casper
- Puts SPU IRQs in addresses being read by released/off voices
Skullmonkeys
- Requires GPU coordinate truncation/sign-extension otherwise objects will be missing
Formula One 99
- Requires CPU icache emulation
Formula 1
- Spams invalid MDEC commands, need to be ignored/parameters skipped
Spyro 2 PAL
Spyro 3 PAL
- Libcrypt protection is really nasty - the cop0 instructions to grab are xor-obfuscated, and written immediately before execution
- Naive icache implementations will break - you need to handle partial line fetches from non-16-byte-aligned addresses
Final Fantasy VIII
- Uses an undocumented method for swapping the dualshock motors, intensity will be zero if not emulated correctly
- Has some scenes which rely on coordinate truncation/sign extension per-scanline
Final Fantasy IX
- Seems to use VRAM as a swap area during transitions
- VRAM writes and readbacks must be bit-accurate, otherwise at best you get broken animations, at worst crashes
- Requires code execution in-between DMA mode 1 blocks transfer on the intro movie.
Parasite Eve 2
Disney's Treasure Planet
- Sensitive to MDEC timing
Pro Pinball Series, True Pinball
- Requires interlaced rendering (line skipping) otherwise hangs on startup
Dead or Alive
Mr Driller G
- Requires interlaced rendering, otherwise artifacts on screen in various locations
Vampire Hunter D
- Screws with GPU packets after enabling DMA, requires CPU to run in parallel otherwise menu will be black
Victory Spike
Magical Drop III - Yokubari Tokudai-gou!
Yuukyuu no Eden - The Eternal Eden
World Cup Golf - Professional Edition
- Expects other DMA channels to run while an infinite linked list chain is running
Team Buddies
The Next Tetris
- Sensitive to ODE bit (31) in GPU status register
Wizard's Hamony
- Does logical seeks to data sectors, this needs to succeed, but reads of audio sectors should fail for other games
Nickelodeon Rugrats - Search for Reptar
- XA audio in intro has more data than can be played by the SPU, buffers need to be correctly cleared on overflow
Jackie Chan Stuntmaster
MTV Sports Games
- Triggers interrupts by setting cop0 bits in software, can be tricky for recompilers
Zen Nihon Joshi Pro Wrestling - Joou Densetsu - Yume no Taikousen
- lwr in branch delay slot, and lwl in load delay slot, can be tricky for recompilers
Remote Control Dandy
- Requires VRAM transfers to be masked to 9 bits
Shadow Master
Threads of Fate
- Branches in branch delay slots, fun times for recompilers
Tales of Phantasia
- Battle transitions will finish too quickly if GPU draw timings are not emulated
Zoku Mikagura Shoujo Tanteidan - Kanketsuhen
- Uses timer gated by hblank but sysclk as clock source, essentially counting ticks outside of hblank
- Will hang at startup if not emulated correctly
WipEout
- Repeatedly seek commands while seek is in progress, position needs to be updated when the next request comes in
Chicken Run
- Requires deferring setting the reading/playing bit in the CD-ROM until the first sector is read
Arc the Lad III
- Requires error interrupt on shell open for disc change detection
Voice Idol Collection - Pool Bar Story
- Music in transitions will slow down due to timeouts in the CD-ROM code when commands are cancelled
- I use a heuristic of "cancel only when the new command has fewer parameters than the old command, otherwise clear FIFO and send error"
Dancing Stage featuring DREAMS COME TRUE
- Supplementary disc detection will fail if pregaps are incorrect, or errors are not sent on ReadN
Bedlem
Rise 2
- Sensitive to sector buffering/overwrite behavior when missing CD-ROM reads
Gameshark Sampler Disc
- Requires one cycle delay from CD-ROM interrupts
Kingsley's Adventure
- Creates new CLUTs by modulating existing CLUT with vertex colour and direct texturing.
- Will break hardware renderers that don't track CLUTs that have been drawn, instead of written.
Idol Promotion - Suzuki Yumie (Yumie Island)
- Starts a CD seek+read while the start confirmation sound is playing on the title screen, and overwrites the voice memory as soon as the CD read comes in.
- Requires the ~40 minute sled seek to be about 550ms or longer.
Transformers - Beast Wars Transmetals
- Very sensitive to CD seek timing for short (<10 LBA) seeks.
Ogre Battle - Limited Edition
- Spams GetlocL during intro music playback.
- Race conditions in the CD interrupt handler, it clears the INT3/ACK before reading out the results.
- INT1 after INT3 has to be delayed, otherwise it'll end up with the INT1's results when it's expecting the INT3.
Silent Hill
Ghost In The Shell
TwinBee RPG
Duke Nukem - Land of the Babes
Ultraman - Fighting Evolution
- Various graphical errors if mask bit is not emulated correctly
Megatudo 2096
NBA Jam Extreme
Zero Divide
- Requires semi-accurate CPU timings (icache/fetch) and GPU draw timings, otherwise games run too fast
Moto Racer
Frogger
Pandemonium!
Adidas Power Soccer 98
Armored Core
Auto Destruct
- Sensitive to DMA timing (and CPU/DMA slices), otherwise controller input is dropped