List of bugs and fixes
Consider this page as a follow-up of drk||Raziel’s list located here :
http://www.emudev.org/drkIIRaziel/blog/?page_id=4
If it’s not obvious already the page structure is the exact same. Yay for copy paste… ehm, right.
Last update 04/07/2010
» Beats of Rage:
Problem: Code execution seems to loop after the Sega license screen. Game appears to be frozen.
Cause: It starts multiple maple DMA transfers before the previous ones “end”.
Solution: Make sure to allow that instead of ending each DMA before starting the other. Raising interrupts should take a while so make sure interrupts do not happen at zero time.
» Record of Lodoss War:
Problem: Code execution seems to loop after beating certain enemies or getting certain items, etc. Game appears to be frozen.
Cause: Division by zero.
Solution: Handle division by zero on the related Div μcode.
» D2:
Problem: Disc swapping does not work on this game.
Cause: GD-ROM error control is missing.
Solution: Implement GD-ROM error control. Another option is to hack things up to generate an error and return the appropriate sense key (6h) and sense code (28h) when error info is requested.
» Dreamcast BIOS:
Problem: Dreamcast logo appears as if the tray is open when the tray is closed while the emulators starts and there is no disc in the drive. It should appear as when there is a disc in the drive.
Cause: GD-ROM error control is missing.
Solution: Implement GD-ROM error control. Another option is to hack things up to generate an error and return the appropriate sense key (6h) and sense code (29h) when error info is requested.
» Various games, VMU/Memory card:
Problem: Various games fail to detect the connected memory card(s).
Cause: There can be various causes for that.
Some games (ie: Dynamite Cop) expect that an LCD and/or a real time clock is present on the storage device (”simple” memory cards lack those two, VMUs have them).
Some games (ie: Spawn) look for a very specific device name for the connected VMUs (”Visual Memory”, padded with spaces having a specific string length) and will fail to detect the connected memory cards if the name is different.
Some WinCE games seem to do VMU detection using a timer. More on that later.
Solution: Be sure to give correct VMU device information. More on the timer thing some other time. :p
» Various games/Disc Swapping:
Problem: Disc swapping fails for some games, “fixing” it breaks other games (ie: Swapping on Utopia Boot Disc works but fails on Xploder DC, or works for Xploder DC and fails on Utopia Boot Disc).
Cause: The state of the drive is wrong, it seems that after the command 71h the drive state ends up being set to “pause” for GD-ROMs and to “standby” for the rest disc types.
Solution: Be sure to set the drive state accordingly. Figuring out how the responses on command 71h are generated and why the drive state ends up like that is a plus. :p
» Street Fighter Alpha 3:
Problem: Code execution seems to loop after the Sega license screen. Game appears to be frozen.
Cause: It starts multiple DMA transfers before the previous ones “end”, AICA DMA causes the loop in that case.
Solution: Make sure to allow that instead of ending each DMA before starting the other. Raising interrupts should take a while so make sure interrupts do not happen at zero time.
More to come…