Files
mk64/asm/non_matchings/code_actors/func_80296A50.s
T
Tyler McGavran a2dc62ccf8 Jump Table Related Disassembly (#60)
* Part 1, Commit 1 of 24

audio/effects

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 2 of 24

audio/external

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 3 of 24

audio/heap

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 4 of 24

audio/port_eu

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 5 of 24

audio/seqplayer

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 6 of 24

code_80005FD0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 7 of 24

code_8001C4D0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 8 of 24

code_80027D00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 9 of 24

code_800393C0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 10 of 24

code_8003DC40

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 11 of 24

code_800431B0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 12 of 24

code_80057C60

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 13 of 24

code_8006E9C0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 14 of 24

code_80071F00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 15 of 24

code_80086E70

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 16 of 24

code_8008C1D0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 17 of 24

code_80091750

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 18 of 24

code_800AF9B0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 19 of 24

code_8028DF00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 20 of 24

code_80290C20

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 21 of 24

code_802B0210

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 22 of 24

code_actors

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 23 of 24

memory

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 1, Commit 24 of 24

os/__osException

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 1 of 20

audio/effects.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 2 of 20

audio/external.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 3 of 24

audio/heap.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 4 of 20

audio/port_eu.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 5 of 20

audio/seqplayer.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 6 of 20

code_80005FD0.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 7 of 20

code_8001C4D0.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 8 of 20

code_80027D00.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 9 of 20

code_8003DC40.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 10 of 20

code_800431B0.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 11 of 20

code_80057C60.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 12 of 20

code_8006E9C0.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 13 of 20

code_80071F00.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 14 of 20

code_80086E70.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 15 of 20

code_80091750.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 16 of 20

code_800AF9B0.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 17 of 20

code_80290C20.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 18 of 20

code_802B0210.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 19 of 20

code_80296A50.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 2, Commit 20 of 20

memory.c

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 3, Commit 1 of 4

code_8008C1D0

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 3, Commit 2 of 4

code_8028DF00

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 3, Commit 3 of 4

math_util

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Part 3, Commit 4 of 4

crash_screen

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Recreated disassemblies with a context file

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2021-11-23 01:47:54 -08:00

202 lines
9.6 KiB
ArmAsm

glabel func_80296A50
/* 100060 80296A50 3C098016 */ lui $t1, %hi(D_8015F900) # $t1, 0x8016
/* 100064 80296A54 9529F900 */ lhu $t1, %lo(D_8015F900)($t1)
/* 100068 80296A58 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 10006C 80296A5C AFBF0014 */ sw $ra, 0x14($sp)
/* 100070 80296A60 29210064 */ slti $at, $t1, 0x64
/* 100074 80296A64 10200027 */ beqz $at, .L80296B04
/* 100078 80296A68 01203025 */ move $a2, $t1
/* 10007C 80296A6C 000670C0 */ sll $t6, $a2, 3
/* 100080 80296A70 01C67023 */ subu $t6, $t6, $a2
/* 100084 80296A74 3C0F8016 */ lui $t7, %hi(D_8015F9B8) # $t7, 0x8016
/* 100088 80296A78 25EFF9B8 */ addiu $t7, %lo(D_8015F9B8) # addiu $t7, $t7, -0x648
/* 10008C 80296A7C 000E7100 */ sll $t6, $t6, 4
/* 100090 80296A80 01CF2821 */ addu $a1, $t6, $t7
/* 100094 80296A84 24030007 */ li $v1, 7
.L80296A88:
/* 100098 80296A88 5085001A */ beql $a0, $a1, .L80296AF4
/* 10009C 80296A8C 24C60001 */ addiu $a2, $a2, 1
/* 1000A0 80296A90 84B80002 */ lh $t8, 2($a1)
/* 1000A4 80296A94 3319000F */ andi $t9, $t8, 0xf
/* 1000A8 80296A98 57200016 */ bnel $t9, $zero, .L80296AF4
/* 1000AC 80296A9C 24C60001 */ addiu $a2, $a2, 1
/* 1000B0 80296AA0 84AA0000 */ lh $t2, ($a1)
/* 1000B4 80296AA4 546A0013 */ bnel $v1, $t2, .L80296AF4
/* 1000B8 80296AA8 24C60001 */ addiu $a2, $a2, 1
/* 1000BC 80296AAC 84AB0006 */ lh $t3, 6($a1)
/* 1000C0 80296AB0 24070002 */ li $a3, 2
/* 1000C4 80296AB4 00C02025 */ move $a0, $a2
/* 1000C8 80296AB8 14EB0004 */ bne $a3, $t3, .L80296ACC
/* 1000CC 80296ABC 00000000 */ nop
/* 1000D0 80296AC0 0C003B96 */ jal func_8000EE58
/* 1000D4 80296AC4 AFA5001C */ sw $a1, 0x1c($sp)
/* 1000D8 80296AC8 8FA5001C */ lw $a1, 0x1c($sp)
.L80296ACC:
/* 1000DC 80296ACC 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1000E0 80296AD0 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1000E4 80296AD4 944C0000 */ lhu $t4, ($v0)
/* 1000E8 80296AD8 00A02025 */ move $a0, $a1
/* 1000EC 80296ADC 258DFFFF */ addiu $t5, $t4, -1
/* 1000F0 80296AE0 0C0A7A15 */ jal func_8029E854
/* 1000F4 80296AE4 A44D0000 */ sh $t5, ($v0)
/* 1000F8 80296AE8 10000086 */ b .L80296D04
/* 1000FC 80296AEC 8FBF0014 */ lw $ra, 0x14($sp)
/* 100100 80296AF0 24C60001 */ addiu $a2, $a2, 1
.L80296AF4:
/* 100104 80296AF4 28C10064 */ slti $at, $a2, 0x64
/* 100108 80296AF8 1420FFE3 */ bnez $at, .L80296A88
/* 10010C 80296AFC 24A50070 */ addiu $a1, $a1, 0x70
/* 100110 80296B00 01203025 */ move $a2, $t1
.L80296B04:
/* 100114 80296B04 28C10064 */ slti $at, $a2, 0x64
/* 100118 80296B08 1020002D */ beqz $at, .L80296BC0
/* 10011C 80296B0C 24030007 */ li $v1, 7
/* 100120 80296B10 000670C0 */ sll $t6, $a2, 3
/* 100124 80296B14 01C67023 */ subu $t6, $t6, $a2
/* 100128 80296B18 3C0F8016 */ lui $t7, %hi(D_8015F9B8) # $t7, 0x8016
/* 10012C 80296B1C 25EFF9B8 */ addiu $t7, %lo(D_8015F9B8) # addiu $t7, $t7, -0x648
/* 100130 80296B20 000E7100 */ sll $t6, $t6, 4
/* 100134 80296B24 01CF2821 */ addu $a1, $t6, $t7
/* 100138 80296B28 24080008 */ li $t0, 8
.L80296B2C:
/* 10013C 80296B2C 50850020 */ beql $a0, $a1, .L80296BB0
/* 100140 80296B30 24C60001 */ addiu $a2, $a2, 1
/* 100144 80296B34 84B80002 */ lh $t8, 2($a1)
/* 100148 80296B38 3319000F */ andi $t9, $t8, 0xf
/* 10014C 80296B3C 5720001C */ bnel $t9, $zero, .L80296BB0
/* 100150 80296B40 24C60001 */ addiu $a2, $a2, 1
/* 100154 80296B44 84AA0000 */ lh $t2, ($a1)
/* 100158 80296B48 550A0019 */ bnel $t0, $t2, .L80296BB0
/* 10015C 80296B4C 24C60001 */ addiu $a2, $a2, 1
/* 100160 80296B50 84AB0006 */ lh $t3, 6($a1)
/* 100164 80296B54 256CFFFE */ addiu $t4, $t3, -2
/* 100168 80296B58 2D810008 */ sltiu $at, $t4, 8
/* 10016C 80296B5C 10200013 */ beqz $at, .L80296BAC
/* 100170 80296B60 000C6080 */ sll $t4, $t4, 2
/* 100174 80296B64 3C01802C */ lui $at, %hi(jpt_802B9500)
/* 100178 80296B68 002C0821 */ addu $at, $at, $t4
/* 10017C 80296B6C 8C2C9500 */ lw $t4, %lo(jpt_802B9500)($at)
/* 100180 80296B70 01800008 */ jr $t4
/* 100184 80296B74 00000000 */ nop
glabel L80296B78
/* 100188 80296B78 00C02025 */ move $a0, $a2
/* 10018C 80296B7C 0C003B96 */ jal func_8000EE58
/* 100190 80296B80 AFA5001C */ sw $a1, 0x1c($sp)
/* 100194 80296B84 8FA5001C */ lw $a1, 0x1c($sp)
glabel L80296B88
/* 100198 80296B88 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10019C 80296B8C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1001A0 80296B90 944D0000 */ lhu $t5, ($v0)
/* 1001A4 80296B94 00A02025 */ move $a0, $a1
/* 1001A8 80296B98 25AEFFFF */ addiu $t6, $t5, -1
/* 1001AC 80296B9C 0C0A7A15 */ jal func_8029E854
/* 1001B0 80296BA0 A44E0000 */ sh $t6, ($v0)
/* 1001B4 80296BA4 10000057 */ b .L80296D04
/* 1001B8 80296BA8 8FBF0014 */ lw $ra, 0x14($sp)
.L80296BAC:
glabel L80296BAC
/* 1001BC 80296BAC 24C60001 */ addiu $a2, $a2, 1
.L80296BB0:
/* 1001C0 80296BB0 28C10064 */ slti $at, $a2, 0x64
/* 1001C4 80296BB4 1420FFDD */ bnez $at, .L80296B2C
/* 1001C8 80296BB8 24A50070 */ addiu $a1, $a1, 0x70
/* 1001CC 80296BBC 01203025 */ move $a2, $t1
.L80296BC0:
/* 1001D0 80296BC0 28C10064 */ slti $at, $a2, 0x64
/* 1001D4 80296BC4 10200026 */ beqz $at, .L80296C60
/* 1001D8 80296BC8 24080008 */ li $t0, 8
/* 1001DC 80296BCC 000678C0 */ sll $t7, $a2, 3
/* 1001E0 80296BD0 01E67823 */ subu $t7, $t7, $a2
/* 1001E4 80296BD4 3C188016 */ lui $t8, %hi(D_8015F9B8) # $t8, 0x8016
/* 1001E8 80296BD8 2718F9B8 */ addiu $t8, %lo(D_8015F9B8) # addiu $t8, $t8, -0x648
/* 1001EC 80296BDC 000F7900 */ sll $t7, $t7, 4
/* 1001F0 80296BE0 01F82821 */ addu $a1, $t7, $t8
/* 1001F4 80296BE4 24070002 */ li $a3, 2
.L80296BE8:
/* 1001F8 80296BE8 50850019 */ beql $a0, $a1, .L80296C50
/* 1001FC 80296BEC 24C60001 */ addiu $a2, $a2, 1
/* 100200 80296BF0 84B90000 */ lh $t9, ($a1)
/* 100204 80296BF4 54790016 */ bnel $v1, $t9, .L80296C50
/* 100208 80296BF8 24C60001 */ addiu $a2, $a2, 1
/* 10020C 80296BFC 84A20006 */ lh $v0, 6($a1)
/* 100210 80296C00 50470006 */ beql $v0, $a3, .L80296C1C
/* 100214 80296C04 00C02025 */ move $a0, $a2
/* 100218 80296C08 10430007 */ beq $v0, $v1, .L80296C28
/* 10021C 80296C0C 00000000 */ nop
/* 100220 80296C10 1000000F */ b .L80296C50
/* 100224 80296C14 24C60001 */ addiu $a2, $a2, 1
/* 100228 80296C18 00C02025 */ move $a0, $a2
.L80296C1C:
/* 10022C 80296C1C 0C003B96 */ jal func_8000EE58
/* 100230 80296C20 AFA5001C */ sw $a1, 0x1c($sp)
/* 100234 80296C24 8FA5001C */ lw $a1, 0x1c($sp)
.L80296C28:
/* 100238 80296C28 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10023C 80296C2C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 100240 80296C30 944A0000 */ lhu $t2, ($v0)
/* 100244 80296C34 00A02025 */ move $a0, $a1
/* 100248 80296C38 254BFFFF */ addiu $t3, $t2, -1
/* 10024C 80296C3C 0C0A7A15 */ jal func_8029E854
/* 100250 80296C40 A44B0000 */ sh $t3, ($v0)
/* 100254 80296C44 1000002F */ b .L80296D04
/* 100258 80296C48 8FBF0014 */ lw $ra, 0x14($sp)
/* 10025C 80296C4C 24C60001 */ addiu $a2, $a2, 1
.L80296C50:
/* 100260 80296C50 28C10064 */ slti $at, $a2, 0x64
/* 100264 80296C54 1420FFE4 */ bnez $at, .L80296BE8
/* 100268 80296C58 24A50070 */ addiu $a1, $a1, 0x70
/* 10026C 80296C5C 01203025 */ move $a2, $t1
.L80296C60:
/* 100270 80296C60 28C10064 */ slti $at, $a2, 0x64
/* 100274 80296C64 10200026 */ beqz $at, .L80296D00
/* 100278 80296C68 000660C0 */ sll $t4, $a2, 3
/* 10027C 80296C6C 01866023 */ subu $t4, $t4, $a2
/* 100280 80296C70 3C0D8016 */ lui $t5, %hi(D_8015F9B8) # $t5, 0x8016
/* 100284 80296C74 25ADF9B8 */ addiu $t5, %lo(D_8015F9B8) # addiu $t5, $t5, -0x648
/* 100288 80296C78 000C6100 */ sll $t4, $t4, 4
/* 10028C 80296C7C 018D2821 */ addu $a1, $t4, $t5
.L80296C80:
/* 100290 80296C80 5085001C */ beql $a0, $a1, .L80296CF4
/* 100294 80296C84 24C60001 */ addiu $a2, $a2, 1
/* 100298 80296C88 84AE0000 */ lh $t6, ($a1)
/* 10029C 80296C8C 550E0019 */ bnel $t0, $t6, .L80296CF4
/* 1002A0 80296C90 24C60001 */ addiu $a2, $a2, 1
/* 1002A4 80296C94 84AF0006 */ lh $t7, 6($a1)
/* 1002A8 80296C98 25F8FFFE */ addiu $t8, $t7, -2
/* 1002AC 80296C9C 2F010008 */ sltiu $at, $t8, 8
/* 1002B0 80296CA0 10200013 */ beqz $at, .L80296CF0
/* 1002B4 80296CA4 0018C080 */ sll $t8, $t8, 2
/* 1002B8 80296CA8 3C01802C */ lui $at, %hi(jpt_802B9520)
/* 1002BC 80296CAC 00380821 */ addu $at, $at, $t8
/* 1002C0 80296CB0 8C389520 */ lw $t8, %lo(jpt_802B9520)($at)
/* 1002C4 80296CB4 03000008 */ jr $t8
/* 1002C8 80296CB8 00000000 */ nop
glabel L80296CBC
/* 1002CC 80296CBC 00C02025 */ move $a0, $a2
/* 1002D0 80296CC0 0C003B96 */ jal func_8000EE58
/* 1002D4 80296CC4 AFA5001C */ sw $a1, 0x1c($sp)
/* 1002D8 80296CC8 8FA5001C */ lw $a1, 0x1c($sp)
glabel L80296CCC
/* 1002DC 80296CCC 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1002E0 80296CD0 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1002E4 80296CD4 94590000 */ lhu $t9, ($v0)
/* 1002E8 80296CD8 00A02025 */ move $a0, $a1
/* 1002EC 80296CDC 272AFFFF */ addiu $t2, $t9, -1
/* 1002F0 80296CE0 0C0A7A15 */ jal func_8029E854
/* 1002F4 80296CE4 A44A0000 */ sh $t2, ($v0)
/* 1002F8 80296CE8 10000006 */ b .L80296D04
/* 1002FC 80296CEC 8FBF0014 */ lw $ra, 0x14($sp)
.L80296CF0:
glabel L80296CF0
/* 100300 80296CF0 24C60001 */ addiu $a2, $a2, 1
.L80296CF4:
/* 100304 80296CF4 28C10064 */ slti $at, $a2, 0x64
/* 100308 80296CF8 1420FFE1 */ bnez $at, .L80296C80
/* 10030C 80296CFC 24A50070 */ addiu $a1, $a1, 0x70
.L80296D00:
/* 100310 80296D00 8FBF0014 */ lw $ra, 0x14($sp)
.L80296D04:
/* 100314 80296D04 27BD0030 */ addiu $sp, $sp, 0x30
/* 100318 80296D08 03E00008 */ jr $ra
/* 10031C 80296D0C 00000000 */ nop