This was done to fix some games such as :
- Crash Team Racing's intro music cutting off too soon
- FF8 Lunar Cry FMV freeze (Disc 3)
- Worms Pinball not booting
- Xenogears (Deus fight)
However for whatever reason, this also caused ADPCM speech samples
in Castlevania Symphony of the Night to stutter.
This could be caused by another underlying issue however.
Here are the commands being run by Castlevania for speech samples :
According to nicolasnoble, we shouldn't cause a delay
if the seek destination is already close to the current location.
Implementing that properly is a lot more work so for now,
i am doing this instead.
I tested it against Castlevania and Megaman X4 and it didn't cause a
regression. (at least it's better than it is right now)
CTR's intro also seems fine as well (this did not work properly
before the new CDROM timing changes)
Always look up verify_dirty literals from offsets by neonloop
Literals are deduplicated, so there's no guarantee they will be stored
next to each other, even if they're written sequentially. verify_dirty
and get_bounds must use the offsets on each instruction, instead of
assuming values are stored sequentially.