diff --git a/asm/bss_8001C4D0.s b/asm/bss_8001C4D0.s index 5992e55c1..4c97a1306 100644 --- a/asm/bss_8001C4D0.s +++ b/asm/bss_8001C4D0.s @@ -1761,6 +1761,8 @@ glabel D_8018D9D9 glabel D_8018D9E0 .skip 1280 +# The size of D_8018DEE0 should be +# 384, D_8018DEE4 is fake glabel D_8018DEE0 .skip 4 @@ -1776,6 +1778,8 @@ glabel D_8018E0E8 glabel gD_8018E118TotalSize .skip 8 +# The size of D_8018E118 should be +# 1600, D_8018E11C and D_8018E124 are fake glabel D_8018E118 .skip 4 diff --git a/asm/non_matchings/code_80091750/func_800942D0.s b/asm/non_matchings/code_80091750/func_800942D0.s deleted file mode 100644 index 8422ead94..000000000 --- a/asm/non_matchings/code_80091750/func_800942D0.s +++ /dev/null @@ -1,231 +0,0 @@ -glabel func_800942D0 -/* 094ED0 800942D0 27BDFF38 */ addiu $sp, $sp, -0xc8 -/* 094ED4 800942D4 AFB00040 */ sw $s0, 0x40($sp) -/* 094ED8 800942D8 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015 -/* 094EDC 800942DC 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298 -/* 094EE0 800942E0 8E020000 */ lw $v0, ($s0) -/* 094EE4 800942E4 3C098015 */ lui $t1, %hi(gGfxPool) # $t1, 0x8015 -/* 094EE8 800942E8 2529EF40 */ addiu $t1, %lo(gGfxPool) # addiu $t1, $t1, -0x10c0 -/* 094EEC 800942EC AFB10044 */ sw $s1, 0x44($sp) -/* 094EF0 800942F0 3C0F0103 */ lui $t7, (0x01030040 >> 16) # lui $t7, 0x103 -/* 094EF4 800942F4 244E0008 */ addiu $t6, $v0, 8 -/* 094EF8 800942F8 8D310000 */ lw $s1, ($t1) -/* 094EFC 800942FC AFBF0064 */ sw $ra, 0x64($sp) -/* 094F00 80094300 AFBE0060 */ sw $fp, 0x60($sp) -/* 094F04 80094304 AFB7005C */ sw $s7, 0x5c($sp) -/* 094F08 80094308 AFB60058 */ sw $s6, 0x58($sp) -/* 094F0C 8009430C AFB50054 */ sw $s5, 0x54($sp) -/* 094F10 80094310 AFB40050 */ sw $s4, 0x50($sp) -/* 094F14 80094314 AFB3004C */ sw $s3, 0x4c($sp) -/* 094F18 80094318 AFB20048 */ sw $s2, 0x48($sp) -/* 094F1C 8009431C F7BA0038 */ sdc1 $f26, 0x38($sp) -/* 094F20 80094320 F7B80030 */ sdc1 $f24, 0x30($sp) -/* 094F24 80094324 F7B60028 */ sdc1 $f22, 0x28($sp) -/* 094F28 80094328 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 094F2C 8009432C AE0E0000 */ sw $t6, ($s0) -/* 094F30 80094330 35EF0040 */ ori $t7, (0x01030040 & 0xFFFF) # ori $t7, $t7, 0x40 -/* 094F34 80094334 AC4F0000 */ sw $t7, ($v0) -/* 094F38 80094338 8D380000 */ lw $t8, ($t1) -/* 094F3C 8009433C 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 -/* 094F40 80094340 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 -/* 094F44 80094344 AC580004 */ sw $t8, 4($v0) -/* 094F48 80094348 8E020000 */ lw $v0, ($s0) -/* 094F4C 8009434C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 094F50 80094350 4481B000 */ mtc1 $at, $f22 -/* 094F54 80094354 24590008 */ addiu $t9, $v0, 8 -/* 094F58 80094358 AE190000 */ sw $t9, ($s0) -/* 094F5C 8009435C AC4A0000 */ sw $t2, ($v0) -/* 094F60 80094360 8D2B0000 */ lw $t3, ($t1) -/* 094F64 80094364 4480A000 */ mtc1 $zero, $f20 -/* 094F68 80094368 3401CAC0 */ li $at, 51904 -/* 094F6C 8009436C 256C01C0 */ addiu $t4, $t3, 0x1c0 -/* 094F70 80094370 3C058019 */ lui $a1, %hi(D_8018EDC8) # $a1, 0x8019 -/* 094F74 80094374 02218821 */ addu $s1, $s1, $at -/* 094F78 80094378 AC4C0004 */ sw $t4, 4($v0) -/* 094F7C 8009437C 4406B000 */ mfc1 $a2, $f22 -/* 094F80 80094380 4407A000 */ mfc1 $a3, $f20 -/* 094F84 80094384 8CA5EDC8 */ lw $a1, %lo(D_8018EDC8)($a1) -/* 094F88 80094388 02202025 */ move $a0, $s1 -/* 094F8C 8009438C 0C033C01 */ jal guRotate -/* 094F90 80094390 E7B40010 */ swc1 $f20, 0x10($sp) -/* 094F94 80094394 26340040 */ addiu $s4, $s1, 0x40 -/* 094F98 80094398 3C058019 */ lui $a1, %hi(D_8018EDCC) # $a1, 0x8019 -/* 094F9C 8009439C 4406A000 */ mfc1 $a2, $f20 -/* 094FA0 800943A0 4407B000 */ mfc1 $a3, $f22 -/* 094FA4 800943A4 8CA5EDCC */ lw $a1, %lo(D_8018EDCC)($a1) -/* 094FA8 800943A8 02802025 */ move $a0, $s4 -/* 094FAC 800943AC 0C033C01 */ jal guRotate -/* 094FB0 800943B0 E7B40010 */ swc1 $f20, 0x10($sp) -/* 094FB4 800943B4 4405B000 */ mfc1 $a1, $f22 -/* 094FB8 800943B8 4406B000 */ mfc1 $a2, $f22 -/* 094FBC 800943BC 3C078019 */ lui $a3, %hi(D_8018EDC4) # $a3, 0x8019 -/* 094FC0 800943C0 8CE7EDC4 */ lw $a3, %lo(D_8018EDC4)($a3) -/* 094FC4 800943C4 0C033C2D */ jal guScale -/* 094FC8 800943C8 26240080 */ addiu $a0, $s1, 0x80 -/* 094FCC 800943CC 8E020000 */ lw $v0, ($s0) -/* 094FD0 800943D0 3C160100 */ lui $s6, (0x01000040 >> 16) # lui $s6, 0x100 -/* 094FD4 800943D4 36D60040 */ ori $s6, (0x01000040 & 0xFFFF) # ori $s6, $s6, 0x40 -/* 094FD8 800943D8 244D0008 */ addiu $t5, $v0, 8 -/* 094FDC 800943DC AE0D0000 */ sw $t5, ($s0) -/* 094FE0 800943E0 AC510004 */ sw $s1, 4($v0) -/* 094FE4 800943E4 AC560000 */ sw $s6, ($v0) -/* 094FE8 800943E8 8E020000 */ lw $v0, ($s0) -/* 094FEC 800943EC 3C180104 */ lui $t8, (0x01040040 >> 16) # lui $t8, 0x104 -/* 094FF0 800943F0 26910040 */ addiu $s1, $s4, 0x40 -/* 094FF4 800943F4 244E0008 */ addiu $t6, $v0, 8 -/* 094FF8 800943F8 AE0E0000 */ sw $t6, ($s0) -/* 094FFC 800943FC AC540004 */ sw $s4, 4($v0) -/* 095000 80094400 AC560000 */ sw $s6, ($v0) -/* 095004 80094404 8E020000 */ lw $v0, ($s0) -/* 095008 80094408 37180040 */ ori $t8, (0x01040040 & 0xFFFF) # ori $t8, $t8, 0x40 -/* 09500C 8009440C 3C0AB900 */ lui $t2, (0xB900031D >> 16) # lui $t2, 0xb900 -/* 095010 80094410 244F0008 */ addiu $t7, $v0, 8 -/* 095014 80094414 AE0F0000 */ sw $t7, ($s0) -/* 095018 80094418 AC510004 */ sw $s1, 4($v0) -/* 09501C 8009441C AC580000 */ sw $t8, ($v0) -/* 095020 80094420 8E020000 */ lw $v0, ($s0) -/* 095024 80094424 3C0B0055 */ lui $t3, (0x00552078 >> 16) # lui $t3, 0x55 -/* 095028 80094428 356B2078 */ ori $t3, (0x00552078 & 0xFFFF) # ori $t3, $t3, 0x2078 -/* 09502C 8009442C 24590008 */ addiu $t9, $v0, 8 -/* 095030 80094430 AE190000 */ sw $t9, ($s0) -/* 095034 80094434 354A031D */ ori $t2, (0xB900031D & 0xFFFF) # ori $t2, $t2, 0x31d -/* 095038 80094438 AC4A0000 */ sw $t2, ($v0) -/* 09503C 8009443C AC4B0004 */ sw $t3, 4($v0) -/* 095040 80094440 8E020000 */ lw $v0, ($s0) -/* 095044 80094444 3C0DFB00 */ lui $t5, 0xfb00 -/* 095048 80094448 3C180200 */ lui $t8, %hi(D_02007F60) # $t8, 0x200 -/* 09504C 8009444C 244C0008 */ addiu $t4, $v0, 8 -/* 095050 80094450 AE0C0000 */ sw $t4, ($s0) -/* 095054 80094454 AC400004 */ sw $zero, 4($v0) -/* 095058 80094458 AC4D0000 */ sw $t5, ($v0) -/* 09505C 8009445C 8E020000 */ lw $v0, ($s0) -/* 095060 80094460 27187F60 */ addiu $t8, %lo(D_02007F60) # addiu $t8, $t8, 0x7f60 -/* 095064 80094464 3C0F0600 */ lui $t7, 0x600 -/* 095068 80094468 244E0008 */ addiu $t6, $v0, 8 -/* 09506C 8009446C AE0E0000 */ sw $t6, ($s0) -/* 095070 80094470 AC580004 */ sw $t8, 4($v0) -/* 095074 80094474 AC4F0000 */ sw $t7, ($v0) -/* 095078 80094478 8E020000 */ lw $v0, ($s0) -/* 09507C 8009447C 3C0ABD00 */ lui $t2, 0xbd00 -/* 095080 80094480 3C01800F */ lui $at, %hi(D_800E8530) # $at, 0x800f -/* 095084 80094484 24590008 */ addiu $t9, $v0, 8 -/* 095088 80094488 AE190000 */ sw $t9, ($s0) -/* 09508C 8009448C AC400004 */ sw $zero, 4($v0) -/* 095090 80094490 AC4A0000 */ sw $t2, ($v0) -/* 095094 80094494 C4268530 */ lwc1 $f6, %lo(D_800E8530)($at) -/* 095098 80094498 44802000 */ mtc1 $zero, $f4 -/* 09509C 8009449C 3C0B0601 */ lui $t3, %hi(D_06009410) # $t3, 0x601 -/* 0950A0 800944A0 26310040 */ addiu $s1, $s1, 0x40 -/* 0950A4 800944A4 4606203C */ c.lt.s $f4, $f6 -/* 0950A8 800944A8 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0950AC 800944AC 256B9410 */ addiu $t3, %lo(D_06009410) # addiu $t3, $t3, -0x6bf0 -/* 0950B0 800944B0 00009025 */ move $s2, $zero -/* 0950B4 800944B4 4500005A */ bc1f .L80094620 -/* 0950B8 800944B8 241500C0 */ li $s5, 192 -/* 0950BC 800944BC 44810000 */ mtc1 $at, $f0 -/* 0950C0 800944C0 3C01800F */ lui $at, %hi(D_800E8534) # $at, 0x800f -/* 0950C4 800944C4 C43A8534 */ lwc1 $f26, %lo(D_800E8534)($at) -/* 0950C8 800944C8 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0950CC 800944CC 4481C000 */ mtc1 $at, $f24 -/* 0950D0 800944D0 461A003C */ c.lt.s $f0, $f26 -/* 0950D4 800944D4 3C170050 */ lui $s7, (0x005049D8 >> 16) # lui $s7, 0x50 -/* 0950D8 800944D8 36F749D8 */ ori $s7, (0x005049D8 & 0xFFFF) # ori $s7, $s7, 0x49d8 -/* 0950DC 800944DC 241E000C */ li $fp, 12 -/* 0950E0 800944E0 45020003 */ bc1fl .L800944F0 -/* 0950E4 800944E4 AFAB006C */ sw $t3, 0x6c($sp) -/* 0950E8 800944E8 46000686 */ mov.s $f26, $f0 -/* 0950EC 800944EC AFAB006C */ sw $t3, 0x6c($sp) -.L800944F0: -/* 0950F0 800944F0 4405A000 */ mfc1 $a1, $f20 -/* 0950F4 800944F4 4406B000 */ mfc1 $a2, $f22 -/* 0950F8 800944F8 4407A000 */ mfc1 $a3, $f20 -/* 0950FC 800944FC 02202025 */ move $a0, $s1 -/* 095100 80094500 0C033C01 */ jal guRotate -/* 095104 80094504 E7B40010 */ swc1 $f20, 0x10($sp) -/* 095108 80094508 26530001 */ addiu $s3, $s2, 1 -/* 09510C 8009450C 44934000 */ mtc1 $s3, $f8 -/* 095110 80094510 3C01800F */ lui $at, %hi(D_800E8530) # $at, 0x800f -/* 095114 80094514 C4308530 */ lwc1 $f16, %lo(D_800E8530)($at) -/* 095118 80094518 468042A0 */ cvt.s.w $f10, $f8 -/* 09511C 8009451C 26340040 */ addiu $s4, $s1, 0x40 -/* 095120 80094520 4406A000 */ mfc1 $a2, $f20 -/* 095124 80094524 4407B000 */ mfc1 $a3, $f22 -/* 095128 80094528 02802025 */ move $a0, $s4 -/* 09512C 8009452C E7B40010 */ swc1 $f20, 0x10($sp) -/* 095130 80094530 46105482 */ mul.s $f18, $f10, $f16 -/* 095134 80094534 00000000 */ nop -/* 095138 80094538 461A9102 */ mul.s $f4, $f18, $f26 -/* 09513C 8009453C 44052000 */ mfc1 $a1, $f4 -/* 095140 80094540 0C033C01 */ jal guRotate -/* 095144 80094544 00000000 */ nop -/* 095148 80094548 4405B000 */ mfc1 $a1, $f22 -/* 09514C 8009454C 4406B000 */ mfc1 $a2, $f22 -/* 095150 80094550 4407C000 */ mfc1 $a3, $f24 -/* 095154 80094554 0C033C2D */ jal guScale -/* 095158 80094558 26240080 */ addiu $a0, $s1, 0x80 -/* 09515C 8009455C 8E020000 */ lw $v0, ($s0) -/* 095160 80094560 3C0D0104 */ lui $t5, (0x01040040 >> 16) # lui $t5, 0x104 -/* 095164 80094564 35AD0040 */ ori $t5, (0x01040040 & 0xFFFF) # ori $t5, $t5, 0x40 -/* 095168 80094568 244C0008 */ addiu $t4, $v0, 8 -/* 09516C 8009456C AE0C0000 */ sw $t4, ($s0) -/* 095170 80094570 AC510004 */ sw $s1, 4($v0) -/* 095174 80094574 AC4D0000 */ sw $t5, ($v0) -/* 095178 80094578 8E020000 */ lw $v0, ($s0) -/* 09517C 8009457C 26910040 */ addiu $s1, $s4, 0x40 -/* 095180 80094580 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900 -/* 095184 80094584 244E0008 */ addiu $t6, $v0, 8 -/* 095188 80094588 AE0E0000 */ sw $t6, ($s0) -/* 09518C 8009458C AC540004 */ sw $s4, 4($v0) -/* 095190 80094590 AC560000 */ sw $s6, ($v0) -/* 095194 80094594 8E020000 */ lw $v0, ($s0) -/* 095198 80094598 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d -/* 09519C 8009459C 32AC00FF */ andi $t4, $s5, 0xff -/* 0951A0 800945A0 244F0008 */ addiu $t7, $v0, 8 -/* 0951A4 800945A4 AE0F0000 */ sw $t7, ($s0) -/* 0951A8 800945A8 AC510004 */ sw $s1, 4($v0) -/* 0951AC 800945AC AC560000 */ sw $s6, ($v0) -/* 0951B0 800945B0 8E020000 */ lw $v0, ($s0) -/* 0951B4 800945B4 3C0BFB00 */ lui $t3, 0xfb00 -/* 0951B8 800945B8 3C0E0600 */ lui $t6, 0x600 -/* 0951BC 800945BC 24580008 */ addiu $t8, $v0, 8 -/* 0951C0 800945C0 AE180000 */ sw $t8, ($s0) -/* 0951C4 800945C4 AC570004 */ sw $s7, 4($v0) -/* 0951C8 800945C8 AC590000 */ sw $t9, ($v0) -/* 0951CC 800945CC 8E020000 */ lw $v0, ($s0) -/* 0951D0 800945D0 3C19BD00 */ lui $t9, 0xbd00 -/* 0951D4 800945D4 26B5FFF0 */ addiu $s5, $s5, -0x10 -/* 0951D8 800945D8 244A0008 */ addiu $t2, $v0, 8 -/* 0951DC 800945DC AE0A0000 */ sw $t2, ($s0) -/* 0951E0 800945E0 AC4C0004 */ sw $t4, 4($v0) -/* 0951E4 800945E4 AC4B0000 */ sw $t3, ($v0) -/* 0951E8 800945E8 8E020000 */ lw $v0, ($s0) -/* 0951EC 800945EC 02609025 */ move $s2, $s3 -/* 0951F0 800945F0 26310040 */ addiu $s1, $s1, 0x40 -/* 0951F4 800945F4 244D0008 */ addiu $t5, $v0, 8 -/* 0951F8 800945F8 AE0D0000 */ sw $t5, ($s0) -/* 0951FC 800945FC AC4E0000 */ sw $t6, ($v0) -/* 095200 80094600 8FAF006C */ lw $t7, 0x6c($sp) -/* 095204 80094604 AC4F0004 */ sw $t7, 4($v0) -/* 095208 80094608 8E020000 */ lw $v0, ($s0) -/* 09520C 8009460C 24580008 */ addiu $t8, $v0, 8 -/* 095210 80094610 AE180000 */ sw $t8, ($s0) -/* 095214 80094614 AC400004 */ sw $zero, 4($v0) -/* 095218 80094618 167EFFB5 */ bne $s3, $fp, .L800944F0 -/* 09521C 8009461C AC590000 */ sw $t9, ($v0) -.L80094620: -/* 095220 80094620 8FBF0064 */ lw $ra, 0x64($sp) -/* 095224 80094624 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 095228 80094628 D7B60028 */ ldc1 $f22, 0x28($sp) -/* 09522C 8009462C D7B80030 */ ldc1 $f24, 0x30($sp) -/* 095230 80094630 D7BA0038 */ ldc1 $f26, 0x38($sp) -/* 095234 80094634 8FB00040 */ lw $s0, 0x40($sp) -/* 095238 80094638 8FB10044 */ lw $s1, 0x44($sp) -/* 09523C 8009463C 8FB20048 */ lw $s2, 0x48($sp) -/* 095240 80094640 8FB3004C */ lw $s3, 0x4c($sp) -/* 095244 80094644 8FB40050 */ lw $s4, 0x50($sp) -/* 095248 80094648 8FB50054 */ lw $s5, 0x54($sp) -/* 09524C 8009464C 8FB60058 */ lw $s6, 0x58($sp) -/* 095250 80094650 8FB7005C */ lw $s7, 0x5c($sp) -/* 095254 80094654 8FBE0060 */ lw $fp, 0x60($sp) -/* 095258 80094658 03E00008 */ jr $ra -/* 09525C 8009465C 27BD00C8 */ addiu $sp, $sp, 0xc8 diff --git a/asm/non_matchings/code_802AAA70/func_802AAB4C.s b/asm/non_matchings/code_802AAA70/func_802AAB4C.s deleted file mode 100644 index 2e063f972..000000000 --- a/asm/non_matchings/code_802AAA70/func_802AAB4C.s +++ /dev/null @@ -1,275 +0,0 @@ -.section .late_rodata - -glabel D_802B9E00 -.float 1859.0 - -glabel D_802B9E04 -.float 1549.0 - -glabel D_802B9E08 -.float -1102.0 - -glabel D_802B9E0C -.float -1402.0 - -glabel D_802B9E10 -.float 2405.0 - -glabel D_802B9E14 -.float 2233.0 - -glabel D_802B9E18 -.float 0.8 - -glabel D_802B9E1C -.float -475.0 - -glabel D_802B9E20 -.float -33.9 - -glabel D_802B9E24 -.float -838.0 - -glabel D_802B9E28 -.float -475.0 - -glabel D_802B9E2C -.float -475.0 - -glabel D_802B9E30 -.float -993.0 - -glabel D_802B9E34 -.float -33.9 - -glabel D_802B9E38 -.float -475.0 - -glabel D_802B9E3C -.float -33.9 - -glabel D_802B9E40 -.float -475.0 - -glabel D_802B9E44 -.float -33.9 - -.section .text - -glabel func_802AAB4C -/* 11415C 802AAB4C 3C02800E */ lui $v0, %hi(gCurrentCourseId) # $v0, 0x800e -/* 114160 802AAB50 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0) -/* 114164 802AAB54 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 114168 802AAB58 AFBF0014 */ sw $ra, 0x14($sp) -/* 11416C 802AAB5C 24010002 */ li $at, 2 -/* 114170 802AAB60 00802825 */ move $a1, $a0 -/* 114174 802AAB64 C4800014 */ lwc1 $f0, 0x14($a0) -/* 114178 802AAB68 1041000A */ beq $v0, $at, .L802AAB94 -/* 11417C 802AAB6C C482001C */ lwc1 $f2, 0x1c($a0) -/* 114180 802AAB70 24010006 */ li $at, 6 -/* 114184 802AAB74 1041002F */ beq $v0, $at, .L802AAC34 -/* 114188 802AAB78 2401000C */ li $at, 12 -/* 11418C 802AAB7C 10410054 */ beq $v0, $at, .L802AACD0 -/* 114190 802AAB80 24010012 */ li $at, 18 -/* 114194 802AAB84 50410061 */ beql $v0, $at, .L802AAD0C -/* 114198 802AAB88 94A4011A */ lhu $a0, 0x11a($a1) -/* 11419C 802AAB8C 100000AA */ b .L802AAE38 -/* 1141A0 802AAB90 3C018016 */ lui $at, %hi(D_8015F8E4) -.L802AAB94: -/* 1141A4 802AAB94 3C01802C */ lui $at, %hi(D_802B9E00) # $at, 0x802c -/* 1141A8 802AAB98 C4249E00 */ lwc1 $f4, %lo(D_802B9E00)($at) -/* 1141AC 802AAB9C 3C01802C */ lui $at, %hi(D_802B9E04) -/* 1141B0 802AABA0 4600203C */ c.lt.s $f4, $f0 -/* 1141B4 802AABA4 00000000 */ nop -/* 1141B8 802AABA8 45000004 */ bc1f .L802AABBC -/* 1141BC 802AABAC 00000000 */ nop -/* 1141C0 802AABB0 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 1141C4 802AABB4 100000A1 */ b .L802AAE3C -/* 1141C8 802AABB8 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AABBC: -/* 1141CC 802AABBC C4269E04 */ lwc1 $f6, %lo(D_802B9E04)($at) -/* 1141D0 802AABC0 3C01802C */ lui $at, %hi(D_802B9E08) -/* 1141D4 802AABC4 4606003C */ c.lt.s $f0, $f6 -/* 1141D8 802AABC8 00000000 */ nop -/* 1141DC 802AABCC 45000004 */ bc1f .L802AABE0 -/* 1141E0 802AABD0 00000000 */ nop -/* 1141E4 802AABD4 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 1141E8 802AABD8 10000098 */ b .L802AAE3C -/* 1141EC 802AABDC C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AABE0: -/* 1141F0 802AABE0 C4289E08 */ lwc1 $f8, %lo(D_802B9E08)($at) -/* 1141F4 802AABE4 3C01802C */ lui $at, %hi(D_802B9E0C) -/* 1141F8 802AABE8 4602403C */ c.lt.s $f8, $f2 -/* 1141FC 802AABEC 00000000 */ nop -/* 114200 802AABF0 45000004 */ bc1f .L802AAC04 -/* 114204 802AABF4 00000000 */ nop -/* 114208 802AABF8 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 11420C 802AABFC 1000008F */ b .L802AAE3C -/* 114210 802AAC00 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AAC04: -/* 114214 802AAC04 C42A9E0C */ lwc1 $f10, %lo(D_802B9E0C)($at) -/* 114218 802AAC08 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 11421C 802AAC0C 460A103C */ c.lt.s $f2, $f10 -/* 114220 802AAC10 00000000 */ nop -/* 114224 802AAC14 45020005 */ bc1fl .L802AAC2C -/* 114228 802AAC18 44810000 */ mtc1 $at, $f0 -/* 11422C 802AAC1C 3C018016 */ lui $at, %hi(D_8015F8E4) -/* 114230 802AAC20 10000086 */ b .L802AAE3C -/* 114234 802AAC24 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -/* 114238 802AAC28 44810000 */ mtc1 $at, $f0 -.L802AAC2C: -/* 11423C 802AAC2C 10000084 */ b .L802AAE40 -/* 114240 802AAC30 8FBF0014 */ lw $ra, 0x14($sp) -.L802AAC34: -/* 114244 802AAC34 3C01436F */ li $at, 0x436F0000 # 239.000000 -/* 114248 802AAC38 44818000 */ mtc1 $at, $f16 -/* 11424C 802AAC3C 3C014286 */ li $at, 0x42860000 # 67.000000 -/* 114250 802AAC40 4600803C */ c.lt.s $f16, $f0 -/* 114254 802AAC44 00000000 */ nop -/* 114258 802AAC48 45020005 */ bc1fl .L802AAC60 -/* 11425C 802AAC4C 44819000 */ mtc1 $at, $f18 -/* 114260 802AAC50 3C018016 */ lui $at, %hi(D_8015F8E4) -/* 114264 802AAC54 10000079 */ b .L802AAE3C -/* 114268 802AAC58 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -/* 11426C 802AAC5C 44819000 */ mtc1 $at, $f18 -.L802AAC60: -/* 114270 802AAC60 3C01802C */ lui $at, %hi(D_802B9E10) -/* 114274 802AAC64 4612003C */ c.lt.s $f0, $f18 -/* 114278 802AAC68 00000000 */ nop -/* 11427C 802AAC6C 45000004 */ bc1f .L802AAC80 -/* 114280 802AAC70 00000000 */ nop -/* 114284 802AAC74 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 114288 802AAC78 10000070 */ b .L802AAE3C -/* 11428C 802AAC7C C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AAC80: -/* 114290 802AAC80 C4249E10 */ lwc1 $f4, %lo(D_802B9E10)($at) -/* 114294 802AAC84 3C01802C */ lui $at, %hi(D_802B9E14) -/* 114298 802AAC88 4602203C */ c.lt.s $f4, $f2 -/* 11429C 802AAC8C 00000000 */ nop -/* 1142A0 802AAC90 45000004 */ bc1f .L802AACA4 -/* 1142A4 802AAC94 00000000 */ nop -/* 1142A8 802AAC98 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 1142AC 802AAC9C 10000067 */ b .L802AAE3C -/* 1142B0 802AACA0 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AACA4: -/* 1142B4 802AACA4 C4269E14 */ lwc1 $f6, %lo(D_802B9E14)($at) -/* 1142B8 802AACA8 3C01802C */ lui $at, %hi(D_802B9E18) -/* 1142BC 802AACAC 4606103C */ c.lt.s $f2, $f6 -/* 1142C0 802AACB0 00000000 */ nop -/* 1142C4 802AACB4 45000004 */ bc1f .L802AACC8 -/* 1142C8 802AACB8 00000000 */ nop -/* 1142CC 802AACBC 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 1142D0 802AACC0 1000005E */ b .L802AAE3C -/* 1142D4 802AACC4 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AACC8: -/* 1142D8 802AACC8 1000005C */ b .L802AAE3C -/* 1142DC 802AACCC C4209E18 */ lwc1 $f0, %lo(D_802B9E18)($at) -.L802AACD0: -/* 1142E0 802AACD0 0C0AAF44 */ jal func_802ABD10 -/* 1142E4 802AACD4 94A4011A */ lhu $a0, 0x11a($a1) -/* 1142E8 802AACD8 304E00FF */ andi $t6, $v0, 0xff -/* 1142EC 802AACDC 24010005 */ li $at, 5 -/* 1142F0 802AACE0 15C10006 */ bne $t6, $at, .L802AACFC -/* 1142F4 802AACE4 3C0F8016 */ lui $t7, %hi(D_8015F6EE) # $t7, 0x8016 -/* 1142F8 802AACE8 85EFF6EE */ lh $t7, %lo(D_8015F6EE)($t7) -/* 1142FC 802AACEC 25F8FFF6 */ addiu $t8, $t7, -0xa -/* 114300 802AACF0 44984000 */ mtc1 $t8, $f8 -/* 114304 802AACF4 10000051 */ b .L802AAE3C -/* 114308 802AACF8 46804020 */ cvt.s.w $f0, $f8 -.L802AACFC: -/* 11430C 802AACFC 3C018016 */ lui $at, %hi(D_8015F8E4) # $at, 0x8016 -/* 114310 802AAD00 1000004E */ b .L802AAE3C -/* 114314 802AAD04 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -/* 114318 802AAD08 94A4011A */ lhu $a0, 0x11a($a1) -.L802AAD0C: -/* 11431C 802AAD0C E7A20018 */ swc1 $f2, 0x18($sp) -/* 114320 802AAD10 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 114324 802AAD14 0C0AAF50 */ jal func_802ABD40 -/* 114328 802AAD18 AFA50020 */ sw $a1, 0x20($sp) -/* 11432C 802AAD1C 304300FF */ andi $v1, $v0, 0xff -/* 114330 802AAD20 240100FF */ li $at, 255 -/* 114334 802AAD24 8FA50020 */ lw $a1, 0x20($sp) -/* 114338 802AAD28 C7A0001C */ lwc1 $f0, 0x1c($sp) -/* 11433C 802AAD2C 1461003A */ bne $v1, $at, .L802AAE18 -/* 114340 802AAD30 C7A20018 */ lwc1 $f2, 0x18($sp) -/* 114344 802AAD34 94A4011A */ lhu $a0, 0x11a($a1) -/* 114348 802AAD38 E7A20018 */ swc1 $f2, 0x18($sp) -/* 11434C 802AAD3C 0C0AAF44 */ jal func_802ABD10 -/* 114350 802AAD40 E7A0001C */ swc1 $f0, 0x1c($sp) -/* 114354 802AAD44 305900FF */ andi $t9, $v0, 0xff -/* 114358 802AAD48 2401000F */ li $at, 15 -/* 11435C 802AAD4C C7A0001C */ lwc1 $f0, 0x1c($sp) -/* 114360 802AAD50 17210004 */ bne $t9, $at, .L802AAD64 -/* 114364 802AAD54 C7A20018 */ lwc1 $f2, 0x18($sp) -/* 114368 802AAD58 3C01802C */ lui $at, %hi(D_802B9E1C) # $at, 0x802c -/* 11436C 802AAD5C 10000037 */ b .L802AAE3C -/* 114370 802AAD60 C4209E1C */ lwc1 $f0, %lo(D_802B9E1C)($at) -.L802AAD64: -/* 114374 802AAD64 3C01C3EF */ li $at, 0xC3EF0000 # -478.000000 -/* 114378 802AAD68 44815000 */ mtc1 $at, $f10 -/* 11437C 802AAD6C 3C01802C */ lui $at, %hi(D_802B9E24) -/* 114380 802AAD70 4600503C */ c.lt.s $f10, $f0 -/* 114384 802AAD74 00000000 */ nop -/* 114388 802AAD78 45000004 */ bc1f .L802AAD8C -/* 11438C 802AAD7C 00000000 */ nop -/* 114390 802AAD80 3C01802C */ lui $at, %hi(D_802B9E20) # $at, 0x802c -/* 114394 802AAD84 1000002D */ b .L802AAE3C -/* 114398 802AAD88 C4209E20 */ lwc1 $f0, %lo(D_802B9E20)($at) -.L802AAD8C: -/* 11439C 802AAD8C C4309E24 */ lwc1 $f16, %lo(D_802B9E24)($at) -/* 1143A0 802AAD90 3C01C3DA */ li $at, 0xC3DA0000 # -436.000000 -/* 1143A4 802AAD94 4610003C */ c.lt.s $f0, $f16 -/* 1143A8 802AAD98 00000000 */ nop -/* 1143AC 802AAD9C 45020005 */ bc1fl .L802AADB4 -/* 1143B0 802AADA0 44819000 */ mtc1 $at, $f18 -/* 1143B4 802AADA4 3C01802C */ lui $at, %hi(D_802B9E28) -/* 1143B8 802AADA8 10000024 */ b .L802AAE3C -/* 1143BC 802AADAC C4209E28 */ lwc1 $f0, %lo(D_802B9E28)($at) -/* 1143C0 802AADB0 44819000 */ mtc1 $at, $f18 -.L802AADB4: -/* 1143C4 802AADB4 3C01802C */ lui $at, %hi(D_802B9E30) -/* 1143C8 802AADB8 4602903C */ c.lt.s $f18, $f2 -/* 1143CC 802AADBC 00000000 */ nop -/* 1143D0 802AADC0 45000004 */ bc1f .L802AADD4 -/* 1143D4 802AADC4 00000000 */ nop -/* 1143D8 802AADC8 3C01802C */ lui $at, %hi(D_802B9E2C) # $at, 0x802c -/* 1143DC 802AADCC 1000001B */ b .L802AAE3C -/* 1143E0 802AADD0 C4209E2C */ lwc1 $f0, %lo(D_802B9E2C)($at) -.L802AADD4: -/* 1143E4 802AADD4 C4249E30 */ lwc1 $f4, %lo(D_802B9E30)($at) -/* 1143E8 802AADD8 3C01802C */ lui $at, %hi(D_802B9E34) # $at, 0x802c -/* 1143EC 802AADDC 4604103C */ c.lt.s $f2, $f4 -/* 1143F0 802AADE0 00000000 */ nop -/* 1143F4 802AADE4 45020004 */ bc1fl .L802AADF8 -/* 1143F8 802AADE8 4600103C */ c.lt.s $f2, $f0 -/* 1143FC 802AADEC 10000013 */ b .L802AAE3C -/* 114400 802AADF0 C4209E34 */ lwc1 $f0, %lo(D_802B9E34)($at) -/* 114404 802AADF4 4600103C */ c.lt.s $f2, $f0 -.L802AADF8: -/* 114408 802AADF8 3C01802C */ lui $at, %hi(D_802B9E3C) -/* 11440C 802AADFC 45000004 */ bc1f .L802AAE10 -/* 114410 802AAE00 00000000 */ nop -/* 114414 802AAE04 3C01802C */ lui $at, %hi(D_802B9E38) # $at, 0x802c -/* 114418 802AAE08 1000000C */ b .L802AAE3C -/* 11441C 802AAE0C C4209E38 */ lwc1 $f0, %lo(D_802B9E38)($at) -.L802AAE10: -/* 114420 802AAE10 1000000A */ b .L802AAE3C -/* 114424 802AAE14 C4209E3C */ lwc1 $f0, %lo(D_802B9E3C)($at) -.L802AAE18: -/* 114428 802AAE18 28610014 */ slti $at, $v1, 0x14 -/* 11442C 802AAE1C 14200003 */ bnez $at, .L802AAE2C -/* 114430 802AAE20 3C01802C */ lui $at, %hi(D_802B9E40) # $at, 0x802c -/* 114434 802AAE24 10000005 */ b .L802AAE3C -/* 114438 802AAE28 C4209E40 */ lwc1 $f0, %lo(D_802B9E40)($at) -.L802AAE2C: -/* 11443C 802AAE2C 3C01802C */ lui $at, %hi(D_802B9E44) # $at, 0x802c -/* 114440 802AAE30 10000002 */ b .L802AAE3C -/* 114444 802AAE34 C4209E44 */ lwc1 $f0, %lo(D_802B9E44)($at) -.L802AAE38: -/* 114448 802AAE38 C420F8E4 */ lwc1 $f0, %lo(D_8015F8E4)($at) -.L802AAE3C: -/* 11444C 802AAE3C 8FBF0014 */ lw $ra, 0x14($sp) -.L802AAE40: -/* 114450 802AAE40 27BD0020 */ addiu $sp, $sp, 0x20 -/* 114454 802AAE44 03E00008 */ jr $ra -/* 114458 802AAE48 00000000 */ nop diff --git a/asm/non_matchings/code_802AAA70/func_802AED6C.s b/asm/non_matchings/code_802AAA70/func_802AED6C.s deleted file mode 100644 index 9d989138a..000000000 --- a/asm/non_matchings/code_802AAA70/func_802AED6C.s +++ /dev/null @@ -1,49 +0,0 @@ -glabel func_802AED6C -/* 11837C 802AED6C 00047602 */ srl $t6, $a0, 0x18 -/* 118380 802AED70 000E7880 */ sll $t7, $t6, 2 -/* 118384 802AED74 3C188015 */ lui $t8, %hi(gSegmentTable) -/* 118388 802AED78 030FC021 */ addu $t8, $t8, $t7 -/* 11838C 802AED7C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 118390 802AED80 8F180258 */ lw $t8, %lo(gSegmentTable)($t8) -/* 118394 802AED84 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 118398 802AED88 0081C824 */ and $t9, $a0, $at -/* 11839C 802AED8C 3C018000 */ lui $at, 0x8000 -/* 1183A0 802AED90 03191021 */ addu $v0, $t8, $t9 -/* 1183A4 802AED94 00411021 */ addu $v0, $v0, $at -/* 1183A8 802AED98 10A0001E */ beqz $a1, .L802AEE14 -/* 1183AC 802AED9C 00001825 */ move $v1, $zero -/* 1183B0 802AEDA0 30A80003 */ andi $t0, $a1, 3 -/* 1183B4 802AEDA4 1100000C */ beqz $t0, .L802AEDD8 -/* 1183B8 802AEDA8 01003825 */ move $a3, $t0 -/* 1183BC 802AEDAC 3C0A8016 */ lui $t2, %hi(D_8015F668) # $t2, 0x8016 -/* 1183C0 802AEDB0 254AF668 */ addiu $t2, %lo(D_8015F668) # addiu $t2, $t2, -0x998 -/* 1183C4 802AEDB4 00064880 */ sll $t1, $a2, 2 -/* 1183C8 802AEDB8 012A2021 */ addu $a0, $t1, $t2 -.L802AEDBC: -/* 1183CC 802AEDBC AC820000 */ sw $v0, ($a0) -/* 1183D0 802AEDC0 24630001 */ addiu $v1, $v1, 1 -/* 1183D4 802AEDC4 24420010 */ addiu $v0, $v0, 0x10 -/* 1183D8 802AEDC8 24C60001 */ addiu $a2, $a2, 1 -/* 1183DC 802AEDCC 14E3FFFB */ bne $a3, $v1, .L802AEDBC -/* 1183E0 802AEDD0 24840004 */ addiu $a0, $a0, 4 -/* 1183E4 802AEDD4 1065000F */ beq $v1, $a1, .L802AEE14 -.L802AEDD8: -/* 1183E8 802AEDD8 3C0C8016 */ lui $t4, %hi(D_8015F668) # $t4, 0x8016 -/* 1183EC 802AEDDC 258CF668 */ addiu $t4, %lo(D_8015F668) # addiu $t4, $t4, -0x998 -/* 1183F0 802AEDE0 00065880 */ sll $t3, $a2, 2 -/* 1183F4 802AEDE4 016C2021 */ addu $a0, $t3, $t4 -.L802AEDE8: -/* 1183F8 802AEDE8 AC820000 */ sw $v0, ($a0) -/* 1183FC 802AEDEC 24420010 */ addiu $v0, $v0, 0x10 -/* 118400 802AEDF0 AC820004 */ sw $v0, 4($a0) -/* 118404 802AEDF4 24420010 */ addiu $v0, $v0, 0x10 -/* 118408 802AEDF8 AC820008 */ sw $v0, 8($a0) -/* 11840C 802AEDFC 24420010 */ addiu $v0, $v0, 0x10 -/* 118410 802AEE00 AC82000C */ sw $v0, 0xc($a0) -/* 118414 802AEE04 24630004 */ addiu $v1, $v1, 4 -/* 118418 802AEE08 24420010 */ addiu $v0, $v0, 0x10 -/* 11841C 802AEE0C 1465FFF6 */ bne $v1, $a1, .L802AEDE8 -/* 118420 802AEE10 24840010 */ addiu $a0, $a0, 0x10 -.L802AEE14: -/* 118424 802AEE14 03E00008 */ jr $ra -/* 118428 802AEE18 00000000 */ nop diff --git a/asm/non_matchings/code_802AAA70/func_802AF83C.s b/asm/non_matchings/code_802AAA70/func_802AF83C.s deleted file mode 100644 index 9a6e5f9f8..000000000 --- a/asm/non_matchings/code_802AAA70/func_802AF83C.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_802AF83C -/* 118E4C 802AF83C 0004C602 */ srl $t8, $a0, 0x18 -/* 118E50 802AF840 0018C880 */ sll $t9, $t8, 2 -/* 118E54 802AF844 3C098015 */ lui $t1, %hi(gSegmentTable) -/* 118E58 802AF848 01394821 */ addu $t1, $t1, $t9 -/* 118E5C 802AF84C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 118E60 802AF850 8D290258 */ lw $t1, %lo(gSegmentTable)($t1) -/* 118E64 802AF854 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 118E68 802AF858 00815024 */ and $t2, $a0, $at -/* 118E6C 802AF85C 00077600 */ sll $t6, $a3, 0x18 -/* 118E70 802AF860 3C018000 */ lui $at, 0x8000 -/* 118E74 802AF864 012A1021 */ addu $v0, $t1, $t2 -/* 118E78 802AF868 000E7E03 */ sra $t7, $t6, 0x18 -/* 118E7C 802AF86C AFA60008 */ sw $a2, 8($sp) -/* 118E80 802AF870 AFA7000C */ sw $a3, 0xc($sp) -/* 118E84 802AF874 00411021 */ addu $v0, $v0, $at -/* 118E88 802AF878 10A0000E */ beqz $a1, .L802AF8B4 -/* 118E8C 802AF87C 00001825 */ move $v1, $zero -/* 118E90 802AF880 01E04025 */ move $t0, $t7 -/* 118E94 802AF884 93A7001B */ lbu $a3, 0x1b($sp) -/* 118E98 802AF888 93A60017 */ lbu $a2, 0x17($sp) -/* 118E9C 802AF88C 93A40013 */ lbu $a0, 0x13($sp) -.L802AF890: -/* 118EA0 802AF890 10800004 */ beqz $a0, .L802AF8A4 -/* 118EA4 802AF894 24630001 */ addiu $v1, $v1, 1 -/* 118EA8 802AF898 A044000C */ sb $a0, 0xc($v0) -/* 118EAC 802AF89C A046000D */ sb $a2, 0xd($v0) -/* 118EB0 802AF8A0 A047000E */ sb $a3, 0xe($v0) -.L802AF8A4: -/* 118EB4 802AF8A4 0065082B */ sltu $at, $v1, $a1 -/* 118EB8 802AF8A8 A048000F */ sb $t0, 0xf($v0) -/* 118EBC 802AF8AC 1420FFF8 */ bnez $at, .L802AF890 -/* 118EC0 802AF8B0 24420010 */ addiu $v0, $v0, 0x10 -.L802AF8B4: -/* 118EC4 802AF8B4 03E00008 */ jr $ra -/* 118EC8 802AF8B8 00000000 */ nop diff --git a/asm/non_matchings/code_802AAA70/func_802AF8BC.s b/asm/non_matchings/code_802AAA70/func_802AF8BC.s deleted file mode 100644 index fea066b84..000000000 --- a/asm/non_matchings/code_802AAA70/func_802AF8BC.s +++ /dev/null @@ -1,82 +0,0 @@ -glabel func_802AF8BC -/* 118ECC 802AF8BC 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 118ED0 802AF8C0 00047E02 */ srl $t7, $a0, 0x18 -/* 118ED4 802AF8C4 000FC080 */ sll $t8, $t7, 2 -/* 118ED8 802AF8C8 3C198015 */ lui $t9, %hi(gSegmentTable) -/* 118EDC 802AF8CC 0338C821 */ addu $t9, $t9, $t8 -/* 118EE0 802AF8D0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* 118EE4 802AF8D4 8F390258 */ lw $t9, %lo(gSegmentTable)($t9) -/* 118EE8 802AF8D8 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 118EEC 802AF8DC AFB1002C */ sw $s1, 0x2c($sp) -/* 118EF0 802AF8E0 00814024 */ and $t0, $a0, $at -/* 118EF4 802AF8E4 00058E00 */ sll $s1, $a1, 0x18 -/* 118EF8 802AF8E8 AFB00028 */ sw $s0, 0x28($sp) -/* 118EFC 802AF8EC 00117603 */ sra $t6, $s1, 0x18 -/* 118F00 802AF8F0 AFBE0048 */ sw $fp, 0x48($sp) -/* 118F04 802AF8F4 AFB70044 */ sw $s7, 0x44($sp) -/* 118F08 802AF8F8 AFB60040 */ sw $s6, 0x40($sp) -/* 118F0C 802AF8FC AFB5003C */ sw $s5, 0x3c($sp) -/* 118F10 802AF900 AFB40038 */ sw $s4, 0x38($sp) -/* 118F14 802AF904 AFB30034 */ sw $s3, 0x34($sp) -/* 118F18 802AF908 AFB20030 */ sw $s2, 0x30($sp) -/* 118F1C 802AF90C 3C018000 */ lui $at, 0x8000 -/* 118F20 802AF910 03288021 */ addu $s0, $t9, $t0 -/* 118F24 802AF914 30D200FF */ andi $s2, $a2, 0xff -/* 118F28 802AF918 30F300FF */ andi $s3, $a3, 0xff -/* 118F2C 802AF91C 01C08825 */ move $s1, $t6 -/* 118F30 802AF920 AFBF004C */ sw $ra, 0x4c($sp) -/* 118F34 802AF924 AFA50054 */ sw $a1, 0x54($sp) -/* 118F38 802AF928 AFA60058 */ sw $a2, 0x58($sp) -/* 118F3C 802AF92C AFA7005C */ sw $a3, 0x5c($sp) -/* 118F40 802AF930 02018021 */ addu $s0, $s0, $at -/* 118F44 802AF934 93B40063 */ lbu $s4, 0x63($sp) -/* 118F48 802AF938 3C15B800 */ lui $s5, 0xb800 -/* 118F4C 802AF93C 3C16FF00 */ lui $s6, 0xff00 -/* 118F50 802AF940 3C170600 */ lui $s7, 0x600 -/* 118F54 802AF944 3C1E0400 */ lui $fp, 0x400 -.L802AF948: -/* 118F58 802AF948 8E020000 */ lw $v0, ($s0) -/* 118F5C 802AF94C 00112E00 */ sll $a1, $s1, 0x18 -/* 118F60 802AF950 8E040004 */ lw $a0, 4($s0) -/* 118F64 802AF954 00561824 */ and $v1, $v0, $s6 -/* 118F68 802AF958 12A30019 */ beq $s5, $v1, .L802AF9C0 -/* 118F6C 802AF95C 00054E03 */ sra $t1, $a1, 0x18 -/* 118F70 802AF960 14770007 */ bne $v1, $s7, .L802AF980 -/* 118F74 802AF964 01202825 */ move $a1, $t1 -/* 118F78 802AF968 324600FF */ andi $a2, $s2, 0xff -/* 118F7C 802AF96C 326700FF */ andi $a3, $s3, 0xff -/* 118F80 802AF970 0C0ABE2F */ jal func_802AF8BC -/* 118F84 802AF974 AFB40010 */ sw $s4, 0x10($sp) -/* 118F88 802AF978 1000FFF3 */ b .L802AF948 -/* 118F8C 802AF97C 26100008 */ addiu $s0, $s0, 8 -.L802AF980: -/* 118F90 802AF980 147E000D */ bne $v1, $fp, .L802AF9B8 -/* 118F94 802AF984 00022A82 */ srl $a1, $v0, 0xa -/* 118F98 802AF988 00023402 */ srl $a2, $v0, 0x10 -/* 118F9C 802AF98C 00113E00 */ sll $a3, $s1, 0x18 -/* 118FA0 802AF990 00076E03 */ sra $t5, $a3, 0x18 -/* 118FA4 802AF994 30CB00FF */ andi $t3, $a2, 0xff -/* 118FA8 802AF998 30AA003F */ andi $t2, $a1, 0x3f -/* 118FAC 802AF99C 01402825 */ move $a1, $t2 -/* 118FB0 802AF9A0 000B3042 */ srl $a2, $t3, 1 -/* 118FB4 802AF9A4 01A03825 */ move $a3, $t5 -/* 118FB8 802AF9A8 AFB20010 */ sw $s2, 0x10($sp) -/* 118FBC 802AF9AC AFB30014 */ sw $s3, 0x14($sp) -/* 118FC0 802AF9B0 0C0ABE0F */ jal func_802AF83C -/* 118FC4 802AF9B4 AFB40018 */ sw $s4, 0x18($sp) -.L802AF9B8: -/* 118FC8 802AF9B8 1000FFE3 */ b .L802AF948 -/* 118FCC 802AF9BC 26100008 */ addiu $s0, $s0, 8 -.L802AF9C0: -/* 118FD0 802AF9C0 8FBF004C */ lw $ra, 0x4c($sp) -/* 118FD4 802AF9C4 8FB00028 */ lw $s0, 0x28($sp) -/* 118FD8 802AF9C8 8FB1002C */ lw $s1, 0x2c($sp) -/* 118FDC 802AF9CC 8FB20030 */ lw $s2, 0x30($sp) -/* 118FE0 802AF9D0 8FB30034 */ lw $s3, 0x34($sp) -/* 118FE4 802AF9D4 8FB40038 */ lw $s4, 0x38($sp) -/* 118FE8 802AF9D8 8FB5003C */ lw $s5, 0x3c($sp) -/* 118FEC 802AF9DC 8FB60040 */ lw $s6, 0x40($sp) -/* 118FF0 802AF9E0 8FB70044 */ lw $s7, 0x44($sp) -/* 118FF4 802AF9E4 8FBE0048 */ lw $fp, 0x48($sp) -/* 118FF8 802AF9E8 03E00008 */ jr $ra -/* 118FFC 802AF9EC 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/data/rodata_code_80091750.s b/data/rodata_code_80091750.s index 27adfd5fc..0dd3a35e7 100644 --- a/data/rodata_code_80091750.s +++ b/data/rodata_code_80091750.s @@ -2446,6 +2446,7 @@ glabel jpt_800F2688 .word L800AC78C, L800AC7CC, L800AC878, L800AC8A0 .word L800AC8E0, L800AC968 +# begin func_800ACA14 glabel D_800F26C0 .double 4.2 @@ -2454,7 +2455,9 @@ glabel D_800F26C8 glabel D_800F26D0 .double 4.2 +# end func_800ACA14 +# begin func_800ACC50 glabel jpt_800F26D8 .word L800ACC84, L800ACCF4, L800ACD20, L800ACF2C .word L800ACF2C, L800ACF2C, L800ACF2C, L800ACF2C @@ -2469,6 +2472,7 @@ glabel D_800F2718 glabel D_800F2720 .double 4.2 +# end func_800ACC50 glabel jpt_800F2728 .word L800ACF94, L800ACFB8, L800AD01C, L800AD128 diff --git a/src/code_80091750.c b/src/code_80091750.c index d9ef59413..dcef00c0f 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -1231,137 +1231,43 @@ void func_800940EC(s32 arg0) { func_80057CE4(); } -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -f32 D_800E8530 = 0.0f; -f32 D_800E8534 = 3.0f; - void func_800942D0(void) { - Gfx *sp6C; - Gfx *temp_v0; - Gfx *temp_v0_10; - Gfx *temp_v0_11; - Gfx *temp_v0_12; - Gfx *temp_v0_13; - Gfx *temp_v0_14; - Gfx *temp_v0_15; - Gfx *temp_v0_16; - Gfx *temp_v0_2; - Gfx *temp_v0_3; - Gfx *temp_v0_4; - Gfx *temp_v0_5; - Gfx *temp_v0_6; - Gfx *temp_v0_7; - Gfx *temp_v0_8; - Gfx *temp_v0_9; - Mtx *temp_s1; - Mtx *temp_s1_2; - Mtx *temp_s1_3; - Mtx *temp_s4; - Mtx *temp_s4_2; - Mtx *var_s1; + Mtx *test; f32 var_f26; - s32 temp_s3; s32 var_s2; - s32 var_s5; - u32 temp_t4; - - temp_v0 = gDisplayListHead; - gDisplayListHead = temp_v0 + 8; - temp_v0->words.w0 = 0x01030040; - temp_v0->words.w1 = (u32) gGfxPool; - temp_v0_2 = gDisplayListHead; - gDisplayListHead = temp_v0_2 + 8; - temp_v0_2->words.w0 = 0x01020040; - temp_s1 = &gGfxPool->mtxPool[0x32B]; - temp_v0_2->words.w1 = (u32) &gGfxPool->mtxPool[7]; - guRotate(temp_s1, D_8018EDC8, 1.0f, 0.0f, 0.0f); - temp_s4 = temp_s1 + 0x40; - guRotate(temp_s4, D_8018EDCC, 0.0f, 1.0f, 0.0f); - guScale(temp_s1 + 0x80, 1.0f, 1.0f, D_8018EDC4); - temp_v0_3 = gDisplayListHead; - gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->words.w1 = (u32) temp_s1; - temp_v0_3->words.w0 = 0x01000040; - temp_v0_4 = gDisplayListHead; - temp_s1_2 = temp_s4 + 0x40; - gDisplayListHead = temp_v0_4 + 8; - temp_v0_4->words.w1 = (u32) temp_s4; - temp_v0_4->words.w0 = 0x01000040; - temp_v0_5 = gDisplayListHead; - gDisplayListHead = temp_v0_5 + 8; - temp_v0_5->words.w1 = (u32) temp_s1_2; - temp_v0_5->words.w0 = 0x01040040; - temp_v0_6 = gDisplayListHead; - gDisplayListHead = temp_v0_6 + 8; - temp_v0_6->words.w0 = 0xB900031D; - temp_v0_6->words.w1 = 0x00552078; - temp_v0_7 = gDisplayListHead; - gDisplayListHead = temp_v0_7 + 8; - temp_v0_7->words.w1 = 0; - temp_v0_7->words.w0 = 0xFB000000; - temp_v0_8 = gDisplayListHead; - gDisplayListHead = temp_v0_8 + 8; - temp_v0_8->words.w1 = (u32) D_02007F60; - temp_v0_8->words.w0 = 0x06000000; - temp_v0_9 = gDisplayListHead; - gDisplayListHead = temp_v0_9 + 8; - temp_v0_9->words.w1 = 0; - temp_v0_9->words.w0 = 0xBD000000; - var_s1 = temp_s1_2 + 0x40; - var_s2 = 0; - var_s5 = 0xC0; - if (D_800E8530 > 0.0f) { + s32 thing; + test = &gGfxPool->mtxPool[0x32B]; + gSPMatrix(gDisplayListHead++, &gGfxPool->mtxPool[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); + gSPMatrix(gDisplayListHead++, &gGfxPool->mtxPool[7], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + guRotate(test, D_8018EDC8, 1.0f, 0.0f, 0.0f); + guRotate(test + 1, D_8018EDCC, 0.0f, 1.0f, 0.0f); + guScale( test + 2, 1.0f, 1.0f, D_8018EDC4); + gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gDisplayListHead++, test++, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); + gDPSetEnvColor(gDisplayListHead++, 0x00, 0x00, 0x00, 0x00); + gSPDisplayList(gDisplayListHead++, D_02007F60); + gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); + if (D_800E8530 > 0) { var_f26 = D_800E8534; if (var_f26 > 10.0f) { var_f26 = 10.0f; } - sp6C = D_06009410; - do { - guRotate(var_s1, 0.0f, 1.0f, 0.0f, 0.0f); - temp_s3 = var_s2 + 1; - temp_s4_2 = var_s1 + 0x40; - guRotate(temp_s4_2, (f32) temp_s3 * D_800E8530 * var_f26, 0.0f, 1.0f, 0.0f); - guScale(var_s1 + 0x80, 1.0f, 1.0f, 2.0f); - temp_v0_10 = gDisplayListHead; - gDisplayListHead = temp_v0_10 + 8; - temp_v0_10->words.w1 = (u32) var_s1; - temp_v0_10->words.w0 = 0x01040040; - temp_v0_11 = gDisplayListHead; - temp_s1_3 = temp_s4_2 + 0x40; - gDisplayListHead = temp_v0_11 + 8; - temp_v0_11->words.w1 = (u32) temp_s4_2; - temp_v0_11->words.w0 = 0x01000040; - temp_v0_12 = gDisplayListHead; - temp_t4 = var_s5 & 0xFF; - gDisplayListHead = temp_v0_12 + 8; - temp_v0_12->words.w1 = (u32) temp_s1_3; - temp_v0_12->words.w0 = 0x01000040; - temp_v0_13 = gDisplayListHead; - gDisplayListHead = temp_v0_13 + 8; - temp_v0_13->words.w1 = 0x005049D8; - temp_v0_13->words.w0 = 0xB900031D; - temp_v0_14 = gDisplayListHead; - var_s5 -= 0x10; - gDisplayListHead = temp_v0_14 + 8; - temp_v0_14->words.w1 = temp_t4; - temp_v0_14->words.w0 = 0xFB000000; - temp_v0_15 = gDisplayListHead; - var_s2 = temp_s3; - var_s1 = temp_s1_3 + 0x40; - gDisplayListHead = temp_v0_15 + 8; - temp_v0_15->words.w0 = 0x06000000; - temp_v0_15->words.w1 = (u32) sp6C; - temp_v0_16 = gDisplayListHead; - gDisplayListHead = temp_v0_16 + 8; - temp_v0_16->words.w1 = 0; - temp_v0_16->words.w0 = 0xBD000000; - } while (temp_s3 != 0xC); + for (var_s2 = 0, thing = 0xC0; var_s2 < 0xC; var_s2++, thing -= 0x10) { + guRotate(test, 0.0f, 1.0f, 0.0f, 0.0f); + guRotate(test + 1, (var_s2 + 1) * D_800E8530 * var_f26, 0.0f, 1.0f, 0.0f); + guScale( test + 2, 1.0f, 1.0f, 2.0f); + gSPMatrix(gDisplayListHead++, test++, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPMatrix(gDisplayListHead++, test++, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2); + gDPSetEnvColor(gDisplayListHead++, 0x00, 0x00, 0x00, thing); + gSPDisplayList(gDisplayListHead++, D_06009410); + gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); + } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800942D0.s") -#endif void func_80094660(struct GfxPool *arg0, UNUSED s32 arg1) { u16 perspNorm; @@ -12951,31 +12857,15 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AA280.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -s32 check_for_controller_pak(?); /* extern */ -extern s8 D_800E86AC; -extern u16 gCompanyCode; -extern u32 gGameCode; -extern s8 gControllerPak1State; -extern u8 gGameName; -extern u8 gExtCode; -extern OSPfs gControllerPak1FileHandle; -extern s32 gControllerPak1NumFilesUsed; -extern s32 gControllerPak1MaxWriteableFiles; -extern s32 gControllerPak1FileNote; -extern s8 gMainMenuSelectionDepth; - +//generated by m2c commit b52d92c2340f6f4ba1aafb464188bb698752fbb0 on Jul-16-2023 void func_800AA2EC(struct_8018D9E0_entry *arg0) { s32 sp20; + s32 temp_v0; s32 temp_v0_2; - s32 temp_v0_3; s32 var_t1; - s8 temp_t6; - s8 temp_v0; - temp_t6 = gMainMenuSelectionDepth; var_t1 = 0; - switch (temp_t6) { + switch (gMainMenuSelectionDepth) { case OPTIONS_SELECTION: case DATA_SELECTION: case PLAYER_NUM_SELECTION: @@ -12986,12 +12876,12 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) { case CONFIRM_OK_SELECTION: case CONFIRM_OK_SELECTION_FROM_BACK_OUT: case TIME_TRIALS_DATA_SELECTION_FROM_BACK_OUT: - if ((arg0->unk4 == 0) && (temp_v0 = D_8018EDF3, (temp_v0 == 1)) && (*(&D_800E86AC - 1 + temp_v0) == 1)) { + if ((arg0->unk4 == 0) && (D_8018EDF3 == 1) && ((D_800E86AC - 1)[D_8018EDF3] == 1)) { if (gControllerPak1State != 0) { sp20 = 0; - temp_v0_2 = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, &gGameName, &gExtCode, &gControllerPak1FileNote); + temp_v0 = osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote); var_t1 = 0; - switch (temp_v0_2) { /* switch 1; irregular */ + switch (temp_v0) { /* switch 1; irregular */ case 5: /* switch 1 */ break; case 0: /* switch 1 */ @@ -13010,12 +12900,12 @@ void func_800AA2EC(struct_8018D9E0_entry *arg0) { arg0->unk4 = 2; return; } - temp_v0_3 = osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, 0); - if (temp_v0_3 != 0) { - if (temp_v0_3 != 1) { - if (temp_v0_3 != 4) { - if (temp_v0_3 != 0x0000000A) { - if (temp_v0_3 == 0x0000000B) { + temp_v0_2 = osPfsInit(&gSIEventMesgQueue, &gControllerPak1FileHandle, 0); + if (temp_v0_2 != 0) { + if (temp_v0_2 != 1) { + if (temp_v0_2 != 4) { + if (temp_v0_2 != 0x0000000A) { + if (temp_v0_2 == 0x0000000B) { goto block_22; } goto block_24; @@ -13032,7 +12922,7 @@ block_22: return; } gControllerPak1State = 1; - if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, &gGameName, &gExtCode, &gControllerPak1FileNote) == 0) { + if (osPfsFindFile(&gControllerPak1FileHandle, gCompanyCode, gGameCode, gGameName, gExtCode, &gControllerPak1FileNote) == 0) { arg0->unk4 = 1; return; } @@ -13692,90 +13582,50 @@ void func_800AB290(struct_8018D9E0_entry *arg0) { } #ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de +// Decent work has been done, but not quite right +// https://decomp.me/scratch/YLbkC void func_800AB314(struct_8018D9E0_entry *arg0) { - s32 sp3C; - void *sp24; - void **sp1C; - s32 temp_t2; - s32 temp_t5; - s32 temp_t7; s32 var_a1; - s32 var_v0; - s8 var_a1_2; - struct_8018D9E0_entry *temp_v0; - void **var_v1; - void **var_v1_2; - void *temp_t7_2; + s32 one; + u32 var_v0; + struct_8018D9E0_entry *sp24[4]; - var_v1 = &sp24; - var_a1 = 0; - do { - sp1C = var_v1; - sp3C = var_a1; - temp_v0 = find_8018D9E0_entry_dupe(var_a1 + 0x5F); - var_a1 += 1; - var_v1 += 4; - var_v1->unk-4 = temp_v0; - } while (var_a1 < 4); - if (gModeSelection != GRAND_PRIX) { - if (D_8018EDEC != 1) { + for (var_a1 = 0; var_a1 < 4; var_a1++) { + sp24[var_a1] = find_8018D9E0_entry_dupe(var_a1 + 0x5F); + } + if (gModeSelection != 0) { + if (D_8018EDEC != 1U) { arg0->unk4 = 0; arg0->unk20 = 0; - if (gCupCourseSelection == 0) { - sp24->unk15 = 1; - if (arg0->unk1C != 0) { - arg0->unk1C = 0; + for (var_a1 = 0; var_a1 < 4; var_a1++) { + if (gCupCourseSelection == var_a1) { + sp24[var_a1]->visible = 1; + if (arg0->unk1C != var_a1) { + arg0->unk1C = var_a1; + } } - } else { - sp24->unk15 = 0; - } - if (gCupCourseSelection == 1) { - sp28->unk15 = 1; - if (arg0->unk1C != 1) { - arg0->unk1C = (s32) 1; + else { + sp24[var_a1]->visible = 0; } - } else { - sp28->unk15 = 0; - } - if (gCupCourseSelection == 2) { - sp2C->unk15 = 1; - if (arg0->unk1C != 2) { - arg0->unk1C = 2; - } - } else { - sp2C->unk15 = 0; - } - if (gCupCourseSelection == 3) { - sp30->unk15 = 1; - if (arg0->unk1C != 3) { - arg0->unk1C = 3; - } - } else { - sp30->unk15 = 0; } } else { arg0->unk4 = 3; - sp24->unk15 = 1; - sp24->unk14 = 6; - sp28->unk15 = 1; - sp28->unk14 = 6; - sp2C->unk15 = 1; - sp2C->unk14 = 6; - sp30->unk15 = 1; - sp30->unk14 = 6; + for (var_a1 = 0; var_a1 < 4; var_a1++) { + sp24[var_a1]->visible = 1; + sp24[var_a1]->priority = 6; + } } } else { var_v0 = arg0->unk4; switch (var_v0) { /* irregular */ case 0: - if (((s32) arg0->unk1C / 4) == gCupSelection) { - temp_t5 = arg0->unk20 + 1; - arg0->unk20 = temp_t5; - if (temp_t5 >= 0x33) { + if ((arg0->unk1C / 4) == gCupSelection) { + arg0->unk20++; + if (arg0->unk20 >= 0x33) { arg0->unk4 = 1; arg0->unk20 = 0; - arg0->unk1C = (gCupSelection * 4) + 1; + arg0->unk1C = (gCupSelection * 4); + arg0->unk1C++; } } else { arg0->unk20 = 0; @@ -13788,18 +13638,17 @@ void func_800AB314(struct_8018D9E0_entry *arg0) { var_v0 = arg0->unk4; break; case 1: - var_v0 = 0; - if (((s32) arg0->unk1C / 4) != gCupSelection) { + if ((arg0->unk1C / 4) != gCupSelection) { arg0->unk4 = 0; + var_v0 = 0; arg0->unk20 = 0; arg0->unk1C = 0; } else { - temp_t2 = arg0->unk20 + 1; - arg0->unk20 = temp_t2; - if (temp_t2 >= 0x1F) { + arg0->unk20++; + if (arg0->unk20 >= 0x1F) { arg0->unk20 = 0; + arg0->unk1C = (gCupSelection * 4) + (((arg0->unk1C % 4) + 1) % 4); var_v0 = arg0->unk4; - arg0->unk1C = (gCupSelection * 4) + ((s32) (((s32) arg0->unk1C % 4) + 1) % 4); } else { if (D_8018EDEC == 3) { arg0->unk4 = 2; @@ -13810,9 +13659,8 @@ void func_800AB314(struct_8018D9E0_entry *arg0) { } break; case 2: - temp_t7 = arg0->unk20 + 1; - arg0->unk20 = temp_t7; - if (temp_t7 >= 0x1A) { + arg0->unk20++; + if (arg0->unk20 >= 0x1A) { arg0->unk4 = 3; arg0->unk20 = 0; } @@ -13832,70 +13680,39 @@ void func_800AB314(struct_8018D9E0_entry *arg0) { } break; } - if ((var_v0 != 0) && (var_v0 != (s32) 1)) { - var_a1_2 = 0; - if (var_v0 != 2) { - if (var_v0 != (s32) 3) { - return; + switch (var_v0) { + case 0: + case 1: + for (var_a1 = 0; var_a1 < 4; var_a1++) { + if ((arg0->unk1C % 4) == var_a1) { + sp24[var_a1]->visible = 1; + } else { + sp24[var_a1]->visible = 0; } - sp24->unk15 = 1; - sp24->unk14 = 6; - sp28->unk15 = 1; - sp28->unk14 = 6; - sp2C->unk15 = 1; - sp2C->unk14 = 6; - sp30->unk15 = 1; - sp30->unk14 = 6; - return; + sp24[var_a1]->priority = 6; } - var_v1_2 = &sp24; - do { - if (var_a1_2 == ((s32) arg0->unk1C % 4)) { - var_v1_2->unk0->unk14 = 6; - } else if (arg0->unk20 < (var_a1_2 * 5)) { - var_v1_2->unk0->unk14 = 4; + break; + case 2: + for (var_a1 = 0; var_a1 < 4; var_a1++) { + if (var_a1 == (arg0->unk1C % 4)) { + sp24[var_a1]->priority = 6; + } else if(arg0->unk20 < (var_a1 * 5)) { + sp24[var_a1]->priority = 4; } else { - var_v1_2->unk0->unk14 = 8; + sp24[var_a1]->priority = 8; } - var_v1_2->unk0->unk15 = 1; - if ((var_a1_2 + 1) == ((s32) arg0->unk1C % 4)) { - var_v1_2->unk4->unk14 = 6; - } else if (arg0->unk20 < ((var_a1_2 * 5) + 5)) { - var_v1_2->unk4->unk14 = 4; - } else { - var_v1_2->unk4->unk14 = 8; - } - temp_t7_2 = var_v1_2->unk4; - var_a1_2 += 2; - var_v1_2 += 8; - temp_t7_2->unk15 = 1; - } while (var_a1_2 != 4); - return; + sp24[var_a1]->visible = 1; + } + break; + case 3: + for (var_a1 = 0; var_a1 < 4; var_a1++) { + sp24[var_a1]->visible = 1; + sp24[var_a1]->priority = 6; + } + break; + default: + break; } - if (!(arg0->unk1C & 3)) { - sp24->unk15 = 1; - } else { - sp24->unk15 = 0; - } - sp24->unk14 = 6; - if (((s32) arg0->unk1C % 4) == 1) { - sp28->unk15 = 1; - } else { - sp28->unk15 = 0; - } - sp28->unk14 = 6; - if (((s32) arg0->unk1C % 4) == 2) { - sp2C->unk15 = 1; - } else { - sp2C->unk15 = 0; - } - sp2C->unk14 = 6; - if (((s32) arg0->unk1C % 4) == 3) { - sp30->unk15 = 1; - } else { - sp30->unk15 = 0; - } - sp30->unk14 = 6; } } #else @@ -14270,17 +14087,15 @@ void func_800AC324(struct_8018D9E0_entry *arg0) { } #ifdef MIPS_TO_C -//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-12-2022 -? func_800B536C(s32, s32, s32, struct_8018D9E0_entry *); /* extern */ +//generated by m2c commit b52d92c2340f6f4ba1aafb464188bb698752fbb0 on Jul-16-2023 extern ? D_80164478; -extern void *D_8018D9BC; +s32 D_800DDB24 = 1; static s8 gGP1stPlaceReward = 9; /* const */ static s8 gGP2ndPlaceReward = 6; /* const */ static s8 gGP3rdPlaceReward = 3; /* const */ static s8 gGP4thPlaceReward = 1; /* const */ -s32 D_800DDB24 = 1; -void func_800AC458(struct_8018D9E0_entry *arg0) { +void func_800AC458(void *arg0) { s32 sp1C; s32 sp18; s32 temp_a1; @@ -14293,32 +14108,32 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { s32 temp_t5; s32 temp_t7; s32 temp_t8; - s32 temp_v0; s32 temp_v0_2; - s32 temp_v0_3; s32 var_a0; s32 var_a1; s32 var_t1; s8 *temp_v1; s8 *var_v0; + u32 temp_v0; + u32 temp_v0_3; u8 *temp_a2_2; u8 temp_t0; temp_v0 = arg0->unk4; switch (temp_v0) { case 0: - arg0->column = -0x000000A0; - arg0->unk4 = 1; + arg0->unkC = -0x000000A0; + arg0->unk4 = 1U; D_8018D9BC->unk0 = (s8) gGP1stPlaceReward; D_8018D9BC->unk1 = (s8) gGP2ndPlaceReward; D_8018D9BC->unk2 = (s8) gGP3rdPlaceReward; D_8018D9BC->unk3 = (s8) gGP4thPlaceReward; - arg0->unk20 = arg0->column; + arg0->unk20 = (s32) arg0->unkC; return; case 1: temp_a1 = arg0->unk20; var_a0 = 0x10; - arg0->column = temp_a1; + arg0->unkC = temp_a1; if (D_8018D9D8 != 0) { var_a0 = 0x20; } @@ -14330,18 +14145,18 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { return; } arg0->unk20 = 0; - arg0->column = 0; - arg0->unk4 = 2; + arg0->unkC = 0; + arg0->unk4 = 2U; arg0->unk1C = 0; D_800DC5EC->screenStartX = 0x00F0; D_800DC5F0->screenStartX = 0x0050; return; case 2: - arg0->column = 0; + arg0->unkC = 0; temp_t5 = arg0->unk1C + 1; arg0->unk1C = temp_t5; if (((D_8018D9D8 != 0) || (temp_t5 >= 0x1F)) && (D_800DDB24 != 0)) { - arg0->unk4 = 3; + arg0->unk4 = 3U; arg0->unk1C = 0; arg0->unk20 = 0; return; @@ -14380,11 +14195,11 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { temp_v0_3 = arg0->unk4; arg0->unk20 = 0; arg0->unk1C = 0; - if (temp_v0_3 < 6) { - arg0->unk4 = temp_v0_3 + 1; + if ((s32) temp_v0_3 < 6) { + arg0->unk4 = (u32) (temp_v0_3 + 1); return; } - arg0->unk4 = 7; + arg0->unk4 = 7U; return; } break; @@ -14392,7 +14207,7 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { temp_t2 = arg0->unk1C + 1; arg0->unk1C = temp_t2; if ((((D_8018D9D8 != 0) && (temp_t2 >= 0xB)) || (arg0->unk1C >= 0x3D)) && (D_800DDB24 != 0)) { - arg0->unk4 = 8; + arg0->unk4 = 8U; arg0->unk1C = 0; return; } @@ -14401,10 +14216,10 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { temp_t8 = arg0->unk1C + 1; arg0->unk1C = temp_t8; if (D_8018D9D8 != 0) { - arg0->unk1C = temp_t8 + 5; + arg0->unk1C = (s32) (temp_t8 + 5); } if (arg0->unk1C >= 0x29) { - arg0->unk4 = 9; + arg0->unk4 = 9U; return; } break; @@ -14412,17 +14227,17 @@ void func_800AC458(struct_8018D9E0_entry *arg0) { temp_t7 = arg0->unk1C - 1; arg0->unk1C = temp_t7; if (D_8018D9D8 != 0) { - arg0->unk1C = temp_t7 - 5; + arg0->unk1C = (s32) (temp_t7 - 5); } if (arg0->unk1C <= 0) { - arg0->unk4 = 0x0000000A; + arg0->unk4 = 0x0000000AU; arg0->unk1C = 0; var_a1 = 0; if (gCupCourseSelection == 3) { var_v0 = gCharacterIdByGPOverallRank; loop_41: if (*(&D_80164478 + (*var_v0 * 2)) < D_8018EDF3) { - func_800B536C(var_a1, var_a1, 8, arg0); + func_800B536C(var_a1); return; } var_a1 += 1; @@ -14438,7 +14253,7 @@ loop_41: temp_t3_2 = arg0->unk1C + 1; arg0->unk1C = temp_t3_2; if (temp_t3_2 > 0) { - arg0->unk4 = 0x0000000B; + arg0->unk4 = 0x0000000BU; arg0->unk1C = 0; func_800921B4(); return; @@ -14446,23 +14261,23 @@ loop_41: break; case 11: if ((D_8018D9D8 != 0) && (D_800DDB24 != 0)) { - arg0->unk4 = 0x0000000C; - arg0->unk20 = arg0->row; + arg0->unk4 = 0x0000000CU; + arg0->unk20 = (s32) arg0->unk10; play_sound2(0x49008015); return; } break; case 12: temp_a1_3 = arg0->unk20; - arg0->row = temp_a1_3; + arg0->unk10 = temp_a1_3; if (temp_a1_3 < 0xF0) { - arg0->unk20 = temp_a1_3 + 0x10; + arg0->unk20 = (s32) (temp_a1_3 + 0x10); D_800DC5EC->screenStartY += 0x10; D_800DC5F0->screenStartY -= 0x10; return; } arg0->unk20 = 0; - arg0->unk4 = 0x0000000D; + arg0->unk4 = 0x0000000DU; arg0->unk1C = 0; D_800DC5EC->screenStartY = 0x012C; D_800DC5F0->screenStartY = -0x003C; @@ -14498,23 +14313,13 @@ void func_800AC978(struct_8018D9E0_entry *arg0) { } } -#ifdef MIPS_TO_C -//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-12-2022 +#ifdef NEEDS_RODATA +// rodata_code_80091750 +extern f64 D_800F26C0 = 4.2; +extern f64 D_800F26C8 = 4.2; +extern f64 D_800F26D0 = 4.2; void func_800ACA14(struct_8018D9E0_entry *arg0) { - f64 temp_f0; - f64 temp_f0_2; - f64 temp_f0_3; - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v0_3; - s32 var_a0; - s32 var_v0; - u16 var_v1; - switch (arg0->unk4) { /* irregular */ - default: - var_v0 = arg0->unk20; - break; case 0: if (arg0->unk20 >= 0xB) { arg0->unk1C += 3; @@ -14523,114 +14328,86 @@ void func_800ACA14(struct_8018D9E0_entry *arg0) { arg0->unk4 = 0x0000000B; arg0->unk1C = 0; } - var_v0 = arg0->unk20; break; case 11: case 12: - if (func_800B4520() != 0) { - // Wut? - } else { - var_v1 = gControllerFive->buttonPressed; - var_a0 = var_v1 | gControllerFive->stickPressed; - if (var_a0 & 0x800) { - temp_v0_2 = arg0->unk4; - if (temp_v0_2 >= 0xC) { - arg0->unk4 = temp_v0_2 - 1; - play_sound2(0x49008000); - temp_f0 = (f64) arg0->unk24; - if (temp_f0 < 4.2) { - arg0->unk24 = (f32) (temp_f0 + 4.0); - } - arg0->unk8 = -1; - var_v1 = gControllerFive->buttonPressed; - var_a0 = var_v1 | gControllerFive->stickPressed; - } - } - if (var_a0 & 0x400) { - temp_v0_3 = arg0->unk4; - if (temp_v0_3 < 0xC) { - arg0->unk4 = temp_v0_3 + 1; - play_sound2(0x49008000); - temp_f0_2 = (f64) arg0->unk24; - if (temp_f0_2 < 4.2) { - arg0->unk24 = (f32) (temp_f0_2 + 4.0); - } - arg0->unk8 = 1; - var_v1 = gControllerFive->buttonPressed; - } - } - if (var_v1 & 0x9000) { - func_8009DFE0(0x0000001E); - func_800CA330(0x19U); - play_sound2(0x4900801B); - temp_f0_3 = (f64) arg0->unk24; - if (temp_f0_3 < 4.2) { - arg0->unk24 = (f32) (temp_f0_3 + 4.0); + if (func_800B4520()) break; + + if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x800) { + if (arg0->unk4 >= 0xC) { + arg0->unk4--; + play_sound2(0x49008000); + if (arg0->unk24 < 4.2) { + arg0->unk24 += 4.0; } + arg0->unk8 = -1; } } - var_v0 = arg0->unk20; + if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x400) { + if (arg0->unk4 < 0xC) { + arg0->unk4++; + play_sound2(0x49008000); + if (arg0->unk24 < 4.2) { + arg0->unk24 += 4.0; + } + arg0->unk8 = 1; + } + } + if (gControllerFive->buttonPressed & 0x9000) { + func_8009DFE0(0x0000001E); + func_800CA330(0x19U); + play_sound2(0x4900801B); + if (arg0->unk24 < 4.2) { + arg0->unk24 += 4.0; + } + } + break; + default: break; } - if (var_v0 < 0x28) { - arg0->unk20 = var_v0 + 1; + if (arg0->unk20 < 0x28) { + arg0->unk20++; } } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800ACA14.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-12-2022 -void func_800ACC50(struct_8018D9E0_entry *arg0) { - f64 temp_f0; - f64 temp_f0_2; - f64 temp_f0_3; - s32 temp_t6; - s32 temp_t8; - s32 temp_t9; - s32 temp_v0; - s32 temp_v0_2; - s32 var_a0; - s32 var_s0; - u16 var_v1; +#ifdef NEEDS_RODATA +// rodata_code_80091750 +// jpt_800F26D8 +extern f64 D_800F2710 = 4.2; +extern f64 D_800F2718 = 4.2; +extern f64 D_800F2720 = 4.2; - temp_t6 = arg0->unk4; - switch (temp_t6) { +void func_800ACC50(struct_8018D9E0_entry *arg0) { + s32 var_s0; + + switch (arg0->unk4) { case 0: - temp_t8 = arg0->unk1C + 3; - arg0->unk1C = temp_t8; - if (temp_t8 >= 0x65) { + arg0->unk1C += 3; + if (arg0->unk1C >= 0x65) { arg0->unk4 = 1; arg0->unk1C = 0; - var_s0 = 0; - if (D_8018EDF3 > 0) { - do { - add_8018D9E0_entry(var_s0 + 0xB1, 0, 0, (s8) (5 - var_s0)); - var_s0 += 1; - } while (var_s0 < D_8018EDF3); - return; + for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + add_8018D9E0_entry(var_s0 + 0xB1, 0, 0, (s8) (5 - var_s0)); } } - default: - return; + break; case 1: if (find_8018D9E0_entry_dupe(0x000000B1)->unk4 >= 2) { arg0->unk4 = 2; - return; } break; case 2: - temp_t9 = arg0->unk1C + 0x20; - arg0->unk1C = temp_t9; - if (temp_t9 >= 0x100) { + arg0->unk1C += 0x20; + if (arg0->unk1C >= 0x100) { if (gModeSelection == 2) { arg0->unk4 = (s32) D_8018EDF4; } else { arg0->unk4 = (s32) D_8018EDF6; } arg0->unk1C = 0; - return; } break; case 10: @@ -14638,36 +14415,27 @@ void func_800ACC50(struct_8018D9E0_entry *arg0) { case 12: case 13: if (func_800B4520() == 0) { - var_v1 = gControllerFive->buttonPressed; - var_a0 = var_v1 | gControllerFive->stickPressed; - if (var_a0 & 0x800) { - temp_v0 = arg0->unk4; - if (temp_v0 >= 0xB) { - arg0->unk4 = temp_v0 - 1; + if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x800) { + if (arg0->unk4 >= 0xB) { + arg0->unk4--; play_sound2(0x49008000); - temp_f0 = (f64) arg0->unk24; - if (temp_f0 < 4.2) { - arg0->unk24 = (f32) (temp_f0 + 4.0); + if (arg0->unk24 < 4.2) { + arg0->unk24 += 4.0; } arg0->unk8 = -1; - var_v1 = gControllerFive->buttonPressed; - var_a0 = var_v1 | gControllerFive->stickPressed; } } - if (var_a0 & 0x400) { - temp_v0_2 = arg0->unk4; - if (temp_v0_2 < 0xD) { - arg0->unk4 = temp_v0_2 + 1; + if ((gControllerFive->buttonPressed | gControllerFive->stickPressed) & 0x400) { + if (arg0->unk4 < 0xD) { + arg0->unk4++; play_sound2(0x49008000); - temp_f0_2 = (f64) arg0->unk24; - if (temp_f0_2 < 4.2) { - arg0->unk24 = (f32) (temp_f0_2 + 4.0); + if (arg0->unk24 < 4.2) { + arg0->unk24 += 4.0; } arg0->unk8 = 1; - var_v1 = gControllerFive->buttonPressed; } } - if (var_v1 & 0x9000) { + if (gControllerFive->buttonPressed & 0x9000) { func_8009DFE0(0x0000001E); play_sound2(0x49008016); if (gModeSelection == 2) { @@ -14675,13 +14443,14 @@ void func_800ACC50(struct_8018D9E0_entry *arg0) { } else { D_8018EDF6 = (s8) arg0->unk4; } - temp_f0_3 = (f64) arg0->unk24; - if (temp_f0_3 < 4.2) { - arg0->unk24 = (f32) (temp_f0_3 + 4.0); + if (arg0->unk24 < 4.2) { + arg0->unk24 += 4.0; } } } break; + default: + break; } } #else diff --git a/src/code_80091750.h b/src/code_80091750.h index 6c7bb3b1c..de53707ea 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -265,6 +265,8 @@ void func_800AC128(struct_8018D9E0_entry*); void func_800AC300(struct_8018D9E0_entry*); void func_800AC324(struct_8018D9E0_entry*); void func_800AC978(struct_8018D9E0_entry*); +void func_800ACA14(struct_8018D9E0_entry*); +void func_800ACC50(struct_8018D9E0_entry*); void func_800AD1A4(struct_8018D9E0_entry*); void func_800ADF48(struct_8018D9E0_entry*); void func_800AEC54(struct_8018D9E0_entry*); diff --git a/src/code_802AAA70.c b/src/code_802AAA70.c index b77d60307..8446e4c68 100644 --- a/src/code_802AAA70.c +++ b/src/code_802AAA70.c @@ -30,112 +30,78 @@ void func_802AAAAC(UnkActorInner *arg0) { vec3f_set(arg0->unk60, 0.0f, 1.0f, 0.0f); } -#ifdef MIPS_TO_C -//generated by m2c commit 6b6e1390bf30013247343623194964ff13d0c45b -extern f32 D_8015F8E4; -static f32 D_802B9E00 = 1859.0f; -static f32 D_802B9E04 = 1549.0f; -static f32 D_802B9E08 = -1102.0f; -static f32 D_802B9E0C = -1402.0f; -static f32 D_802B9E10 = 2405.0f; -static f32 D_802B9E14 = 2233.0f; -static f32 D_802B9E18 = 0.8f; -static f32 D_802B9E1C = -475.0f; -static f32 D_802B9E20 = -33.9f; -static f32 D_802B9E24 = -838.0f; -static f32 D_802B9E28 = -475.0f; -static f32 D_802B9E2C = -475.0f; -static f32 D_802B9E30 = -993.0f; -static f32 D_802B9E34 = -33.9f; -static f32 D_802B9E38 = -475.0f; -static f32 D_802B9E3C = -33.9f; -static f32 D_802B9E40 = -475.0f; -static f32 D_802B9E44 = -33.9f; -s16 gCurrentCourseId; /* unable to generate initializer */ - f32 func_802AAB4C(Player *player) { - f32 sp1C; - f32 sp18; - f32 temp_f0; - f32 temp_f2; - s16 temp_v0; + f32 playerX; + f32 playerZ; s32 temp_v1; - temp_v0 = gCurrentCourseId; - temp_f0 = player->pos[0]; - temp_f2 = player->pos[2]; - switch (temp_v0) { /* irregular */ - case 2: - if (D_802B9E00 < temp_f0) { - goto block_43; + playerX = player->pos[0]; + playerZ = player->pos[2]; + switch (gCurrentCourseId) { /* irregular */ + case COURSE_BOWSER_CASTLE: + if (playerX > 1859.0f) { + return D_8015F8E4; } - if (temp_f0 < D_802B9E04) { - goto block_43; + if (playerX < 1549.0f) { + return D_8015F8E4; } - if (D_802B9E08 < temp_f2) { - goto block_43; + if (playerZ > -1102.0f) { + return D_8015F8E4; } - if (temp_f2 < D_802B9E0C) { -block_43: - default: + if (playerZ < -1402.0f) { return D_8015F8E4; } return 20.0f; - case 6: - if (temp_f0 > 239.0f) { - goto block_43; + case COURSE_KOOPA_BEACH: + if (playerX > 239.0f) { + return D_8015F8E4; } - if (temp_f0 < 67.0f) { - goto block_43; + if (playerX < 67.0f) { + return D_8015F8E4; } - if (D_802B9E10 < temp_f2) { - goto block_43; + if (playerZ > 2405.0f) { + return D_8015F8E4; } - if (temp_f2 < D_802B9E14) { - goto block_43; + if (playerZ < 2233.0f) { + return D_8015F8E4; } - return D_802B9E18; - case 12: + return 0.8f; + case COURSE_SHERBET_LAND: if ((func_802ABD10(player->unk_110.unk3A) & 0xFF) == 5) { return (f32) (D_8015F6EE - 0xA); } - goto block_43; - case 18: - sp18 = temp_f2; - sp1C = temp_f0; + return D_8015F8E4; + case COURSE_DK_JUNGLE: temp_v1 = func_802ABD40(player->unk_110.unk3A) & 0xFF; if (temp_v1 == 0xFF) { - sp18 = temp_f2; - sp1C = temp_f0; if ((func_802ABD10(player->unk_110.unk3A) & 0xFF) == 0xF) { - return D_802B9E1C; + return -475.0f; } - if (temp_f0 > -478.0f) { - return D_802B9E20; + if (playerX > -478.0f) { + return -33.9f; } - if (temp_f0 < D_802B9E24) { - return D_802B9E28; + if (playerX < -838.0f) { + return -475.0f; } - if (temp_f2 > -436.0f) { - return D_802B9E2C; + if (playerZ > -436.0f) { + return -475.0f; } - if (temp_f2 < D_802B9E30) { - return D_802B9E34; + if (playerZ < -993.0f) { + return -33.9f; } - if (temp_f2 < temp_f0) { - return D_802B9E38; + if (playerZ < playerX) { + return -475.0f; } - return D_802B9E3C; + return -33.9f; } if (temp_v1 >= 0x14) { - return D_802B9E40; + return -475.0f; } - return D_802B9E44; + return -33.9f; + default: + return D_8015F8E4; } } -#else -GLOBAL_ASM("asm/non_matchings/code_802AAA70/func_802AAB4C.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c @@ -2163,79 +2129,17 @@ void func_802AECA0(s32 arg0, s8 arg1, u16 arg2) { GLOBAL_ASM("asm/non_matchings/code_802AAA70/func_802AECA0.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern ? D_8015F668; -extern uintptr_t gSegmentTable; - -void func_802AED6C(u32 arg0, s32 arg1, s32 arg2) { - s32 temp_a2; - s32 temp_t0; - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v0_3; - s32 temp_v0_4; - s32 temp_v0_5; - s32 temp_v1; - s32 temp_v1_2; - s32 phi_v0; - s32 *phi_a0; - s32 phi_v1; - s32 phi_v0_2; - void *phi_a0_2; - s32 phi_v1_2; - s32 phi_a2; - s32 phi_a2_2; - - temp_v0 = *(&gSegmentTable + ((arg0 >> 0x18) * 4)) + (arg0 & 0xFFFFFF) + 0x80000000; - phi_v0 = temp_v0; - phi_v1 = 0; - phi_v0_2 = temp_v0; - phi_a2 = arg2; - phi_v1_2 = 0; - phi_a2_2 = arg2; - if (arg1 != 0) { - temp_t0 = arg1 & 3; - if (temp_t0 != 0) { - phi_a0 = (arg2 * 4) + &D_8015F668; - do { - *phi_a0 = phi_v0; - temp_v1 = phi_v1 + 1; - temp_v0_2 = phi_v0 + 0x10; - temp_a2 = phi_a2_2 + 1; - phi_v0 = temp_v0_2; - phi_a0 += 4; - phi_v1 = temp_v1; - phi_v0_2 = temp_v0_2; - phi_a2 = temp_a2; - phi_v1_2 = temp_v1; - phi_a2_2 = temp_a2; - } while (temp_t0 != temp_v1); - if (temp_v1 != arg1) { - goto block_5; - } - } else { -block_5: - phi_a0_2 = (phi_a2 * 4) + &D_8015F668; - do { - phi_a0_2->unk0 = phi_v0_2; - temp_v0_3 = phi_v0_2 + 0x10; - phi_a0_2->unk4 = temp_v0_3; - temp_v0_4 = temp_v0_3 + 0x10; - phi_a0_2->unk8 = temp_v0_4; - temp_v0_5 = temp_v0_4 + 0x10; - phi_a0_2->unkC = temp_v0_5; - temp_v1_2 = phi_v1_2 + 4; - phi_v0_2 = temp_v0_5 + 0x10; - phi_a0_2 += 0x10; - phi_v1_2 = temp_v1_2; - } while (temp_v1_2 != arg1); - } +void func_802AED6C(Vtx *arg0, s32 arg1, s32 arg2) { + Vtx *var_v0; + s32 var_v1; + s32 segment = SEGMENT_NUMBER2(arg0); + s32 offset = SEGMENT_OFFSET(arg0); + var_v0 = (Vtx *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset); + for (var_v1 = 0; var_v1 != arg1; var_v1++) + { + D_8015F668[arg2++] = var_v0++; } } -#else -GLOBAL_ASM("asm/non_matchings/code_802AAA70/func_802AED6C.s") -#endif s32 func_802AEE1C(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6, s16 arg7) { f32 temp_f0; @@ -2515,71 +2419,50 @@ void func_802AF7B4(uintptr_t addr, s32 uls, s32 ult) { } } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern uintptr_t gSegmentTable; +void func_802AF83C(Vtx *arg0, u32 vertexCount, s32 arg2, s8 arg3, u8 arg4, u8 arg5, u8 arg6) { + s32 segment = SEGMENT_NUMBER2(arg0); + s32 offset = SEGMENT_OFFSET(arg0); + Vtx *phi_v0 = (Vtx *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset); + u32 var_v1 = 0; -void func_802AF83C(u32 arg0, u32 arg1, ? arg2, s8 arg3, u8 arg4, u8 arg5, u8 arg6) { - u32 temp_v1; - void *phi_v0; - u32 phi_v1; - - phi_v0 = *(&gSegmentTable + ((arg0 >> 0x18) * 4)) + (arg0 & 0xFFFFFF) + 0x80000000; - phi_v1 = 0; - if (arg1 != 0) { - do { - temp_v1 = phi_v1 + 1; - phi_v1 = temp_v1; - if (arg4 != 0) { - phi_v0->unkC = arg4; - phi_v0->unkD = arg5; - phi_v0->unkE = arg6; - } - phi_v0->unkF = arg3; - phi_v0 += 0x10; - } while (temp_v1 < arg1); - } -} -#else -GLOBAL_ASM("asm/non_matchings/code_802AAA70/func_802AF83C.s") -#endif - -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_802AF83C(u32, s32, u32, s8, s32, s32, s32); // extern -extern uintptr_t gSegmentTable; - -void func_802AF8BC(u32 arg0, s8 arg1, s32 arg2, s32 arg3, u8 arg4) { - s32 temp_s2; - s32 temp_s3; - s32 temp_v1; - u32 temp_a0; - u32 temp_v0; - void *phi_s0; - - temp_s2 = arg2 & 0xFF; - temp_s3 = arg3 & 0xFF; - phi_s0 = *(&gSegmentTable + ((arg0 >> 0x18) * 4)) + (arg0 & 0xFFFFFF) + 0x80000000; -loop_1: - temp_v0 = phi_s0->unk0; - temp_a0 = phi_s0->unk4; - temp_v1 = temp_v0 & 0xFF000000; - if (temp_v1 != 0xB8000000) { - if (temp_v1 == 0x6000000) { - func_802AF8BC(temp_a0, arg1, temp_s2 & 0xFF, temp_s3 & 0xFF, arg4); - phi_s0 += 8; - } else { - if (temp_v1 == 0x4000000) { - func_802AF83C(temp_a0, (temp_v0 >> 0xA) & 0x3F, ((temp_v0 >> 0x10) & 0xFF) >> 1, arg1, temp_s2, temp_s3, arg4); - } - phi_s0 += 8; + // For some, unholy reason this can't be a for loop + // I just want to turn this into + // for (var_v1 = 0; var_v1 < vertexCount; var_v1++) + // phi_v0[var_v1].n.n[0] ... + if(1){} + while (var_v1 < vertexCount) { + if (arg4) { + phi_v0->n.n[0] = arg4; + phi_v0->n.n[1] = arg5; + phi_v0->n.n[2] = arg6; } - goto loop_1; + phi_v0->n.a = arg3; + var_v1++; + phi_v0++; } } -#else -GLOBAL_ASM("asm/non_matchings/code_802AAA70/func_802AF8BC.s") -#endif + +void func_802AF8BC(Gfx *displayList, s8 arg1, u8 arg2, u8 arg3, u8 arg4) { + uintptr_t upperWord; + uintptr_t lowerWord; + s32 command; + s32 segment = SEGMENT_NUMBER2(displayList); + s32 offset = SEGMENT_OFFSET(displayList); + Gfx *phi_v0 = (Gfx *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[segment] + offset); + + do { + upperWord = phi_v0->words.w0; + lowerWord = phi_v0->words.w1; + command = upperWord & 0xFF000000; + if (command == (G_ENDDL << 24)) break; + if (command == (G_DL << 24)) { + func_802AF8BC(lowerWord, arg1, arg2, arg3, arg4); + } else if (command == (G_VTX << 24)) { + func_802AF83C(lowerWord, (upperWord >> 0xA) & 0x3F, ((upperWord >> 0x10) & 0xFF) >> 1, arg1, arg2, arg3, arg4); + } + phi_v0++; + } while(1); +} void func_802AF9F0(Vec3f arg0, f32 arg1, Vec3f arg2) { arg2[0] -= arg0[0] * arg1; diff --git a/src/code_802AAA70.h b/src/code_802AAA70.h index 76efe717b..5d31ca0cb 100644 --- a/src/code_802AAA70.h +++ b/src/code_802AAA70.h @@ -19,6 +19,7 @@ void func_802AC114(Vec3f, f32, Vec3f, f32); void func_802AD950(UnkActorInner*, f32, f32, f32, f32, f32, f32, f32); s32 func_802ADDC8(UnkActorInner*, f32, f32, f32, f32); f32 func_802AE1C0(f32, f32, f32); +void func_802AED6C(Vtx*, s32, s32); s32 func_802AEE1C(s16, s16, s16, s16, s16, s16, s16, s16); s32 func_802AF0FC(s16, s16, s16, s16, u16); void func_802AF314(); @@ -26,7 +27,12 @@ void func_802AF588(s32); void func_802AF5AC(s32, s8); void func_802AF5D8(u32, s8, u16); void func_802AF7B4(uintptr_t, s32, s32); -void func_802AF8BC(uintptr_t, s8, u8, u8, u8); +void func_802AF83C(Vtx*, u32, s32, s8, u8, u8, u8); +void func_802AF8BC(Gfx*, s8, u8, u8, u8); void func_802AF9F0(Vec3f, f32, Vec3f); +extern Vtx *D_8015F668[]; +extern s16 D_8015F6EE; +extern f32 D_8015F8E4; + #endif