From 8d9ad9e09882110b1006f1c7d7eb5abfa2e14f98 Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Thu, 14 Apr 2022 23:05:09 -0400 Subject: [PATCH] Match func_80030FC8 (#170) * Match func_80030FC8 Signed-off-by: Taggerung --- .../code_80027D00/func_80030FC8.s | 1059 ----------------- src/code_80027D00.c | 385 ++---- src/code_80027D00.h | 39 + src/code_8008C1D0.h | 1 + 4 files changed, 115 insertions(+), 1369 deletions(-) delete mode 100644 asm/non_matchings/code_80027D00/func_80030FC8.s diff --git a/asm/non_matchings/code_80027D00/func_80030FC8.s b/asm/non_matchings/code_80027D00/func_80030FC8.s deleted file mode 100644 index e304e970c..000000000 --- a/asm/non_matchings/code_80027D00/func_80030FC8.s +++ /dev/null @@ -1,1059 +0,0 @@ -glabel func_80030FC8 -/* 031BC8 80030FC8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 031BCC 80030FCC AFBF0014 */ sw $ra, 0x14($sp) -/* 031BD0 80030FD0 0C009F40 */ jal get_player_index_for_player -/* 031BD4 80030FD4 AFA40018 */ sw $a0, 0x18($sp) -/* 031BD8 80030FD8 00027080 */ sll $t6, $v0, 2 -/* 031BDC 80030FDC 3C0F8016 */ lui $t7, %hi(D_80165460) # 0x8016 -/* 031BE0 80030FE0 01EE7821 */ addu $t7, $t7, $t6 -/* 031BE4 80030FE4 8DEF5460 */ lw $t7, %lo(D_80165460)($t7) # 0x5460($t7) -/* 031BE8 80030FE8 8FA40018 */ lw $a0, 0x18($sp) -/* 031BEC 80030FEC 00403825 */ move $a3, $v0 -/* 031BF0 80030FF0 55E001BB */ bnel $t7, $zero, .L800316E0 -/* 031BF4 80030FF4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031BF8 80030FF8 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031BFC 80030FFC 44802800 */ mtc1 $zero, $f5 -/* 031C00 80031000 44802000 */ mtc1 $zero, $f4 -/* 031C04 80031004 46006021 */ cvt.d.s $f0, $f12 -/* 031C08 80031008 4620203E */ c.le.d $f4, $f0 -/* 031C0C 8003100C 00000000 */ nop -/* 031C10 80031010 4500002A */ bc1f .L800310BC -/* 031C14 80031014 00000000 */ nop -/* 031C18 80031018 C4860214 */ lwc1 $f6, 0x214($a0) -/* 031C1C 8003101C 3C01800F */ lui $at, %hi(D_800ED9D8) -/* 031C20 80031020 D42AD9D8 */ ldc1 $f10, %lo(D_800ED9D8)($at) -/* 031C24 80031024 46003221 */ cvt.d.s $f8, $f6 -/* 031C28 80031028 3C03800E */ lui $v1, %hi(gKartAccelerationTables) # $v1, 0x800e -/* 031C2C 8003102C 462A4402 */ mul.d $f16, $f8, $f10 -/* 031C30 80031030 24633010 */ addiu $v1, %lo(gKartAccelerationTables) # addiu $v1, $v1, 0x3010 -/* 031C34 80031034 4630003C */ c.lt.d $f0, $f16 -/* 031C38 80031038 00000000 */ nop -/* 031C3C 8003103C 4500001F */ bc1f .L800310BC -/* 031C40 80031040 00000000 */ nop -/* 031C44 80031044 848A00C4 */ lh $t2, 0xc4($a0) -/* 031C48 80031048 240500B6 */ li $a1, 182 -/* 031C4C 8003104C 94980254 */ lhu $t8, 0x254($a0) -/* 031C50 80031050 0145001A */ div $zero, $t2, $a1 -/* 031C54 80031054 00005812 */ mflo $t3 -/* 031C58 80031058 448B3000 */ mtc1 $t3, $f6 -/* 031C5C 8003105C 3C01800F */ lui $at, %hi(D_800ED9E0) -/* 031C60 80031060 D42ED9E0 */ ldc1 $f14, %lo(D_800ED9E0)($at) -/* 031C64 80031064 46803221 */ cvt.d.w $f8, $f6 -/* 031C68 80031068 0018C880 */ sll $t9, $t8, 2 -/* 031C6C 8003106C 00794021 */ addu $t0, $v1, $t9 -/* 031C70 80031070 8D090000 */ lw $t1, ($t0) -/* 031C74 80031074 46287282 */ mul.d $f10, $f14, $f8 -/* 031C78 80031078 C5320000 */ lwc1 $f18, ($t1) -/* 031C7C 8003107C 46009121 */ cvt.d.s $f4, $f18 -/* 031C80 80031080 14A00002 */ bnez $a1, .L8003108C -/* 031C84 80031084 00000000 */ nop -/* 031C88 80031088 0007000D */ break 7 -.L8003108C: -/* 031C8C 8003108C 2401FFFF */ li $at, -1 -/* 031C90 80031090 14A10004 */ bne $a1, $at, .L800310A4 -/* 031C94 80031094 3C018000 */ lui $at, 0x8000 -/* 031C98 80031098 15410002 */ bne $t2, $at, .L800310A4 -/* 031C9C 8003109C 00000000 */ nop -/* 031CA0 800310A0 0006000D */ break 6 -.L800310A4: -/* 031CA4 800310A4 462A2400 */ add.d $f16, $f4, $f10 -/* 031CA8 800310A8 46300480 */ add.d $f18, $f0, $f16 -/* 031CAC 800310AC 462091A0 */ cvt.s.d $f6, $f18 -/* 031CB0 800310B0 E486009C */ swc1 $f6, 0x9c($a0) -/* 031CB4 800310B4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031CB8 800310B8 46006021 */ cvt.d.s $f0, $f12 -.L800310BC: -/* 031CBC 800310BC 3C01800F */ lui $at, %hi(D_800ED9E8) -/* 031CC0 800310C0 C4880214 */ lwc1 $f8, 0x214($a0) -/* 031CC4 800310C4 D42ED9E8 */ ldc1 $f14, %lo(D_800ED9E8)($at) -/* 031CC8 800310C8 3C01800F */ lui $at, %hi(D_800ED9F0) -/* 031CCC 800310CC D424D9F0 */ ldc1 $f4, %lo(D_800ED9F0)($at) -/* 031CD0 800310D0 460040A1 */ cvt.d.s $f2, $f8 -/* 031CD4 800310D4 3C03800E */ lui $v1, %hi(gKartAccelerationTables) # $v1, 0x800e -/* 031CD8 800310D8 46241282 */ mul.d $f10, $f2, $f4 -/* 031CDC 800310DC 24633010 */ addiu $v1, %lo(gKartAccelerationTables) # addiu $v1, $v1, 0x3010 -/* 031CE0 800310E0 240500B6 */ li $a1, 182 -/* 031CE4 800310E4 3C01800F */ lui $at, %hi(D_800ED9F8) -/* 031CE8 800310E8 4620503E */ c.le.d $f10, $f0 -/* 031CEC 800310EC 00000000 */ nop -/* 031CF0 800310F0 45000024 */ bc1f .L80031184 -/* 031CF4 800310F4 00000000 */ nop -/* 031CF8 800310F8 D430D9F8 */ ldc1 $f16, %lo(D_800ED9F8)($at) -/* 031CFC 800310FC 46301482 */ mul.d $f18, $f2, $f16 -/* 031D00 80031100 4632003C */ c.lt.d $f0, $f18 -/* 031D04 80031104 00000000 */ nop -/* 031D08 80031108 4500001E */ bc1f .L80031184 -/* 031D0C 8003110C 00000000 */ nop -/* 031D10 80031110 849800C4 */ lh $t8, 0xc4($a0) -/* 031D14 80031114 948C0254 */ lhu $t4, 0x254($a0) -/* 031D18 80031118 0305001A */ div $zero, $t8, $a1 -/* 031D1C 8003111C 0000C812 */ mflo $t9 -/* 031D20 80031120 44992000 */ mtc1 $t9, $f4 -/* 031D24 80031124 000C6880 */ sll $t5, $t4, 2 -/* 031D28 80031128 006D7021 */ addu $t6, $v1, $t5 -/* 031D2C 8003112C 468022A1 */ cvt.d.w $f10, $f4 -/* 031D30 80031130 8DCF0000 */ lw $t7, ($t6) -/* 031D34 80031134 C5E60004 */ lwc1 $f6, 4($t7) -/* 031D38 80031138 462A7402 */ mul.d $f16, $f14, $f10 -/* 031D3C 8003113C C48A0214 */ lwc1 $f10, 0x214($a0) -/* 031D40 80031140 46003221 */ cvt.d.s $f8, $f6 -/* 031D44 80031144 14A00002 */ bnez $a1, .L80031150 -/* 031D48 80031148 00000000 */ nop -/* 031D4C 8003114C 0007000D */ break 7 -.L80031150: -/* 031D50 80031150 2401FFFF */ li $at, -1 -/* 031D54 80031154 14A10004 */ bne $a1, $at, .L80031168 -/* 031D58 80031158 3C018000 */ lui $at, 0x8000 -/* 031D5C 8003115C 17010002 */ bne $t8, $at, .L80031168 -/* 031D60 80031160 00000000 */ nop -/* 031D64 80031164 0006000D */ break 6 -.L80031168: -/* 031D68 80031168 46304480 */ add.d $f18, $f8, $f16 -/* 031D6C 8003116C 460050A1 */ cvt.d.s $f2, $f10 -/* 031D70 80031170 46320180 */ add.d $f6, $f0, $f18 -/* 031D74 80031174 46203120 */ cvt.s.d $f4, $f6 -/* 031D78 80031178 E484009C */ swc1 $f4, 0x9c($a0) -/* 031D7C 8003117C C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031D80 80031180 46006021 */ cvt.d.s $f0, $f12 -.L80031184: -/* 031D84 80031184 3C01800F */ lui $at, %hi(D_800EDA00) -/* 031D88 80031188 D428DA00 */ ldc1 $f8, %lo(D_800EDA00)($at) -/* 031D8C 8003118C 3C01800F */ lui $at, %hi(D_800EDA08) -/* 031D90 80031190 46281402 */ mul.d $f16, $f2, $f8 -/* 031D94 80031194 4620803E */ c.le.d $f16, $f0 -/* 031D98 80031198 00000000 */ nop -/* 031D9C 8003119C 45000024 */ bc1f .L80031230 -/* 031DA0 800311A0 00000000 */ nop -/* 031DA4 800311A4 D432DA08 */ ldc1 $f18, %lo(D_800EDA08)($at) -/* 031DA8 800311A8 46321182 */ mul.d $f6, $f2, $f18 -/* 031DAC 800311AC 4626003C */ c.lt.d $f0, $f6 -/* 031DB0 800311B0 00000000 */ nop -/* 031DB4 800311B4 4500001E */ bc1f .L80031230 -/* 031DB8 800311B8 00000000 */ nop -/* 031DBC 800311BC 848C00C4 */ lh $t4, 0xc4($a0) -/* 031DC0 800311C0 94880254 */ lhu $t0, 0x254($a0) -/* 031DC4 800311C4 0185001A */ div $zero, $t4, $a1 -/* 031DC8 800311C8 00006812 */ mflo $t5 -/* 031DCC 800311CC 448D4000 */ mtc1 $t5, $f8 -/* 031DD0 800311D0 00084880 */ sll $t1, $t0, 2 -/* 031DD4 800311D4 00695021 */ addu $t2, $v1, $t1 -/* 031DD8 800311D8 46804421 */ cvt.d.w $f16, $f8 -/* 031DDC 800311DC 8D4B0000 */ lw $t3, ($t2) -/* 031DE0 800311E0 C5640008 */ lwc1 $f4, 8($t3) -/* 031DE4 800311E4 46307482 */ mul.d $f18, $f14, $f16 -/* 031DE8 800311E8 C4900214 */ lwc1 $f16, 0x214($a0) -/* 031DEC 800311EC 460022A1 */ cvt.d.s $f10, $f4 -/* 031DF0 800311F0 14A00002 */ bnez $a1, .L800311FC -/* 031DF4 800311F4 00000000 */ nop -/* 031DF8 800311F8 0007000D */ break 7 -.L800311FC: -/* 031DFC 800311FC 2401FFFF */ li $at, -1 -/* 031E00 80031200 14A10004 */ bne $a1, $at, .L80031214 -/* 031E04 80031204 3C018000 */ lui $at, 0x8000 -/* 031E08 80031208 15810002 */ bne $t4, $at, .L80031214 -/* 031E0C 8003120C 00000000 */ nop -/* 031E10 80031210 0006000D */ break 6 -.L80031214: -/* 031E14 80031214 46325180 */ add.d $f6, $f10, $f18 -/* 031E18 80031218 460080A1 */ cvt.d.s $f2, $f16 -/* 031E1C 8003121C 46260100 */ add.d $f4, $f0, $f6 -/* 031E20 80031220 46202220 */ cvt.s.d $f8, $f4 -/* 031E24 80031224 E488009C */ swc1 $f8, 0x9c($a0) -/* 031E28 80031228 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031E2C 8003122C 46006021 */ cvt.d.s $f0, $f12 -.L80031230: -/* 031E30 80031230 3C01800F */ lui $at, %hi(D_800EDA10) -/* 031E34 80031234 D42ADA10 */ ldc1 $f10, %lo(D_800EDA10)($at) -/* 031E38 80031238 3C01800F */ lui $at, %hi(D_800EDA18) -/* 031E3C 8003123C 462A1482 */ mul.d $f18, $f2, $f10 -/* 031E40 80031240 4620903E */ c.le.d $f18, $f0 -/* 031E44 80031244 00000000 */ nop -/* 031E48 80031248 45000024 */ bc1f .L800312DC -/* 031E4C 8003124C 00000000 */ nop -/* 031E50 80031250 D426DA18 */ ldc1 $f6, %lo(D_800EDA18)($at) -/* 031E54 80031254 46261102 */ mul.d $f4, $f2, $f6 -/* 031E58 80031258 4624003C */ c.lt.d $f0, $f4 -/* 031E5C 8003125C 00000000 */ nop -/* 031E60 80031260 4500001E */ bc1f .L800312DC -/* 031E64 80031264 00000000 */ nop -/* 031E68 80031268 848800C4 */ lh $t0, 0xc4($a0) -/* 031E6C 8003126C 948E0254 */ lhu $t6, 0x254($a0) -/* 031E70 80031270 0105001A */ div $zero, $t0, $a1 -/* 031E74 80031274 00004812 */ mflo $t1 -/* 031E78 80031278 44895000 */ mtc1 $t1, $f10 -/* 031E7C 8003127C 000E7880 */ sll $t7, $t6, 2 -/* 031E80 80031280 006FC021 */ addu $t8, $v1, $t7 -/* 031E84 80031284 468054A1 */ cvt.d.w $f18, $f10 -/* 031E88 80031288 8F190000 */ lw $t9, ($t8) -/* 031E8C 8003128C C728000C */ lwc1 $f8, 0xc($t9) -/* 031E90 80031290 46327182 */ mul.d $f6, $f14, $f18 -/* 031E94 80031294 C4920214 */ lwc1 $f18, 0x214($a0) -/* 031E98 80031298 46004421 */ cvt.d.s $f16, $f8 -/* 031E9C 8003129C 14A00002 */ bnez $a1, .L800312A8 -/* 031EA0 800312A0 00000000 */ nop -/* 031EA4 800312A4 0007000D */ break 7 -.L800312A8: -/* 031EA8 800312A8 2401FFFF */ li $at, -1 -/* 031EAC 800312AC 14A10004 */ bne $a1, $at, .L800312C0 -/* 031EB0 800312B0 3C018000 */ lui $at, 0x8000 -/* 031EB4 800312B4 15010002 */ bne $t0, $at, .L800312C0 -/* 031EB8 800312B8 00000000 */ nop -/* 031EBC 800312BC 0006000D */ break 6 -.L800312C0: -/* 031EC0 800312C0 46268100 */ add.d $f4, $f16, $f6 -/* 031EC4 800312C4 460090A1 */ cvt.d.s $f2, $f18 -/* 031EC8 800312C8 46240200 */ add.d $f8, $f0, $f4 -/* 031ECC 800312CC 462042A0 */ cvt.s.d $f10, $f8 -/* 031ED0 800312D0 E48A009C */ swc1 $f10, 0x9c($a0) -/* 031ED4 800312D4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031ED8 800312D8 46006021 */ cvt.d.s $f0, $f12 -.L800312DC: -/* 031EDC 800312DC 3C01800F */ lui $at, %hi(D_800EDA20) -/* 031EE0 800312E0 D430DA20 */ ldc1 $f16, %lo(D_800EDA20)($at) -/* 031EE4 800312E4 3C013FE0 */ lui $at, 0x3fe0 -/* 031EE8 800312E8 46301182 */ mul.d $f6, $f2, $f16 -/* 031EEC 800312EC 4620303E */ c.le.d $f6, $f0 -/* 031EF0 800312F0 00000000 */ nop -/* 031EF4 800312F4 45020027 */ bc1fl .L80031394 -/* 031EF8 800312F8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 031EFC 800312FC 44812800 */ mtc1 $at, $f5 -/* 031F00 80031300 44802000 */ mtc1 $zero, $f4 -/* 031F04 80031304 00000000 */ nop -/* 031F08 80031308 46241202 */ mul.d $f8, $f2, $f4 -/* 031F0C 8003130C 4628003C */ c.lt.d $f0, $f8 -/* 031F10 80031310 00000000 */ nop -/* 031F14 80031314 4502001F */ bc1fl .L80031394 -/* 031F18 80031318 3C013FE0 */ lui $at, 0x3fe0 -/* 031F1C 8003131C 848E00C4 */ lh $t6, 0xc4($a0) -/* 031F20 80031320 948A0254 */ lhu $t2, 0x254($a0) -/* 031F24 80031324 01C5001A */ div $zero, $t6, $a1 -/* 031F28 80031328 00007812 */ mflo $t7 -/* 031F2C 8003132C 448F8000 */ mtc1 $t7, $f16 -/* 031F30 80031330 000A5880 */ sll $t3, $t2, 2 -/* 031F34 80031334 006B6021 */ addu $t4, $v1, $t3 -/* 031F38 80031338 468081A1 */ cvt.d.w $f6, $f16 -/* 031F3C 8003133C 8D8D0000 */ lw $t5, ($t4) -/* 031F40 80031340 C5AA0010 */ lwc1 $f10, 0x10($t5) -/* 031F44 80031344 46267102 */ mul.d $f4, $f14, $f6 -/* 031F48 80031348 C4860214 */ lwc1 $f6, 0x214($a0) -/* 031F4C 8003134C 460054A1 */ cvt.d.s $f18, $f10 -/* 031F50 80031350 14A00002 */ bnez $a1, .L8003135C -/* 031F54 80031354 00000000 */ nop -/* 031F58 80031358 0007000D */ break 7 -.L8003135C: -/* 031F5C 8003135C 2401FFFF */ li $at, -1 -/* 031F60 80031360 14A10004 */ bne $a1, $at, .L80031374 -/* 031F64 80031364 3C018000 */ lui $at, 0x8000 -/* 031F68 80031368 15C10002 */ bne $t6, $at, .L80031374 -/* 031F6C 8003136C 00000000 */ nop -/* 031F70 80031370 0006000D */ break 6 -.L80031374: -/* 031F74 80031374 46249200 */ add.d $f8, $f18, $f4 -/* 031F78 80031378 460030A1 */ cvt.d.s $f2, $f6 -/* 031F7C 8003137C 46280280 */ add.d $f10, $f0, $f8 -/* 031F80 80031380 46205420 */ cvt.s.d $f16, $f10 -/* 031F84 80031384 E490009C */ swc1 $f16, 0x9c($a0) -/* 031F88 80031388 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 031F8C 8003138C 46006021 */ cvt.d.s $f0, $f12 -/* 031F90 80031390 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -.L80031394: -/* 031F94 80031394 44819800 */ mtc1 $at, $f19 -/* 031F98 80031398 44809000 */ mtc1 $zero, $f18 -/* 031F9C 8003139C 3C01800F */ lui $at, %hi(D_800EDA28) -/* 031FA0 800313A0 46321102 */ mul.d $f4, $f2, $f18 -/* 031FA4 800313A4 4620203E */ c.le.d $f4, $f0 -/* 031FA8 800313A8 00000000 */ nop -/* 031FAC 800313AC 45000024 */ bc1f .L80031440 -/* 031FB0 800313B0 00000000 */ nop -/* 031FB4 800313B4 D428DA28 */ ldc1 $f8, %lo(D_800EDA28)($at) -/* 031FB8 800313B8 46281282 */ mul.d $f10, $f2, $f8 -/* 031FBC 800313BC 462A003C */ c.lt.d $f0, $f10 -/* 031FC0 800313C0 00000000 */ nop -/* 031FC4 800313C4 4500001E */ bc1f .L80031440 -/* 031FC8 800313C8 00000000 */ nop -/* 031FCC 800313CC 848A00C4 */ lh $t2, 0xc4($a0) -/* 031FD0 800313D0 94980254 */ lhu $t8, 0x254($a0) -/* 031FD4 800313D4 0145001A */ div $zero, $t2, $a1 -/* 031FD8 800313D8 00005812 */ mflo $t3 -/* 031FDC 800313DC 448B9000 */ mtc1 $t3, $f18 -/* 031FE0 800313E0 0018C880 */ sll $t9, $t8, 2 -/* 031FE4 800313E4 00794021 */ addu $t0, $v1, $t9 -/* 031FE8 800313E8 46809121 */ cvt.d.w $f4, $f18 -/* 031FEC 800313EC 8D090000 */ lw $t1, ($t0) -/* 031FF0 800313F0 C5300014 */ lwc1 $f16, 0x14($t1) -/* 031FF4 800313F4 46247202 */ mul.d $f8, $f14, $f4 -/* 031FF8 800313F8 C4840214 */ lwc1 $f4, 0x214($a0) -/* 031FFC 800313FC 460081A1 */ cvt.d.s $f6, $f16 -/* 032000 80031400 14A00002 */ bnez $a1, .L8003140C -/* 032004 80031404 00000000 */ nop -/* 032008 80031408 0007000D */ break 7 -.L8003140C: -/* 03200C 8003140C 2401FFFF */ li $at, -1 -/* 032010 80031410 14A10004 */ bne $a1, $at, .L80031424 -/* 032014 80031414 3C018000 */ lui $at, 0x8000 -/* 032018 80031418 15410002 */ bne $t2, $at, .L80031424 -/* 03201C 8003141C 00000000 */ nop -/* 032020 80031420 0006000D */ break 6 -.L80031424: -/* 032024 80031424 46283280 */ add.d $f10, $f6, $f8 -/* 032028 80031428 460020A1 */ cvt.d.s $f2, $f4 -/* 03202C 8003142C 462A0400 */ add.d $f16, $f0, $f10 -/* 032030 80031430 462084A0 */ cvt.s.d $f18, $f16 -/* 032034 80031434 E492009C */ swc1 $f18, 0x9c($a0) -/* 032038 80031438 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 03203C 8003143C 46006021 */ cvt.d.s $f0, $f12 -.L80031440: -/* 032040 80031440 3C01800F */ lui $at, %hi(D_800EDA30) -/* 032044 80031444 D426DA30 */ ldc1 $f6, %lo(D_800EDA30)($at) -/* 032048 80031448 3C01800F */ lui $at, %hi(D_800EDA38) -/* 03204C 8003144C 46261202 */ mul.d $f8, $f2, $f6 -/* 032050 80031450 4620403E */ c.le.d $f8, $f0 -/* 032054 80031454 00000000 */ nop -/* 032058 80031458 45000024 */ bc1f .L800314EC -/* 03205C 8003145C 00000000 */ nop -/* 032060 80031460 D42ADA38 */ ldc1 $f10, %lo(D_800EDA38)($at) -/* 032064 80031464 462A1402 */ mul.d $f16, $f2, $f10 -/* 032068 80031468 4630003C */ c.lt.d $f0, $f16 -/* 03206C 8003146C 00000000 */ nop -/* 032070 80031470 4500001E */ bc1f .L800314EC -/* 032074 80031474 00000000 */ nop -/* 032078 80031478 849800C4 */ lh $t8, 0xc4($a0) -/* 03207C 8003147C 948C0254 */ lhu $t4, 0x254($a0) -/* 032080 80031480 0305001A */ div $zero, $t8, $a1 -/* 032084 80031484 0000C812 */ mflo $t9 -/* 032088 80031488 44993000 */ mtc1 $t9, $f6 -/* 03208C 8003148C 000C6880 */ sll $t5, $t4, 2 -/* 032090 80031490 006D7021 */ addu $t6, $v1, $t5 -/* 032094 80031494 46803221 */ cvt.d.w $f8, $f6 -/* 032098 80031498 8DCF0000 */ lw $t7, ($t6) -/* 03209C 8003149C C5F20018 */ lwc1 $f18, 0x18($t7) -/* 0320A0 800314A0 46287282 */ mul.d $f10, $f14, $f8 -/* 0320A4 800314A4 C4880214 */ lwc1 $f8, 0x214($a0) -/* 0320A8 800314A8 46009121 */ cvt.d.s $f4, $f18 -/* 0320AC 800314AC 14A00002 */ bnez $a1, .L800314B8 -/* 0320B0 800314B0 00000000 */ nop -/* 0320B4 800314B4 0007000D */ break 7 -.L800314B8: -/* 0320B8 800314B8 2401FFFF */ li $at, -1 -/* 0320BC 800314BC 14A10004 */ bne $a1, $at, .L800314D0 -/* 0320C0 800314C0 3C018000 */ lui $at, 0x8000 -/* 0320C4 800314C4 17010002 */ bne $t8, $at, .L800314D0 -/* 0320C8 800314C8 00000000 */ nop -/* 0320CC 800314CC 0006000D */ break 6 -.L800314D0: -/* 0320D0 800314D0 462A2400 */ add.d $f16, $f4, $f10 -/* 0320D4 800314D4 460040A1 */ cvt.d.s $f2, $f8 -/* 0320D8 800314D8 46300480 */ add.d $f18, $f0, $f16 -/* 0320DC 800314DC 462091A0 */ cvt.s.d $f6, $f18 -/* 0320E0 800314E0 E486009C */ swc1 $f6, 0x9c($a0) -/* 0320E4 800314E4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 0320E8 800314E8 46006021 */ cvt.d.s $f0, $f12 -.L800314EC: -/* 0320EC 800314EC 3C01800F */ lui $at, %hi(D_800EDA40) -/* 0320F0 800314F0 D424DA40 */ ldc1 $f4, %lo(D_800EDA40)($at) -/* 0320F4 800314F4 3C01800F */ lui $at, %hi(D_800EDA48) -/* 0320F8 800314F8 46241282 */ mul.d $f10, $f2, $f4 -/* 0320FC 800314FC 4620503E */ c.le.d $f10, $f0 -/* 032100 80031500 00000000 */ nop -/* 032104 80031504 45000024 */ bc1f .L80031598 -/* 032108 80031508 00000000 */ nop -/* 03210C 8003150C D430DA48 */ ldc1 $f16, %lo(D_800EDA48)($at) -/* 032110 80031510 46301482 */ mul.d $f18, $f2, $f16 -/* 032114 80031514 4632003C */ c.lt.d $f0, $f18 -/* 032118 80031518 00000000 */ nop -/* 03211C 8003151C 4500001E */ bc1f .L80031598 -/* 032120 80031520 00000000 */ nop -/* 032124 80031524 848C00C4 */ lh $t4, 0xc4($a0) -/* 032128 80031528 94880254 */ lhu $t0, 0x254($a0) -/* 03212C 8003152C 0185001A */ div $zero, $t4, $a1 -/* 032130 80031530 00006812 */ mflo $t5 -/* 032134 80031534 448D2000 */ mtc1 $t5, $f4 -/* 032138 80031538 00084880 */ sll $t1, $t0, 2 -/* 03213C 8003153C 00695021 */ addu $t2, $v1, $t1 -/* 032140 80031540 468022A1 */ cvt.d.w $f10, $f4 -/* 032144 80031544 8D4B0000 */ lw $t3, ($t2) -/* 032148 80031548 C566001C */ lwc1 $f6, 0x1c($t3) -/* 03214C 8003154C 462A7402 */ mul.d $f16, $f14, $f10 -/* 032150 80031550 C48A0214 */ lwc1 $f10, 0x214($a0) -/* 032154 80031554 46003221 */ cvt.d.s $f8, $f6 -/* 032158 80031558 14A00002 */ bnez $a1, .L80031564 -/* 03215C 8003155C 00000000 */ nop -/* 032160 80031560 0007000D */ break 7 -.L80031564: -/* 032164 80031564 2401FFFF */ li $at, -1 -/* 032168 80031568 14A10004 */ bne $a1, $at, .L8003157C -/* 03216C 8003156C 3C018000 */ lui $at, 0x8000 -/* 032170 80031570 15810002 */ bne $t4, $at, .L8003157C -/* 032174 80031574 00000000 */ nop -/* 032178 80031578 0006000D */ break 6 -.L8003157C: -/* 03217C 8003157C 46304480 */ add.d $f18, $f8, $f16 -/* 032180 80031580 460050A1 */ cvt.d.s $f2, $f10 -/* 032184 80031584 46320180 */ add.d $f6, $f0, $f18 -/* 032188 80031588 46203120 */ cvt.s.d $f4, $f6 -/* 03218C 8003158C E484009C */ swc1 $f4, 0x9c($a0) -/* 032190 80031590 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 032194 80031594 46006021 */ cvt.d.s $f0, $f12 -.L80031598: -/* 032198 80031598 3C01800F */ lui $at, %hi(D_800EDA50) -/* 03219C 8003159C D428DA50 */ ldc1 $f8, %lo(D_800EDA50)($at) -/* 0321A0 800315A0 3C01800F */ lui $at, %hi(D_800EDA58) -/* 0321A4 800315A4 46281402 */ mul.d $f16, $f2, $f8 -/* 0321A8 800315A8 4620803E */ c.le.d $f16, $f0 -/* 0321AC 800315AC 00000000 */ nop -/* 0321B0 800315B0 45000024 */ bc1f .L80031644 -/* 0321B4 800315B4 00000000 */ nop -/* 0321B8 800315B8 D432DA58 */ ldc1 $f18, %lo(D_800EDA58)($at) -/* 0321BC 800315BC 46321182 */ mul.d $f6, $f2, $f18 -/* 0321C0 800315C0 4626003C */ c.lt.d $f0, $f6 -/* 0321C4 800315C4 00000000 */ nop -/* 0321C8 800315C8 4500001E */ bc1f .L80031644 -/* 0321CC 800315CC 00000000 */ nop -/* 0321D0 800315D0 848800C4 */ lh $t0, 0xc4($a0) -/* 0321D4 800315D4 948E0254 */ lhu $t6, 0x254($a0) -/* 0321D8 800315D8 0105001A */ div $zero, $t0, $a1 -/* 0321DC 800315DC 00004812 */ mflo $t1 -/* 0321E0 800315E0 44894000 */ mtc1 $t1, $f8 -/* 0321E4 800315E4 000E7880 */ sll $t7, $t6, 2 -/* 0321E8 800315E8 006FC021 */ addu $t8, $v1, $t7 -/* 0321EC 800315EC 46804421 */ cvt.d.w $f16, $f8 -/* 0321F0 800315F0 8F190000 */ lw $t9, ($t8) -/* 0321F4 800315F4 C7240020 */ lwc1 $f4, 0x20($t9) -/* 0321F8 800315F8 46307482 */ mul.d $f18, $f14, $f16 -/* 0321FC 800315FC C4900214 */ lwc1 $f16, 0x214($a0) -/* 032200 80031600 460022A1 */ cvt.d.s $f10, $f4 -/* 032204 80031604 14A00002 */ bnez $a1, .L80031610 -/* 032208 80031608 00000000 */ nop -/* 03220C 8003160C 0007000D */ break 7 -.L80031610: -/* 032210 80031610 2401FFFF */ li $at, -1 -/* 032214 80031614 14A10004 */ bne $a1, $at, .L80031628 -/* 032218 80031618 3C018000 */ lui $at, 0x8000 -/* 03221C 8003161C 15010002 */ bne $t0, $at, .L80031628 -/* 032220 80031620 00000000 */ nop -/* 032224 80031624 0006000D */ break 6 -.L80031628: -/* 032228 80031628 46325180 */ add.d $f6, $f10, $f18 -/* 03222C 8003162C 460080A1 */ cvt.d.s $f2, $f16 -/* 032230 80031630 46260100 */ add.d $f4, $f0, $f6 -/* 032234 80031634 46202220 */ cvt.s.d $f8, $f4 -/* 032238 80031638 E488009C */ swc1 $f8, 0x9c($a0) -/* 03223C 8003163C C48C009C */ lwc1 $f12, 0x9c($a0) -/* 032240 80031640 46006021 */ cvt.d.s $f0, $f12 -.L80031644: -/* 032244 80031644 3C01800F */ lui $at, %hi(D_800EDA60) -/* 032248 80031648 D42ADA60 */ ldc1 $f10, %lo(D_800EDA60)($at) -/* 03224C 8003164C 462A1482 */ mul.d $f18, $f2, $f10 -/* 032250 80031650 4620903E */ c.le.d $f18, $f0 -/* 032254 80031654 00000000 */ nop -/* 032258 80031658 4502020F */ bc1fl .L80031E98 -/* 03225C 8003165C 44800000 */ mtc1 $zero, $f0 -/* 032260 80031660 4622003E */ c.le.d $f0, $f2 -/* 032264 80031664 00000000 */ nop -/* 032268 80031668 4502020B */ bc1fl .L80031E98 -/* 03226C 8003166C 44800000 */ mtc1 $zero, $f0 -/* 032270 80031670 848E00C4 */ lh $t6, 0xc4($a0) -/* 032274 80031674 948A0254 */ lhu $t2, 0x254($a0) -/* 032278 80031678 01C5001A */ div $zero, $t6, $a1 -/* 03227C 8003167C 00007812 */ mflo $t7 -/* 032280 80031680 448F4000 */ mtc1 $t7, $f8 -/* 032284 80031684 000A5880 */ sll $t3, $t2, 2 -/* 032288 80031688 006B6021 */ addu $t4, $v1, $t3 -/* 03228C 8003168C 46804421 */ cvt.d.w $f16, $f8 -/* 032290 80031690 8D8D0000 */ lw $t5, ($t4) -/* 032294 80031694 C5A60024 */ lwc1 $f6, 0x24($t5) -/* 032298 80031698 46307282 */ mul.d $f10, $f14, $f16 -/* 03229C 8003169C 46003121 */ cvt.d.s $f4, $f6 -/* 0322A0 800316A0 14A00002 */ bnez $a1, .L800316AC -/* 0322A4 800316A4 00000000 */ nop -/* 0322A8 800316A8 0007000D */ break 7 -.L800316AC: -/* 0322AC 800316AC 2401FFFF */ li $at, -1 -/* 0322B0 800316B0 14A10004 */ bne $a1, $at, .L800316C4 -/* 0322B4 800316B4 3C018000 */ lui $at, 0x8000 -/* 0322B8 800316B8 15C10002 */ bne $t6, $at, .L800316C4 -/* 0322BC 800316BC 00000000 */ nop -/* 0322C0 800316C0 0006000D */ break 6 -.L800316C4: -/* 0322C4 800316C4 462A2480 */ add.d $f18, $f4, $f10 -/* 0322C8 800316C8 46320180 */ add.d $f6, $f0, $f18 -/* 0322CC 800316CC 46203220 */ cvt.s.d $f8, $f6 -/* 0322D0 800316D0 E488009C */ swc1 $f8, 0x9c($a0) -/* 0322D4 800316D4 100001EF */ b .L80031E94 -/* 0322D8 800316D8 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 0322DC 800316DC C48C009C */ lwc1 $f12, 0x9c($a0) -.L800316E0: -/* 0322E0 800316E0 44808800 */ mtc1 $zero, $f17 -/* 0322E4 800316E4 44808000 */ mtc1 $zero, $f16 -/* 0322E8 800316E8 46006021 */ cvt.d.s $f0, $f12 -/* 0322EC 800316EC 4620803E */ c.le.d $f16, $f0 -/* 0322F0 800316F0 00000000 */ nop -/* 0322F4 800316F4 45000031 */ bc1f .L800317BC -/* 0322F8 800316F8 00000000 */ nop -/* 0322FC 800316FC C4840214 */ lwc1 $f4, 0x214($a0) -/* 032300 80031700 3C01800F */ lui $at, %hi(D_800EDA68) -/* 032304 80031704 D432DA68 */ ldc1 $f18, %lo(D_800EDA68)($at) -/* 032308 80031708 460022A1 */ cvt.d.s $f10, $f4 -/* 03230C 8003170C 3C03800E */ lui $v1, %hi(gKartAccelerationTables) # $v1, 0x800e -/* 032310 80031710 46325182 */ mul.d $f6, $f10, $f18 -/* 032314 80031714 4626003C */ c.lt.d $f0, $f6 -/* 032318 80031718 00000000 */ nop -/* 03231C 8003171C 45000027 */ bc1f .L800317BC -/* 032320 80031720 00000000 */ nop -/* 032324 80031724 848900C4 */ lh $t1, 0xc4($a0) -/* 032328 80031728 240500B6 */ li $a1, 182 -/* 03232C 8003172C 94820254 */ lhu $v0, 0x254($a0) -/* 032330 80031730 0125001A */ div $zero, $t1, $a1 -/* 032334 80031734 00005012 */ mflo $t2 -/* 032338 80031738 448A2000 */ mtc1 $t2, $f4 -/* 03233C 8003173C 3C01800F */ lui $at, %hi(D_800EDA70) -/* 032340 80031740 D42EDA70 */ ldc1 $f14, %lo(D_800EDA70)($at) -/* 032344 80031744 468022A1 */ cvt.d.w $f10, $f4 -/* 032348 80031748 24633010 */ addiu $v1, %lo(gKartAccelerationTables) # addiu $v1, $v1, 0x3010 -/* 03234C 8003174C 0002C080 */ sll $t8, $v0, 2 -/* 032350 80031750 0078C821 */ addu $t9, $v1, $t8 -/* 032354 80031754 8F280000 */ lw $t0, ($t9) -/* 032358 80031758 462A7482 */ mul.d $f18, $f14, $f10 -/* 03235C 8003175C 3C06800E */ lui $a2, %hi(gKartTable800E36B0) # $a2, 0x800e -/* 032360 80031760 C5080000 */ lwc1 $f8, ($t0) -/* 032364 80031764 24C636B0 */ addiu $a2, %lo(gKartTable800E36B0) # addiu $a2, $a2, 0x36b0 -/* 032368 80031768 03001025 */ move $v0, $t8 -/* 03236C 8003176C 46004421 */ cvt.d.s $f16, $f8 -/* 032370 80031770 00C25821 */ addu $t3, $a2, $v0 -/* 032374 80031774 C5680000 */ lwc1 $f8, ($t3) -/* 032378 80031778 46328180 */ add.d $f6, $f16, $f18 -/* 03237C 8003177C 14A00002 */ bnez $a1, .L80031788 -/* 032380 80031780 00000000 */ nop -/* 032384 80031784 0007000D */ break 7 -.L80031788: -/* 032388 80031788 2401FFFF */ li $at, -1 -/* 03238C 8003178C 14A10004 */ bne $a1, $at, .L800317A0 -/* 032390 80031790 3C018000 */ lui $at, 0x8000 -/* 032394 80031794 15210002 */ bne $t1, $at, .L800317A0 -/* 032398 80031798 00000000 */ nop -/* 03239C 8003179C 0006000D */ break 6 -.L800317A0: -/* 0323A0 800317A0 46004121 */ cvt.d.s $f4, $f8 -/* 0323A4 800317A4 46243282 */ mul.d $f10, $f6, $f4 -/* 0323A8 800317A8 462A0400 */ add.d $f16, $f0, $f10 -/* 0323AC 800317AC 462084A0 */ cvt.s.d $f18, $f16 -/* 0323B0 800317B0 E492009C */ swc1 $f18, 0x9c($a0) -/* 0323B4 800317B4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 0323B8 800317B8 46006021 */ cvt.d.s $f0, $f12 -.L800317BC: -/* 0323BC 800317BC 3C01800F */ lui $at, %hi(D_800EDA78) -/* 0323C0 800317C0 C4880214 */ lwc1 $f8, 0x214($a0) -/* 0323C4 800317C4 D42EDA78 */ ldc1 $f14, %lo(D_800EDA78)($at) -/* 0323C8 800317C8 3C01800F */ lui $at, %hi(D_800EDA80) -/* 0323CC 800317CC D426DA80 */ ldc1 $f6, %lo(D_800EDA80)($at) -/* 0323D0 800317D0 460040A1 */ cvt.d.s $f2, $f8 -/* 0323D4 800317D4 3C03800E */ lui $v1, %hi(gKartAccelerationTables) # $v1, 0x800e -/* 0323D8 800317D8 46261102 */ mul.d $f4, $f2, $f6 -/* 0323DC 800317DC 3C06800E */ lui $a2, %hi(gKartTable800E36B0) # $a2, 0x800e -/* 0323E0 800317E0 24C636B0 */ addiu $a2, %lo(gKartTable800E36B0) # addiu $a2, $a2, 0x36b0 -/* 0323E4 800317E4 24633010 */ addiu $v1, %lo(gKartAccelerationTables) # addiu $v1, $v1, 0x3010 -/* 0323E8 800317E8 240500B6 */ li $a1, 182 -/* 0323EC 800317EC 3C01800F */ lui $at, %hi(D_800EDA88) -/* 0323F0 800317F0 4620203E */ c.le.d $f4, $f0 -/* 0323F4 800317F4 00000000 */ nop -/* 0323F8 800317F8 45000029 */ bc1f .L800318A0 -/* 0323FC 800317FC 00000000 */ nop -/* 032400 80031800 D42ADA88 */ ldc1 $f10, %lo(D_800EDA88)($at) -/* 032404 80031804 462A1402 */ mul.d $f16, $f2, $f10 -/* 032408 80031808 4630003C */ c.lt.d $f0, $f16 -/* 03240C 8003180C 00000000 */ nop -/* 032410 80031810 45000023 */ bc1f .L800318A0 -/* 032414 80031814 00000000 */ nop -/* 032418 80031818 848F00C4 */ lh $t7, 0xc4($a0) -/* 03241C 8003181C 94820254 */ lhu $v0, 0x254($a0) -/* 032420 80031820 01E5001A */ div $zero, $t7, $a1 -/* 032424 80031824 0000C012 */ mflo $t8 -/* 032428 80031828 44983000 */ mtc1 $t8, $f6 -/* 03242C 8003182C 00026080 */ sll $t4, $v0, 2 -/* 032430 80031830 006C6821 */ addu $t5, $v1, $t4 -/* 032434 80031834 46803121 */ cvt.d.w $f4, $f6 -/* 032438 80031838 8DAE0000 */ lw $t6, ($t5) -/* 03243C 8003183C 01801025 */ move $v0, $t4 -/* 032440 80031840 00C2C821 */ addu $t9, $a2, $v0 -/* 032444 80031844 C5D20004 */ lwc1 $f18, 4($t6) -/* 032448 80031848 46247282 */ mul.d $f10, $f14, $f4 -/* 03244C 8003184C 46009221 */ cvt.d.s $f8, $f18 -/* 032450 80031850 C7320000 */ lwc1 $f18, ($t9) -/* 032454 80031854 14A00002 */ bnez $a1, .L80031860 -/* 032458 80031858 00000000 */ nop -/* 03245C 8003185C 0007000D */ break 7 -.L80031860: -/* 032460 80031860 2401FFFF */ li $at, -1 -/* 032464 80031864 14A10004 */ bne $a1, $at, .L80031878 -/* 032468 80031868 3C018000 */ lui $at, 0x8000 -/* 03246C 8003186C 15E10002 */ bne $t7, $at, .L80031878 -/* 032470 80031870 00000000 */ nop -/* 032474 80031874 0006000D */ break 6 -.L80031878: -/* 032478 80031878 462A4400 */ add.d $f16, $f8, $f10 -/* 03247C 8003187C 460091A1 */ cvt.d.s $f6, $f18 -/* 032480 80031880 C4920214 */ lwc1 $f18, 0x214($a0) -/* 032484 80031884 46268102 */ mul.d $f4, $f16, $f6 -/* 032488 80031888 460090A1 */ cvt.d.s $f2, $f18 -/* 03248C 8003188C 46240200 */ add.d $f8, $f0, $f4 -/* 032490 80031890 462042A0 */ cvt.s.d $f10, $f8 -/* 032494 80031894 E48A009C */ swc1 $f10, 0x9c($a0) -/* 032498 80031898 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 03249C 8003189C 46006021 */ cvt.d.s $f0, $f12 -.L800318A0: -/* 0324A0 800318A0 3C01800F */ lui $at, %hi(D_800EDA90) -/* 0324A4 800318A4 D430DA90 */ ldc1 $f16, %lo(D_800EDA90)($at) -/* 0324A8 800318A8 3C01800F */ lui $at, %hi(D_800EDA98) -/* 0324AC 800318AC 46301182 */ mul.d $f6, $f2, $f16 -/* 0324B0 800318B0 4620303E */ c.le.d $f6, $f0 -/* 0324B4 800318B4 00000000 */ nop -/* 0324B8 800318B8 45000029 */ bc1f .L80031960 -/* 0324BC 800318BC 00000000 */ nop -/* 0324C0 800318C0 D424DA98 */ ldc1 $f4, %lo(D_800EDA98)($at) -/* 0324C4 800318C4 46241202 */ mul.d $f8, $f2, $f4 -/* 0324C8 800318C8 4628003C */ c.lt.d $f0, $f8 -/* 0324CC 800318CC 00000000 */ nop -/* 0324D0 800318D0 45000023 */ bc1f .L80031960 -/* 0324D4 800318D4 00000000 */ nop -/* 0324D8 800318D8 848B00C4 */ lh $t3, 0xc4($a0) -/* 0324DC 800318DC 94820254 */ lhu $v0, 0x254($a0) -/* 0324E0 800318E0 0165001A */ div $zero, $t3, $a1 -/* 0324E4 800318E4 00006012 */ mflo $t4 -/* 0324E8 800318E8 448C8000 */ mtc1 $t4, $f16 -/* 0324EC 800318EC 00024080 */ sll $t0, $v0, 2 -/* 0324F0 800318F0 00684821 */ addu $t1, $v1, $t0 -/* 0324F4 800318F4 468081A1 */ cvt.d.w $f6, $f16 -/* 0324F8 800318F8 8D2A0000 */ lw $t2, ($t1) -/* 0324FC 800318FC 01001025 */ move $v0, $t0 -/* 032500 80031900 00C26821 */ addu $t5, $a2, $v0 -/* 032504 80031904 C54A0008 */ lwc1 $f10, 8($t2) -/* 032508 80031908 46267102 */ mul.d $f4, $f14, $f6 -/* 03250C 8003190C 460054A1 */ cvt.d.s $f18, $f10 -/* 032510 80031910 C5AA0000 */ lwc1 $f10, ($t5) -/* 032514 80031914 14A00002 */ bnez $a1, .L80031920 -/* 032518 80031918 00000000 */ nop -/* 03251C 8003191C 0007000D */ break 7 -.L80031920: -/* 032520 80031920 2401FFFF */ li $at, -1 -/* 032524 80031924 14A10004 */ bne $a1, $at, .L80031938 -/* 032528 80031928 3C018000 */ lui $at, 0x8000 -/* 03252C 8003192C 15610002 */ bne $t3, $at, .L80031938 -/* 032530 80031930 00000000 */ nop -/* 032534 80031934 0006000D */ break 6 -.L80031938: -/* 032538 80031938 46249200 */ add.d $f8, $f18, $f4 -/* 03253C 8003193C 46005421 */ cvt.d.s $f16, $f10 -/* 032540 80031940 C48A0214 */ lwc1 $f10, 0x214($a0) -/* 032544 80031944 46304182 */ mul.d $f6, $f8, $f16 -/* 032548 80031948 460050A1 */ cvt.d.s $f2, $f10 -/* 03254C 8003194C 46260480 */ add.d $f18, $f0, $f6 -/* 032550 80031950 46209120 */ cvt.s.d $f4, $f18 -/* 032554 80031954 E484009C */ swc1 $f4, 0x9c($a0) -/* 032558 80031958 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 03255C 8003195C 46006021 */ cvt.d.s $f0, $f12 -.L80031960: -/* 032560 80031960 3C01800F */ lui $at, %hi(D_800EDAA0) -/* 032564 80031964 D428DAA0 */ ldc1 $f8, %lo(D_800EDAA0)($at) -/* 032568 80031968 3C01800F */ lui $at, %hi(D_800EDAA8) -/* 03256C 8003196C 46281402 */ mul.d $f16, $f2, $f8 -/* 032570 80031970 4620803E */ c.le.d $f16, $f0 -/* 032574 80031974 00000000 */ nop -/* 032578 80031978 45000029 */ bc1f .L80031A20 -/* 03257C 8003197C 00000000 */ nop -/* 032580 80031980 D426DAA8 */ ldc1 $f6, %lo(D_800EDAA8)($at) -/* 032584 80031984 46261482 */ mul.d $f18, $f2, $f6 -/* 032588 80031988 4632003C */ c.lt.d $f0, $f18 -/* 03258C 8003198C 00000000 */ nop -/* 032590 80031990 45000023 */ bc1f .L80031A20 -/* 032594 80031994 00000000 */ nop -/* 032598 80031998 849900C4 */ lh $t9, 0xc4($a0) -/* 03259C 8003199C 94820254 */ lhu $v0, 0x254($a0) -/* 0325A0 800319A0 0325001A */ div $zero, $t9, $a1 -/* 0325A4 800319A4 00004012 */ mflo $t0 -/* 0325A8 800319A8 44884000 */ mtc1 $t0, $f8 -/* 0325AC 800319AC 00027080 */ sll $t6, $v0, 2 -/* 0325B0 800319B0 006E7821 */ addu $t7, $v1, $t6 -/* 0325B4 800319B4 46804421 */ cvt.d.w $f16, $f8 -/* 0325B8 800319B8 8DF80000 */ lw $t8, ($t7) -/* 0325BC 800319BC 01C01025 */ move $v0, $t6 -/* 0325C0 800319C0 00C24821 */ addu $t1, $a2, $v0 -/* 0325C4 800319C4 C704000C */ lwc1 $f4, 0xc($t8) -/* 0325C8 800319C8 46307182 */ mul.d $f6, $f14, $f16 -/* 0325CC 800319CC 460022A1 */ cvt.d.s $f10, $f4 -/* 0325D0 800319D0 C5240000 */ lwc1 $f4, ($t1) -/* 0325D4 800319D4 14A00002 */ bnez $a1, .L800319E0 -/* 0325D8 800319D8 00000000 */ nop -/* 0325DC 800319DC 0007000D */ break 7 -.L800319E0: -/* 0325E0 800319E0 2401FFFF */ li $at, -1 -/* 0325E4 800319E4 14A10004 */ bne $a1, $at, .L800319F8 -/* 0325E8 800319E8 3C018000 */ lui $at, 0x8000 -/* 0325EC 800319EC 17210002 */ bne $t9, $at, .L800319F8 -/* 0325F0 800319F0 00000000 */ nop -/* 0325F4 800319F4 0006000D */ break 6 -.L800319F8: -/* 0325F8 800319F8 46265480 */ add.d $f18, $f10, $f6 -/* 0325FC 800319FC 46002221 */ cvt.d.s $f8, $f4 -/* 032600 80031A00 C4840214 */ lwc1 $f4, 0x214($a0) -/* 032604 80031A04 46289402 */ mul.d $f16, $f18, $f8 -/* 032608 80031A08 460020A1 */ cvt.d.s $f2, $f4 -/* 03260C 80031A0C 46300280 */ add.d $f10, $f0, $f16 -/* 032610 80031A10 462051A0 */ cvt.s.d $f6, $f10 -/* 032614 80031A14 E486009C */ swc1 $f6, 0x9c($a0) -/* 032618 80031A18 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 03261C 80031A1C 46006021 */ cvt.d.s $f0, $f12 -.L80031A20: -/* 032620 80031A20 3C01800F */ lui $at, %hi(D_800EDAB0) -/* 032624 80031A24 D432DAB0 */ ldc1 $f18, %lo(D_800EDAB0)($at) -/* 032628 80031A28 3C013FE0 */ lui $at, 0x3fe0 -/* 03262C 80031A2C 46321202 */ mul.d $f8, $f2, $f18 -/* 032630 80031A30 4620403E */ c.le.d $f8, $f0 -/* 032634 80031A34 00000000 */ nop -/* 032638 80031A38 4502002C */ bc1fl .L80031AEC -/* 03263C 80031A3C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 032640 80031A40 44818800 */ mtc1 $at, $f17 -/* 032644 80031A44 44808000 */ mtc1 $zero, $f16 -/* 032648 80031A48 00000000 */ nop -/* 03264C 80031A4C 46301282 */ mul.d $f10, $f2, $f16 -/* 032650 80031A50 462A003C */ c.lt.d $f0, $f10 -/* 032654 80031A54 00000000 */ nop -/* 032658 80031A58 45020024 */ bc1fl .L80031AEC -/* 03265C 80031A5C 3C013FE0 */ lui $at, 0x3fe0 -/* 032660 80031A60 848D00C4 */ lh $t5, 0xc4($a0) -/* 032664 80031A64 94820254 */ lhu $v0, 0x254($a0) -/* 032668 80031A68 01A5001A */ div $zero, $t5, $a1 -/* 03266C 80031A6C 00007012 */ mflo $t6 -/* 032670 80031A70 448E9000 */ mtc1 $t6, $f18 -/* 032674 80031A74 00025080 */ sll $t2, $v0, 2 -/* 032678 80031A78 006A5821 */ addu $t3, $v1, $t2 -/* 03267C 80031A7C 46809221 */ cvt.d.w $f8, $f18 -/* 032680 80031A80 8D6C0000 */ lw $t4, ($t3) -/* 032684 80031A84 01401025 */ move $v0, $t2 -/* 032688 80031A88 00C27821 */ addu $t7, $a2, $v0 -/* 03268C 80031A8C C5860010 */ lwc1 $f6, 0x10($t4) -/* 032690 80031A90 46287402 */ mul.d $f16, $f14, $f8 -/* 032694 80031A94 46003121 */ cvt.d.s $f4, $f6 -/* 032698 80031A98 C5E60000 */ lwc1 $f6, ($t7) -/* 03269C 80031A9C 14A00002 */ bnez $a1, .L80031AA8 -/* 0326A0 80031AA0 00000000 */ nop -/* 0326A4 80031AA4 0007000D */ break 7 -.L80031AA8: -/* 0326A8 80031AA8 2401FFFF */ li $at, -1 -/* 0326AC 80031AAC 14A10004 */ bne $a1, $at, .L80031AC0 -/* 0326B0 80031AB0 3C018000 */ lui $at, 0x8000 -/* 0326B4 80031AB4 15A10002 */ bne $t5, $at, .L80031AC0 -/* 0326B8 80031AB8 00000000 */ nop -/* 0326BC 80031ABC 0006000D */ break 6 -.L80031AC0: -/* 0326C0 80031AC0 46302280 */ add.d $f10, $f4, $f16 -/* 0326C4 80031AC4 460034A1 */ cvt.d.s $f18, $f6 -/* 0326C8 80031AC8 C4860214 */ lwc1 $f6, 0x214($a0) -/* 0326CC 80031ACC 46325202 */ mul.d $f8, $f10, $f18 -/* 0326D0 80031AD0 460030A1 */ cvt.d.s $f2, $f6 -/* 0326D4 80031AD4 46280100 */ add.d $f4, $f0, $f8 -/* 0326D8 80031AD8 46202420 */ cvt.s.d $f16, $f4 -/* 0326DC 80031ADC E490009C */ swc1 $f16, 0x9c($a0) -/* 0326E0 80031AE0 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 0326E4 80031AE4 46006021 */ cvt.d.s $f0, $f12 -/* 0326E8 80031AE8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -.L80031AEC: -/* 0326EC 80031AEC 44815800 */ mtc1 $at, $f11 -/* 0326F0 80031AF0 44805000 */ mtc1 $zero, $f10 -/* 0326F4 80031AF4 3C01800F */ lui $at, %hi(D_800EDAB8) -/* 0326F8 80031AF8 462A1482 */ mul.d $f18, $f2, $f10 -/* 0326FC 80031AFC 4620903E */ c.le.d $f18, $f0 -/* 032700 80031B00 00000000 */ nop -/* 032704 80031B04 45000029 */ bc1f .L80031BAC -/* 032708 80031B08 00000000 */ nop -/* 03270C 80031B0C D428DAB8 */ ldc1 $f8, %lo(D_800EDAB8)($at) -/* 032710 80031B10 46281102 */ mul.d $f4, $f2, $f8 -/* 032714 80031B14 4624003C */ c.lt.d $f0, $f4 -/* 032718 80031B18 00000000 */ nop -/* 03271C 80031B1C 45000023 */ bc1f .L80031BAC -/* 032720 80031B20 00000000 */ nop -/* 032724 80031B24 848900C4 */ lh $t1, 0xc4($a0) -/* 032728 80031B28 94820254 */ lhu $v0, 0x254($a0) -/* 03272C 80031B2C 0125001A */ div $zero, $t1, $a1 -/* 032730 80031B30 00005012 */ mflo $t2 -/* 032734 80031B34 448A5000 */ mtc1 $t2, $f10 -/* 032738 80031B38 0002C080 */ sll $t8, $v0, 2 -/* 03273C 80031B3C 0078C821 */ addu $t9, $v1, $t8 -/* 032740 80031B40 468054A1 */ cvt.d.w $f18, $f10 -/* 032744 80031B44 8F280000 */ lw $t0, ($t9) -/* 032748 80031B48 03001025 */ move $v0, $t8 -/* 03274C 80031B4C 00C25821 */ addu $t3, $a2, $v0 -/* 032750 80031B50 C5100014 */ lwc1 $f16, 0x14($t0) -/* 032754 80031B54 46327202 */ mul.d $f8, $f14, $f18 -/* 032758 80031B58 460081A1 */ cvt.d.s $f6, $f16 -/* 03275C 80031B5C C5700000 */ lwc1 $f16, ($t3) -/* 032760 80031B60 14A00002 */ bnez $a1, .L80031B6C -/* 032764 80031B64 00000000 */ nop -/* 032768 80031B68 0007000D */ break 7 -.L80031B6C: -/* 03276C 80031B6C 2401FFFF */ li $at, -1 -/* 032770 80031B70 14A10004 */ bne $a1, $at, .L80031B84 -/* 032774 80031B74 3C018000 */ lui $at, 0x8000 -/* 032778 80031B78 15210002 */ bne $t1, $at, .L80031B84 -/* 03277C 80031B7C 00000000 */ nop -/* 032780 80031B80 0006000D */ break 6 -.L80031B84: -/* 032784 80031B84 46283100 */ add.d $f4, $f6, $f8 -/* 032788 80031B88 460082A1 */ cvt.d.s $f10, $f16 -/* 03278C 80031B8C C4900214 */ lwc1 $f16, 0x214($a0) -/* 032790 80031B90 462A2482 */ mul.d $f18, $f4, $f10 -/* 032794 80031B94 460080A1 */ cvt.d.s $f2, $f16 -/* 032798 80031B98 46320180 */ add.d $f6, $f0, $f18 -/* 03279C 80031B9C 46203220 */ cvt.s.d $f8, $f6 -/* 0327A0 80031BA0 E488009C */ swc1 $f8, 0x9c($a0) -/* 0327A4 80031BA4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 0327A8 80031BA8 46006021 */ cvt.d.s $f0, $f12 -.L80031BAC: -/* 0327AC 80031BAC 3C01800F */ lui $at, %hi(D_800EDAC0) -/* 0327B0 80031BB0 D424DAC0 */ ldc1 $f4, %lo(D_800EDAC0)($at) -/* 0327B4 80031BB4 3C01800F */ lui $at, %hi(D_800EDAC8) -/* 0327B8 80031BB8 46241282 */ mul.d $f10, $f2, $f4 -/* 0327BC 80031BBC 4620503E */ c.le.d $f10, $f0 -/* 0327C0 80031BC0 00000000 */ nop -/* 0327C4 80031BC4 45000029 */ bc1f .L80031C6C -/* 0327C8 80031BC8 00000000 */ nop -/* 0327CC 80031BCC D432DAC8 */ ldc1 $f18, %lo(D_800EDAC8)($at) -/* 0327D0 80031BD0 46321182 */ mul.d $f6, $f2, $f18 -/* 0327D4 80031BD4 4626003C */ c.lt.d $f0, $f6 -/* 0327D8 80031BD8 00000000 */ nop -/* 0327DC 80031BDC 45000023 */ bc1f .L80031C6C -/* 0327E0 80031BE0 00000000 */ nop -/* 0327E4 80031BE4 848F00C4 */ lh $t7, 0xc4($a0) -/* 0327E8 80031BE8 94820254 */ lhu $v0, 0x254($a0) -/* 0327EC 80031BEC 01E5001A */ div $zero, $t7, $a1 -/* 0327F0 80031BF0 0000C012 */ mflo $t8 -/* 0327F4 80031BF4 44982000 */ mtc1 $t8, $f4 -/* 0327F8 80031BF8 00026080 */ sll $t4, $v0, 2 -/* 0327FC 80031BFC 006C6821 */ addu $t5, $v1, $t4 -/* 032800 80031C00 468022A1 */ cvt.d.w $f10, $f4 -/* 032804 80031C04 8DAE0000 */ lw $t6, ($t5) -/* 032808 80031C08 01801025 */ move $v0, $t4 -/* 03280C 80031C0C 00C2C821 */ addu $t9, $a2, $v0 -/* 032810 80031C10 C5C80018 */ lwc1 $f8, 0x18($t6) -/* 032814 80031C14 462A7482 */ mul.d $f18, $f14, $f10 -/* 032818 80031C18 46004421 */ cvt.d.s $f16, $f8 -/* 03281C 80031C1C C7280000 */ lwc1 $f8, ($t9) -/* 032820 80031C20 14A00002 */ bnez $a1, .L80031C2C -/* 032824 80031C24 00000000 */ nop -/* 032828 80031C28 0007000D */ break 7 -.L80031C2C: -/* 03282C 80031C2C 2401FFFF */ li $at, -1 -/* 032830 80031C30 14A10004 */ bne $a1, $at, .L80031C44 -/* 032834 80031C34 3C018000 */ lui $at, 0x8000 -/* 032838 80031C38 15E10002 */ bne $t7, $at, .L80031C44 -/* 03283C 80031C3C 00000000 */ nop -/* 032840 80031C40 0006000D */ break 6 -.L80031C44: -/* 032844 80031C44 46328180 */ add.d $f6, $f16, $f18 -/* 032848 80031C48 46004121 */ cvt.d.s $f4, $f8 -/* 03284C 80031C4C C4880214 */ lwc1 $f8, 0x214($a0) -/* 032850 80031C50 46243282 */ mul.d $f10, $f6, $f4 -/* 032854 80031C54 460040A1 */ cvt.d.s $f2, $f8 -/* 032858 80031C58 462A0400 */ add.d $f16, $f0, $f10 -/* 03285C 80031C5C 462084A0 */ cvt.s.d $f18, $f16 -/* 032860 80031C60 E492009C */ swc1 $f18, 0x9c($a0) -/* 032864 80031C64 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 032868 80031C68 46006021 */ cvt.d.s $f0, $f12 -.L80031C6C: -/* 03286C 80031C6C 3C01800F */ lui $at, %hi(D_800EDAD0) -/* 032870 80031C70 D426DAD0 */ ldc1 $f6, %lo(D_800EDAD0)($at) -/* 032874 80031C74 3C01800F */ lui $at, %hi(D_800EDAD8) -/* 032878 80031C78 46261102 */ mul.d $f4, $f2, $f6 -/* 03287C 80031C7C 4620203E */ c.le.d $f4, $f0 -/* 032880 80031C80 00000000 */ nop -/* 032884 80031C84 45000029 */ bc1f .L80031D2C -/* 032888 80031C88 00000000 */ nop -/* 03288C 80031C8C D42ADAD8 */ ldc1 $f10, %lo(D_800EDAD8)($at) -/* 032890 80031C90 462A1402 */ mul.d $f16, $f2, $f10 -/* 032894 80031C94 4630003C */ c.lt.d $f0, $f16 -/* 032898 80031C98 00000000 */ nop -/* 03289C 80031C9C 45000023 */ bc1f .L80031D2C -/* 0328A0 80031CA0 00000000 */ nop -/* 0328A4 80031CA4 848B00C4 */ lh $t3, 0xc4($a0) -/* 0328A8 80031CA8 94820254 */ lhu $v0, 0x254($a0) -/* 0328AC 80031CAC 0165001A */ div $zero, $t3, $a1 -/* 0328B0 80031CB0 00006012 */ mflo $t4 -/* 0328B4 80031CB4 448C3000 */ mtc1 $t4, $f6 -/* 0328B8 80031CB8 00024080 */ sll $t0, $v0, 2 -/* 0328BC 80031CBC 00684821 */ addu $t1, $v1, $t0 -/* 0328C0 80031CC0 46803121 */ cvt.d.w $f4, $f6 -/* 0328C4 80031CC4 8D2A0000 */ lw $t2, ($t1) -/* 0328C8 80031CC8 01001025 */ move $v0, $t0 -/* 0328CC 80031CCC 00C26821 */ addu $t5, $a2, $v0 -/* 0328D0 80031CD0 C552001C */ lwc1 $f18, 0x1c($t2) -/* 0328D4 80031CD4 46247282 */ mul.d $f10, $f14, $f4 -/* 0328D8 80031CD8 46009221 */ cvt.d.s $f8, $f18 -/* 0328DC 80031CDC C5B20000 */ lwc1 $f18, ($t5) -/* 0328E0 80031CE0 14A00002 */ bnez $a1, .L80031CEC -/* 0328E4 80031CE4 00000000 */ nop -/* 0328E8 80031CE8 0007000D */ break 7 -.L80031CEC: -/* 0328EC 80031CEC 2401FFFF */ li $at, -1 -/* 0328F0 80031CF0 14A10004 */ bne $a1, $at, .L80031D04 -/* 0328F4 80031CF4 3C018000 */ lui $at, 0x8000 -/* 0328F8 80031CF8 15610002 */ bne $t3, $at, .L80031D04 -/* 0328FC 80031CFC 00000000 */ nop -/* 032900 80031D00 0006000D */ break 6 -.L80031D04: -/* 032904 80031D04 462A4400 */ add.d $f16, $f8, $f10 -/* 032908 80031D08 460091A1 */ cvt.d.s $f6, $f18 -/* 03290C 80031D0C C4920214 */ lwc1 $f18, 0x214($a0) -/* 032910 80031D10 46268102 */ mul.d $f4, $f16, $f6 -/* 032914 80031D14 460090A1 */ cvt.d.s $f2, $f18 -/* 032918 80031D18 46240200 */ add.d $f8, $f0, $f4 -/* 03291C 80031D1C 462042A0 */ cvt.s.d $f10, $f8 -/* 032920 80031D20 E48A009C */ swc1 $f10, 0x9c($a0) -/* 032924 80031D24 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 032928 80031D28 46006021 */ cvt.d.s $f0, $f12 -.L80031D2C: -/* 03292C 80031D2C 3C01800F */ lui $at, %hi(D_800EDAE0) -/* 032930 80031D30 D430DAE0 */ ldc1 $f16, %lo(D_800EDAE0)($at) -/* 032934 80031D34 3C01800F */ lui $at, %hi(D_800EDAE8) -/* 032938 80031D38 46301182 */ mul.d $f6, $f2, $f16 -/* 03293C 80031D3C 4620303E */ c.le.d $f6, $f0 -/* 032940 80031D40 00000000 */ nop -/* 032944 80031D44 45000029 */ bc1f .L80031DEC -/* 032948 80031D48 00000000 */ nop -/* 03294C 80031D4C D424DAE8 */ ldc1 $f4, %lo(D_800EDAE8)($at) -/* 032950 80031D50 46241202 */ mul.d $f8, $f2, $f4 -/* 032954 80031D54 4628003C */ c.lt.d $f0, $f8 -/* 032958 80031D58 00000000 */ nop -/* 03295C 80031D5C 45000023 */ bc1f .L80031DEC -/* 032960 80031D60 00000000 */ nop -/* 032964 80031D64 849900C4 */ lh $t9, 0xc4($a0) -/* 032968 80031D68 94820254 */ lhu $v0, 0x254($a0) -/* 03296C 80031D6C 0325001A */ div $zero, $t9, $a1 -/* 032970 80031D70 00004012 */ mflo $t0 -/* 032974 80031D74 44888000 */ mtc1 $t0, $f16 -/* 032978 80031D78 00027080 */ sll $t6, $v0, 2 -/* 03297C 80031D7C 006E7821 */ addu $t7, $v1, $t6 -/* 032980 80031D80 468081A1 */ cvt.d.w $f6, $f16 -/* 032984 80031D84 8DF80000 */ lw $t8, ($t7) -/* 032988 80031D88 01C01025 */ move $v0, $t6 -/* 03298C 80031D8C 00C24821 */ addu $t1, $a2, $v0 -/* 032990 80031D90 C70A0020 */ lwc1 $f10, 0x20($t8) -/* 032994 80031D94 46267102 */ mul.d $f4, $f14, $f6 -/* 032998 80031D98 460054A1 */ cvt.d.s $f18, $f10 -/* 03299C 80031D9C C52A0000 */ lwc1 $f10, ($t1) -/* 0329A0 80031DA0 14A00002 */ bnez $a1, .L80031DAC -/* 0329A4 80031DA4 00000000 */ nop -/* 0329A8 80031DA8 0007000D */ break 7 -.L80031DAC: -/* 0329AC 80031DAC 2401FFFF */ li $at, -1 -/* 0329B0 80031DB0 14A10004 */ bne $a1, $at, .L80031DC4 -/* 0329B4 80031DB4 3C018000 */ lui $at, 0x8000 -/* 0329B8 80031DB8 17210002 */ bne $t9, $at, .L80031DC4 -/* 0329BC 80031DBC 00000000 */ nop -/* 0329C0 80031DC0 0006000D */ break 6 -.L80031DC4: -/* 0329C4 80031DC4 46249200 */ add.d $f8, $f18, $f4 -/* 0329C8 80031DC8 46005421 */ cvt.d.s $f16, $f10 -/* 0329CC 80031DCC C48A0214 */ lwc1 $f10, 0x214($a0) -/* 0329D0 80031DD0 46304182 */ mul.d $f6, $f8, $f16 -/* 0329D4 80031DD4 460050A1 */ cvt.d.s $f2, $f10 -/* 0329D8 80031DD8 46260480 */ add.d $f18, $f0, $f6 -/* 0329DC 80031DDC 46209120 */ cvt.s.d $f4, $f18 -/* 0329E0 80031DE0 E484009C */ swc1 $f4, 0x9c($a0) -/* 0329E4 80031DE4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 0329E8 80031DE8 46006021 */ cvt.d.s $f0, $f12 -.L80031DEC: -/* 0329EC 80031DEC 3C01800F */ lui $at, %hi(D_800EDAF0) -/* 0329F0 80031DF0 D428DAF0 */ ldc1 $f8, %lo(D_800EDAF0)($at) -/* 0329F4 80031DF4 46281402 */ mul.d $f16, $f2, $f8 -/* 0329F8 80031DF8 4620803E */ c.le.d $f16, $f0 -/* 0329FC 80031DFC 00000000 */ nop -/* 032A00 80031E00 45020025 */ bc1fl .L80031E98 -/* 032A04 80031E04 44800000 */ mtc1 $zero, $f0 -/* 032A08 80031E08 4622003E */ c.le.d $f0, $f2 -/* 032A0C 80031E0C 00000000 */ nop -/* 032A10 80031E10 45020021 */ bc1fl .L80031E98 -/* 032A14 80031E14 44800000 */ mtc1 $zero, $f0 -/* 032A18 80031E18 848D00C4 */ lh $t5, 0xc4($a0) -/* 032A1C 80031E1C 94820254 */ lhu $v0, 0x254($a0) -/* 032A20 80031E20 01A5001A */ div $zero, $t5, $a1 -/* 032A24 80031E24 00007012 */ mflo $t6 -/* 032A28 80031E28 448E2000 */ mtc1 $t6, $f4 -/* 032A2C 80031E2C 00025080 */ sll $t2, $v0, 2 -/* 032A30 80031E30 006A5821 */ addu $t3, $v1, $t2 -/* 032A34 80031E34 468022A1 */ cvt.d.w $f10, $f4 -/* 032A38 80031E38 8D6C0000 */ lw $t4, ($t3) -/* 032A3C 80031E3C 01401025 */ move $v0, $t2 -/* 032A40 80031E40 00C27821 */ addu $t7, $a2, $v0 -/* 032A44 80031E44 C5860024 */ lwc1 $f6, 0x24($t4) -/* 032A48 80031E48 462A7202 */ mul.d $f8, $f14, $f10 -/* 032A4C 80031E4C 460034A1 */ cvt.d.s $f18, $f6 -/* 032A50 80031E50 C5E60000 */ lwc1 $f6, ($t7) -/* 032A54 80031E54 14A00002 */ bnez $a1, .L80031E60 -/* 032A58 80031E58 00000000 */ nop -/* 032A5C 80031E5C 0007000D */ break 7 -.L80031E60: -/* 032A60 80031E60 2401FFFF */ li $at, -1 -/* 032A64 80031E64 14A10004 */ bne $a1, $at, .L80031E78 -/* 032A68 80031E68 3C018000 */ lui $at, 0x8000 -/* 032A6C 80031E6C 15A10002 */ bne $t5, $at, .L80031E78 -/* 032A70 80031E70 00000000 */ nop -/* 032A74 80031E74 0006000D */ break 6 -.L80031E78: -/* 032A78 80031E78 46289400 */ add.d $f16, $f18, $f8 -/* 032A7C 80031E7C 46003121 */ cvt.d.s $f4, $f6 -/* 032A80 80031E80 46248282 */ mul.d $f10, $f16, $f4 -/* 032A84 80031E84 462A0480 */ add.d $f18, $f0, $f10 -/* 032A88 80031E88 46209220 */ cvt.s.d $f8, $f18 -/* 032A8C 80031E8C E488009C */ swc1 $f8, 0x9c($a0) -/* 032A90 80031E90 C48C009C */ lwc1 $f12, 0x9c($a0) -.L80031E94: -/* 032A94 80031E94 44800000 */ mtc1 $zero, $f0 -.L80031E98: -/* 032A98 80031E98 00072E00 */ sll $a1, $a3, 0x18 -/* 032A9C 80031E9C 00056603 */ sra $t4, $a1, 0x18 -/* 032AA0 80031EA0 4600603C */ c.lt.s $f12, $f0 -/* 032AA4 80031EA4 01802825 */ move $a1, $t4 -/* 032AA8 80031EA8 45020004 */ bc1fl .L80031EBC -/* 032AAC 80031EAC C4800214 */ lwc1 $f0, 0x214($a0) -/* 032AB0 80031EB0 E480009C */ swc1 $f0, 0x9c($a0) -/* 032AB4 80031EB4 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 032AB8 80031EB8 C4800214 */ lwc1 $f0, 0x214($a0) -.L80031EBC: -/* 032ABC 80031EBC 460C003E */ c.le.s $f0, $f12 -/* 032AC0 80031EC0 00000000 */ nop -/* 032AC4 80031EC4 45020003 */ bc1fl .L80031ED4 -/* 032AC8 80031EC8 8C8200BC */ lw $v0, 0xbc($a0) -/* 032ACC 80031ECC E480009C */ swc1 $f0, 0x9c($a0) -/* 032AD0 80031ED0 8C8200BC */ lw $v0, 0xbc($a0) -.L80031ED4: -/* 032AD4 80031ED4 30580008 */ andi $t8, $v0, 8 -/* 032AD8 80031ED8 13000003 */ beqz $t8, .L80031EE8 -/* 032ADC 80031EDC 0002C840 */ sll $t9, $v0, 1 -/* 032AE0 80031EE0 07230008 */ bgezl $t9, .L80031F04 -/* 032AE4 80031EE4 84880044 */ lh $t0, 0x44($a0) -.L80031EE8: -/* 032AE8 80031EE8 C48C009C */ lwc1 $f12, 0x9c($a0) -/* 032AEC 80031EEC 3C0141C8 */ li $at, 0x41C80000 # 25.000000 -/* 032AF0 80031EF0 44818000 */ mtc1 $at, $f16 -/* 032AF4 80031EF4 460C6182 */ mul.s $f6, $f12, $f12 -/* 032AF8 80031EF8 46103103 */ div.s $f4, $f6, $f16 -/* 032AFC 80031EFC E484008C */ swc1 $f4, 0x8c($a0) -/* 032B00 80031F00 84880044 */ lh $t0, 0x44($a0) -.L80031F04: -/* 032B04 80031F04 8C8A000C */ lw $t2, 0xc($a0) -/* 032B08 80031F08 35090020 */ ori $t1, $t0, 0x20 -/* 032B0C 80031F0C 000A58C0 */ sll $t3, $t2, 3 -/* 032B10 80031F10 05610009 */ bgez $t3, .L80031F38 -/* 032B14 80031F14 A4890044 */ sh $t1, 0x44($a0) -/* 032B18 80031F18 0C023C41 */ jal func_8008F104 -/* 032B1C 80031F1C AFA40018 */ sw $a0, 0x18($sp) -/* 032B20 80031F20 8FA40018 */ lw $a0, 0x18($sp) -/* 032B24 80031F24 3C01EFFF */ lui $at, (0xEFFFFFFF >> 16) # lui $at, 0xefff -/* 032B28 80031F28 3421FFFF */ ori $at, (0xEFFFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 032B2C 80031F2C 8C8D000C */ lw $t5, 0xc($a0) -/* 032B30 80031F30 01A17024 */ and $t6, $t5, $at -/* 032B34 80031F34 AC8E000C */ sw $t6, 0xc($a0) -.L80031F38: -/* 032B38 80031F38 8FBF0014 */ lw $ra, 0x14($sp) -/* 032B3C 80031F3C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 032B40 80031F40 03E00008 */ jr $ra -/* 032B44 80031F44 00000000 */ nop diff --git a/src/code_80027D00.c b/src/code_80027D00.c index 05ab03a8a..c4cf51178 100644 --- a/src/code_80027D00.c +++ b/src/code_80027D00.c @@ -2,7 +2,9 @@ #include #include #include "variables.h" +#include "kart_attributes.h" #include "code_80027D00.h" +#include "code_8008C1D0.h" // func_80027D00 s32 get_player_index_for_player(Player *player) { @@ -4583,6 +4585,8 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030A34.s") #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 +// This is likely the function responsible for detecting triple-tap "A" +// for "fast" acceleration void func_80030C34(s32 arg0) { s32 sp4; s32 *temp_a0; @@ -4675,6 +4679,8 @@ GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030C34.s") #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 +// This is likely the function responsible for detecting triple-tap "A" +// for "fast" acceleration void func_80030E00(s32 arg0) { s32 sp4; s32 *temp_a0; @@ -4765,344 +4771,103 @@ void func_80030E00(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030E00.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s8 get_player_index_for_player(); // extern -? func_8008F104(f32, f64, void *, s8); // extern -extern f64 D_800ED9D8; -extern f64 D_800ED9E0; -extern f64 D_800ED9E8; -extern f64 D_800ED9F0; -extern f64 D_800ED9F8; -extern f64 D_800EDA00; -extern f64 D_800EDA08; -extern f64 D_800EDA10; -extern f64 D_800EDA18; -extern f64 D_800EDA20; -extern f64 D_800EDA28; -extern f64 D_800EDA30; -extern f64 D_800EDA38; -extern f64 D_800EDA40; -extern f64 D_800EDA48; -extern f64 D_800EDA50; -extern f64 D_800EDA58; -extern f64 D_800EDA60; -extern f64 D_800EDA68; -extern f64 D_800EDA70; -extern f64 D_800EDA78; -extern f64 D_800EDA80; -extern f64 D_800EDA88; -extern f64 D_800EDA90; -extern f64 D_800EDA98; -extern f64 D_800EDAA0; -extern f64 D_800EDAA8; -extern f64 D_800EDAB0; -extern f64 D_800EDAB8; -extern f64 D_800EDAC0; -extern f64 D_800EDAC8; -extern f64 D_800EDAD0; -extern f64 D_800EDAD8; -extern f64 D_800EDAE0; -extern f64 D_800EDAE8; -extern f64 D_800EDAF0; -extern ? gKartAccelerationTables; -extern ? gKartTable800E36B0; +/* +D_80165460 appears to track on a per-player index whether they're doing regular or "fast" accleration +"fast" acceleration is triggered by triple tapping "A" instead of just pressing-and-holding +gKartAccelerationTables may actually be something more like gKartJerkTables, with player->unk_09C being player accleration +gKartTable800E36B0 is some sort of per-character multiplier to the jerk that is only used when triple-tap "A" is used +player->unk_214 is possibly the max-acceleration allowed +No speculation on what player->unk_0C4 could be +*/ +void func_80030FC8(Player *player) { + f64 some_multiplier; + s32 player_index; -void func_80030FC8(void *arg0) { - f32 temp_f0_3; - f32 temp_f12; - f32 temp_f12_10; - f32 temp_f12_11; - f32 temp_f12_12; - f32 temp_f12_13; - f32 temp_f12_14; - f32 temp_f12_15; - f32 temp_f12_16; - f32 temp_f12_17; - f32 temp_f12_2; - f32 temp_f12_3; - f32 temp_f12_4; - f32 temp_f12_5; - f32 temp_f12_6; - f32 temp_f12_7; - f32 temp_f12_8; - f32 temp_f12_9; - f64 temp_f0; - f64 temp_f0_2; - f64 temp_f14; - f64 temp_f14_2; - f64 temp_f2; - f64 temp_f2_2; - s32 temp_t0; - s32 temp_t0_2; - s32 temp_t2; - s32 temp_t2_2; - s32 temp_t4; - s32 temp_t4_2; - s32 temp_t6; - s32 temp_t6_2; - s32 temp_t8; - s32 temp_t8_2; - s32 temp_v0_2; - s8 temp_a1; - s8 temp_v0; - void *temp_a0; - f64 phi_f0; - f64 phi_f2; - f64 phi_f0_2; - f64 phi_f2_2; - f64 phi_f0_3; - f64 phi_f2_3; - f64 phi_f0_4; - f64 phi_f2_4; - f64 phi_f0_5; - f64 phi_f2_5; - f64 phi_f0_6; - f64 phi_f2_6; - f64 phi_f0_7; - f64 phi_f2_7; - f64 phi_f0_8; - f64 phi_f2_8; - f64 phi_f0_9; - f64 phi_f0_10; - f64 phi_f2_9; - f64 phi_f0_11; - f64 phi_f2_10; - f64 phi_f0_12; - f64 phi_f2_11; - f64 phi_f0_13; - f64 phi_f2_12; - f64 phi_f0_14; - f64 phi_f2_13; - f64 phi_f0_15; - f64 phi_f2_14; - f64 phi_f0_16; - f64 phi_f2_15; - f64 phi_f0_17; - f64 phi_f2_16; - f64 phi_f0_18; - f32 phi_f12; - f32 phi_f12_2; - f32 phi_f12_3; - f64 phi_f14; - - temp_v0 = get_player_index_for_player(); - temp_a0 = arg0; - if (D_80165460[temp_v0] == 0) { - temp_f0 = temp_a0->unk9C; - phi_f0 = temp_f0; - if ((temp_f0 >= 0.0) && (temp_f0 < (temp_a0->unk214 * D_800ED9D8))) { - temp_a0->unk9C = temp_f0 + (**(&gKartAccelerationTables + (temp_a0->unk254 * 4)) + (D_800ED9E0 * (temp_a0->unkC4 / 0xB6))); - phi_f0 = temp_a0->unk9C; + player_index = get_player_index_for_player(player); + if (D_80165460[player_index] == 0) { + if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800ED9D8))) { + some_multiplier = D_800ED9E0; + player->unk_09C += gKartAccelerationTables[player->characterId][0] + (some_multiplier * (player->unk_0C4 / 182)); } - temp_f14 = D_800ED9E8; - temp_f2 = temp_a0->unk214; - phi_f2 = temp_f2; - phi_f0_2 = phi_f0; - phi_f14 = temp_f14; - phi_f14 = temp_f14; - phi_f12 = temp_a0->unk9C; - if (((temp_f2 * D_800ED9F0) <= phi_f0) && (phi_f0 < (temp_f2 * D_800ED9F8))) { - temp_a0->unk9C = phi_f0 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk4 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12 = temp_a0->unk9C; - phi_f2 = temp_a0->unk214; - phi_f0_2 = temp_f12; - phi_f12 = temp_f12; + some_multiplier = D_800ED9E8; + if (((player->unk_214 * D_800ED9F0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800ED9F8))) { + player->unk_09C += gKartAccelerationTables[player->characterId][1] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_2 = phi_f2; - phi_f0_3 = phi_f0_2; - if (((phi_f2 * D_800EDA00) <= phi_f0_2) && (phi_f0_2 < (phi_f2 * D_800EDA08))) { - temp_a0->unk9C = phi_f0_2 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk8 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_2 = temp_a0->unk9C; - phi_f2_2 = temp_a0->unk214; - phi_f0_3 = temp_f12_2; - phi_f12 = temp_f12_2; + if (((player->unk_214 * D_800EDA00) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA08))) { + player->unk_09C += gKartAccelerationTables[player->characterId][2] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_3 = phi_f2_2; - phi_f0_4 = phi_f0_3; - if (((phi_f2_2 * D_800EDA10) <= phi_f0_3) && (phi_f0_3 < (phi_f2_2 * D_800EDA18))) { - temp_a0->unk9C = phi_f0_3 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unkC + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_3 = temp_a0->unk9C; - phi_f2_3 = temp_a0->unk214; - phi_f0_4 = temp_f12_3; - phi_f12 = temp_f12_3; + if (((player->unk_214 * D_800EDA10) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA18))) { + player->unk_09C += gKartAccelerationTables[player->characterId][3] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_4 = phi_f2_3; - phi_f0_5 = phi_f0_4; - if (((phi_f2_3 * D_800EDA20) <= phi_f0_4) && (phi_f0_4 < (phi_f2_3 * 0.5))) { - temp_a0->unk9C = phi_f0_4 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk10 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_4 = temp_a0->unk9C; - phi_f2_4 = temp_a0->unk214; - phi_f0_5 = temp_f12_4; - phi_f12 = temp_f12_4; + if (((player->unk_214 * D_800EDA20) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5 ))) { + player->unk_09C += gKartAccelerationTables[player->characterId][4] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_5 = phi_f2_4; - phi_f0_6 = phi_f0_5; - if (((phi_f2_4 * 0.5) <= phi_f0_5) && (phi_f0_5 < (phi_f2_4 * D_800EDA28))) { - temp_a0->unk9C = phi_f0_5 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk14 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_5 = temp_a0->unk9C; - phi_f2_5 = temp_a0->unk214; - phi_f0_6 = temp_f12_5; - phi_f12 = temp_f12_5; + if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA28))) { + player->unk_09C += gKartAccelerationTables[player->characterId][5] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_6 = phi_f2_5; - phi_f0_7 = phi_f0_6; - if (((phi_f2_5 * D_800EDA30) <= phi_f0_6) && (phi_f0_6 < (phi_f2_5 * D_800EDA38))) { - temp_a0->unk9C = phi_f0_6 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk18 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_6 = temp_a0->unk9C; - phi_f2_6 = temp_a0->unk214; - phi_f0_7 = temp_f12_6; - phi_f12 = temp_f12_6; + if (((player->unk_214 * D_800EDA30) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA38))) { + player->unk_09C += gKartAccelerationTables[player->characterId][6] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_7 = phi_f2_6; - phi_f0_8 = phi_f0_7; - if (((phi_f2_6 * D_800EDA40) <= phi_f0_7) && (phi_f0_7 < (phi_f2_6 * D_800EDA48))) { - temp_a0->unk9C = phi_f0_7 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk1C + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_7 = temp_a0->unk9C; - phi_f2_7 = temp_a0->unk214; - phi_f0_8 = temp_f12_7; - phi_f12 = temp_f12_7; + if (((player->unk_214 * D_800EDA40) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA48))) { + player->unk_09C += gKartAccelerationTables[player->characterId][7] + (some_multiplier * (player->unk_0C4 / 182)); } - phi_f2_8 = phi_f2_7; - phi_f0_9 = phi_f0_8; - if (((phi_f2_7 * D_800EDA50) <= phi_f0_8) && (phi_f0_8 < (phi_f2_7 * D_800EDA58))) { - temp_a0->unk9C = phi_f0_8 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk20 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - temp_f12_8 = temp_a0->unk9C; - phi_f2_8 = temp_a0->unk214; - phi_f0_9 = temp_f12_8; - phi_f12 = temp_f12_8; + if (((player->unk_214 * D_800EDA50) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA58))) { + player->unk_09C += gKartAccelerationTables[player->characterId][8] + (some_multiplier * (player->unk_0C4 / 182)); } - if (((phi_f2_8 * D_800EDA60) <= phi_f0_9) && (phi_f0_9 <= phi_f2_8)) { - temp_a0->unk9C = phi_f0_9 + ((*(&gKartAccelerationTables + (temp_a0->unk254 * 4)))->unk24 + (temp_f14 * (temp_a0->unkC4 / 0xB6))); - goto block_61; + if (((player->unk_214 * D_800EDA60) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0 ))) { + player->unk_09C += gKartAccelerationTables[player->characterId][9] + (some_multiplier * (player->unk_0C4 / 182)); } } else { - temp_f0_2 = temp_a0->unk9C; - phi_f0_10 = temp_f0_2; - if ((temp_f0_2 >= 0.0) && (temp_f0_2 < (temp_a0->unk214 * D_800EDA68))) { - temp_t8 = temp_a0->unk254 * 4; - temp_a0->unk9C = temp_f0_2 + ((**(&gKartAccelerationTables + temp_t8) + (D_800EDA70 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t8)); - phi_f0_10 = temp_a0->unk9C; + if ((0.0 <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA68))) { + some_multiplier = D_800EDA70; + player->unk_09C += (gKartAccelerationTables[player->characterId][0] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - temp_f14_2 = D_800EDA78; - temp_f2_2 = temp_a0->unk214; - phi_f2_9 = temp_f2_2; - phi_f0_11 = phi_f0_10; - phi_f14 = temp_f14_2; - phi_f14 = temp_f14_2; - phi_f12 = temp_a0->unk9C; - if (((temp_f2_2 * D_800EDA80) <= phi_f0_10) && (phi_f0_10 < (temp_f2_2 * D_800EDA88))) { - temp_t4 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_10 + (((*(&gKartAccelerationTables + temp_t4))->unk4 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t4)); - temp_f12_9 = temp_a0->unk9C; - phi_f2_9 = temp_a0->unk214; - phi_f0_11 = temp_f12_9; - phi_f12 = temp_f12_9; + some_multiplier = D_800EDA78; + if (((player->unk_214 * D_800EDA80) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA88))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][1] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_10 = phi_f2_9; - phi_f0_12 = phi_f0_11; - if (((phi_f2_9 * D_800EDA90) <= phi_f0_11) && (phi_f0_11 < (phi_f2_9 * D_800EDA98))) { - temp_t0 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_11 + (((*(&gKartAccelerationTables + temp_t0))->unk8 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t0)); - temp_f12_10 = temp_a0->unk9C; - phi_f2_10 = temp_a0->unk214; - phi_f0_12 = temp_f12_10; - phi_f12 = temp_f12_10; + if (((player->unk_214 * D_800EDA90) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDA98))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][2] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_11 = phi_f2_10; - phi_f0_13 = phi_f0_12; - if (((phi_f2_10 * D_800EDAA0) <= phi_f0_12) && (phi_f0_12 < (phi_f2_10 * D_800EDAA8))) { - temp_t6 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_12 + (((*(&gKartAccelerationTables + temp_t6))->unkC + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t6)); - temp_f12_11 = temp_a0->unk9C; - phi_f2_11 = temp_a0->unk214; - phi_f0_13 = temp_f12_11; - phi_f12 = temp_f12_11; + if (((player->unk_214 * D_800EDAA0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAA8))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][3] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_12 = phi_f2_11; - phi_f0_14 = phi_f0_13; - if (((phi_f2_11 * D_800EDAB0) <= phi_f0_13) && (phi_f0_13 < (phi_f2_11 * 0.5))) { - temp_t2 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_13 + (((*(&gKartAccelerationTables + temp_t2))->unk10 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t2)); - temp_f12_12 = temp_a0->unk9C; - phi_f2_12 = temp_a0->unk214; - phi_f0_14 = temp_f12_12; - phi_f12 = temp_f12_12; + if (((player->unk_214 * D_800EDAB0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * 0.5 ))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][4] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_13 = phi_f2_12; - phi_f0_15 = phi_f0_14; - if (((phi_f2_12 * 0.5) <= phi_f0_14) && (phi_f0_14 < (phi_f2_12 * D_800EDAB8))) { - temp_t8_2 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_14 + (((*(&gKartAccelerationTables + temp_t8_2))->unk14 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t8_2)); - temp_f12_13 = temp_a0->unk9C; - phi_f2_13 = temp_a0->unk214; - phi_f0_15 = temp_f12_13; - phi_f12 = temp_f12_13; + if (((player->unk_214 * 0.5) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAB8))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][5] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_14 = phi_f2_13; - phi_f0_16 = phi_f0_15; - if (((phi_f2_13 * D_800EDAC0) <= phi_f0_15) && (phi_f0_15 < (phi_f2_13 * D_800EDAC8))) { - temp_t4_2 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_15 + (((*(&gKartAccelerationTables + temp_t4_2))->unk18 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t4_2)); - temp_f12_14 = temp_a0->unk9C; - phi_f2_14 = temp_a0->unk214; - phi_f0_16 = temp_f12_14; - phi_f12 = temp_f12_14; + if (((player->unk_214 * D_800EDAC0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAC8))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][6] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_15 = phi_f2_14; - phi_f0_17 = phi_f0_16; - if (((phi_f2_14 * D_800EDAD0) <= phi_f0_16) && (phi_f0_16 < (phi_f2_14 * D_800EDAD8))) { - temp_t0_2 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_16 + (((*(&gKartAccelerationTables + temp_t0_2))->unk1C + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t0_2)); - temp_f12_15 = temp_a0->unk9C; - phi_f2_15 = temp_a0->unk214; - phi_f0_17 = temp_f12_15; - phi_f12 = temp_f12_15; + if (((player->unk_214 * D_800EDAD0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAD8))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][7] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } - phi_f2_16 = phi_f2_15; - phi_f0_18 = phi_f0_17; - if (((phi_f2_15 * D_800EDAE0) <= phi_f0_17) && (phi_f0_17 < (phi_f2_15 * D_800EDAE8))) { - temp_t6_2 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_17 + (((*(&gKartAccelerationTables + temp_t6_2))->unk20 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t6_2)); - temp_f12_16 = temp_a0->unk9C; - phi_f2_16 = temp_a0->unk214; - phi_f0_18 = temp_f12_16; - phi_f12 = temp_f12_16; + if (((player->unk_214 * D_800EDAE0) <= player->unk_09C) && (player->unk_09C < (player->unk_214 * D_800EDAE8))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][8] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; + // Only here to satisfy the compiler gods, may they bless us with byte-for-byte matches + if (1) { } if (1) { } if (1) { } if (1) { } if (1) { } } - if (((phi_f2_16 * D_800EDAF0) <= phi_f0_18) && (phi_f0_18 <= phi_f2_16)) { - temp_t2_2 = temp_a0->unk254 * 4; - temp_a0->unk9C = phi_f0_18 + (((*(&gKartAccelerationTables + temp_t2_2))->unk24 + (temp_f14_2 * (temp_a0->unkC4 / 0xB6))) * *(&gKartTable800E36B0 + temp_t2_2)); -block_61: - phi_f12 = temp_a0->unk9C; + if (((player->unk_214 * D_800EDAF0) <= player->unk_09C) && (player->unk_09C <= (player->unk_214 * 1.0 ))) { + player->unk_09C += (gKartAccelerationTables[player->characterId][9] + (some_multiplier * (player->unk_0C4 / 182))) * gKartTable800E36B0[player->characterId]; } } - temp_a1 = temp_v0; - phi_f12_2 = phi_f12; - if (phi_f12 < 0.0f) { - temp_a0->unk9C = 0.0f; - phi_f12_2 = temp_a0->unk9C; + if (player->unk_09C < 0.0f) { + player->unk_09C = 0.0f; } - temp_f0_3 = temp_a0->unk214; - phi_f12_3 = phi_f12_2; - if (temp_f0_3 <= phi_f12_2) { - temp_a0->unk9C = temp_f0_3; + if (player->unk_214 <= player->unk_09C) { + player->unk_09C = player->unk_214; } - temp_v0_2 = temp_a0->unkBC; - if (((temp_v0_2 & 8) == 0) || ((temp_v0_2 * 2) < 0)) { - temp_f12_17 = temp_a0->unk9C; - temp_a0->unk8C = (temp_f12_17 * temp_f12_17) / 25.0f; - phi_f12_3 = temp_f12_17; + if (((player->unk_0BC & 8) == 0) || ((player->unk_0BC * 2) < 0)) { + player->unk_08C = (player->unk_09C * player->unk_09C) / 25.0f; } - temp_a0->unk44 = temp_a0->unk44 | 0x20; - if ((temp_a0->unkC * 8) < 0) { - arg0 = temp_a0; - func_8008F104(phi_f12_3, phi_f14, temp_a0, temp_a1); - arg0->unkC = arg0->unkC & 0xEFFFFFFF; + player->unk_044 |= 0x20; + if ((player->unk_00C * 8) < 0) { + func_8008F104(player, player_index); + player->unk_00C &= 0xEFFFFFFF; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80027D00/func_80030FC8.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 diff --git a/src/code_80027D00.h b/src/code_80027D00.h index 9cb890169..b8442f1f1 100644 --- a/src/code_80027D00.h +++ b/src/code_80027D00.h @@ -14,9 +14,48 @@ void func_800291E8(); void func_800291F0(); void func_800291F8(); void func_8002AAC0(Player*); +void func_80030FC8(Player*); /* This is where I'd put my static data, if I had any */ extern s16 D_80164AF0; +extern f64 D_800ED9D8; +extern f64 D_800ED9E0; +extern f64 D_800ED9E8; +extern f64 D_800ED9F0; +extern f64 D_800ED9F8; +extern f64 D_800EDA00; +extern f64 D_800EDA08; +extern f64 D_800EDA10; +extern f64 D_800EDA18; +extern f64 D_800EDA20; +extern f64 D_800EDA28; +extern f64 D_800EDA30; +extern f64 D_800EDA38; +extern f64 D_800EDA40; +extern f64 D_800EDA48; +extern f64 D_800EDA50; +extern f64 D_800EDA58; +extern f64 D_800EDA60; + +extern f64 D_800EDA68; +extern f64 D_800EDA70; +extern f64 D_800EDA78; +extern f64 D_800EDA80; +extern f64 D_800EDA88; +extern f64 D_800EDA90; +extern f64 D_800EDA98; +extern f64 D_800EDAA0; +extern f64 D_800EDAA8; +extern f64 D_800EDAB0; +extern f64 D_800EDAB8; +extern f64 D_800EDAC0; +extern f64 D_800EDAC8; +extern f64 D_800EDAD0; +extern f64 D_800EDAD8; +extern f64 D_800EDAE0; +extern f64 D_800EDAE8; +extern f64 D_800EDAF0; + #endif diff --git a/src/code_8008C1D0.h b/src/code_8008C1D0.h index 1731503d9..91a1fa1e0 100644 --- a/src/code_8008C1D0.h +++ b/src/code_8008C1D0.h @@ -20,6 +20,7 @@ void func_8008E884(Player*, s8); void func_8008EC34(Player*, s8); void func_8008EEC4(Player*); void func_8008F0E8(Player*); +void func_8008F104(Player*, s8); void func_8008F3E0(Player*); void func_8008F5A4(Player*, s8); void func_8008F86C(Player*, s8);