diff --git a/asm/non_matchings/code_80005FD0/func_80008424.s b/asm/non_matchings/code_80005FD0/func_80008424.s deleted file mode 100644 index fe89fb24b..000000000 --- a/asm/non_matchings/code_80005FD0/func_80008424.s +++ /dev/null @@ -1,336 +0,0 @@ -.section .late_rodata - -glabel D_800ECF9C -.float 3.3333333 - -glabel D_800ECFA0 -.float 1.6666666 - -.section .text - -glabel func_80008424 -/* 009024 80008424 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 009028 80008428 AFBF0014 */ sw $ra, 0x14($sp) -/* 00902C 8000842C AFA40038 */ sw $a0, 0x38($sp) -/* 009030 80008430 8CC300BC */ lw $v1, 0xbc($a2) -/* 009034 80008434 44856000 */ mtc1 $a1, $f12 -/* 009038 80008438 00C03825 */ move $a3, $a2 -/* 00903C 8000843C 306E0080 */ andi $t6, $v1, 0x80 -/* 009040 80008440 15C00121 */ bnez $t6, .L800088C8 -/* 009044 80008444 C4C20094 */ lwc1 $f2, 0x94($a2) -/* 009048 80008448 306F0040 */ andi $t7, $v1, 0x40 -/* 00904C 8000844C 15E0011E */ bnez $t7, .L800088C8 -/* 009050 80008450 0003C380 */ sll $t8, $v1, 0xe -/* 009054 80008454 0702011D */ bltzl $t8, .L800088CC -/* 009058 80008458 8FBF0014 */ lw $ra, 0x14($sp) -/* 00905C 8000845C 8CC2000C */ lw $v0, 0xc($a2) -/* 009060 80008460 0002CA40 */ sll $t9, $v0, 9 -/* 009064 80008464 07200118 */ bltz $t9, .L800088C8 -/* 009068 80008468 000249C0 */ sll $t1, $v0, 7 -/* 00906C 8000846C 05200116 */ bltz $t1, .L800088C8 -/* 009070 80008470 304A0002 */ andi $t2, $v0, 2 -/* 009074 80008474 15400114 */ bnez $t2, .L800088C8 -/* 009078 80008478 304B0004 */ andi $t3, $v0, 4 -/* 00907C 8000847C 15600112 */ bnez $t3, .L800088C8 -/* 009080 80008480 3C0C800E */ lui $t4, %hi(gCurrentCourseId) -/* 009084 80008484 858CC5A0 */ lh $t4, %lo(gCurrentCourseId)($t4) -/* 009088 80008488 24010014 */ li $at, 20 -/* 00908C 8000848C 00C02825 */ move $a1, $a2 -/* 009090 80008490 55810007 */ bnel $t4, $at, .L800084B0 -/* 009094 80008494 8FA60038 */ lw $a2, 0x38($sp) -/* 009098 80008498 44061000 */ mfc1 $a2, $f2 -/* 00909C 8000849C 0C001FE9 */ jal func_80007FA4 -/* 0090A0 800084A0 00000000 */ nop -/* 0090A4 800084A4 10000109 */ b .L800088CC -/* 0090A8 800084A8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0090AC 800084AC 8FA60038 */ lw $a2, 0x38($sp) -.L800084B0: -/* 0090B0 800084B0 3C0E8016 */ lui $t6, %hi(D_801634D8) # 0x8016 -/* 0090B4 800084B4 24080001 */ li $t0, 1 -/* 0090B8 800084B8 00066840 */ sll $t5, $a2, 1 -/* 0090BC 800084BC 01CD7021 */ addu $t6, $t6, $t5 -/* 0090C0 800084C0 85CE34D8 */ lh $t6, %lo(D_801634D8)($t6) # 0x34d8($t6) -/* 0090C4 800084C4 3C018000 */ lui $at, (0x80000200 >> 16) # lui $at, 0x8000 -/* 0090C8 800084C8 34210200 */ ori $at, (0x80000200 & 0xFFFF) # ori $at, $at, 0x200 -/* 0090CC 800084CC 150E0015 */ bne $t0, $t6, .L80008524 -/* 0090D0 800084D0 01A03025 */ move $a2, $t5 -/* 0090D4 800084D4 00617824 */ and $t7, $v1, $at -/* 0090D8 800084D8 15E00012 */ bnez $t7, .L80008524 -/* 0090DC 800084DC 00E02025 */ move $a0, $a3 -/* 0090E0 800084E0 3C054120 */ lui $a1, 0x4120 -/* 0090E4 800084E4 0C00C7D2 */ jal func_80031F48 -/* 0090E8 800084E8 AFA70040 */ sw $a3, 0x40($sp) -/* 0090EC 800084EC 8FA70040 */ lw $a3, 0x40($sp) -/* 0090F0 800084F0 44802800 */ mtc1 $zero, $f5 -/* 0090F4 800084F4 44802000 */ mtc1 $zero, $f4 -/* 0090F8 800084F8 C4E6009C */ lwc1 $f6, 0x9c($a3) -/* 0090FC 800084FC 46003221 */ cvt.d.s $f8, $f6 -/* 009100 80008500 46282032 */ c.eq.d $f4, $f8 -/* 009104 80008504 00000000 */ nop -/* 009108 80008508 450200F0 */ bc1fl .L800088CC -/* 00910C 8000850C 8FBF0014 */ lw $ra, 0x14($sp) -/* 009110 80008510 44800000 */ mtc1 $zero, $f0 -/* 009114 80008514 00000000 */ nop -/* 009118 80008518 E4E00034 */ swc1 $f0, 0x34($a3) -/* 00911C 8000851C 100000EA */ b .L800088C8 -/* 009120 80008520 E4E0003C */ swc1 $f0, 0x3c($a3) -.L80008524: -/* 009124 80008524 3C02800E */ lui $v0, %hi(gCCSelection) -/* 009128 80008528 8C42C548 */ lw $v0, %lo(gCCSelection)($v0) -/* 00912C 8000852C 3C01800F */ lui $at, %hi(D_800ECF9C) # $at, 0x800f -/* 009130 80008530 C420CF9C */ lwc1 $f0, %lo(D_800ECF9C)($at) -/* 009134 80008534 10400009 */ beqz $v0, .L8000855C -/* 009138 80008538 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 00913C 8000853C 1048000D */ beq $v0, $t0, .L80008574 -/* 009140 80008540 24010002 */ li $at, 2 -/* 009144 80008544 10410008 */ beq $v0, $at, .L80008568 -/* 009148 80008548 24010003 */ li $at, 3 -/* 00914C 8000854C 5041000A */ beql $v0, $at, .L80008578 -/* 009150 80008550 4600103C */ c.lt.s $f2, $f0 -/* 009154 80008554 10000008 */ b .L80008578 -/* 009158 80008558 4600103C */ c.lt.s $f2, $f0 -.L8000855C: -/* 00915C 8000855C 44810000 */ mtc1 $at, $f0 -/* 009160 80008560 10000005 */ b .L80008578 -/* 009164 80008564 4600103C */ c.lt.s $f2, $f0 -.L80008568: -/* 009168 80008568 3C014070 */ li $at, 0x40700000 # 3.750000 -/* 00916C 8000856C 44810000 */ mtc1 $at, $f0 -/* 009170 80008570 00000000 */ nop -.L80008574: -/* 009174 80008574 4600103C */ c.lt.s $f2, $f0 -.L80008578: -/* 009178 80008578 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 00917C 8000857C 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 009180 80008580 0061C024 */ and $t8, $v1, $at -/* 009184 80008584 45000005 */ bc1f .L8000859C -/* 009188 80008588 00E02025 */ move $a0, $a3 -/* 00918C 8000858C 0C00C3F2 */ jal player_speed -/* 009190 80008590 ACF800BC */ sw $t8, 0xbc($a3) -/* 009194 80008594 100000CD */ b .L800088CC -/* 009198 80008598 8FBF0014 */ lw $ra, 0x14($sp) -.L8000859C: -/* 00919C 8000859C 94F90000 */ lhu $t9, ($a3) -/* 0091A0 800085A0 3C0C8016 */ lui $t4, %hi(D_801631E0) # 0x8016 -/* 0091A4 800085A4 01866021 */ addu $t4, $t4, $a2 -/* 0091A8 800085A8 33290800 */ andi $t1, $t9, 0x800 -/* 0091AC 800085AC 11200014 */ beqz $t1, .L80008600 -/* 0091B0 800085B0 00000000 */ nop -/* 0091B4 800085B4 460C103C */ c.lt.s $f2, $f12 -/* 0091B8 800085B8 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 0091BC 800085BC 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0091C0 800085C0 00615824 */ and $t3, $v1, $at -/* 0091C4 800085C4 45000009 */ bc1f .L800085EC -/* 0091C8 800085C8 00E02025 */ move $a0, $a3 -/* 0091CC 800085CC 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 0091D0 800085D0 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0091D4 800085D4 00615024 */ and $t2, $v1, $at -/* 0091D8 800085D8 ACEA00BC */ sw $t2, 0xbc($a3) -/* 0091DC 800085DC 0C00C3F2 */ jal player_speed -/* 0091E0 800085E0 00E02025 */ move $a0, $a3 -/* 0091E4 800085E4 100000B9 */ b .L800088CC -/* 0091E8 800085E8 8FBF0014 */ lw $ra, 0x14($sp) -.L800085EC: -/* 0091EC 800085EC ACEB00BC */ sw $t3, 0xbc($a3) -/* 0091F0 800085F0 0C00C7D2 */ jal func_80031F48 -/* 0091F4 800085F4 3C053F80 */ lui $a1, 0x3f80 -/* 0091F8 800085F8 100000B4 */ b .L800088CC -/* 0091FC 800085FC 8FBF0014 */ lw $ra, 0x14($sp) -.L80008600: -/* 009200 80008600 958C31E0 */ lhu $t4, %lo(D_801631E0)($t4) # 0x31e0($t4) -/* 009204 80008604 3C0D8016 */ lui $t5, %hi(D_80163330) # 0x8016 -/* 009208 80008608 01A66821 */ addu $t5, $t5, $a2 -/* 00920C 8000860C 150C0023 */ bne $t0, $t4, .L8000869C -/* 009210 80008610 3C028016 */ lui $v0, %hi(D_80163350) # 0x8016 -/* 009214 80008614 95AD3330 */ lhu $t5, %lo(D_80163330)($t5) # 0x3330($t5) -/* 009218 80008618 8FA40038 */ lw $a0, 0x38($sp) -/* 00921C 8000861C 3C058016 */ lui $a1, %hi(gLapCountByPlayerId + 0x2) # 0x8016 -/* 009220 80008620 510D001F */ beql $t0, $t5, .L800086A0 -/* 009224 80008624 00461021 */ addu $v0, $v0, $a2 -/* 009228 80008628 00041080 */ sll $v0, $a0, 2 -/* 00922C 8000862C 3C068016 */ lui $a2, %hi(D_80164408 + 0x2) # 0x8016 -/* 009230 80008630 00C23021 */ addu $a2, $a2, $v0 -/* 009234 80008634 00A22821 */ addu $a1, $a1, $v0 -/* 009238 80008638 84A54392 */ lh $a1, %lo(gLapCountByPlayerId + 0x2)($a1) # 0x4392($a1) -/* 00923C 8000863C 84C6440A */ lh $a2, %lo(D_80164408 + 0x2)($a2) # 0x440a($a2) -/* 009240 80008640 0C002236 */ jal func_800088D8 -/* 009244 80008644 AFA70040 */ sw $a3, 0x40($sp) -/* 009248 80008648 24080001 */ li $t0, 1 -/* 00924C 8000864C 14480009 */ bne $v0, $t0, .L80008674 -/* 009250 80008650 8FA70040 */ lw $a3, 0x40($sp) -/* 009254 80008654 8CEF00BC */ lw $t7, 0xbc($a3) -/* 009258 80008658 3C010020 */ lui $at, 0x20 -/* 00925C 8000865C 00E02025 */ move $a0, $a3 -/* 009260 80008660 01E1C025 */ or $t8, $t7, $at -/* 009264 80008664 0C00C3F2 */ jal player_speed -/* 009268 80008668 ACF800BC */ sw $t8, 0xbc($a3) -/* 00926C 8000866C 10000097 */ b .L800088CC -/* 009270 80008670 8FBF0014 */ lw $ra, 0x14($sp) -.L80008674: -/* 009274 80008674 8CF900BC */ lw $t9, 0xbc($a3) -/* 009278 80008678 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 00927C 8000867C 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 009280 80008680 03214824 */ and $t1, $t9, $at -/* 009284 80008684 ACE900BC */ sw $t1, 0xbc($a3) -/* 009288 80008688 00E02025 */ move $a0, $a3 -/* 00928C 8000868C 0C00C7D2 */ jal func_80031F48 -/* 009290 80008690 3C053F80 */ lui $a1, 0x3f80 -/* 009294 80008694 1000008D */ b .L800088CC -/* 009298 80008698 8FBF0014 */ lw $ra, 0x14($sp) -.L8000869C: -/* 00929C 8000869C 00461021 */ addu $v0, $v0, $a2 -.L800086A0: -/* 0092A0 800086A0 94423350 */ lhu $v0, %lo(D_80163350)($v0) # 0x3350($v0) -/* 0092A4 800086A4 01002825 */ move $a1, $t0 -/* 0092A8 800086A8 5040003C */ beql $v0, $zero, .L8000879C -/* 0092AC 800086AC 00002825 */ move $a1, $zero -/* 0092B0 800086B0 10480008 */ beq $v0, $t0, .L800086D4 -/* 0092B4 800086B4 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 0092B8 800086B8 24010002 */ li $at, 2 -/* 0092BC 800086BC 10410026 */ beq $v0, $at, .L80008758 -/* 0092C0 800086C0 24010003 */ li $at, 3 -/* 0092C4 800086C4 10410014 */ beq $v0, $at, .L80008718 -/* 0092C8 800086C8 00E02025 */ move $a0, $a3 -/* 0092CC 800086CC 10000033 */ b .L8000879C -/* 0092D0 800086D0 00002825 */ move $a1, $zero -.L800086D4: -/* 0092D4 800086D4 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 0092D8 800086D8 00615024 */ and $t2, $v1, $at -/* 0092DC 800086DC ACEA00BC */ sw $t2, 0xbc($a3) -/* 0092E0 800086E0 E7AC003C */ swc1 $f12, 0x3c($sp) -/* 0092E4 800086E4 E7A20034 */ swc1 $f2, 0x34($sp) -/* 0092E8 800086E8 AFA70040 */ sw $a3, 0x40($sp) -/* 0092EC 800086EC AFA6001C */ sw $a2, 0x1c($sp) -/* 0092F0 800086F0 AFA50028 */ sw $a1, 0x28($sp) -/* 0092F4 800086F4 0C00C3F2 */ jal player_speed -/* 0092F8 800086F8 00E02025 */ move $a0, $a3 -/* 0092FC 800086FC 8FA50028 */ lw $a1, 0x28($sp) -/* 009300 80008700 8FA6001C */ lw $a2, 0x1c($sp) -/* 009304 80008704 8FA70040 */ lw $a3, 0x40($sp) -/* 009308 80008708 24080001 */ li $t0, 1 -/* 00930C 8000870C C7A20034 */ lwc1 $f2, 0x34($sp) -/* 009310 80008710 10000022 */ b .L8000879C -/* 009314 80008714 C7AC003C */ lwc1 $f12, 0x3c($sp) -.L80008718: -/* 009318 80008718 3C010020 */ lui $at, 0x20 -/* 00931C 8000871C 00615825 */ or $t3, $v1, $at -/* 009320 80008720 ACEB00BC */ sw $t3, 0xbc($a3) -/* 009324 80008724 E7AC003C */ swc1 $f12, 0x3c($sp) -/* 009328 80008728 E7A20034 */ swc1 $f2, 0x34($sp) -/* 00932C 8000872C AFA70040 */ sw $a3, 0x40($sp) -/* 009330 80008730 AFA6001C */ sw $a2, 0x1c($sp) -/* 009334 80008734 0C00C3F2 */ jal player_speed -/* 009338 80008738 AFA50028 */ sw $a1, 0x28($sp) -/* 00933C 8000873C 8FA50028 */ lw $a1, 0x28($sp) -/* 009340 80008740 8FA6001C */ lw $a2, 0x1c($sp) -/* 009344 80008744 8FA70040 */ lw $a3, 0x40($sp) -/* 009348 80008748 24080001 */ li $t0, 1 -/* 00934C 8000874C C7A20034 */ lwc1 $f2, 0x34($sp) -/* 009350 80008750 10000012 */ b .L8000879C -/* 009354 80008754 C7AC003C */ lwc1 $f12, 0x3c($sp) -.L80008758: -/* 009358 80008758 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 00935C 8000875C 44815000 */ mtc1 $at, $f10 -/* 009360 80008760 3C014190 */ li $at, 0x41900000 # 18.000000 -/* 009364 80008764 44818000 */ mtc1 $at, $f16 -/* 009368 80008768 3C014358 */ li $at, 0x43580000 # 216.000000 -/* 00936C 8000876C 44813000 */ mtc1 $at, $f6 -/* 009370 80008770 46101483 */ div.s $f18, $f2, $f16 -/* 009374 80008774 3C01800F */ lui $at, %hi(D_800ECFA0) # $at, 0x800f -/* 009378 80008778 46069102 */ mul.s $f4, $f18, $f6 -/* 00937C 8000877C 4604503C */ c.lt.s $f10, $f4 -/* 009380 80008780 00000000 */ nop -/* 009384 80008784 45000002 */ bc1f .L80008790 -/* 009388 80008788 00000000 */ nop -/* 00938C 8000878C C42CCFA0 */ lwc1 $f12, %lo(D_800ECFA0)($at) -.L80008790: -/* 009390 80008790 10000002 */ b .L8000879C -/* 009394 80008794 00002825 */ move $a1, $zero -/* 009398 80008798 00002825 */ move $a1, $zero -.L8000879C: -/* 00939C 8000879C 50A8004B */ beql $a1, $t0, .L800088CC -/* 0093A0 800087A0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0093A4 800087A4 460C103C */ c.lt.s $f2, $f12 -/* 0093A8 800087A8 3C0C800E */ lui $t4, %hi(gDemoMode) -/* 0093AC 800087AC 45020035 */ bc1fl .L80008884 -/* 0093B0 800087B0 8CEB00BC */ lw $t3, 0xbc($a3) -/* 0093B4 800087B4 958CC51C */ lhu $t4, %lo(gDemoMode)($t4) -/* 0093B8 800087B8 3C0E8016 */ lui $t6, %hi(D_80163330) # 0x8016 -/* 0093BC 800087BC 3C0D800E */ lui $t5, %hi(gCurrentCourseId) -/* 0093C0 800087C0 150C0009 */ bne $t0, $t4, .L800087E8 -/* 0093C4 800087C4 01C67021 */ addu $t6, $t6, $a2 -/* 0093C8 800087C8 85ADC5A0 */ lh $t5, %lo(gCurrentCourseId)($t5) -/* 0093CC 800087CC 24010014 */ li $at, 20 -/* 0093D0 800087D0 11A10005 */ beq $t5, $at, .L800087E8 -/* 0093D4 800087D4 00000000 */ nop -/* 0093D8 800087D8 0C00C3F2 */ jal player_speed -/* 0093DC 800087DC 00E02025 */ move $a0, $a3 -/* 0093E0 800087E0 1000003A */ b .L800088CC -/* 0093E4 800087E4 8FBF0014 */ lw $ra, 0x14($sp) -.L800087E8: -/* 0093E8 800087E8 95CE3330 */ lhu $t6, %lo(D_80163330)($t6) # 0x3330($t6) -/* 0093EC 800087EC 8FA40038 */ lw $a0, 0x38($sp) -/* 0093F0 800087F0 3C058016 */ lui $a1, %hi(gLapCountByPlayerId + 0x2) # 0x8016 -/* 0093F4 800087F4 150E0006 */ bne $t0, $t6, .L80008810 -/* 0093F8 800087F8 00041080 */ sll $v0, $a0, 2 -/* 0093FC 800087FC 8FA40038 */ lw $a0, 0x38($sp) -/* 009400 80008800 0C001F41 */ jal func_80007D04 -/* 009404 80008804 00E02825 */ move $a1, $a3 -/* 009408 80008808 10000030 */ b .L800088CC -/* 00940C 8000880C 8FBF0014 */ lw $ra, 0x14($sp) -.L80008810: -/* 009410 80008810 3C068016 */ lui $a2, %hi(D_80164408 + 0x2) # 0x8016 -/* 009414 80008814 00C23021 */ addu $a2, $a2, $v0 -/* 009418 80008818 00A22821 */ addu $a1, $a1, $v0 -/* 00941C 8000881C 84A54392 */ lh $a1, %lo(gLapCountByPlayerId + 0x2)($a1) # 0x4392($a1) -/* 009420 80008820 84C6440A */ lh $a2, %lo(D_80164408 + 0x2)($a2) # 0x440a($a2) -/* 009424 80008824 0C002236 */ jal func_800088D8 -/* 009428 80008828 AFA70040 */ sw $a3, 0x40($sp) -/* 00942C 8000882C 24080001 */ li $t0, 1 -/* 009430 80008830 14480009 */ bne $v0, $t0, .L80008858 -/* 009434 80008834 8FA70040 */ lw $a3, 0x40($sp) -/* 009438 80008838 8CF800BC */ lw $t8, 0xbc($a3) -/* 00943C 8000883C 3C010020 */ lui $at, 0x20 -/* 009440 80008840 00E02025 */ move $a0, $a3 -/* 009444 80008844 0301C825 */ or $t9, $t8, $at -/* 009448 80008848 0C00C3F2 */ jal player_speed -/* 00944C 8000884C ACF900BC */ sw $t9, 0xbc($a3) -/* 009450 80008850 1000001E */ b .L800088CC -/* 009454 80008854 8FBF0014 */ lw $ra, 0x14($sp) -.L80008858: -/* 009458 80008858 8CE900BC */ lw $t1, 0xbc($a3) -/* 00945C 8000885C 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 009460 80008860 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 009464 80008864 01215024 */ and $t2, $t1, $at -/* 009468 80008868 ACEA00BC */ sw $t2, 0xbc($a3) -/* 00946C 8000886C 00E02025 */ move $a0, $a3 -/* 009470 80008870 0C00C7D2 */ jal func_80031F48 -/* 009474 80008874 3C053F80 */ lui $a1, 0x3f80 -/* 009478 80008878 10000014 */ b .L800088CC -/* 00947C 8000887C 8FBF0014 */ lw $ra, 0x14($sp) -/* 009480 80008880 8CEB00BC */ lw $t3, 0xbc($a3) -.L80008884: -/* 009484 80008884 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 009488 80008888 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 00948C 8000888C 01616024 */ and $t4, $t3, $at -/* 009490 80008890 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 009494 80008894 44814000 */ mtc1 $at, $f8 -/* 009498 80008898 ACEC00BC */ sw $t4, 0xbc($a3) -/* 00949C 8000889C 3C054000 */ lui $a1, 0x4000 -/* 0094A0 800088A0 460C403C */ c.lt.s $f8, $f12 -/* 0094A4 800088A4 00E02025 */ move $a0, $a3 -/* 0094A8 800088A8 45000005 */ bc1f .L800088C0 -/* 0094AC 800088AC 00000000 */ nop -/* 0094B0 800088B0 0C00C7D2 */ jal func_80031F48 -/* 0094B4 800088B4 00E02025 */ move $a0, $a3 -/* 0094B8 800088B8 10000004 */ b .L800088CC -/* 0094BC 800088BC 8FBF0014 */ lw $ra, 0x14($sp) -.L800088C0: -/* 0094C0 800088C0 0C00C7D2 */ jal func_80031F48 -/* 0094C4 800088C4 3C0540A0 */ lui $a1, 0x40a0 -.L800088C8: -/* 0094C8 800088C8 8FBF0014 */ lw $ra, 0x14($sp) -.L800088CC: -/* 0094CC 800088CC 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0094D0 800088D0 03E00008 */ jr $ra -/* 0094D4 800088D4 00000000 */ nop diff --git a/asm/non_matchings/code_80005FD0/func_8000D100.s b/asm/non_matchings/code_80005FD0/func_8000D100.s deleted file mode 100644 index 1adb23386..000000000 --- a/asm/non_matchings/code_80005FD0/func_8000D100.s +++ /dev/null @@ -1,98 +0,0 @@ -.section .late_rodata - -glabel D_800ECFF8 -.float 250000 - -.section .text - -glabel func_8000D100 -/* 00DD00 8000D100 00077400 */ sll $t6, $a3, 0x10 -/* 00DD04 8000D104 000E7C03 */ sra $t7, $t6, 0x10 -/* 00DD08 8000D108 25E4FFFE */ addiu $a0, $t7, -2 -/* 00DD0C 8000D10C 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 00DD10 8000D110 3C01800F */ lui $at, %hi(D_800ECFF8) # $at, 0x800f -/* 00DD14 8000D114 0004CC00 */ sll $t9, $a0, 0x10 -/* 00DD18 8000D118 F7B40008 */ sdc1 $f20, 8($sp) -/* 00DD1C 8000D11C C420CFF8 */ lwc1 $f0, %lo(D_800ECFF8)($at) -/* 00DD20 8000D120 00195403 */ sra $t2, $t9, 0x10 -/* 00DD24 8000D124 00041400 */ sll $v0, $a0, 0x10 -/* 00DD28 8000D128 25E50007 */ addiu $a1, $t7, 7 -/* 00DD2C 8000D12C 4486A000 */ mtc1 $a2, $f20 -/* 00DD30 8000D130 AFA7001C */ sw $a3, 0x1c($sp) -/* 00DD34 8000D134 0145082A */ slt $at, $t2, $a1 -/* 00DD38 8000D138 0002C403 */ sra $t8, $v0, 0x10 -/* 00DD3C 8000D13C 01E03825 */ move $a3, $t7 -/* 00DD40 8000D140 E7AE0014 */ swc1 $f14, 0x14($sp) -/* 00DD44 8000D144 2403FFFF */ li $v1, -1 -/* 00DD48 8000D148 10200037 */ beqz $at, .L8000D228 -/* 00DD4C 8000D14C 03001025 */ move $v0, $t8 -/* 00DD50 8000D150 3C068016 */ lui $a2, %hi(D_8016359C) # $a2, 0x8016 -/* 00DD54 8000D154 3C098016 */ lui $t1, %hi(D_80163598) # $t1, 0x8016 -/* 00DD58 8000D158 8D293598 */ lw $t1, %lo(D_80163598)($t1) -/* 00DD5C 8000D15C 8CC6359C */ lw $a2, %lo(D_8016359C)($a2) -.L8000D160: -/* 00DD60 8000D160 00022400 */ sll $a0, $v0, 0x10 -/* 00DD64 8000D164 00045C03 */ sra $t3, $a0, 0x10 -/* 00DD68 8000D168 04410005 */ bgez $v0, .L8000D180 -/* 00DD6C 8000D16C 01602025 */ move $a0, $t3 -/* 00DD70 8000D170 00462021 */ addu $a0, $v0, $a2 -/* 00DD74 8000D174 00046400 */ sll $t4, $a0, 0x10 -/* 00DD78 8000D178 000C6C03 */ sra $t5, $t4, 0x10 -/* 00DD7C 8000D17C 01A02025 */ move $a0, $t5 -.L8000D180: -/* 00DD80 8000D180 0086001A */ div $zero, $a0, $a2 -/* 00DD84 8000D184 14C00002 */ bnez $a2, .L8000D190 -/* 00DD88 8000D188 00000000 */ nop -/* 00DD8C 8000D18C 0007000D */ break 7 -.L8000D190: -/* 00DD90 8000D190 2401FFFF */ li $at, -1 -/* 00DD94 8000D194 14C10004 */ bne $a2, $at, .L8000D1A8 -/* 00DD98 8000D198 3C018000 */ lui $at, 0x8000 -/* 00DD9C 8000D19C 14810002 */ bne $a0, $at, .L8000D1A8 -/* 00DDA0 8000D1A0 00000000 */ nop -/* 00DDA4 8000D1A4 0006000D */ break 6 -.L8000D1A8: -/* 00DDA8 8000D1A8 00002010 */ mfhi $a0 -/* 00DDAC 8000D1AC 00047400 */ sll $t6, $a0, 0x10 -/* 00DDB0 8000D1B0 000E7C03 */ sra $t7, $t6, 0x10 -/* 00DDB4 8000D1B4 000FC080 */ sll $t8, $t7, 2 -/* 00DDB8 8000D1B8 03094021 */ addu $t0, $t8, $t1 -/* 00DDBC 8000D1BC 85190000 */ lh $t9, ($t0) -/* 00DDC0 8000D1C0 850A0002 */ lh $t2, 2($t0) -/* 00DDC4 8000D1C4 24420001 */ addiu $v0, $v0, 1 -/* 00DDC8 8000D1C8 44992000 */ mtc1 $t9, $f4 -/* 00DDCC 8000D1CC 448A4000 */ mtc1 $t2, $f8 -/* 00DDD0 8000D1D0 00026400 */ sll $t4, $v0, 0x10 -/* 00DDD4 8000D1D4 468021A0 */ cvt.s.w $f6, $f4 -/* 00DDD8 8000D1D8 000C6C03 */ sra $t5, $t4, 0x10 -/* 00DDDC 8000D1DC 01A5082A */ slt $at, $t5, $a1 -/* 00DDE0 8000D1E0 01E02025 */ move $a0, $t7 -/* 00DDE4 8000D1E4 468042A0 */ cvt.s.w $f10, $f8 -/* 00DDE8 8000D1E8 460C3081 */ sub.s $f2, $f6, $f12 -/* 00DDEC 8000D1EC 46145381 */ sub.s $f14, $f10, $f20 -/* 00DDF0 8000D1F0 46021482 */ mul.s $f18, $f2, $f2 -/* 00DDF4 8000D1F4 00000000 */ nop -/* 00DDF8 8000D1F8 460E7102 */ mul.s $f4, $f14, $f14 -/* 00DDFC 8000D1FC 46049400 */ add.s $f16, $f18, $f4 -/* 00DE00 8000D200 4600803C */ c.lt.s $f16, $f0 -/* 00DE04 8000D204 00000000 */ nop -/* 00DE08 8000D208 45000005 */ bc1f .L8000D220 -/* 00DE0C 8000D20C 00000000 */ nop -/* 00DE10 8000D210 00041C00 */ sll $v1, $a0, 0x10 -/* 00DE14 8000D214 00035C03 */ sra $t3, $v1, 0x10 -/* 00DE18 8000D218 46008006 */ mov.s $f0, $f16 -/* 00DE1C 8000D21C 01601825 */ move $v1, $t3 -.L8000D220: -/* 00DE20 8000D220 1420FFCF */ bnez $at, .L8000D160 -/* 00DE24 8000D224 01A01025 */ move $v0, $t5 -.L8000D228: -/* 00DE28 8000D228 2401FFFF */ li $at, -1 -/* 00DE2C 8000D22C 14610004 */ bne $v1, $at, .L8000D240 -/* 00DE30 8000D230 D7B40008 */ ldc1 $f20, 8($sp) -/* 00DE34 8000D234 00071C00 */ sll $v1, $a3, 0x10 -/* 00DE38 8000D238 00037403 */ sra $t6, $v1, 0x10 -/* 00DE3C 8000D23C 01C01825 */ move $v1, $t6 -.L8000D240: -/* 00DE40 8000D240 00601025 */ move $v0, $v1 -/* 00DE44 8000D244 03E00008 */ jr $ra -/* 00DE48 8000D248 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/asm/non_matchings/code_80005FD0/func_8000D6D0.s b/asm/non_matchings/code_80005FD0/func_8000D6D0.s deleted file mode 100644 index 97002cc29..000000000 --- a/asm/non_matchings/code_80005FD0/func_8000D6D0.s +++ /dev/null @@ -1,170 +0,0 @@ -.section .late_rodata - -glabel D_800ECFFC -.float 0.01 - -.section .text - -glabel func_8000D6D0 -/* 00E2D0 8000D6D0 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 00E2D4 8000D6D4 87AE00C2 */ lh $t6, 0xc2($sp) -/* 00E2D8 8000D6D8 3C188016 */ lui $t8, %hi(D_80164550) # 0x8016 -/* 00E2DC 8000D6DC AFBF003C */ sw $ra, 0x3c($sp) -/* 00E2E0 8000D6E0 000E7880 */ sll $t7, $t6, 2 -/* 00E2E4 8000D6E4 030FC021 */ addu $t8, $t8, $t7 -/* 00E2E8 8000D6E8 8F184550 */ lw $t8, %lo(D_80164550)($t8) # 0x4550($t8) -/* 00E2EC 8000D6EC AFB00038 */ sw $s0, 0x38($sp) -/* 00E2F0 8000D6F0 F7B80030 */ sdc1 $f24, 0x30($sp) -/* 00E2F4 8000D6F4 F7B60028 */ sdc1 $f22, 0x28($sp) -/* 00E2F8 8000D6F8 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 00E2FC 8000D6FC AFA500B4 */ sw $a1, 0xb4($sp) -/* 00E300 8000D700 AFA600B8 */ sw $a2, 0xb8($sp) -/* 00E304 8000D704 AFA700BC */ sw $a3, 0xbc($sp) -/* 00E308 8000D708 AFB8004C */ sw $t8, 0x4c($sp) -/* 00E30C 8000D70C C4840000 */ lwc1 $f4, ($a0) -/* 00E310 8000D710 00808025 */ move $s0, $a0 -/* 00E314 8000D714 E7A40050 */ swc1 $f4, 0x50($sp) -/* 00E318 8000D718 C4860004 */ lwc1 $f6, 4($a0) -/* 00E31C 8000D71C E7A60054 */ swc1 $f6, 0x54($sp) -/* 00E320 8000D720 C4880008 */ lwc1 $f8, 8($a0) -/* 00E324 8000D724 E7A80058 */ swc1 $f8, 0x58($sp) -/* 00E328 8000D728 C4980008 */ lwc1 $f24, 8($a0) -/* 00E32C 8000D72C C4940000 */ lwc1 $f20, ($a0) -/* 00E330 8000D730 C4960004 */ lwc1 $f22, 4($a0) -/* 00E334 8000D734 84A70000 */ lh $a3, ($a1) -/* 00E338 8000D738 4406C000 */ mfc1 $a2, $f24 -/* 00E33C 8000D73C AFAE0010 */ sw $t6, 0x10($sp) -/* 00E340 8000D740 4600A306 */ mov.s $f12, $f20 -/* 00E344 8000D744 0C0034AD */ jal func_8000D2B4 -/* 00E348 8000D748 4600B386 */ mov.s $f14, $f22 -/* 00E34C 8000D74C 87A600C2 */ lh $a2, 0xc2($sp) -/* 00E350 8000D750 8FA900B4 */ lw $t1, 0xb4($sp) -/* 00E354 8000D754 3C078016 */ lui $a3, %hi(gWaypointCountByPathIndex) # 0x8016 -/* 00E358 8000D758 00065840 */ sll $t3, $a2, 1 -/* 00E35C 8000D75C 00EB3821 */ addu $a3, $a3, $t3 -/* 00E360 8000D760 A5220000 */ sh $v0, ($t1) -/* 00E364 8000D764 94E745C8 */ lhu $a3, %lo(gWaypointCountByPathIndex)($a3) # 0x45c8($a3) -/* 00E368 8000D768 87AA00C6 */ lh $t2, 0xc6($sp) -/* 00E36C 8000D76C 8FA500BC */ lw $a1, 0xbc($sp) -/* 00E370 8000D770 004A1821 */ addu $v1, $v0, $t2 -/* 00E374 8000D774 0067001A */ div $zero, $v1, $a3 -/* 00E378 8000D778 246F0001 */ addiu $t7, $v1, 1 -/* 00E37C 8000D77C 00004010 */ mfhi $t0 -/* 00E380 8000D780 00086400 */ sll $t4, $t0, 0x10 -/* 00E384 8000D784 14E00002 */ bnez $a3, .L8000D790 -/* 00E388 8000D788 00000000 */ nop -/* 00E38C 8000D78C 0007000D */ break 7 -.L8000D790: -/* 00E390 8000D790 2401FFFF */ li $at, -1 -/* 00E394 8000D794 14E10004 */ bne $a3, $at, .L8000D7A8 -/* 00E398 8000D798 3C018000 */ li $at, 0x80000000 # -0.000000 -/* 00E39C 8000D79C 14610002 */ bne $v1, $at, .L8000D7A8 -/* 00E3A0 8000D7A0 00000000 */ nop -/* 00E3A4 8000D7A4 0006000D */ break 6 -.L8000D7A8: -/* 00E3A8 8000D7A8 01E7001A */ div $zero, $t7, $a3 -/* 00E3AC 8000D7AC 000C6C03 */ sra $t5, $t4, 0x10 -/* 00E3B0 8000D7B0 01A04025 */ move $t0, $t5 -/* 00E3B4 8000D7B4 0000C010 */ mfhi $t8 -/* 00E3B8 8000D7B8 A7B8009E */ sh $t8, 0x9e($sp) -/* 00E3BC 8000D7BC 14E00002 */ bnez $a3, .L8000D7C8 -/* 00E3C0 8000D7C0 00000000 */ nop -/* 00E3C4 8000D7C4 0007000D */ break 7 -.L8000D7C8: -/* 00E3C8 8000D7C8 2401FFFF */ li $at, -1 -/* 00E3CC 8000D7CC 14E10004 */ bne $a3, $at, .L8000D7E0 -/* 00E3D0 8000D7D0 3C018000 */ li $at, 0x80000000 # -0.000000 -/* 00E3D4 8000D7D4 15E10002 */ bne $t7, $at, .L8000D7E0 -/* 00E3D8 8000D7D8 00000000 */ nop -/* 00E3DC 8000D7DC 0006000D */ break 6 -.L8000D7E0: -/* 00E3E0 8000D7E0 3104FFFF */ andi $a0, $t0, 0xffff -/* 00E3E4 8000D7E4 0C002EF6 */ jal func_8000BBD8 -/* 00E3E8 8000D7E8 A7A800A0 */ sh $t0, 0xa0($sp) -/* 00E3EC 8000D7EC 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016 -/* 00E3F0 8000D7F0 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0 -/* 00E3F4 8000D7F4 C44A0000 */ lwc1 $f10, ($v0) -/* 00E3F8 8000D7F8 C4440008 */ lwc1 $f4, 8($v0) -/* 00E3FC 8000D7FC 97A4009E */ lhu $a0, 0x9e($sp) -/* 00E400 8000D800 8FA500BC */ lw $a1, 0xbc($sp) -/* 00E404 8000D804 87A600C2 */ lh $a2, 0xc2($sp) -/* 00E408 8000D808 E7AA0098 */ swc1 $f10, 0x98($sp) -/* 00E40C 8000D80C 0C002EF6 */ jal func_8000BBD8 -/* 00E410 8000D810 E7A40090 */ swc1 $f4, 0x90($sp) -/* 00E414 8000D814 8FA3004C */ lw $v1, 0x4c($sp) -/* 00E418 8000D818 87B9009E */ lh $t9, 0x9e($sp) -/* 00E41C 8000D81C 87AB00A0 */ lh $t3, 0xa0($sp) -/* 00E420 8000D820 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016 -/* 00E424 8000D824 001970C0 */ sll $t6, $t9, 3 -/* 00E428 8000D828 000B60C0 */ sll $t4, $t3, 3 -/* 00E42C 8000D82C 006C6821 */ addu $t5, $v1, $t4 -/* 00E430 8000D830 006E4821 */ addu $t1, $v1, $t6 -/* 00E434 8000D834 852A0002 */ lh $t2, 2($t1) -/* 00E438 8000D838 85AF0002 */ lh $t7, 2($t5) -/* 00E43C 8000D83C 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0 -/* 00E440 8000D840 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 00E444 8000D844 014FC021 */ addu $t8, $t2, $t7 -/* 00E448 8000D848 44983000 */ mtc1 $t8, $f6 -/* 00E44C 8000D84C C4400000 */ lwc1 $f0, ($v0) -/* 00E450 8000D850 44815000 */ mtc1 $at, $f10 -/* 00E454 8000D854 46803220 */ cvt.s.w $f8, $f6 -/* 00E458 8000D858 C7A40098 */ lwc1 $f4, 0x98($sp) -/* 00E45C 8000D85C C4420008 */ lwc1 $f2, 8($v0) -/* 00E460 8000D860 46002180 */ add.s $f6, $f4, $f0 -/* 00E464 8000D864 460A4382 */ mul.s $f14, $f8, $f10 -/* 00E468 8000D868 44814000 */ mtc1 $at, $f8 -/* 00E46C 8000D86C C7A40090 */ lwc1 $f4, 0x90($sp) -/* 00E470 8000D870 46083282 */ mul.s $f10, $f6, $f8 -/* 00E474 8000D874 46022180 */ add.s $f6, $f4, $f2 -/* 00E478 8000D878 44814000 */ mtc1 $at, $f8 -/* 00E47C 8000D87C 46167481 */ sub.s $f18, $f14, $f22 -/* 00E480 8000D880 46145401 */ sub.s $f16, $f10, $f20 -/* 00E484 8000D884 46083282 */ mul.s $f10, $f6, $f8 -/* 00E488 8000D888 E7B20044 */ swc1 $f18, 0x44($sp) -/* 00E48C 8000D88C E7B00048 */ swc1 $f16, 0x48($sp) -/* 00E490 8000D890 46185101 */ sub.s $f4, $f10, $f24 -/* 00E494 8000D894 46042182 */ mul.s $f6, $f4, $f4 -/* 00E498 8000D898 E7A40040 */ swc1 $f4, 0x40($sp) -/* 00E49C 8000D89C 46108202 */ mul.s $f8, $f16, $f16 -/* 00E4A0 8000D8A0 00000000 */ nop -/* 00E4A4 8000D8A4 46129282 */ mul.s $f10, $f18, $f18 -/* 00E4A8 8000D8A8 460A4100 */ add.s $f4, $f8, $f10 -/* 00E4AC 8000D8AC 0C033850 */ jal sqrtf -/* 00E4B0 8000D8B0 46062300 */ add.s $f12, $f4, $f6 -/* 00E4B4 8000D8B4 3C01800F */ lui $at, %hi(D_800ECFFC) # $at, 0x800f -/* 00E4B8 8000D8B8 C428CFFC */ lwc1 $f8, %lo(D_800ECFFC)($at) -/* 00E4BC 8000D8BC C7B00048 */ lwc1 $f16, 0x48($sp) -/* 00E4C0 8000D8C0 C7B20044 */ lwc1 $f18, 0x44($sp) -/* 00E4C4 8000D8C4 4600403C */ c.lt.s $f8, $f0 -/* 00E4C8 8000D8C8 C7AA00B8 */ lwc1 $f10, 0xb8($sp) -/* 00E4CC 8000D8CC 27A40050 */ addiu $a0, $sp, 0x50 -/* 00E4D0 8000D8D0 02002825 */ move $a1, $s0 -/* 00E4D4 8000D8D4 4502000D */ bc1fl .L8000D90C -/* 00E4D8 8000D8D8 4600A086 */ mov.s $f2, $f20 -/* 00E4DC 8000D8DC 460A8102 */ mul.s $f4, $f16, $f10 -/* 00E4E0 8000D8E0 46002183 */ div.s $f6, $f4, $f0 -/* 00E4E4 8000D8E4 460A9202 */ mul.s $f8, $f18, $f10 -/* 00E4E8 8000D8E8 46004103 */ div.s $f4, $f8, $f0 -/* 00E4EC 8000D8EC 46143080 */ add.s $f2, $f6, $f20 -/* 00E4F0 8000D8F0 C7A60040 */ lwc1 $f6, 0x40($sp) -/* 00E4F4 8000D8F4 460A3202 */ mul.s $f8, $f6, $f10 -/* 00E4F8 8000D8F8 46162300 */ add.s $f12, $f4, $f22 -/* 00E4FC 8000D8FC 46004103 */ div.s $f4, $f8, $f0 -/* 00E500 8000D900 10000004 */ b .L8000D914 -/* 00E504 8000D904 46182380 */ add.s $f14, $f4, $f24 -/* 00E508 8000D908 4600A086 */ mov.s $f2, $f20 -.L8000D90C: -/* 00E50C 8000D90C 4600B306 */ mov.s $f12, $f22 -/* 00E510 8000D910 4600C386 */ mov.s $f14, $f24 -.L8000D914: -/* 00E514 8000D914 E6020000 */ swc1 $f2, ($s0) -/* 00E518 8000D918 E60C0004 */ swc1 $f12, 4($s0) -/* 00E51C 8000D91C 0C0017F4 */ jal func_80005FD0 -/* 00E520 8000D920 E60E0008 */ swc1 $f14, 8($s0) -/* 00E524 8000D924 8FBF003C */ lw $ra, 0x3c($sp) -/* 00E528 8000D928 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 00E52C 8000D92C D7B60028 */ ldc1 $f22, 0x28($sp) -/* 00E530 8000D930 D7B80030 */ ldc1 $f24, 0x30($sp) -/* 00E534 8000D934 8FB00038 */ lw $s0, 0x38($sp) -/* 00E538 8000D938 03E00008 */ jr $ra -/* 00E53C 8000D93C 27BD00B0 */ addiu $sp, $sp, 0xb0 diff --git a/asm/non_matchings/code_80005FD0/func_8000D940.s b/asm/non_matchings/code_80005FD0/func_8000D940.s deleted file mode 100644 index 64974e065..000000000 --- a/asm/non_matchings/code_80005FD0/func_8000D940.s +++ /dev/null @@ -1,169 +0,0 @@ -.section .late_rodata - -glabel D_800ED000 -.float 0.01 - -.section .text - -glabel func_8000D940 -/* 00E540 8000D940 27BDFF48 */ addiu $sp, $sp, -0xb8 -/* 00E544 8000D944 AFBF003C */ sw $ra, 0x3c($sp) -/* 00E548 8000D948 AFB00038 */ sw $s0, 0x38($sp) -/* 00E54C 8000D94C F7B80030 */ sdc1 $f24, 0x30($sp) -/* 00E550 8000D950 F7B60028 */ sdc1 $f22, 0x28($sp) -/* 00E554 8000D954 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 00E558 8000D958 AFA500BC */ sw $a1, 0xbc($sp) -/* 00E55C 8000D95C AFA600C0 */ sw $a2, 0xc0($sp) -/* 00E560 8000D960 AFA700C4 */ sw $a3, 0xc4($sp) -/* 00E564 8000D964 C4840000 */ lwc1 $f4, ($a0) -/* 00E568 8000D968 87AE00CA */ lh $t6, 0xca($sp) -/* 00E56C 8000D96C 3C088016 */ lui $t0, %hi(gWaypointCountByPathIndex) # 0x8016 -/* 00E570 8000D970 E7A40054 */ swc1 $f4, 0x54($sp) -/* 00E574 8000D974 C4860004 */ lwc1 $f6, 4($a0) -/* 00E578 8000D978 000E7840 */ sll $t7, $t6, 1 -/* 00E57C 8000D97C 010F4021 */ addu $t0, $t0, $t7 -/* 00E580 8000D980 E7A60058 */ swc1 $f6, 0x58($sp) -/* 00E584 8000D984 C4880008 */ lwc1 $f8, 8($a0) -/* 00E588 8000D988 950845C8 */ lhu $t0, %lo(gWaypointCountByPathIndex)($t0) # 0x45c8($t0) -/* 00E58C 8000D98C 00808025 */ move $s0, $a0 -/* 00E590 8000D990 E7A8005C */ swc1 $f8, 0x5c($sp) -/* 00E594 8000D994 C4980008 */ lwc1 $f24, 8($a0) -/* 00E598 8000D998 C4940000 */ lwc1 $f20, ($a0) -/* 00E59C 8000D99C C4960004 */ lwc1 $f22, 4($a0) -/* 00E5A0 8000D9A0 84A70000 */ lh $a3, ($a1) -/* 00E5A4 8000D9A4 4406C000 */ mfc1 $a2, $f24 -/* 00E5A8 8000D9A8 AFAE0010 */ sw $t6, 0x10($sp) -/* 00E5AC 8000D9AC AFA80060 */ sw $t0, 0x60($sp) -/* 00E5B0 8000D9B0 4600A306 */ mov.s $f12, $f20 -/* 00E5B4 8000D9B4 0C0034AD */ jal func_8000D2B4 -/* 00E5B8 8000D9B8 4600B386 */ mov.s $f14, $f22 -/* 00E5BC 8000D9BC 8FA80060 */ lw $t0, 0x60($sp) -/* 00E5C0 8000D9C0 8FB900BC */ lw $t9, 0xbc($sp) -/* 00E5C4 8000D9C4 00481821 */ addu $v1, $v0, $t0 -/* 00E5C8 8000D9C8 2469FFFD */ addiu $t1, $v1, -3 -/* 00E5CC 8000D9CC 0128001A */ div $zero, $t1, $t0 -/* 00E5D0 8000D9D0 246AFFFC */ addiu $t2, $v1, -4 -/* 00E5D4 8000D9D4 00003810 */ mfhi $a3 -/* 00E5D8 8000D9D8 A7220000 */ sh $v0, ($t9) -/* 00E5DC 8000D9DC 15000002 */ bnez $t0, .L8000D9E8 -/* 00E5E0 8000D9E0 00000000 */ nop -/* 00E5E4 8000D9E4 0007000D */ break 7 -.L8000D9E8: -/* 00E5E8 8000D9E8 2401FFFF */ li $at, -1 -/* 00E5EC 8000D9EC 15010004 */ bne $t0, $at, .L8000DA00 -/* 00E5F0 8000D9F0 3C018000 */ li $at, 0x80000000 # -0.000000 -/* 00E5F4 8000D9F4 15210002 */ bne $t1, $at, .L8000DA00 -/* 00E5F8 8000D9F8 00000000 */ nop -/* 00E5FC 8000D9FC 0006000D */ break 6 -.L8000DA00: -/* 00E600 8000DA00 0148001A */ div $zero, $t2, $t0 -/* 00E604 8000DA04 00005810 */ mfhi $t3 -/* 00E608 8000DA08 00E06025 */ move $t4, $a3 -/* 00E60C 8000DA0C A7A700A8 */ sh $a3, 0xa8($sp) -/* 00E610 8000DA10 15000002 */ bnez $t0, .L8000DA1C -/* 00E614 8000DA14 00000000 */ nop -/* 00E618 8000DA18 0007000D */ break 7 -.L8000DA1C: -/* 00E61C 8000DA1C 2401FFFF */ li $at, -1 -/* 00E620 8000DA20 15010004 */ bne $t0, $at, .L8000DA34 -/* 00E624 8000DA24 3C018000 */ li $at, 0x80000000 # -0.000000 -/* 00E628 8000DA28 15410002 */ bne $t2, $at, .L8000DA34 -/* 00E62C 8000DA2C 00000000 */ nop -/* 00E630 8000DA30 0006000D */ break 6 -.L8000DA34: -/* 00E634 8000DA34 A7AB00A6 */ sh $t3, 0xa6($sp) -/* 00E638 8000DA38 3184FFFF */ andi $a0, $t4, 0xffff -/* 00E63C 8000DA3C 87A600CA */ lh $a2, 0xca($sp) -/* 00E640 8000DA40 0C002EF6 */ jal func_8000BBD8 -/* 00E644 8000DA44 8FA500C4 */ lw $a1, 0xc4($sp) -/* 00E648 8000DA48 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016 -/* 00E64C 8000DA4C 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0 -/* 00E650 8000DA50 C46A0000 */ lwc1 $f10, ($v1) -/* 00E654 8000DA54 C4640008 */ lwc1 $f4, 8($v1) -/* 00E658 8000DA58 97A400A6 */ lhu $a0, 0xa6($sp) -/* 00E65C 8000DA5C 8FA500C4 */ lw $a1, 0xc4($sp) -/* 00E660 8000DA60 87A600CA */ lh $a2, 0xca($sp) -/* 00E664 8000DA64 E7AA00A0 */ swc1 $f10, 0xa0($sp) -/* 00E668 8000DA68 0C002EF6 */ jal func_8000BBD8 -/* 00E66C 8000DA6C E7A40098 */ swc1 $f4, 0x98($sp) -/* 00E670 8000DA70 87AF00CA */ lh $t7, 0xca($sp) -/* 00E674 8000DA74 3C028016 */ lui $v0, %hi(D_80164550) # 0x8016 -/* 00E678 8000DA78 87AE00A6 */ lh $t6, 0xa6($sp) -/* 00E67C 8000DA7C 000FC080 */ sll $t8, $t7, 2 -/* 00E680 8000DA80 00581021 */ addu $v0, $v0, $t8 -/* 00E684 8000DA84 8C424550 */ lw $v0, %lo(D_80164550)($v0) # 0x4550($v0) -/* 00E688 8000DA88 87AB00A8 */ lh $t3, 0xa8($sp) -/* 00E68C 8000DA8C 000EC8C0 */ sll $t9, $t6, 3 -/* 00E690 8000DA90 00594821 */ addu $t1, $v0, $t9 -/* 00E694 8000DA94 000B60C0 */ sll $t4, $t3, 3 -/* 00E698 8000DA98 004C6821 */ addu $t5, $v0, $t4 -/* 00E69C 8000DA9C 85AF0002 */ lh $t7, 2($t5) -/* 00E6A0 8000DAA0 852A0002 */ lh $t2, 2($t1) -/* 00E6A4 8000DAA4 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016 -/* 00E6A8 8000DAA8 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0 -/* 00E6AC 8000DAAC 014FC021 */ addu $t8, $t2, $t7 -/* 00E6B0 8000DAB0 44983000 */ mtc1 $t8, $f6 -/* 00E6B4 8000DAB4 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 00E6B8 8000DAB8 C4600000 */ lwc1 $f0, ($v1) -/* 00E6BC 8000DABC 46803220 */ cvt.s.w $f8, $f6 -/* 00E6C0 8000DAC0 44815000 */ mtc1 $at, $f10 -/* 00E6C4 8000DAC4 C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* 00E6C8 8000DAC8 C4620008 */ lwc1 $f2, 8($v1) -/* 00E6CC 8000DACC 46002180 */ add.s $f6, $f4, $f0 -/* 00E6D0 8000DAD0 460A4382 */ mul.s $f14, $f8, $f10 -/* 00E6D4 8000DAD4 44814000 */ mtc1 $at, $f8 -/* 00E6D8 8000DAD8 C7A40098 */ lwc1 $f4, 0x98($sp) -/* 00E6DC 8000DADC 46083282 */ mul.s $f10, $f6, $f8 -/* 00E6E0 8000DAE0 46022180 */ add.s $f6, $f4, $f2 -/* 00E6E4 8000DAE4 44814000 */ mtc1 $at, $f8 -/* 00E6E8 8000DAE8 46167481 */ sub.s $f18, $f14, $f22 -/* 00E6EC 8000DAEC 46145401 */ sub.s $f16, $f10, $f20 -/* 00E6F0 8000DAF0 46083282 */ mul.s $f10, $f6, $f8 -/* 00E6F4 8000DAF4 E7B2004C */ swc1 $f18, 0x4c($sp) -/* 00E6F8 8000DAF8 E7B00050 */ swc1 $f16, 0x50($sp) -/* 00E6FC 8000DAFC 46185101 */ sub.s $f4, $f10, $f24 -/* 00E700 8000DB00 46042182 */ mul.s $f6, $f4, $f4 -/* 00E704 8000DB04 E7A40048 */ swc1 $f4, 0x48($sp) -/* 00E708 8000DB08 46108202 */ mul.s $f8, $f16, $f16 -/* 00E70C 8000DB0C 00000000 */ nop -/* 00E710 8000DB10 46129282 */ mul.s $f10, $f18, $f18 -/* 00E714 8000DB14 460A4100 */ add.s $f4, $f8, $f10 -/* 00E718 8000DB18 0C033850 */ jal sqrtf -/* 00E71C 8000DB1C 46062300 */ add.s $f12, $f4, $f6 -/* 00E720 8000DB20 3C01800F */ lui $at, %hi(D_800ED000) # $at, 0x800f -/* 00E724 8000DB24 C428D000 */ lwc1 $f8, %lo(D_800ED000)($at) -/* 00E728 8000DB28 C7B00050 */ lwc1 $f16, 0x50($sp) -/* 00E72C 8000DB2C C7B2004C */ lwc1 $f18, 0x4c($sp) -/* 00E730 8000DB30 4600403C */ c.lt.s $f8, $f0 -/* 00E734 8000DB34 C7AA00C0 */ lwc1 $f10, 0xc0($sp) -/* 00E738 8000DB38 27A40054 */ addiu $a0, $sp, 0x54 -/* 00E73C 8000DB3C 02002825 */ move $a1, $s0 -/* 00E740 8000DB40 4502000D */ bc1fl .L8000DB78 -/* 00E744 8000DB44 4600A086 */ mov.s $f2, $f20 -/* 00E748 8000DB48 460A8102 */ mul.s $f4, $f16, $f10 -/* 00E74C 8000DB4C 46002183 */ div.s $f6, $f4, $f0 -/* 00E750 8000DB50 460A9202 */ mul.s $f8, $f18, $f10 -/* 00E754 8000DB54 46004103 */ div.s $f4, $f8, $f0 -/* 00E758 8000DB58 46143080 */ add.s $f2, $f6, $f20 -/* 00E75C 8000DB5C C7A60048 */ lwc1 $f6, 0x48($sp) -/* 00E760 8000DB60 460A3202 */ mul.s $f8, $f6, $f10 -/* 00E764 8000DB64 46162300 */ add.s $f12, $f4, $f22 -/* 00E768 8000DB68 46004103 */ div.s $f4, $f8, $f0 -/* 00E76C 8000DB6C 10000004 */ b .L8000DB80 -/* 00E770 8000DB70 46182380 */ add.s $f14, $f4, $f24 -/* 00E774 8000DB74 4600A086 */ mov.s $f2, $f20 -.L8000DB78: -/* 00E778 8000DB78 4600B306 */ mov.s $f12, $f22 -/* 00E77C 8000DB7C 4600C386 */ mov.s $f14, $f24 -.L8000DB80: -/* 00E780 8000DB80 E6020000 */ swc1 $f2, ($s0) -/* 00E784 8000DB84 E60C0004 */ swc1 $f12, 4($s0) -/* 00E788 8000DB88 0C0017F4 */ jal func_80005FD0 -/* 00E78C 8000DB8C E60E0008 */ swc1 $f14, 8($s0) -/* 00E790 8000DB90 8FBF003C */ lw $ra, 0x3c($sp) -/* 00E794 8000DB94 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 00E798 8000DB98 D7B60028 */ ldc1 $f22, 0x28($sp) -/* 00E79C 8000DB9C D7B80030 */ ldc1 $f24, 0x30($sp) -/* 00E7A0 8000DBA0 8FB00038 */ lw $s0, 0x38($sp) -/* 00E7A4 8000DBA4 03E00008 */ jr $ra -/* 00E7A8 8000DBA8 27BD00B8 */ addiu $sp, $sp, 0xb8 diff --git a/asm/non_matchings/code_80005FD0/func_8000DBAC.s b/asm/non_matchings/code_80005FD0/func_8000DBAC.s deleted file mode 100644 index 9db3d2ebb..000000000 --- a/asm/non_matchings/code_80005FD0/func_8000DBAC.s +++ /dev/null @@ -1,129 +0,0 @@ -.section .late_rodata - -glabel D_800ED004 -.float 0.01 - -.section .text - -glabel func_8000DBAC -/* 00E7AC 8000DBAC 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* 00E7B0 8000DBB0 AFBF0024 */ sw $ra, 0x24($sp) -/* 00E7B4 8000DBB4 AFB00020 */ sw $s0, 0x20($sp) -/* 00E7B8 8000DBB8 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 00E7BC 8000DBBC AFA500A4 */ sw $a1, 0xa4($sp) -/* 00E7C0 8000DBC0 AFA600A8 */ sw $a2, 0xa8($sp) -/* 00E7C4 8000DBC4 C48C0000 */ lwc1 $f12, ($a0) -/* 00E7C8 8000DBC8 C48E0004 */ lwc1 $f14, 4($a0) -/* 00E7CC 8000DBCC C4820008 */ lwc1 $f2, 8($a0) -/* 00E7D0 8000DBD0 E7AC0038 */ swc1 $f12, 0x38($sp) -/* 00E7D4 8000DBD4 C4840004 */ lwc1 $f4, 4($a0) -/* 00E7D8 8000DBD8 44061000 */ mfc1 $a2, $f2 -/* 00E7DC 8000DBDC 00808025 */ move $s0, $a0 -/* 00E7E0 8000DBE0 E7A4003C */ swc1 $f4, 0x3c($sp) -/* 00E7E4 8000DBE4 C4860008 */ lwc1 $f6, 8($a0) -/* 00E7E8 8000DBE8 46006506 */ mov.s $f20, $f12 -/* 00E7EC 8000DBEC E7A60040 */ swc1 $f6, 0x40($sp) -/* 00E7F0 8000DBF0 84A70000 */ lh $a3, ($a1) -/* 00E7F4 8000DBF4 E7AE0098 */ swc1 $f14, 0x98($sp) -/* 00E7F8 8000DBF8 0C003440 */ jal func_8000D100 -/* 00E7FC 8000DBFC E7A20094 */ swc1 $f2, 0x94($sp) -/* 00E800 8000DC00 8FAF00A4 */ lw $t7, 0xa4($sp) -/* 00E804 8000DC04 C7A20094 */ lwc1 $f2, 0x94($sp) -/* 00E808 8000DC08 3C038016 */ lui $v1, %hi(D_8016359C) # $v1, 0x8016 -/* 00E80C 8000DC0C A5E20000 */ sh $v0, ($t7) -/* 00E810 8000DC10 8C63359C */ lw $v1, %lo(D_8016359C)($v1) -/* 00E814 8000DC14 24580003 */ addiu $t8, $v0, 3 -/* 00E818 8000DC18 244A0004 */ addiu $t2, $v0, 4 -/* 00E81C 8000DC1C 0303001A */ div $zero, $t8, $v1 -/* 00E820 8000DC20 00003810 */ mfhi $a3 -/* 00E824 8000DC24 3C058016 */ lui $a1, %hi(D_80163598) # $a1, 0x8016 -/* 00E828 8000DC28 8CA53598 */ lw $a1, %lo(D_80163598)($a1) -/* 00E82C 8000DC2C 0143001A */ div $zero, $t2, $v1 -/* 00E830 8000DC30 0007CC00 */ sll $t9, $a3, 0x10 -/* 00E834 8000DC34 00004010 */ mfhi $t0 -/* 00E838 8000DC38 00194C03 */ sra $t1, $t9, 0x10 -/* 00E83C 8000DC3C 00085C00 */ sll $t3, $t0, 0x10 -/* 00E840 8000DC40 01203825 */ move $a3, $t1 -/* 00E844 8000DC44 000B6403 */ sra $t4, $t3, 0x10 -/* 00E848 8000DC48 00076880 */ sll $t5, $a3, 2 -/* 00E84C 8000DC4C 000C7080 */ sll $t6, $t4, 2 -/* 00E850 8000DC50 14600002 */ bnez $v1, .L8000DC5C -/* 00E854 8000DC54 00000000 */ nop -/* 00E858 8000DC58 0007000D */ break 7 -.L8000DC5C: -/* 00E85C 8000DC5C 2401FFFF */ li $at, -1 -/* 00E860 8000DC60 14610004 */ bne $v1, $at, .L8000DC74 -/* 00E864 8000DC64 3C018000 */ lui $at, 0x8000 -/* 00E868 8000DC68 17010002 */ bne $t8, $at, .L8000DC74 -/* 00E86C 8000DC6C 00000000 */ nop -/* 00E870 8000DC70 0006000D */ break 6 -.L8000DC74: -/* 00E874 8000DC74 01A52021 */ addu $a0, $t5, $a1 -/* 00E878 8000DC78 01C53021 */ addu $a2, $t6, $a1 -/* 00E87C 8000DC7C 84D80000 */ lh $t8, ($a2) -/* 00E880 8000DC80 848F0000 */ lh $t7, ($a0) -/* 00E884 8000DC84 14600002 */ bnez $v1, .L8000DC90 -/* 00E888 8000DC88 00000000 */ nop -/* 00E88C 8000DC8C 0007000D */ break 7 -.L8000DC90: -/* 00E890 8000DC90 2401FFFF */ li $at, -1 -/* 00E894 8000DC94 14610004 */ bne $v1, $at, .L8000DCA8 -/* 00E898 8000DC98 3C018000 */ li $at, 0x80000000 # -0.000000 -/* 00E89C 8000DC9C 15410002 */ bne $t2, $at, .L8000DCA8 -/* 00E8A0 8000DCA0 00000000 */ nop -/* 00E8A4 8000DCA4 0006000D */ break 6 -.L8000DCA8: -/* 00E8A8 8000DCA8 01F8C821 */ addu $t9, $t7, $t8 -/* 00E8AC 8000DCAC 44994000 */ mtc1 $t9, $f8 -/* 00E8B0 8000DCB0 84CA0002 */ lh $t2, 2($a2) -/* 00E8B4 8000DCB4 84890002 */ lh $t1, 2($a0) -/* 00E8B8 8000DCB8 468042A0 */ cvt.s.w $f10, $f8 -/* 00E8BC 8000DCBC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 00E8C0 8000DCC0 012A5821 */ addu $t3, $t1, $t2 -/* 00E8C4 8000DCC4 448B3000 */ mtc1 $t3, $f6 -/* 00E8C8 8000DCC8 44812000 */ mtc1 $at, $f4 -/* 00E8CC 8000DCCC 46803220 */ cvt.s.w $f8, $f6 -/* 00E8D0 8000DCD0 46045002 */ mul.s $f0, $f10, $f4 -/* 00E8D4 8000DCD4 44815000 */ mtc1 $at, $f10 -/* 00E8D8 8000DCD8 00000000 */ nop -/* 00E8DC 8000DCDC 460A4382 */ mul.s $f14, $f8, $f10 -/* 00E8E0 8000DCE0 46140401 */ sub.s $f16, $f0, $f20 -/* 00E8E4 8000DCE4 46108102 */ mul.s $f4, $f16, $f16 -/* 00E8E8 8000DCE8 46027481 */ sub.s $f18, $f14, $f2 -/* 00E8EC 8000DCEC E7B00034 */ swc1 $f16, 0x34($sp) -/* 00E8F0 8000DCF0 46129182 */ mul.s $f6, $f18, $f18 -/* 00E8F4 8000DCF4 E7B20030 */ swc1 $f18, 0x30($sp) -/* 00E8F8 8000DCF8 0C033850 */ jal sqrtf -/* 00E8FC 8000DCFC 46062300 */ add.s $f12, $f4, $f6 -/* 00E900 8000DD00 3C01800F */ lui $at, %hi(D_800ED004) # $at, 0x800f -/* 00E904 8000DD04 C428D004 */ lwc1 $f8, %lo(D_800ED004)($at) -/* 00E908 8000DD08 C7A20094 */ lwc1 $f2, 0x94($sp) -/* 00E90C 8000DD0C C7B00034 */ lwc1 $f16, 0x34($sp) -/* 00E910 8000DD10 4600403C */ c.lt.s $f8, $f0 -/* 00E914 8000DD14 C7B20030 */ lwc1 $f18, 0x30($sp) -/* 00E918 8000DD18 C7AA00A8 */ lwc1 $f10, 0xa8($sp) -/* 00E91C 8000DD1C 27A40038 */ addiu $a0, $sp, 0x38 -/* 00E920 8000DD20 45000009 */ bc1f .L8000DD48 -/* 00E924 8000DD24 02002825 */ move $a1, $s0 -/* 00E928 8000DD28 460A8102 */ mul.s $f4, $f16, $f10 -/* 00E92C 8000DD2C 00000000 */ nop -/* 00E930 8000DD30 460A9202 */ mul.s $f8, $f18, $f10 -/* 00E934 8000DD34 46002183 */ div.s $f6, $f4, $f0 -/* 00E938 8000DD38 46004103 */ div.s $f4, $f8, $f0 -/* 00E93C 8000DD3C 46143300 */ add.s $f12, $f6, $f20 -/* 00E940 8000DD40 10000003 */ b .L8000DD50 -/* 00E944 8000DD44 46022380 */ add.s $f14, $f4, $f2 -.L8000DD48: -/* 00E948 8000DD48 4600A306 */ mov.s $f12, $f20 -/* 00E94C 8000DD4C 46001386 */ mov.s $f14, $f2 -.L8000DD50: -/* 00E950 8000DD50 E60C0000 */ swc1 $f12, ($s0) -/* 00E954 8000DD54 C7A60098 */ lwc1 $f6, 0x98($sp) -/* 00E958 8000DD58 E60E0008 */ swc1 $f14, 8($s0) -/* 00E95C 8000DD5C 0C0017F4 */ jal func_80005FD0 -/* 00E960 8000DD60 E6060004 */ swc1 $f6, 4($s0) -/* 00E964 8000DD64 8FBF0024 */ lw $ra, 0x24($sp) -/* 00E968 8000DD68 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 00E96C 8000DD6C 8FB00020 */ lw $s0, 0x20($sp) -/* 00E970 8000DD70 03E00008 */ jr $ra -/* 00E974 8000DD74 27BD00A0 */ addiu $sp, $sp, 0xa0 diff --git a/asm/non_matchings/code_80005FD0/func_80011D48.s b/asm/non_matchings/code_80005FD0/func_80011D48.s deleted file mode 100644 index d4d844e02..000000000 --- a/asm/non_matchings/code_80005FD0/func_80011D48.s +++ /dev/null @@ -1,76 +0,0 @@ -.section .late_rodata - -glabel jpt_800ED0B4 -.word L80011DC4, L80011E20, L80011DF4, L80011DF4 -.word L80011DF4, L80011E20, L80011E20, L80011E20 -.word L80011E20, L80011E20, L80011E20 - -.section .text - -glabel func_80011D48 -/* 012948 80011D48 3C18800E */ lui $t8, %hi(gCurrentCourseId) -/* 01294C 80011D4C 8718C5A0 */ lh $t8, %lo(gCurrentCourseId)($t8) -/* 012950 80011D50 00041040 */ sll $v0, $a0, 1 -/* 012954 80011D54 3C0E8016 */ lui $t6, %hi(D_801632D0) # 0x8016 -/* 012958 80011D58 01C27021 */ addu $t6, $t6, $v0 -/* 01295C 80011D5C 3C0A8016 */ lui $t2, %hi(D_80162EB8) # 0x8016 -/* 012960 80011D60 0018C880 */ sll $t9, $t8, 2 -/* 012964 80011D64 95CE32D0 */ lhu $t6, %lo(D_801632D0)($t6) # 0x32d0($t6) -/* 012968 80011D68 01595021 */ addu $t2, $t2, $t9 -/* 01296C 80011D6C 8D4A2EB8 */ lw $t2, %lo(D_80162EB8)($t2) # 0x2eb8($t2) -/* 012970 80011D70 3C098016 */ lui $t1, %hi(D_801632B0) # $t1, 0x8016 -/* 012974 80011D74 000E78C0 */ sll $t7, $t6, 3 -/* 012978 80011D78 252932B0 */ addiu $t1, %lo(D_801632B0) # addiu $t1, $t1, 0x32b0 -/* 01297C 80011D7C 01EA5821 */ addu $t3, $t7, $t2 -/* 012980 80011D80 AD2B0000 */ sw $t3, ($t1) -/* 012984 80011D84 3C038016 */ lui $v1, %hi(gNearestWaypointByPlayerId) # 0x8016 -/* 012988 80011D88 00621821 */ addu $v1, $v1, $v0 -/* 01298C 80011D8C 94634438 */ lhu $v1, %lo(gNearestWaypointByPlayerId)($v1) # 0x4438($v1) -/* 012990 80011D90 85680002 */ lh $t0, 2($t3) -/* 012994 80011D94 8D660004 */ lw $a2, 4($t3) -/* 012998 80011D98 0068082B */ sltu $at, $v1, $t0 -/* 01299C 80011D9C 14200024 */ bnez $at, .L80011E30 -/* 0129A0 80011DA0 24CCFFFF */ addiu $t4, $a2, -1 -/* 0129A4 80011DA4 2D81000B */ sltiu $at, $t4, 0xb -/* 0129A8 80011DA8 10200021 */ beqz $at, .L80011E30 -/* 0129AC 80011DAC 000C6080 */ sll $t4, $t4, 2 -/* 0129B0 80011DB0 3C01800F */ lui $at, %hi(jpt_800ED0B4) -/* 0129B4 80011DB4 002C0821 */ addu $at, $at, $t4 -/* 0129B8 80011DB8 8C2CD0B4 */ lw $t4, %lo(jpt_800ED0B4)($at) -/* 0129BC 80011DBC 01800008 */ jr $t4 -/* 0129C0 80011DC0 00000000 */ nop -glabel L80011DC4 -/* 0129C4 80011DC4 8CAD00BC */ lw $t5, 0xbc($a1) -/* 0129C8 80011DC8 2401FFEF */ li $at, -17 -/* 0129CC 80011DCC 24180001 */ li $t8, 1 -/* 0129D0 80011DD0 01A17024 */ and $t6, $t5, $at -/* 0129D4 80011DD4 3C018016 */ lui $at, %hi(D_801630E8) # 0x8016 -/* 0129D8 80011DD8 ACAE00BC */ sw $t6, 0xbc($a1) -/* 0129DC 80011DDC 00220821 */ addu $at, $at, $v0 -/* 0129E0 80011DE0 A42030E8 */ sh $zero, %lo(D_801630E8)($at) # 0x30e8($at) -/* 0129E4 80011DE4 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016 -/* 0129E8 80011DE8 00220821 */ addu $at, $at, $v0 -/* 0129EC 80011DEC 03E00008 */ jr $ra -/* 0129F0 80011DF0 A43832E8 */ sh $t8, %lo(D_801632E8)($at) # 0x32e8($at) - -glabel L80011DF4 -/* 0129F4 80011DF4 3C0F8016 */ lui $t7, %hi(D_801634F8) # $t7, 0x8016 -/* 0129F8 80011DF8 25EF34F8 */ addiu $t7, %lo(D_801634F8) # addiu $t7, $t7, 0x34f8 -/* 0129FC 80011DFC 0004C900 */ sll $t9, $a0, 4 -/* 012A00 80011E00 032F1821 */ addu $v1, $t9, $t7 -/* 012A04 80011E04 C464000C */ lwc1 $f4, 0xc($v1) -/* 012A08 80011E08 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016 -/* 012A0C 80011E0C 00220821 */ addu $at, $at, $v0 -/* 012A10 80011E10 240A0001 */ li $t2, 1 -/* 012A14 80011E14 E4640004 */ swc1 $f4, 4($v1) -/* 012A18 80011E18 03E00008 */ jr $ra -/* 012A1C 80011E1C A42A32E8 */ sh $t2, %lo(D_801632E8)($at) # 0x32e8($at) - -glabel L80011E20 -/* 012A20 80011E20 3C018016 */ lui $at, %hi(D_801632E8) # 0x8016 -/* 012A24 80011E24 00220821 */ addu $at, $at, $v0 -/* 012A28 80011E28 240B0001 */ li $t3, 1 -/* 012A2C 80011E2C A42B32E8 */ sh $t3, %lo(D_801632E8)($at) # 0x32e8($at) -.L80011E30: -/* 012A30 80011E30 03E00008 */ jr $ra -/* 012A34 80011E34 00000000 */ nop diff --git a/asm/non_matchings/code_80005FD0/func_800146B8.s b/asm/non_matchings/code_80005FD0/func_800146B8.s deleted file mode 100644 index 9d8ab6dac..000000000 --- a/asm/non_matchings/code_80005FD0/func_800146B8.s +++ /dev/null @@ -1,88 +0,0 @@ -.section .late_rodata - -glabel D_800ED1B0 -.double 1.6666666666666667 - -.section .text - -glabel func_800146B8 -/* 0152B8 800146B8 000478C0 */ sll $t7, $a0, 3 -/* 0152BC 800146BC 01E47823 */ subu $t7, $t7, $a0 -/* 0152C0 800146C0 000F7900 */ sll $t7, $t7, 4 -/* 0152C4 800146C4 01E47823 */ subu $t7, $t7, $a0 -/* 0152C8 800146C8 000F7880 */ sll $t7, $t7, 2 -/* 0152CC 800146CC 01E47823 */ subu $t7, $t7, $a0 -/* 0152D0 800146D0 000F78C0 */ sll $t7, $t7, 3 -/* 0152D4 800146D4 3C01800F */ lui $at, %hi(gPlayers+0x94) -/* 0152D8 800146D8 002F0821 */ addu $at, $at, $t7 -/* 0152DC 800146DC C4246A24 */ lwc1 $f4, %lo(gPlayers+0x94)($at) -/* 0152E0 800146E0 3C01800F */ lui $at, %hi(D_800ED1B0) -/* 0152E4 800146E4 D428D1B0 */ ldc1 $f8, %lo(D_800ED1B0)($at) -/* 0152E8 800146E8 460021A1 */ cvt.d.s $f6, $f4 -/* 0152EC 800146EC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0152F0 800146F0 4628303C */ c.lt.d $f6, $f8 -/* 0152F4 800146F4 AFB10018 */ sw $s1, 0x18($sp) -/* 0152F8 800146F8 AFB00014 */ sw $s0, 0x14($sp) -/* 0152FC 800146FC 3C088016 */ lui $t0, %hi(gWaypointCountByPathIndex) # $t0, 0x8016 -/* 015300 80014700 00C08025 */ move $s0, $a2 -/* 015304 80014704 00A08825 */ move $s1, $a1 -/* 015308 80014708 AFBF001C */ sw $ra, 0x1c($sp) -/* 01530C 8001470C AFA40020 */ sw $a0, 0x20($sp) -/* 015310 80014710 950845C8 */ lhu $t0, %lo(gWaypointCountByPathIndex)($t0) -/* 015314 80014714 4501002D */ bc1t .L800147CC -/* 015318 80014718 00807025 */ move $t6, $a0 -/* 01531C 8001471C 18A0002B */ blez $a1, .L800147CC -/* 015320 80014720 00003025 */ move $a2, $zero -/* 015324 80014724 3C098016 */ lui $t1, %hi(D_80162FCE) # $t1, 0x8016 -/* 015328 80014728 85292FCE */ lh $t1, %lo(D_80162FCE)($t1) -/* 01532C 8001472C 24040018 */ li $a0, 24 -.L80014730: -/* 015330 80014730 9605001C */ lhu $a1, 0x1c($s0) -/* 015334 80014734 00001025 */ move $v0, $zero -/* 015338 80014738 01201825 */ move $v1, $t1 -/* 01533C 8001473C 00A03825 */ move $a3, $a1 -.L80014740: -/* 015340 80014740 0068001A */ div $zero, $v1, $t0 -/* 015344 80014744 0000C010 */ mfhi $t8 -/* 015348 80014748 24420003 */ addiu $v0, $v0, 3 -/* 01534C 8001474C 15000002 */ bnez $t0, .L80014758 -/* 015350 80014750 00000000 */ nop -/* 015354 80014754 0007000D */ break 7 -.L80014758: -/* 015358 80014758 2401FFFF */ li $at, -1 -/* 01535C 8001475C 15010004 */ bne $t0, $at, .L80014770 -/* 015360 80014760 3C018000 */ lui $at, 0x8000 -/* 015364 80014764 14610002 */ bne $v1, $at, .L80014770 -/* 015368 80014768 00000000 */ nop -/* 01536C 8001476C 0006000D */ break 6 -.L80014770: -/* 015370 80014770 14F80011 */ bne $a3, $t8, .L800147B8 -/* 015374 80014774 00000000 */ nop -/* 015378 80014778 8FB90020 */ lw $t9, 0x20($sp) -/* 01537C 8001477C 3C058016 */ lui $a1, %hi(D_80163068) # 0x8016 -/* 015380 80014780 00073400 */ sll $a2, $a3, 0x10 -/* 015384 80014784 00195080 */ sll $t2, $t9, 2 -/* 015388 80014788 00AA2821 */ addu $a1, $a1, $t2 -/* 01538C 8001478C 00065C03 */ sra $t3, $a2, 0x10 -/* 015390 80014790 01603025 */ move $a2, $t3 -/* 015394 80014794 8CA53068 */ lw $a1, %lo(D_80163068)($a1) # 0x3068($a1) -/* 015398 80014798 0C00516A */ jal func_800145A8 -/* 01539C 8001479C 8604002E */ lh $a0, 0x2e($s0) -/* 0153A0 800147A0 8FAC0020 */ lw $t4, 0x20($sp) -/* 0153A4 800147A4 3C018016 */ lui $at, %hi(D_801634F8 + 4) -/* 0153A8 800147A8 000C6900 */ sll $t5, $t4, 4 -/* 0153AC 800147AC 002D0821 */ addu $at, $at, $t5 -/* 0153B0 800147B0 10000006 */ b .L800147CC -/* 0153B4 800147B4 E42034FC */ swc1 $f0, %lo(D_801634F8 + 4)($at) -.L800147B8: -/* 0153B8 800147B8 1444FFE1 */ bne $v0, $a0, .L80014740 -/* 0153BC 800147BC 24630003 */ addiu $v1, $v1, 3 -/* 0153C0 800147C0 24C60001 */ addiu $a2, $a2, 1 -/* 0153C4 800147C4 14D1FFDA */ bne $a2, $s1, .L80014730 -/* 0153C8 800147C8 26100034 */ addiu $s0, $s0, 0x34 -.L800147CC: -/* 0153CC 800147CC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0153D0 800147D0 8FB00014 */ lw $s0, 0x14($sp) -/* 0153D4 800147D4 8FB10018 */ lw $s1, 0x18($sp) -/* 0153D8 800147D8 03E00008 */ jr $ra -/* 0153DC 800147DC 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/non_matchings/code_80005FD0/func_80014DE4.s b/asm/non_matchings/code_80005FD0/func_80014DE4.s deleted file mode 100644 index cc7942713..000000000 --- a/asm/non_matchings/code_80005FD0/func_80014DE4.s +++ /dev/null @@ -1,70 +0,0 @@ -glabel func_80014DE4 -/* 0159E4 80014DE4 00041040 */ sll $v0, $a0, 1 -/* 0159E8 80014DE8 3C0F8016 */ lui $t7, %hi(D_80164670) # 0x8016 -/* 0159EC 80014DEC 01E27821 */ addu $t7, $t7, $v0 -/* 0159F0 80014DF0 85EF4670 */ lh $t7, %lo(D_80164670)($t7) # 0x4670($t7) -/* 0159F4 80014DF4 3C0E8016 */ lui $t6, %hi(D_80164678) # $t6, 0x8016 -/* 0159F8 80014DF8 3C018016 */ lui $at, %hi(D_801646CC) # $at, 0x8016 -/* 0159FC 80014DFC 25CE4678 */ addiu $t6, %lo(D_80164678) # addiu $t6, $t6, 0x4678 -/* 015A00 80014E00 A42046CC */ sh $zero, %lo(D_801646CC)($at) -/* 015A04 80014E04 004E1821 */ addu $v1, $v0, $t6 -/* 015A08 80014E08 3C05800E */ lui $a1, %hi(gModeSelection) -/* 015A0C 80014E0C A46F0000 */ sh $t7, ($v1) -/* 015A10 80014E10 8CA5C53C */ lw $a1, %lo(gModeSelection)($a1) -/* 015A14 80014E14 24070001 */ li $a3, 1 -/* 015A18 80014E18 2408FFFF */ li $t0, -1 -/* 015A1C 80014E1C 10E5000B */ beq $a3, $a1, .L80014E4C -/* 015A20 80014E20 000448C0 */ sll $t1, $a0, 3 -/* 015A24 80014E24 3C188019 */ lui $t8, %hi(gCupCourseSelection) # $t8, 0x8019 -/* 015A28 80014E28 8318EE0B */ lb $t8, %lo(gCupCourseSelection)($t8) -/* 015A2C 80014E2C 3C19800E */ lui $t9, %hi(gDemoMode) -/* 015A30 80014E30 13000004 */ beqz $t8, .L80014E44 -/* 015A34 80014E34 00000000 */ nop -/* 015A38 80014E38 9739C51C */ lhu $t9, %lo(gDemoMode)($t9) -/* 015A3C 80014E3C 54F90004 */ bnel $a3, $t9, .L80014E50 -/* 015A40 80014E40 84660000 */ lh $a2, ($v1) -.L80014E44: -/* 015A44 80014E44 1000000B */ b .L80014E74 -/* 015A48 80014E48 A4600000 */ sh $zero, ($v1) -.L80014E4C: -/* 015A4C 80014E4C 84660000 */ lh $a2, ($v1) -.L80014E50: -/* 015A50 80014E50 10C00008 */ beqz $a2, .L80014E74 -/* 015A54 80014E54 00000000 */ nop -/* 015A58 80014E58 10E60006 */ beq $a3, $a2, .L80014E74 -/* 015A5C 80014E5C 24010002 */ li $at, 2 -/* 015A60 80014E60 10C10004 */ beq $a2, $at, .L80014E74 -/* 015A64 80014E64 24010003 */ li $at, 3 -/* 015A68 80014E68 10C10002 */ beq $a2, $at, .L80014E74 -/* 015A6C 80014E6C 00000000 */ nop -/* 015A70 80014E70 A4600000 */ sh $zero, ($v1) -.L80014E74: -/* 015A74 80014E74 3C018016 */ lui $at, %hi(D_80164680) # 0x8016 -/* 015A78 80014E78 00220821 */ addu $at, $at, $v0 -/* 015A7C 80014E7C A4284680 */ sh $t0, %lo(D_80164680)($at) # 0x4680($at) -/* 015A80 80014E80 3C018016 */ lui $at, %hi(D_80163238) # $at, 0x8016 -/* 015A84 80014E84 AC203238 */ sw $zero, %lo(D_80163238)($at) -/* 015A88 80014E88 3C018016 */ lui $at, %hi(D_801646C0) # 0x8016 -/* 015A8C 80014E8C 00220821 */ addu $at, $at, $v0 -/* 015A90 80014E90 A42046C0 */ sh $zero, %lo(D_801646C0)($at) # 0x46c0($at) -/* 015A94 80014E94 3C0A8016 */ lui $t2, %hi(D_801646D0) # $t2, 0x8016 -/* 015A98 80014E98 3C018016 */ lui $at, %hi(D_801646C8) # $at, 0x8016 -/* 015A9C 80014E9C 254A46D0 */ addiu $t2, %lo(D_801646D0) # addiu $t2, $t2, 0x46d0 -/* 015AA0 80014EA0 AC2046C8 */ sw $zero, %lo(D_801646C8)($at) -/* 015AA4 80014EA4 012A3021 */ addu $a2, $t1, $t2 -/* 015AA8 80014EA8 A4C00000 */ sh $zero, ($a2) -/* 015AAC 80014EAC A4C00002 */ sh $zero, 2($a2) -/* 015AB0 80014EB0 14E50006 */ bne $a3, $a1, .L80014ECC -/* 015AB4 80014EB4 A4C00004 */ sh $zero, 4($a2) -/* 015AB8 80014EB8 3C0B8019 */ lui $t3, %hi(D_8018EDFC) # $t3, 0x8019 -/* 015ABC 80014EBC 816BEDFC */ lb $t3, %lo(D_8018EDFC)($t3) -/* 015AC0 80014EC0 15600002 */ bnez $t3, .L80014ECC -/* 015AC4 80014EC4 00000000 */ nop -/* 015AC8 80014EC8 A4600000 */ sh $zero, ($v1) -.L80014ECC: -/* 015ACC 80014ECC 3C018016 */ lui $at, %hi(gNearestWaypointByCameraId) # $at, 0x8016 -/* 015AD0 80014ED0 A420466A */ sh $zero, %lo(gNearestWaypointByCameraId+0x2)($at) -/* 015AD4 80014ED4 A420466C */ sh $zero, %lo(gNearestWaypointByCameraId+0x4)($at) -/* 015AD8 80014ED8 A420466E */ sh $zero, %lo(gNearestWaypointByCameraId+0x6)($at) -/* 015ADC 80014EDC 03E00008 */ jr $ra -/* 015AE0 80014EE0 A4204668 */ sh $zero, %lo(gNearestWaypointByCameraId)($at) # 0x4668($at) diff --git a/asm/non_matchings/code_80005FD0/func_80019DF4.s b/asm/non_matchings/code_80005FD0/func_80019DF4.s deleted file mode 100644 index 865d02ec3..000000000 --- a/asm/non_matchings/code_80005FD0/func_80019DF4.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80019DF4 -/* 01A9F4 80019DF4 3C0E8016 */ lui $t6, %hi(D_80164678) # $t6, 0x8016 -/* 01A9F8 80019DF8 3C018016 */ lui $at, %hi(D_80164670) # $at, 0x8016 -/* 01A9FC 80019DFC 3C0F8016 */ lui $t7, %hi(D_80164678+0x2) # $t7, 0x8016 -/* 01AA00 80019E00 3C188016 */ lui $t8, %hi(D_80164678+0x4) # $t8, 0x8016 -/* 01AA04 80019E04 3C198016 */ lui $t9, %hi(D_80164678+0x6) # $t9, 0x8016 -/* 01AA08 80019E08 8739467E */ lh $t9, %lo(D_80164678+0x6)($t9) -/* 01AA0C 80019E0C 8718467C */ lh $t8, %lo(D_80164678+0x4)($t8) -/* 01AA10 80019E10 85EF467A */ lh $t7, %lo(D_80164678+0x2)($t7) -/* 01AA14 80019E14 85CE4678 */ lh $t6, %lo(D_80164678)($t6) -/* 01AA18 80019E18 3C028016 */ lui $v0, %hi(gGPCurrentRacePlayerIdByRank) # $v0, 0x8016 -/* 01AA1C 80019E1C 3C08800E */ lui $t0, %hi(camera1) -/* 01AA20 80019E20 84424360 */ lh $v0, %lo(gGPCurrentRacePlayerIdByRank)($v0) -/* 01AA24 80019E24 8D08DB40 */ lw $t0, %lo(camera1)($t0) -/* 01AA28 80019E28 A4394676 */ sh $t9, %lo(D_80164670+0x6)($at) -/* 01AA2C 80019E2C A4384674 */ sh $t8, %lo(D_80164670+0x4)($at) -/* 01AA30 80019E30 A42F4672 */ sh $t7, %lo(D_80164670+0x2)($at) -/* 01AA34 80019E34 A42E4670 */ sh $t6, %lo(D_80164670)($at) -/* 01AA38 80019E38 3C018016 */ lui $at, %hi(D_80164678) # $at, 0x8016 -/* 01AA3C 80019E3C 24090001 */ li $t1, 1 -/* 01AA40 80019E40 A50200AE */ sh $v0, 0xae($t0) -/* 01AA44 80019E44 A4294678 */ sh $t1, %lo(D_80164678)($at) -/* 01AA48 80019E48 3C018016 */ lui $at, %hi(D_801646CC) # 0x8016 -/* 01AA4C 80019E4C 240A0002 */ li $t2, 2 -/* 01AA50 80019E50 03E00008 */ jr $ra -/* 01AA54 80019E54 A42A46CC */ sh $t2, %lo(D_801646CC)($at) # 0x46cc($at) diff --git a/include/waypoints.h b/include/waypoints.h index f5340ccf4..c61e97312 100644 --- a/include/waypoints.h +++ b/include/waypoints.h @@ -52,7 +52,7 @@ extern TrackWaypoint *D_801631D4; // Shadows values from D_80164580 extern s16 *D_801631D8; // Shadows values from D_80164590 -extern u16 *D_801631DC; +extern s16 *D_801631DC; // Shadowd values from gWaypointCountByPathIndex extern u16 D_80164430; // Shadows values from D_80164550 diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 738fc62e2..66cb2b9ba 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -36,7 +36,7 @@ Collision D_80162E70; s16 D_80162EB0; // Possibly a float. s16 D_80162EB2; // possibly [3] -uintptr_t *D_80162EB8[20]; +UnkCommonTextureStruct0 *D_80162EB8[20]; // more padding? s32 D_80162F08[2]; @@ -67,7 +67,7 @@ s16 D_80163050[12]; f32 D_80163068[10]; f32 D_80163090[10]; s32 D_801630B8[10]; -s16 D_801630E0; +u16 D_801630E0; s16 D_801630E2; s16 D_801630E8[10]; s16 D_801630FC; @@ -81,21 +81,19 @@ s32 D_801631CC; TrackWaypoint *D_801631D0; TrackWaypoint *D_801631D4; s16 *D_801631D8; -u16 *D_801631DC; +s16 *D_801631DC; u16 D_801631E0[12]; -s16 D_801631F8[10]; +u16 D_801631F8[10]; f32 D_8016320C; f32 D_80163210[10]; s32 D_80163238; -s16 D_80163240[12]; +u16 D_80163240[12]; u16 D_80163258[12]; u16 D_80163270[12]; s32 D_80163288[10]; -// Exact pointer type unknown -// Maybe PathNoY or TrackWaypoint? -void *D_801632B0; -s16 D_801632B8[12]; -s16 D_801632D0[12]; +UnkCommonTextureStruct0 *D_801632B0; +u16 D_801632B8[12]; +u16 D_801632D0[12]; u16 D_801632E8[12]; s16 D_80163300[12]; u16 D_80163318[12]; @@ -103,7 +101,7 @@ u16 D_80163330[10]; u16 D_80163344[2]; u16 D_80163348[2]; u16 D_8016334C[2]; -s16 D_80163350[12]; +u16 D_80163350[12]; s32 D_80163368[4]; s32 D_80163378; s32 D_8016337C; @@ -209,7 +207,7 @@ s32 D_801646BC; // end padding s16 D_801646C0[4]; u32 D_801646C8; -s16 D_801646CC; +u16 D_801646CC; UnkStruct_46D0 D_801646D0[4]; // Strings, presented by google translate! @@ -1061,40 +1059,25 @@ void func_80007FA4(s32 arg0, Player *player, f32 arg2) { } } -#ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-26-2023 -? func_80007D04(f32, s32, Player *, s32, Player *); /* extern */ -s32 func_800088D8(f32, s32, s16, s16, Player *); /* extern */ -extern ? D_80164392; -extern ? D_8016440A; - -void func_80008424(s32 arg0, f32 arg1, Player *player) { - f32 sp34; - s32 sp28; - s32 sp1C; - f32 temp_f2; +void func_80008424(s32 playerId, f32 arg1, Player *player) { + f32 var_f2; f32 var_f0; - f32 var_f12; - s32 temp_t5; - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v0_4; + s32 thing; s32 var_a1; - u16 temp_v0_3; - u32 temp_v1; - temp_v1 = player->effects; - var_f12 = arg1; - temp_f2 = player->unk_094; - if (!(temp_v1 & 0x80) && !(temp_v1 & 0x40) && !(temp_v1 & 0x20000) && (temp_v0 = player->statusEffects, !(temp_v0 & 0x400000)) && !(temp_v0 & 0x01000000) && !(temp_v0 & 2) && !(temp_v0 & 4)) { - if (gCurrentCourseId == 0x0014) { - func_80007FA4(arg0, player, temp_f2); - return; - } - temp_t5 = arg0 * 2; - if ((D_801634D8[arg0] == (s16) 1) && !(temp_v1 & 0x80000200)) { + var_f2 = player->unk_094; + if (!(player->effects & 0x80) && + !(player->effects & 0x40) && + !(player->effects & 0x20000) && + !(player->statusEffects & 0x400000) && + !(player->statusEffects & 0x01000000) && + !(player->statusEffects & 2) && + !(player->statusEffects & 4)) { + if (gCurrentCourseId == COURSE_AWARD_CEREMONY) { + func_80007FA4(playerId, player, var_f2); + } else if ((D_801634D8[playerId] == 1) && !(player->effects & 0x80000200)) { func_80031F48(player, 10.0f); - if ((f64) player->currentSpeed == 0.0) { + if (player->currentSpeed == 0.0) { player->velocity[0] = 0.0f; player->velocity[2] = 0.0f; } @@ -1111,101 +1094,76 @@ void func_80008424(s32 arg0, f32 arg1, Player *player) { var_f0 = 3.75f; break; } - if (temp_f2 < var_f0) { - player->effects = temp_v1 & 0xFFDFFFFF; + if (var_f2 < var_f0) { + player->effects &= ~0x00200000; player_speed(player); - return; - } - if (player->type & 0x800) { - if (temp_f2 < var_f12) { - player->effects = temp_v1 & 0xFFDFFFFF; + } else if (player->type & 0x800) { + if (var_f2 < arg1) { + player->effects &= ~0x00200000; player_speed(player); - return; + } else { + player->effects &= ~0x00200000; + func_80031F48(player, 1.0f); } - player->effects = temp_v1 & 0xFFDFFFFF; - func_80031F48(player, 1.0f); - return; - } - if ((D_801631E0[arg0] == (u16) 1) && (D_80163330[arg0] != (u16) 1)) { - temp_v0_2 = arg0 * 4; - if (func_800088D8(var_f12, arg0, *(&D_80164392 + temp_v0_2), *(&D_8016440A + temp_v0_2), player) == 1) { + } else if ((D_801631E0[playerId] == 1) && (D_80163330[playerId] != 1)) { + if (func_800088D8(playerId, gLapCountByPlayerId[playerId], D_80164408[playerId]) == 1) { player->effects |= 0x200000; player_speed(player); - return; - } - player->effects &= 0xFFDFFFFF; - func_80031F48(player, 1.0f); - return; - } - temp_v0_3 = (u16) D_80163350[arg0]; - switch (temp_v0_3) { /* switch 1; irregular */ - case 1: /* switch 1 */ - player->effects = temp_v1 & 0xFFDFFFFF; - sp34 = temp_f2; - sp1C = temp_t5; - sp28 = 1; - player_speed(player); - var_a1 = 1; - var_f12 = arg1; - break; - case 3: /* switch 1 */ - player->effects = temp_v1 | 0x200000; - sp34 = temp_f2; - sp1C = temp_t5; - sp28 = 1; - player_speed(player); - var_a1 = 1; - var_f12 = arg1; - break; - case 2: /* switch 1 */ - if (((temp_f2 / 18.0f) * 216.0f) > 20.0f) { - var_f12 = 1.6666666f; - } - /* fallthrough */ - default: /* switch 1 */ - case 0: /* switch 1 */ - var_a1 = 0; - break; - } - if (var_a1 != 1) { - if (temp_f2 < var_f12) { - if ((gDemoMode == (u16) 1) && (gCurrentCourseId != 0x0014)) { - player_speed(player); - return; - } - temp_v0_4 = arg0 * 4; - if (D_80163330[arg0] == (u16) 1) { - func_80007D04(var_f12, arg0, player, temp_t5, player); - return; - } - if (func_800088D8(var_f12, arg0, *(&D_80164392 + temp_v0_4), *(&D_8016440A + temp_v0_4), player) == 1) { - player->effects |= 0x200000; - player_speed(player); - return; - } - player->effects &= 0xFFDFFFFF; + } else { + player->effects &= ~0x00200000; func_80031F48(player, 1.0f); - return; } - player->effects &= 0xFFDFFFFF; - if (var_f12 > 1.0f) { - func_80031F48(player, 2.0f); - return; + } else { + var_a1 = 1; + switch (D_80163350[playerId]) { /* switch 1; irregular */ + case 1: /* switch 1 */ + player->effects &= ~0x00200000; + player_speed(player); + break; + case 3: /* switch 1 */ + player->effects |= 0x200000; + player_speed(player); + break; + case 2: /* switch 1 */ + if (((var_f2 / 18.0f) * 216.0f) > 20.0f) { + arg1 = 1.6666666f; + } + var_a1 = 0; + break; + case 0: /* switch 1 */ + default: /* switch 1 */ + var_a1 = 0; + break; + } + if (var_a1 != 1) { + if (var_f2 < arg1) { + if ((gDemoMode == 1) && (gCurrentCourseId != 0x0014)) { + player_speed(player); + }else if (D_80163330[playerId] == 1) { + func_80007D04(playerId, player); + } else if (func_800088D8(playerId, gLapCountByPlayerId[playerId], D_80164408[playerId]) == 1) { + player->effects |= 0x200000; + player_speed(player); + } else { + player->effects &= ~0x00200000; + func_80031F48(player, 1.0f); + } + } else { + player->effects &= ~0x00200000; + if (arg1 > 1.0f) { + func_80031F48(player, 2.0f); + } else { + func_80031F48(player, 5.0f); + } + } } - func_80031F48(player, 5.0f); } } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80008424.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-26-2023 -extern ? D_80164376; -extern s16 D_80164386; -extern ? D_801643BA; +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-26-2023 static ? D_800DCAF4; /* unable to generate initializer */ static ? D_800DCB34; /* unable to generate initializer */ static ? *D_800DCBB4[0x15] = { @@ -1288,7 +1246,7 @@ s32 func_800088D8(s32 arg0, s16 arg1, s16 arg2) { temp_a3 = D_800DCBB4[gCurrentCourseId] + (temp_t2 * 2); if (arg2 == 0) { if (gDemoMode == (u16) 1) { - temp_a2 = D_80164450[arg0].unk2 - D_80164450[D_80164386].unk2; + temp_a2 = D_80164450[arg0].unk2 - D_80164450[*(D_80164378 + 0xE)].unk2; var_a1_2 = temp_a2; if (temp_a2 < 0) { var_a1_2 = -temp_a2; @@ -1305,11 +1263,11 @@ s32 func_800088D8(s32 arg0, s16 arg1, s16 arg2) { } return 1; } - temp_v0 = D_80164450[arg0 + 1]; - var_a1_3 = temp_v0 - D_80164450[D_80163478 + 1]; - temp_t5_2 = gGPCurrentRaceRankByPlayerId[D_80163478]; + temp_v0 = D_80164450[arg0].unk2; + var_a1_3 = temp_v0 - D_80164450[D_80163478].unk2; + temp_t5_2 = *(gGPCurrentRaceRankByPlayerId + 2 + (D_80163478 * 4)); if ((((s32) (*gWaypointCountByPathIndex * 2) / 3) < var_a1_3) && (temp_t5_2 >= 6)) { - var_a1_3 = temp_v0 - D_80164450[gLapCountByPlayerId[temp_t5_2 - 6]].unk2; + var_a1_3 = temp_v0 - D_80164450[*(gLapCountByPlayerId - 0x1A + (temp_t5_2 * 2))].unk2; } if (var_a1_3 < 0) { var_a1_3 = -var_a1_3; @@ -1497,25 +1455,16 @@ f32 func_80009258(UNUSED s32 playerId, f32 arg1, f32 arg2) { } #ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-27-2023 -? func_800065D0(s32, Player *, s32 *); /* extern */ -extern s16 D_801630E0; -extern s16 D_801630E2; -extern ? D_80163240; -extern ? D_801642DE; -extern ? D_801643B0; -extern s32 D_8016440C; - +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-28-2023 void func_8000929C(s32 playerId, Player *player) { f32 sp4C; f32 sp44; f32 sp38; s16 sp34; u16 *sp30; /* compiler-managed */ - s16 *sp2C; + u16 *sp2C; f32 temp_f0; f32 temp_f12; - s16 *temp_v1; s16 temp_a3; s16 var_t0; s32 *temp_v0; @@ -1529,13 +1478,14 @@ void func_8000929C(s32 playerId, Player *player) { s32 var_a3; s32 var_v1; u16 *temp_t0; + u16 *temp_v1; u16 temp_v0_3; u16 temp_v0_4; temp_f0 = player->pos[2]; temp_f12 = player->pos[0]; D_801630E2 = 0; - temp_v1 = (playerId * 2) + &D_80163240; + temp_v1 = &D_80163240[playerId]; *temp_v1 = 0; temp_t0 = &gNearestWaypointByPlayerId[playerId]; sp30 = temp_t0; @@ -1544,7 +1494,7 @@ void func_8000929C(s32 playerId, Player *player) { sp4C = temp_f12; D_80162FCE = func_8000CD24(temp_f12, player->pos[1], temp_f0, (s16) *temp_t0, player, playerId, D_80163448); temp_a3 = D_80162FCE; - D_801630E0 = temp_a3; + D_801630E0 = (u16) temp_a3; if (temp_a3 != *temp_t0) { *temp_t0 = (u16) temp_a3; D_801630E2 = 1; @@ -1613,7 +1563,7 @@ block_25: var_v0->unk-8 = (s32) (temp_t9 - 1); var_v0->unk-C = (s32) (temp_t7 - 1); var_v0->unk-10 = (s32) (temp_t5 - 1); - } while (var_v0 != &D_801643B0); + } while (var_v0 != (gLapCountByPlayerId + 0x20)); } } *sp2C = 1; @@ -1621,7 +1571,7 @@ block_25: sp30 = var_a3; func_80008F38(playerId); func_80011AE4(playerId); - *(&D_801642DE + (playerId * 0x10)) = 0; + *(&D_801642D8->unk_06 + (playerId * 0x10)) = 0; if ((D_8016348C == 0) && !(player->type & 0x800)) { sp30 = var_a3; sp34 = var_t0; @@ -1643,9 +1593,9 @@ block_25: } temp_v0_4 = player->type; if ((temp_v0_4 & 0x4000) && !(temp_v0_4 & 0x1000)) { - func_800065D0(playerId, player, &D_80163448); + func_800065D0(playerId, player); if ((gModeSelection == 0) && (gPlayerCount == 2) && (playerId == 0)) { - if (*D_80164408 < D_8016440C) { + if (*D_80164408 < *(D_80164408 + 4)) { D_80163478 = 0; } else { D_80163478 = 1; @@ -1738,7 +1688,7 @@ block_15: GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800098FC.s") #endif -void func_800099EC(s32 playerId, s32 unused) { +void func_800099EC(s32 playerId, Player *unused) { s32 var_s0; if (D_801633C8[playerId] >= 0x65) { @@ -1762,189 +1712,120 @@ void func_800099EC(s32 playerId, s32 unused) { } } -#ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-28-2023 -? func_80008424(s32, f32, Player *); /* extern */ -? func_8000929C(s32, Player *); /* extern */ -? func_8000D438(s32, u16); /* extern */ -extern s16 D_80162FD0; -extern u16 D_801630E0; -extern s16 D_801630E2; -extern f32 D_8016320C; -extern ? D_80163240; -extern ? D_80163300; -extern ? D_801633E0; -extern s16 D_8016344A; -extern ? D_801634FC; -extern ? D_80163504; -static s16 D_800DCA20[0]; /* unable to generate initializer */ -f32 D_800DCA4C[0x15] = { - 50.0f, - 35.0f, - 35.0f, - 40.0f, - 35.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - 50.0f, - -1.0f, - -1.0f, - -1.0f, - 40.0f, - -1.0f, - 40.0f, -}; +#ifdef NON_MATCHING +#define FAKEMATCH1 0 +#define FAKEMATCH2 0 +// https://decomp.me/scratch/uJCh3 +// Lots of register allocation differences, but messing around seems to suggest they stem from 2 specific areas +// MISMATCH1: something about the loading of `playerId` is off +// MISMATCH2: something about the handling of the math is off. Not sure exactly what though +// MISMATCH3: there's a small instruction ordering issue concerning `D_8015F6F0`. No idea what to do about it +// FAKEMATCH1 is the best improvement I've seen yet, MISMATCH2/3 become the only issues. void func_80009B60(s32 playerId) { - s16 sp94; - Player *sp40; - f32 *sp3C; - s32 sp38; - s32 sp34; /* compiler-managed */ - s32 sp30; /* compiler-managed */ - u16 *sp2C; - f32 *sp28; - u16 *sp24; - u16 *sp20; - f32 *sp1C; - Player *temp_v1; - Test *temp_v1_2; - Test *temp_v1_3; - Test *temp_v1_6; - f32 *temp_a2_2; - f32 *temp_v0_9; - f32 *temp_v1_5; - f32 *temp_v1_7; - f32 *var_t0; - f32 *var_t0_2; - f32 *var_v0_2; - f32 *var_v1_3; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f0_3; - f32 temp_f0_4; - f32 temp_f0_5; - f32 temp_f2; - f32 temp_f2_2; - s16 *temp_v0_2; - s16 *temp_v1_4; - s16 temp_v0_10; - s16 temp_v0_12; - s16 temp_v0_13; - s16 temp_v0_14; - s16 temp_v0_3; - s16 temp_v0_5; - s16 temp_v0_6; - s16 temp_v0_7; - s16 temp_v1_8; + s32 stackPadding00; + s32 stackPadding01; + s32 stackPadding02; + s32 stackPadding03; + s32 stackPadding04; + s32 stackPadding05; + s32 stackPadding06; + s32 stackPadding07; + s32 stackPadding08; + s32 stackPadding09; + s32 stackPadding0A; + s32 stackPadding0B; + s32 stackPadding0C; + s32 stackPadding0D; s16 var_a0_2; s16 var_a1; - s16 var_a1_2; + s32 stackPadding0E; + s32 stackPadding0F; + s32 stackPadding10; + s32 stackPadding11; + s32 stackPadding12; + s32 stackPadding13; + s32 stackPadding14; + s32 stackPadding15; + s32 stackPadding16; + s32 stackPadding17; + s32 stackPadding18; + u16 stackPadding19; + u16 stackPadding1A; + f32 temp_f0; + f32 temp_f2; s16 var_a2; - s16 var_v0; s16 var_v1; - s16 var_v1_2; - s32 *temp_v0; - s32 temp_a1_2; - s32 temp_a2; - s32 temp_f10; s32 temp_f6; - s32 temp_t5; - s32 temp_t6; - u16 *temp_a1; - u16 *temp_a3; - u16 *temp_t0; - u16 *temp_t0_2; - u16 *temp_t6_2; - u16 *temp_t8; - u16 temp_a0; - u16 var_a0; - u32 temp_v0_11; - u32 temp_v0_4; - void *temp_v0_8; + Player *player; + TrackWaypoint *waypoint; + f32 athing = 1.5f; - temp_v0 = &D_80163100[playerId]; + player = &gPlayers[playerId]; if ((s32) D_800DCA4C[gCurrentCourseId] >= 0) { - *temp_v0 += 1; + D_80163100[playerId] += 1; if (playerId == 0) { - temp_t6 = D_80163378 + 1; - D_80163378 = temp_t6; - if (temp_t6 & 1) { + D_80163378++; + if (D_80163378 & 1) { D_80163488 += 1; } } - temp_v1 = &gPlayers[playerId]; - temp_a2 = playerId * 2; - if (!(temp_v1->type & 0x8000)) { + if (!(player->type & 0x8000)) { D_80164450[playerId] = -0x00000014; gCourseCompletionPercentByPlayerId[playerId] = -1000.0f; gLapCompletionPercentByPlayerId[playerId] = -1000.0f; return; } - temp_v0_2 = temp_a2 + &D_801633E0; - *temp_v0_2 = 0; - if (temp_v1->pos[0] < (f32) D_8015F6EA) { - *temp_v0_2 = 1; + D_801633E0[playerId] = 0; + if (player->pos[0] < D_8015F6EA) { + D_801633E0[playerId] = 1; } - if ((f32) D_8015F6E8 < temp_v1->pos[0]) { - *temp_v0_2 = 2; + if (D_8015F6E8 < player->pos[0]) { + D_801633E0[playerId] = 2; } - if (temp_v1->pos[2] < (f32) D_8015F6F2) { - *temp_v0_2 = 3; + if (player->pos[2] < D_8015F6F2) { + D_801633E0[playerId] = 3; } - if ((f32) D_8015F6F0 < temp_v1->pos[2]) { - *temp_v0_2 = 4; + // MISMATCH3 + if (D_8015F6F0 < player->pos[2]) { + D_801633E0[playerId] = 4; } - temp_v0_3 = temp_v1->unk_0CA; - if (!(temp_v0_3 & 2) && !(temp_v0_3 & 8)) { - temp_a0 = gPathIndexByPlayerId[playerId]; - sp40 = temp_v1; - sp34 = temp_a2; - sp38 = playerId * 4; - D_80163448 = (s32) temp_a0; - func_80008DC0((s32) temp_a0); + if (!(player->unk_0CA & 2) && !(player->unk_0CA & 8)) { + D_80163448 = gPathIndexByPlayerId[playerId]; + func_80008DC0(D_80163448); switch (gCurrentCourseId) { /* irregular */ case 11: - func_80012DC0(playerId, sp40); + func_80012DC0(playerId, player); if (playerId == 0) { func_80013054(); } break; case 18: - func_80013854(sp40); + func_80013854(player); break; case 10: - func_800148C4(playerId, sp40); - func_80014A18(playerId, sp40); - func_80014B6C(playerId, sp40); - func_80014CC0(playerId, sp40); + func_800148C4(playerId, player); + func_80014A18(playerId, player); + func_80014B6C(playerId, player); + func_80014CC0(playerId, player); break; } - if (sp40->type & 0x800) { - sp40->effects &= 0xFFBFFFFF; - sp40->unk_044 &= 0xFFFE; + if (player->type & 0x800) { + player->effects &= ~0x00400000; + player->unk_044 &= ~0x0001; } - func_8000929C(playerId, sp40); - if ((gCurrentCourseId != 0x0014) && ((*(&D_80163240 + sp34) == 1) || (playerId == 0))) { + func_8000929C(playerId, player); + if ((gCurrentCourseId != 0x0014) && ((D_80163240[playerId] == 1) || (playerId == 0))) { set_places(); } - if (sp40->type & 0x1000) { + if (player->type & 0x1000) { if ((D_801630E2 == 1) && (gCurrentCourseId != 0x0014)) { func_80011E38(playerId); } - temp_t5 = playerId & 1; - sp30 = temp_t5; - if ((D_80163378 & 1) != temp_t5) { + if ((playerId & 1) != (D_80163378 & 1)) { func_8001AC10(playerId); } - func_800099EC(playerId, (s32) sp40); + func_800099EC(playerId, player); D_80162FD0 = 0; switch (gModeSelection) { /* switch 1; irregular */ case 1: /* switch 1 */ @@ -1954,313 +1835,272 @@ void func_80009B60(s32 playerId) { case 0: /* switch 1 */ break; } - temp_a1 = sp34 + D_801631E0; - *temp_a1 = 0; - if ((sp40->effects & 0x1000) && (gCurrentCourseId != 0x0014)) { - *temp_a1 = 1; + D_801631E0[playerId] = 0; + if ((player->effects & 0x1000) && (gCurrentCourseId != 0x0014)) { + D_801631E0[playerId] = 1; } - if (((u16) D_801646CC == 1) || (sp40->type & 0x800) || (gCurrentCourseId == 0x0014)) { + if ((D_801646CC == 1) || (player->type & 0x800) || (gCurrentCourseId == 0x0014)) { if (gCurrentCourseId != 0x000A) { - *(&D_801634FC + (playerId * 0x10)) = 0.0f; + D_801634F8[playerId].unk4 = 0.0f; } - *(&D_80163504 + (playerId * 0x10)) = 0.0f; + D_801634F8[playerId].unkC = 0.0f; } if (D_80163448 > 0) { - temp_v1_2 = &D_801634F8[playerId]; - temp_v1_2->unk4 = 0.0f; - temp_v1_2->unkC = 0.0f; + D_801634F8[playerId].unk4 = 0.0f; + D_801634F8[playerId].unkC = 0.0f; } - temp_t6_2 = sp34 + gNearestWaypointByPlayerId; - sp24 = temp_t6_2; - temp_a2_2 = sp38 + D_80164510; - temp_a3 = sp34 + D_801631F8; - *temp_a2_2 = (f32) D_80164550[D_80163448][*temp_t6_2].posY + 4.3f; - if ((*temp_a3 == 1) && (*temp_a1 == 0)) { - sp2C = temp_a1; - sp28 = temp_a2_2; - sp20 = temp_a3; - func_8002E4C4(sp40); + // gNearestWaypointByPlayerId[playerId] might need to be saved to a temp + D_80164510[playerId] = D_80164550[D_80163448][gNearestWaypointByPlayerId[playerId]].posY + 4.3f; + if ((D_801631F8[playerId] == 1) && (D_801631E0[playerId] == 0)) { + func_8002E4C4(player); } - if (*temp_a1 == 1) { - sp40->pos[1] = *temp_a2_2; + if (D_801631E0[playerId] == 1) { + player->pos[1] = D_80164510[playerId]; } - *temp_a3 = *temp_a1; - if (gCurrentCourseId != 4) { - if (gCurrentCourseId != 0x000A) { - var_a0 = *temp_a1; - if (gCurrentCourseId != 0x0014) { - - } else { - goto block_63; - } - } else { - sp2C = temp_a1; - func_8001490C(playerId); - func_80014A60(playerId); - func_80014BB4(playerId); - func_80014D08(playerId); - var_a0 = *temp_a1; - } - } else { - var_a0 = *temp_a1; -block_63: - *(&D_801634FC + (playerId * 0x10)) = 0.0f; + D_801631F8[playerId] = D_801631E0[playerId]; + switch (gCurrentCourseId) { + case 4: + case 0x0014: + D_801634F8[playerId].unk4 = 0.0f; + break; + default: + break; + case 10: + func_8001490C(playerId); + func_80014A60(playerId); + func_80014BB4(playerId); + func_80014D08(playerId); + break; } - if (var_a0 == 1) { - *(D_801630E8 + sp34) = 0; - sp40->effects &= ~0x10; - if ((D_80163378 & 1) != sp30) { - func_8003680C(sp40, 0); - func_80008424(playerId, *(D_80163210 + sp38), sp40); + if (D_801631E0[playerId] == 1) { + D_801630E8[playerId] = 0; + player->effects &= ~0x10; + if ((playerId & 1) != (D_80163378 & 1)) { + func_8003680C(player, 0); + func_80008424(playerId, D_80163210[playerId], player); return; } - if ((gPlayerCount > 0) && (gPlayerCount < 3) && (*(D_80163330 + sp34) == 1) && ((s32) *(D_8016334C + sp34) < *(gGPCurrentRaceRankByPlayerId + sp38))) { - var_t0 = sp38 + D_80163210; - *var_t0 = 8.333333f; + if ((gPlayerCount > 0) && (gPlayerCount < 3) && (D_80163330[playerId] == 1) && (D_8016334C[playerId] < gGPCurrentRaceRankByPlayerId[playerId])) { + D_80163210[playerId] = 8.333333f; } else if (D_80162FD0 == (s16) 1U) { - temp_v1_3 = &D_801634F8[playerId]; - sp30 = temp_v1_3; - var_t0 = sp38 + D_80163210; - *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D0096B8); - temp_v1_3->unk4 = -0.5f; + D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D0096B8[gCurrentCourseId][gCCSelection]); + D_801634F8[playerId].unk4 = -0.5f; } else if (D_801645E0[D_80162FCE] > 0) { - var_t0 = sp38 + D_80163210; - *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009418); + D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]); } else { - var_t0 = sp38 + D_80163210; - *var_t0 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009568); + D_80163210[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009568[gCurrentCourseId][gCCSelection]); } - sp3C = var_t0; func_800131DC(playerId); func_8000D3B8(playerId); func_8000D438(playerId, D_801630E0); - temp_v0_4 = sp40->effects; - temp_f0 = D_80162FA0->unk0 - sp40->pos[0]; - var_t0_2 = var_t0; - temp_f2 = D_80162FA0->unk8 - sp40->pos[2]; - if (!(temp_v0_4 & 0x80) && !(temp_v0_4 & 0x40) && !(temp_v0_4 & 0x800)) { + temp_f0 = D_80162FA0[0] - player->pos[0]; + temp_f2 = D_80162FA0[2] - player->pos[2]; + if (!(player->effects & 0x80) && !(player->effects & 0x40) && !(player->effects & 0x800)) { if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) > 6400.0f) { if (D_80163448 == 0) { - sp3C = var_t0_2; func_8000B140(playerId); - if (*(D_80162FF8 + sp34) > 0) { - sp3C = var_t0_2; - func_8000BBD8(((s32) ((D_801630E0 + 5) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, *(D_80163090 + sp38), D_8016344A); + if (D_80162FF8[playerId] > 0) { + stackPadding1A = D_801630E0 + 5; + stackPadding1A %= D_80164430; + func_8000BBD8(stackPadding1A, D_80163090[playerId], D_80163448); } } - sp3C = var_t0_2; - sp40->unk_02C[1] = -get_angle_between_points(sp40->pos, D_80162FA0); + player->unk_02C[1] = -get_angle_between_points(player->pos, D_80162FA0); } else { - sp40->unk_02C[1] = D_80164590[D_80163448][(s32) (D_801630E0 + 4) % (s32) D_80164430]; + player->unk_02C[1] = D_80164590[D_80163448][(D_801630E0 + 4) % D_80164430]; } } - sp3C = var_t0_2; - func_8003680C(sp40, 0); - func_80008424(playerId, *var_t0_2, sp40); + func_8003680C(player, 0); + func_80008424(playerId, D_80163210[playerId], player); return; } - temp_t8 = sp34 + D_801630E8; - sp2C = temp_t8; - var_v0 = *temp_t8; - if ((var_v0 == (s16) 1U) || (var_v0 == -1)) { - sp40->effects |= 0x10; - var_v0 = (s16) *sp2C; + if ((D_801630E8[playerId] == 1) || (D_801630E8[playerId] == -1)) { + player->effects |= 0x10; } - if (var_v0 != 0) { - temp_v1_4 = sp34 + &D_80163300; - *temp_v1_4 = -get_angle_between_points(&sp40->rotX, sp40->pos); - var_a0_2 = (s16) ((s32) ((s16) D_801631DC[(s32) (D_80162FCE + 2) % (s32) D_80164430] * 0x168) / 65535); - var_a1 = (s16) ((s32) (*temp_v1_4 * 0x168) / 65535); + if (D_801630E8[playerId] != 0) { + D_80163300[playerId] = -get_angle_between_points(&player->rotX, player->pos); + var_a0_2 = (D_801631DC[(D_80162FCE + 2) % D_80164430] * 0x168) / 65535; + var_a1 = (D_80163300[playerId] * 0x168) / 65535; if (var_a0_2 < -0xB4) { var_a0_2 += 0x168; } - if (var_a0_2 >= 0xB5) { + if (var_a0_2 > 0xB4) { var_a0_2 -= 0x168; } if (var_a1 < -0xB4) { var_a1 += 0x168; } - if (var_a1 >= 0xB5) { + if (var_a1 > 0xB4) { var_a1 -= 0x168; } - temp_v0_5 = var_a0_2 - var_a1; - var_v1 = temp_v0_5; - if (temp_v0_5 < -0xB4) { - var_v1 = temp_v0_5 + 0x168; + var_v1 = var_a0_2 - var_a1; + if (var_v1 < -0xB4) { + var_v1 += 0x168; } - if (var_v1 >= 0xB5) { + if (var_v1 > 0xB4) { var_v1 -= 0x168; } - temp_v0_6 = (s16) *sp2C; - switch (temp_v0_6) { /* switch 2; irregular */ - case -1: /* switch 2 */ - if (var_v1 >= 6) { - *sp2C = 0; - sp40->effects &= ~0x10; + switch (D_801630E8[playerId]) { + case -1: + if (var_v1 > 5) { + D_801630E8[playerId] = 0; + player->effects &= ~0x10; } break; - case 1: /* switch 2 */ + case 1: if (var_v1 < -5) { - *sp2C = 0; - sp40->effects &= ~0x10; + D_801630E8[playerId] = 0; + player->effects &= ~0x10; } break; + default: + break; } } - if ((D_80163378 & 1) != sp30) { - func_8003680C(sp40, *(D_80163050 + sp34)); - func_80008424(playerId, *(D_80163210 + sp38), sp40); + // MISMATCH1 +#if FAKEMATCH2 == 1 + stackPadding00 = (playerId & 1) != (D_80163378 & 1); + if (stackPadding00) { +#else + if ((playerId & 1) != (D_80163378 & 1)) { +#endif + func_8003680C(player, D_80163050[playerId]); + func_80008424(playerId, D_80163210[playerId], player); return; } - sp1C = sp40->pos; - temp_v1_5 = sp38 + D_801630B8; - *temp_v1_5 = func_8000B7E4(playerId, (u16) D_80162FCE); - sp28 = temp_v1_5; - func_8000D438(playerId, (u16) D_80162FCE); + D_801630B8[playerId] = func_8000B7E4(playerId, D_80162FCE); + func_8000D438(playerId, D_80162FCE); if (gCurrentCourseId != 0x0014) { - temp_a1_2 = *(D_80164450 + sp38); - if (temp_a1_2 < 0xB) { - temp_v1_6 = &D_801634F8[playerId]; - if ((temp_a1_2 > 0) && (gCurrentCourseId == 0x000A)) { - sp30 = temp_v1_6; - func_8000BBD8(((s32) ((D_801630E0 + 0x14) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, 0.0f, 0); - temp_v1_6->unk4 = 0.0f; + if (D_80164450[playerId] < 0xB) { + stackPadding1A = D_801630E0; + if ((D_80164450[playerId] > 0) && (gCurrentCourseId == 0x000A)) { + stackPadding1A += 0x14; + stackPadding1A %= D_80164430; + func_8000BBD8(stackPadding1A, 0.0f, 0); + D_801634F8[playerId].unk4 = 0.0f; } else { - temp_t0 = sp38 + D_80163068; - sp20 = temp_t0; - sp30 = temp_v1_6; - func_8000BBD8(((s32) ((D_801630E0 + 8) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, *temp_t0, D_8016344A); - temp_v1_6->unk0 = *temp_t0; + stackPadding1A += 8; + stackPadding1A %= D_80164430; + func_8000BBD8(stackPadding1A, D_80163068[playerId], D_80163448); + D_801634F8[playerId].unk0 = D_80163068[playerId]; } } - if ((D_80162FD0 == 1) && (*(D_80162FF8 + sp34) == 0)) { - func_8000BBD8(((s32) ((D_801630E0 + 7) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, -0.7f, D_8016344A); + if ((D_80162FD0 == 1) && (D_80162FF8[playerId] == 0)) { + stackPadding1A = D_801630E0 + 7; + stackPadding1A %= D_80164430; + func_8000BBD8(stackPadding1A, -0.7f, D_80163448); } if (D_80163448 == 0) { - sp3C = sp34 + D_80162FF8; func_8000B140(playerId); - if (*sp3C > 0) { - func_8000BBD8(((s32) ((D_801630E0 + 5) & 0xFFFF) % (s32) D_80164430) & 0xFFFF, *(D_80163090 + sp38), D_8016344A); + if (D_80162FF8[playerId] > 0) { + stackPadding1A = D_801630E0 + 5; +#if FAKEMATCH1 == 1 + if (1) { } if (1) { } if (1) { } if (1) { } if (1) { } if (1) { } +#endif + stackPadding1A %= D_80164430; + func_8000BBD8(stackPadding1A, D_80163090[playerId], D_80163448); } } } - temp_t0_2 = sp38 + D_80163068; if (gCurrentCourseId == 0x0014) { - temp_v0_7 = *(D_80163410 + sp34); - switch (temp_v0_7) { /* switch 3; irregular */ + switch (D_80163410[playerId]) { /* switch 3; irregular */ case 3: /* switch 3 */ - D_80162FA0->unk0 = *(D_80163418 + sp38); - D_80162FA0->unk8 = (f32) *(D_80163438 + sp38); + D_80162FA0[0] = D_80163418[playerId]; + D_80162FA0[2] = D_80163438[playerId]; break; case 4: /* switch 3 */ - temp_v0_8 = (((s32) (*sp24 + 0xA) % (s32) *(gWaypointCountByPathIndex + sp34)) * 8) + *(D_80164550 + sp38); - D_80162FA0->unk0 = (f32) temp_v0_8->unk0; - D_80162FA0->unk8 = (f32) temp_v0_8->unk4; + waypoint = &D_80164550[playerId][(gNearestWaypointByPlayerId[playerId] + 0xA) % gWaypointCountByPathIndex[playerId]]; + D_80162FA0[0] = waypoint->posX; + D_80162FA0[2] = waypoint->posZ; break; } } - temp_v0_9 = sp38 + D_80163178; - temp_v1_7 = sp38 + D_801631A0; - D_80162FA0->unk0 = (D_80162FA0->unk0 + *temp_v0_9) * 0.5f; - D_80162FA0->unk8 = (f32) ((D_80162FA0->unk8 + *temp_v1_7) * 0.5f); - *temp_v0_9 = D_80162FA0->unk0; - sp20 = temp_t0_2; - *temp_v1_7 = D_80162FA0->unk8; - temp_f2_2 = 1.5f * 182.0f; - temp_v1_8 = -get_angle_between_points(sp1C, D_80162FA0) - sp40->unk_02C[1]; - temp_f10 = (s32) temp_f2_2; - var_a2 = temp_v1_8; - temp_f6 = (s32) (-1.5f * 182.0f); - if ((s16) temp_f10 < temp_v1_8) { - var_a2 = (s16) temp_f10; + D_80162FA0[0] = (D_80163178[playerId] + D_80162FA0[0]) * 0.5f; + D_80162FA0[2] = (D_801631A0[playerId] + D_80162FA0[2]) * 0.5f; + D_80163178[playerId] = D_80162FA0[0]; + D_801631A0[playerId] = D_80162FA0[2]; + temp_f2 = athing * 182.0f; + temp_f6 = -athing * 182.0f; + // MISMATCH2 + // This fixes part of the register allocation problems, makes fixing others + // harder though. Needs more investigation + // var_a2 = (-get_angle_between_points(player->pos, D_80162FA0)) - (var_a1 = player->unk_02C[1]); + stackPadding19 = -get_angle_between_points(player->pos, D_80162FA0) - player->unk_02C[1]; + var_a1 = stackPadding19; + var_a2 = var_a1; + if ((s16) temp_f2 < var_a1) { + var_a2 = temp_f2; } if (var_a2 < (s16) temp_f6) { - var_a2 = (s16) temp_f6; + var_a2 = temp_f6; } - temp_v0_10 = *(D_801631D8 + sp34); - var_v1_2 = D_800DCA20[gCurrentCourseId]; - switch (temp_v0_10) { /* switch 4; irregular */ + var_v1 = D_800DCA20[gCurrentCourseId]; + switch (D_801631D8[playerId]) { /* switch 4; irregular */ case 2: /* switch 4 */ - temp_f0_2 = *temp_t0_2; - if (temp_f0_2 > 0.5f) { - var_v1_2 = 0x0014; + if (D_80163068[playerId] > (0.5f * 1.0f)) { + var_v1 = 0x0014; } - if (temp_f0_2 < -0.5f) { - var_v1_2 = 0x0035; + if (D_80163068[playerId] < -0.5f) { + var_v1 = 0x0035; } break; case 3: /* switch 4 */ - temp_f0_3 = *temp_t0_2; - if (temp_f0_3 > 0.5f) { - var_v1_2 = 0x0035; + if (D_80163068[playerId] > 0.5f) { + var_v1 = 0x0035; } - if (temp_f0_3 < -0.5f) { - var_v1_2 = 0x0014; + if (D_80163068[playerId] < -0.5f) { + var_v1 = 0x0014; } break; } - if ((*(D_801632E8 + sp34) == 2) && ((temp_f0_4 = *temp_t0_2, (temp_f0_4 > 0.9f)) || (temp_f0_4 < -0.9f))) { - *sp2C = 0; - sp40->effects &= ~0x10; + if ((D_801632E8[playerId] == 2) && ((D_80163068[playerId] > 0.9f) || (D_80163068[playerId] < -0.9f))) { + D_801630E8[playerId] = 0; + player->effects &= ~0x10; } - temp_v0_11 = sp40->effects; - if (temp_v0_11 & 2) { - temp_v0_12 = (s16) *sp2C; - var_a1_2 = -0x0035; - if (temp_v0_12 != -1) { - var_a1_2 = 0x0035; - if (temp_v0_12 != 1) { - var_v0_2 = sp34 + D_80163050; - var_a1_2 = (s16) (s32) (((f32) *var_v0_2 + ((f32) (var_a2 * var_v1_2) / temp_f2_2)) / 2.0f); - } else { - var_v0_2 = sp34 + D_80163050; - } - } else { - var_v0_2 = sp34 + D_80163050; + if (player->effects & 2) { + switch (D_801630E8[playerId]) { + case 1: + var_a1 = 0x0035; + break; + case -1: + var_a1 = -0x0035; + break; + default: + var_a1 = (D_80163050[playerId] + ((var_a2 * var_v1) / temp_f2)) / 2; + break; } - } else if (temp_v0_11 & 0x1000000C) { - var_a1_2 = 0; - var_v0_2 = sp34 + D_80163050; + } else if (player->effects & 0x1000000C) { + var_a1 = 0; } else { - var_v0_2 = sp34 + D_80163050; - var_a1_2 = (s16) (s32) (((f32) *var_v0_2 + ((f32) (var_a2 * var_v1_2) / temp_f2_2)) / 2.0f); + var_a1 = (D_80163050[playerId] + ((var_a2 * var_v1) / temp_f2)) / 2; } - sp3C = var_v0_2; - sp94 = var_a1_2; - sp20 = temp_t0_2; - func_8003680C(sp40, var_a1_2); - *var_v0_2 = var_a1_2; - if (((bitwise s32) *sp28 == 1) || (temp_v0_13 = (s16) *sp2C, (temp_v0_13 == 1)) || (temp_v0_13 == -1) || (sp40->effects & 0x1000000C)) { - sp20 = temp_t0_2; - var_v1_3 = sp38 + D_80163028; - *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009418); + func_8003680C(player, var_a1); + D_80163050[playerId] = var_a1; + if ((D_801630B8[playerId] == 1) || (D_801630E8[playerId] == 1) || (D_801630E8[playerId] == -1) || (player->effects & 0x1000000C)) { + D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009418[gCurrentCourseId][gCCSelection]); } else { - sp20 = temp_t0_2; - var_v1_3 = sp38 + D_80163028; - *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009568); + D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009568[gCurrentCourseId][gCCSelection]); } - temp_f0_5 = *temp_t0_2; - if ((temp_f0_5 > 0.9f) || (temp_f0_5 < -0.9f)) { - sp34 = var_v1_3; - *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D009808); + if ((D_80163068[playerId] > 0.9f) || (D_80163068[playerId] < -0.9f)) { + D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D009808[gCurrentCourseId][gCCSelection]); } if (D_80162FD0 == 1) { - sp34 = var_v1_3; - *var_v1_3 = *segmented_to_virtual_dupe_2((gCurrentCourseId * 0x10) + (gCCSelection * 4) + D_0D0096B8); + D_80163028[playerId] = *(f32*)segmented_to_virtual_dupe_2(&D_0D0096B8[gCurrentCourseId][gCCSelection]); } - temp_v0_14 = (s16) *sp2C; - if ((temp_v0_14 == 2) || (temp_v0_14 == -2) || (temp_v0_14 == 3)) { - *var_v1_3 = 3.3333333f; + if ((D_801630E8[playerId] == 2) || (D_801630E8[playerId] == -2) || (D_801630E8[playerId] == 3)) { + D_80163028[playerId] = 3.3333333f; } - D_8016320C = *var_v1_3; - sp40->effects &= 0xFFDFFFFF; - *(D_80163210 + sp38) = D_8016320C; + D_8016320C = D_80163028[playerId]; + player->effects &= ~0x00200000; + D_80163210[playerId] = D_8016320C; func_800131DC(playerId); - func_80008424(playerId, D_8016320C, sp40); + func_80008424(playerId, D_8016320C, player); } } } } +#undef FAKEMATCH1 +#undef FAKEMATCH2 #else GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80009B60.s") #endif @@ -2883,57 +2723,38 @@ block_17: GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000CD24.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-12-2023 -extern s32 D_80163598; -extern s32 D_8016359C; +s16 func_8000D100(f32 xPos, f32 yPos, f32 zPos, s16 arg3) { + f32 xdiff; + f32 zdiff; + f32 minimumDistance; + f32 considerSquaredDistance; + s16 realIndex; + s16 minimumIndex; + s16 considerIndex; + PathNoY *considerWaypoint; -s16 func_8000D100(f32 arg0, f32 arg1, f32 arg2, s16 arg3) { - f32 temp_f14; - f32 temp_f16; - f32 temp_f2; - f32 var_f0; - s16 temp_a0; - s16 temp_v0; - s16 var_a0; - s16 var_v0; - s16 var_v1; - s32 temp_a1; - s32 temp_hi; - void *temp_t0; - - temp_a0 = arg3 - 2; - var_f0 = 250000.0f; - temp_a1 = arg3 + 7; - var_v1 = -1; - var_v0 = temp_a0; - if (temp_a0 < temp_a1) { - do { - var_a0 = var_v0; - if (var_v0 < 0) { - var_a0 = var_v0 + D_8016359C; - } - temp_hi = var_a0 % (s32) D_8016359C; - temp_t0 = ((s16) temp_hi * 4) + D_80163598; - temp_v0 = var_v0 + 1; - temp_f2 = (f32) temp_t0->unk0 - arg0; - temp_f14 = (f32) temp_t0->unk2 - arg2; - temp_f16 = (temp_f2 * temp_f2) + (temp_f14 * temp_f14); - if (temp_f16 < var_f0) { - var_f0 = temp_f16; - var_v1 = (s16) temp_hi; - } - var_v0 = temp_v0; - } while (temp_v0 < temp_a1); + minimumDistance = 250000.0f; + minimumIndex = -1; + for (realIndex = arg3 - 2; realIndex < arg3 + 7; realIndex++) { + considerIndex = realIndex; + if (realIndex < 0) { + considerIndex = realIndex + D_8016359C; + } + considerIndex %= D_8016359C; + considerWaypoint = &D_80163598[considerIndex]; + xdiff = considerWaypoint->x - xPos; + zdiff = considerWaypoint->z - zPos; + considerSquaredDistance = (xdiff * xdiff) + (zdiff * zdiff); + if (considerSquaredDistance < minimumDistance) { + minimumDistance = considerSquaredDistance; + minimumIndex = considerIndex; + } } - if (var_v1 == -1) { - var_v1 = arg3; + if (minimumIndex == -1) { + minimumIndex = arg3; } - return var_v1; + return minimumIndex; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D100.s") -#endif s16 func_8000D24C(f32 posX, f32 posY, f32 posZ, s32 *pathIndex) { UNUSED s32 pad; @@ -3052,15 +2873,17 @@ void func_8000D438(s32 arg0, u16 arg1) { D_80162FA0[2] = (sp44 + stackPadding4) * 0.5f; } -#ifdef NON_MATCHING -// Something about the handling of D_80162FA0 is really off, can't figure out what s16 func_8000D6D0(Vec3f arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIndex, s16 arg5) { - UNUSED s32 pad[4]; - s16 waypoint2; + f32 temp1; + f32 temp2; + f32 midX; + s16 stackPadding1; s16 waypoint1; - UNUSED s32 pad2[2]; + s16 waypoint2; f32 pad3; + f32 midY; f32 pad4; + f32 midZ; f32 distance; f32 temp_f20; f32 temp_f22; @@ -3092,11 +2915,15 @@ s16 func_8000D6D0(Vec3f arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIn pad3 = D_80162FA0[0]; pad4 = D_80162FA0[2]; func_8000BBD8(waypoint2, arg3, pathIndex); - ydiff = ((path[waypoint2].posY + path[waypoint1].posY) * 0.5f) - temp_f22; - xdiff = ((pad3 + D_80162FA0[0]) * 0.5f) - temp_f20; - zdiff = ((pad4 + D_80162FA0[2]) * 0.5f) - temp_f24; + temp1 = D_80162FA0[0]; + temp2 = D_80162FA0[2]; + midY = (path[waypoint1].posY + path[waypoint2].posY) * 0.5f; + midX = (pad3 + temp1) * 0.5f; + midZ = (pad4 + temp2) * 0.5f; + xdiff = midX - temp_f20; + ydiff = midY - temp_f22; + zdiff = midZ - temp_f24; distance = sqrtf((xdiff * xdiff) + (ydiff * ydiff) + (zdiff * zdiff)); - if (distance && distance) {} if (distance > 0.01f) { var_f2 = ((xdiff * arg2) / distance) + temp_f20; var_f12 = ((ydiff * arg2) / distance) + temp_f22; @@ -3111,20 +2938,20 @@ s16 func_8000D6D0(Vec3f arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIn arg0[2] = var_f14; return func_80005FD0(sp50, arg0); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D6D0.s") -#endif -#ifdef NON_MATCHING -// Something about ordering of the math regarding x/y/zdiff is off, can't figure out why s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathIndex) { - UNUSED s32 pad[4]; - s16 waypoint2; + f32 pad; + f32 thing1; + f32 thing2; + s16 stackPadding1; s16 waypoint1; + s16 waypoint2; + s16 stackPadding2; f32 pad2; + f32 midX; f32 pad3; - f32 pad4; - s32 pad5; + f32 midY; + f32 midZ; f32 distance; f32 temp_f20; f32 temp_f22; @@ -3133,13 +2960,11 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd f32 var_f12; f32 var_f14; s16 temp_v0; - s32 waypointCount; f32 xdiff; f32 ydiff; f32 zdiff; + s32 waypointCount; Vec3f sp54; - s32 pad6; - TrackWaypoint *path; sp54[0] = arg0[0]; sp54[1] = arg0[1]; @@ -3156,9 +2981,14 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd pad2 = D_80162FA0[0]; pad3 = D_80162FA0[2]; func_8000BBD8(waypoint2, arg3, pathIndex); - ydiff = ((D_80164550[pathIndex][waypoint2].posY + D_80164550[pathIndex][waypoint1].posY) * 0.5f) - temp_f22; - xdiff = ((pad2 + D_80162FA0[0]) * 0.5f) - temp_f20; - zdiff = ((pad3 + D_80162FA0[2]) * 0.5f) - temp_f24; + thing1 = D_80162FA0[0]; + thing2 = D_80162FA0[2]; + midY = (D_80164550[pathIndex][waypoint1].posY + D_80164550[pathIndex][waypoint2].posY) * 0.5f; + midX = (pad2 + thing1) * 0.5f; + midZ = (pad3 + thing2) * 0.5f; + xdiff = midX - temp_f20; + ydiff = midY - temp_f22; + zdiff = midZ - temp_f24; distance = sqrtf((xdiff * xdiff) + (ydiff * ydiff) + (zdiff * zdiff)); if (distance > 0.01f) { var_f2 = ((xdiff * arg2) / distance) + temp_f20; @@ -3174,80 +3004,63 @@ s16 func_8000D940(f32 *arg0, s16 *waypointIndex, f32 arg2, f32 arg3, s16 pathInd arg0[2] = var_f14; return func_80005FD0(sp54, arg0); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000D940.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -s16 func_8000D100(f32, f32, f32, s16); /* extern */ -extern TrackWaypoint *D_80163598; - s16 func_8000DBAC(Vec3f pos, s16 *waypointIndex, f32 speed) { - f32 sp98; - f32 sp94; - //f32 sp40; - //f32 sp3C; - Vec3f sp38; - f32 sp34; - f32 sp30; - f32 temp_f0; - f32 temp_f12; - f32 temp_f14; - f32 temp_f16; - f32 temp_f18; - f32 temp_f2; + f32 origXPos; + f32 origYPos; + f32 origZPos; + s32 stackPadding0; + s32 stackPadding1; + s32 stackPadding2; + s32 stackPadding3; + s32 stackPadding4; + s32 stackPadding5; + s32 stackPadding6; + s32 stackPadding7; + s32 stackPadding8; + f32 midX; + f32 midZ; + f32 x_dist; + f32 y_dist; + f32 distance; f32 var_f12; f32 var_f14; s16 temp_v0; - s32 temp_a1; - s32 temp_v1; - void *temp_a0; - void *temp_a2; - - temp_f12 = pos[0]; - temp_f14 = pos[1]; - temp_f2 = pos[2]; + s16 anIndex; + s16 anIndex2; + PathNoY *temp_a0; + PathNoY *temp_a2; + Vec3f sp38; + origXPos = pos[0]; + origYPos = pos[1]; + origZPos = pos[2]; sp38[0] = pos[0]; sp38[1] = pos[1]; sp38[2] = pos[2]; - - sp98 = temp_f14; - sp94 = temp_f2; - temp_v0 = func_8000D100(temp_f12, temp_f14, temp_f2, *waypointIndex); + temp_v0 = func_8000D100(origXPos, origYPos, origZPos, *waypointIndex); *waypointIndex = temp_v0; - - temp_a0 = ((s16) ((s32) (temp_v0 + 3) % temp_v1)); - temp_a2 = ((s16) ((s32) (temp_v0 + 4) % temp_v1)); - - temp_v1 = D_8016359C[temp_a0]; - temp_a1 = D_80163598[temp_a2]; - - temp_f16 = ((f32) (temp_v1->waypointX + temp_a1->waypointX) * 0.5f) - temp_f12; - temp_f18 = ((f32) (temp_v1->waypointY + temp_a1->waypointY) * 0.5f) - temp_f2; - - sp34 = temp_f16; - sp30 = temp_f18; - - temp_f0 = sqrtf((temp_f16 * temp_f16) + (temp_f18 * temp_f18)); - - if (temp_f0 > 0.01f) { - var_f12 = ((temp_f16 * speed) / temp_f0) + temp_f12; - var_f14 = ((temp_f18 * speed) / temp_f0) + temp_f2; + anIndex = (temp_v0 + 3) % D_8016359C; + anIndex2 = (temp_v0 + 4) % D_8016359C; + temp_a0 = &D_80163598[anIndex]; + temp_a2 = &D_80163598[anIndex2]; + midX = (temp_a0->x + temp_a2->x) * 0.5f; + midZ = (temp_a0->z + temp_a2->z) * 0.5f; + x_dist = midX - origXPos; + y_dist = midZ - origZPos; + distance = sqrtf((x_dist * x_dist) + (y_dist * y_dist)); + if (distance > 0.01f) { + var_f12 = ((x_dist * speed) / distance) + origXPos; + var_f14 = ((y_dist * speed) / distance) + origZPos; } else { - var_f12 = temp_f12; - var_f14 = temp_f2; + var_f12 = origXPos; + var_f14 = origZPos; } pos[0] = var_f12; - pos[1] = sp98; + pos[1] = origYPos; pos[2] = var_f14; - return func_80005FD0(&sp38, pos); + return func_80005FD0(sp38, pos); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8000DBAC.s") -#endif void set_bomb_kart_spawn_positions(void) { Collision *var_s2; @@ -4503,31 +4316,27 @@ void func_80011AE4(s32 index) { } #ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-17-2023 -extern ? D_80162EB8; -extern void *D_801632B0; -extern ? D_801634FC; - +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-27-2023 void func_80011B14(s32 playerId, Player *player) { u16 sp2E; s32 sp1C; Player *temp_v0; + UnkCommonTextureStruct0 *temp_t0; + UnkCommonTextureStruct0 *temp_t6; s16 *temp_a3; s16 temp_t1; s32 temp_t3; u16 temp_a2; - void *temp_t0; - void *temp_t6; temp_a3 = &D_801632B8[playerId]; temp_a2 = (u16) *temp_a3; - temp_t0 = *(&D_80162EB8 + (gCurrentCourseId * 4)); - temp_t6 = (temp_a2 * 8) + temp_t0; + temp_t0 = D_80162EB8[gCurrentCourseId]; + temp_t6 = &temp_t0[temp_a2]; D_801632B0 = temp_t6; sp2E = gNearestWaypointByPlayerId[playerId]; - temp_t1 = temp_t6->unk0; + temp_t1 = temp_t6->waypointId1; temp_t3 = temp_t6->unk4; - if ((temp_t1 == -1) && (temp_t6->unk2 == -1)) { + if ((temp_t1 == -1) && (temp_t6->waypointId2 == -1)) { D_801632B0 = temp_t0; func_80011AB8(playerId); return; @@ -4547,13 +4356,13 @@ void func_80011B14(s32 playerId, Player *player) { D_801630E8[playerId] = 0; return; case 3: - *(&D_801634FC + (playerId * 0x10)) = 0.0f; + *(&D_801634F8->unk4 + (playerId * 0x10)) = 0.0f; return; case 4: - *(&D_801634FC + (playerId * 0x10)) = -0.6f; + *(&D_801634F8->unk4 + (playerId * 0x10)) = -0.6f; return; case 5: - *(&D_801634FC + (playerId * 0x10)) = 0.6f; + *(&D_801634F8->unk4 + (playerId * 0x10)) = 0.6f; return; case 6: D_80163350[playerId] = 0; @@ -4562,7 +4371,7 @@ void func_80011B14(s32 playerId, Player *player) { D_80163350[playerId] = 1; return; case 8: - D_80163350[playerId] = (s16) 2U; + D_80163350[playerId] = 2; return; case 11: D_80163350[playerId] = 3; @@ -4585,29 +4394,17 @@ void func_80011B14(s32 playerId, Player *player) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011B14.s") #endif -// Need to know more about D_801632B0 and D_80162EB8 and D_801632D0 -#ifdef NON_MATCHING -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -//extern ? D_80162EB8; -extern s16 D_801630E8[]; -extern void *D_801632B0; - void func_80011D48(s32 playerIndex, Player *player) { - //s32 temp_a2; - //s32 temp_v0; - //s32 temp_t3; - //void *temp_v1; - u16 test; - s16 temp; + u16 nearestWaypoint; + u32 thing; + s32 temp_a2; - // temp_v0 = playerIndex * 2; - // * 8) ? - //temp_t3 = D_801632D0[playerIndex] + D_80162EB8[gCurrentCourseId]; - D_801632B0 = D_801632D0[playerIndex] + D_80162EB8[gCurrentCourseId]; - test = gNearestWaypointByPlayerId[playerIndex]; - // temp_a2 = temp_t3; - if (test >= (*(u16*)D_801632B0)) { - switch (*(u16*)D_801632B0) { + D_801632B0 = &D_80162EB8[gCurrentCourseId][D_801632D0[playerIndex]]; + nearestWaypoint = gNearestWaypointByPlayerId[playerIndex]; + temp_a2 = D_801632B0->unk4; + thing = D_801632B0->waypointId2; + if (nearestWaypoint >= thing) { + switch (temp_a2) { case 1: player->effects &= ~0x10; D_801630E8[playerIndex] = 0; @@ -4616,7 +4413,6 @@ void func_80011D48(s32 playerIndex, Player *player) { case 3: case 4: case 5: - //temp_v1 = D_801634F8[playerIndex]; D_801634F8[playerIndex].unk4 = D_801634F8[playerIndex].unkC; D_801632E8[playerIndex] = 1; break; @@ -4628,14 +4424,12 @@ void func_80011D48(s32 playerIndex, Player *player) { case 10: case 11: D_801632E8[playerIndex] = 1; - /* Duplicate return node #6. Try simplifying control flow for better match */ + break; + default: break; } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011D48.s") -#endif void func_80011E38(s32 playerIndex) { Player *player = gPlayerOne + playerIndex; @@ -5585,10 +5379,6 @@ f32 func_800145A8(s16 arg0, f32 arg1, s16 arg2) { return arg1; } -#ifdef NON_MATCHING -extern f32 D_801634FC[][4]; -// Something about the handling of `vehicle` is the source of -// mismatch. Not sure how to fix it. void func_800146B8(s32 playerId, s32 arg1, VehicleStuff *vehicle) { s32 var_v1; s32 var_v0; @@ -5599,20 +5389,17 @@ void func_800146B8(s32 playerId, s32 arg1, VehicleStuff *vehicle) { waypointCount = gWaypointCountByPathIndex[0]; if (!(gPlayers[playerId].unk_094 < 1.6666666666666667)) { - for (var_s2 = 0; var_s2 < arg1; var_s2++) { - temp_a1 = vehicle[var_s2].waypointIndex; - for (var_v0 = 0, var_v1 = D_80162FCE; var_v0 < 0x18; var_v0 += 3, var_v1 += 3) { - if ((var_v1 % waypointCount) == temp_a1) { - D_801634FC[playerId][0] = func_800145A8(vehicle[var_s2].someType, D_80163068[playerId], temp_a1); + for (var_s2 = 0; var_s2 < arg1; var_s2++, vehicle++) { + temp_a1 = vehicle->waypointIndex; + for (var_v0 = 0; var_v0 < 0x18; var_v0 += 3) { + if (((D_80162FCE + var_v0) % waypointCount) == temp_a1) { + D_801634F8[playerId].unk4 = func_800145A8(vehicle->someType, D_80163068[playerId], temp_a1); return; } } } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800146B8.s") -#endif void func_800147E0(void) { f32 a = ((gCCSelection * 90.0) / 216.0f) + 4.583333333333333; @@ -5729,21 +5516,9 @@ void func_80014D30(s32 cameraId, s32 pathIndex) { func_802ADDC8(&cameras[cameraId].unk_54, 10.0f, (f32) temp_v0->posX, (f32) temp_v0->posY + 30.0f, (f32) temp_v0->posZ); } -#ifdef NEEDS_BSS -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-10-2023 -//extern s32 D_80163238; -//extern ? D_80164680; -//extern ? D_801646C0; -extern s32 D_801646C8; - - - -extern UnkStruct_46D0 D_801646D0[]; // size of 8 - void func_80014DE4(s32 arg0) { - UnkStruct_46D0 *temp_v1; - // s32 temp_v0; - //temp_v0 = arg0 * 2; + s32 cameraId; + D_801646CC = 0; D_80164678[arg0] = D_80164670[arg0]; if ((gModeSelection != 1) && ((gCupCourseSelection == 0) || (gDemoMode == (u16) 1))) { @@ -5755,21 +5530,17 @@ void func_80014DE4(s32 arg0) { D_80163238 = 0; D_801646C0[arg0] = 0; D_801646C8 = 0; - temp_v1 = &D_801646D0[arg0]; - temp_v1->unk0 = 0; - temp_v1->unk2 = 0; - temp_v1->unk4 = 0; + D_801646D0[arg0].unk0 = 0; + D_801646D0[arg0].unk2 = 0; + D_801646D0[arg0].unk4 = 0; if ((gModeSelection == 1) && (D_8018EDFC == 0)) { D_80164678[arg0] = 0; } - for (i = 0 ; i < i++) { - gNearestWaypointByCameraId[i] = 0; + for (cameraId = 0 ; cameraId < 4; cameraId++) { + gNearestWaypointByCameraId[cameraId] = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014DE4.s") -#endif f32 func_80014EE4(f32 arg0, s32 arg1) { f32 temp_f0; @@ -7551,21 +7322,15 @@ void func_80019DE4(void) { D_801646CC = 1; } -#ifdef NON_MATCHING -// It really seems like this should be it, -// its unclear what about that for-loop is wrong void func_80019DF4(void) { s32 i; - for (i = 0; i < 4; i++) { - D_80164670[i] = D_80164678[i]; - } - camera1->playerId = gGPCurrentRacePlayerIdByRank[0]; + s32 playerId = gGPCurrentRacePlayerIdByRank[0]; + // Has to be on a single line to match. Because IDO hates you :) + for (i = 0; i < 4; i++) { D_80164670[i] = D_80164678[i]; } + camera1->playerId = playerId; D_80164678[0] = 1; D_801646CC = 2; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019DF4.s") -#endif void func_80019E58(void) { D_80164680[0] = 1; diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 7171ff741..1cd2bb368 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -4,6 +4,7 @@ #include "vehicles.h" #include "camera.h" #include "waypoints.h" +#include "common_textures.h" struct struct_801642D8 { /* 0x0 */ u16 unk0; @@ -63,13 +64,17 @@ s16 func_80005FD0(Vec3f, Vec3f); s32 func_80006018(f32, f32, f32, f32, f32, f32, f32, f32); void func_80006114(Vec3f, Vec3f, s16); s32 func_800061DC(Vec3f, f32, s32); +void func_800065D0(s32, Player*); void set_places(void); void func_800070F4(void); void func_800074D4(void); s32 func_80007BF8(u16, u16, u16, u16, u16); +void func_80007D04(s32, Player*); void func_80007FA4(s32, Player*, f32); +void func_80008424(s32, f32, Player*); +s32 func_800088D8(s32, s16, s16); void func_80008DC0(s32); s32 func_80008E58(s32, s32); void func_80008F38(s32); @@ -77,8 +82,9 @@ void func_80008F38(s32); void func_80009000(s32); void func_800090F0(s32, Player*); f32 func_80009258(s32, f32, f32); +void func_8000929C(s32, Player*); void func_800097E0(void); -void func_800099EC(s32, s32); +void func_800099EC(s32, Player*); void func_80009B60(s32); void func_8000B140(s32); @@ -98,6 +104,7 @@ void func_8000CBF8(f32, f32, f32, s16*, s32); s16 func_8000CC88(f32, f32, f32, Player*, s32, s32*); s16 func_8000CD24(f32, f32, f32, s16, Player*, s32, s32); +s16 func_8000D100(f32, f32, f32, s16); s16 func_8000D24C(f32, f32, f32, s32*); s16 func_8000D2B4(f32, f32, f32, s16, s32); s16 func_8000D33C(f32, f32, f32, s16, s32); @@ -139,6 +146,8 @@ s32 func_8001168C(PathNoY*, TrackWaypoint*, s32); void func_80011A5C(void); void func_80011AB8(s32); void func_80011AE4(s32); +void func_80011B14(s32, Player*); +void func_80011D48(s32, Player*); void func_80011E38(s32); void func_80011EC0(s32, Player*, s32, s32); @@ -242,6 +251,7 @@ void func_8001C42C(void); // Suspected to be the "width" of each waypoint. See data_0DD0A0_1.s extern f32 D_800DCA4C[]; +extern s16 D_800DCA20[]; struct _struct_D_800DD9D0_0x10 { /* 0x00 */ u16 unk0; @@ -261,14 +271,13 @@ extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[]; extern Collision D_80162E70; extern s16 D_80162EB0; // Possibly a float. extern s16 D_80162EB2; // possibly [3] -extern uintptr_t *D_80162EB8[]; +extern UnkCommonTextureStruct0 *D_80162EB8[]; extern s16 D_80162F10[]; extern s16 D_80162F50[]; extern Vec3f D_80162FA0; extern Vec3f D_80162FB0; extern Vec3f D_80162FC0; extern s16 D_80162FCC; -extern s16 D_80162FCE; extern s16 D_80162FD0; extern f32 gCourseCompletionPercentByRank[]; // D_80162FD8 extern s16 D_80162FF8[]; @@ -278,7 +287,7 @@ extern s16 D_80163050[]; extern f32 D_80163068[]; extern f32 D_80163090[]; extern s32 D_801630B8[]; -extern s16 D_801630E0; +extern u16 D_801630E0; extern s16 D_801630E2; extern s16 D_801630E8[]; extern s16 D_801630FC; @@ -292,20 +301,19 @@ extern s32 D_801631CC; extern TrackWaypoint *D_801631D0; extern TrackWaypoint *D_801631D4; extern s16 *D_801631D8; -extern u16 *D_801631DC; extern u16 D_801631E0[]; -extern s16 D_801631F8[]; +extern u16 D_801631F8[]; extern f32 D_8016320C; extern f32 D_80163210[]; extern s32 D_80163238; -extern s16 D_80163240[]; +extern u16 D_80163240[]; extern u16 D_80163258[]; extern u16 D_80163270[]; extern s32 D_80163288[]; // Exact pointer type unknown -extern void *D_801632B0; -extern s16 D_801632B8[]; -extern s16 D_801632D0[]; +extern UnkCommonTextureStruct0 *D_801632B0; +extern u16 D_801632B8[]; +extern u16 D_801632D0[]; extern u16 D_801632E8[]; extern s16 D_80163300[]; extern u16 D_80163318[]; @@ -313,7 +321,7 @@ extern u16 D_80163330[]; extern u16 D_80163344[]; extern u16 D_80163348[]; extern u16 D_8016334C[]; -extern s16 D_80163350[]; +extern u16 D_80163350[]; extern s32 D_80163368[]; extern s32 D_80163378; extern s32 D_8016337C; @@ -392,7 +400,7 @@ extern f32 D_8016469C; extern f32 D_801646A0; extern s16 D_801646C0[]; extern u32 D_801646C8; -extern s16 D_801646CC; +extern u16 D_801646CC; extern UnkStruct_46D0 D_801646D0[]; extern f32 D_800DCAA0[]; diff --git a/src/common_textures.h b/src/common_textures.h index 584effd9c..5115d47a3 100644 --- a/src/common_textures.h +++ b/src/common_textures.h @@ -5,10 +5,10 @@ #include typedef struct { - s16 waypointId1; - s16 waypointId2; - s32 unk4; -} UnkCommonTextureStruct0; + /* 0x0 */ s16 waypointId1; + /* 0x2 */ s16 waypointId2; + /* 0x4 */ s32 unk4; +} UnkCommonTextureStruct0; // size = 0x8 extern s8 gTLUTFinishLineBanner[]; extern s8 D_0D000200[]; @@ -248,9 +248,9 @@ extern UnkCommonTextureStruct0 D_0D0092C8[]; extern UnkCommonTextureStruct0 D_0D009310[]; extern UnkCommonTextureStruct0 D_0D0093C0[]; extern f32 D_0D009418[][4]; -extern f32 D_0D009568[]; -extern f32 D_0D0096B8[]; -extern f32 D_0D009808[]; +extern f32 D_0D009568[][4]; +extern f32 D_0D0096B8[][4]; +extern f32 D_0D009808[][4]; extern s32 unkPad; extern s8 D_0D009958[]; extern s8 D_0D00A558[]; diff --git a/src/data/common_textures.inc.c b/src/data/common_textures.inc.c index d74b6fe8d..cc8df5c5d 100644 --- a/src/data/common_textures.inc.c +++ b/src/data/common_textures.inc.c @@ -2490,84 +2490,81 @@ f32 D_0D009418[][4] = { { 4.1666665f, 5.5833334f, 6.1666665f, 6.75f}, { 4.1666665f, 5.5833334f, 6.1666665f, 6.75f}, { 4.1666665f, 5.5833334f, 6.1666665f, 6.75f}, - { 0.0f, 0.0f, 0.0f, 0.0f}, + { 0.0f, 0.0f, 0.0f, 0.0f}, }; -f32 D_0D009568[] = { - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 4.5833334f, 4.5833334f, 4.5833334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 4.1666665f, 5.5833334f, 6.1666665, 6.75f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 0.0f, 0.0f, 0.0f, 0.0f, +f32 D_0D009568[][4] = { + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 4.5833334f, 4.5833334f, 4.5833334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + {4.1666665f, 5.5833334f, 6.1666665f, 6.75f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 0.0f, 0.0f, 0.0f, 0.0f}, }; -f32 D_0D0096B8[] = { - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.3333332f, 3.3333332f, 3.3333332f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 3.3333332f, 3.9166667f, 4.5f, 5.0833334f, - 0.0f, 0.0f, 0.0f, 0.0f, +f32 D_0D0096B8[][4] = { + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.3333332f, 3.3333332f, 3.3333332f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {3.3333332f, 3.9166667f, 4.5f, 5.0833334f}, + {0.0f, 0.0f, 0.0f, 0.0f}, }; -f32 D_0D009808[] = { - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 2.9166667f, 3.75f, 3.75f, 3.75f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 3.75f, 5.1666665f, 5.75f, 6.3333334f, - 0.0f, 0.0f, 0.0f +f32 D_0D009808[][4] = { + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + {2.9166667f, 3.75f, 3.75f, 3.75f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 3.75f, 5.1666665f, 5.75f, 6.3333334f}, + { 0.0f, 0.0f, 0.0f, 0.0f}, }; -// todo: file split? -s32 unkPad = 0; - // Odometer speedometer s8 D_0D009958[] = { #include "textures/common/132B50_09958.i4.inc.c" diff --git a/tools/doxygen_syms.md b/tools/doxygen_syms.md index 1270ddb66..0b5469cd2 100644 --- a/tools/doxygen_syms.md +++ b/tools/doxygen_syms.md @@ -3789,8 +3789,6 @@ Variable Name | Memory Address [osViModePalLan1](@ref osViModePalLan1) | 0x800EB4B0 [osViModeMpalLan1](@ref osViModeMpalLan1) | 0x800EB500 [osViModeNtscLan1](@ref osViModeNtscLan1) | 0x800EB550 -[D_800ECF9C](@ref D_800ECF9C) | 0x800ECF9C -[D_800ECFA0](@ref D_800ECFA0) | 0x800ECFA0 [D_800ECFA8](@ref D_800ECFA8) | 0x800ECFA8 [D_800ECFAC](@ref D_800ECFAC) | 0x800ECFAC [D_800ECFB0](@ref D_800ECFB0) | 0x800ECFB0 @@ -3803,10 +3801,6 @@ Variable Name | Memory Address [D_800ECFCC](@ref D_800ECFCC) | 0x800ECFCC [D_800ECFD0](@ref D_800ECFD0) | 0x800ECFD0 [D_800ECFD4](@ref D_800ECFD4) | 0x800ECFD4 -[D_800ECFF8](@ref D_800ECFF8) | 0x800ECFF8 -[D_800ECFFC](@ref D_800ECFFC) | 0x800ECFFC -[D_800ED000](@ref D_800ED000) | 0x800ED000 -[D_800ED004](@ref D_800ED004) | 0x800ED004 [D_800ED01C](@ref D_800ED01C) | 0x800ED01C [D_800ED020](@ref D_800ED020) | 0x800ED020 [D_800ED024](@ref D_800ED024) | 0x800ED024 @@ -3817,7 +3811,6 @@ Variable Name | Memory Address [D_800ED03C](@ref D_800ED03C) | 0x800ED03C [D_800ED0AC](@ref D_800ED0AC) | 0x800ED0AC [D_800ED0B0](@ref D_800ED0B0) | 0x800ED0B0 -[D_800ED1B0](@ref D_800ED1B0) | 0x800ED1B0 [D_800ED230](@ref D_800ED230) | 0x800ED230 [D_800ED238](@ref D_800ED238) | 0x800ED238 [D_800ED240](@ref D_800ED240) | 0x800ED240 @@ -4188,13 +4181,12 @@ Variable Name | Memory Address [D_80162E70](@ref D_80162E70) | 0x80162E70 [D_80162EB0](@ref D_80162EB0) | 0x80162EB0 [D_80162EB2](@ref D_80162EB2) | 0x80162EB2 -[code_80005FD0_pad](@ref code_80005FD0_pad) | 0x80162EB4 [D_80162EB8](@ref D_80162EB8) | 0x80162EB8 +[D_80162F08](@ref D_80162F08) | 0x80162F08 [D_80162F10](@ref D_80162F10) | 0x80162F10 [D_80162F50](@ref D_80162F50) | 0x80162F50 -[D_80162F8C](@ref D_80162F8C) | 0x80162F8C +[D_80162F90](@ref D_80162F90) | 0x80162F90 [D_80162FA0](@ref D_80162FA0) | 0x80162FA0 -[D_80162FA8](@ref D_80162FA8) | 0x80162FA8 [D_80162FB0](@ref D_80162FB0) | 0x80162FB0 [D_80162FC0](@ref D_80162FC0) | 0x80162FC0 [D_80162FCC](@ref D_80162FCC) | 0x80162FCC @@ -4239,9 +4231,7 @@ Variable Name | Memory Address [D_80163300](@ref D_80163300) | 0x80163300 [D_80163318](@ref D_80163318) | 0x80163318 [D_80163330](@ref D_80163330) | 0x80163330 -[D_80163340](@ref D_80163340) | 0x80163340 [D_80163344](@ref D_80163344) | 0x80163344 -[D_80163346](@ref D_80163346) | 0x80163346 [D_80163348](@ref D_80163348) | 0x80163348 [D_8016334C](@ref D_8016334C) | 0x8016334C [D_80163350](@ref D_80163350) | 0x80163350 @@ -4259,7 +4249,6 @@ Variable Name | Memory Address [D_80163428](@ref D_80163428) | 0x80163428 [D_80163438](@ref D_80163438) | 0x80163438 [D_80163448](@ref D_80163448) | 0x80163448 -[D_8016344A](@ref D_8016344A) | 0x8016344A [D_8016344C](@ref D_8016344C) | 0x8016344C [D_80163450](@ref D_80163450) | 0x80163450 [D_80163478](@ref D_80163478) | 0x80163478 @@ -4278,64 +4267,32 @@ Variable Name | Memory Address [D_801634F0](@ref D_801634F0) | 0x801634F0 [D_801634F4](@ref D_801634F4) | 0x801634F4 [D_801634F8](@ref D_801634F8) | 0x801634F8 -[D_801634FC](@ref D_801634FC) | 0x801634FC -[D_80163504](@ref D_80163504) | 0x80163504 [D_80163598](@ref D_80163598) | 0x80163598 [D_8016359C](@ref D_8016359C) | 0x8016359C [sTrains](@ref sTrains) | 0x801635A0 [isCrossingTriggeredByIndex](@ref isCrossingTriggeredByIndex) | 0x801637B8 [D_801637BC](@ref D_801637BC) | 0x801637BC -[D_801637BE](@ref D_801637BE) | 0x801637BE [gFerries](@ref gFerries) | 0x801637C0 -[D_801637C4](@ref D_801637C4) | 0x801637C4 -[D_801637C8](@ref D_801637C8) | 0x801637C8 -[D_801637E8](@ref D_801637E8) | 0x801637E8 -[D_801637EC](@ref D_801637EC) | 0x801637EC -[D_801637F0](@ref D_801637F0) | 0x801637F0 -[D_80163814](@ref D_80163814) | 0x80163814 [gBoxTruckList](@ref gBoxTruckList) | 0x80163818 -[D_80163984](@ref D_80163984) | 0x80163984 [gSchoolBusList](@ref gSchoolBusList) | 0x80163988 -[D_80163AF4](@ref D_80163AF4) | 0x80163AF4 [gTankerTruckList](@ref gTankerTruckList) | 0x80163AF8 -[D_80163C64](@ref D_80163C64) | 0x80163C64 [gCarList](@ref gCarList) | 0x80163C68 -[D_80163DD4](@ref D_80163DD4) | 0x80163DD4 [D_80163DD8](@ref D_80163DD8) | 0x80163DD8 -[D_80163DE4](@ref D_80163DE4) | 0x80163DE4 [gBombKarts](@ref gBombKarts) | 0x80163DE8 -[D_80164034](@ref D_80164034) | 0x80164034 [D_80164038](@ref D_80164038) | 0x80164038 -[D_801640F4](@ref D_801640F4) | 0x801640F4 [gUnexpiredActorsList](@ref gUnexpiredActorsList) | 0x801641F8 [D_801642D8](@ref D_801642D8) | 0x801642D8 -[D_801642DE](@ref D_801642DE) | 0x801642DE [D_80164358](@ref D_80164358) | 0x80164358 [D_8016435A](@ref D_8016435A) | 0x8016435A [D_8016435C](@ref D_8016435C) | 0x8016435C [gGPCurrentRacePlayerIdByRank](@ref gGPCurrentRacePlayerIdByRank) | 0x80164360 -[D_80164368](@ref D_80164368) | 0x80164368 -[D_80164370](@ref D_80164370) | 0x80164370 -[D_80164376](@ref D_80164376) | 0x80164376 [D_80164378](@ref D_80164378) | 0x80164378 -[D_80164386](@ref D_80164386) | 0x80164386 [gLapCountByPlayerId](@ref gLapCountByPlayerId) | 0x80164390 -[D_80164392](@ref D_80164392) | 0x80164392 -[D_80164394](@ref D_80164394) | 0x80164394 -[D_80164398](@ref D_80164398) | 0x80164398 -[D_8016439C](@ref D_8016439C) | 0x8016439C -[D_801643B0](@ref D_801643B0) | 0x801643B0 [gGPCurrentRaceRankByPlayerId](@ref gGPCurrentRaceRankByPlayerId) | 0x801643B8 -[D_801643BA](@ref D_801643BA) | 0x801643BA -[D_801643D8](@ref D_801643D8) | 0x801643D8 [D_801643E0](@ref D_801643E0) | 0x801643E0 [D_80164408](@ref D_80164408) | 0x80164408 -[D_8016440A](@ref D_8016440A) | 0x8016440A -[D_8016440C](@ref D_8016440C) | 0x8016440C [D_80164430](@ref D_80164430) | 0x80164430 [gNearestWaypointByPlayerId](@ref gNearestWaypointByPlayerId) | 0x80164438 -[D_8016443E](@ref D_8016443E) | 0x8016443E -[D_80164448](@ref D_80164448) | 0x80164448 [D_80164450](@ref D_80164450) | 0x80164450 [D_80164478](@ref D_80164478) | 0x80164478 [D_8016448C](@ref D_8016448C) | 0x8016448C @@ -4345,10 +4302,8 @@ Variable Name | Memory Address [gCourseCompletionPercentByPlayerId](@ref gCourseCompletionPercentByPlayerId) | 0x801644D0 [D_801644F8](@ref D_801644F8) | 0x801644F8 [D_80164510](@ref D_80164510) | 0x80164510 -[D_8016452C](@ref D_8016452C) | 0x8016452C [D_80164538](@ref D_80164538) | 0x80164538 [D_80164550](@ref D_80164550) | 0x80164550 -[D_8016455C](@ref D_8016455C) | 0x8016455C [D_80164560](@ref D_80164560) | 0x80164560 [D_80164570](@ref D_80164570) | 0x80164570 [D_80164580](@ref D_80164580) | 0x80164580 @@ -4356,7 +4311,6 @@ Variable Name | Memory Address [D_801645A0](@ref D_801645A0) | 0x801645A0 [gPathIndexByPlayerId](@ref gPathIndexByPlayerId) | 0x801645B0 [gWaypointCountByPathIndex](@ref gWaypointCountByPathIndex) | 0x801645C8 -[D_801645CE](@ref D_801645CE) | 0x801645CE [D_801645D0](@ref D_801645D0) | 0x801645D0 [D_801645E0](@ref D_801645E0) | 0x801645E0 [D_801645E8](@ref D_801645E8) | 0x801645E8 @@ -4369,19 +4323,19 @@ Variable Name | Memory Address [D_80164658](@ref D_80164658) | 0x80164658 [gNearestWaypointByCameraId](@ref gNearestWaypointByCameraId) | 0x80164668 [D_80164670](@ref D_80164670) | 0x80164670 -[D_80164672](@ref D_80164672) | 0x80164672 -[D_80164674](@ref D_80164674) | 0x80164674 -[D_80164676](@ref D_80164676) | 0x80164676 [D_80164678](@ref D_80164678) | 0x80164678 -[D_8016467A](@ref D_8016467A) | 0x8016467A -[D_8016467C](@ref D_8016467C) | 0x8016467C -[D_8016467E](@ref D_8016467E) | 0x8016467E [D_80164680](@ref D_80164680) | 0x80164680 -[D_80164682](@ref D_80164682) | 0x80164682 [D_80164688](@ref D_80164688) | 0x80164688 [D_80164698](@ref D_80164698) | 0x80164698 [D_8016469C](@ref D_8016469C) | 0x8016469C [D_801646A0](@ref D_801646A0) | 0x801646A0 +[D_801646A4](@ref D_801646A4) | 0x801646A4 +[D_801646A8](@ref D_801646A8) | 0x801646A8 +[D_801646AC](@ref D_801646AC) | 0x801646AC +[D_801646B0](@ref D_801646B0) | 0x801646B0 +[D_801646B4](@ref D_801646B4) | 0x801646B4 +[D_801646B8](@ref D_801646B8) | 0x801646B8 +[D_801646BC](@ref D_801646BC) | 0x801646BC [D_801646C0](@ref D_801646C0) | 0x801646C0 [D_801646C8](@ref D_801646C8) | 0x801646C8 [D_801646CC](@ref D_801646CC) | 0x801646CC