Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Revert the fix for the random static audio that would sometimes occur…
… in DSP HLE and DSP LLE. The fix caused the music in Fast - Racing League to play random sounds.

This reverts commit r7bf72a6c8476798ecbb9cdb13ec3a8f0b9858da6.

Fixes issue 5910.
  • Loading branch information
skidau committed Jan 22, 2013
1 parent 0ba1794 commit cff8fe8
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
5 changes: 3 additions & 2 deletions Source/Core/Core/Src/DSP/DSPAccelerator.cpp
Expand Up @@ -165,10 +165,11 @@ u16 dsp_read_accelerator()
// Somehow, YN1 and YN2 must be initialized with their "loop" values,
// so yeah, it seems likely that we should raise an exception to let
// the DSP program do that, at least if DSP_FORMAT == 0x0A.
if ((Address & ~0x1f) == (EndAddress & ~0x1f))
if (Address >= EndAddress)
{
// Set address back to start address.
Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL];
if ((Address & ~0x1f) == (EndAddress & ~0x1f))
Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL];
DSPCore_SetException(EXP_ACCOV);
}

Expand Down
8 changes: 5 additions & 3 deletions Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX_Voice.h
Expand Up @@ -203,10 +203,12 @@ u16 AcceleratorGetSample()
//
// On real hardware, this would raise an interrupt that is handled by the
// UCode. We simulate what this interrupt does here.
if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F))
if (*acc_cur_addr >= acc_end_addr)
{
// If we are really at the end, loop back to loop_addr.
*acc_cur_addr = acc_loop_addr;
// If we are really at the end (and we don't simply have cur_addr >
// end_addr all the time), loop back to loop_addr.
if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F))
*acc_cur_addr = acc_loop_addr;

if (acc_pb->audio_addr.looping)
{
Expand Down

0 comments on commit cff8fe8

Please sign in to comment.