diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp index 1a905978a6..6048fd4c75 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp @@ -57,10 +57,6 @@ void CUCode_Rom::HandleMail(u32 _uMail) m_CurrentUCode.m_Length = _uMail & 0xffff; break; - case 0x80F3C002: - m_CurrentUCode.m_IMEMAddress = _uMail & 0xffff; - break; - case 0x80F3B002: m_CurrentUCode.m_DMEMLength = _uMail & 0xffff; if (m_CurrentUCode.m_DMEMLength) { @@ -68,16 +64,17 @@ void CUCode_Rom::HandleMail(u32 _uMail) } break; + case 0x80F3C002: + m_CurrentUCode.m_IMEMAddress = _uMail & 0xffff; + break; + case 0x80F3D001: - { m_CurrentUCode.m_StartPC = _uMail & 0xffff; BootUCode(); return; // Important! BootUCode indirectly does "delete this;". Must exit immediately. - } - break; default: - break; + break; } // THE GODDAMN OVERWRITE WAS HERE. Without the return above, since BootUCode may delete "this", well ... diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp index 7c8536ccc0..62c67d7927 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp @@ -58,7 +58,7 @@ CUCode_Zelda::CUCode_Zelda(DSPHLE *dsp_hle, u32 _CRC) if (IsLightVersion()) { - NOTICE_LOG(DSPHLE, "Luigi Stylee!"); + DEBUG_LOG(DSPHLE, "Luigi Stylee!"); m_rMailHandler.PushMail(0x88881111); } else @@ -92,9 +92,9 @@ CUCode_Zelda::~CUCode_Zelda() u8 *CUCode_Zelda::GetARAMPointer(u32 address) { if (IsDMAVersion()) - return (u8 *)(Memory::GetPointer(m_DMABaseAddr)) + address; + return Memory::GetPointer(m_DMABaseAddr) + address; else - return (u8 *)(DSP::GetARAMPtr()) + address; + return DSP::GetARAMPtr() + address; } void CUCode_Zelda::Update(int cycles)