Skip to content
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

Merged
merged 3 commits into from Aug 13, 2014

Conversation

booto
Copy link
Contributor

@booto booto commented Aug 8, 2014

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.

@JMC47
Copy link
Contributor

JMC47 commented Aug 8, 2014

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.

@delroth
Copy link
Member

delroth commented Aug 8, 2014

Could you add more details in the commit message about what the issue was?

@Tilka
Copy link
Member

Tilka commented Aug 10, 2014

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.
@delroth
Copy link
Member

delroth commented Aug 13, 2014

Anything blocking this? It fixes a lot of audio regressions.

Cc @Tilka.

@delroth
Copy link
Member

delroth commented Aug 13, 2014

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.

delroth added a commit that referenced this pull request Aug 13, 2014
DSP: DMA behaviour adjustments to fix regressions
@delroth delroth merged commit e4e4490 into dolphin-emu:master Aug 13, 2014
@sigmabeta
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants