Puyo Puyo 2 crashes when changing key assignment

Issue #421 resolved
Raton Laveur created an issue

Tested on Wii and vWii, Puyo Puyo 2 rev01.

Steps to reproduce : - on game's main menu, choose third option - go to key assignment - change pad 1 type 2 to type 1 - go to exit, then exit options - game crashes. Genesis Plus GX is still running though.

Marked as major since game-crashing - feel free to reconsider priority.

Comments (5)

  1. Eke ekeeke repo owner

    It is actually crashing as soon as you enter then exit the option menu, no need to change key assignment.

    From debugging, it is caused by an interrupt occuring in the middle of some copy operation which got corrupted when returning from interrupt and makes the game code accessing illegal memory and causing system freeze (black screen).

    It is therefore more likely a bug in the original game and I need to figure if it happens on real hardware and if it doesn't, what causes that operation not being interrupted as on emulator (could be z80 ram access latency and 68k refresh delays since those are not 100% accurately emulated )

  2. Raton Laveur reporter

    Thanks for the detailed debugging.

    It doesn't appear on other emulators (tested on Gens Windows 2.12b) or real hardware (but I have no way of knowing if my cart is REV00 or REV01, so can't 100% confirm).

  3. Eke ekeeke repo owner

    Both revs behave the same on that regard so, if it works on real hardware then it means it requires more accurate emulation of 68k wait-states when accessing z80 ram.

    Interestingly, it does not crash when using zero wait-state (as most if not all emulators are doing) but some delay is actually required for another game to work fine: Pacman 2 the adventure game will have missing music after entering pause menu if there isn't some minimal delay when writing to z80 ram (again to prevent some operation to be interrupted at the wrong time). You can verify that this bug occurs in most emulators but does not in Genesis Plus GX, so this is one case where being more accurate can solve an issue but cause another one elsewhere because not 100% accurate.

  4. Log in to comment