Zelda UCode clarifications and cleanup

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3556 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
XTra.KrazzY 2009-06-27 22:10:06 +00:00
parent 46b0fd3c96
commit aa63c8cf8d

View File

@ -467,7 +467,7 @@ void 00da_CopyBuffer(_src($AR0), _dest($AR3), _LenInDWORDs(_AC1.M))
} }
void 00fa_XorBuffer( .., _LenInDWORDs(_AC1.M)) { void 00e1_XorBuffer( .., _LenInDWORDs(_AC1.M)) {
00e1 191e lrri $AC0.M, @$AR0 00e1 191e lrri $AC0.M, @$AR0
00e2 191a lrri $AX0.H, @$AR0 00e2 191a lrri $AX0.H, @$AR0
// 00e3 007f 00e8 bloop $AC1.M, 0x00e8 // 00e3 007f 00e8 bloop $AC1.M, 0x00e8
@ -504,16 +504,17 @@ void 00eb_Unk_BufferMultWithDest(_Src=($AR0), _Dest($AR3), _size($AC1.M), _facto
return return
} }
void 00fa_Unk()
00fa 8a00 m2 {
00fb 191a lrri $AX0.H, @$AR0 00fa 8a00 m2
00fc 9050 mul'l $AX0.L, $AX0.H : $AX0.H, @$AR0 00fb 191a lrri $AX0.H, @$AR0
00fd 9250 mulmvz'l $AX0.L, $AX0.H, $ACC0 : $AX0.H, @$AR0 00fc 9050 mul'l $AX0.L, $AX0.H : $AX0.H, @$AR0
00fe 005f loop $AC1.M 00fd 9250 mulmvz'l $AX0.L, $AX0.H, $ACC0 : $AX0.H, @$AR0
00ff 92a0 mulmvz'ls $AX0.L, $AX0.H, $ACC0 : $AX0.H, $AC0.M 00fe 005f loop $AC1.M
0100 8b00 m0 00ff 92a0 mulmvz'ls $AX0.L, $AX0.H, $ACC0 : $AX0.H, $AC0.M
0101 02df ret 0100 8b00 m0
0101 02df ret
}
// Clears the 0d00 and 0d60 buffers, plus a lot of other intermediate buffers. // Clears the 0d00 and 0d60 buffers, plus a lot of other intermediate buffers.
@ -1932,7 +1933,11 @@ void 05f0_HaltUCode()
05f0 009a 0002 lri $AX0.H, #0x0002 05f0 009a 0002 lri $AX0.H, #0x0002
05f2 00fa 03a3 sr @0x03a3, $AX0.H 05f2 00fa 03a3 sr @0x03a3, $AX0.H
05f4 00e0 03f9 sr @0x03f9, $AR0 05f4 00e0 03f9 sr @0x03f9, $AR0
05f6 02bf 067c call 0x067c /*
05f6 02bf 067c call 0x067c
*/
067c_Unk()
05f8 16fc dcd1 si @DMBH, #0xdcd1 05f8 16fc dcd1 si @DMBH, #0xdcd1
05fa 16fd 0002 si @DMBL, #0x0002 05fa 16fd 0002 si @DMBL, #0x0002
05fc 16fb 0001 si @DIRQ, #0x0001 05fc 16fb 0001 si @DIRQ, #0x0001
@ -1993,11 +1998,19 @@ void 0618_Unk() {
061a 00fa 03a3 sr @0x03a3, $AX0.H 061a 00fa 03a3 sr @0x03a3, $AX0.H
061c 8100 clr $ACC0 061c 8100 clr $ACC0
061d 8900 clr $ACC1 061d 8900 clr $ACC1
061e 02bf 065e call 0x065e //061e 02bf 065e call 0x065e
065e_WaitForCPUMailBox_AC0()
0620 24ff lrs $AC0.L, @CMBL 0620 24ff lrs $AC0.L, @CMBL
0621 02bf 0664 call 0x0664
//0621 02bf 0664 call 0x0664
0664_WaitForCPUMailBox_AC1()
0623 25ff lrs $AC1.L, @CMBL 0623 25ff lrs $AC1.L, @CMBL
0624 02bf 0664 call 0x0664
//0624 02bf 0664 call 0x0664
0664_WaitForCPUMailBox_AC1()
0626 27ff lrs $AC1.M, @CMBL 0626 27ff lrs $AC1.M, @CMBL
0627 2ece srs @DSMAH, $AC0.M 0627 2ece srs @DSMAH, $AC0.M
0628 2ccf srs @DSMAL, $AC0.L 0628 2ccf srs @DSMAL, $AC0.L
@ -2006,28 +2019,46 @@ void 0618_Unk() {
062c 2dcb srs @DSBL, $AC1.L 062c 2dcb srs @DSBL, $AC1.L
062d 8100 clr $ACC0 062d 8100 clr $ACC0
062e 8900 clr $ACC1 062e 8900 clr $ACC1
062f 02bf 065e call 0x065e
//062f 02bf 065e call 0x065e
065e_WaitForCPUMailBox_AC0()
0631 24ff lrs $AC0.L, @CMBL 0631 24ff lrs $AC0.L, @CMBL
0632 1c9e mrr $IX0, $AC0.M 0632 1c9e mrr $IX0, $AC0.M
0633 1cbc mrr $IX1, $AC0.L 0633 1cbc mrr $IX1, $AC0.L
0634 02bf 0664 call 0x0664 //0634 02bf 0664 call 0x0664
0664_WaitForCPUMailBox_AC1()
0636 25ff lrs $AC1.L, @CMBL 0636 25ff lrs $AC1.L, @CMBL
0637 02bf 0664 call 0x0664
0639 27ff lrs $AC1.M, @CMBL //0637 02bf 0664 call 0x0664
0664_WaitForCPUMailBox_AC1()
0639 27ff lrs $AC1.M, @CMBL
063a 1cdf mrr $IX2, $AC1.M 063a 1cdf mrr $IX2, $AC1.M
063b 1cfd mrr $IX3, $AC1.L 063b 1cfd mrr $IX3, $AC1.L
063c 8100 clr $ACC0 063c 8100 clr $ACC0
063d 02bf 065e call 0x065e
063f 26ff lrs $AC0.M, @CMBL //063d 02bf 065e call 0x065e
065e_WaitForCPUMailBox_AC0()
063f 26ff lrs $AC0.M, @CMBL
0640 1c1e mrr $AR0, $AC0.M 0640 1c1e mrr $AR0, $AC0.M
0641 8900 clr $ACC1 0641 8900 clr $ACC1
0642 02bf 0664 call 0x0664 //0642 02bf 0664 call 0x0664
0664_WaitForCPUMailBox_AC1()
0644 20ff lrs $AX0.L, @CMBL 0644 20ff lrs $AX0.L, @CMBL
0645 1f5f mrr $AX0.H, $AC1.M 0645 1f5f mrr $AX0.H, $AC1.M
0646 02bf 065e call 0x065e //0646 02bf 065e call 0x065e
065e_WaitForCPUMailBox_AC0()
0648 21ff lrs $AX1.L, @CMBL 0648 21ff lrs $AX1.L, @CMBL
0649 02bf 065e call 0x065e
064b 23ff lrs $AX1.H, @CMBL //0649 02bf 065e call 0x065e
065e_WaitForCPUMailBox_AC0()
064b 23ff lrs $AX1.H, @CMBL
064c 26c9 lrs $AC0.M, @DSCR 064c 26c9 lrs $AC0.M, @DSCR
064d 02a0 0004 andf $AC0.M, #0x0004 064d 02a0 0004 andf $AC0.M, #0x0004
064f 029c 064c jlnz 0x064c 064f 029c 064c jlnz 0x064c
@ -2061,12 +2092,13 @@ void 065e_WaitForCPUMailBox_AC0()
0663 02df ret 0663 02df ret
} }
void 0664_WaitForCPUMailBox_AC1()
0664 27fe lrs $AC1.M, @CMBH {
0665 03c0 8000 andcf $AC1.M, #0x8000 0664 27fe lrs $AC1.M, @CMBH
0667 029c 0664 jlnz 0x0664 0665 03c0 8000 andcf $AC1.M, #0x8000
0669 02df ret 0667 029c 0664 jlnz 0x0664
0669 02df ret
}
void SendMB_DCD1(_low) void SendMB_DCD1(_low)
{ {
// 066a 02bf 0682 call 0x0682 // 066a 02bf 0682 call 0x0682
@ -2105,10 +2137,13 @@ void SendMB_F355(_low)
} }
067c 26fc lrs $AC0.M, @DMBH void 067c_Unk()
067d 02c0 8000 andcf $AC0.M, #0x8000 {
067f 029d 067c jlz 0x067c 067c 26fc lrs $AC0.M, @DMBH
0681 02df ret 067d 02c0 8000 andcf $AC0.M, #0x8000
067f 029d 067c jlz 0x067c
0681 02df ret
}
void WaitForEmptyDSPMailBox_ovAC1.M() void WaitForEmptyDSPMailBox_ovAC1.M()
@ -2802,7 +2837,7 @@ void 07eb_AFCDecoder(_numberOfSample(AC0.M))
//////////////////////////////////////////// DEFAULT DECODER //////////////////////////////////////////// DEFAULT DECODER
void 087c_DefaultDecoder() void 087c_DefaultDecoder()
{ {
087c 8100 clr $ACC0 087c 8100 clr $ACC0
087d 1f5e mrr $AX0.H, $AC0.M 087d 1f5e mrr $AX0.H, $AC0.M
087e 00d8 0402 lr $AX0.L, @0x0402 087e 00d8 0402 lr $AX0.L, @0x0402
0880 00dc 0430 lr $AC0.L, @0x0430 0880 00dc 0430 lr $AC0.L, @0x0430
@ -4270,7 +4305,8 @@ void 0e3f_UnknownProcess()
0e43 8900 clr $ACC1 0e43 8900 clr $ACC1
0e44 0f50 lris $AC1.M, #0x50 0e44 0f50 lris $AC1.M, #0x50
0e45 0098 6784 lri $AX0.L, #0x6784 0e45 0098 6784 lri $AX0.L, #0x6784
0e47 02bf 00fa call 0x00fa // XorBuffer //0e47 02bf 00fa call 0x00fa // XorBuffer
00fa_Unk()
0e49 0080 04e8 lri $AR0, #0x04e8 0e49 0080 04e8 lri $AR0, #0x04e8
0e4b 0082 04ec lri $AR2, #0x04ec 0e4b 0082 04ec lri $AR2, #0x04ec
@ -4299,6 +4335,7 @@ void 0e3f_UnknownProcess()
0e6a 0f50 lris $AC1.M, #0x50 0e6a 0f50 lris $AC1.M, #0x50
0e6b 0098 6784 lri $AX0.L, #0x6784 0e6b 0098 6784 lri $AX0.L, #0x6784
// 0e6d 02bf 00fa call 0x00fa // XorBuffer // 0e6d 02bf 00fa call 0x00fa // XorBuffer
00fa_Unk()
0e6f 0080 04e8 lri $AR0, #0x04e8 0e6f 0080 04e8 lri $AR0, #0x04e8
0e71 0082 04f4 lri $AR2, #0x04f4 0e71 0082 04f4 lri $AR2, #0x04f4