Some matches in code_80091750 (#567)

Signed-off-by: Taggerung <tyler.taggerung@email.com>
Co-authored-by: Taggerung <tyler.taggerung@email.com>
This commit is contained in:
Tyler McGavran 2024-02-14 18:50:16 -05:00 committed by GitHub
parent d6663422b0
commit 811e05c297
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 160 additions and 943 deletions

View File

@ -1,25 +0,0 @@
glabel func_80099A94
/* 09A694 80099A94 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 09A698 80099A98 3C028019 */ lui $v0, %hi(D_8018E060) # 0x8019
/* 09A69C 80099A9C 2443E060 */ addiu $v1, $v0, %lo(D_8018E060) # -0x1fa0
/* 09A6A0 80099AA0 AFBF0014 */ sw $ra, 0x14($sp)
/* 09A6A4 80099AA4 AFA50024 */ sw $a1, 0x24($sp)
/* 09A6A8 80099AA8 8C6E0000 */ lw $t6, ($v1)
/* 09A6AC 80099AAC 11C00005 */ beqz $t6, .L80099AC4
/* 09A6B0 80099AB0 00000000 */ nop
/* 09A6B4 80099AB4 8C6F0008 */ lw $t7, 8($v1)
.L80099AB8:
/* 09A6B8 80099AB8 24630008 */ addiu $v1, $v1, 8
/* 09A6BC 80099ABC 55E0FFFE */ bnel $t7, $zero, .L80099AB8
/* 09A6C0 80099AC0 8C6F0008 */ lw $t7, 8($v1)
.L80099AC4:
/* 09A6C4 80099AC4 0C026449 */ jal segmented_to_virtual_dupe
/* 09A6C8 80099AC8 AFA3001C */ sw $v1, 0x1c($sp)
/* 09A6CC 80099ACC 8FA3001C */ lw $v1, 0x1c($sp)
/* 09A6D0 80099AD0 AC620000 */ sw $v0, ($v1)
/* 09A6D4 80099AD4 8FB80024 */ lw $t8, 0x24($sp)
/* 09A6D8 80099AD8 AC780004 */ sw $t8, 4($v1)
/* 09A6DC 80099ADC 8FBF0014 */ lw $ra, 0x14($sp)
/* 09A6E0 80099AE0 27BD0020 */ addiu $sp, $sp, 0x20
/* 09A6E4 80099AE4 03E00008 */ jr $ra
/* 09A6E8 80099AE8 00000000 */ nop

View File

@ -1,70 +0,0 @@
glabel func_8009C918
/* 09D518 8009C918 3C0E8016 */ lui $t6, %hi(D_8015F480+0x30) # $t6, 0x8016
/* 09D51C 8009C91C 3C0F8016 */ lui $t7, %hi(D_8015F480+0x32) # $t7, 0x8016
/* 09D520 8009C920 85CEF4B0 */ lh $t6, %lo(D_8015F480+0x30)($t6)
/* 09D524 8009C924 85EFF4B2 */ lh $t7, %lo(D_8015F480+0x32)($t7)
/* 09D528 8009C928 3C018019 */ lui $at, %hi(D_8018E7E8) # $at, 0x8019
/* 09D52C 8009C92C 3C188016 */ lui $t8, %hi(D_8015F480+0x2C) # $t8, 0x8016
/* 09D530 8009C930 3C198016 */ lui $t9, %hi(D_8015F480+0x2E) # $t9, 0x8016
/* 09D534 8009C934 8718F4AC */ lh $t8, %lo(D_8015F480+0x2C)($t8)
/* 09D538 8009C938 8739F4AE */ lh $t9, %lo(D_8015F480+0x2E)($t9)
/* 09D53C 8009C93C A42EE7E8 */ sh $t6, %lo(D_8018E7E8)($at)
/* 09D540 8009C940 A42FE7EA */ sh $t7, %lo(D_8018E7E8+0x2)($at)
/* 09D544 8009C944 3C018019 */ lui $at, %hi(D_8018E810) # $at, 0x8019
/* 09D548 8009C948 3C088016 */ lui $t0, %hi(D_8015F480+0x70) # $t0, 0x8016
/* 09D54C 8009C94C 3C098016 */ lui $t1, %hi(D_8015F480+0x72) # $t1, 0x8016
/* 09D550 8009C950 8529F4F2 */ lh $t1, %lo(D_8015F480+0x72)($t1)
/* 09D554 8009C954 8508F4F0 */ lh $t0, %lo(D_8015F480+0x70)($t0)
/* 09D558 8009C958 A438E810 */ sh $t8, %lo(D_8018E810)($at)
/* 09D55C 8009C95C A439E812 */ sh $t9, %lo(D_8018E810+0x2)($at)
/* 09D560 8009C960 3C018019 */ lui $at, %hi(D_8018E7F0) # $at, 0x8019
/* 09D564 8009C964 3C0A8016 */ lui $t2, %hi(D_8015F480+0x6C) # $t2, 0x8016
/* 09D568 8009C968 3C0B8016 */ lui $t3, %hi(D_8015F480+0x6E) # $t3, 0x8016
/* 09D56C 8009C96C 856BF4EE */ lh $t3, %lo(D_8015F480+0x6E)($t3)
/* 09D570 8009C970 854AF4EC */ lh $t2, %lo(D_8015F480+0x6C)($t2)
/* 09D574 8009C974 A429E7F2 */ sh $t1, %lo(D_8018E7F0+0x2)($at)
/* 09D578 8009C978 A428E7F0 */ sh $t0, %lo(D_8018E7F0)($at)
/* 09D57C 8009C97C 3C018019 */ lui $at, %hi(D_8018E818) # $at, 0x8019
/* 09D580 8009C980 3C0C8016 */ lui $t4, %hi(D_8015F480+0xB0) # $t4, 0x8016
/* 09D584 8009C984 3C0D8016 */ lui $t5, %hi(D_8015F480+0xB2) # $t5, 0x8016
/* 09D588 8009C988 85ADF532 */ lh $t5, %lo(D_8015F480+0xB2)($t5)
/* 09D58C 8009C98C 858CF530 */ lh $t4, %lo(D_8015F480+0xB0)($t4)
/* 09D590 8009C990 A42BE81A */ sh $t3, %lo(D_8018E81A)($at)
/* 09D594 8009C994 A42AE818 */ sh $t2, %lo(D_8018E818)($at)
/* 09D598 8009C998 3C018019 */ lui $at, %hi(D_8018E7F8) # $at, 0x8019
/* 09D59C 8009C99C 3C0F8016 */ lui $t7, %hi(D_8015F480+0xAE) # $t7, 0x8016
/* 09D5A0 8009C9A0 3C0E8016 */ lui $t6, %hi(D_8015F480+0xAC) # $t6, 0x8016
/* 09D5A4 8009C9A4 85CEF52C */ lh $t6, %lo(D_8015F480+0xAC)($t6)
/* 09D5A8 8009C9A8 85EFF52E */ lh $t7, %lo(D_8015F480+0xAE)($t7)
/* 09D5AC 8009C9AC A42DE7FA */ sh $t5, %lo(D_8018E7FA)($at)
/* 09D5B0 8009C9B0 A42CE7F8 */ sh $t4, %lo(D_8018E7F8)($at)
/* 09D5B4 8009C9B4 3C018019 */ lui $at, %hi(D_8018E822) # $at, 0x8019
/* 09D5B8 8009C9B8 3C198016 */ lui $t9, %hi(D_8015F480+0xF2) # $t9, 0x8016
/* 09D5BC 8009C9BC 3C188016 */ lui $t8, %hi(D_8015F480+0xF0) # $t8, 0x8016
/* 09D5C0 8009C9C0 8718F570 */ lh $t8, %lo(D_8015F480+0xF0)($t8)
/* 09D5C4 8009C9C4 8739F572 */ lh $t9, %lo(D_8015F480+0xF2)($t9)
/* 09D5C8 8009C9C8 A42EE820 */ sh $t6, %lo(D_8018E820)($at)
/* 09D5CC 8009C9CC A42FE822 */ sh $t7, %lo(D_8018E822)($at)
/* 09D5D0 8009C9D0 3C018019 */ lui $at, %hi(D_8018E802) # $at, 0x8019
/* 09D5D4 8009C9D4 3C088016 */ lui $t0, %hi(D_8015F480+0xEC) # $t0, 0x8016
/* 09D5D8 8009C9D8 3C098016 */ lui $t1, %hi(D_8015F480+0xEE) # $t1, 0x8016
/* 09D5DC 8009C9DC 8529F56E */ lh $t1, %lo(D_8015F480+0xEE)($t1)
/* 09D5E0 8009C9E0 8508F56C */ lh $t0, %lo(D_8015F480+0xEC)($t0)
/* 09D5E4 8009C9E4 A438E800 */ sh $t8, %lo(D_8018E800)($at)
/* 09D5E8 8009C9E8 A439E802 */ sh $t9, %lo(D_8018E802)($at)
/* 09D5EC 8009C9EC 3C018019 */ lui $at, %hi(D_8018E828) # $at, 0x8019
/* 09D5F0 8009C9F0 A429E82A */ sh $t1, %lo(D_8018E82A)($at)
/* 09D5F4 8009C9F4 A428E828 */ sh $t0, %lo(D_8018E828)($at)
/* 09D5F8 8009C9F8 3C028019 */ lui $v0, %hi(D_8018E7E8) # $v0, 0x8019
/* 09D5FC 8009C9FC 3C038019 */ lui $v1, %hi(D_8018E810) # $v1, 0x8019
/* 09D600 8009CA00 2463E810 */ addiu $v1, %lo(D_8018E810) # addiu $v1, $v1, -0x17f0
/* 09D604 8009CA04 2442E7E8 */ addiu $v0, %lo(D_8018E7E8) # addiu $v0, $v0, -0x1818
/* 09D608 8009CA08 240A00A0 */ li $t2, 160
/* 09D60C 8009CA0C 240B0078 */ li $t3, 120
/* 09D610 8009CA10 240C0140 */ li $t4, 320
/* 09D614 8009CA14 240D00F0 */ li $t5, 240
/* 09D618 8009CA18 A44A0020 */ sh $t2, 0x20($v0)
/* 09D61C 8009CA1C A44B0022 */ sh $t3, 0x22($v0)
/* 09D620 8009CA20 A46C0020 */ sh $t4, 0x20($v1)
/* 09D624 8009CA24 03E00008 */ jr $ra
/* 09D628 8009CA28 A46D0022 */ sh $t5, 0x22($v1)

View File

@ -1,116 +0,0 @@
.section .late_rodata
glabel jpt_800F1078
.word L8009CBD4, L8009CB6C, L8009CB7C, L8009CB8C
.word L8009CB9C, L8009CBAC, L8009CBD4, L8009CBBC
.word L8009CBCC
.section .text
glabel func_8009CA6C
/* 09D66C 8009CA6C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09D670 8009CA70 24010004 */ li $at, 4
/* 09D674 8009CA74 AFBF0014 */ sw $ra, 0x14($sp)
/* 09D678 8009CA78 1081001F */ beq $a0, $at, .L8009CAF8
/* 09D67C 8009CA7C 00803025 */ move $a2, $a0
/* 09D680 8009CA80 240400AA */ li $a0, 170
/* 09D684 8009CA84 0C02ABCC */ jal find_8018D9E0_entry
/* 09D688 8009CA88 AFA60018 */ sw $a2, 0x18($sp)
/* 09D68C 8009CA8C 14400051 */ bnez $v0, .L8009CBD4
/* 09D690 8009CA90 8FA60018 */ lw $a2, 0x18($sp)
/* 09D694 8009CA94 240400AB */ li $a0, 171
/* 09D698 8009CA98 0C02ABCC */ jal find_8018D9E0_entry
/* 09D69C 8009CA9C AFA60018 */ sw $a2, 0x18($sp)
/* 09D6A0 8009CAA0 1440004C */ bnez $v0, .L8009CBD4
/* 09D6A4 8009CAA4 8FA60018 */ lw $a2, 0x18($sp)
/* 09D6A8 8009CAA8 240400B9 */ li $a0, 185
/* 09D6AC 8009CAAC 0C02ABCC */ jal find_8018D9E0_entry
/* 09D6B0 8009CAB0 AFA60018 */ sw $a2, 0x18($sp)
/* 09D6B4 8009CAB4 14400047 */ bnez $v0, .L8009CBD4
/* 09D6B8 8009CAB8 8FA60018 */ lw $a2, 0x18($sp)
/* 09D6BC 8009CABC 240400BA */ li $a0, 186
/* 09D6C0 8009CAC0 0C02ABCC */ jal find_8018D9E0_entry
/* 09D6C4 8009CAC4 AFA60018 */ sw $a2, 0x18($sp)
/* 09D6C8 8009CAC8 14400042 */ bnez $v0, .L8009CBD4
/* 09D6CC 8009CACC 8FA60018 */ lw $a2, 0x18($sp)
/* 09D6D0 8009CAD0 240400AC */ li $a0, 172
/* 09D6D4 8009CAD4 0C02ABCC */ jal find_8018D9E0_entry
/* 09D6D8 8009CAD8 AFA60018 */ sw $a2, 0x18($sp)
/* 09D6DC 8009CADC 1440003D */ bnez $v0, .L8009CBD4
/* 09D6E0 8009CAE0 8FA60018 */ lw $a2, 0x18($sp)
/* 09D6E4 8009CAE4 240400B0 */ li $a0, 176
/* 09D6E8 8009CAE8 0C02ABCC */ jal find_8018D9E0_entry
/* 09D6EC 8009CAEC AFA60018 */ sw $a2, 0x18($sp)
/* 09D6F0 8009CAF0 14400038 */ bnez $v0, .L8009CBD4
/* 09D6F4 8009CAF4 8FA60018 */ lw $a2, 0x18($sp)
.L8009CAF8:
/* 09D6F8 8009CAF8 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015
/* 09D6FC 8009CAFC 24840298 */ addiu $a0, %lo(gDisplayListHead) # addiu $a0, $a0, 0x298
/* 09D700 8009CB00 8C830000 */ lw $v1, ($a0)
/* 09D704 8009CB04 3C180D00 */ lui $t8, %hi(D_0D0076F8) # $t8, 0xd00
/* 09D708 8009CB08 271876F8 */ addiu $t8, %lo(D_0D0076F8) # addiu $t8, $t8, 0x76f8
/* 09D70C 8009CB0C 246E0008 */ addiu $t6, $v1, 8
/* 09D710 8009CB10 AC8E0000 */ sw $t6, ($a0)
/* 09D714 8009CB14 3C0F0600 */ lui $t7, 0x600
/* 09D718 8009CB18 24010004 */ li $at, 4
/* 09D71C 8009CB1C 00002825 */ move $a1, $zero
/* 09D720 8009CB20 AC6F0000 */ sw $t7, ($v1)
/* 09D724 8009CB24 10C10006 */ beq $a2, $at, .L8009CB40
/* 09D728 8009CB28 AC780004 */ sw $t8, 4($v1)
/* 09D72C 8009CB2C 3C19800E */ lui $t9, %hi(gIsGamePaused) # $t9, 0x800e
/* 09D730 8009CB30 9739C5FC */ lhu $t9, %lo(gIsGamePaused)($t9)
/* 09D734 8009CB34 13200002 */ beqz $t9, .L8009CB40
/* 09D738 8009CB38 00000000 */ nop
/* 09D73C 8009CB3C 24050001 */ li $a1, 1
.L8009CB40:
/* 09D740 8009CB40 3C088019 */ lui $t0, %hi(D_8018E7AC) # 0x8019
/* 09D744 8009CB44 01064021 */ addu $t0, $t0, $a2
/* 09D748 8009CB48 9108E7AC */ lbu $t0, %lo(D_8018E7AC)($t0) # -0x1854($t0)
/* 09D74C 8009CB4C 2D010009 */ sltiu $at, $t0, 9
/* 09D750 8009CB50 10200020 */ beqz $at, .L8009CBD4
/* 09D754 8009CB54 00084080 */ sll $t0, $t0, 2
/* 09D758 8009CB58 3C01800F */ lui $at, %hi(jpt_800F1078)
/* 09D75C 8009CB5C 00280821 */ addu $at, $at, $t0
/* 09D760 8009CB60 8C281078 */ lw $t0, %lo(jpt_800F1078)($at)
/* 09D764 8009CB64 01000008 */ jr $t0
/* 09D768 8009CB68 00000000 */ nop
glabel L8009CB6C
/* 09D76C 8009CB6C 0C027377 */ jal func_8009CDDC
/* 09D770 8009CB70 00C02025 */ move $a0, $a2
/* 09D774 8009CB74 10000018 */ b .L8009CBD8
/* 09D778 8009CB78 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8009CB7C
/* 09D77C 8009CB7C 0C027656 */ jal func_8009D958
/* 09D780 8009CB80 00C02025 */ move $a0, $a2
/* 09D784 8009CB84 10000014 */ b .L8009CBD8
/* 09D788 8009CB88 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8009CB8C
/* 09D78C 8009CB8C 0C0276E3 */ jal func_8009DB8C
/* 09D790 8009CB90 00000000 */ nop
/* 09D794 8009CB94 10000010 */ b .L8009CBD8
/* 09D798 8009CB98 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8009CB9C
/* 09D79C 8009CB9C 0C0276AA */ jal func_8009DAA8
/* 09D7A0 8009CBA0 00000000 */ nop
/* 09D7A4 8009CBA4 1000000C */ b .L8009CBD8
/* 09D7A8 8009CBA8 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8009CBAC
/* 09D7AC 8009CBAC 0C027666 */ jal func_8009D998
/* 09D7B0 8009CBB0 00C02025 */ move $a0, $a2
/* 09D7B4 8009CBB4 10000008 */ b .L8009CBD8
/* 09D7B8 8009CBB8 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8009CBBC
/* 09D7BC 8009CBBC 0C02765E */ jal func_8009D978
/* 09D7C0 8009CBC0 00C02025 */ move $a0, $a2
/* 09D7C4 8009CBC4 10000004 */ b .L8009CBD8
/* 09D7C8 8009CBC8 8FBF0014 */ lw $ra, 0x14($sp)
glabel L8009CBCC
/* 09D7CC 8009CBCC 0C02737F */ jal func_8009CDFC
/* 09D7D0 8009CBD0 00C02025 */ move $a0, $a2
.L8009CBD4:
glabel L8009CBD4
/* 09D7D4 8009CBD4 8FBF0014 */ lw $ra, 0x14($sp)
.L8009CBD8:
/* 09D7D8 8009CBD8 27BD0018 */ addiu $sp, $sp, 0x18
/* 09D7DC 8009CBDC 03E00008 */ jr $ra
/* 09D7E0 8009CBE0 00000000 */ nop

View File

@ -1,129 +0,0 @@
glabel func_8009D77C
/* 09E37C 8009D77C 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 09E380 8009D780 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 09E384 8009D784 27BDFF98 */ addiu $sp, $sp, -0x68
/* 09E388 8009D788 AFB00030 */ sw $s0, 0x30($sp)
/* 09E38C 8009D78C 00808025 */ move $s0, $a0
/* 09E390 8009D790 AFBF0034 */ sw $ra, 0x34($sp)
/* 09E394 8009D794 AFA5006C */ sw $a1, 0x6c($sp)
/* 09E398 8009D798 10400003 */ beqz $v0, .L8009D7A8
/* 09E39C 8009D79C AFA60070 */ sw $a2, 0x70($sp)
/* 09E3A0 8009D7A0 24010001 */ li $at, 1
/* 09E3A4 8009D7A4 1441000D */ bne $v0, $at, .L8009D7DC
.L8009D7A8:
/* 09E3A8 8009D7A8 3C0F8019 */ lui $t7, %hi(D_8018E810) # $t7, 0x8019
/* 09E3AC 8009D7AC 001010C0 */ sll $v0, $s0, 3
/* 09E3B0 8009D7B0 25EFE810 */ addiu $t7, %lo(D_8018E810) # addiu $t7, $t7, -0x17f0
/* 09E3B4 8009D7B4 3C0E8019 */ lui $t6, %hi(D_8018E7E8) # $t6, 0x8019
/* 09E3B8 8009D7B8 004F2021 */ addu $a0, $v0, $t7
/* 09E3BC 8009D7BC 84980002 */ lh $t8, 2($a0)
/* 09E3C0 8009D7C0 25CEE7E8 */ addiu $t6, %lo(D_8018E7E8) # addiu $t6, $t6, -0x1818
/* 09E3C4 8009D7C4 004E1821 */ addu $v1, $v0, $t6
/* 09E3C8 8009D7C8 846B0000 */ lh $t3, ($v1)
/* 09E3CC 8009D7CC 846C0002 */ lh $t4, 2($v1)
/* 09E3D0 8009D7D0 849F0000 */ lh $ra, ($a0)
/* 09E3D4 8009D7D4 10000019 */ b .L8009D83C
/* 09E3D8 8009D7D8 AFB80044 */ sw $t8, 0x44($sp)
.L8009D7DC:
/* 09E3DC 8009D7DC 2A010004 */ slti $at, $s0, 4
/* 09E3E0 8009D7E0 1420000D */ bnez $at, .L8009D818
/* 09E3E4 8009D7E4 3C0E8019 */ lui $t6, %hi(D_8018E810) # $t6, 0x8019
/* 09E3E8 8009D7E8 001010C0 */ sll $v0, $s0, 3
/* 09E3EC 8009D7EC 25CEE810 */ addiu $t6, %lo(D_8018E810) # addiu $t6, $t6, -0x17f0
/* 09E3F0 8009D7F0 3C198019 */ lui $t9, %hi(D_8018E7E8) # $t9, 0x8019
/* 09E3F4 8009D7F4 004E2021 */ addu $a0, $v0, $t6
/* 09E3F8 8009D7F8 848F0002 */ lh $t7, 2($a0)
/* 09E3FC 8009D7FC 2739E7E8 */ addiu $t9, %lo(D_8018E7E8) # addiu $t9, $t9, -0x1818
/* 09E400 8009D800 00591821 */ addu $v1, $v0, $t9
/* 09E404 8009D804 846B0000 */ lh $t3, ($v1)
/* 09E408 8009D808 846C0002 */ lh $t4, 2($v1)
/* 09E40C 8009D80C 849F0000 */ lh $ra, ($a0)
/* 09E410 8009D810 1000000A */ b .L8009D83C
/* 09E414 8009D814 AFAF0044 */ sw $t7, 0x44($sp)
.L8009D818:
/* 09E418 8009D818 3C198016 */ lui $t9, %hi(D_8015F480) # $t9, 0x8016
/* 09E41C 8009D81C 2739F480 */ addiu $t9, %lo(D_8015F480) # addiu $t9, $t9, -0xb80
/* 09E420 8009D820 0010C180 */ sll $t8, $s0, 6
/* 09E424 8009D824 03191021 */ addu $v0, $t8, $t9
/* 09E428 8009D828 844E002E */ lh $t6, 0x2e($v0)
/* 09E42C 8009D82C 844B0030 */ lh $t3, 0x30($v0)
/* 09E430 8009D830 844C0032 */ lh $t4, 0x32($v0)
/* 09E434 8009D834 845F002C */ lh $ra, 0x2c($v0)
/* 09E438 8009D838 AFAE0044 */ sw $t6, 0x44($sp)
.L8009D83C:
/* 09E43C 8009D83C 3C0F8019 */ lui $t7, %hi(D_8018E7D0) # $t7, 0x8019
/* 09E440 8009D840 25EFE7D0 */ addiu $t7, %lo(D_8018E7D0) # addiu $t7, $t7, -0x1830
/* 09E444 8009D844 00101080 */ sll $v0, $s0, 2
/* 09E448 8009D848 004F4821 */ addu $t1, $v0, $t7
/* 09E44C 8009D84C 3C188019 */ lui $t8, %hi(D_8018E7B8) # $t8, 0x8019
/* 09E450 8009D850 8D390000 */ lw $t9, ($t1)
/* 09E454 8009D854 2718E7B8 */ addiu $t8, %lo(D_8018E7B8) # addiu $t8, $t8, -0x1848
/* 09E458 8009D858 00586821 */ addu $t5, $v0, $t8
/* 09E45C 8009D85C 8DAF0000 */ lw $t7, ($t5)
/* 09E460 8009D860 00197200 */ sll $t6, $t9, 8
/* 09E464 8009D864 01D97023 */ subu $t6, $t6, $t9
/* 09E468 8009D868 01CF001B */ divu $zero, $t6, $t7
/* 09E46C 8009D86C 00005012 */ mflo $t2
/* 09E470 8009D870 29410100 */ slti $at, $t2, 0x100
/* 09E474 8009D874 15E00002 */ bnez $t7, .L8009D880
/* 09E478 8009D878 00000000 */ nop
/* 09E47C 8009D87C 0007000D */ break 7
.L8009D880:
/* 09E480 8009D880 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015
/* 09E484 8009D884 14200002 */ bnez $at, .L8009D890
/* 09E488 8009D888 8FA80044 */ lw $t0, 0x44($sp)
/* 09E48C 8009D88C 240A00FF */ li $t2, 255
.L8009D890:
/* 09E490 8009D890 8FAE0070 */ lw $t6, 0x70($sp)
/* 09E494 8009D894 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0)
/* 09E498 8009D898 07E10003 */ bgez $ra, .L8009D8A8
/* 09E49C 8009D89C 001F1843 */ sra $v1, $ra, 1
/* 09E4A0 8009D8A0 27E10001 */ addiu $at, $ra, 1
/* 09E4A4 8009D8A4 00011843 */ sra $v1, $at, 1
.L8009D8A8:
/* 09E4A8 8009D8A8 000E78C0 */ sll $t7, $t6, 3
/* 09E4AC 8009D8AC 01632823 */ subu $a1, $t3, $v1
/* 09E4B0 8009D8B0 05010003 */ bgez $t0, .L8009D8C0
/* 09E4B4 8009D8B4 0008C043 */ sra $t8, $t0, 1
/* 09E4B8 8009D8B8 25010001 */ addiu $at, $t0, 1
/* 09E4BC 8009D8BC 0001C043 */ sra $t8, $at, 1
.L8009D8C0:
/* 09E4C0 8009D8C0 03004025 */ move $t0, $t8
/* 09E4C4 8009D8C4 01983023 */ subu $a2, $t4, $t8
/* 09E4C8 8009D8C8 030CC821 */ addu $t9, $t8, $t4
/* 09E4CC 8009D8CC 3C18800E */ lui $t8, %hi(D_800E7AE8) # $t8, 0x800e
/* 09E4D0 8009D8D0 27187AE8 */ addiu $t8, %lo(D_800E7AE8) # addiu $t8, $t8, 0x7ae8
/* 09E4D4 8009D8D4 01F81021 */ addu $v0, $t7, $t8
/* 09E4D8 8009D8D8 AFB90010 */ sw $t9, 0x10($sp)
/* 09E4DC 8009D8DC 94590000 */ lhu $t9, ($v0)
/* 09E4E0 8009D8E0 944E0002 */ lhu $t6, 2($v0)
/* 09E4E4 8009D8E4 944F0004 */ lhu $t7, 4($v0)
/* 09E4E8 8009D8E8 006B3821 */ addu $a3, $v1, $t3
/* 09E4EC 8009D8EC AFAA0020 */ sw $t2, 0x20($sp)
/* 09E4F0 8009D8F0 AFA9003C */ sw $t1, 0x3c($sp)
/* 09E4F4 8009D8F4 AFAD0038 */ sw $t5, 0x38($sp)
/* 09E4F8 8009D8F8 AFB90014 */ sw $t9, 0x14($sp)
/* 09E4FC 8009D8FC AFAE0018 */ sw $t6, 0x18($sp)
/* 09E500 8009D900 0C02637E */ jal draw_box
/* 09E504 8009D904 AFAF001C */ sw $t7, 0x1c($sp)
/* 09E508 8009D908 8FB8006C */ lw $t8, 0x6c($sp)
/* 09E50C 8009D90C 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 09E510 8009D910 AC220298 */ sw $v0, %lo(gDisplayListHead)($at)
/* 09E514 8009D914 8FA9003C */ lw $t1, 0x3c($sp)
/* 09E518 8009D918 1700000A */ bnez $t8, .L8009D944
/* 09E51C 8009D91C 8FAD0038 */ lw $t5, 0x38($sp)
/* 09E520 8009D920 8D390000 */ lw $t9, ($t1)
/* 09E524 8009D924 8DB80000 */ lw $t8, ($t5)
/* 09E528 8009D928 272E0001 */ addiu $t6, $t9, 1
/* 09E52C 8009D92C 27190001 */ addiu $t9, $t8, 1
/* 09E530 8009D930 032E082B */ sltu $at, $t9, $t6
/* 09E534 8009D934 10200003 */ beqz $at, .L8009D944
/* 09E538 8009D938 AD2E0000 */ sw $t6, ($t1)
/* 09E53C 8009D93C 0C027399 */ jal func_8009CE64
/* 09E540 8009D940 02002025 */ move $a0, $s0
.L8009D944:
/* 09E544 8009D944 8FBF0034 */ lw $ra, 0x34($sp)
/* 09E548 8009D948 8FB00030 */ lw $s0, 0x30($sp)
/* 09E54C 8009D94C 27BD0068 */ addiu $sp, $sp, 0x68
/* 09E550 8009D950 03E00008 */ jr $ra
/* 09E554 8009D954 00000000 */ nop

View File

@ -1,75 +0,0 @@
glabel func_8009D998
/* 09E598 8009D998 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 09E59C 8009D99C 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 09E5A0 8009D9A0 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 09E5A4 8009D9A4 AFBF002C */ sw $ra, 0x2c($sp)
/* 09E5A8 8009D9A8 10400003 */ beqz $v0, .L8009D9B8
/* 09E5AC 8009D9AC 00802825 */ move $a1, $a0
/* 09E5B0 8009D9B0 24010001 */ li $at, 1
/* 09E5B4 8009D9B4 1441000C */ bne $v0, $at, .L8009D9E8
.L8009D9B8:
/* 09E5B8 8009D9B8 000510C0 */ sll $v0, $a1, 3
/* 09E5BC 8009D9BC 3C0E8019 */ lui $t6, %hi(D_8018E7E8) # $t6, 0x8019
/* 09E5C0 8009D9C0 3C0F8019 */ lui $t7, %hi(D_8018E810) # $t7, 0x8019
/* 09E5C4 8009D9C4 25CEE7E8 */ addiu $t6, %lo(D_8018E7E8) # addiu $t6, $t6, -0x1818
/* 09E5C8 8009D9C8 25EFE810 */ addiu $t7, %lo(D_8018E810) # addiu $t7, $t7, -0x17f0
/* 09E5CC 8009D9CC 004E1821 */ addu $v1, $v0, $t6
/* 09E5D0 8009D9D0 004F2021 */ addu $a0, $v0, $t7
/* 09E5D4 8009D9D4 84680000 */ lh $t0, ($v1)
/* 09E5D8 8009D9D8 84690002 */ lh $t1, 2($v1)
/* 09E5DC 8009D9DC 848A0000 */ lh $t2, ($a0)
/* 09E5E0 8009D9E0 10000017 */ b .L8009DA40
/* 09E5E4 8009D9E4 848B0002 */ lh $t3, 2($a0)
.L8009D9E8:
/* 09E5E8 8009D9E8 28A10004 */ slti $at, $a1, 4
/* 09E5EC 8009D9EC 1420000C */ bnez $at, .L8009DA20
/* 09E5F0 8009D9F0 000510C0 */ sll $v0, $a1, 3
/* 09E5F4 8009D9F4 3C188019 */ lui $t8, %hi(D_8018E7E8) # $t8, 0x8019
/* 09E5F8 8009D9F8 3C198019 */ lui $t9, %hi(D_8018E810) # $t9, 0x8019
/* 09E5FC 8009D9FC 2718E7E8 */ addiu $t8, %lo(D_8018E7E8) # addiu $t8, $t8, -0x1818
/* 09E600 8009DA00 2739E810 */ addiu $t9, %lo(D_8018E810) # addiu $t9, $t9, -0x17f0
/* 09E604 8009DA04 00581821 */ addu $v1, $v0, $t8
/* 09E608 8009DA08 00592021 */ addu $a0, $v0, $t9
/* 09E60C 8009DA0C 84680000 */ lh $t0, ($v1)
/* 09E610 8009DA10 84690002 */ lh $t1, 2($v1)
/* 09E614 8009DA14 848A0000 */ lh $t2, ($a0)
/* 09E618 8009DA18 10000009 */ b .L8009DA40
/* 09E61C 8009DA1C 848B0002 */ lh $t3, 2($a0)
.L8009DA20:
/* 09E620 8009DA20 3C0D8016 */ lui $t5, %hi(D_8015F480) # $t5, 0x8016
/* 09E624 8009DA24 25ADF480 */ addiu $t5, %lo(D_8015F480) # addiu $t5, $t5, -0xb80
/* 09E628 8009DA28 00056180 */ sll $t4, $a1, 6
/* 09E62C 8009DA2C 018D1021 */ addu $v0, $t4, $t5
/* 09E630 8009DA30 84480030 */ lh $t0, 0x30($v0)
/* 09E634 8009DA34 84490032 */ lh $t1, 0x32($v0)
/* 09E638 8009DA38 844A002C */ lh $t2, 0x2c($v0)
/* 09E63C 8009DA3C 844B002E */ lh $t3, 0x2e($v0)
.L8009DA40:
/* 09E640 8009DA40 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015
/* 09E644 8009DA44 240F00FF */ li $t7, 255
/* 09E648 8009DA48 AFAF0020 */ sw $t7, 0x20($sp)
/* 09E64C 8009DA4C 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0)
/* 09E650 8009DA50 05410003 */ bgez $t2, .L8009DA60
/* 09E654 8009DA54 000A1043 */ sra $v0, $t2, 1
/* 09E658 8009DA58 25410001 */ addiu $at, $t2, 1
/* 09E65C 8009DA5C 00011043 */ sra $v0, $at, 1
.L8009DA60:
/* 09E660 8009DA60 01022823 */ subu $a1, $t0, $v0
/* 09E664 8009DA64 05610003 */ bgez $t3, .L8009DA74
/* 09E668 8009DA68 000B1843 */ sra $v1, $t3, 1
/* 09E66C 8009DA6C 25610001 */ addiu $at, $t3, 1
/* 09E670 8009DA70 00011843 */ sra $v1, $at, 1
.L8009DA74:
/* 09E674 8009DA74 00697021 */ addu $t6, $v1, $t1
/* 09E678 8009DA78 AFAE0010 */ sw $t6, 0x10($sp)
/* 09E67C 8009DA7C 01233023 */ subu $a2, $t1, $v1
/* 09E680 8009DA80 00483821 */ addu $a3, $v0, $t0
/* 09E684 8009DA84 AFA00014 */ sw $zero, 0x14($sp)
/* 09E688 8009DA88 AFA00018 */ sw $zero, 0x18($sp)
/* 09E68C 8009DA8C 0C02637E */ jal draw_box
/* 09E690 8009DA90 AFA0001C */ sw $zero, 0x1c($sp)
/* 09E694 8009DA94 8FBF002C */ lw $ra, 0x2c($sp)
/* 09E698 8009DA98 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 09E69C 8009DA9C AC220298 */ sw $v0, %lo(gDisplayListHead)($at)
/* 09E6A0 8009DAA0 03E00008 */ jr $ra
/* 09E6A4 8009DAA4 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,192 +0,0 @@
glabel func_8009E2F0
/* 09EEF0 8009E2F0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 09EEF4 8009E2F4 3C188019 */ lui $t8, %hi(D_8018E840) # $t8, 0x8019
/* 09EEF8 8009E2F8 AFB00030 */ sw $s0, 0x30($sp)
/* 09EEFC 8009E2FC 2718E840 */ addiu $t8, %lo(D_8018E840) # addiu $t8, $t8, -0x17c0
/* 09EF00 8009E300 00047880 */ sll $t7, $a0, 2
/* 09EF04 8009E304 AFBF0034 */ sw $ra, 0x34($sp)
/* 09EF08 8009E308 01F88021 */ addu $s0, $t7, $t8
/* 09EF0C 8009E30C 8E1F0000 */ lw $ra, ($s0)
/* 09EF10 8009E310 3C19800F */ lui $t9, %hi(D_800F0B28) # 0x800f
/* 09EF14 8009E314 AFA40048 */ sw $a0, 0x48($sp)
/* 09EF18 8009E318 033FC821 */ addu $t9, $t9, $ra
/* 09EF1C 8009E31C 832F0B28 */ lb $t7, %lo(D_800F0B28)($t9) # 0xb28($t9)
/* 09EF20 8009E320 00807025 */ move $t6, $a0
/* 09EF24 8009E324 2FE1001B */ sltiu $at, $ra, 0x1b
/* 09EF28 8009E328 11E00096 */ beqz $t7, .L8009E584
/* 09EF2C 8009E32C AFAF0038 */ sw $t7, 0x38($sp)
/* 09EF30 8009E330 1020002E */ beqz $at, .L8009E3EC
/* 09EF34 8009E334 24190026 */ li $t9, 38
/* 09EF38 8009E338 3C198019 */ lui $t9, %hi(D_8018E810) # $t9, 0x8019
/* 09EF3C 8009E33C 2739E810 */ addiu $t9, %lo(D_8018E810) # addiu $t9, $t9, -0x17f0
/* 09EF40 8009E340 000E18C0 */ sll $v1, $t6, 3
/* 09EF44 8009E344 3C188019 */ lui $t8, %hi(D_8018E7E8) # $t8, 0x8019
/* 09EF48 8009E348 2718E7E8 */ addiu $t8, %lo(D_8018E7E8) # addiu $t8, $t8, -0x1818
/* 09EF4C 8009E34C 00794821 */ addu $t1, $v1, $t9
/* 09EF50 8009E350 852B0000 */ lh $t3, ($t1)
/* 09EF54 8009E354 00784021 */ addu $t0, $v1, $t8
/* 09EF58 8009E358 852D0002 */ lh $t5, 2($t1)
/* 09EF5C 8009E35C 850C0002 */ lh $t4, 2($t0)
/* 09EF60 8009E360 850A0000 */ lh $t2, ($t0)
/* 09EF64 8009E364 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015
/* 09EF68 8009E368 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0)
/* 09EF6C 8009E36C 05610003 */ bgez $t3, .L8009E37C
/* 09EF70 8009E370 000B7043 */ sra $t6, $t3, 1
/* 09EF74 8009E374 25610001 */ addiu $at, $t3, 1
/* 09EF78 8009E378 00017043 */ sra $t6, $at, 1
.L8009E37C:
/* 09EF7C 8009E37C 01C05825 */ move $t3, $t6
/* 09EF80 8009E380 014E2823 */ subu $a1, $t2, $t6
/* 09EF84 8009E384 05A10003 */ bgez $t5, .L8009E394
/* 09EF88 8009E388 000DC043 */ sra $t8, $t5, 1
/* 09EF8C 8009E38C 25A10001 */ addiu $at, $t5, 1
/* 09EF90 8009E390 0001C043 */ sra $t8, $at, 1
.L8009E394:
/* 09EF94 8009E394 03006825 */ move $t5, $t8
/* 09EF98 8009E398 01983023 */ subu $a2, $t4, $t8
/* 09EF9C 8009E39C 0198C821 */ addu $t9, $t4, $t8
/* 09EFA0 8009E3A0 3C18800E */ lui $t8, %hi(D_800E7AC8) # $t8, 0x800e
/* 09EFA4 8009E3A4 27187AC8 */ addiu $t8, %lo(D_800E7AC8) # addiu $t8, $t8, 0x7ac8
/* 09EFA8 8009E3A8 000F70C0 */ sll $t6, $t7, 3
/* 09EFAC 8009E3AC 01D81021 */ addu $v0, $t6, $t8
/* 09EFB0 8009E3B0 AFB90010 */ sw $t9, 0x10($sp)
/* 09EFB4 8009E3B4 94590000 */ lhu $t9, ($v0)
/* 09EFB8 8009E3B8 014B3821 */ addu $a3, $t2, $t3
/* 09EFBC 8009E3BC AFB90014 */ sw $t9, 0x14($sp)
/* 09EFC0 8009E3C0 944F0002 */ lhu $t7, 2($v0)
/* 09EFC4 8009E3C4 AFAF0018 */ sw $t7, 0x18($sp)
/* 09EFC8 8009E3C8 944E0004 */ lhu $t6, 4($v0)
/* 09EFCC 8009E3CC AFAE001C */ sw $t6, 0x1c($sp)
/* 09EFD0 8009E3D0 94580006 */ lhu $t8, 6($v0)
/* 09EFD4 8009E3D4 0C02637E */ jal draw_box
/* 09EFD8 8009E3D8 AFB80020 */ sw $t8, 0x20($sp)
/* 09EFDC 8009E3DC 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 09EFE0 8009E3E0 AC220298 */ sw $v0, %lo(gDisplayListHead)($at)
/* 09EFE4 8009E3E4 10000067 */ b .L8009E584
/* 09EFE8 8009E3E8 8E1F0000 */ lw $ra, ($s0)
.L8009E3EC:
/* 09EFEC 8009E3EC 033F7823 */ subu $t7, $t9, $ra
/* 09EFF0 8009E3F0 448F2000 */ mtc1 $t7, $f4
/* 09EFF4 8009E3F4 44805000 */ mtc1 $zero, $f10
/* 09EFF8 8009E3F8 05E10006 */ bgez $t7, .L8009E414
/* 09EFFC 8009E3FC 468021A1 */ cvt.d.w $f6, $f4
/* 09F000 8009E400 3C0141F0 */ li $at, 0x41F00000 # 30.000000
/* 09F004 8009E404 44814800 */ mtc1 $at, $f9
/* 09F008 8009E408 44804000 */ mtc1 $zero, $f8
/* 09F00C 8009E40C 00000000 */ nop
/* 09F010 8009E410 46283180 */ add.d $f6, $f6, $f8
.L8009E414:
/* 09F014 8009E414 3C014026 */ li $at, 0x40260000 # 2.593750
/* 09F018 8009E418 44815800 */ mtc1 $at, $f11
/* 09F01C 8009E41C 8FA30048 */ lw $v1, 0x48($sp)
/* 09F020 8009E420 3C198019 */ lui $t9, %hi(D_8018E810) # $t9, 0x8019
/* 09F024 8009E424 462A3403 */ div.d $f16, $f6, $f10
/* 09F028 8009E428 2739E810 */ addiu $t9, %lo(D_8018E810) # addiu $t9, $t9, -0x17f0
/* 09F02C 8009E42C 3C188019 */ lui $t8, %hi(D_8018E7E8) # $t8, 0x8019
/* 09F030 8009E430 000370C0 */ sll $t6, $v1, 3
/* 09F034 8009E434 01D94821 */ addu $t1, $t6, $t9
/* 09F038 8009E438 2718E7E8 */ addiu $t8, %lo(D_8018E7E8) # addiu $t8, $t8, -0x1818
/* 09F03C 8009E43C 852B0000 */ lh $t3, ($t1)
/* 09F040 8009E440 01D84021 */ addu $t0, $t6, $t8
/* 09F044 8009E444 852D0002 */ lh $t5, 2($t1)
/* 09F048 8009E448 850C0002 */ lh $t4, 2($t0)
/* 09F04C 8009E44C 01C01825 */ move $v1, $t6
/* 09F050 8009E450 850A0000 */ lh $t2, ($t0)
/* 09F054 8009E454 8FB90038 */ lw $t9, 0x38($sp)
/* 09F058 8009E458 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015
/* 09F05C 8009E45C 8C840298 */ lw $a0, %lo(gDisplayListHead)($a0)
/* 09F060 8009E460 46208020 */ cvt.s.d $f0, $f16
/* 09F064 8009E464 05610003 */ bgez $t3, .L8009E474
/* 09F068 8009E468 000B7843 */ sra $t7, $t3, 1
/* 09F06C 8009E46C 25610001 */ addiu $at, $t3, 1
/* 09F070 8009E470 00017843 */ sra $t7, $at, 1
.L8009E474:
/* 09F074 8009E474 01E05825 */ move $t3, $t7
/* 09F078 8009E478 014F2823 */ subu $a1, $t2, $t7
/* 09F07C 8009E47C 05A10003 */ bgez $t5, .L8009E48C
/* 09F080 8009E480 000D7043 */ sra $t6, $t5, 1
/* 09F084 8009E484 25A10001 */ addiu $at, $t5, 1
/* 09F088 8009E488 00017043 */ sra $t6, $at, 1
.L8009E48C:
/* 09F08C 8009E48C 01C06825 */ move $t5, $t6
/* 09F090 8009E490 018E3023 */ subu $a2, $t4, $t6
/* 09F094 8009E494 018EC021 */ addu $t8, $t4, $t6
/* 09F098 8009E498 3C0E800E */ lui $t6, %hi(D_800E7AC8) # $t6, 0x800e
/* 09F09C 8009E49C 25CE7AC8 */ addiu $t6, %lo(D_800E7AC8) # addiu $t6, $t6, 0x7ac8
/* 09F0A0 8009E4A0 001978C0 */ sll $t7, $t9, 3
/* 09F0A4 8009E4A4 01EE1021 */ addu $v0, $t7, $t6
/* 09F0A8 8009E4A8 AFB80010 */ sw $t8, 0x10($sp)
/* 09F0AC 8009E4AC 94580000 */ lhu $t8, ($v0)
/* 09F0B0 8009E4B0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 09F0B4 8009E4B4 014B3821 */ addu $a3, $t2, $t3
/* 09F0B8 8009E4B8 AFB80014 */ sw $t8, 0x14($sp)
/* 09F0BC 8009E4BC 94590002 */ lhu $t9, 2($v0)
/* 09F0C0 8009E4C0 AFB90018 */ sw $t9, 0x18($sp)
/* 09F0C4 8009E4C4 944F0004 */ lhu $t7, 4($v0)
/* 09F0C8 8009E4C8 AFAF001C */ sw $t7, 0x1c($sp)
/* 09F0CC 8009E4CC 944E0006 */ lhu $t6, 6($v0)
/* 09F0D0 8009E4D0 448E9000 */ mtc1 $t6, $f18
/* 09F0D4 8009E4D4 05C10004 */ bgez $t6, .L8009E4E8
/* 09F0D8 8009E4D8 46809120 */ cvt.s.w $f4, $f18
/* 09F0DC 8009E4DC 44814000 */ mtc1 $at, $f8
/* 09F0E0 8009E4E0 00000000 */ nop
/* 09F0E4 8009E4E4 46082100 */ add.s $f4, $f4, $f8
.L8009E4E8:
/* 09F0E8 8009E4E8 46002182 */ mul.s $f6, $f4, $f0
/* 09F0EC 8009E4EC 24190001 */ li $t9, 1
/* 09F0F0 8009E4F0 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 09F0F4 8009E4F4 4458F800 */ cfc1 $t8, $31
/* 09F0F8 8009E4F8 44D9F800 */ ctc1 $t9, $31
/* 09F0FC 8009E4FC 00000000 */ nop
/* 09F100 8009E500 460032A4 */ cvt.w.s $f10, $f6
/* 09F104 8009E504 4459F800 */ cfc1 $t9, $31
/* 09F108 8009E508 00000000 */ nop
/* 09F10C 8009E50C 33390078 */ andi $t9, $t9, 0x78
/* 09F110 8009E510 53200013 */ beql $t9, $zero, .L8009E560
/* 09F114 8009E514 44195000 */ mfc1 $t9, $f10
/* 09F118 8009E518 44815000 */ mtc1 $at, $f10
/* 09F11C 8009E51C 24190001 */ li $t9, 1
/* 09F120 8009E520 460A3281 */ sub.s $f10, $f6, $f10
/* 09F124 8009E524 44D9F800 */ ctc1 $t9, $31
/* 09F128 8009E528 00000000 */ nop
/* 09F12C 8009E52C 460052A4 */ cvt.w.s $f10, $f10
/* 09F130 8009E530 4459F800 */ cfc1 $t9, $31
/* 09F134 8009E534 00000000 */ nop
/* 09F138 8009E538 33390078 */ andi $t9, $t9, 0x78
/* 09F13C 8009E53C 17200005 */ bnez $t9, .L8009E554
/* 09F140 8009E540 00000000 */ nop
/* 09F144 8009E544 44195000 */ mfc1 $t9, $f10
/* 09F148 8009E548 3C018000 */ lui $at, 0x8000
/* 09F14C 8009E54C 10000007 */ b .L8009E56C
/* 09F150 8009E550 0321C825 */ or $t9, $t9, $at
.L8009E554:
/* 09F154 8009E554 10000005 */ b .L8009E56C
/* 09F158 8009E558 2419FFFF */ li $t9, -1
/* 09F15C 8009E55C 44195000 */ mfc1 $t9, $f10
.L8009E560:
/* 09F160 8009E560 00000000 */ nop
/* 09F164 8009E564 0720FFFB */ bltz $t9, .L8009E554
/* 09F168 8009E568 00000000 */ nop
.L8009E56C:
/* 09F16C 8009E56C 44D8F800 */ ctc1 $t8, $31
/* 09F170 8009E570 0C02637E */ jal draw_box
/* 09F174 8009E574 AFB90020 */ sw $t9, 0x20($sp)
/* 09F178 8009E578 3C018015 */ lui $at, %hi(gDisplayListHead) # $at, 0x8015
/* 09F17C 8009E57C AC220298 */ sw $v0, %lo(gDisplayListHead)($at)
/* 09F180 8009E580 8E1F0000 */ lw $ra, ($s0)
.L8009E584:
/* 09F184 8009E584 27EF0001 */ addiu $t7, $ra, 1
/* 09F188 8009E588 2DE10026 */ sltiu $at, $t7, 0x26
/* 09F18C 8009E58C 14200006 */ bnez $at, .L8009E5A8
/* 09F190 8009E590 AE0F0000 */ sw $t7, ($s0)
/* 09F194 8009E594 3C018019 */ lui $at, %hi(D_8018E838) # $at, 0x8019
/* 09F198 8009E598 A020E839 */ sb $zero, %lo(D_8018E838+0x1)($at)
/* 09F19C 8009E59C A020E83A */ sb $zero, %lo(D_8018E838+0x2)($at)
/* 09F1A0 8009E5A0 A020E83B */ sb $zero, %lo(D_8018E838+0x3)($at)
/* 09F1A4 8009E5A4 A020E838 */ sb $zero, %lo(D_8018E838)($at)
.L8009E5A8:
/* 09F1A8 8009E5A8 8FBF0034 */ lw $ra, 0x34($sp)
/* 09F1AC 8009E5AC 8FB00030 */ lw $s0, 0x30($sp)
/* 09F1B0 8009E5B0 27BD0048 */ addiu $sp, $sp, 0x48
/* 09F1B4 8009E5B4 03E00008 */ jr $ra
/* 09F1B8 8009E5B8 00000000 */ nop

View File

@ -109,11 +109,4 @@ struct UnkStruct_800DDB68 {
s32 *D_800ED620; s32 *D_800ED628; s32 *D_800ED630; s32 *D_800ED638;
};
struct UnkStruct_8018E7E8 {
s16 x;
s16 y;
s16 unk1;
s16 unk2;
};
#endif /* TYPES_H */

View File

@ -52,8 +52,8 @@ s8 D_8018D9D8;
s8 D_8018D9D9;
struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE];
struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE];
s32 D_8018E060;
UNUSED s32 D_8018E068[32];
struct_8018E060_entry D_8018E060[D_8018E060_SIZE];
UNUSED u8 code_80091750_bss_padding0[8];
struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
s32 gD_8018E118TotalSize;
struct_8018E118_entry D_8018E118[D_8018E118_SIZE];
@ -68,30 +68,8 @@ s32 D_8018E7B8[4];
u32 D_8018E7C8;
u32 D_8018E7D0[4];
s32 D_8018E7E0;
struct UnkStruct_8018E7E8 D_8018E7E8[1];
s16 D_8018E7F0;
UNUSED s32 D_8018E7F4;
s16 D_8018E7F8;
//! @todo Unknown type
s16 D_8018E7FA;
UNUSED s32 D_8018E7FC;
//! @todo Unknown type
s16 D_8018E800;
s16 D_8018E802;
UNUSED s32 D_8018E808[2];
struct UnkStruct_8018E7E8 D_8018E810[1];
s16 D_8018E818;
//! @todo Unknown type
s16 D_8018E81A;
UNUSED s32 D_8018E81C;
//! @todo these are likely arrays.
s16 D_8018E820;
//! @todo This may not be the right file for them.
s16 D_8018E822;
s32 code_80091750_pad_1;
s16 D_8018E828;
s16 D_8018E82A;
s32 code_80091750_pad_2[2];
struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];
struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE];
s8 D_8018E838[4]; // Import to C was required for matching.
s32 D_8018E83C;
@ -1461,6 +1439,7 @@ f64 func_8009186C(f64 arg0) {
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/dXpT5
// Some math reordering issues on the continued fraction line
f64 func_8009195C(f64 arg0) {
s32 temp_f10;
@ -4959,55 +4938,39 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099958.s")
// Possibly a debug print function?
void func_80099A70(void) {
s32 i;
D_8018E060 = 0;
for (i = 0; i < 16; i++) { }
D_8018E060[0].texture = NULL;
for (i = 0; i < D_8018E060_SIZE; i++) { }
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
extern void *D_8018E060;
void func_80099A94(MkTexture *arg0, s32 arg1) {
void **sp1C;
s32 temp_t7;
void **var_v1;
struct_8018E060_entry *var_v1;
var_v1 = &D_8018E060;
if (D_8018E060 != NULL) {
do {
temp_t7 = var_v1->unk8;
var_v1 += 8;
} while (temp_t7 != 0);
var_v1 = &D_8018E060[0];
while(var_v1->texture != NULL) {
var_v1++;
}
sp1C = var_v1;
var_v1->unk0 = segmented_to_virtual_dupe(arg0);
var_v1->unk4 = arg1;
var_v1->texture = segmented_to_virtual_dupe(arg0);
var_v1->unk_4 = arg1;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099A94.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
extern u8 *D_8018D9B4;
extern void *D_8018E060;
//generated by m2c commit a39b70e85329b0bcaeb4350510ddb23dc9840dce on Feb-04-2024
void func_80099AEC(void) {
OSIoMesg sp6C;
void *sp68;
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_s1;
void **var_s1;
void *temp_s2;
void *temp_v0;
void *temp_v0_2;
@ -5016,11 +4979,11 @@ void func_80099AEC(void) {
} else {
sp60 = 0x00001000;
}
var_s1 = &D_8018E060;
temp_s2 = D_8018E060;
var_s1 = D_8018E060;
temp_s2 = D_8018E060->texture;
var_s5 = 0;
if (temp_s2 != NULL) {
temp_v1 = temp_s2->unk10;
temp_v1 = temp_s2->size;
var_s0 = 0x1400;
if (temp_v1 != 0) {
var_s0 = temp_v1;
@ -5030,7 +4993,7 @@ void func_80099AEC(void) {
}
osInvalDCache(D_8018D9B4, (u32) var_s0);
sp58 = _textures_0aSegmentRomStart;
osPiStartDma(&sp6C, 0, 0, (u32) &_textures_0aSegmentRomStart[temp_s2->unk4 & 0xFFFFFF], D_8018D9B4, (u32) var_s0, &gDmaMesgQueue);
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;
@ -5050,8 +5013,8 @@ loop_9:
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);
}
mio0decode(D_8018D9B4, (D_8018E118[var_s1->unk4].offset * 2) + D_8018D9B0);
var_s1->unk0 = NULL;
mio0decode(D_8018D9B4, (u8 *) &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);
@ -5070,8 +5033,8 @@ loop_9:
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);
}
mio0decode((sp60 * 4) + D_8018D9B4, (D_8018E118[temp_s1->unk4].offset * 2) + D_8018D9B0);
temp_s1->unk0 = NULL;
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);
@ -5101,33 +5064,30 @@ void func_80099E60(MkTexture *arg0, s32 arg1, s32 arg2) {
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
extern u8 *D_8018D9B4;
extern void *D_8018E0E8;
//generated by m2c commit a39b70e85329b0bcaeb4350510ddb23dc9840dce on Feb-04-2024
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;
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_s1;
void **var_s1;
void *temp_s2;
void *temp_v0;
void *temp_v0_3;
var_s1 = &D_8018E0E8;
temp_s2 = D_8018E0E8;
var_s1 = D_8018E0E8;
temp_s2 = D_8018E0E8->mk64Texture;
var_s4 = 0;
if (temp_s2 != NULL) {
temp_v1 = temp_s2->unk10;
temp_v1 = temp_s2->size;
var_s0 = 0x1400;
if (temp_v1 != 0) {
var_s0 = temp_v1;
@ -5136,7 +5096,7 @@ void func_80099EC4(void) {
var_s0 = (((s32) var_s0 / 8) * 8) + 8;
}
osInvalDCache(D_8018D9B4, (u32) var_s0);
osPiStartDma(&sp68, 0, 0, (u32) &_textures_0aSegmentRomStart[temp_s2->unk4 & 0xFFFFFF], D_8018D9B4, (u32) var_s0, &gDmaMesgQueue);
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;
@ -5156,7 +5116,7 @@ loop_6:
}
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->unk0 = NULL;
var_s1->mk64Texture = NULL;
temp_s1 = var_s1 + 8;
if (var_s4 == 0) {
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
@ -5177,7 +5137,7 @@ loop_6:
}
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->unk0 = NULL;
temp_s1->mk64Texture = NULL;
var_s1 = temp_s1 + 8;
if (var_s4 == 0) {
osRecvMesg(&gDmaMesgQueue, &sp64, 1);
@ -5849,42 +5809,21 @@ Gfx *func_8009C708(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009C708.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
extern ? D_8018E7E8;
extern s16 D_8018E7F0;
extern s16 D_8018E7F8;
extern s16 D_8018E802;
extern ? D_8018E810;
extern s16 D_8018E818;
extern s16 D_8018E822;
extern s16 D_8018E828;
void func_8009C918(void) {
D_8018E7E8.unk0 = (s16) D_8015F480->screenStartX;
D_8018E7E8.unk0 = (s16) D_8015F480->screenStartY;
D_8018E810.unk0 = (s16) D_8015F480->screenWidth;
D_8018E810.unk0 = (s16) D_8015F480->screenHeight;
D_8018E7F0 = *(D_8015F480 + 0x72);
D_8018E7F0 = *(D_8015F480 + 0x70);
D_8018E818 = *(D_8015F480 + 0x6E);
D_8018E818 = *(D_8015F480 + 0x6C);
D_8018E7F8 = *(D_8015F480 + 0xB2);
D_8018E7F8 = *(D_8015F480 + 0xB0);
D_8018E822 = *(D_8015F480 + 0xAC);
D_8018E822 = *(D_8015F480 + 0xAE);
D_8018E802 = *(D_8015F480 + 0xF0);
D_8018E802 = *(D_8015F480 + 0xF2);
D_8018E828 = *(D_8015F480 + 0xEE);
D_8018E828 = *(D_8015F480 + 0xEC);
D_8018E7E8.unk20 = 0x00A0;
D_8018E7E8.unk22 = 0x0078;
D_8018E810.unk20 = 0x0140;
D_8018E810.unk22 = 0x00F0;
s32 someIndex;
for (someIndex = 0; someIndex < 4; someIndex++) {
D_8018E7E8[someIndex].x = D_8015F480[someIndex].screenStartX;
D_8018E7E8[someIndex].y = D_8015F480[someIndex].screenStartY;
D_8018E810[someIndex].x = D_8015F480[someIndex].screenWidth;
D_8018E810[someIndex].y = D_8015F480[someIndex].screenHeight;
}
D_8018E7E8[4].x = 0x00A0;
D_8018E7E8[4].y = 0x0078;
D_8018E810[4].x = 0x0140;
D_8018E810[4].y = 0x00F0;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009C918.s")
#endif
void func_8009CA2C(void) {
s32 var_s0;
@ -5894,29 +5833,22 @@ void func_8009CA2C(void) {
}
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
? func_8009D998(s32, s32, s32); /* extern */
? func_8009DAA8(Gfx **, s32, s32); /* extern */
? func_8009DB8C(Gfx **, s32, s32); /* extern */
extern ? D_8018E7AC;
void func_8009CA6C(s32 arg0) {
Gfx *temp_v1;
s32 var_a1;
u8 temp_t0;
if ((arg0 == 4) || ((find_8018D9E0_entry(0x000000AA) == NULL) && (find_8018D9E0_entry(0x000000AB) == NULL) && (find_8018D9E0_entry(0x000000B9) == NULL) && (find_8018D9E0_entry(0x000000BA) == NULL) && (find_8018D9E0_entry(0x000000AC) == NULL) && (find_8018D9E0_entry(0x000000B0) == NULL))) {
temp_v1 = gDisplayListHead;
gDisplayListHead = temp_v1 + 8;
if ((arg0 == 4) ||
((find_8018D9E0_entry(0x000000AA) == NULL) &&
(find_8018D9E0_entry(0x000000AB) == NULL) &&
(find_8018D9E0_entry(0x000000B9) == NULL) &&
(find_8018D9E0_entry(0x000000BA) == NULL) &&
(find_8018D9E0_entry(0x000000AC) == NULL) &&
(find_8018D9E0_entry(0x000000B0) == NULL))) {
var_a1 = 0;
temp_v1->words.w0 = 0x06000000;
temp_v1->words.w1 = (u32) D_0D0076F8;
gSPDisplayList(gDisplayListHead++, D_0D0076F8);
if ((arg0 != 4) && (gIsGamePaused != 0)) {
var_a1 = 1;
}
temp_t0 = *(&D_8018E7AC + arg0);
switch (temp_t0) {
switch (D_8018E7AC[arg0]) {
case 1:
func_8009CDDC(arg0, var_a1);
return;
@ -5924,13 +5856,13 @@ void func_8009CA6C(s32 arg0) {
func_8009D958(arg0, var_a1);
return;
case 3:
func_8009DB8C(&gDisplayListHead, var_a1, arg0);
func_8009DB8C();
return;
case 4:
func_8009DAA8(&gDisplayListHead, var_a1, arg0);
func_8009DAA8();
return;
case 5:
func_8009D998(arg0, var_a1, arg0);
func_8009D998(arg0);
return;
case 7:
func_8009D978(arg0, var_a1);
@ -5938,17 +5870,12 @@ void func_8009CA6C(s32 arg0) {
case 8:
func_8009CDFC(arg0, var_a1);
break;
case 0:
default:
break;
}
} else {
default:
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009CA6C.s")
#endif
extern struct UnkStruct_8018E7E8 D_8018E7E8[];
extern struct UnkStruct_8018E7E8 D_8018E810[];
void func_8009CBE4(s32 arg0, s32 arg1, s32 arg2) {
RGBA16* color;
@ -6344,80 +6271,55 @@ func_8009CE64_label1:
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009CE64.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-23-2023
extern ? D_8018E7D0;
extern ? D_8018E7E8;
extern ? D_8018E810;
void func_8009D77C(s32 arg0, s32 arg1, s32 arg2) {
s32 sp44;
u32 *sp3C;
s32 *sp38;
RGBA16 *temp_v0_4;
s16 var_ra;
s16 var_t3;
s16 var_t4;
s32 *temp_t5;
s32 temp_t8;
s32 temp_v0;
s32 temp_v0_2;
s32 temp_v1_3;
struct UnkStruct_800DC5EC *temp_v0_3;
u32 *temp_t1;
u32 temp_t6;
u32 var_t2;
void *temp_a0;
void *temp_a0_2;
void *temp_v1;
void *temp_v1_2;
s32 temp_v1;
s32 var_t2;
s32 someMath0;
s32 someMath1;
RGBA16 *temp_v0_2;
s32 sp44;
s32 stackPadding0;
if ((gModeSelection == 0) || (gModeSelection == 1)) {
temp_v0 = arg0 * 8;
temp_a0 = temp_v0 + &D_8018E810;
temp_v1 = temp_v0 + &D_8018E7E8;
var_t3 = temp_v1->unk0;
var_t4 = temp_v1->unk2;
var_ra = temp_a0->unk0;
sp44 = (s32) temp_a0->unk2;
var_t3 = D_8018E7E8[arg0].x;
var_t4 = D_8018E7E8[arg0].y;
var_ra = D_8018E810[arg0].x;
sp44 = D_8018E810[arg0].y;
} else if (arg0 >= 4) {
temp_v0_2 = arg0 * 8;
temp_a0_2 = temp_v0_2 + &D_8018E810;
temp_v1_2 = temp_v0_2 + &D_8018E7E8;
var_t3 = temp_v1_2->unk0;
var_t4 = temp_v1_2->unk2;
var_ra = temp_a0_2->unk0;
sp44 = (s32) temp_a0_2->unk2;
var_t3 = D_8018E7E8[arg0].x;
var_t4 = D_8018E7E8[arg0].y;
var_ra = D_8018E810[arg0].x;
sp44 = D_8018E810[arg0].y;
} else {
temp_v0_3 = &D_8015F480[arg0];
var_t3 = temp_v0_3->screenStartX;
var_t4 = temp_v0_3->screenStartY;
var_ra = temp_v0_3->screenWidth;
sp44 = (s32) temp_v0_3->screenHeight;
var_t3 = D_8015F480[arg0].screenStartX;
var_t4 = D_8015F480[arg0].screenStartY;
var_ra = D_8015F480[arg0].screenWidth;
sp44 = D_8015F480[arg0].screenHeight;
}
temp_t1 = (arg0 * 4) + &D_8018E7D0;
temp_t5 = &D_8018E7B8[arg0];
var_t2 = (u32) (*temp_t1 * 0xFF) / (u32) *temp_t5;
if ((s32) var_t2 >= 0x100) {
var_t2 = (D_8018E7D0[arg0] * 0xFF) / D_8018E7B8[arg0];
if (var_t2 >= 0x100) {
var_t2 = 0x000000FF;
}
temp_v1_3 = var_ra / 2;
temp_v1 = var_ra / 2;
temp_t8 = sp44 / 2;
temp_v0_4 = &D_800E7AE8[arg2];
sp3C = temp_t1;
sp38 = temp_t5;
gDisplayListHead = draw_box(gDisplayListHead, var_t3 - temp_v1_3, var_t4 - temp_t8, temp_v1_3 + var_t3, temp_t8 + var_t4, (s32) temp_v0_4->red, (s32) temp_v0_4->green, (s32) temp_v0_4->blue, (s32) var_t2);
temp_v0_2 = &D_800E7AE8[arg2];
// Why does it have to written like this to match?
someMath0 = temp_v1;
someMath0 += var_t3;
someMath1 = temp_t8;
someMath1 += var_t4;
gDisplayListHead = draw_box(gDisplayListHead, var_t3 - temp_v1, var_t4 - temp_t8, someMath0, someMath1, temp_v0_2->red, temp_v0_2->green, temp_v0_2->blue, var_t2);
if (arg1 == 0) {
temp_t6 = *temp_t1 + 1;
*temp_t1 = temp_t6;
if ((u32) (*temp_t5 + 1) < temp_t6) {
D_8018E7D0[arg0]++;
if ((D_8018E7B8[arg0] + 1) < D_8018E7D0[arg0]) {
func_8009CE64(arg0);
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009D77C.s")
#endif
void func_8009D958(s32 arg0, s32 arg1) {
func_8009D77C(arg0, arg1, 0);
@ -6427,58 +6329,41 @@ void func_8009D978(s32 arg0, s32 arg1) {
func_8009D77C(arg0, arg1, 1);
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
extern ? D_8018E7E8;
extern ? D_8018E810;
void func_8009D998(s32 arg0) {
s16 var_t0;
s16 var_t1;
s16 var_t2;
s16 var_t3;
s32 temp_v0;
s32 temp_v0_2;
s32 temp_v0_4;
s32 temp_v1_3;
struct UnkStruct_800DC5EC *temp_v0_3;
void *temp_a0;
void *temp_a0_2;
void *temp_v1;
void *temp_v1_2;
s32 temp_v1;
s32 someMath0;
s32 someMath1;
if ((gModeSelection == 0) || (gModeSelection == 1)) {
temp_v0 = arg0 * 8;
temp_v1 = temp_v0 + &D_8018E7E8;
temp_a0 = temp_v0 + &D_8018E810;
var_t0 = temp_v1->unk0;
var_t1 = temp_v1->unk2;
var_t2 = temp_a0->unk0;
var_t3 = temp_a0->unk2;
var_t0 = D_8018E7E8[arg0].x;
var_t1 = D_8018E7E8[arg0].y;
var_t2 = D_8018E810[arg0].x;
var_t3 = D_8018E810[arg0].y;
} else if (arg0 >= 4) {
var_t0 = D_8018E7E8[arg0].x;
var_t1 = D_8018E7E8[arg0].y;
var_t2 = D_8018E810[arg0].x;
var_t3 = D_8018E810[arg0].y;
} else {
temp_v0_2 = arg0 * 8;
if (arg0 >= 4) {
temp_v1_2 = temp_v0_2 + &D_8018E7E8;
temp_a0_2 = temp_v0_2 + &D_8018E810;
var_t0 = temp_v1_2->unk0;
var_t1 = temp_v1_2->unk2;
var_t2 = temp_a0_2->unk0;
var_t3 = temp_a0_2->unk2;
} else {
temp_v0_3 = &D_8015F480[arg0];
var_t0 = temp_v0_3->screenStartX;
var_t1 = temp_v0_3->screenStartY;
var_t2 = temp_v0_3->screenWidth;
var_t3 = temp_v0_3->screenHeight;
}
var_t0 = D_8015F480[arg0].screenStartX;
var_t1 = D_8015F480[arg0].screenStartY;
var_t2 = D_8015F480[arg0].screenWidth;
var_t3 = D_8015F480[arg0].screenHeight;
}
temp_v0_4 = var_t2 / 2;
temp_v1_3 = var_t3 / 2;
gDisplayListHead = draw_box(gDisplayListHead, var_t0 - temp_v0_4, var_t1 - temp_v1_3, temp_v0_4 + var_t0, temp_v1_3 + var_t1, 0, 0, 0, 0x000000FF);
temp_v0 = var_t2 / 2;
temp_v1 = var_t3 / 2;
// Why does it have to written like this to match?
someMath0 = temp_v0;
someMath0 += var_t0;
someMath1 = temp_v1;
someMath1 += var_t1;
gDisplayListHead = draw_box(gDisplayListHead, var_t0 - temp_v0, var_t1 - temp_v1, someMath0, someMath1, 0, 0, 0, 0x000000FF);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009D998.s")
#endif
void func_8009DAA8(void) {
u32 var_t0;
@ -6688,7 +6573,7 @@ void func_8009E2A8(s32 arg0) {
case 0:
break;
case 1:
func_8009E2F0();
func_8009E2F0(arg0);
break;
default:
D_8018E838[arg0] = 0;
@ -6696,81 +6581,35 @@ void func_8009E2A8(s32 arg0) {
}
}
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023
extern ? D_8018E7E8;
extern ? D_8018E810;
void func_8009E2F0(s32 arg0) {
s32 sp38;
s32 stackPadding0;
s32 stackPadding1;
s32 someIndex;
s32 temp_t7;
f32 temp_t7_2;
RGBA16 *temp_v0;
f32 var_f4;
f64 var_f6;
s16 temp_t2;
s16 temp_t2_2;
s16 temp_t4;
s32 *temp_s0;
s32 temp_ra;
s32 temp_t6;
s32 temp_t6_2;
s32 temp_t7_2;
s32 temp_t7_3;
s32 temp_t8;
s32 temp_v1;
s8 temp_t7;
u16 temp_t6_3;
u32 temp_t7_4;
void *temp_t0;
void *temp_t0_2;
void *temp_t1;
void *temp_t1_2;
struct UnkStruct_8018E7E8 *temp_t0;
struct UnkStruct_8018E7E8 *temp_t1;
temp_s0 = &D_8018E840[arg0];
temp_ra = *temp_s0;
temp_t7 = D_800F0B28[temp_ra];
sp38 = (s32) temp_t7;
temp_t7 = D_800F0B28[D_8018E840[arg0]];
if (temp_t7 != 0) {
if ((u32) temp_ra < 0x1BU) {
temp_v1 = arg0 * 8;
temp_t1 = temp_v1 + &D_8018E810;
temp_t0 = temp_v1 + &D_8018E7E8;
temp_t4 = temp_t0->unk2;
temp_t2 = temp_t0->unk0;
temp_t6 = (s16) temp_t1->unk0 / 2;
temp_t8 = (s16) temp_t1->unk2 / 2;
temp_v0 = &D_800E7AC8[temp_t7];
gDisplayListHead = draw_box(gDisplayListHead, temp_t2 - temp_t6, temp_t4 - temp_t8, temp_t2 + temp_t6, temp_t4 + temp_t8, (s32) temp_v0->red, (s32) temp_v0->green, (s32) temp_v0->blue, (s32) temp_v0->alpha);
temp_t1 = &D_8018E7E8[arg0];
temp_t0 = &D_8018E810[arg0];
temp_v0 = &D_800E7AC8[temp_t7];
if (D_8018E840[arg0] < 0x1BU) {
gDisplayListHead = draw_box(gDisplayListHead, temp_t1->x - (temp_t0->x / 2), temp_t1->y - (temp_t0->y / 2), temp_t1->x + (temp_t0->x / 2), temp_t1->y + (temp_t0->y / 2), temp_v0->red, temp_v0->green, temp_v0->blue, temp_v0->alpha);
} else {
temp_t7_2 = 0x26 - temp_ra;
var_f6 = (f64) temp_t7_2;
if (temp_t7_2 < 0) {
var_f6 += 4294967296.0;
}
temp_t6_2 = arg0 * 8;
temp_t1_2 = temp_t6_2 + &D_8018E810;
temp_t0_2 = temp_t6_2 + &D_8018E7E8;
temp_t2_2 = temp_t0_2->unk0;
temp_t7_3 = (s16) temp_t1_2->unk0 / 2;
temp_t6_3 = D_800E7AC8[sp38].alpha;
var_f4 = (f32) temp_t6_3;
if ((s32) temp_t6_3 < 0) {
var_f4 += 4294967296.0f;
}
gDisplayListHead = draw_box(gDisplayListHead, temp_t2_2 - temp_t7_3, temp_t0_2->unk2 - ((s16) temp_t1_2->unk2 / 2), temp_t2_2 + temp_t7_3, M2C_ERROR(/* Unable to find stack arg 0x10 in block */), M2C_ERROR(/* Unable to find stack arg 0x14 in block */), M2C_ERROR(/* Unable to find stack arg 0x18 in block */), M2C_ERROR(/* Unable to find stack arg 0x1c in block */), (s32) (u32) (var_f4 * (f32) (var_f6 / 11.0)));
temp_t7_2 = ((u32)(38 - D_8018E840[arg0])) / 11.0;
gDisplayListHead = draw_box(gDisplayListHead, temp_t1->x - (temp_t0->x / 2), temp_t1->y - (temp_t0->y / 2), temp_t1->x + (temp_t0->x / 2), temp_t1->y +(temp_t0->y / 2), temp_v0->red, temp_v0->green, temp_v0->blue, (u32) (temp_v0->alpha * temp_t7_2));
}
}
temp_t7_4 = *temp_s0 + 1;
*temp_s0 = (s32) temp_t7_4;
if (temp_t7_4 >= 0x26U) {
*D_8018E838 = 0;
*D_8018E838 = 0;
*D_8018E838 = 0;
*D_8018E838 = 0;
D_8018E840[arg0]++;
if (D_8018E840[arg0] >= 0x26U) {
for (someIndex = 0; someIndex < 4; someIndex++) {
D_8018E838[someIndex] = 0;
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009E2F0.s")
#endif
void func_8009E5BC(void) {
s32 i;
@ -9119,8 +8958,6 @@ void func_800A4BC8(struct_8018D9E0_entry *arg0) {
// Register allocation differnces, no idea what the main cause is.
// Permuter hasn't had any luck either
extern struct UnkStruct_800DC5EC D_8015F480[];
extern Unk_D_800E70A0 D_800E8540[][4]; /* unable to generate initializer */
extern char *D_800E775C[];
void func_800A4EF8(struct_8018D9E0_entry *arg0) {
s16 temp_t0;
@ -9157,8 +8994,6 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A4EF8.s")
// https://decomp.me/scratch/kPoax
// Just register allocation differences, something to do with the way
// `gScreenModeSelection` is getting accessed. Permuter hasn't had luck yet
extern char *D_800E775C[];
extern Unk_D_800E70A0 D_800E85C0[][4];
extern struct UnkStruct_800DC5EC D_8015F480[];
void func_800A5084(struct_8018D9E0_entry *arg0) {
@ -12526,10 +12361,7 @@ void func_800ACC50(struct_8018D9E0_entry *arg0) {
}
#ifdef NON_MATCHING
// Also needs some rodata
// Just register allocation differences, can't figure out the source of it
extern Unk_D_800E70A0 D_800E72F8; /* unable to generate initializer */
extern Unk_D_800E70A0 D_800E7300[][4]; /* unable to generate initializer */
void func_800ACF40(struct_8018D9E0_entry *arg0) {
Unk_D_800E70A0 *temp_v0_2;

View File

@ -35,6 +35,11 @@ typedef struct {
/* 0x14 */ s32 unk14; // Flip flops between 0 and 1, use unknown
} struct_8018DEE0_entry; // size = 0x18
typedef struct {
/* 0x0 */ MkTexture *texture;
/* 0x4 */ s32 unk_4;
} struct_8018E060_entry; // size = 0x8
typedef struct {
/* 0x0 */ MkTexture *mk64Texture;
/* 0x4 */ s16 unk4;
@ -57,6 +62,13 @@ typedef struct {
/* 0x04 */ Gfx *displayList;
} struct_8018E768_entry; // size = 0x08
struct UnkStruct_8018E7E8 {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 unk1;
/* 0x6 */ s16 unk2;
}; // size = 0x8
typedef struct {
/* 0x00 */ s16 column;
/* 0x02 */ s16 row;
@ -196,6 +208,7 @@ void func_8009CE64(s32);
void func_8009D77C(s32,s32,s32);
void func_8009D958(s32, s32);
void func_8009D978(s32, s32);
void func_8009D998(s32);
void func_8009DAA8(void);
void func_8009DB8C(void);
void func_8009DEF8(u32, u32);
@ -214,7 +227,7 @@ void func_8009E230(void);
void func_8009E258(void);
void func_8009E280(void);
void func_8009E2A8(s32);
void func_8009E2F0(void);
void func_8009E2F0(s32);
void func_8009E5BC(void);
void func_8009E5FC(s32);
void func_8009E620(void);
@ -381,9 +394,12 @@ typedef struct struct_8018EE10_entry_cont {
#define D_8018D9E0_SIZE 0x20
#define D_8018DEE0_SIZE 0x10
#define D_8018E060_SIZE 0x10
#define D_8018E0E8_SIZE 0x05
#define D_8018E118_SIZE 0xC8
#define D_8018E768_SIZE 0x08
#define D_8018E7E8_SIZE 0x05
#define D_8018E810_SIZE 0x05
/* This is where I'd put my static data, if I had any */
@ -402,7 +418,7 @@ extern s8 D_8018D9D8;
extern s8 D_8018D9D9;
extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE];
extern struct_8018DEE0_entry D_8018DEE0[D_8018DEE0_SIZE];
extern s32 D_8018E060;
extern struct_8018E060_entry D_8018E060[D_8018E060_SIZE];
extern struct_8018E0E8_entry D_8018E0E8[D_8018E0E8_SIZE];
extern s32 gD_8018E118TotalSize;
extern struct_8018E118_entry D_8018E118[D_8018E118_SIZE];
@ -417,8 +433,8 @@ extern s32 D_8018E7B8[];
extern u32 D_8018E7C8;
extern u32 D_8018E7D0[];
extern s32 D_8018E7E0;
extern s16 D_8018E7F0;
extern s16 D_8018E7F8;
extern struct UnkStruct_8018E7E8 D_8018E7E8[D_8018E7E8_SIZE];
extern struct UnkStruct_8018E7E8 D_8018E810[D_8018E810_SIZE];
extern s8 gTextColor;
extern u8 D_8018ED90;
extern u8 D_8018ED91;

View File

@ -4677,7 +4677,7 @@ Variable Name | Memory Address
[D_8018D9E0](@ref D_8018D9E0) | 0x8018D9E0
[D_8018DEE0](@ref D_8018DEE0) | 0x8018DEE0
[D_8018E060](@ref D_8018E060) | 0x8018E060
[D_8018E068](@ref D_8018E068) | 0x8018E068
[code_80091750_bss_padding0](@ref code_80091750_bss_padding0) | 0x8018E0E0
[D_8018E0E8](@ref D_8018E0E8) | 0x8018E0E8
[gD_8018E118TotalSize](@ref gD_8018E118TotalSize) | 0x8018E110
[D_8018E118](@ref D_8018E118) | 0x8018E118
@ -4693,24 +4693,7 @@ Variable Name | Memory Address
[D_8018E7D0](@ref D_8018E7D0) | 0x8018E7D0
[D_8018E7E0](@ref D_8018E7E0) | 0x8018E7E0
[D_8018E7E8](@ref D_8018E7E8) | 0x8018E7E8
[D_8018E7F0](@ref D_8018E7F0) | 0x8018E7F0
[D_8018E7F4](@ref D_8018E7F4) | 0x8018E7F4
[D_8018E7F8](@ref D_8018E7F8) | 0x8018E7F8
[D_8018E7FA](@ref D_8018E7FA) | 0x8018E7FA
[D_8018E7FC](@ref D_8018E7FC) | 0x8018E7FC
[D_8018E800](@ref D_8018E800) | 0x8018E800
[D_8018E802](@ref D_8018E802) | 0x8018E802
[D_8018E808](@ref D_8018E808) | 0x8018E808
[D_8018E810](@ref D_8018E810) | 0x8018E810
[D_8018E818](@ref D_8018E818) | 0x8018E818
[D_8018E81A](@ref D_8018E81A) | 0x8018E81A
[D_8018E81C](@ref D_8018E81C) | 0x8018E81C
[D_8018E820](@ref D_8018E820) | 0x8018E820
[D_8018E822](@ref D_8018E822) | 0x8018E822
[code_80091750_pad_1](@ref code_80091750_pad_1) | 0x8018E824
[D_8018E828](@ref D_8018E828) | 0x8018E828
[D_8018E82A](@ref D_8018E82A) | 0x8018E82A
[code_80091750_pad_2](@ref code_80091750_pad_2) | 0x8018E830
[D_8018E838](@ref D_8018E838) | 0x8018E838
[D_8018E83C](@ref D_8018E83C) | 0x8018E83C
[D_8018E840](@ref D_8018E840) | 0x8018E840