diff --git a/Difficult-to-Emulate-Games.md b/Difficult-to-Emulate-Games.md index 167fc4c..2dacb4f 100644 --- a/Difficult-to-Emulate-Games.md +++ b/Difficult-to-Emulate-Games.md @@ -6,16 +6,19 @@ ### 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 *** ### 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 *** @@ -72,6 +75,11 @@ *** +## Casper + - Puts SPU IRQs in addresses being read by released/off voices + +*** + ### Skullmonkeys - Requires GPU coordinate truncation/sign-extension otherwise objects will be missing @@ -82,6 +90,11 @@ *** +## 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 @@ -89,6 +102,18 @@ *** +### 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 + +*** + ### Parasite Eve 2 ### Disney's Treasure Planet - Sensitive to MDEC timing @@ -111,6 +136,32 @@ *** +### 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 - Triggers interrupts by setting cop0 bits in software, can be tricky for recompilers @@ -132,6 +183,49 @@ *** +### 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 + +*** + ### Silent Hill ### Ghost In The Shell ### TwinBee RPG