Files
Persona2-PSX-asm-sources/ghidra_src/EP__OLD_small_SRC.asm
2025-11-04 23:06:09 +05:00

449 lines
22 KiB
NASM

**************************************************************
* 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