Implement cart ROM writes as described by Jan Goldacker #707
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #609
@jago85 did some investigation on how cart ROM writes are handled a while ago (#511 (comment))
The basic gist I got from that is that our current "rom_written" code should only happen if the game tries to read back the value when PI_STATUS_IO_BUSY is set, otherwise it should just read the regular value.
It does seem to work that way, this change fixes WCW Backstage Assault, and other games that depend on this code (A Bug's Life, Toy Story 2) still work.
A big thanks to @jago85, there is no way we would have figured this out without those actual hardware tests.