New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DSP: DMA behaviour adjustments to fix regressions #762
Conversation
|
I feel like this is chase is taking you everywhere. Fix one thing, discover more regressions a few days later! Either way, both Pokemon Snap and Final Fantasy Crystal Chronicles are working now. The only challenge is to try and make sure there are no other regressions. |
|
Could you add more details in the commit message about what the issue was? |
|
If these are two completely separate issues, wouldn't it be appropriate to split this into two commits? |
This behaviour was tested on a real (wii) console.
This was being scheduled on the next possible event, which caused timing issues (in FFCC, AI interrupt would fire before DSP interrupt)
When AIDMA begins, the first thing it does is load the source address and length into internal registers. It then triggers the AID interrupt. Some begin the AIDMA process without all the data necessary for the interrupt callback being set up already - they require a few more cycles to set it up (the delay between the DMA being set to begin and the interrupt firing). The value of this delay was approximated by tests on real hardware.
|
Anything blocking this? It fixes a lot of audio regressions. Cc @Tilka. |
|
The changes here seem safe to me and based on hardware testing. I'll go ahead and merge this, hit me if it turns out that it causes more regressions. |
DSP: DMA behaviour adjustments to fix regressions
|
This PR appears to have caused an uncaught regression: https://code.google.com/p/dolphin-emu/issues/detail?id=8686&thanks=8686&ts=1434324473 tl;dr Loading save states at emulation start locks up the emulator, with a constantly repeating sound buffer. The main use case for this is DTM movies that begin with a save state. |
This is meant to address the regressions in that were introduced by some of the recent audio changes. (particularly Pokemon Snap and Final Fantasy Crystal Chronicles)
It'd be great if this could get some testing to verify no further regressions.