mirror of https://github.com/stenzek/duckstation
CDROM: Re-enable error-on-seeking-pause behaviour
See the comments in the diff. This **will** cause lag in Final Fantasy VII during preload areas, but that has also been confirmed on console. Duke Nukem - Total Meltdown does this silly Read -> Pause command chain, except it sets its data/INT1 callback on the read, but never clears it after the pause. Therefore, if it doesn't receive at least one sector, the callback never gets cleared, and when the next read happens, it stores the "current" callback in the "backup" variable, which should be null, but now has the callback from the dud read. The result is any INT1 during XA playback running the dud callback, which says "hey, I'm not expecting any data, so pause, and stops the background music playback. Making sure at least one sector from that silly chain is delivered ensures the callback is cleared, and this does not happen. Since the pause first mentioned above will now error out until the first sector is delievered, the game spams pause until it eventually does succeed after the INT1. This behaviour has also been verified on hardware, thanks to rama for the xStation logs.pull/3264/head
parent
f051aa54d9
commit
c2d24f436c
Loading…
Reference in New Issue