Little bit of zelda ucode comments

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@824 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard
2008-10-10 11:26:13 +00:00
parent 5796ccaca4
commit 7139fb4356
2 changed files with 93 additions and 26 deletions

View File

@ -176,7 +176,7 @@
00d7 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 00d7 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len)
00d9 02df RET 00d9 02df RET
// Called a lot, don't know what it does. Memset?
00da 191e LRRI $AC0.M, @$R00 00da 191e LRRI $AC0.M, @$R00
00db 191a LRRI $AX0.H, @$R00 00db 191a LRRI $AX0.H, @$R00
00dc 005f LOOP $AC1.M 00dc 005f LOOP $AC1.M
@ -185,7 +185,7 @@
00df 1b7a SRRI @$R03, $AX0.H 00df 1b7a SRRI @$R03, $AX0.H
00e0 02df RET 00e0 02df RET
// Noone seems to call this. Memswap?
00e1 191e LRRI $AC0.M, @$R00 00e1 191e LRRI $AC0.M, @$R00
00e2 191a LRRI $AX0.H, @$R00 00e2 191a LRRI $AX0.H, @$R00
00e3 007f 00e8 BLOOP $AC1.M, 0x00e8 00e3 007f 00e8 BLOOP $AC1.M, 0x00e8
@ -196,7 +196,7 @@
00e9 0000 NOP 00e9 0000 NOP
00ea 02df RET 00ea 02df RET
// Multiply utility? Called a lot. Don't really know what it does.
00eb 8a00 M2 00eb 8a00 M2
00ec 157f LSR $ACC1, #0x3f 00ec 157f LSR $ACC1, #0x3f
00ed 1c20 MRR $R01, $R00 00ed 1c20 MRR $R01, $R00
@ -212,7 +212,7 @@
00f8 8b00 M0 00f8 8b00 M0
00f9 02df RET 00f9 02df RET
// Multiply utility 2? Called a lot. Don't really know what it does.
00fa 8a00 M2 00fa 8a00 M2
00fb 191a LRRI $AX0.H, @$R00 00fb 191a LRRI $AX0.H, @$R00
00fc 9050 MUL.L $AX0.L, $AX0.H : $AX0.H, @$R00 00fc 9050 MUL.L $AX0.L, $AX0.H : $AX0.H, @$R00
@ -222,6 +222,8 @@
0100 8b00 M0 0100 8b00 M0
0101 02df RET 0101 02df RET
// Clear some memory (called by op2) // Clear some memory (called by op2)
0102 8100 CLR $AC0.M 0102 8100 CLR $AC0.M
0103 8900 CLR $AC1.M 0103 8900 CLR $AC1.M
@ -1609,6 +1611,9 @@
086b 8900 CLR $AC1.M 086b 8900 CLR $AC1.M
086c 00df 0360 LR $AC1.M, @0x0360 086c 00df 0360 LR $AC1.M, @0x0360
086e 02df RET 086e 02df RET
086f b100 TST $AC0.M 086f b100 TST $AC0.M
0870 02d5 RETEQ 0870 02d5 RETEQ
0871 04fe ADDIS $ACC0, #0xfe 0871 04fe ADDIS $ACC0, #0xfe
@ -1621,6 +1626,8 @@
0879 6433 MOVR.S $AC0.M, $AX0.H : @$R03, $AC0.M 0879 6433 MOVR.S $AC0.M, $AX0.H : @$R03, $AC0.M
087a 1b7e SRRI @$R03, $AC0.M 087a 1b7e SRRI @$R03, $AC0.M
087b 02df RET 087b 02df RET
087c 8100 CLR $AC0.M 087c 8100 CLR $AC0.M
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
@ -1633,24 +1640,27 @@
088b 1c5f MRR $R02, $AC1.M 088b 1c5f MRR $R02, $AC1.M
088c 175f CALLR $R02 088c 175f CALLR $R02
088d 00fc 0430 SR @0x0430, $AC0.L 088d 00fc 0430 SR @0x0430, $AC0.L
088f 029f 02d8 JMP 0x02d8 088f 029f 02d8 JMP 0x02d8 // 0
0891 029f 08b2 JMP 0x08b2 0891 029f 08b2 JMP 0x08b2 // 1
0893 029f 08ed JMP 0x08ed 0893 029f 08ed JMP 0x08ed // 2
0895 029f 08d5 JMP 0x08d5 0895 029f 08d5 JMP 0x08d5 // 3
0897 029f 08c2 JMP 0x08c2 0897 029f 08c2 JMP 0x08c2 // 4
0899 029f 08fb JMP 0x08fb 0899 029f 08fb JMP 0x08fb // 5
089b 029f 08b1 JMP 0x08b1 089b 029f 08b1 JMP 0x08b1 // 6, 9, 10, 14, 15, 16
089d 029f 0919 JMP 0x0919 089d 029f 0919 JMP 0x0919 // 7
089f 029f 091c JMP 0x091c 089f 029f 091c JMP 0x091c // 8
08a1 029f 08b1 JMP 0x08b1 08a1 029f 08b1 JMP 0x08b1 // 9
08a3 029f 08b1 JMP 0x08b1 08a3 029f 08b1 JMP 0x08b1 // 10
08a5 029f 093a JMP 0x093a 08a5 029f 093a JMP 0x093a // 11
08a7 029f 08f3 JMP 0x08f3 08a7 029f 08f3 JMP 0x08f3 // 12
08a9 029f 08f7 JMP 0x08f7 08a9 029f 08f7 JMP 0x08f7 // 13
08ab 029f 08b1 JMP 0x08b1 08ab 029f 08b1 JMP 0x08b1 // 14
08ad 029f 08b1 JMP 0x08b1 08ad 029f 08b1 JMP 0x08b1 // 15
08af 029f 08b1 JMP 0x08b1 08af 029f 08b1 JMP 0x08b1 // 16
// Op2 - 6, 9, 10, 14, 15, 16
08b1 02df RET 08b1 02df RET
08b2 1401 LSL $ACC0, #0x01 08b2 1401 LSL $ACC0, #0x01
08b3 009b c000 LRI $AX1.H, #0xc000 08b3 009b c000 LRI $AX1.H, #0xc000
08b5 0099 4000 LRI $AX1.L, #0x4000 08b5 0099 4000 LRI $AX1.L, #0x4000
@ -1663,6 +1673,8 @@
08bf 4800 ADDAX $AC0.M, $AX0.L 08bf 4800 ADDAX $AC0.M, $AX0.L
08c0 147f LSR $ACC0, #0x3f 08c0 147f LSR $ACC0, #0x3f
08c1 02df RET 08c1 02df RET
// Op2 - 4
08c2 1402 LSL $ACC0, #0x02 08c2 1402 LSL $ACC0, #0x02
08c3 8900 CLR $AC1.M 08c3 8900 CLR $AC1.M
08c4 1fb8 MRR $AC1.L, $AX0.L 08c4 1fb8 MRR $AC1.L, $AX0.L
@ -1678,6 +1690,8 @@
08d2 4c00 ADD $AC0.M, $AC1.M 08d2 4c00 ADD $AC0.M, $AC1.M
08d3 147e LSR $ACC0, #0x3e 08d3 147e LSR $ACC0, #0x3e
08d4 02df RET 08d4 02df RET
// Op2 - 3
08d5 1401 LSL $ACC0, #0x01 08d5 1401 LSL $ACC0, #0x01
08d6 0081 0ca0 LRI $R01, #0x0ca0 08d6 0081 0ca0 LRI $R01, #0x0ca0
08d8 009b c000 LRI $AX1.H, #0xc000 08d8 009b c000 LRI $AX1.H, #0xc000
@ -1696,12 +1710,16 @@
08ea 4c39 ADD.S $AC0.M, $AC1.M : @$R01, $AC1.M 08ea 4c39 ADD.S $AC0.M, $AC1.M : @$R01, $AC1.M
08eb 147f LSR $ACC0, #0x3f 08eb 147f LSR $ACC0, #0x3f
08ec 02df RET 08ec 02df RET
// Op2 - 2
08ed 8900 CLR $AC1.M 08ed 8900 CLR $AC1.M
08ee 1fb8 MRR $AC1.L, $AX0.L 08ee 1fb8 MRR $AC1.L, $AX0.L
08ef 157f LSR $ACC1, #0x3f 08ef 157f LSR $ACC1, #0x3f
08f0 1050 LOOPI #0x50 08f0 1050 LOOPI #0x50
08f1 4c20 ADD.S $AC0.M, $AC1.M : @$R00, $AC0.L 08f1 4c20 ADD.S $AC0.M, $AC1.M : @$R00, $AC0.L
08f2 02df RET 08f2 02df RET
// Op2 - 12
08f3 0082 0180 LRI $R02, #0x0180 08f3 0082 0180 LRI $R02, #0x0180
08f5 029f 08fd JMP 0x08fd 08f5 029f 08fd JMP 0x08fd
08f7 0082 01c0 LRI $R02, #0x01c0 08f7 0082 01c0 LRI $R02, #0x01c0
@ -1729,9 +1747,13 @@
0915 147a LSR $ACC0, #0x3a 0915 147a LSR $ACC0, #0x3a
0916 008a ffff LRI $R10, #0xffff 0916 008a ffff LRI $R10, #0xffff
0918 02df RET 0918 02df RET
0919 1050 LOOPI #0x50 0919 1050 LOOPI #0x50
091a 1b18 SRRI @$R00, $AX0.L 091a 1b18 SRRI @$R00, $AX0.L
091b 02df RET 091b 02df RET
091c 0082 0100 LRI $R02, #0x0100 091c 0082 0100 LRI $R02, #0x0100
091e 008a 003f LRI $R10, #0x003f 091e 008a 003f LRI $R10, #0x003f
0920 0086 0000 LRI $R06, #0x0000 0920 0086 0000 LRI $R06, #0x0000
@ -1755,6 +1777,9 @@
0936 147a LSR $ACC0, #0x3a 0936 147a LSR $ACC0, #0x3a
0937 008a ffff LRI $R10, #0xffff 0937 008a ffff LRI $R10, #0xffff
0939 02df RET 0939 02df RET
093a 0082 0100 LRI $R02, #0x0100 093a 0082 0100 LRI $R02, #0x0100
093c 008a 003f LRI $R10, #0x003f 093c 008a 003f LRI $R10, #0x003f
093e 0086 0000 LRI $R06, #0x0000 093e 0086 0000 LRI $R06, #0x0000
@ -1784,6 +1809,9 @@
095b 147a LSR $ACC0, #0x3a 095b 147a LSR $ACC0, #0x3a
095c 008a ffff LRI $R10, #0xffff 095c 008a ffff LRI $R10, #0xffff
095e 02df RET 095e 02df RET
095f 0080 01be LRI $R00, #0x01be 095f 0080 01be LRI $R00, #0x01be
0961 1918 LRRI $AX0.L, @$R00 0961 1918 LRRI $AX0.L, @$R00
0962 191a LRRI $AX0.H, @$R00 0962 191a LRRI $AX0.H, @$R00
@ -1810,6 +1838,9 @@
097e 0260 2000 ORI $ACC0, #0x2000 097e 0260 2000 ORI $ACC0, #0x2000
0980 02bf 0983 CALL 0x0983 0980 02bf 0983 CALL 0x0983
0982 02df RET 0982 02df RET
0983 b900 TST $AC1.M 0983 b900 TST $AC1.M
0984 0272 IF_2 0984 0272 IF_2
0985 7c00 NEG $AC0.M 0985 7c00 NEG $AC0.M
@ -1821,6 +1852,9 @@
098c 473b ADDR.S $AC1.M, $AX1.H : @$R03, $AC1.M 098c 473b ADDR.S $AC1.M, $AX1.H : @$R03, $AC1.M
098d 473b ADDR.S $AC1.M, $AX1.H : @$R03, $AC1.M 098d 473b ADDR.S $AC1.M, $AX1.H : @$R03, $AC1.M
098e 02df RET 098e 02df RET
098f 0092 0004 LRI $CR, #0x0004 098f 0092 0004 LRI $CR, #0x0004
0991 2002 LRS $AX0.L, @0x0002 0991 2002 LRS $AX0.L, @0x0002
0992 8100 CLR $AC0.M 0992 8100 CLR $AC0.M
@ -2189,6 +2223,8 @@
0b49 0088 ffff LRI $R08, #0xffff 0b49 0088 ffff LRI $R08, #0xffff
0b4b 8b00 M0 0b4b 8b00 M0
0b4c 02df RET 0b4c 02df RET
0b4d 8a00 M2 0b4d 8a00 M2
0b4e 05fe ADDIS $ACC1, #0xfe 0b4e 05fe ADDIS $ACC1, #0xfe
0b4f 0083 03e8 LRI $R03, #0x03e8 0b4f 0083 03e8 LRI $R03, #0x03e8
@ -2212,6 +2248,9 @@
0b64 0088 ffff LRI $R08, #0xffff 0b64 0088 ffff LRI $R08, #0xffff
0b66 8b00 M0 0b66 8b00 M0
0b67 02df RET 0b67 02df RET
0b68 0083 03e8 LRI $R03, #0x03e8 0b68 0083 03e8 LRI $R03, #0x03e8
0b6a 191e LRRI $AC0.M, @$R00 0b6a 191e LRRI $AC0.M, @$R00
0b6b 191a LRRI $AX0.H, @$R00 0b6b 191a LRRI $AX0.H, @$R00
@ -2265,6 +2304,8 @@
0ba1 1b5f SRRI @$R02, $AC1.M 0ba1 1b5f SRRI @$R02, $AC1.M
0ba2 1b5e SRRI @$R02, $AC0.M 0ba2 1b5e SRRI @$R02, $AC0.M
0ba3 02df RET 0ba3 02df RET
0ba4 0083 03e8 LRI $R03, #0x03e8 0ba4 0083 03e8 LRI $R03, #0x03e8
0ba6 191e LRRI $AC0.M, @$R00 0ba6 191e LRRI $AC0.M, @$R00
0ba7 191a LRRI $AX0.H, @$R00 0ba7 191a LRRI $AX0.H, @$R00
@ -2424,6 +2465,8 @@
0c6c 00fc 03f6 SR @0x03f6, $AC0.L 0c6c 00fc 03f6 SR @0x03f6, $AC0.L
0c6e 008b ffff LRI $R11, #0xffff 0c6e 008b ffff LRI $R11, #0xffff
0c70 02df RET 0c70 02df RET
0c71 0f50 LRIS $AC1.M, #0x50 0c71 0f50 LRIS $AC1.M, #0x50
0c72 0080 0a00 LRI $R00, #0x0a00 0c72 0080 0a00 LRI $R00, #0x0a00
0c74 0083 0d60 LRI $R03, #0x0d60 0c74 0083 0d60 LRI $R03, #0x0d60
@ -2435,6 +2478,8 @@
0c7f 0098 3fff LRI $AX0.L, #0x3fff 0c7f 0098 3fff LRI $AX0.L, #0x3fff
0c81 02bf 00eb CALL 0x00eb 0c81 02bf 00eb CALL 0x00eb
0c83 02df RET 0c83 02df RET
0c84 8a00 M2 0c84 8a00 M2
0c85 8f00 S16 0c85 8f00 S16
0c86 8100 CLR $AC0.M 0c86 8100 CLR $AC0.M
@ -2462,11 +2507,13 @@
0ca6 8b00 M0 0ca6 8b00 M0
0ca7 8e00 S40 0ca7 8e00 S40
0ca8 02df RET 0ca8 02df RET
0ca9 b900 TST $AC1.M 0ca9 b900 TST $AC1.M
0caa 0294 0caf JNE 0x0caf 0caa 0294 0caf JNE 0x0caf
0cac 6800 MOVAX $AC0.M, $AX0.L 0cac 6800 MOVAX $AC0.M, $AX0.L
0cad b100 TST $AC0.M 0cad b100 TST $AC0.M
0cae 02d5 RETEQ 0cae 02d5 RETEQ // Return if equal ?
0caf 1c23 MRR $R01, $R03 0caf 1c23 MRR $R01, $R03
0cb0 197e LRRI $AC0.M, @$R03 0cb0 197e LRRI $AC0.M, @$R03
0cb1 191b LRRI $AX1.H, @$R00 0cb1 191b LRRI $AX1.H, @$R00
@ -2483,6 +2530,9 @@
0cbe dcd3 MULCAC.LD $AX1.H, $AC1.M, $AC0.M : $AX0.L, $AX1.H, @$R03 0cbe dcd3 MULCAC.LD $AX1.H, $AC1.M, $AC0.M : $AX0.L, $AX1.H, @$R03
0cbf 6231 MOVR.S $AC0.M, $AX1.L : @$R01, $AC0.M 0cbf 6231 MOVR.S $AC0.M, $AX1.L : @$R01, $AC0.M
0cc0 02df RET 0cc0 02df RET
0cc1 8f00 S16 0cc1 8f00 S16
0cc2 8d00 SET15 0cc2 8d00 SET15
0cc3 1c03 MRR $R00, $R03 0cc3 1c03 MRR $R00, $R03
@ -2499,6 +2549,9 @@
0cd0 8c00 CLR15 0cd0 8c00 CLR15
0cd1 8e00 S40 0cd1 8e00 S40
0cd2 02df RET 0cd2 02df RET
0cd3 00da 0485 LR $AX0.H, @0x0485 0cd3 00da 0485 LR $AX0.H, @0x0485
0cd5 8600 TSTAXH $AX0.H 0cd5 8600 TSTAXH $AX0.H
0cd6 0295 0ce5 JEQ 0x0ce5 0cd6 0295 0ce5 JEQ 0x0ce5
@ -2597,6 +2650,8 @@
0d5f 0000 NOP 0d5f 0000 NOP
0d60 8e00 S40 0d60 8e00 S40
0d61 02df RET 0d61 02df RET
0d62 191f LRRI $AC1.M, @$R00 0d62 191f LRRI $AC1.M, @$R00
0d63 d078 MULC.L $AX0.H, $AC1.M : $AC1.M, @$R00 0d63 d078 MULC.L $AX0.H, $AC1.M : $AC1.M, @$R00
0d64 d678 MULCMV.L $AX0.H, $AC1.M, $AC0.M : $AC1.M, @$R00 0d64 d678 MULCMV.L $AX0.H, $AC1.M, $AC0.M : $AC1.M, @$R00
@ -2606,6 +2661,9 @@
0d68 6e31 MOVP.S $AC0.M : @$R01, $AC0.M 0d68 6e31 MOVP.S $AC0.M : @$R01, $AC0.M
0d69 1b3e SRRI @$R01, $AC0.M 0d69 1b3e SRRI @$R01, $AC0.M
0d6a 02df RET 0d6a 02df RET
0d6b 8d00 SET15 0d6b 8d00 SET15
0d6c 1f7e MRR $AX1.H, $AC0.M 0d6c 1f7e MRR $AX1.H, $AC0.M
0d6d 1918 LRRI $AX0.L, @$R00 0d6d 1918 LRRI $AX0.L, @$R00
@ -2618,6 +2676,8 @@
0d74 1b3e SRRI @$R01, $AC0.M 0d74 1b3e SRRI @$R01, $AC0.M
0d75 8c00 CLR15 0d75 8c00 CLR15
0d76 02df RET 0d76 02df RET
0d77 0d00 LRIS $AC1.L, #0x00 0d77 0d00 LRIS $AC1.L, #0x00
0d78 0d60 LRIS $AC1.L, #0x60 0d78 0d60 LRIS $AC1.L, #0x60
0d79 0f40 LRIS $AC1.M, #0x40 0d79 0f40 LRIS $AC1.M, #0x40
@ -2720,6 +2780,8 @@
0df0 6533 MOVR.S $AC1.M, $AX0.H : @$R03, $AC0.M 0df0 6533 MOVR.S $AC1.M, $AX0.H : @$R03, $AC0.M
0df1 1b7f SRRI @$R03, $AC1.M 0df1 1b7f SRRI @$R03, $AC1.M
0df2 02df RET 0df2 02df RET
0df3 1fe0 MRR $AC1.M, $R00 0df3 1fe0 MRR $AC1.M, $R00
0df4 1c1f MRR $R00, $AC1.M 0df4 1c1f MRR $R00, $AC1.M
0df5 1128 0dfc BLOOPI #0x28, 0x0dfc 0df5 1128 0dfc BLOOPI #0x28, 0x0dfc
@ -2748,6 +2810,8 @@
0e12 1a5b SRR @$R02, $AX1.H 0e12 1a5b SRR @$R02, $AX1.H
0e13 02df RET 0e13 02df RET
// called by init code // called by init code
{ {
a_04e8[0]=0x8240; a_04e8[0]=0x8240;
@ -2833,6 +2897,9 @@
0e87 0098 8001 LRI $AX0.L, #0x8001 0e87 0098 8001 LRI $AX0.L, #0x8001
0e89 02bf 00eb CALL 0x00eb 0e89 02bf 00eb CALL 0x00eb
0e8b 02df RET 0e8b 02df RET
0e8c 0000 NOP 0e8c 0000 NOP
0e8d 0000 NOP 0e8d 0000 NOP
0e8e 0000 NOP 0e8e 0000 NOP

View File

@ -16,13 +16,13 @@
8010 02bf 8078 CALL 0x8078 // wait for CPU mailbox & 0x8000 8010 02bf 8078 CALL 0x8078 // wait for CPU mailbox & 0x8000
8012 009f 80f3 LRI $AC1.M, #0x80f3 8012 009f 80f3 LRI $AC1.M, #0x80f3
8014 8200 CMP 8014 8200 CMP
8015 0295 801f JEQ 0x801f 8015 0295 801f JEQ 0x801f // skip below dsp mailbox write...
8017 27ff LRS $AC1.M, @CMBL 8017 27ff LRS $AC1.M, @CMBL
8018 16fc feee SI @DMBH, #0xfeee 8018 16fc feee SI @DMBH, #0xfeee // Write to dsp mailbox
801a 2efd SRS @DMBL, $AC0.M 801a 2efd SRS @DMBL, $AC0.M
801b 02bf 807e CALL 0x807e 801b 02bf 807e CALL 0x807e
801d 029f 800e JMP 0x800e 801d 029f 800e JMP 0x800e
801f 26ff LRS $AC0.M, @CMBL 801f 26ff LRS $AC0.M, @CMBLa // ...and end up here (skip above)
8020 009f a001 LRI $AC1.M, #0xa001 8020 009f a001 LRI $AC1.M, #0xa001
// if equal to a001 ... // if equal to a001 ...
@ -2045,4 +2045,4 @@
8ffe 06e2 CMPIS $ACC0, #0xe2 8ffe 06e2 CMPIS $ACC0, #0xe2
8fff 8845 CW 0x8845 ; *** UNKNOWN OPCODE *** 8fff 8845 CW 0x8845 ; *** UNKNOWN OPCODE ***
8AFFEX 8AFFEX