Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
CoreAudio::HLE: Add FFmpeg/WMF AAC decoder #4508
Due to the DSP LLE and the research from @wwylele I was able to reconstruct the messages used in pipe3 to decode Audio. The encoded and decoded samples are transferred via DMA. So far this was only tested with XY and resolves all the softlocks but still keeps a good speed.
How to get the codec
Since AAC needs a license to distribute the compiled codec, we do not add the codec to the build.
If the decoder is missing:
The decoder will still respond with proper responds but since no data gets decoded this will result in missing audio. Sotflocks shouldn't happen anymore though
@Danman3412 Yes I intentionally coded it that way that even if the dlls are missing the decoder would still return a valid response. This means the softlocks are fixed regardless of the dlls.
The only issue you observe with missing dlls is that the audio is missing. But since the "Fake response" is based of the response from XY other games might still be broken due to missing dlls. The line in question here is: https://github.com/citra-emu/citra/pull/4508/files#diff-0f90696414f137a30c20616f52bdc1aaR151
referenced this pull request
Dec 17, 2018
On my system (Gentoo Linux, ffmpeg-3.3.6, fdk-aac-0.1.5), this fails to find the codec because
A very quick-and-dirty patch fixes this, though I'm sure someone more familiar with Citra's code can figure out a better place to put the missing line:
@saibotlive You probably didn't include the dlls according to https://github.com/citra-emu/citra/wiki/HLE-AAC-Decoder