diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_Zelda.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_Zelda.cpp index 0c416b7a47..937ef1e672 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_Zelda.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_Zelda.cpp @@ -574,9 +574,11 @@ void CUCode_Zelda::ExecuteList() } return; -/* - case 0x03: break; // dunno ... zelda ww jmps to 0x0073 - case 0x04: break; // dunno ... zelda ww jmps to 0x0580 + + // Simply sends the sync messages + case 0x03: break; + +/* case 0x04: break; // dunno ... zelda ww jmps to 0x0580 case 0x05: break; // dunno ... zelda ww jmps to 0x0592 case 0x06: break; // dunno ... zelda ww jmps to 0x0469 case 0x07: break; // dunno ... zelda ww jmps to 0x044d @@ -675,5 +677,24 @@ void CUCode_Zelda::DoState(PointerWrap &p) { p.Do(m_numSteps); p.Do(m_step); p.Do(m_Buffer); + /*p.Do(m_CRC); + p.Do(m_bSyncInProgress); + p.Do(m_MaxVoice); + p.Do(m_NumVoices); + p.Do(m_bSyncCmdPending); + p.Do(m_CurVoice); + p.Do(m_CurBuffer); + p.Do(m_NumBuffers); + p.Do(m_VoicePBsAddr); + p.Do(m_UnkTableAddr); + p.Do(m_AFCCoefTableAddr); + p.Do(m_ReverbPBsAddr); + p.Do(m_RightBuffersAddr); + p.Do(m_LeftBuffersAddr); + p.Do(m_DMABaseAddr); + p.Do(m_numSteps); + p.Do(m_step); + p.Do(m_readOffset); + p.Do(m_MailState);*/ } diff --git a/docs/DSP/DSP_UC_Zelda.txt b/docs/DSP/DSP_UC_Zelda.txt index 8ae5d94b09..6133bc3a85 100644 --- a/docs/DSP/DSP_UC_Zelda.txt +++ b/docs/DSP/DSP_UC_Zelda.txt @@ -1454,6 +1454,10 @@ void 041d_Unk() { 0447 00c0 0345 lr $AR0, @0x0345 0449 02bf 0532 call 0x0532 044b 029f 0043 jmp 0x0043 +} + +void 044d_COMMAND_07() +{ 044d 0080 0346 lri $AR0, #0x0346 044f 02bf 0067 call 0x0067 0451 02bf 0067 call 0x0067 @@ -1470,6 +1474,10 @@ void 041d_Unk() { 0463 00c0 0345 lr $AR0, @0x0345 0465 02bf 0532 call 0x0532 0467 029f 0043 jmp 0x0043 +} + +void 0469_COMMAND_06_09() +{ 0469 0080 0346 lri $AR0, #0x0346 046b 02bf 0067 call 0x0067 046d 02bf 0067 call 0x0067 @@ -1488,6 +1496,10 @@ void 041d_Unk() { 047f 00c0 0345 lr $AR0, @0x0345 0481 02bf 0532 call 0x0532 0483 029f 0043 jmp 0x0043 +} + +void 0485_COMMAND_08() +{ 0485 0080 0346 lri $AR0, #0x0346 0487 02bf 0067 call 0x0067 0489 02bf 0067 call 0x0067 @@ -1779,7 +1791,7 @@ void 0573_Mystery_Write(InBuffer($AR1), SourceBuffer(AC1.M), _COUNT(AX0.H)) { } -void 0095_COMMAND_04() +void 0580_COMMAND_04() { // commando looks buggy... // it copies data to the switch casement data address... sounds like BS @@ -1796,6 +1808,10 @@ void 0095_COMMAND_04() 058c 00c0 0345 lr $AR0, @0x0345 058e 02bf 0523 call 0x0523 0590 029f 0043 jmp 0x0043 +} + +void 0592_COMMAND_05() +{ 0592 0080 0346 lri $AR0, #0x0346 0594 02bf 0067 call 0x0067 0596 02bf 0067 call 0x0067