Порядок в каталогах
This commit is contained in:
160
ghidra_src/EP__OLD_CharLoadBIG_SRC.asm
Normal file
160
ghidra_src/EP__OLD_CharLoadBIG_SRC.asm
Normal file
@@ -0,0 +1,160 @@
|
||||
**************************************************************
|
||||
* FUNCTION *
|
||||
**************************************************************
|
||||
undefined MakeCharInScratch()
|
||||
assume gp = 0x8007c970
|
||||
undefined v0:1 <RETURN>
|
||||
undefined4 Stack[-0x8]:4 local_8 XREF[2]: 8001a96c(W),
|
||||
8001aa40(R)
|
||||
MakeCharInScratch XREF[1]: DrawCharLine_1a3a8:8001a608(c)
|
||||
8001a95c e8 ff bd 27 addiu sp,sp,-0x18
|
||||
assume gp = <UNKNOWN>
|
||||
8001a960 21 28 80 00 move a1,a0
|
||||
8001a964 80 1f 04 3c lui a0,0x1f80
|
||||
8001a968 00 03 84 34 ori a0=>DAT_1f800300,a0,0x300 = ??
|
||||
8001a96c 10 00 bf af sw ra,local_8(sp)
|
||||
8001a970 65 6c 00 0c jal makeCharPixels undefined makeCharPixels()
|
||||
8001a974 21 30 00 00 _clear a2
|
||||
8001a978 a5 00 83 93 lbu v1,0xa5(gp)=>DAT_8007ca15
|
||||
8001a97c 01 00 02 24 li v0,0x1
|
||||
8001a980 03 00 62 14 bne v1,v0,LAB_8001a990
|
||||
8001a984 80 1f 04 3c _lui a0,0x1f80
|
||||
8001a988 94 6a 00 0c jal MakeCharShadow undefined MakeCharShadow()
|
||||
8001a98c 00 03 84 34 _ori a0=>DAT_1f800300,a0,0x300 = ??
|
||||
LAB_8001a990 XREF[1]: 8001a980(j)
|
||||
8001a990 80 1f 03 3c lui v1,0x1f80
|
||||
8001a994 58 03 63 34 ori v1,v1,0x358
|
||||
8001a998 80 1f 02 3c lui v0,0x1f80
|
||||
8001a99c 00 03 42 34 ori v0,v0,0x300
|
||||
8001a9a0 80 1f 04 3c lui a0,0x1f80
|
||||
8001a9a4 20 03 84 34 ori a0,a0,0x320
|
||||
LAB_8001a9a8 XREF[1]: 8001a9cc(j)
|
||||
8001a9a8 00 00 47 8c lw a3,0x0(v0)=>DAT_1f800300 = ??
|
||||
8001a9ac 04 00 48 8c lw t0,offset DAT_1f800304(v0) = ??
|
||||
8001a9b0 08 00 49 8c lw t1,offset DAT_1f800308(v0) = ??
|
||||
8001a9b4 0c 00 4a 8c lw t2,offset DAT_1f80030c(v0) = ??
|
||||
8001a9b8 00 00 67 ac sw a3,0x0(v1)=>DAT_1f800358 = ??
|
||||
8001a9bc 04 00 68 ac sw t0,0x4(v1)=>DAT_1f80035c = ??
|
||||
8001a9c0 08 00 69 ac sw t1,0x8(v1)=>DAT_1f800360 = ??
|
||||
8001a9c4 0c 00 6a ac sw t2,0xc(v1)=>DAT_1f800364 = ??
|
||||
8001a9c8 10 00 42 24 addiu v0,v0,0x10
|
||||
8001a9cc f6 ff 44 14 bne v0,a0,LAB_8001a9a8
|
||||
8001a9d0 10 00 63 24 _addiu v1,v1,0x10
|
||||
8001a9d4 03 00 47 88 lwl a3,0x3(v0)
|
||||
8001a9d8 00 00 47 98 lwr a3,0x0(v0)=>DAT_1f800310 = ??
|
||||
8001a9dc 00 00 00 00 nop
|
||||
8001a9e0 03 00 67 a8 swl a3,0x3(v1)
|
||||
8001a9e4 00 00 67 b8 swr a3,0x0(v1)=>DAT_1f800368 = ??
|
||||
8001a9e8 80 1f 03 3c lui v1,0x1f80
|
||||
8001a9ec 9c 03 63 34 ori v1,v1,0x39c
|
||||
8001a9f0 80 1f 02 3c lui v0,0x1f80
|
||||
8001a9f4 24 03 42 34 ori v0,v0,0x324
|
||||
8001a9f8 80 1f 04 3c lui a0,0x1f80
|
||||
8001a9fc 44 03 84 34 ori a0,a0,0x344
|
||||
LAB_8001aa00 XREF[1]: 8001aa24(j)
|
||||
8001aa00 00 00 47 8c lw a3,0x0(v0)=>DAT_1f800324 = ??
|
||||
8001aa04 04 00 48 8c lw t0,0x4(v0)=>DAT_1f800328 = ??
|
||||
8001aa08 08 00 49 8c lw t1,0x8(v0)=>DAT_1f80032c = ??
|
||||
8001aa0c 0c 00 4a 8c lw t2,0xc(v0)=>DAT_1f800330 = ??
|
||||
8001aa10 00 00 67 ac sw a3,0x0(v1)=>DAT_1f80039c = ??
|
||||
8001aa14 04 00 68 ac sw t0,0x4(v1)=>DAT_1f8003a0 = ??
|
||||
8001aa18 08 00 69 ac sw t1,0x8(v1)=>DAT_1f8003a4 = ??
|
||||
8001aa1c 0c 00 6a ac sw t2,0xc(v1)=>DAT_1f8003a8 = ??
|
||||
8001aa20 10 00 42 24 addiu v0=>DAT_1f800334,v0,0x10 = ??
|
||||
8001aa24 f6 ff 44 14 bne v0,a0,LAB_8001aa00
|
||||
8001aa28 10 00 63 24 _addiu v1,v1,0x10
|
||||
8001aa2c 03 00 47 88 lwl a3,0x3(v0)
|
||||
8001aa30 00 00 47 98 lwr a3,0x0(v0)=>DAT_1f800334 = ??
|
||||
8001aa34 00 00 00 00 nop
|
||||
8001aa38 03 00 67 a8 swl a3,0x3(v1)
|
||||
8001aa3c 00 00 67 b8 swr a3,0x0(v1)=>DAT_1f8003ac = ??
|
||||
8001aa40 10 00 bf 8f lw ra,local_8(sp)
|
||||
8001aa44 00 00 00 00 nop
|
||||
8001aa48 08 00 e0 03 jr ra
|
||||
8001aa4c 18 00 bd 27 _addiu sp,sp,0x18
|
||||
|
||||
|
||||
**************************************************************
|
||||
* FUNCTION *
|
||||
**************************************************************
|
||||
undefined makeCharPixels()
|
||||
assume gp = 0x8007c970
|
||||
undefined v0:1 <RETURN>
|
||||
makeCharPixels XREF[4]: FUN_80016a5c:80016ad0(c),
|
||||
MakeCharInScratch:8001a970(c),
|
||||
GenerateSmallChar:8001b334(c),
|
||||
FUN_8001c0c8:8001c0d8(c)
|
||||
8001b194 a4 00 8a 93 lbu t2,0xa4(gp)=>DAT_8007ca14
|
||||
assume gp = <UNKNOWN>
|
||||
8001b198 09 00 c0 14 bne a2,zero,LAB_8001b1c0
|
||||
8001b19c 21 40 80 00 _move t0,a0
|
||||
8001b1a0 1e 80 03 3c lui v1,0x801e
|
||||
8001b1a4 80 f4 63 34 ori v1,v1,0xf480
|
||||
8001b1a8 c0 10 05 00 sll v0,a1,0x3
|
||||
8001b1ac 21 10 45 00 addu v0,v0,a1
|
||||
8001b1b0 40 10 02 00 sll v0,v0,0x1
|
||||
8001b1b4 21 48 43 00 addu t1,v0,v1
|
||||
8001b1b8 77 6c 00 08 j LAB_8001b1dc
|
||||
8001b1bc 09 00 06 24 _li a2,0x9
|
||||
LAB_8001b1c0 XREF[1]: 8001b198(j)
|
||||
8001b1c0 1e 80 03 3c lui v1,0x801e
|
||||
8001b1c4 00 f0 63 34 ori v1,v1,0xf000
|
||||
8001b1c8 40 10 05 00 sll v0,a1,0x1
|
||||
8001b1cc 21 10 45 00 addu v0,v0,a1
|
||||
8001b1d0 80 10 02 00 sll v0,v0,0x2
|
||||
8001b1d4 21 48 43 00 addu t1,v0,v1
|
||||
8001b1d8 06 00 06 24 li a2,0x6
|
||||
LAB_8001b1dc XREF[1]: 8001b1b8(j)
|
||||
8001b1dc 21 10 c0 00 move v0,a2
|
||||
8001b1e0 2f 00 40 10 beq v0,zero,LAB_8001b2a0
|
||||
8001b1e4 ff ff c6 24 _addiu a2,a2,-0x1
|
||||
8001b1e8 80 1f 07 3c lui a3,0x1f80
|
||||
8001b1ec e0 02 e7 34 ori a3,a3,0x2e0
|
||||
LAB_8001b1f0 XREF[1]: 8001b298(j)
|
||||
8001b1f0 00 00 23 95 lhu v1=>DAT_801ef480,0x0(t1)=>DAT_801ef482 = ??
|
||||
8001b1f4 00 00 00 00 nop
|
||||
8001b1f8 0f 00 64 30 andi a0,v1,0xf
|
||||
8001b1fc 02 19 03 00 srl v1,v1,0x4
|
||||
8001b200 0f 00 62 30 andi v0,v1,0xf
|
||||
8001b204 40 10 02 00 sll v0,v0,0x1
|
||||
8001b208 21 10 47 00 addu v0,v0,a3
|
||||
8001b20c 00 00 42 94 lhu v0,0x0(v0)=>DAT_1f8002e0 = ??
|
||||
8001b210 00 00 00 00 nop
|
||||
8001b214 18 00 4a 00 mult v0,t2
|
||||
8001b218 40 20 04 00 sll a0,a0,0x1
|
||||
8001b21c 21 20 87 00 addu a0,a0,a3
|
||||
8001b220 12 28 00 00 mflo a1
|
||||
8001b224 00 00 82 94 lhu v0,0x0(a0)=>DAT_1f8002e0 = ??
|
||||
8001b228 00 00 00 00 nop
|
||||
8001b22c 18 00 4a 00 mult v0,t2
|
||||
8001b230 02 19 03 00 srl v1,v1,0x4
|
||||
8001b234 0f 00 64 30 andi a0,v1,0xf
|
||||
8001b238 02 19 03 00 srl v1,v1,0x4
|
||||
8001b23c 40 18 03 00 sll v1,v1,0x1
|
||||
8001b240 21 18 67 00 addu v1,v1,a3
|
||||
8001b244 00 14 05 00 sll v0,a1,0x10
|
||||
8001b248 12 60 00 00 mflo t4
|
||||
8001b24c 25 10 82 01 or v0,t4,v0
|
||||
8001b250 00 00 02 ad sw v0,0x0(t0)
|
||||
8001b254 00 00 62 94 lhu v0,0x0(v1)=>DAT_1f8002e0 = ??
|
||||
8001b258 00 00 00 00 nop
|
||||
8001b25c 18 00 4a 00 mult v0,t2
|
||||
8001b260 40 20 04 00 sll a0,a0,0x1
|
||||
8001b264 21 20 87 00 addu a0,a0,a3
|
||||
8001b268 12 28 00 00 mflo a1
|
||||
8001b26c 00 00 82 94 lhu v0,0x0(a0)=>DAT_1f8002e0 = ??
|
||||
8001b270 00 00 00 00 nop
|
||||
8001b274 18 00 4a 00 mult v0,t2
|
||||
8001b278 02 00 29 25 addiu t1,t1,0x2
|
||||
8001b27c 21 18 c0 00 move v1,a2
|
||||
8001b280 ff ff c6 24 addiu a2,a2,-0x1
|
||||
8001b284 04 00 08 25 addiu t0,t0,0x4
|
||||
8001b288 00 14 05 00 sll v0,a1,0x10
|
||||
8001b28c 12 60 00 00 mflo t4
|
||||
8001b290 25 10 82 01 or v0,t4,v0
|
||||
8001b294 00 00 02 ad sw v0,0x0(t0)
|
||||
8001b298 d5 ff 60 14 bne v1,zero,LAB_8001b1f0
|
||||
8001b29c 04 00 08 25 _addiu t0,t0,0x4
|
||||
LAB_8001b2a0 XREF[1]: 8001b1e0(j)
|
||||
8001b2a0 08 00 e0 03 jr ra
|
||||
8001b2a4 00 00 00 00 _nop
|
||||
116
ghidra_src/EP__OLD_CharLoadSML_SRC.asm
Normal file
116
ghidra_src/EP__OLD_CharLoadSML_SRC.asm
Normal file
@@ -0,0 +1,116 @@
|
||||
**************************************************************
|
||||
* FUNCTION *
|
||||
**************************************************************
|
||||
undefined GenerateSmallChar()
|
||||
assume gp = 0x8007c970
|
||||
undefined v0:1 <RETURN>
|
||||
undefined4 Stack[-0x8]:4 local_8 XREF[2]: 8001b330(W),
|
||||
8001b358(R)
|
||||
GenerateSmallChar XREF[2]: MakeSmallChar:8001ae38(c),
|
||||
FUN_8001c3a4:8001c548(c)
|
||||
8001b320 e8 ff bd 27 addiu sp,sp,-0x18
|
||||
assume gp = <UNKNOWN>
|
||||
8001b324 21 28 80 00 move a1,a0
|
||||
8001b328 80 1f 04 3c lui a0,0x1f80
|
||||
8001b32c 58 03 84 34 ori a0=>DAT_1f800358,a0,0x358 = ??
|
||||
8001b330 10 00 bf af sw ra,local_8(sp)
|
||||
8001b334 65 6c 00 0c jal makeCharPixels undefined makeCharPixels()
|
||||
8001b338 01 00 06 24 _li a2,0x1
|
||||
8001b33c a5 00 83 93 lbu v1,0xa5(gp)=>DAT_8007ca15
|
||||
8001b340 01 00 02 24 li v0,0x1
|
||||
8001b344 04 00 62 14 bne v1,v0,LAB_8001b358
|
||||
8001b348 00 00 00 00 _nop
|
||||
8001b34c 80 1f 04 3c lui a0,0x1f80
|
||||
8001b350 aa 6c 00 0c jal MakeCharShadow undefined MakeCharShadow()
|
||||
8001b354 58 03 84 34 _ori a0=>DAT_1f800358,a0,0x358 = ??
|
||||
LAB_8001b358 XREF[1]: 8001b344(j)
|
||||
8001b358 10 00 bf 8f lw ra,local_8(sp)
|
||||
8001b35c 00 00 00 00 nop
|
||||
8001b360 08 00 e0 03 jr ra
|
||||
8001b364 18 00 bd 27 _addiu sp,sp,0x18
|
||||
|
||||
|
||||
**************************************************************
|
||||
* FUNCTION *
|
||||
**************************************************************
|
||||
undefined makeCharPixels()
|
||||
assume gp = 0x8007c970
|
||||
undefined v0:1 <RETURN>
|
||||
makeCharPixels XREF[4]: FUN_80016a5c:80016ad0(c),
|
||||
MakeCharInScratch:8001a970(c),
|
||||
GenerateSmallChar:8001b334(c),
|
||||
FUN_8001c0c8:8001c0d8(c)
|
||||
8001b194 a4 00 8a 93 lbu t2,0xa4(gp)=>DAT_8007ca14
|
||||
assume gp = <UNKNOWN>
|
||||
8001b198 09 00 c0 14 bne a2,zero,LAB_8001b1c0
|
||||
8001b19c 21 40 80 00 _move t0,a0
|
||||
8001b1a0 1e 80 03 3c lui v1,0x801e
|
||||
8001b1a4 80 f4 63 34 ori v1,v1,0xf480
|
||||
8001b1a8 c0 10 05 00 sll v0,a1,0x3
|
||||
8001b1ac 21 10 45 00 addu v0,v0,a1
|
||||
8001b1b0 40 10 02 00 sll v0,v0,0x1
|
||||
8001b1b4 21 48 43 00 addu t1,v0,v1
|
||||
8001b1b8 77 6c 00 08 j LAB_8001b1dc
|
||||
8001b1bc 09 00 06 24 _li a2,0x9
|
||||
LAB_8001b1c0 XREF[1]: 8001b198(j)
|
||||
8001b1c0 1e 80 03 3c lui v1,0x801e
|
||||
8001b1c4 00 f0 63 34 ori v1,v1,0xf000
|
||||
8001b1c8 40 10 05 00 sll v0,a1,0x1
|
||||
8001b1cc 21 10 45 00 addu v0,v0,a1
|
||||
8001b1d0 80 10 02 00 sll v0,v0,0x2
|
||||
8001b1d4 21 48 43 00 addu t1,v0,v1
|
||||
8001b1d8 06 00 06 24 li a2,0x6
|
||||
LAB_8001b1dc XREF[1]: 8001b1b8(j)
|
||||
8001b1dc 21 10 c0 00 move v0,a2
|
||||
8001b1e0 2f 00 40 10 beq v0,zero,LAB_8001b2a0
|
||||
8001b1e4 ff ff c6 24 _addiu a2,a2,-0x1
|
||||
8001b1e8 80 1f 07 3c lui a3,0x1f80
|
||||
8001b1ec e0 02 e7 34 ori a3,a3,0x2e0
|
||||
LAB_8001b1f0 XREF[1]: 8001b298(j)
|
||||
8001b1f0 00 00 23 95 lhu v1=>DAT_801ef480,0x0(t1)=>DAT_801ef482 = ??
|
||||
8001b1f4 00 00 00 00 nop
|
||||
8001b1f8 0f 00 64 30 andi a0,v1,0xf
|
||||
8001b1fc 02 19 03 00 srl v1,v1,0x4
|
||||
8001b200 0f 00 62 30 andi v0,v1,0xf
|
||||
8001b204 40 10 02 00 sll v0,v0,0x1
|
||||
8001b208 21 10 47 00 addu v0,v0,a3
|
||||
8001b20c 00 00 42 94 lhu v0,0x0(v0)=>DAT_1f8002e0 = ??
|
||||
8001b210 00 00 00 00 nop
|
||||
8001b214 18 00 4a 00 mult v0,t2
|
||||
8001b218 40 20 04 00 sll a0,a0,0x1
|
||||
8001b21c 21 20 87 00 addu a0,a0,a3
|
||||
8001b220 12 28 00 00 mflo a1
|
||||
8001b224 00 00 82 94 lhu v0,0x0(a0)=>DAT_1f8002e0 = ??
|
||||
8001b228 00 00 00 00 nop
|
||||
8001b22c 18 00 4a 00 mult v0,t2
|
||||
8001b230 02 19 03 00 srl v1,v1,0x4
|
||||
8001b234 0f 00 64 30 andi a0,v1,0xf
|
||||
8001b238 02 19 03 00 srl v1,v1,0x4
|
||||
8001b23c 40 18 03 00 sll v1,v1,0x1
|
||||
8001b240 21 18 67 00 addu v1,v1,a3
|
||||
8001b244 00 14 05 00 sll v0,a1,0x10
|
||||
8001b248 12 60 00 00 mflo t4
|
||||
8001b24c 25 10 82 01 or v0,t4,v0
|
||||
8001b250 00 00 02 ad sw v0,0x0(t0)
|
||||
8001b254 00 00 62 94 lhu v0,0x0(v1)=>DAT_1f8002e0 = ??
|
||||
8001b258 00 00 00 00 nop
|
||||
8001b25c 18 00 4a 00 mult v0,t2
|
||||
8001b260 40 20 04 00 sll a0,a0,0x1
|
||||
8001b264 21 20 87 00 addu a0,a0,a3
|
||||
8001b268 12 28 00 00 mflo a1
|
||||
8001b26c 00 00 82 94 lhu v0,0x0(a0)=>DAT_1f8002e0 = ??
|
||||
8001b270 00 00 00 00 nop
|
||||
8001b274 18 00 4a 00 mult v0,t2
|
||||
8001b278 02 00 29 25 addiu t1,t1,0x2
|
||||
8001b27c 21 18 c0 00 move v1,a2
|
||||
8001b280 ff ff c6 24 addiu a2,a2,-0x1
|
||||
8001b284 04 00 08 25 addiu t0,t0,0x4
|
||||
8001b288 00 14 05 00 sll v0,a1,0x10
|
||||
8001b28c 12 60 00 00 mflo t4
|
||||
8001b290 25 10 82 01 or v0,t4,v0
|
||||
8001b294 00 00 02 ad sw v0,0x0(t0)
|
||||
8001b298 d5 ff 60 14 bne v1,zero,LAB_8001b1f0
|
||||
8001b29c 04 00 08 25 _addiu t0,t0,0x4
|
||||
LAB_8001b2a0 XREF[1]: 8001b1e0(j)
|
||||
8001b2a0 08 00 e0 03 jr ra
|
||||
8001b2a4 00 00 00 00 _nop
|
||||
429
ghidra_src/EP__OLD_big_SRC.asm
Normal file
429
ghidra_src/EP__OLD_big_SRC.asm
Normal file
@@ -0,0 +1,429 @@
|
||||
|
||||
FUN_8002162c:800216bc(c)
|
||||
8001a3a8 b0 ff bd 27 addiu sp,sp,-0x50
|
||||
|
||||
8001a3ac 38 00 b4 af sw s4,local_18(sp)
|
||||
8001a3b0 21 a0 80 00 move s4,r4
|
||||
8001a3b4 28 00 b0 af sw s0,local_28(sp)
|
||||
8001a3b8 21 80 a0 00 move s0,r5
|
||||
8001a3bc 2c 00 b1 af sw s1,local_24(sp)
|
||||
8001a3c0 21 88 c0 00 move s1,r6
|
||||
8001a3c4 34 00 b3 af sw s3,local_1c(sp)
|
||||
|
||||
8001a3c8 80 1f 13 3c lui s3,0x1f80
|
||||
8001a3cc d0 03 73 36 ori s3,s3,0x3d0
|
||||
8001a3d0 ff 00 08 3c lui t0,0xff
|
||||
8001a3d4 ff ff 08 35 ori t0,t0,0xffff
|
||||
|
||||
8001a3d8 ff 00 e4 30 andi r4,r7,0xff
|
||||
8001a3dc 08 80 07 3c lui r7=>DAT_80080000,0x8008 = ??
|
||||
8001a3e0 00 ff 06 3c lui r6,0xff00
|
||||
|
||||
8001a3e4 58 ce e9 24 addiu t1,r7,-0x31a8
|
||||
8001a3e8 58 ce e3 8c lw v1,-0x31a8(r7)=>DAT_8007ce58 = ??
|
||||
8001a3ec 60 00 a5 93 lbu r5,Stack-10?(sp)
|
||||
8001a3f0 00 80 02 3c lui v0,0x8000
|
||||
8001a3f4 48 00 bf af sw ra,local_8(sp)
|
||||
8001a3f8 44 00 b7 af sw s7,local_c(sp)
|
||||
8001a3fc 40 00 b6 af sw s6,local_10(sp)
|
||||
8001a400 3c 00 b5 af sw s5,local_14(sp)
|
||||
8001a404 30 00 b2 af sw s2,local_20(sp)
|
||||
|
||||
;;init chains
|
||||
8001a408 24 30 66 00 and r6,v1,r6
|
||||
8001a40c ff 00 a5 30 andi r5,r5,0xff
|
||||
8001a410 24 18 68 00 and v1,v1,t0
|
||||
8001a414 25 a8 62 00 or s5,v1,v0
|
||||
8001a418 04 00 22 8d lw v0,0x4(t1)=>DAT_8007ce5c = ??
|
||||
8001a41c 00 00 a3 8e lw v1,0x0(s5)
|
||||
8001a420 ff ff 42 24 addiu v0,v0,-0x1
|
||||
8001a424 24 18 68 00 and v1,v1,t0
|
||||
8001a428 25 30 c3 00 or r6,r6,v1
|
||||
8001a42c 04 00 22 ad sw v0,0x4(t1)=>DAT_8007ce5c = ??
|
||||
8001a430 2d 70 00 0c jal StoreColorToAddr undefined StoreColorToAddr()
|
||||
8001a434 58 ce e6 ac _sw r6,-0x31a8(r7)=>DAT_8007ce58 = ??
|
||||
8001a438 21 20 a0 02 move r4,s5
|
||||
8001a43c 00 2c 10 00 sll r5,s0,0x10
|
||||
8001a440 03 2c 05 00 sra r5,r5,0x10
|
||||
8001a444 00 34 11 00 sll r6,s1,0x10
|
||||
8001a448 44 6c 00 0c jal InitDMAtextChain undefined InitDMAtextChain()
|
||||
8001a44c 03 34 06 00 _sra r6,r6,0x10
|
||||
|
||||
;;;;init ScratchPad
|
||||
;;;;;;;;;;;;;;;;;; CPU TO VRAM
|
||||
8001a450 80 1f 06 3c lui r6,0x1f80
|
||||
8001a454 48 03 c6 34 ori r6=>DAT_1f800348,r6,0x348 = ??
|
||||
;8001a458 80 1f 05 3c lui r5,0x1f80 ;LOWER HALF OF CHAR - DONT NEED!!!
|
||||
;8001a45c 8c 03 a5 34 ori r5=>DAT_1f80038c,r5,0x38c = ??
|
||||
|
||||
;4bit table pattern
|
||||
|
||||
|
||||
8001a4f0 03 00 02 24 li v0,0x3
|
||||
8001a4f4 1c 00 a2 a7 sh v0,local_34(sp)
|
||||
8001a4f8 06 00 02 24 li v0,0x6
|
||||
8001a4fc 0d 00 04 24 li r4,0xd
|
||||
8001a500 00 a0 03 3c lui v1,0xa000
|
||||
8001a504 1e 00 a2 a7 sh v0,local_34+0x2(sp)
|
||||
|
||||
|
||||
INIT CHAR
|
||||
8001a508 00 01 02 3c lui v0,0x100
|
||||
|
||||
8001a50c 03 00 c4 a0 sb r4,0x3(r6)=>DAT_1f80034b = ??
|
||||
8001a510 04 00 c3 ac sw v1,0x4(r6)=>DAT_1f80034c = ??
|
||||
8001a514 80 1f 01 3c lui at,0x1f80
|
||||
8001a518 7c 03 22 ac sw v0,offset DAT_1f80037c(at) = ??
|
||||
|
||||
8001a51c 03 00 a4 a0 sb r4,0x3(r5)=>DAT_1f80038f = ??
|
||||
8001a520 04 00 a3 ac sw v1,0x4(r5)=>DAT_1f800390 = ??
|
||||
8001a524 80 1f 01 3c lui at,0x1f80
|
||||
8001a528 c0 03 22 ac sw v0,offset DAT_1f8003c0(at) = ??
|
||||
|
||||
8001a52c 04 00 02 24 li v0,0x4
|
||||
8001a530 03 00 62 a2 sb v0,0x3(s3)=>DAT_1f8003d3 = ??
|
||||
8001a534 64 00 02 24 li v0,0x64
|
||||
8001a538 07 00 62 a2 sb v0,0x7(s3)=>DAT_1f8003d7 = ??
|
||||
|
||||
8001a53c 98 00 84 97 lhu r4,0x98(gp)=>DAT_8007ca08
|
||||
8001a540 9a 00 83 97 lhu v1,0x9a(gp)=>DAT_8007ca0a
|
||||
|
||||
8001a544 80 00 02 24 li v0,0x80
|
||||
8001a548 04 00 62 a2 sb v0,0x4(s3)=>DAT_1f8003d4 = ??
|
||||
8001a54c 05 00 62 a2 sb v0,0x5(s3)=>DAT_1f8003d5 = ??
|
||||
8001a550 06 00 62 a2 sb v0,0x6(s3)=>DAT_1f8003d6 = ??
|
||||
|
||||
setY1:
|
||||
8001a554 1c 00 a2 8f lw v0,local_34(sp)
|
||||
|
||||
8001a558 98 00 87 87 lh r7,0x98(gp)=>DAT_8007ca08
|
||||
8001a55c 18 00 a4 a7 sh r4,local_38(sp)
|
||||
8001a560 1a 00 a3 a7 sh v1,local_38+0x2(sp)
|
||||
|
||||
8001a564 18 00 a4 8f lw r4,local_38(sp)
|
||||
|
||||
|
||||
8001a568 06 00 63 24 addiu v1,v1,0x6
|
||||
8001a56c 1a 00 a3 a7 sh v1,local_38+0x2(sp) LOWER GLIPH COORD
|
||||
|
||||
|
||||
|
||||
8001a570 18 00 a3 8f lw v1,local_38(sp)
|
||||
8001a574 21 40 e0 00 move t0,r7
|
||||
8001a578 0c 00 c2 ac sw v0,0xc(r6)=>DAT_1f800354 = ??
|
||||
8001a57c 0c 00 a2 ac sw v0,0xc(r5)=>DAT_1f800398 = ??
|
||||
8001a580 08 00 c4 ac sw r4,0x8(r6)=>DAT_1f800350 = ??
|
||||
|
||||
8001a584 02 00 e1 04 bgez r7,LAB_8001a590
|
||||
8001a588 08 00 a3 ac _sw v1,0x8(r5)=>DAT_1f800394 = ??
|
||||
8001a58c 3f 00 e8 24 addiu t0,r7,0x3f
|
||||
|
||||
;decoding coords for source sprite
|
||||
; >DAT_1f8003dc ;STORE CHAR SPRITE X BYTE
|
||||
LAB_8001a590 XREF[1]: 8001a584(j)
|
||||
8001a590 83 11 08 00 sra v0,t0,0x6
|
||||
8001a594 80 11 02 00 sll v0,v0,0x6
|
||||
8001a598 23 10 e2 00 subu v0,r7,v0
|
||||
8001a59c 9a 00 83 87 lh v1,0x9a(gp)=>DAT_8007ca0a
|
||||
8001a5a0 80 10 02 00 sll v0,v0,0x2
|
||||
8001a5a4 0c 00 62 a2 sb v0,0xc(s3)=>DAT_1f8003dc = ??
|
||||
8001a5a8 02 00 61 04 bgez v1,LAB_8001a5b4
|
||||
8001a5ac 21 10 60 00 _move v0,v1
|
||||
8001a5b0 ff 00 62 24 addiu v0,v1,0xff
|
||||
; >DAT_1f8003dd ;STORE CHAR SPRITE Y BYTE
|
||||
LAB_8001a5b4 XREF[1]: 8001a5a8(j)
|
||||
8001a5b4 03 12 02 00 sra v0,v0,0x8
|
||||
8001a5b8 00 12 02 00 sll v0,v0,0x8
|
||||
8001a5bc 23 10 62 00 subu v0,v1,v0
|
||||
8001a5c0 0d 00 62 a2 sb v0,0xd(s3)=>DAT_1f8003dd = ??
|
||||
8001a5c4 a0 00 83 97 lhu v1,0xa0(gp)=>DAT_8007ca10
|
||||
8001a5c8 0c 00 02 24 li v0,0xc
|
||||
8001a5cc 10 00 62 a6 sh v0,0x10(s3)=>DAT_1f8003e0 = ??
|
||||
8001a5d0 12 00 62 a6 sh v0,0x12(s3)=>DAT_1f8003e2 = ??
|
||||
8001a5d4 08 00 70 a6 sh s0,0x8(s3)=>DAT_1f8003d8 = ??
|
||||
8001a5d8 0a 00 71 a6 sh s1,0xa(s3)=>DAT_1f8003da = ??
|
||||
8001a5dc 0e 00 63 a6 sh v1,0xe(s3)=>DAT_1f8003de = ??
|
||||
|
||||
;TEXT READ START
|
||||
|
||||
8001a5e0 00 00 84 96 lhu r4,0x0(s4)
|
||||
8001a5e4 00 00 00 00 nop
|
||||
8001a5e8 00 10 82 2c sltiu v0,r4,0x1000
|
||||
8001a5ec b0 00 40 10 beq v0,zero,LAB_8001a8b0 INIT X IN STACK
|
||||
8001a5f0 02 00 94 26 _addiu s4,s4,0x2
|
||||
|
||||
8001a5f4 08 80 16 3c lui s6,0x8008
|
||||
8001a5f8 68 ce d7 26 addiu s7,s6,-0x3198
|
||||
8001a5fc ff 00 10 3c lui s0,0xff
|
||||
8001a600 ff ff 10 36 ori s0,s0,0xffff
|
||||
8001a604 00 80 11 3c lui s1,0x8000
|
||||
|
||||
|
||||
|
||||
LAB_8001a608 NextChar: XREF[1]: 8001a8a8(j)
|
||||
8001a608 57 6a 00 0c jal MakeCharInScratch undefined MakeCharInScratch()
|
||||
8001a60c 21 90 00 00 _clear s2
|
||||
|
||||
|
||||
; Coords XY init
|
||||
|
||||
8001a610 00 ff 0a 3c lui t2,0xff00
|
||||
8001a614 21 70 a0 02 move t6,s5
|
||||
8001a618 10 00 ad 27 addiu t5,sp,0x10
|
||||
8001a61c 20 00 ad af sw t5,local_30(sp)
|
||||
8001a620 08 80 0b 3c lui t3,0x8008
|
||||
8001a624 58 ce 6c 25 addiu t4,t3,-0x31a8
|
||||
8001a628 21 48 a0 02 move t1,s5
|
||||
|
||||
PageLoop:
|
||||
LAB_8001a62c XREF[1]: 8001a870(j)
|
||||
8001a62c 68 ce c2 8e lw v0,-0x3198(s6)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001a630 00 00 00 00 nop
|
||||
8001a634 24 20 4a 00 and r4,v0,t2
|
||||
8001a638 24 10 50 00 and v0,v0,s0
|
||||
8001a63c 25 28 51 00 or r5,v0,s1
|
||||
8001a640 04 00 e2 8e lw v0,0x4(s7)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001a644 00 00 a3 8c lw v1,0x0(r5)
|
||||
8001a648 ff ff 42 24 addiu v0,v0,-0x1
|
||||
8001a64c 24 18 70 00 and v1,v1,s0
|
||||
8001a650 25 20 83 00 or r4,r4,v1
|
||||
8001a654 04 00 e2 ae sw v0,0x4(s7)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001a658 68 ce c4 ae sw r4,-0x3198(s6)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
|
||||
CopyCmdFromScratch:
|
||||
|
||||
8001a65c 00 00 6f 8e lw t7,0x0(s3)=>DAT_1f8003d0 = ??
|
||||
8001a660 04 00 78 8e lw t8,0x4(s3)=>DAT_1f8003d4 = ??
|
||||
8001a664 08 00 79 8e lw t9,0x8(s3)=>DAT_1f8003d8 = ??
|
||||
8001a668 0c 00 6d 8e lw t5,0xc(s3)=>DAT_1f8003dc = ??
|
||||
8001a66c 00 00 af ac sw t7,0x0(r5)
|
||||
8001a670 04 00 b8 ac sw t8,0x4(r5)
|
||||
8001a674 08 00 b9 ac sw t9,0x8(r5)
|
||||
8001a678 0c 00 ad ac sw t5,0xc(r5)
|
||||
8001a67c 10 00 6f 8e lw t7,0x10(s3)=>DAT_1f8003e0 = ??
|
||||
8001a680 00 00 00 00 nop
|
||||
8001a684 10 00 af ac sw t7,0x10(r5)
|
||||
|
||||
|
||||
8001a688 18 00 23 8d lw v1,0x18(t1)
|
||||
8001a68c 00 00 a2 8c lw v0,0x0(r5)
|
||||
8001a690 00 00 63 8c lw v1,0x0(v1)
|
||||
8001a694 24 10 4a 00 and v0,v0,t2
|
||||
8001a698 24 18 70 00 and v1,v1,s0
|
||||
8001a69c 25 10 43 00 or v0,v0,v1
|
||||
8001a6a0 00 00 a2 ac sw v0,0x0(r5)
|
||||
8001a6a4 18 00 24 8d lw r4,0x18(t1)
|
||||
8001a6a8 00 00 00 00 nop
|
||||
8001a6ac 00 00 82 8c lw v0,0x0(r4)
|
||||
8001a6b0 24 18 b0 00 and v1,r5,s0
|
||||
8001a6b4 24 10 4a 00 and v0,v0,t2
|
||||
8001a6b8 25 10 43 00 or v0,v0,v1
|
||||
8001a6bc 00 00 82 ac sw v0,0x0(r4)
|
||||
8001a6c0 18 00 25 ad sw r5,0x18(t1)
|
||||
8001a6c4 04 00 c2 95 lhu v0,0x4(t6)
|
||||
8001a6c8 00 00 00 00 nop
|
||||
8001a6cc 02 00 40 14 bne v0,zero,LAB_8001a6d8 NotFirstChar
|
||||
8001a6d0 21 40 00 00 _clear t0
|
||||
8001a6d4 28 00 25 ad sw r5,0x28(t1)
|
||||
|
||||
NotFirstChar:
|
||||
LAB_8001a6d8 XREF[1]: 8001a6cc(j)
|
||||
8001a6d8 21 38 00 01 move r7,t0
|
||||
8001a6dc 20 00 a6 8f lw r6,local_30(sp) ---loading from stack????
|
||||
LAB_8001a6e0 XREF[1]: 8001a7e0(j)
|
||||
8001a6e0 80 1f 05 3c lui r5,0x1f80
|
||||
8001a6e4 58 ce 62 8d lw v0,-0x31a8(t3)=>DAT_8007ce58 = ??
|
||||
8001a6e8 48 03 a5 34 ori r5=>DAT_1f800348,r5,0x348 = ??
|
||||
8001a6ec 24 10 50 00 and v0,v0,s0
|
||||
8001a6f0 25 10 51 00 or v0,v0,s1
|
||||
|
||||
8001a6f4 00 00 c2 ac sw v0,0x0(r6) ---saving to stack????
|
||||
|
||||
8001a6f8 58 ce 63 8d lw v1,-0x31a8(t3)=>DAT_8007ce58 = ??
|
||||
8001a6fc 00 00 42 8c lw v0,0x0(v0)
|
||||
8001a700 04 00 84 8d lw r4,0x4(t4)=>DAT_8007ce5c = ??
|
||||
8001a704 24 18 6a 00 and v1,v1,t2
|
||||
8001a708 24 10 50 00 and v0,v0,s0
|
||||
8001a70c 25 18 62 00 or v1,v1,v0
|
||||
8001a710 ff ff 84 24 addiu r4,r4,-0x1
|
||||
8001a714 58 ce 63 ad sw v1,-0x31a8(t3)=>DAT_8007ce58 = ??
|
||||
8001a718 04 00 84 ad sw r4,0x4(t4)=>DAT_8007ce5c = ??
|
||||
8001a71c 00 00 c4 8c lw r4,0x0(r6)
|
||||
8001a720 21 18 e5 00 addu v1,r7,r5
|
||||
8001a724 25 10 64 00 or v0,v1,r4
|
||||
8001a728 03 00 42 30 andi v0,v0,0x3
|
||||
8001a72c 16 00 40 10 beq v0,zero,LAB_8001a788
|
||||
8001a730 30 00 62 24 _addiu v0,v1,0x30
|
||||
|
||||
LAB_8001a734 XREF[1]: 8001a778(j)
|
||||
8001a734 03 00 6f 88 lwl t7,0x3(v1)
|
||||
8001a738 00 00 6f 98 lwr t7,0x0(v1)=>DAT_1f800348 = ??
|
||||
8001a73c 07 00 78 88 lwl t8,0x7(v1)
|
||||
8001a740 04 00 78 98 lwr t8,0x4(v1)=>DAT_1f80034c = ??
|
||||
8001a744 0b 00 79 88 lwl t9,0xb(v1)
|
||||
8001a748 08 00 79 98 lwr t9,0x8(v1)=>DAT_1f800350 = ??
|
||||
8001a74c 0f 00 6d 88 lwl t5,0xf(v1)
|
||||
8001a750 0c 00 6d 98 lwr t5,0xc(v1)=>DAT_1f800354 = ??
|
||||
8001a754 03 00 8f a8 swl t7,0x3(r4)
|
||||
8001a758 00 00 8f b8 swr t7,0x0(r4)
|
||||
8001a75c 07 00 98 a8 swl t8,0x7(r4)
|
||||
8001a760 04 00 98 b8 swr t8,0x4(r4)
|
||||
8001a764 0b 00 99 a8 swl t9,0xb(r4)
|
||||
8001a768 08 00 99 b8 swr t9,0x8(r4)
|
||||
8001a76c 0f 00 8d a8 swl t5,0xf(r4)
|
||||
8001a770 0c 00 8d b8 swr t5,0xc(r4)
|
||||
8001a774 10 00 63 24 addiu v1,v1,0x10
|
||||
8001a778 ee ff 62 14 bne v1,v0,LAB_8001a734
|
||||
8001a77c 10 00 84 24 _addiu r4,r4,0x10
|
||||
8001a780 ed 69 00 08 j LAB_8001a7b4
|
||||
8001a784 00 00 00 00 _nop
|
||||
LAB_8001a788 XREF[2]: 8001a72c(j), 8001a7ac(j)
|
||||
8001a788 00 00 6f 8c lw t7,0x0(v1)=>DAT_1f800348 = ??
|
||||
8001a78c 04 00 78 8c lw t8,0x4(v1)=>DAT_1f80034c = ??
|
||||
8001a790 08 00 79 8c lw t9,0x8(v1)=>DAT_1f800350 = ??
|
||||
8001a794 0c 00 6d 8c lw t5,0xc(v1)=>DAT_1f800354 = ??
|
||||
8001a798 00 00 8f ac sw t7,0x0(r4)
|
||||
8001a79c 04 00 98 ac sw t8,0x4(r4)
|
||||
8001a7a0 08 00 99 ac sw t9,0x8(r4)
|
||||
8001a7a4 0c 00 8d ac sw t5,0xc(r4)
|
||||
8001a7a8 10 00 63 24 addiu v1,v1,0x10
|
||||
8001a7ac f6 ff 62 14 bne v1,v0,LAB_8001a788
|
||||
8001a7b0 10 00 84 24 _addiu r4,r4,0x10
|
||||
LAB_8001a7b4
|
||||
last4BytesCopy: XREF[1]: 8001a780(j)
|
||||
8001a7b4 03 00 6f 88 lwl t7,0x3(v1)
|
||||
8001a7b8 00 00 6f 98 lwr t7,0x0(v1)=>DAT_1f800358 = ??
|
||||
8001a7bc 07 00 78 88 lwl t8,0x7(v1)
|
||||
8001a7c0 04 00 78 98 lwr t8,0x4(v1)=>DAT_1f80035c = ??
|
||||
8001a7c4 03 00 8f a8 swl t7,0x3(r4)
|
||||
8001a7c8 00 00 8f b8 swr t7,0x0(r4)
|
||||
8001a7cc 07 00 98 a8 swl t8,0x7(r4)
|
||||
8001a7d0 04 00 98 b8 swr t8,0x4(r4)
|
||||
|
||||
|
||||
|
||||
;UPPER/LOWER COMMAND LOOP
|
||||
8001a7d4 44 00 e7 24 addiu r7,r7,0x44
|
||||
8001a7d8 01 00 08 25 addiu t0,t0,0x1
|
||||
8001a7dc 02 00 02 2d sltiu v0,t0,0x2
|
||||
8001a7e0 bf ff 40 14 bne v0,zero,LAB_8001a6e0
|
||||
8001a7e4 04 00 c6 24 _addiu r6,r6,0x4
|
||||
|
||||
|
||||
|
||||
8001a7e8 10 00 a4 8f lw r4,local_40(sp)
|
||||
8001a7ec 18 00 23 8d lw v1,0x18(t1)
|
||||
8001a7f0 00 00 82 8c lw v0,0x0(r4)
|
||||
8001a7f4 00 00 63 8c lw v1,0x0(v1)
|
||||
8001a7f8 24 10 4a 00 and v0,v0,t2
|
||||
8001a7fc 24 18 70 00 and v1,v1,s0
|
||||
8001a800 25 10 43 00 or v0,v0,v1
|
||||
8001a804 00 00 82 ac sw v0,0x0(r4)
|
||||
|
||||
8001a808 18 00 24 8d lw r4,0x18(t1)
|
||||
8001a80c 10 00 a3 8f lw v1,local_40(sp)
|
||||
8001a810 00 00 82 8c lw v0,0x0(r4)
|
||||
8001a814 24 18 70 00 and v1,v1,s0
|
||||
8001a818 24 10 4a 00 and v0,v0,t2
|
||||
8001a81c 25 10 43 00 or v0,v0,v1
|
||||
8001a820 00 00 82 ac sw v0,0x0(r4)
|
||||
|
||||
8001a824 14 00 a4 8f lw r4,local_3c(sp)
|
||||
8001a828 10 00 a3 8f lw v1,local_40(sp)
|
||||
8001a82c 00 00 82 8c lw v0,0x0(r4)
|
||||
8001a830 00 00 63 8c lw v1,0x0(v1)
|
||||
8001a834 24 10 4a 00 and v0,v0,t2
|
||||
8001a838 24 18 70 00 and v1,v1,s0
|
||||
8001a83c 25 10 43 00 or v0,v0,v1
|
||||
8001a840 00 00 82 ac sw v0,0x0(r4)
|
||||
|
||||
8001a844 10 00 a4 8f lw r4,local_40(sp)
|
||||
8001a848 14 00 a3 8f lw v1,local_3c(sp)
|
||||
8001a84c 00 00 82 8c lw v0,0x0(r4)
|
||||
8001a850 24 18 70 00 and v1,v1,s0
|
||||
8001a854 24 10 4a 00 and v0,v0,t2
|
||||
8001a858 25 10 43 00 or v0,v0,v1
|
||||
8001a85c 00 00 82 ac sw v0,0x0(r4)
|
||||
|
||||
8001a860 14 00 a2 8f lw v0,local_3c(sp)
|
||||
8001a864 01 00 52 26 addiu s2,s2,0x1
|
||||
8001a868 18 00 22 ad sw v0,0x18(t1)
|
||||
8001a86c 02 00 42 2e sltiu v0,s2,0x2
|
||||
8001a870 6e ff 40 14 bne v0,zero,LAB_8001a62c
|
||||
8001a874 04 00 29 25 _addiu t1,t1,0x4
|
||||
|
||||
X COORD SHIFT (+12)
|
||||
8001a878 a8 00 82 97 lhu v0,0xa8(gp)=>DAT_8007ca18 ;LOAD INIT X
|
||||
8001a87c 08 00 63 96 lhu v1,0x8(s3)=>DAT_1f8003d8 ;LOAD LAST X = ??
|
||||
8001a880 0c 00 42 24 addiu v0,v0,0xc
|
||||
8001a884 21 18 62 00 addu v1,v1,v0
|
||||
8001a888 08 00 63 a6 sh v1,0x8(s3)=>DAT_1f8003d8 = ??
|
||||
|
||||
|
||||
|
||||
r2 = current charDMACount
|
||||
8001a88c 04 00 a2 96 lhu v0,0x4(s5)
|
||||
8001a890 00 00 00 00 nop
|
||||
8001a894 01 00 42 24 addiu v0,v0,0x1
|
||||
8001a898 04 00 a2 a6 sh v0,0x4(s5)
|
||||
|
||||
|
||||
|
||||
8001a89c 00 00 84 96 lhu r4,0x0(s4)
|
||||
8001a8a0 00 00 00 00 nop
|
||||
8001a8a4 00 10 82 2c sltiu v0,r4,0x1000
|
||||
8001a8a8 57 ff 40 14 bne v0,zero,LAB_8001a608 IF r4<1000 - GOTO NEXT CHAR
|
||||
8001a8ac 02 00 94 26 _addiu s4,s4,0x2
|
||||
|
||||
|
||||
|
||||
|
||||
LAB_8001a8b0 TEXT END XREF[1]: 8001a5ec(j)
|
||||
8001a8b0 21 90 00 00 clear s2
|
||||
8001a8b4 08 80 13 3c lui s3,0x8008
|
||||
8001a8b8 68 ce 74 26 addiu s4,s3,-0x3198
|
||||
8001a8bc ff 00 11 3c lui s1,0xff
|
||||
8001a8c0 ff ff 31 36 ori s1,s1,0xffff
|
||||
8001a8c4 21 80 a0 02 move s0,s5
|
||||
8001a8c8 21 28 00 00 clear r5
|
||||
LAB_8001a8cc XREF[1]: 8001a924(j)
|
||||
8001a8cc 01 00 06 24 li r6,0x1
|
||||
8001a8d0 21 90 46 02 addu s2,s2,r6
|
||||
8001a8d4 00 80 02 3c lui v0,0x8000
|
||||
8001a8d8 00 ff 04 3c lui r4,0xff00
|
||||
8001a8dc 68 ce 63 8e lw v1,-0x3198(s3)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001a8e0 9c 00 87 8f lw r7,0x9c(gp)=>DAT_8007ca0c
|
||||
8001a8e4 24 18 71 00 and v1,v1,s1
|
||||
8001a8e8 25 18 62 00 or v1,v1,v0
|
||||
8001a8ec 30 00 03 ae sw v1,0x30(s0)
|
||||
8001a8f0 68 ce 62 8e lw v0,-0x3198(s3)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001a8f4 00 00 63 8c lw v1,0x0(v1)
|
||||
8001a8f8 24 10 44 00 and v0,v0,r4
|
||||
8001a8fc 24 18 71 00 and v1,v1,s1
|
||||
8001a900 04 00 84 8e lw r4,0x4(s4)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001a904 25 10 43 00 or v0,v0,v1
|
||||
8001a908 68 ce 62 ae sw v0,-0x3198(s3)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001a90c ff ff 84 24 addiu r4,r4,-0x1
|
||||
8001a910 04 00 84 ae sw r4,0x4(s4)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001a914 30 00 04 8e lw r4,0x30(s0)
|
||||
8001a918 3f 5e 01 0c jal SetDrawTPage void SetDrawTPage(DR_TPAGE * p, int dfe, int dtd, int tpage)
|
||||
8001a91c 04 00 10 26 _addiu s0,s0,0x4
|
||||
8001a920 02 00 42 2e sltiu v0,s2,0x2
|
||||
8001a924 e9 ff 40 14 bne v0,zero,LAB_8001a8cc
|
||||
8001a928 21 28 00 00 _clear r5
|
||||
8001a92c 21 10 a0 02 move v0,s5
|
||||
8001a930 48 00 bf 8f lw ra,local_8(sp)
|
||||
8001a934 44 00 b7 8f lw s7,local_c(sp)
|
||||
8001a938 40 00 b6 8f lw s6,local_10(sp)
|
||||
8001a93c 3c 00 b5 8f lw s5,local_14(sp)
|
||||
8001a940 38 00 b4 8f lw s4,local_18(sp)
|
||||
8001a944 34 00 b3 8f lw s3,local_1c(sp)
|
||||
8001a948 30 00 b2 8f lw s2,local_20(sp)
|
||||
8001a94c 2c 00 b1 8f lw s1,local_24(sp)
|
||||
8001a950 28 00 b0 8f lw s0,local_28(sp)
|
||||
8001a954 08 00 e0 03 jr ra
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
448
ghidra_src/EP__OLD_small_SRC.asm
Normal file
448
ghidra_src/EP__OLD_small_SRC.asm
Normal file
@@ -0,0 +1,448 @@
|
||||
**************************************************************
|
||||
* FUNCTION *
|
||||
**************************************************************
|
||||
undefined MakeSmallChar(undefined r4, undefined par
|
||||
assume gp = 0x8007c970
|
||||
undefined v0:1 <RETURN>
|
||||
undefined a0:1 r4
|
||||
undefined a1:1 r5
|
||||
undefined a2:1 r6
|
||||
undefined a3:1 r7
|
||||
undefined4 Stack[0x10]:4 param_5 XREF[1]: 8001ab80(R)
|
||||
|
||||
MakeSmallChar
|
||||
8001ab3c a8 ff bd 27 addiu sp,sp,-0x58
|
||||
assume gp = <UNKNOWN>
|
||||
8001ab40 44 00 b5 af sw s5,local_14(sp)
|
||||
8001ab44 21 a8 80 00 move s5,r4
|
||||
8001ab48 30 00 b0 af sw s0,local_28(sp)
|
||||
8001ab4c 21 80 a0 00 move s0,r5
|
||||
8001ab50 34 00 b1 af sw s1,local_24(sp)
|
||||
8001ab54 21 88 c0 00 move s1,r6
|
||||
8001ab58 38 00 b2 af sw s2,local_20(sp)
|
||||
|
||||
8001ab5c 80 1f 12 3c lui s2,0x1f80
|
||||
8001ab60 d0 03 52 36 ori s2,s2,0x3d0
|
||||
8001ab64 ff 00 09 3c lui t1,0xff
|
||||
8001ab68 ff ff 29 35 ori t1,t1,0xffff
|
||||
8001ab6c ff 00 e4 30 andi r4,r7,0xff
|
||||
|
||||
8001ab70 08 80 08 3c lui t0,0x8008
|
||||
8001ab74 00 ff 06 3c lui r6,0xff00
|
||||
8001ab78 58 ce 0a 25 addiu t2,t0,-0x31a8
|
||||
8001ab7c 58 ce 03 8d lw v1,-0x31a8(t0)=>DAT_8007ce58 = ??
|
||||
8001ab80 68 00 a7 8f lw r7,Stack+10(sp)
|
||||
|
||||
8001ab84 00 80 02 3c lui v0,0x8000 ;r2 = 8000 0000
|
||||
8001ab88 54 00 bf af sw ra,local_4(sp)
|
||||
8001ab8c 50 00 be af sw s8,local_8(sp)
|
||||
8001ab90 4c 00 b7 af sw s7,local_c(sp)
|
||||
8001ab94 48 00 b6 af sw s6,local_10(sp)
|
||||
8001ab98 40 00 b4 af sw s4,local_18(sp)
|
||||
8001ab9c 3c 00 b3 af sw s3,local_1c(sp)
|
||||
8001aba0 28 00 b0 a7 sh s0,local_30(sp)
|
||||
|
||||
;;init chains
|
||||
8001aba4 24 30 66 00 and r6,v1,r6
|
||||
8001aba8 ff 00 e5 30 andi r5,r7,0xff
|
||||
8001abac 24 18 69 00 and v1,v1,t1
|
||||
8001abb0 25 a0 62 00 or s4,v1,v0
|
||||
8001abb4 10 00 e7 30 andi r7,r7,0x10
|
||||
8001abb8 2b 38 07 00 sltu r7,zero,r7
|
||||
8001abbc 04 00 42 8d lw v0,0x4(t2)=>DAT_8007ce5c DMA cnt-1 = ??
|
||||
8001abc0 00 00 83 8e lw v1,0x0(s4)
|
||||
8001abc4 ff ff 42 24 addiu v0,v0,-0x1
|
||||
8001abc8 24 18 69 00 and v1,v1,t1
|
||||
8001abcc 25 30 c3 00 or r6,r6,v1
|
||||
8001abd0 04 00 42 ad sw v0,0x4(t2)=>DAT_8007ce5c = ??
|
||||
8001abd4 58 ce 06 ad sw r6,-0x31a8(t0)=>DAT_8007ce58 = ??
|
||||
|
||||
8001abd8 2d 70 00 0c jal StoreColorToAddr undefined StoreColorToAddr()
|
||||
8001abdc 18 00 a7 af _sw r7,local_40(sp)
|
||||
|
||||
|
||||
8001abe0 21 20 80 02 move r4,s4
|
||||
8001abe4 00 84 10 00 sll s0,s0,0x10
|
||||
8001abe8 03 2c 10 00 sra r5,s0,0x10
|
||||
8001abec 00 8c 11 00 sll s1,s1,0x10
|
||||
8001abf0 03 84 11 00 sra s0,s1,0x10
|
||||
|
||||
8001abf4 44 6c 00 0c jal InitDMAtextChain undefined InitDMAtextChain()
|
||||
8001abf8 21 30 00 02 _move r6,s0
|
||||
|
||||
8001abfc 80 1f 04 3c lui r4,0x1f80
|
||||
8001ac00 48 03 84 34 ori r4,r4,0x348
|
||||
|
||||
|
||||
--------------4bit pattern here
|
||||
|
||||
8001ac94 02 00 02 24 li v0,0x2
|
||||
8001ac98 0c 00 08 24 li t0,0xc
|
||||
8001ac9c 14 00 a2 a7 sh v0,local_44(sp)
|
||||
8001aca0 10 00 02 24 li v0,0x10
|
||||
8001aca4 16 00 a8 a7 sh t0,local_44+0x2(sp)
|
||||
8001aca8 03 00 82 a0 sb v0,0x3(r4)=>DAT_1f80034b = ??
|
||||
8001acac 00 a0 02 3c lui v0,0xa000
|
||||
8001acb0 04 00 82 ac sw v0,0x4(r4)=>DAT_1f80034c = ??
|
||||
|
||||
8001acb4 00 01 02 3c lui v0,0x100
|
||||
8001acb8 80 1f 01 3c lui at,0x1f80
|
||||
8001acbc 88 03 22 ac sw v0,offset DAT_1f800388(at) = ??
|
||||
|
||||
8001acc0 04 00 02 24 li v0,0x4
|
||||
8001acc4 03 00 42 a2 sb v0,0x3(s2)=>DAT_1f8003d3 = ??
|
||||
8001acc8 64 00 02 24 li v0,0x64
|
||||
8001accc 07 00 42 a2 sb v0,0x7(s2)=>DAT_1f8003d7 = ??
|
||||
|
||||
8001acd0 98 00 83 97 lhu v1,0x98(gp)=>DAT_8007ca08
|
||||
8001acd4 9a 00 87 97 lhu r7,0x9a(gp)=>DAT_8007ca0a
|
||||
|
||||
8001acd8 80 00 02 24 li v0,0x80
|
||||
8001acdc 04 00 42 a2 sb v0,0x4(s2)=>DAT_1f8003d4 = ??
|
||||
8001ace0 05 00 42 a2 sb v0,0x5(s2)=>DAT_1f8003d5 = ??
|
||||
8001ace4 06 00 42 a2 sb v0,0x6(s2)=>DAT_1f8003d6 = ??
|
||||
|
||||
8001ace8 14 00 a2 8f lw v0,local_44(sp)
|
||||
8001acec 10 00 a3 a7 sh v1,local_48(sp)
|
||||
|
||||
8001acf0 00 1c 03 00 sll v1,v1,0x10
|
||||
8001acf4 03 2c 03 00 sra r5,v1,0x10
|
||||
8001acf8 12 00 a7 a7 sh r7,local_48+0x2(sp)
|
||||
8001acfc 10 00 a3 8f lw v1,local_48(sp)
|
||||
8001ad00 21 30 a0 00 move r6,r5
|
||||
8001ad04 0c 00 82 ac sw v0,0xc(r4)=>DAT_1f800354 = ??
|
||||
8001ad08 02 00 a1 04 bgez r5,LAB_8001ad14
|
||||
8001ad0c 08 00 83 ac _sw v1,0x8(r4)=>DAT_1f800350 = ??
|
||||
8001ad10 3f 00 a6 24 addiu r6,r5,0x3f
|
||||
|
||||
LAB_800194fc: LAB_8001ad14 XREF[1]: 8001ad08(j)
|
||||
8001ad14 83 11 06 00 sra v0,r6,0x6
|
||||
8001ad18 80 11 02 00 sll v0,v0,0x6
|
||||
8001ad1c 23 10 a2 00 subu v0,r5,v0
|
||||
8001ad20 80 10 02 00 sll v0,v0,0x2
|
||||
8001ad24 0c 00 42 a2 sb v0,0xc(s2)=>DAT_1f8003dc = ??
|
||||
8001ad28 00 14 07 00 sll v0,r7,0x10
|
||||
8001ad2c 03 1c 02 00 sra v1,v0,0x10
|
||||
8001ad30 02 00 61 04 bgez v1,LAB_8001ad3c
|
||||
8001ad34 21 10 60 00 _move v0,v1
|
||||
8001ad38 ff 00 62 24 addiu v0,v1,0xff
|
||||
|
||||
LAB_8001ad3c XREF[1]: 8001ad30(j)
|
||||
8001ad3c 03 12 02 00 sra v0,v0,0x8
|
||||
8001ad40 00 12 02 00 sll v0,v0,0x8
|
||||
8001ad44 23 10 62 00 subu v0,v1,v0
|
||||
8001ad48 0d 00 42 a2 sb v0,0xd(s2)=>DAT_1f8003dd = ??
|
||||
8001ad4c a0 00 83 97 lhu v1,0xa0(gp)=>DAT_8007ca10
|
||||
8001ad50 08 00 02 24 li v0,0x8 ; r2 = 8 Sprite WIDTH
|
||||
8001ad54 10 00 42 a6 sh v0,0x10(s2)=>DAT_1f8003e0 = ??
|
||||
8001ad58 12 00 48 a6 sh t0,0x12(s2)=>DAT_1f8003e2 = ??
|
||||
8001ad5c 0e 00 43 a6 sh v1,0xe(s2)=>DAT_1f8003de = ??
|
||||
|
||||
|
||||
;TEXT READ START!!!!!!!!!
|
||||
8001ad60 00 00 a5 92 lbu r5,0x0(s5)
|
||||
8001ad64 00 00 00 00 nop
|
||||
8001ad68 bd 00 a0 10 beq r5,zero,LAB_8001b060
|
||||
8001ad6c 01 00 b5 26 _addiu s5,s5,0x1
|
||||
8001ad70 08 80 16 3c lui s6,0x8008
|
||||
8001ad74 68 ce de 26 addiu s8,s6,-0x3198
|
||||
8001ad78 1c 00 b0 af sw s0,local_3c(sp)
|
||||
8001ad7c ff 00 10 3c lui s0,0xff
|
||||
8001ad80 ff ff 10 36 ori s0,s0,0xffff
|
||||
8001ad84 20 00 b1 af sw s1,local_38(sp)
|
||||
LAB_8001ad88 XREF[1]: 8001b058(j)
|
||||
8001ad88 99 ff a3 24 addiu v1,r5,-0x67
|
||||
8001ad8c 13 00 62 2c sltiu v0,v1,0x13
|
||||
8001ad90 0b 00 40 10 beq v0,zero,switchD_8001adac::caseD_68
|
||||
8001ad94 80 10 03 00 _sll v0,v1,0x2
|
||||
8001ad98 01 80 0f 3c lui t7,0x8001
|
||||
8001ad9c b4 06 ef 25 addiu t7,t7,0x6b4
|
||||
8001ada0 21 10 4f 00 addu v0,v0,t7
|
||||
8001ada4 00 00 42 8c lw v0,0x0(v0)=>->switchD_8001adac::caseD_67 = 8001adb4
|
||||
8001ada8 00 00 00 00 nop
|
||||
switchD_8001adac::switchD
|
||||
8001adac 08 00 40 00 jr v0
|
||||
8001adb0 00 00 00 00 _nop
|
||||
switchD_8001adac::caseD_6a XREF[6]: 800106b4(*), 800106c0(*), 800106d8(*),
|
||||
switchD_8001adac::caseD_70 800106dc(*), 800106fc(*), 8001adac(j)
|
||||
switchD_8001adac::caseD_71
|
||||
switchD_8001adac::caseD_79
|
||||
switchD_8001adac::caseD_67
|
||||
8001adb4 1c 00 b7 8f lw s7,local_3c(sp)
|
||||
8001adb8 73 6b 00 08 j LAB_8001adcc
|
||||
8001adbc 02 00 f1 26 _addiu s1,s7,0x2
|
||||
switchD_8001adac::caseD_69 XREF[16]: 800106b8(*), 800106bc(*), 800106c4(*),
|
||||
switchD_8001adac::caseD_6b 800106c8(*), 800106cc(*), 800106d0(*),
|
||||
switchD_8001adac::caseD_6c 800106d4(*), 800106e0(*), 800106e4(*),
|
||||
switchD_8001adac::caseD_6d 800106e8(*), 800106ec(*), 800106f0(*),
|
||||
switchD_8001adac::caseD_6e 800106f4(*), 800106f8(*), 8001ad90(j),
|
||||
switchD_8001adac::caseD_6f 8001adac(j)
|
||||
switchD_8001adac::caseD_72
|
||||
switchD_8001adac::caseD_73
|
||||
switchD_8001adac::caseD_74
|
||||
switchD_8001adac::caseD_75
|
||||
switchD_8001adac::caseD_76
|
||||
switchD_8001adac::caseD_77
|
||||
switchD_8001adac::caseD_78
|
||||
switchD_8001adac::caseD_68
|
||||
8001adc0 20 00 b8 8f lw t8,local_38(sp)
|
||||
8001adc4 00 00 00 00 nop
|
||||
8001adc8 03 8c 18 00 sra s1,t8,0x10
|
||||
LAB_8001adcc XREF[1]: 8001adb8(j)
|
||||
8001adcc 18 00 b9 8f lw t9,local_40(sp)
|
||||
8001add0 00 00 00 00 nop
|
||||
8001add4 12 00 20 13 beq t9,zero,LAB_8001ae20
|
||||
8001add8 e0 ff a5 24 _addiu r5,r5,-0x20
|
||||
8001addc 01 80 02 3c lui v0,0x8001
|
||||
8001ade0 50 06 42 24 addiu v0,v0,0x650
|
||||
8001ade4 21 10 a2 00 addu v0,r5,v0
|
||||
8001ade8 01 80 03 3c lui v1,0x8001
|
||||
8001adec 3c 06 63 24 addiu v1,v1,0x63c
|
||||
8001adf0 00 00 42 90 lbu v0,0x0(v0)=>DAT_80010630 = 63h c
|
||||
8001adf4 28 00 af 97 lhu t7,local_30(sp)
|
||||
8001adf8 40 10 02 00 sll v0,v0,0x1
|
||||
8001adfc 21 10 43 00 addu v0,v0,v1
|
||||
8001ae00 00 00 43 90 lbu v1=>DAT_8001063c,0x0(v0)
|
||||
8001ae04 01 00 42 90 lbu v0,0x1(v0)=>DAT_8001063d = 04h
|
||||
8001ae08 23 18 e3 01 subu v1,t7,v1
|
||||
8001ae0c 00 24 03 00 sll r4,v1,0x10
|
||||
8001ae10 03 9c 04 00 sra s3,r4,0x10
|
||||
8001ae14 21 10 43 00 addu v0,v0,v1
|
||||
8001ae18 8e 6b 00 08 j LAB_8001ae38
|
||||
8001ae1c 28 00 a2 a7 _sh v0,local_30(sp)
|
||||
|
||||
|
||||
LAB_8001ae20 XREF[1]: 8001add4(j)
|
||||
8001ae20 28 00 b7 97 lhu s7,local_30(sp)
|
||||
8001ae24 04 00 82 96 lhu v0,0x4(s4)
|
||||
8001ae28 00 1c 17 00 sll v1,s7,0x10
|
||||
8001ae2c 03 1c 03 00 sra v1,v1,0x10
|
||||
8001ae30 c0 10 02 00 sll v0,v0,0x3
|
||||
8001ae34 21 98 62 00 addu s3,v1,v0
|
||||
|
||||
|
||||
|
||||
LAB_8001ae38 XREF[1]: 8001ae18(j)
|
||||
8001ae38 c8 6c 00 0c jal GenerateSmallChar undefined FUN_8001b320()
|
||||
8001ae3c 21 20 a0 00 _move r4,r5
|
||||
8001ae40 00 80 0e 3c lui t6,0x8000
|
||||
8001ae44 00 ff 0a 3c lui t2,0xff00
|
||||
8001ae48 21 48 80 02 move t1,s4
|
||||
8001ae4c 08 80 0c 3c lui t4,0x8008
|
||||
8001ae50 58 ce 8d 25 addiu t5,t4,-0x31a8
|
||||
8001ae54 80 1f 0b 3c lui t3,0x1f80
|
||||
8001ae58 88 03 6b 35 ori t3,t3,0x388
|
||||
8001ae5c 21 40 80 02 move t0,s4
|
||||
8001ae60 08 00 53 a6 sh s3,0x8(s2)=>DAT_1f8003d8 = ??
|
||||
8001ae64 0a 00 51 a6 sh s1,0xa(s2)=>DAT_1f8003da = ??
|
||||
|
||||
PageLoop:
|
||||
LAB_8001ae68 XREF[1]: 8001b038(j)
|
||||
8001ae68 68 ce c2 8e lw v0,-0x3198(s6)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001ae6c 00 00 00 00 nop
|
||||
8001ae70 24 20 4a 00 and r4,v0,t2
|
||||
8001ae74 24 10 50 00 and v0,v0,s0
|
||||
8001ae78 25 28 4e 00 or r5,v0,t6
|
||||
8001ae7c 04 00 c2 8f lw v0,0x4(s8)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001ae80 00 00 a3 8c lw v1,0x0(r5)
|
||||
8001ae84 ff ff 42 24 addiu v0,v0,-0x1
|
||||
8001ae88 24 18 70 00 and v1,v1,s0
|
||||
8001ae8c 25 20 83 00 or r4,r4,v1
|
||||
8001ae90 04 00 c2 af sw v0,0x4(s8)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001ae94 68 ce c4 ae sw r4,-0x3198(s6)=>DMA_NEXT_FREE_CHAIN_8007c = ??
|
||||
|
||||
CopyCmdFromScratch:
|
||||
; CopyScriptChain copy from scratch
|
||||
8001ae98 00 00 58 8e lw t8,0x0(s2)=>DAT_1f8003d0 = ??
|
||||
8001ae9c 04 00 59 8e lw t9,0x4(s2)=>DAT_1f8003d4 = ??
|
||||
8001aea0 08 00 4f 8e lw t7,0x8(s2)=>DAT_1f8003d8 = ??
|
||||
8001aea4 0c 00 57 8e lw s7,0xc(s2)=>DAT_1f8003dc = ??
|
||||
8001aea8 00 00 b8 ac sw t8,0x0(r5)
|
||||
8001aeac 04 00 b9 ac sw t9,0x4(r5)
|
||||
8001aeb0 08 00 af ac sw t7,0x8(r5)
|
||||
8001aeb4 0c 00 b7 ac sw s7,0xc(r5)
|
||||
8001aeb8 10 00 58 8e lw t8,0x10(s2)=>DAT_1f8003e0 = ??
|
||||
8001aebc 00 00 00 00 nop
|
||||
|
||||
8001aec0 10 00 b8 ac sw t8,0x10(r5)
|
||||
8001aec4 18 00 03 8d lw v1,0x18(t0)
|
||||
8001aec8 00 00 a2 8c lw v0,0x0(r5)
|
||||
8001aecc 00 00 63 8c lw v1,0x0(v1)
|
||||
8001aed0 24 10 4a 00 and v0,v0,t2
|
||||
8001aed4 24 18 70 00 and v1,v1,s0
|
||||
8001aed8 25 10 43 00 or v0,v0,v1
|
||||
8001aedc 00 00 a2 ac sw v0,0x0(r5)
|
||||
8001aee0 18 00 04 8d lw r4,0x18(t0)
|
||||
8001aee4 00 00 00 00 nop
|
||||
;;;YEHU
|
||||
|
||||
8001aee8 00 00 82 8c lw v0,0x0(r4)
|
||||
8001aeec 24 18 b0 00 and v1,r5,s0
|
||||
8001aef0 24 10 4a 00 and v0,v0,t2
|
||||
8001aef4 25 10 43 00 or v0,v0,v1
|
||||
8001aef8 00 00 82 ac sw v0,0x0(r4)
|
||||
8001aefc 18 00 05 ad sw r5,0x18(t0)
|
||||
8001af00 04 00 22 95 lhu v0,0x4(t1)
|
||||
8001af04 00 00 00 00 nop
|
||||
8001af08 04 00 40 14 bne v0,zero,LAB_8001af1c
|
||||
8001af0c 00 00 00 00 _nop
|
||||
8001af10 28 00 05 ad sw r5,0x28(t0)
|
||||
8001af14 0c 00 33 a5 sh s3,0xc(t1)
|
||||
8001af18 0e 00 31 a5 sh s1,0xe(t1)
|
||||
|
||||
NotFirstChar: LAB_8001af1c XREF[1]: 8001af08(j)
|
||||
8001af1c 80 1f 05 3c lui r5,0x1f80
|
||||
8001af20 58 ce 82 8d lw v0,-0x31a8(t4)=>DAT_8007ce58 = ??
|
||||
8001af24 48 03 a5 34 ori r5,r5,0x348
|
||||
8001af28 24 20 4a 00 and r4,v0,t2
|
||||
8001af2c 24 10 50 00 and v0,v0,s0
|
||||
8001af30 25 38 4e 00 or r7,v0,t6
|
||||
8001af34 21 30 e0 00 move r6,r7
|
||||
8001af38 04 00 a2 8d lw v0,0x4(t5)=>DAT_8007ce5c = ??
|
||||
8001af3c 00 00 e3 8c lw v1,0x0(r7)
|
||||
8001af40 ff ff 42 24 addiu v0,v0,-0x1
|
||||
8001af44 24 18 70 00 and v1,v1,s0
|
||||
8001af48 25 20 83 00 or r4,r4,v1
|
||||
8001af4c 04 00 a2 ad sw v0,0x4(t5)=>DAT_8007ce5c = ??
|
||||
|
||||
8001af50 03 00 e2 30 andi v0,r7,0x3
|
||||
8001af54 16 00 40 10 beq v0,zero,LAB_8001afb0
|
||||
8001af58 58 ce 84 ad _sw r4,-0x31a8(t4)=>DAT_8007ce58 = ??
|
||||
|
||||
;;;;;;;;;;;;;;;Copy from ScratchPad To Chain
|
||||
|
||||
CopyBy2Bytes:
|
||||
LAB_8001af5c XREF[1]: 8001afa0(j)
|
||||
8001af5c 03 00 b8 88 lwl t8,0x3(r5)
|
||||
8001af60 00 00 b8 98 lwr t8,0x0(r5)=>DAT_1f800348 = ??
|
||||
8001af64 07 00 b9 88 lwl t9,0x7(r5)
|
||||
8001af68 04 00 b9 98 lwr t9,0x4(r5)=>DAT_1f80034c = ??
|
||||
8001af6c 0b 00 af 88 lwl t7,0xb(r5)
|
||||
8001af70 08 00 af 98 lwr t7,0x8(r5)=>DAT_1f800350 = ??
|
||||
8001af74 0f 00 b7 88 lwl s7,0xf(r5)
|
||||
8001af78 0c 00 b7 98 lwr s7,0xc(r5)=>DAT_1f800354 = ??
|
||||
8001af7c 03 00 d8 a8 swl t8,0x3(r6)
|
||||
8001af80 00 00 d8 b8 swr t8,0x0(r6)
|
||||
8001af84 07 00 d9 a8 swl t9,0x7(r6)
|
||||
8001af88 04 00 d9 b8 swr t9,0x4(r6)
|
||||
8001af8c 0b 00 cf a8 swl t7,0xb(r6)
|
||||
8001af90 08 00 cf b8 swr t7,0x8(r6)
|
||||
8001af94 0f 00 d7 a8 swl s7,0xf(r6)
|
||||
8001af98 0c 00 d7 b8 swr s7,0xc(r6)
|
||||
8001af9c 10 00 a5 24 addiu r5,r5,0x10
|
||||
8001afa0 ee ff ab 14 bne r5,t3,LAB_8001af5c
|
||||
8001afa4 10 00 c6 24 _addiu r6,r6,0x10
|
||||
8001afa8 f7 6b 00 08 j LAB_8001afdc
|
||||
8001afac 00 00 00 00 _nop
|
||||
|
||||
Copy16Bytes:
|
||||
LAB_8001afb0 XREF[2]: 8001af54(j), 8001afd4(j)
|
||||
8001afb0 00 00 b8 8c lw t8,0x0(r5)=>DAT_1f800348 = ??
|
||||
8001afb4 04 00 b9 8c lw t9,0x4(r5)=>DAT_1f80034c = ??
|
||||
8001afb8 08 00 af 8c lw t7,0x8(r5)=>DAT_1f800350 = ??
|
||||
8001afbc 0c 00 b7 8c lw s7,0xc(r5)=>DAT_1f800354 = ??
|
||||
8001afc0 00 00 d8 ac sw t8,0x0(r6)
|
||||
8001afc4 04 00 d9 ac sw t9,0x4(r6)
|
||||
8001afc8 08 00 cf ac sw t7,0x8(r6)
|
||||
8001afcc 0c 00 d7 ac sw s7,0xc(r6)
|
||||
8001afd0 10 00 a5 24 addiu r5,r5,0x10
|
||||
8001afd4 f6 ff ab 14 bne r5,t3,LAB_8001afb0
|
||||
8001afd8 10 00 c6 24 _addiu r6,r6,0x10
|
||||
|
||||
last4BytesCopy:
|
||||
LAB_8001afdc XREF[1]: 8001afa8(j)
|
||||
8001afdc 03 00 b8 88 lwl t8,0x3(r5)
|
||||
8001afe0 00 00 b8 98 lwr t8,0x0(r5)=>DAT_1f800358 = ??
|
||||
8001afe4 00 00 00 00 nop
|
||||
8001afe8 03 00 d8 a8 swl t8,0x3(r6)
|
||||
8001afec 00 00 d8 b8 swr t8,0x0(r6)
|
||||
; linking DMA char+copysprite
|
||||
|
||||
|
||||
8001aff0 18 00 03 8d lw v1,0x18(t0)
|
||||
8001aff4 00 00 e2 8c lw v0,0x0(r7)
|
||||
8001aff8 00 00 63 8c lw v1,0x0(v1)
|
||||
8001affc 24 10 4a 00 and v0,v0,t2
|
||||
8001b000 24 18 70 00 and v1,v1,s0
|
||||
8001b004 25 10 43 00 or v0,v0,v1
|
||||
8001b008 00 00 e2 ac sw v0,0x0(r7)
|
||||
8001b00c 18 00 04 8d lw r4,0x18(t0)
|
||||
8001b010 00 00 00 00 nop
|
||||
8001b014 00 00 82 8c lw v0,0x0(r4)
|
||||
8001b018 24 18 f0 00 and v1,r7,s0
|
||||
8001b01c 24 10 4a 00 and v0,v0,t2
|
||||
8001b020 25 10 43 00 or v0,v0,v1
|
||||
8001b024 00 00 82 ac sw v0,0x0(r4)
|
||||
|
||||
8001b028 18 00 07 ad sw r7,0x18(t0)
|
||||
|
||||
8001b02c 04 00 08 25 addiu t0,t0,0x4
|
||||
8001b030 08 00 22 25 addiu v0,t1,0x8
|
||||
8001b034 2b 10 02 01 sltu v0,t0,v0
|
||||
8001b038 8b ff 40 14 bne v0,zero,LAB_8001ae68 Go To pageLoop
|
||||
8001b03c 00 00 00 00 _nop
|
||||
|
||||
;DMA OVERFLOW CHECK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (8007b6d4)
|
||||
|
||||
|
||||
8001b040 04 00 82 96 lhu v0,0x4(s4)
|
||||
8001b044 00 00 00 00 nop
|
||||
8001b048 01 00 42 24 addiu v0,v0,0x1
|
||||
8001b04c 04 00 82 a6 sh v0,0x4(s4)
|
||||
8001b050 00 00 a5 92 lbu r5,0x0(s5)
|
||||
8001b054 00 00 00 00 nop
|
||||
8001b058 4b ff a0 14 bne r5,zero,LAB_8001ad88
|
||||
8001b05c 01 00 b5 26 _addiu s5,s5,0x1
|
||||
|
||||
|
||||
TextEnd:
|
||||
|
||||
LAB_8001b060 XREF[1]: 8001ad68(j)
|
||||
8001b060 21 90 00 00 clear s2
|
||||
8001b064 08 80 13 3c lui s3,0x8008
|
||||
8001b068 68 ce 75 26 addiu s5,s3,-0x3198
|
||||
8001b06c ff 00 11 3c lui s1,0xff
|
||||
8001b070 ff ff 31 36 ori s1,s1,0xffff
|
||||
8001b074 21 80 80 02 move s0,s4
|
||||
8001b078 21 28 00 00 clear r5
|
||||
|
||||
PageTLoop:
|
||||
LAB_8001b07c XREF[1]: 8001b0d4(j)
|
||||
8001b07c 01 00 06 24 li r6,0x1
|
||||
8001b080 21 90 46 02 addu s2,s2,r6
|
||||
8001b084 00 80 02 3c lui v0,0x8000
|
||||
8001b088 00 ff 04 3c lui r4,0xff00
|
||||
8001b08c 68 ce 63 8e lw v1,-0x3198(s3)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001b090 9c 00 87 8f lw r7,0x9c(gp)=>DAT_8007ca0c
|
||||
8001b094 24 18 71 00 and v1,v1,s1
|
||||
8001b098 25 18 62 00 or v1,v1,v0
|
||||
8001b09c 30 00 03 ae sw v1,0x30(s0)
|
||||
8001b0a0 68 ce 62 8e lw v0,-0x3198(s3)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001b0a4 00 00 63 8c lw v1,0x0(v1)
|
||||
8001b0a8 24 10 44 00 and v0,v0,r4
|
||||
8001b0ac 24 18 71 00 and v1,v1,s1
|
||||
8001b0b0 04 00 a4 8e lw r4,0x4(s5)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001b0b4 25 10 43 00 or v0,v0,v1
|
||||
8001b0b8 68 ce 62 ae sw v0,-0x3198(s3)=>DMA_NEXT_FREE_CHAIN_8007ce68 = ??
|
||||
8001b0bc ff ff 84 24 addiu r4,r4,-0x1
|
||||
8001b0c0 04 00 a4 ae sw r4,0x4(s5)=>DMA_COUNTER_8007ce6c = ??
|
||||
8001b0c4 30 00 04 8e lw r4,0x30(s0)
|
||||
8001b0c8 3f 5e 01 0c jal SetDrawTPage void SetDrawTPage(DR_TPAGE * p, int dfe, int dtd, int tpage)
|
||||
8001b0cc 04 00 10 26 _addiu s0,s0,0x4
|
||||
8001b0d0 02 00 42 2e sltiu v0,s2,0x2
|
||||
8001b0d4 e9 ff 40 14 bne v0,zero,LAB_8001b07c
|
||||
8001b0d8 21 28 00 00 _clear r5
|
||||
8001b0dc 21 10 80 02 move v0,s4
|
||||
|
||||
8001b0e0 54 00 bf 8f lw ra,local_4(sp)
|
||||
8001b0e4 50 00 be 8f lw s8,local_8(sp)
|
||||
8001b0e8 4c 00 b7 8f lw s7,local_c(sp)
|
||||
8001b0ec 48 00 b6 8f lw s6,local_10(sp)
|
||||
8001b0f0 44 00 b5 8f lw s5,local_14(sp)
|
||||
8001b0f4 40 00 b4 8f lw s4,local_18(sp)
|
||||
8001b0f8 3c 00 b3 8f lw s3,local_1c(sp)
|
||||
8001b0fc 38 00 b2 8f lw s2,local_20(sp)
|
||||
8001b100 34 00 b1 8f lw s1,local_24(sp)
|
||||
8001b104 30 00 b0 8f lw s0,local_28(sp)
|
||||
8001b108 08 00 e0 03 jr ra
|
||||
8001b10c 58 00 bd 27 _addiu sp,sp,0x58
|
||||
Reference in New Issue
Block a user