VIF: Correct DMA stall for VIF1 MFIFO - Improve IPU Core/DMA call flow #9951
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.
Description of Changes
Correct the DMA Stall for VIF MFIFO, correctly delay GIF FINISH interrupts
Improve IPU Core/DMA call flow
Rationale behind Changes
The DMA Stall was pointing to normal VIF so this would have hung in some situations, especially when using Instant DMA.
GIF FINISH was being set immediately, so any games which were watching for the interrupts could have started processing it too early.
For IPU the timing of the DMA's is just gross and it was getting messy, so I've attempted to clean this up somewhat and make it make more sense to how the rest of the emulator works.
Suggested Testing Steps
Nothing specific (Except Batman Begins FMVs), just test stuff, if you know what games use MFIFO and FINISH then you're certainly going to be able to target things well :P I can't think of a list of games off-hand though. Also test random FMV's, make sure they work as well as they did.
Savestate bump, sorry