diff options
| author | Pierre Bourdon <delroth@gmail.com> | 2015-08-09 19:02:11 +0200 |
|---|---|---|
| committer | Pierre Bourdon <delroth@gmail.com> | 2015-08-14 16:01:36 +0200 |
| commit | fcbed7483d709ec0c36f6a2cb7559344a38afd3e (patch) | |
| tree | 7d87eb890880699cb69195884a46242c5b587fee /Source | |
| parent | a602466e4f5a7f6fdd36cd1dfef8c68eeaeb7b7c (diff) | |
ZeldaHLE: Properly read remaining AFC samples when a whole frame is available.
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp index dcefb6bfdf..122713d592 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp @@ -1544,8 +1544,9 @@ void ZeldaAudioRenderer::DownloadAFCSamplesFromARAM( // Try to push currently cached/already decoded samples. u16 remaining_to_output = std::min(vpb->afc_remaining_decoded_samples, requested_samples_count); - for (size_t i = 0x10 - remaining_to_output; i < 0x10; ++i) - *dst++ = vpb->afc_remaining_samples[i]; + s16* base = &vpb->afc_remaining_samples[0x10 - vpb->afc_remaining_decoded_samples]; + for (size_t i = 0; i < remaining_to_output; ++i) + *dst++ = base[i]; vpb->afc_remaining_decoded_samples -= remaining_to_output; requested_samples_count -= remaining_to_output; |
