Turn D_802BFB80 into a union (#582)

* Turn D_802BFB80 into a union

As much as I hate it, it does make more matches possible

Got a few more, unrelated matches

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

* Update based on comment

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

* Update to address comment

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

---------

Signed-off-by: Taggerung <tyler.taggerung@email.com>
Co-authored-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
Tyler McGavran 2024-03-25 13:25:13 -04:00 committed by GitHub
parent 65f03934bb
commit 893ecbe838
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 268 additions and 1587 deletions

View File

@ -1,79 +0,0 @@
glabel func_80099958
/* 09A558 80099958 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 09A55C 8009995C AFBF0024 */ sw $ra, 0x24($sp)
/* 09A560 80099960 AFB1001C */ sw $s1, 0x1c($sp)
/* 09A564 80099964 00A08825 */ move $s1, $a1
/* 09A568 80099968 AFB20020 */ sw $s2, 0x20($sp)
/* 09A56C 8009996C AFB00018 */ sw $s0, 0x18($sp)
/* 09A570 80099970 0C026449 */ jal segmented_to_virtual_dupe
/* 09A574 80099974 AFA60030 */ sw $a2, 0x30($sp)
/* 09A578 80099978 8C4E0004 */ lw $t6, 4($v0)
/* 09A57C 8009997C 00408025 */ move $s0, $v0
/* 09A580 80099980 8FAF0030 */ lw $t7, 0x30($sp)
/* 09A584 80099984 11C00034 */ beqz $t6, .L80099A58
/* 09A588 80099988 01C02025 */ move $a0, $t6
/* 09A58C 8009998C 000FC400 */ sll $t8, $t7, 0x10
/* 09A590 80099990 06210003 */ bgez $s1, .L800999A0
/* 09A594 80099994 0011C843 */ sra $t9, $s1, 1
/* 09A598 80099998 26210001 */ addiu $at, $s1, 1
/* 09A59C 8009999C 0001C843 */ sra $t9, $at, 1
.L800999A0:
/* 09A5A0 800999A0 001943C0 */ sll $t0, $t9, 0xf
/* 09A5A4 800999A4 03084821 */ addu $t1, $t8, $t0
/* 09A5A8 800999A8 06210004 */ bgez $s1, .L800999BC
/* 09A5AC 800999AC 322A0001 */ andi $t2, $s1, 1
/* 09A5B0 800999B0 11400002 */ beqz $t2, .L800999BC
/* 09A5B4 800999B4 00000000 */ nop
/* 09A5B8 800999B8 254AFFFE */ addiu $t2, $t2, -2
.L800999BC:
/* 09A5BC 800999BC 000A5B40 */ sll $t3, $t2, 0xd
/* 09A5C0 800999C0 012B6021 */ addu $t4, $t1, $t3
/* 09A5C4 800999C4 3C0E802C */ lui $t6, %hi(D_802BFB80) # $t6, 0x802c
/* 09A5C8 800999C8 25CEFB80 */ addiu $t6, %lo(D_802BFB80) # addiu $t6, $t6, -0x480
/* 09A5CC 800999CC 258D4000 */ addiu $t5, $t4, 0x4000
/* 09A5D0 800999D0 3C118019 */ lui $s1, %hi(D_8018D9B4) # $s1, 0x8019
/* 09A5D4 800999D4 2631D9B4 */ addiu $s1, %lo(D_8018D9B4) # addiu $s1, $s1, -0x264c
/* 09A5D8 800999D8 01AE9021 */ addu $s2, $t5, $t6
/* 09A5DC 800999DC 96020010 */ lhu $v0, 0x10($s0)
.L800999E0:
/* 09A5E0 800999E0 24051400 */ li $a1, 5120
/* 09A5E4 800999E4 10400003 */ beqz $v0, .L800999F4
/* 09A5E8 800999E8 00000000 */ nop
/* 09A5EC 800999EC 10000001 */ b .L800999F4
/* 09A5F0 800999F0 3045FFFF */ andi $a1, $v0, 0xffff
.L800999F4:
/* 09A5F4 800999F4 00A01025 */ move $v0, $a1
/* 09A5F8 800999F8 04410004 */ bgez $v0, .L80099A0C
/* 09A5FC 800999FC 304F0007 */ andi $t7, $v0, 7
/* 09A600 80099A00 11E00002 */ beqz $t7, .L80099A0C
/* 09A604 80099A04 00000000 */ nop
/* 09A608 80099A08 25EFFFF8 */ addiu $t7, $t7, -8
.L80099A0C:
/* 09A60C 80099A0C 11E00009 */ beqz $t7, .L80099A34
/* 09A610 80099A10 00000000 */ nop
/* 09A614 80099A14 04410003 */ bgez $v0, .L80099A24
/* 09A618 80099A18 000228C3 */ sra $a1, $v0, 3
/* 09A61C 80099A1C 24410007 */ addiu $at, $v0, 7
/* 09A620 80099A20 000128C3 */ sra $a1, $at, 3
.L80099A24:
/* 09A624 80099A24 0005C8C0 */ sll $t9, $a1, 3
/* 09A628 80099A28 27250008 */ addiu $a1, $t9, 8
/* 09A62C 80099A2C 30B8FFFF */ andi $t8, $a1, 0xffff
/* 09A630 80099A30 03002825 */ move $a1, $t8
.L80099A34:
/* 09A634 80099A34 0C026400 */ jal dma_copy_base_729a30
/* 09A638 80099A38 8E260000 */ lw $a2, ($s1)
/* 09A63C 80099A3C 8E240000 */ lw $a0, ($s1)
/* 09A640 80099A40 0C010034 */ jal mio0decode
/* 09A644 80099A44 02402825 */ move $a1, $s2
/* 09A648 80099A48 8E040018 */ lw $a0, 0x18($s0)
/* 09A64C 80099A4C 26100014 */ addiu $s0, $s0, 0x14
/* 09A650 80099A50 5480FFE3 */ bnel $a0, $zero, .L800999E0
/* 09A654 80099A54 96020010 */ lhu $v0, 0x10($s0)
.L80099A58:
/* 09A658 80099A58 8FBF0024 */ lw $ra, 0x24($sp)
/* 09A65C 80099A5C 8FB00018 */ lw $s0, 0x18($sp)
/* 09A660 80099A60 8FB1001C */ lw $s1, 0x1c($sp)
/* 09A664 80099A64 8FB20020 */ lw $s2, 0x20($sp)
/* 09A668 80099A68 03E00008 */ jr $ra
/* 09A66C 80099A6C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -242,77 +242,3 @@ glabel func_80099EC4
/* 09AE2C 8009A22C 8FBE0048 */ lw $fp, 0x48($sp)
/* 09AE30 8009A230 03E00008 */ jr $ra
/* 09AE34 8009A234 27BD0090 */ addiu $sp, $sp, 0x90
/* 09AE38 8009A238 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 09AE3C 8009A23C AFBF0014 */ sw $ra, 0x14($sp)
/* 09AE40 8009A240 8C980004 */ lw $t8, 4($a0)
/* 09AE44 8009A244 3C0F8019 */ lui $t7, %hi(D_8018E118) # $t7, 0x8019
/* 09AE48 8009A248 25EFE118 */ addiu $t7, %lo(D_8018E118) # addiu $t7, $t7, -0x1ee8
/* 09AE4C 8009A24C AFB80024 */ sw $t8, 0x24($sp)
/* 09AE50 8009A250 94870010 */ lhu $a3, 0x10($a0)
/* 09AE54 8009A254 000570C0 */ sll $t6, $a1, 3
/* 09AE58 8009A258 01CF1021 */ addu $v0, $t6, $t7
/* 09AE5C 8009A25C 8C430004 */ lw $v1, 4($v0)
/* 09AE60 8009A260 04E10004 */ bgez $a3, .L8009A274
/* 09AE64 8009A264 30F90007 */ andi $t9, $a3, 7
/* 09AE68 8009A268 13200002 */ beqz $t9, .L8009A274
/* 09AE6C 8009A26C 00000000 */ nop
/* 09AE70 8009A270 2739FFF8 */ addiu $t9, $t9, -8
.L8009A274:
/* 09AE74 8009A274 13200007 */ beqz $t9, .L8009A294
/* 09AE78 8009A278 8FA40024 */ lw $a0, 0x24($sp)
/* 09AE7C 8009A27C 04E10003 */ bgez $a3, .L8009A28C
/* 09AE80 8009A280 000740C3 */ sra $t0, $a3, 3
/* 09AE84 8009A284 24E10007 */ addiu $at, $a3, 7
/* 09AE88 8009A288 000140C3 */ sra $t0, $at, 3
.L8009A28C:
/* 09AE8C 8009A28C 000848C0 */ sll $t1, $t0, 3
/* 09AE90 8009A290 25270008 */ addiu $a3, $t1, 8
.L8009A294:
/* 09AE94 8009A294 3C068019 */ lui $a2, %hi(D_8018D9B4) # $a2, 0x8019
/* 09AE98 8009A298 8CC6D9B4 */ lw $a2, %lo(D_8018D9B4)($a2)
/* 09AE9C 8009A29C 00E02825 */ move $a1, $a3
/* 09AEA0 8009A2A0 AFA2001C */ sw $v0, 0x1c($sp)
/* 09AEA4 8009A2A4 0C026422 */ jal dma_copy_base_7fa3c0
/* 09AEA8 8009A2A8 AFA30028 */ sw $v1, 0x28($sp)
/* 09AEAC 8009A2AC 8FA30028 */ lw $v1, 0x28($sp)
/* 09AEB0 8009A2B0 3C0B8019 */ lui $t3, %hi(D_8018D9B0) # $t3, 0x8019
/* 09AEB4 8009A2B4 8D6BD9B0 */ lw $t3, %lo(D_8018D9B0)($t3)
/* 09AEB8 8009A2B8 3C048019 */ lui $a0, %hi(D_8018D9B4) # $a0, 0x8019
/* 09AEBC 8009A2BC 3C058019 */ lui $a1, %hi(D_8018D9B8) # $a1, 0x8019
/* 09AEC0 8009A2C0 00035040 */ sll $t2, $v1, 1
/* 09AEC4 8009A2C4 8CA5D9B8 */ lw $a1, %lo(D_8018D9B8)($a1)
/* 09AEC8 8009A2C8 8C84D9B4 */ lw $a0, %lo(D_8018D9B4)($a0)
/* 09AECC 8009A2CC 24070001 */ li $a3, 1
/* 09AED0 8009A2D0 0C010174 */ jal tkmk00decode
/* 09AED4 8009A2D4 014B3021 */ addu $a2, $t2, $t3
/* 09AED8 8009A2D8 8FBF0014 */ lw $ra, 0x14($sp)
/* 09AEDC 8009A2DC 8FA2001C */ lw $v0, 0x1c($sp)
/* 09AEE0 8009A2E0 8FAC0024 */ lw $t4, 0x24($sp)
/* 09AEE4 8009A2E4 27BD0030 */ addiu $sp, $sp, 0x30
/* 09AEE8 8009A2E8 03E00008 */ jr $ra
/* 09AEEC 8009A2EC AC4C0000 */ sw $t4, ($v0)
/* 09AEF0 8009A2F0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 09AEF4 8009A2F4 AFBF001C */ sw $ra, 0x1c($sp)
/* 09AEF8 8009A2F8 0C026455 */ jal segmented_to_virtual_dupe_2
/* 09AEFC 8009A2FC AFB00018 */ sw $s0, 0x18($sp)
/* 09AF00 8009A300 8C440000 */ lw $a0, ($v0)
/* 09AF04 8009A304 00408025 */ move $s0, $v0
/* 09AF08 8009A308 5080000A */ beql $a0, $zero, .L8009A334
/* 09AF0C 8009A30C 8FBF001C */ lw $ra, 0x1c($sp)
.L8009A310:
/* 09AF10 8009A310 50800008 */ beql $a0, $zero, .L8009A334
/* 09AF14 8009A314 8FBF001C */ lw $ra, 0x1c($sp)
/* 09AF18 8009A318 0C0265AF */ jal func_800996BC
/* 09AF1C 8009A31C 00002825 */ move $a1, $zero
/* 09AF20 8009A320 8E040008 */ lw $a0, 8($s0)
/* 09AF24 8009A324 26100008 */ addiu $s0, $s0, 8
/* 09AF28 8009A328 1480FFF9 */ bnez $a0, .L8009A310
/* 09AF2C 8009A32C 00000000 */ nop
/* 09AF30 8009A330 8FBF001C */ lw $ra, 0x1c($sp)
.L8009A334:
/* 09AF34 8009A334 8FB00018 */ lw $s0, 0x18($sp)
/* 09AF38 8009A338 27BD0020 */ addiu $sp, $sp, 0x20
/* 09AF3C 8009A33C 03E00008 */ jr $ra
/* 09AF40 8009A340 00000000 */ nop

View File

@ -1,143 +0,0 @@
glabel func_8009C708
/* 09D308 8009C708 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 09D30C 8009C70C AFBF005C */ sw $ra, 0x5c($sp)
/* 09D310 8009C710 AFBE0058 */ sw $fp, 0x58($sp)
/* 09D314 8009C714 AFB70054 */ sw $s7, 0x54($sp)
/* 09D318 8009C718 AFB60050 */ sw $s6, 0x50($sp)
/* 09D31C 8009C71C AFB5004C */ sw $s5, 0x4c($sp)
/* 09D320 8009C720 AFB40048 */ sw $s4, 0x48($sp)
/* 09D324 8009C724 AFB30044 */ sw $s3, 0x44($sp)
/* 09D328 8009C728 AFB20040 */ sw $s2, 0x40($sp)
/* 09D32C 8009C72C AFB1003C */ sw $s1, 0x3c($sp)
/* 09D330 8009C730 AFB00038 */ sw $s0, 0x38($sp)
/* 09D334 8009C734 AFA60068 */ sw $a2, 0x68($sp)
/* 09D338 8009C738 AFA7006C */ sw $a3, 0x6c($sp)
/* 09D33C 8009C73C 8CAF0004 */ lw $t7, 4($a1)
/* 09D340 8009C740 8CAE0000 */ lw $t6, ($a1)
/* 09D344 8009C744 00808025 */ move $s0, $a0
/* 09D348 8009C748 000FC0C0 */ sll $t8, $t7, 3
/* 09D34C 8009C74C 01D8C821 */ addu $t9, $t6, $t8
/* 09D350 8009C750 8F240000 */ lw $a0, ($t9)
/* 09D354 8009C754 0C026449 */ jal segmented_to_virtual_dupe
/* 09D358 8009C758 AFA50064 */ sw $a1, 0x64($sp)
/* 09D35C 8009C75C 8C490004 */ lw $t1, 4($v0)
/* 09D360 8009C760 00408825 */ move $s1, $v0
/* 09D364 8009C764 241E0003 */ li $fp, 3
/* 09D368 8009C768 1120005E */ beqz $t1, .L8009C8E4
/* 09D36C 8009C76C 24170002 */ li $s7, 2
/* 09D370 8009C770 3C150200 */ lui $s5, %hi(D_02007728) # $s5, 0x200
/* 09D374 8009C774 26B57728 */ addiu $s5, %lo(D_02007728) # addiu $s5, $s5, 0x7728
/* 09D378 8009C778 24160001 */ li $s6, 1
/* 09D37C 8009C77C 8FB40070 */ lw $s4, 0x70($sp)
/* 09D380 8009C780 8FB30074 */ lw $s3, 0x74($sp)
/* 09D384 8009C784 3C120600 */ lui $s2, 0x600
/* 09D388 8009C788 86220000 */ lh $v0, ($s1)
.L8009C78C:
/* 09D38C 8009C78C 3C0A0200 */ lui $t2, %hi(D_02007708) # $t2, 0x200
/* 09D390 8009C790 00004025 */ move $t0, $zero
/* 09D394 8009C794 1040000C */ beqz $v0, .L8009C7C8
/* 09D398 8009C798 254A7708 */ addiu $t2, %lo(D_02007708) # addiu $t2, $t2, 0x7708
/* 09D39C 8009C79C 50560010 */ beql $v0, $s6, .L8009C7E0
/* 09D3A0 8009C7A0 02001025 */ move $v0, $s0
/* 09D3A4 8009C7A4 10570012 */ beq $v0, $s7, .L8009C7F0
/* 09D3A8 8009C7A8 3C0B0200 */ lui $t3, %hi(D_02007748) # $t3, 0x200
/* 09D3AC 8009C7AC 105E0016 */ beq $v0, $fp, .L8009C808
/* 09D3B0 8009C7B0 3C0C0200 */ lui $t4, %hi(D_02007768) # $t4, 0x200
/* 09D3B4 8009C7B4 02001025 */ move $v0, $s0
/* 09D3B8 8009C7B8 AC520000 */ sw $s2, ($v0)
/* 09D3BC 8009C7BC AC550004 */ sw $s5, 4($v0)
/* 09D3C0 8009C7C0 10000017 */ b .L8009C820
/* 09D3C4 8009C7C4 26100008 */ addiu $s0, $s0, 8
.L8009C7C8:
/* 09D3C8 8009C7C8 02001025 */ move $v0, $s0
/* 09D3CC 8009C7CC AC520000 */ sw $s2, ($v0)
/* 09D3D0 8009C7D0 AC4A0004 */ sw $t2, 4($v0)
/* 09D3D4 8009C7D4 10000012 */ b .L8009C820
/* 09D3D8 8009C7D8 26100008 */ addiu $s0, $s0, 8
/* 09D3DC 8009C7DC 02001025 */ move $v0, $s0
.L8009C7E0:
/* 09D3E0 8009C7E0 AC520000 */ sw $s2, ($v0)
/* 09D3E4 8009C7E4 AC550004 */ sw $s5, 4($v0)
/* 09D3E8 8009C7E8 1000000D */ b .L8009C820
/* 09D3EC 8009C7EC 26100008 */ addiu $s0, $s0, 8
.L8009C7F0:
/* 09D3F0 8009C7F0 02001025 */ move $v0, $s0
/* 09D3F4 8009C7F4 256B7748 */ addiu $t3, %lo(D_02007748) # addiu $t3, $t3, 0x7748
/* 09D3F8 8009C7F8 AC4B0004 */ sw $t3, 4($v0)
/* 09D3FC 8009C7FC AC520000 */ sw $s2, ($v0)
/* 09D400 8009C800 10000007 */ b .L8009C820
/* 09D404 8009C804 26100008 */ addiu $s0, $s0, 8
.L8009C808:
/* 09D408 8009C808 02001025 */ move $v0, $s0
/* 09D40C 8009C80C 258C7768 */ addiu $t4, %lo(D_02007768) # addiu $t4, $t4, 0x7768
/* 09D410 8009C810 AC4C0004 */ sw $t4, 4($v0)
/* 09D414 8009C814 AC520000 */ sw $s2, ($v0)
/* 09D418 8009C818 26100008 */ addiu $s0, $s0, 8
/* 09D41C 8009C81C 03C04025 */ move $t0, $fp
.L8009C820:
/* 09D420 8009C820 0660002C */ bltz $s3, .L8009C8D4
/* 09D424 8009C824 02002025 */ move $a0, $s0
/* 09D428 8009C828 96220008 */ lhu $v0, 8($s1)
/* 09D42C 8009C82C 8FAE0068 */ lw $t6, 0x68($sp)
/* 09D430 8009C830 8FA9006C */ lw $t1, 0x6c($sp)
/* 09D434 8009C834 AFA20010 */ sw $v0, 0x10($sp)
/* 09D438 8009C838 9623000A */ lhu $v1, 0xa($s1)
/* 09D43C 8009C83C 8FAB0064 */ lw $t3, 0x64($sp)
/* 09D440 8009C840 00082E00 */ sll $a1, $t0, 0x18
/* 09D444 8009C844 AFA30014 */ sw $v1, 0x14($sp)
/* 09D448 8009C848 962F000C */ lhu $t7, 0xc($s1)
/* 09D44C 8009C84C 00056E03 */ sra $t5, $a1, 0x18
/* 09D450 8009C850 01A02825 */ move $a1, $t5
/* 09D454 8009C854 01EEC021 */ addu $t8, $t7, $t6
/* 09D458 8009C858 AFB80018 */ sw $t8, 0x18($sp)
/* 09D45C 8009C85C 9639000E */ lhu $t9, 0xe($s1)
/* 09D460 8009C860 00003025 */ move $a2, $zero
/* 09D464 8009C864 00003825 */ move $a3, $zero
/* 09D468 8009C868 03295021 */ addu $t2, $t9, $t1
/* 09D46C 8009C86C AFAA001C */ sw $t2, 0x1c($sp)
/* 09D470 8009C870 8D6C0014 */ lw $t4, 0x14($t3)
/* 09D474 8009C874 AFB3002C */ sw $s3, 0x2c($sp)
/* 09D478 8009C878 AFA20024 */ sw $v0, 0x24($sp)
/* 09D47C 8009C87C 000C6C00 */ sll $t5, $t4, 0x10
/* 09D480 8009C880 06810003 */ bgez $s4, .L8009C890
/* 09D484 8009C884 00147843 */ sra $t7, $s4, 1
/* 09D488 8009C888 26810001 */ addiu $at, $s4, 1
/* 09D48C 8009C88C 00017843 */ sra $t7, $at, 1
.L8009C890:
/* 09D490 8009C890 000F73C0 */ sll $t6, $t7, 0xf
/* 09D494 8009C894 01AEC021 */ addu $t8, $t5, $t6
/* 09D498 8009C898 06810004 */ bgez $s4, .L8009C8AC
/* 09D49C 8009C89C 32990001 */ andi $t9, $s4, 1
/* 09D4A0 8009C8A0 13200002 */ beqz $t9, .L8009C8AC
/* 09D4A4 8009C8A4 00000000 */ nop
/* 09D4A8 8009C8A8 2739FFFE */ addiu $t9, $t9, -2
.L8009C8AC:
/* 09D4AC 8009C8AC 00194B40 */ sll $t1, $t9, 0xd
/* 09D4B0 8009C8B0 03095021 */ addu $t2, $t8, $t1
/* 09D4B4 8009C8B4 3C0C802C */ lui $t4, %hi(D_802BFB80) # $t4, 0x802c
/* 09D4B8 8009C8B8 258CFB80 */ addiu $t4, %lo(D_802BFB80) # addiu $t4, $t4, -0x480
/* 09D4BC 8009C8BC 254B4000 */ addiu $t3, $t2, 0x4000
/* 09D4C0 8009C8C0 016C7821 */ addu $t7, $t3, $t4
/* 09D4C4 8009C8C4 AFAF0020 */ sw $t7, 0x20($sp)
/* 09D4C8 8009C8C8 0C025F96 */ jal func_80097E58
/* 09D4CC 8009C8CC AFA30028 */ sw $v1, 0x28($sp)
/* 09D4D0 8009C8D0 00408025 */ move $s0, $v0
.L8009C8D4:
/* 09D4D4 8009C8D4 8E2D0018 */ lw $t5, 0x18($s1)
/* 09D4D8 8009C8D8 26310014 */ addiu $s1, $s1, 0x14
/* 09D4DC 8009C8DC 55A0FFAB */ bnel $t5, $zero, .L8009C78C
/* 09D4E0 8009C8E0 86220000 */ lh $v0, ($s1)
.L8009C8E4:
/* 09D4E4 8009C8E4 8FBF005C */ lw $ra, 0x5c($sp)
/* 09D4E8 8009C8E8 02001025 */ move $v0, $s0
/* 09D4EC 8009C8EC 8FB00038 */ lw $s0, 0x38($sp)
/* 09D4F0 8009C8F0 8FB1003C */ lw $s1, 0x3c($sp)
/* 09D4F4 8009C8F4 8FB20040 */ lw $s2, 0x40($sp)
/* 09D4F8 8009C8F8 8FB30044 */ lw $s3, 0x44($sp)
/* 09D4FC 8009C8FC 8FB40048 */ lw $s4, 0x48($sp)
/* 09D500 8009C900 8FB5004C */ lw $s5, 0x4c($sp)
/* 09D504 8009C904 8FB60050 */ lw $s6, 0x50($sp)
/* 09D508 8009C908 8FB70054 */ lw $s7, 0x54($sp)
/* 09D50C 8009C90C 8FBE0058 */ lw $fp, 0x58($sp)
/* 09D510 8009C910 03E00008 */ jr $ra
/* 09D514 8009C914 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,172 +0,0 @@
glabel func_800A0B80
/* 0A1780 800A0B80 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0A1784 800A0B84 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 0A1788 800A0B88 8C630298 */ lw $v1, %lo(gDisplayListHead)($v1)
/* 0A178C 800A0B8C AFBE0038 */ sw $fp, 0x38($sp)
/* 0A1790 800A0B90 AFB70034 */ sw $s7, 0x34($sp)
/* 0A1794 800A0B94 AFB60030 */ sw $s6, 0x30($sp)
/* 0A1798 800A0B98 AFB5002C */ sw $s5, 0x2c($sp)
/* 0A179C 800A0B9C AFB30024 */ sw $s3, 0x24($sp)
/* 0A17A0 800A0BA0 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 0A17A4 800A0BA4 246E0008 */ addiu $t6, $v1, 8
/* 0A17A8 800A0BA8 AFBF003C */ sw $ra, 0x3c($sp)
/* 0A17AC 800A0BAC AFB40028 */ sw $s4, 0x28($sp)
/* 0A17B0 800A0BB0 AFB20020 */ sw $s2, 0x20($sp)
/* 0A17B4 800A0BB4 AFB1001C */ sw $s1, 0x1c($sp)
/* 0A17B8 800A0BB8 AFB00018 */ sw $s0, 0x18($sp)
/* 0A17BC 800A0BBC AC2E0298 */ sw $t6, %lo(gDisplayListHead)($at)
/* 0A17C0 800A0BC0 3C0FFA00 */ lui $t7, 0xfa00
/* 0A17C4 800A0BC4 241832FF */ li $t8, 13055
/* 0A17C8 800A0BC8 3C16800F */ lui $s6, %hi(D_800E86C4) # $s6, 0x800f
/* 0A17CC 800A0BCC 0080B825 */ move $s7, $a0
/* 0A17D0 800A0BD0 26D686C4 */ addiu $s6, %lo(D_800E86C4) # addiu $s6, $s6, -0x793c
/* 0A17D4 800A0BD4 2413000A */ li $s3, 10
/* 0A17D8 800A0BD8 0000A825 */ move $s5, $zero
/* 0A17DC 800A0BDC 241E0009 */ li $fp, 9
/* 0A17E0 800A0BE0 AC780004 */ sw $t8, 4($v1)
/* 0A17E4 800A0BE4 AC6F0000 */ sw $t7, ($v1)
.L800A0BE8:
/* 0A17E8 800A0BE8 82C20000 */ lb $v0, ($s6)
/* 0A17EC 800A0BEC 00158880 */ sll $s1, $s5, 2
/* 0A17F0 800A0BF0 02358821 */ addu $s1, $s1, $s5
/* 0A17F4 800A0BF4 10400068 */ beqz $v0, .L800A0D98
/* 0A17F8 800A0BF8 00408025 */ move $s0, $v0
/* 0A17FC 800A0BFC 8EF90010 */ lw $t9, 0x10($s7)
/* 0A1800 800A0C00 00118840 */ sll $s1, $s1, 1
/* 0A1804 800A0C04 2841000A */ slti $at, $v0, 0xa
/* 0A1808 800A0C08 03313021 */ addu $a2, $t9, $s1
/* 0A180C 800A0C0C 10200008 */ beqz $at, .L800A0C30
/* 0A1810 800A0C10 24C60001 */ addiu $a2, $a2, 1
/* 0A1814 800A0C14 26040010 */ addiu $a0, $s0, 0x10
/* 0A1818 800A0C18 308800FF */ andi $t0, $a0, 0xff
/* 0A181C 800A0C1C 01002025 */ move $a0, $t0
/* 0A1820 800A0C20 0C028236 */ jal func_800A08D8
/* 0A1824 800A0C24 24050032 */ li $a1, 50
/* 0A1828 800A0C28 10000018 */ b .L800A0C8C
/* 0A182C 800A0C2C 82C20000 */ lb $v0, ($s6)
.L800A0C30:
/* 0A1830 800A0C30 0213001A */ div $zero, $s0, $s3
/* 0A1834 800A0C34 16600002 */ bnez $s3, .L800A0C40
/* 0A1838 800A0C38 00000000 */ nop
/* 0A183C 800A0C3C 0007000D */ break 7
.L800A0C40:
/* 0A1840 800A0C40 2401FFFF */ li $at, -1
/* 0A1844 800A0C44 16610004 */ bne $s3, $at, .L800A0C58
/* 0A1848 800A0C48 3C018000 */ lui $at, 0x8000
/* 0A184C 800A0C4C 16010002 */ bne $s0, $at, .L800A0C58
/* 0A1850 800A0C50 00000000 */ nop
/* 0A1854 800A0C54 0006000D */ break 6
.L800A0C58:
/* 0A1858 800A0C58 00008010 */ mfhi $s0
/* 0A185C 800A0C5C 26040010 */ addiu $a0, $s0, 0x10
/* 0A1860 800A0C60 308900FF */ andi $t1, $a0, 0xff
/* 0A1864 800A0C64 01202025 */ move $a0, $t1
/* 0A1868 800A0C68 0C028236 */ jal func_800A08D8
/* 0A186C 800A0C6C 24050035 */ li $a1, 53
/* 0A1870 800A0C70 8EEA0010 */ lw $t2, 0x10($s7)
/* 0A1874 800A0C74 24040011 */ li $a0, 17
/* 0A1878 800A0C78 2405002F */ li $a1, 47
/* 0A187C 800A0C7C 01513021 */ addu $a2, $t2, $s1
/* 0A1880 800A0C80 0C028236 */ jal func_800A08D8
/* 0A1884 800A0C84 24C60001 */ addiu $a2, $a2, 1
/* 0A1888 800A0C88 82C20000 */ lb $v0, ($s6)
.L800A0C8C:
/* 0A188C 800A0C8C 3C0D8019 */ lui $t5, %hi(pfsState+0x1FC) # 0x8019
/* 0A1890 800A0C90 8EEB0010 */ lw $t3, 0x10($s7)
/* 0A1894 800A0C94 00026080 */ sll $t4, $v0, 2
/* 0A1898 800A0C98 01AC6821 */ addu $t5, $t5, $t4
/* 0A189C 800A0C9C 8DADEB34 */ lw $t5, %lo(pfsState+0x1FC)($t5) # -0x14cc($t5)
/* 0A18A0 800A0CA0 01719021 */ addu $s2, $t3, $s1
/* 0A18A4 800A0CA4 26520001 */ addiu $s2, $s2, 1
/* 0A18A8 800A0CA8 15A0003B */ bnez $t5, .L800A0D98
/* 0A18AC 800A0CAC 2406004F */ li $a2, 79
/* 0A18B0 800A0CB0 00027140 */ sll $t6, $v0, 5
/* 0A18B4 800A0CB4 3C188019 */ lui $t8, %hi(pfsState) # $t8, 0x8019
/* 0A18B8 800A0CB8 2718E938 */ addiu $t8, %lo(pfsState) # addiu $t8, $t8, -0x16c8
/* 0A18BC 800A0CBC 25CFFFE0 */ addiu $t7, $t6, -0x20
/* 0A18C0 800A0CC0 01F8A021 */ addu $s4, $t7, $t8
/* 0A18C4 800A0CC4 2684000E */ addiu $a0, $s4, 0xe
/* 0A18C8 800A0CC8 24050010 */ li $a1, 16
/* 0A18CC 800A0CCC 0C028257 */ jal func_800A095C
/* 0A18D0 800A0CD0 02403825 */ move $a3, $s2
/* 0A18D4 800A0CD4 8299000A */ lb $t9, 0xa($s4)
/* 0A18D8 800A0CD8 00408025 */ move $s0, $v0
/* 0A18DC 800A0CDC 001088C0 */ sll $s1, $s0, 3
/* 0A18E0 800A0CE0 5320000A */ beql $t9, $zero, .L800A0D0C
/* 0A18E4 800A0CE4 8E900000 */ lw $s0, ($s4)
/* 0A18E8 800A0CE8 2404003C */ li $a0, 60
/* 0A18EC 800A0CEC 2625004F */ addiu $a1, $s1, 0x4f
/* 0A18F0 800A0CF0 0C028236 */ jal func_800A08D8
/* 0A18F4 800A0CF4 02403025 */ move $a2, $s2
/* 0A18F8 800A0CF8 9284000A */ lbu $a0, 0xa($s4)
/* 0A18FC 800A0CFC 26250057 */ addiu $a1, $s1, 0x57
/* 0A1900 800A0D00 0C028236 */ jal func_800A08D8
/* 0A1904 800A0D04 02403025 */ move $a2, $s2
/* 0A1908 800A0D08 8E900000 */ lw $s0, ($s4)
.L800A0D0C:
/* 0A190C 800A0D0C 24110010 */ li $s1, 16
/* 0A1910 800A0D10 261000FF */ addiu $s0, $s0, 0xff
/* 0A1914 800A0D14 00104202 */ srl $t0, $s0, 8
/* 0A1918 800A0D18 01008025 */ move $s0, $t0
.L800A0D1C:
/* 0A191C 800A0D1C 0213001A */ div $zero, $s0, $s3
/* 0A1920 800A0D20 00002010 */ mfhi $a0
/* 0A1924 800A0D24 24840010 */ addiu $a0, $a0, 0x10
/* 0A1928 800A0D28 308900FF */ andi $t1, $a0, 0xff
/* 0A192C 800A0D2C 16600002 */ bnez $s3, .L800A0D38
/* 0A1930 800A0D30 00000000 */ nop
/* 0A1934 800A0D34 0007000D */ break 7
.L800A0D38:
/* 0A1938 800A0D38 2401FFFF */ li $at, -1
/* 0A193C 800A0D3C 16610004 */ bne $s3, $at, .L800A0D50
/* 0A1940 800A0D40 3C018000 */ lui $at, 0x8000
/* 0A1944 800A0D44 16010002 */ bne $s0, $at, .L800A0D50
/* 0A1948 800A0D48 00000000 */ nop
/* 0A194C 800A0D4C 0006000D */ break 6
.L800A0D50:
/* 0A1950 800A0D50 01202025 */ move $a0, $t1
/* 0A1954 800A0D54 262500FD */ addiu $a1, $s1, 0xfd
/* 0A1958 800A0D58 0C028236 */ jal func_800A08D8
/* 0A195C 800A0D5C 02403025 */ move $a2, $s2
/* 0A1960 800A0D60 0213001A */ div $zero, $s0, $s3
/* 0A1964 800A0D64 16600002 */ bnez $s3, .L800A0D70
/* 0A1968 800A0D68 00000000 */ nop
/* 0A196C 800A0D6C 0007000D */ break 7
.L800A0D70:
/* 0A1970 800A0D70 2401FFFF */ li $at, -1
/* 0A1974 800A0D74 16610004 */ bne $s3, $at, .L800A0D88
/* 0A1978 800A0D78 3C018000 */ lui $at, 0x8000
/* 0A197C 800A0D7C 16010002 */ bne $s0, $at, .L800A0D88
/* 0A1980 800A0D80 00000000 */ nop
/* 0A1984 800A0D84 0006000D */ break 6
.L800A0D88:
/* 0A1988 800A0D88 00008012 */ mflo $s0
/* 0A198C 800A0D8C 2631FFF8 */ addiu $s1, $s1, -8
/* 0A1990 800A0D90 1600FFE2 */ bnez $s0, .L800A0D1C
/* 0A1994 800A0D94 00000000 */ nop
.L800A0D98:
/* 0A1998 800A0D98 26B50001 */ addiu $s5, $s5, 1
/* 0A199C 800A0D9C 16BEFF92 */ bne $s5, $fp, .L800A0BE8
/* 0A19A0 800A0DA0 26D60001 */ addiu $s6, $s6, 1
/* 0A19A4 800A0DA4 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 0A19A8 800A0DA8 8C630298 */ lw $v1, %lo(gDisplayListHead)($v1)
/* 0A19AC 800A0DAC 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 0A19B0 800A0DB0 3C0C004F */ lui $t4, (0x004FC3BC >> 16) # lui $t4, 0x4f
/* 0A19B4 800A0DB4 246A0008 */ addiu $t2, $v1, 8
/* 0A19B8 800A0DB8 AC2A0298 */ sw $t2, %lo(gDisplayListHead)($at)
/* 0A19BC 800A0DBC 358CC3BC */ ori $t4, (0x004FC3BC & 0xFFFF) # ori $t4, $t4, 0xc3bc
/* 0A19C0 800A0DC0 3C0BED00 */ lui $t3, 0xed00
/* 0A19C4 800A0DC4 AC6B0000 */ sw $t3, ($v1)
/* 0A19C8 800A0DC8 AC6C0004 */ sw $t4, 4($v1)
/* 0A19CC 800A0DCC 8FBF003C */ lw $ra, 0x3c($sp)
/* 0A19D0 800A0DD0 8FBE0038 */ lw $fp, 0x38($sp)
/* 0A19D4 800A0DD4 8FB70034 */ lw $s7, 0x34($sp)
/* 0A19D8 800A0DD8 8FB60030 */ lw $s6, 0x30($sp)
/* 0A19DC 800A0DDC 8FB5002C */ lw $s5, 0x2c($sp)
/* 0A19E0 800A0DE0 8FB40028 */ lw $s4, 0x28($sp)
/* 0A19E4 800A0DE4 8FB30024 */ lw $s3, 0x24($sp)
/* 0A19E8 800A0DE8 8FB20020 */ lw $s2, 0x20($sp)
/* 0A19EC 800A0DEC 8FB1001C */ lw $s1, 0x1c($sp)
/* 0A19F0 800A0DF0 8FB00018 */ lw $s0, 0x18($sp)
/* 0A19F4 800A0DF4 03E00008 */ jr $ra
/* 0A19F8 800A0DF8 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -1,154 +0,0 @@
glabel func_800A54EC
/* 0A60EC 800A54EC 3C0B800E */ lui $t3, %hi(gIsGamePaused) # $t3, 0x800e
/* 0A60F0 800A54F0 256BC5FC */ addiu $t3, %lo(gIsGamePaused) # addiu $t3, $t3, -0x3a04
/* 0A60F4 800A54F4 956E0000 */ lhu $t6, ($t3)
/* 0A60F8 800A54F8 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 0A60FC 800A54FC AFBF0024 */ sw $ra, 0x24($sp)
/* 0A6100 800A5500 11C00089 */ beqz $t6, .L800A5728
/* 0A6104 800A5504 3C0A800E */ lui $t2, %hi(gModeSelection) # $t2, 0x800e
/* 0A6108 800A5508 8D4AC53C */ lw $t2, %lo(gModeSelection)($t2)
/* 0A610C 800A550C 240400C7 */ li $a0, 199
/* 0A6110 800A5510 0C02ABCC */ jal find_8018D9E0_entry
/* 0A6114 800A5514 AFAA0040 */ sw $t2, 0x40($sp)
/* 0A6118 800A5518 3C088015 */ lui $t0, %hi(gDisplayListHead) # $t0, 0x8015
/* 0A611C 800A551C 25080298 */ addiu $t0, %lo(gDisplayListHead) # addiu $t0, $t0, 0x298
/* 0A6120 800A5520 8D030000 */ lw $v1, ($t0)
/* 0A6124 800A5524 3C19802C */ lui $t9, %hi(D_802B8880) # $t9, 0x802c
/* 0A6128 800A5528 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 0A612C 800A552C 246F0008 */ addiu $t7, $v1, 8
/* 0A6130 800A5530 8FAA0040 */ lw $t2, 0x40($sp)
/* 0A6134 800A5534 AFA20048 */ sw $v0, 0x48($sp)
/* 0A6138 800A5538 AD0F0000 */ sw $t7, ($t0)
/* 0A613C 800A553C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0A6140 800A5540 27398880 */ addiu $t9, %lo(D_802B8880) # addiu $t9, $t9, -0x7780
/* 0A6144 800A5544 3C180380 */ lui $t8, (0x03800010 >> 16) # lui $t8, 0x380
/* 0A6148 800A5548 3C098016 */ lui $t1, %hi(gMatrixEffectCount) # $t1, 0x8016
/* 0A614C 800A554C 37180010 */ ori $t8, (0x03800010 & 0xFFFF) # ori $t8, $t8, 0x10
/* 0A6150 800A5550 03216024 */ and $t4, $t9, $at
/* 0A6154 800A5554 25294AF0 */ addiu $t1, %lo(gMatrixEffectCount) # addiu $t1, $t1, 0x4af0
/* 0A6158 800A5558 AC6C0004 */ sw $t4, 4($v1)
/* 0A615C 800A555C AC780000 */ sw $t8, ($v1)
/* 0A6160 800A5560 852E0000 */ lh $t6, ($t1)
/* 0A6164 800A5564 3C0D8015 */ lui $t5, %hi(gGfxPool) # $t5, 0x8015
/* 0A6168 800A5568 8DADEF40 */ lw $t5, %lo(gGfxPool)($t5)
/* 0A616C 800A556C 000E7980 */ sll $t7, $t6, 6
/* 0A6170 800A5570 3401FAC0 */ li $at, 64192
/* 0A6174 800A5574 01AF2021 */ addu $a0, $t5, $t7
/* 0A6178 800A5578 00812021 */ addu $a0, $a0, $at
/* 0A617C 800A557C 3C01C2C8 */ li $at, 0xC2C80000 # -100.000000
/* 0A6180 800A5580 44812000 */ mtc1 $at, $f4
/* 0A6184 800A5584 3C0142C8 */ li $at, 0x42C80000 # 100.000000
/* 0A6188 800A5588 44800000 */ mtc1 $zero, $f0
/* 0A618C 800A558C 44813000 */ mtc1 $at, $f6
/* 0A6190 800A5590 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A6194 800A5594 44814000 */ mtc1 $at, $f8
/* 0A6198 800A5598 3C06439F */ lui $a2, (0x439F8000 >> 16) # lui $a2, 0x439f
/* 0A619C 800A559C 44050000 */ mfc1 $a1, $f0
/* 0A61A0 800A55A0 34C68000 */ ori $a2, (0x439F8000 & 0xFFFF) # ori $a2, $a2, 0x8000
/* 0A61A4 800A55A4 3C07436F */ lui $a3, 0x436f
/* 0A61A8 800A55A8 AFAA0040 */ sw $t2, 0x40($sp)
/* 0A61AC 800A55AC E7A40014 */ swc1 $f4, 0x14($sp)
/* 0A61B0 800A55B0 E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A61B4 800A55B4 E7A60018 */ swc1 $f6, 0x18($sp)
/* 0A61B8 800A55B8 0C0338A9 */ jal guOrtho
/* 0A61BC 800A55BC E7A8001C */ swc1 $f8, 0x1c($sp)
/* 0A61C0 800A55C0 3C088015 */ lui $t0, %hi(gDisplayListHead) # $t0, 0x8015
/* 0A61C4 800A55C4 25080298 */ addiu $t0, %lo(gDisplayListHead) # addiu $t0, $t0, 0x298
/* 0A61C8 800A55C8 8D030000 */ lw $v1, ($t0)
/* 0A61CC 800A55CC 3C190103 */ lui $t9, (0x01030040 >> 16) # lui $t9, 0x103
/* 0A61D0 800A55D0 8FAA0040 */ lw $t2, 0x40($sp)
/* 0A61D4 800A55D4 24780008 */ addiu $t8, $v1, 8
/* 0A61D8 800A55D8 8FA40048 */ lw $a0, 0x48($sp)
/* 0A61DC 800A55DC 3C098016 */ lui $t1, %hi(gMatrixEffectCount) # $t1, 0x8016
/* 0A61E0 800A55E0 AD180000 */ sw $t8, ($t0)
/* 0A61E4 800A55E4 37390040 */ ori $t9, (0x01030040 & 0xFFFF) # ori $t9, $t9, 0x40
/* 0A61E8 800A55E8 25294AF0 */ addiu $t1, %lo(gMatrixEffectCount) # addiu $t1, $t1, 0x4af0
/* 0A61EC 800A55EC AC790000 */ sw $t9, ($v1)
/* 0A61F0 800A55F0 852E0000 */ lh $t6, ($t1)
/* 0A61F4 800A55F4 3C0C8015 */ lui $t4, %hi(gGfxPool) # $t4, 0x8015
/* 0A61F8 800A55F8 8D8CEF40 */ lw $t4, %lo(gGfxPool)($t4)
/* 0A61FC 800A55FC 000E6980 */ sll $t5, $t6, 6
/* 0A6200 800A5600 3401FAC0 */ li $at, 64192
/* 0A6204 800A5604 018D7821 */ addu $t7, $t4, $t5
/* 0A6208 800A5608 01E1C021 */ addu $t8, $t7, $at
/* 0A620C 800A560C 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 0A6210 800A5610 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0A6214 800A5614 0301C824 */ and $t9, $t8, $at
/* 0A6218 800A5618 AC790004 */ sw $t9, 4($v1)
/* 0A621C 800A561C 852E0000 */ lh $t6, ($t1)
/* 0A6220 800A5620 3C0B800E */ lui $t3, %hi(gIsGamePaused) # $t3, 0x800e
/* 0A6224 800A5624 256BC5FC */ addiu $t3, %lo(gIsGamePaused) # addiu $t3, $t3, -0x3a04
/* 0A6228 800A5628 25CC0001 */ addiu $t4, $t6, 1
/* 0A622C 800A562C 11400018 */ beqz $t2, .L800A5690
/* 0A6230 800A5630 A52C0000 */ sh $t4, ($t1)
/* 0A6234 800A5634 24010001 */ li $at, 1
/* 0A6238 800A5638 11410009 */ beq $t2, $at, .L800A5660
/* 0A623C 800A563C 3C03800F */ lui $v1, %hi(D_800E8538) # 0x800f
/* 0A6240 800A5640 24010002 */ li $at, 2
/* 0A6244 800A5644 11410008 */ beq $t2, $at, .L800A5668
/* 0A6248 800A5648 3C0D800E */ lui $t5, %hi(gScreenModeSelection) # $t5, 0x800e
/* 0A624C 800A564C 24010003 */ li $at, 3
/* 0A6250 800A5650 1141001A */ beq $t2, $at, .L800A56BC
/* 0A6254 800A5654 3C0C800E */ lui $t4, %hi(gScreenModeSelection)
/* 0A6258 800A5658 10000021 */ b .L800A56E0
/* 0A625C 800A565C 8FA3004C */ lw $v1, 0x4c($sp)
.L800A5660:
/* 0A6260 800A5660 1000001F */ b .L800A56E0
/* 0A6264 800A5664 24638538 */ addiu $v1, $v1, %lo(D_800E8538) # -0x7ac8
.L800A5668:
/* 0A6268 800A5668 8DAFC530 */ lw $t7, %lo(gScreenModeSelection)($t5)
/* 0A626C 800A566C 95790000 */ lhu $t9, ($t3)
/* 0A6270 800A5670 000FC140 */ sll $t8, $t7, 5
/* 0A6274 800A5674 001970C0 */ sll $t6, $t9, 3
/* 0A6278 800A5678 030E6021 */ addu $t4, $t8, $t6
/* 0A627C 800A567C 3C0F800F */ lui $t7, %hi(D_800E8540) # $t7, 0x800f
/* 0A6280 800A5680 25EF8540 */ addiu $t7, %lo(D_800E8540) # addiu $t7, $t7, -0x7ac0
/* 0A6284 800A5684 258DFFF8 */ addiu $t5, $t4, -8
/* 0A6288 800A5688 10000015 */ b .L800A56E0
/* 0A628C 800A568C 01AF1821 */ addu $v1, $t5, $t7
.L800A5690:
/* 0A6290 800A5690 3C19800E */ lui $t9, %hi(gScreenModeSelection) # $t9, 0x800e
/* 0A6294 800A5694 8F38C530 */ lw $t8, %lo(gScreenModeSelection)($t9)
/* 0A6298 800A5698 956C0000 */ lhu $t4, ($t3)
/* 0A629C 800A569C 00187140 */ sll $t6, $t8, 5
/* 0A62A0 800A56A0 000C68C0 */ sll $t5, $t4, 3
/* 0A62A4 800A56A4 01CD7821 */ addu $t7, $t6, $t5
/* 0A62A8 800A56A8 3C18800F */ lui $t8, %hi(D_800E85C0) # $t8, 0x800f
/* 0A62AC 800A56AC 271885C0 */ addiu $t8, %lo(D_800E85C0) # addiu $t8, $t8, -0x7a40
/* 0A62B0 800A56B0 25F9FFF8 */ addiu $t9, $t7, -8
/* 0A62B4 800A56B4 1000000A */ b .L800A56E0
/* 0A62B8 800A56B8 03381821 */ addu $v1, $t9, $t8
.L800A56BC:
/* 0A62BC 800A56BC 8D8EC530 */ lw $t6, %lo(gScreenModeSelection)($t4)
/* 0A62C0 800A56C0 956F0000 */ lhu $t7, ($t3)
/* 0A62C4 800A56C4 000E6940 */ sll $t5, $t6, 5
/* 0A62C8 800A56C8 000FC8C0 */ sll $t9, $t7, 3
/* 0A62CC 800A56CC 01B9C021 */ addu $t8, $t5, $t9
/* 0A62D0 800A56D0 3C0E800F */ lui $t6, %hi(D_800E8600) # $t6, 0x800f
/* 0A62D4 800A56D4 25CE8600 */ addiu $t6, %lo(D_800E8600) # addiu $t6, $t6, -0x7a00
/* 0A62D8 800A56D8 270CFFF8 */ addiu $t4, $t8, -8
/* 0A62DC 800A56DC 018E1821 */ addu $v1, $t4, $t6
.L800A56E0:
/* 0A62E0 800A56E0 846F0000 */ lh $t7, ($v1)
/* 0A62E4 800A56E4 3C02800F */ lui $v0, %hi(D_800F0B50) # 0x800f
/* 0A62E8 800A56E8 004A1021 */ addu $v0, $v0, $t2
/* 0A62EC 800A56EC 25EDFFF8 */ addiu $t5, $t7, -8
/* 0A62F0 800A56F0 A7AD0050 */ sh $t5, 0x50($sp)
/* 0A62F4 800A56F4 80420B50 */ lb $v0, %lo(D_800F0B50)($v0) # 0xb50($v0)
/* 0A62F8 800A56F8 8C980004 */ lw $t8, 4($a0)
/* 0A62FC 800A56FC 84790002 */ lh $t9, 2($v1)
/* 0A6300 800A5700 27A50050 */ addiu $a1, $sp, 0x50
/* 0A6304 800A5704 03026023 */ subu $t4, $t8, $v0
/* 0A6308 800A5708 000C7080 */ sll $t6, $t4, 2
/* 0A630C 800A570C 01CC7023 */ subu $t6, $t6, $t4
/* 0A6310 800A5710 000E7080 */ sll $t6, $t6, 2
/* 0A6314 800A5714 01CC7021 */ addu $t6, $t6, $t4
/* 0A6318 800A5718 032E7821 */ addu $t7, $t9, $t6
/* 0A631C 800A571C 25EDFFF8 */ addiu $t5, $t7, -8
/* 0A6320 800A5720 0C0299AA */ jal func_800A66A8
/* 0A6324 800A5724 A7AD0052 */ sh $t5, 0x52($sp)
.L800A5728:
/* 0A6328 800A5728 8FBF0024 */ lw $ra, 0x24($sp)
/* 0A632C 800A572C 27BD0058 */ addiu $sp, $sp, 0x58
/* 0A6330 800A5730 03E00008 */ jr $ra
/* 0A6334 800A5734 00000000 */ nop

View File

@ -1,678 +0,0 @@
.section .rodata
glabel D_800F0C6C
.asciiz "'"
.balign 4
glabel D_800F0C70
.asciiz "\""
.balign 4
glabel D_800F0C74
.asciiz "'"
.balign 4
glabel D_800F0C78
.asciiz "\""
.balign 4
.section .late_rodata
glabel D_800F1DD8
.float 0.8
glabel jpt_800F1DDC
.word L800A5940, L800A5F90, L800A5F90, L800A5F90
.word L800A5F90, L800A5F90, L800A5F90, L800A5F90
.word L800A5F90, L800A5F90, L800A5940, L800A5940
.word L800A5940, L800A5940, L800A5940, L800A5940
.word L800A5F90, L800A5F90, L800A5F90, L800A5F90
.word L800A5BA8, L800A5BA8, L800A5BA8, L800A5BA8
.word L800A5BA8, L800A5BA8, L800A5F90, L800A5F90
.word L800A5F90, L800A5C18, L800A5C18, L800A5DA0
.word L800A5F90, L800A5F90, L800A5E00, L800A5E00
.word L800A5F90, L800A5F90, L800A5F90, L800A5ED4
.word L800A5F34
glabel D_800F1E80
.float 0.8
glabel D_800F1E84
.float 0.8
glabel D_800F1E88
.float 0.8
glabel D_800F1E8C
.float 0.8
glabel D_800F1E90
.float 0.8
glabel D_800F1E94
.float 0.8
glabel D_800F1E98
.float 0.8
glabel jpt_800F1E9C
.word L800A5FB4, L800A5FB4, L800A5FB4, L800A5FB4
.word L800A5FB4, L800A5FB4, L800A6014, L800A6014
.word L800A6014, L800A6014, L800A6014, L800A6014
.word L800A6014, L800A6014, L800A6014, L800A6014
.word L800A6014, L800A6014, L800A6014, L800A5FCC
.word L800A5FCC, L800A6014, L800A6014, L800A6014
.word L800A5FE4, L800A5FE4
.section .text
glabel func_800A5738
/* 0A6338 800A5738 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 0A633C 800A573C AFBF0044 */ sw $ra, 0x44($sp)
/* 0A6340 800A5740 AFB30040 */ sw $s3, 0x40($sp)
/* 0A6344 800A5744 AFB2003C */ sw $s2, 0x3c($sp)
/* 0A6348 800A5748 AFB10038 */ sw $s1, 0x38($sp)
/* 0A634C 800A574C AFB00034 */ sw $s0, 0x34($sp)
/* 0A6350 800A5750 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 0A6354 800A5754 8C830004 */ lw $v1, 4($a0)
/* 0A6358 800A5758 00809825 */ move $s3, $a0
/* 0A635C 800A575C 24010001 */ li $at, 1
/* 0A6360 800A5760 14600037 */ bnez $v1, .L800A5840
/* 0A6364 800A5764 3C108015 */ lui $s0, %hi(gDisplayListHead) # 0x8015
/* 0A6368 800A5768 8C8E001C */ lw $t6, 0x1c($a0)
/* 0A636C 800A576C 3C0F800E */ lui $t7, %hi(gGlobalTimer) # $t7, 0x800e
/* 0A6370 800A5770 29C1001E */ slti $at, $t6, 0x1e
/* 0A6374 800A5774 54200228 */ bnel $at, $zero, .L800A6018
/* 0A6378 800A5778 8FBF0044 */ lw $ra, 0x44($sp)
/* 0A637C 800A577C 8DEFC54C */ lw $t7, %lo(gGlobalTimer)($t7)
/* 0A6380 800A5780 3C11800E */ lui $s1, %hi(gTextPauseButton) # $s1, 0x800e
/* 0A6384 800A5784 2631775C */ addiu $s1, %lo(gTextPauseButton) # addiu $s1, $s1, 0x775c
/* 0A6388 800A5788 05E10003 */ bgez $t7, .L800A5798
/* 0A638C 800A578C 000FC103 */ sra $t8, $t7, 4
/* 0A6390 800A5790 25E1000F */ addiu $at, $t7, 0xf
/* 0A6394 800A5794 0001C103 */ sra $t8, $at, 4
.L800A5798:
/* 0A6398 800A5798 07010004 */ bgez $t8, .L800A57AC
/* 0A639C 800A579C 33190001 */ andi $t9, $t8, 1
/* 0A63A0 800A57A0 13200002 */ beqz $t9, .L800A57AC
/* 0A63A4 800A57A4 00000000 */ nop
/* 0A63A8 800A57A8 2739FFFE */ addiu $t9, $t9, -2
.L800A57AC:
/* 0A63AC 800A57AC 5320021A */ beql $t9, $zero, .L800A6018
/* 0A63B0 800A57B0 8FBF0044 */ lw $ra, 0x44($sp)
/* 0A63B4 800A57B4 0C024C0D */ jal get_string_width
/* 0A63B8 800A57B8 8E240014 */ lw $a0, 0x14($s1)
/* 0A63BC 800A57BC 44822000 */ mtc1 $v0, $f4
/* 0A63C0 800A57C0 3C01800F */ lui $at, %hi(D_800F1DD8) # $at, 0x800f
/* 0A63C4 800A57C4 C4341DD8 */ lwc1 $f20, %lo(D_800F1DD8)($at)
/* 0A63C8 800A57C8 468021A0 */ cvt.s.w $f6, $f4
/* 0A63CC 800A57CC 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015
/* 0A63D0 800A57D0 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298
/* 0A63D4 800A57D4 24090032 */ li $t1, 50
/* 0A63D8 800A57D8 240A0096 */ li $t2, 150
/* 0A63DC 800A57DC AFAA0020 */ sw $t2, 0x20($sp)
/* 0A63E0 800A57E0 46143202 */ mul.s $f8, $f6, $f20
/* 0A63E4 800A57E4 AFA90010 */ sw $t1, 0x10($sp)
/* 0A63E8 800A57E8 8E040000 */ lw $a0, ($s0)
/* 0A63EC 800A57EC 240500C0 */ li $a1, 192
/* 0A63F0 800A57F0 24060021 */ li $a2, 33
/* 0A63F4 800A57F4 AFA00014 */ sw $zero, 0x14($sp)
/* 0A63F8 800A57F8 AFA00018 */ sw $zero, 0x18($sp)
/* 0A63FC 800A57FC 4600428D */ trunc.w.s $f10, $f8
/* 0A6400 800A5800 AFA0001C */ sw $zero, 0x1c($sp)
/* 0A6404 800A5804 44075000 */ mfc1 $a3, $f10
/* 0A6408 800A5808 0C02637E */ jal draw_box
/* 0A640C 800A580C 24E700C6 */ addiu $a3, $a3, 0xc6
/* 0A6410 800A5810 AE020000 */ sw $v0, ($s0)
/* 0A6414 800A5814 0C024C36 */ jal set_text_color
/* 0A6418 800A5818 24040001 */ li $a0, 1
/* 0A641C 800A581C 240400BF */ li $a0, 191
/* 0A6420 800A5820 24050030 */ li $a1, 48
/* 0A6424 800A5824 8E260014 */ lw $a2, 0x14($s1)
/* 0A6428 800A5828 00003825 */ move $a3, $zero
/* 0A642C 800A582C E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6430 800A5830 0C024CC9 */ jal func_80093324
/* 0A6434 800A5834 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6438 800A5838 100001F7 */ b .L800A6018
/* 0A643C 800A583C 8FBF0044 */ lw $ra, 0x44($sp)
.L800A5840:
/* 0A6440 800A5840 14610009 */ bne $v1, $at, .L800A5868
/* 0A6444 800A5844 26100298 */ addiu $s0, $s0, %lo(gDisplayListHead) # 0x298
/* 0A6448 800A5848 8E71001C */ lw $s1, 0x1c($s3)
/* 0A644C 800A584C 2401008C */ li $at, 140
/* 0A6450 800A5850 00119200 */ sll $s2, $s1, 8
/* 0A6454 800A5854 02519023 */ subu $s2, $s2, $s1
/* 0A6458 800A5858 0241001A */ div $zero, $s2, $at
/* 0A645C 800A585C 00009012 */ mflo $s2
/* 0A6460 800A5860 10000004 */ b .L800A5874
/* 0A6464 800A5864 240C00EF */ li $t4, 239
.L800A5868:
/* 0A6468 800A5868 2411008C */ li $s1, 140
/* 0A646C 800A586C 241200FF */ li $s2, 255
/* 0A6470 800A5870 240C00EF */ li $t4, 239
.L800A5874:
/* 0A6474 800A5874 AFAC0010 */ sw $t4, 0x10($sp)
/* 0A6478 800A5878 8E040000 */ lw $a0, ($s0)
/* 0A647C 800A587C 00002825 */ move $a1, $zero
/* 0A6480 800A5880 00003025 */ move $a2, $zero
/* 0A6484 800A5884 2407013F */ li $a3, 319
/* 0A6488 800A5888 AFA00014 */ sw $zero, 0x14($sp)
/* 0A648C 800A588C AFA00018 */ sw $zero, 0x18($sp)
/* 0A6490 800A5890 AFA0001C */ sw $zero, 0x1c($sp)
/* 0A6494 800A5894 0C02637E */ jal draw_box
/* 0A6498 800A5898 AFB10020 */ sw $s1, 0x20($sp)
/* 0A649C 800A589C AE020000 */ sw $v0, ($s0)
/* 0A64A0 800A58A0 244D0008 */ addiu $t5, $v0, 8
/* 0A64A4 800A58A4 AE0D0000 */ sw $t5, ($s0)
/* 0A64A8 800A58A8 3C0EFA00 */ lui $t6, 0xfa00
/* 0A64AC 800A58AC 324F00FF */ andi $t7, $s2, 0xff
/* 0A64B0 800A58B0 AC4F0004 */ sw $t7, 4($v0)
/* 0A64B4 800A58B4 AC4E0000 */ sw $t6, ($v0)
/* 0A64B8 800A58B8 0C024C36 */ jal set_text_color
/* 0A64BC 800A58BC 24040003 */ li $a0, 3
/* 0A64C0 800A58C0 3C188019 */ lui $t8, %hi(gCupSelection) # $t8, 0x8019
/* 0A64C4 800A58C4 3C088019 */ lui $t0, %hi(gCupCourseSelection) # $t0, 0x8019
/* 0A64C8 800A58C8 8108EE0B */ lb $t0, %lo(gCupCourseSelection)($t0)
/* 0A64CC 800A58CC 8318EE09 */ lb $t8, %lo(gCupSelection)($t8)
/* 0A64D0 800A58D0 3C0B800F */ lui $t3, %hi(gCupCourseOrder)
/* 0A64D4 800A58D4 00084840 */ sll $t1, $t0, 1
/* 0A64D8 800A58D8 0018C8C0 */ sll $t9, $t8, 3
/* 0A64DC 800A58DC 03295021 */ addu $t2, $t9, $t1
/* 0A64E0 800A58E0 016A5821 */ addu $t3, $t3, $t2
/* 0A64E4 800A58E4 856B2BB4 */ lh $t3, %lo(gCupCourseOrder)($t3)
/* 0A64E8 800A58E8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A64EC 800A58EC 44810000 */ mtc1 $at, $f0
/* 0A64F0 800A58F0 3C06800E */ lui $a2, %hi(D_800E7574)
/* 0A64F4 800A58F4 000B6080 */ sll $t4, $t3, 2
/* 0A64F8 800A58F8 00CC3021 */ addu $a2, $a2, $t4
/* 0A64FC 800A58FC 8CC67574 */ lw $a2, %lo(D_800E7574)($a2)
/* 0A6500 800A5900 240400A0 */ li $a0, 160
/* 0A6504 800A5904 24050050 */ li $a1, 80
/* 0A6508 800A5908 00003825 */ move $a3, $zero
/* 0A650C 800A590C E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A6510 800A5910 0C024DD5 */ jal func_80093754
/* 0A6514 800A5914 E7A00014 */ swc1 $f0, 0x14($sp)
/* 0A6518 800A5918 8E630004 */ lw $v1, 4($s3)
/* 0A651C 800A591C 246DFFFF */ addiu $t5, $v1, -1
/* 0A6520 800A5920 2DA10029 */ sltiu $at, $t5, 0x29
/* 0A6524 800A5924 1020019A */ beqz $at, .L800A5F90
/* 0A6528 800A5928 000D6880 */ sll $t5, $t5, 2
/* 0A652C 800A592C 3C01800F */ lui $at, %hi(jpt_800F1DDC)
/* 0A6530 800A5930 002D0821 */ addu $at, $at, $t5
/* 0A6534 800A5934 8C2D1DDC */ lw $t5, %lo(jpt_800F1DDC)($at)
/* 0A6538 800A5938 01A00008 */ jr $t5
/* 0A653C 800A593C 00000000 */ nop
glabel L800A5940
/* 0A6540 800A5940 0C024C36 */ jal set_text_color
/* 0A6544 800A5944 24040002 */ li $a0, 2
/* 0A6548 800A5948 3C01800F */ lui $at, %hi(D_800F1E80) # $at, 0x800f
/* 0A654C 800A594C C4341E80 */ lwc1 $f20, %lo(D_800F1E80)($at)
/* 0A6550 800A5950 3C12800E */ lui $s2, %hi(D_800E7728) # $s2, 0x800e
/* 0A6554 800A5954 26527728 */ addiu $s2, %lo(D_800E7728) # addiu $s2, $s2, 0x7728
/* 0A6558 800A5958 8E460000 */ lw $a2, ($s2)
/* 0A655C 800A595C 2404009D */ li $a0, 157
/* 0A6560 800A5960 24050060 */ li $a1, 96
/* 0A6564 800A5964 00003825 */ move $a3, $zero
/* 0A6568 800A5968 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A656C 800A596C 0C024DD5 */ jal func_80093754
/* 0A6570 800A5970 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6574 800A5974 0C02D389 */ jal func_800B4E24
/* 0A6578 800A5978 00002025 */ move $a0, $zero
/* 0A657C 800A597C 3C01000F */ lui $at, (0x000FFFFF >> 16) # lui $at, 0xf
/* 0A6580 800A5980 3421FFFF */ ori $at, (0x000FFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0A6584 800A5984 27B00084 */ addiu $s0, $sp, 0x84
/* 0A6588 800A5988 00412024 */ and $a0, $v0, $at
/* 0A658C 800A598C 00808825 */ move $s1, $a0
/* 0A6590 800A5990 0C029E3D */ jal get_time_record_minutes
/* 0A6594 800A5994 02002825 */ move $a1, $s0
/* 0A6598 800A5998 2404007F */ li $a0, 127
/* 0A659C 800A599C 2405006D */ li $a1, 109
/* 0A65A0 800A59A0 02003025 */ move $a2, $s0
/* 0A65A4 800A59A4 00003825 */ move $a3, $zero
/* 0A65A8 800A59A8 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A65AC 800A59AC 0C024E7F */ jal text_draw
/* 0A65B0 800A59B0 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A65B4 800A59B4 3C06800F */ lui $a2, %hi(D_800F0C6C) # $a2, 0x800f
/* 0A65B8 800A59B8 24C60C6C */ addiu $a2, %lo(D_800F0C6C) # addiu $a2, $a2, 0xc6c
/* 0A65BC 800A59BC 2404008E */ li $a0, 142
/* 0A65C0 800A59C0 2405006D */ li $a1, 109
/* 0A65C4 800A59C4 00003825 */ move $a3, $zero
/* 0A65C8 800A59C8 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A65CC 800A59CC 0C024CD6 */ jal func_80093358
/* 0A65D0 800A59D0 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A65D4 800A59D4 02202025 */ move $a0, $s1
/* 0A65D8 800A59D8 0C029E51 */ jal get_time_record_seconds
/* 0A65DC 800A59DC 02002825 */ move $a1, $s0
/* 0A65E0 800A59E0 24040098 */ li $a0, 152
/* 0A65E4 800A59E4 2405006D */ li $a1, 109
/* 0A65E8 800A59E8 02003025 */ move $a2, $s0
/* 0A65EC 800A59EC 00003825 */ move $a3, $zero
/* 0A65F0 800A59F0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A65F4 800A59F4 0C024E7F */ jal text_draw
/* 0A65F8 800A59F8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A65FC 800A59FC 3C06800F */ lui $a2, %hi(D_800F0C70) # $a2, 0x800f
/* 0A6600 800A5A00 24C60C70 */ addiu $a2, %lo(D_800F0C70) # addiu $a2, $a2, 0xc70
/* 0A6604 800A5A04 240400A7 */ li $a0, 167
/* 0A6608 800A5A08 2405006D */ li $a1, 109
/* 0A660C 800A5A0C 00003825 */ move $a3, $zero
/* 0A6610 800A5A10 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6614 800A5A14 0C024CD6 */ jal func_80093358
/* 0A6618 800A5A18 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A661C 800A5A1C 02202025 */ move $a0, $s1
/* 0A6620 800A5A20 0C029E69 */ jal get_time_record_centiseconds
/* 0A6624 800A5A24 02002825 */ move $a1, $s0
/* 0A6628 800A5A28 240400B3 */ li $a0, 179
/* 0A662C 800A5A2C 2405006D */ li $a1, 109
/* 0A6630 800A5A30 02003025 */ move $a2, $s0
/* 0A6634 800A5A34 00003825 */ move $a3, $zero
/* 0A6638 800A5A38 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A663C 800A5A3C 0C024E7F */ jal text_draw
/* 0A6640 800A5A40 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6644 800A5A44 2404009D */ li $a0, 157
/* 0A6648 800A5A48 2405007C */ li $a1, 124
/* 0A664C 800A5A4C 8E460004 */ lw $a2, 4($s2)
/* 0A6650 800A5A50 00003825 */ move $a3, $zero
/* 0A6654 800A5A54 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6658 800A5A58 0C024DD5 */ jal func_80093754
/* 0A665C 800A5A5C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6660 800A5A60 0C02D3CB */ jal func_800B4F2C
/* 0A6664 800A5A64 00000000 */ nop
/* 0A6668 800A5A68 3C01000F */ lui $at, (0x000FFFFF >> 16) # lui $at, 0xf
/* 0A666C 800A5A6C 3421FFFF */ ori $at, (0x000FFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0A6670 800A5A70 00412024 */ and $a0, $v0, $at
/* 0A6674 800A5A74 00808825 */ move $s1, $a0
/* 0A6678 800A5A78 0C029E3D */ jal get_time_record_minutes
/* 0A667C 800A5A7C 02002825 */ move $a1, $s0
/* 0A6680 800A5A80 2404007F */ li $a0, 127
/* 0A6684 800A5A84 24050089 */ li $a1, 137
/* 0A6688 800A5A88 02003025 */ move $a2, $s0
/* 0A668C 800A5A8C 00003825 */ move $a3, $zero
/* 0A6690 800A5A90 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6694 800A5A94 0C024E7F */ jal text_draw
/* 0A6698 800A5A98 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A669C 800A5A9C 3C06800F */ lui $a2, %hi(D_800F0C74) # $a2, 0x800f
/* 0A66A0 800A5AA0 24C60C74 */ addiu $a2, %lo(D_800F0C74) # addiu $a2, $a2, 0xc74
/* 0A66A4 800A5AA4 2404008E */ li $a0, 142
/* 0A66A8 800A5AA8 24050089 */ li $a1, 137
/* 0A66AC 800A5AAC 00003825 */ move $a3, $zero
/* 0A66B0 800A5AB0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A66B4 800A5AB4 0C024CD6 */ jal func_80093358
/* 0A66B8 800A5AB8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A66BC 800A5ABC 02202025 */ move $a0, $s1
/* 0A66C0 800A5AC0 0C029E51 */ jal get_time_record_seconds
/* 0A66C4 800A5AC4 02002825 */ move $a1, $s0
/* 0A66C8 800A5AC8 24040098 */ li $a0, 152
/* 0A66CC 800A5ACC 24050089 */ li $a1, 137
/* 0A66D0 800A5AD0 02003025 */ move $a2, $s0
/* 0A66D4 800A5AD4 00003825 */ move $a3, $zero
/* 0A66D8 800A5AD8 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A66DC 800A5ADC 0C024E7F */ jal text_draw
/* 0A66E0 800A5AE0 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A66E4 800A5AE4 3C06800F */ lui $a2, %hi(D_800F0C78) # $a2, 0x800f
/* 0A66E8 800A5AE8 24C60C78 */ addiu $a2, %lo(D_800F0C78) # addiu $a2, $a2, 0xc78
/* 0A66EC 800A5AEC 240400A7 */ li $a0, 167
/* 0A66F0 800A5AF0 24050089 */ li $a1, 137
/* 0A66F4 800A5AF4 00003825 */ move $a3, $zero
/* 0A66F8 800A5AF8 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A66FC 800A5AFC 0C024CD6 */ jal func_80093358
/* 0A6700 800A5B00 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6704 800A5B04 02202025 */ move $a0, $s1
/* 0A6708 800A5B08 0C029E69 */ jal get_time_record_centiseconds
/* 0A670C 800A5B0C 02002825 */ move $a1, $s0
/* 0A6710 800A5B10 240400B3 */ li $a0, 179
/* 0A6714 800A5B14 24050089 */ li $a1, 137
/* 0A6718 800A5B18 02003025 */ move $a2, $s0
/* 0A671C 800A5B1C 00003825 */ move $a3, $zero
/* 0A6720 800A5B20 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6724 800A5B24 0C024E7F */ jal text_draw
/* 0A6728 800A5B28 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A672C 800A5B2C 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A6730 800A5B30 3C02800E */ lui $v0, %hi(gTextPauseButton) # $v0, 0x800e
/* 0A6734 800A5B34 4481A000 */ mtc1 $at, $f20
/* 0A6738 800A5B38 2442775C */ addiu $v0, %lo(gTextPauseButton) # addiu $v0, $v0, 0x775c
/* 0A673C 800A5B3C 00008825 */ move $s1, $zero
/* 0A6740 800A5B40 00008025 */ move $s0, $zero
/* 0A6744 800A5B44 24120006 */ li $s2, 6
.L800A5B48:
/* 0A6748 800A5B48 8E640004 */ lw $a0, 4($s3)
/* 0A674C 800A5B4C AFA20050 */ sw $v0, 0x50($sp)
/* 0A6750 800A5B50 02202825 */ move $a1, $s1
/* 0A6754 800A5B54 24060001 */ li $a2, 1
/* 0A6758 800A5B58 0C024870 */ jal text_rainbow_effect
/* 0A675C 800A5B5C 2484FFF5 */ addiu $a0, $a0, -0xb
/* 0A6760 800A5B60 3C0E800F */ lui $t6, %hi(D_800E8538 + 2) # $t6, 0x800f
/* 0A6764 800A5B64 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6768 800A5B68 85CE853A */ lh $t6, %lo(D_800E8538 + 2)($t6)
/* 0A676C 800A5B6C 3C04800F */ lui $a0, %hi(D_800E8538) # $a0, 0x800f
/* 0A6770 800A5B70 84848538 */ lh $a0, %lo(D_800E8538)($a0)
/* 0A6774 800A5B74 00003825 */ move $a3, $zero
/* 0A6778 800A5B78 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A677C 800A5B7C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6780 800A5B80 8C460004 */ lw $a2, 4($v0)
/* 0A6784 800A5B84 0C024CD6 */ jal func_80093358
/* 0A6788 800A5B88 01D02821 */ addu $a1, $t6, $s0
/* 0A678C 800A5B8C 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6790 800A5B90 26310001 */ addiu $s1, $s1, 1
/* 0A6794 800A5B94 2610000D */ addiu $s0, $s0, 0xd
/* 0A6798 800A5B98 1632FFEB */ bne $s1, $s2, .L800A5B48
/* 0A679C 800A5B9C 24420004 */ addiu $v0, $v0, 4
/* 0A67A0 800A5BA0 100000FB */ b .L800A5F90
/* 0A67A4 800A5BA4 8E630004 */ lw $v1, 4($s3)
glabel L800A5BA8
/* 0A67A8 800A5BA8 0C024C36 */ jal set_text_color
/* 0A67AC 800A5BAC 24040003 */ li $a0, 3
/* 0A67B0 800A5BB0 8E630004 */ lw $v1, 4($s3)
/* 0A67B4 800A5BB4 3C08800E */ lui $t0, %hi(D_800E798C) # $t0, 0x800e
/* 0A67B8 800A5BB8 2508798C */ addiu $t0, %lo(D_800E798C) # addiu $t0, $t0, 0x798c
/* 0A67BC 800A5BBC 2463FFEB */ addiu $v1, $v1, -0x15
/* 0A67C0 800A5BC0 000378C0 */ sll $t7, $v1, 3
/* 0A67C4 800A5BC4 01E37823 */ subu $t7, $t7, $v1
/* 0A67C8 800A5BC8 000FC080 */ sll $t8, $t7, 2
/* 0A67CC 800A5BCC 3C01800F */ lui $at, %hi(D_800F1E84) # $at, 0x800f
/* 0A67D0 800A5BD0 C4341E84 */ lwc1 $f20, %lo(D_800F1E84)($at)
/* 0A67D4 800A5BD4 03081021 */ addu $v0, $t8, $t0
/* 0A67D8 800A5BD8 2410006E */ li $s0, 110
/* 0A67DC 800A5BDC 241100C9 */ li $s1, 201
.L800A5BE0:
/* 0A67E0 800A5BE0 2404004D */ li $a0, 77
/* 0A67E4 800A5BE4 02002825 */ move $a1, $s0
/* 0A67E8 800A5BE8 8C460000 */ lw $a2, ($v0)
/* 0A67EC 800A5BEC 00003825 */ move $a3, $zero
/* 0A67F0 800A5BF0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A67F4 800A5BF4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A67F8 800A5BF8 0C024CC9 */ jal func_80093324
/* 0A67FC 800A5BFC AFA20050 */ sw $v0, 0x50($sp)
/* 0A6800 800A5C00 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6804 800A5C04 2610000D */ addiu $s0, $s0, 0xd
/* 0A6808 800A5C08 1611FFF5 */ bne $s0, $s1, .L800A5BE0
/* 0A680C 800A5C0C 24420004 */ addiu $v0, $v0, 4
/* 0A6810 800A5C10 100000DF */ b .L800A5F90
/* 0A6814 800A5C14 8E630004 */ lw $v1, 4($s3)
glabel L800A5C18
/* 0A6818 800A5C18 0C024C36 */ jal set_text_color
/* 0A681C 800A5C1C 24040001 */ li $a0, 1
/* 0A6820 800A5C20 3C02800E */ lui $v0, %hi(D_800E7A3C) # $v0, 0x800e
/* 0A6824 800A5C24 3C01800F */ lui $at, %hi(D_800F1E88) # $at, 0x800f
/* 0A6828 800A5C28 3C11800E */ lui $s1, %hi(D_800E7A44) # $s1, 0x800e
/* 0A682C 800A5C2C 26317A44 */ addiu $s1, %lo(D_800E7A44) # addiu $s1, $s1, 0x7a44
/* 0A6830 800A5C30 C4341E88 */ lwc1 $f20, %lo(D_800F1E88)($at)
/* 0A6834 800A5C34 24427A3C */ addiu $v0, %lo(D_800E7A3C) # addiu $v0, $v0, 0x7a3c
/* 0A6838 800A5C38 00008025 */ move $s0, $zero
/* 0A683C 800A5C3C 8E790010 */ lw $t9, 0x10($s3)
.L800A5C40:
/* 0A6840 800A5C40 AFA20050 */ sw $v0, 0x50($sp)
/* 0A6844 800A5C44 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6848 800A5C48 03302821 */ addu $a1, $t9, $s0
/* 0A684C 800A5C4C 24A5006E */ addiu $a1, $a1, 0x6e
/* 0A6850 800A5C50 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6854 800A5C54 2404005A */ li $a0, 90
/* 0A6858 800A5C58 8C460000 */ lw $a2, ($v0)
/* 0A685C 800A5C5C 0C024CC9 */ jal func_80093324
/* 0A6860 800A5C60 00003825 */ move $a3, $zero
/* 0A6864 800A5C64 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6868 800A5C68 2610000D */ addiu $s0, $s0, 0xd
/* 0A686C 800A5C6C 24420004 */ addiu $v0, $v0, 4
/* 0A6870 800A5C70 0051082B */ sltu $at, $v0, $s1
/* 0A6874 800A5C74 5420FFF2 */ bnel $at, $zero, .L800A5C40
/* 0A6878 800A5C78 8E790010 */ lw $t9, 0x10($s3)
/* 0A687C 800A5C7C 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A6880 800A5C80 3C128019 */ lui $s2, %hi(D_8018EE10) # $s2, 0x8019
/* 0A6884 800A5C84 4481A000 */ mtc1 $at, $f20
/* 0A6888 800A5C88 2652EE10 */ addiu $s2, %lo(D_8018EE10) # addiu $s2, $s2, -0x11f0
/* 0A688C 800A5C8C 00008825 */ move $s1, $zero
/* 0A6890 800A5C90 24100096 */ li $s0, 150
.L800A5C94:
/* 0A6894 800A5C94 8E640004 */ lw $a0, 4($s3)
/* 0A6898 800A5C98 02202825 */ move $a1, $s1
/* 0A689C 800A5C9C 24060001 */ li $a2, 1
/* 0A68A0 800A5CA0 0C024870 */ jal text_rainbow_effect
/* 0A68A4 800A5CA4 2484FFE2 */ addiu $a0, $a0, -0x1e
/* 0A68A8 800A5CA8 26240001 */ addiu $a0, $s1, 1
/* 0A68AC 800A5CAC AFA40054 */ sw $a0, 0x54($sp)
/* 0A68B0 800A5CB0 0C029E25 */ jal convert_number_to_ascii
/* 0A68B4 800A5CB4 27A5005C */ addiu $a1, $sp, 0x5c
/* 0A68B8 800A5CB8 8E69000C */ lw $t1, 0xc($s3)
/* 0A68BC 800A5CBC 240A005A */ li $t2, 90
/* 0A68C0 800A5CC0 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A68C4 800A5CC4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A68C8 800A5CC8 02002825 */ move $a1, $s0
/* 0A68CC 800A5CCC 27A6005D */ addiu $a2, $sp, 0x5d
/* 0A68D0 800A5CD0 00003825 */ move $a3, $zero
/* 0A68D4 800A5CD4 0C024CC9 */ jal func_80093324
/* 0A68D8 800A5CD8 01492023 */ subu $a0, $t2, $t1
/* 0A68DC 800A5CDC 924B0004 */ lbu $t3, 4($s2)
/* 0A68E0 800A5CE0 240F0069 */ li $t7, 105
/* 0A68E4 800A5CE4 02002825 */ move $a1, $s0
/* 0A68E8 800A5CE8 1560000D */ bnez $t3, .L800A5D20
/* 0A68EC 800A5CEC 3C06800E */ lui $a2, %hi(D_800E75C4)
/* 0A68F0 800A5CF0 8E6C000C */ lw $t4, 0xc($s3)
/* 0A68F4 800A5CF4 240D0069 */ li $t5, 105
/* 0A68F8 800A5CF8 3C06800E */ lui $a2, %hi(D_800E7A44) # $a2, 0x800e
/* 0A68FC 800A5CFC 8CC67A44 */ lw $a2, %lo(D_800E7A44)($a2)
/* 0A6900 800A5D00 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6904 800A5D04 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6908 800A5D08 02002825 */ move $a1, $s0
/* 0A690C 800A5D0C 00003825 */ move $a3, $zero
/* 0A6910 800A5D10 0C024CC9 */ jal func_80093324
/* 0A6914 800A5D14 01AC2023 */ subu $a0, $t5, $t4
/* 0A6918 800A5D18 1000001B */ b .L800A5D88
/* 0A691C 800A5D1C 8FB10054 */ lw $s1, 0x54($sp)
.L800A5D20:
/* 0A6920 800A5D20 82420005 */ lb $v0, 5($s2)
/* 0A6924 800A5D24 3C0B800F */ lui $t3, %hi(gCupCourseOrder)
/* 0A6928 800A5D28 8E6E000C */ lw $t6, 0xc($s3)
/* 0A692C 800A5D2C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6930 800A5D30 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6934 800A5D34 00003825 */ move $a3, $zero
/* 0A6938 800A5D38 01EE2023 */ subu $a0, $t7, $t6
/* 0A693C 800A5D3C 04410003 */ bgez $v0, .L800A5D4C
/* 0A6940 800A5D40 0002C083 */ sra $t8, $v0, 2
/* 0A6944 800A5D44 24410003 */ addiu $at, $v0, 3
/* 0A6948 800A5D48 0001C083 */ sra $t8, $at, 2
.L800A5D4C:
/* 0A694C 800A5D4C 001840C0 */ sll $t0, $t8, 3
/* 0A6950 800A5D50 04410004 */ bgez $v0, .L800A5D64
/* 0A6954 800A5D54 30590003 */ andi $t9, $v0, 3
/* 0A6958 800A5D58 13200002 */ beqz $t9, .L800A5D64
/* 0A695C 800A5D5C 00000000 */ nop
/* 0A6960 800A5D60 2739FFFC */ addiu $t9, $t9, -4
.L800A5D64:
/* 0A6964 800A5D64 00195040 */ sll $t2, $t9, 1
/* 0A6968 800A5D68 010A4821 */ addu $t1, $t0, $t2
/* 0A696C 800A5D6C 01695821 */ addu $t3, $t3, $t1
/* 0A6970 800A5D70 856B2BB4 */ lh $t3, %lo(gCupCourseOrder)($t3)
/* 0A6974 800A5D74 000B6880 */ sll $t5, $t3, 2
/* 0A6978 800A5D78 00CD3021 */ addu $a2, $a2, $t5
/* 0A697C 800A5D7C 0C024CC9 */ jal func_80093324
/* 0A6980 800A5D80 8CC675C4 */ lw $a2, %lo(D_800E75C4)($a2)
/* 0A6984 800A5D84 8FB10054 */ lw $s1, 0x54($sp)
.L800A5D88:
/* 0A6988 800A5D88 24010002 */ li $at, 2
/* 0A698C 800A5D8C 26100014 */ addiu $s0, $s0, 0x14
/* 0A6990 800A5D90 1621FFC0 */ bne $s1, $at, .L800A5C94
/* 0A6994 800A5D94 26520080 */ addiu $s2, $s2, 0x80
/* 0A6998 800A5D98 1000007D */ b .L800A5F90
/* 0A699C 800A5D9C 8E630004 */ lw $v1, 4($s3)
glabel L800A5DA0
/* 0A69A0 800A5DA0 0C024C36 */ jal set_text_color
/* 0A69A4 800A5DA4 24040003 */ li $a0, 3
/* 0A69A8 800A5DA8 3C02800E */ lui $v0, %hi(D_800E7A48) # $v0, 0x800e
/* 0A69AC 800A5DAC 3C01800F */ lui $at, %hi(D_800F1E8C) # $at, 0x800f
/* 0A69B0 800A5DB0 3C11800E */ lui $s1, %hi(D_800E7A54) # $s1, 0x800e
/* 0A69B4 800A5DB4 26317A54 */ addiu $s1, %lo(D_800E7A54) # addiu $s1, $s1, 0x7a54
/* 0A69B8 800A5DB8 C4341E8C */ lwc1 $f20, %lo(D_800F1E8C)($at)
/* 0A69BC 800A5DBC 24427A48 */ addiu $v0, %lo(D_800E7A48) # addiu $v0, $v0, 0x7a48
/* 0A69C0 800A5DC0 2410006E */ li $s0, 110
/* 0A69C4 800A5DC4 24040064 */ li $a0, 100
.L800A5DC8:
/* 0A69C8 800A5DC8 02002825 */ move $a1, $s0
/* 0A69CC 800A5DCC 8C460000 */ lw $a2, ($v0)
/* 0A69D0 800A5DD0 00003825 */ move $a3, $zero
/* 0A69D4 800A5DD4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A69D8 800A5DD8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A69DC 800A5DDC 0C024CC9 */ jal func_80093324
/* 0A69E0 800A5DE0 AFA20050 */ sw $v0, 0x50($sp)
/* 0A69E4 800A5DE4 8FA20050 */ lw $v0, 0x50($sp)
/* 0A69E8 800A5DE8 2610000D */ addiu $s0, $s0, 0xd
/* 0A69EC 800A5DEC 24420004 */ addiu $v0, $v0, 4
/* 0A69F0 800A5DF0 5451FFF5 */ bnel $v0, $s1, .L800A5DC8
/* 0A69F4 800A5DF4 24040064 */ li $a0, 100
/* 0A69F8 800A5DF8 10000065 */ b .L800A5F90
/* 0A69FC 800A5DFC 8E630004 */ lw $v1, 4($s3)
glabel L800A5E00
/* 0A6A00 800A5E00 0C024C36 */ jal set_text_color
/* 0A6A04 800A5E04 24040003 */ li $a0, 3
/* 0A6A08 800A5E08 3C02800E */ lui $v0, %hi(D_800E7A60) # $v0, 0x800e
/* 0A6A0C 800A5E0C 3C01800F */ lui $at, %hi(D_800F1E90) # $at, 0x800f
/* 0A6A10 800A5E10 3C11800E */ lui $s1, %hi(D_800E7A6C) # $s1, 0x800e
/* 0A6A14 800A5E14 26317A6C */ addiu $s1, %lo(D_800E7A6C) # addiu $s1, $s1, 0x7a6c
/* 0A6A18 800A5E18 C4341E90 */ lwc1 $f20, %lo(D_800F1E90)($at)
/* 0A6A1C 800A5E1C 24427A60 */ addiu $v0, %lo(D_800E7A60) # addiu $v0, $v0, 0x7a60
/* 0A6A20 800A5E20 00008025 */ move $s0, $zero
/* 0A6A24 800A5E24 8E6C0010 */ lw $t4, 0x10($s3)
.L800A5E28:
/* 0A6A28 800A5E28 AFA20050 */ sw $v0, 0x50($sp)
/* 0A6A2C 800A5E2C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6A30 800A5E30 01902821 */ addu $a1, $t4, $s0
/* 0A6A34 800A5E34 24A5006E */ addiu $a1, $a1, 0x6e
/* 0A6A38 800A5E38 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6A3C 800A5E3C 24040055 */ li $a0, 85
/* 0A6A40 800A5E40 8C460000 */ lw $a2, ($v0)
/* 0A6A44 800A5E44 0C024CC9 */ jal func_80093324
/* 0A6A48 800A5E48 00003825 */ move $a3, $zero
/* 0A6A4C 800A5E4C 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6A50 800A5E50 2610000D */ addiu $s0, $s0, 0xd
/* 0A6A54 800A5E54 24420004 */ addiu $v0, $v0, 4
/* 0A6A58 800A5E58 0051082B */ sltu $at, $v0, $s1
/* 0A6A5C 800A5E5C 5420FFF2 */ bnel $at, $zero, .L800A5E28
/* 0A6A60 800A5E60 8E6C0010 */ lw $t4, 0x10($s3)
/* 0A6A64 800A5E64 3C02800E */ lui $v0, %hi(D_800E7A6C) # $v0, 0x800e
/* 0A6A68 800A5E68 24427A6C */ addiu $v0, %lo(D_800E7A6C) # addiu $v0, $v0, 0x7a6c
/* 0A6A6C 800A5E6C 00008825 */ move $s1, $zero
/* 0A6A70 800A5E70 2410009B */ li $s0, 155
/* 0A6A74 800A5E74 2412007D */ li $s2, 125
.L800A5E78:
/* 0A6A78 800A5E78 8E640004 */ lw $a0, 4($s3)
/* 0A6A7C 800A5E7C AFA20050 */ sw $v0, 0x50($sp)
/* 0A6A80 800A5E80 02202825 */ move $a1, $s1
/* 0A6A84 800A5E84 24060001 */ li $a2, 1
/* 0A6A88 800A5E88 0C024870 */ jal text_rainbow_effect
/* 0A6A8C 800A5E8C 2484FFDD */ addiu $a0, $a0, -0x23
/* 0A6A90 800A5E90 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6A94 800A5E94 8E6F000C */ lw $t7, 0xc($s3)
/* 0A6A98 800A5E98 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6A9C 800A5E9C E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6AA0 800A5EA0 02002825 */ move $a1, $s0
/* 0A6AA4 800A5EA4 00003825 */ move $a3, $zero
/* 0A6AA8 800A5EA8 8C460000 */ lw $a2, ($v0)
/* 0A6AAC 800A5EAC 0C024CC9 */ jal func_80093324
/* 0A6AB0 800A5EB0 024F2023 */ subu $a0, $s2, $t7
/* 0A6AB4 800A5EB4 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6AB8 800A5EB8 26310001 */ addiu $s1, $s1, 1
/* 0A6ABC 800A5EBC 24010002 */ li $at, 2
/* 0A6AC0 800A5EC0 2610000F */ addiu $s0, $s0, 0xf
/* 0A6AC4 800A5EC4 1621FFEC */ bne $s1, $at, .L800A5E78
/* 0A6AC8 800A5EC8 24420004 */ addiu $v0, $v0, 4
/* 0A6ACC 800A5ECC 10000030 */ b .L800A5F90
/* 0A6AD0 800A5ED0 8E630004 */ lw $v1, 4($s3)
glabel L800A5ED4
/* 0A6AD4 800A5ED4 0C024C36 */ jal set_text_color
/* 0A6AD8 800A5ED8 24040003 */ li $a0, 3
/* 0A6ADC 800A5EDC 3C02800E */ lui $v0, %hi(D_800E7A74) # $v0, 0x800e
/* 0A6AE0 800A5EE0 3C01800F */ lui $at, %hi(D_800F1E94) # $at, 0x800f
/* 0A6AE4 800A5EE4 3C11800E */ lui $s1, %hi(D_800E7A80) # $s1, 0x800e
/* 0A6AE8 800A5EE8 26317A80 */ addiu $s1, %lo(D_800E7A80) # addiu $s1, $s1, 0x7a80
/* 0A6AEC 800A5EEC C4341E94 */ lwc1 $f20, %lo(D_800F1E94)($at)
/* 0A6AF0 800A5EF0 24427A74 */ addiu $v0, %lo(D_800E7A74) # addiu $v0, $v0, 0x7a74
/* 0A6AF4 800A5EF4 2410006E */ li $s0, 110
/* 0A6AF8 800A5EF8 24040055 */ li $a0, 85
.L800A5EFC:
/* 0A6AFC 800A5EFC 02002825 */ move $a1, $s0
/* 0A6B00 800A5F00 8C460000 */ lw $a2, ($v0)
/* 0A6B04 800A5F04 00003825 */ move $a3, $zero
/* 0A6B08 800A5F08 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6B0C 800A5F0C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6B10 800A5F10 0C024CC9 */ jal func_80093324
/* 0A6B14 800A5F14 AFA20050 */ sw $v0, 0x50($sp)
/* 0A6B18 800A5F18 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6B1C 800A5F1C 2610000D */ addiu $s0, $s0, 0xd
/* 0A6B20 800A5F20 24420004 */ addiu $v0, $v0, 4
/* 0A6B24 800A5F24 5451FFF5 */ bnel $v0, $s1, .L800A5EFC
/* 0A6B28 800A5F28 24040055 */ li $a0, 85
/* 0A6B2C 800A5F2C 10000018 */ b .L800A5F90
/* 0A6B30 800A5F30 8E630004 */ lw $v1, 4($s3)
glabel L800A5F34
/* 0A6B34 800A5F34 0C024C36 */ jal set_text_color
/* 0A6B38 800A5F38 24040003 */ li $a0, 3
/* 0A6B3C 800A5F3C 3C02800E */ lui $v0, %hi(D_800E7A80) # $v0, 0x800e
/* 0A6B40 800A5F40 3C01800F */ lui $at, %hi(D_800F1E98) # $at, 0x800f
/* 0A6B44 800A5F44 3C11800E */ lui $s1, %hi(D_800E7A88) # $s1, 0x800e
/* 0A6B48 800A5F48 26317A88 */ addiu $s1, %lo(D_800E7A88) # addiu $s1, $s1, 0x7a88
/* 0A6B4C 800A5F4C C4341E98 */ lwc1 $f20, %lo(D_800F1E98)($at)
/* 0A6B50 800A5F50 24427A80 */ addiu $v0, %lo(D_800E7A80) # addiu $v0, $v0, 0x7a80
/* 0A6B54 800A5F54 2410006E */ li $s0, 110
/* 0A6B58 800A5F58 2404005D */ li $a0, 93
.L800A5F5C:
/* 0A6B5C 800A5F5C 02002825 */ move $a1, $s0
/* 0A6B60 800A5F60 8C460000 */ lw $a2, ($v0)
/* 0A6B64 800A5F64 00003825 */ move $a3, $zero
/* 0A6B68 800A5F68 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A6B6C 800A5F6C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A6B70 800A5F70 0C024CC9 */ jal func_80093324
/* 0A6B74 800A5F74 AFA20050 */ sw $v0, 0x50($sp)
/* 0A6B78 800A5F78 8FA20050 */ lw $v0, 0x50($sp)
/* 0A6B7C 800A5F7C 2610000D */ addiu $s0, $s0, 0xd
/* 0A6B80 800A5F80 24420004 */ addiu $v0, $v0, 4
/* 0A6B84 800A5F84 5451FFF5 */ bnel $v0, $s1, .L800A5F5C
/* 0A6B88 800A5F88 2404005D */ li $a0, 93
/* 0A6B8C 800A5F8C 8E630004 */ lw $v1, 4($s3)
.L800A5F90:
glabel L800A5F90
/* 0A6B90 800A5F90 246EFFF5 */ addiu $t6, $v1, -0xb
/* 0A6B94 800A5F94 2DC1001A */ sltiu $at, $t6, 0x1a
/* 0A6B98 800A5F98 1020001E */ beqz $at, .L800A6014
/* 0A6B9C 800A5F9C 000E7080 */ sll $t6, $t6, 2
/* 0A6BA0 800A5FA0 3C01800F */ lui $at, %hi(jpt_800F1E9C)
/* 0A6BA4 800A5FA4 002E0821 */ addu $at, $at, $t6
/* 0A6BA8 800A5FA8 8C2E1E9C */ lw $t6, %lo(jpt_800F1E9C)($at)
/* 0A6BAC 800A5FAC 01C00008 */ jr $t6
/* 0A6BB0 800A5FB0 00000000 */ nop
glabel L800A5FB4
/* 0A6BB4 800A5FB4 0003C0C0 */ sll $t8, $v1, 3
/* 0A6BB8 800A5FB8 3C08800E */ lui $t0, %hi(D_800E73E0) # $t0, 0x800e
/* 0A6BBC 800A5FBC 250873E0 */ addiu $t0, %lo(D_800E73E0) # addiu $t0, $t0, 0x73e0
/* 0A6BC0 800A5FC0 2719FFA8 */ addiu $t9, $t8, -0x58
/* 0A6BC4 800A5FC4 1000000C */ b .L800A5FF8
/* 0A6BC8 800A5FC8 03281021 */ addu $v0, $t9, $t0
glabel L800A5FCC
/* 0A6BCC 800A5FCC 000350C0 */ sll $t2, $v1, 3
/* 0A6BD0 800A5FD0 3C0B800E */ lui $t3, %hi(D_800E7410) # $t3, 0x800e
/* 0A6BD4 800A5FD4 256B7410 */ addiu $t3, %lo(D_800E7410) # addiu $t3, $t3, 0x7410
/* 0A6BD8 800A5FD8 2549FF10 */ addiu $t1, $t2, -0xf0
/* 0A6BDC 800A5FDC 10000006 */ b .L800A5FF8
/* 0A6BE0 800A5FE0 012B1021 */ addu $v0, $t1, $t3
glabel L800A5FE4
/* 0A6BE4 800A5FE4 000368C0 */ sll $t5, $v1, 3
/* 0A6BE8 800A5FE8 3C0F800E */ lui $t7, %hi(D_800E7420) # $t7, 0x800e
/* 0A6BEC 800A5FEC 25EF7420 */ addiu $t7, %lo(D_800E7420) # addiu $t7, $t7, 0x7420
/* 0A6BF0 800A5FF0 25ACFEE8 */ addiu $t4, $t5, -0x118
/* 0A6BF4 800A5FF4 018F1021 */ addu $v0, $t4, $t7
.L800A5FF8:
/* 0A6BF8 800A5FF8 844E0000 */ lh $t6, ($v0)
/* 0A6BFC 800A5FFC 02602025 */ move $a0, $s3
/* 0A6C00 800A6000 27A50098 */ addiu $a1, $sp, 0x98
/* 0A6C04 800A6004 A7AE0098 */ sh $t6, 0x98($sp)
/* 0A6C08 800A6008 84580002 */ lh $t8, 2($v0)
/* 0A6C0C 800A600C 0C0299AA */ jal func_800A66A8
/* 0A6C10 800A6010 A7B8009A */ sh $t8, 0x9a($sp)
.L800A6014:
glabel L800A6014
/* 0A6C14 800A6014 8FBF0044 */ lw $ra, 0x44($sp)
.L800A6018:
/* 0A6C18 800A6018 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 0A6C1C 800A601C 8FB00034 */ lw $s0, 0x34($sp)
/* 0A6C20 800A6020 8FB10038 */ lw $s1, 0x38($sp)
/* 0A6C24 800A6024 8FB2003C */ lw $s2, 0x3c($sp)
/* 0A6C28 800A6028 8FB30040 */ lw $s3, 0x40($sp)
/* 0A6C2C 800A602C 03E00008 */ jr $ra
/* 0A6C30 800A6030 27BD00A0 */ addiu $sp, $sp, 0xa0

View File

@ -4,7 +4,7 @@
compiler_type = "ido"
[decompme.compilers]
"tools/ido5.3_recomp/cc" = "ido5.3"
"tools/ido-recomp/linux/cc" = "ido5.3"
[preserve_macros]
"gs?DP.*" = "void"

View File

@ -15,7 +15,21 @@
*/
typedef struct {
u8 pixel_index_array[0x1000];
} struct_D_802BFB80; // size = 0x1000
} struct_D_802BFB80_8; // size = 0x1000
typedef struct {
u8 pixel_index_array[0x2000];
} struct_D_802BFB80_4; // size = 0x1000
/*
* In render_player, spawn_players, and staff_ghosts D_802BFB80 is the arraySize8 entry
* But in code_80091750 its the arraySize4 entry
* The only way to unify those 2 things is to use a union
*/
typedef union {
struct_D_802BFB80_4 arraySize4[2][2][4];
struct_D_802BFB80_8 arraySize8[2][2][8];
} union_D_802BFB80;
/*
* Texture prior to be being decoded via mio0decode
@ -55,7 +69,7 @@ typedef struct {
extern u16 gRandomSeed16;
extern u8 randomSeedPadding[216];
extern struct_D_802BFB80 D_802BFB80[][2][8];
extern union_D_802BFB80 D_802BFB80;
extern struct_D_802DFB80 D_802DFB80[][2][8];
/**

View File

@ -95,10 +95,11 @@ SaveData gSaveData;
u8 D_8018ED90;
u8 D_8018ED91;
s32 s8018ED94;
f32 D_8018ED98; // Rotation
f32 D_8018ED9C; // Rotation
f32 D_8018EDA0; // Rotation
f32 D_8018EDA4;
f32 D_8018EDA8;
f32 D_8018EDAC;
@ -4867,13 +4868,6 @@ void func_800996BC(MkTexture *arg0, s32 arg1) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800996BC.s")
#endif
#ifdef MIPS_TO_C
// Note that as it stands this function is NOT functionally identical
// However the diff is tiny and there's not really much left to be done
// A potential match found by Vetri: https://decomp.me/scratch/fnW6S
// The only problem with it is that it requires modifying D_802BFB80's dimesnions
// and that seems really really wrong. But a match is a match, so it demands
// more investigation.
void func_80099958(MkTexture *arg0, s32 arg1, s32 arg2) {
u16 var_a1;
u8 *thing;
@ -4891,14 +4885,10 @@ void func_80099958(MkTexture *arg0, s32 arg1, s32 arg2) {
var_a1 = ((var_a1 / 8) * 8) + 8;
}
dma_copy_base_729a30(temp_v0->textureData, var_a1, D_8018D9B4);
// `arg1 % 2` needs to be multiplied by 2, but doing that causes a large diff
mio0decode(D_8018D9B4, D_802BFB80[arg2][arg1 / 2][(arg1 % 2) + 4].pixel_index_array);
mio0decode(D_8018D9B4, D_802BFB80.arraySize4[arg2][arg1 / 2][(arg1 % 2) + 2].pixel_index_array);
temp_v0++;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099958.s")
#endif
// Possibly a debug print function?
void func_80099A70(void) {
@ -4918,94 +4908,89 @@ void func_80099A94(MkTexture *arg0, s32 arg1) {
var_v1->unk_4 = arg1;
}
#ifdef MIPS_TO_C
//generated by m2c commit a39b70e85329b0bcaeb4350510ddb23dc9840dce on Feb-04-2024
#ifdef NON_MATCHING
// https://decomp.me/scratch/rxEoi
// Something's up with the handling of `_textures_0aSegmentRomStart`, I don't know how to fix it
void func_80099AEC(void) {
OSIoMesg sp6C;
void *sp68;
s8 var_s4;
s32 var_s0;
s32 stackPadding0;
s32 stackPadding1;
s32 huh;
OSIoMesg sp68;
OSMesg sp64;
u8 *test;
s32 sp60;
u8 *sp58;
MkTexture *temp_s2;
s32 temp_t7;
s8 var_s5;
struct_8018E060_entry *temp_s1;
struct_8018E060_entry *var_s1;
u16 temp_v1;
u16 temp_v1_2;
u16 temp_v1_3;
u16 var_s0;
u16 var_s0_2;
u16 var_s0_3;
void *temp_v0;
void *temp_v0_2;
if (gGamestate == 4) {
sp60 = 0x00000500;
} else {
sp60 = 0x00001000;
}
var_s4 = 0;
var_s1 = D_8018E060;
temp_s2 = D_8018E060->texture;
var_s5 = 0;
if (temp_s2 != NULL) {
temp_v1 = temp_s2->size;
temp_s2 = var_s1->texture;
if (temp_s2 == NULL) return;
huh = temp_s2->size;
if (huh != 0) {
var_s0 = huh;
} else {
var_s0 = 0x1400;
if (temp_v1 != 0) {
var_s0 = temp_v1;
}
if (((s32) var_s0 % 8) != 0) {
var_s0 = (((s32) var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, (u32) var_s0);
sp58 = _textures_0aSegmentRomStart;
osPiStartDma(&sp6C, 0, 0, (u32) &_textures_0aSegmentRomStart[(s32) temp_s2->textureData & 0xFFFFFF], D_8018D9B4, (u32) var_s0, &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &sp68, 1);
loop_9:
temp_v0 = var_s1->unk8;
if (temp_v0 == NULL) {
var_s5 += 1;
}
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
while (1) {
if ((var_s1 + 1)->texture == NULL) {
var_s4 += 1;
} else {
temp_v1_2 = temp_v0->unk10;
temp_t7 = sp60 * 4;
if (temp_v1_2 != 0) {
var_s0_2 = temp_v1_2;
temp_s2 = (var_s1 + 1)->texture;
huh = (var_s1 + 1)->texture->size;
if (huh != 0) {
var_s0 = huh;
} else {
var_s0_2 = 0x1400;
var_s0 = 0x1400;
}
if (((s32) var_s0_2 % 8) != 0) {
var_s0_2 = (((s32) var_s0_2 / 8) * 8) + 8;
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(temp_t7 + D_8018D9B4, (u32) var_s0_2);
osPiStartDma(&sp6C, 0, 0, (u32) &sp58[temp_v0->unk4 & 0xFFFFFF], temp_t7 + D_8018D9B4, (u32) var_s0_2, &gDmaMesgQueue);
osInvalDCache(D_8018D9B4 + sp60*4, var_s0);
osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4 + sp60*4, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4, (u8 *) &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
mio0decode(D_8018D9B4, &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
var_s1->texture = NULL;
temp_s1 = var_s1 + 8;
if (var_s5 == 0) {
osRecvMesg(&gDmaMesgQueue, &sp68, 1);
temp_v0_2 = temp_s1->unk8;
if (temp_v0_2 == NULL) {
var_s5 += 1;
var_s1++;
if (var_s4 != 0) break;
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
if ((var_s1 + 1)->texture == NULL) {
var_s4 += 1;
} else {
temp_s2 = (var_s1 + 1)->texture;
huh = (var_s1 + 1)->texture->size;
if (huh != 0) {
var_s0 = huh;
} else {
temp_v1_3 = temp_v0_2->unk10;
var_s0_3 = 0x1400;
if (temp_v1_3 != 0) {
var_s0_3 = temp_v1_3;
}
if (((s32) var_s0_3 % 8) != 0) {
var_s0_3 = (((s32) var_s0_3 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, (u32) var_s0_3);
osPiStartDma(&sp6C, 0, 0, (u32) &sp58[temp_v0_2->unk4 & 0xFFFFFF], D_8018D9B4, (u32) var_s0_3, &gDmaMesgQueue);
var_s0 = 0x1400;
}
mio0decode((sp60 * 4) + D_8018D9B4, (u8 *) &D_8018D9B0[D_8018E118[temp_s1->unk_4].offset]);
temp_s1->texture = NULL;
var_s1 = temp_s1 + 8;
if (var_s5 == 0) {
osRecvMesg(&gDmaMesgQueue, &sp68, 1);
goto loop_9;
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4 + sp60*4, &D_8018D9B0[D_8018E118[var_s1->unk_4].offset]);
var_s1->texture = NULL;
var_s1++;
if (var_s4 != 0) break;
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
}
}
#else
@ -5028,93 +5013,124 @@ void func_80099E60(MkTexture *arg0, s32 arg1, s32 arg2) {
var_v1->unk6 = arg2;
}
#ifdef MIPS_TO_C
//generated by m2c commit a39b70e85329b0bcaeb4350510ddb23dc9840dce on Feb-04-2024
#ifdef NON_MATCHING
// https://decomp.me/scratch/rUXbD
// Some fakematch nonsense, may or may not be necessary
// Issue is with instruction ordering near the first `osPiStartDma` call
void func_80099EC4(void) {
OSIoMesg sp68;
void *sp64;
MkTexture *temp_s2;
s16 temp_v0_2;
s16 temp_v0_4;
s8 var_s4;
struct_8018E0E8_entry *temp_s1;
s32 var_s0;
s32 stackPadding0;
s32 stackPadding1;
OSIoMesg sp68;
OSMesg sp64;
s32 huh;
u8 *test;
MkTexture *temp_s2;
struct_8018E0E8_entry *var_s1;
u16 temp_v1;
u16 temp_v1_2;
u16 temp_v1_3;
u16 var_s0;
u16 var_s0_2;
u16 var_s0_3;
void *temp_v0;
void *temp_v0_3;
var_s1 = D_8018E0E8;
temp_s2 = D_8018E0E8->mk64Texture;
var_s4 = 0;
if (temp_s2 != NULL) {
temp_v1 = temp_s2->size;
var_s1 = D_8018E0E8;
temp_s2 = var_s1->mk64Texture;
if (temp_s2 == NULL) return;
huh = temp_s2->size;
if (huh != 0) {
var_s0 = huh;
} else {
var_s0 = 0x1400;
if (temp_v1 != 0) {
var_s0 = temp_v1;
}
if (((s32) var_s0 % 8) != 0) {
var_s0 = (((s32) var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, (u32) var_s0);
osPiStartDma(&sp68, 0, 0, (u32) &_textures_0aSegmentRomStart[(s32) temp_s2->textureData & 0xFFFFFF], D_8018D9B4, (u32) var_s0, &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
loop_6:
temp_v0 = var_s1->unk8;
if (temp_v0 == NULL) {
}
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
test = &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)];
osPiStartDma(&sp68, 0, 0, test, D_8018D9B4, var_s0, &gDmaMesgQueue);
if ((var_s0 && var_s0) && var_s0) {}
// osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
while (1) {
if ((var_s1 + 1)->mk64Texture == NULL) {
var_s4 += 1;
} else {
temp_v1_2 = temp_v0->unk10;
var_s0_2 = 0x1400;
if (temp_v1_2 != 0) {
var_s0_2 = temp_v1_2;
}
if (((s32) var_s0_2 % 8) != 0) {
var_s0_2 = (((s32) var_s0_2 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4 + 0x1400, (u32) var_s0_2);
osPiStartDma(&sp68, 0, 0, (u32) &_textures_0aSegmentRomStart[temp_v0->unk4 & 0xFFFFFF], D_8018D9B4 + 0x1400, (u32) var_s0_2, &gDmaMesgQueue);
}
temp_v0_2 = var_s1->unk4;
mio0decode(D_8018D9B4, D_802BFB80[var_s1->unk6][temp_v0_2 / 2] + ((temp_v0_2 % 2) << 0xD) + 0x4000);
var_s1->mk64Texture = NULL;
temp_s1 = var_s1 + 8;
if (var_s4 == 0) {
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
temp_v0_3 = temp_s1->unk8;
if (temp_v0_3 == NULL) {
var_s4 += 1;
temp_s2 = (var_s1 + 1)->mk64Texture;
huh = (var_s1 + 1)->mk64Texture->size;
if (huh != 0) {
var_s0 = huh;
} else {
temp_v1_3 = temp_v0_3->unk10;
var_s0_3 = 0x1400;
if (temp_v1_3 != 0) {
var_s0_3 = temp_v1_3;
}
if (((s32) var_s0_3 % 8) != 0) {
var_s0_3 = (((s32) var_s0_3 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, (u32) var_s0_3);
osPiStartDma(&sp68, 0, 0, (u32) &_textures_0aSegmentRomStart[temp_v0_3->unk4 & 0xFFFFFF], D_8018D9B4, (u32) var_s0_3, &gDmaMesgQueue);
var_s0 = 0x1400;
}
temp_v0_4 = temp_s1->unk4;
mio0decode(D_8018D9B4 + 0x1400, D_802BFB80[temp_s1->unk6][temp_v0_4 / 2] + ((temp_v0_4 % 2) << 0xD) + 0x4000);
temp_s1->mk64Texture = NULL;
var_s1 = temp_s1 + 8;
if (var_s4 == 0) {
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
goto loop_6;
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4 + 0x1400, var_s0);
osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4 + 0x1400, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
var_s1->mk64Texture = NULL;
var_s1++;
if (var_s4 != 0) break;
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
if ((var_s1 + 1)->mk64Texture == NULL) {
var_s4 += 1;
} else {
temp_s2 = (var_s1 + 1)->mk64Texture;
huh = (var_s1 + 1)->mk64Texture->size;
if (huh != 0) {
var_s0 = huh;
} else {
var_s0 = 0x1400;
}
if (var_s0 % 8) {
var_s0 = ((var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, var_s0);
osPiStartDma(&sp68, 0, 0, &_textures_0aSegmentRomStart[SEGMENT_OFFSET(temp_s2->textureData)], D_8018D9B4, var_s0, &gDmaMesgQueue);
}
mio0decode(D_8018D9B4 + 0x1400, D_802BFB80.arraySize4[var_s1->unk6][var_s1->unk4 / 2][(var_s1->unk4 % 2) + 2].pixel_index_array);
var_s1->mk64Texture = NULL;
var_s1++;
if (var_s4 != 0) break;
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099EC4.s")
#endif
void func_8009A238(MkTexture *arg0, s32 arg1) {
s32 var_a3;
s32 temp_v1;
u64 *sp24;
struct_8018E118_entry *temp_v0;
temp_v1 = D_8018E118[arg1].offset;
sp24 = arg0->textureData;
var_a3 = arg0->size;
if (var_a3 % 8) {
var_a3 = ((var_a3 / 8) * 8) + 8;
}
dma_copy_base_7fa3c0(sp24, var_a3, D_8018D9B4);
tkmk00decode(D_8018D9B4, D_8018D9B8, &D_8018D9B0[temp_v1], 1);
D_8018E118[arg1].textureData = sp24;
}
void func_8009A2F0(struct_8018E0E8_entry *arg0) {
MkTexture *var_a0;
struct_8018E0E8_entry *temp_v0;
temp_v0 = segmented_to_virtual_dupe_2(arg0);
var_a0 = temp_v0->mk64Texture;
while (var_a0 != NULL) {
if (var_a0 == NULL) break;
func_800996BC(var_a0, 0);
if (1) {}
temp_v0++;
var_a0 = temp_v0->mk64Texture;
}
}
void func_8009A344(void) {
s32 index;
for(index = 0; index < D_8018DEE0_SIZE; index++) {
@ -5732,9 +5748,6 @@ Gfx *func_8009C434(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s
return arg0;
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/TK1UV
// Some register allocation differences when accessing `D_802BFB80`
Gfx *func_8009C708(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) {
s32 var_t0;
s32 thing;
@ -5764,15 +5777,12 @@ Gfx *func_8009C708(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s
break;
}
if (arg5 >= 0) {
arg0 = func_80097E58(arg0, var_t0, 0, 0U, var_s1->width, var_s1->height, var_s1->dX + arg2, var_s1->dY + arg3, D_802BFB80[arg1->unk14][arg4 / 2][((arg4 % 2) + 2) * 2].pixel_index_array, var_s1->width, var_s1->height, (u32) arg5);
arg0 = func_80097E58(arg0, var_t0, 0, 0U, var_s1->width, var_s1->height, var_s1->dX + arg2, var_s1->dY + arg3, D_802BFB80.arraySize4[arg1->unk14][arg4 / 2][(arg4 % 2) + 2].pixel_index_array, var_s1->width, var_s1->height, (u32) arg5);
}
var_s1++;
}
return arg0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009C708.s")
#endif
void func_8009C918(void) {
s32 someIndex;
@ -7596,10 +7606,6 @@ void func_800A0AD0(UNUSED struct_8018D9E0_entry *arg0) {
}
}
#ifdef NON_MATCHING
// There's something going on with the accessing of D_800E86C4 that's causing lots of issues
// Also, the `(D_800E86C4[var_s5] % 10) + 0x10` stuff is doing something weird with the %,
// lots of instruction ordering issues
void func_800A0B80(struct_8018D9E0_entry *arg0) {
s32 temp_a2;
s32 temp_s1;
@ -7614,19 +7620,21 @@ void func_800A0B80(struct_8018D9E0_entry *arg0) {
if (D_800E86C4[var_s5] == 0) continue;
temp_s1 = var_s5 * 0xA;
if (D_800E86C4[var_s5] < 0xA) {
func_800A08D8((D_800E86C4[var_s5] + 0x10), 0x00000032, arg0->row + temp_s1 + 1);
var_s0 = D_800E86C4[var_s5];
if (var_s0 < 0xA) {
func_800A08D8(var_s0 + 0x10, 0x00000032, arg0->row + temp_s1 + 1);
} else {
func_800A08D8(((D_800E86C4[var_s5] % 10) + 0x10), 0x00000035, arg0->row + temp_s1 + 1);
var_s0 %= 10;
func_800A08D8(var_s0 + 0x10, 0x00000035, arg0->row + temp_s1 + 1);
func_800A08D8(0x11U, 0x0000002F, arg0->row + temp_s1 + 1);
}
temp_s2 = arg0->row + temp_s1 + 1;
if (pfsError[D_800E86C4[var_s5] - 1] == 0) {
temp_s4 = &pfsState[D_800E86C4[var_s5] - 1];
temp_s1 = func_800A095C(temp_s4->game_name, 0x00000010, 0x0000004F, temp_s2) * 8;
var_s0 = func_800A095C(temp_s4->game_name, 0x00000010, 0x0000004F, temp_s2);
if (temp_s4->ext_name[0] != 0) {
func_800A08D8(0x3CU, temp_s1 + 0x4F, temp_s2);
func_800A08D8(temp_s4->ext_name[0], temp_s1 + 0x57, temp_s2);
func_800A08D8(0x3CU, (var_s0 * 8) + 0x4F, temp_s2);
func_800A08D8(temp_s4->ext_name[0], (var_s0 * 8) + 0x57, temp_s2);
}
var_s1 = 0x10;
var_s0 = (temp_s4->file_size + 0xFF) >> 8;
@ -7640,9 +7648,6 @@ void func_800A0B80(struct_8018D9E0_entry *arg0) {
}
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 319, 239);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A0B80.s")
#endif
void func_800A0DFC(void) {
s32 temp_t6;
@ -8918,20 +8923,19 @@ void render_pause_battle(struct_8018D9E0_entry *arg0) {
}
}
#ifdef NON_MATCHING
// Pretty big diff honestly. Mostly register allocation stuff though
void func_800A54EC(void) {
Unk_D_800E70A0 sp50;
s32 why;
s32 whyTheSequel;
Unk_D_800E70A0 *huh;
Unk_D_800E70A0 *var_v1;
struct_8018D9E0_entry *sp48;
s32 whyTheSequel;
s32 why;
Unk_D_800E70A0 *huh;
if (gIsGamePaused == 0) return;
why = gModeSelection;
sp48 = find_8018D9E0_entry(0x000000C7);
if (why) {} // ?????
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880));
guOrtho(&gGfxPool->mtxEffect[gMatrixEffectCount], 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f);
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
@ -8942,13 +8946,13 @@ void func_800A54EC(void) {
var_v1 = &D_800E8538[0];
break;
case 2:
var_v1 = &D_800E8540[(gIsGamePaused - 1) + (gScreenModeSelection * 4)];
var_v1 = &D_800E8540[(gScreenModeSelection * 4) + (gIsGamePaused - 1)];
break;
case 0:
var_v1 = &D_800E85C0[(gIsGamePaused - 1) + (gScreenModeSelection * 4)];
var_v1 = &D_800E85C0[(gScreenModeSelection * 4) + (gIsGamePaused - 1)];
break;
case 3:
var_v1 = &D_800E8600[(gIsGamePaused - 1) + (gScreenModeSelection * 4)];
var_v1 = &D_800E8600[(gScreenModeSelection * 4) + (gIsGamePaused - 1)];
break;
}
whyTheSequel = D_800F0B50[why];
@ -8956,39 +8960,34 @@ void func_800A54EC(void) {
sp50.row = (var_v1->row + ((sp48->cursor - whyTheSequel) * 0xD)) - 8;
func_800A66A8(sp48, &sp50);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A54EC.s")
#endif
#ifdef NON_MATCHING
// https://decomp.me/scratch/esKnl
// `var_v1` is ending up in `v0` instead of `v1`. For some reason :(
void func_800A5738(struct_8018D9E0_entry *arg0) {
Unk_D_800E70A0 sp98;
char **stackPadding0;
s32 stackPadding0;
s32 stackPadding1;
s32 stackPadding2;
s32 stackPadding3;
f32 why;
char sp84[3];
s32 stackPadding3;
s32 stackPadding4;
Unk_D_800E70A0 *var_v0_9;
s32 temp_a0;
s32 var_v1;
s32 var_s1;
s32 var_s2;
s32 temp_v0;
s32 zero = 0;
Unk_D_800E70A0 *var_v0_9;
char sp5C[3];
var_v1 = arg0->cursor;
if (var_v1 == 0) {
if (arg0->cursor == 0) {
if ((arg0->unk1C >= 0x1E) && ((gGlobalTimer / 16) % 2)) {
gDisplayListHead = draw_box(gDisplayListHead, 0x000000C0, 0x00000021, (s32) (get_string_width(gTextPauseButton[5]) * 0.8f) + 0xC6, 0x00000032, 0, 0, 0, 0x00000096);
why = get_string_width(gTextPauseButton[5]) * 0.8f;
gDisplayListHead = draw_box(gDisplayListHead, 0x000000C0, 0x00000021, (s32) (why) + 0xC6, 0x00000032, 0, 0, 0, 0x00000096);
set_text_color(1);
func_80093324(0x000000BF, 0x00000030, gTextPauseButton[5], 0, 0.8f, 0.8f);
}
} else {
if (var_v1 == 1) {
if (arg0->cursor == 1) {
var_s1 = arg0->unk1C;
var_s2 = (s32) (arg0->unk1C * 0xFF) / 140;
} else {
@ -9109,6 +9108,7 @@ void func_800A5738(struct_8018D9E0_entry *arg0) {
break;
case 35: /* switch 2 */
case 36: /* switch 2 */
if (0) { } // wtf?
var_v0_9 = &D_800E7420[arg0->cursor - 35];
break;
default:
@ -9119,9 +9119,6 @@ void func_800A5738(struct_8018D9E0_entry *arg0) {
func_800A66A8(arg0, &sp98);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A5738.s")
#endif
void func_800A6034(struct_8018D9E0_entry *arg0) {
char *text;
@ -9223,77 +9220,47 @@ void func_800A638C(struct_8018D9E0_entry *arg0) {
}
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
// ? guMtxCatL(Mtx *, Mtx *, Mtx *); /* extern */
void func_800A66A8(struct_8018D9E0_entry *arg0, s16 *arg1) {
Gfx *temp_v0;
Gfx *temp_v0_2;
Gfx *temp_v0_3;
Gfx *temp_v0_4;
Gfx *temp_v0_5;
Gfx *temp_v0_6;
#ifdef NON_MATCHING
// https://decomp.me/scratch/GUqCE
// All the math stuff at the top is messed up
void func_800A66A8(struct_8018D9E0_entry *arg0, Unk_D_800E70A0 *arg1) {
Mtx *temp_s0;
Mtx *temp_s1;
f32 temp_f0_2;
f32 temp_f2;
f32 temp_f12;
f32 temp_f14;
f32 temp_f2;
f64 temp_f0;
temp_s1 = &gGfxPool->mtxEffect[gMatrixEffectCount];
temp_f0 = (f64) arg0->unk24;
if (temp_f0 > 1.5) {
arg0->unk24 = (f32) (temp_f0 * 0.95);
if (arg0->unk24 > 1.5) {
arg0->unk24 *= 0.95;
} else {
arg0->unk24 = 1.5f;
}
temp_f0_2 = arg0->unk24;
temp_f2 = temp_f0_2 * 3.0f * (f32) arg0->unk8;
temp_f12 = temp_f0_2 * 4.0f;
temp_f14 = temp_f0_2 * 2.0f;
D_8018EDA0 += temp_f14;
temp_f2 = arg0->unk24 * 3.0f * arg0->unk8;
temp_f12 = arg0->unk24 * 4.0f;
temp_f14 = arg0->unk24 * 2.0f;
D_8018EDA4 = temp_f2;
D_8018EDA8 = temp_f12;
D_8018EDAC = temp_f14;
D_8018ED98 += temp_f2;
D_8018ED9C += temp_f12;
D_8018ED98 += D_8018EDA4;
D_8018ED9C += D_8018EDA8;
D_8018EDA0 += D_8018EDAC;
guScale(temp_s1, 1.2f, 1.2f, 1.2f);
temp_s0 = temp_s1 + 0x40;
temp_s0 = temp_s1 + 1;
guRotate(temp_s0, D_8018ED9C, 0.0f, 1.0f, 0.0f);
guMtxCatL(temp_s1, temp_s0, temp_s1);
guRotate(temp_s0, D_8018EDA0, 0.0f, 0.0f, 1.0f);
guMtxCatL(temp_s1, temp_s0, temp_s1);
guRotate(temp_s0, D_8018ED98, 1.0f, 0.0f, 0.0f);
guMtxCatL(temp_s1, temp_s0, temp_s1);
guTranslate(temp_s0, (f32) arg1->unk0, (f32) arg1->unk2, 0.0f);
guTranslate(temp_s0, arg1->column, arg1->row, 0.0f);
guMtxCatL(temp_s1, temp_s0, temp_s1);
temp_v0 = gDisplayListHead;
gDisplayListHead = temp_v0 + 8;
temp_v0->words.w0 = 0x01020040;
temp_v0->words.w1 = (s32) (&gGfxPool->mtxEffect[gMatrixEffectCount]) & 0x1FFFFFFF;
temp_v0_2 = gDisplayListHead;
gMatrixEffectCount += 1;
gDisplayListHead = temp_v0_2 + 8;
temp_v0_2->words.w0 = 0xB6000000;
temp_v0_2->words.w1 = 0x00020000;
temp_v0_3 = gDisplayListHead;
gDisplayListHead = temp_v0_3 + 8;
temp_v0_3->words.w1 = 0xFF33FFFF;
temp_v0_3->words.w0 = 0xFC121824;
temp_v0_4 = gDisplayListHead;
gDisplayListHead = temp_v0_4 + 8;
temp_v0_4->words.w1 = 0;
temp_v0_4->words.w0 = 0xC0000000;
temp_v0_5 = gDisplayListHead;
gDisplayListHead = temp_v0_5 + 8;
temp_v0_5->words.w1 = 0x00504340;
temp_v0_5->words.w0 = 0xB900031D;
temp_v0_6 = gDisplayListHead;
gDisplayListHead = temp_v0_6 + 8;
temp_v0_6->words.w0 = 0x06000000;
temp_v0_6->words.w1 = (u32) D_0D003090;
gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxEffect[gMatrixEffectCount]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA);
gDPNoOp(gDisplayListHead++);
gDPSetRenderMode(gDisplayListHead++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
gSPDisplayList(gDisplayListHead++, D_0D003090);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A66A8.s")

View File

@ -171,6 +171,8 @@ void func_80099EC4(void);
void func_80099A70(void);
void func_80099A94(MkTexture *, s32);
void func_80099AEC(void);
void func_8009A238(MkTexture*, s32);
void func_8009A2F0(struct_8018E0E8_entry*);
void func_8009A344(void);
s32 func_8009A374(MkAnimation*);
s32 func_8009A478(MkAnimation*, s32);
@ -599,4 +601,12 @@ extern s32 gControllerPak1NumPagesFree;
extern s32 gControllerPak1FileNote;
extern s32 gControllerPak2FileNote;
extern f32 D_8018ED98;
extern f32 D_8018ED9C;
extern f32 D_8018EDA0;
extern f32 D_8018EDA4;
extern f32 D_8018EDA8;
extern f32 D_8018EDAC;
#endif

View File

@ -13,7 +13,7 @@ u8 frameBufferPadding[0x5750];
u8 frameBufferPadding[0x5810];
#endif
struct_D_802BFB80 D_802BFB80[2][2][8];
union_D_802BFB80 D_802BFB80;
struct_D_802DFB80 D_802DFB80[2][2][8];
#ifdef AVOID_UB
struct_D_802F1F80 D_802F1F80[2][4][8];

View File

@ -265,12 +265,12 @@ void func_80020524(void) {
func_80027560(D_80164AD0[i], D_80164AB0[i], D_80164AC0[i], D_80164AC0[i], D_801651D0[D_80164AC0[i]][D_80164AB0[i]]);
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[i - 1]][D_80164AB0[i - 1]]][D_80164AC0[i - 1]][D_80164AB0[i - 1]].pixel_index_array);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
}
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
}
void func_8002088C(void) {
@ -291,11 +291,11 @@ void func_8002088C(void) {
for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) {
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0], D_80164AC0[var_s0], D_80164AC0[var_s0], D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]]);
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]].pixel_index_array);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
}
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]].pixel_index_array);
}
void func_80020BF4(void) {
@ -310,11 +310,11 @@ void func_80020BF4(void) {
for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) {
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0] + 4, D_80164AC0[var_s0], D_80164AC0[var_s0] - 2, D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]]);
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
}
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
}
void func_80020F1C(void) {
@ -329,11 +329,11 @@ void func_80020F1C(void) {
for (var_s0 = 1; var_s0 < gPlayersToRenderCount; var_s0++) {
func_80027560(D_80164AD0[var_s0], D_80164AB0[var_s0] + 4, D_80164AC0[var_s0], D_80164AC0[var_s0] - 2, D_801651D0[D_80164AC0[var_s0]][D_80164AB0[var_s0]]);
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[var_s0 - 1]][D_80164AB0[var_s0 - 1]]][D_80164AC0[var_s0 - 1] - 2][D_80164AB0[var_s0 - 1] + 4].pixel_index_array);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
}
mio0decode(D_802DFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].unk_00,
D_802BFB80[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
D_802BFB80.arraySize8[D_801651D0[D_80164AC0[gPlayersToRenderCount-1]][D_80164AB0[gPlayersToRenderCount-1]]][D_80164AC0[gPlayersToRenderCount-1] - 2][D_80164AB0[gPlayersToRenderCount-1] + 4].pixel_index_array);
}
void try_render_player(Player *player, s8 playerId, s8 arg2) {
@ -1392,11 +1392,11 @@ void kart_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
gPlayerPalette = &D_802F1F80[D_801651D0[arg2][playerId]][arg2][playerId * 0x100];
#endif
if ((arg2 == 0) || (arg2 == 1)) {
D_80164B08 = &D_802BFB80[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0];
D_80164B0C = &D_802BFB80[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0x7C0];
D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0];
D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0x7C0];
} else {
D_80164B08 = &D_802BFB80[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0];
D_80164B0C = &D_802BFB80[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0];
D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0];
D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0];
}
mtxf_translate_rotate(sp1A4, sp154, sp14C);
mtxf_scale2(sp1A4, gCharacterSize[player->characterId] * player->size);
@ -1510,11 +1510,11 @@ void ghost_render(Player *player, s8 playerId, s8 arg2, s8 arg3) {
gPlayerPalette = &D_802F1F80[D_801651D0[arg2][playerId]][arg2][playerId * 0x100];
#endif
if ((arg2 == 0) || (arg2 == 1)) {
D_80164B08 = &D_802BFB80[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0];
D_80164B0C = &D_802BFB80[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0x7C0];
D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0];
D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2][playerId].pixel_index_array[0x7C0];
} else {
D_80164B08 = &D_802BFB80[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0];
D_80164B0C = &D_802BFB80[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0];
D_80164B08 = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0];
D_80164B0C = &D_802BFB80.arraySize8[D_801651D0[arg2][playerId]][arg2 - 1][playerId - 4].pixel_index_array[0x7C0];
}
mtxf_translate_rotate(sp12C, spDC, spD4);

View File

@ -1078,12 +1078,12 @@ void func_8003CD98(Player *player, Camera *camera, s8 playerId, s8 arg3) {
load_kart_palette(player, playerId, arg3, 0);
load_kart_palette(player, playerId, arg3, 1);
load_kart_texture(player, playerId, arg3, arg3, 0);
mio0decode((u8 *) &D_802DFB80[0][arg3][playerId], (u8 *) &D_802BFB80[0][arg3][playerId]);
mio0decode((u8 *) &D_802DFB80[0][arg3][playerId], (u8 *) &D_802BFB80.arraySize8[0][arg3][playerId]);
} else {
load_kart_palette(player, playerId, arg3, 0);
load_kart_palette(player, playerId, arg3, 1);
load_kart_texture(player, (s8) (playerId + 4), arg3, (s8) (arg3 - 2), 0);
mio0decode((u8 *) &D_802DFB80[0][arg3 - 2][playerId + 4], (u8 *) &D_802BFB80[0][arg3 - 2][playerId + 4]);
mio0decode((u8 *) &D_802DFB80[0][arg3 - 2][playerId + 4], (u8 *) &D_802BFB80.arraySize8[0][arg3 - 2][playerId + 4]);
}
D_801650D0[arg3][playerId] = player->animFrameSelector[arg3];

View File

@ -58,8 +58,8 @@ s32 D_80162DFC;
s32 D_80162E00;
u32 *D_800DC710 = (u32 *) &D_802BFB80[0][2][3];
u32 *D_800DC714 = (u32 *) &D_802BFB80[1][1][3];
u32 *D_800DC710 = (u32 *) &D_802BFB80.arraySize8[0][2][3];
u32 *D_800DC714 = (u32 *) &D_802BFB80.arraySize8[1][1][3];
extern u8 _kart_texturesSegmentRomStart;
@ -70,7 +70,7 @@ extern StaffGhost *d_royal_raceway_staff_ghost;
extern StaffGhost *d_luigi_raceway_staff_ghost;
void func_80004EF0(void) {
D_80162DA4 = (u32 *) &D_802BFB80[0][2][3];
D_80162DA4 = (u32 *) &D_802BFB80.arraySize8[0][2][3];
osInvalDCache(&D_80162DA4[0], 0x4000);
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) ((D_80162DC4 & 0xFFFFFF) + &_kart_texturesSegmentRomStart), D_80162DA4, 0x4000, &gDmaMesgQueue);
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
@ -79,13 +79,13 @@ void func_80004EF0(void) {
}
void func_80004FB0(void) {
D_80162DB4 = (u32 *) &D_802BFB80[0][D_80162DD0][3];
D_80162DB4 = (u32 *) &D_802BFB80.arraySize8[0][D_80162DD0][3];
D_80162DAC = *D_80162DB4 & 0xFF0000;
D_80162DB0 = 0;
}
void func_80004FF8(void) {
D_80162D94 = (u32 *) &D_802BFB80[0][D_80162DC8][3];
D_80162D94 = (u32 *) &D_802BFB80.arraySize8[0][D_80162DC8][3];
D_80162D8C = (s32) *D_80162D94 & 0xFF0000;
D_80162D90 = 0;
}
@ -162,7 +162,7 @@ s32 func_800051C4(void) {
}
void func_8000522C(void) {
D_80162D94 = (u32 *) &D_802BFB80[0][D_80162DC8][3];
D_80162D94 = (u32 *) &D_802BFB80.arraySize8[0][D_80162DC8][3];
mio0decode((u8 *) D_800DC714, (u8 *) D_80162D94);
D_80162D8C = (s32) (*D_80162D94 & 0xFF0000);
D_80162D90 = 0;
@ -180,7 +180,7 @@ void func_800052A4(void) {
D_80162DCC = 0;
}
temp_v0 = D_80162DB8;
D_80162D80 = (void *) &D_802BFB80[0][D_80162DC8][3];
D_80162D80 = (void *) &D_802BFB80.arraySize8[0][D_80162DC8][3];
D_80162D84 = temp_v0;
D_80162D86 = temp_v0;
}
@ -213,7 +213,7 @@ void func_80005310(void) {
} else {
D_80162DD8 = 1U;
D_80162DBC = (u32 *) &D_802BFB80[0][D_80162DCC][3];
D_80162DBC = (u32 *) &D_802BFB80.arraySize8[0][D_80162DCC][3];
D_80162DBC[0] = -1;
D_80162DB8 = 0;
D_80162DDC = 0;
@ -498,7 +498,7 @@ void func_80005B18(void) {
func_80005AE8(gPlayerTwo);
func_80005AE8(gPlayerThree);
} else {
D_80162D80 = D_802BFB80[0][D_80162DC8][3].pixel_index_array;
D_80162D80 = D_802BFB80.arraySize8[0][D_80162DC8][3].pixel_index_array;
D_80162D84 = D_80162D86;
D_80162DD0 = D_80162DCC;
D_80162DE8 = gPlayerOne->characterId;
@ -510,7 +510,7 @@ void func_80005B18(void) {
}
} else {
if ((gLapCountByPlayerId[0] == 3) && (D_80162DDC == 0) && (D_80162DF8 == 1)) {
D_80162D80 = D_802BFB80[0][D_80162DC8][3].pixel_index_array;
D_80162D80 = D_802BFB80.arraySize8[0][D_80162DC8][3].pixel_index_array;
D_80162D84 = D_80162D86;
D_80162DDC = 1;
}

View File

@ -1939,6 +1939,8 @@ Variable Name | Memory Address
[func_80099E54](@ref func_80099E54) | 0x80099E54
[func_80099E60](@ref func_80099E60) | 0x80099E60
[func_80099EC4](@ref func_80099EC4) | 0x80099EC4
[func_8009A238](@ref func_8009A238) | 0x8009A238
[func_8009A2F0](@ref func_8009A2F0) | 0x8009A2F0
[func_8009A344](@ref func_8009A344) | 0x8009A344
[func_8009A374](@ref func_8009A374) | 0x8009A374
[func_8009A478](@ref func_8009A478) | 0x8009A478
@ -3640,10 +3642,6 @@ Variable Name | Memory Address
[D_800F0C18](@ref D_800F0C18) | 0x800F0C18
[D_800F0C54](@ref D_800F0C54) | 0x800F0C54
[D_800F0C58](@ref D_800F0C58) | 0x800F0C58
[D_800F0C6C](@ref D_800F0C6C) | 0x800F0C6C
[D_800F0C70](@ref D_800F0C70) | 0x800F0C70
[D_800F0C74](@ref D_800F0C74) | 0x800F0C74
[D_800F0C78](@ref D_800F0C78) | 0x800F0C78
[D_800F0CA0](@ref D_800F0CA0) | 0x800F0CA0
[D_800F0CD0](@ref D_800F0CD0) | 0x800F0CD0
[D_800F15E0](@ref D_800F15E0) | 0x800F15E0
@ -3662,14 +3660,6 @@ Variable Name | Memory Address
[D_800F1C40](@ref D_800F1C40) | 0x800F1C40
[D_800F1C44](@ref D_800F1C44) | 0x800F1C44
[D_800F1DC8](@ref D_800F1DC8) | 0x800F1DC8
[D_800F1DD8](@ref D_800F1DD8) | 0x800F1DD8
[D_800F1E80](@ref D_800F1E80) | 0x800F1E80
[D_800F1E84](@ref D_800F1E84) | 0x800F1E84
[D_800F1E88](@ref D_800F1E88) | 0x800F1E88
[D_800F1E8C](@ref D_800F1E8C) | 0x800F1E8C
[D_800F1E90](@ref D_800F1E90) | 0x800F1E90
[D_800F1E94](@ref D_800F1E94) | 0x800F1E94
[D_800F1E98](@ref D_800F1E98) | 0x800F1E98
[D_800F1F18](@ref D_800F1F18) | 0x800F1F18
[D_800F1F20](@ref D_800F1F20) | 0x800F1F20
[D_800F2B38](@ref D_800F2B38) | 0x800F2B38