diff --git a/asm/non_matchings/game_ui/func_8009ECF0.s b/asm/non_matchings/game_ui/func_8009ECF0.s index c25c5e58..23a8bdb3 100644 --- a/asm/non_matchings/game_ui/func_8009ECF0.s +++ b/asm/non_matchings/game_ui/func_8009ECF0.s @@ -9,7 +9,7 @@ glabel func_8009ECF0 /* 09F90C 8009ED0C 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 /* 09F910 8009ED10 24636D0C */ addiu $v1, %lo(gHUDNumPlayers) # addiu $v1, $v1, 0x6d0c /* 09F914 8009ED14 AC620000 */ sw $v0, ($v1) -/* 09F918 8009ED18 0C01994B */ jal set_active_viewports_and_object_stack_cap +/* 09F918 8009ED18 0C01994B */ jal set_active_viewports_and_max /* 09F91C 8009ED1C 00402025 */ move $a0, $v0 /* 09F920 8009ED20 3C018012 */ lui $at, %hi(gNumActivePlayers) # $at, 0x8012 /* 09F924 8009ED24 0C01BAA4 */ jal get_settings diff --git a/asm/non_matchings/game_ui/func_8009F034.s b/asm/non_matchings/game_ui/func_8009F034.s index 9c3b70a2..0646ecb3 100644 --- a/asm/non_matchings/game_ui/func_8009F034.s +++ b/asm/non_matchings/game_ui/func_8009F034.s @@ -1,1117 +1,1117 @@ -.late_rodata -glabel D_800E86A8 -.double 0.6 -glabel D_800E86B0 -.double 1.2 -glabel D_800E86B8 -.float 263.0 -glabel D_800E86BC -.float 259.0 -glabel D_800E86C0 -.float 265.0 -.word 0 # padding -glabel D_800E86C8 -.double 1.2 -glabel D_800E86D0 -.double 0.6 -glabel D_800E86D8 -.double 1.2 -glabel D_800E86E0 -.double 0.6 -glabel D_800E86E8 -.double 1.2 -glabel D_800E86F0 -.double 0.6 - -.text -glabel func_8009F034 -/* 09FC34 8009F034 27BDFF68 */ addiu $sp, $sp, -0x98 -/* 09FC38 8009F038 AFBF0064 */ sw $ra, 0x64($sp) -/* 09FC3C 8009F03C AFBE0060 */ sw $fp, 0x60($sp) -/* 09FC40 8009F040 AFB7005C */ sw $s7, 0x5c($sp) -/* 09FC44 8009F044 AFB60058 */ sw $s6, 0x58($sp) -/* 09FC48 8009F048 AFB50054 */ sw $s5, 0x54($sp) -/* 09FC4C 8009F04C AFB40050 */ sw $s4, 0x50($sp) -/* 09FC50 8009F050 AFB3004C */ sw $s3, 0x4c($sp) -/* 09FC54 8009F054 AFB20048 */ sw $s2, 0x48($sp) -/* 09FC58 8009F058 AFB10044 */ sw $s1, 0x44($sp) -/* 09FC5C 8009F05C AFB00040 */ sw $s0, 0x40($sp) -/* 09FC60 8009F060 E7BD0038 */ swc1 $f29, 0x38($sp) -/* 09FC64 8009F064 E7BC003C */ swc1 $f28, 0x3c($sp) -/* 09FC68 8009F068 E7BB0030 */ swc1 $f27, 0x30($sp) -/* 09FC6C 8009F06C E7BA0034 */ swc1 $f26, 0x34($sp) -/* 09FC70 8009F070 E7B90028 */ swc1 $f25, 0x28($sp) -/* 09FC74 8009F074 E7B8002C */ swc1 $f24, 0x2c($sp) -/* 09FC78 8009F078 E7B70020 */ swc1 $f23, 0x20($sp) -/* 09FC7C 8009F07C E7B60024 */ swc1 $f22, 0x24($sp) -/* 09FC80 8009F080 E7B50018 */ swc1 $f21, 0x18($sp) -/* 09FC84 8009F084 0C01AF66 */ jal get_current_level_race_type -/* 09FC88 8009F088 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 09FC8C 8009F08C 240C0001 */ li $t4, 1 -/* 09FC90 8009F090 11820004 */ beq $t4, $v0, .L8009F0A4 -/* 09FC94 8009F094 3C108000 */ lui $s0, %hi(osTvType) # $s0, 0x8000 -/* 09FC98 8009F098 24010005 */ li $at, 5 -/* 09FC9C 8009F09C 14410007 */ bne $v0, $at, .L8009F0BC -/* 09FCA0 8009F0A0 3C0F8012 */ lui $t7, %hi(gHUDNumPlayers) # $t7, 0x8012 -.L8009F0A4: -/* 09FCA4 8009F0A4 3C018012 */ lui $at, %hi(D_80126D24) # $at, 0x8012 -/* 09FCA8 8009F0A8 AC206D24 */ sw $zero, %lo(D_80126D24)($at) -/* 09FCAC 8009F0AC 3C018012 */ lui $at, %hi(D_80126D34) # $at, 0x8012 -/* 09FCB0 8009F0B0 240E0001 */ li $t6, 1 -/* 09FCB4 8009F0B4 10000015 */ b .L8009F10C -/* 09FCB8 8009F0B8 A02E6D34 */ sb $t6, %lo(D_80126D34)($at) -.L8009F0BC: -/* 09FCBC 8009F0BC 8DEF6D0C */ lw $t7, %lo(gHUDNumPlayers)($t7) -/* 09FCC0 8009F0C0 24180140 */ li $t8, 320 -/* 09FCC4 8009F0C4 29E10002 */ slti $at, $t7, 2 -/* 09FCC8 8009F0C8 10200008 */ beqz $at, .L8009F0EC -/* 09FCCC 8009F0CC 241900C8 */ li $t9, 200 -/* 09FCD0 8009F0D0 3C018012 */ lui $at, %hi(D_80126D24) # $at, 0x8012 -/* 09FCD4 8009F0D4 AC386D24 */ sw $t8, %lo(D_80126D24)($at) -/* 09FCD8 8009F0D8 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 09FCDC 8009F0DC 44812000 */ mtc1 $at, $f4 -/* 09FCE0 8009F0E0 3C018012 */ lui $at, %hi(D_80126D30) # $at, 0x8012 -/* 09FCE4 8009F0E4 10000007 */ b .L8009F104 -/* 09FCE8 8009F0E8 E4246D30 */ swc1 $f4, %lo(D_80126D30)($at) -.L8009F0EC: -/* 09FCEC 8009F0EC 3C018012 */ lui $at, %hi(D_80126D24) # $at, 0x8012 -/* 09FCF0 8009F0F0 AC396D24 */ sw $t9, %lo(D_80126D24)($at) -/* 09FCF4 8009F0F4 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 09FCF8 8009F0F8 44813000 */ mtc1 $at, $f6 -/* 09FCFC 8009F0FC 3C018012 */ lui $at, %hi(D_80126D30) # $at, 0x8012 -/* 09FD00 8009F100 E4266D30 */ swc1 $f6, %lo(D_80126D30)($at) -.L8009F104: -/* 09FD04 8009F104 3C018012 */ lui $at, %hi(D_80126D34) # $at, 0x8012 -/* 09FD08 8009F108 A0206D34 */ sb $zero, %lo(D_80126D34)($at) -.L8009F10C: -/* 09FD0C 8009F10C 3C018012 */ lui $at, %hi(D_80126D2C) # $at, 0x8012 -/* 09FD10 8009F110 A4206D2C */ sh $zero, %lo(D_80126D2C)($at) -/* 09FD14 8009F114 3C018012 */ lui $at, %hi(gRaceStartShowHudStep) # $at, 0x8012 -/* 09FD18 8009F118 A0206CD4 */ sb $zero, %lo(gRaceStartShowHudStep)($at) -/* 09FD1C 8009F11C 3C018012 */ lui $at, %hi(gHideRaceTimer) # $at, 0x8012 -/* 09FD20 8009F120 A0206D36 */ sb $zero, %lo(gHideRaceTimer)($at) -/* 09FD24 8009F124 3C018012 */ lui $at, %hi(gWrongWayNagPrefix) # $at, 0x8012 -/* 09FD28 8009F128 A0206D38 */ sb $zero, %lo(gWrongWayNagPrefix)($at) -/* 09FD2C 8009F12C 3C018012 */ lui $at, %hi(D_80126D35) # $at, 0x8012 -/* 09FD30 8009F130 A0206D35 */ sb $zero, %lo(D_80126D35)($at) -/* 09FD34 8009F134 3C018012 */ lui $at, %hi(D_80126CD0) # $at, 0x8012 -/* 09FD38 8009F138 26100300 */ addiu $s0, %lo(osTvType) # addiu $s0, $s0, 0x300 -/* 09FD3C 8009F13C A0206CD0 */ sb $zero, %lo(D_80126CD0)($at) -/* 09FD40 8009F140 8E0E0000 */ lw $t6, ($s0) -/* 09FD44 8009F144 2419FF9C */ li $t9, -100 -/* 09FD48 8009F148 15C00005 */ bnez $t6, .L8009F160 -/* 09FD4C 8009F14C 24040078 */ li $a0, 120 -/* 09FD50 8009F150 240F003C */ li $t7, 60 -/* 09FD54 8009F154 3C018012 */ lui $at, %hi(D_8012718B) # $at, 0x8012 -/* 09FD58 8009F158 10000004 */ b .L8009F16C -/* 09FD5C 8009F15C A02F718B */ sb $t7, %lo(D_8012718B)($at) -.L8009F160: -/* 09FD60 8009F160 24180032 */ li $t8, 50 -/* 09FD64 8009F164 3C018012 */ lui $at, %hi(D_8012718B) # $at, 0x8012 -/* 09FD68 8009F168 A038718B */ sb $t8, %lo(D_8012718B)($at) -.L8009F16C: -/* 09FD6C 8009F16C 3C018012 */ lui $at, %hi(D_80126CD1) # $at, 0x8012 -/* 09FD70 8009F170 A0206CD1 */ sb $zero, %lo(D_80126CD1)($at) -/* 09FD74 8009F174 3C018012 */ lui $at, %hi(D_80126CD2) # $at, 0x8012 -/* 09FD78 8009F178 A0206CD2 */ sb $zero, %lo(D_80126CD2)($at) -/* 09FD7C 8009F17C 3C018012 */ lui $at, %hi(D_80126CD5) # $at, 0x8012 -/* 09FD80 8009F180 A0206CD5 */ sb $zero, %lo(D_80126CD5)($at) -/* 09FD84 8009F184 3C018012 */ lui $at, %hi(D_80127189) # $at, 0x8012 -/* 09FD88 8009F188 A0207189 */ sb $zero, %lo(D_80127189)($at) -/* 09FD8C 8009F18C 3C018012 */ lui $at, %hi(D_80126D4C) # $at, 0x8012 -/* 09FD90 8009F190 AC396D4C */ sw $t9, %lo(D_80126D4C)($at) -/* 09FD94 8009F194 0C01BE53 */ jal get_random_number_from_range -/* 09FD98 8009F198 24050168 */ li $a1, 360 -/* 09FD9C 8009F19C 3C018012 */ lui $at, %hi(D_80126D50) # $at, 0x8012 -/* 09FDA0 8009F1A0 0C003856 */ jal func_8000E158 -/* 09FDA4 8009F1A4 AC226D50 */ sw $v0, %lo(D_80126D50)($at) -/* 09FDA8 8009F1A8 3C018012 */ lui $at, %hi(D_8012718A) # $at, 0x8012 -/* 09FDAC 8009F1AC A022718A */ sb $v0, %lo(D_8012718A)($at) -/* 09FDB0 8009F1B0 8E180000 */ lw $t8, ($s0) -/* 09FDB4 8009F1B4 3C038012 */ lui $v1, %hi(D_8012718C) # $v1, 0x8012 -/* 09FDB8 8009F1B8 3C048012 */ lui $a0, %hi(D_80127190) # $a0, 0x8012 -/* 09FDBC 8009F1BC 24847190 */ addiu $a0, %lo(D_80127190) # addiu $a0, $a0, 0x7190 -/* 09FDC0 8009F1C0 2463718C */ addiu $v1, %lo(D_8012718C) # addiu $v1, $v1, 0x718c -/* 09FDC4 8009F1C4 240E0037 */ li $t6, 55 -/* 09FDC8 8009F1C8 240F00B3 */ li $t7, 179 -/* 09FDCC 8009F1CC AC6E0000 */ sw $t6, ($v1) -/* 09FDD0 8009F1D0 17000006 */ bnez $t8, .L8009F1EC -/* 09FDD4 8009F1D4 AC8F0000 */ sw $t7, ($a0) -/* 09FDD8 8009F1D8 25EE001E */ addiu $t6, $t7, 0x1e -/* 09FDDC 8009F1DC 8C6F0000 */ lw $t7, ($v1) -/* 09FDE0 8009F1E0 AC8E0000 */ sw $t6, ($a0) -/* 09FDE4 8009F1E4 25F8FFFC */ addiu $t8, $t7, -4 -/* 09FDE8 8009F1E8 AC780000 */ sw $t8, ($v1) -.L8009F1EC: -/* 09FDEC 8009F1EC 0C006D90 */ jal func_8001B640 -/* 09FDF0 8009F1F0 00000000 */ nop -/* 09FDF4 8009F1F4 14400004 */ bnez $v0, .L8009F208 -/* 09FDF8 8009F1F8 240C0001 */ li $t4, 1 -/* 09FDFC 8009F1FC 3C018012 */ lui $at, %hi(D_80126D71) # $at, 0x8012 -/* 09FE00 8009F200 10000004 */ b .L8009F214 -/* 09FE04 8009F204 A0206D71 */ sb $zero, %lo(D_80126D71)($at) -.L8009F208: -/* 09FE08 8009F208 24190001 */ li $t9, 1 -/* 09FE0C 8009F20C 3C018012 */ lui $at, %hi(D_80126D71) # $at, 0x8012 -/* 09FE10 8009F210 A0396D71 */ sb $t9, %lo(D_80126D71)($at) -.L8009F214: -/* 09FE14 8009F214 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 -/* 09FE18 8009F218 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) -/* 09FE1C 8009F21C 24010003 */ li $at, 3 -/* 09FE20 8009F220 10410003 */ beq $v0, $at, .L8009F230 -/* 09FE24 8009F224 240E0004 */ li $t6, 4 -/* 09FE28 8009F228 10000002 */ b .L8009F234 -/* 09FE2C 8009F22C AFA2008C */ sw $v0, 0x8c($sp) -.L8009F230: -/* 09FE30 8009F230 AFAE008C */ sw $t6, 0x8c($sp) -.L8009F234: -/* 09FE34 8009F234 8FAF008C */ lw $t7, 0x8c($sp) -/* 09FE38 8009F238 00003825 */ move $a3, $zero -/* 09FE3C 8009F23C 19E00359 */ blez $t7, .L8009FFA4 -/* 09FE40 8009F240 3C188012 */ lui $t8, %hi(D_80126CE0) # $t8, 0x8012 -/* 09FE44 8009F244 3C01C268 */ li $at, 0xC2680000 # -58.000000 -/* 09FE48 8009F248 4481E000 */ mtc1 $at, $f28 -/* 09FE4C 8009F24C 3C01C2F0 */ li $at, 0xC2F00000 # -120.000000 -/* 09FE50 8009F250 4481D000 */ mtc1 $at, $f26 -/* 09FE54 8009F254 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 -/* 09FE58 8009F258 4481C000 */ mtc1 $at, $f24 -/* 09FE5C 8009F25C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 09FE60 8009F260 4481B000 */ mtc1 $at, $f22 -/* 09FE64 8009F264 3C0141E0 */ li $at, 0x41E00000 # 28.000000 -/* 09FE68 8009F268 4481A000 */ mtc1 $at, $f20 -/* 09FE6C 8009F26C 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 09FE70 8009F270 44818800 */ mtc1 $at, $f17 -/* 09FE74 8009F274 3C01800F */ lui $at, %hi(D_800E86A8 + 4) # $at, 0x800f -/* 09FE78 8009F278 27186CE0 */ addiu $t8, %lo(D_80126CE0) # addiu $t8, $t8, 0x6ce0 -/* 09FE7C 8009F27C 3C10800E */ lui $s0, %hi(D_800E25C4) # $s0, 0x800e -/* 09FE80 8009F280 3C098012 */ lui $t1, %hi(D_80126CF0) # $t1, 0x8012 -/* 09FE84 8009F284 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 -/* 09FE88 8009F288 C42F86A8 */ lwc1 $f15, %lo(D_800E86A8)($at) -/* 09FE8C 8009F28C C42E86AC */ lwc1 $f14, %lo(D_800E86A8 + 4)($at) -/* 09FE90 8009F290 44808000 */ mtc1 $zero, $f16 -/* 09FE94 8009F294 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc -/* 09FE98 8009F298 25296CF0 */ addiu $t1, %lo(D_80126CF0) # addiu $t1, $t1, 0x6cf0 -/* 09FE9C 8009F29C 261025C4 */ addiu $s0, %lo(D_800E25C4) # addiu $s0, $s0, 0x25c4 -/* 09FEA0 8009F2A0 AFB8006C */ sw $t8, 0x6c($sp) -/* 09FEA4 8009F2A4 241E0036 */ li $fp, 54 -/* 09FEA8 8009F2A8 2417001C */ li $s7, 28 -/* 09FEAC 8009F2AC 2416000C */ li $s6, 12 -/* 09FEB0 8009F2B0 2415000B */ li $s5, 11 -/* 09FEB4 8009F2B4 2414000F */ li $s4, 15 -/* 09FEB8 8009F2B8 24130004 */ li $s3, 4 -/* 09FEBC 8009F2BC 24120760 */ li $s2, 1888 -/* 09FEC0 8009F2C0 2411000A */ li $s1, 10 -/* 09FEC4 8009F2C4 241F0012 */ li $ra, 18 -/* 09FEC8 8009F2C8 240D0009 */ li $t5, 9 -/* 09FECC 8009F2CC 240B0002 */ li $t3, 2 -/* 09FED0 8009F2D0 240AFFFF */ li $t2, -1 -/* 09FED4 8009F2D4 3408C000 */ li $t0, 49152 -.L8009F2D8: -/* 09FED8 8009F2D8 8FB9006C */ lw $t9, 0x6c($sp) -/* 09FEDC 8009F2DC 3C02800E */ lui $v0, %hi(D_800E1E64) # $v0, 0x800e -/* 09FEE0 8009F2E0 8F2E0000 */ lw $t6, ($t9) -/* 09FEE4 8009F2E4 24421E64 */ addiu $v0, %lo(D_800E1E64) # addiu $v0, $v0, 0x1e64 -/* 09FEE8 8009F2E8 00001825 */ move $v1, $zero -/* 09FEEC 8009F2EC ACAE0000 */ sw $t6, ($a1) -.L8009F2F0: -/* 09FEF0 8009F2F0 8CAF0000 */ lw $t7, ($a1) -/* 09FEF4 8009F2F4 C448000C */ lwc1 $f8, 0xc($v0) -/* 09FEF8 8009F2F8 01E3C021 */ addu $t8, $t7, $v1 -/* 09FEFC 8009F2FC E708000C */ swc1 $f8, 0xc($t8) -/* 09FF00 8009F300 8CB90000 */ lw $t9, ($a1) -/* 09FF04 8009F304 C44A0010 */ lwc1 $f10, 0x10($v0) -/* 09FF08 8009F308 03237021 */ addu $t6, $t9, $v1 -/* 09FF0C 8009F30C E5CA0010 */ swc1 $f10, 0x10($t6) -/* 09FF10 8009F310 8CAF0000 */ lw $t7, ($a1) -/* 09FF14 8009F314 C4440014 */ lwc1 $f4, 0x14($v0) -/* 09FF18 8009F318 01E3C021 */ addu $t8, $t7, $v1 -/* 09FF1C 8009F31C E7040014 */ swc1 $f4, 0x14($t8) -/* 09FF20 8009F320 8CB90000 */ lw $t9, ($a1) -/* 09FF24 8009F324 C4460008 */ lwc1 $f6, 8($v0) -/* 09FF28 8009F328 03237021 */ addu $t6, $t9, $v1 -/* 09FF2C 8009F32C E5C60008 */ swc1 $f6, 8($t6) -/* 09FF30 8009F330 8CB80000 */ lw $t8, ($a1) -/* 09FF34 8009F334 844F0004 */ lh $t7, 4($v0) -/* 09FF38 8009F338 0303C821 */ addu $t9, $t8, $v1 -/* 09FF3C 8009F33C A72F0004 */ sh $t7, 4($t9) -/* 09FF40 8009F340 8CB80000 */ lw $t8, ($a1) -/* 09FF44 8009F344 844E0002 */ lh $t6, 2($v0) -/* 09FF48 8009F348 03037821 */ addu $t7, $t8, $v1 -/* 09FF4C 8009F34C A5EE0002 */ sh $t6, 2($t7) -/* 09FF50 8009F350 8CB80000 */ lw $t8, ($a1) -/* 09FF54 8009F354 84590000 */ lh $t9, ($v0) -/* 09FF58 8009F358 03037021 */ addu $t6, $t8, $v1 -/* 09FF5C 8009F35C A5D90000 */ sh $t9, ($t6) -/* 09FF60 8009F360 8CB80000 */ lw $t8, ($a1) -/* 09FF64 8009F364 844F0006 */ lh $t7, 6($v0) -/* 09FF68 8009F368 0303C821 */ addu $t9, $t8, $v1 -/* 09FF6C 8009F36C A72F0006 */ sh $t7, 6($t9) -/* 09FF70 8009F370 8CB80000 */ lw $t8, ($a1) -/* 09FF74 8009F374 844E0018 */ lh $t6, 0x18($v0) -/* 09FF78 8009F378 03037821 */ addu $t7, $t8, $v1 -/* 09FF7C 8009F37C A5EE0018 */ sh $t6, 0x18($t7) -/* 09FF80 8009F380 8CB80000 */ lw $t8, ($a1) -/* 09FF84 8009F384 8059001A */ lb $t9, 0x1a($v0) -/* 09FF88 8009F388 03037021 */ addu $t6, $t8, $v1 -/* 09FF8C 8009F38C A1D9001A */ sb $t9, 0x1a($t6) -/* 09FF90 8009F390 8CB80000 */ lw $t8, ($a1) -/* 09FF94 8009F394 804F001B */ lb $t7, 0x1b($v0) -/* 09FF98 8009F398 0303C821 */ addu $t9, $t8, $v1 -/* 09FF9C 8009F39C A32F001B */ sb $t7, 0x1b($t9) -/* 09FFA0 8009F3A0 8CB80000 */ lw $t8, ($a1) -/* 09FFA4 8009F3A4 804E001C */ lb $t6, 0x1c($v0) -/* 09FFA8 8009F3A8 03037821 */ addu $t7, $t8, $v1 -/* 09FFAC 8009F3AC A1EE001C */ sb $t6, 0x1c($t7) -/* 09FFB0 8009F3B0 8CB80000 */ lw $t8, ($a1) -/* 09FFB4 8009F3B4 8059001D */ lb $t9, 0x1d($v0) -/* 09FFB8 8009F3B8 24420020 */ addiu $v0, $v0, 0x20 -/* 09FFBC 8009F3BC 03037021 */ addu $t6, $t8, $v1 -/* 09FFC0 8009F3C0 24630020 */ addiu $v1, $v1, 0x20 -/* 09FFC4 8009F3C4 1450FFCA */ bne $v0, $s0, .L8009F2F0 -/* 09FFC8 8009F3C8 A1D9001D */ sb $t9, 0x1d($t6) -/* 09FFCC 8009F3CC 8CB80000 */ lw $t8, ($a1) -/* 09FFD0 8009F3D0 240F0005 */ li $t7, 5 -/* 09FFD4 8009F3D4 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 -/* 09FFD8 8009F3D8 A30F05DC */ sb $t7, 0x5dc($t8) -/* 09FFDC 8009F3DC 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) -/* 09FFE0 8009F3E0 3C014188 */ li $at, 0x41880000 # 17.000000 -/* 09FFE4 8009F3E4 15830084 */ bne $t4, $v1, .L8009F5F8 -/* 09FFE8 8009F3E8 00000000 */ nop -/* 09FFEC 8009F3EC 3C03800E */ lui $v1, %hi(D_800E25C4) # $v1, 0x800e -/* 09FFF0 8009F3F0 246225C4 */ addiu $v0, $v1, %lo(D_800E25C4) -/* 09FFF4 8009F3F4 84590000 */ lh $t9, ($v0) -/* 09FFF8 8009F3F8 44810000 */ mtc1 $at, $f0 -/* 09FFFC 8009F3FC 1159003F */ beq $t2, $t9, .L8009F4FC -/* 0A0000 8009F400 3C01800F */ lui $at, %hi(D_800E86B8) # $at, 0x800f -/* 0A0004 8009F404 3C0E800E */ lui $t6, %hi(D_800E25C4) # $t6, 0x800e -/* 0A0008 8009F408 25CE25C4 */ addiu $t6, %lo(D_800E25C4) # addiu $t6, $t6, 0x25c4 -/* 0A000C 8009F40C 85C40000 */ lh $a0, ($t6) -/* 0A0010 8009F410 00000000 */ nop -.L8009F414: -/* 0A0014 8009F414 844F0002 */ lh $t7, 2($v0) -/* 0A0018 8009F418 8CB80000 */ lw $t8, ($a1) -/* 0A001C 8009F41C 448F4000 */ mtc1 $t7, $f8 -/* 0A0020 8009F420 0004C940 */ sll $t9, $a0, 5 -/* 0A0024 8009F424 468042A0 */ cvt.s.w $f10, $f8 -/* 0A0028 8009F428 03197021 */ addu $t6, $t8, $t9 -/* 0A002C 8009F42C E5CA000C */ swc1 $f10, 0xc($t6) -/* 0A0030 8009F430 84580000 */ lh $t8, ($v0) -/* 0A0034 8009F434 8CAF0000 */ lw $t7, ($a1) -/* 0A0038 8009F438 0018C940 */ sll $t9, $t8, 5 -/* 0A003C 8009F43C 01F91821 */ addu $v1, $t7, $t9 -/* 0A0040 8009F440 84780006 */ lh $t8, 6($v1) -/* 0A0044 8009F444 8D2E0000 */ lw $t6, ($t1) -/* 0A0048 8009F448 00187840 */ sll $t7, $t8, 1 -/* 0A004C 8009F44C 01CFC821 */ addu $t9, $t6, $t7 -/* 0A0050 8009F450 87380000 */ lh $t8, ($t9) -/* 0A0054 8009F454 00000000 */ nop -/* 0A0058 8009F458 330EC000 */ andi $t6, $t8, 0xc000 -/* 0A005C 8009F45C 150E0012 */ bne $t0, $t6, .L8009F4A8 -/* 0A0060 8009F460 00000000 */ nop -/* 0A0064 8009F464 14E00008 */ bnez $a3, .L8009F488 -/* 0A0068 8009F468 00000000 */ nop -/* 0A006C 8009F46C 844F0004 */ lh $t7, 4($v0) -/* 0A0070 8009F470 00000000 */ nop -/* 0A0074 8009F474 448F2000 */ mtc1 $t7, $f4 -/* 0A0078 8009F478 00000000 */ nop -/* 0A007C 8009F47C 468021A0 */ cvt.s.w $f6, $f4 -/* 0A0080 8009F480 1000001A */ b .L8009F4EC -/* 0A0084 8009F484 E4660010 */ swc1 $f6, 0x10($v1) -.L8009F488: -/* 0A0088 8009F488 84590004 */ lh $t9, 4($v0) -/* 0A008C 8009F48C 00000000 */ nop -/* 0A0090 8009F490 2738006C */ addiu $t8, $t9, 0x6c -/* 0A0094 8009F494 44984000 */ mtc1 $t8, $f8 -/* 0A0098 8009F498 00000000 */ nop -/* 0A009C 8009F49C 468042A0 */ cvt.s.w $f10, $f8 -/* 0A00A0 8009F4A0 10000012 */ b .L8009F4EC -/* 0A00A4 8009F4A4 E46A0010 */ swc1 $f10, 0x10($v1) -.L8009F4A8: -/* 0A00A8 8009F4A8 14E00009 */ bnez $a3, .L8009F4D0 -/* 0A00AC 8009F4AC 00000000 */ nop -/* 0A00B0 8009F4B0 844E0004 */ lh $t6, 4($v0) -/* 0A00B4 8009F4B4 00000000 */ nop -/* 0A00B8 8009F4B8 25CF003C */ addiu $t7, $t6, 0x3c -/* 0A00BC 8009F4BC 448F2000 */ mtc1 $t7, $f4 -/* 0A00C0 8009F4C0 00000000 */ nop -/* 0A00C4 8009F4C4 468021A0 */ cvt.s.w $f6, $f4 -/* 0A00C8 8009F4C8 10000008 */ b .L8009F4EC -/* 0A00CC 8009F4CC E4660010 */ swc1 $f6, 0x10($v1) -.L8009F4D0: -/* 0A00D0 8009F4D0 84590004 */ lh $t9, 4($v0) -/* 0A00D4 8009F4D4 00000000 */ nop -/* 0A00D8 8009F4D8 2738FFD0 */ addiu $t8, $t9, -0x30 -/* 0A00DC 8009F4DC 44984000 */ mtc1 $t8, $f8 -/* 0A00E0 8009F4E0 00000000 */ nop -/* 0A00E4 8009F4E4 468042A0 */ cvt.s.w $f10, $f8 -/* 0A00E8 8009F4E8 E46A0010 */ swc1 $f10, 0x10($v1) -.L8009F4EC: -/* 0A00EC 8009F4EC 84440006 */ lh $a0, 6($v0) -/* 0A00F0 8009F4F0 24420006 */ addiu $v0, $v0, 6 -/* 0A00F4 8009F4F4 1544FFC7 */ bne $t2, $a0, .L8009F414 -/* 0A00F8 8009F4F8 00000000 */ nop -.L8009F4FC: -/* 0A00FC 8009F4FC C42486B8 */ lwc1 $f4, %lo(D_800E86B8)($at) -/* 0A0100 8009F500 8CAE0000 */ lw $t6, ($a1) -/* 0A0104 8009F504 3C014377 */ li $at, 0x43770000 # 247.000000 -/* 0A0108 8009F508 E5C4064C */ swc1 $f4, 0x64c($t6) -/* 0A010C 8009F50C 8CAF0000 */ lw $t7, ($a1) -/* 0A0110 8009F510 44813000 */ mtc1 $at, $f6 -/* 0A0114 8009F514 E5E00650 */ swc1 $f0, 0x650($t7) -/* 0A0118 8009F518 8CB90000 */ lw $t9, ($a1) -/* 0A011C 8009F51C 3C014234 */ li $at, 0x42340000 # 45.000000 -/* 0A0120 8009F520 E726040C */ swc1 $f6, 0x40c($t9) -/* 0A0124 8009F524 8CB80000 */ lw $t8, ($a1) -/* 0A0128 8009F528 44814000 */ mtc1 $at, $f8 -/* 0A012C 8009F52C 3C01800F */ lui $at, %hi(D_800E86BC) # $at, 0x800f -/* 0A0130 8009F530 E7080410 */ swc1 $f8, 0x410($t8) -/* 0A0134 8009F534 8CAE0000 */ lw $t6, ($a1) -/* 0A0138 8009F538 C42A86BC */ lwc1 $f10, %lo(D_800E86BC)($at) -/* 0A013C 8009F53C 3C014244 */ li $at, 0x42440000 # 49.000000 -/* 0A0140 8009F540 E5CA066C */ swc1 $f10, 0x66c($t6) -/* 0A0144 8009F544 8CAF0000 */ lw $t7, ($a1) -/* 0A0148 8009F548 44812000 */ mtc1 $at, $f4 -/* 0A014C 8009F54C 3C0142CE */ li $at, 0x42CE0000 # 103.000000 -/* 0A0150 8009F550 E5E40670 */ swc1 $f4, 0x670($t7) -/* 0A0154 8009F554 8CB90000 */ lw $t9, ($a1) -/* 0A0158 8009F558 44813000 */ mtc1 $at, $f6 -/* 0A015C 8009F55C 3C014244 */ li $at, 0x42440000 # 49.000000 -/* 0A0160 8009F560 E726068C */ swc1 $f6, 0x68c($t9) -/* 0A0164 8009F564 8CB80000 */ lw $t8, ($a1) -/* 0A0168 8009F568 44814000 */ mtc1 $at, $f8 -/* 0A016C 8009F56C 3C014384 */ li $at, 0x43840000 # 264.000000 -/* 0A0170 8009F570 E7080690 */ swc1 $f8, 0x690($t8) -/* 0A0174 8009F574 8CAE0000 */ lw $t6, ($a1) -/* 0A0178 8009F578 44815000 */ mtc1 $at, $f10 -/* 0A017C 8009F57C 3C014248 */ li $at, 0x42480000 # 50.000000 -/* 0A0180 8009F580 E5CA06AC */ swc1 $f10, 0x6ac($t6) -/* 0A0184 8009F584 8CAF0000 */ lw $t7, ($a1) -/* 0A0188 8009F588 44812000 */ mtc1 $at, $f4 -/* 0A018C 8009F58C 3C01800F */ lui $at, %hi(D_800E86C0) # $at, 0x800f -/* 0A0190 8009F590 E5E406B0 */ swc1 $f4, 0x6b0($t7) -/* 0A0194 8009F594 8CB90000 */ lw $t9, ($a1) -/* 0A0198 8009F598 C42686C0 */ lwc1 $f6, %lo(D_800E86C0)($at) -/* 0A019C 8009F59C 3C01424C */ li $at, 0x424C0000 # 51.000000 -/* 0A01A0 8009F5A0 E72606CC */ swc1 $f6, 0x6cc($t9) -/* 0A01A4 8009F5A4 8CB80000 */ lw $t8, ($a1) -/* 0A01A8 8009F5A8 44814000 */ mtc1 $at, $f8 -/* 0A01AC 8009F5AC 3C014389 */ li $at, 0x43890000 # 274.000000 -/* 0A01B0 8009F5B0 E70806D0 */ swc1 $f8, 0x6d0($t8) -/* 0A01B4 8009F5B4 8CAE0000 */ lw $t6, ($a1) -/* 0A01B8 8009F5B8 44815000 */ mtc1 $at, $f10 -/* 0A01BC 8009F5BC 3C01424C */ li $at, 0x424C0000 # 51.000000 -/* 0A01C0 8009F5C0 E5CA06EC */ swc1 $f10, 0x6ec($t6) -/* 0A01C4 8009F5C4 8CAF0000 */ lw $t7, ($a1) -/* 0A01C8 8009F5C8 44812000 */ mtc1 $at, $f4 -/* 0A01CC 8009F5CC 24180003 */ li $t8, 3 -/* 0A01D0 8009F5D0 E5E406F0 */ swc1 $f4, 0x6f0($t7) -/* 0A01D4 8009F5D4 8CB90000 */ lw $t9, ($a1) -/* 0A01D8 8009F5D8 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 -/* 0A01DC 8009F5DC E7200650 */ swc1 $f0, 0x650($t9) -/* 0A01E0 8009F5E0 8CAE0000 */ lw $t6, ($a1) -/* 0A01E4 8009F5E4 00000000 */ nop -/* 0A01E8 8009F5E8 A1D805DC */ sb $t8, 0x5dc($t6) -/* 0A01EC 8009F5EC 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) -/* 0A01F0 8009F5F0 10000072 */ b .L8009F7BC -/* 0A01F4 8009F5F4 00000000 */ nop -.L8009F5F8: -/* 0A01F8 8009F5F8 11630002 */ beq $t3, $v1, .L8009F604 -/* 0A01FC 8009F5FC 24010003 */ li $at, 3 -/* 0A0200 8009F600 1461006E */ bne $v1, $at, .L8009F7BC -.L8009F604: -/* 0A0204 8009F604 3C04800E */ lui $a0, %hi(D_800E2684) # $a0, 0x800e -/* 0A0208 8009F608 24822684 */ addiu $v0, $a0, %lo(D_800E2684) -/* 0A020C 8009F60C 844F0000 */ lh $t7, ($v0) -/* 0A0210 8009F610 3C19800E */ lui $t9, %hi(D_800E2684) # $t9, 0x800e -/* 0A0214 8009F614 114F0069 */ beq $t2, $t7, .L8009F7BC -/* 0A0218 8009F618 27392684 */ addiu $t9, %lo(D_800E2684) # addiu $t9, $t9, 0x2684 -/* 0A021C 8009F61C 87230000 */ lh $v1, ($t9) -/* 0A0220 8009F620 00000000 */ nop -.L8009F624: -/* 0A0224 8009F624 8CB80000 */ lw $t8, ($a1) -/* 0A0228 8009F628 00037140 */ sll $t6, $v1, 5 -/* 0A022C 8009F62C 030E2021 */ addu $a0, $t8, $t6 -/* 0A0230 8009F630 84990006 */ lh $t9, 6($a0) -/* 0A0234 8009F634 8D2F0000 */ lw $t7, ($t1) -/* 0A0238 8009F638 0019C040 */ sll $t8, $t9, 1 -/* 0A023C 8009F63C 01F87021 */ addu $t6, $t7, $t8 -/* 0A0240 8009F640 85D90000 */ lh $t9, ($t6) -/* 0A0244 8009F644 00000000 */ nop -/* 0A0248 8009F648 332FC000 */ andi $t7, $t9, 0xc000 -/* 0A024C 8009F64C 150F002A */ bne $t0, $t7, .L8009F6F8 -/* 0A0250 8009F650 00000000 */ nop -/* 0A0254 8009F654 10E00003 */ beqz $a3, .L8009F664 -/* 0A0258 8009F658 00000000 */ nop -/* 0A025C 8009F65C 14EB0008 */ bne $a3, $t3, .L8009F680 -/* 0A0260 8009F660 00000000 */ nop -.L8009F664: -/* 0A0264 8009F664 84580002 */ lh $t8, 2($v0) -/* 0A0268 8009F668 00000000 */ nop -/* 0A026C 8009F66C 44983000 */ mtc1 $t8, $f6 -/* 0A0270 8009F670 00000000 */ nop -/* 0A0274 8009F674 46803220 */ cvt.s.w $f8, $f6 -/* 0A0278 8009F678 10000008 */ b .L8009F69C -/* 0A027C 8009F67C E488000C */ swc1 $f8, 0xc($a0) -.L8009F680: -/* 0A0280 8009F680 844E0006 */ lh $t6, 6($v0) -/* 0A0284 8009F684 00000000 */ nop -/* 0A0288 8009F688 25D900A0 */ addiu $t9, $t6, 0xa0 -/* 0A028C 8009F68C 44995000 */ mtc1 $t9, $f10 -/* 0A0290 8009F690 00000000 */ nop -/* 0A0294 8009F694 46805120 */ cvt.s.w $f4, $f10 -/* 0A0298 8009F698 E484000C */ swc1 $f4, 0xc($a0) -.L8009F69C: -/* 0A029C 8009F69C 10E00003 */ beqz $a3, .L8009F6AC -/* 0A02A0 8009F6A0 00000000 */ nop -/* 0A02A4 8009F6A4 14EC000A */ bne $a3, $t4, .L8009F6D0 -/* 0A02A8 8009F6A8 00000000 */ nop -.L8009F6AC: -/* 0A02AC 8009F6AC 844F0004 */ lh $t7, 4($v0) -/* 0A02B0 8009F6B0 844E0000 */ lh $t6, ($v0) -/* 0A02B4 8009F6B4 448F3000 */ mtc1 $t7, $f6 -/* 0A02B8 8009F6B8 8CB80000 */ lw $t8, ($a1) -/* 0A02BC 8009F6BC 46803220 */ cvt.s.w $f8, $f6 -/* 0A02C0 8009F6C0 000EC940 */ sll $t9, $t6, 5 -/* 0A02C4 8009F6C4 03197821 */ addu $t7, $t8, $t9 -/* 0A02C8 8009F6C8 10000035 */ b .L8009F7A0 -/* 0A02CC 8009F6CC E5E80010 */ swc1 $f8, 0x10($t7) -.L8009F6D0: -/* 0A02D0 8009F6D0 844E0004 */ lh $t6, 4($v0) -/* 0A02D4 8009F6D4 844F0000 */ lh $t7, ($v0) -/* 0A02D8 8009F6D8 25D8006C */ addiu $t8, $t6, 0x6c -/* 0A02DC 8009F6DC 44985000 */ mtc1 $t8, $f10 -/* 0A02E0 8009F6E0 8CB90000 */ lw $t9, ($a1) -/* 0A02E4 8009F6E4 46805120 */ cvt.s.w $f4, $f10 -/* 0A02E8 8009F6E8 000F7140 */ sll $t6, $t7, 5 -/* 0A02EC 8009F6EC 032EC021 */ addu $t8, $t9, $t6 -/* 0A02F0 8009F6F0 1000002B */ b .L8009F7A0 -/* 0A02F4 8009F6F4 E7040010 */ swc1 $f4, 0x10($t8) -.L8009F6F8: -/* 0A02F8 8009F6F8 10E00003 */ beqz $a3, .L8009F708 -/* 0A02FC 8009F6FC 00000000 */ nop -/* 0A0300 8009F700 14EB0009 */ bne $a3, $t3, .L8009F728 -/* 0A0304 8009F704 00000000 */ nop -.L8009F708: -/* 0A0308 8009F708 844F0002 */ lh $t7, 2($v0) -/* 0A030C 8009F70C 00000000 */ nop -/* 0A0310 8009F710 25F9FFB0 */ addiu $t9, $t7, -0x50 -/* 0A0314 8009F714 44993000 */ mtc1 $t9, $f6 -/* 0A0318 8009F718 00000000 */ nop -/* 0A031C 8009F71C 46803220 */ cvt.s.w $f8, $f6 -/* 0A0320 8009F720 10000008 */ b .L8009F744 -/* 0A0324 8009F724 E488000C */ swc1 $f8, 0xc($a0) -.L8009F728: -/* 0A0328 8009F728 844E0006 */ lh $t6, 6($v0) -/* 0A032C 8009F72C 00000000 */ nop -/* 0A0330 8009F730 25D80050 */ addiu $t8, $t6, 0x50 -/* 0A0334 8009F734 44985000 */ mtc1 $t8, $f10 -/* 0A0338 8009F738 00000000 */ nop -/* 0A033C 8009F73C 46805120 */ cvt.s.w $f4, $f10 -/* 0A0340 8009F740 E484000C */ swc1 $f4, 0xc($a0) -.L8009F744: -/* 0A0344 8009F744 10E00003 */ beqz $a3, .L8009F754 -/* 0A0348 8009F748 00000000 */ nop -/* 0A034C 8009F74C 14EC000B */ bne $a3, $t4, .L8009F77C -/* 0A0350 8009F750 00000000 */ nop -.L8009F754: -/* 0A0354 8009F754 844F0004 */ lh $t7, 4($v0) -/* 0A0358 8009F758 84580000 */ lh $t8, ($v0) -/* 0A035C 8009F75C 25F9003C */ addiu $t9, $t7, 0x3c -/* 0A0360 8009F760 44993000 */ mtc1 $t9, $f6 -/* 0A0364 8009F764 8CAE0000 */ lw $t6, ($a1) -/* 0A0368 8009F768 46803220 */ cvt.s.w $f8, $f6 -/* 0A036C 8009F76C 00187940 */ sll $t7, $t8, 5 -/* 0A0370 8009F770 01CFC821 */ addu $t9, $t6, $t7 -/* 0A0374 8009F774 1000000A */ b .L8009F7A0 -/* 0A0378 8009F778 E7280010 */ swc1 $f8, 0x10($t9) -.L8009F77C: -/* 0A037C 8009F77C 84580004 */ lh $t8, 4($v0) -/* 0A0380 8009F780 84590000 */ lh $t9, ($v0) -/* 0A0384 8009F784 270EFFD0 */ addiu $t6, $t8, -0x30 -/* 0A0388 8009F788 448E5000 */ mtc1 $t6, $f10 -/* 0A038C 8009F78C 8CAF0000 */ lw $t7, ($a1) -/* 0A0390 8009F790 46805120 */ cvt.s.w $f4, $f10 -/* 0A0394 8009F794 0019C140 */ sll $t8, $t9, 5 -/* 0A0398 8009F798 01F87021 */ addu $t6, $t7, $t8 -/* 0A039C 8009F79C E5C40010 */ swc1 $f4, 0x10($t6) -.L8009F7A0: -/* 0A03A0 8009F7A0 84430008 */ lh $v1, 8($v0) -/* 0A03A4 8009F7A4 24420008 */ addiu $v0, $v0, 8 -/* 0A03A8 8009F7A8 1543FF9E */ bne $t2, $v1, .L8009F624 -/* 0A03AC 8009F7AC 00000000 */ nop -/* 0A03B0 8009F7B0 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 -/* 0A03B4 8009F7B4 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) -/* 0A03B8 8009F7B8 00000000 */ nop -.L8009F7BC: -/* 0A03BC 8009F7BC 10600046 */ beqz $v1, .L8009F8D8 -/* 0A03C0 8009F7C0 00000000 */ nop -/* 0A03C4 8009F7C4 00001825 */ move $v1, $zero -.L8009F7C8: -/* 0A03C8 8009F7C8 8CB90000 */ lw $t9, ($a1) -/* 0A03CC 8009F7CC 00000000 */ nop -/* 0A03D0 8009F7D0 03232021 */ addu $a0, $t9, $v1 -/* 0A03D4 8009F7D4 84820006 */ lh $v0, 6($a0) -/* 0A03D8 8009F7D8 00000000 */ nop -/* 0A03DC 8009F7DC 15A20003 */ bne $t5, $v0, .L8009F7EC -/* 0A03E0 8009F7E0 00000000 */ nop -/* 0A03E4 8009F7E4 10000036 */ b .L8009F8C0 -/* 0A03E8 8009F7E8 A4910006 */ sh $s1, 6($a0) -.L8009F7EC: -/* 0A03EC 8009F7EC 16620003 */ bne $s3, $v0, .L8009F7FC -/* 0A03F0 8009F7F0 00000000 */ nop -/* 0A03F4 8009F7F4 10000032 */ b .L8009F8C0 -/* 0A03F8 8009F7F8 A4940006 */ sh $s4, 6($a0) -.L8009F7FC: -/* 0A03FC 8009F7FC 16A20003 */ bne $s5, $v0, .L8009F80C -/* 0A0400 8009F800 00000000 */ nop -/* 0A0404 8009F804 1000002E */ b .L8009F8C0 -/* 0A0408 8009F808 A4960006 */ sh $s6, 6($a0) -.L8009F80C: -/* 0A040C 8009F80C 17E20003 */ bne $ra, $v0, .L8009F81C -/* 0A0410 8009F810 00000000 */ nop -/* 0A0414 8009F814 1000002A */ b .L8009F8C0 -/* 0A0418 8009F818 A4970006 */ sh $s7, 6($a0) -.L8009F81C: -/* 0A041C 8009F81C 17C20008 */ bne $fp, $v0, .L8009F840 -/* 0A0420 8009F820 00000000 */ nop -/* 0A0424 8009F824 C4860008 */ lwc1 $f6, 8($a0) -/* 0A0428 8009F828 00000000 */ nop -/* 0A042C 8009F82C 46003221 */ cvt.d.s $f8, $f6 -/* 0A0430 8009F830 462E4282 */ mul.d $f10, $f8, $f14 -/* 0A0434 8009F834 46205120 */ cvt.s.d $f4, $f10 -/* 0A0438 8009F838 10000021 */ b .L8009F8C0 -/* 0A043C 8009F83C E4840008 */ swc1 $f4, 8($a0) -.L8009F840: -/* 0A0440 8009F840 1060001F */ beqz $v1, .L8009F8C0 -/* 0A0444 8009F844 24010020 */ li $at, 32 -/* 0A0448 8009F848 1061001D */ beq $v1, $at, .L8009F8C0 -/* 0A044C 8009F84C 24010040 */ li $at, 64 -/* 0A0450 8009F850 1061001B */ beq $v1, $at, .L8009F8C0 -/* 0A0454 8009F854 240104A0 */ li $at, 1184 -/* 0A0458 8009F858 10610019 */ beq $v1, $at, .L8009F8C0 -/* 0A045C 8009F85C 240105E0 */ li $at, 1504 -/* 0A0460 8009F860 10610017 */ beq $v1, $at, .L8009F8C0 -/* 0A0464 8009F864 24010600 */ li $at, 1536 -/* 0A0468 8009F868 10610015 */ beq $v1, $at, .L8009F8C0 -/* 0A046C 8009F86C 24010060 */ li $at, 96 -/* 0A0470 8009F870 10610013 */ beq $v1, $at, .L8009F8C0 -/* 0A0474 8009F874 24010640 */ li $at, 1600 -/* 0A0478 8009F878 10610011 */ beq $v1, $at, .L8009F8C0 -/* 0A047C 8009F87C 24010660 */ li $at, 1632 -/* 0A0480 8009F880 1061000F */ beq $v1, $at, .L8009F8C0 -/* 0A0484 8009F884 28610680 */ slti $at, $v1, 0x680 -/* 0A0488 8009F888 14200007 */ bnez $at, .L8009F8A8 -/* 0A048C 8009F88C 28610700 */ slti $at, $v1, 0x700 -/* 0A0490 8009F890 10200005 */ beqz $at, .L8009F8A8 -/* 0A0494 8009F894 24010380 */ li $at, 896 -/* 0A0498 8009F898 10610003 */ beq $v1, $at, .L8009F8A8 -/* 0A049C 8009F89C 24010120 */ li $at, 288 -/* 0A04A0 8009F8A0 14610007 */ bne $v1, $at, .L8009F8C0 -/* 0A04A4 8009F8A4 00000000 */ nop -.L8009F8A8: -/* 0A04A8 8009F8A8 C4860008 */ lwc1 $f6, 8($a0) -/* 0A04AC 8009F8AC 00000000 */ nop -/* 0A04B0 8009F8B0 46003221 */ cvt.d.s $f8, $f6 -/* 0A04B4 8009F8B4 46304282 */ mul.d $f10, $f8, $f16 -/* 0A04B8 8009F8B8 46205120 */ cvt.s.d $f4, $f10 -/* 0A04BC 8009F8BC E4840008 */ swc1 $f4, 8($a0) -.L8009F8C0: -/* 0A04C0 8009F8C0 24630020 */ addiu $v1, $v1, 0x20 -/* 0A04C4 8009F8C4 1472FFC0 */ bne $v1, $s2, .L8009F7C8 -/* 0A04C8 8009F8C8 00000000 */ nop -/* 0A04CC 8009F8CC 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 -/* 0A04D0 8009F8D0 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) -/* 0A04D4 8009F8D4 00000000 */ nop -.L8009F8D8: -/* 0A04D8 8009F8D8 8CA40000 */ lw $a0, ($a1) -/* 0A04DC 8009F8DC 28610002 */ slti $at, $v1, 2 -/* 0A04E0 8009F8E0 1420002F */ bnez $at, .L8009F9A0 -/* 0A04E4 8009F8E4 00000000 */ nop -/* 0A04E8 8009F8E8 E49603C8 */ swc1 $f22, 0x3c8($a0) -/* 0A04EC 8009F8EC 8CAF0000 */ lw $t7, ($a1) -/* 0A04F0 8009F8F0 00000000 */ nop -/* 0A04F4 8009F8F4 E5F603E8 */ swc1 $f22, 0x3e8($t7) -/* 0A04F8 8009F8F8 8CB80000 */ lw $t8, ($a1) -/* 0A04FC 8009F8FC 00000000 */ nop -/* 0A0500 8009F900 E71603A8 */ swc1 $f22, 0x3a8($t8) -/* 0A0504 8009F904 8CAE0000 */ lw $t6, ($a1) -/* 0A0508 8009F908 00000000 */ nop -/* 0A050C 8009F90C E5D60188 */ swc1 $f22, 0x188($t6) -/* 0A0510 8009F910 8CB90000 */ lw $t9, ($a1) -/* 0A0514 8009F914 00000000 */ nop -/* 0A0518 8009F918 E73601A8 */ swc1 $f22, 0x1a8($t9) -/* 0A051C 8009F91C 8CAF0000 */ lw $t7, ($a1) -/* 0A0520 8009F920 24190026 */ li $t9, 38 -/* 0A0524 8009F924 E5F60468 */ swc1 $f22, 0x468($t7) -/* 0A0528 8009F928 8CB80000 */ lw $t8, ($a1) -/* 0A052C 8009F92C 00000000 */ nop -/* 0A0530 8009F930 E7160488 */ swc1 $f22, 0x488($t8) -/* 0A0534 8009F934 8CAE0000 */ lw $t6, ($a1) -/* 0A0538 8009F938 2418002B */ li $t8, 43 -/* 0A053C 8009F93C E5D601C8 */ swc1 $f22, 0x1c8($t6) -/* 0A0540 8009F940 8CAF0000 */ lw $t7, ($a1) -/* 0A0544 8009F944 00000000 */ nop -/* 0A0548 8009F948 A5F903C6 */ sh $t9, 0x3c6($t7) -/* 0A054C 8009F94C 8CAE0000 */ lw $t6, ($a1) -/* 0A0550 8009F950 24190029 */ li $t9, 41 -/* 0A0554 8009F954 A5D803E6 */ sh $t8, 0x3e6($t6) -/* 0A0558 8009F958 8CAF0000 */ lw $t7, ($a1) -/* 0A055C 8009F95C 24180025 */ li $t8, 37 -/* 0A0560 8009F960 A5F903A6 */ sh $t9, 0x3a6($t7) -/* 0A0564 8009F964 8CAE0000 */ lw $t6, ($a1) -/* 0A0568 8009F968 24190027 */ li $t9, 39 -/* 0A056C 8009F96C A5D80186 */ sh $t8, 0x186($t6) -/* 0A0570 8009F970 8CAF0000 */ lw $t7, ($a1) -/* 0A0574 8009F974 2418002D */ li $t8, 45 -/* 0A0578 8009F978 A5F901A6 */ sh $t9, 0x1a6($t7) -/* 0A057C 8009F97C 8CAE0000 */ lw $t6, ($a1) -/* 0A0580 8009F980 2419002C */ li $t9, 44 -/* 0A0584 8009F984 A5D80466 */ sh $t8, 0x466($t6) -/* 0A0588 8009F988 8CAF0000 */ lw $t7, ($a1) -/* 0A058C 8009F98C 2418002A */ li $t8, 42 -/* 0A0590 8009F990 A5F90486 */ sh $t9, 0x486($t7) -/* 0A0594 8009F994 8CAE0000 */ lw $t6, ($a1) -/* 0A0598 8009F998 10000005 */ b .L8009F9B0 -/* 0A059C 8009F99C A5D801C6 */ sh $t8, 0x1c6($t6) -.L8009F9A0: -/* 0A05A0 8009F9A0 A08C005D */ sb $t4, 0x5d($a0) -/* 0A05A4 8009F9A4 8CB90000 */ lw $t9, ($a1) -/* 0A05A8 8009F9A8 00000000 */ nop -/* 0A05AC 8009F9AC A32C037D */ sb $t4, 0x37d($t9) -.L8009F9B0: -/* 0A05B0 8009F9B0 0C003936 */ jal func_8000E4D8 -/* 0A05B4 8009F9B4 AFA70090 */ sw $a3, 0x90($sp) -/* 0A05B8 8009F9B8 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 -/* 0A05BC 8009F9BC 8FA70090 */ lw $a3, 0x90($sp) -/* 0A05C0 8009F9C0 10400043 */ beqz $v0, .L8009FAD0 -/* 0A05C4 8009F9C4 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc -/* 0A05C8 8009F9C8 8CA40000 */ lw $a0, ($a1) -/* 0A05CC 8009F9CC 00000000 */ nop -/* 0A05D0 8009F9D0 C48600EC */ lwc1 $f6, 0xec($a0) -/* 0A05D4 8009F9D4 00000000 */ nop -/* 0A05D8 8009F9D8 46183200 */ add.s $f8, $f6, $f24 -/* 0A05DC 8009F9DC E48800EC */ swc1 $f8, 0xec($a0) -/* 0A05E0 8009F9E0 8CA40000 */ lw $a0, ($a1) -/* 0A05E4 8009F9E4 00000000 */ nop -/* 0A05E8 8009F9E8 C48A010C */ lwc1 $f10, 0x10c($a0) -/* 0A05EC 8009F9EC 00000000 */ nop -/* 0A05F0 8009F9F0 46185100 */ add.s $f4, $f10, $f24 -/* 0A05F4 8009F9F4 E484010C */ swc1 $f4, 0x10c($a0) -/* 0A05F8 8009F9F8 8CA40000 */ lw $a0, ($a1) -/* 0A05FC 8009F9FC 00000000 */ nop -/* 0A0600 8009FA00 C486012C */ lwc1 $f6, 0x12c($a0) -/* 0A0604 8009FA04 00000000 */ nop -/* 0A0608 8009FA08 46183200 */ add.s $f8, $f6, $f24 -/* 0A060C 8009FA0C E488012C */ swc1 $f8, 0x12c($a0) -/* 0A0610 8009FA10 8CA40000 */ lw $a0, ($a1) -/* 0A0614 8009FA14 00000000 */ nop -/* 0A0618 8009FA18 C48A038C */ lwc1 $f10, 0x38c($a0) -/* 0A061C 8009FA1C 00000000 */ nop -/* 0A0620 8009FA20 46185100 */ add.s $f4, $f10, $f24 -/* 0A0624 8009FA24 E484038C */ swc1 $f4, 0x38c($a0) -/* 0A0628 8009FA28 8CA40000 */ lw $a0, ($a1) -/* 0A062C 8009FA2C 00000000 */ nop -/* 0A0630 8009FA30 C486036C */ lwc1 $f6, 0x36c($a0) -/* 0A0634 8009FA34 00000000 */ nop -/* 0A0638 8009FA38 46183200 */ add.s $f8, $f6, $f24 -/* 0A063C 8009FA3C E488036C */ swc1 $f8, 0x36c($a0) -/* 0A0640 8009FA40 8CA40000 */ lw $a0, ($a1) -/* 0A0644 8009FA44 00000000 */ nop -/* 0A0648 8009FA48 C48A024C */ lwc1 $f10, 0x24c($a0) -/* 0A064C 8009FA4C 00000000 */ nop -/* 0A0650 8009FA50 46185100 */ add.s $f4, $f10, $f24 -/* 0A0654 8009FA54 E484024C */ swc1 $f4, 0x24c($a0) -/* 0A0658 8009FA58 8CA40000 */ lw $a0, ($a1) -/* 0A065C 8009FA5C 00000000 */ nop -/* 0A0660 8009FA60 C486008C */ lwc1 $f6, 0x8c($a0) -/* 0A0664 8009FA64 00000000 */ nop -/* 0A0668 8009FA68 461C3200 */ add.s $f8, $f6, $f28 -/* 0A066C 8009FA6C E488008C */ swc1 $f8, 0x8c($a0) -/* 0A0670 8009FA70 8CA40000 */ lw $a0, ($a1) -/* 0A0674 8009FA74 00000000 */ nop -/* 0A0678 8009FA78 C48A00AC */ lwc1 $f10, 0xac($a0) -/* 0A067C 8009FA7C 00000000 */ nop -/* 0A0680 8009FA80 461C5100 */ add.s $f4, $f10, $f28 -/* 0A0684 8009FA84 E48400AC */ swc1 $f4, 0xac($a0) -/* 0A0688 8009FA88 8CA40000 */ lw $a0, ($a1) -/* 0A068C 8009FA8C 00000000 */ nop -/* 0A0690 8009FA90 C48600CC */ lwc1 $f6, 0xcc($a0) -/* 0A0694 8009FA94 00000000 */ nop -/* 0A0698 8009FA98 461C3200 */ add.s $f8, $f6, $f28 -/* 0A069C 8009FA9C E48800CC */ swc1 $f8, 0xcc($a0) -/* 0A06A0 8009FAA0 8CA40000 */ lw $a0, ($a1) -/* 0A06A4 8009FAA4 00000000 */ nop -/* 0A06A8 8009FAA8 C48A006C */ lwc1 $f10, 0x6c($a0) -/* 0A06AC 8009FAAC 00000000 */ nop -/* 0A06B0 8009FAB0 461C5100 */ add.s $f4, $f10, $f28 -/* 0A06B4 8009FAB4 E484006C */ swc1 $f4, 0x6c($a0) -/* 0A06B8 8009FAB8 8CA40000 */ lw $a0, ($a1) -/* 0A06BC 8009FABC 00000000 */ nop -/* 0A06C0 8009FAC0 C486020C */ lwc1 $f6, 0x20c($a0) -/* 0A06C4 8009FAC4 00000000 */ nop -/* 0A06C8 8009FAC8 461C3200 */ add.s $f8, $f6, $f28 -/* 0A06CC 8009FACC E488020C */ swc1 $f8, 0x20c($a0) -.L8009FAD0: -/* 0A06D0 8009FAD0 0C01AF66 */ jal get_current_level_race_type -/* 0A06D4 8009FAD4 AFA70090 */ sw $a3, 0x90($sp) -/* 0A06D8 8009FAD8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A06DC 8009FADC 44819000 */ mtc1 $at, $f18 -/* 0A06E0 8009FAE0 24010008 */ li $at, 8 -/* 0A06E4 8009FAE4 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 -/* 0A06E8 8009FAE8 8FA70090 */ lw $a3, 0x90($sp) -/* 0A06EC 8009FAEC 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc -/* 0A06F0 8009FAF0 240B0002 */ li $t3, 2 -/* 0A06F4 8009FAF4 10410006 */ beq $v0, $at, .L8009FB10 -/* 0A06F8 8009FAF8 240C0001 */ li $t4, 1 -/* 0A06FC 8009FAFC 24010041 */ li $at, 65 -/* 0A0700 8009FB00 10410046 */ beq $v0, $at, .L8009FC1C -/* 0A0704 8009FB04 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 -/* 0A0708 8009FB08 10000085 */ b .L8009FD20 -/* 0A070C 8009FB0C 00000000 */ nop -.L8009FB10: -/* 0A0710 8009FB10 8CA40000 */ lw $a0, ($a1) -/* 0A0714 8009FB14 00000000 */ nop -/* 0A0718 8009FB18 C48A00EC */ lwc1 $f10, 0xec($a0) -/* 0A071C 8009FB1C 00000000 */ nop -/* 0A0720 8009FB20 461A5100 */ add.s $f4, $f10, $f26 -/* 0A0724 8009FB24 E48400EC */ swc1 $f4, 0xec($a0) -/* 0A0728 8009FB28 8CA40000 */ lw $a0, ($a1) -/* 0A072C 8009FB2C 00000000 */ nop -/* 0A0730 8009FB30 C486010C */ lwc1 $f6, 0x10c($a0) -/* 0A0734 8009FB34 00000000 */ nop -/* 0A0738 8009FB38 461A3200 */ add.s $f8, $f6, $f26 -/* 0A073C 8009FB3C E488010C */ swc1 $f8, 0x10c($a0) -/* 0A0740 8009FB40 8CA40000 */ lw $a0, ($a1) -/* 0A0744 8009FB44 00000000 */ nop -/* 0A0748 8009FB48 C48A012C */ lwc1 $f10, 0x12c($a0) -/* 0A074C 8009FB4C 00000000 */ nop -/* 0A0750 8009FB50 461A5100 */ add.s $f4, $f10, $f26 -/* 0A0754 8009FB54 E484012C */ swc1 $f4, 0x12c($a0) -/* 0A0758 8009FB58 8CA40000 */ lw $a0, ($a1) -/* 0A075C 8009FB5C 00000000 */ nop -/* 0A0760 8009FB60 C486038C */ lwc1 $f6, 0x38c($a0) -/* 0A0764 8009FB64 00000000 */ nop -/* 0A0768 8009FB68 461A3200 */ add.s $f8, $f6, $f26 -/* 0A076C 8009FB6C E488038C */ swc1 $f8, 0x38c($a0) -/* 0A0770 8009FB70 8CA40000 */ lw $a0, ($a1) -/* 0A0774 8009FB74 00000000 */ nop -/* 0A0778 8009FB78 C48A036C */ lwc1 $f10, 0x36c($a0) -/* 0A077C 8009FB7C 00000000 */ nop -/* 0A0780 8009FB80 461A5100 */ add.s $f4, $f10, $f26 -/* 0A0784 8009FB84 E484036C */ swc1 $f4, 0x36c($a0) -/* 0A0788 8009FB88 8CA40000 */ lw $a0, ($a1) -/* 0A078C 8009FB8C 00000000 */ nop -/* 0A0790 8009FB90 C486024C */ lwc1 $f6, 0x24c($a0) -/* 0A0794 8009FB94 00000000 */ nop -/* 0A0798 8009FB98 461A3200 */ add.s $f8, $f6, $f26 -/* 0A079C 8009FB9C E488024C */ swc1 $f8, 0x24c($a0) -/* 0A07A0 8009FBA0 8CA40000 */ lw $a0, ($a1) -/* 0A07A4 8009FBA4 00000000 */ nop -/* 0A07A8 8009FBA8 C48A006C */ lwc1 $f10, 0x6c($a0) -/* 0A07AC 8009FBAC 00000000 */ nop -/* 0A07B0 8009FBB0 46145100 */ add.s $f4, $f10, $f20 -/* 0A07B4 8009FBB4 E484006C */ swc1 $f4, 0x6c($a0) -/* 0A07B8 8009FBB8 8CA40000 */ lw $a0, ($a1) -/* 0A07BC 8009FBBC 00000000 */ nop -/* 0A07C0 8009FBC0 C486008C */ lwc1 $f6, 0x8c($a0) -/* 0A07C4 8009FBC4 00000000 */ nop -/* 0A07C8 8009FBC8 46143200 */ add.s $f8, $f6, $f20 -/* 0A07CC 8009FBCC E488008C */ swc1 $f8, 0x8c($a0) -/* 0A07D0 8009FBD0 8CA40000 */ lw $a0, ($a1) -/* 0A07D4 8009FBD4 00000000 */ nop -/* 0A07D8 8009FBD8 C48A00AC */ lwc1 $f10, 0xac($a0) -/* 0A07DC 8009FBDC 00000000 */ nop -/* 0A07E0 8009FBE0 46145100 */ add.s $f4, $f10, $f20 -/* 0A07E4 8009FBE4 E48400AC */ swc1 $f4, 0xac($a0) -/* 0A07E8 8009FBE8 8CA40000 */ lw $a0, ($a1) -/* 0A07EC 8009FBEC 00000000 */ nop -/* 0A07F0 8009FBF0 C48600CC */ lwc1 $f6, 0xcc($a0) -/* 0A07F4 8009FBF4 00000000 */ nop -/* 0A07F8 8009FBF8 46143200 */ add.s $f8, $f6, $f20 -/* 0A07FC 8009FBFC E48800CC */ swc1 $f8, 0xcc($a0) -/* 0A0800 8009FC00 8CA40000 */ lw $a0, ($a1) -/* 0A0804 8009FC04 00000000 */ nop -/* 0A0808 8009FC08 C48A020C */ lwc1 $f10, 0x20c($a0) -/* 0A080C 8009FC0C 00000000 */ nop -/* 0A0810 8009FC10 46145100 */ add.s $f4, $f10, $f20 -/* 0A0814 8009FC14 10000042 */ b .L8009FD20 -/* 0A0818 8009FC18 E484020C */ swc1 $f4, 0x20c($a0) -.L8009FC1C: -/* 0A081C 8009FC1C 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 0A0820 8009FC20 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 -/* 0A0824 8009FC24 15E00007 */ bnez $t7, .L8009FC44 -/* 0A0828 8009FC28 00000000 */ nop -/* 0A082C 8009FC2C 8CA40000 */ lw $a0, ($a1) -/* 0A0830 8009FC30 00000000 */ nop -/* 0A0834 8009FC34 C4860410 */ lwc1 $f6, 0x410($a0) -/* 0A0838 8009FC38 00000000 */ nop -/* 0A083C 8009FC3C 46123201 */ sub.s $f8, $f6, $f18 -/* 0A0840 8009FC40 E4880410 */ swc1 $f8, 0x410($a0) -.L8009FC44: -/* 0A0844 8009FC44 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) -/* 0A0848 8009FC48 00000000 */ nop -/* 0A084C 8009FC4C 28410003 */ slti $at, $v0, 3 -/* 0A0850 8009FC50 14200009 */ bnez $at, .L8009FC78 -/* 0A0854 8009FC54 00000000 */ nop -/* 0A0858 8009FC58 10E00003 */ beqz $a3, .L8009FC68 -/* 0A085C 8009FC5C 00000000 */ nop -/* 0A0860 8009FC60 14EB0003 */ bne $a3, $t3, .L8009FC70 -/* 0A0864 8009FC64 00000000 */ nop -.L8009FC68: -/* 0A0868 8009FC68 10000008 */ b .L8009FC8C -/* 0A086C 8009FC6C 02801025 */ move $v0, $s4 -.L8009FC70: -/* 0A0870 8009FC70 10000006 */ b .L8009FC8C -/* 0A0874 8009FC74 2402FFF6 */ li $v0, -10 -.L8009FC78: -/* 0A0878 8009FC78 15820004 */ bne $t4, $v0, .L8009FC8C -/* 0A087C 8009FC7C 00001025 */ move $v0, $zero -/* 0A0880 8009FC80 10000002 */ b .L8009FC8C -/* 0A0884 8009FC84 2402FFF6 */ li $v0, -10 -/* 0A0888 8009FC88 00001025 */ move $v0, $zero -.L8009FC8C: -/* 0A088C 8009FC8C 44825000 */ mtc1 $v0, $f10 -/* 0A0890 8009FC90 8CA40000 */ lw $a0, ($a1) -/* 0A0894 8009FC94 46805020 */ cvt.s.w $f0, $f10 -/* 0A0898 8009FC98 C484036C */ lwc1 $f4, 0x36c($a0) -/* 0A089C 8009FC9C 00000000 */ nop -/* 0A08A0 8009FCA0 46002180 */ add.s $f6, $f4, $f0 -/* 0A08A4 8009FCA4 E486036C */ swc1 $f6, 0x36c($a0) -/* 0A08A8 8009FCA8 8CA40000 */ lw $a0, ($a1) -/* 0A08AC 8009FCAC 00000000 */ nop -/* 0A08B0 8009FCB0 C48800EC */ lwc1 $f8, 0xec($a0) -/* 0A08B4 8009FCB4 00000000 */ nop -/* 0A08B8 8009FCB8 46004280 */ add.s $f10, $f8, $f0 -/* 0A08BC 8009FCBC E48A00EC */ swc1 $f10, 0xec($a0) -/* 0A08C0 8009FCC0 8CA40000 */ lw $a0, ($a1) -/* 0A08C4 8009FCC4 00000000 */ nop -/* 0A08C8 8009FCC8 C484010C */ lwc1 $f4, 0x10c($a0) -/* 0A08CC 8009FCCC 00000000 */ nop -/* 0A08D0 8009FCD0 46002180 */ add.s $f6, $f4, $f0 -/* 0A08D4 8009FCD4 E486010C */ swc1 $f6, 0x10c($a0) -/* 0A08D8 8009FCD8 8CA40000 */ lw $a0, ($a1) -/* 0A08DC 8009FCDC 00000000 */ nop -/* 0A08E0 8009FCE0 C488012C */ lwc1 $f8, 0x12c($a0) -/* 0A08E4 8009FCE4 00000000 */ nop -/* 0A08E8 8009FCE8 46004280 */ add.s $f10, $f8, $f0 -/* 0A08EC 8009FCEC E48A012C */ swc1 $f10, 0x12c($a0) -/* 0A08F0 8009FCF0 8CA40000 */ lw $a0, ($a1) -/* 0A08F4 8009FCF4 00000000 */ nop -/* 0A08F8 8009FCF8 C484038C */ lwc1 $f4, 0x38c($a0) -/* 0A08FC 8009FCFC 00000000 */ nop -/* 0A0900 8009FD00 46002180 */ add.s $f6, $f4, $f0 -/* 0A0904 8009FD04 E486038C */ swc1 $f6, 0x38c($a0) -/* 0A0908 8009FD08 8CA40000 */ lw $a0, ($a1) -/* 0A090C 8009FD0C 00000000 */ nop -/* 0A0910 8009FD10 C488024C */ lwc1 $f8, 0x24c($a0) -/* 0A0914 8009FD14 00000000 */ nop -/* 0A0918 8009FD18 46004280 */ add.s $f10, $f8, $f0 -/* 0A091C 8009FD1C E48A024C */ swc1 $f10, 0x24c($a0) -.L8009FD20: -/* 0A0920 8009FD20 0C008D07 */ jal func_8002341C -/* 0A0924 8009FD24 AFA70090 */ sw $a3, 0x90($sp) -/* 0A0928 8009FD28 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0A092C 8009FD2C 44811000 */ mtc1 $at, $f2 -/* 0A0930 8009FD30 3C01800F */ lui $at, %hi(D_800E86E8 + 4) # $at, 0x800f -/* 0A0934 8009FD34 C42D86E8 */ lwc1 $f13, %lo(D_800E86E8)($at) -/* 0A0938 8009FD38 C42C86EC */ lwc1 $f12, %lo(D_800E86E8 + 4)($at) -/* 0A093C 8009FD3C 3C01800F */ lui $at, %hi(D_800E86F0 + 4) # $at, 0x800f -/* 0A0940 8009FD40 C42F86F0 */ lwc1 $f15, %lo(D_800E86F0)($at) -/* 0A0944 8009FD44 C42E86F4 */ lwc1 $f14, %lo(D_800E86F0 + 4)($at) -/* 0A0948 8009FD48 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 0A094C 8009FD4C 44818800 */ mtc1 $at, $f17 -/* 0A0950 8009FD50 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A0954 8009FD54 44819000 */ mtc1 $at, $f18 -/* 0A0958 8009FD58 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 -/* 0A095C 8009FD5C 8FA70090 */ lw $a3, 0x90($sp) -/* 0A0960 8009FD60 3C098012 */ lui $t1, %hi(D_80126CF0) # $t1, 0x8012 -/* 0A0964 8009FD64 44808000 */ mtc1 $zero, $f16 -/* 0A0968 8009FD68 25296CF0 */ addiu $t1, %lo(D_80126CF0) # addiu $t1, $t1, 0x6cf0 -/* 0A096C 8009FD6C 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc -/* 0A0970 8009FD70 3408C000 */ li $t0, 49152 -/* 0A0974 8009FD74 240AFFFF */ li $t2, -1 -/* 0A0978 8009FD78 240B0002 */ li $t3, 2 -/* 0A097C 8009FD7C 240C0001 */ li $t4, 1 -/* 0A0980 8009FD80 240D0009 */ li $t5, 9 -/* 0A0984 8009FD84 1040001F */ beqz $v0, .L8009FE04 -/* 0A0988 8009FD88 241F0012 */ li $ra, 18 -/* 0A098C 8009FD8C 8CA40000 */ lw $a0, ($a1) -/* 0A0990 8009FD90 00000000 */ nop -/* 0A0994 8009FD94 C484006C */ lwc1 $f4, 0x6c($a0) -/* 0A0998 8009FD98 00000000 */ nop -/* 0A099C 8009FD9C 46142180 */ add.s $f6, $f4, $f20 -/* 0A09A0 8009FDA0 E486006C */ swc1 $f6, 0x6c($a0) -/* 0A09A4 8009FDA4 8CA40000 */ lw $a0, ($a1) -/* 0A09A8 8009FDA8 00000000 */ nop -/* 0A09AC 8009FDAC C488008C */ lwc1 $f8, 0x8c($a0) -/* 0A09B0 8009FDB0 00000000 */ nop -/* 0A09B4 8009FDB4 46144280 */ add.s $f10, $f8, $f20 -/* 0A09B8 8009FDB8 E48A008C */ swc1 $f10, 0x8c($a0) -/* 0A09BC 8009FDBC 8CA40000 */ lw $a0, ($a1) -/* 0A09C0 8009FDC0 00000000 */ nop -/* 0A09C4 8009FDC4 C48400AC */ lwc1 $f4, 0xac($a0) -/* 0A09C8 8009FDC8 00000000 */ nop -/* 0A09CC 8009FDCC 46142180 */ add.s $f6, $f4, $f20 -/* 0A09D0 8009FDD0 E48600AC */ swc1 $f6, 0xac($a0) -/* 0A09D4 8009FDD4 8CA40000 */ lw $a0, ($a1) -/* 0A09D8 8009FDD8 00000000 */ nop -/* 0A09DC 8009FDDC C48800CC */ lwc1 $f8, 0xcc($a0) -/* 0A09E0 8009FDE0 00000000 */ nop -/* 0A09E4 8009FDE4 46144280 */ add.s $f10, $f8, $f20 -/* 0A09E8 8009FDE8 E48A00CC */ swc1 $f10, 0xcc($a0) -/* 0A09EC 8009FDEC 8CA40000 */ lw $a0, ($a1) -/* 0A09F0 8009FDF0 00000000 */ nop -/* 0A09F4 8009FDF4 C484020C */ lwc1 $f4, 0x20c($a0) -/* 0A09F8 8009FDF8 00000000 */ nop -/* 0A09FC 8009FDFC 46142180 */ add.s $f6, $f4, $f20 -/* 0A0A00 8009FE00 E486020C */ swc1 $f6, 0x20c($a0) -.L8009FE04: -/* 0A0A04 8009FE04 3C188000 */ lui $t8, %hi(osTvType) # $t8, 0x8000 -/* 0A0A08 8009FE08 8F180300 */ lw $t8, %lo(osTvType)($t8) -/* 0A0A0C 8009FE0C 00000000 */ nop -/* 0A0A10 8009FE10 17000053 */ bnez $t8, .L8009FF60 -/* 0A0A14 8009FE14 00000000 */ nop -/* 0A0A18 8009FE18 8CA40000 */ lw $a0, ($a1) -/* 0A0A1C 8009FE1C 00001825 */ move $v1, $zero -/* 0A0A20 8009FE20 00831021 */ addu $v0, $a0, $v1 -.L8009FE24: -/* 0A0A24 8009FE24 C4480010 */ lwc1 $f8, 0x10($v0) -/* 0A0A28 8009FE28 00000000 */ nop -/* 0A0A2C 8009FE2C 460042A1 */ cvt.d.s $f10, $f8 -/* 0A0A30 8009FE30 462C5102 */ mul.d $f4, $f10, $f12 -/* 0A0A34 8009FE34 462021A0 */ cvt.s.d $f6, $f4 -/* 0A0A38 8009FE38 E4460010 */ swc1 $f6, 0x10($v0) -/* 0A0A3C 8009FE3C 8CAE0000 */ lw $t6, ($a1) -/* 0A0A40 8009FE40 00000000 */ nop -/* 0A0A44 8009FE44 01C31021 */ addu $v0, $t6, $v1 -/* 0A0A48 8009FE48 C448000C */ lwc1 $f8, 0xc($v0) -/* 0A0A4C 8009FE4C 00000000 */ nop -/* 0A0A50 8009FE50 46124281 */ sub.s $f10, $f8, $f18 -/* 0A0A54 8009FE54 E44A000C */ swc1 $f10, 0xc($v0) -/* 0A0A58 8009FE58 8CA40000 */ lw $a0, ($a1) -/* 0A0A5C 8009FE5C 8D390000 */ lw $t9, ($t1) -/* 0A0A60 8009FE60 00831021 */ addu $v0, $a0, $v1 -/* 0A0A64 8009FE64 844F0006 */ lh $t7, 6($v0) -/* 0A0A68 8009FE68 24630020 */ addiu $v1, $v1, 0x20 -/* 0A0A6C 8009FE6C 000FC040 */ sll $t8, $t7, 1 -/* 0A0A70 8009FE70 03387021 */ addu $t6, $t9, $t8 -/* 0A0A74 8009FE74 85CF0000 */ lh $t7, ($t6) -/* 0A0A78 8009FE78 28610760 */ slti $at, $v1, 0x760 -/* 0A0A7C 8009FE7C 31F9C000 */ andi $t9, $t7, 0xc000 -/* 0A0A80 8009FE80 15190007 */ bne $t0, $t9, .L8009FEA0 -/* 0A0A84 8009FE84 00000000 */ nop -/* 0A0A88 8009FE88 C4440010 */ lwc1 $f4, 0x10($v0) -/* 0A0A8C 8009FE8C 00000000 */ nop -/* 0A0A90 8009FE90 46022181 */ sub.s $f6, $f4, $f2 -/* 0A0A94 8009FE94 E4460010 */ swc1 $f6, 0x10($v0) -/* 0A0A98 8009FE98 8CA40000 */ lw $a0, ($a1) -/* 0A0A9C 8009FE9C 00000000 */ nop -.L8009FEA0: -/* 0A0AA0 8009FEA0 1420FFE0 */ bnez $at, .L8009FE24 -/* 0A0AA4 8009FEA4 00831021 */ addu $v0, $a0, $v1 -/* 0A0AA8 8009FEA8 248204E0 */ addiu $v0, $a0, 0x4e0 -/* 0A0AAC 8009FEAC C4480010 */ lwc1 $f8, 0x10($v0) -/* 0A0AB0 8009FEB0 2406002A */ li $a2, 42 -/* 0A0AB4 8009FEB4 46024280 */ add.s $f10, $f8, $f2 -/* 0A0AB8 8009FEB8 00061940 */ sll $v1, $a2, 5 -/* 0A0ABC 8009FEBC E44A0010 */ swc1 $f10, 0x10($v0) -/* 0A0AC0 8009FEC0 8CA20000 */ lw $v0, ($a1) -/* 0A0AC4 8009FEC4 00000000 */ nop -/* 0A0AC8 8009FEC8 C4440510 */ lwc1 $f4, 0x510($v0) -/* 0A0ACC 8009FECC 244204E0 */ addiu $v0, $v0, 0x4e0 -/* 0A0AD0 8009FED0 46022180 */ add.s $f6, $f4, $f2 -/* 0A0AD4 8009FED4 E4460030 */ swc1 $f6, 0x30($v0) -/* 0A0AD8 8009FED8 8CA20000 */ lw $v0, ($a1) -/* 0A0ADC 8009FEDC 00000000 */ nop -/* 0A0AE0 8009FEE0 C4480530 */ lwc1 $f8, 0x530($v0) -/* 0A0AE4 8009FEE4 244204E0 */ addiu $v0, $v0, 0x4e0 -/* 0A0AE8 8009FEE8 46024280 */ add.s $f10, $f8, $f2 -/* 0A0AEC 8009FEEC E44A0050 */ swc1 $f10, 0x50($v0) -/* 0A0AF0 8009FEF0 8CB80000 */ lw $t8, ($a1) -/* 0A0AF4 8009FEF4 00000000 */ nop -/* 0A0AF8 8009FEF8 03031021 */ addu $v0, $t8, $v1 -/* 0A0AFC 8009FEFC C4440010 */ lwc1 $f4, 0x10($v0) -/* 0A0B00 8009FF00 00000000 */ nop -/* 0A0B04 8009FF04 46022180 */ add.s $f6, $f4, $f2 -/* 0A0B08 8009FF08 E4460010 */ swc1 $f6, 0x10($v0) -/* 0A0B0C 8009FF0C 8CAE0000 */ lw $t6, ($a1) -/* 0A0B10 8009FF10 00000000 */ nop -/* 0A0B14 8009FF14 01C31021 */ addu $v0, $t6, $v1 -/* 0A0B18 8009FF18 C4480030 */ lwc1 $f8, 0x30($v0) -/* 0A0B1C 8009FF1C 00000000 */ nop -/* 0A0B20 8009FF20 46024280 */ add.s $f10, $f8, $f2 -/* 0A0B24 8009FF24 E44A0030 */ swc1 $f10, 0x30($v0) -/* 0A0B28 8009FF28 8CAF0000 */ lw $t7, ($a1) -/* 0A0B2C 8009FF2C 00000000 */ nop -/* 0A0B30 8009FF30 01E31021 */ addu $v0, $t7, $v1 -/* 0A0B34 8009FF34 C4440050 */ lwc1 $f4, 0x50($v0) -/* 0A0B38 8009FF38 00000000 */ nop -/* 0A0B3C 8009FF3C 46022180 */ add.s $f6, $f4, $f2 -/* 0A0B40 8009FF40 E4460050 */ swc1 $f6, 0x50($v0) -/* 0A0B44 8009FF44 8CB90000 */ lw $t9, ($a1) -/* 0A0B48 8009FF48 00000000 */ nop -/* 0A0B4C 8009FF4C 03231021 */ addu $v0, $t9, $v1 -/* 0A0B50 8009FF50 C4480070 */ lwc1 $f8, 0x70($v0) -/* 0A0B54 8009FF54 00000000 */ nop -/* 0A0B58 8009FF58 46024280 */ add.s $f10, $f8, $f2 -/* 0A0B5C 8009FF5C E44A0070 */ swc1 $f10, 0x70($v0) -.L8009FF60: -/* 0A0B60 8009FF60 8CB80000 */ lw $t8, ($a1) -/* 0A0B64 8009FF64 24E70001 */ addiu $a3, $a3, 1 -/* 0A0B68 8009FF68 E7160268 */ swc1 $f22, 0x268($t8) -/* 0A0B6C 8009FF6C 8CAE0000 */ lw $t6, ($a1) -/* 0A0B70 8009FF70 00000000 */ nop -/* 0A0B74 8009FF74 A5DF0286 */ sh $ra, 0x286($t6) -/* 0A0B78 8009FF78 8CAF0000 */ lw $t7, ($a1) -/* 0A0B7C 8009FF7C 00000000 */ nop -/* 0A0B80 8009FF80 A5ED02A6 */ sh $t5, 0x2a6($t7) -/* 0A0B84 8009FF84 8CB90000 */ lw $t9, ($a1) -/* 0A0B88 8009FF88 00000000 */ nop -/* 0A0B8C 8009FF8C A72D02C6 */ sh $t5, 0x2c6($t9) -/* 0A0B90 8009FF90 8FB8006C */ lw $t8, 0x6c($sp) -/* 0A0B94 8009FF94 8FAF008C */ lw $t7, 0x8c($sp) -/* 0A0B98 8009FF98 270E0004 */ addiu $t6, $t8, 4 -/* 0A0B9C 8009FF9C 14EFFCCE */ bne $a3, $t7, .L8009F2D8 -/* 0A0BA0 8009FFA0 AFAE006C */ sw $t6, 0x6c($sp) -.L8009FFA4: -/* 0A0BA4 8009FFA4 0C01AF66 */ jal get_current_level_race_type -/* 0A0BA8 8009FFA8 00000000 */ nop -/* 0A0BAC 8009FFAC 30590040 */ andi $t9, $v0, 0x40 -/* 0A0BB0 8009FFB0 13200008 */ beqz $t9, .L8009FFD4 -/* 0A0BB4 8009FFB4 3C02800E */ lui $v0, %hi(gHudMultiplayerUIToggle) # $v0, 0x800e -/* 0A0BB8 8009FFB8 3C02800E */ lui $v0, %hi(gHudMultiplayerUIToggle) # $v0, 0x800e -/* 0A0BBC 8009FFBC 244227A4 */ addiu $v0, %lo(gHudMultiplayerUIToggle) # addiu $v0, $v0, 0x27a4 -/* 0A0BC0 8009FFC0 80580001 */ lb $t8, 1($v0) -/* 0A0BC4 8009FFC4 3C01800E */ lui $at, %hi(D_800E27A8) # $at, 0x800e -/* 0A0BC8 8009FFC8 A03827A8 */ sb $t8, %lo(D_800E27A8)($at) -/* 0A0BCC 8009FFCC 10000005 */ b .L8009FFE4 -/* 0A0BD0 8009FFD0 A0400001 */ sb $zero, 1($v0) -.L8009FFD4: -/* 0A0BD4 8009FFD4 3C0E800E */ lui $t6, %hi(D_800E27A8) # $t6, 0x800e -/* 0A0BD8 8009FFD8 81CE27A8 */ lb $t6, %lo(D_800E27A8)($t6) -/* 0A0BDC 8009FFDC 244227A4 */ addiu $v0, %lo(gHudMultiplayerUIToggle) # addiu $v0, $v0, 0x27a4 -/* 0A0BE0 8009FFE0 A04E0001 */ sb $t6, 1($v0) -.L8009FFE4: -/* 0A0BE4 8009FFE4 8FBF0064 */ lw $ra, 0x64($sp) -/* 0A0BE8 8009FFE8 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 0A0BEC 8009FFEC C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 0A0BF0 8009FFF0 C7B70020 */ lwc1 $f23, 0x20($sp) -/* 0A0BF4 8009FFF4 C7B60024 */ lwc1 $f22, 0x24($sp) -/* 0A0BF8 8009FFF8 C7B90028 */ lwc1 $f25, 0x28($sp) -/* 0A0BFC 8009FFFC C7B8002C */ lwc1 $f24, 0x2c($sp) -/* 0A0C00 800A0000 C7BB0030 */ lwc1 $f27, 0x30($sp) -/* 0A0C04 800A0004 C7BA0034 */ lwc1 $f26, 0x34($sp) -/* 0A0C08 800A0008 C7BD0038 */ lwc1 $f29, 0x38($sp) -/* 0A0C0C 800A000C C7BC003C */ lwc1 $f28, 0x3c($sp) -/* 0A0C10 800A0010 8FB00040 */ lw $s0, 0x40($sp) -/* 0A0C14 800A0014 8FB10044 */ lw $s1, 0x44($sp) -/* 0A0C18 800A0018 8FB20048 */ lw $s2, 0x48($sp) -/* 0A0C1C 800A001C 8FB3004C */ lw $s3, 0x4c($sp) -/* 0A0C20 800A0020 8FB40050 */ lw $s4, 0x50($sp) -/* 0A0C24 800A0024 8FB50054 */ lw $s5, 0x54($sp) -/* 0A0C28 800A0028 8FB60058 */ lw $s6, 0x58($sp) -/* 0A0C2C 800A002C 8FB7005C */ lw $s7, 0x5c($sp) -/* 0A0C30 800A0030 8FBE0060 */ lw $fp, 0x60($sp) -/* 0A0C34 800A0034 03E00008 */ jr $ra -/* 0A0C38 800A0038 27BD0098 */ addiu $sp, $sp, 0x98 - +.late_rodata +glabel D_800E86A8 +.double 0.6 +glabel D_800E86B0 +.double 1.2 +glabel D_800E86B8 +.float 263.0 +glabel D_800E86BC +.float 259.0 +glabel D_800E86C0 +.float 265.0 +.word 0 # padding +glabel D_800E86C8 +.double 1.2 +glabel D_800E86D0 +.double 0.6 +glabel D_800E86D8 +.double 1.2 +glabel D_800E86E0 +.double 0.6 +glabel D_800E86E8 +.double 1.2 +glabel D_800E86F0 +.double 0.6 + +.text +glabel func_8009F034 +/* 09FC34 8009F034 27BDFF68 */ addiu $sp, $sp, -0x98 +/* 09FC38 8009F038 AFBF0064 */ sw $ra, 0x64($sp) +/* 09FC3C 8009F03C AFBE0060 */ sw $fp, 0x60($sp) +/* 09FC40 8009F040 AFB7005C */ sw $s7, 0x5c($sp) +/* 09FC44 8009F044 AFB60058 */ sw $s6, 0x58($sp) +/* 09FC48 8009F048 AFB50054 */ sw $s5, 0x54($sp) +/* 09FC4C 8009F04C AFB40050 */ sw $s4, 0x50($sp) +/* 09FC50 8009F050 AFB3004C */ sw $s3, 0x4c($sp) +/* 09FC54 8009F054 AFB20048 */ sw $s2, 0x48($sp) +/* 09FC58 8009F058 AFB10044 */ sw $s1, 0x44($sp) +/* 09FC5C 8009F05C AFB00040 */ sw $s0, 0x40($sp) +/* 09FC60 8009F060 E7BD0038 */ swc1 $f29, 0x38($sp) +/* 09FC64 8009F064 E7BC003C */ swc1 $f28, 0x3c($sp) +/* 09FC68 8009F068 E7BB0030 */ swc1 $f27, 0x30($sp) +/* 09FC6C 8009F06C E7BA0034 */ swc1 $f26, 0x34($sp) +/* 09FC70 8009F070 E7B90028 */ swc1 $f25, 0x28($sp) +/* 09FC74 8009F074 E7B8002C */ swc1 $f24, 0x2c($sp) +/* 09FC78 8009F078 E7B70020 */ swc1 $f23, 0x20($sp) +/* 09FC7C 8009F07C E7B60024 */ swc1 $f22, 0x24($sp) +/* 09FC80 8009F080 E7B50018 */ swc1 $f21, 0x18($sp) +/* 09FC84 8009F084 0C01AF66 */ jal get_current_level_race_type +/* 09FC88 8009F088 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 09FC8C 8009F08C 240C0001 */ li $t4, 1 +/* 09FC90 8009F090 11820004 */ beq $t4, $v0, .L8009F0A4 +/* 09FC94 8009F094 3C108000 */ lui $s0, %hi(osTvType) # $s0, 0x8000 +/* 09FC98 8009F098 24010005 */ li $at, 5 +/* 09FC9C 8009F09C 14410007 */ bne $v0, $at, .L8009F0BC +/* 09FCA0 8009F0A0 3C0F8012 */ lui $t7, %hi(gHUDNumPlayers) # $t7, 0x8012 +.L8009F0A4: +/* 09FCA4 8009F0A4 3C018012 */ lui $at, %hi(D_80126D24) # $at, 0x8012 +/* 09FCA8 8009F0A8 AC206D24 */ sw $zero, %lo(D_80126D24)($at) +/* 09FCAC 8009F0AC 3C018012 */ lui $at, %hi(D_80126D34) # $at, 0x8012 +/* 09FCB0 8009F0B0 240E0001 */ li $t6, 1 +/* 09FCB4 8009F0B4 10000015 */ b .L8009F10C +/* 09FCB8 8009F0B8 A02E6D34 */ sb $t6, %lo(D_80126D34)($at) +.L8009F0BC: +/* 09FCBC 8009F0BC 8DEF6D0C */ lw $t7, %lo(gHUDNumPlayers)($t7) +/* 09FCC0 8009F0C0 24180140 */ li $t8, 320 +/* 09FCC4 8009F0C4 29E10002 */ slti $at, $t7, 2 +/* 09FCC8 8009F0C8 10200008 */ beqz $at, .L8009F0EC +/* 09FCCC 8009F0CC 241900C8 */ li $t9, 200 +/* 09FCD0 8009F0D0 3C018012 */ lui $at, %hi(D_80126D24) # $at, 0x8012 +/* 09FCD4 8009F0D4 AC386D24 */ sw $t8, %lo(D_80126D24)($at) +/* 09FCD8 8009F0D8 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 09FCDC 8009F0DC 44812000 */ mtc1 $at, $f4 +/* 09FCE0 8009F0E0 3C018012 */ lui $at, %hi(D_80126D30) # $at, 0x8012 +/* 09FCE4 8009F0E4 10000007 */ b .L8009F104 +/* 09FCE8 8009F0E8 E4246D30 */ swc1 $f4, %lo(D_80126D30)($at) +.L8009F0EC: +/* 09FCEC 8009F0EC 3C018012 */ lui $at, %hi(D_80126D24) # $at, 0x8012 +/* 09FCF0 8009F0F0 AC396D24 */ sw $t9, %lo(D_80126D24)($at) +/* 09FCF4 8009F0F4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 09FCF8 8009F0F8 44813000 */ mtc1 $at, $f6 +/* 09FCFC 8009F0FC 3C018012 */ lui $at, %hi(D_80126D30) # $at, 0x8012 +/* 09FD00 8009F100 E4266D30 */ swc1 $f6, %lo(D_80126D30)($at) +.L8009F104: +/* 09FD04 8009F104 3C018012 */ lui $at, %hi(D_80126D34) # $at, 0x8012 +/* 09FD08 8009F108 A0206D34 */ sb $zero, %lo(D_80126D34)($at) +.L8009F10C: +/* 09FD0C 8009F10C 3C018012 */ lui $at, %hi(D_80126D2C) # $at, 0x8012 +/* 09FD10 8009F110 A4206D2C */ sh $zero, %lo(D_80126D2C)($at) +/* 09FD14 8009F114 3C018012 */ lui $at, %hi(gRaceStartShowHudStep) # $at, 0x8012 +/* 09FD18 8009F118 A0206CD4 */ sb $zero, %lo(gRaceStartShowHudStep)($at) +/* 09FD1C 8009F11C 3C018012 */ lui $at, %hi(gHideRaceTimer) # $at, 0x8012 +/* 09FD20 8009F120 A0206D36 */ sb $zero, %lo(gHideRaceTimer)($at) +/* 09FD24 8009F124 3C018012 */ lui $at, %hi(gWrongWayNagPrefix) # $at, 0x8012 +/* 09FD28 8009F128 A0206D38 */ sb $zero, %lo(gWrongWayNagPrefix)($at) +/* 09FD2C 8009F12C 3C018012 */ lui $at, %hi(D_80126D35) # $at, 0x8012 +/* 09FD30 8009F130 A0206D35 */ sb $zero, %lo(D_80126D35)($at) +/* 09FD34 8009F134 3C018012 */ lui $at, %hi(D_80126CD0) # $at, 0x8012 +/* 09FD38 8009F138 26100300 */ addiu $s0, %lo(osTvType) # addiu $s0, $s0, 0x300 +/* 09FD3C 8009F13C A0206CD0 */ sb $zero, %lo(D_80126CD0)($at) +/* 09FD40 8009F140 8E0E0000 */ lw $t6, ($s0) +/* 09FD44 8009F144 2419FF9C */ li $t9, -100 +/* 09FD48 8009F148 15C00005 */ bnez $t6, .L8009F160 +/* 09FD4C 8009F14C 24040078 */ li $a0, 120 +/* 09FD50 8009F150 240F003C */ li $t7, 60 +/* 09FD54 8009F154 3C018012 */ lui $at, %hi(D_8012718B) # $at, 0x8012 +/* 09FD58 8009F158 10000004 */ b .L8009F16C +/* 09FD5C 8009F15C A02F718B */ sb $t7, %lo(D_8012718B)($at) +.L8009F160: +/* 09FD60 8009F160 24180032 */ li $t8, 50 +/* 09FD64 8009F164 3C018012 */ lui $at, %hi(D_8012718B) # $at, 0x8012 +/* 09FD68 8009F168 A038718B */ sb $t8, %lo(D_8012718B)($at) +.L8009F16C: +/* 09FD6C 8009F16C 3C018012 */ lui $at, %hi(D_80126CD1) # $at, 0x8012 +/* 09FD70 8009F170 A0206CD1 */ sb $zero, %lo(D_80126CD1)($at) +/* 09FD74 8009F174 3C018012 */ lui $at, %hi(D_80126CD2) # $at, 0x8012 +/* 09FD78 8009F178 A0206CD2 */ sb $zero, %lo(D_80126CD2)($at) +/* 09FD7C 8009F17C 3C018012 */ lui $at, %hi(D_80126CD5) # $at, 0x8012 +/* 09FD80 8009F180 A0206CD5 */ sb $zero, %lo(D_80126CD5)($at) +/* 09FD84 8009F184 3C018012 */ lui $at, %hi(D_80127189) # $at, 0x8012 +/* 09FD88 8009F188 A0207189 */ sb $zero, %lo(D_80127189)($at) +/* 09FD8C 8009F18C 3C018012 */ lui $at, %hi(D_80126D4C) # $at, 0x8012 +/* 09FD90 8009F190 AC396D4C */ sw $t9, %lo(D_80126D4C)($at) +/* 09FD94 8009F194 0C01BE53 */ jal get_random_number_from_range +/* 09FD98 8009F198 24050168 */ li $a1, 360 +/* 09FD9C 8009F19C 3C018012 */ lui $at, %hi(D_80126D50) # $at, 0x8012 +/* 09FDA0 8009F1A0 0C003856 */ jal func_8000E158 +/* 09FDA4 8009F1A4 AC226D50 */ sw $v0, %lo(D_80126D50)($at) +/* 09FDA8 8009F1A8 3C018012 */ lui $at, %hi(D_8012718A) # $at, 0x8012 +/* 09FDAC 8009F1AC A022718A */ sb $v0, %lo(D_8012718A)($at) +/* 09FDB0 8009F1B0 8E180000 */ lw $t8, ($s0) +/* 09FDB4 8009F1B4 3C038012 */ lui $v1, %hi(D_8012718C) # $v1, 0x8012 +/* 09FDB8 8009F1B8 3C048012 */ lui $a0, %hi(D_80127190) # $a0, 0x8012 +/* 09FDBC 8009F1BC 24847190 */ addiu $a0, %lo(D_80127190) # addiu $a0, $a0, 0x7190 +/* 09FDC0 8009F1C0 2463718C */ addiu $v1, %lo(D_8012718C) # addiu $v1, $v1, 0x718c +/* 09FDC4 8009F1C4 240E0037 */ li $t6, 55 +/* 09FDC8 8009F1C8 240F00B3 */ li $t7, 179 +/* 09FDCC 8009F1CC AC6E0000 */ sw $t6, ($v1) +/* 09FDD0 8009F1D0 17000006 */ bnez $t8, .L8009F1EC +/* 09FDD4 8009F1D4 AC8F0000 */ sw $t7, ($a0) +/* 09FDD8 8009F1D8 25EE001E */ addiu $t6, $t7, 0x1e +/* 09FDDC 8009F1DC 8C6F0000 */ lw $t7, ($v1) +/* 09FDE0 8009F1E0 AC8E0000 */ sw $t6, ($a0) +/* 09FDE4 8009F1E4 25F8FFFC */ addiu $t8, $t7, -4 +/* 09FDE8 8009F1E8 AC780000 */ sw $t8, ($v1) +.L8009F1EC: +/* 09FDEC 8009F1EC 0C006D90 */ jal func_8001B640 +/* 09FDF0 8009F1F0 00000000 */ nop +/* 09FDF4 8009F1F4 14400004 */ bnez $v0, .L8009F208 +/* 09FDF8 8009F1F8 240C0001 */ li $t4, 1 +/* 09FDFC 8009F1FC 3C018012 */ lui $at, %hi(D_80126D71) # $at, 0x8012 +/* 09FE00 8009F200 10000004 */ b .L8009F214 +/* 09FE04 8009F204 A0206D71 */ sb $zero, %lo(D_80126D71)($at) +.L8009F208: +/* 09FE08 8009F208 24190001 */ li $t9, 1 +/* 09FE0C 8009F20C 3C018012 */ lui $at, %hi(D_80126D71) # $at, 0x8012 +/* 09FE10 8009F210 A0396D71 */ sb $t9, %lo(D_80126D71)($at) +.L8009F214: +/* 09FE14 8009F214 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 09FE18 8009F218 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) +/* 09FE1C 8009F21C 24010003 */ li $at, 3 +/* 09FE20 8009F220 10410003 */ beq $v0, $at, .L8009F230 +/* 09FE24 8009F224 240E0004 */ li $t6, 4 +/* 09FE28 8009F228 10000002 */ b .L8009F234 +/* 09FE2C 8009F22C AFA2008C */ sw $v0, 0x8c($sp) +.L8009F230: +/* 09FE30 8009F230 AFAE008C */ sw $t6, 0x8c($sp) +.L8009F234: +/* 09FE34 8009F234 8FAF008C */ lw $t7, 0x8c($sp) +/* 09FE38 8009F238 00003825 */ move $a3, $zero +/* 09FE3C 8009F23C 19E00359 */ blez $t7, .L8009FFA4 +/* 09FE40 8009F240 3C188012 */ lui $t8, %hi(D_80126CE0) # $t8, 0x8012 +/* 09FE44 8009F244 3C01C268 */ li $at, 0xC2680000 # -58.000000 +/* 09FE48 8009F248 4481E000 */ mtc1 $at, $f28 +/* 09FE4C 8009F24C 3C01C2F0 */ li $at, 0xC2F00000 # -120.000000 +/* 09FE50 8009F250 4481D000 */ mtc1 $at, $f26 +/* 09FE54 8009F254 3C01C1C8 */ li $at, 0xC1C80000 # -25.000000 +/* 09FE58 8009F258 4481C000 */ mtc1 $at, $f24 +/* 09FE5C 8009F25C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 09FE60 8009F260 4481B000 */ mtc1 $at, $f22 +/* 09FE64 8009F264 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 09FE68 8009F268 4481A000 */ mtc1 $at, $f20 +/* 09FE6C 8009F26C 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 09FE70 8009F270 44818800 */ mtc1 $at, $f17 +/* 09FE74 8009F274 3C01800F */ lui $at, %hi(D_800E86A8 + 4) # $at, 0x800f +/* 09FE78 8009F278 27186CE0 */ addiu $t8, %lo(D_80126CE0) # addiu $t8, $t8, 0x6ce0 +/* 09FE7C 8009F27C 3C10800E */ lui $s0, %hi(D_800E25C4) # $s0, 0x800e +/* 09FE80 8009F280 3C098012 */ lui $t1, %hi(D_80126CF0) # $t1, 0x8012 +/* 09FE84 8009F284 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 +/* 09FE88 8009F288 C42F86A8 */ lwc1 $f15, %lo(D_800E86A8)($at) +/* 09FE8C 8009F28C C42E86AC */ lwc1 $f14, %lo(D_800E86A8 + 4)($at) +/* 09FE90 8009F290 44808000 */ mtc1 $zero, $f16 +/* 09FE94 8009F294 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc +/* 09FE98 8009F298 25296CF0 */ addiu $t1, %lo(D_80126CF0) # addiu $t1, $t1, 0x6cf0 +/* 09FE9C 8009F29C 261025C4 */ addiu $s0, %lo(D_800E25C4) # addiu $s0, $s0, 0x25c4 +/* 09FEA0 8009F2A0 AFB8006C */ sw $t8, 0x6c($sp) +/* 09FEA4 8009F2A4 241E0036 */ li $fp, 54 +/* 09FEA8 8009F2A8 2417001C */ li $s7, 28 +/* 09FEAC 8009F2AC 2416000C */ li $s6, 12 +/* 09FEB0 8009F2B0 2415000B */ li $s5, 11 +/* 09FEB4 8009F2B4 2414000F */ li $s4, 15 +/* 09FEB8 8009F2B8 24130004 */ li $s3, 4 +/* 09FEBC 8009F2BC 24120760 */ li $s2, 1888 +/* 09FEC0 8009F2C0 2411000A */ li $s1, 10 +/* 09FEC4 8009F2C4 241F0012 */ li $ra, 18 +/* 09FEC8 8009F2C8 240D0009 */ li $t5, 9 +/* 09FECC 8009F2CC 240B0002 */ li $t3, 2 +/* 09FED0 8009F2D0 240AFFFF */ li $t2, -1 +/* 09FED4 8009F2D4 3408C000 */ li $t0, 49152 +.L8009F2D8: +/* 09FED8 8009F2D8 8FB9006C */ lw $t9, 0x6c($sp) +/* 09FEDC 8009F2DC 3C02800E */ lui $v0, %hi(D_800E1E64) # $v0, 0x800e +/* 09FEE0 8009F2E0 8F2E0000 */ lw $t6, ($t9) +/* 09FEE4 8009F2E4 24421E64 */ addiu $v0, %lo(D_800E1E64) # addiu $v0, $v0, 0x1e64 +/* 09FEE8 8009F2E8 00001825 */ move $v1, $zero +/* 09FEEC 8009F2EC ACAE0000 */ sw $t6, ($a1) +.L8009F2F0: +/* 09FEF0 8009F2F0 8CAF0000 */ lw $t7, ($a1) +/* 09FEF4 8009F2F4 C448000C */ lwc1 $f8, 0xc($v0) +/* 09FEF8 8009F2F8 01E3C021 */ addu $t8, $t7, $v1 +/* 09FEFC 8009F2FC E708000C */ swc1 $f8, 0xc($t8) +/* 09FF00 8009F300 8CB90000 */ lw $t9, ($a1) +/* 09FF04 8009F304 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 09FF08 8009F308 03237021 */ addu $t6, $t9, $v1 +/* 09FF0C 8009F30C E5CA0010 */ swc1 $f10, 0x10($t6) +/* 09FF10 8009F310 8CAF0000 */ lw $t7, ($a1) +/* 09FF14 8009F314 C4440014 */ lwc1 $f4, 0x14($v0) +/* 09FF18 8009F318 01E3C021 */ addu $t8, $t7, $v1 +/* 09FF1C 8009F31C E7040014 */ swc1 $f4, 0x14($t8) +/* 09FF20 8009F320 8CB90000 */ lw $t9, ($a1) +/* 09FF24 8009F324 C4460008 */ lwc1 $f6, 8($v0) +/* 09FF28 8009F328 03237021 */ addu $t6, $t9, $v1 +/* 09FF2C 8009F32C E5C60008 */ swc1 $f6, 8($t6) +/* 09FF30 8009F330 8CB80000 */ lw $t8, ($a1) +/* 09FF34 8009F334 844F0004 */ lh $t7, 4($v0) +/* 09FF38 8009F338 0303C821 */ addu $t9, $t8, $v1 +/* 09FF3C 8009F33C A72F0004 */ sh $t7, 4($t9) +/* 09FF40 8009F340 8CB80000 */ lw $t8, ($a1) +/* 09FF44 8009F344 844E0002 */ lh $t6, 2($v0) +/* 09FF48 8009F348 03037821 */ addu $t7, $t8, $v1 +/* 09FF4C 8009F34C A5EE0002 */ sh $t6, 2($t7) +/* 09FF50 8009F350 8CB80000 */ lw $t8, ($a1) +/* 09FF54 8009F354 84590000 */ lh $t9, ($v0) +/* 09FF58 8009F358 03037021 */ addu $t6, $t8, $v1 +/* 09FF5C 8009F35C A5D90000 */ sh $t9, ($t6) +/* 09FF60 8009F360 8CB80000 */ lw $t8, ($a1) +/* 09FF64 8009F364 844F0006 */ lh $t7, 6($v0) +/* 09FF68 8009F368 0303C821 */ addu $t9, $t8, $v1 +/* 09FF6C 8009F36C A72F0006 */ sh $t7, 6($t9) +/* 09FF70 8009F370 8CB80000 */ lw $t8, ($a1) +/* 09FF74 8009F374 844E0018 */ lh $t6, 0x18($v0) +/* 09FF78 8009F378 03037821 */ addu $t7, $t8, $v1 +/* 09FF7C 8009F37C A5EE0018 */ sh $t6, 0x18($t7) +/* 09FF80 8009F380 8CB80000 */ lw $t8, ($a1) +/* 09FF84 8009F384 8059001A */ lb $t9, 0x1a($v0) +/* 09FF88 8009F388 03037021 */ addu $t6, $t8, $v1 +/* 09FF8C 8009F38C A1D9001A */ sb $t9, 0x1a($t6) +/* 09FF90 8009F390 8CB80000 */ lw $t8, ($a1) +/* 09FF94 8009F394 804F001B */ lb $t7, 0x1b($v0) +/* 09FF98 8009F398 0303C821 */ addu $t9, $t8, $v1 +/* 09FF9C 8009F39C A32F001B */ sb $t7, 0x1b($t9) +/* 09FFA0 8009F3A0 8CB80000 */ lw $t8, ($a1) +/* 09FFA4 8009F3A4 804E001C */ lb $t6, 0x1c($v0) +/* 09FFA8 8009F3A8 03037821 */ addu $t7, $t8, $v1 +/* 09FFAC 8009F3AC A1EE001C */ sb $t6, 0x1c($t7) +/* 09FFB0 8009F3B0 8CB80000 */ lw $t8, ($a1) +/* 09FFB4 8009F3B4 8059001D */ lb $t9, 0x1d($v0) +/* 09FFB8 8009F3B8 24420020 */ addiu $v0, $v0, 0x20 +/* 09FFBC 8009F3BC 03037021 */ addu $t6, $t8, $v1 +/* 09FFC0 8009F3C0 24630020 */ addiu $v1, $v1, 0x20 +/* 09FFC4 8009F3C4 1450FFCA */ bne $v0, $s0, .L8009F2F0 +/* 09FFC8 8009F3C8 A1D9001D */ sb $t9, 0x1d($t6) +/* 09FFCC 8009F3CC 8CB80000 */ lw $t8, ($a1) +/* 09FFD0 8009F3D0 240F0005 */ li $t7, 5 +/* 09FFD4 8009F3D4 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 +/* 09FFD8 8009F3D8 A30F05DC */ sb $t7, 0x5dc($t8) +/* 09FFDC 8009F3DC 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) +/* 09FFE0 8009F3E0 3C014188 */ li $at, 0x41880000 # 17.000000 +/* 09FFE4 8009F3E4 15830084 */ bne $t4, $v1, .L8009F5F8 +/* 09FFE8 8009F3E8 00000000 */ nop +/* 09FFEC 8009F3EC 3C03800E */ lui $v1, %hi(D_800E25C4) # $v1, 0x800e +/* 09FFF0 8009F3F0 246225C4 */ addiu $v0, $v1, %lo(D_800E25C4) +/* 09FFF4 8009F3F4 84590000 */ lh $t9, ($v0) +/* 09FFF8 8009F3F8 44810000 */ mtc1 $at, $f0 +/* 09FFFC 8009F3FC 1159003F */ beq $t2, $t9, .L8009F4FC +/* 0A0000 8009F400 3C01800F */ lui $at, %hi(D_800E86B8) # $at, 0x800f +/* 0A0004 8009F404 3C0E800E */ lui $t6, %hi(D_800E25C4) # $t6, 0x800e +/* 0A0008 8009F408 25CE25C4 */ addiu $t6, %lo(D_800E25C4) # addiu $t6, $t6, 0x25c4 +/* 0A000C 8009F40C 85C40000 */ lh $a0, ($t6) +/* 0A0010 8009F410 00000000 */ nop +.L8009F414: +/* 0A0014 8009F414 844F0002 */ lh $t7, 2($v0) +/* 0A0018 8009F418 8CB80000 */ lw $t8, ($a1) +/* 0A001C 8009F41C 448F4000 */ mtc1 $t7, $f8 +/* 0A0020 8009F420 0004C940 */ sll $t9, $a0, 5 +/* 0A0024 8009F424 468042A0 */ cvt.s.w $f10, $f8 +/* 0A0028 8009F428 03197021 */ addu $t6, $t8, $t9 +/* 0A002C 8009F42C E5CA000C */ swc1 $f10, 0xc($t6) +/* 0A0030 8009F430 84580000 */ lh $t8, ($v0) +/* 0A0034 8009F434 8CAF0000 */ lw $t7, ($a1) +/* 0A0038 8009F438 0018C940 */ sll $t9, $t8, 5 +/* 0A003C 8009F43C 01F91821 */ addu $v1, $t7, $t9 +/* 0A0040 8009F440 84780006 */ lh $t8, 6($v1) +/* 0A0044 8009F444 8D2E0000 */ lw $t6, ($t1) +/* 0A0048 8009F448 00187840 */ sll $t7, $t8, 1 +/* 0A004C 8009F44C 01CFC821 */ addu $t9, $t6, $t7 +/* 0A0050 8009F450 87380000 */ lh $t8, ($t9) +/* 0A0054 8009F454 00000000 */ nop +/* 0A0058 8009F458 330EC000 */ andi $t6, $t8, 0xc000 +/* 0A005C 8009F45C 150E0012 */ bne $t0, $t6, .L8009F4A8 +/* 0A0060 8009F460 00000000 */ nop +/* 0A0064 8009F464 14E00008 */ bnez $a3, .L8009F488 +/* 0A0068 8009F468 00000000 */ nop +/* 0A006C 8009F46C 844F0004 */ lh $t7, 4($v0) +/* 0A0070 8009F470 00000000 */ nop +/* 0A0074 8009F474 448F2000 */ mtc1 $t7, $f4 +/* 0A0078 8009F478 00000000 */ nop +/* 0A007C 8009F47C 468021A0 */ cvt.s.w $f6, $f4 +/* 0A0080 8009F480 1000001A */ b .L8009F4EC +/* 0A0084 8009F484 E4660010 */ swc1 $f6, 0x10($v1) +.L8009F488: +/* 0A0088 8009F488 84590004 */ lh $t9, 4($v0) +/* 0A008C 8009F48C 00000000 */ nop +/* 0A0090 8009F490 2738006C */ addiu $t8, $t9, 0x6c +/* 0A0094 8009F494 44984000 */ mtc1 $t8, $f8 +/* 0A0098 8009F498 00000000 */ nop +/* 0A009C 8009F49C 468042A0 */ cvt.s.w $f10, $f8 +/* 0A00A0 8009F4A0 10000012 */ b .L8009F4EC +/* 0A00A4 8009F4A4 E46A0010 */ swc1 $f10, 0x10($v1) +.L8009F4A8: +/* 0A00A8 8009F4A8 14E00009 */ bnez $a3, .L8009F4D0 +/* 0A00AC 8009F4AC 00000000 */ nop +/* 0A00B0 8009F4B0 844E0004 */ lh $t6, 4($v0) +/* 0A00B4 8009F4B4 00000000 */ nop +/* 0A00B8 8009F4B8 25CF003C */ addiu $t7, $t6, 0x3c +/* 0A00BC 8009F4BC 448F2000 */ mtc1 $t7, $f4 +/* 0A00C0 8009F4C0 00000000 */ nop +/* 0A00C4 8009F4C4 468021A0 */ cvt.s.w $f6, $f4 +/* 0A00C8 8009F4C8 10000008 */ b .L8009F4EC +/* 0A00CC 8009F4CC E4660010 */ swc1 $f6, 0x10($v1) +.L8009F4D0: +/* 0A00D0 8009F4D0 84590004 */ lh $t9, 4($v0) +/* 0A00D4 8009F4D4 00000000 */ nop +/* 0A00D8 8009F4D8 2738FFD0 */ addiu $t8, $t9, -0x30 +/* 0A00DC 8009F4DC 44984000 */ mtc1 $t8, $f8 +/* 0A00E0 8009F4E0 00000000 */ nop +/* 0A00E4 8009F4E4 468042A0 */ cvt.s.w $f10, $f8 +/* 0A00E8 8009F4E8 E46A0010 */ swc1 $f10, 0x10($v1) +.L8009F4EC: +/* 0A00EC 8009F4EC 84440006 */ lh $a0, 6($v0) +/* 0A00F0 8009F4F0 24420006 */ addiu $v0, $v0, 6 +/* 0A00F4 8009F4F4 1544FFC7 */ bne $t2, $a0, .L8009F414 +/* 0A00F8 8009F4F8 00000000 */ nop +.L8009F4FC: +/* 0A00FC 8009F4FC C42486B8 */ lwc1 $f4, %lo(D_800E86B8)($at) +/* 0A0100 8009F500 8CAE0000 */ lw $t6, ($a1) +/* 0A0104 8009F504 3C014377 */ li $at, 0x43770000 # 247.000000 +/* 0A0108 8009F508 E5C4064C */ swc1 $f4, 0x64c($t6) +/* 0A010C 8009F50C 8CAF0000 */ lw $t7, ($a1) +/* 0A0110 8009F510 44813000 */ mtc1 $at, $f6 +/* 0A0114 8009F514 E5E00650 */ swc1 $f0, 0x650($t7) +/* 0A0118 8009F518 8CB90000 */ lw $t9, ($a1) +/* 0A011C 8009F51C 3C014234 */ li $at, 0x42340000 # 45.000000 +/* 0A0120 8009F520 E726040C */ swc1 $f6, 0x40c($t9) +/* 0A0124 8009F524 8CB80000 */ lw $t8, ($a1) +/* 0A0128 8009F528 44814000 */ mtc1 $at, $f8 +/* 0A012C 8009F52C 3C01800F */ lui $at, %hi(D_800E86BC) # $at, 0x800f +/* 0A0130 8009F530 E7080410 */ swc1 $f8, 0x410($t8) +/* 0A0134 8009F534 8CAE0000 */ lw $t6, ($a1) +/* 0A0138 8009F538 C42A86BC */ lwc1 $f10, %lo(D_800E86BC)($at) +/* 0A013C 8009F53C 3C014244 */ li $at, 0x42440000 # 49.000000 +/* 0A0140 8009F540 E5CA066C */ swc1 $f10, 0x66c($t6) +/* 0A0144 8009F544 8CAF0000 */ lw $t7, ($a1) +/* 0A0148 8009F548 44812000 */ mtc1 $at, $f4 +/* 0A014C 8009F54C 3C0142CE */ li $at, 0x42CE0000 # 103.000000 +/* 0A0150 8009F550 E5E40670 */ swc1 $f4, 0x670($t7) +/* 0A0154 8009F554 8CB90000 */ lw $t9, ($a1) +/* 0A0158 8009F558 44813000 */ mtc1 $at, $f6 +/* 0A015C 8009F55C 3C014244 */ li $at, 0x42440000 # 49.000000 +/* 0A0160 8009F560 E726068C */ swc1 $f6, 0x68c($t9) +/* 0A0164 8009F564 8CB80000 */ lw $t8, ($a1) +/* 0A0168 8009F568 44814000 */ mtc1 $at, $f8 +/* 0A016C 8009F56C 3C014384 */ li $at, 0x43840000 # 264.000000 +/* 0A0170 8009F570 E7080690 */ swc1 $f8, 0x690($t8) +/* 0A0174 8009F574 8CAE0000 */ lw $t6, ($a1) +/* 0A0178 8009F578 44815000 */ mtc1 $at, $f10 +/* 0A017C 8009F57C 3C014248 */ li $at, 0x42480000 # 50.000000 +/* 0A0180 8009F580 E5CA06AC */ swc1 $f10, 0x6ac($t6) +/* 0A0184 8009F584 8CAF0000 */ lw $t7, ($a1) +/* 0A0188 8009F588 44812000 */ mtc1 $at, $f4 +/* 0A018C 8009F58C 3C01800F */ lui $at, %hi(D_800E86C0) # $at, 0x800f +/* 0A0190 8009F590 E5E406B0 */ swc1 $f4, 0x6b0($t7) +/* 0A0194 8009F594 8CB90000 */ lw $t9, ($a1) +/* 0A0198 8009F598 C42686C0 */ lwc1 $f6, %lo(D_800E86C0)($at) +/* 0A019C 8009F59C 3C01424C */ li $at, 0x424C0000 # 51.000000 +/* 0A01A0 8009F5A0 E72606CC */ swc1 $f6, 0x6cc($t9) +/* 0A01A4 8009F5A4 8CB80000 */ lw $t8, ($a1) +/* 0A01A8 8009F5A8 44814000 */ mtc1 $at, $f8 +/* 0A01AC 8009F5AC 3C014389 */ li $at, 0x43890000 # 274.000000 +/* 0A01B0 8009F5B0 E70806D0 */ swc1 $f8, 0x6d0($t8) +/* 0A01B4 8009F5B4 8CAE0000 */ lw $t6, ($a1) +/* 0A01B8 8009F5B8 44815000 */ mtc1 $at, $f10 +/* 0A01BC 8009F5BC 3C01424C */ li $at, 0x424C0000 # 51.000000 +/* 0A01C0 8009F5C0 E5CA06EC */ swc1 $f10, 0x6ec($t6) +/* 0A01C4 8009F5C4 8CAF0000 */ lw $t7, ($a1) +/* 0A01C8 8009F5C8 44812000 */ mtc1 $at, $f4 +/* 0A01CC 8009F5CC 24180003 */ li $t8, 3 +/* 0A01D0 8009F5D0 E5E406F0 */ swc1 $f4, 0x6f0($t7) +/* 0A01D4 8009F5D4 8CB90000 */ lw $t9, ($a1) +/* 0A01D8 8009F5D8 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 +/* 0A01DC 8009F5DC E7200650 */ swc1 $f0, 0x650($t9) +/* 0A01E0 8009F5E0 8CAE0000 */ lw $t6, ($a1) +/* 0A01E4 8009F5E4 00000000 */ nop +/* 0A01E8 8009F5E8 A1D805DC */ sb $t8, 0x5dc($t6) +/* 0A01EC 8009F5EC 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) +/* 0A01F0 8009F5F0 10000072 */ b .L8009F7BC +/* 0A01F4 8009F5F4 00000000 */ nop +.L8009F5F8: +/* 0A01F8 8009F5F8 11630002 */ beq $t3, $v1, .L8009F604 +/* 0A01FC 8009F5FC 24010003 */ li $at, 3 +/* 0A0200 8009F600 1461006E */ bne $v1, $at, .L8009F7BC +.L8009F604: +/* 0A0204 8009F604 3C04800E */ lui $a0, %hi(D_800E2684) # $a0, 0x800e +/* 0A0208 8009F608 24822684 */ addiu $v0, $a0, %lo(D_800E2684) +/* 0A020C 8009F60C 844F0000 */ lh $t7, ($v0) +/* 0A0210 8009F610 3C19800E */ lui $t9, %hi(D_800E2684) # $t9, 0x800e +/* 0A0214 8009F614 114F0069 */ beq $t2, $t7, .L8009F7BC +/* 0A0218 8009F618 27392684 */ addiu $t9, %lo(D_800E2684) # addiu $t9, $t9, 0x2684 +/* 0A021C 8009F61C 87230000 */ lh $v1, ($t9) +/* 0A0220 8009F620 00000000 */ nop +.L8009F624: +/* 0A0224 8009F624 8CB80000 */ lw $t8, ($a1) +/* 0A0228 8009F628 00037140 */ sll $t6, $v1, 5 +/* 0A022C 8009F62C 030E2021 */ addu $a0, $t8, $t6 +/* 0A0230 8009F630 84990006 */ lh $t9, 6($a0) +/* 0A0234 8009F634 8D2F0000 */ lw $t7, ($t1) +/* 0A0238 8009F638 0019C040 */ sll $t8, $t9, 1 +/* 0A023C 8009F63C 01F87021 */ addu $t6, $t7, $t8 +/* 0A0240 8009F640 85D90000 */ lh $t9, ($t6) +/* 0A0244 8009F644 00000000 */ nop +/* 0A0248 8009F648 332FC000 */ andi $t7, $t9, 0xc000 +/* 0A024C 8009F64C 150F002A */ bne $t0, $t7, .L8009F6F8 +/* 0A0250 8009F650 00000000 */ nop +/* 0A0254 8009F654 10E00003 */ beqz $a3, .L8009F664 +/* 0A0258 8009F658 00000000 */ nop +/* 0A025C 8009F65C 14EB0008 */ bne $a3, $t3, .L8009F680 +/* 0A0260 8009F660 00000000 */ nop +.L8009F664: +/* 0A0264 8009F664 84580002 */ lh $t8, 2($v0) +/* 0A0268 8009F668 00000000 */ nop +/* 0A026C 8009F66C 44983000 */ mtc1 $t8, $f6 +/* 0A0270 8009F670 00000000 */ nop +/* 0A0274 8009F674 46803220 */ cvt.s.w $f8, $f6 +/* 0A0278 8009F678 10000008 */ b .L8009F69C +/* 0A027C 8009F67C E488000C */ swc1 $f8, 0xc($a0) +.L8009F680: +/* 0A0280 8009F680 844E0006 */ lh $t6, 6($v0) +/* 0A0284 8009F684 00000000 */ nop +/* 0A0288 8009F688 25D900A0 */ addiu $t9, $t6, 0xa0 +/* 0A028C 8009F68C 44995000 */ mtc1 $t9, $f10 +/* 0A0290 8009F690 00000000 */ nop +/* 0A0294 8009F694 46805120 */ cvt.s.w $f4, $f10 +/* 0A0298 8009F698 E484000C */ swc1 $f4, 0xc($a0) +.L8009F69C: +/* 0A029C 8009F69C 10E00003 */ beqz $a3, .L8009F6AC +/* 0A02A0 8009F6A0 00000000 */ nop +/* 0A02A4 8009F6A4 14EC000A */ bne $a3, $t4, .L8009F6D0 +/* 0A02A8 8009F6A8 00000000 */ nop +.L8009F6AC: +/* 0A02AC 8009F6AC 844F0004 */ lh $t7, 4($v0) +/* 0A02B0 8009F6B0 844E0000 */ lh $t6, ($v0) +/* 0A02B4 8009F6B4 448F3000 */ mtc1 $t7, $f6 +/* 0A02B8 8009F6B8 8CB80000 */ lw $t8, ($a1) +/* 0A02BC 8009F6BC 46803220 */ cvt.s.w $f8, $f6 +/* 0A02C0 8009F6C0 000EC940 */ sll $t9, $t6, 5 +/* 0A02C4 8009F6C4 03197821 */ addu $t7, $t8, $t9 +/* 0A02C8 8009F6C8 10000035 */ b .L8009F7A0 +/* 0A02CC 8009F6CC E5E80010 */ swc1 $f8, 0x10($t7) +.L8009F6D0: +/* 0A02D0 8009F6D0 844E0004 */ lh $t6, 4($v0) +/* 0A02D4 8009F6D4 844F0000 */ lh $t7, ($v0) +/* 0A02D8 8009F6D8 25D8006C */ addiu $t8, $t6, 0x6c +/* 0A02DC 8009F6DC 44985000 */ mtc1 $t8, $f10 +/* 0A02E0 8009F6E0 8CB90000 */ lw $t9, ($a1) +/* 0A02E4 8009F6E4 46805120 */ cvt.s.w $f4, $f10 +/* 0A02E8 8009F6E8 000F7140 */ sll $t6, $t7, 5 +/* 0A02EC 8009F6EC 032EC021 */ addu $t8, $t9, $t6 +/* 0A02F0 8009F6F0 1000002B */ b .L8009F7A0 +/* 0A02F4 8009F6F4 E7040010 */ swc1 $f4, 0x10($t8) +.L8009F6F8: +/* 0A02F8 8009F6F8 10E00003 */ beqz $a3, .L8009F708 +/* 0A02FC 8009F6FC 00000000 */ nop +/* 0A0300 8009F700 14EB0009 */ bne $a3, $t3, .L8009F728 +/* 0A0304 8009F704 00000000 */ nop +.L8009F708: +/* 0A0308 8009F708 844F0002 */ lh $t7, 2($v0) +/* 0A030C 8009F70C 00000000 */ nop +/* 0A0310 8009F710 25F9FFB0 */ addiu $t9, $t7, -0x50 +/* 0A0314 8009F714 44993000 */ mtc1 $t9, $f6 +/* 0A0318 8009F718 00000000 */ nop +/* 0A031C 8009F71C 46803220 */ cvt.s.w $f8, $f6 +/* 0A0320 8009F720 10000008 */ b .L8009F744 +/* 0A0324 8009F724 E488000C */ swc1 $f8, 0xc($a0) +.L8009F728: +/* 0A0328 8009F728 844E0006 */ lh $t6, 6($v0) +/* 0A032C 8009F72C 00000000 */ nop +/* 0A0330 8009F730 25D80050 */ addiu $t8, $t6, 0x50 +/* 0A0334 8009F734 44985000 */ mtc1 $t8, $f10 +/* 0A0338 8009F738 00000000 */ nop +/* 0A033C 8009F73C 46805120 */ cvt.s.w $f4, $f10 +/* 0A0340 8009F740 E484000C */ swc1 $f4, 0xc($a0) +.L8009F744: +/* 0A0344 8009F744 10E00003 */ beqz $a3, .L8009F754 +/* 0A0348 8009F748 00000000 */ nop +/* 0A034C 8009F74C 14EC000B */ bne $a3, $t4, .L8009F77C +/* 0A0350 8009F750 00000000 */ nop +.L8009F754: +/* 0A0354 8009F754 844F0004 */ lh $t7, 4($v0) +/* 0A0358 8009F758 84580000 */ lh $t8, ($v0) +/* 0A035C 8009F75C 25F9003C */ addiu $t9, $t7, 0x3c +/* 0A0360 8009F760 44993000 */ mtc1 $t9, $f6 +/* 0A0364 8009F764 8CAE0000 */ lw $t6, ($a1) +/* 0A0368 8009F768 46803220 */ cvt.s.w $f8, $f6 +/* 0A036C 8009F76C 00187940 */ sll $t7, $t8, 5 +/* 0A0370 8009F770 01CFC821 */ addu $t9, $t6, $t7 +/* 0A0374 8009F774 1000000A */ b .L8009F7A0 +/* 0A0378 8009F778 E7280010 */ swc1 $f8, 0x10($t9) +.L8009F77C: +/* 0A037C 8009F77C 84580004 */ lh $t8, 4($v0) +/* 0A0380 8009F780 84590000 */ lh $t9, ($v0) +/* 0A0384 8009F784 270EFFD0 */ addiu $t6, $t8, -0x30 +/* 0A0388 8009F788 448E5000 */ mtc1 $t6, $f10 +/* 0A038C 8009F78C 8CAF0000 */ lw $t7, ($a1) +/* 0A0390 8009F790 46805120 */ cvt.s.w $f4, $f10 +/* 0A0394 8009F794 0019C140 */ sll $t8, $t9, 5 +/* 0A0398 8009F798 01F87021 */ addu $t6, $t7, $t8 +/* 0A039C 8009F79C E5C40010 */ swc1 $f4, 0x10($t6) +.L8009F7A0: +/* 0A03A0 8009F7A0 84430008 */ lh $v1, 8($v0) +/* 0A03A4 8009F7A4 24420008 */ addiu $v0, $v0, 8 +/* 0A03A8 8009F7A8 1543FF9E */ bne $t2, $v1, .L8009F624 +/* 0A03AC 8009F7AC 00000000 */ nop +/* 0A03B0 8009F7B0 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 +/* 0A03B4 8009F7B4 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) +/* 0A03B8 8009F7B8 00000000 */ nop +.L8009F7BC: +/* 0A03BC 8009F7BC 10600046 */ beqz $v1, .L8009F8D8 +/* 0A03C0 8009F7C0 00000000 */ nop +/* 0A03C4 8009F7C4 00001825 */ move $v1, $zero +.L8009F7C8: +/* 0A03C8 8009F7C8 8CB90000 */ lw $t9, ($a1) +/* 0A03CC 8009F7CC 00000000 */ nop +/* 0A03D0 8009F7D0 03232021 */ addu $a0, $t9, $v1 +/* 0A03D4 8009F7D4 84820006 */ lh $v0, 6($a0) +/* 0A03D8 8009F7D8 00000000 */ nop +/* 0A03DC 8009F7DC 15A20003 */ bne $t5, $v0, .L8009F7EC +/* 0A03E0 8009F7E0 00000000 */ nop +/* 0A03E4 8009F7E4 10000036 */ b .L8009F8C0 +/* 0A03E8 8009F7E8 A4910006 */ sh $s1, 6($a0) +.L8009F7EC: +/* 0A03EC 8009F7EC 16620003 */ bne $s3, $v0, .L8009F7FC +/* 0A03F0 8009F7F0 00000000 */ nop +/* 0A03F4 8009F7F4 10000032 */ b .L8009F8C0 +/* 0A03F8 8009F7F8 A4940006 */ sh $s4, 6($a0) +.L8009F7FC: +/* 0A03FC 8009F7FC 16A20003 */ bne $s5, $v0, .L8009F80C +/* 0A0400 8009F800 00000000 */ nop +/* 0A0404 8009F804 1000002E */ b .L8009F8C0 +/* 0A0408 8009F808 A4960006 */ sh $s6, 6($a0) +.L8009F80C: +/* 0A040C 8009F80C 17E20003 */ bne $ra, $v0, .L8009F81C +/* 0A0410 8009F810 00000000 */ nop +/* 0A0414 8009F814 1000002A */ b .L8009F8C0 +/* 0A0418 8009F818 A4970006 */ sh $s7, 6($a0) +.L8009F81C: +/* 0A041C 8009F81C 17C20008 */ bne $fp, $v0, .L8009F840 +/* 0A0420 8009F820 00000000 */ nop +/* 0A0424 8009F824 C4860008 */ lwc1 $f6, 8($a0) +/* 0A0428 8009F828 00000000 */ nop +/* 0A042C 8009F82C 46003221 */ cvt.d.s $f8, $f6 +/* 0A0430 8009F830 462E4282 */ mul.d $f10, $f8, $f14 +/* 0A0434 8009F834 46205120 */ cvt.s.d $f4, $f10 +/* 0A0438 8009F838 10000021 */ b .L8009F8C0 +/* 0A043C 8009F83C E4840008 */ swc1 $f4, 8($a0) +.L8009F840: +/* 0A0440 8009F840 1060001F */ beqz $v1, .L8009F8C0 +/* 0A0444 8009F844 24010020 */ li $at, 32 +/* 0A0448 8009F848 1061001D */ beq $v1, $at, .L8009F8C0 +/* 0A044C 8009F84C 24010040 */ li $at, 64 +/* 0A0450 8009F850 1061001B */ beq $v1, $at, .L8009F8C0 +/* 0A0454 8009F854 240104A0 */ li $at, 1184 +/* 0A0458 8009F858 10610019 */ beq $v1, $at, .L8009F8C0 +/* 0A045C 8009F85C 240105E0 */ li $at, 1504 +/* 0A0460 8009F860 10610017 */ beq $v1, $at, .L8009F8C0 +/* 0A0464 8009F864 24010600 */ li $at, 1536 +/* 0A0468 8009F868 10610015 */ beq $v1, $at, .L8009F8C0 +/* 0A046C 8009F86C 24010060 */ li $at, 96 +/* 0A0470 8009F870 10610013 */ beq $v1, $at, .L8009F8C0 +/* 0A0474 8009F874 24010640 */ li $at, 1600 +/* 0A0478 8009F878 10610011 */ beq $v1, $at, .L8009F8C0 +/* 0A047C 8009F87C 24010660 */ li $at, 1632 +/* 0A0480 8009F880 1061000F */ beq $v1, $at, .L8009F8C0 +/* 0A0484 8009F884 28610680 */ slti $at, $v1, 0x680 +/* 0A0488 8009F888 14200007 */ bnez $at, .L8009F8A8 +/* 0A048C 8009F88C 28610700 */ slti $at, $v1, 0x700 +/* 0A0490 8009F890 10200005 */ beqz $at, .L8009F8A8 +/* 0A0494 8009F894 24010380 */ li $at, 896 +/* 0A0498 8009F898 10610003 */ beq $v1, $at, .L8009F8A8 +/* 0A049C 8009F89C 24010120 */ li $at, 288 +/* 0A04A0 8009F8A0 14610007 */ bne $v1, $at, .L8009F8C0 +/* 0A04A4 8009F8A4 00000000 */ nop +.L8009F8A8: +/* 0A04A8 8009F8A8 C4860008 */ lwc1 $f6, 8($a0) +/* 0A04AC 8009F8AC 00000000 */ nop +/* 0A04B0 8009F8B0 46003221 */ cvt.d.s $f8, $f6 +/* 0A04B4 8009F8B4 46304282 */ mul.d $f10, $f8, $f16 +/* 0A04B8 8009F8B8 46205120 */ cvt.s.d $f4, $f10 +/* 0A04BC 8009F8BC E4840008 */ swc1 $f4, 8($a0) +.L8009F8C0: +/* 0A04C0 8009F8C0 24630020 */ addiu $v1, $v1, 0x20 +/* 0A04C4 8009F8C4 1472FFC0 */ bne $v1, $s2, .L8009F7C8 +/* 0A04C8 8009F8C8 00000000 */ nop +/* 0A04CC 8009F8CC 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 +/* 0A04D0 8009F8D0 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) +/* 0A04D4 8009F8D4 00000000 */ nop +.L8009F8D8: +/* 0A04D8 8009F8D8 8CA40000 */ lw $a0, ($a1) +/* 0A04DC 8009F8DC 28610002 */ slti $at, $v1, 2 +/* 0A04E0 8009F8E0 1420002F */ bnez $at, .L8009F9A0 +/* 0A04E4 8009F8E4 00000000 */ nop +/* 0A04E8 8009F8E8 E49603C8 */ swc1 $f22, 0x3c8($a0) +/* 0A04EC 8009F8EC 8CAF0000 */ lw $t7, ($a1) +/* 0A04F0 8009F8F0 00000000 */ nop +/* 0A04F4 8009F8F4 E5F603E8 */ swc1 $f22, 0x3e8($t7) +/* 0A04F8 8009F8F8 8CB80000 */ lw $t8, ($a1) +/* 0A04FC 8009F8FC 00000000 */ nop +/* 0A0500 8009F900 E71603A8 */ swc1 $f22, 0x3a8($t8) +/* 0A0504 8009F904 8CAE0000 */ lw $t6, ($a1) +/* 0A0508 8009F908 00000000 */ nop +/* 0A050C 8009F90C E5D60188 */ swc1 $f22, 0x188($t6) +/* 0A0510 8009F910 8CB90000 */ lw $t9, ($a1) +/* 0A0514 8009F914 00000000 */ nop +/* 0A0518 8009F918 E73601A8 */ swc1 $f22, 0x1a8($t9) +/* 0A051C 8009F91C 8CAF0000 */ lw $t7, ($a1) +/* 0A0520 8009F920 24190026 */ li $t9, 38 +/* 0A0524 8009F924 E5F60468 */ swc1 $f22, 0x468($t7) +/* 0A0528 8009F928 8CB80000 */ lw $t8, ($a1) +/* 0A052C 8009F92C 00000000 */ nop +/* 0A0530 8009F930 E7160488 */ swc1 $f22, 0x488($t8) +/* 0A0534 8009F934 8CAE0000 */ lw $t6, ($a1) +/* 0A0538 8009F938 2418002B */ li $t8, 43 +/* 0A053C 8009F93C E5D601C8 */ swc1 $f22, 0x1c8($t6) +/* 0A0540 8009F940 8CAF0000 */ lw $t7, ($a1) +/* 0A0544 8009F944 00000000 */ nop +/* 0A0548 8009F948 A5F903C6 */ sh $t9, 0x3c6($t7) +/* 0A054C 8009F94C 8CAE0000 */ lw $t6, ($a1) +/* 0A0550 8009F950 24190029 */ li $t9, 41 +/* 0A0554 8009F954 A5D803E6 */ sh $t8, 0x3e6($t6) +/* 0A0558 8009F958 8CAF0000 */ lw $t7, ($a1) +/* 0A055C 8009F95C 24180025 */ li $t8, 37 +/* 0A0560 8009F960 A5F903A6 */ sh $t9, 0x3a6($t7) +/* 0A0564 8009F964 8CAE0000 */ lw $t6, ($a1) +/* 0A0568 8009F968 24190027 */ li $t9, 39 +/* 0A056C 8009F96C A5D80186 */ sh $t8, 0x186($t6) +/* 0A0570 8009F970 8CAF0000 */ lw $t7, ($a1) +/* 0A0574 8009F974 2418002D */ li $t8, 45 +/* 0A0578 8009F978 A5F901A6 */ sh $t9, 0x1a6($t7) +/* 0A057C 8009F97C 8CAE0000 */ lw $t6, ($a1) +/* 0A0580 8009F980 2419002C */ li $t9, 44 +/* 0A0584 8009F984 A5D80466 */ sh $t8, 0x466($t6) +/* 0A0588 8009F988 8CAF0000 */ lw $t7, ($a1) +/* 0A058C 8009F98C 2418002A */ li $t8, 42 +/* 0A0590 8009F990 A5F90486 */ sh $t9, 0x486($t7) +/* 0A0594 8009F994 8CAE0000 */ lw $t6, ($a1) +/* 0A0598 8009F998 10000005 */ b .L8009F9B0 +/* 0A059C 8009F99C A5D801C6 */ sh $t8, 0x1c6($t6) +.L8009F9A0: +/* 0A05A0 8009F9A0 A08C005D */ sb $t4, 0x5d($a0) +/* 0A05A4 8009F9A4 8CB90000 */ lw $t9, ($a1) +/* 0A05A8 8009F9A8 00000000 */ nop +/* 0A05AC 8009F9AC A32C037D */ sb $t4, 0x37d($t9) +.L8009F9B0: +/* 0A05B0 8009F9B0 0C003936 */ jal func_8000E4D8 +/* 0A05B4 8009F9B4 AFA70090 */ sw $a3, 0x90($sp) +/* 0A05B8 8009F9B8 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 +/* 0A05BC 8009F9BC 8FA70090 */ lw $a3, 0x90($sp) +/* 0A05C0 8009F9C0 10400043 */ beqz $v0, .L8009FAD0 +/* 0A05C4 8009F9C4 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc +/* 0A05C8 8009F9C8 8CA40000 */ lw $a0, ($a1) +/* 0A05CC 8009F9CC 00000000 */ nop +/* 0A05D0 8009F9D0 C48600EC */ lwc1 $f6, 0xec($a0) +/* 0A05D4 8009F9D4 00000000 */ nop +/* 0A05D8 8009F9D8 46183200 */ add.s $f8, $f6, $f24 +/* 0A05DC 8009F9DC E48800EC */ swc1 $f8, 0xec($a0) +/* 0A05E0 8009F9E0 8CA40000 */ lw $a0, ($a1) +/* 0A05E4 8009F9E4 00000000 */ nop +/* 0A05E8 8009F9E8 C48A010C */ lwc1 $f10, 0x10c($a0) +/* 0A05EC 8009F9EC 00000000 */ nop +/* 0A05F0 8009F9F0 46185100 */ add.s $f4, $f10, $f24 +/* 0A05F4 8009F9F4 E484010C */ swc1 $f4, 0x10c($a0) +/* 0A05F8 8009F9F8 8CA40000 */ lw $a0, ($a1) +/* 0A05FC 8009F9FC 00000000 */ nop +/* 0A0600 8009FA00 C486012C */ lwc1 $f6, 0x12c($a0) +/* 0A0604 8009FA04 00000000 */ nop +/* 0A0608 8009FA08 46183200 */ add.s $f8, $f6, $f24 +/* 0A060C 8009FA0C E488012C */ swc1 $f8, 0x12c($a0) +/* 0A0610 8009FA10 8CA40000 */ lw $a0, ($a1) +/* 0A0614 8009FA14 00000000 */ nop +/* 0A0618 8009FA18 C48A038C */ lwc1 $f10, 0x38c($a0) +/* 0A061C 8009FA1C 00000000 */ nop +/* 0A0620 8009FA20 46185100 */ add.s $f4, $f10, $f24 +/* 0A0624 8009FA24 E484038C */ swc1 $f4, 0x38c($a0) +/* 0A0628 8009FA28 8CA40000 */ lw $a0, ($a1) +/* 0A062C 8009FA2C 00000000 */ nop +/* 0A0630 8009FA30 C486036C */ lwc1 $f6, 0x36c($a0) +/* 0A0634 8009FA34 00000000 */ nop +/* 0A0638 8009FA38 46183200 */ add.s $f8, $f6, $f24 +/* 0A063C 8009FA3C E488036C */ swc1 $f8, 0x36c($a0) +/* 0A0640 8009FA40 8CA40000 */ lw $a0, ($a1) +/* 0A0644 8009FA44 00000000 */ nop +/* 0A0648 8009FA48 C48A024C */ lwc1 $f10, 0x24c($a0) +/* 0A064C 8009FA4C 00000000 */ nop +/* 0A0650 8009FA50 46185100 */ add.s $f4, $f10, $f24 +/* 0A0654 8009FA54 E484024C */ swc1 $f4, 0x24c($a0) +/* 0A0658 8009FA58 8CA40000 */ lw $a0, ($a1) +/* 0A065C 8009FA5C 00000000 */ nop +/* 0A0660 8009FA60 C486008C */ lwc1 $f6, 0x8c($a0) +/* 0A0664 8009FA64 00000000 */ nop +/* 0A0668 8009FA68 461C3200 */ add.s $f8, $f6, $f28 +/* 0A066C 8009FA6C E488008C */ swc1 $f8, 0x8c($a0) +/* 0A0670 8009FA70 8CA40000 */ lw $a0, ($a1) +/* 0A0674 8009FA74 00000000 */ nop +/* 0A0678 8009FA78 C48A00AC */ lwc1 $f10, 0xac($a0) +/* 0A067C 8009FA7C 00000000 */ nop +/* 0A0680 8009FA80 461C5100 */ add.s $f4, $f10, $f28 +/* 0A0684 8009FA84 E48400AC */ swc1 $f4, 0xac($a0) +/* 0A0688 8009FA88 8CA40000 */ lw $a0, ($a1) +/* 0A068C 8009FA8C 00000000 */ nop +/* 0A0690 8009FA90 C48600CC */ lwc1 $f6, 0xcc($a0) +/* 0A0694 8009FA94 00000000 */ nop +/* 0A0698 8009FA98 461C3200 */ add.s $f8, $f6, $f28 +/* 0A069C 8009FA9C E48800CC */ swc1 $f8, 0xcc($a0) +/* 0A06A0 8009FAA0 8CA40000 */ lw $a0, ($a1) +/* 0A06A4 8009FAA4 00000000 */ nop +/* 0A06A8 8009FAA8 C48A006C */ lwc1 $f10, 0x6c($a0) +/* 0A06AC 8009FAAC 00000000 */ nop +/* 0A06B0 8009FAB0 461C5100 */ add.s $f4, $f10, $f28 +/* 0A06B4 8009FAB4 E484006C */ swc1 $f4, 0x6c($a0) +/* 0A06B8 8009FAB8 8CA40000 */ lw $a0, ($a1) +/* 0A06BC 8009FABC 00000000 */ nop +/* 0A06C0 8009FAC0 C486020C */ lwc1 $f6, 0x20c($a0) +/* 0A06C4 8009FAC4 00000000 */ nop +/* 0A06C8 8009FAC8 461C3200 */ add.s $f8, $f6, $f28 +/* 0A06CC 8009FACC E488020C */ swc1 $f8, 0x20c($a0) +.L8009FAD0: +/* 0A06D0 8009FAD0 0C01AF66 */ jal get_current_level_race_type +/* 0A06D4 8009FAD4 AFA70090 */ sw $a3, 0x90($sp) +/* 0A06D8 8009FAD8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0A06DC 8009FADC 44819000 */ mtc1 $at, $f18 +/* 0A06E0 8009FAE0 24010008 */ li $at, 8 +/* 0A06E4 8009FAE4 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 +/* 0A06E8 8009FAE8 8FA70090 */ lw $a3, 0x90($sp) +/* 0A06EC 8009FAEC 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc +/* 0A06F0 8009FAF0 240B0002 */ li $t3, 2 +/* 0A06F4 8009FAF4 10410006 */ beq $v0, $at, .L8009FB10 +/* 0A06F8 8009FAF8 240C0001 */ li $t4, 1 +/* 0A06FC 8009FAFC 24010041 */ li $at, 65 +/* 0A0700 8009FB00 10410046 */ beq $v0, $at, .L8009FC1C +/* 0A0704 8009FB04 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 +/* 0A0708 8009FB08 10000085 */ b .L8009FD20 +/* 0A070C 8009FB0C 00000000 */ nop +.L8009FB10: +/* 0A0710 8009FB10 8CA40000 */ lw $a0, ($a1) +/* 0A0714 8009FB14 00000000 */ nop +/* 0A0718 8009FB18 C48A00EC */ lwc1 $f10, 0xec($a0) +/* 0A071C 8009FB1C 00000000 */ nop +/* 0A0720 8009FB20 461A5100 */ add.s $f4, $f10, $f26 +/* 0A0724 8009FB24 E48400EC */ swc1 $f4, 0xec($a0) +/* 0A0728 8009FB28 8CA40000 */ lw $a0, ($a1) +/* 0A072C 8009FB2C 00000000 */ nop +/* 0A0730 8009FB30 C486010C */ lwc1 $f6, 0x10c($a0) +/* 0A0734 8009FB34 00000000 */ nop +/* 0A0738 8009FB38 461A3200 */ add.s $f8, $f6, $f26 +/* 0A073C 8009FB3C E488010C */ swc1 $f8, 0x10c($a0) +/* 0A0740 8009FB40 8CA40000 */ lw $a0, ($a1) +/* 0A0744 8009FB44 00000000 */ nop +/* 0A0748 8009FB48 C48A012C */ lwc1 $f10, 0x12c($a0) +/* 0A074C 8009FB4C 00000000 */ nop +/* 0A0750 8009FB50 461A5100 */ add.s $f4, $f10, $f26 +/* 0A0754 8009FB54 E484012C */ swc1 $f4, 0x12c($a0) +/* 0A0758 8009FB58 8CA40000 */ lw $a0, ($a1) +/* 0A075C 8009FB5C 00000000 */ nop +/* 0A0760 8009FB60 C486038C */ lwc1 $f6, 0x38c($a0) +/* 0A0764 8009FB64 00000000 */ nop +/* 0A0768 8009FB68 461A3200 */ add.s $f8, $f6, $f26 +/* 0A076C 8009FB6C E488038C */ swc1 $f8, 0x38c($a0) +/* 0A0770 8009FB70 8CA40000 */ lw $a0, ($a1) +/* 0A0774 8009FB74 00000000 */ nop +/* 0A0778 8009FB78 C48A036C */ lwc1 $f10, 0x36c($a0) +/* 0A077C 8009FB7C 00000000 */ nop +/* 0A0780 8009FB80 461A5100 */ add.s $f4, $f10, $f26 +/* 0A0784 8009FB84 E484036C */ swc1 $f4, 0x36c($a0) +/* 0A0788 8009FB88 8CA40000 */ lw $a0, ($a1) +/* 0A078C 8009FB8C 00000000 */ nop +/* 0A0790 8009FB90 C486024C */ lwc1 $f6, 0x24c($a0) +/* 0A0794 8009FB94 00000000 */ nop +/* 0A0798 8009FB98 461A3200 */ add.s $f8, $f6, $f26 +/* 0A079C 8009FB9C E488024C */ swc1 $f8, 0x24c($a0) +/* 0A07A0 8009FBA0 8CA40000 */ lw $a0, ($a1) +/* 0A07A4 8009FBA4 00000000 */ nop +/* 0A07A8 8009FBA8 C48A006C */ lwc1 $f10, 0x6c($a0) +/* 0A07AC 8009FBAC 00000000 */ nop +/* 0A07B0 8009FBB0 46145100 */ add.s $f4, $f10, $f20 +/* 0A07B4 8009FBB4 E484006C */ swc1 $f4, 0x6c($a0) +/* 0A07B8 8009FBB8 8CA40000 */ lw $a0, ($a1) +/* 0A07BC 8009FBBC 00000000 */ nop +/* 0A07C0 8009FBC0 C486008C */ lwc1 $f6, 0x8c($a0) +/* 0A07C4 8009FBC4 00000000 */ nop +/* 0A07C8 8009FBC8 46143200 */ add.s $f8, $f6, $f20 +/* 0A07CC 8009FBCC E488008C */ swc1 $f8, 0x8c($a0) +/* 0A07D0 8009FBD0 8CA40000 */ lw $a0, ($a1) +/* 0A07D4 8009FBD4 00000000 */ nop +/* 0A07D8 8009FBD8 C48A00AC */ lwc1 $f10, 0xac($a0) +/* 0A07DC 8009FBDC 00000000 */ nop +/* 0A07E0 8009FBE0 46145100 */ add.s $f4, $f10, $f20 +/* 0A07E4 8009FBE4 E48400AC */ swc1 $f4, 0xac($a0) +/* 0A07E8 8009FBE8 8CA40000 */ lw $a0, ($a1) +/* 0A07EC 8009FBEC 00000000 */ nop +/* 0A07F0 8009FBF0 C48600CC */ lwc1 $f6, 0xcc($a0) +/* 0A07F4 8009FBF4 00000000 */ nop +/* 0A07F8 8009FBF8 46143200 */ add.s $f8, $f6, $f20 +/* 0A07FC 8009FBFC E48800CC */ swc1 $f8, 0xcc($a0) +/* 0A0800 8009FC00 8CA40000 */ lw $a0, ($a1) +/* 0A0804 8009FC04 00000000 */ nop +/* 0A0808 8009FC08 C48A020C */ lwc1 $f10, 0x20c($a0) +/* 0A080C 8009FC0C 00000000 */ nop +/* 0A0810 8009FC10 46145100 */ add.s $f4, $f10, $f20 +/* 0A0814 8009FC14 10000042 */ b .L8009FD20 +/* 0A0818 8009FC18 E484020C */ swc1 $f4, 0x20c($a0) +.L8009FC1C: +/* 0A081C 8009FC1C 8DEF0300 */ lw $t7, %lo(osTvType)($t7) +/* 0A0820 8009FC20 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 0A0824 8009FC24 15E00007 */ bnez $t7, .L8009FC44 +/* 0A0828 8009FC28 00000000 */ nop +/* 0A082C 8009FC2C 8CA40000 */ lw $a0, ($a1) +/* 0A0830 8009FC30 00000000 */ nop +/* 0A0834 8009FC34 C4860410 */ lwc1 $f6, 0x410($a0) +/* 0A0838 8009FC38 00000000 */ nop +/* 0A083C 8009FC3C 46123201 */ sub.s $f8, $f6, $f18 +/* 0A0840 8009FC40 E4880410 */ swc1 $f8, 0x410($a0) +.L8009FC44: +/* 0A0844 8009FC44 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) +/* 0A0848 8009FC48 00000000 */ nop +/* 0A084C 8009FC4C 28410003 */ slti $at, $v0, 3 +/* 0A0850 8009FC50 14200009 */ bnez $at, .L8009FC78 +/* 0A0854 8009FC54 00000000 */ nop +/* 0A0858 8009FC58 10E00003 */ beqz $a3, .L8009FC68 +/* 0A085C 8009FC5C 00000000 */ nop +/* 0A0860 8009FC60 14EB0003 */ bne $a3, $t3, .L8009FC70 +/* 0A0864 8009FC64 00000000 */ nop +.L8009FC68: +/* 0A0868 8009FC68 10000008 */ b .L8009FC8C +/* 0A086C 8009FC6C 02801025 */ move $v0, $s4 +.L8009FC70: +/* 0A0870 8009FC70 10000006 */ b .L8009FC8C +/* 0A0874 8009FC74 2402FFF6 */ li $v0, -10 +.L8009FC78: +/* 0A0878 8009FC78 15820004 */ bne $t4, $v0, .L8009FC8C +/* 0A087C 8009FC7C 00001025 */ move $v0, $zero +/* 0A0880 8009FC80 10000002 */ b .L8009FC8C +/* 0A0884 8009FC84 2402FFF6 */ li $v0, -10 +/* 0A0888 8009FC88 00001025 */ move $v0, $zero +.L8009FC8C: +/* 0A088C 8009FC8C 44825000 */ mtc1 $v0, $f10 +/* 0A0890 8009FC90 8CA40000 */ lw $a0, ($a1) +/* 0A0894 8009FC94 46805020 */ cvt.s.w $f0, $f10 +/* 0A0898 8009FC98 C484036C */ lwc1 $f4, 0x36c($a0) +/* 0A089C 8009FC9C 00000000 */ nop +/* 0A08A0 8009FCA0 46002180 */ add.s $f6, $f4, $f0 +/* 0A08A4 8009FCA4 E486036C */ swc1 $f6, 0x36c($a0) +/* 0A08A8 8009FCA8 8CA40000 */ lw $a0, ($a1) +/* 0A08AC 8009FCAC 00000000 */ nop +/* 0A08B0 8009FCB0 C48800EC */ lwc1 $f8, 0xec($a0) +/* 0A08B4 8009FCB4 00000000 */ nop +/* 0A08B8 8009FCB8 46004280 */ add.s $f10, $f8, $f0 +/* 0A08BC 8009FCBC E48A00EC */ swc1 $f10, 0xec($a0) +/* 0A08C0 8009FCC0 8CA40000 */ lw $a0, ($a1) +/* 0A08C4 8009FCC4 00000000 */ nop +/* 0A08C8 8009FCC8 C484010C */ lwc1 $f4, 0x10c($a0) +/* 0A08CC 8009FCCC 00000000 */ nop +/* 0A08D0 8009FCD0 46002180 */ add.s $f6, $f4, $f0 +/* 0A08D4 8009FCD4 E486010C */ swc1 $f6, 0x10c($a0) +/* 0A08D8 8009FCD8 8CA40000 */ lw $a0, ($a1) +/* 0A08DC 8009FCDC 00000000 */ nop +/* 0A08E0 8009FCE0 C488012C */ lwc1 $f8, 0x12c($a0) +/* 0A08E4 8009FCE4 00000000 */ nop +/* 0A08E8 8009FCE8 46004280 */ add.s $f10, $f8, $f0 +/* 0A08EC 8009FCEC E48A012C */ swc1 $f10, 0x12c($a0) +/* 0A08F0 8009FCF0 8CA40000 */ lw $a0, ($a1) +/* 0A08F4 8009FCF4 00000000 */ nop +/* 0A08F8 8009FCF8 C484038C */ lwc1 $f4, 0x38c($a0) +/* 0A08FC 8009FCFC 00000000 */ nop +/* 0A0900 8009FD00 46002180 */ add.s $f6, $f4, $f0 +/* 0A0904 8009FD04 E486038C */ swc1 $f6, 0x38c($a0) +/* 0A0908 8009FD08 8CA40000 */ lw $a0, ($a1) +/* 0A090C 8009FD0C 00000000 */ nop +/* 0A0910 8009FD10 C488024C */ lwc1 $f8, 0x24c($a0) +/* 0A0914 8009FD14 00000000 */ nop +/* 0A0918 8009FD18 46004280 */ add.s $f10, $f8, $f0 +/* 0A091C 8009FD1C E48A024C */ swc1 $f10, 0x24c($a0) +.L8009FD20: +/* 0A0920 8009FD20 0C008D07 */ jal func_8002341C +/* 0A0924 8009FD24 AFA70090 */ sw $a3, 0x90($sp) +/* 0A0928 8009FD28 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0A092C 8009FD2C 44811000 */ mtc1 $at, $f2 +/* 0A0930 8009FD30 3C01800F */ lui $at, %hi(D_800E86E8 + 4) # $at, 0x800f +/* 0A0934 8009FD34 C42D86E8 */ lwc1 $f13, %lo(D_800E86E8)($at) +/* 0A0938 8009FD38 C42C86EC */ lwc1 $f12, %lo(D_800E86E8 + 4)($at) +/* 0A093C 8009FD3C 3C01800F */ lui $at, %hi(D_800E86F0 + 4) # $at, 0x800f +/* 0A0940 8009FD40 C42F86F0 */ lwc1 $f15, %lo(D_800E86F0)($at) +/* 0A0944 8009FD44 C42E86F4 */ lwc1 $f14, %lo(D_800E86F0 + 4)($at) +/* 0A0948 8009FD48 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 0A094C 8009FD4C 44818800 */ mtc1 $at, $f17 +/* 0A0950 8009FD50 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0A0954 8009FD54 44819000 */ mtc1 $at, $f18 +/* 0A0958 8009FD58 3C058012 */ lui $a1, %hi(D_80126CDC) # $a1, 0x8012 +/* 0A095C 8009FD5C 8FA70090 */ lw $a3, 0x90($sp) +/* 0A0960 8009FD60 3C098012 */ lui $t1, %hi(D_80126CF0) # $t1, 0x8012 +/* 0A0964 8009FD64 44808000 */ mtc1 $zero, $f16 +/* 0A0968 8009FD68 25296CF0 */ addiu $t1, %lo(D_80126CF0) # addiu $t1, $t1, 0x6cf0 +/* 0A096C 8009FD6C 24A56CDC */ addiu $a1, %lo(D_80126CDC) # addiu $a1, $a1, 0x6cdc +/* 0A0970 8009FD70 3408C000 */ li $t0, 49152 +/* 0A0974 8009FD74 240AFFFF */ li $t2, -1 +/* 0A0978 8009FD78 240B0002 */ li $t3, 2 +/* 0A097C 8009FD7C 240C0001 */ li $t4, 1 +/* 0A0980 8009FD80 240D0009 */ li $t5, 9 +/* 0A0984 8009FD84 1040001F */ beqz $v0, .L8009FE04 +/* 0A0988 8009FD88 241F0012 */ li $ra, 18 +/* 0A098C 8009FD8C 8CA40000 */ lw $a0, ($a1) +/* 0A0990 8009FD90 00000000 */ nop +/* 0A0994 8009FD94 C484006C */ lwc1 $f4, 0x6c($a0) +/* 0A0998 8009FD98 00000000 */ nop +/* 0A099C 8009FD9C 46142180 */ add.s $f6, $f4, $f20 +/* 0A09A0 8009FDA0 E486006C */ swc1 $f6, 0x6c($a0) +/* 0A09A4 8009FDA4 8CA40000 */ lw $a0, ($a1) +/* 0A09A8 8009FDA8 00000000 */ nop +/* 0A09AC 8009FDAC C488008C */ lwc1 $f8, 0x8c($a0) +/* 0A09B0 8009FDB0 00000000 */ nop +/* 0A09B4 8009FDB4 46144280 */ add.s $f10, $f8, $f20 +/* 0A09B8 8009FDB8 E48A008C */ swc1 $f10, 0x8c($a0) +/* 0A09BC 8009FDBC 8CA40000 */ lw $a0, ($a1) +/* 0A09C0 8009FDC0 00000000 */ nop +/* 0A09C4 8009FDC4 C48400AC */ lwc1 $f4, 0xac($a0) +/* 0A09C8 8009FDC8 00000000 */ nop +/* 0A09CC 8009FDCC 46142180 */ add.s $f6, $f4, $f20 +/* 0A09D0 8009FDD0 E48600AC */ swc1 $f6, 0xac($a0) +/* 0A09D4 8009FDD4 8CA40000 */ lw $a0, ($a1) +/* 0A09D8 8009FDD8 00000000 */ nop +/* 0A09DC 8009FDDC C48800CC */ lwc1 $f8, 0xcc($a0) +/* 0A09E0 8009FDE0 00000000 */ nop +/* 0A09E4 8009FDE4 46144280 */ add.s $f10, $f8, $f20 +/* 0A09E8 8009FDE8 E48A00CC */ swc1 $f10, 0xcc($a0) +/* 0A09EC 8009FDEC 8CA40000 */ lw $a0, ($a1) +/* 0A09F0 8009FDF0 00000000 */ nop +/* 0A09F4 8009FDF4 C484020C */ lwc1 $f4, 0x20c($a0) +/* 0A09F8 8009FDF8 00000000 */ nop +/* 0A09FC 8009FDFC 46142180 */ add.s $f6, $f4, $f20 +/* 0A0A00 8009FE00 E486020C */ swc1 $f6, 0x20c($a0) +.L8009FE04: +/* 0A0A04 8009FE04 3C188000 */ lui $t8, %hi(osTvType) # $t8, 0x8000 +/* 0A0A08 8009FE08 8F180300 */ lw $t8, %lo(osTvType)($t8) +/* 0A0A0C 8009FE0C 00000000 */ nop +/* 0A0A10 8009FE10 17000053 */ bnez $t8, .L8009FF60 +/* 0A0A14 8009FE14 00000000 */ nop +/* 0A0A18 8009FE18 8CA40000 */ lw $a0, ($a1) +/* 0A0A1C 8009FE1C 00001825 */ move $v1, $zero +/* 0A0A20 8009FE20 00831021 */ addu $v0, $a0, $v1 +.L8009FE24: +/* 0A0A24 8009FE24 C4480010 */ lwc1 $f8, 0x10($v0) +/* 0A0A28 8009FE28 00000000 */ nop +/* 0A0A2C 8009FE2C 460042A1 */ cvt.d.s $f10, $f8 +/* 0A0A30 8009FE30 462C5102 */ mul.d $f4, $f10, $f12 +/* 0A0A34 8009FE34 462021A0 */ cvt.s.d $f6, $f4 +/* 0A0A38 8009FE38 E4460010 */ swc1 $f6, 0x10($v0) +/* 0A0A3C 8009FE3C 8CAE0000 */ lw $t6, ($a1) +/* 0A0A40 8009FE40 00000000 */ nop +/* 0A0A44 8009FE44 01C31021 */ addu $v0, $t6, $v1 +/* 0A0A48 8009FE48 C448000C */ lwc1 $f8, 0xc($v0) +/* 0A0A4C 8009FE4C 00000000 */ nop +/* 0A0A50 8009FE50 46124281 */ sub.s $f10, $f8, $f18 +/* 0A0A54 8009FE54 E44A000C */ swc1 $f10, 0xc($v0) +/* 0A0A58 8009FE58 8CA40000 */ lw $a0, ($a1) +/* 0A0A5C 8009FE5C 8D390000 */ lw $t9, ($t1) +/* 0A0A60 8009FE60 00831021 */ addu $v0, $a0, $v1 +/* 0A0A64 8009FE64 844F0006 */ lh $t7, 6($v0) +/* 0A0A68 8009FE68 24630020 */ addiu $v1, $v1, 0x20 +/* 0A0A6C 8009FE6C 000FC040 */ sll $t8, $t7, 1 +/* 0A0A70 8009FE70 03387021 */ addu $t6, $t9, $t8 +/* 0A0A74 8009FE74 85CF0000 */ lh $t7, ($t6) +/* 0A0A78 8009FE78 28610760 */ slti $at, $v1, 0x760 +/* 0A0A7C 8009FE7C 31F9C000 */ andi $t9, $t7, 0xc000 +/* 0A0A80 8009FE80 15190007 */ bne $t0, $t9, .L8009FEA0 +/* 0A0A84 8009FE84 00000000 */ nop +/* 0A0A88 8009FE88 C4440010 */ lwc1 $f4, 0x10($v0) +/* 0A0A8C 8009FE8C 00000000 */ nop +/* 0A0A90 8009FE90 46022181 */ sub.s $f6, $f4, $f2 +/* 0A0A94 8009FE94 E4460010 */ swc1 $f6, 0x10($v0) +/* 0A0A98 8009FE98 8CA40000 */ lw $a0, ($a1) +/* 0A0A9C 8009FE9C 00000000 */ nop +.L8009FEA0: +/* 0A0AA0 8009FEA0 1420FFE0 */ bnez $at, .L8009FE24 +/* 0A0AA4 8009FEA4 00831021 */ addu $v0, $a0, $v1 +/* 0A0AA8 8009FEA8 248204E0 */ addiu $v0, $a0, 0x4e0 +/* 0A0AAC 8009FEAC C4480010 */ lwc1 $f8, 0x10($v0) +/* 0A0AB0 8009FEB0 2406002A */ li $a2, 42 +/* 0A0AB4 8009FEB4 46024280 */ add.s $f10, $f8, $f2 +/* 0A0AB8 8009FEB8 00061940 */ sll $v1, $a2, 5 +/* 0A0ABC 8009FEBC E44A0010 */ swc1 $f10, 0x10($v0) +/* 0A0AC0 8009FEC0 8CA20000 */ lw $v0, ($a1) +/* 0A0AC4 8009FEC4 00000000 */ nop +/* 0A0AC8 8009FEC8 C4440510 */ lwc1 $f4, 0x510($v0) +/* 0A0ACC 8009FECC 244204E0 */ addiu $v0, $v0, 0x4e0 +/* 0A0AD0 8009FED0 46022180 */ add.s $f6, $f4, $f2 +/* 0A0AD4 8009FED4 E4460030 */ swc1 $f6, 0x30($v0) +/* 0A0AD8 8009FED8 8CA20000 */ lw $v0, ($a1) +/* 0A0ADC 8009FEDC 00000000 */ nop +/* 0A0AE0 8009FEE0 C4480530 */ lwc1 $f8, 0x530($v0) +/* 0A0AE4 8009FEE4 244204E0 */ addiu $v0, $v0, 0x4e0 +/* 0A0AE8 8009FEE8 46024280 */ add.s $f10, $f8, $f2 +/* 0A0AEC 8009FEEC E44A0050 */ swc1 $f10, 0x50($v0) +/* 0A0AF0 8009FEF0 8CB80000 */ lw $t8, ($a1) +/* 0A0AF4 8009FEF4 00000000 */ nop +/* 0A0AF8 8009FEF8 03031021 */ addu $v0, $t8, $v1 +/* 0A0AFC 8009FEFC C4440010 */ lwc1 $f4, 0x10($v0) +/* 0A0B00 8009FF00 00000000 */ nop +/* 0A0B04 8009FF04 46022180 */ add.s $f6, $f4, $f2 +/* 0A0B08 8009FF08 E4460010 */ swc1 $f6, 0x10($v0) +/* 0A0B0C 8009FF0C 8CAE0000 */ lw $t6, ($a1) +/* 0A0B10 8009FF10 00000000 */ nop +/* 0A0B14 8009FF14 01C31021 */ addu $v0, $t6, $v1 +/* 0A0B18 8009FF18 C4480030 */ lwc1 $f8, 0x30($v0) +/* 0A0B1C 8009FF1C 00000000 */ nop +/* 0A0B20 8009FF20 46024280 */ add.s $f10, $f8, $f2 +/* 0A0B24 8009FF24 E44A0030 */ swc1 $f10, 0x30($v0) +/* 0A0B28 8009FF28 8CAF0000 */ lw $t7, ($a1) +/* 0A0B2C 8009FF2C 00000000 */ nop +/* 0A0B30 8009FF30 01E31021 */ addu $v0, $t7, $v1 +/* 0A0B34 8009FF34 C4440050 */ lwc1 $f4, 0x50($v0) +/* 0A0B38 8009FF38 00000000 */ nop +/* 0A0B3C 8009FF3C 46022180 */ add.s $f6, $f4, $f2 +/* 0A0B40 8009FF40 E4460050 */ swc1 $f6, 0x50($v0) +/* 0A0B44 8009FF44 8CB90000 */ lw $t9, ($a1) +/* 0A0B48 8009FF48 00000000 */ nop +/* 0A0B4C 8009FF4C 03231021 */ addu $v0, $t9, $v1 +/* 0A0B50 8009FF50 C4480070 */ lwc1 $f8, 0x70($v0) +/* 0A0B54 8009FF54 00000000 */ nop +/* 0A0B58 8009FF58 46024280 */ add.s $f10, $f8, $f2 +/* 0A0B5C 8009FF5C E44A0070 */ swc1 $f10, 0x70($v0) +.L8009FF60: +/* 0A0B60 8009FF60 8CB80000 */ lw $t8, ($a1) +/* 0A0B64 8009FF64 24E70001 */ addiu $a3, $a3, 1 +/* 0A0B68 8009FF68 E7160268 */ swc1 $f22, 0x268($t8) +/* 0A0B6C 8009FF6C 8CAE0000 */ lw $t6, ($a1) +/* 0A0B70 8009FF70 00000000 */ nop +/* 0A0B74 8009FF74 A5DF0286 */ sh $ra, 0x286($t6) +/* 0A0B78 8009FF78 8CAF0000 */ lw $t7, ($a1) +/* 0A0B7C 8009FF7C 00000000 */ nop +/* 0A0B80 8009FF80 A5ED02A6 */ sh $t5, 0x2a6($t7) +/* 0A0B84 8009FF84 8CB90000 */ lw $t9, ($a1) +/* 0A0B88 8009FF88 00000000 */ nop +/* 0A0B8C 8009FF8C A72D02C6 */ sh $t5, 0x2c6($t9) +/* 0A0B90 8009FF90 8FB8006C */ lw $t8, 0x6c($sp) +/* 0A0B94 8009FF94 8FAF008C */ lw $t7, 0x8c($sp) +/* 0A0B98 8009FF98 270E0004 */ addiu $t6, $t8, 4 +/* 0A0B9C 8009FF9C 14EFFCCE */ bne $a3, $t7, .L8009F2D8 +/* 0A0BA0 8009FFA0 AFAE006C */ sw $t6, 0x6c($sp) +.L8009FFA4: +/* 0A0BA4 8009FFA4 0C01AF66 */ jal get_current_level_race_type +/* 0A0BA8 8009FFA8 00000000 */ nop +/* 0A0BAC 8009FFAC 30590040 */ andi $t9, $v0, 0x40 +/* 0A0BB0 8009FFB0 13200008 */ beqz $t9, .L8009FFD4 +/* 0A0BB4 8009FFB4 3C02800E */ lui $v0, %hi(gHudToggleSettings) # $v0, 0x800e +/* 0A0BB8 8009FFB8 3C02800E */ lui $v0, %hi(gHudToggleSettings) # $v0, 0x800e +/* 0A0BBC 8009FFBC 244227A4 */ addiu $v0, %lo(gHudToggleSettings) # addiu $v0, $v0, 0x27a4 +/* 0A0BC0 8009FFC0 80580001 */ lb $t8, 1($v0) +/* 0A0BC4 8009FFC4 3C01800E */ lui $at, %hi(D_800E27A8) # $at, 0x800e +/* 0A0BC8 8009FFC8 A03827A8 */ sb $t8, %lo(D_800E27A8)($at) +/* 0A0BCC 8009FFCC 10000005 */ b .L8009FFE4 +/* 0A0BD0 8009FFD0 A0400001 */ sb $zero, 1($v0) +.L8009FFD4: +/* 0A0BD4 8009FFD4 3C0E800E */ lui $t6, %hi(D_800E27A8) # $t6, 0x800e +/* 0A0BD8 8009FFD8 81CE27A8 */ lb $t6, %lo(D_800E27A8)($t6) +/* 0A0BDC 8009FFDC 244227A4 */ addiu $v0, %lo(gHudToggleSettings) # addiu $v0, $v0, 0x27a4 +/* 0A0BE0 8009FFE0 A04E0001 */ sb $t6, 1($v0) +.L8009FFE4: +/* 0A0BE4 8009FFE4 8FBF0064 */ lw $ra, 0x64($sp) +/* 0A0BE8 8009FFE8 C7B50018 */ lwc1 $f21, 0x18($sp) +/* 0A0BEC 8009FFEC C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 0A0BF0 8009FFF0 C7B70020 */ lwc1 $f23, 0x20($sp) +/* 0A0BF4 8009FFF4 C7B60024 */ lwc1 $f22, 0x24($sp) +/* 0A0BF8 8009FFF8 C7B90028 */ lwc1 $f25, 0x28($sp) +/* 0A0BFC 8009FFFC C7B8002C */ lwc1 $f24, 0x2c($sp) +/* 0A0C00 800A0000 C7BB0030 */ lwc1 $f27, 0x30($sp) +/* 0A0C04 800A0004 C7BA0034 */ lwc1 $f26, 0x34($sp) +/* 0A0C08 800A0008 C7BD0038 */ lwc1 $f29, 0x38($sp) +/* 0A0C0C 800A000C C7BC003C */ lwc1 $f28, 0x3c($sp) +/* 0A0C10 800A0010 8FB00040 */ lw $s0, 0x40($sp) +/* 0A0C14 800A0014 8FB10044 */ lw $s1, 0x44($sp) +/* 0A0C18 800A0018 8FB20048 */ lw $s2, 0x48($sp) +/* 0A0C1C 800A001C 8FB3004C */ lw $s3, 0x4c($sp) +/* 0A0C20 800A0020 8FB40050 */ lw $s4, 0x50($sp) +/* 0A0C24 800A0024 8FB50054 */ lw $s5, 0x54($sp) +/* 0A0C28 800A0028 8FB60058 */ lw $s6, 0x58($sp) +/* 0A0C2C 800A002C 8FB7005C */ lw $s7, 0x5c($sp) +/* 0A0C30 800A0030 8FBE0060 */ lw $fp, 0x60($sp) +/* 0A0C34 800A0034 03E00008 */ jr $ra +/* 0A0C38 800A0038 27BD0098 */ addiu $sp, $sp, 0x98 + diff --git a/asm/non_matchings/objects/calc_env_mapping_for_object.s b/asm/non_matchings/objects/calc_env_mapping_for_object.s index 1584d08c..773a7a21 100644 --- a/asm/non_matchings/objects/calc_env_mapping_for_object.s +++ b/asm/non_matchings/objects/calc_env_mapping_for_object.s @@ -1,269 +1,269 @@ -glabel calc_env_mapping_for_object -/* 01E954 8001DD54 27BDFEE8 */ addiu $sp, $sp, -0x118 -/* 01E958 8001DD58 AFBF003C */ sw $ra, 0x3c($sp) -/* 01E95C 8001DD5C AFBE0038 */ sw $fp, 0x38($sp) -/* 01E960 8001DD60 AFB70034 */ sw $s7, 0x34($sp) -/* 01E964 8001DD64 AFB60030 */ sw $s6, 0x30($sp) -/* 01E968 8001DD68 AFB5002C */ sw $s5, 0x2c($sp) -/* 01E96C 8001DD6C AFB40028 */ sw $s4, 0x28($sp) -/* 01E970 8001DD70 AFB30024 */ sw $s3, 0x24($sp) -/* 01E974 8001DD74 AFB20020 */ sw $s2, 0x20($sp) -/* 01E978 8001DD78 AFB1001C */ sw $s1, 0x1c($sp) -/* 01E97C 8001DD7C AFB00018 */ sw $s0, 0x18($sp) -/* 01E980 8001DD80 AFA5011C */ sw $a1, 0x11c($sp) -/* 01E984 8001DD84 AFA60120 */ sw $a2, 0x120($sp) -/* 01E988 8001DD88 AFA70124 */ sw $a3, 0x124($sp) -/* 01E98C 8001DD8C 8C890008 */ lw $t1, 8($a0) -/* 01E990 8001DD90 44800000 */ mtc1 $zero, $f0 -/* 01E994 8001DD94 AFA90078 */ sw $t1, 0x78($sp) -/* 01E998 8001DD98 8C8A0040 */ lw $t2, 0x40($a0) -/* 01E99C 8001DD9C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 01E9A0 8001DDA0 44812000 */ mtc1 $at, $f4 -/* 01E9A4 8001DDA4 27B10098 */ addiu $s1, $sp, 0x98 -/* 01E9A8 8001DDA8 0080F025 */ move $fp, $a0 -/* 01E9AC 8001DDAC 00A07025 */ move $t6, $a1 -/* 01E9B0 8001DDB0 0000A025 */ move $s4, $zero -/* 01E9B4 8001DDB4 A7AE0084 */ sh $t6, 0x84($sp) -/* 01E9B8 8001DDB8 A7A60082 */ sh $a2, 0x82($sp) -/* 01E9BC 8001DDBC A7A70080 */ sh $a3, 0x80($sp) -/* 01E9C0 8001DDC0 27A50080 */ addiu $a1, $sp, 0x80 -/* 01E9C4 8001DDC4 02202025 */ move $a0, $s1 -/* 01E9C8 8001DDC8 E7A0008C */ swc1 $f0, 0x8c($sp) -/* 01E9CC 8001DDCC E7A00090 */ swc1 $f0, 0x90($sp) -/* 01E9D0 8001DDD0 E7A00094 */ swc1 $f0, 0x94($sp) -/* 01E9D4 8001DDD4 AFAA0074 */ sw $t2, 0x74($sp) -/* 01E9D8 8001DDD8 0C01BF0C */ jal object_transform_to_matrix -/* 01E9DC 8001DDDC E7A40088 */ swc1 $f4, 0x88($sp) -/* 01E9E0 8001DDE0 02202025 */ move $a0, $s1 -/* 01E9E4 8001DDE4 0C01BD78 */ jal f32_matrix_to_s32_matrix -/* 01E9E8 8001DDE8 27A500D8 */ addiu $a1, $sp, 0xd8 -/* 01E9EC 8001DDEC A7A00062 */ sh $zero, 0x62($sp) -/* 01E9F0 8001DDF0 87C20028 */ lh $v0, 0x28($fp) -/* 01E9F4 8001DDF4 3C138012 */ lui $s3, %hi(D_8011AF68) # $s3, 0x8012 -/* 01E9F8 8001DDF8 184000C4 */ blez $v0, .L8001E10C -/* 01E9FC 8001DDFC 2673AF68 */ addiu $s3, %lo(D_8011AF68) # addiu $s3, $s3, -0x5098 -/* 01EA00 8001DE00 3C118012 */ lui $s1, %hi(D_8011AFE8) # $s1, 0x8012 -/* 01EA04 8001DE04 8FC60038 */ lw $a2, 0x38($fp) -/* 01EA08 8001DE08 2631AFE8 */ addiu $s1, %lo(D_8011AFE8) # addiu $s1, $s1, -0x5018 -.L8001DE0C: -/* 01EA0C 8001DE0C 87B70062 */ lh $s7, 0x62($sp) -/* 01EA10 8001DE10 3C010002 */ lui $at, 2 -/* 01EA14 8001DE14 00175880 */ sll $t3, $s7, 2 -/* 01EA18 8001DE18 01775823 */ subu $t3, $t3, $s7 -/* 01EA1C 8001DE1C 000BB880 */ sll $s7, $t3, 2 -/* 01EA20 8001DE20 00D72821 */ addu $a1, $a2, $s7 -/* 01EA24 8001DE24 8CA30008 */ lw $v1, 8($a1) -/* 01EA28 8001DE28 00000000 */ nop -/* 01EA2C 8001DE2C 306C8000 */ andi $t4, $v1, 0x8000 -/* 01EA30 8001DE30 118000A3 */ beqz $t4, .L8001E0C0 -/* 01EA34 8001DE34 00616824 */ and $t5, $v1, $at -/* 01EA38 8001DE38 35AE8000 */ ori $t6, $t5, 0x8000 -/* 01EA3C 8001DE3C 39CF8000 */ xori $t7, $t6, 0x8000 -/* 01EA40 8001DE40 AFAF0070 */ sw $t7, 0x70($sp) -/* 01EA44 8001DE44 90B90000 */ lbu $t9, ($a1) -/* 01EA48 8001DE48 8FD80000 */ lw $t8, ($fp) -/* 01EA4C 8001DE4C 001940C0 */ sll $t0, $t9, 3 -/* 01EA50 8001DE50 03084821 */ addu $t1, $t8, $t0 -/* 01EA54 8001DE54 8D240000 */ lw $a0, ($t1) -/* 01EA58 8001DE58 24070020 */ li $a3, 32 -/* 01EA5C 8001DE5C 90820000 */ lbu $v0, ($a0) -/* 01EA60 8001DE60 00009025 */ move $s2, $zero -/* 01EA64 8001DE64 10470014 */ beq $v0, $a3, .L8001DEB8 -/* 01EA68 8001DE68 24190006 */ li $t9, 6 -/* 01EA6C 8001DE6C 24010040 */ li $at, 64 -/* 01EA70 8001DE70 1041000D */ beq $v0, $at, .L8001DEA8 -/* 01EA74 8001DE74 240E0005 */ li $t6, 5 -/* 01EA78 8001DE78 24010080 */ li $at, 128 -/* 01EA7C 8001DE7C 10410006 */ beq $v0, $at, .L8001DE98 -/* 01EA80 8001DE80 240C0004 */ li $t4, 4 -/* 01EA84 8001DE84 240A0007 */ li $t2, 7 -/* 01EA88 8001DE88 240B01FF */ li $t3, 511 -/* 01EA8C 8001DE8C A7AB0068 */ sh $t3, 0x68($sp) -/* 01EA90 8001DE90 1000000C */ b .L8001DEC4 -/* 01EA94 8001DE94 A7AA006A */ sh $t2, 0x6a($sp) -.L8001DE98: -/* 01EA98 8001DE98 240D0FFF */ li $t5, 4095 -/* 01EA9C 8001DE9C A7AD0068 */ sh $t5, 0x68($sp) -/* 01EAA0 8001DEA0 10000008 */ b .L8001DEC4 -/* 01EAA4 8001DEA4 A7AC006A */ sh $t4, 0x6a($sp) -.L8001DEA8: -/* 01EAA8 8001DEA8 240F07FF */ li $t7, 2047 -/* 01EAAC 8001DEAC A7AF0068 */ sh $t7, 0x68($sp) -/* 01EAB0 8001DEB0 10000004 */ b .L8001DEC4 -/* 01EAB4 8001DEB4 A7AE006A */ sh $t6, 0x6a($sp) -.L8001DEB8: -/* 01EAB8 8001DEB8 241803FF */ li $t8, 1023 -/* 01EABC 8001DEBC A7B80068 */ sh $t8, 0x68($sp) -/* 01EAC0 8001DEC0 A7B9006A */ sh $t9, 0x6a($sp) -.L8001DEC4: -/* 01EAC4 8001DEC4 90820001 */ lbu $v0, 1($a0) -/* 01EAC8 8001DEC8 24150006 */ li $s5, 6 -/* 01EACC 8001DECC 1047000E */ beq $v0, $a3, .L8001DF08 -/* 01EAD0 8001DED0 241603FF */ li $s6, 1023 -/* 01EAD4 8001DED4 24010040 */ li $at, 64 -/* 01EAD8 8001DED8 10410009 */ beq $v0, $at, .L8001DF00 -/* 01EADC 8001DEDC 24150005 */ li $s5, 5 -/* 01EAE0 8001DEE0 24010080 */ li $at, 128 -/* 01EAE4 8001DEE4 10410004 */ beq $v0, $at, .L8001DEF8 -/* 01EAE8 8001DEE8 24150004 */ li $s5, 4 -/* 01EAEC 8001DEEC 24150007 */ li $s5, 7 -/* 01EAF0 8001DEF0 10000005 */ b .L8001DF08 -/* 01EAF4 8001DEF4 241601FF */ li $s6, 511 -.L8001DEF8: -/* 01EAF8 8001DEF8 10000003 */ b .L8001DF08 -/* 01EAFC 8001DEFC 24160FFF */ li $s6, 4095 -.L8001DF00: -/* 01EB00 8001DF00 10000001 */ b .L8001DF08 -/* 01EB04 8001DF04 241607FF */ li $s6, 2047 -.L8001DF08: -/* 01EB08 8001DF08 84B00002 */ lh $s0, 2($a1) -/* 01EB0C 8001DF0C 84A8000E */ lh $t0, 0xe($a1) -/* 01EB10 8001DF10 00000000 */ nop -/* 01EB14 8001DF14 0208082A */ slt $at, $s0, $t0 -/* 01EB18 8001DF18 10200040 */ beqz $at, .L8001E01C -.L8001DF1C: -/* 01EB1C 8001DF1C 00145080 */ sll $t2, $s4, 2 -/* 01EB20 8001DF20 8FA90074 */ lw $t1, 0x74($sp) -/* 01EB24 8001DF24 01545023 */ subu $t2, $t2, $s4 -/* 01EB28 8001DF28 000A5040 */ sll $t2, $t2, 1 -/* 01EB2C 8001DF2C 012A1021 */ addu $v0, $t1, $t2 -/* 01EB30 8001DF30 844B0000 */ lh $t3, ($v0) -/* 01EB34 8001DF34 26940001 */ addiu $s4, $s4, 1 -/* 01EB38 8001DF38 A62B0006 */ sh $t3, 6($s1) -/* 01EB3C 8001DF3C 844C0002 */ lh $t4, 2($v0) -/* 01EB40 8001DF40 00147400 */ sll $t6, $s4, 0x10 -/* 01EB44 8001DF44 A62C0008 */ sh $t4, 8($s1) -/* 01EB48 8001DF48 844D0004 */ lh $t5, 4($v0) -/* 01EB4C 8001DF4C 3C058012 */ lui $a1, %hi(D_8011AFEE) # $a1, 0x8012 -/* 01EB50 8001DF50 000EA403 */ sra $s4, $t6, 0x10 -/* 01EB54 8001DF54 24A5AFEE */ addiu $a1, %lo(D_8011AFEE) # addiu $a1, $a1, -0x5012 -/* 01EB58 8001DF58 27A400D8 */ addiu $a0, $sp, 0xd8 -/* 01EB5C 8001DF5C 0C01BED8 */ jal s16_vec3_mult_by_s32_matrix -/* 01EB60 8001DF60 A62D000A */ sh $t5, 0xa($s1) -/* 01EB64 8001DF64 8FB90070 */ lw $t9, 0x70($sp) -/* 01EB68 8001DF68 02202025 */ move $a0, $s1 -/* 01EB6C 8001DF6C 17200003 */ bnez $t9, .L8001DF7C -/* 01EB70 8001DF70 3C058012 */ lui $a1, %hi(D_8011AFEE) # $a1, 0x8012 -/* 01EB74 8001DF74 0C01BE6E */ jal s16_matrix_rotate -/* 01EB78 8001DF78 24A5AFEE */ addiu $a1, %lo(D_8011AFEE) # addiu $a1, $a1, -0x5012 -.L8001DF7C: -/* 01EB7C 8001DF7C 86220006 */ lh $v0, 6($s1) -/* 01EB80 8001DF80 86230008 */ lh $v1, 8($s1) -/* 01EB84 8001DF84 18400004 */ blez $v0, .L8001DF98 -/* 01EB88 8001DF88 34078000 */ li $a3, 32768 -/* 01EB8C 8001DF8C 2442FFFF */ addiu $v0, $v0, -1 -/* 01EB90 8001DF90 0002C400 */ sll $t8, $v0, 0x10 -/* 01EB94 8001DF94 00181403 */ sra $v0, $t8, 0x10 -.L8001DF98: -/* 01EB98 8001DF98 18600004 */ blez $v1, .L8001DFAC -/* 01EB9C 8001DF9C 00025880 */ sll $t3, $v0, 2 -/* 01EBA0 8001DFA0 2463FFFF */ addiu $v1, $v1, -1 -/* 01EBA4 8001DFA4 00034C00 */ sll $t1, $v1, 0x10 -/* 01EBA8 8001DFA8 00091C03 */ sra $v1, $t1, 0x10 -.L8001DFAC: -/* 01EBAC 8001DFAC 01671021 */ addu $v0, $t3, $a3 -/* 01EBB0 8001DFB0 00037080 */ sll $t6, $v1, 2 -/* 01EBB4 8001DFB4 87A8006A */ lh $t0, 0x6a($sp) -/* 01EBB8 8001DFB8 00026400 */ sll $t4, $v0, 0x10 -/* 01EBBC 8001DFBC 01C71821 */ addu $v1, $t6, $a3 -/* 01EBC0 8001DFC0 000C6C03 */ sra $t5, $t4, 0x10 -/* 01EBC4 8001DFC4 00037C00 */ sll $t7, $v1, 0x10 -/* 01EBC8 8001DFC8 87AA0068 */ lh $t2, 0x68($sp) -/* 01EBCC 8001DFCC 000FCC03 */ sra $t9, $t7, 0x10 -/* 01EBD0 8001DFD0 0012C080 */ sll $t8, $s2, 2 -/* 01EBD4 8001DFD4 010D4807 */ srav $t1, $t5, $t0 -/* 01EBD8 8001DFD8 02782021 */ addu $a0, $s3, $t8 -/* 01EBDC 8001DFDC 02B96007 */ srav $t4, $t9, $s5 -/* 01EBE0 8001DFE0 01966824 */ and $t5, $t4, $s6 -/* 01EBE4 8001DFE4 012A5824 */ and $t3, $t1, $t2 -/* 01EBE8 8001DFE8 A48B0000 */ sh $t3, ($a0) -/* 01EBEC 8001DFEC A48D0002 */ sh $t5, 2($a0) -/* 01EBF0 8001DFF0 8FC60038 */ lw $a2, 0x38($fp) -/* 01EBF4 8001DFF4 26100001 */ addiu $s0, $s0, 1 -/* 01EBF8 8001DFF8 00D72821 */ addu $a1, $a2, $s7 -/* 01EBFC 8001DFFC 84A8000E */ lh $t0, 0xe($a1) -/* 01EC00 8001E000 00107400 */ sll $t6, $s0, 0x10 -/* 01EC04 8001E004 000E8403 */ sra $s0, $t6, 0x10 -/* 01EC08 8001E008 26520001 */ addiu $s2, $s2, 1 -/* 01EC0C 8001E00C 0012CC00 */ sll $t9, $s2, 0x10 -/* 01EC10 8001E010 0208082A */ slt $at, $s0, $t0 -/* 01EC14 8001E014 1420FFC1 */ bnez $at, .L8001DF1C -/* 01EC18 8001E018 00199403 */ sra $s2, $t9, 0x10 -.L8001E01C: -/* 01EC1C 8001E01C 84B00004 */ lh $s0, 4($a1) -/* 01EC20 8001E020 84A90010 */ lh $t1, 0x10($a1) -/* 01EC24 8001E024 8FA70078 */ lw $a3, 0x78($sp) -/* 01EC28 8001E028 0209082A */ slt $at, $s0, $t1 -/* 01EC2C 8001E02C 10200021 */ beqz $at, .L8001E0B4 -/* 01EC30 8001E030 00105100 */ sll $t2, $s0, 4 -.L8001E034: -/* 01EC34 8001E034 00EA1021 */ addu $v0, $a3, $t2 -/* 01EC38 8001E038 904B0001 */ lbu $t3, 1($v0) -/* 01EC3C 8001E03C 904F0002 */ lbu $t7, 2($v0) -/* 01EC40 8001E040 000B6080 */ sll $t4, $t3, 2 -/* 01EC44 8001E044 026C1821 */ addu $v1, $s3, $t4 -/* 01EC48 8001E048 846D0000 */ lh $t5, ($v1) -/* 01EC4C 8001E04C 000FC880 */ sll $t9, $t7, 2 -/* 01EC50 8001E050 A44D0004 */ sh $t5, 4($v0) -/* 01EC54 8001E054 846E0002 */ lh $t6, 2($v1) -/* 01EC58 8001E058 02792021 */ addu $a0, $s3, $t9 -/* 01EC5C 8001E05C A44E0006 */ sh $t6, 6($v0) -/* 01EC60 8001E060 84980000 */ lh $t8, ($a0) -/* 01EC64 8001E064 90490003 */ lbu $t1, 3($v0) -/* 01EC68 8001E068 A4580008 */ sh $t8, 8($v0) -/* 01EC6C 8001E06C 84880002 */ lh $t0, 2($a0) -/* 01EC70 8001E070 00095080 */ sll $t2, $t1, 2 -/* 01EC74 8001E074 026A2821 */ addu $a1, $s3, $t2 -/* 01EC78 8001E078 A448000A */ sh $t0, 0xa($v0) -/* 01EC7C 8001E07C 84AB0000 */ lh $t3, ($a1) -/* 01EC80 8001E080 26100001 */ addiu $s0, $s0, 1 -/* 01EC84 8001E084 A44B000C */ sh $t3, 0xc($v0) -/* 01EC88 8001E088 84AC0002 */ lh $t4, 2($a1) -/* 01EC8C 8001E08C 00106C00 */ sll $t5, $s0, 0x10 -/* 01EC90 8001E090 A44C000E */ sh $t4, 0xe($v0) -/* 01EC94 8001E094 8FC60038 */ lw $a2, 0x38($fp) -/* 01EC98 8001E098 000D8403 */ sra $s0, $t5, 0x10 -/* 01EC9C 8001E09C 00D77821 */ addu $t7, $a2, $s7 -/* 01ECA0 8001E0A0 85F90010 */ lh $t9, 0x10($t7) -/* 01ECA4 8001E0A4 00000000 */ nop -/* 01ECA8 8001E0A8 0219082A */ slt $at, $s0, $t9 -/* 01ECAC 8001E0AC 1420FFE1 */ bnez $at, .L8001E034 -/* 01ECB0 8001E0B0 00105100 */ sll $t2, $s0, 4 -.L8001E0B4: -/* 01ECB4 8001E0B4 87C20028 */ lh $v0, 0x28($fp) -/* 01ECB8 8001E0B8 1000000D */ b .L8001E0F0 -/* 01ECBC 8001E0BC 87AD0062 */ lh $t5, 0x62($sp) -.L8001E0C0: -/* 01ECC0 8001E0C0 90B80006 */ lbu $t8, 6($a1) -/* 01ECC4 8001E0C4 00000000 */ nop -/* 01ECC8 8001E0C8 2B0100FF */ slti $at, $t8, 0xff -/* 01ECCC 8001E0CC 10200008 */ beqz $at, .L8001E0F0 -/* 01ECD0 8001E0D0 87AD0062 */ lh $t5, 0x62($sp) -/* 01ECD4 8001E0D4 84A8000E */ lh $t0, 0xe($a1) -/* 01ECD8 8001E0D8 84AA0002 */ lh $t2, 2($a1) -/* 01ECDC 8001E0DC 02884821 */ addu $t1, $s4, $t0 -/* 01ECE0 8001E0E0 012AA023 */ subu $s4, $t1, $t2 -/* 01ECE4 8001E0E4 00145C00 */ sll $t3, $s4, 0x10 -/* 01ECE8 8001E0E8 000BA403 */ sra $s4, $t3, 0x10 -/* 01ECEC 8001E0EC 87AD0062 */ lh $t5, 0x62($sp) -.L8001E0F0: -/* 01ECF0 8001E0F0 00000000 */ nop -/* 01ECF4 8001E0F4 25AE0001 */ addiu $t6, $t5, 1 -/* 01ECF8 8001E0F8 000E7C00 */ sll $t7, $t6, 0x10 -/* 01ECFC 8001E0FC 000FCC03 */ sra $t9, $t7, 0x10 -/* 01ED00 8001E100 0322082A */ slt $at, $t9, $v0 -/* 01ED04 8001E104 1420FF41 */ bnez $at, .L8001DE0C -/* 01ED08 8001E108 A7AE0062 */ sh $t6, 0x62($sp) -.L8001E10C: -/* 01ED0C 8001E10C 8FBF003C */ lw $ra, 0x3c($sp) -/* 01ED10 8001E110 8FB00018 */ lw $s0, 0x18($sp) -/* 01ED14 8001E114 8FB1001C */ lw $s1, 0x1c($sp) -/* 01ED18 8001E118 8FB20020 */ lw $s2, 0x20($sp) -/* 01ED1C 8001E11C 8FB30024 */ lw $s3, 0x24($sp) -/* 01ED20 8001E120 8FB40028 */ lw $s4, 0x28($sp) -/* 01ED24 8001E124 8FB5002C */ lw $s5, 0x2c($sp) -/* 01ED28 8001E128 8FB60030 */ lw $s6, 0x30($sp) -/* 01ED2C 8001E12C 8FB70034 */ lw $s7, 0x34($sp) -/* 01ED30 8001E130 8FBE0038 */ lw $fp, 0x38($sp) -/* 01ED34 8001E134 03E00008 */ jr $ra -/* 01ED38 8001E138 27BD0118 */ addiu $sp, $sp, 0x118 +glabel calc_env_mapping_for_object +/* 01E954 8001DD54 27BDFEE8 */ addiu $sp, $sp, -0x118 +/* 01E958 8001DD58 AFBF003C */ sw $ra, 0x3c($sp) +/* 01E95C 8001DD5C AFBE0038 */ sw $fp, 0x38($sp) +/* 01E960 8001DD60 AFB70034 */ sw $s7, 0x34($sp) +/* 01E964 8001DD64 AFB60030 */ sw $s6, 0x30($sp) +/* 01E968 8001DD68 AFB5002C */ sw $s5, 0x2c($sp) +/* 01E96C 8001DD6C AFB40028 */ sw $s4, 0x28($sp) +/* 01E970 8001DD70 AFB30024 */ sw $s3, 0x24($sp) +/* 01E974 8001DD74 AFB20020 */ sw $s2, 0x20($sp) +/* 01E978 8001DD78 AFB1001C */ sw $s1, 0x1c($sp) +/* 01E97C 8001DD7C AFB00018 */ sw $s0, 0x18($sp) +/* 01E980 8001DD80 AFA5011C */ sw $a1, 0x11c($sp) +/* 01E984 8001DD84 AFA60120 */ sw $a2, 0x120($sp) +/* 01E988 8001DD88 AFA70124 */ sw $a3, 0x124($sp) +/* 01E98C 8001DD8C 8C890008 */ lw $t1, 8($a0) +/* 01E990 8001DD90 44800000 */ mtc1 $zero, $f0 +/* 01E994 8001DD94 AFA90078 */ sw $t1, 0x78($sp) +/* 01E998 8001DD98 8C8A0040 */ lw $t2, 0x40($a0) +/* 01E99C 8001DD9C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 01E9A0 8001DDA0 44812000 */ mtc1 $at, $f4 +/* 01E9A4 8001DDA4 27B10098 */ addiu $s1, $sp, 0x98 +/* 01E9A8 8001DDA8 0080F025 */ move $fp, $a0 +/* 01E9AC 8001DDAC 00A07025 */ move $t6, $a1 +/* 01E9B0 8001DDB0 0000A025 */ move $s4, $zero +/* 01E9B4 8001DDB4 A7AE0084 */ sh $t6, 0x84($sp) +/* 01E9B8 8001DDB8 A7A60082 */ sh $a2, 0x82($sp) +/* 01E9BC 8001DDBC A7A70080 */ sh $a3, 0x80($sp) +/* 01E9C0 8001DDC0 27A50080 */ addiu $a1, $sp, 0x80 +/* 01E9C4 8001DDC4 02202025 */ move $a0, $s1 +/* 01E9C8 8001DDC8 E7A0008C */ swc1 $f0, 0x8c($sp) +/* 01E9CC 8001DDCC E7A00090 */ swc1 $f0, 0x90($sp) +/* 01E9D0 8001DDD0 E7A00094 */ swc1 $f0, 0x94($sp) +/* 01E9D4 8001DDD4 AFAA0074 */ sw $t2, 0x74($sp) +/* 01E9D8 8001DDD8 0C01BF0C */ jal object_transform_to_matrix +/* 01E9DC 8001DDDC E7A40088 */ swc1 $f4, 0x88($sp) +/* 01E9E0 8001DDE0 02202025 */ move $a0, $s1 +/* 01E9E4 8001DDE4 0C01BD78 */ jal f32_matrix_to_s32_matrix +/* 01E9E8 8001DDE8 27A500D8 */ addiu $a1, $sp, 0xd8 +/* 01E9EC 8001DDEC A7A00062 */ sh $zero, 0x62($sp) +/* 01E9F0 8001DDF0 87C20028 */ lh $v0, 0x28($fp) +/* 01E9F4 8001DDF4 3C138012 */ lui $s3, %hi(D_8011AF68) # $s3, 0x8012 +/* 01E9F8 8001DDF8 184000C4 */ blez $v0, .L8001E10C +/* 01E9FC 8001DDFC 2673AF68 */ addiu $s3, %lo(D_8011AF68) # addiu $s3, $s3, -0x5098 +/* 01EA00 8001DE00 3C118012 */ lui $s1, %hi(gEnvmapPos) # $s1, 0x8012 +/* 01EA04 8001DE04 8FC60038 */ lw $a2, 0x38($fp) +/* 01EA08 8001DE08 2631AFE8 */ addiu $s1, %lo(gEnvmapPos) # addiu $s1, $s1, -0x5018 +.L8001DE0C: +/* 01EA0C 8001DE0C 87B70062 */ lh $s7, 0x62($sp) +/* 01EA10 8001DE10 3C010002 */ lui $at, 2 +/* 01EA14 8001DE14 00175880 */ sll $t3, $s7, 2 +/* 01EA18 8001DE18 01775823 */ subu $t3, $t3, $s7 +/* 01EA1C 8001DE1C 000BB880 */ sll $s7, $t3, 2 +/* 01EA20 8001DE20 00D72821 */ addu $a1, $a2, $s7 +/* 01EA24 8001DE24 8CA30008 */ lw $v1, 8($a1) +/* 01EA28 8001DE28 00000000 */ nop +/* 01EA2C 8001DE2C 306C8000 */ andi $t4, $v1, 0x8000 +/* 01EA30 8001DE30 118000A3 */ beqz $t4, .L8001E0C0 +/* 01EA34 8001DE34 00616824 */ and $t5, $v1, $at +/* 01EA38 8001DE38 35AE8000 */ ori $t6, $t5, 0x8000 +/* 01EA3C 8001DE3C 39CF8000 */ xori $t7, $t6, 0x8000 +/* 01EA40 8001DE40 AFAF0070 */ sw $t7, 0x70($sp) +/* 01EA44 8001DE44 90B90000 */ lbu $t9, ($a1) +/* 01EA48 8001DE48 8FD80000 */ lw $t8, ($fp) +/* 01EA4C 8001DE4C 001940C0 */ sll $t0, $t9, 3 +/* 01EA50 8001DE50 03084821 */ addu $t1, $t8, $t0 +/* 01EA54 8001DE54 8D240000 */ lw $a0, ($t1) +/* 01EA58 8001DE58 24070020 */ li $a3, 32 +/* 01EA5C 8001DE5C 90820000 */ lbu $v0, ($a0) +/* 01EA60 8001DE60 00009025 */ move $s2, $zero +/* 01EA64 8001DE64 10470014 */ beq $v0, $a3, .L8001DEB8 +/* 01EA68 8001DE68 24190006 */ li $t9, 6 +/* 01EA6C 8001DE6C 24010040 */ li $at, 64 +/* 01EA70 8001DE70 1041000D */ beq $v0, $at, .L8001DEA8 +/* 01EA74 8001DE74 240E0005 */ li $t6, 5 +/* 01EA78 8001DE78 24010080 */ li $at, 128 +/* 01EA7C 8001DE7C 10410006 */ beq $v0, $at, .L8001DE98 +/* 01EA80 8001DE80 240C0004 */ li $t4, 4 +/* 01EA84 8001DE84 240A0007 */ li $t2, 7 +/* 01EA88 8001DE88 240B01FF */ li $t3, 511 +/* 01EA8C 8001DE8C A7AB0068 */ sh $t3, 0x68($sp) +/* 01EA90 8001DE90 1000000C */ b .L8001DEC4 +/* 01EA94 8001DE94 A7AA006A */ sh $t2, 0x6a($sp) +.L8001DE98: +/* 01EA98 8001DE98 240D0FFF */ li $t5, 4095 +/* 01EA9C 8001DE9C A7AD0068 */ sh $t5, 0x68($sp) +/* 01EAA0 8001DEA0 10000008 */ b .L8001DEC4 +/* 01EAA4 8001DEA4 A7AC006A */ sh $t4, 0x6a($sp) +.L8001DEA8: +/* 01EAA8 8001DEA8 240F07FF */ li $t7, 2047 +/* 01EAAC 8001DEAC A7AF0068 */ sh $t7, 0x68($sp) +/* 01EAB0 8001DEB0 10000004 */ b .L8001DEC4 +/* 01EAB4 8001DEB4 A7AE006A */ sh $t6, 0x6a($sp) +.L8001DEB8: +/* 01EAB8 8001DEB8 241803FF */ li $t8, 1023 +/* 01EABC 8001DEBC A7B80068 */ sh $t8, 0x68($sp) +/* 01EAC0 8001DEC0 A7B9006A */ sh $t9, 0x6a($sp) +.L8001DEC4: +/* 01EAC4 8001DEC4 90820001 */ lbu $v0, 1($a0) +/* 01EAC8 8001DEC8 24150006 */ li $s5, 6 +/* 01EACC 8001DECC 1047000E */ beq $v0, $a3, .L8001DF08 +/* 01EAD0 8001DED0 241603FF */ li $s6, 1023 +/* 01EAD4 8001DED4 24010040 */ li $at, 64 +/* 01EAD8 8001DED8 10410009 */ beq $v0, $at, .L8001DF00 +/* 01EADC 8001DEDC 24150005 */ li $s5, 5 +/* 01EAE0 8001DEE0 24010080 */ li $at, 128 +/* 01EAE4 8001DEE4 10410004 */ beq $v0, $at, .L8001DEF8 +/* 01EAE8 8001DEE8 24150004 */ li $s5, 4 +/* 01EAEC 8001DEEC 24150007 */ li $s5, 7 +/* 01EAF0 8001DEF0 10000005 */ b .L8001DF08 +/* 01EAF4 8001DEF4 241601FF */ li $s6, 511 +.L8001DEF8: +/* 01EAF8 8001DEF8 10000003 */ b .L8001DF08 +/* 01EAFC 8001DEFC 24160FFF */ li $s6, 4095 +.L8001DF00: +/* 01EB00 8001DF00 10000001 */ b .L8001DF08 +/* 01EB04 8001DF04 241607FF */ li $s6, 2047 +.L8001DF08: +/* 01EB08 8001DF08 84B00002 */ lh $s0, 2($a1) +/* 01EB0C 8001DF0C 84A8000E */ lh $t0, 0xe($a1) +/* 01EB10 8001DF10 00000000 */ nop +/* 01EB14 8001DF14 0208082A */ slt $at, $s0, $t0 +/* 01EB18 8001DF18 10200040 */ beqz $at, .L8001E01C +.L8001DF1C: +/* 01EB1C 8001DF1C 00145080 */ sll $t2, $s4, 2 +/* 01EB20 8001DF20 8FA90074 */ lw $t1, 0x74($sp) +/* 01EB24 8001DF24 01545023 */ subu $t2, $t2, $s4 +/* 01EB28 8001DF28 000A5040 */ sll $t2, $t2, 1 +/* 01EB2C 8001DF2C 012A1021 */ addu $v0, $t1, $t2 +/* 01EB30 8001DF30 844B0000 */ lh $t3, ($v0) +/* 01EB34 8001DF34 26940001 */ addiu $s4, $s4, 1 +/* 01EB38 8001DF38 A62B0006 */ sh $t3, 6($s1) +/* 01EB3C 8001DF3C 844C0002 */ lh $t4, 2($v0) +/* 01EB40 8001DF40 00147400 */ sll $t6, $s4, 0x10 +/* 01EB44 8001DF44 A62C0008 */ sh $t4, 8($s1) +/* 01EB48 8001DF48 844D0004 */ lh $t5, 4($v0) +/* 01EB4C 8001DF4C 3C058012 */ lui $a1, %hi(D_8011AFEE) # $a1, 0x8012 +/* 01EB50 8001DF50 000EA403 */ sra $s4, $t6, 0x10 +/* 01EB54 8001DF54 24A5AFEE */ addiu $a1, %lo(D_8011AFEE) # addiu $a1, $a1, -0x5012 +/* 01EB58 8001DF58 27A400D8 */ addiu $a0, $sp, 0xd8 +/* 01EB5C 8001DF5C 0C01BED8 */ jal s16_vec3_mult_by_s32_matrix +/* 01EB60 8001DF60 A62D000A */ sh $t5, 0xa($s1) +/* 01EB64 8001DF64 8FB90070 */ lw $t9, 0x70($sp) +/* 01EB68 8001DF68 02202025 */ move $a0, $s1 +/* 01EB6C 8001DF6C 17200003 */ bnez $t9, .L8001DF7C +/* 01EB70 8001DF70 3C058012 */ lui $a1, %hi(D_8011AFEE) # $a1, 0x8012 +/* 01EB74 8001DF74 0C01BE6E */ jal s16_matrix_rotate +/* 01EB78 8001DF78 24A5AFEE */ addiu $a1, %lo(D_8011AFEE) # addiu $a1, $a1, -0x5012 +.L8001DF7C: +/* 01EB7C 8001DF7C 86220006 */ lh $v0, 6($s1) +/* 01EB80 8001DF80 86230008 */ lh $v1, 8($s1) +/* 01EB84 8001DF84 18400004 */ blez $v0, .L8001DF98 +/* 01EB88 8001DF88 34078000 */ li $a3, 32768 +/* 01EB8C 8001DF8C 2442FFFF */ addiu $v0, $v0, -1 +/* 01EB90 8001DF90 0002C400 */ sll $t8, $v0, 0x10 +/* 01EB94 8001DF94 00181403 */ sra $v0, $t8, 0x10 +.L8001DF98: +/* 01EB98 8001DF98 18600004 */ blez $v1, .L8001DFAC +/* 01EB9C 8001DF9C 00025880 */ sll $t3, $v0, 2 +/* 01EBA0 8001DFA0 2463FFFF */ addiu $v1, $v1, -1 +/* 01EBA4 8001DFA4 00034C00 */ sll $t1, $v1, 0x10 +/* 01EBA8 8001DFA8 00091C03 */ sra $v1, $t1, 0x10 +.L8001DFAC: +/* 01EBAC 8001DFAC 01671021 */ addu $v0, $t3, $a3 +/* 01EBB0 8001DFB0 00037080 */ sll $t6, $v1, 2 +/* 01EBB4 8001DFB4 87A8006A */ lh $t0, 0x6a($sp) +/* 01EBB8 8001DFB8 00026400 */ sll $t4, $v0, 0x10 +/* 01EBBC 8001DFBC 01C71821 */ addu $v1, $t6, $a3 +/* 01EBC0 8001DFC0 000C6C03 */ sra $t5, $t4, 0x10 +/* 01EBC4 8001DFC4 00037C00 */ sll $t7, $v1, 0x10 +/* 01EBC8 8001DFC8 87AA0068 */ lh $t2, 0x68($sp) +/* 01EBCC 8001DFCC 000FCC03 */ sra $t9, $t7, 0x10 +/* 01EBD0 8001DFD0 0012C080 */ sll $t8, $s2, 2 +/* 01EBD4 8001DFD4 010D4807 */ srav $t1, $t5, $t0 +/* 01EBD8 8001DFD8 02782021 */ addu $a0, $s3, $t8 +/* 01EBDC 8001DFDC 02B96007 */ srav $t4, $t9, $s5 +/* 01EBE0 8001DFE0 01966824 */ and $t5, $t4, $s6 +/* 01EBE4 8001DFE4 012A5824 */ and $t3, $t1, $t2 +/* 01EBE8 8001DFE8 A48B0000 */ sh $t3, ($a0) +/* 01EBEC 8001DFEC A48D0002 */ sh $t5, 2($a0) +/* 01EBF0 8001DFF0 8FC60038 */ lw $a2, 0x38($fp) +/* 01EBF4 8001DFF4 26100001 */ addiu $s0, $s0, 1 +/* 01EBF8 8001DFF8 00D72821 */ addu $a1, $a2, $s7 +/* 01EBFC 8001DFFC 84A8000E */ lh $t0, 0xe($a1) +/* 01EC00 8001E000 00107400 */ sll $t6, $s0, 0x10 +/* 01EC04 8001E004 000E8403 */ sra $s0, $t6, 0x10 +/* 01EC08 8001E008 26520001 */ addiu $s2, $s2, 1 +/* 01EC0C 8001E00C 0012CC00 */ sll $t9, $s2, 0x10 +/* 01EC10 8001E010 0208082A */ slt $at, $s0, $t0 +/* 01EC14 8001E014 1420FFC1 */ bnez $at, .L8001DF1C +/* 01EC18 8001E018 00199403 */ sra $s2, $t9, 0x10 +.L8001E01C: +/* 01EC1C 8001E01C 84B00004 */ lh $s0, 4($a1) +/* 01EC20 8001E020 84A90010 */ lh $t1, 0x10($a1) +/* 01EC24 8001E024 8FA70078 */ lw $a3, 0x78($sp) +/* 01EC28 8001E028 0209082A */ slt $at, $s0, $t1 +/* 01EC2C 8001E02C 10200021 */ beqz $at, .L8001E0B4 +/* 01EC30 8001E030 00105100 */ sll $t2, $s0, 4 +.L8001E034: +/* 01EC34 8001E034 00EA1021 */ addu $v0, $a3, $t2 +/* 01EC38 8001E038 904B0001 */ lbu $t3, 1($v0) +/* 01EC3C 8001E03C 904F0002 */ lbu $t7, 2($v0) +/* 01EC40 8001E040 000B6080 */ sll $t4, $t3, 2 +/* 01EC44 8001E044 026C1821 */ addu $v1, $s3, $t4 +/* 01EC48 8001E048 846D0000 */ lh $t5, ($v1) +/* 01EC4C 8001E04C 000FC880 */ sll $t9, $t7, 2 +/* 01EC50 8001E050 A44D0004 */ sh $t5, 4($v0) +/* 01EC54 8001E054 846E0002 */ lh $t6, 2($v1) +/* 01EC58 8001E058 02792021 */ addu $a0, $s3, $t9 +/* 01EC5C 8001E05C A44E0006 */ sh $t6, 6($v0) +/* 01EC60 8001E060 84980000 */ lh $t8, ($a0) +/* 01EC64 8001E064 90490003 */ lbu $t1, 3($v0) +/* 01EC68 8001E068 A4580008 */ sh $t8, 8($v0) +/* 01EC6C 8001E06C 84880002 */ lh $t0, 2($a0) +/* 01EC70 8001E070 00095080 */ sll $t2, $t1, 2 +/* 01EC74 8001E074 026A2821 */ addu $a1, $s3, $t2 +/* 01EC78 8001E078 A448000A */ sh $t0, 0xa($v0) +/* 01EC7C 8001E07C 84AB0000 */ lh $t3, ($a1) +/* 01EC80 8001E080 26100001 */ addiu $s0, $s0, 1 +/* 01EC84 8001E084 A44B000C */ sh $t3, 0xc($v0) +/* 01EC88 8001E088 84AC0002 */ lh $t4, 2($a1) +/* 01EC8C 8001E08C 00106C00 */ sll $t5, $s0, 0x10 +/* 01EC90 8001E090 A44C000E */ sh $t4, 0xe($v0) +/* 01EC94 8001E094 8FC60038 */ lw $a2, 0x38($fp) +/* 01EC98 8001E098 000D8403 */ sra $s0, $t5, 0x10 +/* 01EC9C 8001E09C 00D77821 */ addu $t7, $a2, $s7 +/* 01ECA0 8001E0A0 85F90010 */ lh $t9, 0x10($t7) +/* 01ECA4 8001E0A4 00000000 */ nop +/* 01ECA8 8001E0A8 0219082A */ slt $at, $s0, $t9 +/* 01ECAC 8001E0AC 1420FFE1 */ bnez $at, .L8001E034 +/* 01ECB0 8001E0B0 00105100 */ sll $t2, $s0, 4 +.L8001E0B4: +/* 01ECB4 8001E0B4 87C20028 */ lh $v0, 0x28($fp) +/* 01ECB8 8001E0B8 1000000D */ b .L8001E0F0 +/* 01ECBC 8001E0BC 87AD0062 */ lh $t5, 0x62($sp) +.L8001E0C0: +/* 01ECC0 8001E0C0 90B80006 */ lbu $t8, 6($a1) +/* 01ECC4 8001E0C4 00000000 */ nop +/* 01ECC8 8001E0C8 2B0100FF */ slti $at, $t8, 0xff +/* 01ECCC 8001E0CC 10200008 */ beqz $at, .L8001E0F0 +/* 01ECD0 8001E0D0 87AD0062 */ lh $t5, 0x62($sp) +/* 01ECD4 8001E0D4 84A8000E */ lh $t0, 0xe($a1) +/* 01ECD8 8001E0D8 84AA0002 */ lh $t2, 2($a1) +/* 01ECDC 8001E0DC 02884821 */ addu $t1, $s4, $t0 +/* 01ECE0 8001E0E0 012AA023 */ subu $s4, $t1, $t2 +/* 01ECE4 8001E0E4 00145C00 */ sll $t3, $s4, 0x10 +/* 01ECE8 8001E0E8 000BA403 */ sra $s4, $t3, 0x10 +/* 01ECEC 8001E0EC 87AD0062 */ lh $t5, 0x62($sp) +.L8001E0F0: +/* 01ECF0 8001E0F0 00000000 */ nop +/* 01ECF4 8001E0F4 25AE0001 */ addiu $t6, $t5, 1 +/* 01ECF8 8001E0F8 000E7C00 */ sll $t7, $t6, 0x10 +/* 01ECFC 8001E0FC 000FCC03 */ sra $t9, $t7, 0x10 +/* 01ED00 8001E100 0322082A */ slt $at, $t9, $v0 +/* 01ED04 8001E104 1420FF41 */ bnez $at, .L8001DE0C +/* 01ED08 8001E108 A7AE0062 */ sh $t6, 0x62($sp) +.L8001E10C: +/* 01ED0C 8001E10C 8FBF003C */ lw $ra, 0x3c($sp) +/* 01ED10 8001E110 8FB00018 */ lw $s0, 0x18($sp) +/* 01ED14 8001E114 8FB1001C */ lw $s1, 0x1c($sp) +/* 01ED18 8001E118 8FB20020 */ lw $s2, 0x20($sp) +/* 01ED1C 8001E11C 8FB30024 */ lw $s3, 0x24($sp) +/* 01ED20 8001E120 8FB40028 */ lw $s4, 0x28($sp) +/* 01ED24 8001E124 8FB5002C */ lw $s5, 0x2c($sp) +/* 01ED28 8001E128 8FB60030 */ lw $s6, 0x30($sp) +/* 01ED2C 8001E12C 8FB70034 */ lw $s7, 0x34($sp) +/* 01ED30 8001E130 8FBE0038 */ lw $fp, 0x38($sp) +/* 01ED34 8001E134 03E00008 */ jr $ra +/* 01ED38 8001E138 27BD0118 */ addiu $sp, $sp, 0x118 diff --git a/asm/non_matchings/objects/func_80016500.s b/asm/non_matchings/objects/func_80016500.s index 05bd965f..96b33411 100644 --- a/asm/non_matchings/objects/func_80016500.s +++ b/asm/non_matchings/objects/func_80016500.s @@ -1,159 +1,159 @@ -glabel func_80016500 -/* 017100 80016500 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 017104 80016504 AFBF001C */ sw $ra, 0x1c($sp) -/* 017108 80016508 AFB00018 */ sw $s0, 0x18($sp) -/* 01710C 8001650C AFA40040 */ sw $a0, 0x40($sp) -/* 017110 80016510 C4A4002C */ lwc1 $f4, 0x2c($a1) -/* 017114 80016514 00A08025 */ move $s0, $a1 -/* 017118 80016518 E7A40030 */ swc1 $f4, 0x30($sp) -/* 01711C 8001651C 80AE01D6 */ lb $t6, 0x1d6($a1) -/* 017120 80016520 84A201A0 */ lh $v0, 0x1a0($a1) -/* 017124 80016524 15C0000B */ bnez $t6, .L80016554 -/* 017128 80016528 00022023 */ negu $a0, $v0 -/* 01712C 8001652C 80AF01E6 */ lb $t7, 0x1e6($a1) -/* 017130 80016530 00000000 */ nop -/* 017134 80016534 11E00007 */ beqz $t7, .L80016554 -/* 017138 80016538 00022023 */ negu $a0, $v0 -/* 01713C 8001653C 8CB8010C */ lw $t8, 0x10c($a1) -/* 017140 80016540 00000000 */ nop -/* 017144 80016544 00581021 */ addu $v0, $v0, $t8 -/* 017148 80016548 0002CC00 */ sll $t9, $v0, 0x10 -/* 01714C 8001654C 00191403 */ sra $v0, $t9, 0x10 -/* 017150 80016550 00022023 */ negu $a0, $v0 -.L80016554: -/* 017154 80016554 00044C00 */ sll $t1, $a0, 0x10 -/* 017158 80016558 00092403 */ sra $a0, $t1, 0x10 -/* 01715C 8001655C 0C01C1FE */ jal coss_f -/* 017160 80016560 AFA40020 */ sw $a0, 0x20($sp) -/* 017164 80016564 8FA40020 */ lw $a0, 0x20($sp) -/* 017168 80016568 0C01C1F1 */ jal sins_f -/* 01716C 8001656C E7A0002C */ swc1 $f0, 0x2c($sp) -/* 017170 80016570 8FAB0040 */ lw $t3, 0x40($sp) -/* 017174 80016574 C7A2002C */ lwc1 $f2, 0x2c($sp) -/* 017178 80016578 C566001C */ lwc1 $f6, 0x1c($t3) -/* 01717C 8001657C C56A0024 */ lwc1 $f10, 0x24($t3) -/* 017180 80016580 46023202 */ mul.s $f8, $f6, $f2 -/* 017184 80016584 860D0000 */ lh $t5, ($s0) -/* 017188 80016588 2401FFFF */ li $at, -1 -/* 01718C 8001658C 46005402 */ mul.s $f16, $f10, $f0 -/* 017190 80016590 46104480 */ add.s $f18, $f8, $f16 -/* 017194 80016594 E6120030 */ swc1 $f18, 0x30($s0) -/* 017198 80016598 8FAC0040 */ lw $t4, 0x40($sp) -/* 01719C 8001659C 00000000 */ nop -/* 0171A0 800165A0 C584001C */ lwc1 $f4, 0x1c($t4) -/* 0171A4 800165A4 C5880024 */ lwc1 $f8, 0x24($t4) -/* 0171A8 800165A8 46002187 */ neg.s $f6, $f4 -/* 0171AC 800165AC 46003282 */ mul.s $f10, $f6, $f0 -/* 0171B0 800165B0 00000000 */ nop -/* 0171B4 800165B4 46024402 */ mul.s $f16, $f8, $f2 -/* 0171B8 800165B8 46105480 */ add.s $f18, $f10, $f16 -/* 0171BC 800165BC 11A1005E */ beq $t5, $at, .L80016738 -/* 0171C0 800165C0 E612002C */ swc1 $f18, 0x2c($s0) -/* 0171C4 800165C4 C7A40030 */ lwc1 $f4, 0x30($sp) -/* 0171C8 800165C8 C606002C */ lwc1 $f6, 0x2c($s0) -/* 0171CC 800165CC 3C014160 */ li $at, 0x41600000 # 14.000000 -/* 0171D0 800165D0 44815000 */ mtc1 $at, $f10 -/* 0171D4 800165D4 46062201 */ sub.s $f8, $f4, $f6 -/* 0171D8 800165D8 460A4402 */ mul.s $f16, $f8, $f10 -/* 0171DC 800165DC 444EF800 */ cfc1 $t6, $31 -/* 0171E0 800165E0 00000000 */ nop -/* 0171E4 800165E4 35C10003 */ ori $at, $t6, 3 -/* 0171E8 800165E8 38210002 */ xori $at, $at, 2 -/* 0171EC 800165EC 44C1F800 */ ctc1 $at, $31 -/* 0171F0 800165F0 00000000 */ nop -/* 0171F4 800165F4 460084A4 */ cvt.w.s $f18, $f16 -/* 0171F8 800165F8 44029000 */ mfc1 $v0, $f18 -/* 0171FC 800165FC 44CEF800 */ ctc1 $t6, $31 -/* 017200 80016600 04410002 */ bgez $v0, .L8001660C -/* 017204 80016604 00000000 */ nop -/* 017208 80016608 00021023 */ negu $v0, $v0 -.L8001660C: -/* 01720C 8001660C 24420023 */ addiu $v0, $v0, 0x23 -/* 017210 80016610 28410080 */ slti $at, $v0, 0x80 -/* 017214 80016614 14200002 */ bnez $at, .L80016620 -/* 017218 80016618 2404000D */ li $a0, 13 -/* 01721C 8001661C 2402007F */ li $v0, 127 -.L80016620: -/* 017220 80016620 820301F6 */ lb $v1, 0x1f6($s0) -/* 017224 80016624 26050220 */ addiu $a1, $s0, 0x220 -/* 017228 80016628 1460000B */ bnez $v1, .L80016658 -/* 01722C 8001662C 00000000 */ nop -/* 017230 80016630 0C000741 */ jal play_sound_global -/* 017234 80016634 AFA20038 */ sw $v0, 0x38($sp) -/* 017238 80016638 8FA20038 */ lw $v0, 0x38($sp) -/* 01723C 8001663C 8E050220 */ lw $a1, 0x220($s0) -/* 017240 80016640 2404000D */ li $a0, 13 -/* 017244 80016644 0C0007EE */ jal func_80001FB8 -/* 017248 80016648 304600FF */ andi $a2, $v0, 0xff -/* 01724C 8001664C 8FA20038 */ lw $v0, 0x38($sp) -/* 017250 80016650 820301F6 */ lb $v1, 0x1f6($s0) -/* 017254 80016654 00000000 */ nop -.L80016658: -/* 017258 80016658 14600010 */ bnez $v1, .L8001669C -/* 01725C 8001665C 28410038 */ slti $at, $v0, 0x38 -/* 017260 80016660 1420000F */ bnez $at, .L800166A0 -/* 017264 80016664 28410038 */ slti $at, $v0, 0x38 -/* 017268 80016668 820F01D8 */ lb $t7, 0x1d8($s0) -/* 01726C 8001666C 24050012 */ li $a1, 18 -/* 017270 80016670 15E00006 */ bnez $t7, .L8001668C -/* 017274 80016674 00000000 */ nop -/* 017278 80016678 86040000 */ lh $a0, ($s0) -/* 01727C 8001667C 0C01C8D2 */ jal func_80072348 -/* 017280 80016680 AFA20038 */ sw $v0, 0x38($sp) -/* 017284 80016684 8FA20038 */ lw $v0, 0x38($sp) -/* 017288 80016688 00000000 */ nop -.L8001668C: -/* 01728C 8001668C 921801F3 */ lbu $t8, 0x1f3($s0) -/* 017290 80016690 00000000 */ nop -/* 017294 80016694 37190008 */ ori $t9, $t8, 8 -/* 017298 80016698 A21901F3 */ sb $t9, 0x1f3($s0) -.L8001669C: -/* 01729C 8001669C 28410038 */ slti $at, $v0, 0x38 -.L800166A0: -/* 0172A0 800166A0 14200005 */ bnez $at, .L800166B8 -/* 0172A4 800166A4 240501C2 */ li $a1, 450 -/* 0172A8 800166A8 8FA40040 */ lw $a0, 0x40($sp) -/* 0172AC 800166AC 24060008 */ li $a2, 8 -/* 0172B0 800166B0 0C015C2E */ jal play_random_character_voice -/* 0172B4 800166B4 24070001 */ li $a3, 1 -.L800166B8: -/* 0172B8 800166B8 C7A40030 */ lwc1 $f4, 0x30($sp) -/* 0172BC 800166BC C606002C */ lwc1 $f6, 0x2c($s0) -/* 0172C0 800166C0 86040000 */ lh $a0, ($s0) -/* 0172C4 800166C4 46062201 */ sub.s $f8, $f4, $f6 -/* 0172C8 800166C8 2409001E */ li $t1, 30 -/* 0172CC 800166CC 4448F800 */ cfc1 $t0, $31 -/* 0172D0 800166D0 00000000 */ nop -/* 0172D4 800166D4 35010003 */ ori $at, $t0, 3 -/* 0172D8 800166D8 38210002 */ xori $at, $at, 2 -/* 0172DC 800166DC 44C1F800 */ ctc1 $at, $31 -/* 0172E0 800166E0 00000000 */ nop -/* 0172E4 800166E4 460042A4 */ cvt.w.s $f10, $f8 -/* 0172E8 800166E8 44035000 */ mfc1 $v1, $f10 -/* 0172EC 800166EC 44C8F800 */ ctc1 $t0, $31 -/* 0172F0 800166F0 04610003 */ bgez $v1, .L80016700 -/* 0172F4 800166F4 28610004 */ slti $at, $v1, 4 -/* 0172F8 800166F8 00031823 */ negu $v1, $v1 -/* 0172FC 800166FC 28610004 */ slti $at, $v1, 4 -.L80016700: -/* 017300 80016700 14200002 */ bnez $at, .L8001670C -/* 017304 80016704 00000000 */ nop -/* 017308 80016708 24030003 */ li $v1, 3 -.L8001670C: -/* 01730C 8001670C A20901F6 */ sb $t1, 0x1f6($s0) -/* 017310 80016710 0C01997A */ jal set_object_stack_pos -/* 017314 80016714 AFA3003C */ sw $v1, 0x3c($sp) -/* 017318 80016718 0C01A748 */ jal get_active_camera_segment -/* 01731C 8001671C 00000000 */ nop -/* 017320 80016720 8FA3003C */ lw $v1, 0x3c($sp) -/* 017324 80016724 00000000 */ nop -/* 017328 80016728 44838000 */ mtc1 $v1, $f16 -/* 01732C 8001672C 00000000 */ nop -/* 017330 80016730 468084A0 */ cvt.s.w $f18, $f16 -/* 017334 80016734 E4520030 */ swc1 $f18, 0x30($v0) -.L80016738: -/* 017338 80016738 8FBF001C */ lw $ra, 0x1c($sp) -/* 01733C 8001673C 8FB00018 */ lw $s0, 0x18($sp) -/* 017340 80016740 03E00008 */ jr $ra -/* 017344 80016744 27BD0040 */ addiu $sp, $sp, 0x40 - +glabel func_80016500 +/* 017100 80016500 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 017104 80016504 AFBF001C */ sw $ra, 0x1c($sp) +/* 017108 80016508 AFB00018 */ sw $s0, 0x18($sp) +/* 01710C 8001650C AFA40040 */ sw $a0, 0x40($sp) +/* 017110 80016510 C4A4002C */ lwc1 $f4, 0x2c($a1) +/* 017114 80016514 00A08025 */ move $s0, $a1 +/* 017118 80016518 E7A40030 */ swc1 $f4, 0x30($sp) +/* 01711C 8001651C 80AE01D6 */ lb $t6, 0x1d6($a1) +/* 017120 80016520 84A201A0 */ lh $v0, 0x1a0($a1) +/* 017124 80016524 15C0000B */ bnez $t6, .L80016554 +/* 017128 80016528 00022023 */ negu $a0, $v0 +/* 01712C 8001652C 80AF01E6 */ lb $t7, 0x1e6($a1) +/* 017130 80016530 00000000 */ nop +/* 017134 80016534 11E00007 */ beqz $t7, .L80016554 +/* 017138 80016538 00022023 */ negu $a0, $v0 +/* 01713C 8001653C 8CB8010C */ lw $t8, 0x10c($a1) +/* 017140 80016540 00000000 */ nop +/* 017144 80016544 00581021 */ addu $v0, $v0, $t8 +/* 017148 80016548 0002CC00 */ sll $t9, $v0, 0x10 +/* 01714C 8001654C 00191403 */ sra $v0, $t9, 0x10 +/* 017150 80016550 00022023 */ negu $a0, $v0 +.L80016554: +/* 017154 80016554 00044C00 */ sll $t1, $a0, 0x10 +/* 017158 80016558 00092403 */ sra $a0, $t1, 0x10 +/* 01715C 8001655C 0C01C1FE */ jal coss_f +/* 017160 80016560 AFA40020 */ sw $a0, 0x20($sp) +/* 017164 80016564 8FA40020 */ lw $a0, 0x20($sp) +/* 017168 80016568 0C01C1F1 */ jal sins_f +/* 01716C 8001656C E7A0002C */ swc1 $f0, 0x2c($sp) +/* 017170 80016570 8FAB0040 */ lw $t3, 0x40($sp) +/* 017174 80016574 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 017178 80016578 C566001C */ lwc1 $f6, 0x1c($t3) +/* 01717C 8001657C C56A0024 */ lwc1 $f10, 0x24($t3) +/* 017180 80016580 46023202 */ mul.s $f8, $f6, $f2 +/* 017184 80016584 860D0000 */ lh $t5, ($s0) +/* 017188 80016588 2401FFFF */ li $at, -1 +/* 01718C 8001658C 46005402 */ mul.s $f16, $f10, $f0 +/* 017190 80016590 46104480 */ add.s $f18, $f8, $f16 +/* 017194 80016594 E6120030 */ swc1 $f18, 0x30($s0) +/* 017198 80016598 8FAC0040 */ lw $t4, 0x40($sp) +/* 01719C 8001659C 00000000 */ nop +/* 0171A0 800165A0 C584001C */ lwc1 $f4, 0x1c($t4) +/* 0171A4 800165A4 C5880024 */ lwc1 $f8, 0x24($t4) +/* 0171A8 800165A8 46002187 */ neg.s $f6, $f4 +/* 0171AC 800165AC 46003282 */ mul.s $f10, $f6, $f0 +/* 0171B0 800165B0 00000000 */ nop +/* 0171B4 800165B4 46024402 */ mul.s $f16, $f8, $f2 +/* 0171B8 800165B8 46105480 */ add.s $f18, $f10, $f16 +/* 0171BC 800165BC 11A1005E */ beq $t5, $at, .L80016738 +/* 0171C0 800165C0 E612002C */ swc1 $f18, 0x2c($s0) +/* 0171C4 800165C4 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0171C8 800165C8 C606002C */ lwc1 $f6, 0x2c($s0) +/* 0171CC 800165CC 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 0171D0 800165D0 44815000 */ mtc1 $at, $f10 +/* 0171D4 800165D4 46062201 */ sub.s $f8, $f4, $f6 +/* 0171D8 800165D8 460A4402 */ mul.s $f16, $f8, $f10 +/* 0171DC 800165DC 444EF800 */ cfc1 $t6, $31 +/* 0171E0 800165E0 00000000 */ nop +/* 0171E4 800165E4 35C10003 */ ori $at, $t6, 3 +/* 0171E8 800165E8 38210002 */ xori $at, $at, 2 +/* 0171EC 800165EC 44C1F800 */ ctc1 $at, $31 +/* 0171F0 800165F0 00000000 */ nop +/* 0171F4 800165F4 460084A4 */ cvt.w.s $f18, $f16 +/* 0171F8 800165F8 44029000 */ mfc1 $v0, $f18 +/* 0171FC 800165FC 44CEF800 */ ctc1 $t6, $31 +/* 017200 80016600 04410002 */ bgez $v0, .L8001660C +/* 017204 80016604 00000000 */ nop +/* 017208 80016608 00021023 */ negu $v0, $v0 +.L8001660C: +/* 01720C 8001660C 24420023 */ addiu $v0, $v0, 0x23 +/* 017210 80016610 28410080 */ slti $at, $v0, 0x80 +/* 017214 80016614 14200002 */ bnez $at, .L80016620 +/* 017218 80016618 2404000D */ li $a0, 13 +/* 01721C 8001661C 2402007F */ li $v0, 127 +.L80016620: +/* 017220 80016620 820301F6 */ lb $v1, 0x1f6($s0) +/* 017224 80016624 26050220 */ addiu $a1, $s0, 0x220 +/* 017228 80016628 1460000B */ bnez $v1, .L80016658 +/* 01722C 8001662C 00000000 */ nop +/* 017230 80016630 0C000741 */ jal play_sound_global +/* 017234 80016634 AFA20038 */ sw $v0, 0x38($sp) +/* 017238 80016638 8FA20038 */ lw $v0, 0x38($sp) +/* 01723C 8001663C 8E050220 */ lw $a1, 0x220($s0) +/* 017240 80016640 2404000D */ li $a0, 13 +/* 017244 80016644 0C0007EE */ jal func_80001FB8 +/* 017248 80016648 304600FF */ andi $a2, $v0, 0xff +/* 01724C 8001664C 8FA20038 */ lw $v0, 0x38($sp) +/* 017250 80016650 820301F6 */ lb $v1, 0x1f6($s0) +/* 017254 80016654 00000000 */ nop +.L80016658: +/* 017258 80016658 14600010 */ bnez $v1, .L8001669C +/* 01725C 8001665C 28410038 */ slti $at, $v0, 0x38 +/* 017260 80016660 1420000F */ bnez $at, .L800166A0 +/* 017264 80016664 28410038 */ slti $at, $v0, 0x38 +/* 017268 80016668 820F01D8 */ lb $t7, 0x1d8($s0) +/* 01726C 8001666C 24050012 */ li $a1, 18 +/* 017270 80016670 15E00006 */ bnez $t7, .L8001668C +/* 017274 80016674 00000000 */ nop +/* 017278 80016678 86040000 */ lh $a0, ($s0) +/* 01727C 8001667C 0C01C8D2 */ jal func_80072348 +/* 017280 80016680 AFA20038 */ sw $v0, 0x38($sp) +/* 017284 80016684 8FA20038 */ lw $v0, 0x38($sp) +/* 017288 80016688 00000000 */ nop +.L8001668C: +/* 01728C 8001668C 921801F3 */ lbu $t8, 0x1f3($s0) +/* 017290 80016690 00000000 */ nop +/* 017294 80016694 37190008 */ ori $t9, $t8, 8 +/* 017298 80016698 A21901F3 */ sb $t9, 0x1f3($s0) +.L8001669C: +/* 01729C 8001669C 28410038 */ slti $at, $v0, 0x38 +.L800166A0: +/* 0172A0 800166A0 14200005 */ bnez $at, .L800166B8 +/* 0172A4 800166A4 240501C2 */ li $a1, 450 +/* 0172A8 800166A8 8FA40040 */ lw $a0, 0x40($sp) +/* 0172AC 800166AC 24060008 */ li $a2, 8 +/* 0172B0 800166B0 0C015C2E */ jal play_random_character_voice +/* 0172B4 800166B4 24070001 */ li $a3, 1 +.L800166B8: +/* 0172B8 800166B8 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 0172BC 800166BC C606002C */ lwc1 $f6, 0x2c($s0) +/* 0172C0 800166C0 86040000 */ lh $a0, ($s0) +/* 0172C4 800166C4 46062201 */ sub.s $f8, $f4, $f6 +/* 0172C8 800166C8 2409001E */ li $t1, 30 +/* 0172CC 800166CC 4448F800 */ cfc1 $t0, $31 +/* 0172D0 800166D0 00000000 */ nop +/* 0172D4 800166D4 35010003 */ ori $at, $t0, 3 +/* 0172D8 800166D8 38210002 */ xori $at, $at, 2 +/* 0172DC 800166DC 44C1F800 */ ctc1 $at, $31 +/* 0172E0 800166E0 00000000 */ nop +/* 0172E4 800166E4 460042A4 */ cvt.w.s $f10, $f8 +/* 0172E8 800166E8 44035000 */ mfc1 $v1, $f10 +/* 0172EC 800166EC 44C8F800 */ ctc1 $t0, $31 +/* 0172F0 800166F0 04610003 */ bgez $v1, .L80016700 +/* 0172F4 800166F4 28610004 */ slti $at, $v1, 4 +/* 0172F8 800166F8 00031823 */ negu $v1, $v1 +/* 0172FC 800166FC 28610004 */ slti $at, $v1, 4 +.L80016700: +/* 017300 80016700 14200002 */ bnez $at, .L8001670C +/* 017304 80016704 00000000 */ nop +/* 017308 80016708 24030003 */ li $v1, 3 +.L8001670C: +/* 01730C 8001670C A20901F6 */ sb $t1, 0x1f6($s0) +/* 017310 80016710 0C01997A */ jal set_active_camera +/* 017314 80016714 AFA3003C */ sw $v1, 0x3c($sp) +/* 017318 80016718 0C01A748 */ jal get_active_camera_segment +/* 01731C 8001671C 00000000 */ nop +/* 017320 80016720 8FA3003C */ lw $v1, 0x3c($sp) +/* 017324 80016724 00000000 */ nop +/* 017328 80016728 44838000 */ mtc1 $v1, $f16 +/* 01732C 8001672C 00000000 */ nop +/* 017330 80016730 468084A0 */ cvt.s.w $f18, $f16 +/* 017334 80016734 E4520030 */ swc1 $f18, 0x30($v0) +.L80016738: +/* 017338 80016738 8FBF001C */ lw $ra, 0x1c($sp) +/* 01733C 8001673C 8FB00018 */ lw $s0, 0x18($sp) +/* 017340 80016740 03E00008 */ jr $ra +/* 017344 80016744 27BD0040 */ addiu $sp, $sp, 0x40 + diff --git a/asm/non_matchings/objects/func_80019808.s b/asm/non_matchings/objects/func_80019808.s index bed1ea7a..8a16ab2d 100644 --- a/asm/non_matchings/objects/func_80019808.s +++ b/asm/non_matchings/objects/func_80019808.s @@ -1,1113 +1,1113 @@ -glabel func_80019808 -/* 01A408 80019808 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* 01A40C 8001980C AFBF0034 */ sw $ra, 0x34($sp) -/* 01A410 80019810 AFB60030 */ sw $s6, 0x30($sp) -/* 01A414 80019814 AFB5002C */ sw $s5, 0x2c($sp) -/* 01A418 80019818 AFB40028 */ sw $s4, 0x28($sp) -/* 01A41C 8001981C AFB30024 */ sw $s3, 0x24($sp) -/* 01A420 80019820 AFB20020 */ sw $s2, 0x20($sp) -/* 01A424 80019824 AFB1001C */ sw $s1, 0x1c($sp) -/* 01A428 80019828 AFB00018 */ sw $s0, 0x18($sp) -/* 01A42C 8001982C 0C01AF6C */ jal get_current_level_header -/* 01A430 80019830 AFA400A0 */ sw $a0, 0xa0($sp) -/* 01A434 80019834 0C01BAA4 */ jal get_settings -/* 01A438 80019838 AFA20064 */ sw $v0, 0x64($sp) -/* 01A43C 8001983C 8FBF0064 */ lw $ra, 0x64($sp) -/* 01A440 80019840 A7A00088 */ sh $zero, 0x88($sp) -/* 01A444 80019844 A7A0008A */ sh $zero, 0x8a($sp) -/* 01A448 80019848 83E3004C */ lb $v1, 0x4c($ra) -/* 01A44C 8001984C 0040B025 */ move $s6, $v0 -/* 01A450 80019850 106001A2 */ beqz $v1, .L80019EDC -/* 01A454 80019854 00009825 */ move $s3, $zero -/* 01A458 80019858 24010003 */ li $at, 3 -/* 01A45C 8001985C 1061019F */ beq $v1, $at, .L80019EDC -/* 01A460 80019860 24010008 */ li $at, 8 -/* 01A464 80019864 1061019D */ beq $v1, $at, .L80019EDC -/* 01A468 80019868 306E0040 */ andi $t6, $v1, 0x40 -/* 01A46C 8001986C 11C003D0 */ beqz $t6, .L8001A7B0 -/* 01A470 80019870 24010042 */ li $at, 66 -/* 01A474 80019874 14610008 */ bne $v1, $at, .L80019898 -/* 01A478 80019878 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01A47C 8001987C 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -/* 01A480 80019880 8D640000 */ lw $a0, ($t3) -/* 01A484 80019884 AFBF0064 */ sw $ra, 0x64($sp) -/* 01A488 80019888 0C01144A */ jal func_80045128 -/* 01A48C 8001988C 00000000 */ nop -/* 01A490 80019890 8FBF0064 */ lw $ra, 0x64($sp) -/* 01A494 80019894 00000000 */ nop -.L80019898: -/* 01A498 80019898 3C0F8012 */ lui $t7, %hi(D_8011ADB4) # $t7, 0x8012 -/* 01A49C 8001989C 8DEFADB4 */ lw $t7, %lo(D_8011ADB4)($t7) -/* 01A4A0 800198A0 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01A4A4 800198A4 15E003C2 */ bnez $t7, .L8001A7B0 -/* 01A4A8 800198A8 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -/* 01A4AC 800198AC 3C128012 */ lui $s2, %hi(gNumRacers) # $s2, 0x8012 -/* 01A4B0 800198B0 2652AEF0 */ addiu $s2, %lo(gNumRacers) # addiu $s2, $s2, -0x5110 -/* 01A4B4 800198B4 8E470000 */ lw $a3, ($s2) -/* 01A4B8 800198B8 00008025 */ move $s0, $zero -/* 01A4BC 800198BC 18E00066 */ blez $a3, .L80019A58 -/* 01A4C0 800198C0 00005025 */ move $t2, $zero -/* 01A4C4 800198C4 3C118012 */ lui $s1, %hi(D_8011ADC0) # $s1, 0x8012 -/* 01A4C8 800198C8 2631ADC0 */ addiu $s1, %lo(D_8011ADC0) # addiu $s1, $s1, -0x5240 -/* 01A4CC 800198CC 27A5006C */ addiu $a1, $sp, 0x6c -/* 01A4D0 800198D0 2415FFFF */ li $s5, -1 -/* 01A4D4 800198D4 24140001 */ li $s4, 1 -/* 01A4D8 800198D8 24090040 */ li $t1, 64 -.L800198DC: -/* 01A4DC 800198DC 8D780000 */ lw $t8, ($t3) -/* 01A4E0 800198E0 00000000 */ nop -/* 01A4E4 800198E4 030AC821 */ addu $t9, $t8, $t2 -/* 01A4E8 800198E8 8F2E0000 */ lw $t6, ($t9) -/* 01A4EC 800198EC 00000000 */ nop -/* 01A4F0 800198F0 8DCF0064 */ lw $t7, 0x64($t6) -/* 01A4F4 800198F4 00000000 */ nop -/* 01A4F8 800198F8 ACAF0000 */ sw $t7, ($a1) -/* 01A4FC 800198FC 83F8004C */ lb $t8, 0x4c($ra) -/* 01A500 80019900 00000000 */ nop -/* 01A504 80019904 15380031 */ bne $t1, $t8, .L800199CC -/* 01A508 80019908 00000000 */ nop -/* 01A50C 8001990C 81F90185 */ lb $t9, 0x185($t7) -/* 01A510 80019910 00000000 */ nop -/* 01A514 80019914 1F20002D */ bgtz $t9, .L800199CC -/* 01A518 80019918 00000000 */ nop -/* 01A51C 8001991C 81EE01D8 */ lb $t6, 0x1d8($t7) -/* 01A520 80019920 00000000 */ nop -/* 01A524 80019924 15C00029 */ bnez $t6, .L800199CC -/* 01A528 80019928 00000000 */ nop -/* 01A52C 8001992C A1F401D8 */ sb $s4, 0x1d8($t7) -/* 01A530 80019930 8CAF0000 */ lw $t7, ($a1) -/* 01A534 80019934 00000000 */ nop -/* 01A538 80019938 A1E00173 */ sb $zero, 0x173($t7) -/* 01A53C 8001993C 8D780000 */ lw $t8, ($t3) -/* 01A540 80019940 00000000 */ nop -/* 01A544 80019944 030AC821 */ addu $t9, $t8, $t2 -/* 01A548 80019948 8F240000 */ lw $a0, ($t9) -/* 01A54C 8001994C AFBF0064 */ sw $ra, 0x64($sp) -/* 01A550 80019950 AFAA0044 */ sw $t2, 0x44($sp) -/* 01A554 80019954 0C001AB2 */ jal func_80006AC8 -/* 01A558 80019958 AFA5004C */ sw $a1, 0x4c($sp) -/* 01A55C 8001995C 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01A560 80019960 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -/* 01A564 80019964 8FAA0044 */ lw $t2, 0x44($sp) -/* 01A568 80019968 8D6E0000 */ lw $t6, ($t3) -/* 01A56C 8001996C 8FA5004C */ lw $a1, 0x4c($sp) -/* 01A570 80019970 01CA7821 */ addu $t7, $t6, $t2 -/* 01A574 80019974 8DE20000 */ lw $v0, ($t7) -/* 01A578 80019978 8FBF0064 */ lw $ra, 0x64($sp) -/* 01A57C 8001997C 84580006 */ lh $t8, 6($v0) -/* 01A580 80019980 24090040 */ li $t1, 64 -/* 01A584 80019984 37194000 */ ori $t9, $t8, 0x4000 -/* 01A588 80019988 A4590006 */ sh $t9, 6($v0) -/* 01A58C 8001998C 8D6E0000 */ lw $t6, ($t3) -/* 01A590 80019990 00000000 */ nop -/* 01A594 80019994 01CA7821 */ addu $t7, $t6, $t2 -/* 01A598 80019998 8DF80000 */ lw $t8, ($t7) -/* 01A59C 8001999C 240F0005 */ li $t7, 5 -/* 01A5A0 800199A0 8F19004C */ lw $t9, 0x4c($t8) -/* 01A5A4 800199A4 00000000 */ nop -/* 01A5A8 800199A8 A7200014 */ sh $zero, 0x14($t9) -/* 01A5AC 800199AC 8E2E0000 */ lw $t6, ($s1) -/* 01A5B0 800199B0 8CB90000 */ lw $t9, ($a1) -/* 01A5B4 800199B4 01EEC023 */ subu $t8, $t7, $t6 -/* 01A5B8 800199B8 A73801AC */ sh $t8, 0x1ac($t9) -/* 01A5BC 800199BC 8E2F0000 */ lw $t7, ($s1) -/* 01A5C0 800199C0 00000000 */ nop -/* 01A5C4 800199C4 25EE0001 */ addiu $t6, $t7, 1 -/* 01A5C8 800199C8 AE2E0000 */ sw $t6, ($s1) -.L800199CC: -/* 01A5CC 800199CC 8CA20000 */ lw $v0, ($a1) -/* 01A5D0 800199D0 26100001 */ addiu $s0, $s0, 1 -/* 01A5D4 800199D4 84580000 */ lh $t8, ($v0) -/* 01A5D8 800199D8 804301D8 */ lb $v1, 0x1d8($v0) -/* 01A5DC 800199DC 12B8000B */ beq $s5, $t8, .L80019A0C -/* 01A5E0 800199E0 00000000 */ nop -/* 01A5E4 800199E4 10600006 */ beqz $v1, .L80019A00 -/* 01A5E8 800199E8 87AE008A */ lh $t6, 0x8a($sp) -/* 01A5EC 800199EC 87B90088 */ lh $t9, 0x88($sp) -/* 01A5F0 800199F0 00000000 */ nop -/* 01A5F4 800199F4 272F0001 */ addiu $t7, $t9, 1 -/* 01A5F8 800199F8 A7AF0088 */ sh $t7, 0x88($sp) -/* 01A5FC 800199FC 87AE008A */ lh $t6, 0x8a($sp) -.L80019A00: -/* 01A600 80019A00 00000000 */ nop -/* 01A604 80019A04 25D80001 */ addiu $t8, $t6, 1 -/* 01A608 80019A08 A7B8008A */ sh $t8, 0x8a($sp) -.L80019A0C: -/* 01A60C 80019A0C 1060000D */ beqz $v1, .L80019A44 -/* 01A610 80019A10 00000000 */ nop -/* 01A614 80019A14 844E01AC */ lh $t6, 0x1ac($v0) -/* 01A618 80019A18 26730001 */ addiu $s3, $s3, 1 -/* 01A61C 80019A1C 0013CC00 */ sll $t9, $s3, 0x10 -/* 01A620 80019A20 15C00008 */ bnez $t6, .L80019A44 -/* 01A624 80019A24 00199C03 */ sra $s3, $t9, 0x10 -/* 01A628 80019A28 8E380000 */ lw $t8, ($s1) -/* 01A62C 80019A2C 00000000 */ nop -/* 01A630 80019A30 A45801AC */ sh $t8, 0x1ac($v0) -/* 01A634 80019A34 8E390000 */ lw $t9, ($s1) -/* 01A638 80019A38 00000000 */ nop -/* 01A63C 80019A3C 272F0001 */ addiu $t7, $t9, 1 -/* 01A640 80019A40 AE2F0000 */ sw $t7, ($s1) -.L80019A44: -/* 01A644 80019A44 8E470000 */ lw $a3, ($s2) -/* 01A648 80019A48 254A0004 */ addiu $t2, $t2, 4 -/* 01A64C 80019A4C 0207082A */ slt $at, $s0, $a3 -/* 01A650 80019A50 1420FFA2 */ bnez $at, .L800198DC -/* 01A654 80019A54 24A50004 */ addiu $a1, $a1, 4 -.L80019A58: -/* 01A658 80019A58 83EE004C */ lb $t6, 0x4c($ra) -/* 01A65C 80019A5C 24090040 */ li $t1, 64 -/* 01A660 80019A60 3C118012 */ lui $s1, %hi(D_8011ADC0) # $s1, 0x8012 -/* 01A664 80019A64 2631ADC0 */ addiu $s1, %lo(D_8011ADC0) # addiu $s1, $s1, -0x5240 -/* 01A668 80019A68 24140001 */ li $s4, 1 -/* 01A66C 80019A6C 112E0003 */ beq $t1, $t6, .L80019A7C -/* 01A670 80019A70 2415FFFF */ li $s5, -1 -/* 01A674 80019A74 1E600010 */ bgtz $s3, .L80019AB8 -/* 01A678 80019A78 00000000 */ nop -.L80019A7C: -/* 01A67C 80019A7C 87B8008A */ lh $t8, 0x8a($sp) -/* 01A680 80019A80 87B90088 */ lh $t9, 0x88($sp) -/* 01A684 80019A84 17140004 */ bne $t8, $s4, .L80019A98 -/* 01A688 80019A88 87AF008A */ lh $t7, 0x8a($sp) -/* 01A68C 80019A8C 1334000A */ beq $t9, $s4, .L80019AB8 -/* 01A690 80019A90 00000000 */ nop -/* 01A694 80019A94 87AF008A */ lh $t7, 0x8a($sp) -.L80019A98: -/* 01A698 80019A98 87AE0088 */ lh $t6, 0x88($sp) -/* 01A69C 80019A9C 29E10002 */ slti $at, $t7, 2 -/* 01A6A0 80019AA0 14200002 */ bnez $at, .L80019AAC -/* 01A6A4 80019AA4 01CF082A */ slt $at, $t6, $t7 -/* 01A6A8 80019AA8 10200003 */ beqz $at, .L80019AB8 -.L80019AAC: -/* 01A6AC 80019AAC 2A610003 */ slti $at, $s3, 3 -/* 01A6B0 80019AB0 1420033F */ bnez $at, .L8001A7B0 -/* 01A6B4 80019AB4 00000000 */ nop -.L80019AB8: -/* 01A6B8 80019AB8 18E00041 */ blez $a3, .L80019BC0 -/* 01A6BC 80019ABC 00008025 */ move $s0, $zero -/* 01A6C0 80019AC0 27A3005C */ addiu $v1, $sp, 0x5c -/* 01A6C4 80019AC4 00E32021 */ addu $a0, $a3, $v1 -/* 01A6C8 80019AC8 24070003 */ li $a3, 3 -/* 01A6CC 80019ACC 27A5006C */ addiu $a1, $sp, 0x6c -/* 01A6D0 80019AD0 240D000A */ li $t5, 10 -/* 01A6D4 80019AD4 24060042 */ li $a2, 66 -.L80019AD8: -/* 01A6D8 80019AD8 83F9004C */ lb $t9, 0x4c($ra) -/* 01A6DC 80019ADC 00000000 */ nop -/* 01A6E0 80019AE0 15390008 */ bne $t1, $t9, .L80019B04 -/* 01A6E4 80019AE4 00000000 */ nop -/* 01A6E8 80019AE8 8CAE0000 */ lw $t6, ($a1) -/* 01A6EC 80019AEC 00000000 */ nop -/* 01A6F0 80019AF0 81CF0185 */ lb $t7, 0x185($t6) -/* 01A6F4 80019AF4 00000000 */ nop -/* 01A6F8 80019AF8 01AFC023 */ subu $t8, $t5, $t7 -/* 01A6FC 80019AFC 10000020 */ b .L80019B80 -/* 01A700 80019B00 A0780000 */ sb $t8, ($v1) -.L80019B04: -/* 01A704 80019B04 8CA20000 */ lw $v0, ($a1) -/* 01A708 80019B08 00000000 */ nop -/* 01A70C 80019B0C 80590193 */ lb $t9, 0x193($v0) -/* 01A710 80019B10 00000000 */ nop -/* 01A714 80019B14 A0790000 */ sb $t9, ($v1) -/* 01A718 80019B18 83EE004C */ lb $t6, 0x4c($ra) -/* 01A71C 80019B1C 00000000 */ nop -/* 01A720 80019B20 14CE0017 */ bne $a2, $t6, .L80019B80 -/* 01A724 80019B24 00000000 */ nop -/* 01A728 80019B28 806F0000 */ lb $t7, ($v1) -/* 01A72C 80019B2C 00000000 */ nop -/* 01A730 80019B30 01E70019 */ multu $t7, $a3 -/* 01A734 80019B34 0000C012 */ mflo $t8 -/* 01A738 80019B38 A0780000 */ sb $t8, ($v1) -/* 01A73C 80019B3C 805901CF */ lb $t9, 0x1cf($v0) -/* 01A740 80019B40 00000000 */ nop -/* 01A744 80019B44 13200006 */ beqz $t9, .L80019B60 -/* 01A748 80019B48 00000000 */ nop -/* 01A74C 80019B4C 806E0000 */ lb $t6, ($v1) -/* 01A750 80019B50 00000000 */ nop -/* 01A754 80019B54 25CF0002 */ addiu $t7, $t6, 2 -/* 01A758 80019B58 10000009 */ b .L80019B80 -/* 01A75C 80019B5C A06F0000 */ sb $t7, ($v1) -.L80019B60: -/* 01A760 80019B60 8C580144 */ lw $t8, 0x144($v0) -/* 01A764 80019B64 00000000 */ nop -/* 01A768 80019B68 13000005 */ beqz $t8, .L80019B80 -/* 01A76C 80019B6C 00000000 */ nop -/* 01A770 80019B70 80790000 */ lb $t9, ($v1) -/* 01A774 80019B74 00000000 */ nop -/* 01A778 80019B78 272E0001 */ addiu $t6, $t9, 1 -/* 01A77C 80019B7C A06E0000 */ sb $t6, ($v1) -.L80019B80: -/* 01A780 80019B80 80620000 */ lb $v0, ($v1) -/* 01A784 80019B84 00000000 */ nop -/* 01A788 80019B88 2841000B */ slti $at, $v0, 0xb -/* 01A78C 80019B8C 14200004 */ bnez $at, .L80019BA0 -/* 01A790 80019B90 00000000 */ nop -/* 01A794 80019B94 A06D0000 */ sb $t5, ($v1) -/* 01A798 80019B98 80620000 */ lb $v0, ($v1) -/* 01A79C 80019B9C 00000000 */ nop -.L80019BA0: -/* 01A7A0 80019BA0 04410002 */ bgez $v0, .L80019BAC -/* 01A7A4 80019BA4 00000000 */ nop -/* 01A7A8 80019BA8 A0600000 */ sb $zero, ($v1) -.L80019BAC: -/* 01A7AC 80019BAC 24630001 */ addiu $v1, $v1, 1 -/* 01A7B0 80019BB0 0064082B */ sltu $at, $v1, $a0 -/* 01A7B4 80019BB4 1420FFC8 */ bnez $at, .L80019AD8 -/* 01A7B8 80019BB8 24A50004 */ addiu $a1, $a1, 4 -/* 01A7BC 80019BBC 00008025 */ move $s0, $zero -.L80019BC0: -/* 01A7C0 80019BC0 27A8006C */ addiu $t0, $sp, 0x6c -/* 01A7C4 80019BC4 27A6005C */ addiu $a2, $sp, 0x5c -.L80019BC8: -/* 01A7C8 80019BC8 8E470000 */ lw $a3, ($s2) -/* 01A7CC 80019BCC 00152400 */ sll $a0, $s5, 0x10 -/* 01A7D0 80019BD0 00151C00 */ sll $v1, $s5, 0x10 -/* 01A7D4 80019BD4 00047C03 */ sra $t7, $a0, 0x10 -/* 01A7D8 80019BD8 0003C403 */ sra $t8, $v1, 0x10 -/* 01A7DC 80019BDC 01E02025 */ move $a0, $t7 -/* 01A7E0 80019BE0 18E00018 */ blez $a3, .L80019C44 -/* 01A7E4 80019BE4 03001825 */ move $v1, $t8 -/* 01A7E8 80019BE8 27A5006C */ addiu $a1, $sp, 0x6c -.L80019BEC: -/* 01A7EC 80019BEC 8CB90000 */ lw $t9, ($a1) -/* 01A7F0 80019BF0 00D07821 */ addu $t7, $a2, $s0 -/* 01A7F4 80019BF4 832E01D8 */ lb $t6, 0x1d8($t9) -/* 01A7F8 80019BF8 00000000 */ nop -/* 01A7FC 80019BFC 15C0000C */ bnez $t6, .L80019C30 -/* 01A800 80019C00 00000000 */ nop -/* 01A804 80019C04 81E20000 */ lb $v0, ($t7) -/* 01A808 80019C08 00000000 */ nop -/* 01A80C 80019C0C 0043082A */ slt $at, $v0, $v1 -/* 01A810 80019C10 14200007 */ bnez $at, .L80019C30 -/* 01A814 80019C14 00000000 */ nop -/* 01A818 80019C18 00021C00 */ sll $v1, $v0, 0x10 -/* 01A81C 80019C1C 00102400 */ sll $a0, $s0, 0x10 -/* 01A820 80019C20 0003C403 */ sra $t8, $v1, 0x10 -/* 01A824 80019C24 0004CC03 */ sra $t9, $a0, 0x10 -/* 01A828 80019C28 03001825 */ move $v1, $t8 -/* 01A82C 80019C2C 03202025 */ move $a0, $t9 -.L80019C30: -/* 01A830 80019C30 26100001 */ addiu $s0, $s0, 1 -/* 01A834 80019C34 0207082A */ slt $at, $s0, $a3 -/* 01A838 80019C38 1420FFEC */ bnez $at, .L80019BEC -/* 01A83C 80019C3C 24A50004 */ addiu $a1, $a1, 4 -/* 01A840 80019C40 00008025 */ move $s0, $zero -.L80019C44: -/* 01A844 80019C44 10950016 */ beq $a0, $s5, .L80019CA0 -/* 01A848 80019C48 00000000 */ nop -/* 01A84C 80019C4C 83EE004C */ lb $t6, 0x4c($ra) -/* 01A850 80019C50 0004C880 */ sll $t9, $a0, 2 -/* 01A854 80019C54 152E0009 */ bne $t1, $t6, .L80019C7C -/* 01A858 80019C58 01191021 */ addu $v0, $t0, $t9 -/* 01A85C 80019C5C 00047880 */ sll $t7, $a0, 2 -/* 01A860 80019C60 8E380000 */ lw $t8, ($s1) -/* 01A864 80019C64 010F1021 */ addu $v0, $t0, $t7 -/* 01A868 80019C68 8C4F0000 */ lw $t7, ($v0) -/* 01A86C 80019C6C 24190005 */ li $t9, 5 -/* 01A870 80019C70 03387023 */ subu $t6, $t9, $t8 -/* 01A874 80019C74 10000005 */ b .L80019C8C -/* 01A878 80019C78 A5EE01AC */ sh $t6, 0x1ac($t7) -.L80019C7C: -/* 01A87C 80019C7C 8E380000 */ lw $t8, ($s1) -/* 01A880 80019C80 8C4E0000 */ lw $t6, ($v0) -/* 01A884 80019C84 00000000 */ nop -/* 01A888 80019C88 A5D801AC */ sh $t8, 0x1ac($t6) -.L80019C8C: -/* 01A88C 80019C8C 8E2F0000 */ lw $t7, ($s1) -/* 01A890 80019C90 8C580000 */ lw $t8, ($v0) -/* 01A894 80019C94 25F90001 */ addiu $t9, $t7, 1 -/* 01A898 80019C98 AE390000 */ sw $t9, ($s1) -/* 01A89C 80019C9C A31401D8 */ sb $s4, 0x1d8($t8) -.L80019CA0: -/* 01A8A0 80019CA0 1495FFC9 */ bne $a0, $s5, .L80019BC8 -/* 01A8A4 80019CA4 00000000 */ nop -/* 01A8A8 80019CA8 3C13800E */ lui $s3, %hi(D_800DC744) # $s3, 0x800e -/* 01A8AC 80019CAC 2673C744 */ addiu $s3, %lo(D_800DC744) # addiu $s3, $s3, -0x38bc -/* 01A8B0 80019CB0 0C0270B4 */ jal is_in_tracks_mode -/* 01A8B4 80019CB4 A2600000 */ sb $zero, ($s3) -/* 01A8B8 80019CB8 14400024 */ bnez $v0, .L80019D4C -/* 01A8BC 80019CBC 00003025 */ move $a2, $zero -/* 01A8C0 80019CC0 8FAE006C */ lw $t6, 0x6c($sp) -/* 01A8C4 80019CC4 00000000 */ nop -/* 01A8C8 80019CC8 85CF01AC */ lh $t7, 0x1ac($t6) -/* 01A8CC 80019CCC 00000000 */ nop -/* 01A8D0 80019CD0 128F000B */ beq $s4, $t7, .L80019D00 -/* 01A8D4 80019CD4 00000000 */ nop -/* 01A8D8 80019CD8 0C027B20 */ jal is_in_two_player_adventure -/* 01A8DC 80019CDC 00000000 */ nop -/* 01A8E0 80019CE0 1040001A */ beqz $v0, .L80019D4C -/* 01A8E4 80019CE4 00003025 */ move $a2, $zero -/* 01A8E8 80019CE8 8FB90070 */ lw $t9, 0x70($sp) -/* 01A8EC 80019CEC 00000000 */ nop -/* 01A8F0 80019CF0 873801AC */ lh $t8, 0x1ac($t9) -/* 01A8F4 80019CF4 00000000 */ nop -/* 01A8F8 80019CF8 16980014 */ bne $s4, $t8, .L80019D4C -/* 01A8FC 80019CFC 00003025 */ move $a2, $zero -.L80019D00: -/* 01A900 80019D00 92CF0049 */ lbu $t7, 0x49($s6) -/* 01A904 80019D04 8ECE0004 */ lw $t6, 4($s6) -/* 01A908 80019D08 000FC880 */ sll $t9, $t7, 2 -/* 01A90C 80019D0C 01D91021 */ addu $v0, $t6, $t9 -/* 01A910 80019D10 8C430000 */ lw $v1, ($v0) -/* 01A914 80019D14 00000000 */ nop -/* 01A918 80019D18 30780002 */ andi $t8, $v1, 2 -/* 01A91C 80019D1C 1700000A */ bnez $t8, .L80019D48 -/* 01A920 80019D20 346F0002 */ ori $t7, $v1, 2 -/* 01A924 80019D24 AC4F0000 */ sw $t7, ($v0) -/* 01A928 80019D28 92D00016 */ lbu $s0, 0x16($s6) -/* 01A92C 80019D2C 00000000 */ nop -/* 01A930 80019D30 26100001 */ addiu $s0, $s0, 1 -/* 01A934 80019D34 2A010005 */ slti $at, $s0, 5 -/* 01A938 80019D38 14200002 */ bnez $at, .L80019D44 -/* 01A93C 80019D3C 00000000 */ nop -/* 01A940 80019D40 24100004 */ li $s0, 4 -.L80019D44: -/* 01A944 80019D44 A2D00016 */ sb $s0, 0x16($s6) -.L80019D48: -/* 01A948 80019D48 00003025 */ move $a2, $zero -.L80019D4C: -/* 01A94C 80019D4C 02C01025 */ move $v0, $s6 -.L80019D50: -/* 01A950 80019D50 24C60001 */ addiu $a2, $a2, 1 -/* 01A954 80019D54 28C10008 */ slti $at, $a2, 8 -/* 01A958 80019D58 A055005A */ sb $s5, 0x5a($v0) -/* 01A95C 80019D5C 1420FFFC */ bnez $at, .L80019D50 -/* 01A960 80019D60 24420018 */ addiu $v0, $v0, 0x18 -/* 01A964 80019D64 8E4E0000 */ lw $t6, ($s2) -/* 01A968 80019D68 2405003E */ li $a1, 62 -/* 01A96C 80019D6C 19C00017 */ blez $t6, .L80019DCC -/* 01A970 80019D70 00003025 */ move $a2, $zero -/* 01A974 80019D74 02C01025 */ move $v0, $s6 -/* 01A978 80019D78 27A4006C */ addiu $a0, $sp, 0x6c -.L80019D7C: -/* 01A97C 80019D7C 8C830000 */ lw $v1, ($a0) -/* 01A980 80019D80 00000000 */ nop -/* 01A984 80019D84 84790000 */ lh $t9, ($v1) -/* 01A988 80019D88 00000000 */ nop -/* 01A98C 80019D8C 12B90006 */ beq $s5, $t9, .L80019DA8 -/* 01A990 80019D90 00000000 */ nop -/* 01A994 80019D94 847801AC */ lh $t8, 0x1ac($v1) -/* 01A998 80019D98 00000000 */ nop -/* 01A99C 80019D9C 16980002 */ bne $s4, $t8, .L80019DA8 -/* 01A9A0 80019DA0 00000000 */ nop -/* 01A9A4 80019DA4 2405003D */ li $a1, 61 -.L80019DA8: -/* 01A9A8 80019DA8 846F01AC */ lh $t7, 0x1ac($v1) -/* 01A9AC 80019DAC 24C60001 */ addiu $a2, $a2, 1 -/* 01A9B0 80019DB0 25EEFFFF */ addiu $t6, $t7, -1 -/* 01A9B4 80019DB4 A04E005A */ sb $t6, 0x5a($v0) -/* 01A9B8 80019DB8 8E590000 */ lw $t9, ($s2) -/* 01A9BC 80019DBC 24420018 */ addiu $v0, $v0, 0x18 -/* 01A9C0 80019DC0 00D9082A */ slt $at, $a2, $t9 -/* 01A9C4 80019DC4 1420FFED */ bnez $at, .L80019D7C -/* 01A9C8 80019DC8 24840004 */ addiu $a0, $a0, 4 -.L80019DCC: -/* 01A9CC 80019DCC 0C0002CD */ jal play_music -/* 01A9D0 80019DD0 30A400FF */ andi $a0, $a1, 0xff -/* 01A9D4 80019DD4 24050004 */ li $a1, 4 -/* 01A9D8 80019DD8 00001825 */ move $v1, $zero -/* 01A9DC 80019DDC 02C01025 */ move $v0, $s6 -/* 01A9E0 80019DE0 240400C0 */ li $a0, 192 -.L80019DE4: -/* 01A9E4 80019DE4 8058005A */ lb $t8, 0x5a($v0) -/* 01A9E8 80019DE8 24630018 */ addiu $v1, $v1, 0x18 -/* 01A9EC 80019DEC 16B80003 */ bne $s5, $t8, .L80019DFC -/* 01A9F0 80019DF0 00000000 */ nop -/* 01A9F4 80019DF4 A045005A */ sb $a1, 0x5a($v0) -/* 01A9F8 80019DF8 24A50001 */ addiu $a1, $a1, 1 -.L80019DFC: -/* 01A9FC 80019DFC 1464FFF9 */ bne $v1, $a0, .L80019DE4 -/* 01AA00 80019E00 24420018 */ addiu $v0, $v0, 0x18 -/* 01AA04 80019E04 0C027B20 */ jal is_in_two_player_adventure -/* 01AA08 80019E08 A2600000 */ sb $zero, ($s3) -/* 01AA0C 80019E0C 10400008 */ beqz $v0, .L80019E30 -/* 01AA10 80019E10 2404FFFF */ li $a0, -1 -/* 01AA14 80019E14 82CF0072 */ lb $t7, 0x72($s6) -/* 01AA18 80019E18 82CE005A */ lb $t6, 0x5a($s6) -/* 01AA1C 80019E1C 00000000 */ nop -/* 01AA20 80019E20 01EE082A */ slt $at, $t7, $t6 -/* 01AA24 80019E24 10200002 */ beqz $at, .L80019E30 -/* 01AA28 80019E28 00000000 */ nop -/* 01AA2C 80019E2C A2740000 */ sb $s4, ($s3) -.L80019E30: -/* 01AA30 80019E30 1600001C */ bnez $s0, .L80019EA4 -/* 01AA34 80019E34 00002825 */ move $a1, $zero -/* 01AA38 80019E38 0C027B20 */ jal is_in_two_player_adventure -/* 01AA3C 80019E3C 00000000 */ nop -/* 01AA40 80019E40 10400014 */ beqz $v0, .L80019E94 -/* 01AA44 80019E44 00002025 */ move $a0, $zero -/* 01AA48 80019E48 82790000 */ lb $t9, ($s3) -/* 01AA4C 80019E4C 3C0F800E */ lui $t7, %hi(D_800DC73C) # $t7, 0x800e -/* 01AA50 80019E50 1320000A */ beqz $t9, .L80019E7C -/* 01AA54 80019E54 00000000 */ nop -/* 01AA58 80019E58 0C01BCE6 */ jal func_8006F398 -/* 01AA5C 80019E5C A2600000 */ sb $zero, ($s3) -/* 01AA60 80019E60 3C18800E */ lui $t8, %hi(D_800DC73C) # $t8, 0x800e -/* 01AA64 80019E64 8318C73C */ lb $t8, %lo(D_800DC73C)($t8) -/* 01AA68 80019E68 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e -/* 01AA6C 80019E6C 13000009 */ beqz $t8, .L80019E94 -/* 01AA70 80019E70 00002025 */ move $a0, $zero -/* 01AA74 80019E74 10000006 */ b .L80019E90 -/* 01AA78 80019E78 A034C748 */ sb $s4, %lo(D_800DC748)($at) -.L80019E7C: -/* 01AA7C 80019E7C 81EFC73C */ lb $t7, %lo(D_800DC73C)($t7) -/* 01AA80 80019E80 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e -/* 01AA84 80019E84 11E00003 */ beqz $t7, .L80019E94 -/* 01AA88 80019E88 00002025 */ move $a0, $zero -/* 01AA8C 80019E8C A034C748 */ sb $s4, %lo(D_800DC748)($at) -.L80019E90: -/* 01AA90 80019E90 00002025 */ move $a0, $zero -.L80019E94: -/* 01AA94 80019E94 0C0251A2 */ jal func_80094688 -/* 01AA98 80019E98 2405001E */ li $a1, 30 -/* 01AA9C 80019E9C 1000000C */ b .L80019ED0 -/* 01AAA0 80019EA0 00000000 */ nop -.L80019EA4: -/* 01AAA4 80019EA4 00003025 */ move $a2, $zero -/* 01AAA8 80019EA8 0C01B06B */ jal func_8006C1AC -/* 01AAAC 80019EAC 00003825 */ move $a3, $zero -/* 01AAB0 80019EB0 92C70016 */ lbu $a3, 0x16($s6) -/* 01AAB4 80019EB4 2404002C */ li $a0, 44 -/* 01AAB8 80019EB8 00002825 */ move $a1, $zero -/* 01AABC 80019EBC 2406FFFF */ li $a2, -1 -/* 01AAC0 80019EC0 0C01B06B */ jal func_8006C1AC -/* 01AAC4 80019EC4 24E7FFFF */ addiu $a3, $a3, -1 -/* 01AAC8 80019EC8 0C006A35 */ jal func_8001A8D4 -/* 01AACC 80019ECC 02802025 */ move $a0, $s4 -.L80019ED0: -/* 01AAD0 80019ED0 3C018012 */ lui $at, %hi(D_8011ADB4) # $at, 0x8012 -/* 01AAD4 80019ED4 10000236 */ b .L8001A7B0 -/* 01AAD8 80019ED8 AC34ADB4 */ sw $s4, %lo(D_8011ADB4)($at) -.L80019EDC: -/* 01AADC 80019EDC 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 -/* 01AAE0 80019EE0 3C128012 */ lui $s2, %hi(gNumRacers) # $s2, 0x8012 -/* 01AAE4 80019EE4 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01AAE8 80019EE8 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) -/* 01AAEC 80019EEC 00008025 */ move $s0, $zero -/* 01AAF0 80019EF0 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -/* 01AAF4 80019EF4 2652AEF0 */ addiu $s2, %lo(gNumRacers) # addiu $s2, $s2, -0x5110 -/* 01AAF8 80019EF8 00005025 */ move $t2, $zero -/* 01AAFC 80019EFC 240D000A */ li $t5, 10 -.L80019F00: -/* 01AB00 80019F00 8D690000 */ lw $t1, ($t3) -/* 01AB04 80019F04 24060001 */ li $a2, 1 -/* 01AB08 80019F08 012A7021 */ addu $t6, $t1, $t2 -/* 01AB0C 80019F0C 8DD90000 */ lw $t9, ($t6) -/* 01AB10 80019F10 00002825 */ move $a1, $zero -/* 01AB14 80019F14 8F280064 */ lw $t0, 0x64($t9) -/* 01AB18 80019F18 00000000 */ nop -/* 01AB1C 80019F1C 850C01AA */ lh $t4, 0x1aa($t0) -/* 01AB20 80019F20 00000000 */ nop -.L80019F24: -/* 01AB24 80019F24 10B00023 */ beq $a1, $s0, .L80019FB4 -/* 01AB28 80019F28 0005C080 */ sll $t8, $a1, 2 -/* 01AB2C 80019F2C 01387821 */ addu $t7, $t1, $t8 -/* 01AB30 80019F30 8DEE0000 */ lw $t6, ($t7) -/* 01AB34 80019F34 811901D8 */ lb $t9, 0x1d8($t0) -/* 01AB38 80019F38 8DC20064 */ lw $v0, 0x64($t6) -/* 01AB3C 80019F3C 17200007 */ bnez $t9, .L80019F5C -/* 01AB40 80019F40 00000000 */ nop -/* 01AB44 80019F44 805801D8 */ lb $t8, 0x1d8($v0) -/* 01AB48 80019F48 00000000 */ nop -/* 01AB4C 80019F4C 13000003 */ beqz $t8, .L80019F5C -/* 01AB50 80019F50 00000000 */ nop -/* 01AB54 80019F54 10000017 */ b .L80019FB4 -/* 01AB58 80019F58 24C60001 */ addiu $a2, $a2, 1 -.L80019F5C: -/* 01AB5C 80019F5C 85030190 */ lh $v1, 0x190($t0) -/* 01AB60 80019F60 84440190 */ lh $a0, 0x190($v0) -/* 01AB64 80019F64 00000000 */ nop -/* 01AB68 80019F68 0064082A */ slt $at, $v1, $a0 -/* 01AB6C 80019F6C 10200003 */ beqz $at, .L80019F7C -/* 01AB70 80019F70 00000000 */ nop -/* 01AB74 80019F74 1000000F */ b .L80019FB4 -/* 01AB78 80019F78 24C60001 */ addiu $a2, $a2, 1 -.L80019F7C: -/* 01AB7C 80019F7C 1483000D */ bne $a0, $v1, .L80019FB4 -/* 01AB80 80019F80 00000000 */ nop -/* 01AB84 80019F84 844301A8 */ lh $v1, 0x1a8($v0) -/* 01AB88 80019F88 850401A8 */ lh $a0, 0x1a8($t0) -/* 01AB8C 80019F8C 00000000 */ nop -/* 01AB90 80019F90 0064082A */ slt $at, $v1, $a0 -/* 01AB94 80019F94 10200002 */ beqz $at, .L80019FA0 -/* 01AB98 80019F98 00000000 */ nop -/* 01AB9C 80019F9C 24C60001 */ addiu $a2, $a2, 1 -.L80019FA0: -/* 01ABA0 80019FA0 14640004 */ bne $v1, $a0, .L80019FB4 -/* 01ABA4 80019FA4 0205082A */ slt $at, $s0, $a1 -/* 01ABA8 80019FA8 10200002 */ beqz $at, .L80019FB4 -/* 01ABAC 80019FAC 00000000 */ nop -/* 01ABB0 80019FB0 24C60001 */ addiu $a2, $a2, 1 -.L80019FB4: -/* 01ABB4 80019FB4 24A50001 */ addiu $a1, $a1, 1 -/* 01ABB8 80019FB8 00A7082A */ slt $at, $a1, $a3 -/* 01ABBC 80019FBC 1420FFD9 */ bnez $at, .L80019F24 -/* 01ABC0 80019FC0 00000000 */ nop -/* 01ABC4 80019FC4 A50601AA */ sh $a2, 0x1aa($t0) -/* 01ABC8 80019FC8 83EE004B */ lb $t6, 0x4b($ra) -/* 01ABCC 80019FCC 810F0193 */ lb $t7, 0x193($t0) -/* 01ABD0 80019FD0 00000000 */ nop -/* 01ABD4 80019FD4 01EE082A */ slt $at, $t7, $t6 -/* 01ABD8 80019FD8 10200018 */ beqz $at, .L8001A03C -/* 01ABDC 80019FDC 00000000 */ nop -/* 01ABE0 80019FE0 850201AA */ lh $v0, 0x1aa($t0) -/* 01ABE4 80019FE4 00000000 */ nop -/* 01ABE8 80019FE8 15820013 */ bne $t4, $v0, .L8001A038 -/* 01ABEC 80019FEC 00000000 */ nop -/* 01ABF0 80019FF0 850301B0 */ lh $v1, 0x1b0($t0) -/* 01ABF4 80019FF4 00000000 */ nop -/* 01ABF8 80019FF8 28610002 */ slti $at, $v1, 2 -/* 01ABFC 80019FFC 10200007 */ beqz $at, .L8001A01C -/* 01AC00 8001A000 00000000 */ nop -/* 01AC04 8001A004 811901D6 */ lb $t9, 0x1d6($t0) -/* 01AC08 8001A008 24010004 */ li $at, 4 -/* 01AC0C 8001A00C 1321000B */ beq $t9, $at, .L8001A03C -/* 01AC10 8001A010 24780001 */ addiu $t8, $v1, 1 -/* 01AC14 8001A014 10000009 */ b .L8001A03C -/* 01AC18 8001A018 A51801B0 */ sh $t8, 0x1b0($t0) -.L8001A01C: -/* 01AC1C 8001A01C 850F01AE */ lh $t7, 0x1ae($t0) -/* 01AC20 8001A020 00000000 */ nop -/* 01AC24 8001A024 11E20005 */ beq $t7, $v0, .L8001A03C -/* 01AC28 8001A028 00000000 */ nop -/* 01AC2C 8001A02C A50D01B2 */ sh $t5, 0x1b2($t0) -/* 01AC30 8001A030 10000002 */ b .L8001A03C -/* 01AC34 8001A034 A50201AE */ sh $v0, 0x1ae($t0) -.L8001A038: -/* 01AC38 8001A038 A50001B0 */ sh $zero, 0x1b0($t0) -.L8001A03C: -/* 01AC3C 8001A03C 8E470000 */ lw $a3, ($s2) -/* 01AC40 8001A040 26100001 */ addiu $s0, $s0, 1 -/* 01AC44 8001A044 0207082A */ slt $at, $s0, $a3 -/* 01AC48 8001A048 1420FFAD */ bnez $at, .L80019F00 -/* 01AC4C 8001A04C 254A0004 */ addiu $t2, $t2, 4 -/* 01AC50 8001A050 3C118012 */ lui $s1, %hi(D_8011ADC0) # $s1, 0x8012 -/* 01AC54 8001A054 2631ADC0 */ addiu $s1, %lo(D_8011ADC0) # addiu $s1, $s1, -0x5240 -/* 01AC58 8001A058 00005025 */ move $t2, $zero -/* 01AC5C 8001A05C 2415FFFF */ li $s5, -1 -/* 01AC60 8001A060 24140001 */ li $s4, 1 -.L8001A064: -/* 01AC64 8001A064 8D6E0000 */ lw $t6, ($t3) -/* 01AC68 8001A068 00000000 */ nop -/* 01AC6C 8001A06C 01CAC821 */ addu $t9, $t6, $t2 -/* 01AC70 8001A070 8F380000 */ lw $t8, ($t9) -/* 01AC74 8001A074 83EE004B */ lb $t6, 0x4b($ra) -/* 01AC78 8001A078 8F080064 */ lw $t0, 0x64($t8) -/* 01AC7C 8001A07C 00000000 */ nop -/* 01AC80 8001A080 810F0193 */ lb $t7, 0x193($t0) -/* 01AC84 8001A084 00000000 */ nop -/* 01AC88 8001A088 01EE082A */ slt $at, $t7, $t6 -/* 01AC8C 8001A08C 14200028 */ bnez $at, .L8001A130 -/* 01AC90 8001A090 00000000 */ nop -/* 01AC94 8001A094 811901D8 */ lb $t9, 0x1d8($t0) -/* 01AC98 8001A098 00000000 */ nop -/* 01AC9C 8001A09C 17200024 */ bnez $t9, .L8001A130 -/* 01ACA0 8001A0A0 00000000 */ nop -/* 01ACA4 8001A0A4 AFBF0064 */ sw $ra, 0x64($sp) -/* 01ACA8 8001A0A8 AFA80080 */ sw $t0, 0x80($sp) -/* 01ACAC 8001A0AC 0C01B683 */ jal get_render_context -/* 01ACB0 8001A0B0 AFAA0044 */ sw $t2, 0x44($sp) -/* 01ACB4 8001A0B4 8FA80080 */ lw $t0, 0x80($sp) -/* 01ACB8 8001A0B8 8FAA0044 */ lw $t2, 0x44($sp) -/* 01ACBC 8001A0BC 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01ACC0 8001A0C0 8FBF0064 */ lw $ra, 0x64($sp) -/* 01ACC4 8001A0C4 24010004 */ li $at, 4 -/* 01ACC8 8001A0C8 10410019 */ beq $v0, $at, .L8001A130 -/* 01ACCC 8001A0CC 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -/* 01ACD0 8001A0D0 A11401D8 */ sb $s4, 0x1d8($t0) -/* 01ACD4 8001A0D4 8E380000 */ lw $t8, ($s1) -/* 01ACD8 8001A0D8 00000000 */ nop -/* 01ACDC 8001A0DC A51801AC */ sh $t8, 0x1ac($t0) -/* 01ACE0 8001A0E0 8E220000 */ lw $v0, ($s1) -/* 01ACE4 8001A0E4 00000000 */ nop -/* 01ACE8 8001A0E8 16820010 */ bne $s4, $v0, .L8001A12C -/* 01ACEC 8001A0EC 244E0001 */ addiu $t6, $v0, 1 -/* 01ACF0 8001A0F0 850F0000 */ lh $t7, ($t0) -/* 01ACF4 8001A0F4 2404023C */ li $a0, 572 -/* 01ACF8 8001A0F8 16AF000B */ bne $s5, $t7, .L8001A128 -/* 01ACFC 8001A0FC 00002825 */ move $a1, $zero -/* 01AD00 8001A100 AFBF0064 */ sw $ra, 0x64($sp) -/* 01AD04 8001A104 AFA80080 */ sw $t0, 0x80($sp) -/* 01AD08 8001A108 0C000741 */ jal play_sound_global -/* 01AD0C 8001A10C AFAA0044 */ sw $t2, 0x44($sp) -/* 01AD10 8001A110 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01AD14 8001A114 8FA80080 */ lw $t0, 0x80($sp) -/* 01AD18 8001A118 8FAA0044 */ lw $t2, 0x44($sp) -/* 01AD1C 8001A11C 8FBF0064 */ lw $ra, 0x64($sp) -/* 01AD20 8001A120 8E220000 */ lw $v0, ($s1) -/* 01AD24 8001A124 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -.L8001A128: -/* 01AD28 8001A128 244E0001 */ addiu $t6, $v0, 1 -.L8001A12C: -/* 01AD2C 8001A12C AE2E0000 */ sw $t6, ($s1) -.L8001A130: -/* 01AD30 8001A130 8E470000 */ lw $a3, ($s2) -/* 01AD34 8001A134 85190000 */ lh $t9, ($t0) -/* 01AD38 8001A138 810201D8 */ lb $v0, 0x1d8($t0) -/* 01AD3C 8001A13C 12B9000C */ beq $s5, $t9, .L8001A170 -/* 01AD40 8001A140 00071880 */ sll $v1, $a3, 2 -/* 01AD44 8001A144 87B8008A */ lh $t8, 0x8a($sp) -/* 01AD48 8001A148 87AE0088 */ lh $t6, 0x88($sp) -/* 01AD4C 8001A14C 270F0001 */ addiu $t7, $t8, 1 -/* 01AD50 8001A150 1040000C */ beqz $v0, .L8001A184 -/* 01AD54 8001A154 A7AF008A */ sh $t7, 0x8a($sp) -/* 01AD58 8001A158 26730001 */ addiu $s3, $s3, 1 -/* 01AD5C 8001A15C 0013C400 */ sll $t8, $s3, 0x10 -/* 01AD60 8001A160 25D90001 */ addiu $t9, $t6, 1 -/* 01AD64 8001A164 A7B90088 */ sh $t9, 0x88($sp) -/* 01AD68 8001A168 10000006 */ b .L8001A184 -/* 01AD6C 8001A16C 00189C03 */ sra $s3, $t8, 0x10 -.L8001A170: -/* 01AD70 8001A170 10400004 */ beqz $v0, .L8001A184 -/* 01AD74 8001A174 00000000 */ nop -/* 01AD78 8001A178 26730001 */ addiu $s3, $s3, 1 -/* 01AD7C 8001A17C 00137400 */ sll $t6, $s3, 0x10 -/* 01AD80 8001A180 000E9C03 */ sra $s3, $t6, 0x10 -.L8001A184: -/* 01AD84 8001A184 254A0004 */ addiu $t2, $t2, 4 -/* 01AD88 8001A188 0143082A */ slt $at, $t2, $v1 -/* 01AD8C 8001A18C 1420FFB5 */ bnez $at, .L8001A064 -/* 01AD90 8001A190 00000000 */ nop -/* 01AD94 8001A194 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 -/* 01AD98 8001A198 00008025 */ move $s0, $zero -/* 01AD9C 8001A19C 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 -/* 01ADA0 8001A1A0 00005025 */ move $t2, $zero -.L8001A1A4: -/* 01ADA4 8001A1A4 8D380000 */ lw $t8, ($t1) -/* 01ADA8 8001A1A8 26100001 */ addiu $s0, $s0, 1 -/* 01ADAC 8001A1AC 030A7821 */ addu $t7, $t8, $t2 -/* 01ADB0 8001A1B0 ADE00000 */ sw $zero, ($t7) -/* 01ADB4 8001A1B4 8E4E0000 */ lw $t6, ($s2) -/* 01ADB8 8001A1B8 254A0004 */ addiu $t2, $t2, 4 -/* 01ADBC 8001A1BC 020E082A */ slt $at, $s0, $t6 -/* 01ADC0 8001A1C0 1420FFF8 */ bnez $at, .L8001A1A4 -/* 01ADC4 8001A1C4 00000000 */ nop -/* 01ADC8 8001A1C8 00008025 */ move $s0, $zero -/* 01ADCC 8001A1CC 00005025 */ move $t2, $zero -.L8001A1D0: -/* 01ADD0 8001A1D0 8D790000 */ lw $t9, ($t3) -/* 01ADD4 8001A1D4 00000000 */ nop -/* 01ADD8 8001A1D8 032AC021 */ addu $t8, $t9, $t2 -/* 01ADDC 8001A1DC 8F020000 */ lw $v0, ($t8) -/* 01ADE0 8001A1E0 00000000 */ nop -/* 01ADE4 8001A1E4 8C480064 */ lw $t0, 0x64($v0) -/* 01ADE8 8001A1E8 00000000 */ nop -/* 01ADEC 8001A1EC 810F01D8 */ lb $t7, 0x1d8($t0) -/* 01ADF0 8001A1F0 00000000 */ nop -/* 01ADF4 8001A1F4 11E00004 */ beqz $t7, .L8001A208 -/* 01ADF8 8001A1F8 00000000 */ nop -/* 01ADFC 8001A1FC 850601AC */ lh $a2, 0x1ac($t0) -/* 01AE00 8001A200 10000004 */ b .L8001A214 -/* 01AE04 8001A204 24C6FFFF */ addiu $a2, $a2, -1 -.L8001A208: -/* 01AE08 8001A208 850601AA */ lh $a2, 0x1aa($t0) -/* 01AE0C 8001A20C 00000000 */ nop -/* 01AE10 8001A210 24C6FFFF */ addiu $a2, $a2, -1 -.L8001A214: -/* 01AE14 8001A214 8D2E0000 */ lw $t6, ($t1) -/* 01AE18 8001A218 0006C880 */ sll $t9, $a2, 2 -/* 01AE1C 8001A21C 01D9C021 */ addu $t8, $t6, $t9 -/* 01AE20 8001A220 AF020000 */ sw $v0, ($t8) -/* 01AE24 8001A224 8E470000 */ lw $a3, ($s2) -/* 01AE28 8001A228 26100001 */ addiu $s0, $s0, 1 -/* 01AE2C 8001A22C 0207082A */ slt $at, $s0, $a3 -/* 01AE30 8001A230 1420FFE7 */ bnez $at, .L8001A1D0 -/* 01AE34 8001A234 254A0004 */ addiu $t2, $t2, 4 -/* 01AE38 8001A238 00008025 */ move $s0, $zero -/* 01AE3C 8001A23C 00002825 */ move $a1, $zero -.L8001A240: -/* 01AE40 8001A240 18E00016 */ blez $a3, .L8001A29C -/* 01AE44 8001A244 00002025 */ move $a0, $zero -/* 01AE48 8001A248 8D6F0000 */ lw $t7, ($t3) -/* 01AE4C 8001A24C 00107080 */ sll $t6, $s0, 2 -/* 01AE50 8001A250 01EEC821 */ addu $t9, $t7, $t6 -/* 01AE54 8001A254 8F220000 */ lw $v0, ($t9) -/* 01AE58 8001A258 8D230000 */ lw $v1, ($t1) -/* 01AE5C 8001A25C 00000000 */ nop -/* 01AE60 8001A260 0005C080 */ sll $t8, $a1, 2 -.L8001A264: -/* 01AE64 8001A264 00787821 */ addu $t7, $v1, $t8 -/* 01AE68 8001A268 8DEE0000 */ lw $t6, ($t7) -/* 01AE6C 8001A26C 00000000 */ nop -/* 01AE70 8001A270 15C20006 */ bne $t6, $v0, .L8001A28C -/* 01AE74 8001A274 24A50001 */ addiu $a1, $a1, 1 -/* 01AE78 8001A278 00142600 */ sll $a0, $s4, 0x18 -/* 01AE7C 8001A27C 0004CE03 */ sra $t9, $a0, 0x18 -/* 01AE80 8001A280 03202025 */ move $a0, $t9 -/* 01AE84 8001A284 00E02825 */ move $a1, $a3 -/* 01AE88 8001A288 24A50001 */ addiu $a1, $a1, 1 -.L8001A28C: -/* 01AE8C 8001A28C 00A7082A */ slt $at, $a1, $a3 -/* 01AE90 8001A290 1420FFF4 */ bnez $at, .L8001A264 -/* 01AE94 8001A294 0005C080 */ sll $t8, $a1, 2 -/* 01AE98 8001A298 00002825 */ move $a1, $zero -.L8001A29C: -/* 01AE9C 8001A29C 14800018 */ bnez $a0, .L8001A300 -/* 01AEA0 8001A2A0 00000000 */ nop -/* 01AEA4 8001A2A4 18E00016 */ blez $a3, .L8001A300 -/* 01AEA8 8001A2A8 00000000 */ nop -.L8001A2AC: -/* 01AEAC 8001A2AC 8D380000 */ lw $t8, ($t1) -/* 01AEB0 8001A2B0 00057880 */ sll $t7, $a1, 2 -/* 01AEB4 8001A2B4 030F1021 */ addu $v0, $t8, $t7 -/* 01AEB8 8001A2B8 8C4E0000 */ lw $t6, ($v0) -/* 01AEBC 8001A2BC 00000000 */ nop -/* 01AEC0 8001A2C0 15C0000B */ bnez $t6, .L8001A2F0 -/* 01AEC4 8001A2C4 24A50001 */ addiu $a1, $a1, 1 -/* 01AEC8 8001A2C8 8D790000 */ lw $t9, ($t3) -/* 01AECC 8001A2CC 0010C080 */ sll $t8, $s0, 2 -/* 01AED0 8001A2D0 03387821 */ addu $t7, $t9, $t8 -/* 01AED4 8001A2D4 8DEE0000 */ lw $t6, ($t7) -/* 01AED8 8001A2D8 00000000 */ nop -/* 01AEDC 8001A2DC AC4E0000 */ sw $t6, ($v0) -/* 01AEE0 8001A2E0 8E470000 */ lw $a3, ($s2) -/* 01AEE4 8001A2E4 00000000 */ nop -/* 01AEE8 8001A2E8 00E02825 */ move $a1, $a3 -/* 01AEEC 8001A2EC 24A50001 */ addiu $a1, $a1, 1 -.L8001A2F0: -/* 01AEF0 8001A2F0 00A7082A */ slt $at, $a1, $a3 -/* 01AEF4 8001A2F4 1420FFED */ bnez $at, .L8001A2AC -/* 01AEF8 8001A2F8 00000000 */ nop -/* 01AEFC 8001A2FC 00002825 */ move $a1, $zero -.L8001A300: -/* 01AF00 8001A300 26100001 */ addiu $s0, $s0, 1 -/* 01AF04 8001A304 0207082A */ slt $at, $s0, $a3 -/* 01AF08 8001A308 1420FFCD */ bnez $at, .L8001A240 -/* 01AF0C 8001A30C 00000000 */ nop -/* 01AF10 8001A310 00008025 */ move $s0, $zero -.L8001A314: -/* 01AF14 8001A314 02002025 */ move $a0, $s0 -/* 01AF18 8001A318 0C01A955 */ jal get_buttons_pressed_from_player -/* 01AF1C 8001A31C AFA50094 */ sw $a1, 0x94($sp) -/* 01AF20 8001A320 8FA50094 */ lw $a1, 0x94($sp) -/* 01AF24 8001A324 26100001 */ addiu $s0, $s0, 1 -/* 01AF28 8001A328 2A010004 */ slti $at, $s0, 4 -/* 01AF2C 8001A32C 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 01AF30 8001A330 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c -/* 01AF34 8001A334 1420FFF7 */ bnez $at, .L8001A314 -/* 01AF38 8001A338 00A22825 */ or $a1, $a1, $v0 -/* 01AF3C 8001A33C 3C198012 */ lui $t9, %hi(D_8011AEF6) # $t9, 0x8012 -/* 01AF40 8001A340 8339AEF6 */ lb $t9, %lo(D_8011AEF6)($t9) -/* 01AF44 8001A344 87B80088 */ lh $t8, 0x88($sp) -/* 01AF48 8001A348 13200007 */ beqz $t9, .L8001A368 -/* 01AF4C 8001A34C 3C0F8012 */ lui $t7, %hi(D_8011AD3C) # $t7, 0x8012 -/* 01AF50 8001A350 13000005 */ beqz $t8, .L8001A368 -/* 01AF54 8001A354 00000000 */ nop -/* 01AF58 8001A358 0C008B86 */ jal func_80022E18 -/* 01AF5C 8001A35C 00002025 */ move $a0, $zero -/* 01AF60 8001A360 10000114 */ b .L8001A7B4 -/* 01AF64 8001A364 8FBF0034 */ lw $ra, 0x34($sp) -.L8001A368: -/* 01AF68 8001A368 81EFAD3C */ lb $t7, %lo(D_8011AD3C)($t7) -/* 01AF6C 8001A36C 3C188012 */ lui $t8, %hi(D_8011ADB4) # $t8, 0x8012 -/* 01AF70 8001A370 11E00016 */ beqz $t7, .L8001A3CC -/* 01AF74 8001A374 00000000 */ nop -/* 01AF78 8001A378 12600014 */ beqz $s3, .L8001A3CC -/* 01AF7C 8001A37C 00000000 */ nop -/* 01AF80 8001A380 8D6E0000 */ lw $t6, ($t3) -/* 01AF84 8001A384 00000000 */ nop -/* 01AF88 8001A388 8DD90000 */ lw $t9, ($t6) -/* 01AF8C 8001A38C 00000000 */ nop -/* 01AF90 8001A390 8F280064 */ lw $t0, 0x64($t9) -/* 01AF94 8001A394 00000000 */ nop -/* 01AF98 8001A398 811801D8 */ lb $t8, 0x1d8($t0) -/* 01AF9C 8001A39C 00000000 */ nop -/* 01AFA0 8001A3A0 17000104 */ bnez $t8, .L8001A7B4 -/* 01AFA4 8001A3A4 8FBF0034 */ lw $ra, 0x34($sp) -/* 01AFA8 8001A3A8 A11401D8 */ sb $s4, 0x1d8($t0) -/* 01AFAC 8001A3AC 8E2F0000 */ lw $t7, ($s1) -/* 01AFB0 8001A3B0 00000000 */ nop -/* 01AFB4 8001A3B4 A50F01AC */ sh $t7, 0x1ac($t0) -/* 01AFB8 8001A3B8 8E2E0000 */ lw $t6, ($s1) -/* 01AFBC 8001A3BC 00000000 */ nop -/* 01AFC0 8001A3C0 25D90001 */ addiu $t9, $t6, 1 -/* 01AFC4 8001A3C4 100000FA */ b .L8001A7B0 -/* 01AFC8 8001A3C8 AE390000 */ sw $t9, ($s1) -.L8001A3CC: -/* 01AFCC 8001A3CC 8F18ADB4 */ lw $t8, %lo(D_8011ADB4)($t8) -/* 01AFD0 8001A3D0 00000000 */ nop -/* 01AFD4 8001A3D4 170000F7 */ bnez $t8, .L8001A7B4 -/* 01AFD8 8001A3D8 8FBF0034 */ lw $ra, 0x34($sp) -/* 01AFDC 8001A3DC 0C027B20 */ jal is_in_two_player_adventure -/* 01AFE0 8001A3E0 A3A0005B */ sb $zero, 0x5b($sp) -/* 01AFE4 8001A3E4 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 -/* 01AFE8 8001A3E8 10400010 */ beqz $v0, .L8001A42C -/* 01AFEC 8001A3EC 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 -/* 01AFF0 8001A3F0 87AF0088 */ lh $t7, 0x88($sp) -/* 01AFF4 8001A3F4 00000000 */ nop -/* 01AFF8 8001A3F8 19E0000D */ blez $t7, .L8001A430 -/* 01AFFC 8001A3FC 87AE0088 */ lh $t6, 0x88($sp) -/* 01B000 8001A400 0C02658B */ jal get_trophy_race_world_id -/* 01B004 8001A404 00000000 */ nop -/* 01B008 8001A408 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 -/* 01B00C 8001A40C 14400007 */ bnez $v0, .L8001A42C -/* 01B010 8001A410 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 -/* 01B014 8001A414 0C0069F6 */ jal func_8001A7D8 -/* 01B018 8001A418 02C02025 */ move $a0, $s6 -/* 01B01C 8001A41C 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 -/* 01B020 8001A420 10400002 */ beqz $v0, .L8001A42C -/* 01B024 8001A424 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 -/* 01B028 8001A428 A3B4005B */ sb $s4, 0x5b($sp) -.L8001A42C: -/* 01B02C 8001A42C 87AE0088 */ lh $t6, 0x88($sp) -.L8001A430: -/* 01B030 8001A430 87B9008A */ lh $t9, 0x8a($sp) -/* 01B034 8001A434 00000000 */ nop -/* 01B038 8001A438 11D9000D */ beq $t6, $t9, .L8001A470 -/* 01B03C 8001A43C 2B210002 */ slti $at, $t9, 2 -/* 01B040 8001A440 14200008 */ bnez $at, .L8001A464 -/* 01B044 8001A444 83AE005B */ lb $t6, 0x5b($sp) -/* 01B048 8001A448 8E580000 */ lw $t8, ($s2) -/* 01B04C 8001A44C 00000000 */ nop -/* 01B050 8001A450 270FFFFF */ addiu $t7, $t8, -1 -/* 01B054 8001A454 026F082A */ slt $at, $s3, $t7 -/* 01B058 8001A458 10200006 */ beqz $at, .L8001A474 -/* 01B05C 8001A45C 87B90088 */ lh $t9, 0x88($sp) -/* 01B060 8001A460 83AE005B */ lb $t6, 0x5b($sp) -.L8001A464: -/* 01B064 8001A464 00000000 */ nop -/* 01B068 8001A468 11C000D2 */ beqz $t6, .L8001A7B4 -/* 01B06C 8001A46C 8FBF0034 */ lw $ra, 0x34($sp) -.L8001A470: -/* 01B070 8001A470 87B90088 */ lh $t9, 0x88($sp) -.L8001A474: -/* 01B074 8001A474 87B8008A */ lh $t8, 0x8a($sp) -/* 01B078 8001A478 00000000 */ nop -/* 01B07C 8001A47C 13380029 */ beq $t9, $t8, .L8001A524 -/* 01B080 8001A480 00008025 */ move $s0, $zero -/* 01B084 8001A484 00005025 */ move $t2, $zero -.L8001A488: -/* 01B088 8001A488 8D2F0000 */ lw $t7, ($t1) -/* 01B08C 8001A48C 00000000 */ nop -/* 01B090 8001A490 01EA7021 */ addu $t6, $t7, $t2 -/* 01B094 8001A494 8DD90000 */ lw $t9, ($t6) -/* 01B098 8001A498 00000000 */ nop -/* 01B09C 8001A49C 8F280064 */ lw $t0, 0x64($t9) -/* 01B0A0 8001A4A0 00000000 */ nop -/* 01B0A4 8001A4A4 811801D8 */ lb $t8, 0x1d8($t0) -/* 01B0A8 8001A4A8 00000000 */ nop -/* 01B0AC 8001A4AC 17000018 */ bnez $t8, .L8001A510 -/* 01B0B0 8001A4B0 00000000 */ nop -/* 01B0B4 8001A4B4 85040000 */ lh $a0, ($t0) -/* 01B0B8 8001A4B8 00000000 */ nop -/* 01B0BC 8001A4BC 0480000C */ bltz $a0, .L8001A4F0 -/* 01B0C0 8001A4C0 00000000 */ nop -/* 01B0C4 8001A4C4 AFA80080 */ sw $t0, 0x80($sp) -/* 01B0C8 8001A4C8 0C01997A */ jal set_object_stack_pos -/* 01B0CC 8001A4CC AFAA0044 */ sw $t2, 0x44($sp) -/* 01B0D0 8001A4D0 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 01B0D4 8001A4D4 00000000 */ nop -/* 01B0D8 8001A4D8 8FA80080 */ lw $t0, 0x80($sp) -/* 01B0DC 8001A4DC 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 -/* 01B0E0 8001A4E0 8FAA0044 */ lw $t2, 0x44($sp) -/* 01B0E4 8001A4E4 240F0005 */ li $t7, 5 -/* 01B0E8 8001A4E8 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 -/* 01B0EC 8001A4EC A44F0036 */ sh $t7, 0x36($v0) -.L8001A4F0: -/* 01B0F0 8001A4F0 A11401D8 */ sb $s4, 0x1d8($t0) -/* 01B0F4 8001A4F4 8E2E0000 */ lw $t6, ($s1) -/* 01B0F8 8001A4F8 00000000 */ nop -/* 01B0FC 8001A4FC A50E01AC */ sh $t6, 0x1ac($t0) -/* 01B100 8001A500 8E390000 */ lw $t9, ($s1) -/* 01B104 8001A504 00000000 */ nop -/* 01B108 8001A508 27380001 */ addiu $t8, $t9, 1 -/* 01B10C 8001A50C AE380000 */ sw $t8, ($s1) -.L8001A510: -/* 01B110 8001A510 8E4F0000 */ lw $t7, ($s2) -/* 01B114 8001A514 26100001 */ addiu $s0, $s0, 1 -/* 01B118 8001A518 020F082A */ slt $at, $s0, $t7 -/* 01B11C 8001A51C 1420FFDA */ bnez $at, .L8001A488 -/* 01B120 8001A520 254A0004 */ addiu $t2, $t2, 4 -.L8001A524: -/* 01B124 8001A524 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 -/* 01B128 8001A528 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 -/* 01B12C 8001A52C 8C620000 */ lw $v0, ($v1) -/* 01B130 8001A530 00002025 */ move $a0, $zero -/* 01B134 8001A534 304E0003 */ andi $t6, $v0, 3 -/* 01B138 8001A538 11C00006 */ beqz $t6, .L8001A554 -/* 01B13C 8001A53C 3C18B000 */ lui $t8, %hi(D_B0000574) # $t8, 0xb000 -.L8001A540: -/* 01B140 8001A540 8C620000 */ lw $v0, ($v1) -/* 01B144 8001A544 00000000 */ nop -/* 01B148 8001A548 30590003 */ andi $t9, $v0, 3 -/* 01B14C 8001A54C 1720FFFC */ bnez $t9, .L8001A540 -/* 01B150 8001A550 00000000 */ nop -.L8001A554: -/* 01B154 8001A554 8F0F0574 */ lw $t7, %lo(D_B0000574)($t8) -/* 01B158 8001A558 24016C07 */ li $at, 0x6C07 -/* 01B15C 8001A55C 31EEFFFF */ andi $t6, $t7, 0xffff -/* 01B160 8001A560 11C10004 */ beq $t6, $at, .L8001A574 -/* 01B164 8001A564 3C188012 */ lui $t8, %hi(D_8011AEF5) # $t8, 0x8012 -/* 01B168 8001A568 00142600 */ sll $a0, $s4, 0x18 -/* 01B16C 8001A56C 0004CE03 */ sra $t9, $a0, 0x18 -/* 01B170 8001A570 03202025 */ move $a0, $t9 -.L8001A574: -/* 01B174 8001A574 9318AEF5 */ lbu $t8, %lo(D_8011AEF5)($t8) -/* 01B178 8001A578 3C13800E */ lui $s3, %hi(D_800DC744) # $s3, 0x800e -/* 01B17C 8001A57C 17000016 */ bnez $t8, .L8001A5D8 -/* 01B180 8001A580 2673C744 */ addiu $s3, %lo(D_800DC744) # addiu $s3, $s3, -0x38bc -/* 01B184 8001A584 00008025 */ move $s0, $zero -/* 01B188 8001A588 00005025 */ move $t2, $zero -/* 01B18C 8001A58C 24020018 */ li $v0, 24 -.L8001A590: -/* 01B190 8001A590 8D2F0000 */ lw $t7, ($t1) -/* 01B194 8001A594 00000000 */ nop -/* 01B198 8001A598 01EA7021 */ addu $t6, $t7, $t2 -/* 01B19C 8001A59C 8DD90000 */ lw $t9, ($t6) -/* 01B1A0 8001A5A0 254A0004 */ addiu $t2, $t2, 4 -/* 01B1A4 8001A5A4 8F280064 */ lw $t0, 0x64($t9) -/* 01B1A8 8001A5A8 00000000 */ nop -/* 01B1AC 8001A5AC 81060002 */ lb $a2, 2($t0) -/* 01B1B0 8001A5B0 00000000 */ nop -/* 01B1B4 8001A5B4 00C20019 */ multu $a2, $v0 -/* 01B1B8 8001A5B8 0000C012 */ mflo $t8 -/* 01B1BC 8001A5BC 02D87821 */ addu $t7, $s6, $t8 -/* 01B1C0 8001A5C0 A1F0005A */ sb $s0, 0x5a($t7) -/* 01B1C4 8001A5C4 8E4E0000 */ lw $t6, ($s2) -/* 01B1C8 8001A5C8 26100001 */ addiu $s0, $s0, 1 -/* 01B1CC 8001A5CC 020E082A */ slt $at, $s0, $t6 -/* 01B1D0 8001A5D0 1420FFEF */ bnez $at, .L8001A590 -/* 01B1D4 8001A5D4 00000000 */ nop -.L8001A5D8: -/* 01B1D8 8001A5D8 A2600000 */ sb $zero, ($s3) -/* 01B1DC 8001A5DC 0C027B20 */ jal is_in_two_player_adventure -/* 01B1E0 8001A5E0 A3A4005A */ sb $a0, 0x5a($sp) -/* 01B1E4 8001A5E4 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 -/* 01B1E8 8001A5E8 10400008 */ beqz $v0, .L8001A60C -/* 01B1EC 8001A5EC 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 -/* 01B1F0 8001A5F0 82D90072 */ lb $t9, 0x72($s6) -/* 01B1F4 8001A5F4 82D8005A */ lb $t8, 0x5a($s6) -/* 01B1F8 8001A5F8 00000000 */ nop -/* 01B1FC 8001A5FC 0338082A */ slt $at, $t9, $t8 -/* 01B200 8001A600 10200002 */ beqz $at, .L8001A60C -/* 01B204 8001A604 00000000 */ nop -/* 01B208 8001A608 A2740000 */ sb $s4, ($s3) -.L8001A60C: -/* 01B20C 8001A60C 8D2F0000 */ lw $t7, ($t1) -/* 01B210 8001A610 3C118012 */ lui $s1, %hi(D_8011ADC4) # $s1, 0x8012 -/* 01B214 8001A614 8DEE0000 */ lw $t6, ($t7) -/* 01B218 8001A618 2631ADC4 */ addiu $s1, %lo(D_8011ADC4) # addiu $s1, $s1, -0x523c -/* 01B21C 8001A61C 8DC80064 */ lw $t0, 0x64($t6) -/* 01B220 8001A620 A2200000 */ sb $zero, ($s1) -/* 01B224 8001A624 92D9004A */ lbu $t9, 0x4a($s6) -/* 01B228 8001A628 00000000 */ nop -/* 01B22C 8001A62C 12990006 */ beq $s4, $t9, .L8001A648 -/* 01B230 8001A630 00000000 */ nop -/* 01B234 8001A634 0C027B20 */ jal is_in_two_player_adventure -/* 01B238 8001A638 AFA80080 */ sw $t0, 0x80($sp) -/* 01B23C 8001A63C 8FA80080 */ lw $t0, 0x80($sp) -/* 01B240 8001A640 1040000E */ beqz $v0, .L8001A67C -/* 01B244 8001A644 00000000 */ nop -.L8001A648: -/* 01B248 8001A648 85180000 */ lh $t8, ($t0) -/* 01B24C 8001A64C 00000000 */ nop -/* 01B250 8001A650 12B8000A */ beq $s5, $t8, .L8001A67C -/* 01B254 8001A654 00000000 */ nop -/* 01B258 8001A658 0C0270B4 */ jal is_in_tracks_mode -/* 01B25C 8001A65C 00000000 */ nop -/* 01B260 8001A660 14400006 */ bnez $v0, .L8001A67C -/* 01B264 8001A664 00000000 */ nop -/* 01B268 8001A668 0C02658B */ jal get_trophy_race_world_id -/* 01B26C 8001A66C 00000000 */ nop -/* 01B270 8001A670 14400002 */ bnez $v0, .L8001A67C -/* 01B274 8001A674 00000000 */ nop -/* 01B278 8001A678 A2340000 */ sb $s4, ($s1) -.L8001A67C: -/* 01B27C 8001A67C 822F0000 */ lb $t7, ($s1) -/* 01B280 8001A680 83AE005B */ lb $t6, 0x5b($sp) -/* 01B284 8001A684 11E00006 */ beqz $t7, .L8001A6A0 -/* 01B288 8001A688 00008025 */ move $s0, $zero -/* 01B28C 8001A68C 15C00005 */ bnez $t6, .L8001A6A4 -/* 01B290 8001A690 83B9005B */ lb $t9, 0x5b($sp) -/* 01B294 8001A694 0C0069F6 */ jal func_8001A7D8 -/* 01B298 8001A698 02C02025 */ move $a0, $s6 -/* 01B29C 8001A69C 00408025 */ move $s0, $v0 -.L8001A6A0: -/* 01B2A0 8001A6A0 83B9005B */ lb $t9, 0x5b($sp) -.L8001A6A4: -/* 01B2A4 8001A6A4 00000000 */ nop -/* 01B2A8 8001A6A8 13200004 */ beqz $t9, .L8001A6BC -/* 01B2AC 8001A6AC 83B8005A */ lb $t8, 0x5a($sp) -/* 01B2B0 8001A6B0 A2340000 */ sb $s4, ($s1) -/* 01B2B4 8001A6B4 02808025 */ move $s0, $s4 -/* 01B2B8 8001A6B8 83B8005A */ lb $t8, 0x5a($sp) -.L8001A6BC: -/* 01B2BC 8001A6BC 00000000 */ nop -/* 01B2C0 8001A6C0 13000003 */ beqz $t8, .L8001A6D0 -/* 01B2C4 8001A6C4 00000000 */ nop -/* 01B2C8 8001A6C8 00008025 */ move $s0, $zero -/* 01B2CC 8001A6CC A2200000 */ sb $zero, ($s1) -.L8001A6D0: -/* 01B2D0 8001A6D0 1600001C */ bnez $s0, .L8001A744 -/* 01B2D4 8001A6D4 00000000 */ nop -/* 01B2D8 8001A6D8 0C027B20 */ jal is_in_two_player_adventure -/* 01B2DC 8001A6DC 00000000 */ nop -/* 01B2E0 8001A6E0 10400013 */ beqz $v0, .L8001A730 -/* 01B2E4 8001A6E4 00000000 */ nop -/* 01B2E8 8001A6E8 826F0000 */ lb $t7, ($s3) -/* 01B2EC 8001A6EC 3C19800E */ lui $t9, %hi(D_800DC73C) # $t9, 0x800e -/* 01B2F0 8001A6F0 11E0000A */ beqz $t7, .L8001A71C -/* 01B2F4 8001A6F4 00000000 */ nop -/* 01B2F8 8001A6F8 0C01BCE6 */ jal func_8006F398 -/* 01B2FC 8001A6FC A2600000 */ sb $zero, ($s3) -/* 01B300 8001A700 3C0E800E */ lui $t6, %hi(D_800DC73C) # $t6, 0x800e -/* 01B304 8001A704 81CEC73C */ lb $t6, %lo(D_800DC73C)($t6) -/* 01B308 8001A708 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e -/* 01B30C 8001A70C 11C00008 */ beqz $t6, .L8001A730 -/* 01B310 8001A710 00000000 */ nop -/* 01B314 8001A714 10000006 */ b .L8001A730 -/* 01B318 8001A718 A034C748 */ sb $s4, %lo(D_800DC748)($at) -.L8001A71C: -/* 01B31C 8001A71C 8339C73C */ lb $t9, %lo(D_800DC73C)($t9) -/* 01B320 8001A720 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e -/* 01B324 8001A724 13200002 */ beqz $t9, .L8001A730 -/* 01B328 8001A728 00000000 */ nop -/* 01B32C 8001A72C A034C748 */ sb $s4, %lo(D_800DC748)($at) -.L8001A730: -/* 01B330 8001A730 82240000 */ lb $a0, ($s1) -/* 01B334 8001A734 0C0251A2 */ jal func_80094688 -/* 01B338 8001A738 2405001E */ li $a1, 30 -/* 01B33C 8001A73C 10000015 */ b .L8001A794 -/* 01B340 8001A740 00000000 */ nop -.L8001A744: -/* 01B344 8001A744 92CF0048 */ lbu $t7, 0x48($s6) -/* 01B348 8001A748 8ED80000 */ lw $t8, ($s6) -/* 01B34C 8001A74C 000F7040 */ sll $t6, $t7, 1 -/* 01B350 8001A750 030E1021 */ addu $v0, $t8, $t6 -/* 01B354 8001A754 84590000 */ lh $t9, ($v0) -/* 01B358 8001A758 00000000 */ nop -/* 01B35C 8001A75C 272F0001 */ addiu $t7, $t9, 1 -/* 01B360 8001A760 A44F0000 */ sh $t7, ($v0) -/* 01B364 8001A764 92D80048 */ lbu $t8, 0x48($s6) -/* 01B368 8001A768 00000000 */ nop -/* 01B36C 8001A76C 13000007 */ beqz $t8, .L8001A78C -/* 01B370 8001A770 00000000 */ nop -/* 01B374 8001A774 8EC20000 */ lw $v0, ($s6) -/* 01B378 8001A778 00000000 */ nop -/* 01B37C 8001A77C 844E0000 */ lh $t6, ($v0) -/* 01B380 8001A780 00000000 */ nop -/* 01B384 8001A784 25D90001 */ addiu $t9, $t6, 1 -/* 01B388 8001A788 A4590000 */ sh $t9, ($v0) -.L8001A78C: -/* 01B38C 8001A78C 0C006A35 */ jal func_8001A8D4 -/* 01B390 8001A790 02802025 */ move $a0, $s4 -.L8001A794: -/* 01B394 8001A794 3C018012 */ lui $at, %hi(D_8011ADB4) # $at, 0x8012 -/* 01B398 8001A798 0C0270F2 */ jal get_number_of_active_players -/* 01B39C 8001A79C AC35ADB4 */ sw $s5, %lo(D_8011ADB4)($at) -/* 01B3A0 8001A7A0 14540004 */ bne $v0, $s4, .L8001A7B4 -/* 01B3A4 8001A7A4 8FBF0034 */ lw $ra, 0x34($sp) -/* 01B3A8 8001A7A8 0C006B99 */ jal func_8001AE64 -/* 01B3AC 8001A7AC 00000000 */ nop -.L8001A7B0: -/* 01B3B0 8001A7B0 8FBF0034 */ lw $ra, 0x34($sp) -.L8001A7B4: -/* 01B3B4 8001A7B4 8FB00018 */ lw $s0, 0x18($sp) -/* 01B3B8 8001A7B8 8FB1001C */ lw $s1, 0x1c($sp) -/* 01B3BC 8001A7BC 8FB20020 */ lw $s2, 0x20($sp) -/* 01B3C0 8001A7C0 8FB30024 */ lw $s3, 0x24($sp) -/* 01B3C4 8001A7C4 8FB40028 */ lw $s4, 0x28($sp) -/* 01B3C8 8001A7C8 8FB5002C */ lw $s5, 0x2c($sp) -/* 01B3CC 8001A7CC 8FB60030 */ lw $s6, 0x30($sp) -/* 01B3D0 8001A7D0 03E00008 */ jr $ra -/* 01B3D4 8001A7D4 27BD00A0 */ addiu $sp, $sp, 0xa0 - +glabel func_80019808 +/* 01A408 80019808 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 01A40C 8001980C AFBF0034 */ sw $ra, 0x34($sp) +/* 01A410 80019810 AFB60030 */ sw $s6, 0x30($sp) +/* 01A414 80019814 AFB5002C */ sw $s5, 0x2c($sp) +/* 01A418 80019818 AFB40028 */ sw $s4, 0x28($sp) +/* 01A41C 8001981C AFB30024 */ sw $s3, 0x24($sp) +/* 01A420 80019820 AFB20020 */ sw $s2, 0x20($sp) +/* 01A424 80019824 AFB1001C */ sw $s1, 0x1c($sp) +/* 01A428 80019828 AFB00018 */ sw $s0, 0x18($sp) +/* 01A42C 8001982C 0C01AF6C */ jal get_current_level_header +/* 01A430 80019830 AFA400A0 */ sw $a0, 0xa0($sp) +/* 01A434 80019834 0C01BAA4 */ jal get_settings +/* 01A438 80019838 AFA20064 */ sw $v0, 0x64($sp) +/* 01A43C 8001983C 8FBF0064 */ lw $ra, 0x64($sp) +/* 01A440 80019840 A7A00088 */ sh $zero, 0x88($sp) +/* 01A444 80019844 A7A0008A */ sh $zero, 0x8a($sp) +/* 01A448 80019848 83E3004C */ lb $v1, 0x4c($ra) +/* 01A44C 8001984C 0040B025 */ move $s6, $v0 +/* 01A450 80019850 106001A2 */ beqz $v1, .L80019EDC +/* 01A454 80019854 00009825 */ move $s3, $zero +/* 01A458 80019858 24010003 */ li $at, 3 +/* 01A45C 8001985C 1061019F */ beq $v1, $at, .L80019EDC +/* 01A460 80019860 24010008 */ li $at, 8 +/* 01A464 80019864 1061019D */ beq $v1, $at, .L80019EDC +/* 01A468 80019868 306E0040 */ andi $t6, $v1, 0x40 +/* 01A46C 8001986C 11C003D0 */ beqz $t6, .L8001A7B0 +/* 01A470 80019870 24010042 */ li $at, 66 +/* 01A474 80019874 14610008 */ bne $v1, $at, .L80019898 +/* 01A478 80019878 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01A47C 8001987C 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01A480 80019880 8D640000 */ lw $a0, ($t3) +/* 01A484 80019884 AFBF0064 */ sw $ra, 0x64($sp) +/* 01A488 80019888 0C01144A */ jal func_80045128 +/* 01A48C 8001988C 00000000 */ nop +/* 01A490 80019890 8FBF0064 */ lw $ra, 0x64($sp) +/* 01A494 80019894 00000000 */ nop +.L80019898: +/* 01A498 80019898 3C0F8012 */ lui $t7, %hi(D_8011ADB4) # $t7, 0x8012 +/* 01A49C 8001989C 8DEFADB4 */ lw $t7, %lo(D_8011ADB4)($t7) +/* 01A4A0 800198A0 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01A4A4 800198A4 15E003C2 */ bnez $t7, .L8001A7B0 +/* 01A4A8 800198A8 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01A4AC 800198AC 3C128012 */ lui $s2, %hi(gNumRacers) # $s2, 0x8012 +/* 01A4B0 800198B0 2652AEF0 */ addiu $s2, %lo(gNumRacers) # addiu $s2, $s2, -0x5110 +/* 01A4B4 800198B4 8E470000 */ lw $a3, ($s2) +/* 01A4B8 800198B8 00008025 */ move $s0, $zero +/* 01A4BC 800198BC 18E00066 */ blez $a3, .L80019A58 +/* 01A4C0 800198C0 00005025 */ move $t2, $zero +/* 01A4C4 800198C4 3C118012 */ lui $s1, %hi(D_8011ADC0) # $s1, 0x8012 +/* 01A4C8 800198C8 2631ADC0 */ addiu $s1, %lo(D_8011ADC0) # addiu $s1, $s1, -0x5240 +/* 01A4CC 800198CC 27A5006C */ addiu $a1, $sp, 0x6c +/* 01A4D0 800198D0 2415FFFF */ li $s5, -1 +/* 01A4D4 800198D4 24140001 */ li $s4, 1 +/* 01A4D8 800198D8 24090040 */ li $t1, 64 +.L800198DC: +/* 01A4DC 800198DC 8D780000 */ lw $t8, ($t3) +/* 01A4E0 800198E0 00000000 */ nop +/* 01A4E4 800198E4 030AC821 */ addu $t9, $t8, $t2 +/* 01A4E8 800198E8 8F2E0000 */ lw $t6, ($t9) +/* 01A4EC 800198EC 00000000 */ nop +/* 01A4F0 800198F0 8DCF0064 */ lw $t7, 0x64($t6) +/* 01A4F4 800198F4 00000000 */ nop +/* 01A4F8 800198F8 ACAF0000 */ sw $t7, ($a1) +/* 01A4FC 800198FC 83F8004C */ lb $t8, 0x4c($ra) +/* 01A500 80019900 00000000 */ nop +/* 01A504 80019904 15380031 */ bne $t1, $t8, .L800199CC +/* 01A508 80019908 00000000 */ nop +/* 01A50C 8001990C 81F90185 */ lb $t9, 0x185($t7) +/* 01A510 80019910 00000000 */ nop +/* 01A514 80019914 1F20002D */ bgtz $t9, .L800199CC +/* 01A518 80019918 00000000 */ nop +/* 01A51C 8001991C 81EE01D8 */ lb $t6, 0x1d8($t7) +/* 01A520 80019920 00000000 */ nop +/* 01A524 80019924 15C00029 */ bnez $t6, .L800199CC +/* 01A528 80019928 00000000 */ nop +/* 01A52C 8001992C A1F401D8 */ sb $s4, 0x1d8($t7) +/* 01A530 80019930 8CAF0000 */ lw $t7, ($a1) +/* 01A534 80019934 00000000 */ nop +/* 01A538 80019938 A1E00173 */ sb $zero, 0x173($t7) +/* 01A53C 8001993C 8D780000 */ lw $t8, ($t3) +/* 01A540 80019940 00000000 */ nop +/* 01A544 80019944 030AC821 */ addu $t9, $t8, $t2 +/* 01A548 80019948 8F240000 */ lw $a0, ($t9) +/* 01A54C 8001994C AFBF0064 */ sw $ra, 0x64($sp) +/* 01A550 80019950 AFAA0044 */ sw $t2, 0x44($sp) +/* 01A554 80019954 0C001AB2 */ jal func_80006AC8 +/* 01A558 80019958 AFA5004C */ sw $a1, 0x4c($sp) +/* 01A55C 8001995C 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01A560 80019960 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01A564 80019964 8FAA0044 */ lw $t2, 0x44($sp) +/* 01A568 80019968 8D6E0000 */ lw $t6, ($t3) +/* 01A56C 8001996C 8FA5004C */ lw $a1, 0x4c($sp) +/* 01A570 80019970 01CA7821 */ addu $t7, $t6, $t2 +/* 01A574 80019974 8DE20000 */ lw $v0, ($t7) +/* 01A578 80019978 8FBF0064 */ lw $ra, 0x64($sp) +/* 01A57C 8001997C 84580006 */ lh $t8, 6($v0) +/* 01A580 80019980 24090040 */ li $t1, 64 +/* 01A584 80019984 37194000 */ ori $t9, $t8, 0x4000 +/* 01A588 80019988 A4590006 */ sh $t9, 6($v0) +/* 01A58C 8001998C 8D6E0000 */ lw $t6, ($t3) +/* 01A590 80019990 00000000 */ nop +/* 01A594 80019994 01CA7821 */ addu $t7, $t6, $t2 +/* 01A598 80019998 8DF80000 */ lw $t8, ($t7) +/* 01A59C 8001999C 240F0005 */ li $t7, 5 +/* 01A5A0 800199A0 8F19004C */ lw $t9, 0x4c($t8) +/* 01A5A4 800199A4 00000000 */ nop +/* 01A5A8 800199A8 A7200014 */ sh $zero, 0x14($t9) +/* 01A5AC 800199AC 8E2E0000 */ lw $t6, ($s1) +/* 01A5B0 800199B0 8CB90000 */ lw $t9, ($a1) +/* 01A5B4 800199B4 01EEC023 */ subu $t8, $t7, $t6 +/* 01A5B8 800199B8 A73801AC */ sh $t8, 0x1ac($t9) +/* 01A5BC 800199BC 8E2F0000 */ lw $t7, ($s1) +/* 01A5C0 800199C0 00000000 */ nop +/* 01A5C4 800199C4 25EE0001 */ addiu $t6, $t7, 1 +/* 01A5C8 800199C8 AE2E0000 */ sw $t6, ($s1) +.L800199CC: +/* 01A5CC 800199CC 8CA20000 */ lw $v0, ($a1) +/* 01A5D0 800199D0 26100001 */ addiu $s0, $s0, 1 +/* 01A5D4 800199D4 84580000 */ lh $t8, ($v0) +/* 01A5D8 800199D8 804301D8 */ lb $v1, 0x1d8($v0) +/* 01A5DC 800199DC 12B8000B */ beq $s5, $t8, .L80019A0C +/* 01A5E0 800199E0 00000000 */ nop +/* 01A5E4 800199E4 10600006 */ beqz $v1, .L80019A00 +/* 01A5E8 800199E8 87AE008A */ lh $t6, 0x8a($sp) +/* 01A5EC 800199EC 87B90088 */ lh $t9, 0x88($sp) +/* 01A5F0 800199F0 00000000 */ nop +/* 01A5F4 800199F4 272F0001 */ addiu $t7, $t9, 1 +/* 01A5F8 800199F8 A7AF0088 */ sh $t7, 0x88($sp) +/* 01A5FC 800199FC 87AE008A */ lh $t6, 0x8a($sp) +.L80019A00: +/* 01A600 80019A00 00000000 */ nop +/* 01A604 80019A04 25D80001 */ addiu $t8, $t6, 1 +/* 01A608 80019A08 A7B8008A */ sh $t8, 0x8a($sp) +.L80019A0C: +/* 01A60C 80019A0C 1060000D */ beqz $v1, .L80019A44 +/* 01A610 80019A10 00000000 */ nop +/* 01A614 80019A14 844E01AC */ lh $t6, 0x1ac($v0) +/* 01A618 80019A18 26730001 */ addiu $s3, $s3, 1 +/* 01A61C 80019A1C 0013CC00 */ sll $t9, $s3, 0x10 +/* 01A620 80019A20 15C00008 */ bnez $t6, .L80019A44 +/* 01A624 80019A24 00199C03 */ sra $s3, $t9, 0x10 +/* 01A628 80019A28 8E380000 */ lw $t8, ($s1) +/* 01A62C 80019A2C 00000000 */ nop +/* 01A630 80019A30 A45801AC */ sh $t8, 0x1ac($v0) +/* 01A634 80019A34 8E390000 */ lw $t9, ($s1) +/* 01A638 80019A38 00000000 */ nop +/* 01A63C 80019A3C 272F0001 */ addiu $t7, $t9, 1 +/* 01A640 80019A40 AE2F0000 */ sw $t7, ($s1) +.L80019A44: +/* 01A644 80019A44 8E470000 */ lw $a3, ($s2) +/* 01A648 80019A48 254A0004 */ addiu $t2, $t2, 4 +/* 01A64C 80019A4C 0207082A */ slt $at, $s0, $a3 +/* 01A650 80019A50 1420FFA2 */ bnez $at, .L800198DC +/* 01A654 80019A54 24A50004 */ addiu $a1, $a1, 4 +.L80019A58: +/* 01A658 80019A58 83EE004C */ lb $t6, 0x4c($ra) +/* 01A65C 80019A5C 24090040 */ li $t1, 64 +/* 01A660 80019A60 3C118012 */ lui $s1, %hi(D_8011ADC0) # $s1, 0x8012 +/* 01A664 80019A64 2631ADC0 */ addiu $s1, %lo(D_8011ADC0) # addiu $s1, $s1, -0x5240 +/* 01A668 80019A68 24140001 */ li $s4, 1 +/* 01A66C 80019A6C 112E0003 */ beq $t1, $t6, .L80019A7C +/* 01A670 80019A70 2415FFFF */ li $s5, -1 +/* 01A674 80019A74 1E600010 */ bgtz $s3, .L80019AB8 +/* 01A678 80019A78 00000000 */ nop +.L80019A7C: +/* 01A67C 80019A7C 87B8008A */ lh $t8, 0x8a($sp) +/* 01A680 80019A80 87B90088 */ lh $t9, 0x88($sp) +/* 01A684 80019A84 17140004 */ bne $t8, $s4, .L80019A98 +/* 01A688 80019A88 87AF008A */ lh $t7, 0x8a($sp) +/* 01A68C 80019A8C 1334000A */ beq $t9, $s4, .L80019AB8 +/* 01A690 80019A90 00000000 */ nop +/* 01A694 80019A94 87AF008A */ lh $t7, 0x8a($sp) +.L80019A98: +/* 01A698 80019A98 87AE0088 */ lh $t6, 0x88($sp) +/* 01A69C 80019A9C 29E10002 */ slti $at, $t7, 2 +/* 01A6A0 80019AA0 14200002 */ bnez $at, .L80019AAC +/* 01A6A4 80019AA4 01CF082A */ slt $at, $t6, $t7 +/* 01A6A8 80019AA8 10200003 */ beqz $at, .L80019AB8 +.L80019AAC: +/* 01A6AC 80019AAC 2A610003 */ slti $at, $s3, 3 +/* 01A6B0 80019AB0 1420033F */ bnez $at, .L8001A7B0 +/* 01A6B4 80019AB4 00000000 */ nop +.L80019AB8: +/* 01A6B8 80019AB8 18E00041 */ blez $a3, .L80019BC0 +/* 01A6BC 80019ABC 00008025 */ move $s0, $zero +/* 01A6C0 80019AC0 27A3005C */ addiu $v1, $sp, 0x5c +/* 01A6C4 80019AC4 00E32021 */ addu $a0, $a3, $v1 +/* 01A6C8 80019AC8 24070003 */ li $a3, 3 +/* 01A6CC 80019ACC 27A5006C */ addiu $a1, $sp, 0x6c +/* 01A6D0 80019AD0 240D000A */ li $t5, 10 +/* 01A6D4 80019AD4 24060042 */ li $a2, 66 +.L80019AD8: +/* 01A6D8 80019AD8 83F9004C */ lb $t9, 0x4c($ra) +/* 01A6DC 80019ADC 00000000 */ nop +/* 01A6E0 80019AE0 15390008 */ bne $t1, $t9, .L80019B04 +/* 01A6E4 80019AE4 00000000 */ nop +/* 01A6E8 80019AE8 8CAE0000 */ lw $t6, ($a1) +/* 01A6EC 80019AEC 00000000 */ nop +/* 01A6F0 80019AF0 81CF0185 */ lb $t7, 0x185($t6) +/* 01A6F4 80019AF4 00000000 */ nop +/* 01A6F8 80019AF8 01AFC023 */ subu $t8, $t5, $t7 +/* 01A6FC 80019AFC 10000020 */ b .L80019B80 +/* 01A700 80019B00 A0780000 */ sb $t8, ($v1) +.L80019B04: +/* 01A704 80019B04 8CA20000 */ lw $v0, ($a1) +/* 01A708 80019B08 00000000 */ nop +/* 01A70C 80019B0C 80590193 */ lb $t9, 0x193($v0) +/* 01A710 80019B10 00000000 */ nop +/* 01A714 80019B14 A0790000 */ sb $t9, ($v1) +/* 01A718 80019B18 83EE004C */ lb $t6, 0x4c($ra) +/* 01A71C 80019B1C 00000000 */ nop +/* 01A720 80019B20 14CE0017 */ bne $a2, $t6, .L80019B80 +/* 01A724 80019B24 00000000 */ nop +/* 01A728 80019B28 806F0000 */ lb $t7, ($v1) +/* 01A72C 80019B2C 00000000 */ nop +/* 01A730 80019B30 01E70019 */ multu $t7, $a3 +/* 01A734 80019B34 0000C012 */ mflo $t8 +/* 01A738 80019B38 A0780000 */ sb $t8, ($v1) +/* 01A73C 80019B3C 805901CF */ lb $t9, 0x1cf($v0) +/* 01A740 80019B40 00000000 */ nop +/* 01A744 80019B44 13200006 */ beqz $t9, .L80019B60 +/* 01A748 80019B48 00000000 */ nop +/* 01A74C 80019B4C 806E0000 */ lb $t6, ($v1) +/* 01A750 80019B50 00000000 */ nop +/* 01A754 80019B54 25CF0002 */ addiu $t7, $t6, 2 +/* 01A758 80019B58 10000009 */ b .L80019B80 +/* 01A75C 80019B5C A06F0000 */ sb $t7, ($v1) +.L80019B60: +/* 01A760 80019B60 8C580144 */ lw $t8, 0x144($v0) +/* 01A764 80019B64 00000000 */ nop +/* 01A768 80019B68 13000005 */ beqz $t8, .L80019B80 +/* 01A76C 80019B6C 00000000 */ nop +/* 01A770 80019B70 80790000 */ lb $t9, ($v1) +/* 01A774 80019B74 00000000 */ nop +/* 01A778 80019B78 272E0001 */ addiu $t6, $t9, 1 +/* 01A77C 80019B7C A06E0000 */ sb $t6, ($v1) +.L80019B80: +/* 01A780 80019B80 80620000 */ lb $v0, ($v1) +/* 01A784 80019B84 00000000 */ nop +/* 01A788 80019B88 2841000B */ slti $at, $v0, 0xb +/* 01A78C 80019B8C 14200004 */ bnez $at, .L80019BA0 +/* 01A790 80019B90 00000000 */ nop +/* 01A794 80019B94 A06D0000 */ sb $t5, ($v1) +/* 01A798 80019B98 80620000 */ lb $v0, ($v1) +/* 01A79C 80019B9C 00000000 */ nop +.L80019BA0: +/* 01A7A0 80019BA0 04410002 */ bgez $v0, .L80019BAC +/* 01A7A4 80019BA4 00000000 */ nop +/* 01A7A8 80019BA8 A0600000 */ sb $zero, ($v1) +.L80019BAC: +/* 01A7AC 80019BAC 24630001 */ addiu $v1, $v1, 1 +/* 01A7B0 80019BB0 0064082B */ sltu $at, $v1, $a0 +/* 01A7B4 80019BB4 1420FFC8 */ bnez $at, .L80019AD8 +/* 01A7B8 80019BB8 24A50004 */ addiu $a1, $a1, 4 +/* 01A7BC 80019BBC 00008025 */ move $s0, $zero +.L80019BC0: +/* 01A7C0 80019BC0 27A8006C */ addiu $t0, $sp, 0x6c +/* 01A7C4 80019BC4 27A6005C */ addiu $a2, $sp, 0x5c +.L80019BC8: +/* 01A7C8 80019BC8 8E470000 */ lw $a3, ($s2) +/* 01A7CC 80019BCC 00152400 */ sll $a0, $s5, 0x10 +/* 01A7D0 80019BD0 00151C00 */ sll $v1, $s5, 0x10 +/* 01A7D4 80019BD4 00047C03 */ sra $t7, $a0, 0x10 +/* 01A7D8 80019BD8 0003C403 */ sra $t8, $v1, 0x10 +/* 01A7DC 80019BDC 01E02025 */ move $a0, $t7 +/* 01A7E0 80019BE0 18E00018 */ blez $a3, .L80019C44 +/* 01A7E4 80019BE4 03001825 */ move $v1, $t8 +/* 01A7E8 80019BE8 27A5006C */ addiu $a1, $sp, 0x6c +.L80019BEC: +/* 01A7EC 80019BEC 8CB90000 */ lw $t9, ($a1) +/* 01A7F0 80019BF0 00D07821 */ addu $t7, $a2, $s0 +/* 01A7F4 80019BF4 832E01D8 */ lb $t6, 0x1d8($t9) +/* 01A7F8 80019BF8 00000000 */ nop +/* 01A7FC 80019BFC 15C0000C */ bnez $t6, .L80019C30 +/* 01A800 80019C00 00000000 */ nop +/* 01A804 80019C04 81E20000 */ lb $v0, ($t7) +/* 01A808 80019C08 00000000 */ nop +/* 01A80C 80019C0C 0043082A */ slt $at, $v0, $v1 +/* 01A810 80019C10 14200007 */ bnez $at, .L80019C30 +/* 01A814 80019C14 00000000 */ nop +/* 01A818 80019C18 00021C00 */ sll $v1, $v0, 0x10 +/* 01A81C 80019C1C 00102400 */ sll $a0, $s0, 0x10 +/* 01A820 80019C20 0003C403 */ sra $t8, $v1, 0x10 +/* 01A824 80019C24 0004CC03 */ sra $t9, $a0, 0x10 +/* 01A828 80019C28 03001825 */ move $v1, $t8 +/* 01A82C 80019C2C 03202025 */ move $a0, $t9 +.L80019C30: +/* 01A830 80019C30 26100001 */ addiu $s0, $s0, 1 +/* 01A834 80019C34 0207082A */ slt $at, $s0, $a3 +/* 01A838 80019C38 1420FFEC */ bnez $at, .L80019BEC +/* 01A83C 80019C3C 24A50004 */ addiu $a1, $a1, 4 +/* 01A840 80019C40 00008025 */ move $s0, $zero +.L80019C44: +/* 01A844 80019C44 10950016 */ beq $a0, $s5, .L80019CA0 +/* 01A848 80019C48 00000000 */ nop +/* 01A84C 80019C4C 83EE004C */ lb $t6, 0x4c($ra) +/* 01A850 80019C50 0004C880 */ sll $t9, $a0, 2 +/* 01A854 80019C54 152E0009 */ bne $t1, $t6, .L80019C7C +/* 01A858 80019C58 01191021 */ addu $v0, $t0, $t9 +/* 01A85C 80019C5C 00047880 */ sll $t7, $a0, 2 +/* 01A860 80019C60 8E380000 */ lw $t8, ($s1) +/* 01A864 80019C64 010F1021 */ addu $v0, $t0, $t7 +/* 01A868 80019C68 8C4F0000 */ lw $t7, ($v0) +/* 01A86C 80019C6C 24190005 */ li $t9, 5 +/* 01A870 80019C70 03387023 */ subu $t6, $t9, $t8 +/* 01A874 80019C74 10000005 */ b .L80019C8C +/* 01A878 80019C78 A5EE01AC */ sh $t6, 0x1ac($t7) +.L80019C7C: +/* 01A87C 80019C7C 8E380000 */ lw $t8, ($s1) +/* 01A880 80019C80 8C4E0000 */ lw $t6, ($v0) +/* 01A884 80019C84 00000000 */ nop +/* 01A888 80019C88 A5D801AC */ sh $t8, 0x1ac($t6) +.L80019C8C: +/* 01A88C 80019C8C 8E2F0000 */ lw $t7, ($s1) +/* 01A890 80019C90 8C580000 */ lw $t8, ($v0) +/* 01A894 80019C94 25F90001 */ addiu $t9, $t7, 1 +/* 01A898 80019C98 AE390000 */ sw $t9, ($s1) +/* 01A89C 80019C9C A31401D8 */ sb $s4, 0x1d8($t8) +.L80019CA0: +/* 01A8A0 80019CA0 1495FFC9 */ bne $a0, $s5, .L80019BC8 +/* 01A8A4 80019CA4 00000000 */ nop +/* 01A8A8 80019CA8 3C13800E */ lui $s3, %hi(D_800DC744) # $s3, 0x800e +/* 01A8AC 80019CAC 2673C744 */ addiu $s3, %lo(D_800DC744) # addiu $s3, $s3, -0x38bc +/* 01A8B0 80019CB0 0C0270B4 */ jal is_in_tracks_mode +/* 01A8B4 80019CB4 A2600000 */ sb $zero, ($s3) +/* 01A8B8 80019CB8 14400024 */ bnez $v0, .L80019D4C +/* 01A8BC 80019CBC 00003025 */ move $a2, $zero +/* 01A8C0 80019CC0 8FAE006C */ lw $t6, 0x6c($sp) +/* 01A8C4 80019CC4 00000000 */ nop +/* 01A8C8 80019CC8 85CF01AC */ lh $t7, 0x1ac($t6) +/* 01A8CC 80019CCC 00000000 */ nop +/* 01A8D0 80019CD0 128F000B */ beq $s4, $t7, .L80019D00 +/* 01A8D4 80019CD4 00000000 */ nop +/* 01A8D8 80019CD8 0C027B20 */ jal is_in_two_player_adventure +/* 01A8DC 80019CDC 00000000 */ nop +/* 01A8E0 80019CE0 1040001A */ beqz $v0, .L80019D4C +/* 01A8E4 80019CE4 00003025 */ move $a2, $zero +/* 01A8E8 80019CE8 8FB90070 */ lw $t9, 0x70($sp) +/* 01A8EC 80019CEC 00000000 */ nop +/* 01A8F0 80019CF0 873801AC */ lh $t8, 0x1ac($t9) +/* 01A8F4 80019CF4 00000000 */ nop +/* 01A8F8 80019CF8 16980014 */ bne $s4, $t8, .L80019D4C +/* 01A8FC 80019CFC 00003025 */ move $a2, $zero +.L80019D00: +/* 01A900 80019D00 92CF0049 */ lbu $t7, 0x49($s6) +/* 01A904 80019D04 8ECE0004 */ lw $t6, 4($s6) +/* 01A908 80019D08 000FC880 */ sll $t9, $t7, 2 +/* 01A90C 80019D0C 01D91021 */ addu $v0, $t6, $t9 +/* 01A910 80019D10 8C430000 */ lw $v1, ($v0) +/* 01A914 80019D14 00000000 */ nop +/* 01A918 80019D18 30780002 */ andi $t8, $v1, 2 +/* 01A91C 80019D1C 1700000A */ bnez $t8, .L80019D48 +/* 01A920 80019D20 346F0002 */ ori $t7, $v1, 2 +/* 01A924 80019D24 AC4F0000 */ sw $t7, ($v0) +/* 01A928 80019D28 92D00016 */ lbu $s0, 0x16($s6) +/* 01A92C 80019D2C 00000000 */ nop +/* 01A930 80019D30 26100001 */ addiu $s0, $s0, 1 +/* 01A934 80019D34 2A010005 */ slti $at, $s0, 5 +/* 01A938 80019D38 14200002 */ bnez $at, .L80019D44 +/* 01A93C 80019D3C 00000000 */ nop +/* 01A940 80019D40 24100004 */ li $s0, 4 +.L80019D44: +/* 01A944 80019D44 A2D00016 */ sb $s0, 0x16($s6) +.L80019D48: +/* 01A948 80019D48 00003025 */ move $a2, $zero +.L80019D4C: +/* 01A94C 80019D4C 02C01025 */ move $v0, $s6 +.L80019D50: +/* 01A950 80019D50 24C60001 */ addiu $a2, $a2, 1 +/* 01A954 80019D54 28C10008 */ slti $at, $a2, 8 +/* 01A958 80019D58 A055005A */ sb $s5, 0x5a($v0) +/* 01A95C 80019D5C 1420FFFC */ bnez $at, .L80019D50 +/* 01A960 80019D60 24420018 */ addiu $v0, $v0, 0x18 +/* 01A964 80019D64 8E4E0000 */ lw $t6, ($s2) +/* 01A968 80019D68 2405003E */ li $a1, 62 +/* 01A96C 80019D6C 19C00017 */ blez $t6, .L80019DCC +/* 01A970 80019D70 00003025 */ move $a2, $zero +/* 01A974 80019D74 02C01025 */ move $v0, $s6 +/* 01A978 80019D78 27A4006C */ addiu $a0, $sp, 0x6c +.L80019D7C: +/* 01A97C 80019D7C 8C830000 */ lw $v1, ($a0) +/* 01A980 80019D80 00000000 */ nop +/* 01A984 80019D84 84790000 */ lh $t9, ($v1) +/* 01A988 80019D88 00000000 */ nop +/* 01A98C 80019D8C 12B90006 */ beq $s5, $t9, .L80019DA8 +/* 01A990 80019D90 00000000 */ nop +/* 01A994 80019D94 847801AC */ lh $t8, 0x1ac($v1) +/* 01A998 80019D98 00000000 */ nop +/* 01A99C 80019D9C 16980002 */ bne $s4, $t8, .L80019DA8 +/* 01A9A0 80019DA0 00000000 */ nop +/* 01A9A4 80019DA4 2405003D */ li $a1, 61 +.L80019DA8: +/* 01A9A8 80019DA8 846F01AC */ lh $t7, 0x1ac($v1) +/* 01A9AC 80019DAC 24C60001 */ addiu $a2, $a2, 1 +/* 01A9B0 80019DB0 25EEFFFF */ addiu $t6, $t7, -1 +/* 01A9B4 80019DB4 A04E005A */ sb $t6, 0x5a($v0) +/* 01A9B8 80019DB8 8E590000 */ lw $t9, ($s2) +/* 01A9BC 80019DBC 24420018 */ addiu $v0, $v0, 0x18 +/* 01A9C0 80019DC0 00D9082A */ slt $at, $a2, $t9 +/* 01A9C4 80019DC4 1420FFED */ bnez $at, .L80019D7C +/* 01A9C8 80019DC8 24840004 */ addiu $a0, $a0, 4 +.L80019DCC: +/* 01A9CC 80019DCC 0C0002CD */ jal play_music +/* 01A9D0 80019DD0 30A400FF */ andi $a0, $a1, 0xff +/* 01A9D4 80019DD4 24050004 */ li $a1, 4 +/* 01A9D8 80019DD8 00001825 */ move $v1, $zero +/* 01A9DC 80019DDC 02C01025 */ move $v0, $s6 +/* 01A9E0 80019DE0 240400C0 */ li $a0, 192 +.L80019DE4: +/* 01A9E4 80019DE4 8058005A */ lb $t8, 0x5a($v0) +/* 01A9E8 80019DE8 24630018 */ addiu $v1, $v1, 0x18 +/* 01A9EC 80019DEC 16B80003 */ bne $s5, $t8, .L80019DFC +/* 01A9F0 80019DF0 00000000 */ nop +/* 01A9F4 80019DF4 A045005A */ sb $a1, 0x5a($v0) +/* 01A9F8 80019DF8 24A50001 */ addiu $a1, $a1, 1 +.L80019DFC: +/* 01A9FC 80019DFC 1464FFF9 */ bne $v1, $a0, .L80019DE4 +/* 01AA00 80019E00 24420018 */ addiu $v0, $v0, 0x18 +/* 01AA04 80019E04 0C027B20 */ jal is_in_two_player_adventure +/* 01AA08 80019E08 A2600000 */ sb $zero, ($s3) +/* 01AA0C 80019E0C 10400008 */ beqz $v0, .L80019E30 +/* 01AA10 80019E10 2404FFFF */ li $a0, -1 +/* 01AA14 80019E14 82CF0072 */ lb $t7, 0x72($s6) +/* 01AA18 80019E18 82CE005A */ lb $t6, 0x5a($s6) +/* 01AA1C 80019E1C 00000000 */ nop +/* 01AA20 80019E20 01EE082A */ slt $at, $t7, $t6 +/* 01AA24 80019E24 10200002 */ beqz $at, .L80019E30 +/* 01AA28 80019E28 00000000 */ nop +/* 01AA2C 80019E2C A2740000 */ sb $s4, ($s3) +.L80019E30: +/* 01AA30 80019E30 1600001C */ bnez $s0, .L80019EA4 +/* 01AA34 80019E34 00002825 */ move $a1, $zero +/* 01AA38 80019E38 0C027B20 */ jal is_in_two_player_adventure +/* 01AA3C 80019E3C 00000000 */ nop +/* 01AA40 80019E40 10400014 */ beqz $v0, .L80019E94 +/* 01AA44 80019E44 00002025 */ move $a0, $zero +/* 01AA48 80019E48 82790000 */ lb $t9, ($s3) +/* 01AA4C 80019E4C 3C0F800E */ lui $t7, %hi(D_800DC73C) # $t7, 0x800e +/* 01AA50 80019E50 1320000A */ beqz $t9, .L80019E7C +/* 01AA54 80019E54 00000000 */ nop +/* 01AA58 80019E58 0C01BCE6 */ jal func_8006F398 +/* 01AA5C 80019E5C A2600000 */ sb $zero, ($s3) +/* 01AA60 80019E60 3C18800E */ lui $t8, %hi(D_800DC73C) # $t8, 0x800e +/* 01AA64 80019E64 8318C73C */ lb $t8, %lo(D_800DC73C)($t8) +/* 01AA68 80019E68 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e +/* 01AA6C 80019E6C 13000009 */ beqz $t8, .L80019E94 +/* 01AA70 80019E70 00002025 */ move $a0, $zero +/* 01AA74 80019E74 10000006 */ b .L80019E90 +/* 01AA78 80019E78 A034C748 */ sb $s4, %lo(D_800DC748)($at) +.L80019E7C: +/* 01AA7C 80019E7C 81EFC73C */ lb $t7, %lo(D_800DC73C)($t7) +/* 01AA80 80019E80 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e +/* 01AA84 80019E84 11E00003 */ beqz $t7, .L80019E94 +/* 01AA88 80019E88 00002025 */ move $a0, $zero +/* 01AA8C 80019E8C A034C748 */ sb $s4, %lo(D_800DC748)($at) +.L80019E90: +/* 01AA90 80019E90 00002025 */ move $a0, $zero +.L80019E94: +/* 01AA94 80019E94 0C0251A2 */ jal func_80094688 +/* 01AA98 80019E98 2405001E */ li $a1, 30 +/* 01AA9C 80019E9C 1000000C */ b .L80019ED0 +/* 01AAA0 80019EA0 00000000 */ nop +.L80019EA4: +/* 01AAA4 80019EA4 00003025 */ move $a2, $zero +/* 01AAA8 80019EA8 0C01B06B */ jal func_8006C1AC +/* 01AAAC 80019EAC 00003825 */ move $a3, $zero +/* 01AAB0 80019EB0 92C70016 */ lbu $a3, 0x16($s6) +/* 01AAB4 80019EB4 2404002C */ li $a0, 44 +/* 01AAB8 80019EB8 00002825 */ move $a1, $zero +/* 01AABC 80019EBC 2406FFFF */ li $a2, -1 +/* 01AAC0 80019EC0 0C01B06B */ jal func_8006C1AC +/* 01AAC4 80019EC4 24E7FFFF */ addiu $a3, $a3, -1 +/* 01AAC8 80019EC8 0C006A35 */ jal func_8001A8D4 +/* 01AACC 80019ECC 02802025 */ move $a0, $s4 +.L80019ED0: +/* 01AAD0 80019ED0 3C018012 */ lui $at, %hi(D_8011ADB4) # $at, 0x8012 +/* 01AAD4 80019ED4 10000236 */ b .L8001A7B0 +/* 01AAD8 80019ED8 AC34ADB4 */ sw $s4, %lo(D_8011ADB4)($at) +.L80019EDC: +/* 01AADC 80019EDC 3C078012 */ lui $a3, %hi(gNumRacers) # $a3, 0x8012 +/* 01AAE0 80019EE0 3C128012 */ lui $s2, %hi(gNumRacers) # $s2, 0x8012 +/* 01AAE4 80019EE4 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01AAE8 80019EE8 8CE7AEF0 */ lw $a3, %lo(gNumRacers)($a3) +/* 01AAEC 80019EEC 00008025 */ move $s0, $zero +/* 01AAF0 80019EF0 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01AAF4 80019EF4 2652AEF0 */ addiu $s2, %lo(gNumRacers) # addiu $s2, $s2, -0x5110 +/* 01AAF8 80019EF8 00005025 */ move $t2, $zero +/* 01AAFC 80019EFC 240D000A */ li $t5, 10 +.L80019F00: +/* 01AB00 80019F00 8D690000 */ lw $t1, ($t3) +/* 01AB04 80019F04 24060001 */ li $a2, 1 +/* 01AB08 80019F08 012A7021 */ addu $t6, $t1, $t2 +/* 01AB0C 80019F0C 8DD90000 */ lw $t9, ($t6) +/* 01AB10 80019F10 00002825 */ move $a1, $zero +/* 01AB14 80019F14 8F280064 */ lw $t0, 0x64($t9) +/* 01AB18 80019F18 00000000 */ nop +/* 01AB1C 80019F1C 850C01AA */ lh $t4, 0x1aa($t0) +/* 01AB20 80019F20 00000000 */ nop +.L80019F24: +/* 01AB24 80019F24 10B00023 */ beq $a1, $s0, .L80019FB4 +/* 01AB28 80019F28 0005C080 */ sll $t8, $a1, 2 +/* 01AB2C 80019F2C 01387821 */ addu $t7, $t1, $t8 +/* 01AB30 80019F30 8DEE0000 */ lw $t6, ($t7) +/* 01AB34 80019F34 811901D8 */ lb $t9, 0x1d8($t0) +/* 01AB38 80019F38 8DC20064 */ lw $v0, 0x64($t6) +/* 01AB3C 80019F3C 17200007 */ bnez $t9, .L80019F5C +/* 01AB40 80019F40 00000000 */ nop +/* 01AB44 80019F44 805801D8 */ lb $t8, 0x1d8($v0) +/* 01AB48 80019F48 00000000 */ nop +/* 01AB4C 80019F4C 13000003 */ beqz $t8, .L80019F5C +/* 01AB50 80019F50 00000000 */ nop +/* 01AB54 80019F54 10000017 */ b .L80019FB4 +/* 01AB58 80019F58 24C60001 */ addiu $a2, $a2, 1 +.L80019F5C: +/* 01AB5C 80019F5C 85030190 */ lh $v1, 0x190($t0) +/* 01AB60 80019F60 84440190 */ lh $a0, 0x190($v0) +/* 01AB64 80019F64 00000000 */ nop +/* 01AB68 80019F68 0064082A */ slt $at, $v1, $a0 +/* 01AB6C 80019F6C 10200003 */ beqz $at, .L80019F7C +/* 01AB70 80019F70 00000000 */ nop +/* 01AB74 80019F74 1000000F */ b .L80019FB4 +/* 01AB78 80019F78 24C60001 */ addiu $a2, $a2, 1 +.L80019F7C: +/* 01AB7C 80019F7C 1483000D */ bne $a0, $v1, .L80019FB4 +/* 01AB80 80019F80 00000000 */ nop +/* 01AB84 80019F84 844301A8 */ lh $v1, 0x1a8($v0) +/* 01AB88 80019F88 850401A8 */ lh $a0, 0x1a8($t0) +/* 01AB8C 80019F8C 00000000 */ nop +/* 01AB90 80019F90 0064082A */ slt $at, $v1, $a0 +/* 01AB94 80019F94 10200002 */ beqz $at, .L80019FA0 +/* 01AB98 80019F98 00000000 */ nop +/* 01AB9C 80019F9C 24C60001 */ addiu $a2, $a2, 1 +.L80019FA0: +/* 01ABA0 80019FA0 14640004 */ bne $v1, $a0, .L80019FB4 +/* 01ABA4 80019FA4 0205082A */ slt $at, $s0, $a1 +/* 01ABA8 80019FA8 10200002 */ beqz $at, .L80019FB4 +/* 01ABAC 80019FAC 00000000 */ nop +/* 01ABB0 80019FB0 24C60001 */ addiu $a2, $a2, 1 +.L80019FB4: +/* 01ABB4 80019FB4 24A50001 */ addiu $a1, $a1, 1 +/* 01ABB8 80019FB8 00A7082A */ slt $at, $a1, $a3 +/* 01ABBC 80019FBC 1420FFD9 */ bnez $at, .L80019F24 +/* 01ABC0 80019FC0 00000000 */ nop +/* 01ABC4 80019FC4 A50601AA */ sh $a2, 0x1aa($t0) +/* 01ABC8 80019FC8 83EE004B */ lb $t6, 0x4b($ra) +/* 01ABCC 80019FCC 810F0193 */ lb $t7, 0x193($t0) +/* 01ABD0 80019FD0 00000000 */ nop +/* 01ABD4 80019FD4 01EE082A */ slt $at, $t7, $t6 +/* 01ABD8 80019FD8 10200018 */ beqz $at, .L8001A03C +/* 01ABDC 80019FDC 00000000 */ nop +/* 01ABE0 80019FE0 850201AA */ lh $v0, 0x1aa($t0) +/* 01ABE4 80019FE4 00000000 */ nop +/* 01ABE8 80019FE8 15820013 */ bne $t4, $v0, .L8001A038 +/* 01ABEC 80019FEC 00000000 */ nop +/* 01ABF0 80019FF0 850301B0 */ lh $v1, 0x1b0($t0) +/* 01ABF4 80019FF4 00000000 */ nop +/* 01ABF8 80019FF8 28610002 */ slti $at, $v1, 2 +/* 01ABFC 80019FFC 10200007 */ beqz $at, .L8001A01C +/* 01AC00 8001A000 00000000 */ nop +/* 01AC04 8001A004 811901D6 */ lb $t9, 0x1d6($t0) +/* 01AC08 8001A008 24010004 */ li $at, 4 +/* 01AC0C 8001A00C 1321000B */ beq $t9, $at, .L8001A03C +/* 01AC10 8001A010 24780001 */ addiu $t8, $v1, 1 +/* 01AC14 8001A014 10000009 */ b .L8001A03C +/* 01AC18 8001A018 A51801B0 */ sh $t8, 0x1b0($t0) +.L8001A01C: +/* 01AC1C 8001A01C 850F01AE */ lh $t7, 0x1ae($t0) +/* 01AC20 8001A020 00000000 */ nop +/* 01AC24 8001A024 11E20005 */ beq $t7, $v0, .L8001A03C +/* 01AC28 8001A028 00000000 */ nop +/* 01AC2C 8001A02C A50D01B2 */ sh $t5, 0x1b2($t0) +/* 01AC30 8001A030 10000002 */ b .L8001A03C +/* 01AC34 8001A034 A50201AE */ sh $v0, 0x1ae($t0) +.L8001A038: +/* 01AC38 8001A038 A50001B0 */ sh $zero, 0x1b0($t0) +.L8001A03C: +/* 01AC3C 8001A03C 8E470000 */ lw $a3, ($s2) +/* 01AC40 8001A040 26100001 */ addiu $s0, $s0, 1 +/* 01AC44 8001A044 0207082A */ slt $at, $s0, $a3 +/* 01AC48 8001A048 1420FFAD */ bnez $at, .L80019F00 +/* 01AC4C 8001A04C 254A0004 */ addiu $t2, $t2, 4 +/* 01AC50 8001A050 3C118012 */ lui $s1, %hi(D_8011ADC0) # $s1, 0x8012 +/* 01AC54 8001A054 2631ADC0 */ addiu $s1, %lo(D_8011ADC0) # addiu $s1, $s1, -0x5240 +/* 01AC58 8001A058 00005025 */ move $t2, $zero +/* 01AC5C 8001A05C 2415FFFF */ li $s5, -1 +/* 01AC60 8001A060 24140001 */ li $s4, 1 +.L8001A064: +/* 01AC64 8001A064 8D6E0000 */ lw $t6, ($t3) +/* 01AC68 8001A068 00000000 */ nop +/* 01AC6C 8001A06C 01CAC821 */ addu $t9, $t6, $t2 +/* 01AC70 8001A070 8F380000 */ lw $t8, ($t9) +/* 01AC74 8001A074 83EE004B */ lb $t6, 0x4b($ra) +/* 01AC78 8001A078 8F080064 */ lw $t0, 0x64($t8) +/* 01AC7C 8001A07C 00000000 */ nop +/* 01AC80 8001A080 810F0193 */ lb $t7, 0x193($t0) +/* 01AC84 8001A084 00000000 */ nop +/* 01AC88 8001A088 01EE082A */ slt $at, $t7, $t6 +/* 01AC8C 8001A08C 14200028 */ bnez $at, .L8001A130 +/* 01AC90 8001A090 00000000 */ nop +/* 01AC94 8001A094 811901D8 */ lb $t9, 0x1d8($t0) +/* 01AC98 8001A098 00000000 */ nop +/* 01AC9C 8001A09C 17200024 */ bnez $t9, .L8001A130 +/* 01ACA0 8001A0A0 00000000 */ nop +/* 01ACA4 8001A0A4 AFBF0064 */ sw $ra, 0x64($sp) +/* 01ACA8 8001A0A8 AFA80080 */ sw $t0, 0x80($sp) +/* 01ACAC 8001A0AC 0C01B683 */ jal get_render_context +/* 01ACB0 8001A0B0 AFAA0044 */ sw $t2, 0x44($sp) +/* 01ACB4 8001A0B4 8FA80080 */ lw $t0, 0x80($sp) +/* 01ACB8 8001A0B8 8FAA0044 */ lw $t2, 0x44($sp) +/* 01ACBC 8001A0BC 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01ACC0 8001A0C0 8FBF0064 */ lw $ra, 0x64($sp) +/* 01ACC4 8001A0C4 24010004 */ li $at, 4 +/* 01ACC8 8001A0C8 10410019 */ beq $v0, $at, .L8001A130 +/* 01ACCC 8001A0CC 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01ACD0 8001A0D0 A11401D8 */ sb $s4, 0x1d8($t0) +/* 01ACD4 8001A0D4 8E380000 */ lw $t8, ($s1) +/* 01ACD8 8001A0D8 00000000 */ nop +/* 01ACDC 8001A0DC A51801AC */ sh $t8, 0x1ac($t0) +/* 01ACE0 8001A0E0 8E220000 */ lw $v0, ($s1) +/* 01ACE4 8001A0E4 00000000 */ nop +/* 01ACE8 8001A0E8 16820010 */ bne $s4, $v0, .L8001A12C +/* 01ACEC 8001A0EC 244E0001 */ addiu $t6, $v0, 1 +/* 01ACF0 8001A0F0 850F0000 */ lh $t7, ($t0) +/* 01ACF4 8001A0F4 2404023C */ li $a0, 572 +/* 01ACF8 8001A0F8 16AF000B */ bne $s5, $t7, .L8001A128 +/* 01ACFC 8001A0FC 00002825 */ move $a1, $zero +/* 01AD00 8001A100 AFBF0064 */ sw $ra, 0x64($sp) +/* 01AD04 8001A104 AFA80080 */ sw $t0, 0x80($sp) +/* 01AD08 8001A108 0C000741 */ jal play_sound_global +/* 01AD0C 8001A10C AFAA0044 */ sw $t2, 0x44($sp) +/* 01AD10 8001A110 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01AD14 8001A114 8FA80080 */ lw $t0, 0x80($sp) +/* 01AD18 8001A118 8FAA0044 */ lw $t2, 0x44($sp) +/* 01AD1C 8001A11C 8FBF0064 */ lw $ra, 0x64($sp) +/* 01AD20 8001A120 8E220000 */ lw $v0, ($s1) +/* 01AD24 8001A124 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +.L8001A128: +/* 01AD28 8001A128 244E0001 */ addiu $t6, $v0, 1 +.L8001A12C: +/* 01AD2C 8001A12C AE2E0000 */ sw $t6, ($s1) +.L8001A130: +/* 01AD30 8001A130 8E470000 */ lw $a3, ($s2) +/* 01AD34 8001A134 85190000 */ lh $t9, ($t0) +/* 01AD38 8001A138 810201D8 */ lb $v0, 0x1d8($t0) +/* 01AD3C 8001A13C 12B9000C */ beq $s5, $t9, .L8001A170 +/* 01AD40 8001A140 00071880 */ sll $v1, $a3, 2 +/* 01AD44 8001A144 87B8008A */ lh $t8, 0x8a($sp) +/* 01AD48 8001A148 87AE0088 */ lh $t6, 0x88($sp) +/* 01AD4C 8001A14C 270F0001 */ addiu $t7, $t8, 1 +/* 01AD50 8001A150 1040000C */ beqz $v0, .L8001A184 +/* 01AD54 8001A154 A7AF008A */ sh $t7, 0x8a($sp) +/* 01AD58 8001A158 26730001 */ addiu $s3, $s3, 1 +/* 01AD5C 8001A15C 0013C400 */ sll $t8, $s3, 0x10 +/* 01AD60 8001A160 25D90001 */ addiu $t9, $t6, 1 +/* 01AD64 8001A164 A7B90088 */ sh $t9, 0x88($sp) +/* 01AD68 8001A168 10000006 */ b .L8001A184 +/* 01AD6C 8001A16C 00189C03 */ sra $s3, $t8, 0x10 +.L8001A170: +/* 01AD70 8001A170 10400004 */ beqz $v0, .L8001A184 +/* 01AD74 8001A174 00000000 */ nop +/* 01AD78 8001A178 26730001 */ addiu $s3, $s3, 1 +/* 01AD7C 8001A17C 00137400 */ sll $t6, $s3, 0x10 +/* 01AD80 8001A180 000E9C03 */ sra $s3, $t6, 0x10 +.L8001A184: +/* 01AD84 8001A184 254A0004 */ addiu $t2, $t2, 4 +/* 01AD88 8001A188 0143082A */ slt $at, $t2, $v1 +/* 01AD8C 8001A18C 1420FFB5 */ bnez $at, .L8001A064 +/* 01AD90 8001A190 00000000 */ nop +/* 01AD94 8001A194 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 +/* 01AD98 8001A198 00008025 */ move $s0, $zero +/* 01AD9C 8001A19C 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 +/* 01ADA0 8001A1A0 00005025 */ move $t2, $zero +.L8001A1A4: +/* 01ADA4 8001A1A4 8D380000 */ lw $t8, ($t1) +/* 01ADA8 8001A1A8 26100001 */ addiu $s0, $s0, 1 +/* 01ADAC 8001A1AC 030A7821 */ addu $t7, $t8, $t2 +/* 01ADB0 8001A1B0 ADE00000 */ sw $zero, ($t7) +/* 01ADB4 8001A1B4 8E4E0000 */ lw $t6, ($s2) +/* 01ADB8 8001A1B8 254A0004 */ addiu $t2, $t2, 4 +/* 01ADBC 8001A1BC 020E082A */ slt $at, $s0, $t6 +/* 01ADC0 8001A1C0 1420FFF8 */ bnez $at, .L8001A1A4 +/* 01ADC4 8001A1C4 00000000 */ nop +/* 01ADC8 8001A1C8 00008025 */ move $s0, $zero +/* 01ADCC 8001A1CC 00005025 */ move $t2, $zero +.L8001A1D0: +/* 01ADD0 8001A1D0 8D790000 */ lw $t9, ($t3) +/* 01ADD4 8001A1D4 00000000 */ nop +/* 01ADD8 8001A1D8 032AC021 */ addu $t8, $t9, $t2 +/* 01ADDC 8001A1DC 8F020000 */ lw $v0, ($t8) +/* 01ADE0 8001A1E0 00000000 */ nop +/* 01ADE4 8001A1E4 8C480064 */ lw $t0, 0x64($v0) +/* 01ADE8 8001A1E8 00000000 */ nop +/* 01ADEC 8001A1EC 810F01D8 */ lb $t7, 0x1d8($t0) +/* 01ADF0 8001A1F0 00000000 */ nop +/* 01ADF4 8001A1F4 11E00004 */ beqz $t7, .L8001A208 +/* 01ADF8 8001A1F8 00000000 */ nop +/* 01ADFC 8001A1FC 850601AC */ lh $a2, 0x1ac($t0) +/* 01AE00 8001A200 10000004 */ b .L8001A214 +/* 01AE04 8001A204 24C6FFFF */ addiu $a2, $a2, -1 +.L8001A208: +/* 01AE08 8001A208 850601AA */ lh $a2, 0x1aa($t0) +/* 01AE0C 8001A20C 00000000 */ nop +/* 01AE10 8001A210 24C6FFFF */ addiu $a2, $a2, -1 +.L8001A214: +/* 01AE14 8001A214 8D2E0000 */ lw $t6, ($t1) +/* 01AE18 8001A218 0006C880 */ sll $t9, $a2, 2 +/* 01AE1C 8001A21C 01D9C021 */ addu $t8, $t6, $t9 +/* 01AE20 8001A220 AF020000 */ sw $v0, ($t8) +/* 01AE24 8001A224 8E470000 */ lw $a3, ($s2) +/* 01AE28 8001A228 26100001 */ addiu $s0, $s0, 1 +/* 01AE2C 8001A22C 0207082A */ slt $at, $s0, $a3 +/* 01AE30 8001A230 1420FFE7 */ bnez $at, .L8001A1D0 +/* 01AE34 8001A234 254A0004 */ addiu $t2, $t2, 4 +/* 01AE38 8001A238 00008025 */ move $s0, $zero +/* 01AE3C 8001A23C 00002825 */ move $a1, $zero +.L8001A240: +/* 01AE40 8001A240 18E00016 */ blez $a3, .L8001A29C +/* 01AE44 8001A244 00002025 */ move $a0, $zero +/* 01AE48 8001A248 8D6F0000 */ lw $t7, ($t3) +/* 01AE4C 8001A24C 00107080 */ sll $t6, $s0, 2 +/* 01AE50 8001A250 01EEC821 */ addu $t9, $t7, $t6 +/* 01AE54 8001A254 8F220000 */ lw $v0, ($t9) +/* 01AE58 8001A258 8D230000 */ lw $v1, ($t1) +/* 01AE5C 8001A25C 00000000 */ nop +/* 01AE60 8001A260 0005C080 */ sll $t8, $a1, 2 +.L8001A264: +/* 01AE64 8001A264 00787821 */ addu $t7, $v1, $t8 +/* 01AE68 8001A268 8DEE0000 */ lw $t6, ($t7) +/* 01AE6C 8001A26C 00000000 */ nop +/* 01AE70 8001A270 15C20006 */ bne $t6, $v0, .L8001A28C +/* 01AE74 8001A274 24A50001 */ addiu $a1, $a1, 1 +/* 01AE78 8001A278 00142600 */ sll $a0, $s4, 0x18 +/* 01AE7C 8001A27C 0004CE03 */ sra $t9, $a0, 0x18 +/* 01AE80 8001A280 03202025 */ move $a0, $t9 +/* 01AE84 8001A284 00E02825 */ move $a1, $a3 +/* 01AE88 8001A288 24A50001 */ addiu $a1, $a1, 1 +.L8001A28C: +/* 01AE8C 8001A28C 00A7082A */ slt $at, $a1, $a3 +/* 01AE90 8001A290 1420FFF4 */ bnez $at, .L8001A264 +/* 01AE94 8001A294 0005C080 */ sll $t8, $a1, 2 +/* 01AE98 8001A298 00002825 */ move $a1, $zero +.L8001A29C: +/* 01AE9C 8001A29C 14800018 */ bnez $a0, .L8001A300 +/* 01AEA0 8001A2A0 00000000 */ nop +/* 01AEA4 8001A2A4 18E00016 */ blez $a3, .L8001A300 +/* 01AEA8 8001A2A8 00000000 */ nop +.L8001A2AC: +/* 01AEAC 8001A2AC 8D380000 */ lw $t8, ($t1) +/* 01AEB0 8001A2B0 00057880 */ sll $t7, $a1, 2 +/* 01AEB4 8001A2B4 030F1021 */ addu $v0, $t8, $t7 +/* 01AEB8 8001A2B8 8C4E0000 */ lw $t6, ($v0) +/* 01AEBC 8001A2BC 00000000 */ nop +/* 01AEC0 8001A2C0 15C0000B */ bnez $t6, .L8001A2F0 +/* 01AEC4 8001A2C4 24A50001 */ addiu $a1, $a1, 1 +/* 01AEC8 8001A2C8 8D790000 */ lw $t9, ($t3) +/* 01AECC 8001A2CC 0010C080 */ sll $t8, $s0, 2 +/* 01AED0 8001A2D0 03387821 */ addu $t7, $t9, $t8 +/* 01AED4 8001A2D4 8DEE0000 */ lw $t6, ($t7) +/* 01AED8 8001A2D8 00000000 */ nop +/* 01AEDC 8001A2DC AC4E0000 */ sw $t6, ($v0) +/* 01AEE0 8001A2E0 8E470000 */ lw $a3, ($s2) +/* 01AEE4 8001A2E4 00000000 */ nop +/* 01AEE8 8001A2E8 00E02825 */ move $a1, $a3 +/* 01AEEC 8001A2EC 24A50001 */ addiu $a1, $a1, 1 +.L8001A2F0: +/* 01AEF0 8001A2F0 00A7082A */ slt $at, $a1, $a3 +/* 01AEF4 8001A2F4 1420FFED */ bnez $at, .L8001A2AC +/* 01AEF8 8001A2F8 00000000 */ nop +/* 01AEFC 8001A2FC 00002825 */ move $a1, $zero +.L8001A300: +/* 01AF00 8001A300 26100001 */ addiu $s0, $s0, 1 +/* 01AF04 8001A304 0207082A */ slt $at, $s0, $a3 +/* 01AF08 8001A308 1420FFCD */ bnez $at, .L8001A240 +/* 01AF0C 8001A30C 00000000 */ nop +/* 01AF10 8001A310 00008025 */ move $s0, $zero +.L8001A314: +/* 01AF14 8001A314 02002025 */ move $a0, $s0 +/* 01AF18 8001A318 0C01A955 */ jal get_buttons_pressed_from_player +/* 01AF1C 8001A31C AFA50094 */ sw $a1, 0x94($sp) +/* 01AF20 8001A320 8FA50094 */ lw $a1, 0x94($sp) +/* 01AF24 8001A324 26100001 */ addiu $s0, $s0, 1 +/* 01AF28 8001A328 2A010004 */ slti $at, $s0, 4 +/* 01AF2C 8001A32C 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 01AF30 8001A330 256BAEE4 */ addiu $t3, %lo(gRacers) # addiu $t3, $t3, -0x511c +/* 01AF34 8001A334 1420FFF7 */ bnez $at, .L8001A314 +/* 01AF38 8001A338 00A22825 */ or $a1, $a1, $v0 +/* 01AF3C 8001A33C 3C198012 */ lui $t9, %hi(D_8011AEF6) # $t9, 0x8012 +/* 01AF40 8001A340 8339AEF6 */ lb $t9, %lo(D_8011AEF6)($t9) +/* 01AF44 8001A344 87B80088 */ lh $t8, 0x88($sp) +/* 01AF48 8001A348 13200007 */ beqz $t9, .L8001A368 +/* 01AF4C 8001A34C 3C0F8012 */ lui $t7, %hi(D_8011AD3C) # $t7, 0x8012 +/* 01AF50 8001A350 13000005 */ beqz $t8, .L8001A368 +/* 01AF54 8001A354 00000000 */ nop +/* 01AF58 8001A358 0C008B86 */ jal func_80022E18 +/* 01AF5C 8001A35C 00002025 */ move $a0, $zero +/* 01AF60 8001A360 10000114 */ b .L8001A7B4 +/* 01AF64 8001A364 8FBF0034 */ lw $ra, 0x34($sp) +.L8001A368: +/* 01AF68 8001A368 81EFAD3C */ lb $t7, %lo(D_8011AD3C)($t7) +/* 01AF6C 8001A36C 3C188012 */ lui $t8, %hi(D_8011ADB4) # $t8, 0x8012 +/* 01AF70 8001A370 11E00016 */ beqz $t7, .L8001A3CC +/* 01AF74 8001A374 00000000 */ nop +/* 01AF78 8001A378 12600014 */ beqz $s3, .L8001A3CC +/* 01AF7C 8001A37C 00000000 */ nop +/* 01AF80 8001A380 8D6E0000 */ lw $t6, ($t3) +/* 01AF84 8001A384 00000000 */ nop +/* 01AF88 8001A388 8DD90000 */ lw $t9, ($t6) +/* 01AF8C 8001A38C 00000000 */ nop +/* 01AF90 8001A390 8F280064 */ lw $t0, 0x64($t9) +/* 01AF94 8001A394 00000000 */ nop +/* 01AF98 8001A398 811801D8 */ lb $t8, 0x1d8($t0) +/* 01AF9C 8001A39C 00000000 */ nop +/* 01AFA0 8001A3A0 17000104 */ bnez $t8, .L8001A7B4 +/* 01AFA4 8001A3A4 8FBF0034 */ lw $ra, 0x34($sp) +/* 01AFA8 8001A3A8 A11401D8 */ sb $s4, 0x1d8($t0) +/* 01AFAC 8001A3AC 8E2F0000 */ lw $t7, ($s1) +/* 01AFB0 8001A3B0 00000000 */ nop +/* 01AFB4 8001A3B4 A50F01AC */ sh $t7, 0x1ac($t0) +/* 01AFB8 8001A3B8 8E2E0000 */ lw $t6, ($s1) +/* 01AFBC 8001A3BC 00000000 */ nop +/* 01AFC0 8001A3C0 25D90001 */ addiu $t9, $t6, 1 +/* 01AFC4 8001A3C4 100000FA */ b .L8001A7B0 +/* 01AFC8 8001A3C8 AE390000 */ sw $t9, ($s1) +.L8001A3CC: +/* 01AFCC 8001A3CC 8F18ADB4 */ lw $t8, %lo(D_8011ADB4)($t8) +/* 01AFD0 8001A3D0 00000000 */ nop +/* 01AFD4 8001A3D4 170000F7 */ bnez $t8, .L8001A7B4 +/* 01AFD8 8001A3D8 8FBF0034 */ lw $ra, 0x34($sp) +/* 01AFDC 8001A3DC 0C027B20 */ jal is_in_two_player_adventure +/* 01AFE0 8001A3E0 A3A0005B */ sb $zero, 0x5b($sp) +/* 01AFE4 8001A3E4 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 +/* 01AFE8 8001A3E8 10400010 */ beqz $v0, .L8001A42C +/* 01AFEC 8001A3EC 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 +/* 01AFF0 8001A3F0 87AF0088 */ lh $t7, 0x88($sp) +/* 01AFF4 8001A3F4 00000000 */ nop +/* 01AFF8 8001A3F8 19E0000D */ blez $t7, .L8001A430 +/* 01AFFC 8001A3FC 87AE0088 */ lh $t6, 0x88($sp) +/* 01B000 8001A400 0C02658B */ jal get_trophy_race_world_id +/* 01B004 8001A404 00000000 */ nop +/* 01B008 8001A408 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 +/* 01B00C 8001A40C 14400007 */ bnez $v0, .L8001A42C +/* 01B010 8001A410 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 +/* 01B014 8001A414 0C0069F6 */ jal func_8001A7D8 +/* 01B018 8001A418 02C02025 */ move $a0, $s6 +/* 01B01C 8001A41C 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 +/* 01B020 8001A420 10400002 */ beqz $v0, .L8001A42C +/* 01B024 8001A424 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 +/* 01B028 8001A428 A3B4005B */ sb $s4, 0x5b($sp) +.L8001A42C: +/* 01B02C 8001A42C 87AE0088 */ lh $t6, 0x88($sp) +.L8001A430: +/* 01B030 8001A430 87B9008A */ lh $t9, 0x8a($sp) +/* 01B034 8001A434 00000000 */ nop +/* 01B038 8001A438 11D9000D */ beq $t6, $t9, .L8001A470 +/* 01B03C 8001A43C 2B210002 */ slti $at, $t9, 2 +/* 01B040 8001A440 14200008 */ bnez $at, .L8001A464 +/* 01B044 8001A444 83AE005B */ lb $t6, 0x5b($sp) +/* 01B048 8001A448 8E580000 */ lw $t8, ($s2) +/* 01B04C 8001A44C 00000000 */ nop +/* 01B050 8001A450 270FFFFF */ addiu $t7, $t8, -1 +/* 01B054 8001A454 026F082A */ slt $at, $s3, $t7 +/* 01B058 8001A458 10200006 */ beqz $at, .L8001A474 +/* 01B05C 8001A45C 87B90088 */ lh $t9, 0x88($sp) +/* 01B060 8001A460 83AE005B */ lb $t6, 0x5b($sp) +.L8001A464: +/* 01B064 8001A464 00000000 */ nop +/* 01B068 8001A468 11C000D2 */ beqz $t6, .L8001A7B4 +/* 01B06C 8001A46C 8FBF0034 */ lw $ra, 0x34($sp) +.L8001A470: +/* 01B070 8001A470 87B90088 */ lh $t9, 0x88($sp) +.L8001A474: +/* 01B074 8001A474 87B8008A */ lh $t8, 0x8a($sp) +/* 01B078 8001A478 00000000 */ nop +/* 01B07C 8001A47C 13380029 */ beq $t9, $t8, .L8001A524 +/* 01B080 8001A480 00008025 */ move $s0, $zero +/* 01B084 8001A484 00005025 */ move $t2, $zero +.L8001A488: +/* 01B088 8001A488 8D2F0000 */ lw $t7, ($t1) +/* 01B08C 8001A48C 00000000 */ nop +/* 01B090 8001A490 01EA7021 */ addu $t6, $t7, $t2 +/* 01B094 8001A494 8DD90000 */ lw $t9, ($t6) +/* 01B098 8001A498 00000000 */ nop +/* 01B09C 8001A49C 8F280064 */ lw $t0, 0x64($t9) +/* 01B0A0 8001A4A0 00000000 */ nop +/* 01B0A4 8001A4A4 811801D8 */ lb $t8, 0x1d8($t0) +/* 01B0A8 8001A4A8 00000000 */ nop +/* 01B0AC 8001A4AC 17000018 */ bnez $t8, .L8001A510 +/* 01B0B0 8001A4B0 00000000 */ nop +/* 01B0B4 8001A4B4 85040000 */ lh $a0, ($t0) +/* 01B0B8 8001A4B8 00000000 */ nop +/* 01B0BC 8001A4BC 0480000C */ bltz $a0, .L8001A4F0 +/* 01B0C0 8001A4C0 00000000 */ nop +/* 01B0C4 8001A4C4 AFA80080 */ sw $t0, 0x80($sp) +/* 01B0C8 8001A4C8 0C01997A */ jal set_active_camera +/* 01B0CC 8001A4CC AFAA0044 */ sw $t2, 0x44($sp) +/* 01B0D0 8001A4D0 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 01B0D4 8001A4D4 00000000 */ nop +/* 01B0D8 8001A4D8 8FA80080 */ lw $t0, 0x80($sp) +/* 01B0DC 8001A4DC 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 +/* 01B0E0 8001A4E0 8FAA0044 */ lw $t2, 0x44($sp) +/* 01B0E4 8001A4E4 240F0005 */ li $t7, 5 +/* 01B0E8 8001A4E8 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 +/* 01B0EC 8001A4EC A44F0036 */ sh $t7, 0x36($v0) +.L8001A4F0: +/* 01B0F0 8001A4F0 A11401D8 */ sb $s4, 0x1d8($t0) +/* 01B0F4 8001A4F4 8E2E0000 */ lw $t6, ($s1) +/* 01B0F8 8001A4F8 00000000 */ nop +/* 01B0FC 8001A4FC A50E01AC */ sh $t6, 0x1ac($t0) +/* 01B100 8001A500 8E390000 */ lw $t9, ($s1) +/* 01B104 8001A504 00000000 */ nop +/* 01B108 8001A508 27380001 */ addiu $t8, $t9, 1 +/* 01B10C 8001A50C AE380000 */ sw $t8, ($s1) +.L8001A510: +/* 01B110 8001A510 8E4F0000 */ lw $t7, ($s2) +/* 01B114 8001A514 26100001 */ addiu $s0, $s0, 1 +/* 01B118 8001A518 020F082A */ slt $at, $s0, $t7 +/* 01B11C 8001A51C 1420FFDA */ bnez $at, .L8001A488 +/* 01B120 8001A520 254A0004 */ addiu $t2, $t2, 4 +.L8001A524: +/* 01B124 8001A524 3C03A460 */ lui $v1, (0xA4600010 >> 16) # lui $v1, 0xa460 +/* 01B128 8001A528 34630010 */ ori $v1, (0xA4600010 & 0xFFFF) # ori $v1, $v1, 0x10 +/* 01B12C 8001A52C 8C620000 */ lw $v0, ($v1) +/* 01B130 8001A530 00002025 */ move $a0, $zero +/* 01B134 8001A534 304E0003 */ andi $t6, $v0, 3 +/* 01B138 8001A538 11C00006 */ beqz $t6, .L8001A554 +/* 01B13C 8001A53C 3C18B000 */ lui $t8, %hi(D_B0000574) # $t8, 0xb000 +.L8001A540: +/* 01B140 8001A540 8C620000 */ lw $v0, ($v1) +/* 01B144 8001A544 00000000 */ nop +/* 01B148 8001A548 30590003 */ andi $t9, $v0, 3 +/* 01B14C 8001A54C 1720FFFC */ bnez $t9, .L8001A540 +/* 01B150 8001A550 00000000 */ nop +.L8001A554: +/* 01B154 8001A554 8F0F0574 */ lw $t7, %lo(D_B0000574)($t8) +/* 01B158 8001A558 24016C07 */ li $at, 0x6C07 +/* 01B15C 8001A55C 31EEFFFF */ andi $t6, $t7, 0xffff +/* 01B160 8001A560 11C10004 */ beq $t6, $at, .L8001A574 +/* 01B164 8001A564 3C188012 */ lui $t8, %hi(D_8011AEF5) # $t8, 0x8012 +/* 01B168 8001A568 00142600 */ sll $a0, $s4, 0x18 +/* 01B16C 8001A56C 0004CE03 */ sra $t9, $a0, 0x18 +/* 01B170 8001A570 03202025 */ move $a0, $t9 +.L8001A574: +/* 01B174 8001A574 9318AEF5 */ lbu $t8, %lo(D_8011AEF5)($t8) +/* 01B178 8001A578 3C13800E */ lui $s3, %hi(D_800DC744) # $s3, 0x800e +/* 01B17C 8001A57C 17000016 */ bnez $t8, .L8001A5D8 +/* 01B180 8001A580 2673C744 */ addiu $s3, %lo(D_800DC744) # addiu $s3, $s3, -0x38bc +/* 01B184 8001A584 00008025 */ move $s0, $zero +/* 01B188 8001A588 00005025 */ move $t2, $zero +/* 01B18C 8001A58C 24020018 */ li $v0, 24 +.L8001A590: +/* 01B190 8001A590 8D2F0000 */ lw $t7, ($t1) +/* 01B194 8001A594 00000000 */ nop +/* 01B198 8001A598 01EA7021 */ addu $t6, $t7, $t2 +/* 01B19C 8001A59C 8DD90000 */ lw $t9, ($t6) +/* 01B1A0 8001A5A0 254A0004 */ addiu $t2, $t2, 4 +/* 01B1A4 8001A5A4 8F280064 */ lw $t0, 0x64($t9) +/* 01B1A8 8001A5A8 00000000 */ nop +/* 01B1AC 8001A5AC 81060002 */ lb $a2, 2($t0) +/* 01B1B0 8001A5B0 00000000 */ nop +/* 01B1B4 8001A5B4 00C20019 */ multu $a2, $v0 +/* 01B1B8 8001A5B8 0000C012 */ mflo $t8 +/* 01B1BC 8001A5BC 02D87821 */ addu $t7, $s6, $t8 +/* 01B1C0 8001A5C0 A1F0005A */ sb $s0, 0x5a($t7) +/* 01B1C4 8001A5C4 8E4E0000 */ lw $t6, ($s2) +/* 01B1C8 8001A5C8 26100001 */ addiu $s0, $s0, 1 +/* 01B1CC 8001A5CC 020E082A */ slt $at, $s0, $t6 +/* 01B1D0 8001A5D0 1420FFEF */ bnez $at, .L8001A590 +/* 01B1D4 8001A5D4 00000000 */ nop +.L8001A5D8: +/* 01B1D8 8001A5D8 A2600000 */ sb $zero, ($s3) +/* 01B1DC 8001A5DC 0C027B20 */ jal is_in_two_player_adventure +/* 01B1E0 8001A5E0 A3A4005A */ sb $a0, 0x5a($sp) +/* 01B1E4 8001A5E4 3C098012 */ lui $t1, %hi(gRacersByPosition) # $t1, 0x8012 +/* 01B1E8 8001A5E8 10400008 */ beqz $v0, .L8001A60C +/* 01B1EC 8001A5EC 2529AEE8 */ addiu $t1, %lo(gRacersByPosition) # addiu $t1, $t1, -0x5118 +/* 01B1F0 8001A5F0 82D90072 */ lb $t9, 0x72($s6) +/* 01B1F4 8001A5F4 82D8005A */ lb $t8, 0x5a($s6) +/* 01B1F8 8001A5F8 00000000 */ nop +/* 01B1FC 8001A5FC 0338082A */ slt $at, $t9, $t8 +/* 01B200 8001A600 10200002 */ beqz $at, .L8001A60C +/* 01B204 8001A604 00000000 */ nop +/* 01B208 8001A608 A2740000 */ sb $s4, ($s3) +.L8001A60C: +/* 01B20C 8001A60C 8D2F0000 */ lw $t7, ($t1) +/* 01B210 8001A610 3C118012 */ lui $s1, %hi(D_8011ADC4) # $s1, 0x8012 +/* 01B214 8001A614 8DEE0000 */ lw $t6, ($t7) +/* 01B218 8001A618 2631ADC4 */ addiu $s1, %lo(D_8011ADC4) # addiu $s1, $s1, -0x523c +/* 01B21C 8001A61C 8DC80064 */ lw $t0, 0x64($t6) +/* 01B220 8001A620 A2200000 */ sb $zero, ($s1) +/* 01B224 8001A624 92D9004A */ lbu $t9, 0x4a($s6) +/* 01B228 8001A628 00000000 */ nop +/* 01B22C 8001A62C 12990006 */ beq $s4, $t9, .L8001A648 +/* 01B230 8001A630 00000000 */ nop +/* 01B234 8001A634 0C027B20 */ jal is_in_two_player_adventure +/* 01B238 8001A638 AFA80080 */ sw $t0, 0x80($sp) +/* 01B23C 8001A63C 8FA80080 */ lw $t0, 0x80($sp) +/* 01B240 8001A640 1040000E */ beqz $v0, .L8001A67C +/* 01B244 8001A644 00000000 */ nop +.L8001A648: +/* 01B248 8001A648 85180000 */ lh $t8, ($t0) +/* 01B24C 8001A64C 00000000 */ nop +/* 01B250 8001A650 12B8000A */ beq $s5, $t8, .L8001A67C +/* 01B254 8001A654 00000000 */ nop +/* 01B258 8001A658 0C0270B4 */ jal is_in_tracks_mode +/* 01B25C 8001A65C 00000000 */ nop +/* 01B260 8001A660 14400006 */ bnez $v0, .L8001A67C +/* 01B264 8001A664 00000000 */ nop +/* 01B268 8001A668 0C02658B */ jal get_trophy_race_world_id +/* 01B26C 8001A66C 00000000 */ nop +/* 01B270 8001A670 14400002 */ bnez $v0, .L8001A67C +/* 01B274 8001A674 00000000 */ nop +/* 01B278 8001A678 A2340000 */ sb $s4, ($s1) +.L8001A67C: +/* 01B27C 8001A67C 822F0000 */ lb $t7, ($s1) +/* 01B280 8001A680 83AE005B */ lb $t6, 0x5b($sp) +/* 01B284 8001A684 11E00006 */ beqz $t7, .L8001A6A0 +/* 01B288 8001A688 00008025 */ move $s0, $zero +/* 01B28C 8001A68C 15C00005 */ bnez $t6, .L8001A6A4 +/* 01B290 8001A690 83B9005B */ lb $t9, 0x5b($sp) +/* 01B294 8001A694 0C0069F6 */ jal func_8001A7D8 +/* 01B298 8001A698 02C02025 */ move $a0, $s6 +/* 01B29C 8001A69C 00408025 */ move $s0, $v0 +.L8001A6A0: +/* 01B2A0 8001A6A0 83B9005B */ lb $t9, 0x5b($sp) +.L8001A6A4: +/* 01B2A4 8001A6A4 00000000 */ nop +/* 01B2A8 8001A6A8 13200004 */ beqz $t9, .L8001A6BC +/* 01B2AC 8001A6AC 83B8005A */ lb $t8, 0x5a($sp) +/* 01B2B0 8001A6B0 A2340000 */ sb $s4, ($s1) +/* 01B2B4 8001A6B4 02808025 */ move $s0, $s4 +/* 01B2B8 8001A6B8 83B8005A */ lb $t8, 0x5a($sp) +.L8001A6BC: +/* 01B2BC 8001A6BC 00000000 */ nop +/* 01B2C0 8001A6C0 13000003 */ beqz $t8, .L8001A6D0 +/* 01B2C4 8001A6C4 00000000 */ nop +/* 01B2C8 8001A6C8 00008025 */ move $s0, $zero +/* 01B2CC 8001A6CC A2200000 */ sb $zero, ($s1) +.L8001A6D0: +/* 01B2D0 8001A6D0 1600001C */ bnez $s0, .L8001A744 +/* 01B2D4 8001A6D4 00000000 */ nop +/* 01B2D8 8001A6D8 0C027B20 */ jal is_in_two_player_adventure +/* 01B2DC 8001A6DC 00000000 */ nop +/* 01B2E0 8001A6E0 10400013 */ beqz $v0, .L8001A730 +/* 01B2E4 8001A6E4 00000000 */ nop +/* 01B2E8 8001A6E8 826F0000 */ lb $t7, ($s3) +/* 01B2EC 8001A6EC 3C19800E */ lui $t9, %hi(D_800DC73C) # $t9, 0x800e +/* 01B2F0 8001A6F0 11E0000A */ beqz $t7, .L8001A71C +/* 01B2F4 8001A6F4 00000000 */ nop +/* 01B2F8 8001A6F8 0C01BCE6 */ jal func_8006F398 +/* 01B2FC 8001A6FC A2600000 */ sb $zero, ($s3) +/* 01B300 8001A700 3C0E800E */ lui $t6, %hi(D_800DC73C) # $t6, 0x800e +/* 01B304 8001A704 81CEC73C */ lb $t6, %lo(D_800DC73C)($t6) +/* 01B308 8001A708 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e +/* 01B30C 8001A70C 11C00008 */ beqz $t6, .L8001A730 +/* 01B310 8001A710 00000000 */ nop +/* 01B314 8001A714 10000006 */ b .L8001A730 +/* 01B318 8001A718 A034C748 */ sb $s4, %lo(D_800DC748)($at) +.L8001A71C: +/* 01B31C 8001A71C 8339C73C */ lb $t9, %lo(D_800DC73C)($t9) +/* 01B320 8001A720 3C01800E */ lui $at, %hi(D_800DC748) # $at, 0x800e +/* 01B324 8001A724 13200002 */ beqz $t9, .L8001A730 +/* 01B328 8001A728 00000000 */ nop +/* 01B32C 8001A72C A034C748 */ sb $s4, %lo(D_800DC748)($at) +.L8001A730: +/* 01B330 8001A730 82240000 */ lb $a0, ($s1) +/* 01B334 8001A734 0C0251A2 */ jal func_80094688 +/* 01B338 8001A738 2405001E */ li $a1, 30 +/* 01B33C 8001A73C 10000015 */ b .L8001A794 +/* 01B340 8001A740 00000000 */ nop +.L8001A744: +/* 01B344 8001A744 92CF0048 */ lbu $t7, 0x48($s6) +/* 01B348 8001A748 8ED80000 */ lw $t8, ($s6) +/* 01B34C 8001A74C 000F7040 */ sll $t6, $t7, 1 +/* 01B350 8001A750 030E1021 */ addu $v0, $t8, $t6 +/* 01B354 8001A754 84590000 */ lh $t9, ($v0) +/* 01B358 8001A758 00000000 */ nop +/* 01B35C 8001A75C 272F0001 */ addiu $t7, $t9, 1 +/* 01B360 8001A760 A44F0000 */ sh $t7, ($v0) +/* 01B364 8001A764 92D80048 */ lbu $t8, 0x48($s6) +/* 01B368 8001A768 00000000 */ nop +/* 01B36C 8001A76C 13000007 */ beqz $t8, .L8001A78C +/* 01B370 8001A770 00000000 */ nop +/* 01B374 8001A774 8EC20000 */ lw $v0, ($s6) +/* 01B378 8001A778 00000000 */ nop +/* 01B37C 8001A77C 844E0000 */ lh $t6, ($v0) +/* 01B380 8001A780 00000000 */ nop +/* 01B384 8001A784 25D90001 */ addiu $t9, $t6, 1 +/* 01B388 8001A788 A4590000 */ sh $t9, ($v0) +.L8001A78C: +/* 01B38C 8001A78C 0C006A35 */ jal func_8001A8D4 +/* 01B390 8001A790 02802025 */ move $a0, $s4 +.L8001A794: +/* 01B394 8001A794 3C018012 */ lui $at, %hi(D_8011ADB4) # $at, 0x8012 +/* 01B398 8001A798 0C0270F2 */ jal get_number_of_active_players +/* 01B39C 8001A79C AC35ADB4 */ sw $s5, %lo(D_8011ADB4)($at) +/* 01B3A0 8001A7A0 14540004 */ bne $v0, $s4, .L8001A7B4 +/* 01B3A4 8001A7A4 8FBF0034 */ lw $ra, 0x34($sp) +/* 01B3A8 8001A7A8 0C006B99 */ jal func_8001AE64 +/* 01B3AC 8001A7AC 00000000 */ nop +.L8001A7B0: +/* 01B3B0 8001A7B0 8FBF0034 */ lw $ra, 0x34($sp) +.L8001A7B4: +/* 01B3B4 8001A7B4 8FB00018 */ lw $s0, 0x18($sp) +/* 01B3B8 8001A7B8 8FB1001C */ lw $s1, 0x1c($sp) +/* 01B3BC 8001A7BC 8FB20020 */ lw $s2, 0x20($sp) +/* 01B3C0 8001A7C0 8FB30024 */ lw $s3, 0x24($sp) +/* 01B3C4 8001A7C4 8FB40028 */ lw $s4, 0x28($sp) +/* 01B3C8 8001A7C8 8FB5002C */ lw $s5, 0x2c($sp) +/* 01B3CC 8001A7CC 8FB60030 */ lw $s6, 0x30($sp) +/* 01B3D0 8001A7D0 03E00008 */ jr $ra +/* 01B3D4 8001A7D4 27BD00A0 */ addiu $sp, $sp, 0xa0 + diff --git a/asm/non_matchings/objects/func_8001A8F4.s b/asm/non_matchings/objects/func_8001A8F4.s index 33225fdf..bb190e57 100644 --- a/asm/non_matchings/objects/func_8001A8F4.s +++ b/asm/non_matchings/objects/func_8001A8F4.s @@ -1,367 +1,367 @@ -glabel func_8001A8F4 -/* 01B4F4 8001A8F4 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 01B4F8 8001A8F8 AFBF001C */ sw $ra, 0x1c($sp) -/* 01B4FC 8001A8FC AFA40040 */ sw $a0, 0x40($sp) -/* 01B500 8001A900 AFB10018 */ sw $s1, 0x18($sp) -/* 01B504 8001A904 AFB00014 */ sw $s0, 0x14($sp) -/* 01B508 8001A908 0C01BCE2 */ jal func_8006F388 -/* 01B50C 8001A90C 24040001 */ li $a0, 1 -/* 01B510 8001A910 3C108012 */ lui $s0, %hi(D_8011AD4E) # $s0, 0x8012 -/* 01B514 8001A914 2610AD4E */ addiu $s0, %lo(D_8011AD4E) # addiu $s0, $s0, -0x52b2 -/* 01B518 8001A918 86030000 */ lh $v1, ($s0) -/* 01B51C 8001A91C 8FAE0040 */ lw $t6, 0x40($sp) -/* 01B520 8001A920 2419FFFF */ li $t9, -1 -/* 01B524 8001A924 006E7823 */ subu $t7, $v1, $t6 -/* 01B528 8001A928 A60F0000 */ sh $t7, ($s0) -/* 01B52C 8001A92C 86180000 */ lh $t8, ($s0) -/* 01B530 8001A930 28610033 */ slti $at, $v1, 0x33 -/* 01B534 8001A934 1F000002 */ bgtz $t8, .L8001A940 -/* 01B538 8001A938 00000000 */ nop -/* 01B53C 8001A93C A6190000 */ sh $t9, ($s0) -.L8001A940: -/* 01B540 8001A940 14200008 */ bnez $at, .L8001A964 -/* 01B544 8001A944 00000000 */ nop -/* 01B548 8001A948 86090000 */ lh $t1, ($s0) -/* 01B54C 8001A94C 3C04800E */ lui $a0, %hi(D_800DC858) # $a0, 0x800e -/* 01B550 8001A950 29210033 */ slti $at, $t1, 0x33 -/* 01B554 8001A954 10200003 */ beqz $at, .L8001A964 -/* 01B558 8001A958 00000000 */ nop -/* 01B55C 8001A95C 0C030076 */ jal func_800C01D8 -/* 01B560 8001A960 2484C858 */ addiu $a0, %lo(D_800DC858) # addiu $a0, $a0, -0x37a8 -.L8001A964: -/* 01B564 8001A964 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 -/* 01B568 8001A968 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) -/* 01B56C 8001A96C AFA00030 */ sw $zero, 0x30($sp) -/* 01B570 8001A970 14400071 */ bnez $v0, .L8001AB38 -/* 01B574 8001A974 00000000 */ nop -/* 01B578 8001A978 860A0000 */ lh $t2, ($s0) -/* 01B57C 8001A97C 2401FFFF */ li $at, -1 -/* 01B580 8001A980 1541006D */ bne $t2, $at, .L8001AB38 -/* 01B584 8001A984 3C118012 */ lui $s1, %hi(gNumRacers) # $s1, 0x8012 -/* 01B588 8001A988 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 -/* 01B58C 8001A98C 8E2B0000 */ lw $t3, ($s1) -/* 01B590 8001A990 00008025 */ move $s0, $zero -/* 01B594 8001A994 19600029 */ blez $t3, .L8001AA3C -/* 01B598 8001A998 00001825 */ move $v1, $zero -.L8001A99C: -/* 01B59C 8001A99C 3C0C8012 */ lui $t4, %hi(gRacers) # $t4, 0x8012 -/* 01B5A0 8001A9A0 8D8CAEE4 */ lw $t4, %lo(gRacers)($t4) -/* 01B5A4 8001A9A4 2401FFFF */ li $at, -1 -/* 01B5A8 8001A9A8 01836821 */ addu $t5, $t4, $v1 -/* 01B5AC 8001A9AC 8DAE0000 */ lw $t6, ($t5) -/* 01B5B0 8001A9B0 00000000 */ nop -/* 01B5B4 8001A9B4 8DC50064 */ lw $a1, 0x64($t6) -/* 01B5B8 8001A9B8 00000000 */ nop -/* 01B5BC 8001A9BC 84AF0000 */ lh $t7, ($a1) -/* 01B5C0 8001A9C0 ACA00140 */ sw $zero, 0x140($a1) -/* 01B5C4 8001A9C4 11E10006 */ beq $t7, $at, .L8001A9E0 -/* 01B5C8 8001A9C8 00000000 */ nop -/* 01B5CC 8001A9CC 84B801AC */ lh $t8, 0x1ac($a1) -/* 01B5D0 8001A9D0 24010001 */ li $at, 1 -/* 01B5D4 8001A9D4 17010002 */ bne $t8, $at, .L8001A9E0 -/* 01B5D8 8001A9D8 00000000 */ nop -/* 01B5DC 8001A9DC AFB00030 */ sw $s0, 0x30($sp) -.L8001A9E0: -/* 01B5E0 8001A9E0 8CA40178 */ lw $a0, 0x178($a1) -/* 01B5E4 8001A9E4 00000000 */ nop -/* 01B5E8 8001A9E8 10800007 */ beqz $a0, .L8001AA08 -/* 01B5EC 8001A9EC 00000000 */ nop -/* 01B5F0 8001A9F0 AFA30020 */ sw $v1, 0x20($sp) -/* 01B5F4 8001A9F4 0C001223 */ jal func_8000488C -/* 01B5F8 8001A9F8 AFA50038 */ sw $a1, 0x38($sp) -/* 01B5FC 8001A9FC 8FA30020 */ lw $v1, 0x20($sp) -/* 01B600 8001AA00 8FA50038 */ lw $a1, 0x38($sp) -/* 01B604 8001AA04 00000000 */ nop -.L8001AA08: -/* 01B608 8001AA08 8CA4017C */ lw $a0, 0x17c($a1) -/* 01B60C 8001AA0C 00000000 */ nop -/* 01B610 8001AA10 10800005 */ beqz $a0, .L8001AA28 -/* 01B614 8001AA14 00000000 */ nop -/* 01B618 8001AA18 0C0025BE */ jal func_800096F8 -/* 01B61C 8001AA1C AFA30020 */ sw $v1, 0x20($sp) -/* 01B620 8001AA20 8FA30020 */ lw $v1, 0x20($sp) -/* 01B624 8001AA24 00000000 */ nop -.L8001AA28: -/* 01B628 8001AA28 8E390000 */ lw $t9, ($s1) -/* 01B62C 8001AA2C 26100001 */ addiu $s0, $s0, 1 -/* 01B630 8001AA30 0219082A */ slt $at, $s0, $t9 -/* 01B634 8001AA34 1420FFD9 */ bnez $at, .L8001A99C -/* 01B638 8001AA38 24630004 */ addiu $v1, $v1, 4 -.L8001AA3C: -/* 01B63C 8001AA3C 8FA30030 */ lw $v1, 0x30($sp) -/* 01B640 8001AA40 3C028012 */ lui $v0, %hi(gRacers) # $v0, 0x8012 -/* 01B644 8001AA44 8C42AEE4 */ lw $v0, %lo(gRacers)($v0) -/* 01B648 8001AA48 00034880 */ sll $t1, $v1, 2 -/* 01B64C 8001AA4C 00495021 */ addu $t2, $v0, $t1 -/* 01B650 8001AA50 8D4B0000 */ lw $t3, ($t2) -/* 01B654 8001AA54 8C460000 */ lw $a2, ($v0) -/* 01B658 8001AA58 3C0C8012 */ lui $t4, %hi(gRacers) # $t4, 0x8012 -/* 01B65C 8001AA5C AC4B0000 */ sw $t3, ($v0) -/* 01B660 8001AA60 8D8CAEE4 */ lw $t4, %lo(gRacers)($t4) -/* 01B664 8001AA64 3C0E8012 */ lui $t6, %hi(gRacers) # $t6, 0x8012 -/* 01B668 8001AA68 01896821 */ addu $t5, $t4, $t1 -/* 01B66C 8001AA6C ADA60000 */ sw $a2, ($t5) -/* 01B670 8001AA70 8DCEAEE4 */ lw $t6, %lo(gRacers)($t6) -/* 01B674 8001AA74 00000000 */ nop -/* 01B678 8001AA78 8DC40000 */ lw $a0, ($t6) -/* 01B67C 8001AA7C 0C001AB2 */ jal func_80006AC8 -/* 01B680 8001AA80 00000000 */ nop -/* 01B684 8001AA84 0C0282DD */ jal func_800A0B74 -/* 01B688 8001AA88 00000000 */ nop -/* 01B68C 8001AA8C 0C00FC34 */ jal func_8003F0D0 -/* 01B690 8001AA90 00000000 */ nop -/* 01B694 8001AA94 0C001276 */ jal func_800049D8 -/* 01B698 8001AA98 00000000 */ nop -/* 01B69C 8001AA9C 0C027B20 */ jal is_in_two_player_adventure -/* 01B6A0 8001AAA0 00000000 */ nop -/* 01B6A4 8001AAA4 1040001C */ beqz $v0, .L8001AB18 -/* 01B6A8 8001AAA8 00000000 */ nop -/* 01B6AC 8001AAAC 0C009278 */ jal func_800249E0 -/* 01B6B0 8001AAB0 00002025 */ move $a0, $zero -/* 01B6B4 8001AAB4 0C01994B */ jal set_active_viewports_and_object_stack_cap -/* 01B6B8 8001AAB8 00002025 */ move $a0, $zero -/* 01B6BC 8001AABC 3C0F8012 */ lui $t7, %hi(gRacers) # $t7, 0x8012 -/* 01B6C0 8001AAC0 8DEFAEE4 */ lw $t7, %lo(gRacers)($t7) -/* 01B6C4 8001AAC4 3C078012 */ lui $a3, %hi(gRacersByPort) # $a3, 0x8012 -/* 01B6C8 8001AAC8 24E7AEEC */ addiu $a3, %lo(gRacersByPort) # addiu $a3, $a3, -0x5114 -/* 01B6CC 8001AACC 8CE40000 */ lw $a0, ($a3) -/* 01B6D0 8001AAD0 8DE30000 */ lw $v1, ($t7) -/* 01B6D4 8001AAD4 8C860000 */ lw $a2, ($a0) -/* 01B6D8 8001AAD8 8C650064 */ lw $a1, 0x64($v1) -/* 01B6DC 8001AADC AC830000 */ sw $v1, ($a0) -/* 01B6E0 8001AAE0 8CF80000 */ lw $t8, ($a3) -/* 01B6E4 8001AAE4 3C08800E */ lui $t0, %hi(D_800DC744) # $t0, 0x800e -/* 01B6E8 8001AAE8 2508C744 */ addiu $t0, %lo(D_800DC744) # addiu $t0, $t0, -0x38bc -/* 01B6EC 8001AAEC AF060004 */ sw $a2, 4($t8) -/* 01B6F0 8001AAF0 81190000 */ lb $t9, ($t0) -/* 01B6F4 8001AAF4 00000000 */ nop -/* 01B6F8 8001AAF8 13200007 */ beqz $t9, .L8001AB18 -/* 01B6FC 8001AAFC 00000000 */ nop -/* 01B700 8001AB00 A1000000 */ sb $zero, ($t0) -/* 01B704 8001AB04 0C01BCE6 */ jal func_8006F398 -/* 01B708 8001AB08 AFA50038 */ sw $a1, 0x38($sp) -/* 01B70C 8001AB0C 8FA50038 */ lw $a1, 0x38($sp) -/* 01B710 8001AB10 00000000 */ nop -/* 01B714 8001AB14 A4A00000 */ sh $zero, ($a1) -.L8001AB18: -/* 01B718 8001AB18 8E290000 */ lw $t1, ($s1) -/* 01B71C 8001AB1C 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 -/* 01B720 8001AB20 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af -/* 01B724 8001AB24 240A0001 */ li $t2, 1 -/* 01B728 8001AB28 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 -/* 01B72C 8001AB2C A0E90000 */ sb $t1, ($a3) -/* 01B730 8001AB30 A02AAD50 */ sb $t2, %lo(D_8011AD50)($at) -/* 01B734 8001AB34 24020001 */ li $v0, 1 -.L8001AB38: -/* 01B738 8001AB38 3C118012 */ lui $s1, %hi(gNumRacers) # $s1, 0x8012 -/* 01B73C 8001AB3C 24010001 */ li $at, 1 -/* 01B740 8001AB40 14410055 */ bne $v0, $at, .L8001AC98 -/* 01B744 8001AB44 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 -/* 01B748 8001AB48 0C02AC75 */ jal func_800AB1D4 -/* 01B74C 8001AB4C 00002025 */ move $a0, $zero -/* 01B750 8001AB50 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 -/* 01B754 8001AB54 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af -/* 01B758 8001AB58 80EB0000 */ lb $t3, ($a3) -/* 01B75C 8001AB5C 00000000 */ nop -/* 01B760 8001AB60 256CFFFF */ addiu $t4, $t3, -1 -/* 01B764 8001AB64 A0EC0000 */ sb $t4, ($a3) -/* 01B768 8001AB68 80E60000 */ lb $a2, ($a3) -/* 01B76C 8001AB6C 00000000 */ nop -/* 01B770 8001AB70 18C00046 */ blez $a2, .L8001AC8C -/* 01B774 8001AB74 24180002 */ li $t8, 2 -/* 01B778 8001AB78 8E240000 */ lw $a0, ($s1) -/* 01B77C 8001AB7C 00008025 */ move $s0, $zero -/* 01B780 8001AB80 18800015 */ blez $a0, .L8001ABD8 -/* 01B784 8001AB84 3C058012 */ lui $a1, %hi(gRacersByPosition) # $a1, 0x8012 -/* 01B788 8001AB88 3C0D8012 */ lui $t5, %hi(gRacers) # $t5, 0x8012 -/* 01B78C 8001AB8C 8DADAEE4 */ lw $t5, %lo(gRacers)($t5) -/* 01B790 8001AB90 24A5AEE8 */ addiu $a1, %lo(gRacersByPosition) # addiu $a1, $a1, -0x5118 -/* 01B794 8001AB94 8CA20000 */ lw $v0, ($a1) -/* 01B798 8001AB98 00067080 */ sll $t6, $a2, 2 -/* 01B79C 8001AB9C 01AE7821 */ addu $t7, $t5, $t6 -/* 01B7A0 8001ABA0 8DE30000 */ lw $v1, ($t7) -/* 01B7A4 8001ABA4 8C580000 */ lw $t8, ($v0) -/* 01B7A8 8001ABA8 00000000 */ nop -/* 01B7AC 8001ABAC 1303000A */ beq $t8, $v1, .L8001ABD8 -/* 01B7B0 8001ABB0 00000000 */ nop -.L8001ABB4: -/* 01B7B4 8001ABB4 26100001 */ addiu $s0, $s0, 1 -/* 01B7B8 8001ABB8 0204082A */ slt $at, $s0, $a0 -/* 01B7BC 8001ABBC 10200006 */ beqz $at, .L8001ABD8 -/* 01B7C0 8001ABC0 0010C880 */ sll $t9, $s0, 2 -/* 01B7C4 8001ABC4 00594821 */ addu $t1, $v0, $t9 -/* 01B7C8 8001ABC8 8D2A0000 */ lw $t2, ($t1) -/* 01B7CC 8001ABCC 00000000 */ nop -/* 01B7D0 8001ABD0 1543FFF8 */ bne $t2, $v1, .L8001ABB4 -/* 01B7D4 8001ABD4 00000000 */ nop -.L8001ABD8: -/* 01B7D8 8001ABD8 3C058012 */ lui $a1, %hi(gRacersByPosition) # $a1, 0x8012 -/* 01B7DC 8001ABDC 0204082A */ slt $at, $s0, $a0 -/* 01B7E0 8001ABE0 10200013 */ beqz $at, .L8001AC30 -/* 01B7E4 8001ABE4 24A5AEE8 */ addiu $a1, %lo(gRacersByPosition) # addiu $a1, $a1, -0x5118 -/* 01B7E8 8001ABE8 248BFFFF */ addiu $t3, $a0, -1 -/* 01B7EC 8001ABEC 020B082A */ slt $at, $s0, $t3 -/* 01B7F0 8001ABF0 1020000F */ beqz $at, .L8001AC30 -/* 01B7F4 8001ABF4 00101880 */ sll $v1, $s0, 2 -.L8001ABF8: -/* 01B7F8 8001ABF8 8CAC0000 */ lw $t4, ($a1) -/* 01B7FC 8001ABFC 26100001 */ addiu $s0, $s0, 1 -/* 01B800 8001AC00 01831021 */ addu $v0, $t4, $v1 -/* 01B804 8001AC04 8C4D0004 */ lw $t5, 4($v0) -/* 01B808 8001AC08 24630004 */ addiu $v1, $v1, 4 -/* 01B80C 8001AC0C AC4D0000 */ sw $t5, ($v0) -/* 01B810 8001AC10 8E2E0000 */ lw $t6, ($s1) -/* 01B814 8001AC14 00000000 */ nop -/* 01B818 8001AC18 25CFFFFF */ addiu $t7, $t6, -1 -/* 01B81C 8001AC1C 020F082A */ slt $at, $s0, $t7 -/* 01B820 8001AC20 1420FFF5 */ bnez $at, .L8001ABF8 -/* 01B824 8001AC24 00000000 */ nop -/* 01B828 8001AC28 80E60000 */ lb $a2, ($a3) -/* 01B82C 8001AC2C 00000000 */ nop -.L8001AC30: -/* 01B830 8001AC30 3C188012 */ lui $t8, %hi(gRacers) # $t8, 0x8012 -/* 01B834 8001AC34 8F18AEE4 */ lw $t8, %lo(gRacers)($t8) -/* 01B838 8001AC38 0006C880 */ sll $t9, $a2, 2 -/* 01B83C 8001AC3C 03194821 */ addu $t1, $t8, $t9 -/* 01B840 8001AC40 8D240000 */ lw $a0, ($t1) -/* 01B844 8001AC44 0C003FEE */ jal gParticlePtrList_addObject -/* 01B848 8001AC48 00000000 */ nop -/* 01B84C 8001AC4C 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 -/* 01B850 8001AC50 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af -/* 01B854 8001AC54 80EB0000 */ lb $t3, ($a3) -/* 01B858 8001AC58 3C0A8012 */ lui $t2, %hi(gRacers) # $t2, 0x8012 -/* 01B85C 8001AC5C 8D4AAEE4 */ lw $t2, %lo(gRacers)($t2) -/* 01B860 8001AC60 000B6080 */ sll $t4, $t3, 2 -/* 01B864 8001AC64 014C6821 */ addu $t5, $t2, $t4 -/* 01B868 8001AC68 ADA00000 */ sw $zero, ($t5) -/* 01B86C 8001AC6C 8E2E0000 */ lw $t6, ($s1) -/* 01B870 8001AC70 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 -/* 01B874 8001AC74 25CFFFFF */ addiu $t7, $t6, -1 -/* 01B878 8001AC78 AE2F0000 */ sw $t7, ($s1) -/* 01B87C 8001AC7C 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) -/* 01B880 8001AC80 10000006 */ b .L8001AC9C -/* 01B884 8001AC84 24010002 */ li $at, 2 -/* 01B888 8001AC88 24180002 */ li $t8, 2 -.L8001AC8C: -/* 01B88C 8001AC8C 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 -/* 01B890 8001AC90 A038AD50 */ sb $t8, %lo(D_8011AD50)($at) -/* 01B894 8001AC94 24020002 */ li $v0, 2 -.L8001AC98: -/* 01B898 8001AC98 24010002 */ li $at, 2 -.L8001AC9C: -/* 01B89C 8001AC9C 14410016 */ bne $v0, $at, .L8001ACF8 -/* 01B8A0 8001ACA0 3C198012 */ lui $t9, %hi(gRacers) # $t9, 0x8012 -/* 01B8A4 8001ACA4 8F39AEE4 */ lw $t9, %lo(gRacers)($t9) -/* 01B8A8 8001ACA8 00000000 */ nop -/* 01B8AC 8001ACAC 8F240000 */ lw $a0, ($t9) -/* 01B8B0 8001ACB0 00000000 */ nop -/* 01B8B4 8001ACB4 8C850064 */ lw $a1, 0x64($a0) -/* 01B8B8 8001ACB8 0C008C34 */ jal func_800230D0 -/* 01B8BC 8001ACBC AFA50038 */ sw $a1, 0x38($sp) -/* 01B8C0 8001ACC0 8FA50038 */ lw $a1, 0x38($sp) -/* 01B8C4 8001ACC4 24090003 */ li $t1, 3 -/* 01B8C8 8001ACC8 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 -/* 01B8CC 8001ACCC A0A001D8 */ sb $zero, 0x1d8($a1) -/* 01B8D0 8001ACD0 A029AD50 */ sb $t1, %lo(D_8011AD50)($at) -/* 01B8D4 8001ACD4 0C007917 */ jal func_8001E45C -/* 01B8D8 8001ACD8 2404000A */ li $a0, 10 -/* 01B8DC 8001ACDC 3C108012 */ lui $s0, %hi(D_8011ADC8) # $s0, 0x8012 -/* 01B8E0 8001ACE0 2610ADC8 */ addiu $s0, %lo(D_8011ADC8) # addiu $s0, $s0, -0x5238 -/* 01B8E4 8001ACE4 0C007A4F */ jal func_8001E93C -/* 01B8E8 8001ACE8 AE000000 */ sw $zero, ($s0) -/* 01B8EC 8001ACEC 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 -/* 01B8F0 8001ACF0 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) -/* 01B8F4 8001ACF4 00000000 */ nop -.L8001ACF8: -/* 01B8F8 8001ACF8 3C108012 */ lui $s0, %hi(D_8011ADC8) # $s0, 0x8012 -/* 01B8FC 8001ACFC 24010003 */ li $at, 3 -/* 01B900 8001AD00 1441000C */ bne $v0, $at, .L8001AD34 -/* 01B904 8001AD04 2610ADC8 */ addiu $s0, %lo(D_8011ADC8) # addiu $s0, $s0, -0x5238 -/* 01B908 8001AD08 3C04800E */ lui $a0, %hi(D_800DC860) # $a0, 0x800e -/* 01B90C 8001AD0C 0C030076 */ jal func_800C01D8 -/* 01B910 8001AD10 2484C860 */ addiu $a0, %lo(D_800DC860) # addiu $a0, $a0, -0x37a0 -/* 01B914 8001AD14 240B0004 */ li $t3, 4 -/* 01B918 8001AD18 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 -/* 01B91C 8001AD1C A02BAD50 */ sb $t3, %lo(D_8011AD50)($at) -/* 01B920 8001AD20 0C00A3E8 */ jal func_80028FA0 -/* 01B924 8001AD24 24040001 */ li $a0, 1 -/* 01B928 8001AD28 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 -/* 01B92C 8001AD2C 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) -/* 01B930 8001AD30 00000000 */ nop -.L8001AD34: -/* 01B934 8001AD34 24010004 */ li $at, 4 -/* 01B938 8001AD38 1441003E */ bne $v0, $at, .L8001AE34 -/* 01B93C 8001AD3C 8FBF001C */ lw $ra, 0x1c($sp) -/* 01B940 8001AD40 0C00A3E8 */ jal func_80028FA0 -/* 01B944 8001AD44 24040001 */ li $a0, 1 -/* 01B948 8001AD48 0C0168EC */ jal func_8005A3B0 -/* 01B94C 8001AD4C 00000000 */ nop -/* 01B950 8001AD50 0C01AF66 */ jal get_current_level_race_type -/* 01B954 8001AD54 00000000 */ nop -/* 01B958 8001AD58 304A0040 */ andi $t2, $v0, 0x40 -/* 01B95C 8001AD5C 15400013 */ bnez $t2, .L8001ADAC -/* 01B960 8001AD60 3C0C8000 */ lui $t4, %hi(osTvType) # $t4, 0x8000 -/* 01B964 8001AD64 8D8C0300 */ lw $t4, %lo(osTvType)($t4) -/* 01B968 8001AD68 8FAE0040 */ lw $t6, 0x40($sp) -/* 01B96C 8001AD6C 15800003 */ bnez $t4, .L8001AD7C -/* 01B970 8001AD70 2402021C */ li $v0, 540 -/* 01B974 8001AD74 10000001 */ b .L8001AD7C -/* 01B978 8001AD78 2402019F */ li $v0, 415 -.L8001AD7C: -/* 01B97C 8001AD7C 8E0D0000 */ lw $t5, ($s0) -/* 01B980 8001AD80 00000000 */ nop -/* 01B984 8001AD84 01AE7821 */ addu $t7, $t5, $t6 -/* 01B988 8001AD88 01E2082B */ sltu $at, $t7, $v0 -/* 01B98C 8001AD8C 10200005 */ beqz $at, .L8001ADA4 -/* 01B990 8001AD90 AE0F0000 */ sw $t7, ($s0) -/* 01B994 8001AD94 0C02AC65 */ jal func_800AB194 -/* 01B998 8001AD98 24040001 */ li $a0, 1 -/* 01B99C 8001AD9C 10000003 */ b .L8001ADAC -/* 01B9A0 8001ADA0 00000000 */ nop -.L8001ADA4: -/* 01B9A4 8001ADA4 0C02AC75 */ jal func_800AB1D4 -/* 01B9A8 8001ADA8 24040001 */ li $a0, 1 -.L8001ADAC: -/* 01B9AC 8001ADAC 0C01A955 */ jal get_buttons_pressed_from_player -/* 01B9B0 8001ADB0 00002025 */ move $a0, $zero -/* 01B9B4 8001ADB4 0C01BAA4 */ jal get_settings -/* 01B9B8 8001ADB8 30508000 */ andi $s0, $v0, 0x8000 -/* 01B9BC 8001ADBC 8C590010 */ lw $t9, 0x10($v0) -/* 01B9C0 8001ADC0 00408825 */ move $s1, $v0 -/* 01B9C4 8001ADC4 00194B40 */ sll $t1, $t9, 0xd -/* 01B9C8 8001ADC8 05200002 */ bltz $t1, .L8001ADD4 -/* 01B9CC 8001ADCC 00000000 */ nop -/* 01B9D0 8001ADD0 00008025 */ move $s0, $zero -.L8001ADD4: -/* 01B9D4 8001ADD4 0C008531 */ jal func_800214C4 -/* 01B9D8 8001ADD8 00000000 */ nop -/* 01B9DC 8001ADDC 14400007 */ bnez $v0, .L8001ADFC -/* 01B9E0 8001ADE0 00000000 */ nop -/* 01B9E4 8001ADE4 12000013 */ beqz $s0, .L8001AE34 -/* 01B9E8 8001ADE8 8FBF001C */ lw $ra, 0x1c($sp) -/* 01B9EC 8001ADEC 0C030063 */ jal func_800C018C -/* 01B9F0 8001ADF0 00000000 */ nop -/* 01B9F4 8001ADF4 1440000F */ bnez $v0, .L8001AE34 -/* 01B9F8 8001ADF8 8FBF001C */ lw $ra, 0x1c($sp) -.L8001ADFC: -/* 01B9FC 8001ADFC 12000003 */ beqz $s0, .L8001AE0C -/* 01BA00 8001AE00 3C04800E */ lui $a0, %hi(D_800DC6F8) # $a0, 0x800e -/* 01BA04 8001AE04 0C030076 */ jal func_800C01D8 -/* 01BA08 8001AE08 2484C6F8 */ addiu $a0, %lo(D_800DC6F8) # addiu $a0, $a0, -0x3908 -.L8001AE0C: -/* 01BA0C 8001AE0C 0C01BC50 */ jal func_8006F140 -/* 01BA10 8001AE10 24040002 */ li $a0, 2 -/* 01BA14 8001AE14 240B0005 */ li $t3, 5 -/* 01BA18 8001AE18 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 -/* 01BA1C 8001AE1C A02BAD50 */ sb $t3, %lo(D_8011AD50)($at) -/* 01BA20 8001AE20 8E2A0010 */ lw $t2, 0x10($s1) -/* 01BA24 8001AE24 3C010004 */ lui $at, 4 -/* 01BA28 8001AE28 01416025 */ or $t4, $t2, $at -/* 01BA2C 8001AE2C AE2C0010 */ sw $t4, 0x10($s1) -/* 01BA30 8001AE30 8FBF001C */ lw $ra, 0x1c($sp) -.L8001AE34: -/* 01BA34 8001AE34 8FB00014 */ lw $s0, 0x14($sp) -/* 01BA38 8001AE38 8FB10018 */ lw $s1, 0x18($sp) -/* 01BA3C 8001AE3C 03E00008 */ jr $ra -/* 01BA40 8001AE40 27BD0040 */ addiu $sp, $sp, 0x40 - +glabel func_8001A8F4 +/* 01B4F4 8001A8F4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 01B4F8 8001A8F8 AFBF001C */ sw $ra, 0x1c($sp) +/* 01B4FC 8001A8FC AFA40040 */ sw $a0, 0x40($sp) +/* 01B500 8001A900 AFB10018 */ sw $s1, 0x18($sp) +/* 01B504 8001A904 AFB00014 */ sw $s0, 0x14($sp) +/* 01B508 8001A908 0C01BCE2 */ jal func_8006F388 +/* 01B50C 8001A90C 24040001 */ li $a0, 1 +/* 01B510 8001A910 3C108012 */ lui $s0, %hi(D_8011AD4E) # $s0, 0x8012 +/* 01B514 8001A914 2610AD4E */ addiu $s0, %lo(D_8011AD4E) # addiu $s0, $s0, -0x52b2 +/* 01B518 8001A918 86030000 */ lh $v1, ($s0) +/* 01B51C 8001A91C 8FAE0040 */ lw $t6, 0x40($sp) +/* 01B520 8001A920 2419FFFF */ li $t9, -1 +/* 01B524 8001A924 006E7823 */ subu $t7, $v1, $t6 +/* 01B528 8001A928 A60F0000 */ sh $t7, ($s0) +/* 01B52C 8001A92C 86180000 */ lh $t8, ($s0) +/* 01B530 8001A930 28610033 */ slti $at, $v1, 0x33 +/* 01B534 8001A934 1F000002 */ bgtz $t8, .L8001A940 +/* 01B538 8001A938 00000000 */ nop +/* 01B53C 8001A93C A6190000 */ sh $t9, ($s0) +.L8001A940: +/* 01B540 8001A940 14200008 */ bnez $at, .L8001A964 +/* 01B544 8001A944 00000000 */ nop +/* 01B548 8001A948 86090000 */ lh $t1, ($s0) +/* 01B54C 8001A94C 3C04800E */ lui $a0, %hi(D_800DC858) # $a0, 0x800e +/* 01B550 8001A950 29210033 */ slti $at, $t1, 0x33 +/* 01B554 8001A954 10200003 */ beqz $at, .L8001A964 +/* 01B558 8001A958 00000000 */ nop +/* 01B55C 8001A95C 0C030076 */ jal func_800C01D8 +/* 01B560 8001A960 2484C858 */ addiu $a0, %lo(D_800DC858) # addiu $a0, $a0, -0x37a8 +.L8001A964: +/* 01B564 8001A964 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 +/* 01B568 8001A968 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) +/* 01B56C 8001A96C AFA00030 */ sw $zero, 0x30($sp) +/* 01B570 8001A970 14400071 */ bnez $v0, .L8001AB38 +/* 01B574 8001A974 00000000 */ nop +/* 01B578 8001A978 860A0000 */ lh $t2, ($s0) +/* 01B57C 8001A97C 2401FFFF */ li $at, -1 +/* 01B580 8001A980 1541006D */ bne $t2, $at, .L8001AB38 +/* 01B584 8001A984 3C118012 */ lui $s1, %hi(gNumRacers) # $s1, 0x8012 +/* 01B588 8001A988 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 +/* 01B58C 8001A98C 8E2B0000 */ lw $t3, ($s1) +/* 01B590 8001A990 00008025 */ move $s0, $zero +/* 01B594 8001A994 19600029 */ blez $t3, .L8001AA3C +/* 01B598 8001A998 00001825 */ move $v1, $zero +.L8001A99C: +/* 01B59C 8001A99C 3C0C8012 */ lui $t4, %hi(gRacers) # $t4, 0x8012 +/* 01B5A0 8001A9A0 8D8CAEE4 */ lw $t4, %lo(gRacers)($t4) +/* 01B5A4 8001A9A4 2401FFFF */ li $at, -1 +/* 01B5A8 8001A9A8 01836821 */ addu $t5, $t4, $v1 +/* 01B5AC 8001A9AC 8DAE0000 */ lw $t6, ($t5) +/* 01B5B0 8001A9B0 00000000 */ nop +/* 01B5B4 8001A9B4 8DC50064 */ lw $a1, 0x64($t6) +/* 01B5B8 8001A9B8 00000000 */ nop +/* 01B5BC 8001A9BC 84AF0000 */ lh $t7, ($a1) +/* 01B5C0 8001A9C0 ACA00140 */ sw $zero, 0x140($a1) +/* 01B5C4 8001A9C4 11E10006 */ beq $t7, $at, .L8001A9E0 +/* 01B5C8 8001A9C8 00000000 */ nop +/* 01B5CC 8001A9CC 84B801AC */ lh $t8, 0x1ac($a1) +/* 01B5D0 8001A9D0 24010001 */ li $at, 1 +/* 01B5D4 8001A9D4 17010002 */ bne $t8, $at, .L8001A9E0 +/* 01B5D8 8001A9D8 00000000 */ nop +/* 01B5DC 8001A9DC AFB00030 */ sw $s0, 0x30($sp) +.L8001A9E0: +/* 01B5E0 8001A9E0 8CA40178 */ lw $a0, 0x178($a1) +/* 01B5E4 8001A9E4 00000000 */ nop +/* 01B5E8 8001A9E8 10800007 */ beqz $a0, .L8001AA08 +/* 01B5EC 8001A9EC 00000000 */ nop +/* 01B5F0 8001A9F0 AFA30020 */ sw $v1, 0x20($sp) +/* 01B5F4 8001A9F4 0C001223 */ jal func_8000488C +/* 01B5F8 8001A9F8 AFA50038 */ sw $a1, 0x38($sp) +/* 01B5FC 8001A9FC 8FA30020 */ lw $v1, 0x20($sp) +/* 01B600 8001AA00 8FA50038 */ lw $a1, 0x38($sp) +/* 01B604 8001AA04 00000000 */ nop +.L8001AA08: +/* 01B608 8001AA08 8CA4017C */ lw $a0, 0x17c($a1) +/* 01B60C 8001AA0C 00000000 */ nop +/* 01B610 8001AA10 10800005 */ beqz $a0, .L8001AA28 +/* 01B614 8001AA14 00000000 */ nop +/* 01B618 8001AA18 0C0025BE */ jal func_800096F8 +/* 01B61C 8001AA1C AFA30020 */ sw $v1, 0x20($sp) +/* 01B620 8001AA20 8FA30020 */ lw $v1, 0x20($sp) +/* 01B624 8001AA24 00000000 */ nop +.L8001AA28: +/* 01B628 8001AA28 8E390000 */ lw $t9, ($s1) +/* 01B62C 8001AA2C 26100001 */ addiu $s0, $s0, 1 +/* 01B630 8001AA30 0219082A */ slt $at, $s0, $t9 +/* 01B634 8001AA34 1420FFD9 */ bnez $at, .L8001A99C +/* 01B638 8001AA38 24630004 */ addiu $v1, $v1, 4 +.L8001AA3C: +/* 01B63C 8001AA3C 8FA30030 */ lw $v1, 0x30($sp) +/* 01B640 8001AA40 3C028012 */ lui $v0, %hi(gRacers) # $v0, 0x8012 +/* 01B644 8001AA44 8C42AEE4 */ lw $v0, %lo(gRacers)($v0) +/* 01B648 8001AA48 00034880 */ sll $t1, $v1, 2 +/* 01B64C 8001AA4C 00495021 */ addu $t2, $v0, $t1 +/* 01B650 8001AA50 8D4B0000 */ lw $t3, ($t2) +/* 01B654 8001AA54 8C460000 */ lw $a2, ($v0) +/* 01B658 8001AA58 3C0C8012 */ lui $t4, %hi(gRacers) # $t4, 0x8012 +/* 01B65C 8001AA5C AC4B0000 */ sw $t3, ($v0) +/* 01B660 8001AA60 8D8CAEE4 */ lw $t4, %lo(gRacers)($t4) +/* 01B664 8001AA64 3C0E8012 */ lui $t6, %hi(gRacers) # $t6, 0x8012 +/* 01B668 8001AA68 01896821 */ addu $t5, $t4, $t1 +/* 01B66C 8001AA6C ADA60000 */ sw $a2, ($t5) +/* 01B670 8001AA70 8DCEAEE4 */ lw $t6, %lo(gRacers)($t6) +/* 01B674 8001AA74 00000000 */ nop +/* 01B678 8001AA78 8DC40000 */ lw $a0, ($t6) +/* 01B67C 8001AA7C 0C001AB2 */ jal func_80006AC8 +/* 01B680 8001AA80 00000000 */ nop +/* 01B684 8001AA84 0C0282DD */ jal func_800A0B74 +/* 01B688 8001AA88 00000000 */ nop +/* 01B68C 8001AA8C 0C00FC34 */ jal func_8003F0D0 +/* 01B690 8001AA90 00000000 */ nop +/* 01B694 8001AA94 0C001276 */ jal func_800049D8 +/* 01B698 8001AA98 00000000 */ nop +/* 01B69C 8001AA9C 0C027B20 */ jal is_in_two_player_adventure +/* 01B6A0 8001AAA0 00000000 */ nop +/* 01B6A4 8001AAA4 1040001C */ beqz $v0, .L8001AB18 +/* 01B6A8 8001AAA8 00000000 */ nop +/* 01B6AC 8001AAAC 0C009278 */ jal func_800249E0 +/* 01B6B0 8001AAB0 00002025 */ move $a0, $zero +/* 01B6B4 8001AAB4 0C01994B */ jal set_active_viewports_and_max +/* 01B6B8 8001AAB8 00002025 */ move $a0, $zero +/* 01B6BC 8001AABC 3C0F8012 */ lui $t7, %hi(gRacers) # $t7, 0x8012 +/* 01B6C0 8001AAC0 8DEFAEE4 */ lw $t7, %lo(gRacers)($t7) +/* 01B6C4 8001AAC4 3C078012 */ lui $a3, %hi(gRacersByPort) # $a3, 0x8012 +/* 01B6C8 8001AAC8 24E7AEEC */ addiu $a3, %lo(gRacersByPort) # addiu $a3, $a3, -0x5114 +/* 01B6CC 8001AACC 8CE40000 */ lw $a0, ($a3) +/* 01B6D0 8001AAD0 8DE30000 */ lw $v1, ($t7) +/* 01B6D4 8001AAD4 8C860000 */ lw $a2, ($a0) +/* 01B6D8 8001AAD8 8C650064 */ lw $a1, 0x64($v1) +/* 01B6DC 8001AADC AC830000 */ sw $v1, ($a0) +/* 01B6E0 8001AAE0 8CF80000 */ lw $t8, ($a3) +/* 01B6E4 8001AAE4 3C08800E */ lui $t0, %hi(D_800DC744) # $t0, 0x800e +/* 01B6E8 8001AAE8 2508C744 */ addiu $t0, %lo(D_800DC744) # addiu $t0, $t0, -0x38bc +/* 01B6EC 8001AAEC AF060004 */ sw $a2, 4($t8) +/* 01B6F0 8001AAF0 81190000 */ lb $t9, ($t0) +/* 01B6F4 8001AAF4 00000000 */ nop +/* 01B6F8 8001AAF8 13200007 */ beqz $t9, .L8001AB18 +/* 01B6FC 8001AAFC 00000000 */ nop +/* 01B700 8001AB00 A1000000 */ sb $zero, ($t0) +/* 01B704 8001AB04 0C01BCE6 */ jal func_8006F398 +/* 01B708 8001AB08 AFA50038 */ sw $a1, 0x38($sp) +/* 01B70C 8001AB0C 8FA50038 */ lw $a1, 0x38($sp) +/* 01B710 8001AB10 00000000 */ nop +/* 01B714 8001AB14 A4A00000 */ sh $zero, ($a1) +.L8001AB18: +/* 01B718 8001AB18 8E290000 */ lw $t1, ($s1) +/* 01B71C 8001AB1C 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 +/* 01B720 8001AB20 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af +/* 01B724 8001AB24 240A0001 */ li $t2, 1 +/* 01B728 8001AB28 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 +/* 01B72C 8001AB2C A0E90000 */ sb $t1, ($a3) +/* 01B730 8001AB30 A02AAD50 */ sb $t2, %lo(D_8011AD50)($at) +/* 01B734 8001AB34 24020001 */ li $v0, 1 +.L8001AB38: +/* 01B738 8001AB38 3C118012 */ lui $s1, %hi(gNumRacers) # $s1, 0x8012 +/* 01B73C 8001AB3C 24010001 */ li $at, 1 +/* 01B740 8001AB40 14410055 */ bne $v0, $at, .L8001AC98 +/* 01B744 8001AB44 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 +/* 01B748 8001AB48 0C02AC75 */ jal func_800AB1D4 +/* 01B74C 8001AB4C 00002025 */ move $a0, $zero +/* 01B750 8001AB50 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 +/* 01B754 8001AB54 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af +/* 01B758 8001AB58 80EB0000 */ lb $t3, ($a3) +/* 01B75C 8001AB5C 00000000 */ nop +/* 01B760 8001AB60 256CFFFF */ addiu $t4, $t3, -1 +/* 01B764 8001AB64 A0EC0000 */ sb $t4, ($a3) +/* 01B768 8001AB68 80E60000 */ lb $a2, ($a3) +/* 01B76C 8001AB6C 00000000 */ nop +/* 01B770 8001AB70 18C00046 */ blez $a2, .L8001AC8C +/* 01B774 8001AB74 24180002 */ li $t8, 2 +/* 01B778 8001AB78 8E240000 */ lw $a0, ($s1) +/* 01B77C 8001AB7C 00008025 */ move $s0, $zero +/* 01B780 8001AB80 18800015 */ blez $a0, .L8001ABD8 +/* 01B784 8001AB84 3C058012 */ lui $a1, %hi(gRacersByPosition) # $a1, 0x8012 +/* 01B788 8001AB88 3C0D8012 */ lui $t5, %hi(gRacers) # $t5, 0x8012 +/* 01B78C 8001AB8C 8DADAEE4 */ lw $t5, %lo(gRacers)($t5) +/* 01B790 8001AB90 24A5AEE8 */ addiu $a1, %lo(gRacersByPosition) # addiu $a1, $a1, -0x5118 +/* 01B794 8001AB94 8CA20000 */ lw $v0, ($a1) +/* 01B798 8001AB98 00067080 */ sll $t6, $a2, 2 +/* 01B79C 8001AB9C 01AE7821 */ addu $t7, $t5, $t6 +/* 01B7A0 8001ABA0 8DE30000 */ lw $v1, ($t7) +/* 01B7A4 8001ABA4 8C580000 */ lw $t8, ($v0) +/* 01B7A8 8001ABA8 00000000 */ nop +/* 01B7AC 8001ABAC 1303000A */ beq $t8, $v1, .L8001ABD8 +/* 01B7B0 8001ABB0 00000000 */ nop +.L8001ABB4: +/* 01B7B4 8001ABB4 26100001 */ addiu $s0, $s0, 1 +/* 01B7B8 8001ABB8 0204082A */ slt $at, $s0, $a0 +/* 01B7BC 8001ABBC 10200006 */ beqz $at, .L8001ABD8 +/* 01B7C0 8001ABC0 0010C880 */ sll $t9, $s0, 2 +/* 01B7C4 8001ABC4 00594821 */ addu $t1, $v0, $t9 +/* 01B7C8 8001ABC8 8D2A0000 */ lw $t2, ($t1) +/* 01B7CC 8001ABCC 00000000 */ nop +/* 01B7D0 8001ABD0 1543FFF8 */ bne $t2, $v1, .L8001ABB4 +/* 01B7D4 8001ABD4 00000000 */ nop +.L8001ABD8: +/* 01B7D8 8001ABD8 3C058012 */ lui $a1, %hi(gRacersByPosition) # $a1, 0x8012 +/* 01B7DC 8001ABDC 0204082A */ slt $at, $s0, $a0 +/* 01B7E0 8001ABE0 10200013 */ beqz $at, .L8001AC30 +/* 01B7E4 8001ABE4 24A5AEE8 */ addiu $a1, %lo(gRacersByPosition) # addiu $a1, $a1, -0x5118 +/* 01B7E8 8001ABE8 248BFFFF */ addiu $t3, $a0, -1 +/* 01B7EC 8001ABEC 020B082A */ slt $at, $s0, $t3 +/* 01B7F0 8001ABF0 1020000F */ beqz $at, .L8001AC30 +/* 01B7F4 8001ABF4 00101880 */ sll $v1, $s0, 2 +.L8001ABF8: +/* 01B7F8 8001ABF8 8CAC0000 */ lw $t4, ($a1) +/* 01B7FC 8001ABFC 26100001 */ addiu $s0, $s0, 1 +/* 01B800 8001AC00 01831021 */ addu $v0, $t4, $v1 +/* 01B804 8001AC04 8C4D0004 */ lw $t5, 4($v0) +/* 01B808 8001AC08 24630004 */ addiu $v1, $v1, 4 +/* 01B80C 8001AC0C AC4D0000 */ sw $t5, ($v0) +/* 01B810 8001AC10 8E2E0000 */ lw $t6, ($s1) +/* 01B814 8001AC14 00000000 */ nop +/* 01B818 8001AC18 25CFFFFF */ addiu $t7, $t6, -1 +/* 01B81C 8001AC1C 020F082A */ slt $at, $s0, $t7 +/* 01B820 8001AC20 1420FFF5 */ bnez $at, .L8001ABF8 +/* 01B824 8001AC24 00000000 */ nop +/* 01B828 8001AC28 80E60000 */ lb $a2, ($a3) +/* 01B82C 8001AC2C 00000000 */ nop +.L8001AC30: +/* 01B830 8001AC30 3C188012 */ lui $t8, %hi(gRacers) # $t8, 0x8012 +/* 01B834 8001AC34 8F18AEE4 */ lw $t8, %lo(gRacers)($t8) +/* 01B838 8001AC38 0006C880 */ sll $t9, $a2, 2 +/* 01B83C 8001AC3C 03194821 */ addu $t1, $t8, $t9 +/* 01B840 8001AC40 8D240000 */ lw $a0, ($t1) +/* 01B844 8001AC44 0C003FEE */ jal gParticlePtrList_addObject +/* 01B848 8001AC48 00000000 */ nop +/* 01B84C 8001AC4C 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 +/* 01B850 8001AC50 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af +/* 01B854 8001AC54 80EB0000 */ lb $t3, ($a3) +/* 01B858 8001AC58 3C0A8012 */ lui $t2, %hi(gRacers) # $t2, 0x8012 +/* 01B85C 8001AC5C 8D4AAEE4 */ lw $t2, %lo(gRacers)($t2) +/* 01B860 8001AC60 000B6080 */ sll $t4, $t3, 2 +/* 01B864 8001AC64 014C6821 */ addu $t5, $t2, $t4 +/* 01B868 8001AC68 ADA00000 */ sw $zero, ($t5) +/* 01B86C 8001AC6C 8E2E0000 */ lw $t6, ($s1) +/* 01B870 8001AC70 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 +/* 01B874 8001AC74 25CFFFFF */ addiu $t7, $t6, -1 +/* 01B878 8001AC78 AE2F0000 */ sw $t7, ($s1) +/* 01B87C 8001AC7C 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) +/* 01B880 8001AC80 10000006 */ b .L8001AC9C +/* 01B884 8001AC84 24010002 */ li $at, 2 +/* 01B888 8001AC88 24180002 */ li $t8, 2 +.L8001AC8C: +/* 01B88C 8001AC8C 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 +/* 01B890 8001AC90 A038AD50 */ sb $t8, %lo(D_8011AD50)($at) +/* 01B894 8001AC94 24020002 */ li $v0, 2 +.L8001AC98: +/* 01B898 8001AC98 24010002 */ li $at, 2 +.L8001AC9C: +/* 01B89C 8001AC9C 14410016 */ bne $v0, $at, .L8001ACF8 +/* 01B8A0 8001ACA0 3C198012 */ lui $t9, %hi(gRacers) # $t9, 0x8012 +/* 01B8A4 8001ACA4 8F39AEE4 */ lw $t9, %lo(gRacers)($t9) +/* 01B8A8 8001ACA8 00000000 */ nop +/* 01B8AC 8001ACAC 8F240000 */ lw $a0, ($t9) +/* 01B8B0 8001ACB0 00000000 */ nop +/* 01B8B4 8001ACB4 8C850064 */ lw $a1, 0x64($a0) +/* 01B8B8 8001ACB8 0C008C34 */ jal func_800230D0 +/* 01B8BC 8001ACBC AFA50038 */ sw $a1, 0x38($sp) +/* 01B8C0 8001ACC0 8FA50038 */ lw $a1, 0x38($sp) +/* 01B8C4 8001ACC4 24090003 */ li $t1, 3 +/* 01B8C8 8001ACC8 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 +/* 01B8CC 8001ACCC A0A001D8 */ sb $zero, 0x1d8($a1) +/* 01B8D0 8001ACD0 A029AD50 */ sb $t1, %lo(D_8011AD50)($at) +/* 01B8D4 8001ACD4 0C007917 */ jal func_8001E45C +/* 01B8D8 8001ACD8 2404000A */ li $a0, 10 +/* 01B8DC 8001ACDC 3C108012 */ lui $s0, %hi(D_8011ADC8) # $s0, 0x8012 +/* 01B8E0 8001ACE0 2610ADC8 */ addiu $s0, %lo(D_8011ADC8) # addiu $s0, $s0, -0x5238 +/* 01B8E4 8001ACE4 0C007A4F */ jal func_8001E93C +/* 01B8E8 8001ACE8 AE000000 */ sw $zero, ($s0) +/* 01B8EC 8001ACEC 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 +/* 01B8F0 8001ACF0 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) +/* 01B8F4 8001ACF4 00000000 */ nop +.L8001ACF8: +/* 01B8F8 8001ACF8 3C108012 */ lui $s0, %hi(D_8011ADC8) # $s0, 0x8012 +/* 01B8FC 8001ACFC 24010003 */ li $at, 3 +/* 01B900 8001AD00 1441000C */ bne $v0, $at, .L8001AD34 +/* 01B904 8001AD04 2610ADC8 */ addiu $s0, %lo(D_8011ADC8) # addiu $s0, $s0, -0x5238 +/* 01B908 8001AD08 3C04800E */ lui $a0, %hi(D_800DC860) # $a0, 0x800e +/* 01B90C 8001AD0C 0C030076 */ jal func_800C01D8 +/* 01B910 8001AD10 2484C860 */ addiu $a0, %lo(D_800DC860) # addiu $a0, $a0, -0x37a0 +/* 01B914 8001AD14 240B0004 */ li $t3, 4 +/* 01B918 8001AD18 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 +/* 01B91C 8001AD1C A02BAD50 */ sb $t3, %lo(D_8011AD50)($at) +/* 01B920 8001AD20 0C00A3E8 */ jal func_80028FA0 +/* 01B924 8001AD24 24040001 */ li $a0, 1 +/* 01B928 8001AD28 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 +/* 01B92C 8001AD2C 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0) +/* 01B930 8001AD30 00000000 */ nop +.L8001AD34: +/* 01B934 8001AD34 24010004 */ li $at, 4 +/* 01B938 8001AD38 1441003E */ bne $v0, $at, .L8001AE34 +/* 01B93C 8001AD3C 8FBF001C */ lw $ra, 0x1c($sp) +/* 01B940 8001AD40 0C00A3E8 */ jal func_80028FA0 +/* 01B944 8001AD44 24040001 */ li $a0, 1 +/* 01B948 8001AD48 0C0168EC */ jal func_8005A3B0 +/* 01B94C 8001AD4C 00000000 */ nop +/* 01B950 8001AD50 0C01AF66 */ jal get_current_level_race_type +/* 01B954 8001AD54 00000000 */ nop +/* 01B958 8001AD58 304A0040 */ andi $t2, $v0, 0x40 +/* 01B95C 8001AD5C 15400013 */ bnez $t2, .L8001ADAC +/* 01B960 8001AD60 3C0C8000 */ lui $t4, %hi(osTvType) # $t4, 0x8000 +/* 01B964 8001AD64 8D8C0300 */ lw $t4, %lo(osTvType)($t4) +/* 01B968 8001AD68 8FAE0040 */ lw $t6, 0x40($sp) +/* 01B96C 8001AD6C 15800003 */ bnez $t4, .L8001AD7C +/* 01B970 8001AD70 2402021C */ li $v0, 540 +/* 01B974 8001AD74 10000001 */ b .L8001AD7C +/* 01B978 8001AD78 2402019F */ li $v0, 415 +.L8001AD7C: +/* 01B97C 8001AD7C 8E0D0000 */ lw $t5, ($s0) +/* 01B980 8001AD80 00000000 */ nop +/* 01B984 8001AD84 01AE7821 */ addu $t7, $t5, $t6 +/* 01B988 8001AD88 01E2082B */ sltu $at, $t7, $v0 +/* 01B98C 8001AD8C 10200005 */ beqz $at, .L8001ADA4 +/* 01B990 8001AD90 AE0F0000 */ sw $t7, ($s0) +/* 01B994 8001AD94 0C02AC65 */ jal func_800AB194 +/* 01B998 8001AD98 24040001 */ li $a0, 1 +/* 01B99C 8001AD9C 10000003 */ b .L8001ADAC +/* 01B9A0 8001ADA0 00000000 */ nop +.L8001ADA4: +/* 01B9A4 8001ADA4 0C02AC75 */ jal func_800AB1D4 +/* 01B9A8 8001ADA8 24040001 */ li $a0, 1 +.L8001ADAC: +/* 01B9AC 8001ADAC 0C01A955 */ jal get_buttons_pressed_from_player +/* 01B9B0 8001ADB0 00002025 */ move $a0, $zero +/* 01B9B4 8001ADB4 0C01BAA4 */ jal get_settings +/* 01B9B8 8001ADB8 30508000 */ andi $s0, $v0, 0x8000 +/* 01B9BC 8001ADBC 8C590010 */ lw $t9, 0x10($v0) +/* 01B9C0 8001ADC0 00408825 */ move $s1, $v0 +/* 01B9C4 8001ADC4 00194B40 */ sll $t1, $t9, 0xd +/* 01B9C8 8001ADC8 05200002 */ bltz $t1, .L8001ADD4 +/* 01B9CC 8001ADCC 00000000 */ nop +/* 01B9D0 8001ADD0 00008025 */ move $s0, $zero +.L8001ADD4: +/* 01B9D4 8001ADD4 0C008531 */ jal func_800214C4 +/* 01B9D8 8001ADD8 00000000 */ nop +/* 01B9DC 8001ADDC 14400007 */ bnez $v0, .L8001ADFC +/* 01B9E0 8001ADE0 00000000 */ nop +/* 01B9E4 8001ADE4 12000013 */ beqz $s0, .L8001AE34 +/* 01B9E8 8001ADE8 8FBF001C */ lw $ra, 0x1c($sp) +/* 01B9EC 8001ADEC 0C030063 */ jal func_800C018C +/* 01B9F0 8001ADF0 00000000 */ nop +/* 01B9F4 8001ADF4 1440000F */ bnez $v0, .L8001AE34 +/* 01B9F8 8001ADF8 8FBF001C */ lw $ra, 0x1c($sp) +.L8001ADFC: +/* 01B9FC 8001ADFC 12000003 */ beqz $s0, .L8001AE0C +/* 01BA00 8001AE00 3C04800E */ lui $a0, %hi(D_800DC6F8) # $a0, 0x800e +/* 01BA04 8001AE04 0C030076 */ jal func_800C01D8 +/* 01BA08 8001AE08 2484C6F8 */ addiu $a0, %lo(D_800DC6F8) # addiu $a0, $a0, -0x3908 +.L8001AE0C: +/* 01BA0C 8001AE0C 0C01BC50 */ jal func_8006F140 +/* 01BA10 8001AE10 24040002 */ li $a0, 2 +/* 01BA14 8001AE14 240B0005 */ li $t3, 5 +/* 01BA18 8001AE18 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 +/* 01BA1C 8001AE1C A02BAD50 */ sb $t3, %lo(D_8011AD50)($at) +/* 01BA20 8001AE20 8E2A0010 */ lw $t2, 0x10($s1) +/* 01BA24 8001AE24 3C010004 */ lui $at, 4 +/* 01BA28 8001AE28 01416025 */ or $t4, $t2, $at +/* 01BA2C 8001AE2C AE2C0010 */ sw $t4, 0x10($s1) +/* 01BA30 8001AE30 8FBF001C */ lw $ra, 0x1c($sp) +.L8001AE34: +/* 01BA34 8001AE34 8FB00014 */ lw $s0, 0x14($sp) +/* 01BA38 8001AE38 8FB10018 */ lw $s1, 0x18($sp) +/* 01BA3C 8001AE3C 03E00008 */ jr $ra +/* 01BA40 8001AE40 27BD0040 */ addiu $sp, $sp, 0x40 + diff --git a/asm/non_matchings/objects/func_8001F460.s b/asm/non_matchings/objects/func_8001F460.s index dd6cef33..671ba87d 100644 --- a/asm/non_matchings/objects/func_8001F460.s +++ b/asm/non_matchings/objects/func_8001F460.s @@ -1,1952 +1,1952 @@ -.late_rodata -glabel D_800E5670 -.double 1.2 -glabel D_800E5678 -.float 0.01 -.word 0 # Padding -glabel D_800E5680 -.double 0.1 - -.text -glabel func_8001F460 -/* 020060 8001F460 27BDFE68 */ addiu $sp, $sp, -0x198 -/* 020064 8001F464 3C0E8012 */ lui $t6, %hi(D_8011AE7A) # $t6, 0x8012 -/* 020068 8001F468 85CEAE7A */ lh $t6, %lo(D_8011AE7A)($t6) -/* 02006C 8001F46C AFB60050 */ sw $s6, 0x50($sp) -/* 020070 8001F470 AFB40048 */ sw $s4, 0x48($sp) -/* 020074 8001F474 00C0A025 */ move $s4, $a2 -/* 020078 8001F478 0080B025 */ move $s6, $a0 -/* 02007C 8001F47C AFBF0054 */ sw $ra, 0x54($sp) -/* 020080 8001F480 AFB5004C */ sw $s5, 0x4c($sp) -/* 020084 8001F484 AFB30044 */ sw $s3, 0x44($sp) -/* 020088 8001F488 AFB20040 */ sw $s2, 0x40($sp) -/* 02008C 8001F48C AFB1003C */ sw $s1, 0x3c($sp) -/* 020090 8001F490 AFB00038 */ sw $s0, 0x38($sp) -/* 020094 8001F494 E7B70030 */ swc1 $f23, 0x30($sp) -/* 020098 8001F498 E7B60034 */ swc1 $f22, 0x34($sp) -/* 02009C 8001F49C E7B50028 */ swc1 $f21, 0x28($sp) -/* 0200A0 8001F4A0 E7B4002C */ swc1 $f20, 0x2c($sp) -/* 0200A4 8001F4A4 05C10003 */ bgez $t6, .L8001F4B4 -/* 0200A8 8001F4A8 AFA5019C */ sw $a1, 0x19c($sp) -/* 0200AC 8001F4AC 100006F9 */ b .L80021094 -/* 0200B0 8001F4B0 24020001 */ li $v0, 1 -.L8001F4B4: -/* 0200B4 8001F4B4 8FAF019C */ lw $t7, 0x19c($sp) -/* 0200B8 8001F4B8 24180008 */ li $t8, 8 -/* 0200BC 8001F4BC 29E10009 */ slti $at, $t7, 9 -/* 0200C0 8001F4C0 14200002 */ bnez $at, .L8001F4CC -/* 0200C4 8001F4C4 00009025 */ move $s2, $zero -/* 0200C8 8001F4C8 AFB8019C */ sw $t8, 0x19c($sp) -.L8001F4CC: -/* 0200CC 8001F4CC 8FB9019C */ lw $t9, 0x19c($sp) -/* 0200D0 8001F4D0 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 0200D4 8001F4D4 44992000 */ mtc1 $t9, $f4 -/* 0200D8 8001F4D8 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 0200DC 8001F4DC 46802020 */ cvt.s.w $f0, $f4 -/* 0200E0 8001F4E0 3C01800E */ lui $at, %hi(D_800E5670 + 4) # $at, 0x800e -/* 0200E4 8001F4E4 00008025 */ move $s0, $zero -/* 0200E8 8001F4E8 E7A00114 */ swc1 $f0, 0x114($sp) -/* 0200EC 8001F4EC 8ED30064 */ lw $s3, 0x64($s6) -/* 0200F0 8001F4F0 15C00007 */ bnez $t6, .L8001F510 -/* 0200F4 8001F4F4 24110004 */ li $s1, 4 -/* 0200F8 8001F4F8 C4295670 */ lwc1 $f9, %lo(D_800E5670)($at) -/* 0200FC 8001F4FC C4285674 */ lwc1 $f8, %lo(D_800E5670 + 4)($at) -/* 020100 8001F500 460001A1 */ cvt.d.s $f6, $f0 -/* 020104 8001F504 46283282 */ mul.d $f10, $f6, $f8 -/* 020108 8001F508 46205120 */ cvt.s.d $f4, $f10 -/* 02010C 8001F50C E7A40114 */ swc1 $f4, 0x114($sp) -.L8001F510: -/* 020110 8001F510 866F002A */ lh $t7, 0x2a($s3) -/* 020114 8001F514 00000000 */ nop -/* 020118 8001F518 05E10019 */ bgez $t7, .L8001F580 -/* 02011C 8001F51C 00000000 */ nop -/* 020120 8001F520 92620034 */ lbu $v0, 0x34($s3) -/* 020124 8001F524 00004025 */ move $t0, $zero -/* 020128 8001F528 30580001 */ andi $t8, $v0, 1 -/* 02012C 8001F52C 13000002 */ beqz $t8, .L8001F538 -/* 020130 8001F530 30590002 */ andi $t9, $v0, 2 -/* 020134 8001F534 34088000 */ li $t0, 32768 -.L8001F538: -/* 020138 8001F538 13200003 */ beqz $t9, .L8001F548 -/* 02013C 8001F53C 304F0004 */ andi $t7, $v0, 4 -/* 020140 8001F540 350E4000 */ ori $t6, $t0, 0x4000 -/* 020144 8001F544 01C04025 */ move $t0, $t6 -.L8001F548: -/* 020148 8001F548 11E00002 */ beqz $t7, .L8001F554 -/* 02014C 8001F54C 35181000 */ ori $t8, $t0, 0x1000 -/* 020150 8001F550 03004025 */ move $t0, $t8 -.L8001F554: -/* 020154 8001F554 02002025 */ move $a0, $s0 -/* 020158 8001F558 0C01A955 */ jal get_buttons_pressed_from_player -/* 02015C 8001F55C AFA80174 */ sw $t0, 0x174($sp) -/* 020160 8001F560 8FA80174 */ lw $t0, 0x174($sp) -/* 020164 8001F564 26100001 */ addiu $s0, $s0, 1 -/* 020168 8001F568 1611FFFA */ bne $s0, $s1, .L8001F554 -/* 02016C 8001F56C 02429025 */ or $s2, $s2, $v0 -/* 020170 8001F570 0248C824 */ and $t9, $s2, $t0 -/* 020174 8001F574 13200002 */ beqz $t9, .L8001F580 -/* 020178 8001F578 240E0001 */ li $t6, 1 -/* 02017C 8001F57C A66E002A */ sh $t6, 0x2a($s3) -.L8001F580: -/* 020180 8001F580 8662002A */ lh $v0, 0x2a($s3) -/* 020184 8001F584 00000000 */ nop -/* 020188 8001F588 04400018 */ bltz $v0, .L8001F5EC -/* 02018C 8001F58C 00000000 */ nop -/* 020190 8001F590 826F0045 */ lb $t7, 0x45($s3) -/* 020194 8001F594 8FB8019C */ lw $t8, 0x19c($sp) -/* 020198 8001F598 15E00014 */ bnez $t7, .L8001F5EC -/* 02019C 8001F59C 0058C823 */ subu $t9, $v0, $t8 -/* 0201A0 8001F5A0 A679002A */ sh $t9, 0x2a($s3) -/* 0201A4 8001F5A4 8662002A */ lh $v0, 0x2a($s3) -/* 0201A8 8001F5A8 240E0001 */ li $t6, 1 -/* 0201AC 8001F5AC 1C40000F */ bgtz $v0, .L8001F5EC -/* 0201B0 8001F5B0 02C02025 */ move $a0, $s6 -/* 0201B4 8001F5B4 8E6F001C */ lw $t7, 0x1c($s3) -/* 0201B8 8001F5B8 A26E0045 */ sb $t6, 0x45($s3) -/* 0201BC 8001F5BC 8DF1003C */ lw $s1, 0x3c($t7) -/* 0201C0 8001F5C0 02602825 */ move $a1, $s3 -/* 0201C4 8001F5C4 0C008441 */ jal func_80021104 -/* 0201C8 8001F5C8 02203025 */ move $a2, $s1 -/* 0201CC 8001F5CC A660002A */ sh $zero, 0x2a($s3) -/* 0201D0 8001F5D0 02C02025 */ move $a0, $s6 -/* 0201D4 8001F5D4 02202825 */ move $a1, $s1 -/* 0201D8 8001F5D8 02603025 */ move $a2, $s3 -/* 0201DC 8001F5DC 0C008497 */ jal func_8002125C -/* 0201E0 8001F5E0 2407FFFF */ li $a3, -1 -/* 0201E4 8001F5E4 8662002A */ lh $v0, 0x2a($s3) -/* 0201E8 8001F5E8 00000000 */ nop -.L8001F5EC: -/* 0201EC 8001F5EC 1040000D */ beqz $v0, .L8001F624 -/* 0201F0 8001F5F0 00000000 */ nop -/* 0201F4 8001F5F4 8278003A */ lb $t8, 0x3a($s3) -/* 0201F8 8001F5F8 00000000 */ nop -/* 0201FC 8001F5FC 13000007 */ beqz $t8, .L8001F61C -/* 020200 8001F600 00000000 */ nop -/* 020204 8001F604 86D90006 */ lh $t9, 6($s6) -/* 020208 8001F608 24020001 */ li $v0, 1 -/* 02020C 8001F60C 372E4000 */ ori $t6, $t9, 0x4000 -/* 020210 8001F610 A6CE0006 */ sh $t6, 6($s6) -/* 020214 8001F614 1000069F */ b .L80021094 -/* 020218 8001F618 A2600042 */ sb $zero, 0x42($s3) -.L8001F61C: -/* 02021C 8001F61C 1000069D */ b .L80021094 -/* 020220 8001F620 00001025 */ move $v0, $zero -.L8001F624: -/* 020224 8001F624 86CF0006 */ lh $t7, 6($s6) -/* 020228 8001F628 2410BFFF */ li $s0, -16385 -/* 02022C 8001F62C 31F8BFFF */ andi $t8, $t7, 0xbfff -/* 020230 8001F630 A6D80006 */ sh $t8, 6($s6) -/* 020234 8001F634 82630039 */ lb $v1, 0x39($s3) -/* 020238 8001F638 2401FFFE */ li $at, -2 -/* 02023C 8001F63C 18600010 */ blez $v1, .L8001F680 -/* 020240 8001F640 00000000 */ nop -/* 020244 8001F644 0C000646 */ jal func_80001918 -/* 020248 8001F648 00000000 */ nop -/* 02024C 8001F64C 82630039 */ lb $v1, 0x39($s3) -/* 020250 8001F650 00000000 */ nop -/* 020254 8001F654 10620006 */ beq $v1, $v0, .L8001F670 -/* 020258 8001F658 2419FFFE */ li $t9, -2 -/* 02025C 8001F65C 0C0002CD */ jal play_music -/* 020260 8001F660 306400FF */ andi $a0, $v1, 0xff -/* 020264 8001F664 0C0002C6 */ jal func_80000B18 -/* 020268 8001F668 00000000 */ nop -/* 02026C 8001F66C 2419FFFE */ li $t9, -2 -.L8001F670: -/* 020270 8001F670 0C00032F */ jal func_80000CBC -/* 020274 8001F674 A2790039 */ sb $t9, 0x39($s3) -/* 020278 8001F678 10000008 */ b .L8001F69C -/* 02027C 8001F67C 82630038 */ lb $v1, 0x38($s3) -.L8001F680: -/* 020280 8001F680 14610005 */ bne $v1, $at, .L8001F698 -/* 020284 8001F684 00000000 */ nop -/* 020288 8001F688 0C0002CA */ jal func_80000B28 -/* 02028C 8001F68C 00000000 */ nop -/* 020290 8001F690 240EFFFF */ li $t6, -1 -/* 020294 8001F694 A26E0039 */ sb $t6, 0x39($s3) -.L8001F698: -/* 020298 8001F698 82630038 */ lb $v1, 0x38($s3) -.L8001F69C: -/* 02029C 8001F69C 00000000 */ nop -/* 0202A0 8001F6A0 1060001D */ beqz $v1, .L8001F718 -/* 0202A4 8001F6A4 00000000 */ nop -/* 0202A8 8001F6A8 866F0024 */ lh $t7, 0x24($s3) -/* 0202AC 8001F6AC 306200FF */ andi $v0, $v1, 0xff -/* 0202B0 8001F6B0 15E00019 */ bnez $t7, .L8001F718 -/* 0202B4 8001F6B4 240100FF */ li $at, 255 -/* 0202B8 8001F6B8 14410009 */ bne $v0, $at, .L8001F6E0 -/* 0202BC 8001F6BC 00000000 */ nop -/* 0202C0 8001F6C0 8E640018 */ lw $a0, 0x18($s3) -/* 0202C4 8001F6C4 00000000 */ nop -/* 0202C8 8001F6C8 10800012 */ beqz $a0, .L8001F714 -/* 0202CC 8001F6CC 00000000 */ nop -/* 0202D0 8001F6D0 0C001223 */ jal func_8000488C -/* 0202D4 8001F6D4 00000000 */ nop -/* 0202D8 8001F6D8 1000000F */ b .L8001F718 -/* 0202DC 8001F6DC A2600038 */ sb $zero, 0x38($s3) -.L8001F6E0: -/* 0202E0 8001F6E0 8E640018 */ lw $a0, 0x18($s3) -/* 0202E4 8001F6E4 00000000 */ nop -/* 0202E8 8001F6E8 10800007 */ beqz $a0, .L8001F708 -/* 0202EC 8001F6EC 00000000 */ nop -/* 0202F0 8001F6F0 0C001223 */ jal func_8000488C -/* 0202F4 8001F6F4 00000000 */ nop -/* 0202F8 8001F6F8 82620038 */ lb $v0, 0x38($s3) -/* 0202FC 8001F6FC 00000000 */ nop -/* 020300 8001F700 305800FF */ andi $t8, $v0, 0xff -/* 020304 8001F704 03001025 */ move $v0, $t8 -.L8001F708: -/* 020308 8001F708 3044FFFF */ andi $a0, $v0, 0xffff -/* 02030C 8001F70C 0C000741 */ jal play_sound_global -/* 020310 8001F710 26650018 */ addiu $a1, $s3, 0x18 -.L8001F714: -/* 020314 8001F714 A2600038 */ sb $zero, 0x38($s3) -.L8001F718: -/* 020318 8001F718 82620043 */ lb $v0, 0x43($s3) -/* 02031C 8001F71C 00000000 */ nop -/* 020320 8001F720 10400004 */ beqz $v0, .L8001F734 -/* 020324 8001F724 00000000 */ nop -/* 020328 8001F728 0C000326 */ jal set_music_fade_timer -/* 02032C 8001F72C 00022200 */ sll $a0, $v0, 8 -/* 020330 8001F730 A2600043 */ sb $zero, 0x43($s3) -.L8001F734: -/* 020334 8001F734 82620041 */ lb $v0, 0x41($s3) -/* 020338 8001F738 92680042 */ lbu $t0, 0x42($s3) -/* 02033C 8001F73C 30590001 */ andi $t9, $v0, 1 -/* 020340 8001F740 13200010 */ beqz $t9, .L8001F784 -/* 020344 8001F744 304E0002 */ andi $t6, $v0, 2 -/* 020348 8001F748 304E0002 */ andi $t6, $v0, 2 -/* 02034C 8001F74C 8FA2019C */ lw $v0, 0x19c($sp) -/* 020350 8001F750 11C00002 */ beqz $t6, .L8001F75C -/* 020354 8001F754 000278C0 */ sll $t7, $v0, 3 -/* 020358 8001F758 00004025 */ move $t0, $zero -.L8001F75C: -/* 02035C 8001F75C 01E8082A */ slt $at, $t7, $t0 -/* 020360 8001F760 10200003 */ beqz $at, .L8001F770 -/* 020364 8001F764 00000000 */ nop -/* 020368 8001F768 10000013 */ b .L8001F7B8 -/* 02036C 8001F76C 010F4023 */ subu $t0, $t0, $t7 -.L8001F770: -/* 020370 8001F770 86D80006 */ lh $t8, 6($s6) -/* 020374 8001F774 00004025 */ move $t0, $zero -/* 020378 8001F778 37194000 */ ori $t9, $t8, 0x4000 -/* 02037C 8001F77C 1000000E */ b .L8001F7B8 -/* 020380 8001F780 A6D90006 */ sh $t9, 6($s6) -.L8001F784: -/* 020384 8001F784 8FAF019C */ lw $t7, 0x19c($sp) -/* 020388 8001F788 11C00002 */ beqz $t6, .L8001F794 -/* 02038C 8001F78C 000FC0C0 */ sll $t8, $t7, 3 -/* 020390 8001F790 240800FF */ li $t0, 255 -.L8001F794: -/* 020394 8001F794 01184021 */ addu $t0, $t0, $t8 -/* 020398 8001F798 29010100 */ slti $at, $t0, 0x100 -/* 02039C 8001F79C 14200002 */ bnez $at, .L8001F7A8 -/* 0203A0 8001F7A0 00000000 */ nop -/* 0203A4 8001F7A4 240800FF */ li $t0, 255 -.L8001F7A8: -/* 0203A8 8001F7A8 86D90006 */ lh $t9, 6($s6) -/* 0203AC 8001F7AC 00000000 */ nop -/* 0203B0 8001F7B0 03307024 */ and $t6, $t9, $s0 -/* 0203B4 8001F7B4 A6CE0006 */ sh $t6, 6($s6) -.L8001F7B8: -/* 0203B8 8001F7B8 9262003B */ lbu $v0, 0x3b($s3) -/* 0203BC 8001F7BC 2401007F */ li $at, 127 -/* 0203C0 8001F7C0 3052007F */ andi $s2, $v0, 0x7f -/* 0203C4 8001F7C4 12410070 */ beq $s2, $at, .L8001F988 -/* 0203C8 8001F7C8 A2680042 */ sb $t0, 0x42($s3) -/* 0203CC 8001F7CC 2A410008 */ slti $at, $s2, 8 -/* 0203D0 8001F7D0 14200026 */ bnez $at, .L8001F86C -/* 0203D4 8001F7D4 2A410006 */ slti $at, $s2, 6 -/* 0203D8 8001F7D8 0C0078A7 */ jal get_misc_asset -/* 0203DC 8001F7DC 2404000D */ li $a0, 13 -/* 0203E0 8001F7E0 00127880 */ sll $t7, $s2, 2 -/* 0203E4 8001F7E4 01F27821 */ addu $t7, $t7, $s2 -/* 0203E8 8001F7E8 004F1821 */ addu $v1, $v0, $t7 -/* 0203EC 8001F7EC 2471FFD8 */ addiu $s1, $v1, -0x28 -/* 0203F0 8001F7F0 82280000 */ lb $t0, ($s1) -/* 0203F4 8001F7F4 82300001 */ lb $s0, 1($s1) -/* 0203F8 8001F7F8 311800FF */ andi $t8, $t0, 0xff -/* 0203FC 8001F7FC 27080384 */ addiu $t0, $t8, 0x384 -/* 020400 8001F800 321900FF */ andi $t9, $s0, 0xff -/* 020404 8001F804 27300384 */ addiu $s0, $t9, 0x384 -/* 020408 8001F808 AFA80174 */ sw $t0, 0x174($sp) -/* 02040C 8001F80C 0C00322D */ jal normalise_time -/* 020410 8001F810 24040006 */ li $a0, 6 -/* 020414 8001F814 8FA80174 */ lw $t0, 0x174($sp) -/* 020418 8001F818 82250002 */ lb $a1, 2($s1) -/* 02041C 8001F81C 82260003 */ lb $a2, 3($s1) -/* 020420 8001F820 82270004 */ lb $a3, 4($s1) -/* 020424 8001F824 AFB00014 */ sw $s0, 0x14($sp) -/* 020428 8001F828 AFA80010 */ sw $t0, 0x10($sp) -/* 02042C 8001F82C 9279003C */ lbu $t9, 0x3c($s3) -/* 020430 8001F830 30AE00FF */ andi $t6, $a1, 0xff -/* 020434 8001F834 00590019 */ multu $v0, $t9 -/* 020438 8001F838 01C02825 */ move $a1, $t6 -/* 02043C 8001F83C 30CF00FF */ andi $t7, $a2, 0xff -/* 020440 8001F840 30F800FF */ andi $t8, $a3, 0xff -/* 020444 8001F844 03003825 */ move $a3, $t8 -/* 020448 8001F848 01E03025 */ move $a2, $t7 -/* 02044C 8001F84C 00002025 */ move $a0, $zero -/* 020450 8001F850 00007012 */ mflo $t6 -/* 020454 8001F854 AFAE0018 */ sw $t6, 0x18($sp) -/* 020458 8001F858 0C00C378 */ jal func_80030DE0 -/* 02045C 8001F85C 00000000 */ nop -/* 020460 8001F860 10000048 */ b .L8001F984 -/* 020464 8001F864 241800FF */ li $t8, 255 -/* 020468 8001F868 2A410006 */ slti $at, $s2, 6 -.L8001F86C: -/* 02046C 8001F86C 1420001A */ bnez $at, .L8001F8D8 -/* 020470 8001F870 2404000E */ li $a0, 14 -/* 020474 8001F874 240F0040 */ li $t7, 64 -/* 020478 8001F878 24010007 */ li $at, 7 -/* 02047C 8001F87C 16410008 */ bne $s2, $at, .L8001F8A0 -/* 020480 8001F880 A3AF00A4 */ sb $t7, 0xa4($sp) -/* 020484 8001F884 241800C8 */ li $t8, 200 -/* 020488 8001F888 241900C8 */ li $t9, 200 -/* 02048C 8001F88C 240E00FF */ li $t6, 255 -/* 020490 8001F890 A3AE00A7 */ sb $t6, 0xa7($sp) -/* 020494 8001F894 A3B900A6 */ sb $t9, 0xa6($sp) -/* 020498 8001F898 10000007 */ b .L8001F8B8 -/* 02049C 8001F89C A3B800A5 */ sb $t8, 0xa5($sp) -.L8001F8A0: -/* 0204A0 8001F8A0 240F00FF */ li $t7, 255 -/* 0204A4 8001F8A4 241800FF */ li $t8, 255 -/* 0204A8 8001F8A8 241900FF */ li $t9, 255 -/* 0204AC 8001F8AC A3B900A7 */ sb $t9, 0xa7($sp) -/* 0204B0 8001F8B0 A3B800A6 */ sb $t8, 0xa6($sp) -/* 0204B4 8001F8B4 A3AF00A5 */ sb $t7, 0xa5($sp) -.L8001F8B8: -/* 0204B8 8001F8B8 240E0007 */ li $t6, 7 -/* 0204BC 8001F8BC 240F0003 */ li $t7, 3 -/* 0204C0 8001F8C0 A7AE00A8 */ sh $t6, 0xa8($sp) -/* 0204C4 8001F8C4 A7AF00AA */ sh $t7, 0xaa($sp) -/* 0204C8 8001F8C8 0C030076 */ jal func_800C01D8 -/* 0204CC 8001F8CC 27A400A4 */ addiu $a0, $sp, 0xa4 -/* 0204D0 8001F8D0 1000002C */ b .L8001F984 -/* 0204D4 8001F8D4 241800FF */ li $t8, 255 -.L8001F8D8: -/* 0204D8 8001F8D8 0C0078A7 */ jal get_misc_asset -/* 0204DC 8001F8DC A3A200A4 */ sb $v0, 0xa4($sp) -/* 0204E0 8001F8E0 82780040 */ lb $t8, 0x40($s3) -/* 0204E4 8001F8E4 00000000 */ nop -/* 0204E8 8001F8E8 0018C880 */ sll $t9, $t8, 2 -/* 0204EC 8001F8EC 0338C823 */ subu $t9, $t9, $t8 -/* 0204F0 8001F8F0 00598821 */ addu $s1, $v0, $t9 -/* 0204F4 8001F8F4 822E0000 */ lb $t6, ($s1) -/* 0204F8 8001F8F8 00000000 */ nop -/* 0204FC 8001F8FC A3AE00A5 */ sb $t6, 0xa5($sp) -/* 020500 8001F900 822F0001 */ lb $t7, 1($s1) -/* 020504 8001F904 00000000 */ nop -/* 020508 8001F908 A3AF00A6 */ sb $t7, 0xa6($sp) -/* 02050C 8001F90C 82380002 */ lb $t8, 2($s1) -/* 020510 8001F910 340FFFFF */ li $t7, 65535 -/* 020514 8001F914 A3B800A7 */ sb $t8, 0xa7($sp) -/* 020518 8001F918 9279003B */ lbu $t9, 0x3b($s3) -/* 02051C 8001F91C 00000000 */ nop -/* 020520 8001F920 332E0080 */ andi $t6, $t9, 0x80 -/* 020524 8001F924 11C00003 */ beqz $t6, .L8001F934 -/* 020528 8001F928 00000000 */ nop -/* 02052C 8001F92C 10000002 */ b .L8001F938 -/* 020530 8001F930 A7A000AA */ sh $zero, 0xaa($sp) -.L8001F934: -/* 020534 8001F934 A7AF00AA */ sh $t7, 0xaa($sp) -.L8001F938: -/* 020538 8001F938 0C00322D */ jal normalise_time -/* 02053C 8001F93C 24040006 */ li $a0, 6 -/* 020540 8001F940 9278003C */ lbu $t8, 0x3c($s3) -/* 020544 8001F944 00000000 */ nop -/* 020548 8001F948 00580019 */ multu $v0, $t8 -/* 02054C 8001F94C 0000C812 */ mflo $t9 -/* 020550 8001F950 A7B900A8 */ sh $t9, 0xa8($sp) -/* 020554 8001F954 0C030063 */ jal func_800C018C -/* 020558 8001F958 00000000 */ nop -/* 02055C 8001F95C 10400006 */ beqz $v0, .L8001F978 -/* 020560 8001F960 00000000 */ nop -/* 020564 8001F964 93AE00A4 */ lbu $t6, 0xa4($sp) -/* 020568 8001F968 00000000 */ nop -/* 02056C 8001F96C 31CF0080 */ andi $t7, $t6, 0x80 -/* 020570 8001F970 11E00004 */ beqz $t7, .L8001F984 -/* 020574 8001F974 241800FF */ li $t8, 255 -.L8001F978: -/* 020578 8001F978 0C030076 */ jal func_800C01D8 -/* 02057C 8001F97C 27A400A4 */ addiu $a0, $sp, 0xa4 -/* 020580 8001F980 241800FF */ li $t8, 255 -.L8001F984: -/* 020584 8001F984 A278003B */ sb $t8, 0x3b($s3) -.L8001F988: -/* 020588 8001F988 9279002E */ lbu $t9, 0x2e($s3) -/* 02058C 8001F98C 24010001 */ li $at, 1 -/* 020590 8001F990 1721003E */ bne $t9, $at, .L8001FA8C -/* 020594 8001F994 00000000 */ nop -/* 020598 8001F998 C7A60114 */ lwc1 $f6, 0x114($sp) -/* 02059C 8001F99C 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 0205A0 8001F9A0 44815800 */ mtc1 $at, $f11 -/* 0205A4 8001F9A4 44805000 */ mtc1 $zero, $f10 -/* 0205A8 8001F9A8 46003221 */ cvt.d.s $f8, $f6 -/* 0205AC 8001F9AC 462A4102 */ mul.d $f4, $f8, $f10 -/* 0205B0 8001F9B0 826F0031 */ lb $t7, 0x31($s3) -/* 0205B4 8001F9B4 86CE0000 */ lh $t6, ($s6) -/* 0205B8 8001F9B8 448F3000 */ mtc1 $t7, $f6 -/* 0205BC 8001F9BC 86CF0002 */ lh $t7, 2($s6) -/* 0205C0 8001F9C0 46803220 */ cvt.s.w $f8, $f6 -/* 0205C4 8001F9C4 46202020 */ cvt.s.d $f0, $f4 -/* 0205C8 8001F9C8 46004282 */ mul.s $f10, $f8, $f0 -/* 0205CC 8001F9CC 4458F800 */ cfc1 $t8, $31 -/* 0205D0 8001F9D0 00000000 */ nop -/* 0205D4 8001F9D4 37010003 */ ori $at, $t8, 3 -/* 0205D8 8001F9D8 38210002 */ xori $at, $at, 2 -/* 0205DC 8001F9DC 44C1F800 */ ctc1 $at, $31 -/* 0205E0 8001F9E0 00000000 */ nop -/* 0205E4 8001F9E4 46005124 */ cvt.w.s $f4, $f10 -/* 0205E8 8001F9E8 44D8F800 */ ctc1 $t8, $31 -/* 0205EC 8001F9EC 44182000 */ mfc1 $t8, $f4 -/* 0205F0 8001F9F0 00000000 */ nop -/* 0205F4 8001F9F4 01D8C821 */ addu $t9, $t6, $t8 -/* 0205F8 8001F9F8 A6D90000 */ sh $t9, ($s6) -/* 0205FC 8001F9FC 826E0032 */ lb $t6, 0x32($s3) -/* 020600 8001FA00 00000000 */ nop -/* 020604 8001FA04 448E3000 */ mtc1 $t6, $f6 -/* 020608 8001FA08 86CE0004 */ lh $t6, 4($s6) -/* 02060C 8001FA0C 46803220 */ cvt.s.w $f8, $f6 -/* 020610 8001FA10 46004282 */ mul.s $f10, $f8, $f0 -/* 020614 8001FA14 4458F800 */ cfc1 $t8, $31 -/* 020618 8001FA18 00000000 */ nop -/* 02061C 8001FA1C 37010003 */ ori $at, $t8, 3 -/* 020620 8001FA20 38210002 */ xori $at, $at, 2 -/* 020624 8001FA24 44C1F800 */ ctc1 $at, $31 -/* 020628 8001FA28 00000000 */ nop -/* 02062C 8001FA2C 46005124 */ cvt.w.s $f4, $f10 -/* 020630 8001FA30 44D8F800 */ ctc1 $t8, $31 -/* 020634 8001FA34 44182000 */ mfc1 $t8, $f4 -/* 020638 8001FA38 00000000 */ nop -/* 02063C 8001FA3C 01F8C821 */ addu $t9, $t7, $t8 -/* 020640 8001FA40 A6D90002 */ sh $t9, 2($s6) -/* 020644 8001FA44 826F0033 */ lb $t7, 0x33($s3) -/* 020648 8001FA48 00000000 */ nop -/* 02064C 8001FA4C 448F3000 */ mtc1 $t7, $f6 -/* 020650 8001FA50 00000000 */ nop -/* 020654 8001FA54 46803220 */ cvt.s.w $f8, $f6 -/* 020658 8001FA58 46004282 */ mul.s $f10, $f8, $f0 -/* 02065C 8001FA5C 4458F800 */ cfc1 $t8, $31 -/* 020660 8001FA60 00000000 */ nop -/* 020664 8001FA64 37010003 */ ori $at, $t8, 3 -/* 020668 8001FA68 38210002 */ xori $at, $at, 2 -/* 02066C 8001FA6C 44C1F800 */ ctc1 $at, $31 -/* 020670 8001FA70 00000000 */ nop -/* 020674 8001FA74 46005124 */ cvt.w.s $f4, $f10 -/* 020678 8001FA78 44D8F800 */ ctc1 $t8, $31 -/* 02067C 8001FA7C 44182000 */ mfc1 $t8, $f4 -/* 020680 8001FA80 00000000 */ nop -/* 020684 8001FA84 01D8C821 */ addu $t9, $t6, $t8 -/* 020688 8001FA88 A6D90004 */ sh $t9, 4($s6) -.L8001FA8C: -/* 02068C 8001FA8C 128000C5 */ beqz $s4, .L8001FDA4 -/* 020690 8001FA90 00000000 */ nop -/* 020694 8001FA94 8E8F0040 */ lw $t7, 0x40($s4) -/* 020698 8001FA98 00000000 */ nop -/* 02069C 8001FA9C 81EE0053 */ lb $t6, 0x53($t7) -/* 0206A0 8001FAA0 00000000 */ nop -/* 0206A4 8001FAA4 15C000BF */ bnez $t6, .L8001FDA4 -/* 0206A8 8001FAA8 00000000 */ nop -/* 0206AC 8001FAAC 4459F800 */ cfc1 $t9, $31 -/* 0206B0 8001FAB0 82D8003B */ lb $t8, 0x3b($s6) -/* 0206B4 8001FAB4 37210003 */ ori $at, $t9, 3 -/* 0206B8 8001FAB8 38210002 */ xori $at, $at, 2 -/* 0206BC 8001FABC A298003B */ sb $t8, 0x3b($s4) -/* 0206C0 8001FAC0 C6620010 */ lwc1 $f2, 0x10($s3) -/* 0206C4 8001FAC4 44C1F800 */ ctc1 $at, $31 -/* 0206C8 8001FAC8 86820018 */ lh $v0, 0x18($s4) -/* 0206CC 8001FACC 460011A4 */ cvt.w.s $f6, $f2 -/* 0206D0 8001FAD0 440F3000 */ mfc1 $t7, $f6 -/* 0206D4 8001FAD4 44D9F800 */ ctc1 $t9, $31 -/* 0206D8 8001FAD8 000F7400 */ sll $t6, $t7, 0x10 -/* 0206DC 8001FADC 000EC403 */ sra $t8, $t6, 0x10 -/* 0206E0 8001FAE0 10580007 */ beq $v0, $t8, .L8001FB00 -/* 0206E4 8001FAE4 00000000 */ nop -/* 0206E8 8001FAE8 44824000 */ mtc1 $v0, $f8 -/* 0206EC 8001FAEC 00000000 */ nop -/* 0206F0 8001FAF0 468042A0 */ cvt.s.w $f10, $f8 -/* 0206F4 8001FAF4 E66A0010 */ swc1 $f10, 0x10($s3) -/* 0206F8 8001FAF8 C6620010 */ lwc1 $f2, 0x10($s3) -/* 0206FC 8001FAFC 00000000 */ nop -.L8001FB00: -/* 020700 8001FB00 828F003A */ lb $t7, 0x3a($s4) -/* 020704 8001FB04 8E990068 */ lw $t9, 0x68($s4) -/* 020708 8001FB08 000F7080 */ sll $t6, $t7, 2 -/* 02070C 8001FB0C 032EC021 */ addu $t8, $t9, $t6 -/* 020710 8001FB10 8F030000 */ lw $v1, ($t8) -/* 020714 8001FB14 00000000 */ nop -/* 020718 8001FB18 10600097 */ beqz $v1, .L8001FD78 -/* 02071C 8001FB1C 00000000 */ nop -/* 020720 8001FB20 8282003B */ lb $v0, 0x3b($s4) -/* 020724 8001FB24 8C640000 */ lw $a0, ($v1) -/* 020728 8001FB28 04400093 */ bltz $v0, .L8001FD78 -/* 02072C 8001FB2C 00000000 */ nop -/* 020730 8001FB30 848F0048 */ lh $t7, 0x48($a0) -/* 020734 8001FB34 00000000 */ nop -/* 020738 8001FB38 004F082A */ slt $at, $v0, $t7 -/* 02073C 8001FB3C 1020008E */ beqz $at, .L8001FD78 -/* 020740 8001FB40 00000000 */ nop -/* 020744 8001FB44 8C990044 */ lw $t9, 0x44($a0) -/* 020748 8001FB48 000270C0 */ sll $t6, $v0, 3 -/* 02074C 8001FB4C 032EC021 */ addu $t8, $t9, $t6 -/* 020750 8001FB50 8F150004 */ lw $s5, 4($t8) -/* 020754 8001FB54 9263002C */ lbu $v1, 0x2c($s3) -/* 020758 8001FB58 26B5FFFF */ addiu $s5, $s5, -1 -/* 02075C 8001FB5C 00157900 */ sll $t7, $s5, 4 -/* 020760 8001FB60 1060000A */ beqz $v1, .L8001FB8C -/* 020764 8001FB64 01E0A825 */ move $s5, $t7 -/* 020768 8001FB68 24010001 */ li $at, 1 -/* 02076C 8001FB6C 1061002F */ beq $v1, $at, .L8001FC2C -/* 020770 8001FB70 24010002 */ li $at, 2 -/* 020774 8001FB74 10610018 */ beq $v1, $at, .L8001FBD8 -/* 020778 8001FB78 24010003 */ li $at, 3 -/* 02077C 8001FB7C 10610055 */ beq $v1, $at, .L8001FCD4 -/* 020780 8001FB80 00000000 */ nop -/* 020784 8001FB84 1000007D */ b .L8001FD7C -/* 020788 8001FB88 4459F800 */ cfc1 $t9, $31 -.L8001FB8C: -/* 02078C 8001FB8C C6640014 */ lwc1 $f4, 0x14($s3) -/* 020790 8001FB90 C7A60114 */ lwc1 $f6, 0x114($sp) -/* 020794 8001FB94 00000000 */ nop -/* 020798 8001FB98 46062202 */ mul.s $f8, $f4, $f6 -/* 02079C 8001FB9C 44952000 */ mtc1 $s5, $f4 -/* 0207A0 8001FBA0 46081280 */ add.s $f10, $f2, $f8 -/* 0207A4 8001FBA4 46802020 */ cvt.s.w $f0, $f4 -/* 0207A8 8001FBA8 E66A0010 */ swc1 $f10, 0x10($s3) -/* 0207AC 8001FBAC C6620010 */ lwc1 $f2, 0x10($s3) -/* 0207B0 8001FBB0 00000000 */ nop -/* 0207B4 8001FBB4 4602003E */ c.le.s $f0, $f2 -/* 0207B8 8001FBB8 00000000 */ nop -/* 0207BC 8001FBBC 4500006E */ bc1f .L8001FD78 -/* 0207C0 8001FBC0 00000000 */ nop -/* 0207C4 8001FBC4 46001181 */ sub.s $f6, $f2, $f0 -/* 0207C8 8001FBC8 E6660010 */ swc1 $f6, 0x10($s3) -/* 0207CC 8001FBCC C6620010 */ lwc1 $f2, 0x10($s3) -/* 0207D0 8001FBD0 1000006A */ b .L8001FD7C -/* 0207D4 8001FBD4 4459F800 */ cfc1 $t9, $31 -.L8001FBD8: -/* 0207D8 8001FBD8 C6680014 */ lwc1 $f8, 0x14($s3) -/* 0207DC 8001FBDC C7AA0114 */ lwc1 $f10, 0x114($sp) -/* 0207E0 8001FBE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0207E4 8001FBE4 460A4102 */ mul.s $f4, $f8, $f10 -/* 0207E8 8001FBE8 44954000 */ mtc1 $s5, $f8 -/* 0207EC 8001FBEC 46041180 */ add.s $f6, $f2, $f4 -/* 0207F0 8001FBF0 46804020 */ cvt.s.w $f0, $f8 -/* 0207F4 8001FBF4 E6660010 */ swc1 $f6, 0x10($s3) -/* 0207F8 8001FBF8 C6620010 */ lwc1 $f2, 0x10($s3) -/* 0207FC 8001FBFC 00000000 */ nop -/* 020800 8001FC00 4602003E */ c.le.s $f0, $f2 -/* 020804 8001FC04 00000000 */ nop -/* 020808 8001FC08 4500005B */ bc1f .L8001FD78 -/* 02080C 8001FC0C 00000000 */ nop -/* 020810 8001FC10 44815000 */ mtc1 $at, $f10 -/* 020814 8001FC14 00000000 */ nop -/* 020818 8001FC18 460A0101 */ sub.s $f4, $f0, $f10 -/* 02081C 8001FC1C E6640010 */ swc1 $f4, 0x10($s3) -/* 020820 8001FC20 C6620010 */ lwc1 $f2, 0x10($s3) -/* 020824 8001FC24 10000055 */ b .L8001FD7C -/* 020828 8001FC28 4459F800 */ cfc1 $t9, $31 -.L8001FC2C: -/* 02082C 8001FC2C 9279002D */ lbu $t9, 0x2d($s3) -/* 020830 8001FC30 C7A60114 */ lwc1 $f6, 0x114($sp) -/* 020834 8001FC34 17200018 */ bnez $t9, .L8001FC98 -/* 020838 8001FC38 00000000 */ nop -/* 02083C 8001FC3C C6660014 */ lwc1 $f6, 0x14($s3) -/* 020840 8001FC40 C7A80114 */ lwc1 $f8, 0x114($sp) -/* 020844 8001FC44 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 020848 8001FC48 46083282 */ mul.s $f10, $f6, $f8 -/* 02084C 8001FC4C 44953000 */ mtc1 $s5, $f6 -/* 020850 8001FC50 460A1100 */ add.s $f4, $f2, $f10 -/* 020854 8001FC54 46803020 */ cvt.s.w $f0, $f6 -/* 020858 8001FC58 E6640010 */ swc1 $f4, 0x10($s3) -/* 02085C 8001FC5C C6620010 */ lwc1 $f2, 0x10($s3) -/* 020860 8001FC60 00000000 */ nop -/* 020864 8001FC64 4602003E */ c.le.s $f0, $f2 -/* 020868 8001FC68 00000000 */ nop -/* 02086C 8001FC6C 45000008 */ bc1f .L8001FC90 -/* 020870 8001FC70 00000000 */ nop -/* 020874 8001FC74 44814000 */ mtc1 $at, $f8 -/* 020878 8001FC78 240E0001 */ li $t6, 1 -/* 02087C 8001FC7C 46080281 */ sub.s $f10, $f0, $f8 -/* 020880 8001FC80 A26E002D */ sb $t6, 0x2d($s3) -/* 020884 8001FC84 E66A0010 */ swc1 $f10, 0x10($s3) -/* 020888 8001FC88 C6620010 */ lwc1 $f2, 0x10($s3) -/* 02088C 8001FC8C 00000000 */ nop -.L8001FC90: -/* 020890 8001FC90 1000003A */ b .L8001FD7C -/* 020894 8001FC94 4459F800 */ cfc1 $t9, $31 -.L8001FC98: -/* 020898 8001FC98 C6640014 */ lwc1 $f4, 0x14($s3) -/* 02089C 8001FC9C 4480B000 */ mtc1 $zero, $f22 -/* 0208A0 8001FCA0 46062202 */ mul.s $f8, $f4, $f6 -/* 0208A4 8001FCA4 46081281 */ sub.s $f10, $f2, $f8 -/* 0208A8 8001FCA8 E66A0010 */ swc1 $f10, 0x10($s3) -/* 0208AC 8001FCAC C6620010 */ lwc1 $f2, 0x10($s3) -/* 0208B0 8001FCB0 00000000 */ nop -/* 0208B4 8001FCB4 4616103E */ c.le.s $f2, $f22 -/* 0208B8 8001FCB8 00000000 */ nop -/* 0208BC 8001FCBC 4500002E */ bc1f .L8001FD78 -/* 0208C0 8001FCC0 00000000 */ nop -/* 0208C4 8001FCC4 E6760010 */ swc1 $f22, 0x10($s3) -/* 0208C8 8001FCC8 C6620010 */ lwc1 $f2, 0x10($s3) -/* 0208CC 8001FCCC 1000002A */ b .L8001FD78 -/* 0208D0 8001FCD0 A260002D */ sb $zero, 0x2d($s3) -.L8001FCD4: -/* 0208D4 8001FCD4 9278002D */ lbu $t8, 0x2d($s3) -/* 0208D8 8001FCD8 C7A40114 */ lwc1 $f4, 0x114($sp) -/* 0208DC 8001FCDC 17000018 */ bnez $t8, .L8001FD40 -/* 0208E0 8001FCE0 00000000 */ nop -/* 0208E4 8001FCE4 C6640014 */ lwc1 $f4, 0x14($s3) -/* 0208E8 8001FCE8 C7A60114 */ lwc1 $f6, 0x114($sp) -/* 0208EC 8001FCEC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0208F0 8001FCF0 46062202 */ mul.s $f8, $f4, $f6 -/* 0208F4 8001FCF4 44952000 */ mtc1 $s5, $f4 -/* 0208F8 8001FCF8 46081280 */ add.s $f10, $f2, $f8 -/* 0208FC 8001FCFC 46802020 */ cvt.s.w $f0, $f4 -/* 020900 8001FD00 E66A0010 */ swc1 $f10, 0x10($s3) -/* 020904 8001FD04 C6620010 */ lwc1 $f2, 0x10($s3) -/* 020908 8001FD08 00000000 */ nop -/* 02090C 8001FD0C 4602003E */ c.le.s $f0, $f2 -/* 020910 8001FD10 00000000 */ nop -/* 020914 8001FD14 45000008 */ bc1f .L8001FD38 -/* 020918 8001FD18 00000000 */ nop -/* 02091C 8001FD1C 44813000 */ mtc1 $at, $f6 -/* 020920 8001FD20 240F0001 */ li $t7, 1 -/* 020924 8001FD24 46060201 */ sub.s $f8, $f0, $f6 -/* 020928 8001FD28 A26F002D */ sb $t7, 0x2d($s3) -/* 02092C 8001FD2C E6680010 */ swc1 $f8, 0x10($s3) -/* 020930 8001FD30 C6620010 */ lwc1 $f2, 0x10($s3) -/* 020934 8001FD34 00000000 */ nop -.L8001FD38: -/* 020938 8001FD38 10000010 */ b .L8001FD7C -/* 02093C 8001FD3C 4459F800 */ cfc1 $t9, $31 -.L8001FD40: -/* 020940 8001FD40 C66A0014 */ lwc1 $f10, 0x14($s3) -/* 020944 8001FD44 4480B000 */ mtc1 $zero, $f22 -/* 020948 8001FD48 46045182 */ mul.s $f6, $f10, $f4 -/* 02094C 8001FD4C 46061201 */ sub.s $f8, $f2, $f6 -/* 020950 8001FD50 E6680010 */ swc1 $f8, 0x10($s3) -/* 020954 8001FD54 C6620010 */ lwc1 $f2, 0x10($s3) -/* 020958 8001FD58 00000000 */ nop -/* 02095C 8001FD5C 4616103E */ c.le.s $f2, $f22 -/* 020960 8001FD60 00000000 */ nop -/* 020964 8001FD64 45000004 */ bc1f .L8001FD78 -/* 020968 8001FD68 00000000 */ nop -/* 02096C 8001FD6C E6760010 */ swc1 $f22, 0x10($s3) -/* 020970 8001FD70 C6620010 */ lwc1 $f2, 0x10($s3) -/* 020974 8001FD74 00000000 */ nop -.L8001FD78: -/* 020978 8001FD78 4459F800 */ cfc1 $t9, $31 -.L8001FD7C: -/* 02097C 8001FD7C 00000000 */ nop -/* 020980 8001FD80 37210003 */ ori $at, $t9, 3 -/* 020984 8001FD84 38210002 */ xori $at, $at, 2 -/* 020988 8001FD88 44C1F800 */ ctc1 $at, $31 -/* 02098C 8001FD8C 00000000 */ nop -/* 020990 8001FD90 460012A4 */ cvt.w.s $f10, $f2 -/* 020994 8001FD94 440E5000 */ mfc1 $t6, $f10 -/* 020998 8001FD98 44D9F800 */ ctc1 $t9, $31 -/* 02099C 8001FD9C A68E0018 */ sh $t6, 0x18($s4) -/* 0209A0 8001FDA0 00000000 */ nop -.L8001FDA4: -/* 0209A4 8001FDA4 C6660008 */ lwc1 $f6, 8($s3) -/* 0209A8 8001FDA8 44802800 */ mtc1 $zero, $f5 -/* 0209AC 8001FDAC 44802000 */ mtc1 $zero, $f4 -/* 0209B0 8001FDB0 46003221 */ cvt.d.s $f8, $f6 -/* 0209B4 8001FDB4 4624403E */ c.le.d $f8, $f4 -/* 0209B8 8001FDB8 4480B000 */ mtc1 $zero, $f22 -/* 0209BC 8001FDBC 45000006 */ bc1f .L8001FDD8 -/* 0209C0 8001FDC0 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 -/* 0209C4 8001FDC4 8FA5019C */ lw $a1, 0x19c($sp) -/* 0209C8 8001FDC8 0C008539 */ jal func_800214E4 -/* 0209CC 8001FDCC 02C02025 */ move $a0, $s6 -/* 0209D0 8001FDD0 100004B1 */ b .L80021098 -/* 0209D4 8001FDD4 8FBF0054 */ lw $ra, 0x54($sp) -.L8001FDD8: -/* 0209D8 8001FDD8 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) -/* 0209DC 8001FDDC 86650028 */ lh $a1, 0x28($s3) -/* 0209E0 8001FDE0 18600016 */ blez $v1, .L8001FE3C -/* 0209E4 8001FDE4 0000A025 */ move $s4, $zero -/* 0209E8 8001FDE8 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 -/* 0209EC 8001FDEC 24E7AE74 */ addiu $a3, %lo(D_8011AE74) # addiu $a3, $a3, -0x518c -/* 0209F0 8001FDF0 8CE60000 */ lw $a2, ($a3) -/* 0209F4 8001FDF4 00000000 */ nop -/* 0209F8 8001FDF8 8CD80000 */ lw $t8, ($a2) -/* 0209FC 8001FDFC 00000000 */ nop -/* 020A00 8001FE00 8F0F007C */ lw $t7, 0x7c($t8) -/* 020A04 8001FE04 00000000 */ nop -/* 020A08 8001FE08 10AF000C */ beq $a1, $t7, .L8001FE3C -/* 020A0C 8001FE0C 00000000 */ nop -.L8001FE10: -/* 020A10 8001FE10 26940001 */ addiu $s4, $s4, 1 -/* 020A14 8001FE14 0283082A */ slt $at, $s4, $v1 -/* 020A18 8001FE18 10200008 */ beqz $at, .L8001FE3C -/* 020A1C 8001FE1C 0014C880 */ sll $t9, $s4, 2 -/* 020A20 8001FE20 00D97021 */ addu $t6, $a2, $t9 -/* 020A24 8001FE24 8DD80000 */ lw $t8, ($t6) -/* 020A28 8001FE28 00000000 */ nop -/* 020A2C 8001FE2C 8F0F007C */ lw $t7, 0x7c($t8) -/* 020A30 8001FE30 00000000 */ nop -/* 020A34 8001FE34 14AFFFF6 */ bne $a1, $t7, .L8001FE10 -/* 020A38 8001FE38 00000000 */ nop -.L8001FE3C: -/* 020A3C 8001FE3C 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 -/* 020A40 8001FE40 0283082A */ slt $at, $s4, $v1 -/* 020A44 8001FE44 14200006 */ bnez $at, .L8001FE60 -/* 020A48 8001FE48 24E7AE74 */ addiu $a3, %lo(D_8011AE74) # addiu $a3, $a3, -0x518c -/* 020A4C 8001FE4C 8FA5019C */ lw $a1, 0x19c($sp) -/* 020A50 8001FE50 0C008539 */ jal func_800214E4 -/* 020A54 8001FE54 02C02025 */ move $a0, $s6 -/* 020A58 8001FE58 1000048F */ b .L80021098 -/* 020A5C 8001FE5C 8FBF0054 */ lw $ra, 0x54($sp) -.L8001FE60: -/* 020A60 8001FE60 26990001 */ addiu $t9, $s4, 1 -/* 020A64 8001FE64 0323082A */ slt $at, $t9, $v1 -/* 020A68 8001FE68 10200015 */ beqz $at, .L8001FEC0 -/* 020A6C 8001FE6C 24150001 */ li $s5, 1 -/* 020A70 8001FE70 8CEE0000 */ lw $t6, ($a3) -/* 020A74 8001FE74 0014C080 */ sll $t8, $s4, 2 -/* 020A78 8001FE78 01D82021 */ addu $a0, $t6, $t8 -/* 020A7C 8001FE7C 8C8F0004 */ lw $t7, 4($a0) -/* 020A80 8001FE80 02951021 */ addu $v0, $s4, $s5 -/* 020A84 8001FE84 8DF9007C */ lw $t9, 0x7c($t7) -/* 020A88 8001FE88 00000000 */ nop -/* 020A8C 8001FE8C 14B9000C */ bne $a1, $t9, .L8001FEC0 -/* 020A90 8001FE90 24420001 */ addiu $v0, $v0, 1 -.L8001FE94: -/* 020A94 8001FE94 0043082A */ slt $at, $v0, $v1 -/* 020A98 8001FE98 10200009 */ beqz $at, .L8001FEC0 -/* 020A9C 8001FE9C 26B50001 */ addiu $s5, $s5, 1 -/* 020AA0 8001FEA0 00157080 */ sll $t6, $s5, 2 -/* 020AA4 8001FEA4 008EC021 */ addu $t8, $a0, $t6 -/* 020AA8 8001FEA8 8F0F0000 */ lw $t7, ($t8) -/* 020AAC 8001FEAC 00000000 */ nop -/* 020AB0 8001FEB0 8DF9007C */ lw $t9, 0x7c($t7) -/* 020AB4 8001FEB4 00000000 */ nop -/* 020AB8 8001FEB8 10B9FFF6 */ beq $a1, $t9, .L8001FE94 -/* 020ABC 8001FEBC 24420001 */ addiu $v0, $v0, 1 -.L8001FEC0: -/* 020AC0 8001FEC0 2AA10002 */ slti $at, $s5, 2 -/* 020AC4 8001FEC4 10200006 */ beqz $at, .L8001FEE0 -/* 020AC8 8001FEC8 00000000 */ nop -/* 020ACC 8001FECC 8FA5019C */ lw $a1, 0x19c($sp) -/* 020AD0 8001FED0 0C008539 */ jal func_800214E4 -/* 020AD4 8001FED4 02C02025 */ move $a0, $s6 -/* 020AD8 8001FED8 1000046F */ b .L80021098 -/* 020ADC 8001FEDC 8FBF0054 */ lw $ra, 0x54($sp) -.L8001FEE0: -/* 020AE0 8001FEE0 8CE60000 */ lw $a2, ($a3) -/* 020AE4 8001FEE4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 020AE8 8001FEE8 8CCE0000 */ lw $t6, ($a2) -/* 020AEC 8001FEEC 44815800 */ mtc1 $at, $f11 -/* 020AF0 8001FEF0 8DD80040 */ lw $t8, 0x40($t6) -/* 020AF4 8001FEF4 44805000 */ mtc1 $zero, $f10 -/* 020AF8 8001FEF8 C706000C */ lwc1 $f6, 0xc($t8) -/* 020AFC 8001FEFC 00147880 */ sll $t7, $s4, 2 -/* 020B00 8001FF00 46003121 */ cvt.d.s $f4, $f6 -/* 020B04 8001FF04 00000000 */ nop -/* 020B08 8001FF08 46245203 */ div.d $f8, $f10, $f4 -/* 020B0C 8001FF0C 00157080 */ sll $t6, $s5, 2 -/* 020B10 8001FF10 00CFC821 */ addu $t9, $a2, $t7 -/* 020B14 8001FF14 032EC021 */ addu $t8, $t9, $t6 -/* 020B18 8001FF18 2AA10003 */ slti $at, $s5, 3 -/* 020B1C 8001FF1C 2403FFFF */ li $v1, -1 -/* 020B20 8001FF20 462041A0 */ cvt.s.d $f6, $f8 -/* 020B24 8001FF24 E7A600B4 */ swc1 $f6, 0xb4($sp) -/* 020B28 8001FF28 8F0FFFFC */ lw $t7, -4($t8) -/* 020B2C 8001FF2C 00000000 */ nop -/* 020B30 8001FF30 8DF1003C */ lw $s1, 0x3c($t7) -/* 020B34 8001FF34 14200009 */ bnez $at, .L8001FF5C -/* 020B38 8001FF38 2401FFFF */ li $at, -1 -/* 020B3C 8001FF3C 8222001D */ lb $v0, 0x1d($s1) -/* 020B40 8001FF40 26B9FFFF */ addiu $t9, $s5, -1 -/* 020B44 8001FF44 04400004 */ bltz $v0, .L8001FF58 -/* 020B48 8001FF48 0059082A */ slt $at, $v0, $t9 -/* 020B4C 8001FF4C 10200003 */ beqz $at, .L8001FF5C -/* 020B50 8001FF50 2401FFFF */ li $at, -1 -/* 020B54 8001FF54 00401825 */ move $v1, $v0 -.L8001FF58: -/* 020B58 8001FF58 2401FFFF */ li $at, -1 -.L8001FF5C: -/* 020B5C 8001FF5C 1461000B */ bne $v1, $at, .L8001FF8C -/* 020B60 8001FF60 00000000 */ nop -/* 020B64 8001FF64 866E0026 */ lh $t6, 0x26($s3) -/* 020B68 8001FF68 26B8FFFF */ addiu $t8, $s5, -1 -/* 020B6C 8001FF6C 01D8082A */ slt $at, $t6, $t8 -/* 020B70 8001FF70 14200006 */ bnez $at, .L8001FF8C -/* 020B74 8001FF74 00000000 */ nop -/* 020B78 8001FF78 8FA5019C */ lw $a1, 0x19c($sp) -/* 020B7C 8001FF7C 0C008539 */ jal func_800214E4 -/* 020B80 8001FF80 02C02025 */ move $a0, $s6 -/* 020B84 8001FF84 10000444 */ b .L80021098 -/* 020B88 8001FF88 8FBF0054 */ lw $ra, 0x54($sp) -.L8001FF8C: -/* 020B8C 8001FF8C 86620036 */ lh $v0, 0x36($s3) -/* 020B90 8001FF90 AFA30168 */ sw $v1, 0x168($sp) -/* 020B94 8001FF94 04400009 */ bltz $v0, .L8001FFBC -/* 020B98 8001FF98 27A90154 */ addiu $t1, $sp, 0x154 -/* 020B9C 8001FF9C 3C0F8012 */ lui $t7, %hi(D_8011AD53) # $t7, 0x8012 -/* 020BA0 8001FFA0 81EFAD53 */ lb $t7, %lo(D_8011AD53)($t7) -/* 020BA4 8001FFA4 8FB9019C */ lw $t9, 0x19c($sp) -/* 020BA8 8001FFA8 15E00002 */ bnez $t7, .L8001FFB4 -/* 020BAC 8001FFAC 00597023 */ subu $t6, $v0, $t9 -/* 020BB0 8001FFB0 A66E0036 */ sh $t6, 0x36($s3) -.L8001FFB4: -/* 020BB4 8001FFB4 10000437 */ b .L80021094 -/* 020BB8 8001FFB8 00001025 */ move $v0, $zero -.L8001FFBC: -/* 020BBC 8001FFBC 86700026 */ lh $s0, 0x26($s3) -/* 020BC0 8001FFC0 27AA0140 */ addiu $t2, $sp, 0x140 -/* 020BC4 8001FFC4 27AB012C */ addiu $t3, $sp, 0x12c -/* 020BC8 8001FFC8 27AD00E0 */ addiu $t5, $sp, 0xe0 -/* 020BCC 8001FFCC 27AC00CC */ addiu $t4, $sp, 0xcc -/* 020BD0 8001FFD0 27BF00B8 */ addiu $ra, $sp, 0xb8 -/* 020BD4 8001FFD4 27A700F4 */ addiu $a3, $sp, 0xf4 -/* 020BD8 8001FFD8 27B20108 */ addiu $s2, $sp, 0x108 -/* 020BDC 8001FFDC 2610FFFF */ addiu $s0, $s0, -1 -.L8001FFE0: -/* 020BE0 8001FFE0 2401FFFF */ li $at, -1 -/* 020BE4 8001FFE4 1601006A */ bne $s0, $at, .L80020190 -/* 020BE8 8001FFE8 0215082A */ slt $at, $s0, $s5 -/* 020BEC 8001FFEC 8FB80168 */ lw $t8, 0x168($sp) -/* 020BF0 8001FFF0 00147880 */ sll $t7, $s4, 2 -/* 020BF4 8001FFF4 13000037 */ beqz $t8, .L800200D4 -/* 020BF8 8001FFF8 02957021 */ addu $t6, $s4, $s5 -/* 020BFC 8001FFFC 00CF1021 */ addu $v0, $a2, $t7 -/* 020C00 80020000 8C590000 */ lw $t9, ($v0) -/* 020C04 80020004 8C4E0004 */ lw $t6, 4($v0) -/* 020C08 80020008 C720000C */ lwc1 $f0, 0xc($t9) -/* 020C0C 8002000C C5CA000C */ lwc1 $f10, 0xc($t6) -/* 020C10 80020010 00000000 */ nop -/* 020C14 80020014 460A0101 */ sub.s $f4, $f0, $f10 -/* 020C18 80020018 46002200 */ add.s $f8, $f4, $f0 -/* 020C1C 8002001C E5280000 */ swc1 $f8, ($t1) -/* 020C20 80020020 8C580000 */ lw $t8, ($v0) -/* 020C24 80020024 8C4F0004 */ lw $t7, 4($v0) -/* 020C28 80020028 C7020010 */ lwc1 $f2, 0x10($t8) -/* 020C2C 8002002C C5E60010 */ lwc1 $f6, 0x10($t7) -/* 020C30 80020030 00000000 */ nop -/* 020C34 80020034 46061281 */ sub.s $f10, $f2, $f6 -/* 020C38 80020038 46025100 */ add.s $f4, $f10, $f2 -/* 020C3C 8002003C E5440000 */ swc1 $f4, ($t2) -/* 020C40 80020040 8C590000 */ lw $t9, ($v0) -/* 020C44 80020044 8C4E0004 */ lw $t6, 4($v0) -/* 020C48 80020048 C72C0014 */ lwc1 $f12, 0x14($t9) -/* 020C4C 8002004C C5C80014 */ lwc1 $f8, 0x14($t6) -/* 020C50 80020050 00000000 */ nop -/* 020C54 80020054 46086181 */ sub.s $f6, $f12, $f8 -/* 020C58 80020058 460C3280 */ add.s $f10, $f6, $f12 -/* 020C5C 8002005C E56A0000 */ swc1 $f10, ($t3) -/* 020C60 80020060 8C580000 */ lw $t8, ($v0) -/* 020C64 80020064 00000000 */ nop -/* 020C68 80020068 870F0000 */ lh $t7, ($t8) -/* 020C6C 8002006C 00000000 */ nop -/* 020C70 80020070 448F2000 */ mtc1 $t7, $f4 -/* 020C74 80020074 00000000 */ nop -/* 020C78 80020078 46802220 */ cvt.s.w $f8, $f4 -/* 020C7C 8002007C E5A80000 */ swc1 $f8, ($t5) -/* 020C80 80020080 8C590000 */ lw $t9, ($v0) -/* 020C84 80020084 00000000 */ nop -/* 020C88 80020088 872E0002 */ lh $t6, 2($t9) -/* 020C8C 8002008C 00000000 */ nop -/* 020C90 80020090 448E3000 */ mtc1 $t6, $f6 -/* 020C94 80020094 00000000 */ nop -/* 020C98 80020098 468032A0 */ cvt.s.w $f10, $f6 -/* 020C9C 8002009C E58A0000 */ swc1 $f10, ($t4) -/* 020CA0 800200A0 8C580000 */ lw $t8, ($v0) -/* 020CA4 800200A4 00000000 */ nop -/* 020CA8 800200A8 870F0004 */ lh $t7, 4($t8) -/* 020CAC 800200AC 00000000 */ nop -/* 020CB0 800200B0 448F2000 */ mtc1 $t7, $f4 -/* 020CB4 800200B4 00000000 */ nop -/* 020CB8 800200B8 46802220 */ cvt.s.w $f8, $f4 -/* 020CBC 800200BC E7E80000 */ swc1 $f8, ($ra) -/* 020CC0 800200C0 8C590000 */ lw $t9, ($v0) -/* 020CC4 800200C4 00000000 */ nop -/* 020CC8 800200C8 C7260008 */ lwc1 $f6, 8($t9) -/* 020CCC 800200CC 1000010A */ b .L800204F8 -/* 020CD0 800200D0 E4E60000 */ swc1 $f6, ($a3) -.L800200D4: -/* 020CD4 800200D4 000EC080 */ sll $t8, $t6, 2 -/* 020CD8 800200D8 00D81021 */ addu $v0, $a2, $t8 -/* 020CDC 800200DC 8C4FFFFC */ lw $t7, -4($v0) -/* 020CE0 800200E0 00000000 */ nop -/* 020CE4 800200E4 C5EA000C */ lwc1 $f10, 0xc($t7) -/* 020CE8 800200E8 00000000 */ nop -/* 020CEC 800200EC E52A0000 */ swc1 $f10, ($t1) -/* 020CF0 800200F0 8C59FFFC */ lw $t9, -4($v0) -/* 020CF4 800200F4 00000000 */ nop -/* 020CF8 800200F8 C7240010 */ lwc1 $f4, 0x10($t9) -/* 020CFC 800200FC 00000000 */ nop -/* 020D00 80020100 E5440000 */ swc1 $f4, ($t2) -/* 020D04 80020104 8C4EFFFC */ lw $t6, -4($v0) -/* 020D08 80020108 00000000 */ nop -/* 020D0C 8002010C C5C80014 */ lwc1 $f8, 0x14($t6) -/* 020D10 80020110 00000000 */ nop -/* 020D14 80020114 E5680000 */ swc1 $f8, ($t3) -/* 020D18 80020118 8C58FFFC */ lw $t8, -4($v0) -/* 020D1C 8002011C 00000000 */ nop -/* 020D20 80020120 870F0000 */ lh $t7, ($t8) -/* 020D24 80020124 00000000 */ nop -/* 020D28 80020128 448F3000 */ mtc1 $t7, $f6 -/* 020D2C 8002012C 00000000 */ nop -/* 020D30 80020130 468032A0 */ cvt.s.w $f10, $f6 -/* 020D34 80020134 E5AA0000 */ swc1 $f10, ($t5) -/* 020D38 80020138 8C59FFFC */ lw $t9, -4($v0) -/* 020D3C 8002013C 00000000 */ nop -/* 020D40 80020140 872E0002 */ lh $t6, 2($t9) -/* 020D44 80020144 00000000 */ nop -/* 020D48 80020148 448E2000 */ mtc1 $t6, $f4 -/* 020D4C 8002014C 00000000 */ nop -/* 020D50 80020150 46802220 */ cvt.s.w $f8, $f4 -/* 020D54 80020154 E5880000 */ swc1 $f8, ($t4) -/* 020D58 80020158 8C58FFFC */ lw $t8, -4($v0) -/* 020D5C 8002015C 00000000 */ nop -/* 020D60 80020160 870F0004 */ lh $t7, 4($t8) -/* 020D64 80020164 00000000 */ nop -/* 020D68 80020168 448F3000 */ mtc1 $t7, $f6 -/* 020D6C 8002016C 00000000 */ nop -/* 020D70 80020170 468032A0 */ cvt.s.w $f10, $f6 -/* 020D74 80020174 E7EA0000 */ swc1 $f10, ($ra) -/* 020D78 80020178 8C59FFFC */ lw $t9, -4($v0) -/* 020D7C 8002017C 00000000 */ nop -/* 020D80 80020180 C7240008 */ lwc1 $f4, 8($t9) -/* 020D84 80020184 100000DC */ b .L800204F8 -/* 020D88 80020188 E4E40000 */ swc1 $f4, ($a3) -/* 020D8C 8002018C 0215082A */ slt $at, $s0, $s5 -.L80020190: -/* 020D90 80020190 1420008C */ bnez $at, .L800203C4 -/* 020D94 80020194 02142821 */ addu $a1, $s0, $s4 -/* 020D98 80020198 8FAE0168 */ lw $t6, 0x168($sp) -/* 020D9C 8002019C 2401FFFF */ li $at, -1 -/* 020DA0 800201A0 15C10055 */ bne $t6, $at, .L800202F8 -/* 020DA4 800201A4 02B41021 */ addu $v0, $s5, $s4 -/* 020DA8 800201A8 0002C080 */ sll $t8, $v0, 2 -/* 020DAC 800201AC 00D87821 */ addu $t7, $a2, $t8 -/* 020DB0 800201B0 8DF9FFFC */ lw $t9, -4($t7) -/* 020DB4 800201B4 00022880 */ sll $a1, $v0, 2 -/* 020DB8 800201B8 8F31003C */ lw $s1, 0x3c($t9) -/* 020DBC 800201BC 24010001 */ li $at, 1 -/* 020DC0 800201C0 822E0022 */ lb $t6, 0x22($s1) -/* 020DC4 800201C4 26B0FFFF */ addiu $s0, $s5, -1 -/* 020DC8 800201C8 15C1001A */ bne $t6, $at, .L80020234 -/* 020DCC 800201CC 24A5FFFC */ addiu $a1, $a1, -4 -/* 020DD0 800201D0 82640030 */ lb $a0, 0x30($s3) -/* 020DD4 800201D4 AFBF006C */ sw $ra, 0x6c($sp) -/* 020DD8 800201D8 AFAD0074 */ sw $t5, 0x74($sp) -/* 020DDC 800201DC AFAC0070 */ sw $t4, 0x70($sp) -/* 020DE0 800201E0 AFAB0078 */ sw $t3, 0x78($sp) -/* 020DE4 800201E4 AFAA007C */ sw $t2, 0x7c($sp) -/* 020DE8 800201E8 AFA90088 */ sw $t1, 0x88($sp) -/* 020DEC 800201EC AFA70068 */ sw $a3, 0x68($sp) -/* 020DF0 800201F0 0C01997A */ jal set_object_stack_pos -/* 020DF4 800201F4 AFA5005C */ sw $a1, 0x5c($sp) -/* 020DF8 800201F8 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 020DFC 800201FC 00000000 */ nop -/* 020E00 80020200 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 -/* 020E04 80020204 8CC6AE74 */ lw $a2, %lo(D_8011AE74)($a2) -/* 020E08 80020208 8FA5005C */ lw $a1, 0x5c($sp) -/* 020E0C 8002020C 8FA70068 */ lw $a3, 0x68($sp) -/* 020E10 80020210 8FA90088 */ lw $t1, 0x88($sp) -/* 020E14 80020214 8FAA007C */ lw $t2, 0x7c($sp) -/* 020E18 80020218 8FAB0078 */ lw $t3, 0x78($sp) -/* 020E1C 8002021C 8FAC0070 */ lw $t4, 0x70($sp) -/* 020E20 80020220 8FAD0074 */ lw $t5, 0x74($sp) -/* 020E24 80020224 8FBF006C */ lw $ra, 0x6c($sp) -/* 020E28 80020228 00401825 */ move $v1, $v0 -/* 020E2C 8002022C 10000004 */ b .L80020240 -/* 020E30 80020230 00C52021 */ addu $a0, $a2, $a1 -.L80020234: -/* 020E34 80020234 00C52021 */ addu $a0, $a2, $a1 -/* 020E38 80020238 8C830000 */ lw $v1, ($a0) -/* 020E3C 8002023C 00000000 */ nop -.L80020240: -/* 020E40 80020240 8C98FFFC */ lw $t8, -4($a0) -/* 020E44 80020244 C460000C */ lwc1 $f0, 0xc($v1) -/* 020E48 80020248 C708000C */ lwc1 $f8, 0xc($t8) -/* 020E4C 8002024C 00000000 */ nop -/* 020E50 80020250 46080181 */ sub.s $f6, $f0, $f8 -/* 020E54 80020254 46003280 */ add.s $f10, $f6, $f0 -/* 020E58 80020258 E52A0000 */ swc1 $f10, ($t1) -/* 020E5C 8002025C 8C8FFFFC */ lw $t7, -4($a0) -/* 020E60 80020260 C4620010 */ lwc1 $f2, 0x10($v1) -/* 020E64 80020264 C5E40010 */ lwc1 $f4, 0x10($t7) -/* 020E68 80020268 00000000 */ nop -/* 020E6C 8002026C 46041201 */ sub.s $f8, $f2, $f4 -/* 020E70 80020270 46024180 */ add.s $f6, $f8, $f2 -/* 020E74 80020274 E5460000 */ swc1 $f6, ($t2) -/* 020E78 80020278 8C99FFFC */ lw $t9, -4($a0) -/* 020E7C 8002027C C46C0014 */ lwc1 $f12, 0x14($v1) -/* 020E80 80020280 C72A0014 */ lwc1 $f10, 0x14($t9) -/* 020E84 80020284 00000000 */ nop -/* 020E88 80020288 460A6101 */ sub.s $f4, $f12, $f10 -/* 020E8C 8002028C 460C2200 */ add.s $f8, $f4, $f12 -/* 020E90 80020290 E5680000 */ swc1 $f8, ($t3) -/* 020E94 80020294 846E0002 */ lh $t6, 2($v1) -/* 020E98 80020298 00000000 */ nop -/* 020E9C 8002029C 448E3000 */ mtc1 $t6, $f6 -/* 020EA0 800202A0 00000000 */ nop -/* 020EA4 800202A4 468032A0 */ cvt.s.w $f10, $f6 -/* 020EA8 800202A8 E58A0000 */ swc1 $f10, ($t4) -/* 020EAC 800202AC 84780004 */ lh $t8, 4($v1) -/* 020EB0 800202B0 00000000 */ nop -/* 020EB4 800202B4 44982000 */ mtc1 $t8, $f4 -/* 020EB8 800202B8 00000000 */ nop -/* 020EBC 800202BC 46802220 */ cvt.s.w $f8, $f4 -/* 020EC0 800202C0 E7E80000 */ swc1 $f8, ($ra) -/* 020EC4 800202C4 8C830000 */ lw $v1, ($a0) -/* 020EC8 800202C8 00000000 */ nop -/* 020ECC 800202CC 846F0000 */ lh $t7, ($v1) -/* 020ED0 800202D0 00000000 */ nop -/* 020ED4 800202D4 448F3000 */ mtc1 $t7, $f6 -/* 020ED8 800202D8 00000000 */ nop -/* 020EDC 800202DC 468032A0 */ cvt.s.w $f10, $f6 -/* 020EE0 800202E0 E5AA0000 */ swc1 $f10, ($t5) -/* 020EE4 800202E4 8C990000 */ lw $t9, ($a0) -/* 020EE8 800202E8 00000000 */ nop -/* 020EEC 800202EC C7240008 */ lwc1 $f4, 8($t9) -/* 020EF0 800202F0 10000081 */ b .L800204F8 -/* 020EF4 800202F4 E4E40000 */ swc1 $f4, ($a3) -.L800202F8: -/* 020EF8 800202F8 8FAE0168 */ lw $t6, 0x168($sp) -/* 020EFC 800202FC 00000000 */ nop -/* 020F00 80020300 028EC021 */ addu $t8, $s4, $t6 -/* 020F04 80020304 03107821 */ addu $t7, $t8, $s0 -/* 020F08 80020308 01F5C823 */ subu $t9, $t7, $s5 -/* 020F0C 8002030C 00197080 */ sll $t6, $t9, 2 -/* 020F10 80020310 00CE1021 */ addu $v0, $a2, $t6 -/* 020F14 80020314 8C580000 */ lw $t8, ($v0) -/* 020F18 80020318 00000000 */ nop -/* 020F1C 8002031C C708000C */ lwc1 $f8, 0xc($t8) -/* 020F20 80020320 00000000 */ nop -/* 020F24 80020324 E5280000 */ swc1 $f8, ($t1) -/* 020F28 80020328 8C4F0000 */ lw $t7, ($v0) -/* 020F2C 8002032C 00000000 */ nop -/* 020F30 80020330 C5E60010 */ lwc1 $f6, 0x10($t7) -/* 020F34 80020334 00000000 */ nop -/* 020F38 80020338 E5460000 */ swc1 $f6, ($t2) -/* 020F3C 8002033C 8C590000 */ lw $t9, ($v0) -/* 020F40 80020340 00000000 */ nop -/* 020F44 80020344 C72A0014 */ lwc1 $f10, 0x14($t9) -/* 020F48 80020348 00000000 */ nop -/* 020F4C 8002034C E56A0000 */ swc1 $f10, ($t3) -/* 020F50 80020350 8C4E0000 */ lw $t6, ($v0) -/* 020F54 80020354 00000000 */ nop -/* 020F58 80020358 85D80000 */ lh $t8, ($t6) -/* 020F5C 8002035C 00000000 */ nop -/* 020F60 80020360 44982000 */ mtc1 $t8, $f4 -/* 020F64 80020364 00000000 */ nop -/* 020F68 80020368 46802220 */ cvt.s.w $f8, $f4 -/* 020F6C 8002036C E5A80000 */ swc1 $f8, ($t5) -/* 020F70 80020370 8C4F0000 */ lw $t7, ($v0) -/* 020F74 80020374 00000000 */ nop -/* 020F78 80020378 85F90002 */ lh $t9, 2($t7) -/* 020F7C 8002037C 00000000 */ nop -/* 020F80 80020380 44993000 */ mtc1 $t9, $f6 -/* 020F84 80020384 00000000 */ nop -/* 020F88 80020388 468032A0 */ cvt.s.w $f10, $f6 -/* 020F8C 8002038C E58A0000 */ swc1 $f10, ($t4) -/* 020F90 80020390 8C4E0000 */ lw $t6, ($v0) -/* 020F94 80020394 00000000 */ nop -/* 020F98 80020398 85D80004 */ lh $t8, 4($t6) -/* 020F9C 8002039C 00000000 */ nop -/* 020FA0 800203A0 44982000 */ mtc1 $t8, $f4 -/* 020FA4 800203A4 00000000 */ nop -/* 020FA8 800203A8 46802220 */ cvt.s.w $f8, $f4 -/* 020FAC 800203AC E7E80000 */ swc1 $f8, ($ra) -/* 020FB0 800203B0 8C4F0000 */ lw $t7, ($v0) -/* 020FB4 800203B4 00000000 */ nop -/* 020FB8 800203B8 C5E60008 */ lwc1 $f6, 8($t7) -/* 020FBC 800203BC 1000004E */ b .L800204F8 -/* 020FC0 800203C0 E4E60000 */ swc1 $f6, ($a3) -.L800203C4: -/* 020FC4 800203C4 0005C880 */ sll $t9, $a1, 2 -/* 020FC8 800203C8 00D92021 */ addu $a0, $a2, $t9 -/* 020FCC 800203CC 8C820000 */ lw $v0, ($a0) -/* 020FD0 800203D0 24010001 */ li $at, 1 -/* 020FD4 800203D4 8C51003C */ lw $s1, 0x3c($v0) -/* 020FD8 800203D8 00401825 */ move $v1, $v0 -/* 020FDC 800203DC 822E0022 */ lb $t6, 0x22($s1) -/* 020FE0 800203E0 00000000 */ nop -/* 020FE4 800203E4 15C1001A */ bne $t6, $at, .L80020450 -/* 020FE8 800203E8 00000000 */ nop -/* 020FEC 800203EC 82640030 */ lb $a0, 0x30($s3) -/* 020FF0 800203F0 AFBF006C */ sw $ra, 0x6c($sp) -/* 020FF4 800203F4 AFAD0074 */ sw $t5, 0x74($sp) -/* 020FF8 800203F8 AFAC0070 */ sw $t4, 0x70($sp) -/* 020FFC 800203FC AFAB0078 */ sw $t3, 0x78($sp) -/* 021000 80020400 AFAA007C */ sw $t2, 0x7c($sp) -/* 021004 80020404 AFA90088 */ sw $t1, 0x88($sp) -/* 021008 80020408 AFA70068 */ sw $a3, 0x68($sp) -/* 02100C 8002040C 0C01997A */ jal set_object_stack_pos -/* 021010 80020410 AFB90080 */ sw $t9, 0x80($sp) -/* 021014 80020414 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 021018 80020418 00000000 */ nop -/* 02101C 8002041C 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 -/* 021020 80020420 8CC6AE74 */ lw $a2, %lo(D_8011AE74)($a2) -/* 021024 80020424 8FA50080 */ lw $a1, 0x80($sp) -/* 021028 80020428 8FA70068 */ lw $a3, 0x68($sp) -/* 02102C 8002042C 8FA90088 */ lw $t1, 0x88($sp) -/* 021030 80020430 8FAA007C */ lw $t2, 0x7c($sp) -/* 021034 80020434 8FAB0078 */ lw $t3, 0x78($sp) -/* 021038 80020438 8FAC0070 */ lw $t4, 0x70($sp) -/* 02103C 8002043C 8FAD0074 */ lw $t5, 0x74($sp) -/* 021040 80020440 8FBF006C */ lw $ra, 0x6c($sp) -/* 021044 80020444 00401825 */ move $v1, $v0 -/* 021048 80020448 10000001 */ b .L80020450 -/* 02104C 8002044C 00C52021 */ addu $a0, $a2, $a1 -.L80020450: -/* 021050 80020450 C46A000C */ lwc1 $f10, 0xc($v1) -/* 021054 80020454 24010001 */ li $at, 1 -/* 021058 80020458 E52A0000 */ swc1 $f10, ($t1) -/* 02105C 8002045C C4640010 */ lwc1 $f4, 0x10($v1) -/* 021060 80020460 00000000 */ nop -/* 021064 80020464 E5440000 */ swc1 $f4, ($t2) -/* 021068 80020468 C4680014 */ lwc1 $f8, 0x14($v1) -/* 02106C 8002046C 00000000 */ nop -/* 021070 80020470 E5680000 */ swc1 $f8, ($t3) -/* 021074 80020474 84780002 */ lh $t8, 2($v1) -/* 021078 80020478 00000000 */ nop -/* 02107C 8002047C 44983000 */ mtc1 $t8, $f6 -/* 021080 80020480 00000000 */ nop -/* 021084 80020484 468032A0 */ cvt.s.w $f10, $f6 -/* 021088 80020488 E58A0000 */ swc1 $f10, ($t4) -/* 02108C 8002048C 846F0004 */ lh $t7, 4($v1) -/* 021090 80020490 00000000 */ nop -/* 021094 80020494 448F2000 */ mtc1 $t7, $f4 -/* 021098 80020498 00000000 */ nop -/* 02109C 8002049C 46802220 */ cvt.s.w $f8, $f4 -/* 0210A0 800204A0 E7E80000 */ swc1 $f8, ($ra) -/* 0210A4 800204A4 8C830000 */ lw $v1, ($a0) -/* 0210A8 800204A8 00000000 */ nop -/* 0210AC 800204AC 84790000 */ lh $t9, ($v1) -/* 0210B0 800204B0 00000000 */ nop -/* 0210B4 800204B4 44993000 */ mtc1 $t9, $f6 -/* 0210B8 800204B8 00000000 */ nop -/* 0210BC 800204BC 468032A0 */ cvt.s.w $f10, $f6 -/* 0210C0 800204C0 E5AA0000 */ swc1 $f10, ($t5) -/* 0210C4 800204C4 822E0022 */ lb $t6, 0x22($s1) -/* 0210C8 800204C8 00000000 */ nop -/* 0210CC 800204CC 15C10005 */ bne $t6, $at, .L800204E4 -/* 0210D0 800204D0 00000000 */ nop -/* 0210D4 800204D4 C5840000 */ lwc1 $f4, ($t4) -/* 0210D8 800204D8 00000000 */ nop -/* 0210DC 800204DC 46002207 */ neg.s $f8, $f4 -/* 0210E0 800204E0 E5880000 */ swc1 $f8, ($t4) -.L800204E4: -/* 0210E4 800204E4 8C980000 */ lw $t8, ($a0) -/* 0210E8 800204E8 00000000 */ nop -/* 0210EC 800204EC C7060008 */ lwc1 $f6, 8($t8) -/* 0210F0 800204F0 00000000 */ nop -/* 0210F4 800204F4 E4E60000 */ swc1 $f6, ($a3) -.L800204F8: -/* 0210F8 800204F8 24E70004 */ addiu $a3, $a3, 4 -/* 0210FC 800204FC 25290004 */ addiu $t1, $t1, 4 -/* 021100 80020500 254A0004 */ addiu $t2, $t2, 4 -/* 021104 80020504 256B0004 */ addiu $t3, $t3, 4 -/* 021108 80020508 25AD0004 */ addiu $t5, $t5, 4 -/* 02110C 8002050C 258C0004 */ addiu $t4, $t4, 4 -/* 021110 80020510 27FF0004 */ addiu $ra, $ra, 4 -/* 021114 80020514 14F2FEB2 */ bne $a3, $s2, .L8001FFE0 -/* 021118 80020518 26100001 */ addiu $s0, $s0, 1 -/* 02111C 8002051C C66A0004 */ lwc1 $f10, 4($s3) -/* 021120 80020520 00009025 */ move $s2, $zero -/* 021124 80020524 460AB032 */ c.eq.s $f22, $f10 -/* 021128 80020528 00008025 */ move $s0, $zero -/* 02112C 8002052C 45000005 */ bc1f .L80020544 -/* 021130 80020530 27B10154 */ addiu $s1, $sp, 0x154 -/* 021134 80020534 3C01800E */ lui $at, %hi(D_800E5678) # $at, 0x800e -/* 021138 80020538 C4245678 */ lwc1 $f4, %lo(D_800E5678)($at) -/* 02113C 8002053C 00000000 */ nop -/* 021140 80020540 E6640004 */ swc1 $f4, 4($s3) -.L80020544: -/* 021144 80020544 C6680004 */ lwc1 $f8, 4($s3) -/* 021148 80020548 C7A60114 */ lwc1 $f6, 0x114($sp) -/* 02114C 8002054C C6640000 */ lwc1 $f4, ($s3) -/* 021150 80020550 46064282 */ mul.s $f10, $f8, $f6 -/* 021154 80020554 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 021158 80020558 44814800 */ mtc1 $at, $f9 -/* 02115C 8002055C 44804000 */ mtc1 $zero, $f8 -/* 021160 80020560 460A2500 */ add.s $f20, $f4, $f10 -/* 021164 80020564 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 021168 80020568 4600A021 */ cvt.d.s $f0, $f20 -/* 02116C 8002056C 4620403E */ c.le.d $f8, $f0 -/* 021170 80020570 02202025 */ move $a0, $s1 -/* 021174 80020574 45000006 */ bc1f .L80020590 -/* 021178 80020578 00000000 */ nop -/* 02117C 8002057C 44813800 */ mtc1 $at, $f7 -/* 021180 80020580 44803000 */ mtc1 $zero, $f6 -/* 021184 80020584 24120001 */ li $s2, 1 -/* 021188 80020588 46260101 */ sub.d $f4, $f0, $f6 -/* 02118C 8002058C 46202520 */ cvt.s.d $f20, $f4 -.L80020590: -/* 021190 80020590 826F003F */ lb $t7, 0x3f($s3) -/* 021194 80020594 02402825 */ move $a1, $s2 -/* 021198 80020598 15E00010 */ bnez $t7, .L800205DC -/* 02119C 8002059C 00000000 */ nop -/* 0211A0 800205A0 4406A000 */ mfc1 $a2, $f20 -/* 0211A4 800205A4 0C008950 */ jal catmull_rom_interpolation -/* 0211A8 800205A8 02202025 */ move $a0, $s1 -/* 0211AC 800205AC 4406A000 */ mfc1 $a2, $f20 -/* 0211B0 800205B0 E7A00124 */ swc1 $f0, 0x124($sp) -/* 0211B4 800205B4 27A40140 */ addiu $a0, $sp, 0x140 -/* 0211B8 800205B8 0C008950 */ jal catmull_rom_interpolation -/* 0211BC 800205BC 02402825 */ move $a1, $s2 -/* 0211C0 800205C0 4406A000 */ mfc1 $a2, $f20 -/* 0211C4 800205C4 27A4012C */ addiu $a0, $sp, 0x12c -/* 0211C8 800205C8 02402825 */ move $a1, $s2 -/* 0211CC 800205CC 0C008950 */ jal catmull_rom_interpolation -/* 0211D0 800205D0 E7A00120 */ swc1 $f0, 0x120($sp) -/* 0211D4 800205D4 1000000F */ b .L80020614 -/* 0211D8 800205D8 E7A0011C */ swc1 $f0, 0x11c($sp) -.L800205DC: -/* 0211DC 800205DC 4406A000 */ mfc1 $a2, $f20 -/* 0211E0 800205E0 0C008A22 */ jal lerp -/* 0211E4 800205E4 02402825 */ move $a1, $s2 -/* 0211E8 800205E8 4406A000 */ mfc1 $a2, $f20 -/* 0211EC 800205EC E7A00124 */ swc1 $f0, 0x124($sp) -/* 0211F0 800205F0 27A40140 */ addiu $a0, $sp, 0x140 -/* 0211F4 800205F4 0C008A22 */ jal lerp -/* 0211F8 800205F8 02402825 */ move $a1, $s2 -/* 0211FC 800205FC 4406A000 */ mfc1 $a2, $f20 -/* 021200 80020600 27A4012C */ addiu $a0, $sp, 0x12c -/* 021204 80020604 02402825 */ move $a1, $s2 -/* 021208 80020608 0C008A22 */ jal lerp -/* 02120C 8002060C E7A00120 */ swc1 $f0, 0x120($sp) -/* 021210 80020610 E7A0011C */ swc1 $f0, 0x11c($sp) -.L80020614: -/* 021214 80020614 C7AA0124 */ lwc1 $f10, 0x124($sp) -/* 021218 80020618 C6C8000C */ lwc1 $f8, 0xc($s6) -/* 02121C 8002061C C7A40120 */ lwc1 $f4, 0x120($sp) -/* 021220 80020620 46085181 */ sub.s $f6, $f10, $f8 -/* 021224 80020624 24010001 */ li $at, 1 -/* 021228 80020628 E7A60124 */ swc1 $f6, 0x124($sp) -/* 02122C 8002062C C6CA0010 */ lwc1 $f10, 0x10($s6) -/* 021230 80020630 00000000 */ nop -/* 021234 80020634 460A2201 */ sub.s $f8, $f4, $f10 -/* 021238 80020638 E7A80120 */ swc1 $f8, 0x120($sp) -/* 02123C 8002063C C6C40014 */ lwc1 $f4, 0x14($s6) -/* 021240 80020640 00000000 */ nop -/* 021244 80020644 46040281 */ sub.s $f10, $f0, $f4 -/* 021248 80020648 12010016 */ beq $s0, $at, .L800206A4 -/* 02124C 8002064C E7AA011C */ swc1 $f10, 0x11c($sp) -/* 021250 80020650 46063102 */ mul.s $f4, $f6, $f6 -/* 021254 80020654 C7AE011C */ lwc1 $f14, 0x11c($sp) -/* 021258 80020658 00009025 */ move $s2, $zero -/* 02125C 8002065C 46084282 */ mul.s $f10, $f8, $f8 -/* 021260 80020660 00000000 */ nop -/* 021264 80020664 460E7202 */ mul.s $f8, $f14, $f14 -/* 021268 80020668 460A2180 */ add.s $f6, $f4, $f10 -/* 02126C 8002066C 0C0326B4 */ jal sqrtf -/* 021270 80020670 46083300 */ add.s $f12, $f6, $f8 -/* 021274 80020674 C7A40114 */ lwc1 $f4, 0x114($sp) -/* 021278 80020678 00000000 */ nop -/* 02127C 8002067C 46040083 */ div.s $f2, $f0, $f4 -/* 021280 80020680 4602B032 */ c.eq.s $f22, $f2 -/* 021284 80020684 00000000 */ nop -/* 021288 80020688 45010006 */ bc1t .L800206A4 -/* 02128C 8002068C 00000000 */ nop -/* 021290 80020690 C6660008 */ lwc1 $f6, 8($s3) -/* 021294 80020694 C66A0004 */ lwc1 $f10, 4($s3) -/* 021298 80020698 46023203 */ div.s $f8, $f6, $f2 -/* 02129C 8002069C 46085102 */ mul.s $f4, $f10, $f8 -/* 0212A0 800206A0 E6640004 */ swc1 $f4, 4($s3) -.L800206A4: -/* 0212A4 800206A4 26100001 */ addiu $s0, $s0, 1 -/* 0212A8 800206A8 24010002 */ li $at, 2 -/* 0212AC 800206AC 1601FFA5 */ bne $s0, $at, .L80020544 -/* 0212B0 800206B0 00000000 */ nop -/* 0212B4 800206B4 4406A000 */ mfc1 $a2, $f20 -/* 0212B8 800206B8 27A400F4 */ addiu $a0, $sp, 0xf4 -/* 0212BC 800206BC 0C008950 */ jal catmull_rom_interpolation -/* 0212C0 800206C0 02402825 */ move $a1, $s2 -/* 0212C4 800206C4 C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* 0212C8 800206C8 8ED90040 */ lw $t9, 0x40($s6) -/* 0212CC 800206CC 46060282 */ mul.s $f10, $f0, $f6 -/* 0212D0 800206D0 C728000C */ lwc1 $f8, 0xc($t9) -/* 0212D4 800206D4 00000000 */ nop -/* 0212D8 800206D8 46085102 */ mul.s $f4, $f10, $f8 -/* 0212DC 800206DC 12400024 */ beqz $s2, .L80020770 -/* 0212E0 800206E0 E6C40008 */ swc1 $f4, 8($s6) -/* 0212E4 800206E4 8FAE0168 */ lw $t6, 0x168($sp) -/* 0212E8 800206E8 2401FFFF */ li $at, -1 -/* 0212EC 800206EC 15C10020 */ bne $t6, $at, .L80020770 -/* 0212F0 800206F0 00000000 */ nop -/* 0212F4 800206F4 86780026 */ lh $t8, 0x26($s3) -/* 0212F8 800206F8 02202025 */ move $a0, $s1 -/* 0212FC 800206FC 270F0002 */ addiu $t7, $t8, 2 -/* 021300 80020700 16AF001B */ bne $s5, $t7, .L80020770 -/* 021304 80020704 00002825 */ move $a1, $zero -/* 021308 80020708 0C008950 */ jal catmull_rom_interpolation -/* 02130C 8002070C 3C063F80 */ lui $a2, 0x3f80 -/* 021310 80020710 E7A00124 */ swc1 $f0, 0x124($sp) -/* 021314 80020714 27A40140 */ addiu $a0, $sp, 0x140 -/* 021318 80020718 00002825 */ move $a1, $zero -/* 02131C 8002071C 0C008950 */ jal catmull_rom_interpolation -/* 021320 80020720 3C063F80 */ lui $a2, 0x3f80 -/* 021324 80020724 27A4012C */ addiu $a0, $sp, 0x12c -/* 021328 80020728 00002825 */ move $a1, $zero -/* 02132C 8002072C 3C063F80 */ lui $a2, 0x3f80 -/* 021330 80020730 0C008950 */ jal catmull_rom_interpolation -/* 021334 80020734 E7A00120 */ swc1 $f0, 0x120($sp) -/* 021338 80020738 E7A0011C */ swc1 $f0, 0x11c($sp) -/* 02133C 8002073C C6CA000C */ lwc1 $f10, 0xc($s6) -/* 021340 80020740 C7A60124 */ lwc1 $f6, 0x124($sp) -/* 021344 80020744 C7A40120 */ lwc1 $f4, 0x120($sp) -/* 021348 80020748 460A3201 */ sub.s $f8, $f6, $f10 -/* 02134C 8002074C E7A80124 */ swc1 $f8, 0x124($sp) -/* 021350 80020750 C6C60010 */ lwc1 $f6, 0x10($s6) -/* 021354 80020754 00000000 */ nop -/* 021358 80020758 46062281 */ sub.s $f10, $f4, $f6 -/* 02135C 8002075C E7AA0120 */ swc1 $f10, 0x120($sp) -/* 021360 80020760 C6C80014 */ lwc1 $f8, 0x14($s6) -/* 021364 80020764 00000000 */ nop -/* 021368 80020768 46080101 */ sub.s $f4, $f0, $f8 -/* 02136C 8002076C E7A4011C */ swc1 $f4, 0x11c($sp) -.L80020770: -/* 021370 80020770 C7A60124 */ lwc1 $f6, 0x124($sp) -/* 021374 80020774 C7AA0114 */ lwc1 $f10, 0x114($sp) -/* 021378 80020778 02C02025 */ move $a0, $s6 -/* 02137C 8002077C 460A3203 */ div.s $f8, $f6, $f10 -/* 021380 80020780 E6C8001C */ swc1 $f8, 0x1c($s6) -/* 021384 80020784 C7A40120 */ lwc1 $f4, 0x120($sp) -/* 021388 80020788 C7A60114 */ lwc1 $f6, 0x114($sp) -/* 02138C 8002078C 00000000 */ nop -/* 021390 80020790 46062283 */ div.s $f10, $f4, $f6 -/* 021394 80020794 E6CA0020 */ swc1 $f10, 0x20($s6) -/* 021398 80020798 C7A8011C */ lwc1 $f8, 0x11c($sp) -/* 02139C 8002079C C7A40114 */ lwc1 $f4, 0x114($sp) -/* 0213A0 800207A0 00000000 */ nop -/* 0213A4 800207A4 46044183 */ div.s $f6, $f8, $f4 -/* 0213A8 800207A8 E6C60024 */ swc1 $f6, 0x24($s6) -/* 0213AC 800207AC 8FA7011C */ lw $a3, 0x11c($sp) -/* 0213B0 800207B0 8FA60120 */ lw $a2, 0x120($sp) -/* 0213B4 800207B4 8FA50124 */ lw $a1, 0x124($sp) -/* 0213B8 800207B8 0C00455C */ jal move_object -/* 0213BC 800207BC 00000000 */ nop -/* 0213C0 800207C0 9263002E */ lbu $v1, 0x2e($s3) -/* 0213C4 800207C4 24010001 */ li $at, 1 -/* 0213C8 800207C8 1061015B */ beq $v1, $at, .L80020D38 -/* 0213CC 800207CC 24010002 */ li $at, 2 -/* 0213D0 800207D0 10610005 */ beq $v1, $at, .L800207E8 -/* 0213D4 800207D4 24010003 */ li $at, 3 -/* 0213D8 800207D8 10610157 */ beq $v1, $at, .L80020D38 -/* 0213DC 800207DC 24080001 */ li $t0, 1 -/* 0213E0 800207E0 1000004F */ b .L80020920 -/* 0213E4 800207E4 27AD00E4 */ addiu $t5, $sp, 0xe4 -.L800207E8: -/* 0213E8 800207E8 8279003F */ lb $t9, 0x3f($s3) -/* 0213EC 800207EC 02202025 */ move $a0, $s1 -/* 0213F0 800207F0 17200012 */ bnez $t9, .L8002083C -/* 0213F4 800207F4 02402825 */ move $a1, $s2 -/* 0213F8 800207F8 4406A000 */ mfc1 $a2, $f20 -/* 0213FC 800207FC 02202025 */ move $a0, $s1 -/* 021400 80020800 02402825 */ move $a1, $s2 -/* 021404 80020804 0C00898F */ jal cubic_spline_interpolation -/* 021408 80020808 27A70124 */ addiu $a3, $sp, 0x124 -/* 02140C 8002080C 4406A000 */ mfc1 $a2, $f20 -/* 021410 80020810 27A40140 */ addiu $a0, $sp, 0x140 -/* 021414 80020814 02402825 */ move $a1, $s2 -/* 021418 80020818 0C00898F */ jal cubic_spline_interpolation -/* 02141C 8002081C 27A70120 */ addiu $a3, $sp, 0x120 -/* 021420 80020820 4406A000 */ mfc1 $a2, $f20 -/* 021424 80020824 27A4012C */ addiu $a0, $sp, 0x12c -/* 021428 80020828 02402825 */ move $a1, $s2 -/* 02142C 8002082C 0C00898F */ jal cubic_spline_interpolation -/* 021430 80020830 27A7011C */ addiu $a3, $sp, 0x11c -/* 021434 80020834 1000000F */ b .L80020874 -/* 021438 80020838 C7AA0124 */ lwc1 $f10, 0x124($sp) -.L8002083C: -/* 02143C 8002083C 4406A000 */ mfc1 $a2, $f20 -/* 021440 80020840 0C008A2C */ jal func_800228B0 -/* 021444 80020844 27A70124 */ addiu $a3, $sp, 0x124 -/* 021448 80020848 4406A000 */ mfc1 $a2, $f20 -/* 02144C 8002084C 27A40140 */ addiu $a0, $sp, 0x140 -/* 021450 80020850 02402825 */ move $a1, $s2 -/* 021454 80020854 0C008A2C */ jal func_800228B0 -/* 021458 80020858 27A70120 */ addiu $a3, $sp, 0x120 -/* 02145C 8002085C 4406A000 */ mfc1 $a2, $f20 -/* 021460 80020860 27A4012C */ addiu $a0, $sp, 0x12c -/* 021464 80020864 02402825 */ move $a1, $s2 -/* 021468 80020868 0C008A2C */ jal func_800228B0 -/* 02146C 8002086C 27A7011C */ addiu $a3, $sp, 0x11c -/* 021470 80020870 C7AA0124 */ lwc1 $f10, 0x124($sp) -.L80020874: -/* 021474 80020874 C7A20120 */ lwc1 $f2, 0x120($sp) -/* 021478 80020878 460A5202 */ mul.s $f8, $f10, $f10 -/* 02147C 8002087C C7AE011C */ lwc1 $f14, 0x11c($sp) -/* 021480 80020880 46021102 */ mul.s $f4, $f2, $f2 -/* 021484 80020884 00000000 */ nop -/* 021488 80020888 460E7282 */ mul.s $f10, $f14, $f14 -/* 02148C 8002088C 46044180 */ add.s $f6, $f8, $f4 -/* 021490 80020890 0C0326B4 */ jal sqrtf -/* 021494 80020894 460A3300 */ add.s $f12, $f6, $f10 -/* 021498 80020898 46160032 */ c.eq.s $f0, $f22 -/* 02149C 8002089C 3C014059 */ li $at, 0x40590000 # 3.390625 -/* 0214A0 800208A0 45010011 */ bc1t .L800208E8 -/* 0214A4 800208A4 00000000 */ nop -/* 0214A8 800208A8 44814800 */ mtc1 $at, $f9 -/* 0214AC 800208AC 44804000 */ mtc1 $zero, $f8 -/* 0214B0 800208B0 46000121 */ cvt.d.s $f4, $f0 -/* 0214B4 800208B4 00000000 */ nop -/* 0214B8 800208B8 46244183 */ div.d $f6, $f8, $f4 -/* 0214BC 800208BC C7AA0124 */ lwc1 $f10, 0x124($sp) -/* 0214C0 800208C0 C7A20120 */ lwc1 $f2, 0x120($sp) -/* 0214C4 800208C4 C7AE011C */ lwc1 $f14, 0x11c($sp) -/* 0214C8 800208C8 46203320 */ cvt.s.d $f12, $f6 -/* 0214CC 800208CC 460C5202 */ mul.s $f8, $f10, $f12 -/* 0214D0 800208D0 00000000 */ nop -/* 0214D4 800208D4 460C1082 */ mul.s $f2, $f2, $f12 -/* 0214D8 800208D8 E7A80124 */ swc1 $f8, 0x124($sp) -/* 0214DC 800208DC 460C7382 */ mul.s $f14, $f14, $f12 -/* 0214E0 800208E0 E7A20120 */ swc1 $f2, 0x120($sp) -/* 0214E4 800208E4 E7AE011C */ swc1 $f14, 0x11c($sp) -.L800208E8: -/* 0214E8 800208E8 C7AE011C */ lwc1 $f14, 0x11c($sp) -/* 0214EC 800208EC C7AC0124 */ lwc1 $f12, 0x124($sp) -/* 0214F0 800208F0 0C01C1D4 */ jal arctan2_f -/* 0214F4 800208F4 00000000 */ nop -/* 0214F8 800208F8 24018000 */ li $at, -32768 -/* 0214FC 800208FC 00417021 */ addu $t6, $v0, $at -/* 021500 80020900 A6CE0000 */ sh $t6, ($s6) -/* 021504 80020904 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 021508 80020908 44817000 */ mtc1 $at, $f14 -/* 02150C 8002090C C7AC0120 */ lwc1 $f12, 0x120($sp) -/* 021510 80020910 0C01C1D4 */ jal arctan2_f -/* 021514 80020914 00000000 */ nop -/* 021518 80020918 10000107 */ b .L80020D38 -/* 02151C 8002091C A6C20002 */ sh $v0, 2($s6) -.L80020920: -/* 021520 80020920 3C01C0E0 */ li $at, 0xC0E00000 # -7.000000 -/* 021524 80020924 44819800 */ mtc1 $at, $f19 -/* 021528 80020928 3C0140E0 */ li $at, 0x40E00000 # 7.000000 -/* 02152C 8002092C 44818800 */ mtc1 $at, $f17 -/* 021530 80020930 3C0140F0 */ li $at, 0x40F00000 # 7.500000 -/* 021534 80020934 44817800 */ mtc1 $at, $f15 -/* 021538 80020938 44809000 */ mtc1 $zero, $f18 -/* 02153C 8002093C 44808000 */ mtc1 $zero, $f16 -/* 021540 80020940 44807000 */ mtc1 $zero, $f14 -/* 021544 80020944 27AC00D0 */ addiu $t4, $sp, 0xd0 -/* 021548 80020948 27BF00BC */ addiu $ra, $sp, 0xbc -/* 02154C 8002094C 27A700CC */ addiu $a3, $sp, 0xcc -/* 021550 80020950 27A600E0 */ addiu $a2, $sp, 0xe0 -/* 021554 80020954 27A500F4 */ addiu $a1, $sp, 0xf4 -.L80020958: -/* 021558 80020958 C5A40000 */ lwc1 $f4, ($t5) -/* 02155C 8002095C C5A6FFFC */ lwc1 $f6, -4($t5) -/* 021560 80020960 25AD0004 */ addiu $t5, $t5, 4 -/* 021564 80020964 46062301 */ sub.s $f12, $f4, $f6 -/* 021568 80020968 29010005 */ slti $at, $t0, 5 -/* 02156C 8002096C 460060A1 */ cvt.d.s $f2, $f12 -/* 021570 80020970 4622803C */ c.lt.d $f16, $f2 -/* 021574 80020974 4600B006 */ mov.s $f0, $f22 -/* 021578 80020978 45000005 */ bc1f .L80020990 -/* 02157C 8002097C 24180005 */ li $t8, 5 -/* 021580 80020980 4600B2A1 */ cvt.d.s $f10, $f22 -/* 021584 80020984 462E5201 */ sub.d $f8, $f10, $f14 -/* 021588 80020988 10000008 */ b .L800209AC -/* 02158C 8002098C 46204020 */ cvt.s.d $f0, $f8 -.L80020990: -/* 021590 80020990 4632103C */ c.lt.d $f2, $f18 -/* 021594 80020994 00000000 */ nop -/* 021598 80020998 45000004 */ bc1f .L800209AC -/* 02159C 8002099C 00000000 */ nop -/* 0215A0 800209A0 4600B121 */ cvt.d.s $f4, $f22 -/* 0215A4 800209A4 462E2180 */ add.d $f6, $f4, $f14 -/* 0215A8 800209A8 46203020 */ cvt.s.d $f0, $f6 -.L800209AC: -/* 0215AC 800209AC 10200022 */ beqz $at, .L80020A38 -/* 0215B0 800209B0 01008025 */ move $s0, $t0 -/* 0215B4 800209B4 03082023 */ subu $a0, $t8, $t0 -/* 0215B8 800209B8 308F0003 */ andi $t7, $a0, 3 -/* 0215BC 800209BC 11E0000C */ beqz $t7, .L800209F0 -/* 0215C0 800209C0 01E81821 */ addu $v1, $t7, $t0 -/* 0215C4 800209C4 0010C880 */ sll $t9, $s0, 2 -/* 0215C8 800209C8 27AE00E0 */ addiu $t6, $sp, 0xe0 -/* 0215CC 800209CC 032E1021 */ addu $v0, $t9, $t6 -.L800209D0: -/* 0215D0 800209D0 C44A0000 */ lwc1 $f10, ($v0) -/* 0215D4 800209D4 26100001 */ addiu $s0, $s0, 1 -/* 0215D8 800209D8 46005200 */ add.s $f8, $f10, $f0 -/* 0215DC 800209DC 24420004 */ addiu $v0, $v0, 4 -/* 0215E0 800209E0 1470FFFB */ bne $v1, $s0, .L800209D0 -/* 0215E4 800209E4 E448FFFC */ swc1 $f8, -4($v0) -/* 0215E8 800209E8 24010005 */ li $at, 5 -/* 0215EC 800209EC 12010011 */ beq $s0, $at, .L80020A34 -.L800209F0: -/* 0215F0 800209F0 0010C080 */ sll $t8, $s0, 2 -/* 0215F4 800209F4 27AF00E0 */ addiu $t7, $sp, 0xe0 -/* 0215F8 800209F8 030F1021 */ addu $v0, $t8, $t7 -.L800209FC: -/* 0215FC 800209FC C4440000 */ lwc1 $f4, ($v0) -/* 021600 80020A00 C44A0004 */ lwc1 $f10, 4($v0) -/* 021604 80020A04 46002180 */ add.s $f6, $f4, $f0 -/* 021608 80020A08 C4440008 */ lwc1 $f4, 8($v0) -/* 02160C 80020A0C 46005200 */ add.s $f8, $f10, $f0 -/* 021610 80020A10 C44A000C */ lwc1 $f10, 0xc($v0) -/* 021614 80020A14 E4480004 */ swc1 $f8, 4($v0) -/* 021618 80020A18 E4460000 */ swc1 $f6, ($v0) -/* 02161C 80020A1C 46002180 */ add.s $f6, $f4, $f0 -/* 021620 80020A20 24420010 */ addiu $v0, $v0, 0x10 -/* 021624 80020A24 46005200 */ add.s $f8, $f10, $f0 -/* 021628 80020A28 E446FFF8 */ swc1 $f6, -8($v0) -/* 02162C 80020A2C 1445FFF3 */ bne $v0, $a1, .L800209FC -/* 021630 80020A30 E448FFFC */ swc1 $f8, -4($v0) -.L80020A34: -/* 021634 80020A34 01008025 */ move $s0, $t0 -.L80020A38: -/* 021638 80020A38 C5840000 */ lwc1 $f4, ($t4) -/* 02163C 80020A3C C586FFFC */ lwc1 $f6, -4($t4) -/* 021640 80020A40 258C0004 */ addiu $t4, $t4, 4 -/* 021644 80020A44 46062301 */ sub.s $f12, $f4, $f6 -/* 021648 80020A48 29010005 */ slti $at, $t0, 5 -/* 02164C 80020A4C 460060A1 */ cvt.d.s $f2, $f12 -/* 021650 80020A50 4622803C */ c.lt.d $f16, $f2 -/* 021654 80020A54 4600B006 */ mov.s $f0, $f22 -/* 021658 80020A58 45000005 */ bc1f .L80020A70 -/* 02165C 80020A5C 24190005 */ li $t9, 5 -/* 021660 80020A60 4600B2A1 */ cvt.d.s $f10, $f22 -/* 021664 80020A64 462E5201 */ sub.d $f8, $f10, $f14 -/* 021668 80020A68 10000008 */ b .L80020A8C -/* 02166C 80020A6C 46204020 */ cvt.s.d $f0, $f8 -.L80020A70: -/* 021670 80020A70 4632103C */ c.lt.d $f2, $f18 -/* 021674 80020A74 00000000 */ nop -/* 021678 80020A78 45000004 */ bc1f .L80020A8C -/* 02167C 80020A7C 00000000 */ nop -/* 021680 80020A80 4600B121 */ cvt.d.s $f4, $f22 -/* 021684 80020A84 462E2180 */ add.d $f6, $f4, $f14 -/* 021688 80020A88 46203020 */ cvt.s.d $f0, $f6 -.L80020A8C: -/* 02168C 80020A8C 10200021 */ beqz $at, .L80020B14 -/* 021690 80020A90 03282023 */ subu $a0, $t9, $t0 -/* 021694 80020A94 308E0003 */ andi $t6, $a0, 3 -/* 021698 80020A98 11C0000C */ beqz $t6, .L80020ACC -/* 02169C 80020A9C 01C81821 */ addu $v1, $t6, $t0 -/* 0216A0 80020AA0 0010C080 */ sll $t8, $s0, 2 -/* 0216A4 80020AA4 27AF00CC */ addiu $t7, $sp, 0xcc -/* 0216A8 80020AA8 030F1021 */ addu $v0, $t8, $t7 -.L80020AAC: -/* 0216AC 80020AAC C44A0000 */ lwc1 $f10, ($v0) -/* 0216B0 80020AB0 26100001 */ addiu $s0, $s0, 1 -/* 0216B4 80020AB4 46005200 */ add.s $f8, $f10, $f0 -/* 0216B8 80020AB8 24420004 */ addiu $v0, $v0, 4 -/* 0216BC 80020ABC 1470FFFB */ bne $v1, $s0, .L80020AAC -/* 0216C0 80020AC0 E448FFFC */ swc1 $f8, -4($v0) -/* 0216C4 80020AC4 24010005 */ li $at, 5 -/* 0216C8 80020AC8 12010011 */ beq $s0, $at, .L80020B10 -.L80020ACC: -/* 0216CC 80020ACC 0010C880 */ sll $t9, $s0, 2 -/* 0216D0 80020AD0 27AE00CC */ addiu $t6, $sp, 0xcc -/* 0216D4 80020AD4 032E1021 */ addu $v0, $t9, $t6 -.L80020AD8: -/* 0216D8 80020AD8 C4440000 */ lwc1 $f4, ($v0) -/* 0216DC 80020ADC C44A0004 */ lwc1 $f10, 4($v0) -/* 0216E0 80020AE0 46002180 */ add.s $f6, $f4, $f0 -/* 0216E4 80020AE4 C4440008 */ lwc1 $f4, 8($v0) -/* 0216E8 80020AE8 46005200 */ add.s $f8, $f10, $f0 -/* 0216EC 80020AEC C44A000C */ lwc1 $f10, 0xc($v0) -/* 0216F0 80020AF0 E4480004 */ swc1 $f8, 4($v0) -/* 0216F4 80020AF4 E4460000 */ swc1 $f6, ($v0) -/* 0216F8 80020AF8 46002180 */ add.s $f6, $f4, $f0 -/* 0216FC 80020AFC 24420010 */ addiu $v0, $v0, 0x10 -/* 021700 80020B00 46005200 */ add.s $f8, $f10, $f0 -/* 021704 80020B04 E446FFF8 */ swc1 $f6, -8($v0) -/* 021708 80020B08 1446FFF3 */ bne $v0, $a2, .L80020AD8 -/* 02170C 80020B0C E448FFFC */ swc1 $f8, -4($v0) -.L80020B10: -/* 021710 80020B10 01008025 */ move $s0, $t0 -.L80020B14: -/* 021714 80020B14 C7E40000 */ lwc1 $f4, ($ra) -/* 021718 80020B18 C7E6FFFC */ lwc1 $f6, -4($ra) -/* 02171C 80020B1C 24180005 */ li $t8, 5 -/* 021720 80020B20 46062301 */ sub.s $f12, $f4, $f6 -/* 021724 80020B24 03082023 */ subu $a0, $t8, $t0 -/* 021728 80020B28 460060A1 */ cvt.d.s $f2, $f12 -/* 02172C 80020B2C 4622803C */ c.lt.d $f16, $f2 -/* 021730 80020B30 4600B006 */ mov.s $f0, $f22 -/* 021734 80020B34 45000005 */ bc1f .L80020B4C -/* 021738 80020B38 29010005 */ slti $at, $t0, 5 -/* 02173C 80020B3C 4600B2A1 */ cvt.d.s $f10, $f22 -/* 021740 80020B40 462E5201 */ sub.d $f8, $f10, $f14 -/* 021744 80020B44 10000008 */ b .L80020B68 -/* 021748 80020B48 46204020 */ cvt.s.d $f0, $f8 -.L80020B4C: -/* 02174C 80020B4C 4632103C */ c.lt.d $f2, $f18 -/* 021750 80020B50 00000000 */ nop -/* 021754 80020B54 45000004 */ bc1f .L80020B68 -/* 021758 80020B58 00000000 */ nop -/* 02175C 80020B5C 4600B121 */ cvt.d.s $f4, $f22 -/* 021760 80020B60 462E2180 */ add.d $f6, $f4, $f14 -/* 021764 80020B64 46203020 */ cvt.s.d $f0, $f6 -.L80020B68: -/* 021768 80020B68 1020001F */ beqz $at, .L80020BE8 -/* 02176C 80020B6C 308F0003 */ andi $t7, $a0, 3 -/* 021770 80020B70 11E0000C */ beqz $t7, .L80020BA4 -/* 021774 80020B74 01E81821 */ addu $v1, $t7, $t0 -/* 021778 80020B78 0010C880 */ sll $t9, $s0, 2 -/* 02177C 80020B7C 27AE00B8 */ addiu $t6, $sp, 0xb8 -/* 021780 80020B80 032E1021 */ addu $v0, $t9, $t6 -.L80020B84: -/* 021784 80020B84 C44A0000 */ lwc1 $f10, ($v0) -/* 021788 80020B88 26100001 */ addiu $s0, $s0, 1 -/* 02178C 80020B8C 46005200 */ add.s $f8, $f10, $f0 -/* 021790 80020B90 24420004 */ addiu $v0, $v0, 4 -/* 021794 80020B94 1470FFFB */ bne $v1, $s0, .L80020B84 -/* 021798 80020B98 E448FFFC */ swc1 $f8, -4($v0) -/* 02179C 80020B9C 24010005 */ li $at, 5 -/* 0217A0 80020BA0 12010011 */ beq $s0, $at, .L80020BE8 -.L80020BA4: -/* 0217A4 80020BA4 0010C080 */ sll $t8, $s0, 2 -/* 0217A8 80020BA8 27AF00B8 */ addiu $t7, $sp, 0xb8 -/* 0217AC 80020BAC 030F1021 */ addu $v0, $t8, $t7 -.L80020BB0: -/* 0217B0 80020BB0 C4440000 */ lwc1 $f4, ($v0) -/* 0217B4 80020BB4 C44A0004 */ lwc1 $f10, 4($v0) -/* 0217B8 80020BB8 46002180 */ add.s $f6, $f4, $f0 -/* 0217BC 80020BBC C4440008 */ lwc1 $f4, 8($v0) -/* 0217C0 80020BC0 46005200 */ add.s $f8, $f10, $f0 -/* 0217C4 80020BC4 C44A000C */ lwc1 $f10, 0xc($v0) -/* 0217C8 80020BC8 E4480004 */ swc1 $f8, 4($v0) -/* 0217CC 80020BCC E4460000 */ swc1 $f6, ($v0) -/* 0217D0 80020BD0 46002180 */ add.s $f6, $f4, $f0 -/* 0217D4 80020BD4 24420010 */ addiu $v0, $v0, 0x10 -/* 0217D8 80020BD8 46005200 */ add.s $f8, $f10, $f0 -/* 0217DC 80020BDC E446FFF8 */ swc1 $f6, -8($v0) -/* 0217E0 80020BE0 1447FFF3 */ bne $v0, $a3, .L80020BB0 -/* 0217E4 80020BE4 E448FFFC */ swc1 $f8, -4($v0) -.L80020BE8: -/* 0217E8 80020BE8 25080001 */ addiu $t0, $t0, 1 -/* 0217EC 80020BEC 24010005 */ li $at, 5 -/* 0217F0 80020BF0 1501FF59 */ bne $t0, $at, .L80020958 -/* 0217F4 80020BF4 27FF0004 */ addiu $ra, $ra, 4 -/* 0217F8 80020BF8 8279003F */ lb $t9, 0x3f($s3) -/* 0217FC 80020BFC 02402825 */ move $a1, $s2 -/* 021800 80020C00 17200027 */ bnez $t9, .L80020CA0 -/* 021804 80020C04 27A400E0 */ addiu $a0, $sp, 0xe0 -/* 021808 80020C08 4406A000 */ mfc1 $a2, $f20 -/* 02180C 80020C0C 0C008950 */ jal catmull_rom_interpolation -/* 021810 80020C10 27A400E0 */ addiu $a0, $sp, 0xe0 -/* 021814 80020C14 444EF800 */ cfc1 $t6, $31 -/* 021818 80020C18 4406A000 */ mfc1 $a2, $f20 -/* 02181C 80020C1C 35C10003 */ ori $at, $t6, 3 -/* 021820 80020C20 38210002 */ xori $at, $at, 2 -/* 021824 80020C24 44C1F800 */ ctc1 $at, $31 -/* 021828 80020C28 27A400CC */ addiu $a0, $sp, 0xcc -/* 02182C 80020C2C 46000124 */ cvt.w.s $f4, $f0 -/* 021830 80020C30 02402825 */ move $a1, $s2 -/* 021834 80020C34 44182000 */ mfc1 $t8, $f4 -/* 021838 80020C38 44CEF800 */ ctc1 $t6, $31 -/* 02183C 80020C3C 0C008950 */ jal catmull_rom_interpolation -/* 021840 80020C40 A6D80000 */ sh $t8, ($s6) -/* 021844 80020C44 444FF800 */ cfc1 $t7, $31 -/* 021848 80020C48 4406A000 */ mfc1 $a2, $f20 -/* 02184C 80020C4C 35E10003 */ ori $at, $t7, 3 -/* 021850 80020C50 38210002 */ xori $at, $at, 2 -/* 021854 80020C54 44C1F800 */ ctc1 $at, $31 -/* 021858 80020C58 27A400B8 */ addiu $a0, $sp, 0xb8 -/* 02185C 80020C5C 460001A4 */ cvt.w.s $f6, $f0 -/* 021860 80020C60 02402825 */ move $a1, $s2 -/* 021864 80020C64 44193000 */ mfc1 $t9, $f6 -/* 021868 80020C68 44CFF800 */ ctc1 $t7, $31 -/* 02186C 80020C6C 0C008950 */ jal catmull_rom_interpolation -/* 021870 80020C70 A6D90002 */ sh $t9, 2($s6) -/* 021874 80020C74 444EF800 */ cfc1 $t6, $31 -/* 021878 80020C78 00000000 */ nop -/* 02187C 80020C7C 35C10003 */ ori $at, $t6, 3 -/* 021880 80020C80 38210002 */ xori $at, $at, 2 -/* 021884 80020C84 44C1F800 */ ctc1 $at, $31 -/* 021888 80020C88 00000000 */ nop -/* 02188C 80020C8C 460002A4 */ cvt.w.s $f10, $f0 -/* 021890 80020C90 44185000 */ mfc1 $t8, $f10 -/* 021894 80020C94 44CEF800 */ ctc1 $t6, $31 -/* 021898 80020C98 10000027 */ b .L80020D38 -/* 02189C 80020C9C A6D80004 */ sh $t8, 4($s6) -.L80020CA0: -/* 0218A0 80020CA0 4406A000 */ mfc1 $a2, $f20 -/* 0218A4 80020CA4 0C008A22 */ jal lerp -/* 0218A8 80020CA8 02402825 */ move $a1, $s2 -/* 0218AC 80020CAC 444FF800 */ cfc1 $t7, $31 -/* 0218B0 80020CB0 4406A000 */ mfc1 $a2, $f20 -/* 0218B4 80020CB4 35E10003 */ ori $at, $t7, 3 -/* 0218B8 80020CB8 38210002 */ xori $at, $at, 2 -/* 0218BC 80020CBC 44C1F800 */ ctc1 $at, $31 -/* 0218C0 80020CC0 27A400CC */ addiu $a0, $sp, 0xcc -/* 0218C4 80020CC4 46000224 */ cvt.w.s $f8, $f0 -/* 0218C8 80020CC8 02402825 */ move $a1, $s2 -/* 0218CC 80020CCC 44194000 */ mfc1 $t9, $f8 -/* 0218D0 80020CD0 44CFF800 */ ctc1 $t7, $31 -/* 0218D4 80020CD4 0C008A22 */ jal lerp -/* 0218D8 80020CD8 A6D90000 */ sh $t9, ($s6) -/* 0218DC 80020CDC 444EF800 */ cfc1 $t6, $31 -/* 0218E0 80020CE0 4406A000 */ mfc1 $a2, $f20 -/* 0218E4 80020CE4 35C10003 */ ori $at, $t6, 3 -/* 0218E8 80020CE8 38210002 */ xori $at, $at, 2 -/* 0218EC 80020CEC 44C1F800 */ ctc1 $at, $31 -/* 0218F0 80020CF0 27A400B8 */ addiu $a0, $sp, 0xb8 -/* 0218F4 80020CF4 46000124 */ cvt.w.s $f4, $f0 -/* 0218F8 80020CF8 02402825 */ move $a1, $s2 -/* 0218FC 80020CFC 44182000 */ mfc1 $t8, $f4 -/* 021900 80020D00 44CEF800 */ ctc1 $t6, $31 -/* 021904 80020D04 0C008A22 */ jal lerp -/* 021908 80020D08 A6D80002 */ sh $t8, 2($s6) -/* 02190C 80020D0C 444FF800 */ cfc1 $t7, $31 -/* 021910 80020D10 00000000 */ nop -/* 021914 80020D14 35E10003 */ ori $at, $t7, 3 -/* 021918 80020D18 38210002 */ xori $at, $at, 2 -/* 02191C 80020D1C 44C1F800 */ ctc1 $at, $31 -/* 021920 80020D20 00000000 */ nop -/* 021924 80020D24 460001A4 */ cvt.w.s $f6, $f0 -/* 021928 80020D28 44193000 */ mfc1 $t9, $f6 -/* 02192C 80020D2C 44CFF800 */ ctc1 $t7, $31 -/* 021930 80020D30 A6D90004 */ sh $t9, 4($s6) -/* 021934 80020D34 00000000 */ nop -.L80020D38: -/* 021938 80020D38 8FA30168 */ lw $v1, 0x168($sp) -/* 02193C 80020D3C 86680026 */ lh $t0, 0x26($s3) -/* 021940 80020D40 2401FFFF */ li $at, -1 -/* 021944 80020D44 10610005 */ beq $v1, $at, .L80020D5C -/* 021948 80020D48 E6740000 */ swc1 $f20, ($s3) -/* 02194C 80020D4C 0115082A */ slt $at, $t0, $s5 -/* 021950 80020D50 14200002 */ bnez $at, .L80020D5C -/* 021954 80020D54 01157023 */ subu $t6, $t0, $s5 -/* 021958 80020D58 01C34021 */ addu $t0, $t6, $v1 -.L80020D5C: -/* 02195C 80020D5C 3C098012 */ lui $t1, %hi(D_8011AE74) # $t1, 0x8012 -/* 021960 80020D60 2529AE74 */ addiu $t1, %lo(D_8011AE74) # addiu $t1, $t1, -0x518c -/* 021964 80020D64 8D380000 */ lw $t8, ($t1) -/* 021968 80020D68 00147880 */ sll $t7, $s4, 2 -/* 02196C 80020D6C 00087080 */ sll $t6, $t0, 2 -/* 021970 80020D70 030FC821 */ addu $t9, $t8, $t7 -/* 021974 80020D74 032EC021 */ addu $t8, $t9, $t6 -/* 021978 80020D78 8F0F0000 */ lw $t7, ($t8) -/* 02197C 80020D7C 3C01800E */ lui $at, %hi(D_800E5680 + 4) # $at, 0x800e -/* 021980 80020D80 8DF1003C */ lw $s1, 0x3c($t7) -/* 021984 80020D84 C4215680 */ lwc1 $f1, %lo(D_800E5680)($at) -/* 021988 80020D88 82390014 */ lb $t9, 0x14($s1) -/* 02198C 80020D8C C4205684 */ lwc1 $f0, %lo(D_800E5680 + 4)($at) -/* 021990 80020D90 44995000 */ mtc1 $t9, $f10 -/* 021994 80020D94 00000000 */ nop -/* 021998 80020D98 46805220 */ cvt.s.w $f8, $f10 -/* 02199C 80020D9C 46004121 */ cvt.d.s $f4, $f8 -/* 0219A0 80020DA0 46202182 */ mul.d $f6, $f4, $f0 -/* 0219A4 80020DA4 462032A0 */ cvt.s.d $f10, $f6 -/* 0219A8 80020DA8 4616503C */ c.lt.s $f10, $f22 -/* 0219AC 80020DAC E7AA0124 */ swc1 $f10, 0x124($sp) -/* 0219B0 80020DB0 45000004 */ bc1f .L80020DC4 -/* 0219B4 80020DB4 00000000 */ nop -/* 0219B8 80020DB8 C668000C */ lwc1 $f8, 0xc($s3) -/* 0219BC 80020DBC 10000004 */ b .L80020DD0 -/* 0219C0 80020DC0 E7A80124 */ swc1 $f8, 0x124($sp) -.L80020DC4: -/* 0219C4 80020DC4 C7A40124 */ lwc1 $f4, 0x124($sp) -/* 0219C8 80020DC8 00000000 */ nop -/* 0219CC 80020DCC E664000C */ swc1 $f4, 0xc($s3) -.L80020DD0: -/* 0219D0 80020DD0 C7A60124 */ lwc1 $f6, 0x124($sp) -/* 0219D4 80020DD4 00000000 */ nop -/* 0219D8 80020DD8 4606B03E */ c.le.s $f22, $f6 -/* 0219DC 80020DDC 00000000 */ nop -/* 0219E0 80020DE0 45000029 */ bc1f .L80020E88 -/* 0219E4 80020DE4 00000000 */ nop -/* 0219E8 80020DE8 16400027 */ bnez $s2, .L80020E88 -/* 0219EC 80020DEC 25020001 */ addiu $v0, $t0, 1 -/* 0219F0 80020DF0 2401FFFF */ li $at, -1 -/* 0219F4 80020DF4 10610005 */ beq $v1, $at, .L80020E0C -/* 0219F8 80020DF8 00408025 */ move $s0, $v0 -/* 0219FC 80020DFC 0055082A */ slt $at, $v0, $s5 -/* 021A00 80020E00 14200002 */ bnez $at, .L80020E0C -/* 021A04 80020E04 00557023 */ subu $t6, $v0, $s5 -/* 021A08 80020E08 01C38021 */ addu $s0, $t6, $v1 -.L80020E0C: -/* 021A0C 80020E0C 0215082A */ slt $at, $s0, $s5 -/* 021A10 80020E10 10200016 */ beqz $at, .L80020E6C -/* 021A14 80020E14 00147880 */ sll $t7, $s4, 2 -/* 021A18 80020E18 8D380000 */ lw $t8, ($t1) -/* 021A1C 80020E1C 00107080 */ sll $t6, $s0, 2 -/* 021A20 80020E20 030FC821 */ addu $t9, $t8, $t7 -/* 021A24 80020E24 032EC021 */ addu $t8, $t9, $t6 -/* 021A28 80020E28 8F0F0000 */ lw $t7, ($t8) -/* 021A2C 80020E2C C7AE0124 */ lwc1 $f14, 0x124($sp) -/* 021A30 80020E30 8DF1003C */ lw $s1, 0x3c($t7) -/* 021A34 80020E34 00000000 */ nop -/* 021A38 80020E38 82220014 */ lb $v0, 0x14($s1) -/* 021A3C 80020E3C 00000000 */ nop -/* 021A40 80020E40 04400009 */ bltz $v0, .L80020E68 -/* 021A44 80020E44 00000000 */ nop -/* 021A48 80020E48 44825000 */ mtc1 $v0, $f10 -/* 021A4C 80020E4C 00000000 */ nop -/* 021A50 80020E50 46805220 */ cvt.s.w $f8, $f10 -/* 021A54 80020E54 46004121 */ cvt.d.s $f4, $f8 -/* 021A58 80020E58 46202182 */ mul.d $f6, $f4, $f0 -/* 021A5C 80020E5C 462032A0 */ cvt.s.d $f10, $f6 -/* 021A60 80020E60 10000002 */ b .L80020E6C -/* 021A64 80020E64 E7AA011C */ swc1 $f10, 0x11c($sp) -.L80020E68: -/* 021A68 80020E68 E7AE011C */ swc1 $f14, 0x11c($sp) -.L80020E6C: -/* 021A6C 80020E6C C7A8011C */ lwc1 $f8, 0x11c($sp) -/* 021A70 80020E70 C7A40124 */ lwc1 $f4, 0x124($sp) -/* 021A74 80020E74 00000000 */ nop -/* 021A78 80020E78 46044181 */ sub.s $f6, $f8, $f4 -/* 021A7C 80020E7C 46143282 */ mul.s $f10, $f6, $f20 -/* 021A80 80020E80 46045200 */ add.s $f8, $f10, $f4 -/* 021A84 80020E84 E6680008 */ swc1 $f8, 8($s3) -.L80020E88: -/* 021A88 80020E88 1240002F */ beqz $s2, .L80020F48 -/* 021A8C 80020E8C 00000000 */ nop -/* 021A90 80020E90 86790026 */ lh $t9, 0x26($s3) -/* 021A94 80020E94 2401FFFF */ li $at, -1 -/* 021A98 80020E98 272E0001 */ addiu $t6, $t9, 1 -/* 021A9C 80020E9C 14610014 */ bne $v1, $at, .L80020EF0 -/* 021AA0 80020EA0 A66E0026 */ sh $t6, 0x26($s3) -/* 021AA4 80020EA4 86620026 */ lh $v0, 0x26($s3) -/* 021AA8 80020EA8 0014C080 */ sll $t8, $s4, 2 -/* 021AAC 80020EAC 0055082A */ slt $at, $v0, $s5 -/* 021AB0 80020EB0 14200004 */ bnez $at, .L80020EC4 -/* 021AB4 80020EB4 0002C880 */ sll $t9, $v0, 2 -/* 021AB8 80020EB8 26B8FFFF */ addiu $t8, $s5, -1 -/* 021ABC 80020EBC 10000022 */ b .L80020F48 -/* 021AC0 80020EC0 A6780026 */ sh $t8, 0x26($s3) -.L80020EC4: -/* 021AC4 80020EC4 8D2F0000 */ lw $t7, ($t1) -/* 021AC8 80020EC8 02C02025 */ move $a0, $s6 -/* 021ACC 80020ECC 01F97021 */ addu $t6, $t7, $t9 -/* 021AD0 80020ED0 01D87821 */ addu $t7, $t6, $t8 -/* 021AD4 80020ED4 8DF90000 */ lw $t9, ($t7) -/* 021AD8 80020ED8 02603025 */ move $a2, $s3 -/* 021ADC 80020EDC 8F25003C */ lw $a1, 0x3c($t9) -/* 021AE0 80020EE0 0C008497 */ jal func_8002125C -/* 021AE4 80020EE4 02803825 */ move $a3, $s4 -/* 021AE8 80020EE8 10000018 */ b .L80020F4C -/* 021AEC 80020EEC 926F002E */ lbu $t7, 0x2e($s3) -.L80020EF0: -/* 021AF0 80020EF0 86620026 */ lh $v0, 0x26($s3) -/* 021AF4 80020EF4 246E0001 */ addiu $t6, $v1, 1 -/* 021AF8 80020EF8 02A2082A */ slt $at, $s5, $v0 -/* 021AFC 80020EFC 10200004 */ beqz $at, .L80020F10 -/* 021B00 80020F00 02C02025 */ move $a0, $s6 -/* 021B04 80020F04 A66E0026 */ sh $t6, 0x26($s3) -/* 021B08 80020F08 86620026 */ lh $v0, 0x26($s3) -/* 021B0C 80020F0C 00000000 */ nop -.L80020F10: -/* 021B10 80020F10 0055082A */ slt $at, $v0, $s5 -/* 021B14 80020F14 14200003 */ bnez $at, .L80020F24 -/* 021B18 80020F18 00409025 */ move $s2, $v0 -/* 021B1C 80020F1C 0055C023 */ subu $t8, $v0, $s5 -/* 021B20 80020F20 03039021 */ addu $s2, $t8, $v1 -.L80020F24: -/* 021B24 80020F24 8D2F0000 */ lw $t7, ($t1) -/* 021B28 80020F28 02549021 */ addu $s2, $s2, $s4 -/* 021B2C 80020F2C 0012C880 */ sll $t9, $s2, 2 -/* 021B30 80020F30 01F97021 */ addu $t6, $t7, $t9 -/* 021B34 80020F34 8DD80000 */ lw $t8, ($t6) -/* 021B38 80020F38 02603025 */ move $a2, $s3 -/* 021B3C 80020F3C 8F05003C */ lw $a1, 0x3c($t8) -/* 021B40 80020F40 0C008497 */ jal func_8002125C -/* 021B44 80020F44 02803825 */ move $a3, $s4 -.L80020F48: -/* 021B48 80020F48 926F002E */ lbu $t7, 0x2e($s3) -.L80020F4C: -/* 021B4C 80020F4C 24010003 */ li $at, 3 -/* 021B50 80020F50 15E10049 */ bne $t7, $at, .L80021078 -/* 021B54 80020F54 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 -/* 021B58 80020F58 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) -/* 021B5C 80020F5C 00004025 */ move $t0, $zero -/* 021B60 80020F60 18600015 */ blez $v1, .L80020FB8 -/* 021B64 80020F64 3C098012 */ lui $t1, %hi(D_8011AE74) # $t1, 0x8012 -/* 021B68 80020F68 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 -/* 021B6C 80020F6C 8CC6AE74 */ lw $a2, %lo(D_8011AE74)($a2) -/* 021B70 80020F70 8262003E */ lb $v0, 0x3e($s3) -/* 021B74 80020F74 8CD90000 */ lw $t9, ($a2) -/* 021B78 80020F78 00000000 */ nop -/* 021B7C 80020F7C 8F2E007C */ lw $t6, 0x7c($t9) -/* 021B80 80020F80 00000000 */ nop -/* 021B84 80020F84 104E000C */ beq $v0, $t6, .L80020FB8 -/* 021B88 80020F88 00000000 */ nop -.L80020F8C: -/* 021B8C 80020F8C 25080001 */ addiu $t0, $t0, 1 -/* 021B90 80020F90 0103082A */ slt $at, $t0, $v1 -/* 021B94 80020F94 10200008 */ beqz $at, .L80020FB8 -/* 021B98 80020F98 0008C080 */ sll $t8, $t0, 2 -/* 021B9C 80020F9C 00D87821 */ addu $t7, $a2, $t8 -/* 021BA0 80020FA0 8DF90000 */ lw $t9, ($t7) -/* 021BA4 80020FA4 00000000 */ nop -/* 021BA8 80020FA8 8F2E007C */ lw $t6, 0x7c($t9) -/* 021BAC 80020FAC 00000000 */ nop -/* 021BB0 80020FB0 144EFFF6 */ bne $v0, $t6, .L80020F8C -/* 021BB4 80020FB4 00000000 */ nop -.L80020FB8: -/* 021BB8 80020FB8 1103002F */ beq $t0, $v1, .L80021078 -/* 021BBC 80020FBC 2529AE74 */ addiu $t1, %lo(D_8011AE74) # addiu $t1, $t1, -0x518c -/* 021BC0 80020FC0 8D380000 */ lw $t8, ($t1) -/* 021BC4 80020FC4 00087880 */ sll $t7, $t0, 2 -/* 021BC8 80020FC8 030FC821 */ addu $t9, $t8, $t7 -/* 021BCC 80020FCC 8F2E0000 */ lw $t6, ($t9) -/* 021BD0 80020FD0 00000000 */ nop -/* 021BD4 80020FD4 8DC30064 */ lw $v1, 0x64($t6) -/* 021BD8 80020FD8 00000000 */ nop -/* 021BDC 80020FDC 10600026 */ beqz $v1, .L80021078 -/* 021BE0 80020FE0 00000000 */ nop -/* 021BE4 80020FE4 C466000C */ lwc1 $f6, 0xc($v1) -/* 021BE8 80020FE8 C6CA000C */ lwc1 $f10, 0xc($s6) -/* 021BEC 80020FEC 00000000 */ nop -/* 021BF0 80020FF0 460A3101 */ sub.s $f4, $f6, $f10 -/* 021BF4 80020FF4 E7A40124 */ swc1 $f4, 0x124($sp) -/* 021BF8 80020FF8 C6C60010 */ lwc1 $f6, 0x10($s6) -/* 021BFC 80020FFC C4680010 */ lwc1 $f8, 0x10($v1) -/* 021C00 80021000 00000000 */ nop -/* 021C04 80021004 46064281 */ sub.s $f10, $f8, $f6 -/* 021C08 80021008 E7AA0120 */ swc1 $f10, 0x120($sp) -/* 021C0C 8002100C C6C80014 */ lwc1 $f8, 0x14($s6) -/* 021C10 80021010 C4640014 */ lwc1 $f4, 0x14($v1) -/* 021C14 80021014 C7AA0124 */ lwc1 $f10, 0x124($sp) -/* 021C18 80021018 46082181 */ sub.s $f6, $f4, $f8 -/* 021C1C 8002101C C7A80120 */ lwc1 $f8, 0x120($sp) -/* 021C20 80021020 460A5102 */ mul.s $f4, $f10, $f10 -/* 021C24 80021024 E7A6011C */ swc1 $f6, 0x11c($sp) -/* 021C28 80021028 46084182 */ mul.s $f6, $f8, $f8 -/* 021C2C 8002102C C7A8011C */ lwc1 $f8, 0x11c($sp) -/* 021C30 80021030 46062280 */ add.s $f10, $f4, $f6 -/* 021C34 80021034 46084102 */ mul.s $f4, $f8, $f8 -/* 021C38 80021038 0C0326B4 */ jal sqrtf -/* 021C3C 8002103C 46045300 */ add.s $f12, $f10, $f4 -/* 021C40 80021040 4600B03C */ c.lt.s $f22, $f0 -/* 021C44 80021044 C7AE011C */ lwc1 $f14, 0x11c($sp) -/* 021C48 80021048 4500000B */ bc1f .L80021078 -/* 021C4C 8002104C 46000506 */ mov.s $f20, $f0 -/* 021C50 80021050 C7AC0124 */ lwc1 $f12, 0x124($sp) -/* 021C54 80021054 0C01C1D4 */ jal arctan2_f -/* 021C58 80021058 00000000 */ nop -/* 021C5C 8002105C 24018000 */ li $at, -32768 -/* 021C60 80021060 0041C021 */ addu $t8, $v0, $at -/* 021C64 80021064 A6D80000 */ sh $t8, ($s6) -/* 021C68 80021068 C7AC0120 */ lwc1 $f12, 0x120($sp) -/* 021C6C 8002106C 0C01C1D4 */ jal arctan2_f -/* 021C70 80021070 4600A386 */ mov.s $f14, $f20 -/* 021C74 80021074 A6C20002 */ sh $v0, 2($s6) -.L80021078: -/* 021C78 80021078 826F002F */ lb $t7, 0x2f($s3) -/* 021C7C 8002107C 02C02025 */ move $a0, $s6 -/* 021C80 80021080 AECF0074 */ sw $t7, 0x74($s6) -/* 021C84 80021084 8FA5019C */ lw $a1, 0x19c($sp) -/* 021C88 80021088 0C02BF0F */ jal func_800AFC3C -/* 021C8C 8002108C 00000000 */ nop -/* 021C90 80021090 00001025 */ move $v0, $zero -.L80021094: -/* 021C94 80021094 8FBF0054 */ lw $ra, 0x54($sp) -.L80021098: -/* 021C98 80021098 C7B50028 */ lwc1 $f21, 0x28($sp) -/* 021C9C 8002109C C7B4002C */ lwc1 $f20, 0x2c($sp) -/* 021CA0 800210A0 C7B70030 */ lwc1 $f23, 0x30($sp) -/* 021CA4 800210A4 C7B60034 */ lwc1 $f22, 0x34($sp) -/* 021CA8 800210A8 8FB00038 */ lw $s0, 0x38($sp) -/* 021CAC 800210AC 8FB1003C */ lw $s1, 0x3c($sp) -/* 021CB0 800210B0 8FB20040 */ lw $s2, 0x40($sp) -/* 021CB4 800210B4 8FB30044 */ lw $s3, 0x44($sp) -/* 021CB8 800210B8 8FB40048 */ lw $s4, 0x48($sp) -/* 021CBC 800210BC 8FB5004C */ lw $s5, 0x4c($sp) -/* 021CC0 800210C0 8FB60050 */ lw $s6, 0x50($sp) -/* 021CC4 800210C4 03E00008 */ jr $ra -/* 021CC8 800210C8 27BD0198 */ addiu $sp, $sp, 0x198 - +.late_rodata +glabel D_800E5670 +.double 1.2 +glabel D_800E5678 +.float 0.01 +.word 0 # Padding +glabel D_800E5680 +.double 0.1 + +.text +glabel func_8001F460 +/* 020060 8001F460 27BDFE68 */ addiu $sp, $sp, -0x198 +/* 020064 8001F464 3C0E8012 */ lui $t6, %hi(D_8011AE7A) # $t6, 0x8012 +/* 020068 8001F468 85CEAE7A */ lh $t6, %lo(D_8011AE7A)($t6) +/* 02006C 8001F46C AFB60050 */ sw $s6, 0x50($sp) +/* 020070 8001F470 AFB40048 */ sw $s4, 0x48($sp) +/* 020074 8001F474 00C0A025 */ move $s4, $a2 +/* 020078 8001F478 0080B025 */ move $s6, $a0 +/* 02007C 8001F47C AFBF0054 */ sw $ra, 0x54($sp) +/* 020080 8001F480 AFB5004C */ sw $s5, 0x4c($sp) +/* 020084 8001F484 AFB30044 */ sw $s3, 0x44($sp) +/* 020088 8001F488 AFB20040 */ sw $s2, 0x40($sp) +/* 02008C 8001F48C AFB1003C */ sw $s1, 0x3c($sp) +/* 020090 8001F490 AFB00038 */ sw $s0, 0x38($sp) +/* 020094 8001F494 E7B70030 */ swc1 $f23, 0x30($sp) +/* 020098 8001F498 E7B60034 */ swc1 $f22, 0x34($sp) +/* 02009C 8001F49C E7B50028 */ swc1 $f21, 0x28($sp) +/* 0200A0 8001F4A0 E7B4002C */ swc1 $f20, 0x2c($sp) +/* 0200A4 8001F4A4 05C10003 */ bgez $t6, .L8001F4B4 +/* 0200A8 8001F4A8 AFA5019C */ sw $a1, 0x19c($sp) +/* 0200AC 8001F4AC 100006F9 */ b .L80021094 +/* 0200B0 8001F4B0 24020001 */ li $v0, 1 +.L8001F4B4: +/* 0200B4 8001F4B4 8FAF019C */ lw $t7, 0x19c($sp) +/* 0200B8 8001F4B8 24180008 */ li $t8, 8 +/* 0200BC 8001F4BC 29E10009 */ slti $at, $t7, 9 +/* 0200C0 8001F4C0 14200002 */ bnez $at, .L8001F4CC +/* 0200C4 8001F4C4 00009025 */ move $s2, $zero +/* 0200C8 8001F4C8 AFB8019C */ sw $t8, 0x19c($sp) +.L8001F4CC: +/* 0200CC 8001F4CC 8FB9019C */ lw $t9, 0x19c($sp) +/* 0200D0 8001F4D0 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 +/* 0200D4 8001F4D4 44992000 */ mtc1 $t9, $f4 +/* 0200D8 8001F4D8 8DCE0300 */ lw $t6, %lo(osTvType)($t6) +/* 0200DC 8001F4DC 46802020 */ cvt.s.w $f0, $f4 +/* 0200E0 8001F4E0 3C01800E */ lui $at, %hi(D_800E5670 + 4) # $at, 0x800e +/* 0200E4 8001F4E4 00008025 */ move $s0, $zero +/* 0200E8 8001F4E8 E7A00114 */ swc1 $f0, 0x114($sp) +/* 0200EC 8001F4EC 8ED30064 */ lw $s3, 0x64($s6) +/* 0200F0 8001F4F0 15C00007 */ bnez $t6, .L8001F510 +/* 0200F4 8001F4F4 24110004 */ li $s1, 4 +/* 0200F8 8001F4F8 C4295670 */ lwc1 $f9, %lo(D_800E5670)($at) +/* 0200FC 8001F4FC C4285674 */ lwc1 $f8, %lo(D_800E5670 + 4)($at) +/* 020100 8001F500 460001A1 */ cvt.d.s $f6, $f0 +/* 020104 8001F504 46283282 */ mul.d $f10, $f6, $f8 +/* 020108 8001F508 46205120 */ cvt.s.d $f4, $f10 +/* 02010C 8001F50C E7A40114 */ swc1 $f4, 0x114($sp) +.L8001F510: +/* 020110 8001F510 866F002A */ lh $t7, 0x2a($s3) +/* 020114 8001F514 00000000 */ nop +/* 020118 8001F518 05E10019 */ bgez $t7, .L8001F580 +/* 02011C 8001F51C 00000000 */ nop +/* 020120 8001F520 92620034 */ lbu $v0, 0x34($s3) +/* 020124 8001F524 00004025 */ move $t0, $zero +/* 020128 8001F528 30580001 */ andi $t8, $v0, 1 +/* 02012C 8001F52C 13000002 */ beqz $t8, .L8001F538 +/* 020130 8001F530 30590002 */ andi $t9, $v0, 2 +/* 020134 8001F534 34088000 */ li $t0, 32768 +.L8001F538: +/* 020138 8001F538 13200003 */ beqz $t9, .L8001F548 +/* 02013C 8001F53C 304F0004 */ andi $t7, $v0, 4 +/* 020140 8001F540 350E4000 */ ori $t6, $t0, 0x4000 +/* 020144 8001F544 01C04025 */ move $t0, $t6 +.L8001F548: +/* 020148 8001F548 11E00002 */ beqz $t7, .L8001F554 +/* 02014C 8001F54C 35181000 */ ori $t8, $t0, 0x1000 +/* 020150 8001F550 03004025 */ move $t0, $t8 +.L8001F554: +/* 020154 8001F554 02002025 */ move $a0, $s0 +/* 020158 8001F558 0C01A955 */ jal get_buttons_pressed_from_player +/* 02015C 8001F55C AFA80174 */ sw $t0, 0x174($sp) +/* 020160 8001F560 8FA80174 */ lw $t0, 0x174($sp) +/* 020164 8001F564 26100001 */ addiu $s0, $s0, 1 +/* 020168 8001F568 1611FFFA */ bne $s0, $s1, .L8001F554 +/* 02016C 8001F56C 02429025 */ or $s2, $s2, $v0 +/* 020170 8001F570 0248C824 */ and $t9, $s2, $t0 +/* 020174 8001F574 13200002 */ beqz $t9, .L8001F580 +/* 020178 8001F578 240E0001 */ li $t6, 1 +/* 02017C 8001F57C A66E002A */ sh $t6, 0x2a($s3) +.L8001F580: +/* 020180 8001F580 8662002A */ lh $v0, 0x2a($s3) +/* 020184 8001F584 00000000 */ nop +/* 020188 8001F588 04400018 */ bltz $v0, .L8001F5EC +/* 02018C 8001F58C 00000000 */ nop +/* 020190 8001F590 826F0045 */ lb $t7, 0x45($s3) +/* 020194 8001F594 8FB8019C */ lw $t8, 0x19c($sp) +/* 020198 8001F598 15E00014 */ bnez $t7, .L8001F5EC +/* 02019C 8001F59C 0058C823 */ subu $t9, $v0, $t8 +/* 0201A0 8001F5A0 A679002A */ sh $t9, 0x2a($s3) +/* 0201A4 8001F5A4 8662002A */ lh $v0, 0x2a($s3) +/* 0201A8 8001F5A8 240E0001 */ li $t6, 1 +/* 0201AC 8001F5AC 1C40000F */ bgtz $v0, .L8001F5EC +/* 0201B0 8001F5B0 02C02025 */ move $a0, $s6 +/* 0201B4 8001F5B4 8E6F001C */ lw $t7, 0x1c($s3) +/* 0201B8 8001F5B8 A26E0045 */ sb $t6, 0x45($s3) +/* 0201BC 8001F5BC 8DF1003C */ lw $s1, 0x3c($t7) +/* 0201C0 8001F5C0 02602825 */ move $a1, $s3 +/* 0201C4 8001F5C4 0C008441 */ jal func_80021104 +/* 0201C8 8001F5C8 02203025 */ move $a2, $s1 +/* 0201CC 8001F5CC A660002A */ sh $zero, 0x2a($s3) +/* 0201D0 8001F5D0 02C02025 */ move $a0, $s6 +/* 0201D4 8001F5D4 02202825 */ move $a1, $s1 +/* 0201D8 8001F5D8 02603025 */ move $a2, $s3 +/* 0201DC 8001F5DC 0C008497 */ jal func_8002125C +/* 0201E0 8001F5E0 2407FFFF */ li $a3, -1 +/* 0201E4 8001F5E4 8662002A */ lh $v0, 0x2a($s3) +/* 0201E8 8001F5E8 00000000 */ nop +.L8001F5EC: +/* 0201EC 8001F5EC 1040000D */ beqz $v0, .L8001F624 +/* 0201F0 8001F5F0 00000000 */ nop +/* 0201F4 8001F5F4 8278003A */ lb $t8, 0x3a($s3) +/* 0201F8 8001F5F8 00000000 */ nop +/* 0201FC 8001F5FC 13000007 */ beqz $t8, .L8001F61C +/* 020200 8001F600 00000000 */ nop +/* 020204 8001F604 86D90006 */ lh $t9, 6($s6) +/* 020208 8001F608 24020001 */ li $v0, 1 +/* 02020C 8001F60C 372E4000 */ ori $t6, $t9, 0x4000 +/* 020210 8001F610 A6CE0006 */ sh $t6, 6($s6) +/* 020214 8001F614 1000069F */ b .L80021094 +/* 020218 8001F618 A2600042 */ sb $zero, 0x42($s3) +.L8001F61C: +/* 02021C 8001F61C 1000069D */ b .L80021094 +/* 020220 8001F620 00001025 */ move $v0, $zero +.L8001F624: +/* 020224 8001F624 86CF0006 */ lh $t7, 6($s6) +/* 020228 8001F628 2410BFFF */ li $s0, -16385 +/* 02022C 8001F62C 31F8BFFF */ andi $t8, $t7, 0xbfff +/* 020230 8001F630 A6D80006 */ sh $t8, 6($s6) +/* 020234 8001F634 82630039 */ lb $v1, 0x39($s3) +/* 020238 8001F638 2401FFFE */ li $at, -2 +/* 02023C 8001F63C 18600010 */ blez $v1, .L8001F680 +/* 020240 8001F640 00000000 */ nop +/* 020244 8001F644 0C000646 */ jal func_80001918 +/* 020248 8001F648 00000000 */ nop +/* 02024C 8001F64C 82630039 */ lb $v1, 0x39($s3) +/* 020250 8001F650 00000000 */ nop +/* 020254 8001F654 10620006 */ beq $v1, $v0, .L8001F670 +/* 020258 8001F658 2419FFFE */ li $t9, -2 +/* 02025C 8001F65C 0C0002CD */ jal play_music +/* 020260 8001F660 306400FF */ andi $a0, $v1, 0xff +/* 020264 8001F664 0C0002C6 */ jal func_80000B18 +/* 020268 8001F668 00000000 */ nop +/* 02026C 8001F66C 2419FFFE */ li $t9, -2 +.L8001F670: +/* 020270 8001F670 0C00032F */ jal func_80000CBC +/* 020274 8001F674 A2790039 */ sb $t9, 0x39($s3) +/* 020278 8001F678 10000008 */ b .L8001F69C +/* 02027C 8001F67C 82630038 */ lb $v1, 0x38($s3) +.L8001F680: +/* 020280 8001F680 14610005 */ bne $v1, $at, .L8001F698 +/* 020284 8001F684 00000000 */ nop +/* 020288 8001F688 0C0002CA */ jal func_80000B28 +/* 02028C 8001F68C 00000000 */ nop +/* 020290 8001F690 240EFFFF */ li $t6, -1 +/* 020294 8001F694 A26E0039 */ sb $t6, 0x39($s3) +.L8001F698: +/* 020298 8001F698 82630038 */ lb $v1, 0x38($s3) +.L8001F69C: +/* 02029C 8001F69C 00000000 */ nop +/* 0202A0 8001F6A0 1060001D */ beqz $v1, .L8001F718 +/* 0202A4 8001F6A4 00000000 */ nop +/* 0202A8 8001F6A8 866F0024 */ lh $t7, 0x24($s3) +/* 0202AC 8001F6AC 306200FF */ andi $v0, $v1, 0xff +/* 0202B0 8001F6B0 15E00019 */ bnez $t7, .L8001F718 +/* 0202B4 8001F6B4 240100FF */ li $at, 255 +/* 0202B8 8001F6B8 14410009 */ bne $v0, $at, .L8001F6E0 +/* 0202BC 8001F6BC 00000000 */ nop +/* 0202C0 8001F6C0 8E640018 */ lw $a0, 0x18($s3) +/* 0202C4 8001F6C4 00000000 */ nop +/* 0202C8 8001F6C8 10800012 */ beqz $a0, .L8001F714 +/* 0202CC 8001F6CC 00000000 */ nop +/* 0202D0 8001F6D0 0C001223 */ jal func_8000488C +/* 0202D4 8001F6D4 00000000 */ nop +/* 0202D8 8001F6D8 1000000F */ b .L8001F718 +/* 0202DC 8001F6DC A2600038 */ sb $zero, 0x38($s3) +.L8001F6E0: +/* 0202E0 8001F6E0 8E640018 */ lw $a0, 0x18($s3) +/* 0202E4 8001F6E4 00000000 */ nop +/* 0202E8 8001F6E8 10800007 */ beqz $a0, .L8001F708 +/* 0202EC 8001F6EC 00000000 */ nop +/* 0202F0 8001F6F0 0C001223 */ jal func_8000488C +/* 0202F4 8001F6F4 00000000 */ nop +/* 0202F8 8001F6F8 82620038 */ lb $v0, 0x38($s3) +/* 0202FC 8001F6FC 00000000 */ nop +/* 020300 8001F700 305800FF */ andi $t8, $v0, 0xff +/* 020304 8001F704 03001025 */ move $v0, $t8 +.L8001F708: +/* 020308 8001F708 3044FFFF */ andi $a0, $v0, 0xffff +/* 02030C 8001F70C 0C000741 */ jal play_sound_global +/* 020310 8001F710 26650018 */ addiu $a1, $s3, 0x18 +.L8001F714: +/* 020314 8001F714 A2600038 */ sb $zero, 0x38($s3) +.L8001F718: +/* 020318 8001F718 82620043 */ lb $v0, 0x43($s3) +/* 02031C 8001F71C 00000000 */ nop +/* 020320 8001F720 10400004 */ beqz $v0, .L8001F734 +/* 020324 8001F724 00000000 */ nop +/* 020328 8001F728 0C000326 */ jal set_music_fade_timer +/* 02032C 8001F72C 00022200 */ sll $a0, $v0, 8 +/* 020330 8001F730 A2600043 */ sb $zero, 0x43($s3) +.L8001F734: +/* 020334 8001F734 82620041 */ lb $v0, 0x41($s3) +/* 020338 8001F738 92680042 */ lbu $t0, 0x42($s3) +/* 02033C 8001F73C 30590001 */ andi $t9, $v0, 1 +/* 020340 8001F740 13200010 */ beqz $t9, .L8001F784 +/* 020344 8001F744 304E0002 */ andi $t6, $v0, 2 +/* 020348 8001F748 304E0002 */ andi $t6, $v0, 2 +/* 02034C 8001F74C 8FA2019C */ lw $v0, 0x19c($sp) +/* 020350 8001F750 11C00002 */ beqz $t6, .L8001F75C +/* 020354 8001F754 000278C0 */ sll $t7, $v0, 3 +/* 020358 8001F758 00004025 */ move $t0, $zero +.L8001F75C: +/* 02035C 8001F75C 01E8082A */ slt $at, $t7, $t0 +/* 020360 8001F760 10200003 */ beqz $at, .L8001F770 +/* 020364 8001F764 00000000 */ nop +/* 020368 8001F768 10000013 */ b .L8001F7B8 +/* 02036C 8001F76C 010F4023 */ subu $t0, $t0, $t7 +.L8001F770: +/* 020370 8001F770 86D80006 */ lh $t8, 6($s6) +/* 020374 8001F774 00004025 */ move $t0, $zero +/* 020378 8001F778 37194000 */ ori $t9, $t8, 0x4000 +/* 02037C 8001F77C 1000000E */ b .L8001F7B8 +/* 020380 8001F780 A6D90006 */ sh $t9, 6($s6) +.L8001F784: +/* 020384 8001F784 8FAF019C */ lw $t7, 0x19c($sp) +/* 020388 8001F788 11C00002 */ beqz $t6, .L8001F794 +/* 02038C 8001F78C 000FC0C0 */ sll $t8, $t7, 3 +/* 020390 8001F790 240800FF */ li $t0, 255 +.L8001F794: +/* 020394 8001F794 01184021 */ addu $t0, $t0, $t8 +/* 020398 8001F798 29010100 */ slti $at, $t0, 0x100 +/* 02039C 8001F79C 14200002 */ bnez $at, .L8001F7A8 +/* 0203A0 8001F7A0 00000000 */ nop +/* 0203A4 8001F7A4 240800FF */ li $t0, 255 +.L8001F7A8: +/* 0203A8 8001F7A8 86D90006 */ lh $t9, 6($s6) +/* 0203AC 8001F7AC 00000000 */ nop +/* 0203B0 8001F7B0 03307024 */ and $t6, $t9, $s0 +/* 0203B4 8001F7B4 A6CE0006 */ sh $t6, 6($s6) +.L8001F7B8: +/* 0203B8 8001F7B8 9262003B */ lbu $v0, 0x3b($s3) +/* 0203BC 8001F7BC 2401007F */ li $at, 127 +/* 0203C0 8001F7C0 3052007F */ andi $s2, $v0, 0x7f +/* 0203C4 8001F7C4 12410070 */ beq $s2, $at, .L8001F988 +/* 0203C8 8001F7C8 A2680042 */ sb $t0, 0x42($s3) +/* 0203CC 8001F7CC 2A410008 */ slti $at, $s2, 8 +/* 0203D0 8001F7D0 14200026 */ bnez $at, .L8001F86C +/* 0203D4 8001F7D4 2A410006 */ slti $at, $s2, 6 +/* 0203D8 8001F7D8 0C0078A7 */ jal get_misc_asset +/* 0203DC 8001F7DC 2404000D */ li $a0, 13 +/* 0203E0 8001F7E0 00127880 */ sll $t7, $s2, 2 +/* 0203E4 8001F7E4 01F27821 */ addu $t7, $t7, $s2 +/* 0203E8 8001F7E8 004F1821 */ addu $v1, $v0, $t7 +/* 0203EC 8001F7EC 2471FFD8 */ addiu $s1, $v1, -0x28 +/* 0203F0 8001F7F0 82280000 */ lb $t0, ($s1) +/* 0203F4 8001F7F4 82300001 */ lb $s0, 1($s1) +/* 0203F8 8001F7F8 311800FF */ andi $t8, $t0, 0xff +/* 0203FC 8001F7FC 27080384 */ addiu $t0, $t8, 0x384 +/* 020400 8001F800 321900FF */ andi $t9, $s0, 0xff +/* 020404 8001F804 27300384 */ addiu $s0, $t9, 0x384 +/* 020408 8001F808 AFA80174 */ sw $t0, 0x174($sp) +/* 02040C 8001F80C 0C00322D */ jal normalise_time +/* 020410 8001F810 24040006 */ li $a0, 6 +/* 020414 8001F814 8FA80174 */ lw $t0, 0x174($sp) +/* 020418 8001F818 82250002 */ lb $a1, 2($s1) +/* 02041C 8001F81C 82260003 */ lb $a2, 3($s1) +/* 020420 8001F820 82270004 */ lb $a3, 4($s1) +/* 020424 8001F824 AFB00014 */ sw $s0, 0x14($sp) +/* 020428 8001F828 AFA80010 */ sw $t0, 0x10($sp) +/* 02042C 8001F82C 9279003C */ lbu $t9, 0x3c($s3) +/* 020430 8001F830 30AE00FF */ andi $t6, $a1, 0xff +/* 020434 8001F834 00590019 */ multu $v0, $t9 +/* 020438 8001F838 01C02825 */ move $a1, $t6 +/* 02043C 8001F83C 30CF00FF */ andi $t7, $a2, 0xff +/* 020440 8001F840 30F800FF */ andi $t8, $a3, 0xff +/* 020444 8001F844 03003825 */ move $a3, $t8 +/* 020448 8001F848 01E03025 */ move $a2, $t7 +/* 02044C 8001F84C 00002025 */ move $a0, $zero +/* 020450 8001F850 00007012 */ mflo $t6 +/* 020454 8001F854 AFAE0018 */ sw $t6, 0x18($sp) +/* 020458 8001F858 0C00C378 */ jal func_80030DE0 +/* 02045C 8001F85C 00000000 */ nop +/* 020460 8001F860 10000048 */ b .L8001F984 +/* 020464 8001F864 241800FF */ li $t8, 255 +/* 020468 8001F868 2A410006 */ slti $at, $s2, 6 +.L8001F86C: +/* 02046C 8001F86C 1420001A */ bnez $at, .L8001F8D8 +/* 020470 8001F870 2404000E */ li $a0, 14 +/* 020474 8001F874 240F0040 */ li $t7, 64 +/* 020478 8001F878 24010007 */ li $at, 7 +/* 02047C 8001F87C 16410008 */ bne $s2, $at, .L8001F8A0 +/* 020480 8001F880 A3AF00A4 */ sb $t7, 0xa4($sp) +/* 020484 8001F884 241800C8 */ li $t8, 200 +/* 020488 8001F888 241900C8 */ li $t9, 200 +/* 02048C 8001F88C 240E00FF */ li $t6, 255 +/* 020490 8001F890 A3AE00A7 */ sb $t6, 0xa7($sp) +/* 020494 8001F894 A3B900A6 */ sb $t9, 0xa6($sp) +/* 020498 8001F898 10000007 */ b .L8001F8B8 +/* 02049C 8001F89C A3B800A5 */ sb $t8, 0xa5($sp) +.L8001F8A0: +/* 0204A0 8001F8A0 240F00FF */ li $t7, 255 +/* 0204A4 8001F8A4 241800FF */ li $t8, 255 +/* 0204A8 8001F8A8 241900FF */ li $t9, 255 +/* 0204AC 8001F8AC A3B900A7 */ sb $t9, 0xa7($sp) +/* 0204B0 8001F8B0 A3B800A6 */ sb $t8, 0xa6($sp) +/* 0204B4 8001F8B4 A3AF00A5 */ sb $t7, 0xa5($sp) +.L8001F8B8: +/* 0204B8 8001F8B8 240E0007 */ li $t6, 7 +/* 0204BC 8001F8BC 240F0003 */ li $t7, 3 +/* 0204C0 8001F8C0 A7AE00A8 */ sh $t6, 0xa8($sp) +/* 0204C4 8001F8C4 A7AF00AA */ sh $t7, 0xaa($sp) +/* 0204C8 8001F8C8 0C030076 */ jal func_800C01D8 +/* 0204CC 8001F8CC 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 0204D0 8001F8D0 1000002C */ b .L8001F984 +/* 0204D4 8001F8D4 241800FF */ li $t8, 255 +.L8001F8D8: +/* 0204D8 8001F8D8 0C0078A7 */ jal get_misc_asset +/* 0204DC 8001F8DC A3A200A4 */ sb $v0, 0xa4($sp) +/* 0204E0 8001F8E0 82780040 */ lb $t8, 0x40($s3) +/* 0204E4 8001F8E4 00000000 */ nop +/* 0204E8 8001F8E8 0018C880 */ sll $t9, $t8, 2 +/* 0204EC 8001F8EC 0338C823 */ subu $t9, $t9, $t8 +/* 0204F0 8001F8F0 00598821 */ addu $s1, $v0, $t9 +/* 0204F4 8001F8F4 822E0000 */ lb $t6, ($s1) +/* 0204F8 8001F8F8 00000000 */ nop +/* 0204FC 8001F8FC A3AE00A5 */ sb $t6, 0xa5($sp) +/* 020500 8001F900 822F0001 */ lb $t7, 1($s1) +/* 020504 8001F904 00000000 */ nop +/* 020508 8001F908 A3AF00A6 */ sb $t7, 0xa6($sp) +/* 02050C 8001F90C 82380002 */ lb $t8, 2($s1) +/* 020510 8001F910 340FFFFF */ li $t7, 65535 +/* 020514 8001F914 A3B800A7 */ sb $t8, 0xa7($sp) +/* 020518 8001F918 9279003B */ lbu $t9, 0x3b($s3) +/* 02051C 8001F91C 00000000 */ nop +/* 020520 8001F920 332E0080 */ andi $t6, $t9, 0x80 +/* 020524 8001F924 11C00003 */ beqz $t6, .L8001F934 +/* 020528 8001F928 00000000 */ nop +/* 02052C 8001F92C 10000002 */ b .L8001F938 +/* 020530 8001F930 A7A000AA */ sh $zero, 0xaa($sp) +.L8001F934: +/* 020534 8001F934 A7AF00AA */ sh $t7, 0xaa($sp) +.L8001F938: +/* 020538 8001F938 0C00322D */ jal normalise_time +/* 02053C 8001F93C 24040006 */ li $a0, 6 +/* 020540 8001F940 9278003C */ lbu $t8, 0x3c($s3) +/* 020544 8001F944 00000000 */ nop +/* 020548 8001F948 00580019 */ multu $v0, $t8 +/* 02054C 8001F94C 0000C812 */ mflo $t9 +/* 020550 8001F950 A7B900A8 */ sh $t9, 0xa8($sp) +/* 020554 8001F954 0C030063 */ jal func_800C018C +/* 020558 8001F958 00000000 */ nop +/* 02055C 8001F95C 10400006 */ beqz $v0, .L8001F978 +/* 020560 8001F960 00000000 */ nop +/* 020564 8001F964 93AE00A4 */ lbu $t6, 0xa4($sp) +/* 020568 8001F968 00000000 */ nop +/* 02056C 8001F96C 31CF0080 */ andi $t7, $t6, 0x80 +/* 020570 8001F970 11E00004 */ beqz $t7, .L8001F984 +/* 020574 8001F974 241800FF */ li $t8, 255 +.L8001F978: +/* 020578 8001F978 0C030076 */ jal func_800C01D8 +/* 02057C 8001F97C 27A400A4 */ addiu $a0, $sp, 0xa4 +/* 020580 8001F980 241800FF */ li $t8, 255 +.L8001F984: +/* 020584 8001F984 A278003B */ sb $t8, 0x3b($s3) +.L8001F988: +/* 020588 8001F988 9279002E */ lbu $t9, 0x2e($s3) +/* 02058C 8001F98C 24010001 */ li $at, 1 +/* 020590 8001F990 1721003E */ bne $t9, $at, .L8001FA8C +/* 020594 8001F994 00000000 */ nop +/* 020598 8001F998 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 02059C 8001F99C 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0205A0 8001F9A0 44815800 */ mtc1 $at, $f11 +/* 0205A4 8001F9A4 44805000 */ mtc1 $zero, $f10 +/* 0205A8 8001F9A8 46003221 */ cvt.d.s $f8, $f6 +/* 0205AC 8001F9AC 462A4102 */ mul.d $f4, $f8, $f10 +/* 0205B0 8001F9B0 826F0031 */ lb $t7, 0x31($s3) +/* 0205B4 8001F9B4 86CE0000 */ lh $t6, ($s6) +/* 0205B8 8001F9B8 448F3000 */ mtc1 $t7, $f6 +/* 0205BC 8001F9BC 86CF0002 */ lh $t7, 2($s6) +/* 0205C0 8001F9C0 46803220 */ cvt.s.w $f8, $f6 +/* 0205C4 8001F9C4 46202020 */ cvt.s.d $f0, $f4 +/* 0205C8 8001F9C8 46004282 */ mul.s $f10, $f8, $f0 +/* 0205CC 8001F9CC 4458F800 */ cfc1 $t8, $31 +/* 0205D0 8001F9D0 00000000 */ nop +/* 0205D4 8001F9D4 37010003 */ ori $at, $t8, 3 +/* 0205D8 8001F9D8 38210002 */ xori $at, $at, 2 +/* 0205DC 8001F9DC 44C1F800 */ ctc1 $at, $31 +/* 0205E0 8001F9E0 00000000 */ nop +/* 0205E4 8001F9E4 46005124 */ cvt.w.s $f4, $f10 +/* 0205E8 8001F9E8 44D8F800 */ ctc1 $t8, $31 +/* 0205EC 8001F9EC 44182000 */ mfc1 $t8, $f4 +/* 0205F0 8001F9F0 00000000 */ nop +/* 0205F4 8001F9F4 01D8C821 */ addu $t9, $t6, $t8 +/* 0205F8 8001F9F8 A6D90000 */ sh $t9, ($s6) +/* 0205FC 8001F9FC 826E0032 */ lb $t6, 0x32($s3) +/* 020600 8001FA00 00000000 */ nop +/* 020604 8001FA04 448E3000 */ mtc1 $t6, $f6 +/* 020608 8001FA08 86CE0004 */ lh $t6, 4($s6) +/* 02060C 8001FA0C 46803220 */ cvt.s.w $f8, $f6 +/* 020610 8001FA10 46004282 */ mul.s $f10, $f8, $f0 +/* 020614 8001FA14 4458F800 */ cfc1 $t8, $31 +/* 020618 8001FA18 00000000 */ nop +/* 02061C 8001FA1C 37010003 */ ori $at, $t8, 3 +/* 020620 8001FA20 38210002 */ xori $at, $at, 2 +/* 020624 8001FA24 44C1F800 */ ctc1 $at, $31 +/* 020628 8001FA28 00000000 */ nop +/* 02062C 8001FA2C 46005124 */ cvt.w.s $f4, $f10 +/* 020630 8001FA30 44D8F800 */ ctc1 $t8, $31 +/* 020634 8001FA34 44182000 */ mfc1 $t8, $f4 +/* 020638 8001FA38 00000000 */ nop +/* 02063C 8001FA3C 01F8C821 */ addu $t9, $t7, $t8 +/* 020640 8001FA40 A6D90002 */ sh $t9, 2($s6) +/* 020644 8001FA44 826F0033 */ lb $t7, 0x33($s3) +/* 020648 8001FA48 00000000 */ nop +/* 02064C 8001FA4C 448F3000 */ mtc1 $t7, $f6 +/* 020650 8001FA50 00000000 */ nop +/* 020654 8001FA54 46803220 */ cvt.s.w $f8, $f6 +/* 020658 8001FA58 46004282 */ mul.s $f10, $f8, $f0 +/* 02065C 8001FA5C 4458F800 */ cfc1 $t8, $31 +/* 020660 8001FA60 00000000 */ nop +/* 020664 8001FA64 37010003 */ ori $at, $t8, 3 +/* 020668 8001FA68 38210002 */ xori $at, $at, 2 +/* 02066C 8001FA6C 44C1F800 */ ctc1 $at, $31 +/* 020670 8001FA70 00000000 */ nop +/* 020674 8001FA74 46005124 */ cvt.w.s $f4, $f10 +/* 020678 8001FA78 44D8F800 */ ctc1 $t8, $31 +/* 02067C 8001FA7C 44182000 */ mfc1 $t8, $f4 +/* 020680 8001FA80 00000000 */ nop +/* 020684 8001FA84 01D8C821 */ addu $t9, $t6, $t8 +/* 020688 8001FA88 A6D90004 */ sh $t9, 4($s6) +.L8001FA8C: +/* 02068C 8001FA8C 128000C5 */ beqz $s4, .L8001FDA4 +/* 020690 8001FA90 00000000 */ nop +/* 020694 8001FA94 8E8F0040 */ lw $t7, 0x40($s4) +/* 020698 8001FA98 00000000 */ nop +/* 02069C 8001FA9C 81EE0053 */ lb $t6, 0x53($t7) +/* 0206A0 8001FAA0 00000000 */ nop +/* 0206A4 8001FAA4 15C000BF */ bnez $t6, .L8001FDA4 +/* 0206A8 8001FAA8 00000000 */ nop +/* 0206AC 8001FAAC 4459F800 */ cfc1 $t9, $31 +/* 0206B0 8001FAB0 82D8003B */ lb $t8, 0x3b($s6) +/* 0206B4 8001FAB4 37210003 */ ori $at, $t9, 3 +/* 0206B8 8001FAB8 38210002 */ xori $at, $at, 2 +/* 0206BC 8001FABC A298003B */ sb $t8, 0x3b($s4) +/* 0206C0 8001FAC0 C6620010 */ lwc1 $f2, 0x10($s3) +/* 0206C4 8001FAC4 44C1F800 */ ctc1 $at, $31 +/* 0206C8 8001FAC8 86820018 */ lh $v0, 0x18($s4) +/* 0206CC 8001FACC 460011A4 */ cvt.w.s $f6, $f2 +/* 0206D0 8001FAD0 440F3000 */ mfc1 $t7, $f6 +/* 0206D4 8001FAD4 44D9F800 */ ctc1 $t9, $31 +/* 0206D8 8001FAD8 000F7400 */ sll $t6, $t7, 0x10 +/* 0206DC 8001FADC 000EC403 */ sra $t8, $t6, 0x10 +/* 0206E0 8001FAE0 10580007 */ beq $v0, $t8, .L8001FB00 +/* 0206E4 8001FAE4 00000000 */ nop +/* 0206E8 8001FAE8 44824000 */ mtc1 $v0, $f8 +/* 0206EC 8001FAEC 00000000 */ nop +/* 0206F0 8001FAF0 468042A0 */ cvt.s.w $f10, $f8 +/* 0206F4 8001FAF4 E66A0010 */ swc1 $f10, 0x10($s3) +/* 0206F8 8001FAF8 C6620010 */ lwc1 $f2, 0x10($s3) +/* 0206FC 8001FAFC 00000000 */ nop +.L8001FB00: +/* 020700 8001FB00 828F003A */ lb $t7, 0x3a($s4) +/* 020704 8001FB04 8E990068 */ lw $t9, 0x68($s4) +/* 020708 8001FB08 000F7080 */ sll $t6, $t7, 2 +/* 02070C 8001FB0C 032EC021 */ addu $t8, $t9, $t6 +/* 020710 8001FB10 8F030000 */ lw $v1, ($t8) +/* 020714 8001FB14 00000000 */ nop +/* 020718 8001FB18 10600097 */ beqz $v1, .L8001FD78 +/* 02071C 8001FB1C 00000000 */ nop +/* 020720 8001FB20 8282003B */ lb $v0, 0x3b($s4) +/* 020724 8001FB24 8C640000 */ lw $a0, ($v1) +/* 020728 8001FB28 04400093 */ bltz $v0, .L8001FD78 +/* 02072C 8001FB2C 00000000 */ nop +/* 020730 8001FB30 848F0048 */ lh $t7, 0x48($a0) +/* 020734 8001FB34 00000000 */ nop +/* 020738 8001FB38 004F082A */ slt $at, $v0, $t7 +/* 02073C 8001FB3C 1020008E */ beqz $at, .L8001FD78 +/* 020740 8001FB40 00000000 */ nop +/* 020744 8001FB44 8C990044 */ lw $t9, 0x44($a0) +/* 020748 8001FB48 000270C0 */ sll $t6, $v0, 3 +/* 02074C 8001FB4C 032EC021 */ addu $t8, $t9, $t6 +/* 020750 8001FB50 8F150004 */ lw $s5, 4($t8) +/* 020754 8001FB54 9263002C */ lbu $v1, 0x2c($s3) +/* 020758 8001FB58 26B5FFFF */ addiu $s5, $s5, -1 +/* 02075C 8001FB5C 00157900 */ sll $t7, $s5, 4 +/* 020760 8001FB60 1060000A */ beqz $v1, .L8001FB8C +/* 020764 8001FB64 01E0A825 */ move $s5, $t7 +/* 020768 8001FB68 24010001 */ li $at, 1 +/* 02076C 8001FB6C 1061002F */ beq $v1, $at, .L8001FC2C +/* 020770 8001FB70 24010002 */ li $at, 2 +/* 020774 8001FB74 10610018 */ beq $v1, $at, .L8001FBD8 +/* 020778 8001FB78 24010003 */ li $at, 3 +/* 02077C 8001FB7C 10610055 */ beq $v1, $at, .L8001FCD4 +/* 020780 8001FB80 00000000 */ nop +/* 020784 8001FB84 1000007D */ b .L8001FD7C +/* 020788 8001FB88 4459F800 */ cfc1 $t9, $31 +.L8001FB8C: +/* 02078C 8001FB8C C6640014 */ lwc1 $f4, 0x14($s3) +/* 020790 8001FB90 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 020794 8001FB94 00000000 */ nop +/* 020798 8001FB98 46062202 */ mul.s $f8, $f4, $f6 +/* 02079C 8001FB9C 44952000 */ mtc1 $s5, $f4 +/* 0207A0 8001FBA0 46081280 */ add.s $f10, $f2, $f8 +/* 0207A4 8001FBA4 46802020 */ cvt.s.w $f0, $f4 +/* 0207A8 8001FBA8 E66A0010 */ swc1 $f10, 0x10($s3) +/* 0207AC 8001FBAC C6620010 */ lwc1 $f2, 0x10($s3) +/* 0207B0 8001FBB0 00000000 */ nop +/* 0207B4 8001FBB4 4602003E */ c.le.s $f0, $f2 +/* 0207B8 8001FBB8 00000000 */ nop +/* 0207BC 8001FBBC 4500006E */ bc1f .L8001FD78 +/* 0207C0 8001FBC0 00000000 */ nop +/* 0207C4 8001FBC4 46001181 */ sub.s $f6, $f2, $f0 +/* 0207C8 8001FBC8 E6660010 */ swc1 $f6, 0x10($s3) +/* 0207CC 8001FBCC C6620010 */ lwc1 $f2, 0x10($s3) +/* 0207D0 8001FBD0 1000006A */ b .L8001FD7C +/* 0207D4 8001FBD4 4459F800 */ cfc1 $t9, $31 +.L8001FBD8: +/* 0207D8 8001FBD8 C6680014 */ lwc1 $f8, 0x14($s3) +/* 0207DC 8001FBDC C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 0207E0 8001FBE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0207E4 8001FBE4 460A4102 */ mul.s $f4, $f8, $f10 +/* 0207E8 8001FBE8 44954000 */ mtc1 $s5, $f8 +/* 0207EC 8001FBEC 46041180 */ add.s $f6, $f2, $f4 +/* 0207F0 8001FBF0 46804020 */ cvt.s.w $f0, $f8 +/* 0207F4 8001FBF4 E6660010 */ swc1 $f6, 0x10($s3) +/* 0207F8 8001FBF8 C6620010 */ lwc1 $f2, 0x10($s3) +/* 0207FC 8001FBFC 00000000 */ nop +/* 020800 8001FC00 4602003E */ c.le.s $f0, $f2 +/* 020804 8001FC04 00000000 */ nop +/* 020808 8001FC08 4500005B */ bc1f .L8001FD78 +/* 02080C 8001FC0C 00000000 */ nop +/* 020810 8001FC10 44815000 */ mtc1 $at, $f10 +/* 020814 8001FC14 00000000 */ nop +/* 020818 8001FC18 460A0101 */ sub.s $f4, $f0, $f10 +/* 02081C 8001FC1C E6640010 */ swc1 $f4, 0x10($s3) +/* 020820 8001FC20 C6620010 */ lwc1 $f2, 0x10($s3) +/* 020824 8001FC24 10000055 */ b .L8001FD7C +/* 020828 8001FC28 4459F800 */ cfc1 $t9, $31 +.L8001FC2C: +/* 02082C 8001FC2C 9279002D */ lbu $t9, 0x2d($s3) +/* 020830 8001FC30 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 020834 8001FC34 17200018 */ bnez $t9, .L8001FC98 +/* 020838 8001FC38 00000000 */ nop +/* 02083C 8001FC3C C6660014 */ lwc1 $f6, 0x14($s3) +/* 020840 8001FC40 C7A80114 */ lwc1 $f8, 0x114($sp) +/* 020844 8001FC44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 020848 8001FC48 46083282 */ mul.s $f10, $f6, $f8 +/* 02084C 8001FC4C 44953000 */ mtc1 $s5, $f6 +/* 020850 8001FC50 460A1100 */ add.s $f4, $f2, $f10 +/* 020854 8001FC54 46803020 */ cvt.s.w $f0, $f6 +/* 020858 8001FC58 E6640010 */ swc1 $f4, 0x10($s3) +/* 02085C 8001FC5C C6620010 */ lwc1 $f2, 0x10($s3) +/* 020860 8001FC60 00000000 */ nop +/* 020864 8001FC64 4602003E */ c.le.s $f0, $f2 +/* 020868 8001FC68 00000000 */ nop +/* 02086C 8001FC6C 45000008 */ bc1f .L8001FC90 +/* 020870 8001FC70 00000000 */ nop +/* 020874 8001FC74 44814000 */ mtc1 $at, $f8 +/* 020878 8001FC78 240E0001 */ li $t6, 1 +/* 02087C 8001FC7C 46080281 */ sub.s $f10, $f0, $f8 +/* 020880 8001FC80 A26E002D */ sb $t6, 0x2d($s3) +/* 020884 8001FC84 E66A0010 */ swc1 $f10, 0x10($s3) +/* 020888 8001FC88 C6620010 */ lwc1 $f2, 0x10($s3) +/* 02088C 8001FC8C 00000000 */ nop +.L8001FC90: +/* 020890 8001FC90 1000003A */ b .L8001FD7C +/* 020894 8001FC94 4459F800 */ cfc1 $t9, $31 +.L8001FC98: +/* 020898 8001FC98 C6640014 */ lwc1 $f4, 0x14($s3) +/* 02089C 8001FC9C 4480B000 */ mtc1 $zero, $f22 +/* 0208A0 8001FCA0 46062202 */ mul.s $f8, $f4, $f6 +/* 0208A4 8001FCA4 46081281 */ sub.s $f10, $f2, $f8 +/* 0208A8 8001FCA8 E66A0010 */ swc1 $f10, 0x10($s3) +/* 0208AC 8001FCAC C6620010 */ lwc1 $f2, 0x10($s3) +/* 0208B0 8001FCB0 00000000 */ nop +/* 0208B4 8001FCB4 4616103E */ c.le.s $f2, $f22 +/* 0208B8 8001FCB8 00000000 */ nop +/* 0208BC 8001FCBC 4500002E */ bc1f .L8001FD78 +/* 0208C0 8001FCC0 00000000 */ nop +/* 0208C4 8001FCC4 E6760010 */ swc1 $f22, 0x10($s3) +/* 0208C8 8001FCC8 C6620010 */ lwc1 $f2, 0x10($s3) +/* 0208CC 8001FCCC 1000002A */ b .L8001FD78 +/* 0208D0 8001FCD0 A260002D */ sb $zero, 0x2d($s3) +.L8001FCD4: +/* 0208D4 8001FCD4 9278002D */ lbu $t8, 0x2d($s3) +/* 0208D8 8001FCD8 C7A40114 */ lwc1 $f4, 0x114($sp) +/* 0208DC 8001FCDC 17000018 */ bnez $t8, .L8001FD40 +/* 0208E0 8001FCE0 00000000 */ nop +/* 0208E4 8001FCE4 C6640014 */ lwc1 $f4, 0x14($s3) +/* 0208E8 8001FCE8 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 0208EC 8001FCEC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0208F0 8001FCF0 46062202 */ mul.s $f8, $f4, $f6 +/* 0208F4 8001FCF4 44952000 */ mtc1 $s5, $f4 +/* 0208F8 8001FCF8 46081280 */ add.s $f10, $f2, $f8 +/* 0208FC 8001FCFC 46802020 */ cvt.s.w $f0, $f4 +/* 020900 8001FD00 E66A0010 */ swc1 $f10, 0x10($s3) +/* 020904 8001FD04 C6620010 */ lwc1 $f2, 0x10($s3) +/* 020908 8001FD08 00000000 */ nop +/* 02090C 8001FD0C 4602003E */ c.le.s $f0, $f2 +/* 020910 8001FD10 00000000 */ nop +/* 020914 8001FD14 45000008 */ bc1f .L8001FD38 +/* 020918 8001FD18 00000000 */ nop +/* 02091C 8001FD1C 44813000 */ mtc1 $at, $f6 +/* 020920 8001FD20 240F0001 */ li $t7, 1 +/* 020924 8001FD24 46060201 */ sub.s $f8, $f0, $f6 +/* 020928 8001FD28 A26F002D */ sb $t7, 0x2d($s3) +/* 02092C 8001FD2C E6680010 */ swc1 $f8, 0x10($s3) +/* 020930 8001FD30 C6620010 */ lwc1 $f2, 0x10($s3) +/* 020934 8001FD34 00000000 */ nop +.L8001FD38: +/* 020938 8001FD38 10000010 */ b .L8001FD7C +/* 02093C 8001FD3C 4459F800 */ cfc1 $t9, $31 +.L8001FD40: +/* 020940 8001FD40 C66A0014 */ lwc1 $f10, 0x14($s3) +/* 020944 8001FD44 4480B000 */ mtc1 $zero, $f22 +/* 020948 8001FD48 46045182 */ mul.s $f6, $f10, $f4 +/* 02094C 8001FD4C 46061201 */ sub.s $f8, $f2, $f6 +/* 020950 8001FD50 E6680010 */ swc1 $f8, 0x10($s3) +/* 020954 8001FD54 C6620010 */ lwc1 $f2, 0x10($s3) +/* 020958 8001FD58 00000000 */ nop +/* 02095C 8001FD5C 4616103E */ c.le.s $f2, $f22 +/* 020960 8001FD60 00000000 */ nop +/* 020964 8001FD64 45000004 */ bc1f .L8001FD78 +/* 020968 8001FD68 00000000 */ nop +/* 02096C 8001FD6C E6760010 */ swc1 $f22, 0x10($s3) +/* 020970 8001FD70 C6620010 */ lwc1 $f2, 0x10($s3) +/* 020974 8001FD74 00000000 */ nop +.L8001FD78: +/* 020978 8001FD78 4459F800 */ cfc1 $t9, $31 +.L8001FD7C: +/* 02097C 8001FD7C 00000000 */ nop +/* 020980 8001FD80 37210003 */ ori $at, $t9, 3 +/* 020984 8001FD84 38210002 */ xori $at, $at, 2 +/* 020988 8001FD88 44C1F800 */ ctc1 $at, $31 +/* 02098C 8001FD8C 00000000 */ nop +/* 020990 8001FD90 460012A4 */ cvt.w.s $f10, $f2 +/* 020994 8001FD94 440E5000 */ mfc1 $t6, $f10 +/* 020998 8001FD98 44D9F800 */ ctc1 $t9, $31 +/* 02099C 8001FD9C A68E0018 */ sh $t6, 0x18($s4) +/* 0209A0 8001FDA0 00000000 */ nop +.L8001FDA4: +/* 0209A4 8001FDA4 C6660008 */ lwc1 $f6, 8($s3) +/* 0209A8 8001FDA8 44802800 */ mtc1 $zero, $f5 +/* 0209AC 8001FDAC 44802000 */ mtc1 $zero, $f4 +/* 0209B0 8001FDB0 46003221 */ cvt.d.s $f8, $f6 +/* 0209B4 8001FDB4 4624403E */ c.le.d $f8, $f4 +/* 0209B8 8001FDB8 4480B000 */ mtc1 $zero, $f22 +/* 0209BC 8001FDBC 45000006 */ bc1f .L8001FDD8 +/* 0209C0 8001FDC0 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 +/* 0209C4 8001FDC4 8FA5019C */ lw $a1, 0x19c($sp) +/* 0209C8 8001FDC8 0C008539 */ jal func_800214E4 +/* 0209CC 8001FDCC 02C02025 */ move $a0, $s6 +/* 0209D0 8001FDD0 100004B1 */ b .L80021098 +/* 0209D4 8001FDD4 8FBF0054 */ lw $ra, 0x54($sp) +.L8001FDD8: +/* 0209D8 8001FDD8 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) +/* 0209DC 8001FDDC 86650028 */ lh $a1, 0x28($s3) +/* 0209E0 8001FDE0 18600016 */ blez $v1, .L8001FE3C +/* 0209E4 8001FDE4 0000A025 */ move $s4, $zero +/* 0209E8 8001FDE8 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 +/* 0209EC 8001FDEC 24E7AE74 */ addiu $a3, %lo(D_8011AE74) # addiu $a3, $a3, -0x518c +/* 0209F0 8001FDF0 8CE60000 */ lw $a2, ($a3) +/* 0209F4 8001FDF4 00000000 */ nop +/* 0209F8 8001FDF8 8CD80000 */ lw $t8, ($a2) +/* 0209FC 8001FDFC 00000000 */ nop +/* 020A00 8001FE00 8F0F007C */ lw $t7, 0x7c($t8) +/* 020A04 8001FE04 00000000 */ nop +/* 020A08 8001FE08 10AF000C */ beq $a1, $t7, .L8001FE3C +/* 020A0C 8001FE0C 00000000 */ nop +.L8001FE10: +/* 020A10 8001FE10 26940001 */ addiu $s4, $s4, 1 +/* 020A14 8001FE14 0283082A */ slt $at, $s4, $v1 +/* 020A18 8001FE18 10200008 */ beqz $at, .L8001FE3C +/* 020A1C 8001FE1C 0014C880 */ sll $t9, $s4, 2 +/* 020A20 8001FE20 00D97021 */ addu $t6, $a2, $t9 +/* 020A24 8001FE24 8DD80000 */ lw $t8, ($t6) +/* 020A28 8001FE28 00000000 */ nop +/* 020A2C 8001FE2C 8F0F007C */ lw $t7, 0x7c($t8) +/* 020A30 8001FE30 00000000 */ nop +/* 020A34 8001FE34 14AFFFF6 */ bne $a1, $t7, .L8001FE10 +/* 020A38 8001FE38 00000000 */ nop +.L8001FE3C: +/* 020A3C 8001FE3C 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 +/* 020A40 8001FE40 0283082A */ slt $at, $s4, $v1 +/* 020A44 8001FE44 14200006 */ bnez $at, .L8001FE60 +/* 020A48 8001FE48 24E7AE74 */ addiu $a3, %lo(D_8011AE74) # addiu $a3, $a3, -0x518c +/* 020A4C 8001FE4C 8FA5019C */ lw $a1, 0x19c($sp) +/* 020A50 8001FE50 0C008539 */ jal func_800214E4 +/* 020A54 8001FE54 02C02025 */ move $a0, $s6 +/* 020A58 8001FE58 1000048F */ b .L80021098 +/* 020A5C 8001FE5C 8FBF0054 */ lw $ra, 0x54($sp) +.L8001FE60: +/* 020A60 8001FE60 26990001 */ addiu $t9, $s4, 1 +/* 020A64 8001FE64 0323082A */ slt $at, $t9, $v1 +/* 020A68 8001FE68 10200015 */ beqz $at, .L8001FEC0 +/* 020A6C 8001FE6C 24150001 */ li $s5, 1 +/* 020A70 8001FE70 8CEE0000 */ lw $t6, ($a3) +/* 020A74 8001FE74 0014C080 */ sll $t8, $s4, 2 +/* 020A78 8001FE78 01D82021 */ addu $a0, $t6, $t8 +/* 020A7C 8001FE7C 8C8F0004 */ lw $t7, 4($a0) +/* 020A80 8001FE80 02951021 */ addu $v0, $s4, $s5 +/* 020A84 8001FE84 8DF9007C */ lw $t9, 0x7c($t7) +/* 020A88 8001FE88 00000000 */ nop +/* 020A8C 8001FE8C 14B9000C */ bne $a1, $t9, .L8001FEC0 +/* 020A90 8001FE90 24420001 */ addiu $v0, $v0, 1 +.L8001FE94: +/* 020A94 8001FE94 0043082A */ slt $at, $v0, $v1 +/* 020A98 8001FE98 10200009 */ beqz $at, .L8001FEC0 +/* 020A9C 8001FE9C 26B50001 */ addiu $s5, $s5, 1 +/* 020AA0 8001FEA0 00157080 */ sll $t6, $s5, 2 +/* 020AA4 8001FEA4 008EC021 */ addu $t8, $a0, $t6 +/* 020AA8 8001FEA8 8F0F0000 */ lw $t7, ($t8) +/* 020AAC 8001FEAC 00000000 */ nop +/* 020AB0 8001FEB0 8DF9007C */ lw $t9, 0x7c($t7) +/* 020AB4 8001FEB4 00000000 */ nop +/* 020AB8 8001FEB8 10B9FFF6 */ beq $a1, $t9, .L8001FE94 +/* 020ABC 8001FEBC 24420001 */ addiu $v0, $v0, 1 +.L8001FEC0: +/* 020AC0 8001FEC0 2AA10002 */ slti $at, $s5, 2 +/* 020AC4 8001FEC4 10200006 */ beqz $at, .L8001FEE0 +/* 020AC8 8001FEC8 00000000 */ nop +/* 020ACC 8001FECC 8FA5019C */ lw $a1, 0x19c($sp) +/* 020AD0 8001FED0 0C008539 */ jal func_800214E4 +/* 020AD4 8001FED4 02C02025 */ move $a0, $s6 +/* 020AD8 8001FED8 1000046F */ b .L80021098 +/* 020ADC 8001FEDC 8FBF0054 */ lw $ra, 0x54($sp) +.L8001FEE0: +/* 020AE0 8001FEE0 8CE60000 */ lw $a2, ($a3) +/* 020AE4 8001FEE4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 020AE8 8001FEE8 8CCE0000 */ lw $t6, ($a2) +/* 020AEC 8001FEEC 44815800 */ mtc1 $at, $f11 +/* 020AF0 8001FEF0 8DD80040 */ lw $t8, 0x40($t6) +/* 020AF4 8001FEF4 44805000 */ mtc1 $zero, $f10 +/* 020AF8 8001FEF8 C706000C */ lwc1 $f6, 0xc($t8) +/* 020AFC 8001FEFC 00147880 */ sll $t7, $s4, 2 +/* 020B00 8001FF00 46003121 */ cvt.d.s $f4, $f6 +/* 020B04 8001FF04 00000000 */ nop +/* 020B08 8001FF08 46245203 */ div.d $f8, $f10, $f4 +/* 020B0C 8001FF0C 00157080 */ sll $t6, $s5, 2 +/* 020B10 8001FF10 00CFC821 */ addu $t9, $a2, $t7 +/* 020B14 8001FF14 032EC021 */ addu $t8, $t9, $t6 +/* 020B18 8001FF18 2AA10003 */ slti $at, $s5, 3 +/* 020B1C 8001FF1C 2403FFFF */ li $v1, -1 +/* 020B20 8001FF20 462041A0 */ cvt.s.d $f6, $f8 +/* 020B24 8001FF24 E7A600B4 */ swc1 $f6, 0xb4($sp) +/* 020B28 8001FF28 8F0FFFFC */ lw $t7, -4($t8) +/* 020B2C 8001FF2C 00000000 */ nop +/* 020B30 8001FF30 8DF1003C */ lw $s1, 0x3c($t7) +/* 020B34 8001FF34 14200009 */ bnez $at, .L8001FF5C +/* 020B38 8001FF38 2401FFFF */ li $at, -1 +/* 020B3C 8001FF3C 8222001D */ lb $v0, 0x1d($s1) +/* 020B40 8001FF40 26B9FFFF */ addiu $t9, $s5, -1 +/* 020B44 8001FF44 04400004 */ bltz $v0, .L8001FF58 +/* 020B48 8001FF48 0059082A */ slt $at, $v0, $t9 +/* 020B4C 8001FF4C 10200003 */ beqz $at, .L8001FF5C +/* 020B50 8001FF50 2401FFFF */ li $at, -1 +/* 020B54 8001FF54 00401825 */ move $v1, $v0 +.L8001FF58: +/* 020B58 8001FF58 2401FFFF */ li $at, -1 +.L8001FF5C: +/* 020B5C 8001FF5C 1461000B */ bne $v1, $at, .L8001FF8C +/* 020B60 8001FF60 00000000 */ nop +/* 020B64 8001FF64 866E0026 */ lh $t6, 0x26($s3) +/* 020B68 8001FF68 26B8FFFF */ addiu $t8, $s5, -1 +/* 020B6C 8001FF6C 01D8082A */ slt $at, $t6, $t8 +/* 020B70 8001FF70 14200006 */ bnez $at, .L8001FF8C +/* 020B74 8001FF74 00000000 */ nop +/* 020B78 8001FF78 8FA5019C */ lw $a1, 0x19c($sp) +/* 020B7C 8001FF7C 0C008539 */ jal func_800214E4 +/* 020B80 8001FF80 02C02025 */ move $a0, $s6 +/* 020B84 8001FF84 10000444 */ b .L80021098 +/* 020B88 8001FF88 8FBF0054 */ lw $ra, 0x54($sp) +.L8001FF8C: +/* 020B8C 8001FF8C 86620036 */ lh $v0, 0x36($s3) +/* 020B90 8001FF90 AFA30168 */ sw $v1, 0x168($sp) +/* 020B94 8001FF94 04400009 */ bltz $v0, .L8001FFBC +/* 020B98 8001FF98 27A90154 */ addiu $t1, $sp, 0x154 +/* 020B9C 8001FF9C 3C0F8012 */ lui $t7, %hi(D_8011AD53) # $t7, 0x8012 +/* 020BA0 8001FFA0 81EFAD53 */ lb $t7, %lo(D_8011AD53)($t7) +/* 020BA4 8001FFA4 8FB9019C */ lw $t9, 0x19c($sp) +/* 020BA8 8001FFA8 15E00002 */ bnez $t7, .L8001FFB4 +/* 020BAC 8001FFAC 00597023 */ subu $t6, $v0, $t9 +/* 020BB0 8001FFB0 A66E0036 */ sh $t6, 0x36($s3) +.L8001FFB4: +/* 020BB4 8001FFB4 10000437 */ b .L80021094 +/* 020BB8 8001FFB8 00001025 */ move $v0, $zero +.L8001FFBC: +/* 020BBC 8001FFBC 86700026 */ lh $s0, 0x26($s3) +/* 020BC0 8001FFC0 27AA0140 */ addiu $t2, $sp, 0x140 +/* 020BC4 8001FFC4 27AB012C */ addiu $t3, $sp, 0x12c +/* 020BC8 8001FFC8 27AD00E0 */ addiu $t5, $sp, 0xe0 +/* 020BCC 8001FFCC 27AC00CC */ addiu $t4, $sp, 0xcc +/* 020BD0 8001FFD0 27BF00B8 */ addiu $ra, $sp, 0xb8 +/* 020BD4 8001FFD4 27A700F4 */ addiu $a3, $sp, 0xf4 +/* 020BD8 8001FFD8 27B20108 */ addiu $s2, $sp, 0x108 +/* 020BDC 8001FFDC 2610FFFF */ addiu $s0, $s0, -1 +.L8001FFE0: +/* 020BE0 8001FFE0 2401FFFF */ li $at, -1 +/* 020BE4 8001FFE4 1601006A */ bne $s0, $at, .L80020190 +/* 020BE8 8001FFE8 0215082A */ slt $at, $s0, $s5 +/* 020BEC 8001FFEC 8FB80168 */ lw $t8, 0x168($sp) +/* 020BF0 8001FFF0 00147880 */ sll $t7, $s4, 2 +/* 020BF4 8001FFF4 13000037 */ beqz $t8, .L800200D4 +/* 020BF8 8001FFF8 02957021 */ addu $t6, $s4, $s5 +/* 020BFC 8001FFFC 00CF1021 */ addu $v0, $a2, $t7 +/* 020C00 80020000 8C590000 */ lw $t9, ($v0) +/* 020C04 80020004 8C4E0004 */ lw $t6, 4($v0) +/* 020C08 80020008 C720000C */ lwc1 $f0, 0xc($t9) +/* 020C0C 8002000C C5CA000C */ lwc1 $f10, 0xc($t6) +/* 020C10 80020010 00000000 */ nop +/* 020C14 80020014 460A0101 */ sub.s $f4, $f0, $f10 +/* 020C18 80020018 46002200 */ add.s $f8, $f4, $f0 +/* 020C1C 8002001C E5280000 */ swc1 $f8, ($t1) +/* 020C20 80020020 8C580000 */ lw $t8, ($v0) +/* 020C24 80020024 8C4F0004 */ lw $t7, 4($v0) +/* 020C28 80020028 C7020010 */ lwc1 $f2, 0x10($t8) +/* 020C2C 8002002C C5E60010 */ lwc1 $f6, 0x10($t7) +/* 020C30 80020030 00000000 */ nop +/* 020C34 80020034 46061281 */ sub.s $f10, $f2, $f6 +/* 020C38 80020038 46025100 */ add.s $f4, $f10, $f2 +/* 020C3C 8002003C E5440000 */ swc1 $f4, ($t2) +/* 020C40 80020040 8C590000 */ lw $t9, ($v0) +/* 020C44 80020044 8C4E0004 */ lw $t6, 4($v0) +/* 020C48 80020048 C72C0014 */ lwc1 $f12, 0x14($t9) +/* 020C4C 8002004C C5C80014 */ lwc1 $f8, 0x14($t6) +/* 020C50 80020050 00000000 */ nop +/* 020C54 80020054 46086181 */ sub.s $f6, $f12, $f8 +/* 020C58 80020058 460C3280 */ add.s $f10, $f6, $f12 +/* 020C5C 8002005C E56A0000 */ swc1 $f10, ($t3) +/* 020C60 80020060 8C580000 */ lw $t8, ($v0) +/* 020C64 80020064 00000000 */ nop +/* 020C68 80020068 870F0000 */ lh $t7, ($t8) +/* 020C6C 8002006C 00000000 */ nop +/* 020C70 80020070 448F2000 */ mtc1 $t7, $f4 +/* 020C74 80020074 00000000 */ nop +/* 020C78 80020078 46802220 */ cvt.s.w $f8, $f4 +/* 020C7C 8002007C E5A80000 */ swc1 $f8, ($t5) +/* 020C80 80020080 8C590000 */ lw $t9, ($v0) +/* 020C84 80020084 00000000 */ nop +/* 020C88 80020088 872E0002 */ lh $t6, 2($t9) +/* 020C8C 8002008C 00000000 */ nop +/* 020C90 80020090 448E3000 */ mtc1 $t6, $f6 +/* 020C94 80020094 00000000 */ nop +/* 020C98 80020098 468032A0 */ cvt.s.w $f10, $f6 +/* 020C9C 8002009C E58A0000 */ swc1 $f10, ($t4) +/* 020CA0 800200A0 8C580000 */ lw $t8, ($v0) +/* 020CA4 800200A4 00000000 */ nop +/* 020CA8 800200A8 870F0004 */ lh $t7, 4($t8) +/* 020CAC 800200AC 00000000 */ nop +/* 020CB0 800200B0 448F2000 */ mtc1 $t7, $f4 +/* 020CB4 800200B4 00000000 */ nop +/* 020CB8 800200B8 46802220 */ cvt.s.w $f8, $f4 +/* 020CBC 800200BC E7E80000 */ swc1 $f8, ($ra) +/* 020CC0 800200C0 8C590000 */ lw $t9, ($v0) +/* 020CC4 800200C4 00000000 */ nop +/* 020CC8 800200C8 C7260008 */ lwc1 $f6, 8($t9) +/* 020CCC 800200CC 1000010A */ b .L800204F8 +/* 020CD0 800200D0 E4E60000 */ swc1 $f6, ($a3) +.L800200D4: +/* 020CD4 800200D4 000EC080 */ sll $t8, $t6, 2 +/* 020CD8 800200D8 00D81021 */ addu $v0, $a2, $t8 +/* 020CDC 800200DC 8C4FFFFC */ lw $t7, -4($v0) +/* 020CE0 800200E0 00000000 */ nop +/* 020CE4 800200E4 C5EA000C */ lwc1 $f10, 0xc($t7) +/* 020CE8 800200E8 00000000 */ nop +/* 020CEC 800200EC E52A0000 */ swc1 $f10, ($t1) +/* 020CF0 800200F0 8C59FFFC */ lw $t9, -4($v0) +/* 020CF4 800200F4 00000000 */ nop +/* 020CF8 800200F8 C7240010 */ lwc1 $f4, 0x10($t9) +/* 020CFC 800200FC 00000000 */ nop +/* 020D00 80020100 E5440000 */ swc1 $f4, ($t2) +/* 020D04 80020104 8C4EFFFC */ lw $t6, -4($v0) +/* 020D08 80020108 00000000 */ nop +/* 020D0C 8002010C C5C80014 */ lwc1 $f8, 0x14($t6) +/* 020D10 80020110 00000000 */ nop +/* 020D14 80020114 E5680000 */ swc1 $f8, ($t3) +/* 020D18 80020118 8C58FFFC */ lw $t8, -4($v0) +/* 020D1C 8002011C 00000000 */ nop +/* 020D20 80020120 870F0000 */ lh $t7, ($t8) +/* 020D24 80020124 00000000 */ nop +/* 020D28 80020128 448F3000 */ mtc1 $t7, $f6 +/* 020D2C 8002012C 00000000 */ nop +/* 020D30 80020130 468032A0 */ cvt.s.w $f10, $f6 +/* 020D34 80020134 E5AA0000 */ swc1 $f10, ($t5) +/* 020D38 80020138 8C59FFFC */ lw $t9, -4($v0) +/* 020D3C 8002013C 00000000 */ nop +/* 020D40 80020140 872E0002 */ lh $t6, 2($t9) +/* 020D44 80020144 00000000 */ nop +/* 020D48 80020148 448E2000 */ mtc1 $t6, $f4 +/* 020D4C 8002014C 00000000 */ nop +/* 020D50 80020150 46802220 */ cvt.s.w $f8, $f4 +/* 020D54 80020154 E5880000 */ swc1 $f8, ($t4) +/* 020D58 80020158 8C58FFFC */ lw $t8, -4($v0) +/* 020D5C 8002015C 00000000 */ nop +/* 020D60 80020160 870F0004 */ lh $t7, 4($t8) +/* 020D64 80020164 00000000 */ nop +/* 020D68 80020168 448F3000 */ mtc1 $t7, $f6 +/* 020D6C 8002016C 00000000 */ nop +/* 020D70 80020170 468032A0 */ cvt.s.w $f10, $f6 +/* 020D74 80020174 E7EA0000 */ swc1 $f10, ($ra) +/* 020D78 80020178 8C59FFFC */ lw $t9, -4($v0) +/* 020D7C 8002017C 00000000 */ nop +/* 020D80 80020180 C7240008 */ lwc1 $f4, 8($t9) +/* 020D84 80020184 100000DC */ b .L800204F8 +/* 020D88 80020188 E4E40000 */ swc1 $f4, ($a3) +/* 020D8C 8002018C 0215082A */ slt $at, $s0, $s5 +.L80020190: +/* 020D90 80020190 1420008C */ bnez $at, .L800203C4 +/* 020D94 80020194 02142821 */ addu $a1, $s0, $s4 +/* 020D98 80020198 8FAE0168 */ lw $t6, 0x168($sp) +/* 020D9C 8002019C 2401FFFF */ li $at, -1 +/* 020DA0 800201A0 15C10055 */ bne $t6, $at, .L800202F8 +/* 020DA4 800201A4 02B41021 */ addu $v0, $s5, $s4 +/* 020DA8 800201A8 0002C080 */ sll $t8, $v0, 2 +/* 020DAC 800201AC 00D87821 */ addu $t7, $a2, $t8 +/* 020DB0 800201B0 8DF9FFFC */ lw $t9, -4($t7) +/* 020DB4 800201B4 00022880 */ sll $a1, $v0, 2 +/* 020DB8 800201B8 8F31003C */ lw $s1, 0x3c($t9) +/* 020DBC 800201BC 24010001 */ li $at, 1 +/* 020DC0 800201C0 822E0022 */ lb $t6, 0x22($s1) +/* 020DC4 800201C4 26B0FFFF */ addiu $s0, $s5, -1 +/* 020DC8 800201C8 15C1001A */ bne $t6, $at, .L80020234 +/* 020DCC 800201CC 24A5FFFC */ addiu $a1, $a1, -4 +/* 020DD0 800201D0 82640030 */ lb $a0, 0x30($s3) +/* 020DD4 800201D4 AFBF006C */ sw $ra, 0x6c($sp) +/* 020DD8 800201D8 AFAD0074 */ sw $t5, 0x74($sp) +/* 020DDC 800201DC AFAC0070 */ sw $t4, 0x70($sp) +/* 020DE0 800201E0 AFAB0078 */ sw $t3, 0x78($sp) +/* 020DE4 800201E4 AFAA007C */ sw $t2, 0x7c($sp) +/* 020DE8 800201E8 AFA90088 */ sw $t1, 0x88($sp) +/* 020DEC 800201EC AFA70068 */ sw $a3, 0x68($sp) +/* 020DF0 800201F0 0C01997A */ jal set_active_camera +/* 020DF4 800201F4 AFA5005C */ sw $a1, 0x5c($sp) +/* 020DF8 800201F8 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 020DFC 800201FC 00000000 */ nop +/* 020E00 80020200 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 +/* 020E04 80020204 8CC6AE74 */ lw $a2, %lo(D_8011AE74)($a2) +/* 020E08 80020208 8FA5005C */ lw $a1, 0x5c($sp) +/* 020E0C 8002020C 8FA70068 */ lw $a3, 0x68($sp) +/* 020E10 80020210 8FA90088 */ lw $t1, 0x88($sp) +/* 020E14 80020214 8FAA007C */ lw $t2, 0x7c($sp) +/* 020E18 80020218 8FAB0078 */ lw $t3, 0x78($sp) +/* 020E1C 8002021C 8FAC0070 */ lw $t4, 0x70($sp) +/* 020E20 80020220 8FAD0074 */ lw $t5, 0x74($sp) +/* 020E24 80020224 8FBF006C */ lw $ra, 0x6c($sp) +/* 020E28 80020228 00401825 */ move $v1, $v0 +/* 020E2C 8002022C 10000004 */ b .L80020240 +/* 020E30 80020230 00C52021 */ addu $a0, $a2, $a1 +.L80020234: +/* 020E34 80020234 00C52021 */ addu $a0, $a2, $a1 +/* 020E38 80020238 8C830000 */ lw $v1, ($a0) +/* 020E3C 8002023C 00000000 */ nop +.L80020240: +/* 020E40 80020240 8C98FFFC */ lw $t8, -4($a0) +/* 020E44 80020244 C460000C */ lwc1 $f0, 0xc($v1) +/* 020E48 80020248 C708000C */ lwc1 $f8, 0xc($t8) +/* 020E4C 8002024C 00000000 */ nop +/* 020E50 80020250 46080181 */ sub.s $f6, $f0, $f8 +/* 020E54 80020254 46003280 */ add.s $f10, $f6, $f0 +/* 020E58 80020258 E52A0000 */ swc1 $f10, ($t1) +/* 020E5C 8002025C 8C8FFFFC */ lw $t7, -4($a0) +/* 020E60 80020260 C4620010 */ lwc1 $f2, 0x10($v1) +/* 020E64 80020264 C5E40010 */ lwc1 $f4, 0x10($t7) +/* 020E68 80020268 00000000 */ nop +/* 020E6C 8002026C 46041201 */ sub.s $f8, $f2, $f4 +/* 020E70 80020270 46024180 */ add.s $f6, $f8, $f2 +/* 020E74 80020274 E5460000 */ swc1 $f6, ($t2) +/* 020E78 80020278 8C99FFFC */ lw $t9, -4($a0) +/* 020E7C 8002027C C46C0014 */ lwc1 $f12, 0x14($v1) +/* 020E80 80020280 C72A0014 */ lwc1 $f10, 0x14($t9) +/* 020E84 80020284 00000000 */ nop +/* 020E88 80020288 460A6101 */ sub.s $f4, $f12, $f10 +/* 020E8C 8002028C 460C2200 */ add.s $f8, $f4, $f12 +/* 020E90 80020290 E5680000 */ swc1 $f8, ($t3) +/* 020E94 80020294 846E0002 */ lh $t6, 2($v1) +/* 020E98 80020298 00000000 */ nop +/* 020E9C 8002029C 448E3000 */ mtc1 $t6, $f6 +/* 020EA0 800202A0 00000000 */ nop +/* 020EA4 800202A4 468032A0 */ cvt.s.w $f10, $f6 +/* 020EA8 800202A8 E58A0000 */ swc1 $f10, ($t4) +/* 020EAC 800202AC 84780004 */ lh $t8, 4($v1) +/* 020EB0 800202B0 00000000 */ nop +/* 020EB4 800202B4 44982000 */ mtc1 $t8, $f4 +/* 020EB8 800202B8 00000000 */ nop +/* 020EBC 800202BC 46802220 */ cvt.s.w $f8, $f4 +/* 020EC0 800202C0 E7E80000 */ swc1 $f8, ($ra) +/* 020EC4 800202C4 8C830000 */ lw $v1, ($a0) +/* 020EC8 800202C8 00000000 */ nop +/* 020ECC 800202CC 846F0000 */ lh $t7, ($v1) +/* 020ED0 800202D0 00000000 */ nop +/* 020ED4 800202D4 448F3000 */ mtc1 $t7, $f6 +/* 020ED8 800202D8 00000000 */ nop +/* 020EDC 800202DC 468032A0 */ cvt.s.w $f10, $f6 +/* 020EE0 800202E0 E5AA0000 */ swc1 $f10, ($t5) +/* 020EE4 800202E4 8C990000 */ lw $t9, ($a0) +/* 020EE8 800202E8 00000000 */ nop +/* 020EEC 800202EC C7240008 */ lwc1 $f4, 8($t9) +/* 020EF0 800202F0 10000081 */ b .L800204F8 +/* 020EF4 800202F4 E4E40000 */ swc1 $f4, ($a3) +.L800202F8: +/* 020EF8 800202F8 8FAE0168 */ lw $t6, 0x168($sp) +/* 020EFC 800202FC 00000000 */ nop +/* 020F00 80020300 028EC021 */ addu $t8, $s4, $t6 +/* 020F04 80020304 03107821 */ addu $t7, $t8, $s0 +/* 020F08 80020308 01F5C823 */ subu $t9, $t7, $s5 +/* 020F0C 8002030C 00197080 */ sll $t6, $t9, 2 +/* 020F10 80020310 00CE1021 */ addu $v0, $a2, $t6 +/* 020F14 80020314 8C580000 */ lw $t8, ($v0) +/* 020F18 80020318 00000000 */ nop +/* 020F1C 8002031C C708000C */ lwc1 $f8, 0xc($t8) +/* 020F20 80020320 00000000 */ nop +/* 020F24 80020324 E5280000 */ swc1 $f8, ($t1) +/* 020F28 80020328 8C4F0000 */ lw $t7, ($v0) +/* 020F2C 8002032C 00000000 */ nop +/* 020F30 80020330 C5E60010 */ lwc1 $f6, 0x10($t7) +/* 020F34 80020334 00000000 */ nop +/* 020F38 80020338 E5460000 */ swc1 $f6, ($t2) +/* 020F3C 8002033C 8C590000 */ lw $t9, ($v0) +/* 020F40 80020340 00000000 */ nop +/* 020F44 80020344 C72A0014 */ lwc1 $f10, 0x14($t9) +/* 020F48 80020348 00000000 */ nop +/* 020F4C 8002034C E56A0000 */ swc1 $f10, ($t3) +/* 020F50 80020350 8C4E0000 */ lw $t6, ($v0) +/* 020F54 80020354 00000000 */ nop +/* 020F58 80020358 85D80000 */ lh $t8, ($t6) +/* 020F5C 8002035C 00000000 */ nop +/* 020F60 80020360 44982000 */ mtc1 $t8, $f4 +/* 020F64 80020364 00000000 */ nop +/* 020F68 80020368 46802220 */ cvt.s.w $f8, $f4 +/* 020F6C 8002036C E5A80000 */ swc1 $f8, ($t5) +/* 020F70 80020370 8C4F0000 */ lw $t7, ($v0) +/* 020F74 80020374 00000000 */ nop +/* 020F78 80020378 85F90002 */ lh $t9, 2($t7) +/* 020F7C 8002037C 00000000 */ nop +/* 020F80 80020380 44993000 */ mtc1 $t9, $f6 +/* 020F84 80020384 00000000 */ nop +/* 020F88 80020388 468032A0 */ cvt.s.w $f10, $f6 +/* 020F8C 8002038C E58A0000 */ swc1 $f10, ($t4) +/* 020F90 80020390 8C4E0000 */ lw $t6, ($v0) +/* 020F94 80020394 00000000 */ nop +/* 020F98 80020398 85D80004 */ lh $t8, 4($t6) +/* 020F9C 8002039C 00000000 */ nop +/* 020FA0 800203A0 44982000 */ mtc1 $t8, $f4 +/* 020FA4 800203A4 00000000 */ nop +/* 020FA8 800203A8 46802220 */ cvt.s.w $f8, $f4 +/* 020FAC 800203AC E7E80000 */ swc1 $f8, ($ra) +/* 020FB0 800203B0 8C4F0000 */ lw $t7, ($v0) +/* 020FB4 800203B4 00000000 */ nop +/* 020FB8 800203B8 C5E60008 */ lwc1 $f6, 8($t7) +/* 020FBC 800203BC 1000004E */ b .L800204F8 +/* 020FC0 800203C0 E4E60000 */ swc1 $f6, ($a3) +.L800203C4: +/* 020FC4 800203C4 0005C880 */ sll $t9, $a1, 2 +/* 020FC8 800203C8 00D92021 */ addu $a0, $a2, $t9 +/* 020FCC 800203CC 8C820000 */ lw $v0, ($a0) +/* 020FD0 800203D0 24010001 */ li $at, 1 +/* 020FD4 800203D4 8C51003C */ lw $s1, 0x3c($v0) +/* 020FD8 800203D8 00401825 */ move $v1, $v0 +/* 020FDC 800203DC 822E0022 */ lb $t6, 0x22($s1) +/* 020FE0 800203E0 00000000 */ nop +/* 020FE4 800203E4 15C1001A */ bne $t6, $at, .L80020450 +/* 020FE8 800203E8 00000000 */ nop +/* 020FEC 800203EC 82640030 */ lb $a0, 0x30($s3) +/* 020FF0 800203F0 AFBF006C */ sw $ra, 0x6c($sp) +/* 020FF4 800203F4 AFAD0074 */ sw $t5, 0x74($sp) +/* 020FF8 800203F8 AFAC0070 */ sw $t4, 0x70($sp) +/* 020FFC 800203FC AFAB0078 */ sw $t3, 0x78($sp) +/* 021000 80020400 AFAA007C */ sw $t2, 0x7c($sp) +/* 021004 80020404 AFA90088 */ sw $t1, 0x88($sp) +/* 021008 80020408 AFA70068 */ sw $a3, 0x68($sp) +/* 02100C 8002040C 0C01997A */ jal set_active_camera +/* 021010 80020410 AFB90080 */ sw $t9, 0x80($sp) +/* 021014 80020414 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 021018 80020418 00000000 */ nop +/* 02101C 8002041C 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 +/* 021020 80020420 8CC6AE74 */ lw $a2, %lo(D_8011AE74)($a2) +/* 021024 80020424 8FA50080 */ lw $a1, 0x80($sp) +/* 021028 80020428 8FA70068 */ lw $a3, 0x68($sp) +/* 02102C 8002042C 8FA90088 */ lw $t1, 0x88($sp) +/* 021030 80020430 8FAA007C */ lw $t2, 0x7c($sp) +/* 021034 80020434 8FAB0078 */ lw $t3, 0x78($sp) +/* 021038 80020438 8FAC0070 */ lw $t4, 0x70($sp) +/* 02103C 8002043C 8FAD0074 */ lw $t5, 0x74($sp) +/* 021040 80020440 8FBF006C */ lw $ra, 0x6c($sp) +/* 021044 80020444 00401825 */ move $v1, $v0 +/* 021048 80020448 10000001 */ b .L80020450 +/* 02104C 8002044C 00C52021 */ addu $a0, $a2, $a1 +.L80020450: +/* 021050 80020450 C46A000C */ lwc1 $f10, 0xc($v1) +/* 021054 80020454 24010001 */ li $at, 1 +/* 021058 80020458 E52A0000 */ swc1 $f10, ($t1) +/* 02105C 8002045C C4640010 */ lwc1 $f4, 0x10($v1) +/* 021060 80020460 00000000 */ nop +/* 021064 80020464 E5440000 */ swc1 $f4, ($t2) +/* 021068 80020468 C4680014 */ lwc1 $f8, 0x14($v1) +/* 02106C 8002046C 00000000 */ nop +/* 021070 80020470 E5680000 */ swc1 $f8, ($t3) +/* 021074 80020474 84780002 */ lh $t8, 2($v1) +/* 021078 80020478 00000000 */ nop +/* 02107C 8002047C 44983000 */ mtc1 $t8, $f6 +/* 021080 80020480 00000000 */ nop +/* 021084 80020484 468032A0 */ cvt.s.w $f10, $f6 +/* 021088 80020488 E58A0000 */ swc1 $f10, ($t4) +/* 02108C 8002048C 846F0004 */ lh $t7, 4($v1) +/* 021090 80020490 00000000 */ nop +/* 021094 80020494 448F2000 */ mtc1 $t7, $f4 +/* 021098 80020498 00000000 */ nop +/* 02109C 8002049C 46802220 */ cvt.s.w $f8, $f4 +/* 0210A0 800204A0 E7E80000 */ swc1 $f8, ($ra) +/* 0210A4 800204A4 8C830000 */ lw $v1, ($a0) +/* 0210A8 800204A8 00000000 */ nop +/* 0210AC 800204AC 84790000 */ lh $t9, ($v1) +/* 0210B0 800204B0 00000000 */ nop +/* 0210B4 800204B4 44993000 */ mtc1 $t9, $f6 +/* 0210B8 800204B8 00000000 */ nop +/* 0210BC 800204BC 468032A0 */ cvt.s.w $f10, $f6 +/* 0210C0 800204C0 E5AA0000 */ swc1 $f10, ($t5) +/* 0210C4 800204C4 822E0022 */ lb $t6, 0x22($s1) +/* 0210C8 800204C8 00000000 */ nop +/* 0210CC 800204CC 15C10005 */ bne $t6, $at, .L800204E4 +/* 0210D0 800204D0 00000000 */ nop +/* 0210D4 800204D4 C5840000 */ lwc1 $f4, ($t4) +/* 0210D8 800204D8 00000000 */ nop +/* 0210DC 800204DC 46002207 */ neg.s $f8, $f4 +/* 0210E0 800204E0 E5880000 */ swc1 $f8, ($t4) +.L800204E4: +/* 0210E4 800204E4 8C980000 */ lw $t8, ($a0) +/* 0210E8 800204E8 00000000 */ nop +/* 0210EC 800204EC C7060008 */ lwc1 $f6, 8($t8) +/* 0210F0 800204F0 00000000 */ nop +/* 0210F4 800204F4 E4E60000 */ swc1 $f6, ($a3) +.L800204F8: +/* 0210F8 800204F8 24E70004 */ addiu $a3, $a3, 4 +/* 0210FC 800204FC 25290004 */ addiu $t1, $t1, 4 +/* 021100 80020500 254A0004 */ addiu $t2, $t2, 4 +/* 021104 80020504 256B0004 */ addiu $t3, $t3, 4 +/* 021108 80020508 25AD0004 */ addiu $t5, $t5, 4 +/* 02110C 8002050C 258C0004 */ addiu $t4, $t4, 4 +/* 021110 80020510 27FF0004 */ addiu $ra, $ra, 4 +/* 021114 80020514 14F2FEB2 */ bne $a3, $s2, .L8001FFE0 +/* 021118 80020518 26100001 */ addiu $s0, $s0, 1 +/* 02111C 8002051C C66A0004 */ lwc1 $f10, 4($s3) +/* 021120 80020520 00009025 */ move $s2, $zero +/* 021124 80020524 460AB032 */ c.eq.s $f22, $f10 +/* 021128 80020528 00008025 */ move $s0, $zero +/* 02112C 8002052C 45000005 */ bc1f .L80020544 +/* 021130 80020530 27B10154 */ addiu $s1, $sp, 0x154 +/* 021134 80020534 3C01800E */ lui $at, %hi(D_800E5678) # $at, 0x800e +/* 021138 80020538 C4245678 */ lwc1 $f4, %lo(D_800E5678)($at) +/* 02113C 8002053C 00000000 */ nop +/* 021140 80020540 E6640004 */ swc1 $f4, 4($s3) +.L80020544: +/* 021144 80020544 C6680004 */ lwc1 $f8, 4($s3) +/* 021148 80020548 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 02114C 8002054C C6640000 */ lwc1 $f4, ($s3) +/* 021150 80020550 46064282 */ mul.s $f10, $f8, $f6 +/* 021154 80020554 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 021158 80020558 44814800 */ mtc1 $at, $f9 +/* 02115C 8002055C 44804000 */ mtc1 $zero, $f8 +/* 021160 80020560 460A2500 */ add.s $f20, $f4, $f10 +/* 021164 80020564 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 021168 80020568 4600A021 */ cvt.d.s $f0, $f20 +/* 02116C 8002056C 4620403E */ c.le.d $f8, $f0 +/* 021170 80020570 02202025 */ move $a0, $s1 +/* 021174 80020574 45000006 */ bc1f .L80020590 +/* 021178 80020578 00000000 */ nop +/* 02117C 8002057C 44813800 */ mtc1 $at, $f7 +/* 021180 80020580 44803000 */ mtc1 $zero, $f6 +/* 021184 80020584 24120001 */ li $s2, 1 +/* 021188 80020588 46260101 */ sub.d $f4, $f0, $f6 +/* 02118C 8002058C 46202520 */ cvt.s.d $f20, $f4 +.L80020590: +/* 021190 80020590 826F003F */ lb $t7, 0x3f($s3) +/* 021194 80020594 02402825 */ move $a1, $s2 +/* 021198 80020598 15E00010 */ bnez $t7, .L800205DC +/* 02119C 8002059C 00000000 */ nop +/* 0211A0 800205A0 4406A000 */ mfc1 $a2, $f20 +/* 0211A4 800205A4 0C008950 */ jal catmull_rom_interpolation +/* 0211A8 800205A8 02202025 */ move $a0, $s1 +/* 0211AC 800205AC 4406A000 */ mfc1 $a2, $f20 +/* 0211B0 800205B0 E7A00124 */ swc1 $f0, 0x124($sp) +/* 0211B4 800205B4 27A40140 */ addiu $a0, $sp, 0x140 +/* 0211B8 800205B8 0C008950 */ jal catmull_rom_interpolation +/* 0211BC 800205BC 02402825 */ move $a1, $s2 +/* 0211C0 800205C0 4406A000 */ mfc1 $a2, $f20 +/* 0211C4 800205C4 27A4012C */ addiu $a0, $sp, 0x12c +/* 0211C8 800205C8 02402825 */ move $a1, $s2 +/* 0211CC 800205CC 0C008950 */ jal catmull_rom_interpolation +/* 0211D0 800205D0 E7A00120 */ swc1 $f0, 0x120($sp) +/* 0211D4 800205D4 1000000F */ b .L80020614 +/* 0211D8 800205D8 E7A0011C */ swc1 $f0, 0x11c($sp) +.L800205DC: +/* 0211DC 800205DC 4406A000 */ mfc1 $a2, $f20 +/* 0211E0 800205E0 0C008A22 */ jal lerp +/* 0211E4 800205E4 02402825 */ move $a1, $s2 +/* 0211E8 800205E8 4406A000 */ mfc1 $a2, $f20 +/* 0211EC 800205EC E7A00124 */ swc1 $f0, 0x124($sp) +/* 0211F0 800205F0 27A40140 */ addiu $a0, $sp, 0x140 +/* 0211F4 800205F4 0C008A22 */ jal lerp +/* 0211F8 800205F8 02402825 */ move $a1, $s2 +/* 0211FC 800205FC 4406A000 */ mfc1 $a2, $f20 +/* 021200 80020600 27A4012C */ addiu $a0, $sp, 0x12c +/* 021204 80020604 02402825 */ move $a1, $s2 +/* 021208 80020608 0C008A22 */ jal lerp +/* 02120C 8002060C E7A00120 */ swc1 $f0, 0x120($sp) +/* 021210 80020610 E7A0011C */ swc1 $f0, 0x11c($sp) +.L80020614: +/* 021214 80020614 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 021218 80020618 C6C8000C */ lwc1 $f8, 0xc($s6) +/* 02121C 8002061C C7A40120 */ lwc1 $f4, 0x120($sp) +/* 021220 80020620 46085181 */ sub.s $f6, $f10, $f8 +/* 021224 80020624 24010001 */ li $at, 1 +/* 021228 80020628 E7A60124 */ swc1 $f6, 0x124($sp) +/* 02122C 8002062C C6CA0010 */ lwc1 $f10, 0x10($s6) +/* 021230 80020630 00000000 */ nop +/* 021234 80020634 460A2201 */ sub.s $f8, $f4, $f10 +/* 021238 80020638 E7A80120 */ swc1 $f8, 0x120($sp) +/* 02123C 8002063C C6C40014 */ lwc1 $f4, 0x14($s6) +/* 021240 80020640 00000000 */ nop +/* 021244 80020644 46040281 */ sub.s $f10, $f0, $f4 +/* 021248 80020648 12010016 */ beq $s0, $at, .L800206A4 +/* 02124C 8002064C E7AA011C */ swc1 $f10, 0x11c($sp) +/* 021250 80020650 46063102 */ mul.s $f4, $f6, $f6 +/* 021254 80020654 C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 021258 80020658 00009025 */ move $s2, $zero +/* 02125C 8002065C 46084282 */ mul.s $f10, $f8, $f8 +/* 021260 80020660 00000000 */ nop +/* 021264 80020664 460E7202 */ mul.s $f8, $f14, $f14 +/* 021268 80020668 460A2180 */ add.s $f6, $f4, $f10 +/* 02126C 8002066C 0C0326B4 */ jal sqrtf +/* 021270 80020670 46083300 */ add.s $f12, $f6, $f8 +/* 021274 80020674 C7A40114 */ lwc1 $f4, 0x114($sp) +/* 021278 80020678 00000000 */ nop +/* 02127C 8002067C 46040083 */ div.s $f2, $f0, $f4 +/* 021280 80020680 4602B032 */ c.eq.s $f22, $f2 +/* 021284 80020684 00000000 */ nop +/* 021288 80020688 45010006 */ bc1t .L800206A4 +/* 02128C 8002068C 00000000 */ nop +/* 021290 80020690 C6660008 */ lwc1 $f6, 8($s3) +/* 021294 80020694 C66A0004 */ lwc1 $f10, 4($s3) +/* 021298 80020698 46023203 */ div.s $f8, $f6, $f2 +/* 02129C 8002069C 46085102 */ mul.s $f4, $f10, $f8 +/* 0212A0 800206A0 E6640004 */ swc1 $f4, 4($s3) +.L800206A4: +/* 0212A4 800206A4 26100001 */ addiu $s0, $s0, 1 +/* 0212A8 800206A8 24010002 */ li $at, 2 +/* 0212AC 800206AC 1601FFA5 */ bne $s0, $at, .L80020544 +/* 0212B0 800206B0 00000000 */ nop +/* 0212B4 800206B4 4406A000 */ mfc1 $a2, $f20 +/* 0212B8 800206B8 27A400F4 */ addiu $a0, $sp, 0xf4 +/* 0212BC 800206BC 0C008950 */ jal catmull_rom_interpolation +/* 0212C0 800206C0 02402825 */ move $a1, $s2 +/* 0212C4 800206C4 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0212C8 800206C8 8ED90040 */ lw $t9, 0x40($s6) +/* 0212CC 800206CC 46060282 */ mul.s $f10, $f0, $f6 +/* 0212D0 800206D0 C728000C */ lwc1 $f8, 0xc($t9) +/* 0212D4 800206D4 00000000 */ nop +/* 0212D8 800206D8 46085102 */ mul.s $f4, $f10, $f8 +/* 0212DC 800206DC 12400024 */ beqz $s2, .L80020770 +/* 0212E0 800206E0 E6C40008 */ swc1 $f4, 8($s6) +/* 0212E4 800206E4 8FAE0168 */ lw $t6, 0x168($sp) +/* 0212E8 800206E8 2401FFFF */ li $at, -1 +/* 0212EC 800206EC 15C10020 */ bne $t6, $at, .L80020770 +/* 0212F0 800206F0 00000000 */ nop +/* 0212F4 800206F4 86780026 */ lh $t8, 0x26($s3) +/* 0212F8 800206F8 02202025 */ move $a0, $s1 +/* 0212FC 800206FC 270F0002 */ addiu $t7, $t8, 2 +/* 021300 80020700 16AF001B */ bne $s5, $t7, .L80020770 +/* 021304 80020704 00002825 */ move $a1, $zero +/* 021308 80020708 0C008950 */ jal catmull_rom_interpolation +/* 02130C 8002070C 3C063F80 */ lui $a2, 0x3f80 +/* 021310 80020710 E7A00124 */ swc1 $f0, 0x124($sp) +/* 021314 80020714 27A40140 */ addiu $a0, $sp, 0x140 +/* 021318 80020718 00002825 */ move $a1, $zero +/* 02131C 8002071C 0C008950 */ jal catmull_rom_interpolation +/* 021320 80020720 3C063F80 */ lui $a2, 0x3f80 +/* 021324 80020724 27A4012C */ addiu $a0, $sp, 0x12c +/* 021328 80020728 00002825 */ move $a1, $zero +/* 02132C 8002072C 3C063F80 */ lui $a2, 0x3f80 +/* 021330 80020730 0C008950 */ jal catmull_rom_interpolation +/* 021334 80020734 E7A00120 */ swc1 $f0, 0x120($sp) +/* 021338 80020738 E7A0011C */ swc1 $f0, 0x11c($sp) +/* 02133C 8002073C C6CA000C */ lwc1 $f10, 0xc($s6) +/* 021340 80020740 C7A60124 */ lwc1 $f6, 0x124($sp) +/* 021344 80020744 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 021348 80020748 460A3201 */ sub.s $f8, $f6, $f10 +/* 02134C 8002074C E7A80124 */ swc1 $f8, 0x124($sp) +/* 021350 80020750 C6C60010 */ lwc1 $f6, 0x10($s6) +/* 021354 80020754 00000000 */ nop +/* 021358 80020758 46062281 */ sub.s $f10, $f4, $f6 +/* 02135C 8002075C E7AA0120 */ swc1 $f10, 0x120($sp) +/* 021360 80020760 C6C80014 */ lwc1 $f8, 0x14($s6) +/* 021364 80020764 00000000 */ nop +/* 021368 80020768 46080101 */ sub.s $f4, $f0, $f8 +/* 02136C 8002076C E7A4011C */ swc1 $f4, 0x11c($sp) +.L80020770: +/* 021370 80020770 C7A60124 */ lwc1 $f6, 0x124($sp) +/* 021374 80020774 C7AA0114 */ lwc1 $f10, 0x114($sp) +/* 021378 80020778 02C02025 */ move $a0, $s6 +/* 02137C 8002077C 460A3203 */ div.s $f8, $f6, $f10 +/* 021380 80020780 E6C8001C */ swc1 $f8, 0x1c($s6) +/* 021384 80020784 C7A40120 */ lwc1 $f4, 0x120($sp) +/* 021388 80020788 C7A60114 */ lwc1 $f6, 0x114($sp) +/* 02138C 8002078C 00000000 */ nop +/* 021390 80020790 46062283 */ div.s $f10, $f4, $f6 +/* 021394 80020794 E6CA0020 */ swc1 $f10, 0x20($s6) +/* 021398 80020798 C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 02139C 8002079C C7A40114 */ lwc1 $f4, 0x114($sp) +/* 0213A0 800207A0 00000000 */ nop +/* 0213A4 800207A4 46044183 */ div.s $f6, $f8, $f4 +/* 0213A8 800207A8 E6C60024 */ swc1 $f6, 0x24($s6) +/* 0213AC 800207AC 8FA7011C */ lw $a3, 0x11c($sp) +/* 0213B0 800207B0 8FA60120 */ lw $a2, 0x120($sp) +/* 0213B4 800207B4 8FA50124 */ lw $a1, 0x124($sp) +/* 0213B8 800207B8 0C00455C */ jal move_object +/* 0213BC 800207BC 00000000 */ nop +/* 0213C0 800207C0 9263002E */ lbu $v1, 0x2e($s3) +/* 0213C4 800207C4 24010001 */ li $at, 1 +/* 0213C8 800207C8 1061015B */ beq $v1, $at, .L80020D38 +/* 0213CC 800207CC 24010002 */ li $at, 2 +/* 0213D0 800207D0 10610005 */ beq $v1, $at, .L800207E8 +/* 0213D4 800207D4 24010003 */ li $at, 3 +/* 0213D8 800207D8 10610157 */ beq $v1, $at, .L80020D38 +/* 0213DC 800207DC 24080001 */ li $t0, 1 +/* 0213E0 800207E0 1000004F */ b .L80020920 +/* 0213E4 800207E4 27AD00E4 */ addiu $t5, $sp, 0xe4 +.L800207E8: +/* 0213E8 800207E8 8279003F */ lb $t9, 0x3f($s3) +/* 0213EC 800207EC 02202025 */ move $a0, $s1 +/* 0213F0 800207F0 17200012 */ bnez $t9, .L8002083C +/* 0213F4 800207F4 02402825 */ move $a1, $s2 +/* 0213F8 800207F8 4406A000 */ mfc1 $a2, $f20 +/* 0213FC 800207FC 02202025 */ move $a0, $s1 +/* 021400 80020800 02402825 */ move $a1, $s2 +/* 021404 80020804 0C00898F */ jal cubic_spline_interpolation +/* 021408 80020808 27A70124 */ addiu $a3, $sp, 0x124 +/* 02140C 8002080C 4406A000 */ mfc1 $a2, $f20 +/* 021410 80020810 27A40140 */ addiu $a0, $sp, 0x140 +/* 021414 80020814 02402825 */ move $a1, $s2 +/* 021418 80020818 0C00898F */ jal cubic_spline_interpolation +/* 02141C 8002081C 27A70120 */ addiu $a3, $sp, 0x120 +/* 021420 80020820 4406A000 */ mfc1 $a2, $f20 +/* 021424 80020824 27A4012C */ addiu $a0, $sp, 0x12c +/* 021428 80020828 02402825 */ move $a1, $s2 +/* 02142C 8002082C 0C00898F */ jal cubic_spline_interpolation +/* 021430 80020830 27A7011C */ addiu $a3, $sp, 0x11c +/* 021434 80020834 1000000F */ b .L80020874 +/* 021438 80020838 C7AA0124 */ lwc1 $f10, 0x124($sp) +.L8002083C: +/* 02143C 8002083C 4406A000 */ mfc1 $a2, $f20 +/* 021440 80020840 0C008A2C */ jal func_800228B0 +/* 021444 80020844 27A70124 */ addiu $a3, $sp, 0x124 +/* 021448 80020848 4406A000 */ mfc1 $a2, $f20 +/* 02144C 8002084C 27A40140 */ addiu $a0, $sp, 0x140 +/* 021450 80020850 02402825 */ move $a1, $s2 +/* 021454 80020854 0C008A2C */ jal func_800228B0 +/* 021458 80020858 27A70120 */ addiu $a3, $sp, 0x120 +/* 02145C 8002085C 4406A000 */ mfc1 $a2, $f20 +/* 021460 80020860 27A4012C */ addiu $a0, $sp, 0x12c +/* 021464 80020864 02402825 */ move $a1, $s2 +/* 021468 80020868 0C008A2C */ jal func_800228B0 +/* 02146C 8002086C 27A7011C */ addiu $a3, $sp, 0x11c +/* 021470 80020870 C7AA0124 */ lwc1 $f10, 0x124($sp) +.L80020874: +/* 021474 80020874 C7A20120 */ lwc1 $f2, 0x120($sp) +/* 021478 80020878 460A5202 */ mul.s $f8, $f10, $f10 +/* 02147C 8002087C C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 021480 80020880 46021102 */ mul.s $f4, $f2, $f2 +/* 021484 80020884 00000000 */ nop +/* 021488 80020888 460E7282 */ mul.s $f10, $f14, $f14 +/* 02148C 8002088C 46044180 */ add.s $f6, $f8, $f4 +/* 021490 80020890 0C0326B4 */ jal sqrtf +/* 021494 80020894 460A3300 */ add.s $f12, $f6, $f10 +/* 021498 80020898 46160032 */ c.eq.s $f0, $f22 +/* 02149C 8002089C 3C014059 */ li $at, 0x40590000 # 3.390625 +/* 0214A0 800208A0 45010011 */ bc1t .L800208E8 +/* 0214A4 800208A4 00000000 */ nop +/* 0214A8 800208A8 44814800 */ mtc1 $at, $f9 +/* 0214AC 800208AC 44804000 */ mtc1 $zero, $f8 +/* 0214B0 800208B0 46000121 */ cvt.d.s $f4, $f0 +/* 0214B4 800208B4 00000000 */ nop +/* 0214B8 800208B8 46244183 */ div.d $f6, $f8, $f4 +/* 0214BC 800208BC C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 0214C0 800208C0 C7A20120 */ lwc1 $f2, 0x120($sp) +/* 0214C4 800208C4 C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 0214C8 800208C8 46203320 */ cvt.s.d $f12, $f6 +/* 0214CC 800208CC 460C5202 */ mul.s $f8, $f10, $f12 +/* 0214D0 800208D0 00000000 */ nop +/* 0214D4 800208D4 460C1082 */ mul.s $f2, $f2, $f12 +/* 0214D8 800208D8 E7A80124 */ swc1 $f8, 0x124($sp) +/* 0214DC 800208DC 460C7382 */ mul.s $f14, $f14, $f12 +/* 0214E0 800208E0 E7A20120 */ swc1 $f2, 0x120($sp) +/* 0214E4 800208E4 E7AE011C */ swc1 $f14, 0x11c($sp) +.L800208E8: +/* 0214E8 800208E8 C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 0214EC 800208EC C7AC0124 */ lwc1 $f12, 0x124($sp) +/* 0214F0 800208F0 0C01C1D4 */ jal arctan2_f +/* 0214F4 800208F4 00000000 */ nop +/* 0214F8 800208F8 24018000 */ li $at, -32768 +/* 0214FC 800208FC 00417021 */ addu $t6, $v0, $at +/* 021500 80020900 A6CE0000 */ sh $t6, ($s6) +/* 021504 80020904 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 021508 80020908 44817000 */ mtc1 $at, $f14 +/* 02150C 8002090C C7AC0120 */ lwc1 $f12, 0x120($sp) +/* 021510 80020910 0C01C1D4 */ jal arctan2_f +/* 021514 80020914 00000000 */ nop +/* 021518 80020918 10000107 */ b .L80020D38 +/* 02151C 8002091C A6C20002 */ sh $v0, 2($s6) +.L80020920: +/* 021520 80020920 3C01C0E0 */ li $at, 0xC0E00000 # -7.000000 +/* 021524 80020924 44819800 */ mtc1 $at, $f19 +/* 021528 80020928 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 02152C 8002092C 44818800 */ mtc1 $at, $f17 +/* 021530 80020930 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 021534 80020934 44817800 */ mtc1 $at, $f15 +/* 021538 80020938 44809000 */ mtc1 $zero, $f18 +/* 02153C 8002093C 44808000 */ mtc1 $zero, $f16 +/* 021540 80020940 44807000 */ mtc1 $zero, $f14 +/* 021544 80020944 27AC00D0 */ addiu $t4, $sp, 0xd0 +/* 021548 80020948 27BF00BC */ addiu $ra, $sp, 0xbc +/* 02154C 8002094C 27A700CC */ addiu $a3, $sp, 0xcc +/* 021550 80020950 27A600E0 */ addiu $a2, $sp, 0xe0 +/* 021554 80020954 27A500F4 */ addiu $a1, $sp, 0xf4 +.L80020958: +/* 021558 80020958 C5A40000 */ lwc1 $f4, ($t5) +/* 02155C 8002095C C5A6FFFC */ lwc1 $f6, -4($t5) +/* 021560 80020960 25AD0004 */ addiu $t5, $t5, 4 +/* 021564 80020964 46062301 */ sub.s $f12, $f4, $f6 +/* 021568 80020968 29010005 */ slti $at, $t0, 5 +/* 02156C 8002096C 460060A1 */ cvt.d.s $f2, $f12 +/* 021570 80020970 4622803C */ c.lt.d $f16, $f2 +/* 021574 80020974 4600B006 */ mov.s $f0, $f22 +/* 021578 80020978 45000005 */ bc1f .L80020990 +/* 02157C 8002097C 24180005 */ li $t8, 5 +/* 021580 80020980 4600B2A1 */ cvt.d.s $f10, $f22 +/* 021584 80020984 462E5201 */ sub.d $f8, $f10, $f14 +/* 021588 80020988 10000008 */ b .L800209AC +/* 02158C 8002098C 46204020 */ cvt.s.d $f0, $f8 +.L80020990: +/* 021590 80020990 4632103C */ c.lt.d $f2, $f18 +/* 021594 80020994 00000000 */ nop +/* 021598 80020998 45000004 */ bc1f .L800209AC +/* 02159C 8002099C 00000000 */ nop +/* 0215A0 800209A0 4600B121 */ cvt.d.s $f4, $f22 +/* 0215A4 800209A4 462E2180 */ add.d $f6, $f4, $f14 +/* 0215A8 800209A8 46203020 */ cvt.s.d $f0, $f6 +.L800209AC: +/* 0215AC 800209AC 10200022 */ beqz $at, .L80020A38 +/* 0215B0 800209B0 01008025 */ move $s0, $t0 +/* 0215B4 800209B4 03082023 */ subu $a0, $t8, $t0 +/* 0215B8 800209B8 308F0003 */ andi $t7, $a0, 3 +/* 0215BC 800209BC 11E0000C */ beqz $t7, .L800209F0 +/* 0215C0 800209C0 01E81821 */ addu $v1, $t7, $t0 +/* 0215C4 800209C4 0010C880 */ sll $t9, $s0, 2 +/* 0215C8 800209C8 27AE00E0 */ addiu $t6, $sp, 0xe0 +/* 0215CC 800209CC 032E1021 */ addu $v0, $t9, $t6 +.L800209D0: +/* 0215D0 800209D0 C44A0000 */ lwc1 $f10, ($v0) +/* 0215D4 800209D4 26100001 */ addiu $s0, $s0, 1 +/* 0215D8 800209D8 46005200 */ add.s $f8, $f10, $f0 +/* 0215DC 800209DC 24420004 */ addiu $v0, $v0, 4 +/* 0215E0 800209E0 1470FFFB */ bne $v1, $s0, .L800209D0 +/* 0215E4 800209E4 E448FFFC */ swc1 $f8, -4($v0) +/* 0215E8 800209E8 24010005 */ li $at, 5 +/* 0215EC 800209EC 12010011 */ beq $s0, $at, .L80020A34 +.L800209F0: +/* 0215F0 800209F0 0010C080 */ sll $t8, $s0, 2 +/* 0215F4 800209F4 27AF00E0 */ addiu $t7, $sp, 0xe0 +/* 0215F8 800209F8 030F1021 */ addu $v0, $t8, $t7 +.L800209FC: +/* 0215FC 800209FC C4440000 */ lwc1 $f4, ($v0) +/* 021600 80020A00 C44A0004 */ lwc1 $f10, 4($v0) +/* 021604 80020A04 46002180 */ add.s $f6, $f4, $f0 +/* 021608 80020A08 C4440008 */ lwc1 $f4, 8($v0) +/* 02160C 80020A0C 46005200 */ add.s $f8, $f10, $f0 +/* 021610 80020A10 C44A000C */ lwc1 $f10, 0xc($v0) +/* 021614 80020A14 E4480004 */ swc1 $f8, 4($v0) +/* 021618 80020A18 E4460000 */ swc1 $f6, ($v0) +/* 02161C 80020A1C 46002180 */ add.s $f6, $f4, $f0 +/* 021620 80020A20 24420010 */ addiu $v0, $v0, 0x10 +/* 021624 80020A24 46005200 */ add.s $f8, $f10, $f0 +/* 021628 80020A28 E446FFF8 */ swc1 $f6, -8($v0) +/* 02162C 80020A2C 1445FFF3 */ bne $v0, $a1, .L800209FC +/* 021630 80020A30 E448FFFC */ swc1 $f8, -4($v0) +.L80020A34: +/* 021634 80020A34 01008025 */ move $s0, $t0 +.L80020A38: +/* 021638 80020A38 C5840000 */ lwc1 $f4, ($t4) +/* 02163C 80020A3C C586FFFC */ lwc1 $f6, -4($t4) +/* 021640 80020A40 258C0004 */ addiu $t4, $t4, 4 +/* 021644 80020A44 46062301 */ sub.s $f12, $f4, $f6 +/* 021648 80020A48 29010005 */ slti $at, $t0, 5 +/* 02164C 80020A4C 460060A1 */ cvt.d.s $f2, $f12 +/* 021650 80020A50 4622803C */ c.lt.d $f16, $f2 +/* 021654 80020A54 4600B006 */ mov.s $f0, $f22 +/* 021658 80020A58 45000005 */ bc1f .L80020A70 +/* 02165C 80020A5C 24190005 */ li $t9, 5 +/* 021660 80020A60 4600B2A1 */ cvt.d.s $f10, $f22 +/* 021664 80020A64 462E5201 */ sub.d $f8, $f10, $f14 +/* 021668 80020A68 10000008 */ b .L80020A8C +/* 02166C 80020A6C 46204020 */ cvt.s.d $f0, $f8 +.L80020A70: +/* 021670 80020A70 4632103C */ c.lt.d $f2, $f18 +/* 021674 80020A74 00000000 */ nop +/* 021678 80020A78 45000004 */ bc1f .L80020A8C +/* 02167C 80020A7C 00000000 */ nop +/* 021680 80020A80 4600B121 */ cvt.d.s $f4, $f22 +/* 021684 80020A84 462E2180 */ add.d $f6, $f4, $f14 +/* 021688 80020A88 46203020 */ cvt.s.d $f0, $f6 +.L80020A8C: +/* 02168C 80020A8C 10200021 */ beqz $at, .L80020B14 +/* 021690 80020A90 03282023 */ subu $a0, $t9, $t0 +/* 021694 80020A94 308E0003 */ andi $t6, $a0, 3 +/* 021698 80020A98 11C0000C */ beqz $t6, .L80020ACC +/* 02169C 80020A9C 01C81821 */ addu $v1, $t6, $t0 +/* 0216A0 80020AA0 0010C080 */ sll $t8, $s0, 2 +/* 0216A4 80020AA4 27AF00CC */ addiu $t7, $sp, 0xcc +/* 0216A8 80020AA8 030F1021 */ addu $v0, $t8, $t7 +.L80020AAC: +/* 0216AC 80020AAC C44A0000 */ lwc1 $f10, ($v0) +/* 0216B0 80020AB0 26100001 */ addiu $s0, $s0, 1 +/* 0216B4 80020AB4 46005200 */ add.s $f8, $f10, $f0 +/* 0216B8 80020AB8 24420004 */ addiu $v0, $v0, 4 +/* 0216BC 80020ABC 1470FFFB */ bne $v1, $s0, .L80020AAC +/* 0216C0 80020AC0 E448FFFC */ swc1 $f8, -4($v0) +/* 0216C4 80020AC4 24010005 */ li $at, 5 +/* 0216C8 80020AC8 12010011 */ beq $s0, $at, .L80020B10 +.L80020ACC: +/* 0216CC 80020ACC 0010C880 */ sll $t9, $s0, 2 +/* 0216D0 80020AD0 27AE00CC */ addiu $t6, $sp, 0xcc +/* 0216D4 80020AD4 032E1021 */ addu $v0, $t9, $t6 +.L80020AD8: +/* 0216D8 80020AD8 C4440000 */ lwc1 $f4, ($v0) +/* 0216DC 80020ADC C44A0004 */ lwc1 $f10, 4($v0) +/* 0216E0 80020AE0 46002180 */ add.s $f6, $f4, $f0 +/* 0216E4 80020AE4 C4440008 */ lwc1 $f4, 8($v0) +/* 0216E8 80020AE8 46005200 */ add.s $f8, $f10, $f0 +/* 0216EC 80020AEC C44A000C */ lwc1 $f10, 0xc($v0) +/* 0216F0 80020AF0 E4480004 */ swc1 $f8, 4($v0) +/* 0216F4 80020AF4 E4460000 */ swc1 $f6, ($v0) +/* 0216F8 80020AF8 46002180 */ add.s $f6, $f4, $f0 +/* 0216FC 80020AFC 24420010 */ addiu $v0, $v0, 0x10 +/* 021700 80020B00 46005200 */ add.s $f8, $f10, $f0 +/* 021704 80020B04 E446FFF8 */ swc1 $f6, -8($v0) +/* 021708 80020B08 1446FFF3 */ bne $v0, $a2, .L80020AD8 +/* 02170C 80020B0C E448FFFC */ swc1 $f8, -4($v0) +.L80020B10: +/* 021710 80020B10 01008025 */ move $s0, $t0 +.L80020B14: +/* 021714 80020B14 C7E40000 */ lwc1 $f4, ($ra) +/* 021718 80020B18 C7E6FFFC */ lwc1 $f6, -4($ra) +/* 02171C 80020B1C 24180005 */ li $t8, 5 +/* 021720 80020B20 46062301 */ sub.s $f12, $f4, $f6 +/* 021724 80020B24 03082023 */ subu $a0, $t8, $t0 +/* 021728 80020B28 460060A1 */ cvt.d.s $f2, $f12 +/* 02172C 80020B2C 4622803C */ c.lt.d $f16, $f2 +/* 021730 80020B30 4600B006 */ mov.s $f0, $f22 +/* 021734 80020B34 45000005 */ bc1f .L80020B4C +/* 021738 80020B38 29010005 */ slti $at, $t0, 5 +/* 02173C 80020B3C 4600B2A1 */ cvt.d.s $f10, $f22 +/* 021740 80020B40 462E5201 */ sub.d $f8, $f10, $f14 +/* 021744 80020B44 10000008 */ b .L80020B68 +/* 021748 80020B48 46204020 */ cvt.s.d $f0, $f8 +.L80020B4C: +/* 02174C 80020B4C 4632103C */ c.lt.d $f2, $f18 +/* 021750 80020B50 00000000 */ nop +/* 021754 80020B54 45000004 */ bc1f .L80020B68 +/* 021758 80020B58 00000000 */ nop +/* 02175C 80020B5C 4600B121 */ cvt.d.s $f4, $f22 +/* 021760 80020B60 462E2180 */ add.d $f6, $f4, $f14 +/* 021764 80020B64 46203020 */ cvt.s.d $f0, $f6 +.L80020B68: +/* 021768 80020B68 1020001F */ beqz $at, .L80020BE8 +/* 02176C 80020B6C 308F0003 */ andi $t7, $a0, 3 +/* 021770 80020B70 11E0000C */ beqz $t7, .L80020BA4 +/* 021774 80020B74 01E81821 */ addu $v1, $t7, $t0 +/* 021778 80020B78 0010C880 */ sll $t9, $s0, 2 +/* 02177C 80020B7C 27AE00B8 */ addiu $t6, $sp, 0xb8 +/* 021780 80020B80 032E1021 */ addu $v0, $t9, $t6 +.L80020B84: +/* 021784 80020B84 C44A0000 */ lwc1 $f10, ($v0) +/* 021788 80020B88 26100001 */ addiu $s0, $s0, 1 +/* 02178C 80020B8C 46005200 */ add.s $f8, $f10, $f0 +/* 021790 80020B90 24420004 */ addiu $v0, $v0, 4 +/* 021794 80020B94 1470FFFB */ bne $v1, $s0, .L80020B84 +/* 021798 80020B98 E448FFFC */ swc1 $f8, -4($v0) +/* 02179C 80020B9C 24010005 */ li $at, 5 +/* 0217A0 80020BA0 12010011 */ beq $s0, $at, .L80020BE8 +.L80020BA4: +/* 0217A4 80020BA4 0010C080 */ sll $t8, $s0, 2 +/* 0217A8 80020BA8 27AF00B8 */ addiu $t7, $sp, 0xb8 +/* 0217AC 80020BAC 030F1021 */ addu $v0, $t8, $t7 +.L80020BB0: +/* 0217B0 80020BB0 C4440000 */ lwc1 $f4, ($v0) +/* 0217B4 80020BB4 C44A0004 */ lwc1 $f10, 4($v0) +/* 0217B8 80020BB8 46002180 */ add.s $f6, $f4, $f0 +/* 0217BC 80020BBC C4440008 */ lwc1 $f4, 8($v0) +/* 0217C0 80020BC0 46005200 */ add.s $f8, $f10, $f0 +/* 0217C4 80020BC4 C44A000C */ lwc1 $f10, 0xc($v0) +/* 0217C8 80020BC8 E4480004 */ swc1 $f8, 4($v0) +/* 0217CC 80020BCC E4460000 */ swc1 $f6, ($v0) +/* 0217D0 80020BD0 46002180 */ add.s $f6, $f4, $f0 +/* 0217D4 80020BD4 24420010 */ addiu $v0, $v0, 0x10 +/* 0217D8 80020BD8 46005200 */ add.s $f8, $f10, $f0 +/* 0217DC 80020BDC E446FFF8 */ swc1 $f6, -8($v0) +/* 0217E0 80020BE0 1447FFF3 */ bne $v0, $a3, .L80020BB0 +/* 0217E4 80020BE4 E448FFFC */ swc1 $f8, -4($v0) +.L80020BE8: +/* 0217E8 80020BE8 25080001 */ addiu $t0, $t0, 1 +/* 0217EC 80020BEC 24010005 */ li $at, 5 +/* 0217F0 80020BF0 1501FF59 */ bne $t0, $at, .L80020958 +/* 0217F4 80020BF4 27FF0004 */ addiu $ra, $ra, 4 +/* 0217F8 80020BF8 8279003F */ lb $t9, 0x3f($s3) +/* 0217FC 80020BFC 02402825 */ move $a1, $s2 +/* 021800 80020C00 17200027 */ bnez $t9, .L80020CA0 +/* 021804 80020C04 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 021808 80020C08 4406A000 */ mfc1 $a2, $f20 +/* 02180C 80020C0C 0C008950 */ jal catmull_rom_interpolation +/* 021810 80020C10 27A400E0 */ addiu $a0, $sp, 0xe0 +/* 021814 80020C14 444EF800 */ cfc1 $t6, $31 +/* 021818 80020C18 4406A000 */ mfc1 $a2, $f20 +/* 02181C 80020C1C 35C10003 */ ori $at, $t6, 3 +/* 021820 80020C20 38210002 */ xori $at, $at, 2 +/* 021824 80020C24 44C1F800 */ ctc1 $at, $31 +/* 021828 80020C28 27A400CC */ addiu $a0, $sp, 0xcc +/* 02182C 80020C2C 46000124 */ cvt.w.s $f4, $f0 +/* 021830 80020C30 02402825 */ move $a1, $s2 +/* 021834 80020C34 44182000 */ mfc1 $t8, $f4 +/* 021838 80020C38 44CEF800 */ ctc1 $t6, $31 +/* 02183C 80020C3C 0C008950 */ jal catmull_rom_interpolation +/* 021840 80020C40 A6D80000 */ sh $t8, ($s6) +/* 021844 80020C44 444FF800 */ cfc1 $t7, $31 +/* 021848 80020C48 4406A000 */ mfc1 $a2, $f20 +/* 02184C 80020C4C 35E10003 */ ori $at, $t7, 3 +/* 021850 80020C50 38210002 */ xori $at, $at, 2 +/* 021854 80020C54 44C1F800 */ ctc1 $at, $31 +/* 021858 80020C58 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 02185C 80020C5C 460001A4 */ cvt.w.s $f6, $f0 +/* 021860 80020C60 02402825 */ move $a1, $s2 +/* 021864 80020C64 44193000 */ mfc1 $t9, $f6 +/* 021868 80020C68 44CFF800 */ ctc1 $t7, $31 +/* 02186C 80020C6C 0C008950 */ jal catmull_rom_interpolation +/* 021870 80020C70 A6D90002 */ sh $t9, 2($s6) +/* 021874 80020C74 444EF800 */ cfc1 $t6, $31 +/* 021878 80020C78 00000000 */ nop +/* 02187C 80020C7C 35C10003 */ ori $at, $t6, 3 +/* 021880 80020C80 38210002 */ xori $at, $at, 2 +/* 021884 80020C84 44C1F800 */ ctc1 $at, $31 +/* 021888 80020C88 00000000 */ nop +/* 02188C 80020C8C 460002A4 */ cvt.w.s $f10, $f0 +/* 021890 80020C90 44185000 */ mfc1 $t8, $f10 +/* 021894 80020C94 44CEF800 */ ctc1 $t6, $31 +/* 021898 80020C98 10000027 */ b .L80020D38 +/* 02189C 80020C9C A6D80004 */ sh $t8, 4($s6) +.L80020CA0: +/* 0218A0 80020CA0 4406A000 */ mfc1 $a2, $f20 +/* 0218A4 80020CA4 0C008A22 */ jal lerp +/* 0218A8 80020CA8 02402825 */ move $a1, $s2 +/* 0218AC 80020CAC 444FF800 */ cfc1 $t7, $31 +/* 0218B0 80020CB0 4406A000 */ mfc1 $a2, $f20 +/* 0218B4 80020CB4 35E10003 */ ori $at, $t7, 3 +/* 0218B8 80020CB8 38210002 */ xori $at, $at, 2 +/* 0218BC 80020CBC 44C1F800 */ ctc1 $at, $31 +/* 0218C0 80020CC0 27A400CC */ addiu $a0, $sp, 0xcc +/* 0218C4 80020CC4 46000224 */ cvt.w.s $f8, $f0 +/* 0218C8 80020CC8 02402825 */ move $a1, $s2 +/* 0218CC 80020CCC 44194000 */ mfc1 $t9, $f8 +/* 0218D0 80020CD0 44CFF800 */ ctc1 $t7, $31 +/* 0218D4 80020CD4 0C008A22 */ jal lerp +/* 0218D8 80020CD8 A6D90000 */ sh $t9, ($s6) +/* 0218DC 80020CDC 444EF800 */ cfc1 $t6, $31 +/* 0218E0 80020CE0 4406A000 */ mfc1 $a2, $f20 +/* 0218E4 80020CE4 35C10003 */ ori $at, $t6, 3 +/* 0218E8 80020CE8 38210002 */ xori $at, $at, 2 +/* 0218EC 80020CEC 44C1F800 */ ctc1 $at, $31 +/* 0218F0 80020CF0 27A400B8 */ addiu $a0, $sp, 0xb8 +/* 0218F4 80020CF4 46000124 */ cvt.w.s $f4, $f0 +/* 0218F8 80020CF8 02402825 */ move $a1, $s2 +/* 0218FC 80020CFC 44182000 */ mfc1 $t8, $f4 +/* 021900 80020D00 44CEF800 */ ctc1 $t6, $31 +/* 021904 80020D04 0C008A22 */ jal lerp +/* 021908 80020D08 A6D80002 */ sh $t8, 2($s6) +/* 02190C 80020D0C 444FF800 */ cfc1 $t7, $31 +/* 021910 80020D10 00000000 */ nop +/* 021914 80020D14 35E10003 */ ori $at, $t7, 3 +/* 021918 80020D18 38210002 */ xori $at, $at, 2 +/* 02191C 80020D1C 44C1F800 */ ctc1 $at, $31 +/* 021920 80020D20 00000000 */ nop +/* 021924 80020D24 460001A4 */ cvt.w.s $f6, $f0 +/* 021928 80020D28 44193000 */ mfc1 $t9, $f6 +/* 02192C 80020D2C 44CFF800 */ ctc1 $t7, $31 +/* 021930 80020D30 A6D90004 */ sh $t9, 4($s6) +/* 021934 80020D34 00000000 */ nop +.L80020D38: +/* 021938 80020D38 8FA30168 */ lw $v1, 0x168($sp) +/* 02193C 80020D3C 86680026 */ lh $t0, 0x26($s3) +/* 021940 80020D40 2401FFFF */ li $at, -1 +/* 021944 80020D44 10610005 */ beq $v1, $at, .L80020D5C +/* 021948 80020D48 E6740000 */ swc1 $f20, ($s3) +/* 02194C 80020D4C 0115082A */ slt $at, $t0, $s5 +/* 021950 80020D50 14200002 */ bnez $at, .L80020D5C +/* 021954 80020D54 01157023 */ subu $t6, $t0, $s5 +/* 021958 80020D58 01C34021 */ addu $t0, $t6, $v1 +.L80020D5C: +/* 02195C 80020D5C 3C098012 */ lui $t1, %hi(D_8011AE74) # $t1, 0x8012 +/* 021960 80020D60 2529AE74 */ addiu $t1, %lo(D_8011AE74) # addiu $t1, $t1, -0x518c +/* 021964 80020D64 8D380000 */ lw $t8, ($t1) +/* 021968 80020D68 00147880 */ sll $t7, $s4, 2 +/* 02196C 80020D6C 00087080 */ sll $t6, $t0, 2 +/* 021970 80020D70 030FC821 */ addu $t9, $t8, $t7 +/* 021974 80020D74 032EC021 */ addu $t8, $t9, $t6 +/* 021978 80020D78 8F0F0000 */ lw $t7, ($t8) +/* 02197C 80020D7C 3C01800E */ lui $at, %hi(D_800E5680 + 4) # $at, 0x800e +/* 021980 80020D80 8DF1003C */ lw $s1, 0x3c($t7) +/* 021984 80020D84 C4215680 */ lwc1 $f1, %lo(D_800E5680)($at) +/* 021988 80020D88 82390014 */ lb $t9, 0x14($s1) +/* 02198C 80020D8C C4205684 */ lwc1 $f0, %lo(D_800E5680 + 4)($at) +/* 021990 80020D90 44995000 */ mtc1 $t9, $f10 +/* 021994 80020D94 00000000 */ nop +/* 021998 80020D98 46805220 */ cvt.s.w $f8, $f10 +/* 02199C 80020D9C 46004121 */ cvt.d.s $f4, $f8 +/* 0219A0 80020DA0 46202182 */ mul.d $f6, $f4, $f0 +/* 0219A4 80020DA4 462032A0 */ cvt.s.d $f10, $f6 +/* 0219A8 80020DA8 4616503C */ c.lt.s $f10, $f22 +/* 0219AC 80020DAC E7AA0124 */ swc1 $f10, 0x124($sp) +/* 0219B0 80020DB0 45000004 */ bc1f .L80020DC4 +/* 0219B4 80020DB4 00000000 */ nop +/* 0219B8 80020DB8 C668000C */ lwc1 $f8, 0xc($s3) +/* 0219BC 80020DBC 10000004 */ b .L80020DD0 +/* 0219C0 80020DC0 E7A80124 */ swc1 $f8, 0x124($sp) +.L80020DC4: +/* 0219C4 80020DC4 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 0219C8 80020DC8 00000000 */ nop +/* 0219CC 80020DCC E664000C */ swc1 $f4, 0xc($s3) +.L80020DD0: +/* 0219D0 80020DD0 C7A60124 */ lwc1 $f6, 0x124($sp) +/* 0219D4 80020DD4 00000000 */ nop +/* 0219D8 80020DD8 4606B03E */ c.le.s $f22, $f6 +/* 0219DC 80020DDC 00000000 */ nop +/* 0219E0 80020DE0 45000029 */ bc1f .L80020E88 +/* 0219E4 80020DE4 00000000 */ nop +/* 0219E8 80020DE8 16400027 */ bnez $s2, .L80020E88 +/* 0219EC 80020DEC 25020001 */ addiu $v0, $t0, 1 +/* 0219F0 80020DF0 2401FFFF */ li $at, -1 +/* 0219F4 80020DF4 10610005 */ beq $v1, $at, .L80020E0C +/* 0219F8 80020DF8 00408025 */ move $s0, $v0 +/* 0219FC 80020DFC 0055082A */ slt $at, $v0, $s5 +/* 021A00 80020E00 14200002 */ bnez $at, .L80020E0C +/* 021A04 80020E04 00557023 */ subu $t6, $v0, $s5 +/* 021A08 80020E08 01C38021 */ addu $s0, $t6, $v1 +.L80020E0C: +/* 021A0C 80020E0C 0215082A */ slt $at, $s0, $s5 +/* 021A10 80020E10 10200016 */ beqz $at, .L80020E6C +/* 021A14 80020E14 00147880 */ sll $t7, $s4, 2 +/* 021A18 80020E18 8D380000 */ lw $t8, ($t1) +/* 021A1C 80020E1C 00107080 */ sll $t6, $s0, 2 +/* 021A20 80020E20 030FC821 */ addu $t9, $t8, $t7 +/* 021A24 80020E24 032EC021 */ addu $t8, $t9, $t6 +/* 021A28 80020E28 8F0F0000 */ lw $t7, ($t8) +/* 021A2C 80020E2C C7AE0124 */ lwc1 $f14, 0x124($sp) +/* 021A30 80020E30 8DF1003C */ lw $s1, 0x3c($t7) +/* 021A34 80020E34 00000000 */ nop +/* 021A38 80020E38 82220014 */ lb $v0, 0x14($s1) +/* 021A3C 80020E3C 00000000 */ nop +/* 021A40 80020E40 04400009 */ bltz $v0, .L80020E68 +/* 021A44 80020E44 00000000 */ nop +/* 021A48 80020E48 44825000 */ mtc1 $v0, $f10 +/* 021A4C 80020E4C 00000000 */ nop +/* 021A50 80020E50 46805220 */ cvt.s.w $f8, $f10 +/* 021A54 80020E54 46004121 */ cvt.d.s $f4, $f8 +/* 021A58 80020E58 46202182 */ mul.d $f6, $f4, $f0 +/* 021A5C 80020E5C 462032A0 */ cvt.s.d $f10, $f6 +/* 021A60 80020E60 10000002 */ b .L80020E6C +/* 021A64 80020E64 E7AA011C */ swc1 $f10, 0x11c($sp) +.L80020E68: +/* 021A68 80020E68 E7AE011C */ swc1 $f14, 0x11c($sp) +.L80020E6C: +/* 021A6C 80020E6C C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 021A70 80020E70 C7A40124 */ lwc1 $f4, 0x124($sp) +/* 021A74 80020E74 00000000 */ nop +/* 021A78 80020E78 46044181 */ sub.s $f6, $f8, $f4 +/* 021A7C 80020E7C 46143282 */ mul.s $f10, $f6, $f20 +/* 021A80 80020E80 46045200 */ add.s $f8, $f10, $f4 +/* 021A84 80020E84 E6680008 */ swc1 $f8, 8($s3) +.L80020E88: +/* 021A88 80020E88 1240002F */ beqz $s2, .L80020F48 +/* 021A8C 80020E8C 00000000 */ nop +/* 021A90 80020E90 86790026 */ lh $t9, 0x26($s3) +/* 021A94 80020E94 2401FFFF */ li $at, -1 +/* 021A98 80020E98 272E0001 */ addiu $t6, $t9, 1 +/* 021A9C 80020E9C 14610014 */ bne $v1, $at, .L80020EF0 +/* 021AA0 80020EA0 A66E0026 */ sh $t6, 0x26($s3) +/* 021AA4 80020EA4 86620026 */ lh $v0, 0x26($s3) +/* 021AA8 80020EA8 0014C080 */ sll $t8, $s4, 2 +/* 021AAC 80020EAC 0055082A */ slt $at, $v0, $s5 +/* 021AB0 80020EB0 14200004 */ bnez $at, .L80020EC4 +/* 021AB4 80020EB4 0002C880 */ sll $t9, $v0, 2 +/* 021AB8 80020EB8 26B8FFFF */ addiu $t8, $s5, -1 +/* 021ABC 80020EBC 10000022 */ b .L80020F48 +/* 021AC0 80020EC0 A6780026 */ sh $t8, 0x26($s3) +.L80020EC4: +/* 021AC4 80020EC4 8D2F0000 */ lw $t7, ($t1) +/* 021AC8 80020EC8 02C02025 */ move $a0, $s6 +/* 021ACC 80020ECC 01F97021 */ addu $t6, $t7, $t9 +/* 021AD0 80020ED0 01D87821 */ addu $t7, $t6, $t8 +/* 021AD4 80020ED4 8DF90000 */ lw $t9, ($t7) +/* 021AD8 80020ED8 02603025 */ move $a2, $s3 +/* 021ADC 80020EDC 8F25003C */ lw $a1, 0x3c($t9) +/* 021AE0 80020EE0 0C008497 */ jal func_8002125C +/* 021AE4 80020EE4 02803825 */ move $a3, $s4 +/* 021AE8 80020EE8 10000018 */ b .L80020F4C +/* 021AEC 80020EEC 926F002E */ lbu $t7, 0x2e($s3) +.L80020EF0: +/* 021AF0 80020EF0 86620026 */ lh $v0, 0x26($s3) +/* 021AF4 80020EF4 246E0001 */ addiu $t6, $v1, 1 +/* 021AF8 80020EF8 02A2082A */ slt $at, $s5, $v0 +/* 021AFC 80020EFC 10200004 */ beqz $at, .L80020F10 +/* 021B00 80020F00 02C02025 */ move $a0, $s6 +/* 021B04 80020F04 A66E0026 */ sh $t6, 0x26($s3) +/* 021B08 80020F08 86620026 */ lh $v0, 0x26($s3) +/* 021B0C 80020F0C 00000000 */ nop +.L80020F10: +/* 021B10 80020F10 0055082A */ slt $at, $v0, $s5 +/* 021B14 80020F14 14200003 */ bnez $at, .L80020F24 +/* 021B18 80020F18 00409025 */ move $s2, $v0 +/* 021B1C 80020F1C 0055C023 */ subu $t8, $v0, $s5 +/* 021B20 80020F20 03039021 */ addu $s2, $t8, $v1 +.L80020F24: +/* 021B24 80020F24 8D2F0000 */ lw $t7, ($t1) +/* 021B28 80020F28 02549021 */ addu $s2, $s2, $s4 +/* 021B2C 80020F2C 0012C880 */ sll $t9, $s2, 2 +/* 021B30 80020F30 01F97021 */ addu $t6, $t7, $t9 +/* 021B34 80020F34 8DD80000 */ lw $t8, ($t6) +/* 021B38 80020F38 02603025 */ move $a2, $s3 +/* 021B3C 80020F3C 8F05003C */ lw $a1, 0x3c($t8) +/* 021B40 80020F40 0C008497 */ jal func_8002125C +/* 021B44 80020F44 02803825 */ move $a3, $s4 +.L80020F48: +/* 021B48 80020F48 926F002E */ lbu $t7, 0x2e($s3) +.L80020F4C: +/* 021B4C 80020F4C 24010003 */ li $at, 3 +/* 021B50 80020F50 15E10049 */ bne $t7, $at, .L80021078 +/* 021B54 80020F54 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 +/* 021B58 80020F58 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) +/* 021B5C 80020F5C 00004025 */ move $t0, $zero +/* 021B60 80020F60 18600015 */ blez $v1, .L80020FB8 +/* 021B64 80020F64 3C098012 */ lui $t1, %hi(D_8011AE74) # $t1, 0x8012 +/* 021B68 80020F68 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 +/* 021B6C 80020F6C 8CC6AE74 */ lw $a2, %lo(D_8011AE74)($a2) +/* 021B70 80020F70 8262003E */ lb $v0, 0x3e($s3) +/* 021B74 80020F74 8CD90000 */ lw $t9, ($a2) +/* 021B78 80020F78 00000000 */ nop +/* 021B7C 80020F7C 8F2E007C */ lw $t6, 0x7c($t9) +/* 021B80 80020F80 00000000 */ nop +/* 021B84 80020F84 104E000C */ beq $v0, $t6, .L80020FB8 +/* 021B88 80020F88 00000000 */ nop +.L80020F8C: +/* 021B8C 80020F8C 25080001 */ addiu $t0, $t0, 1 +/* 021B90 80020F90 0103082A */ slt $at, $t0, $v1 +/* 021B94 80020F94 10200008 */ beqz $at, .L80020FB8 +/* 021B98 80020F98 0008C080 */ sll $t8, $t0, 2 +/* 021B9C 80020F9C 00D87821 */ addu $t7, $a2, $t8 +/* 021BA0 80020FA0 8DF90000 */ lw $t9, ($t7) +/* 021BA4 80020FA4 00000000 */ nop +/* 021BA8 80020FA8 8F2E007C */ lw $t6, 0x7c($t9) +/* 021BAC 80020FAC 00000000 */ nop +/* 021BB0 80020FB0 144EFFF6 */ bne $v0, $t6, .L80020F8C +/* 021BB4 80020FB4 00000000 */ nop +.L80020FB8: +/* 021BB8 80020FB8 1103002F */ beq $t0, $v1, .L80021078 +/* 021BBC 80020FBC 2529AE74 */ addiu $t1, %lo(D_8011AE74) # addiu $t1, $t1, -0x518c +/* 021BC0 80020FC0 8D380000 */ lw $t8, ($t1) +/* 021BC4 80020FC4 00087880 */ sll $t7, $t0, 2 +/* 021BC8 80020FC8 030FC821 */ addu $t9, $t8, $t7 +/* 021BCC 80020FCC 8F2E0000 */ lw $t6, ($t9) +/* 021BD0 80020FD0 00000000 */ nop +/* 021BD4 80020FD4 8DC30064 */ lw $v1, 0x64($t6) +/* 021BD8 80020FD8 00000000 */ nop +/* 021BDC 80020FDC 10600026 */ beqz $v1, .L80021078 +/* 021BE0 80020FE0 00000000 */ nop +/* 021BE4 80020FE4 C466000C */ lwc1 $f6, 0xc($v1) +/* 021BE8 80020FE8 C6CA000C */ lwc1 $f10, 0xc($s6) +/* 021BEC 80020FEC 00000000 */ nop +/* 021BF0 80020FF0 460A3101 */ sub.s $f4, $f6, $f10 +/* 021BF4 80020FF4 E7A40124 */ swc1 $f4, 0x124($sp) +/* 021BF8 80020FF8 C6C60010 */ lwc1 $f6, 0x10($s6) +/* 021BFC 80020FFC C4680010 */ lwc1 $f8, 0x10($v1) +/* 021C00 80021000 00000000 */ nop +/* 021C04 80021004 46064281 */ sub.s $f10, $f8, $f6 +/* 021C08 80021008 E7AA0120 */ swc1 $f10, 0x120($sp) +/* 021C0C 8002100C C6C80014 */ lwc1 $f8, 0x14($s6) +/* 021C10 80021010 C4640014 */ lwc1 $f4, 0x14($v1) +/* 021C14 80021014 C7AA0124 */ lwc1 $f10, 0x124($sp) +/* 021C18 80021018 46082181 */ sub.s $f6, $f4, $f8 +/* 021C1C 8002101C C7A80120 */ lwc1 $f8, 0x120($sp) +/* 021C20 80021020 460A5102 */ mul.s $f4, $f10, $f10 +/* 021C24 80021024 E7A6011C */ swc1 $f6, 0x11c($sp) +/* 021C28 80021028 46084182 */ mul.s $f6, $f8, $f8 +/* 021C2C 8002102C C7A8011C */ lwc1 $f8, 0x11c($sp) +/* 021C30 80021030 46062280 */ add.s $f10, $f4, $f6 +/* 021C34 80021034 46084102 */ mul.s $f4, $f8, $f8 +/* 021C38 80021038 0C0326B4 */ jal sqrtf +/* 021C3C 8002103C 46045300 */ add.s $f12, $f10, $f4 +/* 021C40 80021040 4600B03C */ c.lt.s $f22, $f0 +/* 021C44 80021044 C7AE011C */ lwc1 $f14, 0x11c($sp) +/* 021C48 80021048 4500000B */ bc1f .L80021078 +/* 021C4C 8002104C 46000506 */ mov.s $f20, $f0 +/* 021C50 80021050 C7AC0124 */ lwc1 $f12, 0x124($sp) +/* 021C54 80021054 0C01C1D4 */ jal arctan2_f +/* 021C58 80021058 00000000 */ nop +/* 021C5C 8002105C 24018000 */ li $at, -32768 +/* 021C60 80021060 0041C021 */ addu $t8, $v0, $at +/* 021C64 80021064 A6D80000 */ sh $t8, ($s6) +/* 021C68 80021068 C7AC0120 */ lwc1 $f12, 0x120($sp) +/* 021C6C 8002106C 0C01C1D4 */ jal arctan2_f +/* 021C70 80021070 4600A386 */ mov.s $f14, $f20 +/* 021C74 80021074 A6C20002 */ sh $v0, 2($s6) +.L80021078: +/* 021C78 80021078 826F002F */ lb $t7, 0x2f($s3) +/* 021C7C 8002107C 02C02025 */ move $a0, $s6 +/* 021C80 80021080 AECF0074 */ sw $t7, 0x74($s6) +/* 021C84 80021084 8FA5019C */ lw $a1, 0x19c($sp) +/* 021C88 80021088 0C02BF0F */ jal func_800AFC3C +/* 021C8C 8002108C 00000000 */ nop +/* 021C90 80021090 00001025 */ move $v0, $zero +.L80021094: +/* 021C94 80021094 8FBF0054 */ lw $ra, 0x54($sp) +.L80021098: +/* 021C98 80021098 C7B50028 */ lwc1 $f21, 0x28($sp) +/* 021C9C 8002109C C7B4002C */ lwc1 $f20, 0x2c($sp) +/* 021CA0 800210A0 C7B70030 */ lwc1 $f23, 0x30($sp) +/* 021CA4 800210A4 C7B60034 */ lwc1 $f22, 0x34($sp) +/* 021CA8 800210A8 8FB00038 */ lw $s0, 0x38($sp) +/* 021CAC 800210AC 8FB1003C */ lw $s1, 0x3c($sp) +/* 021CB0 800210B0 8FB20040 */ lw $s2, 0x40($sp) +/* 021CB4 800210B4 8FB30044 */ lw $s3, 0x44($sp) +/* 021CB8 800210B8 8FB40048 */ lw $s4, 0x48($sp) +/* 021CBC 800210BC 8FB5004C */ lw $s5, 0x4c($sp) +/* 021CC0 800210C0 8FB60050 */ lw $s6, 0x50($sp) +/* 021CC4 800210C4 03E00008 */ jr $ra +/* 021CC8 800210C8 27BD0198 */ addiu $sp, $sp, 0x198 + diff --git a/asm/non_matchings/objects/func_80021104.s b/asm/non_matchings/objects/func_80021104.s index c76adace..e0394816 100644 --- a/asm/non_matchings/objects/func_80021104.s +++ b/asm/non_matchings/objects/func_80021104.s @@ -1,92 +1,92 @@ -glabel func_80021104 -/* 021D04 80021104 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 021D08 80021108 AFBF0014 */ sw $ra, 0x14($sp) -/* 021D0C 8002110C AFA60028 */ sw $a2, 0x28($sp) -/* 021D10 80021110 848E0048 */ lh $t6, 0x48($a0) -/* 021D14 80021114 8CA3001C */ lw $v1, 0x1c($a1) -/* 021D18 80021118 24010033 */ li $at, 51 -/* 021D1C 8002111C 15C10009 */ bne $t6, $at, .L80021144 -/* 021D20 80021120 3C028012 */ lui $v0, %hi(D_8011AD3E) # $v0, 0x8012 -/* 021D24 80021124 2442AD3E */ addiu $v0, %lo(D_8011AD3E) # addiu $v0, $v0, -0x52c2 -/* 021D28 80021128 804F0000 */ lb $t7, ($v0) -/* 021D2C 8002112C 00000000 */ nop -/* 021D30 80021130 A0AF0044 */ sb $t7, 0x44($a1) -/* 021D34 80021134 80580000 */ lb $t8, ($v0) -/* 021D38 80021138 00000000 */ nop -/* 021D3C 8002113C 27190001 */ addiu $t9, $t8, 1 -/* 021D40 80021140 A0590000 */ sb $t9, ($v0) -.L80021144: -/* 021D44 80021144 8FA80028 */ lw $t0, 0x28($sp) -/* 021D48 80021148 24010012 */ li $at, 18 -/* 021D4C 8002114C 81040022 */ lb $a0, 0x22($t0) -/* 021D50 80021150 00000000 */ nop -/* 021D54 80021154 14810020 */ bne $a0, $at, .L800211D8 -/* 021D58 80021158 2881000A */ slti $at, $a0, 0xa -/* 021D5C 8002115C 80A40030 */ lb $a0, 0x30($a1) -/* 021D60 80021160 0C01997A */ jal set_object_stack_pos -/* 021D64 80021164 AFA30018 */ sw $v1, 0x18($sp) -/* 021D68 80021168 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 021D6C 8002116C 00000000 */ nop -/* 021D70 80021170 8FA30018 */ lw $v1, 0x18($sp) -/* 021D74 80021174 C444000C */ lwc1 $f4, 0xc($v0) -/* 021D78 80021178 340A8000 */ li $t2, 32768 -/* 021D7C 8002117C E464000C */ swc1 $f4, 0xc($v1) -/* 021D80 80021180 C4460010 */ lwc1 $f6, 0x10($v0) -/* 021D84 80021184 00000000 */ nop -/* 021D88 80021188 E4660010 */ swc1 $f6, 0x10($v1) -/* 021D8C 8002118C C4480014 */ lwc1 $f8, 0x14($v0) -/* 021D90 80021190 00000000 */ nop -/* 021D94 80021194 E4680014 */ swc1 $f8, 0x14($v1) -/* 021D98 80021198 84490000 */ lh $t1, ($v0) -/* 021D9C 8002119C 00000000 */ nop -/* 021DA0 800211A0 01495823 */ subu $t3, $t2, $t1 -/* 021DA4 800211A4 A46B0000 */ sh $t3, ($v1) -/* 021DA8 800211A8 844C0002 */ lh $t4, 2($v0) -/* 021DAC 800211AC 00000000 */ nop -/* 021DB0 800211B0 000C6823 */ negu $t5, $t4 -/* 021DB4 800211B4 A46D0002 */ sh $t5, 2($v1) -/* 021DB8 800211B8 844E0004 */ lh $t6, 4($v0) -/* 021DBC 800211BC 00000000 */ nop -/* 021DC0 800211C0 A46E0004 */ sh $t6, 4($v1) -/* 021DC4 800211C4 8FAF0028 */ lw $t7, 0x28($sp) -/* 021DC8 800211C8 00000000 */ nop -/* 021DCC 800211CC 81E40022 */ lb $a0, 0x22($t7) -/* 021DD0 800211D0 00000000 */ nop -/* 021DD4 800211D4 2881000A */ slti $at, $a0, 0xa -.L800211D8: -/* 021DD8 800211D8 1420001C */ bnez $at, .L8002124C -/* 021DDC 800211DC 28810012 */ slti $at, $a0, 0x12 -/* 021DE0 800211E0 1020001A */ beqz $at, .L8002124C -/* 021DE4 800211E4 3C188012 */ lui $t8, %hi(gRacers) # $t8, 0x8012 -/* 021DE8 800211E8 8F18AEE4 */ lw $t8, %lo(gRacers)($t8) -/* 021DEC 800211EC 0004C880 */ sll $t9, $a0, 2 -/* 021DF0 800211F0 03194021 */ addu $t0, $t8, $t9 -/* 021DF4 800211F4 8D02FFD8 */ lw $v0, -0x28($t0) -/* 021DF8 800211F8 00000000 */ nop -/* 021DFC 800211FC 10400014 */ beqz $v0, .L80021250 -/* 021E00 80021200 8FBF0014 */ lw $ra, 0x14($sp) -/* 021E04 80021204 C44A000C */ lwc1 $f10, 0xc($v0) -/* 021E08 80021208 00000000 */ nop -/* 021E0C 8002120C E46A000C */ swc1 $f10, 0xc($v1) -/* 021E10 80021210 C4500010 */ lwc1 $f16, 0x10($v0) -/* 021E14 80021214 00000000 */ nop -/* 021E18 80021218 E4700010 */ swc1 $f16, 0x10($v1) -/* 021E1C 8002121C C4520014 */ lwc1 $f18, 0x14($v0) -/* 021E20 80021220 00000000 */ nop -/* 021E24 80021224 E4720014 */ swc1 $f18, 0x14($v1) -/* 021E28 80021228 844A0000 */ lh $t2, ($v0) -/* 021E2C 8002122C 00000000 */ nop -/* 021E30 80021230 A46A0000 */ sh $t2, ($v1) -/* 021E34 80021234 84490002 */ lh $t1, 2($v0) -/* 021E38 80021238 00000000 */ nop -/* 021E3C 8002123C A4690002 */ sh $t1, 2($v1) -/* 021E40 80021240 844B0004 */ lh $t3, 4($v0) -/* 021E44 80021244 00000000 */ nop -/* 021E48 80021248 A46B0004 */ sh $t3, 4($v1) -.L8002124C: -/* 021E4C 8002124C 8FBF0014 */ lw $ra, 0x14($sp) -.L80021250: -/* 021E50 80021250 27BD0020 */ addiu $sp, $sp, 0x20 -/* 021E54 80021254 03E00008 */ jr $ra -/* 021E58 80021258 00000000 */ nop - +glabel func_80021104 +/* 021D04 80021104 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 021D08 80021108 AFBF0014 */ sw $ra, 0x14($sp) +/* 021D0C 8002110C AFA60028 */ sw $a2, 0x28($sp) +/* 021D10 80021110 848E0048 */ lh $t6, 0x48($a0) +/* 021D14 80021114 8CA3001C */ lw $v1, 0x1c($a1) +/* 021D18 80021118 24010033 */ li $at, 51 +/* 021D1C 8002111C 15C10009 */ bne $t6, $at, .L80021144 +/* 021D20 80021120 3C028012 */ lui $v0, %hi(D_8011AD3E) # $v0, 0x8012 +/* 021D24 80021124 2442AD3E */ addiu $v0, %lo(D_8011AD3E) # addiu $v0, $v0, -0x52c2 +/* 021D28 80021128 804F0000 */ lb $t7, ($v0) +/* 021D2C 8002112C 00000000 */ nop +/* 021D30 80021130 A0AF0044 */ sb $t7, 0x44($a1) +/* 021D34 80021134 80580000 */ lb $t8, ($v0) +/* 021D38 80021138 00000000 */ nop +/* 021D3C 8002113C 27190001 */ addiu $t9, $t8, 1 +/* 021D40 80021140 A0590000 */ sb $t9, ($v0) +.L80021144: +/* 021D44 80021144 8FA80028 */ lw $t0, 0x28($sp) +/* 021D48 80021148 24010012 */ li $at, 18 +/* 021D4C 8002114C 81040022 */ lb $a0, 0x22($t0) +/* 021D50 80021150 00000000 */ nop +/* 021D54 80021154 14810020 */ bne $a0, $at, .L800211D8 +/* 021D58 80021158 2881000A */ slti $at, $a0, 0xa +/* 021D5C 8002115C 80A40030 */ lb $a0, 0x30($a1) +/* 021D60 80021160 0C01997A */ jal set_active_camera +/* 021D64 80021164 AFA30018 */ sw $v1, 0x18($sp) +/* 021D68 80021168 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 021D6C 8002116C 00000000 */ nop +/* 021D70 80021170 8FA30018 */ lw $v1, 0x18($sp) +/* 021D74 80021174 C444000C */ lwc1 $f4, 0xc($v0) +/* 021D78 80021178 340A8000 */ li $t2, 32768 +/* 021D7C 8002117C E464000C */ swc1 $f4, 0xc($v1) +/* 021D80 80021180 C4460010 */ lwc1 $f6, 0x10($v0) +/* 021D84 80021184 00000000 */ nop +/* 021D88 80021188 E4660010 */ swc1 $f6, 0x10($v1) +/* 021D8C 8002118C C4480014 */ lwc1 $f8, 0x14($v0) +/* 021D90 80021190 00000000 */ nop +/* 021D94 80021194 E4680014 */ swc1 $f8, 0x14($v1) +/* 021D98 80021198 84490000 */ lh $t1, ($v0) +/* 021D9C 8002119C 00000000 */ nop +/* 021DA0 800211A0 01495823 */ subu $t3, $t2, $t1 +/* 021DA4 800211A4 A46B0000 */ sh $t3, ($v1) +/* 021DA8 800211A8 844C0002 */ lh $t4, 2($v0) +/* 021DAC 800211AC 00000000 */ nop +/* 021DB0 800211B0 000C6823 */ negu $t5, $t4 +/* 021DB4 800211B4 A46D0002 */ sh $t5, 2($v1) +/* 021DB8 800211B8 844E0004 */ lh $t6, 4($v0) +/* 021DBC 800211BC 00000000 */ nop +/* 021DC0 800211C0 A46E0004 */ sh $t6, 4($v1) +/* 021DC4 800211C4 8FAF0028 */ lw $t7, 0x28($sp) +/* 021DC8 800211C8 00000000 */ nop +/* 021DCC 800211CC 81E40022 */ lb $a0, 0x22($t7) +/* 021DD0 800211D0 00000000 */ nop +/* 021DD4 800211D4 2881000A */ slti $at, $a0, 0xa +.L800211D8: +/* 021DD8 800211D8 1420001C */ bnez $at, .L8002124C +/* 021DDC 800211DC 28810012 */ slti $at, $a0, 0x12 +/* 021DE0 800211E0 1020001A */ beqz $at, .L8002124C +/* 021DE4 800211E4 3C188012 */ lui $t8, %hi(gRacers) # $t8, 0x8012 +/* 021DE8 800211E8 8F18AEE4 */ lw $t8, %lo(gRacers)($t8) +/* 021DEC 800211EC 0004C880 */ sll $t9, $a0, 2 +/* 021DF0 800211F0 03194021 */ addu $t0, $t8, $t9 +/* 021DF4 800211F4 8D02FFD8 */ lw $v0, -0x28($t0) +/* 021DF8 800211F8 00000000 */ nop +/* 021DFC 800211FC 10400014 */ beqz $v0, .L80021250 +/* 021E00 80021200 8FBF0014 */ lw $ra, 0x14($sp) +/* 021E04 80021204 C44A000C */ lwc1 $f10, 0xc($v0) +/* 021E08 80021208 00000000 */ nop +/* 021E0C 8002120C E46A000C */ swc1 $f10, 0xc($v1) +/* 021E10 80021210 C4500010 */ lwc1 $f16, 0x10($v0) +/* 021E14 80021214 00000000 */ nop +/* 021E18 80021218 E4700010 */ swc1 $f16, 0x10($v1) +/* 021E1C 8002121C C4520014 */ lwc1 $f18, 0x14($v0) +/* 021E20 80021220 00000000 */ nop +/* 021E24 80021224 E4720014 */ swc1 $f18, 0x14($v1) +/* 021E28 80021228 844A0000 */ lh $t2, ($v0) +/* 021E2C 8002122C 00000000 */ nop +/* 021E30 80021230 A46A0000 */ sh $t2, ($v1) +/* 021E34 80021234 84490002 */ lh $t1, 2($v0) +/* 021E38 80021238 00000000 */ nop +/* 021E3C 8002123C A4690002 */ sh $t1, 2($v1) +/* 021E40 80021240 844B0004 */ lh $t3, 4($v0) +/* 021E44 80021244 00000000 */ nop +/* 021E48 80021248 A46B0004 */ sh $t3, 4($v1) +.L8002124C: +/* 021E4C 8002124C 8FBF0014 */ lw $ra, 0x14($sp) +.L80021250: +/* 021E50 80021250 27BD0020 */ addiu $sp, $sp, 0x20 +/* 021E54 80021254 03E00008 */ jr $ra +/* 021E58 80021258 00000000 */ nop + diff --git a/asm/non_matchings/objects/func_80021600.s b/asm/non_matchings/objects/func_80021600.s index 529e6f9c..7e0bfe2a 100644 --- a/asm/non_matchings/objects/func_80021600.s +++ b/asm/non_matchings/objects/func_80021600.s @@ -1,1031 +1,1031 @@ -glabel func_80021600 -/* 022200 80021600 27BDFEA0 */ addiu $sp, $sp, -0x160 -/* 022204 80021604 3C0E8012 */ lui $t6, %hi(D_8011AE7A) # $t6, 0x8012 -/* 022208 80021608 85CEAE7A */ lh $t6, %lo(D_8011AE7A)($t6) -/* 02220C 8002160C AFBF0044 */ sw $ra, 0x44($sp) -/* 022210 80021610 AFBE0040 */ sw $fp, 0x40($sp) -/* 022214 80021614 AFB7003C */ sw $s7, 0x3c($sp) -/* 022218 80021618 AFB60038 */ sw $s6, 0x38($sp) -/* 02221C 8002161C AFB50034 */ sw $s5, 0x34($sp) -/* 022220 80021620 AFB40030 */ sw $s4, 0x30($sp) -/* 022224 80021624 AFB3002C */ sw $s3, 0x2c($sp) -/* 022228 80021628 AFB20028 */ sw $s2, 0x28($sp) -/* 02222C 8002162C AFB10024 */ sw $s1, 0x24($sp) -/* 022230 80021630 AFB00020 */ sw $s0, 0x20($sp) -/* 022234 80021634 E7B50018 */ swc1 $f21, 0x18($sp) -/* 022238 80021638 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 02223C 8002163C 05C10003 */ bgez $t6, .L8002164C -/* 022240 80021640 00802825 */ move $a1, $a0 -/* 022244 80021644 100003B0 */ b .L80022508 -/* 022248 80021648 24020001 */ li $v0, 1 -.L8002164C: -/* 02224C 8002164C 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 -/* 022250 80021650 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) -/* 022254 80021654 0000B825 */ move $s7, $zero -/* 022258 80021658 18600015 */ blez $v1, .L800216B0 -/* 02225C 8002165C 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 -/* 022260 80021660 24C6AE74 */ addiu $a2, %lo(D_8011AE74) # addiu $a2, $a2, -0x518c -/* 022264 80021664 8CC70000 */ lw $a3, ($a2) -/* 022268 80021668 00000000 */ nop -/* 02226C 8002166C 8CEF0000 */ lw $t7, ($a3) -/* 022270 80021670 00000000 */ nop -/* 022274 80021674 8DF8007C */ lw $t8, 0x7c($t7) -/* 022278 80021678 00000000 */ nop -/* 02227C 8002167C 10B8000C */ beq $a1, $t8, .L800216B0 -/* 022280 80021680 00000000 */ nop -.L80021684: -/* 022284 80021684 26F70001 */ addiu $s7, $s7, 1 -/* 022288 80021688 02E3082A */ slt $at, $s7, $v1 -/* 02228C 8002168C 10200008 */ beqz $at, .L800216B0 -/* 022290 80021690 0017C880 */ sll $t9, $s7, 2 -/* 022294 80021694 00F95821 */ addu $t3, $a3, $t9 -/* 022298 80021698 8D6C0000 */ lw $t4, ($t3) -/* 02229C 8002169C 00000000 */ nop -/* 0222A0 800216A0 8D8D007C */ lw $t5, 0x7c($t4) -/* 0222A4 800216A4 00000000 */ nop -/* 0222A8 800216A8 14ADFFF6 */ bne $a1, $t5, .L80021684 -/* 0222AC 800216AC 00000000 */ nop -.L800216B0: -/* 0222B0 800216B0 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 -/* 0222B4 800216B4 02E3082A */ slt $at, $s7, $v1 -/* 0222B8 800216B8 14200003 */ bnez $at, .L800216C8 -/* 0222BC 800216BC 24C6AE74 */ addiu $a2, %lo(D_8011AE74) # addiu $a2, $a2, -0x518c -/* 0222C0 800216C0 10000391 */ b .L80022508 -/* 0222C4 800216C4 24020001 */ li $v0, 1 -.L800216C8: -/* 0222C8 800216C8 26EE0001 */ addiu $t6, $s7, 1 -/* 0222CC 800216CC 01C3082A */ slt $at, $t6, $v1 -/* 0222D0 800216D0 10200015 */ beqz $at, .L80021728 -/* 0222D4 800216D4 24150001 */ li $s5, 1 -/* 0222D8 800216D8 8CCF0000 */ lw $t7, ($a2) -/* 0222DC 800216DC 0017C080 */ sll $t8, $s7, 2 -/* 0222E0 800216E0 01F82021 */ addu $a0, $t7, $t8 -/* 0222E4 800216E4 8C990004 */ lw $t9, 4($a0) -/* 0222E8 800216E8 02F51021 */ addu $v0, $s7, $s5 -/* 0222EC 800216EC 8F2B007C */ lw $t3, 0x7c($t9) -/* 0222F0 800216F0 00000000 */ nop -/* 0222F4 800216F4 14AB000C */ bne $a1, $t3, .L80021728 -/* 0222F8 800216F8 24420001 */ addiu $v0, $v0, 1 -.L800216FC: -/* 0222FC 800216FC 0043082A */ slt $at, $v0, $v1 -/* 022300 80021700 10200009 */ beqz $at, .L80021728 -/* 022304 80021704 26B50001 */ addiu $s5, $s5, 1 -/* 022308 80021708 00156080 */ sll $t4, $s5, 2 -/* 02230C 8002170C 008C6821 */ addu $t5, $a0, $t4 -/* 022310 80021710 8DAE0000 */ lw $t6, ($t5) -/* 022314 80021714 00000000 */ nop -/* 022318 80021718 8DCF007C */ lw $t7, 0x7c($t6) -/* 02231C 8002171C 00000000 */ nop -/* 022320 80021720 10AFFFF6 */ beq $a1, $t7, .L800216FC -/* 022324 80021724 24420001 */ addiu $v0, $v0, 1 -.L80021728: -/* 022328 80021728 2AA10002 */ slti $at, $s5, 2 -/* 02232C 8002172C 10200003 */ beqz $at, .L8002173C -/* 022330 80021730 0017C080 */ sll $t8, $s7, 2 -/* 022334 80021734 10000374 */ b .L80022508 -/* 022338 80021738 24020001 */ li $v0, 1 -.L8002173C: -/* 02233C 8002173C 8CC70000 */ lw $a3, ($a2) -/* 022340 80021740 AFB8007C */ sw $t8, 0x7c($sp) -/* 022344 80021744 00F85821 */ addu $t3, $a3, $t8 -/* 022348 80021748 8D620000 */ lw $v0, ($t3) -/* 02234C 8002174C 27B20124 */ addiu $s2, $sp, 0x124 -/* 022350 80021750 8C4C0064 */ lw $t4, 0x64($v0) -/* 022354 80021754 27B30110 */ addiu $s3, $sp, 0x110 -/* 022358 80021758 15800003 */ bnez $t4, .L80021768 -/* 02235C 8002175C AFAC0154 */ sw $t4, 0x154($sp) -/* 022360 80021760 10000369 */ b .L80022508 -/* 022364 80021764 24020001 */ li $v0, 1 -.L80021768: -/* 022368 80021768 8FAE0154 */ lw $t6, 0x154($sp) -/* 02236C 8002176C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 022370 80021770 8DCF0064 */ lw $t7, 0x64($t6) -/* 022374 80021774 44812800 */ mtc1 $at, $f5 -/* 022378 80021778 AFAF015C */ sw $t7, 0x15c($sp) -/* 02237C 8002177C 8C580040 */ lw $t8, 0x40($v0) -/* 022380 80021780 44802000 */ mtc1 $zero, $f4 -/* 022384 80021784 C706000C */ lwc1 $f6, 0xc($t8) -/* 022388 80021788 0017C880 */ sll $t9, $s7, 2 -/* 02238C 8002178C 46003221 */ cvt.d.s $f8, $f6 -/* 022390 80021790 00000000 */ nop -/* 022394 80021794 46282283 */ div.d $f10, $f4, $f8 -/* 022398 80021798 00F95821 */ addu $t3, $a3, $t9 -/* 02239C 8002179C 00156080 */ sll $t4, $s5, 2 -/* 0223A0 800217A0 016C6821 */ addu $t5, $t3, $t4 -/* 0223A4 800217A4 2AA10003 */ slti $at, $s5, 3 -/* 0223A8 800217A8 8FB8015C */ lw $t8, 0x15c($sp) -/* 0223AC 800217AC 2403FFFF */ li $v1, -1 -/* 0223B0 800217B0 27B400FC */ addiu $s4, $sp, 0xfc -/* 0223B4 800217B4 27BE00BC */ addiu $fp, $sp, 0xbc -/* 0223B8 800217B8 27B600A8 */ addiu $s6, $sp, 0xa8 -/* 0223BC 800217BC 27A90094 */ addiu $t1, $sp, 0x94 -/* 0223C0 800217C0 27B100D0 */ addiu $s1, $sp, 0xd0 -/* 0223C4 800217C4 462051A0 */ cvt.s.d $f6, $f10 -/* 0223C8 800217C8 E7A60090 */ swc1 $f6, 0x90($sp) -/* 0223CC 800217CC 8DAEFFFC */ lw $t6, -4($t5) -/* 0223D0 800217D0 00000000 */ nop -/* 0223D4 800217D4 8DC5003C */ lw $a1, 0x3c($t6) -/* 0223D8 800217D8 14200008 */ bnez $at, .L800217FC -/* 0223DC 800217DC 00000000 */ nop -/* 0223E0 800217E0 80A2001D */ lb $v0, 0x1d($a1) -/* 0223E4 800217E4 26AFFFFF */ addiu $t7, $s5, -1 -/* 0223E8 800217E8 04400004 */ bltz $v0, .L800217FC -/* 0223EC 800217EC 004F082A */ slt $at, $v0, $t7 -/* 0223F0 800217F0 10200002 */ beqz $at, .L800217FC -/* 0223F4 800217F4 00000000 */ nop -/* 0223F8 800217F8 00401825 */ move $v1, $v0 -.L800217FC: -/* 0223FC 800217FC 87100026 */ lh $s0, 0x26($t8) -/* 022400 80021800 AFA30138 */ sw $v1, 0x138($sp) -/* 022404 80021804 2610FFFF */ addiu $s0, $s0, -1 -.L80021808: -/* 022408 80021808 2401FFFF */ li $at, -1 -/* 02240C 8002180C 1601006B */ bne $s0, $at, .L800219BC -/* 022410 80021810 0215082A */ slt $at, $s0, $s5 -/* 022414 80021814 8FB90138 */ lw $t9, 0x138($sp) -/* 022418 80021818 02F55821 */ addu $t3, $s7, $s5 -/* 02241C 8002181C 13200039 */ beqz $t9, .L80021904 -/* 022420 80021820 000B6080 */ sll $t4, $t3, 2 -/* 022424 80021824 8FAB007C */ lw $t3, 0x7c($sp) -/* 022428 80021828 00000000 */ nop -/* 02242C 8002182C 00EB1021 */ addu $v0, $a3, $t3 -/* 022430 80021830 8C4C0000 */ lw $t4, ($v0) -/* 022434 80021834 8C4D0004 */ lw $t5, 4($v0) -/* 022438 80021838 C580000C */ lwc1 $f0, 0xc($t4) -/* 02243C 8002183C C5A4000C */ lwc1 $f4, 0xc($t5) -/* 022440 80021840 00000000 */ nop -/* 022444 80021844 46040201 */ sub.s $f8, $f0, $f4 -/* 022448 80021848 46004280 */ add.s $f10, $f8, $f0 -/* 02244C 8002184C E64A0000 */ swc1 $f10, ($s2) -/* 022450 80021850 8C4E0000 */ lw $t6, ($v0) -/* 022454 80021854 8C4F0004 */ lw $t7, 4($v0) -/* 022458 80021858 C5C20010 */ lwc1 $f2, 0x10($t6) -/* 02245C 8002185C C5E60010 */ lwc1 $f6, 0x10($t7) -/* 022460 80021860 00000000 */ nop -/* 022464 80021864 46061101 */ sub.s $f4, $f2, $f6 -/* 022468 80021868 46022200 */ add.s $f8, $f4, $f2 -/* 02246C 8002186C E6680000 */ swc1 $f8, ($s3) -/* 022470 80021870 8C580000 */ lw $t8, ($v0) -/* 022474 80021874 8C590004 */ lw $t9, 4($v0) -/* 022478 80021878 C70C0014 */ lwc1 $f12, 0x14($t8) -/* 02247C 8002187C C72A0014 */ lwc1 $f10, 0x14($t9) -/* 022480 80021880 00000000 */ nop -/* 022484 80021884 460A6181 */ sub.s $f6, $f12, $f10 -/* 022488 80021888 460C3100 */ add.s $f4, $f6, $f12 -/* 02248C 8002188C E6840000 */ swc1 $f4, ($s4) -/* 022490 80021890 8C4B0000 */ lw $t3, ($v0) -/* 022494 80021894 00000000 */ nop -/* 022498 80021898 856C0000 */ lh $t4, ($t3) -/* 02249C 8002189C 00000000 */ nop -/* 0224A0 800218A0 448C4000 */ mtc1 $t4, $f8 -/* 0224A4 800218A4 00000000 */ nop -/* 0224A8 800218A8 468042A0 */ cvt.s.w $f10, $f8 -/* 0224AC 800218AC E7CA0000 */ swc1 $f10, ($fp) -/* 0224B0 800218B0 8C4D0000 */ lw $t5, ($v0) -/* 0224B4 800218B4 00000000 */ nop -/* 0224B8 800218B8 85AE0002 */ lh $t6, 2($t5) -/* 0224BC 800218BC 00000000 */ nop -/* 0224C0 800218C0 448E3000 */ mtc1 $t6, $f6 -/* 0224C4 800218C4 00000000 */ nop -/* 0224C8 800218C8 46803120 */ cvt.s.w $f4, $f6 -/* 0224CC 800218CC E6C40000 */ swc1 $f4, ($s6) -/* 0224D0 800218D0 8C4F0000 */ lw $t7, ($v0) -/* 0224D4 800218D4 00000000 */ nop -/* 0224D8 800218D8 85F80004 */ lh $t8, 4($t7) -/* 0224DC 800218DC 00000000 */ nop -/* 0224E0 800218E0 44984000 */ mtc1 $t8, $f8 -/* 0224E4 800218E4 00000000 */ nop -/* 0224E8 800218E8 468042A0 */ cvt.s.w $f10, $f8 -/* 0224EC 800218EC E52A0000 */ swc1 $f10, ($t1) -/* 0224F0 800218F0 8C590000 */ lw $t9, ($v0) -/* 0224F4 800218F4 00000000 */ nop -/* 0224F8 800218F8 C7260008 */ lwc1 $f6, 8($t9) -/* 0224FC 800218FC 100000F5 */ b .L80021CD4 -/* 022500 80021900 E6260000 */ swc1 $f6, ($s1) -.L80021904: -/* 022504 80021904 00EC1021 */ addu $v0, $a3, $t4 -/* 022508 80021908 8C4DFFFC */ lw $t5, -4($v0) -/* 02250C 8002190C 00000000 */ nop -/* 022510 80021910 C5A4000C */ lwc1 $f4, 0xc($t5) -/* 022514 80021914 00000000 */ nop -/* 022518 80021918 E6440000 */ swc1 $f4, ($s2) -/* 02251C 8002191C 8C4EFFFC */ lw $t6, -4($v0) -/* 022520 80021920 00000000 */ nop -/* 022524 80021924 C5C80010 */ lwc1 $f8, 0x10($t6) -/* 022528 80021928 00000000 */ nop -/* 02252C 8002192C E6680000 */ swc1 $f8, ($s3) -/* 022530 80021930 8C4FFFFC */ lw $t7, -4($v0) -/* 022534 80021934 00000000 */ nop -/* 022538 80021938 C5EA0014 */ lwc1 $f10, 0x14($t7) -/* 02253C 8002193C 00000000 */ nop -/* 022540 80021940 E68A0000 */ swc1 $f10, ($s4) -/* 022544 80021944 8C58FFFC */ lw $t8, -4($v0) -/* 022548 80021948 00000000 */ nop -/* 02254C 8002194C 87190000 */ lh $t9, ($t8) -/* 022550 80021950 00000000 */ nop -/* 022554 80021954 44993000 */ mtc1 $t9, $f6 -/* 022558 80021958 00000000 */ nop -/* 02255C 8002195C 46803120 */ cvt.s.w $f4, $f6 -/* 022560 80021960 E7C40000 */ swc1 $f4, ($fp) -/* 022564 80021964 8C4BFFFC */ lw $t3, -4($v0) -/* 022568 80021968 00000000 */ nop -/* 02256C 8002196C 856C0002 */ lh $t4, 2($t3) -/* 022570 80021970 00000000 */ nop -/* 022574 80021974 448C4000 */ mtc1 $t4, $f8 -/* 022578 80021978 00000000 */ nop -/* 02257C 8002197C 468042A0 */ cvt.s.w $f10, $f8 -/* 022580 80021980 E6CA0000 */ swc1 $f10, ($s6) -/* 022584 80021984 8C4DFFFC */ lw $t5, -4($v0) -/* 022588 80021988 00000000 */ nop -/* 02258C 8002198C 85AE0004 */ lh $t6, 4($t5) -/* 022590 80021990 00000000 */ nop -/* 022594 80021994 448E3000 */ mtc1 $t6, $f6 -/* 022598 80021998 00000000 */ nop -/* 02259C 8002199C 46803120 */ cvt.s.w $f4, $f6 -/* 0225A0 800219A0 E5240000 */ swc1 $f4, ($t1) -/* 0225A4 800219A4 8C4FFFFC */ lw $t7, -4($v0) -/* 0225A8 800219A8 00000000 */ nop -/* 0225AC 800219AC C5E80008 */ lwc1 $f8, 8($t7) -/* 0225B0 800219B0 100000C8 */ b .L80021CD4 -/* 0225B4 800219B4 E6280000 */ swc1 $f8, ($s1) -/* 0225B8 800219B8 0215082A */ slt $at, $s0, $s5 -.L800219BC: -/* 0225BC 800219BC 14200082 */ bnez $at, .L80021BC8 -/* 0225C0 800219C0 02173021 */ addu $a2, $s0, $s7 -/* 0225C4 800219C4 8FB80138 */ lw $t8, 0x138($sp) -/* 0225C8 800219C8 2401FFFF */ li $at, -1 -/* 0225CC 800219CC 1701004B */ bne $t8, $at, .L80021AFC -/* 0225D0 800219D0 02B71021 */ addu $v0, $s5, $s7 -/* 0225D4 800219D4 0002C880 */ sll $t9, $v0, 2 -/* 0225D8 800219D8 00F95821 */ addu $t3, $a3, $t9 -/* 0225DC 800219DC 8D6CFFFC */ lw $t4, -4($t3) -/* 0225E0 800219E0 00023080 */ sll $a2, $v0, 2 -/* 0225E4 800219E4 8D85003C */ lw $a1, 0x3c($t4) -/* 0225E8 800219E8 24010001 */ li $at, 1 -/* 0225EC 800219EC 80AD0022 */ lb $t5, 0x22($a1) -/* 0225F0 800219F0 26B0FFFF */ addiu $s0, $s5, -1 -/* 0225F4 800219F4 15A10010 */ bne $t5, $at, .L80021A38 -/* 0225F8 800219F8 24C6FFFC */ addiu $a2, $a2, -4 -/* 0225FC 800219FC 8FAE015C */ lw $t6, 0x15c($sp) -/* 022600 80021A00 00000000 */ nop -/* 022604 80021A04 81C40030 */ lb $a0, 0x30($t6) -/* 022608 80021A08 AFA9005C */ sw $t1, 0x5c($sp) -/* 02260C 80021A0C 0C01997A */ jal set_object_stack_pos -/* 022610 80021A10 AFA6004C */ sw $a2, 0x4c($sp) -/* 022614 80021A14 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 022618 80021A18 00000000 */ nop -/* 02261C 80021A1C 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 -/* 022620 80021A20 8CE7AE74 */ lw $a3, %lo(D_8011AE74)($a3) -/* 022624 80021A24 8FA6004C */ lw $a2, 0x4c($sp) -/* 022628 80021A28 8FA9005C */ lw $t1, 0x5c($sp) -/* 02262C 80021A2C 00401825 */ move $v1, $v0 -/* 022630 80021A30 10000004 */ b .L80021A44 -/* 022634 80021A34 00E62021 */ addu $a0, $a3, $a2 -.L80021A38: -/* 022638 80021A38 00E62021 */ addu $a0, $a3, $a2 -/* 02263C 80021A3C 8C830000 */ lw $v1, ($a0) -/* 022640 80021A40 00000000 */ nop -.L80021A44: -/* 022644 80021A44 8C8FFFFC */ lw $t7, -4($a0) -/* 022648 80021A48 C460000C */ lwc1 $f0, 0xc($v1) -/* 02264C 80021A4C C5EA000C */ lwc1 $f10, 0xc($t7) -/* 022650 80021A50 00000000 */ nop -/* 022654 80021A54 460A0181 */ sub.s $f6, $f0, $f10 -/* 022658 80021A58 46003100 */ add.s $f4, $f6, $f0 -/* 02265C 80021A5C E6440000 */ swc1 $f4, ($s2) -/* 022660 80021A60 8C98FFFC */ lw $t8, -4($a0) -/* 022664 80021A64 C4620010 */ lwc1 $f2, 0x10($v1) -/* 022668 80021A68 C7080010 */ lwc1 $f8, 0x10($t8) -/* 02266C 80021A6C 00000000 */ nop -/* 022670 80021A70 46081281 */ sub.s $f10, $f2, $f8 -/* 022674 80021A74 46025180 */ add.s $f6, $f10, $f2 -/* 022678 80021A78 E6660000 */ swc1 $f6, ($s3) -/* 02267C 80021A7C 8C99FFFC */ lw $t9, -4($a0) -/* 022680 80021A80 C46C0014 */ lwc1 $f12, 0x14($v1) -/* 022684 80021A84 C7240014 */ lwc1 $f4, 0x14($t9) -/* 022688 80021A88 00000000 */ nop -/* 02268C 80021A8C 46046201 */ sub.s $f8, $f12, $f4 -/* 022690 80021A90 460C4280 */ add.s $f10, $f8, $f12 -/* 022694 80021A94 E68A0000 */ swc1 $f10, ($s4) -/* 022698 80021A98 846B0002 */ lh $t3, 2($v1) -/* 02269C 80021A9C 00000000 */ nop -/* 0226A0 80021AA0 448B3000 */ mtc1 $t3, $f6 -/* 0226A4 80021AA4 00000000 */ nop -/* 0226A8 80021AA8 46803120 */ cvt.s.w $f4, $f6 -/* 0226AC 80021AAC E6C40000 */ swc1 $f4, ($s6) -/* 0226B0 80021AB0 846C0004 */ lh $t4, 4($v1) -/* 0226B4 80021AB4 00000000 */ nop -/* 0226B8 80021AB8 448C4000 */ mtc1 $t4, $f8 -/* 0226BC 80021ABC 00000000 */ nop -/* 0226C0 80021AC0 468042A0 */ cvt.s.w $f10, $f8 -/* 0226C4 80021AC4 E52A0000 */ swc1 $f10, ($t1) -/* 0226C8 80021AC8 8C830000 */ lw $v1, ($a0) -/* 0226CC 80021ACC 00000000 */ nop -/* 0226D0 80021AD0 846D0000 */ lh $t5, ($v1) -/* 0226D4 80021AD4 00000000 */ nop -/* 0226D8 80021AD8 448D3000 */ mtc1 $t5, $f6 -/* 0226DC 80021ADC 00000000 */ nop -/* 0226E0 80021AE0 46803120 */ cvt.s.w $f4, $f6 -/* 0226E4 80021AE4 E7C40000 */ swc1 $f4, ($fp) -/* 0226E8 80021AE8 8C8E0000 */ lw $t6, ($a0) -/* 0226EC 80021AEC 00000000 */ nop -/* 0226F0 80021AF0 C5C80008 */ lwc1 $f8, 8($t6) -/* 0226F4 80021AF4 10000077 */ b .L80021CD4 -/* 0226F8 80021AF8 E6280000 */ swc1 $f8, ($s1) -.L80021AFC: -/* 0226FC 80021AFC 8FAF0138 */ lw $t7, 0x138($sp) -/* 022700 80021B00 00000000 */ nop -/* 022704 80021B04 02EFC021 */ addu $t8, $s7, $t7 -/* 022708 80021B08 0310C821 */ addu $t9, $t8, $s0 -/* 02270C 80021B0C 03355823 */ subu $t3, $t9, $s5 -/* 022710 80021B10 000B6080 */ sll $t4, $t3, 2 -/* 022714 80021B14 00EC1021 */ addu $v0, $a3, $t4 -/* 022718 80021B18 8C4D0000 */ lw $t5, ($v0) -/* 02271C 80021B1C 00000000 */ nop -/* 022720 80021B20 C5AA000C */ lwc1 $f10, 0xc($t5) -/* 022724 80021B24 00000000 */ nop -/* 022728 80021B28 E64A0000 */ swc1 $f10, ($s2) -/* 02272C 80021B2C 8C4E0000 */ lw $t6, ($v0) -/* 022730 80021B30 00000000 */ nop -/* 022734 80021B34 C5C60010 */ lwc1 $f6, 0x10($t6) -/* 022738 80021B38 00000000 */ nop -/* 02273C 80021B3C E6660000 */ swc1 $f6, ($s3) -/* 022740 80021B40 8C4F0000 */ lw $t7, ($v0) -/* 022744 80021B44 00000000 */ nop -/* 022748 80021B48 C5E40014 */ lwc1 $f4, 0x14($t7) -/* 02274C 80021B4C 00000000 */ nop -/* 022750 80021B50 E6840000 */ swc1 $f4, ($s4) -/* 022754 80021B54 8C580000 */ lw $t8, ($v0) -/* 022758 80021B58 00000000 */ nop -/* 02275C 80021B5C 87190000 */ lh $t9, ($t8) -/* 022760 80021B60 00000000 */ nop -/* 022764 80021B64 44994000 */ mtc1 $t9, $f8 -/* 022768 80021B68 00000000 */ nop -/* 02276C 80021B6C 468042A0 */ cvt.s.w $f10, $f8 -/* 022770 80021B70 E7CA0000 */ swc1 $f10, ($fp) -/* 022774 80021B74 8C4B0000 */ lw $t3, ($v0) -/* 022778 80021B78 00000000 */ nop -/* 02277C 80021B7C 856C0002 */ lh $t4, 2($t3) -/* 022780 80021B80 00000000 */ nop -/* 022784 80021B84 448C3000 */ mtc1 $t4, $f6 -/* 022788 80021B88 00000000 */ nop -/* 02278C 80021B8C 46803120 */ cvt.s.w $f4, $f6 -/* 022790 80021B90 E6C40000 */ swc1 $f4, ($s6) -/* 022794 80021B94 8C4D0000 */ lw $t5, ($v0) -/* 022798 80021B98 00000000 */ nop -/* 02279C 80021B9C 85AE0004 */ lh $t6, 4($t5) -/* 0227A0 80021BA0 00000000 */ nop -/* 0227A4 80021BA4 448E4000 */ mtc1 $t6, $f8 -/* 0227A8 80021BA8 00000000 */ nop -/* 0227AC 80021BAC 468042A0 */ cvt.s.w $f10, $f8 -/* 0227B0 80021BB0 E52A0000 */ swc1 $f10, ($t1) -/* 0227B4 80021BB4 8C4F0000 */ lw $t7, ($v0) -/* 0227B8 80021BB8 00000000 */ nop -/* 0227BC 80021BBC C5E60008 */ lwc1 $f6, 8($t7) -/* 0227C0 80021BC0 10000044 */ b .L80021CD4 -/* 0227C4 80021BC4 E6260000 */ swc1 $f6, ($s1) -.L80021BC8: -/* 0227C8 80021BC8 0006C080 */ sll $t8, $a2, 2 -/* 0227CC 80021BCC 00F82021 */ addu $a0, $a3, $t8 -/* 0227D0 80021BD0 8C820000 */ lw $v0, ($a0) -/* 0227D4 80021BD4 24010001 */ li $at, 1 -/* 0227D8 80021BD8 8C45003C */ lw $a1, 0x3c($v0) -/* 0227DC 80021BDC 8FAB015C */ lw $t3, 0x15c($sp) -/* 0227E0 80021BE0 80B90022 */ lb $t9, 0x22($a1) -/* 0227E4 80021BE4 00401825 */ move $v1, $v0 -/* 0227E8 80021BE8 17210010 */ bne $t9, $at, .L80021C2C -/* 0227EC 80021BEC 00000000 */ nop -/* 0227F0 80021BF0 81640030 */ lb $a0, 0x30($t3) -/* 0227F4 80021BF4 AFA9005C */ sw $t1, 0x5c($sp) -/* 0227F8 80021BF8 AFB80074 */ sw $t8, 0x74($sp) -/* 0227FC 80021BFC 0C01997A */ jal set_object_stack_pos -/* 022800 80021C00 AFA50150 */ sw $a1, 0x150($sp) -/* 022804 80021C04 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 022808 80021C08 00000000 */ nop -/* 02280C 80021C0C 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 -/* 022810 80021C10 8CE7AE74 */ lw $a3, %lo(D_8011AE74)($a3) -/* 022814 80021C14 8FA60074 */ lw $a2, 0x74($sp) -/* 022818 80021C18 8FA50150 */ lw $a1, 0x150($sp) -/* 02281C 80021C1C 8FA9005C */ lw $t1, 0x5c($sp) -/* 022820 80021C20 00401825 */ move $v1, $v0 -/* 022824 80021C24 10000001 */ b .L80021C2C -/* 022828 80021C28 00E62021 */ addu $a0, $a3, $a2 -.L80021C2C: -/* 02282C 80021C2C C464000C */ lwc1 $f4, 0xc($v1) -/* 022830 80021C30 24010001 */ li $at, 1 -/* 022834 80021C34 E6440000 */ swc1 $f4, ($s2) -/* 022838 80021C38 C4680010 */ lwc1 $f8, 0x10($v1) -/* 02283C 80021C3C 00000000 */ nop -/* 022840 80021C40 E6680000 */ swc1 $f8, ($s3) -/* 022844 80021C44 C46A0014 */ lwc1 $f10, 0x14($v1) -/* 022848 80021C48 00000000 */ nop -/* 02284C 80021C4C E68A0000 */ swc1 $f10, ($s4) -/* 022850 80021C50 846C0002 */ lh $t4, 2($v1) -/* 022854 80021C54 00000000 */ nop -/* 022858 80021C58 448C3000 */ mtc1 $t4, $f6 -/* 02285C 80021C5C 00000000 */ nop -/* 022860 80021C60 46803120 */ cvt.s.w $f4, $f6 -/* 022864 80021C64 E6C40000 */ swc1 $f4, ($s6) -/* 022868 80021C68 846D0004 */ lh $t5, 4($v1) -/* 02286C 80021C6C 00000000 */ nop -/* 022870 80021C70 448D4000 */ mtc1 $t5, $f8 -/* 022874 80021C74 00000000 */ nop -/* 022878 80021C78 468042A0 */ cvt.s.w $f10, $f8 -/* 02287C 80021C7C E52A0000 */ swc1 $f10, ($t1) -/* 022880 80021C80 8C830000 */ lw $v1, ($a0) -/* 022884 80021C84 00000000 */ nop -/* 022888 80021C88 846E0000 */ lh $t6, ($v1) -/* 02288C 80021C8C 00000000 */ nop -/* 022890 80021C90 448E3000 */ mtc1 $t6, $f6 -/* 022894 80021C94 00000000 */ nop -/* 022898 80021C98 46803120 */ cvt.s.w $f4, $f6 -/* 02289C 80021C9C E7C40000 */ swc1 $f4, ($fp) -/* 0228A0 80021CA0 80AF0022 */ lb $t7, 0x22($a1) -/* 0228A4 80021CA4 00000000 */ nop -/* 0228A8 80021CA8 15E10005 */ bne $t7, $at, .L80021CC0 -/* 0228AC 80021CAC 00000000 */ nop -/* 0228B0 80021CB0 C6C80000 */ lwc1 $f8, ($s6) -/* 0228B4 80021CB4 00000000 */ nop -/* 0228B8 80021CB8 46004287 */ neg.s $f10, $f8 -/* 0228BC 80021CBC E6CA0000 */ swc1 $f10, ($s6) -.L80021CC0: -/* 0228C0 80021CC0 8C980000 */ lw $t8, ($a0) -/* 0228C4 80021CC4 00000000 */ nop -/* 0228C8 80021CC8 C7060008 */ lwc1 $f6, 8($t8) -/* 0228CC 80021CCC 00000000 */ nop -/* 0228D0 80021CD0 E6260000 */ swc1 $f6, ($s1) -.L80021CD4: -/* 0228D4 80021CD4 26310004 */ addiu $s1, $s1, 4 -/* 0228D8 80021CD8 27B900E4 */ addiu $t9, $sp, 0xe4 -/* 0228DC 80021CDC 0239082B */ sltu $at, $s1, $t9 -/* 0228E0 80021CE0 26520004 */ addiu $s2, $s2, 4 -/* 0228E4 80021CE4 26730004 */ addiu $s3, $s3, 4 -/* 0228E8 80021CE8 26940004 */ addiu $s4, $s4, 4 -/* 0228EC 80021CEC 27DE0004 */ addiu $fp, $fp, 4 -/* 0228F0 80021CF0 26D60004 */ addiu $s6, $s6, 4 -/* 0228F4 80021CF4 25290004 */ addiu $t1, $t1, 4 -/* 0228F8 80021CF8 1420FEC3 */ bnez $at, .L80021808 -/* 0228FC 80021CFC 26100001 */ addiu $s0, $s0, 1 -/* 022900 80021D00 8FAB015C */ lw $t3, 0x15c($sp) -/* 022904 80021D04 27B00124 */ addiu $s0, $sp, 0x124 -/* 022908 80021D08 816C003F */ lb $t4, 0x3f($t3) -/* 02290C 80021D0C C5600000 */ lwc1 $f0, ($t3) -/* 022910 80021D10 15800015 */ bnez $t4, .L80021D68 -/* 022914 80021D14 02002025 */ move $a0, $s0 -/* 022918 80021D18 27B00124 */ addiu $s0, $sp, 0x124 -/* 02291C 80021D1C 44060000 */ mfc1 $a2, $f0 -/* 022920 80021D20 02002025 */ move $a0, $s0 -/* 022924 80021D24 00002825 */ move $a1, $zero -/* 022928 80021D28 0C008950 */ jal catmull_rom_interpolation -/* 02292C 80021D2C E7A000EC */ swc1 $f0, 0xec($sp) -/* 022930 80021D30 27B10110 */ addiu $s1, $sp, 0x110 -/* 022934 80021D34 8FA600EC */ lw $a2, 0xec($sp) -/* 022938 80021D38 02202025 */ move $a0, $s1 -/* 02293C 80021D3C 00002825 */ move $a1, $zero -/* 022940 80021D40 0C008950 */ jal catmull_rom_interpolation -/* 022944 80021D44 E7A000F8 */ swc1 $f0, 0xf8($sp) -/* 022948 80021D48 27B200FC */ addiu $s2, $sp, 0xfc -/* 02294C 80021D4C 8FA600EC */ lw $a2, 0xec($sp) -/* 022950 80021D50 02402025 */ move $a0, $s2 -/* 022954 80021D54 00002825 */ move $a1, $zero -/* 022958 80021D58 0C008950 */ jal catmull_rom_interpolation -/* 02295C 80021D5C E7A000F4 */ swc1 $f0, 0xf4($sp) -/* 022960 80021D60 10000012 */ b .L80021DAC -/* 022964 80021D64 E7A000F0 */ swc1 $f0, 0xf0($sp) -.L80021D68: -/* 022968 80021D68 44060000 */ mfc1 $a2, $f0 -/* 02296C 80021D6C 00002825 */ move $a1, $zero -/* 022970 80021D70 0C008A22 */ jal lerp -/* 022974 80021D74 E7A000EC */ swc1 $f0, 0xec($sp) -/* 022978 80021D78 27B10110 */ addiu $s1, $sp, 0x110 -/* 02297C 80021D7C 8FA600EC */ lw $a2, 0xec($sp) -/* 022980 80021D80 02202025 */ move $a0, $s1 -/* 022984 80021D84 00002825 */ move $a1, $zero -/* 022988 80021D88 0C008A22 */ jal lerp -/* 02298C 80021D8C E7A000F8 */ swc1 $f0, 0xf8($sp) -/* 022990 80021D90 27B200FC */ addiu $s2, $sp, 0xfc -/* 022994 80021D94 8FA600EC */ lw $a2, 0xec($sp) -/* 022998 80021D98 02402025 */ move $a0, $s2 -/* 02299C 80021D9C 00002825 */ move $a1, $zero -/* 0229A0 80021DA0 0C008A22 */ jal lerp -/* 0229A4 80021DA4 E7A000F4 */ swc1 $f0, 0xf4($sp) -/* 0229A8 80021DA8 E7A000F0 */ swc1 $f0, 0xf0($sp) -.L80021DAC: -/* 0229AC 80021DAC 8FA40154 */ lw $a0, 0x154($sp) -/* 0229B0 80021DB0 C7A400F8 */ lwc1 $f4, 0xf8($sp) -/* 0229B4 80021DB4 C488000C */ lwc1 $f8, 0xc($a0) -/* 0229B8 80021DB8 C7A600F4 */ lwc1 $f6, 0xf4($sp) -/* 0229BC 80021DBC 46082281 */ sub.s $f10, $f4, $f8 -/* 0229C0 80021DC0 E7AA00F8 */ swc1 $f10, 0xf8($sp) -/* 0229C4 80021DC4 C4840010 */ lwc1 $f4, 0x10($a0) -/* 0229C8 80021DC8 44055000 */ mfc1 $a1, $f10 -/* 0229CC 80021DCC 46043201 */ sub.s $f8, $f6, $f4 -/* 0229D0 80021DD0 C7A600F0 */ lwc1 $f6, 0xf0($sp) -/* 0229D4 80021DD4 E7A800F4 */ swc1 $f8, 0xf4($sp) -/* 0229D8 80021DD8 C4840014 */ lwc1 $f4, 0x14($a0) -/* 0229DC 80021DDC 44064000 */ mfc1 $a2, $f8 -/* 0229E0 80021DE0 46043181 */ sub.s $f6, $f6, $f4 -/* 0229E4 80021DE4 44073000 */ mfc1 $a3, $f6 -/* 0229E8 80021DE8 0C00455C */ jal move_object -/* 0229EC 80021DEC E7A600F0 */ swc1 $f6, 0xf0($sp) -/* 0229F0 80021DF0 8FA600EC */ lw $a2, 0xec($sp) -/* 0229F4 80021DF4 27A400D0 */ addiu $a0, $sp, 0xd0 -/* 0229F8 80021DF8 0C008950 */ jal catmull_rom_interpolation -/* 0229FC 80021DFC 00002825 */ move $a1, $zero -/* 022A00 80021E00 C7A40090 */ lwc1 $f4, 0x90($sp) -/* 022A04 80021E04 8FAE0154 */ lw $t6, 0x154($sp) -/* 022A08 80021E08 46040282 */ mul.s $f10, $f0, $f4 -/* 022A0C 80021E0C 8DCF0040 */ lw $t7, 0x40($t6) -/* 022A10 80021E10 24010001 */ li $at, 1 -/* 022A14 80021E14 C5E8000C */ lwc1 $f8, 0xc($t7) -/* 022A18 80021E18 00000000 */ nop -/* 022A1C 80021E1C 46085182 */ mul.s $f6, $f10, $f8 -/* 022A20 80021E20 E5C60008 */ swc1 $f6, 8($t6) -/* 022A24 80021E24 8FB8015C */ lw $t8, 0x15c($sp) -/* 022A28 80021E28 00000000 */ nop -/* 022A2C 80021E2C 9302002E */ lbu $v0, 0x2e($t8) -/* 022A30 80021E30 00000000 */ nop -/* 022A34 80021E34 104101B3 */ beq $v0, $at, .L80022504 -/* 022A38 80021E38 24010002 */ li $at, 2 -/* 022A3C 80021E3C 10410005 */ beq $v0, $at, .L80021E54 -/* 022A40 80021E40 24010003 */ li $at, 3 -/* 022A44 80021E44 10410056 */ beq $v0, $at, .L80021FA0 -/* 022A48 80021E48 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 -/* 022A4C 80021E4C 100000A0 */ b .L800220D0 -/* 022A50 80021E50 24050001 */ li $a1, 1 -.L80021E54: -/* 022A54 80021E54 8FB9015C */ lw $t9, 0x15c($sp) -/* 022A58 80021E58 8FA600EC */ lw $a2, 0xec($sp) -/* 022A5C 80021E5C 832B003F */ lb $t3, 0x3f($t9) -/* 022A60 80021E60 02002025 */ move $a0, $s0 -/* 022A64 80021E64 15600012 */ bnez $t3, .L80021EB0 -/* 022A68 80021E68 00002825 */ move $a1, $zero -/* 022A6C 80021E6C 8FA600EC */ lw $a2, 0xec($sp) -/* 022A70 80021E70 02002025 */ move $a0, $s0 -/* 022A74 80021E74 00002825 */ move $a1, $zero -/* 022A78 80021E78 0C00898F */ jal cubic_spline_interpolation -/* 022A7C 80021E7C 27A700F8 */ addiu $a3, $sp, 0xf8 -/* 022A80 80021E80 8FA600EC */ lw $a2, 0xec($sp) -/* 022A84 80021E84 02202025 */ move $a0, $s1 -/* 022A88 80021E88 00002825 */ move $a1, $zero -/* 022A8C 80021E8C 0C00898F */ jal cubic_spline_interpolation -/* 022A90 80021E90 27A700F4 */ addiu $a3, $sp, 0xf4 -/* 022A94 80021E94 8FA600EC */ lw $a2, 0xec($sp) -/* 022A98 80021E98 02402025 */ move $a0, $s2 -/* 022A9C 80021E9C 00002825 */ move $a1, $zero -/* 022AA0 80021EA0 0C00898F */ jal cubic_spline_interpolation -/* 022AA4 80021EA4 27A700F0 */ addiu $a3, $sp, 0xf0 -/* 022AA8 80021EA8 1000000E */ b .L80021EE4 -/* 022AAC 80021EAC C7B400F8 */ lwc1 $f20, 0xf8($sp) -.L80021EB0: -/* 022AB0 80021EB0 0C008A2C */ jal func_800228B0 -/* 022AB4 80021EB4 27A700F8 */ addiu $a3, $sp, 0xf8 -/* 022AB8 80021EB8 8FA600EC */ lw $a2, 0xec($sp) -/* 022ABC 80021EBC 02202025 */ move $a0, $s1 -/* 022AC0 80021EC0 00002825 */ move $a1, $zero -/* 022AC4 80021EC4 0C008A2C */ jal func_800228B0 -/* 022AC8 80021EC8 27A700F4 */ addiu $a3, $sp, 0xf4 -/* 022ACC 80021ECC 8FA600EC */ lw $a2, 0xec($sp) -/* 022AD0 80021ED0 02402025 */ move $a0, $s2 -/* 022AD4 80021ED4 00002825 */ move $a1, $zero -/* 022AD8 80021ED8 0C008A2C */ jal func_800228B0 -/* 022ADC 80021EDC 27A700F0 */ addiu $a3, $sp, 0xf0 -/* 022AE0 80021EE0 C7B400F8 */ lwc1 $f20, 0xf8($sp) -.L80021EE4: -/* 022AE4 80021EE4 C7A200F4 */ lwc1 $f2, 0xf4($sp) -/* 022AE8 80021EE8 4614A102 */ mul.s $f4, $f20, $f20 -/* 022AEC 80021EEC C7AE00F0 */ lwc1 $f14, 0xf0($sp) -/* 022AF0 80021EF0 46021282 */ mul.s $f10, $f2, $f2 -/* 022AF4 80021EF4 00000000 */ nop -/* 022AF8 80021EF8 460E7182 */ mul.s $f6, $f14, $f14 -/* 022AFC 80021EFC 460A2200 */ add.s $f8, $f4, $f10 -/* 022B00 80021F00 0C0326B4 */ jal sqrtf -/* 022B04 80021F04 46064300 */ add.s $f12, $f8, $f6 -/* 022B08 80021F08 44808000 */ mtc1 $zero, $f16 -/* 022B0C 80021F0C 3C014059 */ li $at, 0x40590000 # 3.390625 -/* 022B10 80021F10 46100032 */ c.eq.s $f0, $f16 -/* 022B14 80021F14 00000000 */ nop -/* 022B18 80021F18 45010011 */ bc1t .L80021F60 -/* 022B1C 80021F1C 00000000 */ nop -/* 022B20 80021F20 44812800 */ mtc1 $at, $f5 -/* 022B24 80021F24 44802000 */ mtc1 $zero, $f4 -/* 022B28 80021F28 460002A1 */ cvt.d.s $f10, $f0 -/* 022B2C 80021F2C 00000000 */ nop -/* 022B30 80021F30 462A2203 */ div.d $f8, $f4, $f10 -/* 022B34 80021F34 C7B400F8 */ lwc1 $f20, 0xf8($sp) -/* 022B38 80021F38 C7A200F4 */ lwc1 $f2, 0xf4($sp) -/* 022B3C 80021F3C C7AE00F0 */ lwc1 $f14, 0xf0($sp) -/* 022B40 80021F40 46204320 */ cvt.s.d $f12, $f8 -/* 022B44 80021F44 460CA502 */ mul.s $f20, $f20, $f12 -/* 022B48 80021F48 00000000 */ nop -/* 022B4C 80021F4C 460C1082 */ mul.s $f2, $f2, $f12 -/* 022B50 80021F50 E7B400F8 */ swc1 $f20, 0xf8($sp) -/* 022B54 80021F54 460C7382 */ mul.s $f14, $f14, $f12 -/* 022B58 80021F58 E7A200F4 */ swc1 $f2, 0xf4($sp) -/* 022B5C 80021F5C E7AE00F0 */ swc1 $f14, 0xf0($sp) -.L80021F60: -/* 022B60 80021F60 C7AE00F0 */ lwc1 $f14, 0xf0($sp) -/* 022B64 80021F64 C7AC00F8 */ lwc1 $f12, 0xf8($sp) -/* 022B68 80021F68 0C01C1D4 */ jal arctan2_f -/* 022B6C 80021F6C 00000000 */ nop -/* 022B70 80021F70 24018000 */ li $at, -32768 -/* 022B74 80021F74 8FAD0154 */ lw $t5, 0x154($sp) -/* 022B78 80021F78 00416021 */ addu $t4, $v0, $at -/* 022B7C 80021F7C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 022B80 80021F80 A5AC0000 */ sh $t4, ($t5) -/* 022B84 80021F84 C7AC00F4 */ lwc1 $f12, 0xf4($sp) -/* 022B88 80021F88 44817000 */ mtc1 $at, $f14 -/* 022B8C 80021F8C 0C01C1D4 */ jal arctan2_f -/* 022B90 80021F90 00000000 */ nop -/* 022B94 80021F94 8FAF0154 */ lw $t7, 0x154($sp) -/* 022B98 80021F98 1000015A */ b .L80022504 -/* 022B9C 80021F9C A5E20002 */ sh $v0, 2($t7) -.L80021FA0: -/* 022BA0 80021FA0 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) -/* 022BA4 80021FA4 00002825 */ move $a1, $zero -/* 022BA8 80021FA8 18600014 */ blez $v1, .L80021FFC -/* 022BAC 80021FAC 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 -/* 022BB0 80021FB0 8CE7AE74 */ lw $a3, %lo(D_8011AE74)($a3) -/* 022BB4 80021FB4 8FAE015C */ lw $t6, 0x15c($sp) -/* 022BB8 80021FB8 8CF80000 */ lw $t8, ($a3) -/* 022BBC 80021FBC 81C2003E */ lb $v0, 0x3e($t6) -/* 022BC0 80021FC0 8F19007C */ lw $t9, 0x7c($t8) -/* 022BC4 80021FC4 00000000 */ nop -/* 022BC8 80021FC8 1059000C */ beq $v0, $t9, .L80021FFC -/* 022BCC 80021FCC 00000000 */ nop -.L80021FD0: -/* 022BD0 80021FD0 24A50001 */ addiu $a1, $a1, 1 -/* 022BD4 80021FD4 00A3082A */ slt $at, $a1, $v1 -/* 022BD8 80021FD8 10200008 */ beqz $at, .L80021FFC -/* 022BDC 80021FDC 00055880 */ sll $t3, $a1, 2 -/* 022BE0 80021FE0 00EB6021 */ addu $t4, $a3, $t3 -/* 022BE4 80021FE4 8D8D0000 */ lw $t5, ($t4) -/* 022BE8 80021FE8 00000000 */ nop -/* 022BEC 80021FEC 8DAF007C */ lw $t7, 0x7c($t5) -/* 022BF0 80021FF0 00000000 */ nop -/* 022BF4 80021FF4 144FFFF6 */ bne $v0, $t7, .L80021FD0 -/* 022BF8 80021FF8 00000000 */ nop -.L80021FFC: -/* 022BFC 80021FFC 10A30141 */ beq $a1, $v1, .L80022504 -/* 022C00 80022000 3C0E8012 */ lui $t6, %hi(D_8011AE74) # $t6, 0x8012 -/* 022C04 80022004 8DCEAE74 */ lw $t6, %lo(D_8011AE74)($t6) -/* 022C08 80022008 0005C080 */ sll $t8, $a1, 2 -/* 022C0C 8002200C 01D8C821 */ addu $t9, $t6, $t8 -/* 022C10 80022010 8F2B0000 */ lw $t3, ($t9) -/* 022C14 80022014 8FAC0154 */ lw $t4, 0x154($sp) -/* 022C18 80022018 8D630064 */ lw $v1, 0x64($t3) -/* 022C1C 8002201C 00000000 */ nop -/* 022C20 80022020 10600139 */ beqz $v1, .L80022508 -/* 022C24 80022024 00001025 */ move $v0, $zero -/* 022C28 80022028 C466000C */ lwc1 $f6, 0xc($v1) -/* 022C2C 8002202C C584000C */ lwc1 $f4, 0xc($t4) -/* 022C30 80022030 00000000 */ nop -/* 022C34 80022034 46043281 */ sub.s $f10, $f6, $f4 -/* 022C38 80022038 E7AA00F8 */ swc1 $f10, 0xf8($sp) -/* 022C3C 8002203C C5860010 */ lwc1 $f6, 0x10($t4) -/* 022C40 80022040 C4680010 */ lwc1 $f8, 0x10($v1) -/* 022C44 80022044 00000000 */ nop -/* 022C48 80022048 46064101 */ sub.s $f4, $f8, $f6 -/* 022C4C 8002204C E7A400F4 */ swc1 $f4, 0xf4($sp) -/* 022C50 80022050 C5880014 */ lwc1 $f8, 0x14($t4) -/* 022C54 80022054 C46A0014 */ lwc1 $f10, 0x14($v1) -/* 022C58 80022058 C7A400F8 */ lwc1 $f4, 0xf8($sp) -/* 022C5C 8002205C 46085181 */ sub.s $f6, $f10, $f8 -/* 022C60 80022060 C7A800F4 */ lwc1 $f8, 0xf4($sp) -/* 022C64 80022064 46042282 */ mul.s $f10, $f4, $f4 -/* 022C68 80022068 E7A600F0 */ swc1 $f6, 0xf0($sp) -/* 022C6C 8002206C 46084182 */ mul.s $f6, $f8, $f8 -/* 022C70 80022070 C7A800F0 */ lwc1 $f8, 0xf0($sp) -/* 022C74 80022074 46065100 */ add.s $f4, $f10, $f6 -/* 022C78 80022078 46084282 */ mul.s $f10, $f8, $f8 -/* 022C7C 8002207C 0C0326B4 */ jal sqrtf -/* 022C80 80022080 460A2300 */ add.s $f12, $f4, $f10 -/* 022C84 80022084 44808000 */ mtc1 $zero, $f16 -/* 022C88 80022088 C7AE00F0 */ lwc1 $f14, 0xf0($sp) -/* 022C8C 8002208C 4600803C */ c.lt.s $f16, $f0 -/* 022C90 80022090 C7AC00F8 */ lwc1 $f12, 0xf8($sp) -/* 022C94 80022094 4500011B */ bc1f .L80022504 -/* 022C98 80022098 E7A000EC */ swc1 $f0, 0xec($sp) -/* 022C9C 8002209C 0C01C1D4 */ jal arctan2_f -/* 022CA0 800220A0 00000000 */ nop -/* 022CA4 800220A4 8FAF0154 */ lw $t7, 0x154($sp) -/* 022CA8 800220A8 24018000 */ li $at, -32768 -/* 022CAC 800220AC 00416821 */ addu $t5, $v0, $at -/* 022CB0 800220B0 A5ED0000 */ sh $t5, ($t7) -/* 022CB4 800220B4 C7AE00EC */ lwc1 $f14, 0xec($sp) -/* 022CB8 800220B8 C7AC00F4 */ lwc1 $f12, 0xf4($sp) -/* 022CBC 800220BC 0C01C1D4 */ jal arctan2_f -/* 022CC0 800220C0 00000000 */ nop -/* 022CC4 800220C4 8FAE0154 */ lw $t6, 0x154($sp) -/* 022CC8 800220C8 1000010E */ b .L80022504 -/* 022CCC 800220CC A5C20002 */ sh $v0, 2($t6) -.L800220D0: -/* 022CD0 800220D0 3C01C0E0 */ li $at, 0xC0E00000 # -7.000000 -/* 022CD4 800220D4 4481A800 */ mtc1 $at, $f21 -/* 022CD8 800220D8 3C0140E0 */ li $at, 0x40E00000 # 7.000000 -/* 022CDC 800220DC 44819800 */ mtc1 $at, $f19 -/* 022CE0 800220E0 3C0140F0 */ li $at, 0x40F00000 # 7.500000 -/* 022CE4 800220E4 44817800 */ mtc1 $at, $f15 -/* 022CE8 800220E8 4480A000 */ mtc1 $zero, $f20 -/* 022CEC 800220EC 44809000 */ mtc1 $zero, $f18 -/* 022CF0 800220F0 44808000 */ mtc1 $zero, $f16 -/* 022CF4 800220F4 44807000 */ mtc1 $zero, $f14 -/* 022CF8 800220F8 27BE00C0 */ addiu $fp, $sp, 0xc0 -/* 022CFC 800220FC 27B600AC */ addiu $s6, $sp, 0xac -/* 022D00 80022100 27A90098 */ addiu $t1, $sp, 0x98 -/* 022D04 80022104 240A0005 */ li $t2, 5 -/* 022D08 80022108 27A800A8 */ addiu $t0, $sp, 0xa8 -/* 022D0C 8002210C 27A700BC */ addiu $a3, $sp, 0xbc -/* 022D10 80022110 27A600D0 */ addiu $a2, $sp, 0xd0 -.L80022114: -/* 022D14 80022114 C7C60000 */ lwc1 $f6, ($fp) -/* 022D18 80022118 C7C8FFFC */ lwc1 $f8, -4($fp) -/* 022D1C 8002211C 27DE0004 */ addiu $fp, $fp, 4 -/* 022D20 80022120 46083301 */ sub.s $f12, $f6, $f8 -/* 022D24 80022124 28A10005 */ slti $at, $a1, 5 -/* 022D28 80022128 460060A1 */ cvt.d.s $f2, $f12 -/* 022D2C 8002212C 4622903C */ c.lt.d $f18, $f2 -/* 022D30 80022130 46008006 */ mov.s $f0, $f16 -/* 022D34 80022134 45000005 */ bc1f .L8002214C -/* 022D38 80022138 01452023 */ subu $a0, $t2, $a1 -/* 022D3C 8002213C 46008121 */ cvt.d.s $f4, $f16 -/* 022D40 80022140 462E2281 */ sub.d $f10, $f4, $f14 -/* 022D44 80022144 10000008 */ b .L80022168 -/* 022D48 80022148 46205020 */ cvt.s.d $f0, $f10 -.L8002214C: -/* 022D4C 8002214C 4634103C */ c.lt.d $f2, $f20 -/* 022D50 80022150 00000000 */ nop -/* 022D54 80022154 45000004 */ bc1f .L80022168 -/* 022D58 80022158 00000000 */ nop -/* 022D5C 8002215C 460081A1 */ cvt.d.s $f6, $f16 -/* 022D60 80022160 462E3200 */ add.d $f8, $f6, $f14 -/* 022D64 80022164 46204020 */ cvt.s.d $f0, $f8 -.L80022168: -/* 022D68 80022168 10200020 */ beqz $at, .L800221EC -/* 022D6C 8002216C 00A08025 */ move $s0, $a1 -/* 022D70 80022170 30980003 */ andi $t8, $a0, 3 -/* 022D74 80022174 1300000B */ beqz $t8, .L800221A4 -/* 022D78 80022178 03051821 */ addu $v1, $t8, $a1 -/* 022D7C 8002217C 0010C880 */ sll $t9, $s0, 2 -/* 022D80 80022180 27AB00BC */ addiu $t3, $sp, 0xbc -/* 022D84 80022184 032B1021 */ addu $v0, $t9, $t3 -.L80022188: -/* 022D88 80022188 C4440000 */ lwc1 $f4, ($v0) -/* 022D8C 8002218C 26100001 */ addiu $s0, $s0, 1 -/* 022D90 80022190 46002280 */ add.s $f10, $f4, $f0 -/* 022D94 80022194 24420004 */ addiu $v0, $v0, 4 -/* 022D98 80022198 1470FFFB */ bne $v1, $s0, .L80022188 -/* 022D9C 8002219C E44AFFFC */ swc1 $f10, -4($v0) -/* 022DA0 800221A0 120A0011 */ beq $s0, $t2, .L800221E8 -.L800221A4: -/* 022DA4 800221A4 00106080 */ sll $t4, $s0, 2 -/* 022DA8 800221A8 27AD00BC */ addiu $t5, $sp, 0xbc -/* 022DAC 800221AC 018D1021 */ addu $v0, $t4, $t5 -.L800221B0: -/* 022DB0 800221B0 C4460000 */ lwc1 $f6, ($v0) -/* 022DB4 800221B4 C4440004 */ lwc1 $f4, 4($v0) -/* 022DB8 800221B8 46003200 */ add.s $f8, $f6, $f0 -/* 022DBC 800221BC C4460008 */ lwc1 $f6, 8($v0) -/* 022DC0 800221C0 46002280 */ add.s $f10, $f4, $f0 -/* 022DC4 800221C4 C444000C */ lwc1 $f4, 0xc($v0) -/* 022DC8 800221C8 E44A0004 */ swc1 $f10, 4($v0) -/* 022DCC 800221CC E4480000 */ swc1 $f8, ($v0) -/* 022DD0 800221D0 46003200 */ add.s $f8, $f6, $f0 -/* 022DD4 800221D4 24420010 */ addiu $v0, $v0, 0x10 -/* 022DD8 800221D8 46002280 */ add.s $f10, $f4, $f0 -/* 022DDC 800221DC E448FFF8 */ swc1 $f8, -8($v0) -/* 022DE0 800221E0 1446FFF3 */ bne $v0, $a2, .L800221B0 -/* 022DE4 800221E4 E44AFFFC */ swc1 $f10, -4($v0) -.L800221E8: -/* 022DE8 800221E8 00A08025 */ move $s0, $a1 -.L800221EC: -/* 022DEC 800221EC C6C60000 */ lwc1 $f6, ($s6) -/* 022DF0 800221F0 C6C8FFFC */ lwc1 $f8, -4($s6) -/* 022DF4 800221F4 26D60004 */ addiu $s6, $s6, 4 -/* 022DF8 800221F8 46083301 */ sub.s $f12, $f6, $f8 -/* 022DFC 800221FC 28A10005 */ slti $at, $a1, 5 -/* 022E00 80022200 460060A1 */ cvt.d.s $f2, $f12 -/* 022E04 80022204 4622903C */ c.lt.d $f18, $f2 -/* 022E08 80022208 46008006 */ mov.s $f0, $f16 -/* 022E0C 8002220C 45000005 */ bc1f .L80022224 -/* 022E10 80022210 240F0005 */ li $t7, 5 -/* 022E14 80022214 46008121 */ cvt.d.s $f4, $f16 -/* 022E18 80022218 462E2281 */ sub.d $f10, $f4, $f14 -/* 022E1C 8002221C 10000008 */ b .L80022240 -/* 022E20 80022220 46205020 */ cvt.s.d $f0, $f10 -.L80022224: -/* 022E24 80022224 4634103C */ c.lt.d $f2, $f20 -/* 022E28 80022228 00000000 */ nop -/* 022E2C 8002222C 45000004 */ bc1f .L80022240 -/* 022E30 80022230 00000000 */ nop -/* 022E34 80022234 460081A1 */ cvt.d.s $f6, $f16 -/* 022E38 80022238 462E3200 */ add.d $f8, $f6, $f14 -/* 022E3C 8002223C 46204020 */ cvt.s.d $f0, $f8 -.L80022240: -/* 022E40 80022240 10200020 */ beqz $at, .L800222C4 -/* 022E44 80022244 01E52023 */ subu $a0, $t7, $a1 -/* 022E48 80022248 308E0003 */ andi $t6, $a0, 3 -/* 022E4C 8002224C 11C0000B */ beqz $t6, .L8002227C -/* 022E50 80022250 01C51821 */ addu $v1, $t6, $a1 -/* 022E54 80022254 0010C080 */ sll $t8, $s0, 2 -/* 022E58 80022258 27B900A8 */ addiu $t9, $sp, 0xa8 -/* 022E5C 8002225C 03191021 */ addu $v0, $t8, $t9 -.L80022260: -/* 022E60 80022260 C4440000 */ lwc1 $f4, ($v0) -/* 022E64 80022264 26100001 */ addiu $s0, $s0, 1 -/* 022E68 80022268 46002280 */ add.s $f10, $f4, $f0 -/* 022E6C 8002226C 24420004 */ addiu $v0, $v0, 4 -/* 022E70 80022270 1470FFFB */ bne $v1, $s0, .L80022260 -/* 022E74 80022274 E44AFFFC */ swc1 $f10, -4($v0) -/* 022E78 80022278 120A0011 */ beq $s0, $t2, .L800222C0 -.L8002227C: -/* 022E7C 8002227C 00105880 */ sll $t3, $s0, 2 -/* 022E80 80022280 27AC00A8 */ addiu $t4, $sp, 0xa8 -/* 022E84 80022284 016C1021 */ addu $v0, $t3, $t4 -.L80022288: -/* 022E88 80022288 C4460000 */ lwc1 $f6, ($v0) -/* 022E8C 8002228C C4440004 */ lwc1 $f4, 4($v0) -/* 022E90 80022290 46003200 */ add.s $f8, $f6, $f0 -/* 022E94 80022294 C4460008 */ lwc1 $f6, 8($v0) -/* 022E98 80022298 46002280 */ add.s $f10, $f4, $f0 -/* 022E9C 8002229C C444000C */ lwc1 $f4, 0xc($v0) -/* 022EA0 800222A0 E44A0004 */ swc1 $f10, 4($v0) -/* 022EA4 800222A4 E4480000 */ swc1 $f8, ($v0) -/* 022EA8 800222A8 46003200 */ add.s $f8, $f6, $f0 -/* 022EAC 800222AC 24420010 */ addiu $v0, $v0, 0x10 -/* 022EB0 800222B0 46002280 */ add.s $f10, $f4, $f0 -/* 022EB4 800222B4 E448FFF8 */ swc1 $f8, -8($v0) -/* 022EB8 800222B8 1447FFF3 */ bne $v0, $a3, .L80022288 -/* 022EBC 800222BC E44AFFFC */ swc1 $f10, -4($v0) -.L800222C0: -/* 022EC0 800222C0 00A08025 */ move $s0, $a1 -.L800222C4: -/* 022EC4 800222C4 C5260000 */ lwc1 $f6, ($t1) -/* 022EC8 800222C8 C528FFFC */ lwc1 $f8, -4($t1) -/* 022ECC 800222CC 240D0005 */ li $t5, 5 -/* 022ED0 800222D0 46083301 */ sub.s $f12, $f6, $f8 -/* 022ED4 800222D4 01A52023 */ subu $a0, $t5, $a1 -/* 022ED8 800222D8 460060A1 */ cvt.d.s $f2, $f12 -/* 022EDC 800222DC 4622903C */ c.lt.d $f18, $f2 -/* 022EE0 800222E0 46008006 */ mov.s $f0, $f16 -/* 022EE4 800222E4 45000005 */ bc1f .L800222FC -/* 022EE8 800222E8 28A10005 */ slti $at, $a1, 5 -/* 022EEC 800222EC 46008121 */ cvt.d.s $f4, $f16 -/* 022EF0 800222F0 462E2281 */ sub.d $f10, $f4, $f14 -/* 022EF4 800222F4 10000008 */ b .L80022318 -/* 022EF8 800222F8 46205020 */ cvt.s.d $f0, $f10 -.L800222FC: -/* 022EFC 800222FC 4634103C */ c.lt.d $f2, $f20 -/* 022F00 80022300 00000000 */ nop -/* 022F04 80022304 45000004 */ bc1f .L80022318 -/* 022F08 80022308 00000000 */ nop -/* 022F0C 8002230C 460081A1 */ cvt.d.s $f6, $f16 -/* 022F10 80022310 462E3200 */ add.d $f8, $f6, $f14 -/* 022F14 80022314 46204020 */ cvt.s.d $f0, $f8 -.L80022318: -/* 022F18 80022318 1020001E */ beqz $at, .L80022394 -/* 022F1C 8002231C 308F0003 */ andi $t7, $a0, 3 -/* 022F20 80022320 11E0000B */ beqz $t7, .L80022350 -/* 022F24 80022324 01E51821 */ addu $v1, $t7, $a1 -/* 022F28 80022328 00107080 */ sll $t6, $s0, 2 -/* 022F2C 8002232C 27B80094 */ addiu $t8, $sp, 0x94 -/* 022F30 80022330 01D81021 */ addu $v0, $t6, $t8 -.L80022334: -/* 022F34 80022334 C4440000 */ lwc1 $f4, ($v0) -/* 022F38 80022338 26100001 */ addiu $s0, $s0, 1 -/* 022F3C 8002233C 46002280 */ add.s $f10, $f4, $f0 -/* 022F40 80022340 24420004 */ addiu $v0, $v0, 4 -/* 022F44 80022344 1470FFFB */ bne $v1, $s0, .L80022334 -/* 022F48 80022348 E44AFFFC */ swc1 $f10, -4($v0) -/* 022F4C 8002234C 120A0011 */ beq $s0, $t2, .L80022394 -.L80022350: -/* 022F50 80022350 0010C880 */ sll $t9, $s0, 2 -/* 022F54 80022354 27AB0094 */ addiu $t3, $sp, 0x94 -/* 022F58 80022358 032B1021 */ addu $v0, $t9, $t3 -.L8002235C: -/* 022F5C 8002235C C4460000 */ lwc1 $f6, ($v0) -/* 022F60 80022360 C4440004 */ lwc1 $f4, 4($v0) -/* 022F64 80022364 46003200 */ add.s $f8, $f6, $f0 -/* 022F68 80022368 C4460008 */ lwc1 $f6, 8($v0) -/* 022F6C 8002236C 46002280 */ add.s $f10, $f4, $f0 -/* 022F70 80022370 C444000C */ lwc1 $f4, 0xc($v0) -/* 022F74 80022374 E44A0004 */ swc1 $f10, 4($v0) -/* 022F78 80022378 E4480000 */ swc1 $f8, ($v0) -/* 022F7C 8002237C 46003200 */ add.s $f8, $f6, $f0 -/* 022F80 80022380 24420010 */ addiu $v0, $v0, 0x10 -/* 022F84 80022384 46002280 */ add.s $f10, $f4, $f0 -/* 022F88 80022388 E448FFF8 */ swc1 $f8, -8($v0) -/* 022F8C 8002238C 1448FFF3 */ bne $v0, $t0, .L8002235C -/* 022F90 80022390 E44AFFFC */ swc1 $f10, -4($v0) -.L80022394: -/* 022F94 80022394 24A50001 */ addiu $a1, $a1, 1 -/* 022F98 80022398 14AAFF5E */ bne $a1, $t2, .L80022114 -/* 022F9C 8002239C 25290004 */ addiu $t1, $t1, 4 -/* 022FA0 800223A0 8FAC015C */ lw $t4, 0x15c($sp) -/* 022FA4 800223A4 8FA600EC */ lw $a2, 0xec($sp) -/* 022FA8 800223A8 818D003F */ lb $t5, 0x3f($t4) -/* 022FAC 800223AC 00002825 */ move $a1, $zero -/* 022FB0 800223B0 15A0002B */ bnez $t5, .L80022460 -/* 022FB4 800223B4 27A400BC */ addiu $a0, $sp, 0xbc -/* 022FB8 800223B8 8FA600EC */ lw $a2, 0xec($sp) -/* 022FBC 800223BC 0C008950 */ jal catmull_rom_interpolation -/* 022FC0 800223C0 27A400BC */ addiu $a0, $sp, 0xbc -/* 022FC4 800223C4 444FF800 */ cfc1 $t7, $31 -/* 022FC8 800223C8 8FB80154 */ lw $t8, 0x154($sp) -/* 022FCC 800223CC 35E10003 */ ori $at, $t7, 3 -/* 022FD0 800223D0 38210002 */ xori $at, $at, 2 -/* 022FD4 800223D4 44C1F800 */ ctc1 $at, $31 -/* 022FD8 800223D8 27A400A8 */ addiu $a0, $sp, 0xa8 -/* 022FDC 800223DC 460001A4 */ cvt.w.s $f6, $f0 -/* 022FE0 800223E0 00002825 */ move $a1, $zero -/* 022FE4 800223E4 440E3000 */ mfc1 $t6, $f6 -/* 022FE8 800223E8 44CFF800 */ ctc1 $t7, $31 -/* 022FEC 800223EC A70E0000 */ sh $t6, ($t8) -/* 022FF0 800223F0 8FA600EC */ lw $a2, 0xec($sp) -/* 022FF4 800223F4 0C008950 */ jal catmull_rom_interpolation -/* 022FF8 800223F8 00000000 */ nop -/* 022FFC 800223FC 4459F800 */ cfc1 $t9, $31 -/* 023000 80022400 8FAC0154 */ lw $t4, 0x154($sp) -/* 023004 80022404 37210003 */ ori $at, $t9, 3 -/* 023008 80022408 38210002 */ xori $at, $at, 2 -/* 02300C 8002240C 44C1F800 */ ctc1 $at, $31 -/* 023010 80022410 27A40094 */ addiu $a0, $sp, 0x94 -/* 023014 80022414 46000224 */ cvt.w.s $f8, $f0 -/* 023018 80022418 00002825 */ move $a1, $zero -/* 02301C 8002241C 440B4000 */ mfc1 $t3, $f8 -/* 023020 80022420 44D9F800 */ ctc1 $t9, $31 -/* 023024 80022424 A58B0002 */ sh $t3, 2($t4) -/* 023028 80022428 8FA600EC */ lw $a2, 0xec($sp) -/* 02302C 8002242C 0C008950 */ jal catmull_rom_interpolation -/* 023030 80022430 00000000 */ nop -/* 023034 80022434 444DF800 */ cfc1 $t5, $31 -/* 023038 80022438 8FAE0154 */ lw $t6, 0x154($sp) -/* 02303C 8002243C 35A10003 */ ori $at, $t5, 3 -/* 023040 80022440 38210002 */ xori $at, $at, 2 -/* 023044 80022444 44C1F800 */ ctc1 $at, $31 -/* 023048 80022448 00000000 */ nop -/* 02304C 8002244C 46000124 */ cvt.w.s $f4, $f0 -/* 023050 80022450 440F2000 */ mfc1 $t7, $f4 -/* 023054 80022454 44CDF800 */ ctc1 $t5, $31 -/* 023058 80022458 1000002A */ b .L80022504 -/* 02305C 8002245C A5CF0004 */ sh $t7, 4($t6) -.L80022460: -/* 023060 80022460 0C008A22 */ jal lerp -/* 023064 80022464 00002825 */ move $a1, $zero -/* 023068 80022468 4458F800 */ cfc1 $t8, $31 -/* 02306C 8002246C 8FAB0154 */ lw $t3, 0x154($sp) -/* 023070 80022470 37010003 */ ori $at, $t8, 3 -/* 023074 80022474 38210002 */ xori $at, $at, 2 -/* 023078 80022478 44C1F800 */ ctc1 $at, $31 -/* 02307C 8002247C 27A400A8 */ addiu $a0, $sp, 0xa8 -/* 023080 80022480 460002A4 */ cvt.w.s $f10, $f0 -/* 023084 80022484 00002825 */ move $a1, $zero -/* 023088 80022488 44195000 */ mfc1 $t9, $f10 -/* 02308C 8002248C 44D8F800 */ ctc1 $t8, $31 -/* 023090 80022490 A5790000 */ sh $t9, ($t3) -/* 023094 80022494 8FA600EC */ lw $a2, 0xec($sp) -/* 023098 80022498 0C008A22 */ jal lerp -/* 02309C 8002249C 00000000 */ nop -/* 0230A0 800224A0 444CF800 */ cfc1 $t4, $31 -/* 0230A4 800224A4 8FAF0154 */ lw $t7, 0x154($sp) -/* 0230A8 800224A8 35810003 */ ori $at, $t4, 3 -/* 0230AC 800224AC 38210002 */ xori $at, $at, 2 -/* 0230B0 800224B0 44C1F800 */ ctc1 $at, $31 -/* 0230B4 800224B4 27A40094 */ addiu $a0, $sp, 0x94 -/* 0230B8 800224B8 460001A4 */ cvt.w.s $f6, $f0 -/* 0230BC 800224BC 00002825 */ move $a1, $zero -/* 0230C0 800224C0 440D3000 */ mfc1 $t5, $f6 -/* 0230C4 800224C4 44CCF800 */ ctc1 $t4, $31 -/* 0230C8 800224C8 A5ED0002 */ sh $t5, 2($t7) -/* 0230CC 800224CC 8FA600EC */ lw $a2, 0xec($sp) -/* 0230D0 800224D0 0C008A22 */ jal lerp -/* 0230D4 800224D4 00000000 */ nop -/* 0230D8 800224D8 444EF800 */ cfc1 $t6, $31 -/* 0230DC 800224DC 8FB90154 */ lw $t9, 0x154($sp) -/* 0230E0 800224E0 35C10003 */ ori $at, $t6, 3 -/* 0230E4 800224E4 38210002 */ xori $at, $at, 2 -/* 0230E8 800224E8 44C1F800 */ ctc1 $at, $31 -/* 0230EC 800224EC 00000000 */ nop -/* 0230F0 800224F0 46000224 */ cvt.w.s $f8, $f0 -/* 0230F4 800224F4 44184000 */ mfc1 $t8, $f8 -/* 0230F8 800224F8 44CEF800 */ ctc1 $t6, $31 -/* 0230FC 800224FC A7380004 */ sh $t8, 4($t9) -/* 023100 80022500 00000000 */ nop -.L80022504: -/* 023104 80022504 00001025 */ move $v0, $zero -.L80022508: -/* 023108 80022508 8FBF0044 */ lw $ra, 0x44($sp) -/* 02310C 8002250C C7B50018 */ lwc1 $f21, 0x18($sp) -/* 023110 80022510 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 023114 80022514 8FB00020 */ lw $s0, 0x20($sp) -/* 023118 80022518 8FB10024 */ lw $s1, 0x24($sp) -/* 02311C 8002251C 8FB20028 */ lw $s2, 0x28($sp) -/* 023120 80022520 8FB3002C */ lw $s3, 0x2c($sp) -/* 023124 80022524 8FB40030 */ lw $s4, 0x30($sp) -/* 023128 80022528 8FB50034 */ lw $s5, 0x34($sp) -/* 02312C 8002252C 8FB60038 */ lw $s6, 0x38($sp) -/* 023130 80022530 8FB7003C */ lw $s7, 0x3c($sp) -/* 023134 80022534 8FBE0040 */ lw $fp, 0x40($sp) -/* 023138 80022538 03E00008 */ jr $ra -/* 02313C 8002253C 27BD0160 */ addiu $sp, $sp, 0x160 - +glabel func_80021600 +/* 022200 80021600 27BDFEA0 */ addiu $sp, $sp, -0x160 +/* 022204 80021604 3C0E8012 */ lui $t6, %hi(D_8011AE7A) # $t6, 0x8012 +/* 022208 80021608 85CEAE7A */ lh $t6, %lo(D_8011AE7A)($t6) +/* 02220C 8002160C AFBF0044 */ sw $ra, 0x44($sp) +/* 022210 80021610 AFBE0040 */ sw $fp, 0x40($sp) +/* 022214 80021614 AFB7003C */ sw $s7, 0x3c($sp) +/* 022218 80021618 AFB60038 */ sw $s6, 0x38($sp) +/* 02221C 8002161C AFB50034 */ sw $s5, 0x34($sp) +/* 022220 80021620 AFB40030 */ sw $s4, 0x30($sp) +/* 022224 80021624 AFB3002C */ sw $s3, 0x2c($sp) +/* 022228 80021628 AFB20028 */ sw $s2, 0x28($sp) +/* 02222C 8002162C AFB10024 */ sw $s1, 0x24($sp) +/* 022230 80021630 AFB00020 */ sw $s0, 0x20($sp) +/* 022234 80021634 E7B50018 */ swc1 $f21, 0x18($sp) +/* 022238 80021638 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 02223C 8002163C 05C10003 */ bgez $t6, .L8002164C +/* 022240 80021640 00802825 */ move $a1, $a0 +/* 022244 80021644 100003B0 */ b .L80022508 +/* 022248 80021648 24020001 */ li $v0, 1 +.L8002164C: +/* 02224C 8002164C 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 +/* 022250 80021650 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) +/* 022254 80021654 0000B825 */ move $s7, $zero +/* 022258 80021658 18600015 */ blez $v1, .L800216B0 +/* 02225C 8002165C 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 +/* 022260 80021660 24C6AE74 */ addiu $a2, %lo(D_8011AE74) # addiu $a2, $a2, -0x518c +/* 022264 80021664 8CC70000 */ lw $a3, ($a2) +/* 022268 80021668 00000000 */ nop +/* 02226C 8002166C 8CEF0000 */ lw $t7, ($a3) +/* 022270 80021670 00000000 */ nop +/* 022274 80021674 8DF8007C */ lw $t8, 0x7c($t7) +/* 022278 80021678 00000000 */ nop +/* 02227C 8002167C 10B8000C */ beq $a1, $t8, .L800216B0 +/* 022280 80021680 00000000 */ nop +.L80021684: +/* 022284 80021684 26F70001 */ addiu $s7, $s7, 1 +/* 022288 80021688 02E3082A */ slt $at, $s7, $v1 +/* 02228C 8002168C 10200008 */ beqz $at, .L800216B0 +/* 022290 80021690 0017C880 */ sll $t9, $s7, 2 +/* 022294 80021694 00F95821 */ addu $t3, $a3, $t9 +/* 022298 80021698 8D6C0000 */ lw $t4, ($t3) +/* 02229C 8002169C 00000000 */ nop +/* 0222A0 800216A0 8D8D007C */ lw $t5, 0x7c($t4) +/* 0222A4 800216A4 00000000 */ nop +/* 0222A8 800216A8 14ADFFF6 */ bne $a1, $t5, .L80021684 +/* 0222AC 800216AC 00000000 */ nop +.L800216B0: +/* 0222B0 800216B0 3C068012 */ lui $a2, %hi(D_8011AE74) # $a2, 0x8012 +/* 0222B4 800216B4 02E3082A */ slt $at, $s7, $v1 +/* 0222B8 800216B8 14200003 */ bnez $at, .L800216C8 +/* 0222BC 800216BC 24C6AE74 */ addiu $a2, %lo(D_8011AE74) # addiu $a2, $a2, -0x518c +/* 0222C0 800216C0 10000391 */ b .L80022508 +/* 0222C4 800216C4 24020001 */ li $v0, 1 +.L800216C8: +/* 0222C8 800216C8 26EE0001 */ addiu $t6, $s7, 1 +/* 0222CC 800216CC 01C3082A */ slt $at, $t6, $v1 +/* 0222D0 800216D0 10200015 */ beqz $at, .L80021728 +/* 0222D4 800216D4 24150001 */ li $s5, 1 +/* 0222D8 800216D8 8CCF0000 */ lw $t7, ($a2) +/* 0222DC 800216DC 0017C080 */ sll $t8, $s7, 2 +/* 0222E0 800216E0 01F82021 */ addu $a0, $t7, $t8 +/* 0222E4 800216E4 8C990004 */ lw $t9, 4($a0) +/* 0222E8 800216E8 02F51021 */ addu $v0, $s7, $s5 +/* 0222EC 800216EC 8F2B007C */ lw $t3, 0x7c($t9) +/* 0222F0 800216F0 00000000 */ nop +/* 0222F4 800216F4 14AB000C */ bne $a1, $t3, .L80021728 +/* 0222F8 800216F8 24420001 */ addiu $v0, $v0, 1 +.L800216FC: +/* 0222FC 800216FC 0043082A */ slt $at, $v0, $v1 +/* 022300 80021700 10200009 */ beqz $at, .L80021728 +/* 022304 80021704 26B50001 */ addiu $s5, $s5, 1 +/* 022308 80021708 00156080 */ sll $t4, $s5, 2 +/* 02230C 8002170C 008C6821 */ addu $t5, $a0, $t4 +/* 022310 80021710 8DAE0000 */ lw $t6, ($t5) +/* 022314 80021714 00000000 */ nop +/* 022318 80021718 8DCF007C */ lw $t7, 0x7c($t6) +/* 02231C 8002171C 00000000 */ nop +/* 022320 80021720 10AFFFF6 */ beq $a1, $t7, .L800216FC +/* 022324 80021724 24420001 */ addiu $v0, $v0, 1 +.L80021728: +/* 022328 80021728 2AA10002 */ slti $at, $s5, 2 +/* 02232C 8002172C 10200003 */ beqz $at, .L8002173C +/* 022330 80021730 0017C080 */ sll $t8, $s7, 2 +/* 022334 80021734 10000374 */ b .L80022508 +/* 022338 80021738 24020001 */ li $v0, 1 +.L8002173C: +/* 02233C 8002173C 8CC70000 */ lw $a3, ($a2) +/* 022340 80021740 AFB8007C */ sw $t8, 0x7c($sp) +/* 022344 80021744 00F85821 */ addu $t3, $a3, $t8 +/* 022348 80021748 8D620000 */ lw $v0, ($t3) +/* 02234C 8002174C 27B20124 */ addiu $s2, $sp, 0x124 +/* 022350 80021750 8C4C0064 */ lw $t4, 0x64($v0) +/* 022354 80021754 27B30110 */ addiu $s3, $sp, 0x110 +/* 022358 80021758 15800003 */ bnez $t4, .L80021768 +/* 02235C 8002175C AFAC0154 */ sw $t4, 0x154($sp) +/* 022360 80021760 10000369 */ b .L80022508 +/* 022364 80021764 24020001 */ li $v0, 1 +.L80021768: +/* 022368 80021768 8FAE0154 */ lw $t6, 0x154($sp) +/* 02236C 8002176C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 022370 80021770 8DCF0064 */ lw $t7, 0x64($t6) +/* 022374 80021774 44812800 */ mtc1 $at, $f5 +/* 022378 80021778 AFAF015C */ sw $t7, 0x15c($sp) +/* 02237C 8002177C 8C580040 */ lw $t8, 0x40($v0) +/* 022380 80021780 44802000 */ mtc1 $zero, $f4 +/* 022384 80021784 C706000C */ lwc1 $f6, 0xc($t8) +/* 022388 80021788 0017C880 */ sll $t9, $s7, 2 +/* 02238C 8002178C 46003221 */ cvt.d.s $f8, $f6 +/* 022390 80021790 00000000 */ nop +/* 022394 80021794 46282283 */ div.d $f10, $f4, $f8 +/* 022398 80021798 00F95821 */ addu $t3, $a3, $t9 +/* 02239C 8002179C 00156080 */ sll $t4, $s5, 2 +/* 0223A0 800217A0 016C6821 */ addu $t5, $t3, $t4 +/* 0223A4 800217A4 2AA10003 */ slti $at, $s5, 3 +/* 0223A8 800217A8 8FB8015C */ lw $t8, 0x15c($sp) +/* 0223AC 800217AC 2403FFFF */ li $v1, -1 +/* 0223B0 800217B0 27B400FC */ addiu $s4, $sp, 0xfc +/* 0223B4 800217B4 27BE00BC */ addiu $fp, $sp, 0xbc +/* 0223B8 800217B8 27B600A8 */ addiu $s6, $sp, 0xa8 +/* 0223BC 800217BC 27A90094 */ addiu $t1, $sp, 0x94 +/* 0223C0 800217C0 27B100D0 */ addiu $s1, $sp, 0xd0 +/* 0223C4 800217C4 462051A0 */ cvt.s.d $f6, $f10 +/* 0223C8 800217C8 E7A60090 */ swc1 $f6, 0x90($sp) +/* 0223CC 800217CC 8DAEFFFC */ lw $t6, -4($t5) +/* 0223D0 800217D0 00000000 */ nop +/* 0223D4 800217D4 8DC5003C */ lw $a1, 0x3c($t6) +/* 0223D8 800217D8 14200008 */ bnez $at, .L800217FC +/* 0223DC 800217DC 00000000 */ nop +/* 0223E0 800217E0 80A2001D */ lb $v0, 0x1d($a1) +/* 0223E4 800217E4 26AFFFFF */ addiu $t7, $s5, -1 +/* 0223E8 800217E8 04400004 */ bltz $v0, .L800217FC +/* 0223EC 800217EC 004F082A */ slt $at, $v0, $t7 +/* 0223F0 800217F0 10200002 */ beqz $at, .L800217FC +/* 0223F4 800217F4 00000000 */ nop +/* 0223F8 800217F8 00401825 */ move $v1, $v0 +.L800217FC: +/* 0223FC 800217FC 87100026 */ lh $s0, 0x26($t8) +/* 022400 80021800 AFA30138 */ sw $v1, 0x138($sp) +/* 022404 80021804 2610FFFF */ addiu $s0, $s0, -1 +.L80021808: +/* 022408 80021808 2401FFFF */ li $at, -1 +/* 02240C 8002180C 1601006B */ bne $s0, $at, .L800219BC +/* 022410 80021810 0215082A */ slt $at, $s0, $s5 +/* 022414 80021814 8FB90138 */ lw $t9, 0x138($sp) +/* 022418 80021818 02F55821 */ addu $t3, $s7, $s5 +/* 02241C 8002181C 13200039 */ beqz $t9, .L80021904 +/* 022420 80021820 000B6080 */ sll $t4, $t3, 2 +/* 022424 80021824 8FAB007C */ lw $t3, 0x7c($sp) +/* 022428 80021828 00000000 */ nop +/* 02242C 8002182C 00EB1021 */ addu $v0, $a3, $t3 +/* 022430 80021830 8C4C0000 */ lw $t4, ($v0) +/* 022434 80021834 8C4D0004 */ lw $t5, 4($v0) +/* 022438 80021838 C580000C */ lwc1 $f0, 0xc($t4) +/* 02243C 8002183C C5A4000C */ lwc1 $f4, 0xc($t5) +/* 022440 80021840 00000000 */ nop +/* 022444 80021844 46040201 */ sub.s $f8, $f0, $f4 +/* 022448 80021848 46004280 */ add.s $f10, $f8, $f0 +/* 02244C 8002184C E64A0000 */ swc1 $f10, ($s2) +/* 022450 80021850 8C4E0000 */ lw $t6, ($v0) +/* 022454 80021854 8C4F0004 */ lw $t7, 4($v0) +/* 022458 80021858 C5C20010 */ lwc1 $f2, 0x10($t6) +/* 02245C 8002185C C5E60010 */ lwc1 $f6, 0x10($t7) +/* 022460 80021860 00000000 */ nop +/* 022464 80021864 46061101 */ sub.s $f4, $f2, $f6 +/* 022468 80021868 46022200 */ add.s $f8, $f4, $f2 +/* 02246C 8002186C E6680000 */ swc1 $f8, ($s3) +/* 022470 80021870 8C580000 */ lw $t8, ($v0) +/* 022474 80021874 8C590004 */ lw $t9, 4($v0) +/* 022478 80021878 C70C0014 */ lwc1 $f12, 0x14($t8) +/* 02247C 8002187C C72A0014 */ lwc1 $f10, 0x14($t9) +/* 022480 80021880 00000000 */ nop +/* 022484 80021884 460A6181 */ sub.s $f6, $f12, $f10 +/* 022488 80021888 460C3100 */ add.s $f4, $f6, $f12 +/* 02248C 8002188C E6840000 */ swc1 $f4, ($s4) +/* 022490 80021890 8C4B0000 */ lw $t3, ($v0) +/* 022494 80021894 00000000 */ nop +/* 022498 80021898 856C0000 */ lh $t4, ($t3) +/* 02249C 8002189C 00000000 */ nop +/* 0224A0 800218A0 448C4000 */ mtc1 $t4, $f8 +/* 0224A4 800218A4 00000000 */ nop +/* 0224A8 800218A8 468042A0 */ cvt.s.w $f10, $f8 +/* 0224AC 800218AC E7CA0000 */ swc1 $f10, ($fp) +/* 0224B0 800218B0 8C4D0000 */ lw $t5, ($v0) +/* 0224B4 800218B4 00000000 */ nop +/* 0224B8 800218B8 85AE0002 */ lh $t6, 2($t5) +/* 0224BC 800218BC 00000000 */ nop +/* 0224C0 800218C0 448E3000 */ mtc1 $t6, $f6 +/* 0224C4 800218C4 00000000 */ nop +/* 0224C8 800218C8 46803120 */ cvt.s.w $f4, $f6 +/* 0224CC 800218CC E6C40000 */ swc1 $f4, ($s6) +/* 0224D0 800218D0 8C4F0000 */ lw $t7, ($v0) +/* 0224D4 800218D4 00000000 */ nop +/* 0224D8 800218D8 85F80004 */ lh $t8, 4($t7) +/* 0224DC 800218DC 00000000 */ nop +/* 0224E0 800218E0 44984000 */ mtc1 $t8, $f8 +/* 0224E4 800218E4 00000000 */ nop +/* 0224E8 800218E8 468042A0 */ cvt.s.w $f10, $f8 +/* 0224EC 800218EC E52A0000 */ swc1 $f10, ($t1) +/* 0224F0 800218F0 8C590000 */ lw $t9, ($v0) +/* 0224F4 800218F4 00000000 */ nop +/* 0224F8 800218F8 C7260008 */ lwc1 $f6, 8($t9) +/* 0224FC 800218FC 100000F5 */ b .L80021CD4 +/* 022500 80021900 E6260000 */ swc1 $f6, ($s1) +.L80021904: +/* 022504 80021904 00EC1021 */ addu $v0, $a3, $t4 +/* 022508 80021908 8C4DFFFC */ lw $t5, -4($v0) +/* 02250C 8002190C 00000000 */ nop +/* 022510 80021910 C5A4000C */ lwc1 $f4, 0xc($t5) +/* 022514 80021914 00000000 */ nop +/* 022518 80021918 E6440000 */ swc1 $f4, ($s2) +/* 02251C 8002191C 8C4EFFFC */ lw $t6, -4($v0) +/* 022520 80021920 00000000 */ nop +/* 022524 80021924 C5C80010 */ lwc1 $f8, 0x10($t6) +/* 022528 80021928 00000000 */ nop +/* 02252C 8002192C E6680000 */ swc1 $f8, ($s3) +/* 022530 80021930 8C4FFFFC */ lw $t7, -4($v0) +/* 022534 80021934 00000000 */ nop +/* 022538 80021938 C5EA0014 */ lwc1 $f10, 0x14($t7) +/* 02253C 8002193C 00000000 */ nop +/* 022540 80021940 E68A0000 */ swc1 $f10, ($s4) +/* 022544 80021944 8C58FFFC */ lw $t8, -4($v0) +/* 022548 80021948 00000000 */ nop +/* 02254C 8002194C 87190000 */ lh $t9, ($t8) +/* 022550 80021950 00000000 */ nop +/* 022554 80021954 44993000 */ mtc1 $t9, $f6 +/* 022558 80021958 00000000 */ nop +/* 02255C 8002195C 46803120 */ cvt.s.w $f4, $f6 +/* 022560 80021960 E7C40000 */ swc1 $f4, ($fp) +/* 022564 80021964 8C4BFFFC */ lw $t3, -4($v0) +/* 022568 80021968 00000000 */ nop +/* 02256C 8002196C 856C0002 */ lh $t4, 2($t3) +/* 022570 80021970 00000000 */ nop +/* 022574 80021974 448C4000 */ mtc1 $t4, $f8 +/* 022578 80021978 00000000 */ nop +/* 02257C 8002197C 468042A0 */ cvt.s.w $f10, $f8 +/* 022580 80021980 E6CA0000 */ swc1 $f10, ($s6) +/* 022584 80021984 8C4DFFFC */ lw $t5, -4($v0) +/* 022588 80021988 00000000 */ nop +/* 02258C 8002198C 85AE0004 */ lh $t6, 4($t5) +/* 022590 80021990 00000000 */ nop +/* 022594 80021994 448E3000 */ mtc1 $t6, $f6 +/* 022598 80021998 00000000 */ nop +/* 02259C 8002199C 46803120 */ cvt.s.w $f4, $f6 +/* 0225A0 800219A0 E5240000 */ swc1 $f4, ($t1) +/* 0225A4 800219A4 8C4FFFFC */ lw $t7, -4($v0) +/* 0225A8 800219A8 00000000 */ nop +/* 0225AC 800219AC C5E80008 */ lwc1 $f8, 8($t7) +/* 0225B0 800219B0 100000C8 */ b .L80021CD4 +/* 0225B4 800219B4 E6280000 */ swc1 $f8, ($s1) +/* 0225B8 800219B8 0215082A */ slt $at, $s0, $s5 +.L800219BC: +/* 0225BC 800219BC 14200082 */ bnez $at, .L80021BC8 +/* 0225C0 800219C0 02173021 */ addu $a2, $s0, $s7 +/* 0225C4 800219C4 8FB80138 */ lw $t8, 0x138($sp) +/* 0225C8 800219C8 2401FFFF */ li $at, -1 +/* 0225CC 800219CC 1701004B */ bne $t8, $at, .L80021AFC +/* 0225D0 800219D0 02B71021 */ addu $v0, $s5, $s7 +/* 0225D4 800219D4 0002C880 */ sll $t9, $v0, 2 +/* 0225D8 800219D8 00F95821 */ addu $t3, $a3, $t9 +/* 0225DC 800219DC 8D6CFFFC */ lw $t4, -4($t3) +/* 0225E0 800219E0 00023080 */ sll $a2, $v0, 2 +/* 0225E4 800219E4 8D85003C */ lw $a1, 0x3c($t4) +/* 0225E8 800219E8 24010001 */ li $at, 1 +/* 0225EC 800219EC 80AD0022 */ lb $t5, 0x22($a1) +/* 0225F0 800219F0 26B0FFFF */ addiu $s0, $s5, -1 +/* 0225F4 800219F4 15A10010 */ bne $t5, $at, .L80021A38 +/* 0225F8 800219F8 24C6FFFC */ addiu $a2, $a2, -4 +/* 0225FC 800219FC 8FAE015C */ lw $t6, 0x15c($sp) +/* 022600 80021A00 00000000 */ nop +/* 022604 80021A04 81C40030 */ lb $a0, 0x30($t6) +/* 022608 80021A08 AFA9005C */ sw $t1, 0x5c($sp) +/* 02260C 80021A0C 0C01997A */ jal set_active_camera +/* 022610 80021A10 AFA6004C */ sw $a2, 0x4c($sp) +/* 022614 80021A14 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 022618 80021A18 00000000 */ nop +/* 02261C 80021A1C 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 +/* 022620 80021A20 8CE7AE74 */ lw $a3, %lo(D_8011AE74)($a3) +/* 022624 80021A24 8FA6004C */ lw $a2, 0x4c($sp) +/* 022628 80021A28 8FA9005C */ lw $t1, 0x5c($sp) +/* 02262C 80021A2C 00401825 */ move $v1, $v0 +/* 022630 80021A30 10000004 */ b .L80021A44 +/* 022634 80021A34 00E62021 */ addu $a0, $a3, $a2 +.L80021A38: +/* 022638 80021A38 00E62021 */ addu $a0, $a3, $a2 +/* 02263C 80021A3C 8C830000 */ lw $v1, ($a0) +/* 022640 80021A40 00000000 */ nop +.L80021A44: +/* 022644 80021A44 8C8FFFFC */ lw $t7, -4($a0) +/* 022648 80021A48 C460000C */ lwc1 $f0, 0xc($v1) +/* 02264C 80021A4C C5EA000C */ lwc1 $f10, 0xc($t7) +/* 022650 80021A50 00000000 */ nop +/* 022654 80021A54 460A0181 */ sub.s $f6, $f0, $f10 +/* 022658 80021A58 46003100 */ add.s $f4, $f6, $f0 +/* 02265C 80021A5C E6440000 */ swc1 $f4, ($s2) +/* 022660 80021A60 8C98FFFC */ lw $t8, -4($a0) +/* 022664 80021A64 C4620010 */ lwc1 $f2, 0x10($v1) +/* 022668 80021A68 C7080010 */ lwc1 $f8, 0x10($t8) +/* 02266C 80021A6C 00000000 */ nop +/* 022670 80021A70 46081281 */ sub.s $f10, $f2, $f8 +/* 022674 80021A74 46025180 */ add.s $f6, $f10, $f2 +/* 022678 80021A78 E6660000 */ swc1 $f6, ($s3) +/* 02267C 80021A7C 8C99FFFC */ lw $t9, -4($a0) +/* 022680 80021A80 C46C0014 */ lwc1 $f12, 0x14($v1) +/* 022684 80021A84 C7240014 */ lwc1 $f4, 0x14($t9) +/* 022688 80021A88 00000000 */ nop +/* 02268C 80021A8C 46046201 */ sub.s $f8, $f12, $f4 +/* 022690 80021A90 460C4280 */ add.s $f10, $f8, $f12 +/* 022694 80021A94 E68A0000 */ swc1 $f10, ($s4) +/* 022698 80021A98 846B0002 */ lh $t3, 2($v1) +/* 02269C 80021A9C 00000000 */ nop +/* 0226A0 80021AA0 448B3000 */ mtc1 $t3, $f6 +/* 0226A4 80021AA4 00000000 */ nop +/* 0226A8 80021AA8 46803120 */ cvt.s.w $f4, $f6 +/* 0226AC 80021AAC E6C40000 */ swc1 $f4, ($s6) +/* 0226B0 80021AB0 846C0004 */ lh $t4, 4($v1) +/* 0226B4 80021AB4 00000000 */ nop +/* 0226B8 80021AB8 448C4000 */ mtc1 $t4, $f8 +/* 0226BC 80021ABC 00000000 */ nop +/* 0226C0 80021AC0 468042A0 */ cvt.s.w $f10, $f8 +/* 0226C4 80021AC4 E52A0000 */ swc1 $f10, ($t1) +/* 0226C8 80021AC8 8C830000 */ lw $v1, ($a0) +/* 0226CC 80021ACC 00000000 */ nop +/* 0226D0 80021AD0 846D0000 */ lh $t5, ($v1) +/* 0226D4 80021AD4 00000000 */ nop +/* 0226D8 80021AD8 448D3000 */ mtc1 $t5, $f6 +/* 0226DC 80021ADC 00000000 */ nop +/* 0226E0 80021AE0 46803120 */ cvt.s.w $f4, $f6 +/* 0226E4 80021AE4 E7C40000 */ swc1 $f4, ($fp) +/* 0226E8 80021AE8 8C8E0000 */ lw $t6, ($a0) +/* 0226EC 80021AEC 00000000 */ nop +/* 0226F0 80021AF0 C5C80008 */ lwc1 $f8, 8($t6) +/* 0226F4 80021AF4 10000077 */ b .L80021CD4 +/* 0226F8 80021AF8 E6280000 */ swc1 $f8, ($s1) +.L80021AFC: +/* 0226FC 80021AFC 8FAF0138 */ lw $t7, 0x138($sp) +/* 022700 80021B00 00000000 */ nop +/* 022704 80021B04 02EFC021 */ addu $t8, $s7, $t7 +/* 022708 80021B08 0310C821 */ addu $t9, $t8, $s0 +/* 02270C 80021B0C 03355823 */ subu $t3, $t9, $s5 +/* 022710 80021B10 000B6080 */ sll $t4, $t3, 2 +/* 022714 80021B14 00EC1021 */ addu $v0, $a3, $t4 +/* 022718 80021B18 8C4D0000 */ lw $t5, ($v0) +/* 02271C 80021B1C 00000000 */ nop +/* 022720 80021B20 C5AA000C */ lwc1 $f10, 0xc($t5) +/* 022724 80021B24 00000000 */ nop +/* 022728 80021B28 E64A0000 */ swc1 $f10, ($s2) +/* 02272C 80021B2C 8C4E0000 */ lw $t6, ($v0) +/* 022730 80021B30 00000000 */ nop +/* 022734 80021B34 C5C60010 */ lwc1 $f6, 0x10($t6) +/* 022738 80021B38 00000000 */ nop +/* 02273C 80021B3C E6660000 */ swc1 $f6, ($s3) +/* 022740 80021B40 8C4F0000 */ lw $t7, ($v0) +/* 022744 80021B44 00000000 */ nop +/* 022748 80021B48 C5E40014 */ lwc1 $f4, 0x14($t7) +/* 02274C 80021B4C 00000000 */ nop +/* 022750 80021B50 E6840000 */ swc1 $f4, ($s4) +/* 022754 80021B54 8C580000 */ lw $t8, ($v0) +/* 022758 80021B58 00000000 */ nop +/* 02275C 80021B5C 87190000 */ lh $t9, ($t8) +/* 022760 80021B60 00000000 */ nop +/* 022764 80021B64 44994000 */ mtc1 $t9, $f8 +/* 022768 80021B68 00000000 */ nop +/* 02276C 80021B6C 468042A0 */ cvt.s.w $f10, $f8 +/* 022770 80021B70 E7CA0000 */ swc1 $f10, ($fp) +/* 022774 80021B74 8C4B0000 */ lw $t3, ($v0) +/* 022778 80021B78 00000000 */ nop +/* 02277C 80021B7C 856C0002 */ lh $t4, 2($t3) +/* 022780 80021B80 00000000 */ nop +/* 022784 80021B84 448C3000 */ mtc1 $t4, $f6 +/* 022788 80021B88 00000000 */ nop +/* 02278C 80021B8C 46803120 */ cvt.s.w $f4, $f6 +/* 022790 80021B90 E6C40000 */ swc1 $f4, ($s6) +/* 022794 80021B94 8C4D0000 */ lw $t5, ($v0) +/* 022798 80021B98 00000000 */ nop +/* 02279C 80021B9C 85AE0004 */ lh $t6, 4($t5) +/* 0227A0 80021BA0 00000000 */ nop +/* 0227A4 80021BA4 448E4000 */ mtc1 $t6, $f8 +/* 0227A8 80021BA8 00000000 */ nop +/* 0227AC 80021BAC 468042A0 */ cvt.s.w $f10, $f8 +/* 0227B0 80021BB0 E52A0000 */ swc1 $f10, ($t1) +/* 0227B4 80021BB4 8C4F0000 */ lw $t7, ($v0) +/* 0227B8 80021BB8 00000000 */ nop +/* 0227BC 80021BBC C5E60008 */ lwc1 $f6, 8($t7) +/* 0227C0 80021BC0 10000044 */ b .L80021CD4 +/* 0227C4 80021BC4 E6260000 */ swc1 $f6, ($s1) +.L80021BC8: +/* 0227C8 80021BC8 0006C080 */ sll $t8, $a2, 2 +/* 0227CC 80021BCC 00F82021 */ addu $a0, $a3, $t8 +/* 0227D0 80021BD0 8C820000 */ lw $v0, ($a0) +/* 0227D4 80021BD4 24010001 */ li $at, 1 +/* 0227D8 80021BD8 8C45003C */ lw $a1, 0x3c($v0) +/* 0227DC 80021BDC 8FAB015C */ lw $t3, 0x15c($sp) +/* 0227E0 80021BE0 80B90022 */ lb $t9, 0x22($a1) +/* 0227E4 80021BE4 00401825 */ move $v1, $v0 +/* 0227E8 80021BE8 17210010 */ bne $t9, $at, .L80021C2C +/* 0227EC 80021BEC 00000000 */ nop +/* 0227F0 80021BF0 81640030 */ lb $a0, 0x30($t3) +/* 0227F4 80021BF4 AFA9005C */ sw $t1, 0x5c($sp) +/* 0227F8 80021BF8 AFB80074 */ sw $t8, 0x74($sp) +/* 0227FC 80021BFC 0C01997A */ jal set_active_camera +/* 022800 80021C00 AFA50150 */ sw $a1, 0x150($sp) +/* 022804 80021C04 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 022808 80021C08 00000000 */ nop +/* 02280C 80021C0C 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 +/* 022810 80021C10 8CE7AE74 */ lw $a3, %lo(D_8011AE74)($a3) +/* 022814 80021C14 8FA60074 */ lw $a2, 0x74($sp) +/* 022818 80021C18 8FA50150 */ lw $a1, 0x150($sp) +/* 02281C 80021C1C 8FA9005C */ lw $t1, 0x5c($sp) +/* 022820 80021C20 00401825 */ move $v1, $v0 +/* 022824 80021C24 10000001 */ b .L80021C2C +/* 022828 80021C28 00E62021 */ addu $a0, $a3, $a2 +.L80021C2C: +/* 02282C 80021C2C C464000C */ lwc1 $f4, 0xc($v1) +/* 022830 80021C30 24010001 */ li $at, 1 +/* 022834 80021C34 E6440000 */ swc1 $f4, ($s2) +/* 022838 80021C38 C4680010 */ lwc1 $f8, 0x10($v1) +/* 02283C 80021C3C 00000000 */ nop +/* 022840 80021C40 E6680000 */ swc1 $f8, ($s3) +/* 022844 80021C44 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 022848 80021C48 00000000 */ nop +/* 02284C 80021C4C E68A0000 */ swc1 $f10, ($s4) +/* 022850 80021C50 846C0002 */ lh $t4, 2($v1) +/* 022854 80021C54 00000000 */ nop +/* 022858 80021C58 448C3000 */ mtc1 $t4, $f6 +/* 02285C 80021C5C 00000000 */ nop +/* 022860 80021C60 46803120 */ cvt.s.w $f4, $f6 +/* 022864 80021C64 E6C40000 */ swc1 $f4, ($s6) +/* 022868 80021C68 846D0004 */ lh $t5, 4($v1) +/* 02286C 80021C6C 00000000 */ nop +/* 022870 80021C70 448D4000 */ mtc1 $t5, $f8 +/* 022874 80021C74 00000000 */ nop +/* 022878 80021C78 468042A0 */ cvt.s.w $f10, $f8 +/* 02287C 80021C7C E52A0000 */ swc1 $f10, ($t1) +/* 022880 80021C80 8C830000 */ lw $v1, ($a0) +/* 022884 80021C84 00000000 */ nop +/* 022888 80021C88 846E0000 */ lh $t6, ($v1) +/* 02288C 80021C8C 00000000 */ nop +/* 022890 80021C90 448E3000 */ mtc1 $t6, $f6 +/* 022894 80021C94 00000000 */ nop +/* 022898 80021C98 46803120 */ cvt.s.w $f4, $f6 +/* 02289C 80021C9C E7C40000 */ swc1 $f4, ($fp) +/* 0228A0 80021CA0 80AF0022 */ lb $t7, 0x22($a1) +/* 0228A4 80021CA4 00000000 */ nop +/* 0228A8 80021CA8 15E10005 */ bne $t7, $at, .L80021CC0 +/* 0228AC 80021CAC 00000000 */ nop +/* 0228B0 80021CB0 C6C80000 */ lwc1 $f8, ($s6) +/* 0228B4 80021CB4 00000000 */ nop +/* 0228B8 80021CB8 46004287 */ neg.s $f10, $f8 +/* 0228BC 80021CBC E6CA0000 */ swc1 $f10, ($s6) +.L80021CC0: +/* 0228C0 80021CC0 8C980000 */ lw $t8, ($a0) +/* 0228C4 80021CC4 00000000 */ nop +/* 0228C8 80021CC8 C7060008 */ lwc1 $f6, 8($t8) +/* 0228CC 80021CCC 00000000 */ nop +/* 0228D0 80021CD0 E6260000 */ swc1 $f6, ($s1) +.L80021CD4: +/* 0228D4 80021CD4 26310004 */ addiu $s1, $s1, 4 +/* 0228D8 80021CD8 27B900E4 */ addiu $t9, $sp, 0xe4 +/* 0228DC 80021CDC 0239082B */ sltu $at, $s1, $t9 +/* 0228E0 80021CE0 26520004 */ addiu $s2, $s2, 4 +/* 0228E4 80021CE4 26730004 */ addiu $s3, $s3, 4 +/* 0228E8 80021CE8 26940004 */ addiu $s4, $s4, 4 +/* 0228EC 80021CEC 27DE0004 */ addiu $fp, $fp, 4 +/* 0228F0 80021CF0 26D60004 */ addiu $s6, $s6, 4 +/* 0228F4 80021CF4 25290004 */ addiu $t1, $t1, 4 +/* 0228F8 80021CF8 1420FEC3 */ bnez $at, .L80021808 +/* 0228FC 80021CFC 26100001 */ addiu $s0, $s0, 1 +/* 022900 80021D00 8FAB015C */ lw $t3, 0x15c($sp) +/* 022904 80021D04 27B00124 */ addiu $s0, $sp, 0x124 +/* 022908 80021D08 816C003F */ lb $t4, 0x3f($t3) +/* 02290C 80021D0C C5600000 */ lwc1 $f0, ($t3) +/* 022910 80021D10 15800015 */ bnez $t4, .L80021D68 +/* 022914 80021D14 02002025 */ move $a0, $s0 +/* 022918 80021D18 27B00124 */ addiu $s0, $sp, 0x124 +/* 02291C 80021D1C 44060000 */ mfc1 $a2, $f0 +/* 022920 80021D20 02002025 */ move $a0, $s0 +/* 022924 80021D24 00002825 */ move $a1, $zero +/* 022928 80021D28 0C008950 */ jal catmull_rom_interpolation +/* 02292C 80021D2C E7A000EC */ swc1 $f0, 0xec($sp) +/* 022930 80021D30 27B10110 */ addiu $s1, $sp, 0x110 +/* 022934 80021D34 8FA600EC */ lw $a2, 0xec($sp) +/* 022938 80021D38 02202025 */ move $a0, $s1 +/* 02293C 80021D3C 00002825 */ move $a1, $zero +/* 022940 80021D40 0C008950 */ jal catmull_rom_interpolation +/* 022944 80021D44 E7A000F8 */ swc1 $f0, 0xf8($sp) +/* 022948 80021D48 27B200FC */ addiu $s2, $sp, 0xfc +/* 02294C 80021D4C 8FA600EC */ lw $a2, 0xec($sp) +/* 022950 80021D50 02402025 */ move $a0, $s2 +/* 022954 80021D54 00002825 */ move $a1, $zero +/* 022958 80021D58 0C008950 */ jal catmull_rom_interpolation +/* 02295C 80021D5C E7A000F4 */ swc1 $f0, 0xf4($sp) +/* 022960 80021D60 10000012 */ b .L80021DAC +/* 022964 80021D64 E7A000F0 */ swc1 $f0, 0xf0($sp) +.L80021D68: +/* 022968 80021D68 44060000 */ mfc1 $a2, $f0 +/* 02296C 80021D6C 00002825 */ move $a1, $zero +/* 022970 80021D70 0C008A22 */ jal lerp +/* 022974 80021D74 E7A000EC */ swc1 $f0, 0xec($sp) +/* 022978 80021D78 27B10110 */ addiu $s1, $sp, 0x110 +/* 02297C 80021D7C 8FA600EC */ lw $a2, 0xec($sp) +/* 022980 80021D80 02202025 */ move $a0, $s1 +/* 022984 80021D84 00002825 */ move $a1, $zero +/* 022988 80021D88 0C008A22 */ jal lerp +/* 02298C 80021D8C E7A000F8 */ swc1 $f0, 0xf8($sp) +/* 022990 80021D90 27B200FC */ addiu $s2, $sp, 0xfc +/* 022994 80021D94 8FA600EC */ lw $a2, 0xec($sp) +/* 022998 80021D98 02402025 */ move $a0, $s2 +/* 02299C 80021D9C 00002825 */ move $a1, $zero +/* 0229A0 80021DA0 0C008A22 */ jal lerp +/* 0229A4 80021DA4 E7A000F4 */ swc1 $f0, 0xf4($sp) +/* 0229A8 80021DA8 E7A000F0 */ swc1 $f0, 0xf0($sp) +.L80021DAC: +/* 0229AC 80021DAC 8FA40154 */ lw $a0, 0x154($sp) +/* 0229B0 80021DB0 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 0229B4 80021DB4 C488000C */ lwc1 $f8, 0xc($a0) +/* 0229B8 80021DB8 C7A600F4 */ lwc1 $f6, 0xf4($sp) +/* 0229BC 80021DBC 46082281 */ sub.s $f10, $f4, $f8 +/* 0229C0 80021DC0 E7AA00F8 */ swc1 $f10, 0xf8($sp) +/* 0229C4 80021DC4 C4840010 */ lwc1 $f4, 0x10($a0) +/* 0229C8 80021DC8 44055000 */ mfc1 $a1, $f10 +/* 0229CC 80021DCC 46043201 */ sub.s $f8, $f6, $f4 +/* 0229D0 80021DD0 C7A600F0 */ lwc1 $f6, 0xf0($sp) +/* 0229D4 80021DD4 E7A800F4 */ swc1 $f8, 0xf4($sp) +/* 0229D8 80021DD8 C4840014 */ lwc1 $f4, 0x14($a0) +/* 0229DC 80021DDC 44064000 */ mfc1 $a2, $f8 +/* 0229E0 80021DE0 46043181 */ sub.s $f6, $f6, $f4 +/* 0229E4 80021DE4 44073000 */ mfc1 $a3, $f6 +/* 0229E8 80021DE8 0C00455C */ jal move_object +/* 0229EC 80021DEC E7A600F0 */ swc1 $f6, 0xf0($sp) +/* 0229F0 80021DF0 8FA600EC */ lw $a2, 0xec($sp) +/* 0229F4 80021DF4 27A400D0 */ addiu $a0, $sp, 0xd0 +/* 0229F8 80021DF8 0C008950 */ jal catmull_rom_interpolation +/* 0229FC 80021DFC 00002825 */ move $a1, $zero +/* 022A00 80021E00 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 022A04 80021E04 8FAE0154 */ lw $t6, 0x154($sp) +/* 022A08 80021E08 46040282 */ mul.s $f10, $f0, $f4 +/* 022A0C 80021E0C 8DCF0040 */ lw $t7, 0x40($t6) +/* 022A10 80021E10 24010001 */ li $at, 1 +/* 022A14 80021E14 C5E8000C */ lwc1 $f8, 0xc($t7) +/* 022A18 80021E18 00000000 */ nop +/* 022A1C 80021E1C 46085182 */ mul.s $f6, $f10, $f8 +/* 022A20 80021E20 E5C60008 */ swc1 $f6, 8($t6) +/* 022A24 80021E24 8FB8015C */ lw $t8, 0x15c($sp) +/* 022A28 80021E28 00000000 */ nop +/* 022A2C 80021E2C 9302002E */ lbu $v0, 0x2e($t8) +/* 022A30 80021E30 00000000 */ nop +/* 022A34 80021E34 104101B3 */ beq $v0, $at, .L80022504 +/* 022A38 80021E38 24010002 */ li $at, 2 +/* 022A3C 80021E3C 10410005 */ beq $v0, $at, .L80021E54 +/* 022A40 80021E40 24010003 */ li $at, 3 +/* 022A44 80021E44 10410056 */ beq $v0, $at, .L80021FA0 +/* 022A48 80021E48 3C038012 */ lui $v1, %hi(D_8011AE78) # $v1, 0x8012 +/* 022A4C 80021E4C 100000A0 */ b .L800220D0 +/* 022A50 80021E50 24050001 */ li $a1, 1 +.L80021E54: +/* 022A54 80021E54 8FB9015C */ lw $t9, 0x15c($sp) +/* 022A58 80021E58 8FA600EC */ lw $a2, 0xec($sp) +/* 022A5C 80021E5C 832B003F */ lb $t3, 0x3f($t9) +/* 022A60 80021E60 02002025 */ move $a0, $s0 +/* 022A64 80021E64 15600012 */ bnez $t3, .L80021EB0 +/* 022A68 80021E68 00002825 */ move $a1, $zero +/* 022A6C 80021E6C 8FA600EC */ lw $a2, 0xec($sp) +/* 022A70 80021E70 02002025 */ move $a0, $s0 +/* 022A74 80021E74 00002825 */ move $a1, $zero +/* 022A78 80021E78 0C00898F */ jal cubic_spline_interpolation +/* 022A7C 80021E7C 27A700F8 */ addiu $a3, $sp, 0xf8 +/* 022A80 80021E80 8FA600EC */ lw $a2, 0xec($sp) +/* 022A84 80021E84 02202025 */ move $a0, $s1 +/* 022A88 80021E88 00002825 */ move $a1, $zero +/* 022A8C 80021E8C 0C00898F */ jal cubic_spline_interpolation +/* 022A90 80021E90 27A700F4 */ addiu $a3, $sp, 0xf4 +/* 022A94 80021E94 8FA600EC */ lw $a2, 0xec($sp) +/* 022A98 80021E98 02402025 */ move $a0, $s2 +/* 022A9C 80021E9C 00002825 */ move $a1, $zero +/* 022AA0 80021EA0 0C00898F */ jal cubic_spline_interpolation +/* 022AA4 80021EA4 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 022AA8 80021EA8 1000000E */ b .L80021EE4 +/* 022AAC 80021EAC C7B400F8 */ lwc1 $f20, 0xf8($sp) +.L80021EB0: +/* 022AB0 80021EB0 0C008A2C */ jal func_800228B0 +/* 022AB4 80021EB4 27A700F8 */ addiu $a3, $sp, 0xf8 +/* 022AB8 80021EB8 8FA600EC */ lw $a2, 0xec($sp) +/* 022ABC 80021EBC 02202025 */ move $a0, $s1 +/* 022AC0 80021EC0 00002825 */ move $a1, $zero +/* 022AC4 80021EC4 0C008A2C */ jal func_800228B0 +/* 022AC8 80021EC8 27A700F4 */ addiu $a3, $sp, 0xf4 +/* 022ACC 80021ECC 8FA600EC */ lw $a2, 0xec($sp) +/* 022AD0 80021ED0 02402025 */ move $a0, $s2 +/* 022AD4 80021ED4 00002825 */ move $a1, $zero +/* 022AD8 80021ED8 0C008A2C */ jal func_800228B0 +/* 022ADC 80021EDC 27A700F0 */ addiu $a3, $sp, 0xf0 +/* 022AE0 80021EE0 C7B400F8 */ lwc1 $f20, 0xf8($sp) +.L80021EE4: +/* 022AE4 80021EE4 C7A200F4 */ lwc1 $f2, 0xf4($sp) +/* 022AE8 80021EE8 4614A102 */ mul.s $f4, $f20, $f20 +/* 022AEC 80021EEC C7AE00F0 */ lwc1 $f14, 0xf0($sp) +/* 022AF0 80021EF0 46021282 */ mul.s $f10, $f2, $f2 +/* 022AF4 80021EF4 00000000 */ nop +/* 022AF8 80021EF8 460E7182 */ mul.s $f6, $f14, $f14 +/* 022AFC 80021EFC 460A2200 */ add.s $f8, $f4, $f10 +/* 022B00 80021F00 0C0326B4 */ jal sqrtf +/* 022B04 80021F04 46064300 */ add.s $f12, $f8, $f6 +/* 022B08 80021F08 44808000 */ mtc1 $zero, $f16 +/* 022B0C 80021F0C 3C014059 */ li $at, 0x40590000 # 3.390625 +/* 022B10 80021F10 46100032 */ c.eq.s $f0, $f16 +/* 022B14 80021F14 00000000 */ nop +/* 022B18 80021F18 45010011 */ bc1t .L80021F60 +/* 022B1C 80021F1C 00000000 */ nop +/* 022B20 80021F20 44812800 */ mtc1 $at, $f5 +/* 022B24 80021F24 44802000 */ mtc1 $zero, $f4 +/* 022B28 80021F28 460002A1 */ cvt.d.s $f10, $f0 +/* 022B2C 80021F2C 00000000 */ nop +/* 022B30 80021F30 462A2203 */ div.d $f8, $f4, $f10 +/* 022B34 80021F34 C7B400F8 */ lwc1 $f20, 0xf8($sp) +/* 022B38 80021F38 C7A200F4 */ lwc1 $f2, 0xf4($sp) +/* 022B3C 80021F3C C7AE00F0 */ lwc1 $f14, 0xf0($sp) +/* 022B40 80021F40 46204320 */ cvt.s.d $f12, $f8 +/* 022B44 80021F44 460CA502 */ mul.s $f20, $f20, $f12 +/* 022B48 80021F48 00000000 */ nop +/* 022B4C 80021F4C 460C1082 */ mul.s $f2, $f2, $f12 +/* 022B50 80021F50 E7B400F8 */ swc1 $f20, 0xf8($sp) +/* 022B54 80021F54 460C7382 */ mul.s $f14, $f14, $f12 +/* 022B58 80021F58 E7A200F4 */ swc1 $f2, 0xf4($sp) +/* 022B5C 80021F5C E7AE00F0 */ swc1 $f14, 0xf0($sp) +.L80021F60: +/* 022B60 80021F60 C7AE00F0 */ lwc1 $f14, 0xf0($sp) +/* 022B64 80021F64 C7AC00F8 */ lwc1 $f12, 0xf8($sp) +/* 022B68 80021F68 0C01C1D4 */ jal arctan2_f +/* 022B6C 80021F6C 00000000 */ nop +/* 022B70 80021F70 24018000 */ li $at, -32768 +/* 022B74 80021F74 8FAD0154 */ lw $t5, 0x154($sp) +/* 022B78 80021F78 00416021 */ addu $t4, $v0, $at +/* 022B7C 80021F7C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 022B80 80021F80 A5AC0000 */ sh $t4, ($t5) +/* 022B84 80021F84 C7AC00F4 */ lwc1 $f12, 0xf4($sp) +/* 022B88 80021F88 44817000 */ mtc1 $at, $f14 +/* 022B8C 80021F8C 0C01C1D4 */ jal arctan2_f +/* 022B90 80021F90 00000000 */ nop +/* 022B94 80021F94 8FAF0154 */ lw $t7, 0x154($sp) +/* 022B98 80021F98 1000015A */ b .L80022504 +/* 022B9C 80021F9C A5E20002 */ sh $v0, 2($t7) +.L80021FA0: +/* 022BA0 80021FA0 8463AE78 */ lh $v1, %lo(D_8011AE78)($v1) +/* 022BA4 80021FA4 00002825 */ move $a1, $zero +/* 022BA8 80021FA8 18600014 */ blez $v1, .L80021FFC +/* 022BAC 80021FAC 3C078012 */ lui $a3, %hi(D_8011AE74) # $a3, 0x8012 +/* 022BB0 80021FB0 8CE7AE74 */ lw $a3, %lo(D_8011AE74)($a3) +/* 022BB4 80021FB4 8FAE015C */ lw $t6, 0x15c($sp) +/* 022BB8 80021FB8 8CF80000 */ lw $t8, ($a3) +/* 022BBC 80021FBC 81C2003E */ lb $v0, 0x3e($t6) +/* 022BC0 80021FC0 8F19007C */ lw $t9, 0x7c($t8) +/* 022BC4 80021FC4 00000000 */ nop +/* 022BC8 80021FC8 1059000C */ beq $v0, $t9, .L80021FFC +/* 022BCC 80021FCC 00000000 */ nop +.L80021FD0: +/* 022BD0 80021FD0 24A50001 */ addiu $a1, $a1, 1 +/* 022BD4 80021FD4 00A3082A */ slt $at, $a1, $v1 +/* 022BD8 80021FD8 10200008 */ beqz $at, .L80021FFC +/* 022BDC 80021FDC 00055880 */ sll $t3, $a1, 2 +/* 022BE0 80021FE0 00EB6021 */ addu $t4, $a3, $t3 +/* 022BE4 80021FE4 8D8D0000 */ lw $t5, ($t4) +/* 022BE8 80021FE8 00000000 */ nop +/* 022BEC 80021FEC 8DAF007C */ lw $t7, 0x7c($t5) +/* 022BF0 80021FF0 00000000 */ nop +/* 022BF4 80021FF4 144FFFF6 */ bne $v0, $t7, .L80021FD0 +/* 022BF8 80021FF8 00000000 */ nop +.L80021FFC: +/* 022BFC 80021FFC 10A30141 */ beq $a1, $v1, .L80022504 +/* 022C00 80022000 3C0E8012 */ lui $t6, %hi(D_8011AE74) # $t6, 0x8012 +/* 022C04 80022004 8DCEAE74 */ lw $t6, %lo(D_8011AE74)($t6) +/* 022C08 80022008 0005C080 */ sll $t8, $a1, 2 +/* 022C0C 8002200C 01D8C821 */ addu $t9, $t6, $t8 +/* 022C10 80022010 8F2B0000 */ lw $t3, ($t9) +/* 022C14 80022014 8FAC0154 */ lw $t4, 0x154($sp) +/* 022C18 80022018 8D630064 */ lw $v1, 0x64($t3) +/* 022C1C 8002201C 00000000 */ nop +/* 022C20 80022020 10600139 */ beqz $v1, .L80022508 +/* 022C24 80022024 00001025 */ move $v0, $zero +/* 022C28 80022028 C466000C */ lwc1 $f6, 0xc($v1) +/* 022C2C 8002202C C584000C */ lwc1 $f4, 0xc($t4) +/* 022C30 80022030 00000000 */ nop +/* 022C34 80022034 46043281 */ sub.s $f10, $f6, $f4 +/* 022C38 80022038 E7AA00F8 */ swc1 $f10, 0xf8($sp) +/* 022C3C 8002203C C5860010 */ lwc1 $f6, 0x10($t4) +/* 022C40 80022040 C4680010 */ lwc1 $f8, 0x10($v1) +/* 022C44 80022044 00000000 */ nop +/* 022C48 80022048 46064101 */ sub.s $f4, $f8, $f6 +/* 022C4C 8002204C E7A400F4 */ swc1 $f4, 0xf4($sp) +/* 022C50 80022050 C5880014 */ lwc1 $f8, 0x14($t4) +/* 022C54 80022054 C46A0014 */ lwc1 $f10, 0x14($v1) +/* 022C58 80022058 C7A400F8 */ lwc1 $f4, 0xf8($sp) +/* 022C5C 8002205C 46085181 */ sub.s $f6, $f10, $f8 +/* 022C60 80022060 C7A800F4 */ lwc1 $f8, 0xf4($sp) +/* 022C64 80022064 46042282 */ mul.s $f10, $f4, $f4 +/* 022C68 80022068 E7A600F0 */ swc1 $f6, 0xf0($sp) +/* 022C6C 8002206C 46084182 */ mul.s $f6, $f8, $f8 +/* 022C70 80022070 C7A800F0 */ lwc1 $f8, 0xf0($sp) +/* 022C74 80022074 46065100 */ add.s $f4, $f10, $f6 +/* 022C78 80022078 46084282 */ mul.s $f10, $f8, $f8 +/* 022C7C 8002207C 0C0326B4 */ jal sqrtf +/* 022C80 80022080 460A2300 */ add.s $f12, $f4, $f10 +/* 022C84 80022084 44808000 */ mtc1 $zero, $f16 +/* 022C88 80022088 C7AE00F0 */ lwc1 $f14, 0xf0($sp) +/* 022C8C 8002208C 4600803C */ c.lt.s $f16, $f0 +/* 022C90 80022090 C7AC00F8 */ lwc1 $f12, 0xf8($sp) +/* 022C94 80022094 4500011B */ bc1f .L80022504 +/* 022C98 80022098 E7A000EC */ swc1 $f0, 0xec($sp) +/* 022C9C 8002209C 0C01C1D4 */ jal arctan2_f +/* 022CA0 800220A0 00000000 */ nop +/* 022CA4 800220A4 8FAF0154 */ lw $t7, 0x154($sp) +/* 022CA8 800220A8 24018000 */ li $at, -32768 +/* 022CAC 800220AC 00416821 */ addu $t5, $v0, $at +/* 022CB0 800220B0 A5ED0000 */ sh $t5, ($t7) +/* 022CB4 800220B4 C7AE00EC */ lwc1 $f14, 0xec($sp) +/* 022CB8 800220B8 C7AC00F4 */ lwc1 $f12, 0xf4($sp) +/* 022CBC 800220BC 0C01C1D4 */ jal arctan2_f +/* 022CC0 800220C0 00000000 */ nop +/* 022CC4 800220C4 8FAE0154 */ lw $t6, 0x154($sp) +/* 022CC8 800220C8 1000010E */ b .L80022504 +/* 022CCC 800220CC A5C20002 */ sh $v0, 2($t6) +.L800220D0: +/* 022CD0 800220D0 3C01C0E0 */ li $at, 0xC0E00000 # -7.000000 +/* 022CD4 800220D4 4481A800 */ mtc1 $at, $f21 +/* 022CD8 800220D8 3C0140E0 */ li $at, 0x40E00000 # 7.000000 +/* 022CDC 800220DC 44819800 */ mtc1 $at, $f19 +/* 022CE0 800220E0 3C0140F0 */ li $at, 0x40F00000 # 7.500000 +/* 022CE4 800220E4 44817800 */ mtc1 $at, $f15 +/* 022CE8 800220E8 4480A000 */ mtc1 $zero, $f20 +/* 022CEC 800220EC 44809000 */ mtc1 $zero, $f18 +/* 022CF0 800220F0 44808000 */ mtc1 $zero, $f16 +/* 022CF4 800220F4 44807000 */ mtc1 $zero, $f14 +/* 022CF8 800220F8 27BE00C0 */ addiu $fp, $sp, 0xc0 +/* 022CFC 800220FC 27B600AC */ addiu $s6, $sp, 0xac +/* 022D00 80022100 27A90098 */ addiu $t1, $sp, 0x98 +/* 022D04 80022104 240A0005 */ li $t2, 5 +/* 022D08 80022108 27A800A8 */ addiu $t0, $sp, 0xa8 +/* 022D0C 8002210C 27A700BC */ addiu $a3, $sp, 0xbc +/* 022D10 80022110 27A600D0 */ addiu $a2, $sp, 0xd0 +.L80022114: +/* 022D14 80022114 C7C60000 */ lwc1 $f6, ($fp) +/* 022D18 80022118 C7C8FFFC */ lwc1 $f8, -4($fp) +/* 022D1C 8002211C 27DE0004 */ addiu $fp, $fp, 4 +/* 022D20 80022120 46083301 */ sub.s $f12, $f6, $f8 +/* 022D24 80022124 28A10005 */ slti $at, $a1, 5 +/* 022D28 80022128 460060A1 */ cvt.d.s $f2, $f12 +/* 022D2C 8002212C 4622903C */ c.lt.d $f18, $f2 +/* 022D30 80022130 46008006 */ mov.s $f0, $f16 +/* 022D34 80022134 45000005 */ bc1f .L8002214C +/* 022D38 80022138 01452023 */ subu $a0, $t2, $a1 +/* 022D3C 8002213C 46008121 */ cvt.d.s $f4, $f16 +/* 022D40 80022140 462E2281 */ sub.d $f10, $f4, $f14 +/* 022D44 80022144 10000008 */ b .L80022168 +/* 022D48 80022148 46205020 */ cvt.s.d $f0, $f10 +.L8002214C: +/* 022D4C 8002214C 4634103C */ c.lt.d $f2, $f20 +/* 022D50 80022150 00000000 */ nop +/* 022D54 80022154 45000004 */ bc1f .L80022168 +/* 022D58 80022158 00000000 */ nop +/* 022D5C 8002215C 460081A1 */ cvt.d.s $f6, $f16 +/* 022D60 80022160 462E3200 */ add.d $f8, $f6, $f14 +/* 022D64 80022164 46204020 */ cvt.s.d $f0, $f8 +.L80022168: +/* 022D68 80022168 10200020 */ beqz $at, .L800221EC +/* 022D6C 8002216C 00A08025 */ move $s0, $a1 +/* 022D70 80022170 30980003 */ andi $t8, $a0, 3 +/* 022D74 80022174 1300000B */ beqz $t8, .L800221A4 +/* 022D78 80022178 03051821 */ addu $v1, $t8, $a1 +/* 022D7C 8002217C 0010C880 */ sll $t9, $s0, 2 +/* 022D80 80022180 27AB00BC */ addiu $t3, $sp, 0xbc +/* 022D84 80022184 032B1021 */ addu $v0, $t9, $t3 +.L80022188: +/* 022D88 80022188 C4440000 */ lwc1 $f4, ($v0) +/* 022D8C 8002218C 26100001 */ addiu $s0, $s0, 1 +/* 022D90 80022190 46002280 */ add.s $f10, $f4, $f0 +/* 022D94 80022194 24420004 */ addiu $v0, $v0, 4 +/* 022D98 80022198 1470FFFB */ bne $v1, $s0, .L80022188 +/* 022D9C 8002219C E44AFFFC */ swc1 $f10, -4($v0) +/* 022DA0 800221A0 120A0011 */ beq $s0, $t2, .L800221E8 +.L800221A4: +/* 022DA4 800221A4 00106080 */ sll $t4, $s0, 2 +/* 022DA8 800221A8 27AD00BC */ addiu $t5, $sp, 0xbc +/* 022DAC 800221AC 018D1021 */ addu $v0, $t4, $t5 +.L800221B0: +/* 022DB0 800221B0 C4460000 */ lwc1 $f6, ($v0) +/* 022DB4 800221B4 C4440004 */ lwc1 $f4, 4($v0) +/* 022DB8 800221B8 46003200 */ add.s $f8, $f6, $f0 +/* 022DBC 800221BC C4460008 */ lwc1 $f6, 8($v0) +/* 022DC0 800221C0 46002280 */ add.s $f10, $f4, $f0 +/* 022DC4 800221C4 C444000C */ lwc1 $f4, 0xc($v0) +/* 022DC8 800221C8 E44A0004 */ swc1 $f10, 4($v0) +/* 022DCC 800221CC E4480000 */ swc1 $f8, ($v0) +/* 022DD0 800221D0 46003200 */ add.s $f8, $f6, $f0 +/* 022DD4 800221D4 24420010 */ addiu $v0, $v0, 0x10 +/* 022DD8 800221D8 46002280 */ add.s $f10, $f4, $f0 +/* 022DDC 800221DC E448FFF8 */ swc1 $f8, -8($v0) +/* 022DE0 800221E0 1446FFF3 */ bne $v0, $a2, .L800221B0 +/* 022DE4 800221E4 E44AFFFC */ swc1 $f10, -4($v0) +.L800221E8: +/* 022DE8 800221E8 00A08025 */ move $s0, $a1 +.L800221EC: +/* 022DEC 800221EC C6C60000 */ lwc1 $f6, ($s6) +/* 022DF0 800221F0 C6C8FFFC */ lwc1 $f8, -4($s6) +/* 022DF4 800221F4 26D60004 */ addiu $s6, $s6, 4 +/* 022DF8 800221F8 46083301 */ sub.s $f12, $f6, $f8 +/* 022DFC 800221FC 28A10005 */ slti $at, $a1, 5 +/* 022E00 80022200 460060A1 */ cvt.d.s $f2, $f12 +/* 022E04 80022204 4622903C */ c.lt.d $f18, $f2 +/* 022E08 80022208 46008006 */ mov.s $f0, $f16 +/* 022E0C 8002220C 45000005 */ bc1f .L80022224 +/* 022E10 80022210 240F0005 */ li $t7, 5 +/* 022E14 80022214 46008121 */ cvt.d.s $f4, $f16 +/* 022E18 80022218 462E2281 */ sub.d $f10, $f4, $f14 +/* 022E1C 8002221C 10000008 */ b .L80022240 +/* 022E20 80022220 46205020 */ cvt.s.d $f0, $f10 +.L80022224: +/* 022E24 80022224 4634103C */ c.lt.d $f2, $f20 +/* 022E28 80022228 00000000 */ nop +/* 022E2C 8002222C 45000004 */ bc1f .L80022240 +/* 022E30 80022230 00000000 */ nop +/* 022E34 80022234 460081A1 */ cvt.d.s $f6, $f16 +/* 022E38 80022238 462E3200 */ add.d $f8, $f6, $f14 +/* 022E3C 8002223C 46204020 */ cvt.s.d $f0, $f8 +.L80022240: +/* 022E40 80022240 10200020 */ beqz $at, .L800222C4 +/* 022E44 80022244 01E52023 */ subu $a0, $t7, $a1 +/* 022E48 80022248 308E0003 */ andi $t6, $a0, 3 +/* 022E4C 8002224C 11C0000B */ beqz $t6, .L8002227C +/* 022E50 80022250 01C51821 */ addu $v1, $t6, $a1 +/* 022E54 80022254 0010C080 */ sll $t8, $s0, 2 +/* 022E58 80022258 27B900A8 */ addiu $t9, $sp, 0xa8 +/* 022E5C 8002225C 03191021 */ addu $v0, $t8, $t9 +.L80022260: +/* 022E60 80022260 C4440000 */ lwc1 $f4, ($v0) +/* 022E64 80022264 26100001 */ addiu $s0, $s0, 1 +/* 022E68 80022268 46002280 */ add.s $f10, $f4, $f0 +/* 022E6C 8002226C 24420004 */ addiu $v0, $v0, 4 +/* 022E70 80022270 1470FFFB */ bne $v1, $s0, .L80022260 +/* 022E74 80022274 E44AFFFC */ swc1 $f10, -4($v0) +/* 022E78 80022278 120A0011 */ beq $s0, $t2, .L800222C0 +.L8002227C: +/* 022E7C 8002227C 00105880 */ sll $t3, $s0, 2 +/* 022E80 80022280 27AC00A8 */ addiu $t4, $sp, 0xa8 +/* 022E84 80022284 016C1021 */ addu $v0, $t3, $t4 +.L80022288: +/* 022E88 80022288 C4460000 */ lwc1 $f6, ($v0) +/* 022E8C 8002228C C4440004 */ lwc1 $f4, 4($v0) +/* 022E90 80022290 46003200 */ add.s $f8, $f6, $f0 +/* 022E94 80022294 C4460008 */ lwc1 $f6, 8($v0) +/* 022E98 80022298 46002280 */ add.s $f10, $f4, $f0 +/* 022E9C 8002229C C444000C */ lwc1 $f4, 0xc($v0) +/* 022EA0 800222A0 E44A0004 */ swc1 $f10, 4($v0) +/* 022EA4 800222A4 E4480000 */ swc1 $f8, ($v0) +/* 022EA8 800222A8 46003200 */ add.s $f8, $f6, $f0 +/* 022EAC 800222AC 24420010 */ addiu $v0, $v0, 0x10 +/* 022EB0 800222B0 46002280 */ add.s $f10, $f4, $f0 +/* 022EB4 800222B4 E448FFF8 */ swc1 $f8, -8($v0) +/* 022EB8 800222B8 1447FFF3 */ bne $v0, $a3, .L80022288 +/* 022EBC 800222BC E44AFFFC */ swc1 $f10, -4($v0) +.L800222C0: +/* 022EC0 800222C0 00A08025 */ move $s0, $a1 +.L800222C4: +/* 022EC4 800222C4 C5260000 */ lwc1 $f6, ($t1) +/* 022EC8 800222C8 C528FFFC */ lwc1 $f8, -4($t1) +/* 022ECC 800222CC 240D0005 */ li $t5, 5 +/* 022ED0 800222D0 46083301 */ sub.s $f12, $f6, $f8 +/* 022ED4 800222D4 01A52023 */ subu $a0, $t5, $a1 +/* 022ED8 800222D8 460060A1 */ cvt.d.s $f2, $f12 +/* 022EDC 800222DC 4622903C */ c.lt.d $f18, $f2 +/* 022EE0 800222E0 46008006 */ mov.s $f0, $f16 +/* 022EE4 800222E4 45000005 */ bc1f .L800222FC +/* 022EE8 800222E8 28A10005 */ slti $at, $a1, 5 +/* 022EEC 800222EC 46008121 */ cvt.d.s $f4, $f16 +/* 022EF0 800222F0 462E2281 */ sub.d $f10, $f4, $f14 +/* 022EF4 800222F4 10000008 */ b .L80022318 +/* 022EF8 800222F8 46205020 */ cvt.s.d $f0, $f10 +.L800222FC: +/* 022EFC 800222FC 4634103C */ c.lt.d $f2, $f20 +/* 022F00 80022300 00000000 */ nop +/* 022F04 80022304 45000004 */ bc1f .L80022318 +/* 022F08 80022308 00000000 */ nop +/* 022F0C 8002230C 460081A1 */ cvt.d.s $f6, $f16 +/* 022F10 80022310 462E3200 */ add.d $f8, $f6, $f14 +/* 022F14 80022314 46204020 */ cvt.s.d $f0, $f8 +.L80022318: +/* 022F18 80022318 1020001E */ beqz $at, .L80022394 +/* 022F1C 8002231C 308F0003 */ andi $t7, $a0, 3 +/* 022F20 80022320 11E0000B */ beqz $t7, .L80022350 +/* 022F24 80022324 01E51821 */ addu $v1, $t7, $a1 +/* 022F28 80022328 00107080 */ sll $t6, $s0, 2 +/* 022F2C 8002232C 27B80094 */ addiu $t8, $sp, 0x94 +/* 022F30 80022330 01D81021 */ addu $v0, $t6, $t8 +.L80022334: +/* 022F34 80022334 C4440000 */ lwc1 $f4, ($v0) +/* 022F38 80022338 26100001 */ addiu $s0, $s0, 1 +/* 022F3C 8002233C 46002280 */ add.s $f10, $f4, $f0 +/* 022F40 80022340 24420004 */ addiu $v0, $v0, 4 +/* 022F44 80022344 1470FFFB */ bne $v1, $s0, .L80022334 +/* 022F48 80022348 E44AFFFC */ swc1 $f10, -4($v0) +/* 022F4C 8002234C 120A0011 */ beq $s0, $t2, .L80022394 +.L80022350: +/* 022F50 80022350 0010C880 */ sll $t9, $s0, 2 +/* 022F54 80022354 27AB0094 */ addiu $t3, $sp, 0x94 +/* 022F58 80022358 032B1021 */ addu $v0, $t9, $t3 +.L8002235C: +/* 022F5C 8002235C C4460000 */ lwc1 $f6, ($v0) +/* 022F60 80022360 C4440004 */ lwc1 $f4, 4($v0) +/* 022F64 80022364 46003200 */ add.s $f8, $f6, $f0 +/* 022F68 80022368 C4460008 */ lwc1 $f6, 8($v0) +/* 022F6C 8002236C 46002280 */ add.s $f10, $f4, $f0 +/* 022F70 80022370 C444000C */ lwc1 $f4, 0xc($v0) +/* 022F74 80022374 E44A0004 */ swc1 $f10, 4($v0) +/* 022F78 80022378 E4480000 */ swc1 $f8, ($v0) +/* 022F7C 8002237C 46003200 */ add.s $f8, $f6, $f0 +/* 022F80 80022380 24420010 */ addiu $v0, $v0, 0x10 +/* 022F84 80022384 46002280 */ add.s $f10, $f4, $f0 +/* 022F88 80022388 E448FFF8 */ swc1 $f8, -8($v0) +/* 022F8C 8002238C 1448FFF3 */ bne $v0, $t0, .L8002235C +/* 022F90 80022390 E44AFFFC */ swc1 $f10, -4($v0) +.L80022394: +/* 022F94 80022394 24A50001 */ addiu $a1, $a1, 1 +/* 022F98 80022398 14AAFF5E */ bne $a1, $t2, .L80022114 +/* 022F9C 8002239C 25290004 */ addiu $t1, $t1, 4 +/* 022FA0 800223A0 8FAC015C */ lw $t4, 0x15c($sp) +/* 022FA4 800223A4 8FA600EC */ lw $a2, 0xec($sp) +/* 022FA8 800223A8 818D003F */ lb $t5, 0x3f($t4) +/* 022FAC 800223AC 00002825 */ move $a1, $zero +/* 022FB0 800223B0 15A0002B */ bnez $t5, .L80022460 +/* 022FB4 800223B4 27A400BC */ addiu $a0, $sp, 0xbc +/* 022FB8 800223B8 8FA600EC */ lw $a2, 0xec($sp) +/* 022FBC 800223BC 0C008950 */ jal catmull_rom_interpolation +/* 022FC0 800223C0 27A400BC */ addiu $a0, $sp, 0xbc +/* 022FC4 800223C4 444FF800 */ cfc1 $t7, $31 +/* 022FC8 800223C8 8FB80154 */ lw $t8, 0x154($sp) +/* 022FCC 800223CC 35E10003 */ ori $at, $t7, 3 +/* 022FD0 800223D0 38210002 */ xori $at, $at, 2 +/* 022FD4 800223D4 44C1F800 */ ctc1 $at, $31 +/* 022FD8 800223D8 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 022FDC 800223DC 460001A4 */ cvt.w.s $f6, $f0 +/* 022FE0 800223E0 00002825 */ move $a1, $zero +/* 022FE4 800223E4 440E3000 */ mfc1 $t6, $f6 +/* 022FE8 800223E8 44CFF800 */ ctc1 $t7, $31 +/* 022FEC 800223EC A70E0000 */ sh $t6, ($t8) +/* 022FF0 800223F0 8FA600EC */ lw $a2, 0xec($sp) +/* 022FF4 800223F4 0C008950 */ jal catmull_rom_interpolation +/* 022FF8 800223F8 00000000 */ nop +/* 022FFC 800223FC 4459F800 */ cfc1 $t9, $31 +/* 023000 80022400 8FAC0154 */ lw $t4, 0x154($sp) +/* 023004 80022404 37210003 */ ori $at, $t9, 3 +/* 023008 80022408 38210002 */ xori $at, $at, 2 +/* 02300C 8002240C 44C1F800 */ ctc1 $at, $31 +/* 023010 80022410 27A40094 */ addiu $a0, $sp, 0x94 +/* 023014 80022414 46000224 */ cvt.w.s $f8, $f0 +/* 023018 80022418 00002825 */ move $a1, $zero +/* 02301C 8002241C 440B4000 */ mfc1 $t3, $f8 +/* 023020 80022420 44D9F800 */ ctc1 $t9, $31 +/* 023024 80022424 A58B0002 */ sh $t3, 2($t4) +/* 023028 80022428 8FA600EC */ lw $a2, 0xec($sp) +/* 02302C 8002242C 0C008950 */ jal catmull_rom_interpolation +/* 023030 80022430 00000000 */ nop +/* 023034 80022434 444DF800 */ cfc1 $t5, $31 +/* 023038 80022438 8FAE0154 */ lw $t6, 0x154($sp) +/* 02303C 8002243C 35A10003 */ ori $at, $t5, 3 +/* 023040 80022440 38210002 */ xori $at, $at, 2 +/* 023044 80022444 44C1F800 */ ctc1 $at, $31 +/* 023048 80022448 00000000 */ nop +/* 02304C 8002244C 46000124 */ cvt.w.s $f4, $f0 +/* 023050 80022450 440F2000 */ mfc1 $t7, $f4 +/* 023054 80022454 44CDF800 */ ctc1 $t5, $31 +/* 023058 80022458 1000002A */ b .L80022504 +/* 02305C 8002245C A5CF0004 */ sh $t7, 4($t6) +.L80022460: +/* 023060 80022460 0C008A22 */ jal lerp +/* 023064 80022464 00002825 */ move $a1, $zero +/* 023068 80022468 4458F800 */ cfc1 $t8, $31 +/* 02306C 8002246C 8FAB0154 */ lw $t3, 0x154($sp) +/* 023070 80022470 37010003 */ ori $at, $t8, 3 +/* 023074 80022474 38210002 */ xori $at, $at, 2 +/* 023078 80022478 44C1F800 */ ctc1 $at, $31 +/* 02307C 8002247C 27A400A8 */ addiu $a0, $sp, 0xa8 +/* 023080 80022480 460002A4 */ cvt.w.s $f10, $f0 +/* 023084 80022484 00002825 */ move $a1, $zero +/* 023088 80022488 44195000 */ mfc1 $t9, $f10 +/* 02308C 8002248C 44D8F800 */ ctc1 $t8, $31 +/* 023090 80022490 A5790000 */ sh $t9, ($t3) +/* 023094 80022494 8FA600EC */ lw $a2, 0xec($sp) +/* 023098 80022498 0C008A22 */ jal lerp +/* 02309C 8002249C 00000000 */ nop +/* 0230A0 800224A0 444CF800 */ cfc1 $t4, $31 +/* 0230A4 800224A4 8FAF0154 */ lw $t7, 0x154($sp) +/* 0230A8 800224A8 35810003 */ ori $at, $t4, 3 +/* 0230AC 800224AC 38210002 */ xori $at, $at, 2 +/* 0230B0 800224B0 44C1F800 */ ctc1 $at, $31 +/* 0230B4 800224B4 27A40094 */ addiu $a0, $sp, 0x94 +/* 0230B8 800224B8 460001A4 */ cvt.w.s $f6, $f0 +/* 0230BC 800224BC 00002825 */ move $a1, $zero +/* 0230C0 800224C0 440D3000 */ mfc1 $t5, $f6 +/* 0230C4 800224C4 44CCF800 */ ctc1 $t4, $31 +/* 0230C8 800224C8 A5ED0002 */ sh $t5, 2($t7) +/* 0230CC 800224CC 8FA600EC */ lw $a2, 0xec($sp) +/* 0230D0 800224D0 0C008A22 */ jal lerp +/* 0230D4 800224D4 00000000 */ nop +/* 0230D8 800224D8 444EF800 */ cfc1 $t6, $31 +/* 0230DC 800224DC 8FB90154 */ lw $t9, 0x154($sp) +/* 0230E0 800224E0 35C10003 */ ori $at, $t6, 3 +/* 0230E4 800224E4 38210002 */ xori $at, $at, 2 +/* 0230E8 800224E8 44C1F800 */ ctc1 $at, $31 +/* 0230EC 800224EC 00000000 */ nop +/* 0230F0 800224F0 46000224 */ cvt.w.s $f8, $f0 +/* 0230F4 800224F4 44184000 */ mfc1 $t8, $f8 +/* 0230F8 800224F8 44CEF800 */ ctc1 $t6, $31 +/* 0230FC 800224FC A7380004 */ sh $t8, 4($t9) +/* 023100 80022500 00000000 */ nop +.L80022504: +/* 023104 80022504 00001025 */ move $v0, $zero +.L80022508: +/* 023108 80022508 8FBF0044 */ lw $ra, 0x44($sp) +/* 02310C 8002250C C7B50018 */ lwc1 $f21, 0x18($sp) +/* 023110 80022510 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 023114 80022514 8FB00020 */ lw $s0, 0x20($sp) +/* 023118 80022518 8FB10024 */ lw $s1, 0x24($sp) +/* 02311C 8002251C 8FB20028 */ lw $s2, 0x28($sp) +/* 023120 80022520 8FB3002C */ lw $s3, 0x2c($sp) +/* 023124 80022524 8FB40030 */ lw $s4, 0x30($sp) +/* 023128 80022528 8FB50034 */ lw $s5, 0x34($sp) +/* 02312C 8002252C 8FB60038 */ lw $s6, 0x38($sp) +/* 023130 80022530 8FB7003C */ lw $s7, 0x3c($sp) +/* 023134 80022534 8FBE0040 */ lw $fp, 0x40($sp) +/* 023138 80022538 03E00008 */ jr $ra +/* 02313C 8002253C 27BD0160 */ addiu $sp, $sp, 0x160 + diff --git a/asm/non_matchings/objects/func_800230D0.s b/asm/non_matchings/objects/func_800230D0.s index f1fd7805..af7aa8ab 100644 --- a/asm/non_matchings/objects/func_800230D0.s +++ b/asm/non_matchings/objects/func_800230D0.s @@ -1,223 +1,223 @@ -glabel func_800230D0 -/* 023CD0 800230D0 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 023CD4 800230D4 3C028012 */ lui $v0, %hi(gNumberOfCheckpoints) # $v0, 0x8012 -/* 023CD8 800230D8 8C42AED0 */ lw $v0, %lo(gNumberOfCheckpoints)($v0) -/* 023CDC 800230DC AFB10018 */ sw $s1, 0x18($sp) -/* 023CE0 800230E0 AFB00014 */ sw $s0, 0x14($sp) -/* 023CE4 800230E4 00808025 */ move $s0, $a0 -/* 023CE8 800230E8 00A08825 */ move $s1, $a1 -/* 023CEC 800230EC 14400032 */ bnez $v0, .L800231B8 -/* 023CF0 800230F0 AFBF001C */ sw $ra, 0x1c($sp) -/* 023CF4 800230F4 3C078012 */ lui $a3, %hi(objCount) # $a3, 0x8012 -/* 023CF8 800230F8 24E7AE5C */ addiu $a3, %lo(objCount) # addiu $a3, $a3, -0x51a4 -/* 023CFC 800230FC 8CE40000 */ lw $a0, ($a3) -/* 023D00 80023100 00004025 */ move $t0, $zero -/* 023D04 80023104 1880002A */ blez $a0, .L800231B0 -/* 023D08 80023108 00001025 */ move $v0, $zero -/* 023D0C 8002310C 3C058012 */ lui $a1, %hi(gObjPtrList) # $a1, 0x8012 -/* 023D10 80023110 24A5AE58 */ addiu $a1, %lo(gObjPtrList) # addiu $a1, $a1, -0x51a8 -/* 023D14 80023114 2406000B */ li $a2, 11 -.L80023118: -/* 023D18 80023118 8CAE0000 */ lw $t6, ($a1) -/* 023D1C 8002311C 00027880 */ sll $t7, $v0, 2 -/* 023D20 80023120 01CFC021 */ addu $t8, $t6, $t7 -/* 023D24 80023124 8F030000 */ lw $v1, ($t8) -/* 023D28 80023128 00000000 */ nop -/* 023D2C 8002312C 84790006 */ lh $t9, 6($v1) -/* 023D30 80023130 00000000 */ nop -/* 023D34 80023134 33298000 */ andi $t1, $t9, 0x8000 -/* 023D38 80023138 15200018 */ bnez $t1, .L8002319C -/* 023D3C 8002313C 00000000 */ nop -/* 023D40 80023140 846A0048 */ lh $t2, 0x48($v1) -/* 023D44 80023144 00000000 */ nop -/* 023D48 80023148 14CA0014 */ bne $a2, $t2, .L8002319C -/* 023D4C 8002314C 00000000 */ nop -/* 023D50 80023150 8C6B0078 */ lw $t3, 0x78($v1) -/* 023D54 80023154 00000000 */ nop -/* 023D58 80023158 15600011 */ bnez $t3, .L800231A0 -/* 023D5C 8002315C 24420001 */ addiu $v0, $v0, 1 -/* 023D60 80023160 C464000C */ lwc1 $f4, 0xc($v1) -/* 023D64 80023164 00000000 */ nop -/* 023D68 80023168 E604000C */ swc1 $f4, 0xc($s0) -/* 023D6C 8002316C C4660010 */ lwc1 $f6, 0x10($v1) -/* 023D70 80023170 00000000 */ nop -/* 023D74 80023174 E6060010 */ swc1 $f6, 0x10($s0) -/* 023D78 80023178 C4680014 */ lwc1 $f8, 0x14($v1) -/* 023D7C 8002317C 00000000 */ nop -/* 023D80 80023180 E6080014 */ swc1 $f8, 0x14($s0) -/* 023D84 80023184 846C002E */ lh $t4, 0x2e($v1) -/* 023D88 80023188 00000000 */ nop -/* 023D8C 8002318C A60C002E */ sh $t4, 0x2e($s0) -/* 023D90 80023190 8CE40000 */ lw $a0, ($a3) -/* 023D94 80023194 00000000 */ nop -/* 023D98 80023198 00801025 */ move $v0, $a0 -.L8002319C: -/* 023D9C 8002319C 24420001 */ addiu $v0, $v0, 1 -.L800231A0: -/* 023DA0 800231A0 0044082A */ slt $at, $v0, $a0 -/* 023DA4 800231A4 1420FFDC */ bnez $at, .L80023118 -/* 023DA8 800231A8 00000000 */ nop -/* 023DAC 800231AC AFA3002C */ sw $v1, 0x2c($sp) -.L800231B0: -/* 023DB0 800231B0 1000001E */ b .L8002322C -/* 023DB4 800231B4 8604002E */ lh $a0, 0x2e($s0) -.L800231B8: -/* 023DB8 800231B8 00026900 */ sll $t5, $v0, 4 -/* 023DBC 800231BC 3C0E8012 */ lui $t6, %hi(gTrackCheckpoints) # $t6, 0x8012 -/* 023DC0 800231C0 8DCEAECC */ lw $t6, %lo(gTrackCheckpoints)($t6) -/* 023DC4 800231C4 01A26823 */ subu $t5, $t5, $v0 -/* 023DC8 800231C8 000D6880 */ sll $t5, $t5, 2 -/* 023DCC 800231CC 3C01420C */ li $at, 0x420C0000 # 35.000000 -/* 023DD0 800231D0 01AE4021 */ addu $t0, $t5, $t6 -/* 023DD4 800231D4 44810000 */ mtc1 $at, $f0 -/* 023DD8 800231D8 C510FFCC */ lwc1 $f16, -0x34($t0) -/* 023DDC 800231DC C50AFFD4 */ lwc1 $f10, -0x2c($t0) -/* 023DE0 800231E0 46008482 */ mul.s $f18, $f16, $f0 -/* 023DE4 800231E4 2508FFC4 */ addiu $t0, $t0, -0x3c -/* 023DE8 800231E8 46125101 */ sub.s $f4, $f10, $f18 -/* 023DEC 800231EC E604000C */ swc1 $f4, 0xc($s0) -/* 023DF0 800231F0 C5060014 */ lwc1 $f6, 0x14($t0) -/* 023DF4 800231F4 C60C000C */ lwc1 $f12, 0xc($s0) -/* 023DF8 800231F8 E6060010 */ swc1 $f6, 0x10($s0) -/* 023DFC 800231FC C5100000 */ lwc1 $f16, ($t0) -/* 023E00 80023200 C5080018 */ lwc1 $f8, 0x18($t0) -/* 023E04 80023204 46008282 */ mul.s $f10, $f16, $f0 -/* 023E08 80023208 C60E0010 */ lwc1 $f14, 0x10($s0) -/* 023E0C 8002320C 460A4480 */ add.s $f18, $f8, $f10 -/* 023E10 80023210 E6120014 */ swc1 $f18, 0x14($s0) -/* 023E14 80023214 8E060014 */ lw $a2, 0x14($s0) -/* 023E18 80023218 0C00A7C6 */ jal get_level_segment_index_from_position -/* 023E1C 8002321C AFA8005C */ sw $t0, 0x5c($sp) -/* 023E20 80023220 8FA8005C */ lw $t0, 0x5c($sp) -/* 023E24 80023224 A602002E */ sh $v0, 0x2e($s0) -/* 023E28 80023228 8604002E */ lh $a0, 0x2e($s0) -.L8002322C: -/* 023E2C 8002322C 8E05000C */ lw $a1, 0xc($s0) -/* 023E30 80023230 8E060014 */ lw $a2, 0x14($s0) -/* 023E34 80023234 AFA8005C */ sw $t0, 0x5c($sp) -/* 023E38 80023238 0C00AEAC */ jal func_8002BAB0 -/* 023E3C 8002323C 27A70030 */ addiu $a3, $sp, 0x30 -/* 023E40 80023240 8FA3002C */ lw $v1, 0x2c($sp) -/* 023E44 80023244 8FA8005C */ lw $t0, 0x5c($sp) -/* 023E48 80023248 10400005 */ beqz $v0, .L80023260 -/* 023E4C 8002324C 00027880 */ sll $t7, $v0, 2 -/* 023E50 80023250 03AFC021 */ addu $t8, $sp, $t7 -/* 023E54 80023254 C704002C */ lwc1 $f4, 0x2c($t8) -/* 023E58 80023258 00000000 */ nop -/* 023E5C 8002325C E6040010 */ swc1 $f4, 0x10($s0) -.L80023260: -/* 023E60 80023260 C606000C */ lwc1 $f6, 0xc($s0) -/* 023E64 80023264 00000000 */ nop -/* 023E68 80023268 E626005C */ swc1 $f6, 0x5c($s1) -/* 023E6C 8002326C C6100010 */ lwc1 $f16, 0x10($s0) -/* 023E70 80023270 00000000 */ nop -/* 023E74 80023274 E6300060 */ swc1 $f16, 0x60($s1) -/* 023E78 80023278 C6080014 */ lwc1 $f8, 0x14($s0) -/* 023E7C 8002327C 11000008 */ beqz $t0, .L800232A0 -/* 023E80 80023280 E6280064 */ swc1 $f8, 0x64($s1) -/* 023E84 80023284 C50C0000 */ lwc1 $f12, ($t0) -/* 023E88 80023288 C50E0008 */ lwc1 $f14, 8($t0) -/* 023E8C 8002328C 0C01C1D4 */ jal arctan2_f -/* 023E90 80023290 AFA8005C */ sw $t0, 0x5c($sp) -/* 023E94 80023294 8FA8005C */ lw $t0, 0x5c($sp) -/* 023E98 80023298 10000004 */ b .L800232AC -/* 023E9C 8002329C A62201A0 */ sh $v0, 0x1a0($s1) -.L800232A0: -/* 023EA0 800232A0 84790000 */ lh $t9, ($v1) -/* 023EA4 800232A4 00000000 */ nop -/* 023EA8 800232A8 A63901A0 */ sh $t9, 0x1a0($s1) -.L800232AC: -/* 023EAC 800232AC A2200192 */ sb $zero, 0x192($s1) -/* 023EB0 800232B0 3C0A8012 */ lui $t2, %hi(gNumberOfCheckpoints) # $t2, 0x8012 -/* 023EB4 800232B4 8D4AAED0 */ lw $t2, %lo(gNumberOfCheckpoints)($t2) -/* 023EB8 800232B8 82290193 */ lb $t1, 0x193($s1) -/* 023EBC 800232BC 862C01A0 */ lh $t4, 0x1a0($s1) -/* 023EC0 800232C0 012A0019 */ multu $t1, $t2 -/* 023EC4 800232C4 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 023EC8 800232C8 44810000 */ mtc1 $at, $f0 -/* 023ECC 800232CC 2401FFFF */ li $at, -1 -/* 023ED0 800232D0 00005812 */ mflo $t3 -/* 023ED4 800232D4 A62B0190 */ sh $t3, 0x190($s1) -/* 023ED8 800232D8 C60A000C */ lwc1 $f10, 0xc($s0) -/* 023EDC 800232DC A60C0000 */ sh $t4, ($s0) -/* 023EE0 800232E0 E62A00D8 */ swc1 $f10, 0xd8($s1) -/* 023EE4 800232E4 C6120010 */ lwc1 $f18, 0x10($s0) -/* 023EE8 800232E8 00000000 */ nop -/* 023EEC 800232EC 46009100 */ add.s $f4, $f18, $f0 -/* 023EF0 800232F0 E62400DC */ swc1 $f4, 0xdc($s1) -/* 023EF4 800232F4 C6060014 */ lwc1 $f6, 0x14($s0) -/* 023EF8 800232F8 00000000 */ nop -/* 023EFC 800232FC E62600E0 */ swc1 $f6, 0xe0($s1) -/* 023F00 80023300 C610000C */ lwc1 $f16, 0xc($s0) -/* 023F04 80023304 00000000 */ nop -/* 023F08 80023308 E63000E4 */ swc1 $f16, 0xe4($s1) -/* 023F0C 8002330C C6080010 */ lwc1 $f8, 0x10($s0) -/* 023F10 80023310 00000000 */ nop -/* 023F14 80023314 46004280 */ add.s $f10, $f8, $f0 -/* 023F18 80023318 E62A00E8 */ swc1 $f10, 0xe8($s1) -/* 023F1C 8002331C C6120014 */ lwc1 $f18, 0x14($s0) -/* 023F20 80023320 00000000 */ nop -/* 023F24 80023324 E63200EC */ swc1 $f18, 0xec($s1) -/* 023F28 80023328 C604000C */ lwc1 $f4, 0xc($s0) -/* 023F2C 8002332C 00000000 */ nop -/* 023F30 80023330 E62400F0 */ swc1 $f4, 0xf0($s1) -/* 023F34 80023334 C6060010 */ lwc1 $f6, 0x10($s0) -/* 023F38 80023338 00000000 */ nop -/* 023F3C 8002333C 46003400 */ add.s $f16, $f6, $f0 -/* 023F40 80023340 E63000F4 */ swc1 $f16, 0xf4($s1) -/* 023F44 80023344 C6080014 */ lwc1 $f8, 0x14($s0) -/* 023F48 80023348 00000000 */ nop -/* 023F4C 8002334C E62800F8 */ swc1 $f8, 0xf8($s1) -/* 023F50 80023350 C60A000C */ lwc1 $f10, 0xc($s0) -/* 023F54 80023354 00000000 */ nop -/* 023F58 80023358 E62A00FC */ swc1 $f10, 0xfc($s1) -/* 023F5C 8002335C C6120010 */ lwc1 $f18, 0x10($s0) -/* 023F60 80023360 00000000 */ nop -/* 023F64 80023364 46009100 */ add.s $f4, $f18, $f0 -/* 023F68 80023368 44800000 */ mtc1 $zero, $f0 -/* 023F6C 8002336C E6240100 */ swc1 $f4, 0x100($s1) -/* 023F70 80023370 C6060014 */ lwc1 $f6, 0x14($s0) -/* 023F74 80023374 00000000 */ nop -/* 023F78 80023378 E6260104 */ swc1 $f6, 0x104($s1) -/* 023F7C 8002337C 8E0D004C */ lw $t5, 0x4c($s0) -/* 023F80 80023380 C610000C */ lwc1 $f16, 0xc($s0) -/* 023F84 80023384 00000000 */ nop -/* 023F88 80023388 E5B00004 */ swc1 $f16, 4($t5) -/* 023F8C 8002338C 8E0E004C */ lw $t6, 0x4c($s0) -/* 023F90 80023390 C6080010 */ lwc1 $f8, 0x10($s0) -/* 023F94 80023394 00000000 */ nop -/* 023F98 80023398 E5C80008 */ swc1 $f8, 8($t6) -/* 023F9C 8002339C 8E0F004C */ lw $t7, 0x4c($s0) -/* 023FA0 800233A0 C60A0014 */ lwc1 $f10, 0x14($s0) -/* 023FA4 800233A4 00000000 */ nop -/* 023FA8 800233A8 E5EA000C */ swc1 $f10, 0xc($t7) -/* 023FAC 800233AC E620002C */ swc1 $f0, 0x2c($s1) -/* 023FB0 800233B0 E6200030 */ swc1 $f0, 0x30($s1) -/* 023FB4 800233B4 E600001C */ swc1 $f0, 0x1c($s0) -/* 023FB8 800233B8 E6000024 */ swc1 $f0, 0x24($s0) -/* 023FBC 800233BC 823801D7 */ lb $t8, 0x1d7($s1) -/* 023FC0 800233C0 86240000 */ lh $a0, ($s1) -/* 023FC4 800233C4 A23801D6 */ sb $t8, 0x1d6($s1) -/* 023FC8 800233C8 1081000F */ beq $a0, $at, .L80023408 -/* 023FCC 800233CC 8FBF001C */ lw $ra, 0x1c($sp) -/* 023FD0 800233D0 0C01997A */ jal set_object_stack_pos -/* 023FD4 800233D4 AFA8005C */ sw $t0, 0x5c($sp) -/* 023FD8 800233D8 0C01A73F */ jal get_active_camera_segment_no_cutscenes -/* 023FDC 800233DC 00000000 */ nop -/* 023FE0 800233E0 C612000C */ lwc1 $f18, 0xc($s0) -/* 023FE4 800233E4 8FA8005C */ lw $t0, 0x5c($sp) -/* 023FE8 800233E8 E452000C */ swc1 $f18, 0xc($v0) -/* 023FEC 800233EC C6040010 */ lwc1 $f4, 0x10($s0) -/* 023FF0 800233F0 00000000 */ nop -/* 023FF4 800233F4 E4440010 */ swc1 $f4, 0x10($v0) -/* 023FF8 800233F8 C6060014 */ lwc1 $f6, 0x14($s0) -/* 023FFC 800233FC 00000000 */ nop -/* 024000 80023400 E4460014 */ swc1 $f6, 0x14($v0) -/* 024004 80023404 8FBF001C */ lw $ra, 0x1c($sp) -.L80023408: -/* 024008 80023408 8FB00014 */ lw $s0, 0x14($sp) -/* 02400C 8002340C 8FB10018 */ lw $s1, 0x18($sp) -/* 024010 80023410 27BD0060 */ addiu $sp, $sp, 0x60 -/* 024014 80023414 03E00008 */ jr $ra -/* 024018 80023418 01001025 */ move $v0, $t0 - +glabel func_800230D0 +/* 023CD0 800230D0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 023CD4 800230D4 3C028012 */ lui $v0, %hi(gNumberOfCheckpoints) # $v0, 0x8012 +/* 023CD8 800230D8 8C42AED0 */ lw $v0, %lo(gNumberOfCheckpoints)($v0) +/* 023CDC 800230DC AFB10018 */ sw $s1, 0x18($sp) +/* 023CE0 800230E0 AFB00014 */ sw $s0, 0x14($sp) +/* 023CE4 800230E4 00808025 */ move $s0, $a0 +/* 023CE8 800230E8 00A08825 */ move $s1, $a1 +/* 023CEC 800230EC 14400032 */ bnez $v0, .L800231B8 +/* 023CF0 800230F0 AFBF001C */ sw $ra, 0x1c($sp) +/* 023CF4 800230F4 3C078012 */ lui $a3, %hi(objCount) # $a3, 0x8012 +/* 023CF8 800230F8 24E7AE5C */ addiu $a3, %lo(objCount) # addiu $a3, $a3, -0x51a4 +/* 023CFC 800230FC 8CE40000 */ lw $a0, ($a3) +/* 023D00 80023100 00004025 */ move $t0, $zero +/* 023D04 80023104 1880002A */ blez $a0, .L800231B0 +/* 023D08 80023108 00001025 */ move $v0, $zero +/* 023D0C 8002310C 3C058012 */ lui $a1, %hi(gObjPtrList) # $a1, 0x8012 +/* 023D10 80023110 24A5AE58 */ addiu $a1, %lo(gObjPtrList) # addiu $a1, $a1, -0x51a8 +/* 023D14 80023114 2406000B */ li $a2, 11 +.L80023118: +/* 023D18 80023118 8CAE0000 */ lw $t6, ($a1) +/* 023D1C 8002311C 00027880 */ sll $t7, $v0, 2 +/* 023D20 80023120 01CFC021 */ addu $t8, $t6, $t7 +/* 023D24 80023124 8F030000 */ lw $v1, ($t8) +/* 023D28 80023128 00000000 */ nop +/* 023D2C 8002312C 84790006 */ lh $t9, 6($v1) +/* 023D30 80023130 00000000 */ nop +/* 023D34 80023134 33298000 */ andi $t1, $t9, 0x8000 +/* 023D38 80023138 15200018 */ bnez $t1, .L8002319C +/* 023D3C 8002313C 00000000 */ nop +/* 023D40 80023140 846A0048 */ lh $t2, 0x48($v1) +/* 023D44 80023144 00000000 */ nop +/* 023D48 80023148 14CA0014 */ bne $a2, $t2, .L8002319C +/* 023D4C 8002314C 00000000 */ nop +/* 023D50 80023150 8C6B0078 */ lw $t3, 0x78($v1) +/* 023D54 80023154 00000000 */ nop +/* 023D58 80023158 15600011 */ bnez $t3, .L800231A0 +/* 023D5C 8002315C 24420001 */ addiu $v0, $v0, 1 +/* 023D60 80023160 C464000C */ lwc1 $f4, 0xc($v1) +/* 023D64 80023164 00000000 */ nop +/* 023D68 80023168 E604000C */ swc1 $f4, 0xc($s0) +/* 023D6C 8002316C C4660010 */ lwc1 $f6, 0x10($v1) +/* 023D70 80023170 00000000 */ nop +/* 023D74 80023174 E6060010 */ swc1 $f6, 0x10($s0) +/* 023D78 80023178 C4680014 */ lwc1 $f8, 0x14($v1) +/* 023D7C 8002317C 00000000 */ nop +/* 023D80 80023180 E6080014 */ swc1 $f8, 0x14($s0) +/* 023D84 80023184 846C002E */ lh $t4, 0x2e($v1) +/* 023D88 80023188 00000000 */ nop +/* 023D8C 8002318C A60C002E */ sh $t4, 0x2e($s0) +/* 023D90 80023190 8CE40000 */ lw $a0, ($a3) +/* 023D94 80023194 00000000 */ nop +/* 023D98 80023198 00801025 */ move $v0, $a0 +.L8002319C: +/* 023D9C 8002319C 24420001 */ addiu $v0, $v0, 1 +.L800231A0: +/* 023DA0 800231A0 0044082A */ slt $at, $v0, $a0 +/* 023DA4 800231A4 1420FFDC */ bnez $at, .L80023118 +/* 023DA8 800231A8 00000000 */ nop +/* 023DAC 800231AC AFA3002C */ sw $v1, 0x2c($sp) +.L800231B0: +/* 023DB0 800231B0 1000001E */ b .L8002322C +/* 023DB4 800231B4 8604002E */ lh $a0, 0x2e($s0) +.L800231B8: +/* 023DB8 800231B8 00026900 */ sll $t5, $v0, 4 +/* 023DBC 800231BC 3C0E8012 */ lui $t6, %hi(gTrackCheckpoints) # $t6, 0x8012 +/* 023DC0 800231C0 8DCEAECC */ lw $t6, %lo(gTrackCheckpoints)($t6) +/* 023DC4 800231C4 01A26823 */ subu $t5, $t5, $v0 +/* 023DC8 800231C8 000D6880 */ sll $t5, $t5, 2 +/* 023DCC 800231CC 3C01420C */ li $at, 0x420C0000 # 35.000000 +/* 023DD0 800231D0 01AE4021 */ addu $t0, $t5, $t6 +/* 023DD4 800231D4 44810000 */ mtc1 $at, $f0 +/* 023DD8 800231D8 C510FFCC */ lwc1 $f16, -0x34($t0) +/* 023DDC 800231DC C50AFFD4 */ lwc1 $f10, -0x2c($t0) +/* 023DE0 800231E0 46008482 */ mul.s $f18, $f16, $f0 +/* 023DE4 800231E4 2508FFC4 */ addiu $t0, $t0, -0x3c +/* 023DE8 800231E8 46125101 */ sub.s $f4, $f10, $f18 +/* 023DEC 800231EC E604000C */ swc1 $f4, 0xc($s0) +/* 023DF0 800231F0 C5060014 */ lwc1 $f6, 0x14($t0) +/* 023DF4 800231F4 C60C000C */ lwc1 $f12, 0xc($s0) +/* 023DF8 800231F8 E6060010 */ swc1 $f6, 0x10($s0) +/* 023DFC 800231FC C5100000 */ lwc1 $f16, ($t0) +/* 023E00 80023200 C5080018 */ lwc1 $f8, 0x18($t0) +/* 023E04 80023204 46008282 */ mul.s $f10, $f16, $f0 +/* 023E08 80023208 C60E0010 */ lwc1 $f14, 0x10($s0) +/* 023E0C 8002320C 460A4480 */ add.s $f18, $f8, $f10 +/* 023E10 80023210 E6120014 */ swc1 $f18, 0x14($s0) +/* 023E14 80023214 8E060014 */ lw $a2, 0x14($s0) +/* 023E18 80023218 0C00A7C6 */ jal get_level_segment_index_from_position +/* 023E1C 8002321C AFA8005C */ sw $t0, 0x5c($sp) +/* 023E20 80023220 8FA8005C */ lw $t0, 0x5c($sp) +/* 023E24 80023224 A602002E */ sh $v0, 0x2e($s0) +/* 023E28 80023228 8604002E */ lh $a0, 0x2e($s0) +.L8002322C: +/* 023E2C 8002322C 8E05000C */ lw $a1, 0xc($s0) +/* 023E30 80023230 8E060014 */ lw $a2, 0x14($s0) +/* 023E34 80023234 AFA8005C */ sw $t0, 0x5c($sp) +/* 023E38 80023238 0C00AEAC */ jal func_8002BAB0 +/* 023E3C 8002323C 27A70030 */ addiu $a3, $sp, 0x30 +/* 023E40 80023240 8FA3002C */ lw $v1, 0x2c($sp) +/* 023E44 80023244 8FA8005C */ lw $t0, 0x5c($sp) +/* 023E48 80023248 10400005 */ beqz $v0, .L80023260 +/* 023E4C 8002324C 00027880 */ sll $t7, $v0, 2 +/* 023E50 80023250 03AFC021 */ addu $t8, $sp, $t7 +/* 023E54 80023254 C704002C */ lwc1 $f4, 0x2c($t8) +/* 023E58 80023258 00000000 */ nop +/* 023E5C 8002325C E6040010 */ swc1 $f4, 0x10($s0) +.L80023260: +/* 023E60 80023260 C606000C */ lwc1 $f6, 0xc($s0) +/* 023E64 80023264 00000000 */ nop +/* 023E68 80023268 E626005C */ swc1 $f6, 0x5c($s1) +/* 023E6C 8002326C C6100010 */ lwc1 $f16, 0x10($s0) +/* 023E70 80023270 00000000 */ nop +/* 023E74 80023274 E6300060 */ swc1 $f16, 0x60($s1) +/* 023E78 80023278 C6080014 */ lwc1 $f8, 0x14($s0) +/* 023E7C 8002327C 11000008 */ beqz $t0, .L800232A0 +/* 023E80 80023280 E6280064 */ swc1 $f8, 0x64($s1) +/* 023E84 80023284 C50C0000 */ lwc1 $f12, ($t0) +/* 023E88 80023288 C50E0008 */ lwc1 $f14, 8($t0) +/* 023E8C 8002328C 0C01C1D4 */ jal arctan2_f +/* 023E90 80023290 AFA8005C */ sw $t0, 0x5c($sp) +/* 023E94 80023294 8FA8005C */ lw $t0, 0x5c($sp) +/* 023E98 80023298 10000004 */ b .L800232AC +/* 023E9C 8002329C A62201A0 */ sh $v0, 0x1a0($s1) +.L800232A0: +/* 023EA0 800232A0 84790000 */ lh $t9, ($v1) +/* 023EA4 800232A4 00000000 */ nop +/* 023EA8 800232A8 A63901A0 */ sh $t9, 0x1a0($s1) +.L800232AC: +/* 023EAC 800232AC A2200192 */ sb $zero, 0x192($s1) +/* 023EB0 800232B0 3C0A8012 */ lui $t2, %hi(gNumberOfCheckpoints) # $t2, 0x8012 +/* 023EB4 800232B4 8D4AAED0 */ lw $t2, %lo(gNumberOfCheckpoints)($t2) +/* 023EB8 800232B8 82290193 */ lb $t1, 0x193($s1) +/* 023EBC 800232BC 862C01A0 */ lh $t4, 0x1a0($s1) +/* 023EC0 800232C0 012A0019 */ multu $t1, $t2 +/* 023EC4 800232C4 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 023EC8 800232C8 44810000 */ mtc1 $at, $f0 +/* 023ECC 800232CC 2401FFFF */ li $at, -1 +/* 023ED0 800232D0 00005812 */ mflo $t3 +/* 023ED4 800232D4 A62B0190 */ sh $t3, 0x190($s1) +/* 023ED8 800232D8 C60A000C */ lwc1 $f10, 0xc($s0) +/* 023EDC 800232DC A60C0000 */ sh $t4, ($s0) +/* 023EE0 800232E0 E62A00D8 */ swc1 $f10, 0xd8($s1) +/* 023EE4 800232E4 C6120010 */ lwc1 $f18, 0x10($s0) +/* 023EE8 800232E8 00000000 */ nop +/* 023EEC 800232EC 46009100 */ add.s $f4, $f18, $f0 +/* 023EF0 800232F0 E62400DC */ swc1 $f4, 0xdc($s1) +/* 023EF4 800232F4 C6060014 */ lwc1 $f6, 0x14($s0) +/* 023EF8 800232F8 00000000 */ nop +/* 023EFC 800232FC E62600E0 */ swc1 $f6, 0xe0($s1) +/* 023F00 80023300 C610000C */ lwc1 $f16, 0xc($s0) +/* 023F04 80023304 00000000 */ nop +/* 023F08 80023308 E63000E4 */ swc1 $f16, 0xe4($s1) +/* 023F0C 8002330C C6080010 */ lwc1 $f8, 0x10($s0) +/* 023F10 80023310 00000000 */ nop +/* 023F14 80023314 46004280 */ add.s $f10, $f8, $f0 +/* 023F18 80023318 E62A00E8 */ swc1 $f10, 0xe8($s1) +/* 023F1C 8002331C C6120014 */ lwc1 $f18, 0x14($s0) +/* 023F20 80023320 00000000 */ nop +/* 023F24 80023324 E63200EC */ swc1 $f18, 0xec($s1) +/* 023F28 80023328 C604000C */ lwc1 $f4, 0xc($s0) +/* 023F2C 8002332C 00000000 */ nop +/* 023F30 80023330 E62400F0 */ swc1 $f4, 0xf0($s1) +/* 023F34 80023334 C6060010 */ lwc1 $f6, 0x10($s0) +/* 023F38 80023338 00000000 */ nop +/* 023F3C 8002333C 46003400 */ add.s $f16, $f6, $f0 +/* 023F40 80023340 E63000F4 */ swc1 $f16, 0xf4($s1) +/* 023F44 80023344 C6080014 */ lwc1 $f8, 0x14($s0) +/* 023F48 80023348 00000000 */ nop +/* 023F4C 8002334C E62800F8 */ swc1 $f8, 0xf8($s1) +/* 023F50 80023350 C60A000C */ lwc1 $f10, 0xc($s0) +/* 023F54 80023354 00000000 */ nop +/* 023F58 80023358 E62A00FC */ swc1 $f10, 0xfc($s1) +/* 023F5C 8002335C C6120010 */ lwc1 $f18, 0x10($s0) +/* 023F60 80023360 00000000 */ nop +/* 023F64 80023364 46009100 */ add.s $f4, $f18, $f0 +/* 023F68 80023368 44800000 */ mtc1 $zero, $f0 +/* 023F6C 8002336C E6240100 */ swc1 $f4, 0x100($s1) +/* 023F70 80023370 C6060014 */ lwc1 $f6, 0x14($s0) +/* 023F74 80023374 00000000 */ nop +/* 023F78 80023378 E6260104 */ swc1 $f6, 0x104($s1) +/* 023F7C 8002337C 8E0D004C */ lw $t5, 0x4c($s0) +/* 023F80 80023380 C610000C */ lwc1 $f16, 0xc($s0) +/* 023F84 80023384 00000000 */ nop +/* 023F88 80023388 E5B00004 */ swc1 $f16, 4($t5) +/* 023F8C 8002338C 8E0E004C */ lw $t6, 0x4c($s0) +/* 023F90 80023390 C6080010 */ lwc1 $f8, 0x10($s0) +/* 023F94 80023394 00000000 */ nop +/* 023F98 80023398 E5C80008 */ swc1 $f8, 8($t6) +/* 023F9C 8002339C 8E0F004C */ lw $t7, 0x4c($s0) +/* 023FA0 800233A0 C60A0014 */ lwc1 $f10, 0x14($s0) +/* 023FA4 800233A4 00000000 */ nop +/* 023FA8 800233A8 E5EA000C */ swc1 $f10, 0xc($t7) +/* 023FAC 800233AC E620002C */ swc1 $f0, 0x2c($s1) +/* 023FB0 800233B0 E6200030 */ swc1 $f0, 0x30($s1) +/* 023FB4 800233B4 E600001C */ swc1 $f0, 0x1c($s0) +/* 023FB8 800233B8 E6000024 */ swc1 $f0, 0x24($s0) +/* 023FBC 800233BC 823801D7 */ lb $t8, 0x1d7($s1) +/* 023FC0 800233C0 86240000 */ lh $a0, ($s1) +/* 023FC4 800233C4 A23801D6 */ sb $t8, 0x1d6($s1) +/* 023FC8 800233C8 1081000F */ beq $a0, $at, .L80023408 +/* 023FCC 800233CC 8FBF001C */ lw $ra, 0x1c($sp) +/* 023FD0 800233D0 0C01997A */ jal set_active_camera +/* 023FD4 800233D4 AFA8005C */ sw $t0, 0x5c($sp) +/* 023FD8 800233D8 0C01A73F */ jal get_active_camera_segment_no_cutscenes +/* 023FDC 800233DC 00000000 */ nop +/* 023FE0 800233E0 C612000C */ lwc1 $f18, 0xc($s0) +/* 023FE4 800233E4 8FA8005C */ lw $t0, 0x5c($sp) +/* 023FE8 800233E8 E452000C */ swc1 $f18, 0xc($v0) +/* 023FEC 800233EC C6040010 */ lwc1 $f4, 0x10($s0) +/* 023FF0 800233F0 00000000 */ nop +/* 023FF4 800233F4 E4440010 */ swc1 $f4, 0x10($v0) +/* 023FF8 800233F8 C6060014 */ lwc1 $f6, 0x14($s0) +/* 023FFC 800233FC 00000000 */ nop +/* 024000 80023400 E4460014 */ swc1 $f6, 0x14($v0) +/* 024004 80023404 8FBF001C */ lw $ra, 0x1c($sp) +.L80023408: +/* 024008 80023408 8FB00014 */ lw $s0, 0x14($sp) +/* 02400C 8002340C 8FB10018 */ lw $s1, 0x18($sp) +/* 024010 80023410 27BD0060 */ addiu $sp, $sp, 0x60 +/* 024014 80023414 03E00008 */ jr $ra +/* 024018 80023418 01001025 */ move $v0, $t0 + diff --git a/asm/non_matchings/unknown_005740/func_80008438.s b/asm/non_matchings/unknown_005740/func_80008438.s index 40cbb079..78fa05df 100644 --- a/asm/non_matchings/unknown_005740/func_80008438.s +++ b/asm/non_matchings/unknown_005740/func_80008438.s @@ -1,866 +1,866 @@ -.late_rodata -glabel D_800E4F14 -.float 999999.0 - -.text -glabel func_80008438 -/* 009038 80008438 27BDFD98 */ addiu $sp, $sp, -0x268 -/* 00903C 8000843C AFBF006C */ sw $ra, 0x6c($sp) -/* 009040 80008440 AFBE0068 */ sw $fp, 0x68($sp) -/* 009044 80008444 AFB70064 */ sw $s7, 0x64($sp) -/* 009048 80008448 AFB60060 */ sw $s6, 0x60($sp) -/* 00904C 8000844C AFB5005C */ sw $s5, 0x5c($sp) -/* 009050 80008450 AFB40058 */ sw $s4, 0x58($sp) -/* 009054 80008454 AFB30054 */ sw $s3, 0x54($sp) -/* 009058 80008458 AFB20050 */ sw $s2, 0x50($sp) -/* 00905C 8000845C AFB1004C */ sw $s1, 0x4c($sp) -/* 009060 80008460 AFB00048 */ sw $s0, 0x48($sp) -/* 009064 80008464 E7BB0040 */ swc1 $f27, 0x40($sp) -/* 009068 80008468 E7BA0044 */ swc1 $f26, 0x44($sp) -/* 00906C 8000846C E7B90038 */ swc1 $f25, 0x38($sp) -/* 009070 80008470 E7B8003C */ swc1 $f24, 0x3c($sp) -/* 009074 80008474 E7B70030 */ swc1 $f23, 0x30($sp) -/* 009078 80008478 E7B60034 */ swc1 $f22, 0x34($sp) -/* 00907C 8000847C E7B50028 */ swc1 $f21, 0x28($sp) -/* 009080 80008480 E7B4002C */ swc1 $f20, 0x2c($sp) -/* 009084 80008484 AFA40268 */ sw $a0, 0x268($sp) -/* 009088 80008488 AFA5026C */ sw $a1, 0x26c($sp) -/* 00908C 8000848C AFA60270 */ sw $a2, 0x270($sp) -/* 009090 80008490 0C019884 */ jal get_viewport_count -/* 009094 80008494 AFA0024C */ sw $zero, 0x24c($sp) -/* 009098 80008498 0C01994B */ jal set_active_viewports_and_object_stack_cap -/* 00909C 8000849C 00402025 */ move $a0, $v0 -/* 0090A0 800084A0 0C01A75F */ jal func_80069D7C -/* 0090A4 800084A4 AFA200B0 */ sw $v0, 0xb0($sp) -/* 0090A8 800084A8 3C15800E */ lui $s5, %hi(D_800DC6E0) # $s5, 0x800e -/* 0090AC 800084AC 26B5C6E0 */ addiu $s5, %lo(D_800DC6E0) # addiu $s5, $s5, -0x3920 -/* 0090B0 800084B0 96AE0000 */ lhu $t6, ($s5) -/* 0090B4 800084B4 AFA200AC */ sw $v0, 0xac($sp) -/* 0090B8 800084B8 19C00187 */ blez $t6, .L80008AD8 -/* 0090BC 800084BC AFA00260 */ sw $zero, 0x260($sp) -/* 0090C0 800084C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0090C4 800084C4 3C168012 */ lui $s6, %hi(D_80119C44) # $s6, 0x8012 -/* 0090C8 800084C8 4481D000 */ mtc1 $at, $f26 -/* 0090CC 800084CC 26D69C44 */ addiu $s6, %lo(D_80119C44) # addiu $s6, $s6, -0x63bc -/* 0090D0 800084D0 0000A025 */ move $s4, $zero -/* 0090D4 800084D4 27B700A8 */ addiu $s7, $sp, 0xa8 -/* 0090D8 800084D8 24120001 */ li $s2, 1 -.L800084DC: -/* 0090DC 800084DC 8ECF0000 */ lw $t7, ($s6) -/* 0090E0 800084E0 8FA900B0 */ lw $t1, 0xb0($sp) -/* 0090E4 800084E4 01F4C021 */ addu $t8, $t7, $s4 -/* 0090E8 800084E8 8F110000 */ lw $s1, ($t8) -/* 0090EC 800084EC AFA00254 */ sw $zero, 0x254($sp) -/* 0090F0 800084F0 92390011 */ lbu $t9, 0x11($s1) -/* 0090F4 800084F4 8FAB00B0 */ lw $t3, 0xb0($sp) -/* 0090F8 800084F8 33280002 */ andi $t0, $t9, 2 -/* 0090FC 800084FC 1100006F */ beqz $t0, .L800086BC -/* 009100 80008500 24010001 */ li $at, 1 -/* 009104 80008504 1521016D */ bne $t1, $at, .L80008ABC -/* 009108 80008508 8FA80260 */ lw $t0, 0x260($sp) -/* 00910C 8000850C 8FAA00AC */ lw $t2, 0xac($sp) -/* 009110 80008510 C6240000 */ lwc1 $f4, ($s1) -/* 009114 80008514 C546000C */ lwc1 $f6, 0xc($t2) -/* 009118 80008518 C6280004 */ lwc1 $f8, 4($s1) -/* 00911C 8000851C 46062501 */ sub.s $f20, $f4, $f6 -/* 009120 80008520 C54A0010 */ lwc1 $f10, 0x10($t2) -/* 009124 80008524 4614A102 */ mul.s $f4, $f20, $f20 -/* 009128 80008528 460A4001 */ sub.s $f0, $f8, $f10 -/* 00912C 8000852C C6300008 */ lwc1 $f16, 8($s1) -/* 009130 80008530 C5520014 */ lwc1 $f18, 0x14($t2) -/* 009134 80008534 46000182 */ mul.s $f6, $f0, $f0 -/* 009138 80008538 46128581 */ sub.s $f22, $f16, $f18 -/* 00913C 8000853C 4616B282 */ mul.s $f10, $f22, $f22 -/* 009140 80008540 46062200 */ add.s $f8, $f4, $f6 -/* 009144 80008544 0C0326B4 */ jal sqrtf -/* 009148 80008548 460A4300 */ add.s $f12, $f8, $f10 -/* 00914C 8000854C 444BF800 */ cfc1 $t3, $31 -/* 009150 80008550 8E240014 */ lw $a0, 0x14($s1) -/* 009154 80008554 35610003 */ ori $at, $t3, 3 -/* 009158 80008558 38210002 */ xori $at, $at, 2 -/* 00915C 8000855C 44C1F800 */ ctc1 $at, $31 -/* 009160 80008560 00000000 */ nop -/* 009164 80008564 46000424 */ cvt.w.s $f16, $f0 -/* 009168 80008568 44038000 */ mfc1 $v1, $f16 -/* 00916C 8000856C 44CBF800 */ ctc1 $t3, $31 -/* 009170 80008570 0064082A */ slt $at, $v1, $a0 -/* 009174 80008574 10200049 */ beqz $at, .L8000869C -/* 009178 80008578 0083082A */ slt $at, $a0, $v1 -/* 00917C 8000857C 922C0012 */ lbu $t4, 0x12($s1) -/* 009180 80008580 00000000 */ nop -/* 009184 80008584 15800045 */ bnez $t4, .L8000869C -/* 009188 80008588 0083082A */ slt $at, $a0, $v1 -/* 00918C 8000858C 8E240018 */ lw $a0, 0x18($s1) -/* 009190 80008590 00000000 */ nop -/* 009194 80008594 1480000F */ bnez $a0, .L800085D4 -/* 009198 80008598 00000000 */ nop -/* 00919C 8000859C 922D0022 */ lbu $t5, 0x22($s1) -/* 0091A0 800085A0 00000000 */ nop -/* 0091A4 800085A4 11A00006 */ beqz $t5, .L800085C0 -/* 0091A8 800085A8 00000000 */ nop -/* 0091AC 800085AC 922E0011 */ lbu $t6, 0x11($s1) -/* 0091B0 800085B0 00000000 */ nop -/* 0091B4 800085B4 31CF0004 */ andi $t7, $t6, 4 -/* 0091B8 800085B8 15E00006 */ bnez $t7, .L800085D4 -/* 0091BC 800085BC 00000000 */ nop -.L800085C0: -/* 0091C0 800085C0 9624000C */ lhu $a0, 0xc($s1) -/* 0091C4 800085C4 0C0007C5 */ jal func_80001F14 -/* 0091C8 800085C8 26250018 */ addiu $a1, $s1, 0x18 -/* 0091CC 800085CC 8E240018 */ lw $a0, 0x18($s1) -/* 0091D0 800085D0 A2320022 */ sb $s2, 0x22($s1) -.L800085D4: -/* 0091D4 800085D4 1080002E */ beqz $a0, .L80008690 -/* 0091D8 800085D8 00000000 */ nop -/* 0091DC 800085DC 9238000F */ lbu $t8, 0xf($s1) -/* 0091E0 800085E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0091E4 800085E4 44989000 */ mtc1 $t8, $f18 -/* 0091E8 800085E8 07010004 */ bgez $t8, .L800085FC -/* 0091EC 800085EC 46809120 */ cvt.s.w $f4, $f18 -/* 0091F0 800085F0 44813000 */ mtc1 $at, $f6 -/* 0091F4 800085F4 00000000 */ nop -/* 0091F8 800085F8 46062100 */ add.s $f4, $f4, $f6 -.L800085FC: -/* 0091FC 800085FC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 009200 80008600 44814000 */ mtc1 $at, $f8 -/* 009204 80008604 24050008 */ li $a1, 8 -/* 009208 80008608 46082283 */ div.s $f10, $f4, $f8 -/* 00920C 8000860C E7AA00A8 */ swc1 $f10, 0xa8($sp) -/* 009210 80008610 9226000E */ lbu $a2, 0xe($s1) -/* 009214 80008614 8E240018 */ lw $a0, 0x18($s1) -/* 009218 80008618 0006CA00 */ sll $t9, $a2, 8 -/* 00921C 8000861C 0C00127E */ jal func_800049F8 -/* 009220 80008620 03203025 */ move $a2, $t9 -/* 009224 80008624 8E240018 */ lw $a0, 0x18($s1) -/* 009228 80008628 8EE60000 */ lw $a2, ($s7) -/* 00922C 8000862C 0C00127E */ jal func_800049F8 -/* 009230 80008630 24050010 */ li $a1, 16 -/* 009234 80008634 8FA800AC */ lw $t0, 0xac($sp) -/* 009238 80008638 4600A306 */ mov.s $f12, $f20 -/* 00923C 8000863C 85060000 */ lh $a2, ($t0) -/* 009240 80008640 0C002430 */ jal func_800090C0 -/* 009244 80008644 4600B386 */ mov.s $f14, $f22 -/* 009248 80008648 8FA900B0 */ lw $t1, 0xb0($sp) -/* 00924C 8000864C 24010001 */ li $at, 1 -/* 009250 80008650 11210002 */ beq $t1, $at, .L8000865C -/* 009254 80008654 00403025 */ move $a2, $v0 -/* 009258 80008658 24060040 */ li $a2, 64 -.L8000865C: -/* 00925C 8000865C 8E240018 */ lw $a0, 0x18($s1) -/* 009260 80008660 0C00127E */ jal func_800049F8 -/* 009264 80008664 24050004 */ li $a1, 4 -/* 009268 80008668 8E240018 */ lw $a0, 0x18($s1) -/* 00926C 8000866C 8E250000 */ lw $a1, ($s1) -/* 009270 80008670 8E260004 */ lw $a2, 4($s1) -/* 009274 80008674 8E270008 */ lw $a3, 8($s1) -/* 009278 80008678 0C0026DF */ jal func_80009B7C -/* 00927C 8000867C 00000000 */ nop -/* 009280 80008680 8E240018 */ lw $a0, 0x18($s1) -/* 009284 80008684 92250021 */ lbu $a1, 0x21($s1) -/* 009288 80008688 0C001181 */ jal func_80004604 -/* 00928C 8000868C 00000000 */ nop -.L80008690: -/* 009290 80008690 10000109 */ b .L80008AB8 -/* 009294 80008694 A2320012 */ sb $s2, 0x12($s1) -/* 009298 80008698 0083082A */ slt $at, $a0, $v1 -.L8000869C: -/* 00929C 8000869C 10200107 */ beqz $at, .L80008ABC -/* 0092A0 800086A0 8FA80260 */ lw $t0, 0x260($sp) -/* 0092A4 800086A4 922A0012 */ lbu $t2, 0x12($s1) -/* 0092A8 800086A8 00000000 */ nop -/* 0092AC 800086AC 11400103 */ beqz $t2, .L80008ABC -/* 0092B0 800086B0 8FA80260 */ lw $t0, 0x260($sp) -/* 0092B4 800086B4 10000100 */ b .L80008AB8 -/* 0092B8 800086B8 A2200012 */ sb $zero, 0x12($s1) -.L800086BC: -/* 0092BC 800086BC 19600063 */ blez $t3, .L8000884C -/* 0092C0 800086C0 0000F025 */ move $fp, $zero -/* 0092C4 800086C4 8FB300AC */ lw $s3, 0xac($sp) -/* 0092C8 800086C8 00000000 */ nop -.L800086CC: -/* 0092CC 800086CC C6300000 */ lwc1 $f16, ($s1) -/* 0092D0 800086D0 C672000C */ lwc1 $f18, 0xc($s3) -/* 0092D4 800086D4 C6260004 */ lwc1 $f6, 4($s1) -/* 0092D8 800086D8 46128501 */ sub.s $f20, $f16, $f18 -/* 0092DC 800086DC C6640010 */ lwc1 $f4, 0x10($s3) -/* 0092E0 800086E0 4614A402 */ mul.s $f16, $f20, $f20 -/* 0092E4 800086E4 46043001 */ sub.s $f0, $f6, $f4 -/* 0092E8 800086E8 C6280008 */ lwc1 $f8, 8($s1) -/* 0092EC 800086EC C66A0014 */ lwc1 $f10, 0x14($s3) -/* 0092F0 800086F0 46000482 */ mul.s $f18, $f0, $f0 -/* 0092F4 800086F4 460A4581 */ sub.s $f22, $f8, $f10 -/* 0092F8 800086F8 4616B102 */ mul.s $f4, $f22, $f22 -/* 0092FC 800086FC 46128180 */ add.s $f6, $f16, $f18 -/* 009300 80008700 0C0326B4 */ jal sqrtf -/* 009304 80008704 46043300 */ add.s $f12, $f6, $f4 -/* 009308 80008708 444CF800 */ cfc1 $t4, $31 -/* 00930C 8000870C 8E240014 */ lw $a0, 0x14($s1) -/* 009310 80008710 35810003 */ ori $at, $t4, 3 -/* 009314 80008714 38210002 */ xori $at, $at, 2 -/* 009318 80008718 44C1F800 */ ctc1 $at, $31 -/* 00931C 8000871C 8FA90254 */ lw $t1, 0x254($sp) -/* 009320 80008720 46000224 */ cvt.w.s $f8, $f0 -/* 009324 80008724 44034000 */ mfc1 $v1, $f8 -/* 009328 80008728 44CCF800 */ ctc1 $t4, $31 -/* 00932C 8000872C 0064082A */ slt $at, $v1, $a0 -/* 009330 80008730 10200043 */ beqz $at, .L80008840 -/* 009334 80008734 8FAA00B0 */ lw $t2, 0xb0($sp) -/* 009338 80008738 922D0020 */ lbu $t5, 0x20($s1) -/* 00933C 8000873C 0083C023 */ subu $t8, $a0, $v1 -/* 009340 80008740 15A0001B */ bnez $t5, .L800087B0 -/* 009344 80008744 00000000 */ nop -/* 009348 80008748 44835000 */ mtc1 $v1, $f10 -/* 00934C 8000874C 44849000 */ mtc1 $a0, $f18 -/* 009350 80008750 46805420 */ cvt.s.w $f16, $f10 -/* 009354 80008754 922E000E */ lbu $t6, 0xe($s1) -/* 009358 80008758 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 00935C 8000875C 468091A0 */ cvt.s.w $f6, $f18 -/* 009360 80008760 448E5000 */ mtc1 $t6, $f10 -/* 009364 80008764 46068103 */ div.s $f4, $f16, $f6 -/* 009368 80008768 468054A0 */ cvt.s.w $f18, $f10 -/* 00936C 8000876C 05C10004 */ bgez $t6, .L80008780 -/* 009370 80008770 4604D201 */ sub.s $f8, $f26, $f4 -/* 009374 80008774 44818000 */ mtc1 $at, $f16 -/* 009378 80008778 00000000 */ nop -/* 00937C 8000877C 46109480 */ add.s $f18, $f18, $f16 -.L80008780: -/* 009380 80008780 46124182 */ mul.s $f6, $f8, $f18 -/* 009384 80008784 444FF800 */ cfc1 $t7, $31 -/* 009388 80008788 00000000 */ nop -/* 00938C 8000878C 35E10003 */ ori $at, $t7, 3 -/* 009390 80008790 38210002 */ xori $at, $at, 2 -/* 009394 80008794 44C1F800 */ ctc1 $at, $31 -/* 009398 80008798 00000000 */ nop -/* 00939C 8000879C 46003124 */ cvt.w.s $f4, $f6 -/* 0093A0 800087A0 44022000 */ mfc1 $v0, $f4 -/* 0093A4 800087A4 44CFF800 */ ctc1 $t7, $31 -/* 0093A8 800087A8 1000001C */ b .L8000881C -/* 0093AC 800087AC 0122082A */ slt $at, $t1, $v0 -.L800087B0: -/* 0093B0 800087B0 44985000 */ mtc1 $t8, $f10 -/* 0093B4 800087B4 44844000 */ mtc1 $a0, $f8 -/* 0093B8 800087B8 46805420 */ cvt.s.w $f16, $f10 -/* 0093BC 800087BC 9239000E */ lbu $t9, 0xe($s1) -/* 0093C0 800087C0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0093C4 800087C4 468044A0 */ cvt.s.w $f18, $f8 -/* 0093C8 800087C8 44992000 */ mtc1 $t9, $f4 -/* 0093CC 800087CC 46128003 */ div.s $f0, $f16, $f18 -/* 0093D0 800087D0 468022A0 */ cvt.s.w $f10, $f4 -/* 0093D4 800087D4 46000182 */ mul.s $f6, $f0, $f0 -/* 0093D8 800087D8 07210004 */ bgez $t9, .L800087EC -/* 0093DC 800087DC 00000000 */ nop -/* 0093E0 800087E0 44814000 */ mtc1 $at, $f8 -/* 0093E4 800087E4 00000000 */ nop -/* 0093E8 800087E8 46085280 */ add.s $f10, $f10, $f8 -.L800087EC: -/* 0093EC 800087EC 460A3402 */ mul.s $f16, $f6, $f10 -/* 0093F0 800087F0 4448F800 */ cfc1 $t0, $31 -/* 0093F4 800087F4 00000000 */ nop -/* 0093F8 800087F8 35010003 */ ori $at, $t0, 3 -/* 0093FC 800087FC 38210002 */ xori $at, $at, 2 -/* 009400 80008800 44C1F800 */ ctc1 $at, $31 -/* 009404 80008804 00000000 */ nop -/* 009408 80008808 460084A4 */ cvt.w.s $f18, $f16 -/* 00940C 8000880C 44C8F800 */ ctc1 $t0, $31 -/* 009410 80008810 44029000 */ mfc1 $v0, $f18 -/* 009414 80008814 00000000 */ nop -/* 009418 80008818 0122082A */ slt $at, $t1, $v0 -.L8000881C: -/* 00941C 8000881C 10200008 */ beqz $at, .L80008840 -/* 009420 80008820 8FAA00B0 */ lw $t2, 0xb0($sp) -/* 009424 80008824 AFA20254 */ sw $v0, 0x254($sp) -/* 009428 80008828 86660000 */ lh $a2, ($s3) -/* 00942C 8000882C 4600A306 */ mov.s $f12, $f20 -/* 009430 80008830 0C002430 */ jal func_800090C0 -/* 009434 80008834 4600B386 */ mov.s $f14, $f22 -/* 009438 80008838 AFA20250 */ sw $v0, 0x250($sp) -/* 00943C 8000883C 8FAA00B0 */ lw $t2, 0xb0($sp) -.L80008840: -/* 009440 80008840 27DE0001 */ addiu $fp, $fp, 1 -/* 009444 80008844 17CAFFA1 */ bne $fp, $t2, .L800086CC -/* 009448 80008848 26730044 */ addiu $s3, $s3, 0x44 -.L8000884C: -/* 00944C 8000884C 92220010 */ lbu $v0, 0x10($s1) -/* 009450 80008850 8FAB0254 */ lw $t3, 0x254($sp) -/* 009454 80008854 8FAC00B0 */ lw $t4, 0xb0($sp) -/* 009458 80008858 0162082A */ slt $at, $t3, $v0 -/* 00945C 8000885C 10200033 */ beqz $at, .L8000892C -/* 009460 80008860 3C01800E */ lui $at, %hi(D_800E4F14) # $at, 0x800e -/* 009464 80008864 C4384F14 */ lwc1 $f24, %lo(D_800E4F14)($at) -/* 009468 80008868 1980002F */ blez $t4, .L80008928 -/* 00946C 8000886C 0000F025 */ move $fp, $zero -/* 009470 80008870 8FB300AC */ lw $s3, 0xac($sp) -/* 009474 80008874 00000000 */ nop -.L80008878: -/* 009478 80008878 C6240000 */ lwc1 $f4, ($s1) -/* 00947C 8000887C C668000C */ lwc1 $f8, 0xc($s3) -/* 009480 80008880 C6260004 */ lwc1 $f6, 4($s1) -/* 009484 80008884 46082501 */ sub.s $f20, $f4, $f8 -/* 009488 80008888 C66A0010 */ lwc1 $f10, 0x10($s3) -/* 00948C 8000888C 4614A102 */ mul.s $f4, $f20, $f20 -/* 009490 80008890 460A3001 */ sub.s $f0, $f6, $f10 -/* 009494 80008894 C6300008 */ lwc1 $f16, 8($s1) -/* 009498 80008898 C6720014 */ lwc1 $f18, 0x14($s3) -/* 00949C 8000889C 46000202 */ mul.s $f8, $f0, $f0 -/* 0094A0 800088A0 46128581 */ sub.s $f22, $f16, $f18 -/* 0094A4 800088A4 4616B282 */ mul.s $f10, $f22, $f22 -/* 0094A8 800088A8 46082180 */ add.s $f6, $f4, $f8 -/* 0094AC 800088AC 0C0326B4 */ jal sqrtf -/* 0094B0 800088B0 460A3300 */ add.s $f12, $f6, $f10 -/* 0094B4 800088B4 444DF800 */ cfc1 $t5, $31 -/* 0094B8 800088B8 00000000 */ nop -/* 0094BC 800088BC 35A10003 */ ori $at, $t5, 3 -/* 0094C0 800088C0 38210002 */ xori $at, $at, 2 -/* 0094C4 800088C4 44C1F800 */ ctc1 $at, $31 -/* 0094C8 800088C8 00000000 */ nop -/* 0094CC 800088CC 46000424 */ cvt.w.s $f16, $f0 -/* 0094D0 800088D0 44108000 */ mfc1 $s0, $f16 -/* 0094D4 800088D4 44CDF800 */ ctc1 $t5, $31 -/* 0094D8 800088D8 44909000 */ mtc1 $s0, $f18 -/* 0094DC 800088DC 00000000 */ nop -/* 0094E0 800088E0 46809120 */ cvt.s.w $f4, $f18 -/* 0094E4 800088E4 4618203C */ c.lt.s $f4, $f24 -/* 0094E8 800088E8 00000000 */ nop -/* 0094EC 800088EC 45000009 */ bc1f .L80008914 -/* 0094F0 800088F0 8FAE00B0 */ lw $t6, 0xb0($sp) -/* 0094F4 800088F4 86660000 */ lh $a2, ($s3) -/* 0094F8 800088F8 4600A306 */ mov.s $f12, $f20 -/* 0094FC 800088FC 0C002430 */ jal func_800090C0 -/* 009500 80008900 4600B386 */ mov.s $f14, $f22 -/* 009504 80008904 44904000 */ mtc1 $s0, $f8 -/* 009508 80008908 AFA20250 */ sw $v0, 0x250($sp) -/* 00950C 8000890C 46804620 */ cvt.s.w $f24, $f8 -/* 009510 80008910 8FAE00B0 */ lw $t6, 0xb0($sp) -.L80008914: -/* 009514 80008914 27DE0001 */ addiu $fp, $fp, 1 -/* 009518 80008918 17CEFFD7 */ bne $fp, $t6, .L80008878 -/* 00951C 8000891C 26730044 */ addiu $s3, $s3, 0x44 -/* 009520 80008920 92220010 */ lbu $v0, 0x10($s1) -/* 009524 80008924 00000000 */ nop -.L80008928: -/* 009528 80008928 AFA20254 */ sw $v0, 0x254($sp) -.L8000892C: -/* 00952C 8000892C 8FAF0254 */ lw $t7, 0x254($sp) -/* 009530 80008930 00000000 */ nop -/* 009534 80008934 29E1000B */ slti $at, $t7, 0xb -/* 009538 80008938 14200044 */ bnez $at, .L80008A4C -/* 00953C 8000893C 00000000 */ nop -/* 009540 80008940 8E240018 */ lw $a0, 0x18($s1) -/* 009544 80008944 00000000 */ nop -/* 009548 80008948 1480000F */ bnez $a0, .L80008988 -/* 00954C 8000894C 00000000 */ nop -/* 009550 80008950 92380022 */ lbu $t8, 0x22($s1) -/* 009554 80008954 00000000 */ nop -/* 009558 80008958 13000006 */ beqz $t8, .L80008974 -/* 00955C 8000895C 00000000 */ nop -/* 009560 80008960 92390011 */ lbu $t9, 0x11($s1) -/* 009564 80008964 00000000 */ nop -/* 009568 80008968 33280004 */ andi $t0, $t9, 4 -/* 00956C 8000896C 15000006 */ bnez $t0, .L80008988 -/* 009570 80008970 00000000 */ nop -.L80008974: -/* 009574 80008974 9624000C */ lhu $a0, 0xc($s1) -/* 009578 80008978 0C0007C5 */ jal func_80001F14 -/* 00957C 8000897C 26250018 */ addiu $a1, $s1, 0x18 -/* 009580 80008980 8E240018 */ lw $a0, 0x18($s1) -/* 009584 80008984 A2320022 */ sb $s2, 0x22($s1) -.L80008988: -/* 009588 80008988 1080002B */ beqz $a0, .L80008A38 -/* 00958C 8000898C 00000000 */ nop -/* 009590 80008990 9229000F */ lbu $t1, 0xf($s1) -/* 009594 80008994 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 009598 80008998 44893000 */ mtc1 $t1, $f6 -/* 00959C 8000899C 05210004 */ bgez $t1, .L800089B0 -/* 0095A0 800089A0 468032A0 */ cvt.s.w $f10, $f6 -/* 0095A4 800089A4 44818000 */ mtc1 $at, $f16 -/* 0095A8 800089A8 00000000 */ nop -/* 0095AC 800089AC 46105280 */ add.s $f10, $f10, $f16 -.L800089B0: -/* 0095B0 800089B0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 0095B4 800089B4 44819000 */ mtc1 $at, $f18 -/* 0095B8 800089B8 8FA60254 */ lw $a2, 0x254($sp) -/* 0095BC 800089BC 46125103 */ div.s $f4, $f10, $f18 -/* 0095C0 800089C0 00065200 */ sll $t2, $a2, 8 -/* 0095C4 800089C4 01403025 */ move $a2, $t2 -/* 0095C8 800089C8 24050008 */ li $a1, 8 -/* 0095CC 800089CC E7A40098 */ swc1 $f4, 0x98($sp) -/* 0095D0 800089D0 8E240018 */ lw $a0, 0x18($s1) -/* 0095D4 800089D4 0C00127E */ jal func_800049F8 -/* 0095D8 800089D8 00000000 */ nop -/* 0095DC 800089DC 8E240018 */ lw $a0, 0x18($s1) -/* 0095E0 800089E0 8FA60098 */ lw $a2, 0x98($sp) -/* 0095E4 800089E4 0C00127E */ jal func_800049F8 -/* 0095E8 800089E8 24050010 */ li $a1, 16 -/* 0095EC 800089EC 8FAB00B0 */ lw $t3, 0xb0($sp) -/* 0095F0 800089F0 24010001 */ li $at, 1 -/* 0095F4 800089F4 11610002 */ beq $t3, $at, .L80008A00 -/* 0095F8 800089F8 240C0040 */ li $t4, 64 -/* 0095FC 800089FC AFAC0250 */ sw $t4, 0x250($sp) -.L80008A00: -/* 009600 80008A00 8E240018 */ lw $a0, 0x18($s1) -/* 009604 80008A04 8FA60250 */ lw $a2, 0x250($sp) -/* 009608 80008A08 0C00127E */ jal func_800049F8 -/* 00960C 80008A0C 24050004 */ li $a1, 4 -/* 009610 80008A10 8E240018 */ lw $a0, 0x18($s1) -/* 009614 80008A14 92250021 */ lbu $a1, 0x21($s1) -/* 009618 80008A18 0C001181 */ jal func_80004604 -/* 00961C 80008A1C 00000000 */ nop -/* 009620 80008A20 8E240018 */ lw $a0, 0x18($s1) -/* 009624 80008A24 8E250000 */ lw $a1, ($s1) -/* 009628 80008A28 8E260004 */ lw $a2, 4($s1) -/* 00962C 80008A2C 8E270008 */ lw $a3, 8($s1) -/* 009630 80008A30 0C0026DF */ jal func_80009B7C -/* 009634 80008A34 00000000 */ nop -.L80008A38: -/* 009638 80008A38 92220011 */ lbu $v0, 0x11($s1) -/* 00963C 80008A3C 00000000 */ nop -/* 009640 80008A40 304D0004 */ andi $t5, $v0, 4 -/* 009644 80008A44 10000010 */ b .L80008A88 -/* 009648 80008A48 01A01025 */ move $v0, $t5 -.L80008A4C: -/* 00964C 80008A4C 8E240018 */ lw $a0, 0x18($s1) -/* 009650 80008A50 00000000 */ nop -/* 009654 80008A54 10800008 */ beqz $a0, .L80008A78 -/* 009658 80008A58 00000000 */ nop -/* 00965C 80008A5C 0C001223 */ jal func_8000488C -/* 009660 80008A60 00000000 */ nop -/* 009664 80008A64 92220011 */ lbu $v0, 0x11($s1) -/* 009668 80008A68 00000000 */ nop -/* 00966C 80008A6C 304E0004 */ andi $t6, $v0, 4 -/* 009670 80008A70 10000005 */ b .L80008A88 -/* 009674 80008A74 01C01025 */ move $v0, $t6 -.L80008A78: -/* 009678 80008A78 92220011 */ lbu $v0, 0x11($s1) -/* 00967C 80008A7C A2320022 */ sb $s2, 0x22($s1) -/* 009680 80008A80 304F0004 */ andi $t7, $v0, 4 -/* 009684 80008A84 01E01025 */ move $v0, $t7 -.L80008A88: -/* 009688 80008A88 1040000C */ beqz $v0, .L80008ABC -/* 00968C 80008A8C 8FA80260 */ lw $t0, 0x260($sp) -/* 009690 80008A90 92380022 */ lbu $t8, 0x22($s1) -/* 009694 80008A94 00000000 */ nop -/* 009698 80008A98 13000008 */ beqz $t8, .L80008ABC -/* 00969C 80008A9C 8FA80260 */ lw $t0, 0x260($sp) -/* 0096A0 80008AA0 8E390018 */ lw $t9, 0x18($s1) -/* 0096A4 80008AA4 8FA40260 */ lw $a0, 0x260($sp) -/* 0096A8 80008AA8 17200004 */ bnez $t9, .L80008ABC -/* 0096AC 80008AAC 8FA80260 */ lw $t0, 0x260($sp) -/* 0096B0 80008AB0 0C0028BA */ jal func_8000A2E8 -/* 0096B4 80008AB4 00000000 */ nop -.L80008AB8: -/* 0096B8 80008AB8 8FA80260 */ lw $t0, 0x260($sp) -.L80008ABC: -/* 0096BC 80008ABC 96AA0000 */ lhu $t2, ($s5) -/* 0096C0 80008AC0 25090001 */ addiu $t1, $t0, 1 -/* 0096C4 80008AC4 012A082A */ slt $at, $t1, $t2 -/* 0096C8 80008AC8 AFA90260 */ sw $t1, 0x260($sp) -/* 0096CC 80008ACC 1420FE83 */ bnez $at, .L800084DC -/* 0096D0 80008AD0 26940004 */ addiu $s4, $s4, 4 -/* 0096D4 80008AD4 AFA00260 */ sw $zero, 0x260($sp) -.L80008AD8: -/* 0096D8 80008AD8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0096DC 80008ADC 4481D000 */ mtc1 $at, $f26 -/* 0096E0 80008AE0 3C014280 */ li $at, 0x42800000 # 64.000000 -/* 0096E4 80008AE4 4481B000 */ mtc1 $at, $f22 -/* 0096E8 80008AE8 3C0143C8 */ li $at, 0x43C80000 # 400.000000 -/* 0096EC 80008AEC 3C028012 */ lui $v0, %hi(D_80119C58) # $v0, 0x8012 -/* 0096F0 80008AF0 4481A000 */ mtc1 $at, $f20 -/* 0096F4 80008AF4 24429C58 */ addiu $v0, %lo(D_80119C58) # addiu $v0, $v0, -0x63a8 -.L80008AF8: -/* 0096F8 80008AF8 8C4B016C */ lw $t3, 0x16c($v0) -/* 0096FC 80008AFC 0040B825 */ move $s7, $v0 -/* 009700 80008B00 11600130 */ beqz $t3, .L80008FC4 -/* 009704 80008B04 AFA20088 */ sw $v0, 0x88($sp) -/* 009708 80008B08 93A40263 */ lbu $a0, 0x263($sp) -/* 00970C 80008B0C 0C00267B */ jal func_800099EC -/* 009710 80008B10 AFA20088 */ sw $v0, 0x88($sp) -/* 009714 80008B14 1040012C */ beqz $v0, .L80008FC8 -/* 009718 80008B18 8FAB0260 */ lw $t3, 0x260($sp) -/* 00971C 80008B1C 8FAC00B0 */ lw $t4, 0xb0($sp) -/* 009720 80008B20 AFA00254 */ sw $zero, 0x254($sp) -/* 009724 80008B24 198000C7 */ blez $t4, .L80008E44 -/* 009728 80008B28 0000F025 */ move $fp, $zero -/* 00972C 80008B2C 8FA20088 */ lw $v0, 0x88($sp) -/* 009730 80008B30 00000000 */ nop -/* 009734 80008B34 244D0004 */ addiu $t5, $v0, 4 -/* 009738 80008B38 AFAD0070 */ sw $t5, 0x70($sp) -/* 00973C 80008B3C 8FA20088 */ lw $v0, 0x88($sp) -.L80008B40: -/* 009740 80008B40 8FB40070 */ lw $s4, 0x70($sp) -/* 009744 80008B44 8C430170 */ lw $v1, 0x170($v0) -/* 009748 80008B48 804E017C */ lb $t6, 0x17c($v0) -/* 00974C 80008B4C 0000A825 */ move $s5, $zero -/* 009750 80008B50 00009025 */ move $s2, $zero -/* 009754 80008B54 19C0002D */ blez $t6, .L80008C0C -/* 009758 80008B58 0060B025 */ move $s6, $v1 -/* 00975C 80008B5C 001EC100 */ sll $t8, $fp, 4 -/* 009760 80008B60 8FAF00AC */ lw $t7, 0xac($sp) -/* 009764 80008B64 031EC021 */ addu $t8, $t8, $fp -/* 009768 80008B68 0018C080 */ sll $t8, $t8, 2 -/* 00976C 80008B6C 27B001A8 */ addiu $s0, $sp, 0x1a8 -/* 009770 80008B70 27B1012C */ addiu $s1, $sp, 0x12c -/* 009774 80008B74 01F89821 */ addu $s3, $t7, $t8 -.L80008B78: -/* 009778 80008B78 C66C000C */ lwc1 $f12, 0xc($s3) -/* 00977C 80008B7C C66E0010 */ lwc1 $f14, 0x10($s3) -/* 009780 80008B80 8E660014 */ lw $a2, 0x14($s3) -/* 009784 80008B84 27B9022C */ addiu $t9, $sp, 0x22c -/* 009788 80008B88 27A80228 */ addiu $t0, $sp, 0x228 -/* 00978C 80008B8C 27A90224 */ addiu $t1, $sp, 0x224 -/* 009790 80008B90 AFA90018 */ sw $t1, 0x18($sp) -/* 009794 80008B94 AFA80014 */ sw $t0, 0x14($sp) -/* 009798 80008B98 AFB90010 */ sw $t9, 0x10($sp) -/* 00979C 80008B9C 0C0024AA */ jal func_800092A8 -/* 0097A0 80008BA0 02803825 */ move $a3, $s4 -/* 0097A4 80008BA4 AE020000 */ sw $v0, ($s0) -/* 0097A8 80008BA8 C66A0014 */ lwc1 $f10, 0x14($s3) -/* 0097AC 80008BAC C7B00224 */ lwc1 $f16, 0x224($sp) -/* 0097B0 80008BB0 C666000C */ lwc1 $f6, 0xc($s3) -/* 0097B4 80008BB4 C7A8022C */ lwc1 $f8, 0x22c($sp) -/* 0097B8 80008BB8 86660000 */ lh $a2, ($s3) -/* 0097BC 80008BBC 460A8381 */ sub.s $f14, $f16, $f10 -/* 0097C0 80008BC0 0C002430 */ jal func_800090C0 -/* 0097C4 80008BC4 46064301 */ sub.s $f12, $f8, $f6 -/* 0097C8 80008BC8 8E030000 */ lw $v1, ($s0) -/* 0097CC 80008BCC AE220000 */ sw $v0, ($s1) -/* 0097D0 80008BD0 0076082A */ slt $at, $v1, $s6 -/* 0097D4 80008BD4 10200002 */ beqz $at, .L80008BE0 -/* 0097D8 80008BD8 2694000C */ addiu $s4, $s4, 0xc -/* 0097DC 80008BDC 0060B025 */ move $s6, $v1 -.L80008BE0: -/* 0097E0 80008BE0 82EA017C */ lb $t2, 0x17c($s7) -/* 0097E4 80008BE4 26520001 */ addiu $s2, $s2, 1 -/* 0097E8 80008BE8 024A082A */ slt $at, $s2, $t2 -/* 0097EC 80008BEC 26100004 */ addiu $s0, $s0, 4 -/* 0097F0 80008BF0 26310004 */ addiu $s1, $s1, 4 -/* 0097F4 80008BF4 1420FFE0 */ bnez $at, .L80008B78 -/* 0097F8 80008BF8 02A3A821 */ addu $s5, $s5, $v1 -/* 0097FC 80008BFC 8FA20088 */ lw $v0, 0x88($sp) -/* 009800 80008C00 00000000 */ nop -/* 009804 80008C04 8C430170 */ lw $v1, 0x170($v0) -/* 009808 80008C08 00000000 */ nop -.L80008C0C: -/* 00980C 80008C0C 4483C000 */ mtc1 $v1, $f24 -/* 009810 80008C10 904C0174 */ lbu $t4, 0x174($v0) -/* 009814 80008C14 4680C0A0 */ cvt.s.w $f2, $f24 -/* 009818 80008C18 448CC000 */ mtc1 $t4, $f24 -/* 00981C 80008C1C 05810005 */ bgez $t4, .L80008C34 -/* 009820 80008C20 4680C320 */ cvt.s.w $f12, $f24 -/* 009824 80008C24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 009828 80008C28 44814000 */ mtc1 $at, $f8 -/* 00982C 80008C2C 00000000 */ nop -/* 009830 80008C30 46086300 */ add.s $f12, $f12, $f8 -.L80008C34: -/* 009834 80008C34 904D017D */ lbu $t5, 0x17d($v0) -/* 009838 80008C38 8FB90254 */ lw $t9, 0x254($sp) -/* 00983C 80008C3C 15A00013 */ bnez $t5, .L80008C8C -/* 009840 80008C40 00767823 */ subu $t7, $v1, $s6 -/* 009844 80008C44 44963000 */ mtc1 $s6, $f6 -/* 009848 80008C48 00000000 */ nop -/* 00984C 80008C4C 46803420 */ cvt.s.w $f16, $f6 -/* 009850 80008C50 00000000 */ nop -/* 009854 80008C54 46028283 */ div.s $f10, $f16, $f2 -/* 009858 80008C58 460AD481 */ sub.s $f18, $f26, $f10 -/* 00985C 80008C5C 460C9102 */ mul.s $f4, $f18, $f12 -/* 009860 80008C60 444EF800 */ cfc1 $t6, $31 -/* 009864 80008C64 00000000 */ nop -/* 009868 80008C68 35C10003 */ ori $at, $t6, 3 -/* 00986C 80008C6C 38210002 */ xori $at, $at, 2 -/* 009870 80008C70 44C1F800 */ ctc1 $at, $31 -/* 009874 80008C74 00000000 */ nop -/* 009878 80008C78 46002224 */ cvt.w.s $f8, $f4 -/* 00987C 80008C7C 44024000 */ mfc1 $v0, $f8 -/* 009880 80008C80 44CEF800 */ ctc1 $t6, $31 -/* 009884 80008C84 10000014 */ b .L80008CD8 -/* 009888 80008C88 0059082A */ slt $at, $v0, $t9 -.L80008C8C: -/* 00988C 80008C8C 448F3000 */ mtc1 $t7, $f6 -/* 009890 80008C90 00000000 */ nop -/* 009894 80008C94 46803420 */ cvt.s.w $f16, $f6 -/* 009898 80008C98 00000000 */ nop -/* 00989C 80008C9C 46028003 */ div.s $f0, $f16, $f2 -/* 0098A0 80008CA0 46000282 */ mul.s $f10, $f0, $f0 -/* 0098A4 80008CA4 00000000 */ nop -/* 0098A8 80008CA8 460C5482 */ mul.s $f18, $f10, $f12 -/* 0098AC 80008CAC 4458F800 */ cfc1 $t8, $31 -/* 0098B0 80008CB0 00000000 */ nop -/* 0098B4 80008CB4 37010003 */ ori $at, $t8, 3 -/* 0098B8 80008CB8 38210002 */ xori $at, $at, 2 -/* 0098BC 80008CBC 44C1F800 */ ctc1 $at, $31 -/* 0098C0 80008CC0 00000000 */ nop -/* 0098C4 80008CC4 46009124 */ cvt.w.s $f4, $f18 -/* 0098C8 80008CC8 44D8F800 */ ctc1 $t8, $31 -/* 0098CC 80008CCC 44022000 */ mfc1 $v0, $f4 -/* 0098D0 80008CD0 00000000 */ nop -/* 0098D4 80008CD4 0059082A */ slt $at, $v0, $t9 -.L80008CD8: -/* 0098D8 80008CD8 14200057 */ bnez $at, .L80008E38 -/* 0098DC 80008CDC 8FAC00B0 */ lw $t4, 0xb0($sp) -/* 0098E0 80008CE0 8FA80088 */ lw $t0, 0x88($sp) -/* 0098E4 80008CE4 AFA20254 */ sw $v0, 0x254($sp) -/* 0098E8 80008CE8 8103017C */ lb $v1, 0x17c($t0) -/* 0098EC 80008CEC 24010001 */ li $at, 1 -/* 0098F0 80008CF0 14610004 */ bne $v1, $at, .L80008D04 -/* 0098F4 80008CF4 00002025 */ move $a0, $zero -/* 0098F8 80008CF8 8FA9012C */ lw $t1, 0x12c($sp) -/* 0098FC 80008CFC 10000036 */ b .L80008DD8 -/* 009900 80008D00 AFA90250 */ sw $t1, 0x250($sp) -.L80008D04: -/* 009904 80008D04 00009025 */ move $s2, $zero -/* 009908 80008D08 18600011 */ blez $v1, .L80008D50 -/* 00990C 80008D0C AFA00250 */ sw $zero, 0x250($sp) -/* 009910 80008D10 27B001A8 */ addiu $s0, $sp, 0x1a8 -/* 009914 80008D14 27A200B8 */ addiu $v0, $sp, 0xb8 -.L80008D18: -/* 009918 80008D18 8E0A0000 */ lw $t2, ($s0) -/* 00991C 80008D1C 26520001 */ addiu $s2, $s2, 1 -/* 009920 80008D20 02AA1823 */ subu $v1, $s5, $t2 -/* 009924 80008D24 AC430000 */ sw $v1, ($v0) -/* 009928 80008D28 82EB017C */ lb $t3, 0x17c($s7) -/* 00992C 80008D2C 26100004 */ addiu $s0, $s0, 4 -/* 009930 80008D30 024B082A */ slt $at, $s2, $t3 -/* 009934 80008D34 24420004 */ addiu $v0, $v0, 4 -/* 009938 80008D38 1420FFF7 */ bnez $at, .L80008D18 -/* 00993C 80008D3C 00832021 */ addu $a0, $a0, $v1 -/* 009940 80008D40 8FAC0088 */ lw $t4, 0x88($sp) -/* 009944 80008D44 00000000 */ nop -/* 009948 80008D48 8183017C */ lb $v1, 0x17c($t4) -/* 00994C 80008D4C 00000000 */ nop -.L80008D50: -/* 009950 80008D50 18600021 */ blez $v1, .L80008DD8 -/* 009954 80008D54 27B1012C */ addiu $s1, $sp, 0x12c -/* 009958 80008D58 82E5017C */ lb $a1, 0x17c($s7) -/* 00995C 80008D5C 44844000 */ mtc1 $a0, $f8 -/* 009960 80008D60 27A200B8 */ addiu $v0, $sp, 0xb8 -/* 009964 80008D64 00057080 */ sll $t6, $a1, 2 -/* 009968 80008D68 8FA40250 */ lw $a0, 0x250($sp) -/* 00996C 80008D6C 01C21821 */ addu $v1, $t6, $v0 -/* 009970 80008D70 46804020 */ cvt.s.w $f0, $f8 -.L80008D74: -/* 009974 80008D74 8C4F0000 */ lw $t7, ($v0) -/* 009978 80008D78 8E380000 */ lw $t8, ($s1) -/* 00997C 80008D7C 448F3000 */ mtc1 $t7, $f6 -/* 009980 80008D80 44989000 */ mtc1 $t8, $f18 -/* 009984 80008D84 46803420 */ cvt.s.w $f16, $f6 -/* 009988 80008D88 44843000 */ mtc1 $a0, $f6 -/* 00998C 80008D8C 24420004 */ addiu $v0, $v0, 4 -/* 009990 80008D90 46008283 */ div.s $f10, $f16, $f0 -/* 009994 80008D94 46809120 */ cvt.s.w $f4, $f18 -/* 009998 80008D98 26310004 */ addiu $s1, $s1, 4 -/* 00999C 80008D9C 46803420 */ cvt.s.w $f16, $f6 -/* 0099A0 80008DA0 46045202 */ mul.s $f8, $f10, $f4 -/* 0099A4 80008DA4 46088480 */ add.s $f18, $f16, $f8 -/* 0099A8 80008DA8 4459F800 */ cfc1 $t9, $31 -/* 0099AC 80008DAC 00000000 */ nop -/* 0099B0 80008DB0 37210003 */ ori $at, $t9, 3 -/* 0099B4 80008DB4 38210002 */ xori $at, $at, 2 -/* 0099B8 80008DB8 44C1F800 */ ctc1 $at, $31 -/* 0099BC 80008DBC 0043082B */ sltu $at, $v0, $v1 -/* 0099C0 80008DC0 460092A4 */ cvt.w.s $f10, $f18 -/* 0099C4 80008DC4 44045000 */ mfc1 $a0, $f10 -/* 0099C8 80008DC8 44D9F800 */ ctc1 $t9, $31 -/* 0099CC 80008DCC 1420FFE9 */ bnez $at, .L80008D74 -/* 0099D0 80008DD0 00000000 */ nop -/* 0099D4 80008DD4 AFA40250 */ sw $a0, 0x250($sp) -.L80008DD8: -/* 0099D8 80008DD8 2AC10190 */ slti $at, $s6, 0x190 -/* 0099DC 80008DDC 10200016 */ beqz $at, .L80008E38 -/* 0099E0 80008DE0 8FAC00B0 */ lw $t4, 0xb0($sp) -/* 0099E4 80008DE4 44968000 */ mtc1 $s6, $f16 -/* 0099E8 80008DE8 8FA80250 */ lw $t0, 0x250($sp) -/* 0099EC 80008DEC 46808220 */ cvt.s.w $f8, $f16 -/* 0099F0 80008DF0 2509FFC0 */ addiu $t1, $t0, -0x40 -/* 0099F4 80008DF4 44892000 */ mtc1 $t1, $f4 -/* 0099F8 80008DF8 46144483 */ div.s $f18, $f8, $f20 -/* 0099FC 80008DFC 468021A0 */ cvt.s.w $f6, $f4 -/* 009A00 80008E00 46123282 */ mul.s $f10, $f6, $f18 -/* 009A04 80008E04 46165100 */ add.s $f4, $f10, $f22 -/* 009A08 80008E08 444AF800 */ cfc1 $t2, $31 -/* 009A0C 80008E0C 00000000 */ nop -/* 009A10 80008E10 35410003 */ ori $at, $t2, 3 -/* 009A14 80008E14 38210002 */ xori $at, $at, 2 -/* 009A18 80008E18 44C1F800 */ ctc1 $at, $31 -/* 009A1C 80008E1C 00000000 */ nop -/* 009A20 80008E20 46002424 */ cvt.w.s $f16, $f4 -/* 009A24 80008E24 440B8000 */ mfc1 $t3, $f16 -/* 009A28 80008E28 44CAF800 */ ctc1 $t2, $31 -/* 009A2C 80008E2C AFAB0250 */ sw $t3, 0x250($sp) -/* 009A30 80008E30 00000000 */ nop -/* 009A34 80008E34 8FAC00B0 */ lw $t4, 0xb0($sp) -.L80008E38: -/* 009A38 80008E38 27DE0001 */ addiu $fp, $fp, 1 -/* 009A3C 80008E3C 17CCFF40 */ bne $fp, $t4, .L80008B40 -/* 009A40 80008E40 8FA20088 */ lw $v0, 0x88($sp) -.L80008E44: -/* 009A44 80008E44 8FAE0088 */ lw $t6, 0x88($sp) -/* 009A48 80008E48 8FAD0254 */ lw $t5, 0x254($sp) -/* 009A4C 80008E4C 91C20000 */ lbu $v0, ($t6) -/* 009A50 80008E50 24010001 */ li $at, 1 -/* 009A54 80008E54 1440004C */ bnez $v0, .L80008F88 -/* 009A58 80008E58 00000000 */ nop -/* 009A5C 80008E5C 91C20175 */ lbu $v0, 0x175($t6) -/* 009A60 80008E60 00000000 */ nop -/* 009A64 80008E64 01A2082A */ slt $at, $t5, $v0 -/* 009A68 80008E68 10200003 */ beqz $at, .L80008E78 -/* 009A6C 80008E6C 8FAF0254 */ lw $t7, 0x254($sp) -/* 009A70 80008E70 AFA20254 */ sw $v0, 0x254($sp) -/* 009A74 80008E74 8FAF0254 */ lw $t7, 0x254($sp) -.L80008E78: -/* 009A78 80008E78 8FB80088 */ lw $t8, 0x88($sp) -/* 009A7C 80008E7C 29E1000B */ slti $at, $t7, 0xb -/* 009A80 80008E80 14200038 */ bnez $at, .L80008F64 -/* 009A84 80008E84 8FAF0088 */ lw $t7, 0x88($sp) -/* 009A88 80008E88 93190176 */ lbu $t9, 0x176($t8) -/* 009A8C 80008E8C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 009A90 80008E90 44994000 */ mtc1 $t9, $f8 -/* 009A94 80008E94 07210004 */ bgez $t9, .L80008EA8 -/* 009A98 80008E98 468041A0 */ cvt.s.w $f6, $f8 -/* 009A9C 80008E9C 44819000 */ mtc1 $at, $f18 -/* 009AA0 80008EA0 00000000 */ nop -/* 009AA4 80008EA4 46123180 */ add.s $f6, $f6, $f18 -.L80008EA8: -/* 009AA8 80008EA8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 009AAC 80008EAC 44815000 */ mtc1 $at, $f10 -/* 009AB0 80008EB0 00000000 */ nop -/* 009AB4 80008EB4 460A3103 */ div.s $f4, $f6, $f10 -/* 009AB8 80008EB8 E7A40090 */ swc1 $f4, 0x90($sp) -/* 009ABC 80008EBC 8F040178 */ lw $a0, 0x178($t8) -/* 009AC0 80008EC0 00000000 */ nop -/* 009AC4 80008EC4 14800008 */ bnez $a0, .L80008EE8 -/* 009AC8 80008EC8 00000000 */ nop -/* 009ACC 80008ECC 9704016E */ lhu $a0, 0x16e($t8) -/* 009AD0 80008ED0 0C0007C5 */ jal func_80001F14 -/* 009AD4 80008ED4 27050178 */ addiu $a1, $t8, 0x178 -/* 009AD8 80008ED8 8FA80088 */ lw $t0, 0x88($sp) -/* 009ADC 80008EDC 00000000 */ nop -/* 009AE0 80008EE0 8D040178 */ lw $a0, 0x178($t0) -/* 009AE4 80008EE4 00000000 */ nop -.L80008EE8: -/* 009AE8 80008EE8 10800037 */ beqz $a0, .L80008FC8 -/* 009AEC 80008EEC 8FAB0260 */ lw $t3, 0x260($sp) -/* 009AF0 80008EF0 8FA60254 */ lw $a2, 0x254($sp) -/* 009AF4 80008EF4 24050008 */ li $a1, 8 -/* 009AF8 80008EF8 00064A00 */ sll $t1, $a2, 8 -/* 009AFC 80008EFC 0C00127E */ jal func_800049F8 -/* 009B00 80008F00 01203025 */ move $a2, $t1 -/* 009B04 80008F04 8FAA0088 */ lw $t2, 0x88($sp) -/* 009B08 80008F08 8FA60090 */ lw $a2, 0x90($sp) -/* 009B0C 80008F0C 8D440178 */ lw $a0, 0x178($t2) -/* 009B10 80008F10 0C00127E */ jal func_800049F8 -/* 009B14 80008F14 24050010 */ li $a1, 16 -/* 009B18 80008F18 8FAB00B0 */ lw $t3, 0xb0($sp) -/* 009B1C 80008F1C 24010001 */ li $at, 1 -/* 009B20 80008F20 11610002 */ beq $t3, $at, .L80008F2C -/* 009B24 80008F24 240C0040 */ li $t4, 64 -/* 009B28 80008F28 AFAC0250 */ sw $t4, 0x250($sp) -.L80008F2C: -/* 009B2C 80008F2C 8FAE0088 */ lw $t6, 0x88($sp) -/* 009B30 80008F30 8FA60250 */ lw $a2, 0x250($sp) -/* 009B34 80008F34 8DC40178 */ lw $a0, 0x178($t6) -/* 009B38 80008F38 0C00127E */ jal func_800049F8 -/* 009B3C 80008F3C 24050004 */ li $a1, 4 -/* 009B40 80008F40 8FAD0088 */ lw $t5, 0x88($sp) -/* 009B44 80008F44 00000000 */ nop -/* 009B48 80008F48 8DA40178 */ lw $a0, 0x178($t5) -/* 009B4C 80008F4C 91A5017E */ lbu $a1, 0x17e($t5) -/* 009B50 80008F50 0C001181 */ jal func_80004604 -/* 009B54 80008F54 00000000 */ nop -/* 009B58 80008F58 1000001B */ b .L80008FC8 -/* 009B5C 80008F5C 8FAB0260 */ lw $t3, 0x260($sp) -/* 009B60 80008F60 8FAF0088 */ lw $t7, 0x88($sp) -.L80008F64: -/* 009B64 80008F64 00000000 */ nop -/* 009B68 80008F68 8DE40178 */ lw $a0, 0x178($t7) -/* 009B6C 80008F6C 00000000 */ nop -/* 009B70 80008F70 10800015 */ beqz $a0, .L80008FC8 -/* 009B74 80008F74 8FAB0260 */ lw $t3, 0x260($sp) -/* 009B78 80008F78 0C001223 */ jal func_8000488C -/* 009B7C 80008F7C 00000000 */ nop -/* 009B80 80008F80 10000011 */ b .L80008FC8 -/* 009B84 80008F84 8FAB0260 */ lw $t3, 0x260($sp) -.L80008F88: -/* 009B88 80008F88 1441000F */ bne $v0, $at, .L80008FC8 -/* 009B8C 80008F8C 8FAB0260 */ lw $t3, 0x260($sp) -/* 009B90 80008F90 8FB9024C */ lw $t9, 0x24c($sp) -/* 009B94 80008F94 8FB80254 */ lw $t8, 0x254($sp) -/* 009B98 80008F98 00000000 */ nop -/* 009B9C 80008F9C 0338082A */ slt $at, $t9, $t8 -/* 009BA0 80008FA0 10200009 */ beqz $at, .L80008FC8 -/* 009BA4 80008FA4 8FAB0260 */ lw $t3, 0x260($sp) -/* 009BA8 80008FA8 8FA80250 */ lw $t0, 0x250($sp) -/* 009BAC 80008FAC 8FA90088 */ lw $t1, 0x88($sp) -/* 009BB0 80008FB0 AFB8024C */ sw $t8, 0x24c($sp) -/* 009BB4 80008FB4 AFA80248 */ sw $t0, 0x248($sp) -/* 009BB8 80008FB8 8D2A016C */ lw $t2, 0x16c($t1) -/* 009BBC 80008FBC 00000000 */ nop -/* 009BC0 80008FC0 AFAA0244 */ sw $t2, 0x244($sp) -.L80008FC4: -/* 009BC4 80008FC4 8FAB0260 */ lw $t3, 0x260($sp) -.L80008FC8: -/* 009BC8 80008FC8 8FA20088 */ lw $v0, 0x88($sp) -/* 009BCC 80008FCC 24010007 */ li $at, 7 -/* 009BD0 80008FD0 256C0001 */ addiu $t4, $t3, 1 -/* 009BD4 80008FD4 AFAC0260 */ sw $t4, 0x260($sp) -/* 009BD8 80008FD8 1581FEC7 */ bne $t4, $at, .L80008AF8 -/* 009BDC 80008FDC 24420180 */ addiu $v0, $v0, 0x180 -/* 009BE0 80008FE0 8FAE024C */ lw $t6, 0x24c($sp) -/* 009BE4 80008FE4 3C0D8012 */ lui $t5, %hi(D_8011AC18) # $t5, 0x8012 -/* 009BE8 80008FE8 29C1000B */ slti $at, $t6, 0xb -/* 009BEC 80008FEC 14200015 */ bnez $at, .L80009044 -/* 009BF0 80008FF0 00000000 */ nop -/* 009BF4 80008FF4 91ADAC18 */ lbu $t5, %lo(D_8011AC18)($t5) -/* 009BF8 80008FF8 00000000 */ nop -/* 009BFC 80008FFC 15A00011 */ bnez $t5, .L80009044 -/* 009C00 80009000 00000000 */ nop -/* 009C04 80009004 0C000660 */ jal func_80001980 -/* 009C08 80009008 00000000 */ nop -/* 009C0C 8000900C 8FAF0244 */ lw $t7, 0x244($sp) -/* 009C10 80009010 93A40247 */ lbu $a0, 0x247($sp) -/* 009C14 80009014 11E20003 */ beq $t7, $v0, .L80009024 -/* 009C18 80009018 00000000 */ nop -/* 009C1C 8000901C 0C0005E1 */ jal func_80001784 -/* 009C20 80009020 00000000 */ nop -.L80009024: -/* 009C24 80009024 93A4024F */ lbu $a0, 0x24f($sp) -/* 009C28 80009028 0C0006C3 */ jal sfxSetRelativeVolume -/* 009C2C 8000902C 00000000 */ nop -/* 009C30 80009030 93A4024B */ lbu $a0, 0x24b($sp) -/* 009C34 80009034 0C0006D6 */ jal sfxSetPan -/* 009C38 80009038 00000000 */ nop -/* 009C3C 8000903C 10000004 */ b .L80009050 -/* 009C40 80009040 8FA5026C */ lw $a1, 0x26c($sp) -.L80009044: -/* 009C44 80009044 0C000638 */ jal func_800018E0 -/* 009C48 80009048 00000000 */ nop -/* 009C4C 8000904C 8FA5026C */ lw $a1, 0x26c($sp) -.L80009050: -/* 009C50 80009050 8FA40268 */ lw $a0, 0x268($sp) -/* 009C54 80009054 10A00007 */ beqz $a1, .L80009074 -/* 009C58 80009058 8FBF006C */ lw $ra, 0x6c($sp) -/* 009C5C 8000905C 8FB90270 */ lw $t9, 0x270($sp) -/* 009C60 80009060 8FA600AC */ lw $a2, 0xac($sp) -/* 009C64 80009064 93A700B3 */ lbu $a3, 0xb3($sp) -/* 009C68 80009068 0C001BF2 */ jal func_80006FC8 -/* 009C6C 8000906C AFB90010 */ sw $t9, 0x10($sp) -/* 009C70 80009070 8FBF006C */ lw $ra, 0x6c($sp) -.L80009074: -/* 009C74 80009074 C7B50028 */ lwc1 $f21, 0x28($sp) -/* 009C78 80009078 C7B4002C */ lwc1 $f20, 0x2c($sp) -/* 009C7C 8000907C C7B70030 */ lwc1 $f23, 0x30($sp) -/* 009C80 80009080 C7B60034 */ lwc1 $f22, 0x34($sp) -/* 009C84 80009084 C7B90038 */ lwc1 $f25, 0x38($sp) -/* 009C88 80009088 C7B8003C */ lwc1 $f24, 0x3c($sp) -/* 009C8C 8000908C C7BB0040 */ lwc1 $f27, 0x40($sp) -/* 009C90 80009090 C7BA0044 */ lwc1 $f26, 0x44($sp) -/* 009C94 80009094 8FB00048 */ lw $s0, 0x48($sp) -/* 009C98 80009098 8FB1004C */ lw $s1, 0x4c($sp) -/* 009C9C 8000909C 8FB20050 */ lw $s2, 0x50($sp) -/* 009CA0 800090A0 8FB30054 */ lw $s3, 0x54($sp) -/* 009CA4 800090A4 8FB40058 */ lw $s4, 0x58($sp) -/* 009CA8 800090A8 8FB5005C */ lw $s5, 0x5c($sp) -/* 009CAC 800090AC 8FB60060 */ lw $s6, 0x60($sp) -/* 009CB0 800090B0 8FB70064 */ lw $s7, 0x64($sp) -/* 009CB4 800090B4 8FBE0068 */ lw $fp, 0x68($sp) -/* 009CB8 800090B8 03E00008 */ jr $ra -/* 009CBC 800090BC 27BD0268 */ addiu $sp, $sp, 0x268 - +.late_rodata +glabel D_800E4F14 +.float 999999.0 + +.text +glabel func_80008438 +/* 009038 80008438 27BDFD98 */ addiu $sp, $sp, -0x268 +/* 00903C 8000843C AFBF006C */ sw $ra, 0x6c($sp) +/* 009040 80008440 AFBE0068 */ sw $fp, 0x68($sp) +/* 009044 80008444 AFB70064 */ sw $s7, 0x64($sp) +/* 009048 80008448 AFB60060 */ sw $s6, 0x60($sp) +/* 00904C 8000844C AFB5005C */ sw $s5, 0x5c($sp) +/* 009050 80008450 AFB40058 */ sw $s4, 0x58($sp) +/* 009054 80008454 AFB30054 */ sw $s3, 0x54($sp) +/* 009058 80008458 AFB20050 */ sw $s2, 0x50($sp) +/* 00905C 8000845C AFB1004C */ sw $s1, 0x4c($sp) +/* 009060 80008460 AFB00048 */ sw $s0, 0x48($sp) +/* 009064 80008464 E7BB0040 */ swc1 $f27, 0x40($sp) +/* 009068 80008468 E7BA0044 */ swc1 $f26, 0x44($sp) +/* 00906C 8000846C E7B90038 */ swc1 $f25, 0x38($sp) +/* 009070 80008470 E7B8003C */ swc1 $f24, 0x3c($sp) +/* 009074 80008474 E7B70030 */ swc1 $f23, 0x30($sp) +/* 009078 80008478 E7B60034 */ swc1 $f22, 0x34($sp) +/* 00907C 8000847C E7B50028 */ swc1 $f21, 0x28($sp) +/* 009080 80008480 E7B4002C */ swc1 $f20, 0x2c($sp) +/* 009084 80008484 AFA40268 */ sw $a0, 0x268($sp) +/* 009088 80008488 AFA5026C */ sw $a1, 0x26c($sp) +/* 00908C 8000848C AFA60270 */ sw $a2, 0x270($sp) +/* 009090 80008490 0C019884 */ jal get_viewport_count +/* 009094 80008494 AFA0024C */ sw $zero, 0x24c($sp) +/* 009098 80008498 0C01994B */ jal set_active_viewports_and_max +/* 00909C 8000849C 00402025 */ move $a0, $v0 +/* 0090A0 800084A0 0C01A75F */ jal func_80069D7C +/* 0090A4 800084A4 AFA200B0 */ sw $v0, 0xb0($sp) +/* 0090A8 800084A8 3C15800E */ lui $s5, %hi(D_800DC6E0) # $s5, 0x800e +/* 0090AC 800084AC 26B5C6E0 */ addiu $s5, %lo(D_800DC6E0) # addiu $s5, $s5, -0x3920 +/* 0090B0 800084B0 96AE0000 */ lhu $t6, ($s5) +/* 0090B4 800084B4 AFA200AC */ sw $v0, 0xac($sp) +/* 0090B8 800084B8 19C00187 */ blez $t6, .L80008AD8 +/* 0090BC 800084BC AFA00260 */ sw $zero, 0x260($sp) +/* 0090C0 800084C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0090C4 800084C4 3C168012 */ lui $s6, %hi(D_80119C44) # $s6, 0x8012 +/* 0090C8 800084C8 4481D000 */ mtc1 $at, $f26 +/* 0090CC 800084CC 26D69C44 */ addiu $s6, %lo(D_80119C44) # addiu $s6, $s6, -0x63bc +/* 0090D0 800084D0 0000A025 */ move $s4, $zero +/* 0090D4 800084D4 27B700A8 */ addiu $s7, $sp, 0xa8 +/* 0090D8 800084D8 24120001 */ li $s2, 1 +.L800084DC: +/* 0090DC 800084DC 8ECF0000 */ lw $t7, ($s6) +/* 0090E0 800084E0 8FA900B0 */ lw $t1, 0xb0($sp) +/* 0090E4 800084E4 01F4C021 */ addu $t8, $t7, $s4 +/* 0090E8 800084E8 8F110000 */ lw $s1, ($t8) +/* 0090EC 800084EC AFA00254 */ sw $zero, 0x254($sp) +/* 0090F0 800084F0 92390011 */ lbu $t9, 0x11($s1) +/* 0090F4 800084F4 8FAB00B0 */ lw $t3, 0xb0($sp) +/* 0090F8 800084F8 33280002 */ andi $t0, $t9, 2 +/* 0090FC 800084FC 1100006F */ beqz $t0, .L800086BC +/* 009100 80008500 24010001 */ li $at, 1 +/* 009104 80008504 1521016D */ bne $t1, $at, .L80008ABC +/* 009108 80008508 8FA80260 */ lw $t0, 0x260($sp) +/* 00910C 8000850C 8FAA00AC */ lw $t2, 0xac($sp) +/* 009110 80008510 C6240000 */ lwc1 $f4, ($s1) +/* 009114 80008514 C546000C */ lwc1 $f6, 0xc($t2) +/* 009118 80008518 C6280004 */ lwc1 $f8, 4($s1) +/* 00911C 8000851C 46062501 */ sub.s $f20, $f4, $f6 +/* 009120 80008520 C54A0010 */ lwc1 $f10, 0x10($t2) +/* 009124 80008524 4614A102 */ mul.s $f4, $f20, $f20 +/* 009128 80008528 460A4001 */ sub.s $f0, $f8, $f10 +/* 00912C 8000852C C6300008 */ lwc1 $f16, 8($s1) +/* 009130 80008530 C5520014 */ lwc1 $f18, 0x14($t2) +/* 009134 80008534 46000182 */ mul.s $f6, $f0, $f0 +/* 009138 80008538 46128581 */ sub.s $f22, $f16, $f18 +/* 00913C 8000853C 4616B282 */ mul.s $f10, $f22, $f22 +/* 009140 80008540 46062200 */ add.s $f8, $f4, $f6 +/* 009144 80008544 0C0326B4 */ jal sqrtf +/* 009148 80008548 460A4300 */ add.s $f12, $f8, $f10 +/* 00914C 8000854C 444BF800 */ cfc1 $t3, $31 +/* 009150 80008550 8E240014 */ lw $a0, 0x14($s1) +/* 009154 80008554 35610003 */ ori $at, $t3, 3 +/* 009158 80008558 38210002 */ xori $at, $at, 2 +/* 00915C 8000855C 44C1F800 */ ctc1 $at, $31 +/* 009160 80008560 00000000 */ nop +/* 009164 80008564 46000424 */ cvt.w.s $f16, $f0 +/* 009168 80008568 44038000 */ mfc1 $v1, $f16 +/* 00916C 8000856C 44CBF800 */ ctc1 $t3, $31 +/* 009170 80008570 0064082A */ slt $at, $v1, $a0 +/* 009174 80008574 10200049 */ beqz $at, .L8000869C +/* 009178 80008578 0083082A */ slt $at, $a0, $v1 +/* 00917C 8000857C 922C0012 */ lbu $t4, 0x12($s1) +/* 009180 80008580 00000000 */ nop +/* 009184 80008584 15800045 */ bnez $t4, .L8000869C +/* 009188 80008588 0083082A */ slt $at, $a0, $v1 +/* 00918C 8000858C 8E240018 */ lw $a0, 0x18($s1) +/* 009190 80008590 00000000 */ nop +/* 009194 80008594 1480000F */ bnez $a0, .L800085D4 +/* 009198 80008598 00000000 */ nop +/* 00919C 8000859C 922D0022 */ lbu $t5, 0x22($s1) +/* 0091A0 800085A0 00000000 */ nop +/* 0091A4 800085A4 11A00006 */ beqz $t5, .L800085C0 +/* 0091A8 800085A8 00000000 */ nop +/* 0091AC 800085AC 922E0011 */ lbu $t6, 0x11($s1) +/* 0091B0 800085B0 00000000 */ nop +/* 0091B4 800085B4 31CF0004 */ andi $t7, $t6, 4 +/* 0091B8 800085B8 15E00006 */ bnez $t7, .L800085D4 +/* 0091BC 800085BC 00000000 */ nop +.L800085C0: +/* 0091C0 800085C0 9624000C */ lhu $a0, 0xc($s1) +/* 0091C4 800085C4 0C0007C5 */ jal func_80001F14 +/* 0091C8 800085C8 26250018 */ addiu $a1, $s1, 0x18 +/* 0091CC 800085CC 8E240018 */ lw $a0, 0x18($s1) +/* 0091D0 800085D0 A2320022 */ sb $s2, 0x22($s1) +.L800085D4: +/* 0091D4 800085D4 1080002E */ beqz $a0, .L80008690 +/* 0091D8 800085D8 00000000 */ nop +/* 0091DC 800085DC 9238000F */ lbu $t8, 0xf($s1) +/* 0091E0 800085E0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0091E4 800085E4 44989000 */ mtc1 $t8, $f18 +/* 0091E8 800085E8 07010004 */ bgez $t8, .L800085FC +/* 0091EC 800085EC 46809120 */ cvt.s.w $f4, $f18 +/* 0091F0 800085F0 44813000 */ mtc1 $at, $f6 +/* 0091F4 800085F4 00000000 */ nop +/* 0091F8 800085F8 46062100 */ add.s $f4, $f4, $f6 +.L800085FC: +/* 0091FC 800085FC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 009200 80008600 44814000 */ mtc1 $at, $f8 +/* 009204 80008604 24050008 */ li $a1, 8 +/* 009208 80008608 46082283 */ div.s $f10, $f4, $f8 +/* 00920C 8000860C E7AA00A8 */ swc1 $f10, 0xa8($sp) +/* 009210 80008610 9226000E */ lbu $a2, 0xe($s1) +/* 009214 80008614 8E240018 */ lw $a0, 0x18($s1) +/* 009218 80008618 0006CA00 */ sll $t9, $a2, 8 +/* 00921C 8000861C 0C00127E */ jal func_800049F8 +/* 009220 80008620 03203025 */ move $a2, $t9 +/* 009224 80008624 8E240018 */ lw $a0, 0x18($s1) +/* 009228 80008628 8EE60000 */ lw $a2, ($s7) +/* 00922C 8000862C 0C00127E */ jal func_800049F8 +/* 009230 80008630 24050010 */ li $a1, 16 +/* 009234 80008634 8FA800AC */ lw $t0, 0xac($sp) +/* 009238 80008638 4600A306 */ mov.s $f12, $f20 +/* 00923C 8000863C 85060000 */ lh $a2, ($t0) +/* 009240 80008640 0C002430 */ jal func_800090C0 +/* 009244 80008644 4600B386 */ mov.s $f14, $f22 +/* 009248 80008648 8FA900B0 */ lw $t1, 0xb0($sp) +/* 00924C 8000864C 24010001 */ li $at, 1 +/* 009250 80008650 11210002 */ beq $t1, $at, .L8000865C +/* 009254 80008654 00403025 */ move $a2, $v0 +/* 009258 80008658 24060040 */ li $a2, 64 +.L8000865C: +/* 00925C 8000865C 8E240018 */ lw $a0, 0x18($s1) +/* 009260 80008660 0C00127E */ jal func_800049F8 +/* 009264 80008664 24050004 */ li $a1, 4 +/* 009268 80008668 8E240018 */ lw $a0, 0x18($s1) +/* 00926C 8000866C 8E250000 */ lw $a1, ($s1) +/* 009270 80008670 8E260004 */ lw $a2, 4($s1) +/* 009274 80008674 8E270008 */ lw $a3, 8($s1) +/* 009278 80008678 0C0026DF */ jal func_80009B7C +/* 00927C 8000867C 00000000 */ nop +/* 009280 80008680 8E240018 */ lw $a0, 0x18($s1) +/* 009284 80008684 92250021 */ lbu $a1, 0x21($s1) +/* 009288 80008688 0C001181 */ jal func_80004604 +/* 00928C 8000868C 00000000 */ nop +.L80008690: +/* 009290 80008690 10000109 */ b .L80008AB8 +/* 009294 80008694 A2320012 */ sb $s2, 0x12($s1) +/* 009298 80008698 0083082A */ slt $at, $a0, $v1 +.L8000869C: +/* 00929C 8000869C 10200107 */ beqz $at, .L80008ABC +/* 0092A0 800086A0 8FA80260 */ lw $t0, 0x260($sp) +/* 0092A4 800086A4 922A0012 */ lbu $t2, 0x12($s1) +/* 0092A8 800086A8 00000000 */ nop +/* 0092AC 800086AC 11400103 */ beqz $t2, .L80008ABC +/* 0092B0 800086B0 8FA80260 */ lw $t0, 0x260($sp) +/* 0092B4 800086B4 10000100 */ b .L80008AB8 +/* 0092B8 800086B8 A2200012 */ sb $zero, 0x12($s1) +.L800086BC: +/* 0092BC 800086BC 19600063 */ blez $t3, .L8000884C +/* 0092C0 800086C0 0000F025 */ move $fp, $zero +/* 0092C4 800086C4 8FB300AC */ lw $s3, 0xac($sp) +/* 0092C8 800086C8 00000000 */ nop +.L800086CC: +/* 0092CC 800086CC C6300000 */ lwc1 $f16, ($s1) +/* 0092D0 800086D0 C672000C */ lwc1 $f18, 0xc($s3) +/* 0092D4 800086D4 C6260004 */ lwc1 $f6, 4($s1) +/* 0092D8 800086D8 46128501 */ sub.s $f20, $f16, $f18 +/* 0092DC 800086DC C6640010 */ lwc1 $f4, 0x10($s3) +/* 0092E0 800086E0 4614A402 */ mul.s $f16, $f20, $f20 +/* 0092E4 800086E4 46043001 */ sub.s $f0, $f6, $f4 +/* 0092E8 800086E8 C6280008 */ lwc1 $f8, 8($s1) +/* 0092EC 800086EC C66A0014 */ lwc1 $f10, 0x14($s3) +/* 0092F0 800086F0 46000482 */ mul.s $f18, $f0, $f0 +/* 0092F4 800086F4 460A4581 */ sub.s $f22, $f8, $f10 +/* 0092F8 800086F8 4616B102 */ mul.s $f4, $f22, $f22 +/* 0092FC 800086FC 46128180 */ add.s $f6, $f16, $f18 +/* 009300 80008700 0C0326B4 */ jal sqrtf +/* 009304 80008704 46043300 */ add.s $f12, $f6, $f4 +/* 009308 80008708 444CF800 */ cfc1 $t4, $31 +/* 00930C 8000870C 8E240014 */ lw $a0, 0x14($s1) +/* 009310 80008710 35810003 */ ori $at, $t4, 3 +/* 009314 80008714 38210002 */ xori $at, $at, 2 +/* 009318 80008718 44C1F800 */ ctc1 $at, $31 +/* 00931C 8000871C 8FA90254 */ lw $t1, 0x254($sp) +/* 009320 80008720 46000224 */ cvt.w.s $f8, $f0 +/* 009324 80008724 44034000 */ mfc1 $v1, $f8 +/* 009328 80008728 44CCF800 */ ctc1 $t4, $31 +/* 00932C 8000872C 0064082A */ slt $at, $v1, $a0 +/* 009330 80008730 10200043 */ beqz $at, .L80008840 +/* 009334 80008734 8FAA00B0 */ lw $t2, 0xb0($sp) +/* 009338 80008738 922D0020 */ lbu $t5, 0x20($s1) +/* 00933C 8000873C 0083C023 */ subu $t8, $a0, $v1 +/* 009340 80008740 15A0001B */ bnez $t5, .L800087B0 +/* 009344 80008744 00000000 */ nop +/* 009348 80008748 44835000 */ mtc1 $v1, $f10 +/* 00934C 8000874C 44849000 */ mtc1 $a0, $f18 +/* 009350 80008750 46805420 */ cvt.s.w $f16, $f10 +/* 009354 80008754 922E000E */ lbu $t6, 0xe($s1) +/* 009358 80008758 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 00935C 8000875C 468091A0 */ cvt.s.w $f6, $f18 +/* 009360 80008760 448E5000 */ mtc1 $t6, $f10 +/* 009364 80008764 46068103 */ div.s $f4, $f16, $f6 +/* 009368 80008768 468054A0 */ cvt.s.w $f18, $f10 +/* 00936C 8000876C 05C10004 */ bgez $t6, .L80008780 +/* 009370 80008770 4604D201 */ sub.s $f8, $f26, $f4 +/* 009374 80008774 44818000 */ mtc1 $at, $f16 +/* 009378 80008778 00000000 */ nop +/* 00937C 8000877C 46109480 */ add.s $f18, $f18, $f16 +.L80008780: +/* 009380 80008780 46124182 */ mul.s $f6, $f8, $f18 +/* 009384 80008784 444FF800 */ cfc1 $t7, $31 +/* 009388 80008788 00000000 */ nop +/* 00938C 8000878C 35E10003 */ ori $at, $t7, 3 +/* 009390 80008790 38210002 */ xori $at, $at, 2 +/* 009394 80008794 44C1F800 */ ctc1 $at, $31 +/* 009398 80008798 00000000 */ nop +/* 00939C 8000879C 46003124 */ cvt.w.s $f4, $f6 +/* 0093A0 800087A0 44022000 */ mfc1 $v0, $f4 +/* 0093A4 800087A4 44CFF800 */ ctc1 $t7, $31 +/* 0093A8 800087A8 1000001C */ b .L8000881C +/* 0093AC 800087AC 0122082A */ slt $at, $t1, $v0 +.L800087B0: +/* 0093B0 800087B0 44985000 */ mtc1 $t8, $f10 +/* 0093B4 800087B4 44844000 */ mtc1 $a0, $f8 +/* 0093B8 800087B8 46805420 */ cvt.s.w $f16, $f10 +/* 0093BC 800087BC 9239000E */ lbu $t9, 0xe($s1) +/* 0093C0 800087C0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0093C4 800087C4 468044A0 */ cvt.s.w $f18, $f8 +/* 0093C8 800087C8 44992000 */ mtc1 $t9, $f4 +/* 0093CC 800087CC 46128003 */ div.s $f0, $f16, $f18 +/* 0093D0 800087D0 468022A0 */ cvt.s.w $f10, $f4 +/* 0093D4 800087D4 46000182 */ mul.s $f6, $f0, $f0 +/* 0093D8 800087D8 07210004 */ bgez $t9, .L800087EC +/* 0093DC 800087DC 00000000 */ nop +/* 0093E0 800087E0 44814000 */ mtc1 $at, $f8 +/* 0093E4 800087E4 00000000 */ nop +/* 0093E8 800087E8 46085280 */ add.s $f10, $f10, $f8 +.L800087EC: +/* 0093EC 800087EC 460A3402 */ mul.s $f16, $f6, $f10 +/* 0093F0 800087F0 4448F800 */ cfc1 $t0, $31 +/* 0093F4 800087F4 00000000 */ nop +/* 0093F8 800087F8 35010003 */ ori $at, $t0, 3 +/* 0093FC 800087FC 38210002 */ xori $at, $at, 2 +/* 009400 80008800 44C1F800 */ ctc1 $at, $31 +/* 009404 80008804 00000000 */ nop +/* 009408 80008808 460084A4 */ cvt.w.s $f18, $f16 +/* 00940C 8000880C 44C8F800 */ ctc1 $t0, $31 +/* 009410 80008810 44029000 */ mfc1 $v0, $f18 +/* 009414 80008814 00000000 */ nop +/* 009418 80008818 0122082A */ slt $at, $t1, $v0 +.L8000881C: +/* 00941C 8000881C 10200008 */ beqz $at, .L80008840 +/* 009420 80008820 8FAA00B0 */ lw $t2, 0xb0($sp) +/* 009424 80008824 AFA20254 */ sw $v0, 0x254($sp) +/* 009428 80008828 86660000 */ lh $a2, ($s3) +/* 00942C 8000882C 4600A306 */ mov.s $f12, $f20 +/* 009430 80008830 0C002430 */ jal func_800090C0 +/* 009434 80008834 4600B386 */ mov.s $f14, $f22 +/* 009438 80008838 AFA20250 */ sw $v0, 0x250($sp) +/* 00943C 8000883C 8FAA00B0 */ lw $t2, 0xb0($sp) +.L80008840: +/* 009440 80008840 27DE0001 */ addiu $fp, $fp, 1 +/* 009444 80008844 17CAFFA1 */ bne $fp, $t2, .L800086CC +/* 009448 80008848 26730044 */ addiu $s3, $s3, 0x44 +.L8000884C: +/* 00944C 8000884C 92220010 */ lbu $v0, 0x10($s1) +/* 009450 80008850 8FAB0254 */ lw $t3, 0x254($sp) +/* 009454 80008854 8FAC00B0 */ lw $t4, 0xb0($sp) +/* 009458 80008858 0162082A */ slt $at, $t3, $v0 +/* 00945C 8000885C 10200033 */ beqz $at, .L8000892C +/* 009460 80008860 3C01800E */ lui $at, %hi(D_800E4F14) # $at, 0x800e +/* 009464 80008864 C4384F14 */ lwc1 $f24, %lo(D_800E4F14)($at) +/* 009468 80008868 1980002F */ blez $t4, .L80008928 +/* 00946C 8000886C 0000F025 */ move $fp, $zero +/* 009470 80008870 8FB300AC */ lw $s3, 0xac($sp) +/* 009474 80008874 00000000 */ nop +.L80008878: +/* 009478 80008878 C6240000 */ lwc1 $f4, ($s1) +/* 00947C 8000887C C668000C */ lwc1 $f8, 0xc($s3) +/* 009480 80008880 C6260004 */ lwc1 $f6, 4($s1) +/* 009484 80008884 46082501 */ sub.s $f20, $f4, $f8 +/* 009488 80008888 C66A0010 */ lwc1 $f10, 0x10($s3) +/* 00948C 8000888C 4614A102 */ mul.s $f4, $f20, $f20 +/* 009490 80008890 460A3001 */ sub.s $f0, $f6, $f10 +/* 009494 80008894 C6300008 */ lwc1 $f16, 8($s1) +/* 009498 80008898 C6720014 */ lwc1 $f18, 0x14($s3) +/* 00949C 8000889C 46000202 */ mul.s $f8, $f0, $f0 +/* 0094A0 800088A0 46128581 */ sub.s $f22, $f16, $f18 +/* 0094A4 800088A4 4616B282 */ mul.s $f10, $f22, $f22 +/* 0094A8 800088A8 46082180 */ add.s $f6, $f4, $f8 +/* 0094AC 800088AC 0C0326B4 */ jal sqrtf +/* 0094B0 800088B0 460A3300 */ add.s $f12, $f6, $f10 +/* 0094B4 800088B4 444DF800 */ cfc1 $t5, $31 +/* 0094B8 800088B8 00000000 */ nop +/* 0094BC 800088BC 35A10003 */ ori $at, $t5, 3 +/* 0094C0 800088C0 38210002 */ xori $at, $at, 2 +/* 0094C4 800088C4 44C1F800 */ ctc1 $at, $31 +/* 0094C8 800088C8 00000000 */ nop +/* 0094CC 800088CC 46000424 */ cvt.w.s $f16, $f0 +/* 0094D0 800088D0 44108000 */ mfc1 $s0, $f16 +/* 0094D4 800088D4 44CDF800 */ ctc1 $t5, $31 +/* 0094D8 800088D8 44909000 */ mtc1 $s0, $f18 +/* 0094DC 800088DC 00000000 */ nop +/* 0094E0 800088E0 46809120 */ cvt.s.w $f4, $f18 +/* 0094E4 800088E4 4618203C */ c.lt.s $f4, $f24 +/* 0094E8 800088E8 00000000 */ nop +/* 0094EC 800088EC 45000009 */ bc1f .L80008914 +/* 0094F0 800088F0 8FAE00B0 */ lw $t6, 0xb0($sp) +/* 0094F4 800088F4 86660000 */ lh $a2, ($s3) +/* 0094F8 800088F8 4600A306 */ mov.s $f12, $f20 +/* 0094FC 800088FC 0C002430 */ jal func_800090C0 +/* 009500 80008900 4600B386 */ mov.s $f14, $f22 +/* 009504 80008904 44904000 */ mtc1 $s0, $f8 +/* 009508 80008908 AFA20250 */ sw $v0, 0x250($sp) +/* 00950C 8000890C 46804620 */ cvt.s.w $f24, $f8 +/* 009510 80008910 8FAE00B0 */ lw $t6, 0xb0($sp) +.L80008914: +/* 009514 80008914 27DE0001 */ addiu $fp, $fp, 1 +/* 009518 80008918 17CEFFD7 */ bne $fp, $t6, .L80008878 +/* 00951C 8000891C 26730044 */ addiu $s3, $s3, 0x44 +/* 009520 80008920 92220010 */ lbu $v0, 0x10($s1) +/* 009524 80008924 00000000 */ nop +.L80008928: +/* 009528 80008928 AFA20254 */ sw $v0, 0x254($sp) +.L8000892C: +/* 00952C 8000892C 8FAF0254 */ lw $t7, 0x254($sp) +/* 009530 80008930 00000000 */ nop +/* 009534 80008934 29E1000B */ slti $at, $t7, 0xb +/* 009538 80008938 14200044 */ bnez $at, .L80008A4C +/* 00953C 8000893C 00000000 */ nop +/* 009540 80008940 8E240018 */ lw $a0, 0x18($s1) +/* 009544 80008944 00000000 */ nop +/* 009548 80008948 1480000F */ bnez $a0, .L80008988 +/* 00954C 8000894C 00000000 */ nop +/* 009550 80008950 92380022 */ lbu $t8, 0x22($s1) +/* 009554 80008954 00000000 */ nop +/* 009558 80008958 13000006 */ beqz $t8, .L80008974 +/* 00955C 8000895C 00000000 */ nop +/* 009560 80008960 92390011 */ lbu $t9, 0x11($s1) +/* 009564 80008964 00000000 */ nop +/* 009568 80008968 33280004 */ andi $t0, $t9, 4 +/* 00956C 8000896C 15000006 */ bnez $t0, .L80008988 +/* 009570 80008970 00000000 */ nop +.L80008974: +/* 009574 80008974 9624000C */ lhu $a0, 0xc($s1) +/* 009578 80008978 0C0007C5 */ jal func_80001F14 +/* 00957C 8000897C 26250018 */ addiu $a1, $s1, 0x18 +/* 009580 80008980 8E240018 */ lw $a0, 0x18($s1) +/* 009584 80008984 A2320022 */ sb $s2, 0x22($s1) +.L80008988: +/* 009588 80008988 1080002B */ beqz $a0, .L80008A38 +/* 00958C 8000898C 00000000 */ nop +/* 009590 80008990 9229000F */ lbu $t1, 0xf($s1) +/* 009594 80008994 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 009598 80008998 44893000 */ mtc1 $t1, $f6 +/* 00959C 8000899C 05210004 */ bgez $t1, .L800089B0 +/* 0095A0 800089A0 468032A0 */ cvt.s.w $f10, $f6 +/* 0095A4 800089A4 44818000 */ mtc1 $at, $f16 +/* 0095A8 800089A8 00000000 */ nop +/* 0095AC 800089AC 46105280 */ add.s $f10, $f10, $f16 +.L800089B0: +/* 0095B0 800089B0 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 0095B4 800089B4 44819000 */ mtc1 $at, $f18 +/* 0095B8 800089B8 8FA60254 */ lw $a2, 0x254($sp) +/* 0095BC 800089BC 46125103 */ div.s $f4, $f10, $f18 +/* 0095C0 800089C0 00065200 */ sll $t2, $a2, 8 +/* 0095C4 800089C4 01403025 */ move $a2, $t2 +/* 0095C8 800089C8 24050008 */ li $a1, 8 +/* 0095CC 800089CC E7A40098 */ swc1 $f4, 0x98($sp) +/* 0095D0 800089D0 8E240018 */ lw $a0, 0x18($s1) +/* 0095D4 800089D4 0C00127E */ jal func_800049F8 +/* 0095D8 800089D8 00000000 */ nop +/* 0095DC 800089DC 8E240018 */ lw $a0, 0x18($s1) +/* 0095E0 800089E0 8FA60098 */ lw $a2, 0x98($sp) +/* 0095E4 800089E4 0C00127E */ jal func_800049F8 +/* 0095E8 800089E8 24050010 */ li $a1, 16 +/* 0095EC 800089EC 8FAB00B0 */ lw $t3, 0xb0($sp) +/* 0095F0 800089F0 24010001 */ li $at, 1 +/* 0095F4 800089F4 11610002 */ beq $t3, $at, .L80008A00 +/* 0095F8 800089F8 240C0040 */ li $t4, 64 +/* 0095FC 800089FC AFAC0250 */ sw $t4, 0x250($sp) +.L80008A00: +/* 009600 80008A00 8E240018 */ lw $a0, 0x18($s1) +/* 009604 80008A04 8FA60250 */ lw $a2, 0x250($sp) +/* 009608 80008A08 0C00127E */ jal func_800049F8 +/* 00960C 80008A0C 24050004 */ li $a1, 4 +/* 009610 80008A10 8E240018 */ lw $a0, 0x18($s1) +/* 009614 80008A14 92250021 */ lbu $a1, 0x21($s1) +/* 009618 80008A18 0C001181 */ jal func_80004604 +/* 00961C 80008A1C 00000000 */ nop +/* 009620 80008A20 8E240018 */ lw $a0, 0x18($s1) +/* 009624 80008A24 8E250000 */ lw $a1, ($s1) +/* 009628 80008A28 8E260004 */ lw $a2, 4($s1) +/* 00962C 80008A2C 8E270008 */ lw $a3, 8($s1) +/* 009630 80008A30 0C0026DF */ jal func_80009B7C +/* 009634 80008A34 00000000 */ nop +.L80008A38: +/* 009638 80008A38 92220011 */ lbu $v0, 0x11($s1) +/* 00963C 80008A3C 00000000 */ nop +/* 009640 80008A40 304D0004 */ andi $t5, $v0, 4 +/* 009644 80008A44 10000010 */ b .L80008A88 +/* 009648 80008A48 01A01025 */ move $v0, $t5 +.L80008A4C: +/* 00964C 80008A4C 8E240018 */ lw $a0, 0x18($s1) +/* 009650 80008A50 00000000 */ nop +/* 009654 80008A54 10800008 */ beqz $a0, .L80008A78 +/* 009658 80008A58 00000000 */ nop +/* 00965C 80008A5C 0C001223 */ jal func_8000488C +/* 009660 80008A60 00000000 */ nop +/* 009664 80008A64 92220011 */ lbu $v0, 0x11($s1) +/* 009668 80008A68 00000000 */ nop +/* 00966C 80008A6C 304E0004 */ andi $t6, $v0, 4 +/* 009670 80008A70 10000005 */ b .L80008A88 +/* 009674 80008A74 01C01025 */ move $v0, $t6 +.L80008A78: +/* 009678 80008A78 92220011 */ lbu $v0, 0x11($s1) +/* 00967C 80008A7C A2320022 */ sb $s2, 0x22($s1) +/* 009680 80008A80 304F0004 */ andi $t7, $v0, 4 +/* 009684 80008A84 01E01025 */ move $v0, $t7 +.L80008A88: +/* 009688 80008A88 1040000C */ beqz $v0, .L80008ABC +/* 00968C 80008A8C 8FA80260 */ lw $t0, 0x260($sp) +/* 009690 80008A90 92380022 */ lbu $t8, 0x22($s1) +/* 009694 80008A94 00000000 */ nop +/* 009698 80008A98 13000008 */ beqz $t8, .L80008ABC +/* 00969C 80008A9C 8FA80260 */ lw $t0, 0x260($sp) +/* 0096A0 80008AA0 8E390018 */ lw $t9, 0x18($s1) +/* 0096A4 80008AA4 8FA40260 */ lw $a0, 0x260($sp) +/* 0096A8 80008AA8 17200004 */ bnez $t9, .L80008ABC +/* 0096AC 80008AAC 8FA80260 */ lw $t0, 0x260($sp) +/* 0096B0 80008AB0 0C0028BA */ jal func_8000A2E8 +/* 0096B4 80008AB4 00000000 */ nop +.L80008AB8: +/* 0096B8 80008AB8 8FA80260 */ lw $t0, 0x260($sp) +.L80008ABC: +/* 0096BC 80008ABC 96AA0000 */ lhu $t2, ($s5) +/* 0096C0 80008AC0 25090001 */ addiu $t1, $t0, 1 +/* 0096C4 80008AC4 012A082A */ slt $at, $t1, $t2 +/* 0096C8 80008AC8 AFA90260 */ sw $t1, 0x260($sp) +/* 0096CC 80008ACC 1420FE83 */ bnez $at, .L800084DC +/* 0096D0 80008AD0 26940004 */ addiu $s4, $s4, 4 +/* 0096D4 80008AD4 AFA00260 */ sw $zero, 0x260($sp) +.L80008AD8: +/* 0096D8 80008AD8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0096DC 80008ADC 4481D000 */ mtc1 $at, $f26 +/* 0096E0 80008AE0 3C014280 */ li $at, 0x42800000 # 64.000000 +/* 0096E4 80008AE4 4481B000 */ mtc1 $at, $f22 +/* 0096E8 80008AE8 3C0143C8 */ li $at, 0x43C80000 # 400.000000 +/* 0096EC 80008AEC 3C028012 */ lui $v0, %hi(D_80119C58) # $v0, 0x8012 +/* 0096F0 80008AF0 4481A000 */ mtc1 $at, $f20 +/* 0096F4 80008AF4 24429C58 */ addiu $v0, %lo(D_80119C58) # addiu $v0, $v0, -0x63a8 +.L80008AF8: +/* 0096F8 80008AF8 8C4B016C */ lw $t3, 0x16c($v0) +/* 0096FC 80008AFC 0040B825 */ move $s7, $v0 +/* 009700 80008B00 11600130 */ beqz $t3, .L80008FC4 +/* 009704 80008B04 AFA20088 */ sw $v0, 0x88($sp) +/* 009708 80008B08 93A40263 */ lbu $a0, 0x263($sp) +/* 00970C 80008B0C 0C00267B */ jal func_800099EC +/* 009710 80008B10 AFA20088 */ sw $v0, 0x88($sp) +/* 009714 80008B14 1040012C */ beqz $v0, .L80008FC8 +/* 009718 80008B18 8FAB0260 */ lw $t3, 0x260($sp) +/* 00971C 80008B1C 8FAC00B0 */ lw $t4, 0xb0($sp) +/* 009720 80008B20 AFA00254 */ sw $zero, 0x254($sp) +/* 009724 80008B24 198000C7 */ blez $t4, .L80008E44 +/* 009728 80008B28 0000F025 */ move $fp, $zero +/* 00972C 80008B2C 8FA20088 */ lw $v0, 0x88($sp) +/* 009730 80008B30 00000000 */ nop +/* 009734 80008B34 244D0004 */ addiu $t5, $v0, 4 +/* 009738 80008B38 AFAD0070 */ sw $t5, 0x70($sp) +/* 00973C 80008B3C 8FA20088 */ lw $v0, 0x88($sp) +.L80008B40: +/* 009740 80008B40 8FB40070 */ lw $s4, 0x70($sp) +/* 009744 80008B44 8C430170 */ lw $v1, 0x170($v0) +/* 009748 80008B48 804E017C */ lb $t6, 0x17c($v0) +/* 00974C 80008B4C 0000A825 */ move $s5, $zero +/* 009750 80008B50 00009025 */ move $s2, $zero +/* 009754 80008B54 19C0002D */ blez $t6, .L80008C0C +/* 009758 80008B58 0060B025 */ move $s6, $v1 +/* 00975C 80008B5C 001EC100 */ sll $t8, $fp, 4 +/* 009760 80008B60 8FAF00AC */ lw $t7, 0xac($sp) +/* 009764 80008B64 031EC021 */ addu $t8, $t8, $fp +/* 009768 80008B68 0018C080 */ sll $t8, $t8, 2 +/* 00976C 80008B6C 27B001A8 */ addiu $s0, $sp, 0x1a8 +/* 009770 80008B70 27B1012C */ addiu $s1, $sp, 0x12c +/* 009774 80008B74 01F89821 */ addu $s3, $t7, $t8 +.L80008B78: +/* 009778 80008B78 C66C000C */ lwc1 $f12, 0xc($s3) +/* 00977C 80008B7C C66E0010 */ lwc1 $f14, 0x10($s3) +/* 009780 80008B80 8E660014 */ lw $a2, 0x14($s3) +/* 009784 80008B84 27B9022C */ addiu $t9, $sp, 0x22c +/* 009788 80008B88 27A80228 */ addiu $t0, $sp, 0x228 +/* 00978C 80008B8C 27A90224 */ addiu $t1, $sp, 0x224 +/* 009790 80008B90 AFA90018 */ sw $t1, 0x18($sp) +/* 009794 80008B94 AFA80014 */ sw $t0, 0x14($sp) +/* 009798 80008B98 AFB90010 */ sw $t9, 0x10($sp) +/* 00979C 80008B9C 0C0024AA */ jal func_800092A8 +/* 0097A0 80008BA0 02803825 */ move $a3, $s4 +/* 0097A4 80008BA4 AE020000 */ sw $v0, ($s0) +/* 0097A8 80008BA8 C66A0014 */ lwc1 $f10, 0x14($s3) +/* 0097AC 80008BAC C7B00224 */ lwc1 $f16, 0x224($sp) +/* 0097B0 80008BB0 C666000C */ lwc1 $f6, 0xc($s3) +/* 0097B4 80008BB4 C7A8022C */ lwc1 $f8, 0x22c($sp) +/* 0097B8 80008BB8 86660000 */ lh $a2, ($s3) +/* 0097BC 80008BBC 460A8381 */ sub.s $f14, $f16, $f10 +/* 0097C0 80008BC0 0C002430 */ jal func_800090C0 +/* 0097C4 80008BC4 46064301 */ sub.s $f12, $f8, $f6 +/* 0097C8 80008BC8 8E030000 */ lw $v1, ($s0) +/* 0097CC 80008BCC AE220000 */ sw $v0, ($s1) +/* 0097D0 80008BD0 0076082A */ slt $at, $v1, $s6 +/* 0097D4 80008BD4 10200002 */ beqz $at, .L80008BE0 +/* 0097D8 80008BD8 2694000C */ addiu $s4, $s4, 0xc +/* 0097DC 80008BDC 0060B025 */ move $s6, $v1 +.L80008BE0: +/* 0097E0 80008BE0 82EA017C */ lb $t2, 0x17c($s7) +/* 0097E4 80008BE4 26520001 */ addiu $s2, $s2, 1 +/* 0097E8 80008BE8 024A082A */ slt $at, $s2, $t2 +/* 0097EC 80008BEC 26100004 */ addiu $s0, $s0, 4 +/* 0097F0 80008BF0 26310004 */ addiu $s1, $s1, 4 +/* 0097F4 80008BF4 1420FFE0 */ bnez $at, .L80008B78 +/* 0097F8 80008BF8 02A3A821 */ addu $s5, $s5, $v1 +/* 0097FC 80008BFC 8FA20088 */ lw $v0, 0x88($sp) +/* 009800 80008C00 00000000 */ nop +/* 009804 80008C04 8C430170 */ lw $v1, 0x170($v0) +/* 009808 80008C08 00000000 */ nop +.L80008C0C: +/* 00980C 80008C0C 4483C000 */ mtc1 $v1, $f24 +/* 009810 80008C10 904C0174 */ lbu $t4, 0x174($v0) +/* 009814 80008C14 4680C0A0 */ cvt.s.w $f2, $f24 +/* 009818 80008C18 448CC000 */ mtc1 $t4, $f24 +/* 00981C 80008C1C 05810005 */ bgez $t4, .L80008C34 +/* 009820 80008C20 4680C320 */ cvt.s.w $f12, $f24 +/* 009824 80008C24 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 009828 80008C28 44814000 */ mtc1 $at, $f8 +/* 00982C 80008C2C 00000000 */ nop +/* 009830 80008C30 46086300 */ add.s $f12, $f12, $f8 +.L80008C34: +/* 009834 80008C34 904D017D */ lbu $t5, 0x17d($v0) +/* 009838 80008C38 8FB90254 */ lw $t9, 0x254($sp) +/* 00983C 80008C3C 15A00013 */ bnez $t5, .L80008C8C +/* 009840 80008C40 00767823 */ subu $t7, $v1, $s6 +/* 009844 80008C44 44963000 */ mtc1 $s6, $f6 +/* 009848 80008C48 00000000 */ nop +/* 00984C 80008C4C 46803420 */ cvt.s.w $f16, $f6 +/* 009850 80008C50 00000000 */ nop +/* 009854 80008C54 46028283 */ div.s $f10, $f16, $f2 +/* 009858 80008C58 460AD481 */ sub.s $f18, $f26, $f10 +/* 00985C 80008C5C 460C9102 */ mul.s $f4, $f18, $f12 +/* 009860 80008C60 444EF800 */ cfc1 $t6, $31 +/* 009864 80008C64 00000000 */ nop +/* 009868 80008C68 35C10003 */ ori $at, $t6, 3 +/* 00986C 80008C6C 38210002 */ xori $at, $at, 2 +/* 009870 80008C70 44C1F800 */ ctc1 $at, $31 +/* 009874 80008C74 00000000 */ nop +/* 009878 80008C78 46002224 */ cvt.w.s $f8, $f4 +/* 00987C 80008C7C 44024000 */ mfc1 $v0, $f8 +/* 009880 80008C80 44CEF800 */ ctc1 $t6, $31 +/* 009884 80008C84 10000014 */ b .L80008CD8 +/* 009888 80008C88 0059082A */ slt $at, $v0, $t9 +.L80008C8C: +/* 00988C 80008C8C 448F3000 */ mtc1 $t7, $f6 +/* 009890 80008C90 00000000 */ nop +/* 009894 80008C94 46803420 */ cvt.s.w $f16, $f6 +/* 009898 80008C98 00000000 */ nop +/* 00989C 80008C9C 46028003 */ div.s $f0, $f16, $f2 +/* 0098A0 80008CA0 46000282 */ mul.s $f10, $f0, $f0 +/* 0098A4 80008CA4 00000000 */ nop +/* 0098A8 80008CA8 460C5482 */ mul.s $f18, $f10, $f12 +/* 0098AC 80008CAC 4458F800 */ cfc1 $t8, $31 +/* 0098B0 80008CB0 00000000 */ nop +/* 0098B4 80008CB4 37010003 */ ori $at, $t8, 3 +/* 0098B8 80008CB8 38210002 */ xori $at, $at, 2 +/* 0098BC 80008CBC 44C1F800 */ ctc1 $at, $31 +/* 0098C0 80008CC0 00000000 */ nop +/* 0098C4 80008CC4 46009124 */ cvt.w.s $f4, $f18 +/* 0098C8 80008CC8 44D8F800 */ ctc1 $t8, $31 +/* 0098CC 80008CCC 44022000 */ mfc1 $v0, $f4 +/* 0098D0 80008CD0 00000000 */ nop +/* 0098D4 80008CD4 0059082A */ slt $at, $v0, $t9 +.L80008CD8: +/* 0098D8 80008CD8 14200057 */ bnez $at, .L80008E38 +/* 0098DC 80008CDC 8FAC00B0 */ lw $t4, 0xb0($sp) +/* 0098E0 80008CE0 8FA80088 */ lw $t0, 0x88($sp) +/* 0098E4 80008CE4 AFA20254 */ sw $v0, 0x254($sp) +/* 0098E8 80008CE8 8103017C */ lb $v1, 0x17c($t0) +/* 0098EC 80008CEC 24010001 */ li $at, 1 +/* 0098F0 80008CF0 14610004 */ bne $v1, $at, .L80008D04 +/* 0098F4 80008CF4 00002025 */ move $a0, $zero +/* 0098F8 80008CF8 8FA9012C */ lw $t1, 0x12c($sp) +/* 0098FC 80008CFC 10000036 */ b .L80008DD8 +/* 009900 80008D00 AFA90250 */ sw $t1, 0x250($sp) +.L80008D04: +/* 009904 80008D04 00009025 */ move $s2, $zero +/* 009908 80008D08 18600011 */ blez $v1, .L80008D50 +/* 00990C 80008D0C AFA00250 */ sw $zero, 0x250($sp) +/* 009910 80008D10 27B001A8 */ addiu $s0, $sp, 0x1a8 +/* 009914 80008D14 27A200B8 */ addiu $v0, $sp, 0xb8 +.L80008D18: +/* 009918 80008D18 8E0A0000 */ lw $t2, ($s0) +/* 00991C 80008D1C 26520001 */ addiu $s2, $s2, 1 +/* 009920 80008D20 02AA1823 */ subu $v1, $s5, $t2 +/* 009924 80008D24 AC430000 */ sw $v1, ($v0) +/* 009928 80008D28 82EB017C */ lb $t3, 0x17c($s7) +/* 00992C 80008D2C 26100004 */ addiu $s0, $s0, 4 +/* 009930 80008D30 024B082A */ slt $at, $s2, $t3 +/* 009934 80008D34 24420004 */ addiu $v0, $v0, 4 +/* 009938 80008D38 1420FFF7 */ bnez $at, .L80008D18 +/* 00993C 80008D3C 00832021 */ addu $a0, $a0, $v1 +/* 009940 80008D40 8FAC0088 */ lw $t4, 0x88($sp) +/* 009944 80008D44 00000000 */ nop +/* 009948 80008D48 8183017C */ lb $v1, 0x17c($t4) +/* 00994C 80008D4C 00000000 */ nop +.L80008D50: +/* 009950 80008D50 18600021 */ blez $v1, .L80008DD8 +/* 009954 80008D54 27B1012C */ addiu $s1, $sp, 0x12c +/* 009958 80008D58 82E5017C */ lb $a1, 0x17c($s7) +/* 00995C 80008D5C 44844000 */ mtc1 $a0, $f8 +/* 009960 80008D60 27A200B8 */ addiu $v0, $sp, 0xb8 +/* 009964 80008D64 00057080 */ sll $t6, $a1, 2 +/* 009968 80008D68 8FA40250 */ lw $a0, 0x250($sp) +/* 00996C 80008D6C 01C21821 */ addu $v1, $t6, $v0 +/* 009970 80008D70 46804020 */ cvt.s.w $f0, $f8 +.L80008D74: +/* 009974 80008D74 8C4F0000 */ lw $t7, ($v0) +/* 009978 80008D78 8E380000 */ lw $t8, ($s1) +/* 00997C 80008D7C 448F3000 */ mtc1 $t7, $f6 +/* 009980 80008D80 44989000 */ mtc1 $t8, $f18 +/* 009984 80008D84 46803420 */ cvt.s.w $f16, $f6 +/* 009988 80008D88 44843000 */ mtc1 $a0, $f6 +/* 00998C 80008D8C 24420004 */ addiu $v0, $v0, 4 +/* 009990 80008D90 46008283 */ div.s $f10, $f16, $f0 +/* 009994 80008D94 46809120 */ cvt.s.w $f4, $f18 +/* 009998 80008D98 26310004 */ addiu $s1, $s1, 4 +/* 00999C 80008D9C 46803420 */ cvt.s.w $f16, $f6 +/* 0099A0 80008DA0 46045202 */ mul.s $f8, $f10, $f4 +/* 0099A4 80008DA4 46088480 */ add.s $f18, $f16, $f8 +/* 0099A8 80008DA8 4459F800 */ cfc1 $t9, $31 +/* 0099AC 80008DAC 00000000 */ nop +/* 0099B0 80008DB0 37210003 */ ori $at, $t9, 3 +/* 0099B4 80008DB4 38210002 */ xori $at, $at, 2 +/* 0099B8 80008DB8 44C1F800 */ ctc1 $at, $31 +/* 0099BC 80008DBC 0043082B */ sltu $at, $v0, $v1 +/* 0099C0 80008DC0 460092A4 */ cvt.w.s $f10, $f18 +/* 0099C4 80008DC4 44045000 */ mfc1 $a0, $f10 +/* 0099C8 80008DC8 44D9F800 */ ctc1 $t9, $31 +/* 0099CC 80008DCC 1420FFE9 */ bnez $at, .L80008D74 +/* 0099D0 80008DD0 00000000 */ nop +/* 0099D4 80008DD4 AFA40250 */ sw $a0, 0x250($sp) +.L80008DD8: +/* 0099D8 80008DD8 2AC10190 */ slti $at, $s6, 0x190 +/* 0099DC 80008DDC 10200016 */ beqz $at, .L80008E38 +/* 0099E0 80008DE0 8FAC00B0 */ lw $t4, 0xb0($sp) +/* 0099E4 80008DE4 44968000 */ mtc1 $s6, $f16 +/* 0099E8 80008DE8 8FA80250 */ lw $t0, 0x250($sp) +/* 0099EC 80008DEC 46808220 */ cvt.s.w $f8, $f16 +/* 0099F0 80008DF0 2509FFC0 */ addiu $t1, $t0, -0x40 +/* 0099F4 80008DF4 44892000 */ mtc1 $t1, $f4 +/* 0099F8 80008DF8 46144483 */ div.s $f18, $f8, $f20 +/* 0099FC 80008DFC 468021A0 */ cvt.s.w $f6, $f4 +/* 009A00 80008E00 46123282 */ mul.s $f10, $f6, $f18 +/* 009A04 80008E04 46165100 */ add.s $f4, $f10, $f22 +/* 009A08 80008E08 444AF800 */ cfc1 $t2, $31 +/* 009A0C 80008E0C 00000000 */ nop +/* 009A10 80008E10 35410003 */ ori $at, $t2, 3 +/* 009A14 80008E14 38210002 */ xori $at, $at, 2 +/* 009A18 80008E18 44C1F800 */ ctc1 $at, $31 +/* 009A1C 80008E1C 00000000 */ nop +/* 009A20 80008E20 46002424 */ cvt.w.s $f16, $f4 +/* 009A24 80008E24 440B8000 */ mfc1 $t3, $f16 +/* 009A28 80008E28 44CAF800 */ ctc1 $t2, $31 +/* 009A2C 80008E2C AFAB0250 */ sw $t3, 0x250($sp) +/* 009A30 80008E30 00000000 */ nop +/* 009A34 80008E34 8FAC00B0 */ lw $t4, 0xb0($sp) +.L80008E38: +/* 009A38 80008E38 27DE0001 */ addiu $fp, $fp, 1 +/* 009A3C 80008E3C 17CCFF40 */ bne $fp, $t4, .L80008B40 +/* 009A40 80008E40 8FA20088 */ lw $v0, 0x88($sp) +.L80008E44: +/* 009A44 80008E44 8FAE0088 */ lw $t6, 0x88($sp) +/* 009A48 80008E48 8FAD0254 */ lw $t5, 0x254($sp) +/* 009A4C 80008E4C 91C20000 */ lbu $v0, ($t6) +/* 009A50 80008E50 24010001 */ li $at, 1 +/* 009A54 80008E54 1440004C */ bnez $v0, .L80008F88 +/* 009A58 80008E58 00000000 */ nop +/* 009A5C 80008E5C 91C20175 */ lbu $v0, 0x175($t6) +/* 009A60 80008E60 00000000 */ nop +/* 009A64 80008E64 01A2082A */ slt $at, $t5, $v0 +/* 009A68 80008E68 10200003 */ beqz $at, .L80008E78 +/* 009A6C 80008E6C 8FAF0254 */ lw $t7, 0x254($sp) +/* 009A70 80008E70 AFA20254 */ sw $v0, 0x254($sp) +/* 009A74 80008E74 8FAF0254 */ lw $t7, 0x254($sp) +.L80008E78: +/* 009A78 80008E78 8FB80088 */ lw $t8, 0x88($sp) +/* 009A7C 80008E7C 29E1000B */ slti $at, $t7, 0xb +/* 009A80 80008E80 14200038 */ bnez $at, .L80008F64 +/* 009A84 80008E84 8FAF0088 */ lw $t7, 0x88($sp) +/* 009A88 80008E88 93190176 */ lbu $t9, 0x176($t8) +/* 009A8C 80008E8C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 009A90 80008E90 44994000 */ mtc1 $t9, $f8 +/* 009A94 80008E94 07210004 */ bgez $t9, .L80008EA8 +/* 009A98 80008E98 468041A0 */ cvt.s.w $f6, $f8 +/* 009A9C 80008E9C 44819000 */ mtc1 $at, $f18 +/* 009AA0 80008EA0 00000000 */ nop +/* 009AA4 80008EA4 46123180 */ add.s $f6, $f6, $f18 +.L80008EA8: +/* 009AA8 80008EA8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 009AAC 80008EAC 44815000 */ mtc1 $at, $f10 +/* 009AB0 80008EB0 00000000 */ nop +/* 009AB4 80008EB4 460A3103 */ div.s $f4, $f6, $f10 +/* 009AB8 80008EB8 E7A40090 */ swc1 $f4, 0x90($sp) +/* 009ABC 80008EBC 8F040178 */ lw $a0, 0x178($t8) +/* 009AC0 80008EC0 00000000 */ nop +/* 009AC4 80008EC4 14800008 */ bnez $a0, .L80008EE8 +/* 009AC8 80008EC8 00000000 */ nop +/* 009ACC 80008ECC 9704016E */ lhu $a0, 0x16e($t8) +/* 009AD0 80008ED0 0C0007C5 */ jal func_80001F14 +/* 009AD4 80008ED4 27050178 */ addiu $a1, $t8, 0x178 +/* 009AD8 80008ED8 8FA80088 */ lw $t0, 0x88($sp) +/* 009ADC 80008EDC 00000000 */ nop +/* 009AE0 80008EE0 8D040178 */ lw $a0, 0x178($t0) +/* 009AE4 80008EE4 00000000 */ nop +.L80008EE8: +/* 009AE8 80008EE8 10800037 */ beqz $a0, .L80008FC8 +/* 009AEC 80008EEC 8FAB0260 */ lw $t3, 0x260($sp) +/* 009AF0 80008EF0 8FA60254 */ lw $a2, 0x254($sp) +/* 009AF4 80008EF4 24050008 */ li $a1, 8 +/* 009AF8 80008EF8 00064A00 */ sll $t1, $a2, 8 +/* 009AFC 80008EFC 0C00127E */ jal func_800049F8 +/* 009B00 80008F00 01203025 */ move $a2, $t1 +/* 009B04 80008F04 8FAA0088 */ lw $t2, 0x88($sp) +/* 009B08 80008F08 8FA60090 */ lw $a2, 0x90($sp) +/* 009B0C 80008F0C 8D440178 */ lw $a0, 0x178($t2) +/* 009B10 80008F10 0C00127E */ jal func_800049F8 +/* 009B14 80008F14 24050010 */ li $a1, 16 +/* 009B18 80008F18 8FAB00B0 */ lw $t3, 0xb0($sp) +/* 009B1C 80008F1C 24010001 */ li $at, 1 +/* 009B20 80008F20 11610002 */ beq $t3, $at, .L80008F2C +/* 009B24 80008F24 240C0040 */ li $t4, 64 +/* 009B28 80008F28 AFAC0250 */ sw $t4, 0x250($sp) +.L80008F2C: +/* 009B2C 80008F2C 8FAE0088 */ lw $t6, 0x88($sp) +/* 009B30 80008F30 8FA60250 */ lw $a2, 0x250($sp) +/* 009B34 80008F34 8DC40178 */ lw $a0, 0x178($t6) +/* 009B38 80008F38 0C00127E */ jal func_800049F8 +/* 009B3C 80008F3C 24050004 */ li $a1, 4 +/* 009B40 80008F40 8FAD0088 */ lw $t5, 0x88($sp) +/* 009B44 80008F44 00000000 */ nop +/* 009B48 80008F48 8DA40178 */ lw $a0, 0x178($t5) +/* 009B4C 80008F4C 91A5017E */ lbu $a1, 0x17e($t5) +/* 009B50 80008F50 0C001181 */ jal func_80004604 +/* 009B54 80008F54 00000000 */ nop +/* 009B58 80008F58 1000001B */ b .L80008FC8 +/* 009B5C 80008F5C 8FAB0260 */ lw $t3, 0x260($sp) +/* 009B60 80008F60 8FAF0088 */ lw $t7, 0x88($sp) +.L80008F64: +/* 009B64 80008F64 00000000 */ nop +/* 009B68 80008F68 8DE40178 */ lw $a0, 0x178($t7) +/* 009B6C 80008F6C 00000000 */ nop +/* 009B70 80008F70 10800015 */ beqz $a0, .L80008FC8 +/* 009B74 80008F74 8FAB0260 */ lw $t3, 0x260($sp) +/* 009B78 80008F78 0C001223 */ jal func_8000488C +/* 009B7C 80008F7C 00000000 */ nop +/* 009B80 80008F80 10000011 */ b .L80008FC8 +/* 009B84 80008F84 8FAB0260 */ lw $t3, 0x260($sp) +.L80008F88: +/* 009B88 80008F88 1441000F */ bne $v0, $at, .L80008FC8 +/* 009B8C 80008F8C 8FAB0260 */ lw $t3, 0x260($sp) +/* 009B90 80008F90 8FB9024C */ lw $t9, 0x24c($sp) +/* 009B94 80008F94 8FB80254 */ lw $t8, 0x254($sp) +/* 009B98 80008F98 00000000 */ nop +/* 009B9C 80008F9C 0338082A */ slt $at, $t9, $t8 +/* 009BA0 80008FA0 10200009 */ beqz $at, .L80008FC8 +/* 009BA4 80008FA4 8FAB0260 */ lw $t3, 0x260($sp) +/* 009BA8 80008FA8 8FA80250 */ lw $t0, 0x250($sp) +/* 009BAC 80008FAC 8FA90088 */ lw $t1, 0x88($sp) +/* 009BB0 80008FB0 AFB8024C */ sw $t8, 0x24c($sp) +/* 009BB4 80008FB4 AFA80248 */ sw $t0, 0x248($sp) +/* 009BB8 80008FB8 8D2A016C */ lw $t2, 0x16c($t1) +/* 009BBC 80008FBC 00000000 */ nop +/* 009BC0 80008FC0 AFAA0244 */ sw $t2, 0x244($sp) +.L80008FC4: +/* 009BC4 80008FC4 8FAB0260 */ lw $t3, 0x260($sp) +.L80008FC8: +/* 009BC8 80008FC8 8FA20088 */ lw $v0, 0x88($sp) +/* 009BCC 80008FCC 24010007 */ li $at, 7 +/* 009BD0 80008FD0 256C0001 */ addiu $t4, $t3, 1 +/* 009BD4 80008FD4 AFAC0260 */ sw $t4, 0x260($sp) +/* 009BD8 80008FD8 1581FEC7 */ bne $t4, $at, .L80008AF8 +/* 009BDC 80008FDC 24420180 */ addiu $v0, $v0, 0x180 +/* 009BE0 80008FE0 8FAE024C */ lw $t6, 0x24c($sp) +/* 009BE4 80008FE4 3C0D8012 */ lui $t5, %hi(D_8011AC18) # $t5, 0x8012 +/* 009BE8 80008FE8 29C1000B */ slti $at, $t6, 0xb +/* 009BEC 80008FEC 14200015 */ bnez $at, .L80009044 +/* 009BF0 80008FF0 00000000 */ nop +/* 009BF4 80008FF4 91ADAC18 */ lbu $t5, %lo(D_8011AC18)($t5) +/* 009BF8 80008FF8 00000000 */ nop +/* 009BFC 80008FFC 15A00011 */ bnez $t5, .L80009044 +/* 009C00 80009000 00000000 */ nop +/* 009C04 80009004 0C000660 */ jal func_80001980 +/* 009C08 80009008 00000000 */ nop +/* 009C0C 8000900C 8FAF0244 */ lw $t7, 0x244($sp) +/* 009C10 80009010 93A40247 */ lbu $a0, 0x247($sp) +/* 009C14 80009014 11E20003 */ beq $t7, $v0, .L80009024 +/* 009C18 80009018 00000000 */ nop +/* 009C1C 8000901C 0C0005E1 */ jal func_80001784 +/* 009C20 80009020 00000000 */ nop +.L80009024: +/* 009C24 80009024 93A4024F */ lbu $a0, 0x24f($sp) +/* 009C28 80009028 0C0006C3 */ jal sfxSetRelativeVolume +/* 009C2C 8000902C 00000000 */ nop +/* 009C30 80009030 93A4024B */ lbu $a0, 0x24b($sp) +/* 009C34 80009034 0C0006D6 */ jal sfxSetPan +/* 009C38 80009038 00000000 */ nop +/* 009C3C 8000903C 10000004 */ b .L80009050 +/* 009C40 80009040 8FA5026C */ lw $a1, 0x26c($sp) +.L80009044: +/* 009C44 80009044 0C000638 */ jal func_800018E0 +/* 009C48 80009048 00000000 */ nop +/* 009C4C 8000904C 8FA5026C */ lw $a1, 0x26c($sp) +.L80009050: +/* 009C50 80009050 8FA40268 */ lw $a0, 0x268($sp) +/* 009C54 80009054 10A00007 */ beqz $a1, .L80009074 +/* 009C58 80009058 8FBF006C */ lw $ra, 0x6c($sp) +/* 009C5C 8000905C 8FB90270 */ lw $t9, 0x270($sp) +/* 009C60 80009060 8FA600AC */ lw $a2, 0xac($sp) +/* 009C64 80009064 93A700B3 */ lbu $a3, 0xb3($sp) +/* 009C68 80009068 0C001BF2 */ jal func_80006FC8 +/* 009C6C 8000906C AFB90010 */ sw $t9, 0x10($sp) +/* 009C70 80009070 8FBF006C */ lw $ra, 0x6c($sp) +.L80009074: +/* 009C74 80009074 C7B50028 */ lwc1 $f21, 0x28($sp) +/* 009C78 80009078 C7B4002C */ lwc1 $f20, 0x2c($sp) +/* 009C7C 8000907C C7B70030 */ lwc1 $f23, 0x30($sp) +/* 009C80 80009080 C7B60034 */ lwc1 $f22, 0x34($sp) +/* 009C84 80009084 C7B90038 */ lwc1 $f25, 0x38($sp) +/* 009C88 80009088 C7B8003C */ lwc1 $f24, 0x3c($sp) +/* 009C8C 8000908C C7BB0040 */ lwc1 $f27, 0x40($sp) +/* 009C90 80009090 C7BA0044 */ lwc1 $f26, 0x44($sp) +/* 009C94 80009094 8FB00048 */ lw $s0, 0x48($sp) +/* 009C98 80009098 8FB1004C */ lw $s1, 0x4c($sp) +/* 009C9C 8000909C 8FB20050 */ lw $s2, 0x50($sp) +/* 009CA0 800090A0 8FB30054 */ lw $s3, 0x54($sp) +/* 009CA4 800090A4 8FB40058 */ lw $s4, 0x58($sp) +/* 009CA8 800090A8 8FB5005C */ lw $s5, 0x5c($sp) +/* 009CAC 800090AC 8FB60060 */ lw $s6, 0x60($sp) +/* 009CB0 800090B0 8FB70064 */ lw $s7, 0x64($sp) +/* 009CB4 800090B4 8FBE0068 */ lw $fp, 0x68($sp) +/* 009CB8 800090B8 03E00008 */ jr $ra +/* 009CBC 800090BC 27BD0268 */ addiu $sp, $sp, 0x268 + diff --git a/asm/non_matchings/unknown_0255E0/func_800249F0.s b/asm/non_matchings/unknown_0255E0/func_800249F0.s index b1f34400..c1523e64 100644 --- a/asm/non_matchings/unknown_0255E0/func_800249F0.s +++ b/asm/non_matchings/unknown_0255E0/func_800249F0.s @@ -1,233 +1,233 @@ -glabel func_800249F0 -/* 0255F0 800249F0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0255F4 800249F4 AFBF0024 */ sw $ra, 0x24($sp) -/* 0255F8 800249F8 AFB2001C */ sw $s2, 0x1c($sp) -/* 0255FC 800249FC AFB10018 */ sw $s1, 0x18($sp) -/* 025600 80024A00 00808825 */ move $s1, $a0 -/* 025604 80024A04 00A09025 */ move $s2, $a1 -/* 025608 80024A08 AFB30020 */ sw $s3, 0x20($sp) -/* 02560C 80024A0C AFB00014 */ sw $s0, 0x14($sp) -/* 025610 80024A10 AFA60030 */ sw $a2, 0x30($sp) -/* 025614 80024A14 0C01AF6C */ jal get_current_level_header -/* 025618 80024A18 AFA70034 */ sw $a3, 0x34($sp) -/* 02561C 80024A1C 3C048012 */ lui $a0, %hi(D_8011B0F8) # $a0, 0x8012 -/* 025620 80024A20 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e -/* 025624 80024A24 24A5C91C */ addiu $a1, %lo(gCurrentLevelHeader2) # addiu $a1, $a1, -0x36e4 -/* 025628 80024A28 2484B0F8 */ addiu $a0, %lo(D_8011B0F8) # addiu $a0, $a0, -0x4f08 -/* 02562C 80024A2C ACA20000 */ sw $v0, ($a1) -/* 025630 80024A30 AC800000 */ sw $zero, ($a0) -/* 025634 80024A34 3C018012 */ lui $at, %hi(D_8011B100) # $at, 0x8012 -/* 025638 80024A38 AC20B100 */ sw $zero, %lo(D_8011B100)($at) -/* 02563C 80024A3C 3C018012 */ lui $at, %hi(D_8011B104) # $at, 0x8012 -/* 025640 80024A40 AC20B104 */ sw $zero, %lo(D_8011B104)($at) -/* 025644 80024A44 3C018012 */ lui $at, %hi(D_8011B108) # $at, 0x8012 -/* 025648 80024A48 AC20B108 */ sw $zero, %lo(D_8011B108)($at) -/* 02564C 80024A4C 3C018012 */ lui $at, %hi(D_8011B10C) # $at, 0x8012 -/* 025650 80024A50 AC20B10C */ sw $zero, %lo(D_8011B10C)($at) -/* 025654 80024A54 8CAE0000 */ lw $t6, ($a1) -/* 025658 80024A58 24010006 */ li $at, 6 -/* 02565C 80024A5C 81C3004C */ lb $v1, 0x4c($t6) -/* 025660 80024A60 00000000 */ nop -/* 025664 80024A64 10610002 */ beq $v1, $at, .L80024A70 -/* 025668 80024A68 24010007 */ li $at, 7 -/* 02566C 80024A6C 14610002 */ bne $v1, $at, .L80024A78 -.L80024A70: -/* 025670 80024A70 240F0001 */ li $t7, 1 -/* 025674 80024A74 AC8F0000 */ sw $t7, ($a0) -.L80024A78: -/* 025678 80024A78 0C00B031 */ jal func_8002C0C4 -/* 02567C 80024A7C 02202025 */ move $a0, $s1 -/* 025680 80024A80 8FB80030 */ lw $t8, 0x30($sp) -/* 025684 80024A84 3C108012 */ lui $s0, %hi(D_8011D384) # $s0, 0x8012 -/* 025688 80024A88 2610D384 */ addiu $s0, %lo(D_8011D384) # addiu $s0, $s0, -0x2c7c -/* 02568C 80024A8C 2B010002 */ slti $at, $t8, 2 -/* 025690 80024A90 1020001E */ beqz $at, .L80024B0C -/* 025694 80024A94 AE000000 */ sw $zero, ($s0) -/* 025698 80024A98 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e -/* 02569C 80024A9C 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) -/* 0256A0 80024AA0 00003025 */ move $a2, $zero -/* 0256A4 80024AA4 8444001A */ lh $a0, 0x1a($v0) -/* 0256A8 80024AA8 00001825 */ move $v1, $zero -/* 0256AC 80024AAC 18800017 */ blez $a0, .L80024B0C -/* 0256B0 80024AB0 24050001 */ li $a1, 1 -.L80024AB4: -/* 0256B4 80024AB4 8C590004 */ lw $t9, 4($v0) -/* 0256B8 80024AB8 24C60001 */ addiu $a2, $a2, 1 -/* 0256BC 80024ABC 03234021 */ addu $t0, $t9, $v1 -/* 0256C0 80024AC0 8109002B */ lb $t1, 0x2b($t0) -/* 0256C4 80024AC4 00000000 */ nop -/* 0256C8 80024AC8 1120000E */ beqz $t1, .L80024B04 -/* 0256CC 80024ACC 00C4082A */ slt $at, $a2, $a0 -/* 0256D0 80024AD0 8E0A0000 */ lw $t2, ($s0) -/* 0256D4 80024AD4 00000000 */ nop -/* 0256D8 80024AD8 254B0001 */ addiu $t3, $t2, 1 -/* 0256DC 80024ADC AE0B0000 */ sw $t3, ($s0) -/* 0256E0 80024AE0 8C4C0004 */ lw $t4, 4($v0) -/* 0256E4 80024AE4 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e -/* 0256E8 80024AE8 01836821 */ addu $t5, $t4, $v1 -/* 0256EC 80024AEC A1A5002B */ sb $a1, 0x2b($t5) -/* 0256F0 80024AF0 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) -/* 0256F4 80024AF4 00000000 */ nop -/* 0256F8 80024AF8 8444001A */ lh $a0, 0x1a($v0) -/* 0256FC 80024AFC 00000000 */ nop -/* 025700 80024B00 00C4082A */ slt $at, $a2, $a0 -.L80024B04: -/* 025704 80024B04 1420FFEB */ bnez $at, .L80024AB4 -/* 025708 80024B08 24630044 */ addiu $v1, $v1, 0x44 -.L80024B0C: -/* 02570C 80024B0C 0C027B20 */ jal is_in_two_player_adventure -/* 025710 80024B10 00000000 */ nop -/* 025714 80024B14 1040000B */ beqz $v0, .L80024B44 -/* 025718 80024B18 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e -/* 02571C 80024B1C 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6) -/* 025720 80024B20 00000000 */ nop -/* 025724 80024B24 81C3004C */ lb $v1, 0x4c($t6) -/* 025728 80024B28 00000000 */ nop -/* 02572C 80024B2C 10600003 */ beqz $v1, .L80024B3C -/* 025730 80024B30 306F0040 */ andi $t7, $v1, 0x40 -/* 025734 80024B34 11E00004 */ beqz $t7, .L80024B48 -/* 025738 80024B38 8FA60030 */ lw $a2, 0x30($sp) -.L80024B3C: -/* 02573C 80024B3C 10000004 */ b .L80024B50 -/* 025740 80024B40 24060002 */ li $a2, 2 -.L80024B44: -/* 025744 80024B44 8FA60030 */ lw $a2, 0x30($sp) -.L80024B48: -/* 025748 80024B48 00000000 */ nop -/* 02574C 80024B4C 24C60001 */ addiu $a2, $a2, 1 -.L80024B50: -/* 025750 80024B50 8E180000 */ lw $t8, ($s0) -/* 025754 80024B54 00000000 */ nop -/* 025758 80024B58 13000006 */ beqz $t8, .L80024B74 -/* 02575C 80024B5C 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e -/* 025760 80024B60 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e -/* 025764 80024B64 8CA5C91C */ lw $a1, %lo(gCurrentLevelHeader2)($a1) -/* 025768 80024B68 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0) -/* 02576C 80024B6C 0C02E0AD */ jal func_800B82B4 -/* 025770 80024B70 00000000 */ nop -.L80024B74: -/* 025774 80024B74 8FA40030 */ lw $a0, 0x30($sp) -/* 025778 80024B78 0C01994B */ jal set_active_viewports_and_object_stack_cap -/* 02577C 80024B7C 00000000 */ nop -/* 025780 80024B80 0C009FF1 */ jal func_80027FC4 -/* 025784 80024B84 02402025 */ move $a0, $s2 -/* 025788 80024B88 3C018012 */ lui $at, %hi(D_8011B110) # $at, 0x8012 -/* 02578C 80024B8C AC20B110 */ sw $zero, %lo(D_8011B110)($at) -/* 025790 80024B90 3C018012 */ lui $at, %hi(D_8011B114) # $at, 0x8012 -/* 025794 80024B94 3C190001 */ lui $t9, 1 -/* 025798 80024B98 0C0044E4 */ jal func_80011390 -/* 02579C 80024B9C AC39B114 */ sw $t9, %lo(D_8011B114)($at) -/* 0257A0 80024BA0 8FA40040 */ lw $a0, 0x40($sp) -/* 0257A4 80024BA4 0C00323E */ jal func_8000C8F8 -/* 0257A8 80024BA8 00002825 */ move $a1, $zero -/* 0257AC 80024BAC 8FA4003C */ lw $a0, 0x3c($sp) -/* 0257B0 80024BB0 0C00323E */ jal func_8000C8F8 -/* 0257B4 80024BB4 24050001 */ li $a1, 1 -/* 0257B8 80024BB8 8FB00038 */ lw $s0, 0x38($sp) -/* 0257BC 80024BBC 8FA80030 */ lw $t0, 0x30($sp) -/* 0257C0 80024BC0 3C138012 */ lui $s3, %hi(D_8011D37C) # $s3, 0x8012 -/* 0257C4 80024BC4 2673D37C */ addiu $s3, %lo(D_8011D37C) # addiu $s3, $s3, -0x2c84 -/* 0257C8 80024BC8 8FA40034 */ lw $a0, 0x34($sp) -/* 0257CC 80024BCC 8FA60030 */ lw $a2, 0x30($sp) -/* 0257D0 80024BD0 02002825 */ move $a1, $s0 -/* 0257D4 80024BD4 0C00331F */ jal func_8000CC7C -/* 0257D8 80024BD8 AE680000 */ sw $t0, ($s3) -/* 0257DC 80024BDC 24040048 */ li $a0, 72 -/* 0257E0 80024BE0 0C002C08 */ jal func_8000B020 -/* 0257E4 80024BE4 24050040 */ li $a1, 64 -/* 0257E8 80024BE8 16200008 */ bnez $s1, .L80024C0C -/* 0257EC 80024BEC 3C04800E */ lui $a0, %hi(D_800DC874) # $a0, 0x800e -/* 0257F0 80024BF0 16000006 */ bnez $s0, .L80024C0C -/* 0257F4 80024BF4 00000000 */ nop -/* 0257F8 80024BF8 3C04800E */ lui $a0, %hi(D_800DC87C) # $a0, 0x800e -/* 0257FC 80024BFC 0C030076 */ jal func_800C01D8 -/* 025800 80024C00 2484C87C */ addiu $a0, %lo(D_800DC87C) # addiu $a0, $a0, -0x3784 -/* 025804 80024C04 10000004 */ b .L80024C18 -/* 025808 80024C08 8E640000 */ lw $a0, ($s3) -.L80024C0C: -/* 02580C 80024C0C 0C030076 */ jal func_800C01D8 -/* 025810 80024C10 2484C874 */ addiu $a0, %lo(D_800DC874) # addiu $a0, $a0, -0x378c -/* 025814 80024C14 8E640000 */ lw $a0, ($s3) -.L80024C18: -/* 025818 80024C18 0C01994B */ jal set_active_viewports_and_object_stack_cap -/* 02581C 80024C1C 00000000 */ nop -/* 025820 80024C20 8E690000 */ lw $t1, ($s3) -/* 025824 80024C24 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012 -/* 025828 80024C28 3C13FFFF */ lui $s3, (0xFFFF00FF >> 16) # lui $s3, 0xffff -/* 02582C 80024C2C 3C118012 */ lui $s1, %hi(D_8011D350) # $s1, 0x8012 -/* 025830 80024C30 3C128012 */ lui $s2, %hi(D_8011D320) # $s2, 0x8012 -/* 025834 80024C34 3C108012 */ lui $s0, %hi(D_8011D338) # $s0, 0x8012 -/* 025838 80024C38 AC20B0FC */ sw $zero, %lo(D_8011B0FC)($at) -/* 02583C 80024C3C 2610D338 */ addiu $s0, %lo(D_8011D338) # addiu $s0, $s0, -0x2cc8 -/* 025840 80024C40 2652D320 */ addiu $s2, %lo(D_8011D320) # addiu $s2, $s2, -0x2ce0 -/* 025844 80024C44 2631D350 */ addiu $s1, %lo(D_8011D350) # addiu $s1, $s1, -0x2cb0 -/* 025848 80024C48 367300FF */ ori $s3, (0xFFFF00FF & 0xFFFF) # ori $s3, $s3, 0xff -/* 02584C 80024C4C AFA90030 */ sw $t1, 0x30($sp) -.L80024C50: -/* 025850 80024C50 24040C80 */ li $a0, 3200 -/* 025854 80024C54 0C01C327 */ jal allocate_from_main_pool_safe -/* 025858 80024C58 02602825 */ move $a1, $s3 -/* 02585C 80024C5C AE220000 */ sw $v0, ($s1) -/* 025860 80024C60 24043200 */ li $a0, 12800 -/* 025864 80024C64 0C01C327 */ jal allocate_from_main_pool_safe -/* 025868 80024C68 02602825 */ move $a1, $s3 -/* 02586C 80024C6C AE420000 */ sw $v0, ($s2) -/* 025870 80024C70 24044E20 */ li $a0, 20000 -/* 025874 80024C74 0C01C327 */ jal allocate_from_main_pool_safe -/* 025878 80024C78 02602825 */ move $a1, $s3 -/* 02587C 80024C7C 3C0A8012 */ lui $t2, %hi(D_8011D348) # $t2, 0x8012 -/* 025880 80024C80 254AD348 */ addiu $t2, %lo(D_8011D348) # addiu $t2, $t2, -0x2cb8 -/* 025884 80024C84 26100004 */ addiu $s0, $s0, 4 -/* 025888 80024C88 26310004 */ addiu $s1, $s1, 4 -/* 02588C 80024C8C 26520004 */ addiu $s2, $s2, 4 -/* 025890 80024C90 160AFFEF */ bne $s0, $t2, .L80024C50 -/* 025894 80024C94 AE02FFFC */ sw $v0, -4($s0) -/* 025898 80024C98 3C108012 */ lui $s0, %hi(D_8011B0C8) # $s0, 0x8012 -/* 02589C 80024C9C 2610B0C8 */ addiu $s0, %lo(D_8011B0C8) # addiu $s0, $s0, -0x4f38 -/* 0258A0 80024CA0 AE000000 */ sw $zero, ($s0) -/* 0258A4 80024CA4 24040001 */ li $a0, 1 -/* 0258A8 80024CA8 24050001 */ li $a1, 1 -/* 0258AC 80024CAC 0C00B637 */ jal func_8002D8DC -/* 0258B0 80024CB0 00003025 */ move $a2, $zero -/* 0258B4 80024CB4 24040002 */ li $a0, 2 -/* 0258B8 80024CB8 24050002 */ li $a1, 2 -/* 0258BC 80024CBC 0C00B637 */ jal func_8002D8DC -/* 0258C0 80024CC0 00003025 */ move $a2, $zero -/* 0258C4 80024CC4 240B0001 */ li $t3, 1 -/* 0258C8 80024CC8 AE0B0000 */ sw $t3, ($s0) -/* 0258CC 80024CCC 24040001 */ li $a0, 1 -/* 0258D0 80024CD0 24050001 */ li $a1, 1 -/* 0258D4 80024CD4 0C00B637 */ jal func_8002D8DC -/* 0258D8 80024CD8 00003025 */ move $a2, $zero -/* 0258DC 80024CDC 24040002 */ li $a0, 2 -/* 0258E0 80024CE0 24050002 */ li $a1, 2 -/* 0258E4 80024CE4 0C00B637 */ jal func_8002D8DC -/* 0258E8 80024CE8 00003025 */ move $a2, $zero -/* 0258EC 80024CEC AE000000 */ sw $zero, ($s0) -/* 0258F0 80024CF0 3C02800E */ lui $v0, %hi(gCurrentLevelHeader2) # $v0, 0x800e -/* 0258F4 80024CF4 8C42C91C */ lw $v0, %lo(gCurrentLevelHeader2)($v0) -/* 0258F8 80024CF8 3C018012 */ lui $at, %hi(D_8011B0E1) # $at, 0x8012 -/* 0258FC 80024CFC 904C00B7 */ lbu $t4, 0xb7($v0) -/* 025900 80024D00 00000000 */ nop -/* 025904 80024D04 1180000D */ beqz $t4, .L80024D3C -/* 025908 80024D08 8FBF0024 */ lw $ra, 0x24($sp) -/* 02590C 80024D0C 904D00B4 */ lbu $t5, 0xb4($v0) -/* 025910 80024D10 8FA40030 */ lw $a0, 0x30($sp) -/* 025914 80024D14 A02DB0E1 */ sb $t5, %lo(D_8011B0E1)($at) -/* 025918 80024D18 904E00B5 */ lbu $t6, 0xb5($v0) -/* 02591C 80024D1C 3C018012 */ lui $at, %hi(D_8011B0E2) # $at, 0x8012 -/* 025920 80024D20 A02EB0E2 */ sb $t6, %lo(D_8011B0E2)($at) -/* 025924 80024D24 904F00B6 */ lbu $t7, 0xb6($v0) -/* 025928 80024D28 3C018012 */ lui $at, %hi(D_8011B0E3) # $at, 0x8012 -/* 02592C 80024D2C 24840001 */ addiu $a0, $a0, 1 -/* 025930 80024D30 0C009544 */ jal func_80025510 -/* 025934 80024D34 A02FB0E3 */ sb $t7, %lo(D_8011B0E3)($at) -/* 025938 80024D38 8FBF0024 */ lw $ra, 0x24($sp) -.L80024D3C: -/* 02593C 80024D3C 8FB00014 */ lw $s0, 0x14($sp) -/* 025940 80024D40 8FB10018 */ lw $s1, 0x18($sp) -/* 025944 80024D44 8FB2001C */ lw $s2, 0x1c($sp) -/* 025948 80024D48 8FB30020 */ lw $s3, 0x20($sp) -/* 02594C 80024D4C 03E00008 */ jr $ra -/* 025950 80024D50 27BD0028 */ addiu $sp, $sp, 0x28 - +glabel func_800249F0 +/* 0255F0 800249F0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 0255F4 800249F4 AFBF0024 */ sw $ra, 0x24($sp) +/* 0255F8 800249F8 AFB2001C */ sw $s2, 0x1c($sp) +/* 0255FC 800249FC AFB10018 */ sw $s1, 0x18($sp) +/* 025600 80024A00 00808825 */ move $s1, $a0 +/* 025604 80024A04 00A09025 */ move $s2, $a1 +/* 025608 80024A08 AFB30020 */ sw $s3, 0x20($sp) +/* 02560C 80024A0C AFB00014 */ sw $s0, 0x14($sp) +/* 025610 80024A10 AFA60030 */ sw $a2, 0x30($sp) +/* 025614 80024A14 0C01AF6C */ jal get_current_level_header +/* 025618 80024A18 AFA70034 */ sw $a3, 0x34($sp) +/* 02561C 80024A1C 3C048012 */ lui $a0, %hi(D_8011B0F8) # $a0, 0x8012 +/* 025620 80024A20 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e +/* 025624 80024A24 24A5C91C */ addiu $a1, %lo(gCurrentLevelHeader2) # addiu $a1, $a1, -0x36e4 +/* 025628 80024A28 2484B0F8 */ addiu $a0, %lo(D_8011B0F8) # addiu $a0, $a0, -0x4f08 +/* 02562C 80024A2C ACA20000 */ sw $v0, ($a1) +/* 025630 80024A30 AC800000 */ sw $zero, ($a0) +/* 025634 80024A34 3C018012 */ lui $at, %hi(D_8011B100) # $at, 0x8012 +/* 025638 80024A38 AC20B100 */ sw $zero, %lo(D_8011B100)($at) +/* 02563C 80024A3C 3C018012 */ lui $at, %hi(D_8011B104) # $at, 0x8012 +/* 025640 80024A40 AC20B104 */ sw $zero, %lo(D_8011B104)($at) +/* 025644 80024A44 3C018012 */ lui $at, %hi(D_8011B108) # $at, 0x8012 +/* 025648 80024A48 AC20B108 */ sw $zero, %lo(D_8011B108)($at) +/* 02564C 80024A4C 3C018012 */ lui $at, %hi(D_8011B10C) # $at, 0x8012 +/* 025650 80024A50 AC20B10C */ sw $zero, %lo(D_8011B10C)($at) +/* 025654 80024A54 8CAE0000 */ lw $t6, ($a1) +/* 025658 80024A58 24010006 */ li $at, 6 +/* 02565C 80024A5C 81C3004C */ lb $v1, 0x4c($t6) +/* 025660 80024A60 00000000 */ nop +/* 025664 80024A64 10610002 */ beq $v1, $at, .L80024A70 +/* 025668 80024A68 24010007 */ li $at, 7 +/* 02566C 80024A6C 14610002 */ bne $v1, $at, .L80024A78 +.L80024A70: +/* 025670 80024A70 240F0001 */ li $t7, 1 +/* 025674 80024A74 AC8F0000 */ sw $t7, ($a0) +.L80024A78: +/* 025678 80024A78 0C00B031 */ jal func_8002C0C4 +/* 02567C 80024A7C 02202025 */ move $a0, $s1 +/* 025680 80024A80 8FB80030 */ lw $t8, 0x30($sp) +/* 025684 80024A84 3C108012 */ lui $s0, %hi(D_8011D384) # $s0, 0x8012 +/* 025688 80024A88 2610D384 */ addiu $s0, %lo(D_8011D384) # addiu $s0, $s0, -0x2c7c +/* 02568C 80024A8C 2B010002 */ slti $at, $t8, 2 +/* 025690 80024A90 1020001E */ beqz $at, .L80024B0C +/* 025694 80024A94 AE000000 */ sw $zero, ($s0) +/* 025698 80024A98 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 02569C 80024A9C 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) +/* 0256A0 80024AA0 00003025 */ move $a2, $zero +/* 0256A4 80024AA4 8444001A */ lh $a0, 0x1a($v0) +/* 0256A8 80024AA8 00001825 */ move $v1, $zero +/* 0256AC 80024AAC 18800017 */ blez $a0, .L80024B0C +/* 0256B0 80024AB0 24050001 */ li $a1, 1 +.L80024AB4: +/* 0256B4 80024AB4 8C590004 */ lw $t9, 4($v0) +/* 0256B8 80024AB8 24C60001 */ addiu $a2, $a2, 1 +/* 0256BC 80024ABC 03234021 */ addu $t0, $t9, $v1 +/* 0256C0 80024AC0 8109002B */ lb $t1, 0x2b($t0) +/* 0256C4 80024AC4 00000000 */ nop +/* 0256C8 80024AC8 1120000E */ beqz $t1, .L80024B04 +/* 0256CC 80024ACC 00C4082A */ slt $at, $a2, $a0 +/* 0256D0 80024AD0 8E0A0000 */ lw $t2, ($s0) +/* 0256D4 80024AD4 00000000 */ nop +/* 0256D8 80024AD8 254B0001 */ addiu $t3, $t2, 1 +/* 0256DC 80024ADC AE0B0000 */ sw $t3, ($s0) +/* 0256E0 80024AE0 8C4C0004 */ lw $t4, 4($v0) +/* 0256E4 80024AE4 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 0256E8 80024AE8 01836821 */ addu $t5, $t4, $v1 +/* 0256EC 80024AEC A1A5002B */ sb $a1, 0x2b($t5) +/* 0256F0 80024AF0 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) +/* 0256F4 80024AF4 00000000 */ nop +/* 0256F8 80024AF8 8444001A */ lh $a0, 0x1a($v0) +/* 0256FC 80024AFC 00000000 */ nop +/* 025700 80024B00 00C4082A */ slt $at, $a2, $a0 +.L80024B04: +/* 025704 80024B04 1420FFEB */ bnez $at, .L80024AB4 +/* 025708 80024B08 24630044 */ addiu $v1, $v1, 0x44 +.L80024B0C: +/* 02570C 80024B0C 0C027B20 */ jal is_in_two_player_adventure +/* 025710 80024B10 00000000 */ nop +/* 025714 80024B14 1040000B */ beqz $v0, .L80024B44 +/* 025718 80024B18 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e +/* 02571C 80024B1C 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6) +/* 025720 80024B20 00000000 */ nop +/* 025724 80024B24 81C3004C */ lb $v1, 0x4c($t6) +/* 025728 80024B28 00000000 */ nop +/* 02572C 80024B2C 10600003 */ beqz $v1, .L80024B3C +/* 025730 80024B30 306F0040 */ andi $t7, $v1, 0x40 +/* 025734 80024B34 11E00004 */ beqz $t7, .L80024B48 +/* 025738 80024B38 8FA60030 */ lw $a2, 0x30($sp) +.L80024B3C: +/* 02573C 80024B3C 10000004 */ b .L80024B50 +/* 025740 80024B40 24060002 */ li $a2, 2 +.L80024B44: +/* 025744 80024B44 8FA60030 */ lw $a2, 0x30($sp) +.L80024B48: +/* 025748 80024B48 00000000 */ nop +/* 02574C 80024B4C 24C60001 */ addiu $a2, $a2, 1 +.L80024B50: +/* 025750 80024B50 8E180000 */ lw $t8, ($s0) +/* 025754 80024B54 00000000 */ nop +/* 025758 80024B58 13000006 */ beqz $t8, .L80024B74 +/* 02575C 80024B5C 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e +/* 025760 80024B60 3C05800E */ lui $a1, %hi(gCurrentLevelHeader2) # $a1, 0x800e +/* 025764 80024B64 8CA5C91C */ lw $a1, %lo(gCurrentLevelHeader2)($a1) +/* 025768 80024B68 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0) +/* 02576C 80024B6C 0C02E0AD */ jal func_800B82B4 +/* 025770 80024B70 00000000 */ nop +.L80024B74: +/* 025774 80024B74 8FA40030 */ lw $a0, 0x30($sp) +/* 025778 80024B78 0C01994B */ jal set_active_viewports_and_max +/* 02577C 80024B7C 00000000 */ nop +/* 025780 80024B80 0C009FF1 */ jal func_80027FC4 +/* 025784 80024B84 02402025 */ move $a0, $s2 +/* 025788 80024B88 3C018012 */ lui $at, %hi(D_8011B110) # $at, 0x8012 +/* 02578C 80024B8C AC20B110 */ sw $zero, %lo(D_8011B110)($at) +/* 025790 80024B90 3C018012 */ lui $at, %hi(D_8011B114) # $at, 0x8012 +/* 025794 80024B94 3C190001 */ lui $t9, 1 +/* 025798 80024B98 0C0044E4 */ jal func_80011390 +/* 02579C 80024B9C AC39B114 */ sw $t9, %lo(D_8011B114)($at) +/* 0257A0 80024BA0 8FA40040 */ lw $a0, 0x40($sp) +/* 0257A4 80024BA4 0C00323E */ jal func_8000C8F8 +/* 0257A8 80024BA8 00002825 */ move $a1, $zero +/* 0257AC 80024BAC 8FA4003C */ lw $a0, 0x3c($sp) +/* 0257B0 80024BB0 0C00323E */ jal func_8000C8F8 +/* 0257B4 80024BB4 24050001 */ li $a1, 1 +/* 0257B8 80024BB8 8FB00038 */ lw $s0, 0x38($sp) +/* 0257BC 80024BBC 8FA80030 */ lw $t0, 0x30($sp) +/* 0257C0 80024BC0 3C138012 */ lui $s3, %hi(D_8011D37C) # $s3, 0x8012 +/* 0257C4 80024BC4 2673D37C */ addiu $s3, %lo(D_8011D37C) # addiu $s3, $s3, -0x2c84 +/* 0257C8 80024BC8 8FA40034 */ lw $a0, 0x34($sp) +/* 0257CC 80024BCC 8FA60030 */ lw $a2, 0x30($sp) +/* 0257D0 80024BD0 02002825 */ move $a1, $s0 +/* 0257D4 80024BD4 0C00331F */ jal func_8000CC7C +/* 0257D8 80024BD8 AE680000 */ sw $t0, ($s3) +/* 0257DC 80024BDC 24040048 */ li $a0, 72 +/* 0257E0 80024BE0 0C002C08 */ jal func_8000B020 +/* 0257E4 80024BE4 24050040 */ li $a1, 64 +/* 0257E8 80024BE8 16200008 */ bnez $s1, .L80024C0C +/* 0257EC 80024BEC 3C04800E */ lui $a0, %hi(D_800DC874) # $a0, 0x800e +/* 0257F0 80024BF0 16000006 */ bnez $s0, .L80024C0C +/* 0257F4 80024BF4 00000000 */ nop +/* 0257F8 80024BF8 3C04800E */ lui $a0, %hi(D_800DC87C) # $a0, 0x800e +/* 0257FC 80024BFC 0C030076 */ jal func_800C01D8 +/* 025800 80024C00 2484C87C */ addiu $a0, %lo(D_800DC87C) # addiu $a0, $a0, -0x3784 +/* 025804 80024C04 10000004 */ b .L80024C18 +/* 025808 80024C08 8E640000 */ lw $a0, ($s3) +.L80024C0C: +/* 02580C 80024C0C 0C030076 */ jal func_800C01D8 +/* 025810 80024C10 2484C874 */ addiu $a0, %lo(D_800DC874) # addiu $a0, $a0, -0x378c +/* 025814 80024C14 8E640000 */ lw $a0, ($s3) +.L80024C18: +/* 025818 80024C18 0C01994B */ jal set_active_viewports_and_max +/* 02581C 80024C1C 00000000 */ nop +/* 025820 80024C20 8E690000 */ lw $t1, ($s3) +/* 025824 80024C24 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012 +/* 025828 80024C28 3C13FFFF */ lui $s3, (0xFFFF00FF >> 16) # lui $s3, 0xffff +/* 02582C 80024C2C 3C118012 */ lui $s1, %hi(D_8011D350) # $s1, 0x8012 +/* 025830 80024C30 3C128012 */ lui $s2, %hi(D_8011D320) # $s2, 0x8012 +/* 025834 80024C34 3C108012 */ lui $s0, %hi(D_8011D338) # $s0, 0x8012 +/* 025838 80024C38 AC20B0FC */ sw $zero, %lo(D_8011B0FC)($at) +/* 02583C 80024C3C 2610D338 */ addiu $s0, %lo(D_8011D338) # addiu $s0, $s0, -0x2cc8 +/* 025840 80024C40 2652D320 */ addiu $s2, %lo(D_8011D320) # addiu $s2, $s2, -0x2ce0 +/* 025844 80024C44 2631D350 */ addiu $s1, %lo(D_8011D350) # addiu $s1, $s1, -0x2cb0 +/* 025848 80024C48 367300FF */ ori $s3, (0xFFFF00FF & 0xFFFF) # ori $s3, $s3, 0xff +/* 02584C 80024C4C AFA90030 */ sw $t1, 0x30($sp) +.L80024C50: +/* 025850 80024C50 24040C80 */ li $a0, 3200 +/* 025854 80024C54 0C01C327 */ jal allocate_from_main_pool_safe +/* 025858 80024C58 02602825 */ move $a1, $s3 +/* 02585C 80024C5C AE220000 */ sw $v0, ($s1) +/* 025860 80024C60 24043200 */ li $a0, 12800 +/* 025864 80024C64 0C01C327 */ jal allocate_from_main_pool_safe +/* 025868 80024C68 02602825 */ move $a1, $s3 +/* 02586C 80024C6C AE420000 */ sw $v0, ($s2) +/* 025870 80024C70 24044E20 */ li $a0, 20000 +/* 025874 80024C74 0C01C327 */ jal allocate_from_main_pool_safe +/* 025878 80024C78 02602825 */ move $a1, $s3 +/* 02587C 80024C7C 3C0A8012 */ lui $t2, %hi(D_8011D348) # $t2, 0x8012 +/* 025880 80024C80 254AD348 */ addiu $t2, %lo(D_8011D348) # addiu $t2, $t2, -0x2cb8 +/* 025884 80024C84 26100004 */ addiu $s0, $s0, 4 +/* 025888 80024C88 26310004 */ addiu $s1, $s1, 4 +/* 02588C 80024C8C 26520004 */ addiu $s2, $s2, 4 +/* 025890 80024C90 160AFFEF */ bne $s0, $t2, .L80024C50 +/* 025894 80024C94 AE02FFFC */ sw $v0, -4($s0) +/* 025898 80024C98 3C108012 */ lui $s0, %hi(D_8011B0C8) # $s0, 0x8012 +/* 02589C 80024C9C 2610B0C8 */ addiu $s0, %lo(D_8011B0C8) # addiu $s0, $s0, -0x4f38 +/* 0258A0 80024CA0 AE000000 */ sw $zero, ($s0) +/* 0258A4 80024CA4 24040001 */ li $a0, 1 +/* 0258A8 80024CA8 24050001 */ li $a1, 1 +/* 0258AC 80024CAC 0C00B637 */ jal func_8002D8DC +/* 0258B0 80024CB0 00003025 */ move $a2, $zero +/* 0258B4 80024CB4 24040002 */ li $a0, 2 +/* 0258B8 80024CB8 24050002 */ li $a1, 2 +/* 0258BC 80024CBC 0C00B637 */ jal func_8002D8DC +/* 0258C0 80024CC0 00003025 */ move $a2, $zero +/* 0258C4 80024CC4 240B0001 */ li $t3, 1 +/* 0258C8 80024CC8 AE0B0000 */ sw $t3, ($s0) +/* 0258CC 80024CCC 24040001 */ li $a0, 1 +/* 0258D0 80024CD0 24050001 */ li $a1, 1 +/* 0258D4 80024CD4 0C00B637 */ jal func_8002D8DC +/* 0258D8 80024CD8 00003025 */ move $a2, $zero +/* 0258DC 80024CDC 24040002 */ li $a0, 2 +/* 0258E0 80024CE0 24050002 */ li $a1, 2 +/* 0258E4 80024CE4 0C00B637 */ jal func_8002D8DC +/* 0258E8 80024CE8 00003025 */ move $a2, $zero +/* 0258EC 80024CEC AE000000 */ sw $zero, ($s0) +/* 0258F0 80024CF0 3C02800E */ lui $v0, %hi(gCurrentLevelHeader2) # $v0, 0x800e +/* 0258F4 80024CF4 8C42C91C */ lw $v0, %lo(gCurrentLevelHeader2)($v0) +/* 0258F8 80024CF8 3C018012 */ lui $at, %hi(D_8011B0E1) # $at, 0x8012 +/* 0258FC 80024CFC 904C00B7 */ lbu $t4, 0xb7($v0) +/* 025900 80024D00 00000000 */ nop +/* 025904 80024D04 1180000D */ beqz $t4, .L80024D3C +/* 025908 80024D08 8FBF0024 */ lw $ra, 0x24($sp) +/* 02590C 80024D0C 904D00B4 */ lbu $t5, 0xb4($v0) +/* 025910 80024D10 8FA40030 */ lw $a0, 0x30($sp) +/* 025914 80024D14 A02DB0E1 */ sb $t5, %lo(D_8011B0E1)($at) +/* 025918 80024D18 904E00B5 */ lbu $t6, 0xb5($v0) +/* 02591C 80024D1C 3C018012 */ lui $at, %hi(D_8011B0E2) # $at, 0x8012 +/* 025920 80024D20 A02EB0E2 */ sb $t6, %lo(D_8011B0E2)($at) +/* 025924 80024D24 904F00B6 */ lbu $t7, 0xb6($v0) +/* 025928 80024D28 3C018012 */ lui $at, %hi(D_8011B0E3) # $at, 0x8012 +/* 02592C 80024D2C 24840001 */ addiu $a0, $a0, 1 +/* 025930 80024D30 0C009544 */ jal func_80025510 +/* 025934 80024D34 A02FB0E3 */ sb $t7, %lo(D_8011B0E3)($at) +/* 025938 80024D38 8FBF0024 */ lw $ra, 0x24($sp) +.L80024D3C: +/* 02593C 80024D3C 8FB00014 */ lw $s0, 0x14($sp) +/* 025940 80024D40 8FB10018 */ lw $s1, 0x18($sp) +/* 025944 80024D44 8FB2001C */ lw $s2, 0x1c($sp) +/* 025948 80024D48 8FB30020 */ lw $s3, 0x20($sp) +/* 02594C 80024D4C 03E00008 */ jr $ra +/* 025950 80024D50 27BD0028 */ addiu $sp, $sp, 0x28 + diff --git a/asm/non_matchings/unknown_0255E0/func_8002581C.s b/asm/non_matchings/unknown_0255E0/func_8002581C.s index fec2f172..a60dd6a1 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002581C.s +++ b/asm/non_matchings/unknown_0255E0/func_8002581C.s @@ -1,569 +1,569 @@ -.late_rodata -glabel D_800E5E60 -.double 250.0 - -.text -glabel func_8002581C -/* 02641C 8002581C 27BDFF40 */ addiu $sp, $sp, -0xc0 -/* 026420 80025820 3C0E8012 */ lui $t6, %hi(D_8011D474) # $t6, 0x8012 -/* 026424 80025824 8DCED474 */ lw $t6, %lo(D_8011D474)($t6) -/* 026428 80025828 00067900 */ sll $t7, $a2, 4 -/* 02642C 8002582C AFBF004C */ sw $ra, 0x4c($sp) -/* 026430 80025830 AFB40048 */ sw $s4, 0x48($sp) -/* 026434 80025834 AFB30044 */ sw $s3, 0x44($sp) -/* 026438 80025838 AFB20040 */ sw $s2, 0x40($sp) -/* 02643C 8002583C AFB1003C */ sw $s1, 0x3c($sp) -/* 026440 80025840 AFB00038 */ sw $s0, 0x38($sp) -/* 026444 80025844 E7BB0030 */ swc1 $f27, 0x30($sp) -/* 026448 80025848 E7BA0034 */ swc1 $f26, 0x34($sp) -/* 02644C 8002584C E7B90028 */ swc1 $f25, 0x28($sp) -/* 026450 80025850 E7B8002C */ swc1 $f24, 0x2c($sp) -/* 026454 80025854 E7B70020 */ swc1 $f23, 0x20($sp) -/* 026458 80025858 E7B60024 */ swc1 $f22, 0x24($sp) -/* 02645C 8002585C E7B50018 */ swc1 $f21, 0x18($sp) -/* 026460 80025860 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 026464 80025864 AFA400C0 */ sw $a0, 0xc0($sp) -/* 026468 80025868 AFA500C4 */ sw $a1, 0xc4($sp) -/* 02646C 8002586C 01CF1021 */ addu $v0, $t6, $t7 -/* 026470 80025870 8C580000 */ lw $t8, ($v0) -/* 026474 80025874 3C038012 */ lui $v1, %hi(D_8011D490) # $v1, 0x8012 -/* 026478 80025878 2463D490 */ addiu $v1, %lo(D_8011D490) # addiu $v1, $v1, -0x2b70 -/* 02647C 8002587C AC780000 */ sw $t8, ($v1) -/* 026480 80025880 8C590004 */ lw $t9, 4($v0) -/* 026484 80025884 3C088012 */ lui $t0, %hi(D_8011D480) # $t0, 0x8012 -/* 026488 80025888 AC790004 */ sw $t9, 4($v1) -/* 02648C 8002588C 8C4A0008 */ lw $t2, 8($v0) -/* 026490 80025890 2508D480 */ addiu $t0, %lo(D_8011D480) # addiu $t0, $t0, -0x2b80 -/* 026494 80025894 AD0A0000 */ sw $t2, ($t0) -/* 026498 80025898 8C4B000C */ lw $t3, 0xc($v0) -/* 02649C 8002589C 3C048012 */ lui $a0, %hi(gSceneCurrDisplayList) # $a0, 0x8012 -/* 0264A0 800258A0 2484B0A0 */ addiu $a0, %lo(gSceneCurrDisplayList) # addiu $a0, $a0, -0x4f60 -/* 0264A4 800258A4 00002825 */ move $a1, $zero -/* 0264A8 800258A8 24060003 */ li $a2, 3 -/* 0264AC 800258AC 0C01ED32 */ jal load_and_set_texture_no_offset -/* 0264B0 800258B0 AD0B0004 */ sw $t3, 4($t0) -/* 0264B4 800258B4 3C018012 */ lui $at, %hi(D_8011D49C) # $at, 0x8012 -/* 0264B8 800258B8 A420D49C */ sh $zero, %lo(D_8011D49C)($at) -/* 0264BC 800258BC 3C108012 */ lui $s0, %hi(D_8011B0B0) # $s0, 0x8012 -/* 0264C0 800258C0 3C018012 */ lui $at, %hi(D_8011D49E) # $at, 0x8012 -/* 0264C4 800258C4 2610B0B0 */ addiu $s0, %lo(D_8011B0B0) # addiu $s0, $s0, -0x4f50 -/* 0264C8 800258C8 A420D49E */ sh $zero, %lo(D_8011D49E)($at) -/* 0264CC 800258CC 8E0C0000 */ lw $t4, ($s0) -/* 0264D0 800258D0 00000000 */ nop -/* 0264D4 800258D4 85840000 */ lh $a0, ($t4) -/* 0264D8 800258D8 00000000 */ nop -/* 0264DC 800258DC 00042023 */ negu $a0, $a0 -/* 0264E0 800258E0 00046C00 */ sll $t5, $a0, 0x10 -/* 0264E4 800258E4 0C01C1F1 */ jal sins_f -/* 0264E8 800258E8 000D2403 */ sra $a0, $t5, 0x10 -/* 0264EC 800258EC 8E0F0000 */ lw $t7, ($s0) -/* 0264F0 800258F0 46000686 */ mov.s $f26, $f0 -/* 0264F4 800258F4 85E40000 */ lh $a0, ($t7) -/* 0264F8 800258F8 00000000 */ nop -/* 0264FC 800258FC 00042023 */ negu $a0, $a0 -/* 026500 80025900 0004C400 */ sll $t8, $a0, 0x10 -/* 026504 80025904 0C01C1FE */ jal coss_f -/* 026508 80025908 00182403 */ sra $a0, $t8, 0x10 -/* 02650C 8002590C 3C01800E */ lui $at, %hi(D_800E5E60 + 4) # $at, 0x800e -/* 026510 80025910 C42F5E60 */ lwc1 $f15, %lo(D_800E5E60)($at) -/* 026514 80025914 C42E5E64 */ lwc1 $f14, %lo(D_800E5E60 + 4)($at) -/* 026518 80025918 4600D221 */ cvt.d.s $f8, $f26 -/* 02651C 8002591C 462E4282 */ mul.d $f10, $f8, $f14 -/* 026520 80025920 8E020000 */ lw $v0, ($s0) -/* 026524 80025924 3C038012 */ lui $v1, %hi(D_8011D4AC) # $v1, 0x8012 -/* 026528 80025928 C444000C */ lwc1 $f4, 0xc($v0) -/* 02652C 8002592C 2463D4AC */ addiu $v1, %lo(D_8011D4AC) # addiu $v1, $v1, -0x2b54 -/* 026530 80025930 460021A1 */ cvt.d.s $f6, $f4 -/* 026534 80025934 462A3400 */ add.d $f16, $f6, $f10 -/* 026538 80025938 3C048012 */ lui $a0, %hi(D_8011D4B0) # $a0, 0x8012 -/* 02653C 8002593C 462084A0 */ cvt.s.d $f18, $f16 -/* 026540 80025940 2484D4B0 */ addiu $a0, %lo(D_8011D4B0) # addiu $a0, $a0, -0x2b50 -/* 026544 80025944 460001A1 */ cvt.d.s $f6, $f0 -/* 026548 80025948 462E3282 */ mul.d $f10, $f6, $f14 -/* 02654C 8002594C E4720000 */ swc1 $f18, ($v1) -/* 026550 80025950 C4440014 */ lwc1 $f4, 0x14($v0) -/* 026554 80025954 C4620000 */ lwc1 $f2, ($v1) -/* 026558 80025958 3C058012 */ lui $a1, %hi(D_8011D4A0) # $a1, 0x8012 -/* 02655C 8002595C 46002221 */ cvt.d.s $f8, $f4 -/* 026560 80025960 462A4400 */ add.d $f16, $f8, $f10 -/* 026564 80025964 24A5D4A0 */ addiu $a1, %lo(D_8011D4A0) # addiu $a1, $a1, -0x2b60 -/* 026568 80025968 462084A0 */ cvt.s.d $f18, $f16 -/* 02656C 8002596C 3C068012 */ lui $a2, %hi(D_8011D4A4) # $a2, 0x8012 -/* 026570 80025970 4602D102 */ mul.s $f4, $f26, $f2 -/* 026574 80025974 E4920000 */ swc1 $f18, ($a0) -/* 026578 80025978 C48C0000 */ lwc1 $f12, ($a0) -/* 02657C 8002597C 24C6D4A4 */ addiu $a2, %lo(D_8011D4A4) # addiu $a2, $a2, -0x2b5c -/* 026580 80025980 46000207 */ neg.s $f8, $f0 -/* 026584 80025984 460C0182 */ mul.s $f6, $f0, $f12 -/* 026588 80025988 E4A80000 */ swc1 $f8, ($a1) -/* 02658C 8002598C C4AA0000 */ lwc1 $f10, ($a1) -/* 026590 80025990 E4DA0000 */ swc1 $f26, ($a2) -/* 026594 80025994 46025402 */ mul.s $f16, $f10, $f2 -/* 026598 80025998 C4D20000 */ lwc1 $f18, ($a2) -/* 02659C 8002599C 8FAA00C4 */ lw $t2, 0xc4($sp) -/* 0265A0 800259A0 3C018012 */ lui $at, %hi(D_8011D4A8) # $at, 0x8012 -/* 0265A4 800259A4 46062580 */ add.s $f22, $f4, $f6 -/* 0265A8 800259A8 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e -/* 0265AC 800259AC 460C9102 */ mul.s $f4, $f18, $f12 -/* 0265B0 800259B0 46000606 */ mov.s $f24, $f0 -/* 0265B4 800259B4 4600B587 */ neg.s $f22, $f22 -/* 0265B8 800259B8 00009025 */ move $s2, $zero -/* 0265BC 800259BC 46048180 */ add.s $f6, $f16, $f4 -/* 0265C0 800259C0 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 -/* 0265C4 800259C4 46003207 */ neg.s $f8, $f6 -/* 0265C8 800259C8 19400069 */ blez $t2, .L80025B70 -/* 0265CC 800259CC E428D4A8 */ swc1 $f8, %lo(D_8011D4A8)($at) -/* 0265D0 800259D0 4480A800 */ mtc1 $zero, $f21 -/* 0265D4 800259D4 4480A000 */ mtc1 $zero, $f20 -/* 0265D8 800259D8 24130044 */ li $s3, 68 -/* 0265DC 800259DC 8FAB00C0 */ lw $t3, 0xc0($sp) -.L800259E0: -/* 0265E0 800259E0 8E830000 */ lw $v1, ($s4) -/* 0265E4 800259E4 024B8821 */ addu $s1, $s2, $t3 -/* 0265E8 800259E8 92220000 */ lbu $v0, ($s1) -/* 0265EC 800259EC 8C6D0008 */ lw $t5, 8($v1) -/* 0265F0 800259F0 00026080 */ sll $t4, $v0, 2 -/* 0265F4 800259F4 01826023 */ subu $t4, $t4, $v0 -/* 0265F8 800259F8 000C6080 */ sll $t4, $t4, 2 -/* 0265FC 800259FC 018D8021 */ addu $s0, $t4, $t5 -/* 026600 80025A00 860E0000 */ lh $t6, ($s0) -/* 026604 80025A04 860F0004 */ lh $t7, 4($s0) -/* 026608 80025A08 448E5000 */ mtc1 $t6, $f10 -/* 02660C 80025A0C 448F8000 */ mtc1 $t7, $f16 -/* 026610 80025A10 468054A0 */ cvt.s.w $f18, $f10 -/* 026614 80025A14 00003025 */ move $a2, $zero -/* 026618 80025A18 461A9002 */ mul.s $f0, $f18, $f26 -/* 02661C 80025A1C 46808120 */ cvt.s.w $f4, $f16 -/* 026620 80025A20 4604C082 */ mul.s $f2, $f24, $f4 -/* 026624 80025A24 46020180 */ add.s $f6, $f0, $f2 -/* 026628 80025A28 46163200 */ add.s $f8, $f6, $f22 -/* 02662C 80025A2C 460042A1 */ cvt.d.s $f10, $f8 -/* 026630 80025A30 4634503E */ c.le.d $f10, $f20 -/* 026634 80025A34 00000000 */ nop -/* 026638 80025A38 45000002 */ bc1f .L80025A44 -/* 02663C 80025A3C 00000000 */ nop -/* 026640 80025A40 24060001 */ li $a2, 1 -.L80025A44: -/* 026644 80025A44 860A0006 */ lh $t2, 6($s0) -/* 026648 80025A48 0006C400 */ sll $t8, $a2, 0x10 -/* 02664C 80025A4C 448A9000 */ mtc1 $t2, $f18 -/* 026650 80025A50 00183403 */ sra $a2, $t8, 0x10 -/* 026654 80025A54 46809420 */ cvt.s.w $f16, $f18 -/* 026658 80025A58 00005825 */ move $t3, $zero -/* 02665C 80025A5C 4610D302 */ mul.s $f12, $f26, $f16 -/* 026660 80025A60 46026100 */ add.s $f4, $f12, $f2 -/* 026664 80025A64 46162180 */ add.s $f6, $f4, $f22 -/* 026668 80025A68 46003221 */ cvt.d.s $f8, $f6 -/* 02666C 80025A6C 4634403E */ c.le.d $f8, $f20 -/* 026670 80025A70 00000000 */ nop -/* 026674 80025A74 45000002 */ bc1f .L80025A80 -/* 026678 80025A78 00000000 */ nop -/* 02667C 80025A7C 240B0001 */ li $t3, 1 -.L80025A80: -/* 026680 80025A80 860E000A */ lh $t6, 0xa($s0) -/* 026684 80025A84 00CB3021 */ addu $a2, $a2, $t3 -/* 026688 80025A88 448E5000 */ mtc1 $t6, $f10 -/* 02668C 80025A8C 00066400 */ sll $t4, $a2, 0x10 -/* 026690 80025A90 468054A0 */ cvt.s.w $f18, $f10 -/* 026694 80025A94 000C3403 */ sra $a2, $t4, 0x10 -/* 026698 80025A98 00007825 */ move $t7, $zero -/* 02669C 80025A9C 4612C382 */ mul.s $f14, $f24, $f18 -/* 0266A0 80025AA0 00005025 */ move $t2, $zero -/* 0266A4 80025AA4 460E0400 */ add.s $f16, $f0, $f14 -/* 0266A8 80025AA8 46168100 */ add.s $f4, $f16, $f22 -/* 0266AC 80025AAC 460021A1 */ cvt.d.s $f6, $f4 -/* 0266B0 80025AB0 4634303E */ c.le.d $f6, $f20 -/* 0266B4 80025AB4 460E6200 */ add.s $f8, $f12, $f14 -/* 0266B8 80025AB8 45000002 */ bc1f .L80025AC4 -/* 0266BC 80025ABC 46164280 */ add.s $f10, $f8, $f22 -/* 0266C0 80025AC0 240F0001 */ li $t7, 1 -.L80025AC4: -/* 0266C4 80025AC4 460054A1 */ cvt.d.s $f18, $f10 -/* 0266C8 80025AC8 4634903E */ c.le.d $f18, $f20 -/* 0266CC 80025ACC 00CF3021 */ addu $a2, $a2, $t7 -/* 0266D0 80025AD0 0006C400 */ sll $t8, $a2, 0x10 -/* 0266D4 80025AD4 45000002 */ bc1f .L80025AE0 -/* 0266D8 80025AD8 00183403 */ sra $a2, $t8, 0x10 -/* 0266DC 80025ADC 240A0001 */ li $t2, 1 -.L80025AE0: -/* 0266E0 80025AE0 00CA6021 */ addu $t4, $a2, $t2 -/* 0266E4 80025AE4 318D0003 */ andi $t5, $t4, 3 -/* 0266E8 80025AE8 11A0001A */ beqz $t5, .L80025B54 -/* 0266EC 80025AEC 00000000 */ nop -/* 0266F0 80025AF0 00530019 */ multu $v0, $s3 -/* 0266F4 80025AF4 8C6F0004 */ lw $t7, 4($v1) -/* 0266F8 80025AF8 4405D000 */ mfc1 $a1, $f26 -/* 0266FC 80025AFC 4406C000 */ mfc1 $a2, $f24 -/* 026700 80025B00 4407B000 */ mfc1 $a3, $f22 -/* 026704 80025B04 00007012 */ mflo $t6 -/* 026708 80025B08 01CF2021 */ addu $a0, $t6, $t7 -/* 02670C 80025B0C 0C00990C */ jal func_80026430 -/* 026710 80025B10 00000000 */ nop -/* 026714 80025B14 922A0000 */ lbu $t2, ($s1) -/* 026718 80025B18 8E980000 */ lw $t8, ($s4) -/* 02671C 80025B1C 01530019 */ multu $t2, $s3 -/* 026720 80025B20 8F190004 */ lw $t9, 4($t8) -/* 026724 80025B24 00005812 */ mflo $t3 -/* 026728 80025B28 032B6021 */ addu $t4, $t9, $t3 -/* 02672C 80025B2C 8D8D003C */ lw $t5, 0x3c($t4) -/* 026730 80025B30 00000000 */ nop -/* 026734 80025B34 31AE0002 */ andi $t6, $t5, 2 -/* 026738 80025B38 11C00006 */ beqz $t6, .L80025B54 -/* 02673C 80025B3C 00000000 */ nop -/* 026740 80025B40 4405D000 */ mfc1 $a1, $f26 -/* 026744 80025B44 4406C000 */ mfc1 $a2, $f24 -/* 026748 80025B48 4407B000 */ mfc1 $a3, $f22 -/* 02674C 80025B4C 0C00981C */ jal func_80026070 -/* 026750 80025B50 02002025 */ move $a0, $s0 -.L80025B54: -/* 026754 80025B54 26520001 */ addiu $s2, $s2, 1 -/* 026758 80025B58 8FAA00C4 */ lw $t2, 0xc4($sp) -/* 02675C 80025B5C 00127C00 */ sll $t7, $s2, 0x10 -/* 026760 80025B60 000F9403 */ sra $s2, $t7, 0x10 -/* 026764 80025B64 024A082A */ slt $at, $s2, $t2 -/* 026768 80025B68 1420FF9D */ bnez $at, .L800259E0 -/* 02676C 80025B6C 8FAB00C0 */ lw $t3, 0xc0($sp) -.L80025B70: -/* 026770 80025B70 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e -/* 026774 80025B74 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 -/* 026778 80025B78 8E990000 */ lw $t9, ($s4) -/* 02677C 80025B7C 2404012C */ li $a0, 300 -/* 026780 80025B80 87250040 */ lh $a1, 0x40($t9) -/* 026784 80025B84 24060001 */ li $a2, 1 -/* 026788 80025B88 24A5FF3D */ addiu $a1, $a1, -0xc3 -/* 02678C 80025B8C 00055C00 */ sll $t3, $a1, 0x10 -/* 026790 80025B90 0C009B05 */ jal func_80026C14 -/* 026794 80025B94 000B2C03 */ sra $a1, $t3, 0x10 -/* 026798 80025B98 8E8D0000 */ lw $t5, ($s4) -/* 02679C 80025B9C 2404FED4 */ li $a0, -300 -/* 0267A0 80025BA0 85A50040 */ lh $a1, 0x40($t5) -/* 0267A4 80025BA4 24060001 */ li $a2, 1 -/* 0267A8 80025BA8 24A5FF3D */ addiu $a1, $a1, -0xc3 -/* 0267AC 80025BAC 00057400 */ sll $t6, $a1, 0x10 -/* 0267B0 80025BB0 0C009B05 */ jal func_80026C14 -/* 0267B4 80025BB4 000E2C03 */ sra $a1, $t6, 0x10 -/* 0267B8 80025BB8 8E980000 */ lw $t8, ($s4) -/* 0267BC 80025BBC 2404012C */ li $a0, 300 -/* 0267C0 80025BC0 87050042 */ lh $a1, 0x42($t8) -/* 0267C4 80025BC4 00003025 */ move $a2, $zero -/* 0267C8 80025BC8 24A500C3 */ addiu $a1, $a1, 0xc3 -/* 0267CC 80025BCC 00055400 */ sll $t2, $a1, 0x10 -/* 0267D0 80025BD0 0C009B05 */ jal func_80026C14 -/* 0267D4 80025BD4 000A2C03 */ sra $a1, $t2, 0x10 -/* 0267D8 80025BD8 8E8B0000 */ lw $t3, ($s4) -/* 0267DC 80025BDC 2404FED4 */ li $a0, -300 -/* 0267E0 80025BE0 85650042 */ lh $a1, 0x42($t3) -/* 0267E4 80025BE4 00003025 */ move $a2, $zero -/* 0267E8 80025BE8 24A500C3 */ addiu $a1, $a1, 0xc3 -/* 0267EC 80025BEC 00056400 */ sll $t4, $a1, 0x10 -/* 0267F0 80025BF0 0C009B05 */ jal func_80026C14 -/* 0267F4 80025BF4 000C2C03 */ sra $a1, $t4, 0x10 -/* 0267F8 80025BF8 3C098012 */ lui $t1, %hi(D_8011D49E) # $t1, 0x8012 -/* 0267FC 80025BFC 2529D49E */ addiu $t1, %lo(D_8011D49E) # addiu $t1, $t1, -0x2b62 -/* 026800 80025C00 3C0E8012 */ lui $t6, %hi(D_8011D4BA) # $t6, 0x8012 -/* 026804 80025C04 85CED4BA */ lh $t6, %lo(D_8011D4BA)($t6) -/* 026808 80025C08 85270000 */ lh $a3, ($t1) -/* 02680C 80025C0C 00000000 */ nop -/* 026810 80025C10 00EE082A */ slt $at, $a3, $t6 -/* 026814 80025C14 10200107 */ beqz $at, .L80026034 -/* 026818 80025C18 8FBF004C */ lw $ra, 0x4c($sp) -/* 02681C 80025C1C 10E00104 */ beqz $a3, .L80026030 -/* 026820 80025C20 00009025 */ move $s2, $zero -/* 026824 80025C24 3C088012 */ lui $t0, %hi(D_8011D478) # $t0, 0x8012 -/* 026828 80025C28 2508D478 */ addiu $t0, %lo(D_8011D478) # addiu $t0, $t0, -0x2b88 -/* 02682C 80025C2C 24E5FFFF */ addiu $a1, $a3, -1 -.L80025C30: -/* 026830 80025C30 8D020000 */ lw $v0, ($t0) -/* 026834 80025C34 18A0001A */ blez $a1, .L80025CA0 -/* 026838 80025C38 24060001 */ li $a2, 1 -.L80025C3C: -/* 02683C 80025C3C 8D0F0000 */ lw $t7, ($t0) -/* 026840 80025C40 0012C0C0 */ sll $t8, $s2, 3 -/* 026844 80025C44 01F82021 */ addu $a0, $t7, $t8 -/* 026848 80025C48 848A0008 */ lh $t2, 8($a0) -/* 02684C 80025C4C 84990000 */ lh $t9, ($a0) -/* 026850 80025C50 26520001 */ addiu $s2, $s2, 1 -/* 026854 80025C54 0159082A */ slt $at, $t2, $t9 -/* 026858 80025C58 1020000C */ beqz $at, .L80025C8C -/* 02685C 80025C5C 00126C00 */ sll $t5, $s2, 0x10 -/* 026860 80025C60 8C430000 */ lw $v1, ($v0) -/* 026864 80025C64 8C4B0008 */ lw $t3, 8($v0) -/* 026868 80025C68 AC430008 */ sw $v1, 8($v0) -/* 02686C 80025C6C 8C430004 */ lw $v1, 4($v0) -/* 026870 80025C70 8C4C000C */ lw $t4, 0xc($v0) -/* 026874 80025C74 AC4B0000 */ sw $t3, ($v0) -/* 026878 80025C78 AC43000C */ sw $v1, 0xc($v0) -/* 02687C 80025C7C AC4C0004 */ sw $t4, 4($v0) -/* 026880 80025C80 85270000 */ lh $a3, ($t1) -/* 026884 80025C84 00003025 */ move $a2, $zero -/* 026888 80025C88 24E5FFFF */ addiu $a1, $a3, -1 -.L80025C8C: -/* 02688C 80025C8C 000D9403 */ sra $s2, $t5, 0x10 -/* 026890 80025C90 0245082A */ slt $at, $s2, $a1 -/* 026894 80025C94 1420FFE9 */ bnez $at, .L80025C3C -/* 026898 80025C98 24420008 */ addiu $v0, $v0, 8 -/* 02689C 80025C9C 00009025 */ move $s2, $zero -.L80025CA0: -/* 0268A0 80025CA0 10C0FFE3 */ beqz $a2, .L80025C30 -/* 0268A4 80025CA4 00000000 */ nop -/* 0268A8 80025CA8 18E00022 */ blez $a3, .L80025D34 -/* 0268AC 80025CAC 00008025 */ move $s0, $zero -/* 0268B0 80025CB0 3C058012 */ lui $a1, %hi(D_8011D47C) # $a1, 0x8012 -/* 0268B4 80025CB4 24A5D47C */ addiu $a1, %lo(D_8011D47C) # addiu $a1, $a1, -0x2b84 -/* 0268B8 80025CB8 2406FFFF */ li $a2, -1 -.L80025CBC: -/* 0268BC 80025CBC 8D0F0000 */ lw $t7, ($t0) -/* 0268C0 80025CC0 0012C0C0 */ sll $t8, $s2, 3 -/* 0268C4 80025CC4 01F82021 */ addu $a0, $t7, $t8 -/* 0268C8 80025CC8 808A0007 */ lb $t2, 7($a0) -/* 0268CC 80025CCC 8CAC0000 */ lw $t4, ($a1) -/* 0268D0 80025CD0 000ACC40 */ sll $t9, $t2, 0x11 -/* 0268D4 80025CD4 00195C03 */ sra $t3, $t9, 0x10 -/* 0268D8 80025CD8 016C1021 */ addu $v0, $t3, $t4 -/* 0268DC 80025CDC 804D0000 */ lb $t5, ($v0) -/* 0268E0 80025CE0 00000000 */ nop -/* 0268E4 80025CE4 14CD000A */ bne $a2, $t5, .L80025D10 -/* 0268E8 80025CE8 00000000 */ nop -/* 0268EC 80025CEC 808E0006 */ lb $t6, 6($a0) -/* 0268F0 80025CF0 00000000 */ nop -/* 0268F4 80025CF4 35CF0002 */ ori $t7, $t6, 2 -/* 0268F8 80025CF8 A08F0006 */ sb $t7, 6($a0) -/* 0268FC 80025CFC 8CB80000 */ lw $t8, ($a1) -/* 026900 80025D00 00000000 */ nop -/* 026904 80025D04 030B5021 */ addu $t2, $t8, $t3 -/* 026908 80025D08 10000002 */ b .L80025D14 -/* 02690C 80025D0C A1520000 */ sb $s2, ($t2) -.L80025D10: -/* 026910 80025D10 A0520001 */ sb $s2, 1($v0) -.L80025D14: -/* 026914 80025D14 26520001 */ addiu $s2, $s2, 1 -/* 026918 80025D18 85270000 */ lh $a3, ($t1) -/* 02691C 80025D1C 0012CC00 */ sll $t9, $s2, 0x10 -/* 026920 80025D20 00199403 */ sra $s2, $t9, 0x10 -/* 026924 80025D24 0247082A */ slt $at, $s2, $a3 -/* 026928 80025D28 1420FFE4 */ bnez $at, .L80025CBC -/* 02692C 80025D2C 00000000 */ nop -/* 026930 80025D30 00009025 */ move $s2, $zero -.L80025D34: -/* 026934 80025D34 3C048012 */ lui $a0, %hi(D_8011D4B4) # $a0, 0x8012 -/* 026938 80025D38 2484D4B4 */ addiu $a0, %lo(D_8011D4B4) # addiu $a0, $a0, -0x2b4c -/* 02693C 80025D3C 80820000 */ lb $v0, ($a0) -/* 026940 80025D40 8D0C0000 */ lw $t4, ($t0) -/* 026944 80025D44 3C188012 */ lui $t8, %hi(D_8011D480) # $t8, 0x8012 -/* 026948 80025D48 00021880 */ sll $v1, $v0, 2 -/* 02694C 80025D4C 0303C021 */ addu $t8, $t8, $v1 -/* 026950 80025D50 8F18D480 */ lw $t8, %lo(D_8011D480)($t8) -/* 026954 80025D54 85930000 */ lh $s3, ($t4) -/* 026958 80025D58 3C0E8012 */ lui $t6, %hi(gSceneCurrVertexList) # $t6, 0x8012 -/* 02695C 80025D5C 3C0A8012 */ lui $t2, %hi(D_8011D490) # $t2, 0x8012 -/* 026960 80025D60 8DCEB0A8 */ lw $t6, %lo(gSceneCurrVertexList)($t6) -/* 026964 80025D64 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 -/* 026968 80025D68 01435021 */ addu $t2, $t2, $v1 -/* 02696C 80025D6C 8D4AD490 */ lw $t2, %lo(D_8011D490)($t2) -/* 026970 80025D70 3C0F8012 */ lui $t7, %hi(gSceneCurrTriList) # $t7, 0x8012 -/* 026974 80025D74 AC38B0A8 */ sw $t8, %lo(gSceneCurrVertexList)($at) -/* 026978 80025D78 8DEFB0AC */ lw $t7, %lo(gSceneCurrTriList)($t7) -/* 02697C 80025D7C 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 -/* 026980 80025D80 24190001 */ li $t9, 1 -/* 026984 80025D84 03225823 */ subu $t3, $t9, $v0 -/* 026988 80025D88 0013A400 */ sll $s4, $s3, 0x10 -/* 02698C 80025D8C AC2AB0AC */ sw $t2, %lo(gSceneCurrTriList)($at) -/* 026990 80025D90 00146C03 */ sra $t5, $s4, 0x10 -/* 026994 80025D94 A08B0000 */ sb $t3, ($a0) -/* 026998 80025D98 3C0C8012 */ lui $t4, %hi(gSceneCurrVertexList) # $t4, 0x8012 -/* 02699C 80025D9C 8D8CB0A8 */ lw $t4, %lo(gSceneCurrVertexList)($t4) -/* 0269A0 80025DA0 01A0A025 */ move $s4, $t5 -/* 0269A4 80025DA4 3C018012 */ lui $at, %hi(D_8011D488) # $at, 0x8012 -/* 0269A8 80025DA8 3C0D8012 */ lui $t5, %hi(gSceneCurrTriList) # $t5, 0x8012 -/* 0269AC 80025DAC 8DADB0AC */ lw $t5, %lo(gSceneCurrTriList)($t5) -/* 0269B0 80025DB0 AC2CD488 */ sw $t4, %lo(D_8011D488)($at) -/* 0269B4 80025DB4 3C018012 */ lui $at, %hi(D_8011D498) # $at, 0x8012 -/* 0269B8 80025DB8 AC2DD498 */ sw $t5, %lo(D_8011D498)($at) -/* 0269BC 80025DBC 3C018012 */ lui $at, %hi(D_8011D4B6) # $at, 0x8012 -/* 0269C0 80025DC0 A420D4B6 */ sh $zero, %lo(D_8011D4B6)($at) -/* 0269C4 80025DC4 3C018012 */ lui $at, %hi(D_8011D4B8) # $at, 0x8012 -/* 0269C8 80025DC8 A420D4B8 */ sh $zero, %lo(D_8011D4B8)($at) -/* 0269CC 80025DCC AFAE00AC */ sw $t6, 0xac($sp) -/* 0269D0 80025DD0 18E0005C */ blez $a3, .L80025F44 -/* 0269D4 80025DD4 AFAF00A8 */ sw $t7, 0xa8($sp) -/* 0269D8 80025DD8 27B1007C */ addiu $s1, $sp, 0x7c -/* 0269DC 80025DDC 0247082A */ slt $at, $s2, $a3 -.L80025DE0: -/* 0269E0 80025DE0 1020003A */ beqz $at, .L80025ECC -/* 0269E4 80025DE4 0247082A */ slt $at, $s2, $a3 -/* 0269E8 80025DE8 8D050000 */ lw $a1, ($t0) -/* 0269EC 80025DEC 001270C0 */ sll $t6, $s2, 3 -/* 0269F0 80025DF0 00AE2021 */ addu $a0, $a1, $t6 -/* 0269F4 80025DF4 848F0000 */ lh $t7, ($a0) -/* 0269F8 80025DF8 00000000 */ nop -/* 0269FC 80025DFC 168F0033 */ bne $s4, $t7, .L80025ECC -/* 026A00 80025E00 0247082A */ slt $at, $s2, $a3 -.L80025E04: -/* 026A04 80025E04 80980006 */ lb $t8, 6($a0) -/* 026A08 80025E08 02305821 */ addu $t3, $s1, $s0 -/* 026A0C 80025E0C 330A0002 */ andi $t2, $t8, 2 -/* 026A10 80025E10 11400007 */ beqz $t2, .L80025E30 -/* 026A14 80025E14 26520001 */ addiu $s2, $s2, 1 -/* 026A18 80025E18 80990007 */ lb $t9, 7($a0) -/* 026A1C 80025E1C 26100001 */ addiu $s0, $s0, 1 -/* 026A20 80025E20 00106400 */ sll $t4, $s0, 0x10 -/* 026A24 80025E24 000C8403 */ sra $s0, $t4, 0x10 -/* 026A28 80025E28 1000001C */ b .L80025E9C -/* 026A2C 80025E2C A1790000 */ sb $t9, ($t3) -.L80025E30: -/* 026A30 80025E30 1A00001A */ blez $s0, .L80025E9C -/* 026A34 80025E34 00001825 */ move $v1, $zero -/* 026A38 80025E38 02237021 */ addu $t6, $s1, $v1 -.L80025E3C: -/* 026A3C 80025E3C 81CF0000 */ lb $t7, ($t6) -/* 026A40 80025E40 80980007 */ lb $t8, 7($a0) -/* 026A44 80025E44 00000000 */ nop -/* 026A48 80025E48 15F8000E */ bne $t7, $t8, .L80025E84 -/* 026A4C 80025E4C 00000000 */ nop -/* 026A50 80025E50 2610FFFF */ addiu $s0, $s0, -1 -/* 026A54 80025E54 00105400 */ sll $t2, $s0, 0x10 -/* 026A58 80025E58 000A8403 */ sra $s0, $t2, 0x10 -/* 026A5C 80025E5C 0070082A */ slt $at, $v1, $s0 -/* 026A60 80025E60 10200008 */ beqz $at, .L80025E84 -.L80025E64: -/* 026A64 80025E64 02231021 */ addu $v0, $s1, $v1 -/* 026A68 80025E68 24630001 */ addiu $v1, $v1, 1 -/* 026A6C 80025E6C 00036400 */ sll $t4, $v1, 0x10 -/* 026A70 80025E70 804B0001 */ lb $t3, 1($v0) -/* 026A74 80025E74 000C1C03 */ sra $v1, $t4, 0x10 -/* 026A78 80025E78 0070082A */ slt $at, $v1, $s0 -/* 026A7C 80025E7C 1420FFF9 */ bnez $at, .L80025E64 -/* 026A80 80025E80 A04B0000 */ sb $t3, ($v0) -.L80025E84: -/* 026A84 80025E84 24630001 */ addiu $v1, $v1, 1 -/* 026A88 80025E88 00037400 */ sll $t6, $v1, 0x10 -/* 026A8C 80025E8C 000E1C03 */ sra $v1, $t6, 0x10 -/* 026A90 80025E90 0070082A */ slt $at, $v1, $s0 -/* 026A94 80025E94 1420FFE9 */ bnez $at, .L80025E3C -/* 026A98 80025E98 02237021 */ addu $t6, $s1, $v1 -.L80025E9C: -/* 026A9C 80025E9C 0012C400 */ sll $t8, $s2, 0x10 -/* 026AA0 80025EA0 00185403 */ sra $t2, $t8, 0x10 -/* 026AA4 80025EA4 0147082A */ slt $at, $t2, $a3 -/* 026AA8 80025EA8 10200007 */ beqz $at, .L80025EC8 -/* 026AAC 80025EAC 01409025 */ move $s2, $t2 -/* 026AB0 80025EB0 000AC8C0 */ sll $t9, $t2, 3 -/* 026AB4 80025EB4 00B92021 */ addu $a0, $a1, $t9 -/* 026AB8 80025EB8 848B0000 */ lh $t3, ($a0) -/* 026ABC 80025EBC 00000000 */ nop -/* 026AC0 80025EC0 128BFFD0 */ beq $s4, $t3, .L80025E04 -/* 026AC4 80025EC4 00000000 */ nop -.L80025EC8: -/* 026AC8 80025EC8 0247082A */ slt $at, $s2, $a3 -.L80025ECC: -/* 026ACC 80025ECC 1020001B */ beqz $at, .L80025F3C -/* 026AD0 80025ED0 0247082A */ slt $at, $s2, $a3 -/* 026AD4 80025ED4 8D0C0000 */ lw $t4, ($t0) -/* 026AD8 80025ED8 001268C0 */ sll $t5, $s2, 3 -/* 026ADC 80025EDC 018D7021 */ addu $t6, $t4, $t5 -/* 026AE0 80025EE0 85D30000 */ lh $s3, ($t6) -/* 026AE4 80025EE4 00000000 */ nop -/* 026AE8 80025EE8 12930014 */ beq $s4, $s3, .L80025F3C -/* 026AEC 80025EEC 0247082A */ slt $at, $s2, $a3 -/* 026AF0 80025EF0 44938000 */ mtc1 $s3, $f16 -/* 026AF4 80025EF4 44942000 */ mtc1 $s4, $f4 -/* 026AF8 80025EF8 46808420 */ cvt.s.w $f16, $f16 -/* 026AFC 80025EFC 00102400 */ sll $a0, $s0, 0x10 -/* 026B00 80025F00 00047C03 */ sra $t7, $a0, 0x10 -/* 026B04 80025F04 46802120 */ cvt.s.w $f4, $f4 -/* 026B08 80025F08 44068000 */ mfc1 $a2, $f16 -/* 026B0C 80025F0C 01E02025 */ move $a0, $t7 -/* 026B10 80025F10 44072000 */ mfc1 $a3, $f4 -/* 026B14 80025F14 0C009B95 */ jal func_80026E54 -/* 026B18 80025F18 02202825 */ move $a1, $s1 -/* 026B1C 80025F1C 0013A400 */ sll $s4, $s3, 0x10 -/* 026B20 80025F20 3C078012 */ lui $a3, %hi(D_8011D49E) # $a3, 0x8012 -/* 026B24 80025F24 3C088012 */ lui $t0, %hi(D_8011D478) # $t0, 0x8012 -/* 026B28 80025F28 0014C403 */ sra $t8, $s4, 0x10 -/* 026B2C 80025F2C 84E7D49E */ lh $a3, %lo(D_8011D49E)($a3) -/* 026B30 80025F30 2508D478 */ addiu $t0, %lo(D_8011D478) # addiu $t0, $t0, -0x2b88 -/* 026B34 80025F34 0300A025 */ move $s4, $t8 -/* 026B38 80025F38 0247082A */ slt $at, $s2, $a3 -.L80025F3C: -/* 026B3C 80025F3C 1420FFA8 */ bnez $at, .L80025DE0 -/* 026B40 80025F40 0247082A */ slt $at, $s2, $a3 -.L80025F44: -/* 026B44 80025F44 3C068012 */ lui $a2, %hi(D_8011D4B6) # $a2, 0x8012 -/* 026B48 80025F48 84C6D4B6 */ lh $a2, %lo(D_8011D4B6)($a2) -/* 026B4C 80025F4C 3C078000 */ lui $a3, 0x8000 -/* 026B50 80025F50 10C00031 */ beqz $a2, .L80026018 -/* 026B54 80025F54 3C088012 */ lui $t0, %hi(gSceneCurrDisplayList) # $t0, 0x8012 -/* 026B58 80025F58 2508B0A0 */ addiu $t0, %lo(gSceneCurrDisplayList) # addiu $t0, $t0, -0x4f60 -/* 026B5C 80025F5C 8D020000 */ lw $v0, ($t0) -/* 026B60 80025F60 3C0C8012 */ lui $t4, %hi(D_8011D488) # $t4, 0x8012 -/* 026B64 80025F64 244A0008 */ addiu $t2, $v0, 8 -/* 026B68 80025F68 AD0A0000 */ sw $t2, ($t0) -/* 026B6C 80025F6C 8D8CD488 */ lw $t4, %lo(D_8011D488)($t4) -/* 026B70 80025F70 24D9FFFF */ addiu $t9, $a2, -1 -/* 026B74 80025F74 01876821 */ addu $t5, $t4, $a3 -/* 026B78 80025F78 31AE0006 */ andi $t6, $t5, 6 -/* 026B7C 80025F7C 001958C0 */ sll $t3, $t9, 3 -/* 026B80 80025F80 016E7825 */ or $t7, $t3, $t6 -/* 026B84 80025F84 000660C0 */ sll $t4, $a2, 3 -/* 026B88 80025F88 01866821 */ addu $t5, $t4, $a2 -/* 026B8C 80025F8C 000D5840 */ sll $t3, $t5, 1 -/* 026B90 80025F90 31F800FF */ andi $t8, $t7, 0xff -/* 026B94 80025F94 00185400 */ sll $t2, $t8, 0x10 -/* 026B98 80025F98 256E0008 */ addiu $t6, $t3, 8 -/* 026B9C 80025F9C 3C010400 */ lui $at, 0x400 -/* 026BA0 80025FA0 0141C825 */ or $t9, $t2, $at -/* 026BA4 80025FA4 31CFFFFF */ andi $t7, $t6, 0xffff -/* 026BA8 80025FA8 032FC025 */ or $t8, $t9, $t7 -/* 026BAC 80025FAC 3C0A8012 */ lui $t2, %hi(D_8011D488) # $t2, 0x8012 -/* 026BB0 80025FB0 AC580000 */ sw $t8, ($v0) -/* 026BB4 80025FB4 8D4AD488 */ lw $t2, %lo(D_8011D488)($t2) -/* 026BB8 80025FB8 3C058012 */ lui $a1, %hi(D_8011D4B6) # $a1, 0x8012 -/* 026BBC 80025FBC 01476021 */ addu $t4, $t2, $a3 -/* 026BC0 80025FC0 AC4C0004 */ sw $t4, 4($v0) -/* 026BC4 80025FC4 8D020000 */ lw $v0, ($t0) -/* 026BC8 80025FC8 3C010500 */ lui $at, 0x500 -/* 026BCC 80025FCC 244D0008 */ addiu $t5, $v0, 8 -/* 026BD0 80025FD0 AD0D0000 */ sw $t5, ($t0) -/* 026BD4 80025FD4 84A5D4B6 */ lh $a1, %lo(D_8011D4B6)($a1) -/* 026BD8 80025FD8 00000000 */ nop -/* 026BDC 80025FDC 00055843 */ sra $t3, $a1, 1 -/* 026BE0 80025FE0 256EFFFF */ addiu $t6, $t3, -1 -/* 026BE4 80025FE4 000EC900 */ sll $t9, $t6, 4 -/* 026BE8 80025FE8 332F00FF */ andi $t7, $t9, 0xff -/* 026BEC 80025FEC 000FC400 */ sll $t8, $t7, 0x10 -/* 026BF0 80025FF0 000B6100 */ sll $t4, $t3, 4 -/* 026BF4 80025FF4 318DFFFF */ andi $t5, $t4, 0xffff -/* 026BF8 80025FF8 03015025 */ or $t2, $t8, $at -/* 026BFC 80025FFC 014D5825 */ or $t3, $t2, $t5 -/* 026C00 80026000 3C0E8012 */ lui $t6, %hi(D_8011D498) # $t6, 0x8012 -/* 026C04 80026004 AC4B0000 */ sw $t3, ($v0) -/* 026C08 80026008 8DCED498 */ lw $t6, %lo(D_8011D498)($t6) -/* 026C0C 8002600C 00000000 */ nop -/* 026C10 80026010 01C7C821 */ addu $t9, $t6, $a3 -/* 026C14 80026014 AC590004 */ sw $t9, 4($v0) -.L80026018: -/* 026C18 80026018 8FAF00AC */ lw $t7, 0xac($sp) -/* 026C1C 8002601C 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 -/* 026C20 80026020 8FB800A8 */ lw $t8, 0xa8($sp) -/* 026C24 80026024 AC2FB0A8 */ sw $t7, %lo(gSceneCurrVertexList)($at) -/* 026C28 80026028 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 -/* 026C2C 8002602C AC38B0AC */ sw $t8, %lo(gSceneCurrTriList)($at) -.L80026030: -/* 026C30 80026030 8FBF004C */ lw $ra, 0x4c($sp) -.L80026034: -/* 026C34 80026034 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 026C38 80026038 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 026C3C 8002603C C7B70020 */ lwc1 $f23, 0x20($sp) -/* 026C40 80026040 C7B60024 */ lwc1 $f22, 0x24($sp) -/* 026C44 80026044 C7B90028 */ lwc1 $f25, 0x28($sp) -/* 026C48 80026048 C7B8002C */ lwc1 $f24, 0x2c($sp) -/* 026C4C 8002604C C7BB0030 */ lwc1 $f27, 0x30($sp) -/* 026C50 80026050 C7BA0034 */ lwc1 $f26, 0x34($sp) -/* 026C54 80026054 8FB00038 */ lw $s0, 0x38($sp) -/* 026C58 80026058 8FB1003C */ lw $s1, 0x3c($sp) -/* 026C5C 8002605C 8FB20040 */ lw $s2, 0x40($sp) -/* 026C60 80026060 8FB30044 */ lw $s3, 0x44($sp) -/* 026C64 80026064 8FB40048 */ lw $s4, 0x48($sp) -/* 026C68 80026068 03E00008 */ jr $ra -/* 026C6C 8002606C 27BD00C0 */ addiu $sp, $sp, 0xc0 - +.late_rodata +glabel D_800E5E60 +.double 250.0 + +.text +glabel func_8002581C +/* 02641C 8002581C 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 026420 80025820 3C0E8012 */ lui $t6, %hi(D_8011D474) # $t6, 0x8012 +/* 026424 80025824 8DCED474 */ lw $t6, %lo(D_8011D474)($t6) +/* 026428 80025828 00067900 */ sll $t7, $a2, 4 +/* 02642C 8002582C AFBF004C */ sw $ra, 0x4c($sp) +/* 026430 80025830 AFB40048 */ sw $s4, 0x48($sp) +/* 026434 80025834 AFB30044 */ sw $s3, 0x44($sp) +/* 026438 80025838 AFB20040 */ sw $s2, 0x40($sp) +/* 02643C 8002583C AFB1003C */ sw $s1, 0x3c($sp) +/* 026440 80025840 AFB00038 */ sw $s0, 0x38($sp) +/* 026444 80025844 E7BB0030 */ swc1 $f27, 0x30($sp) +/* 026448 80025848 E7BA0034 */ swc1 $f26, 0x34($sp) +/* 02644C 8002584C E7B90028 */ swc1 $f25, 0x28($sp) +/* 026450 80025850 E7B8002C */ swc1 $f24, 0x2c($sp) +/* 026454 80025854 E7B70020 */ swc1 $f23, 0x20($sp) +/* 026458 80025858 E7B60024 */ swc1 $f22, 0x24($sp) +/* 02645C 8002585C E7B50018 */ swc1 $f21, 0x18($sp) +/* 026460 80025860 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 026464 80025864 AFA400C0 */ sw $a0, 0xc0($sp) +/* 026468 80025868 AFA500C4 */ sw $a1, 0xc4($sp) +/* 02646C 8002586C 01CF1021 */ addu $v0, $t6, $t7 +/* 026470 80025870 8C580000 */ lw $t8, ($v0) +/* 026474 80025874 3C038012 */ lui $v1, %hi(D_8011D490) # $v1, 0x8012 +/* 026478 80025878 2463D490 */ addiu $v1, %lo(D_8011D490) # addiu $v1, $v1, -0x2b70 +/* 02647C 8002587C AC780000 */ sw $t8, ($v1) +/* 026480 80025880 8C590004 */ lw $t9, 4($v0) +/* 026484 80025884 3C088012 */ lui $t0, %hi(D_8011D480) # $t0, 0x8012 +/* 026488 80025888 AC790004 */ sw $t9, 4($v1) +/* 02648C 8002588C 8C4A0008 */ lw $t2, 8($v0) +/* 026490 80025890 2508D480 */ addiu $t0, %lo(D_8011D480) # addiu $t0, $t0, -0x2b80 +/* 026494 80025894 AD0A0000 */ sw $t2, ($t0) +/* 026498 80025898 8C4B000C */ lw $t3, 0xc($v0) +/* 02649C 8002589C 3C048012 */ lui $a0, %hi(gSceneCurrDisplayList) # $a0, 0x8012 +/* 0264A0 800258A0 2484B0A0 */ addiu $a0, %lo(gSceneCurrDisplayList) # addiu $a0, $a0, -0x4f60 +/* 0264A4 800258A4 00002825 */ move $a1, $zero +/* 0264A8 800258A8 24060003 */ li $a2, 3 +/* 0264AC 800258AC 0C01ED32 */ jal load_and_set_texture_no_offset +/* 0264B0 800258B0 AD0B0004 */ sw $t3, 4($t0) +/* 0264B4 800258B4 3C018012 */ lui $at, %hi(D_8011D49C) # $at, 0x8012 +/* 0264B8 800258B8 A420D49C */ sh $zero, %lo(D_8011D49C)($at) +/* 0264BC 800258BC 3C108012 */ lui $s0, %hi(gSceneActiveCamera) # $s0, 0x8012 +/* 0264C0 800258C0 3C018012 */ lui $at, %hi(D_8011D49E) # $at, 0x8012 +/* 0264C4 800258C4 2610B0B0 */ addiu $s0, %lo(gSceneActiveCamera) # addiu $s0, $s0, -0x4f50 +/* 0264C8 800258C8 A420D49E */ sh $zero, %lo(D_8011D49E)($at) +/* 0264CC 800258CC 8E0C0000 */ lw $t4, ($s0) +/* 0264D0 800258D0 00000000 */ nop +/* 0264D4 800258D4 85840000 */ lh $a0, ($t4) +/* 0264D8 800258D8 00000000 */ nop +/* 0264DC 800258DC 00042023 */ negu $a0, $a0 +/* 0264E0 800258E0 00046C00 */ sll $t5, $a0, 0x10 +/* 0264E4 800258E4 0C01C1F1 */ jal sins_f +/* 0264E8 800258E8 000D2403 */ sra $a0, $t5, 0x10 +/* 0264EC 800258EC 8E0F0000 */ lw $t7, ($s0) +/* 0264F0 800258F0 46000686 */ mov.s $f26, $f0 +/* 0264F4 800258F4 85E40000 */ lh $a0, ($t7) +/* 0264F8 800258F8 00000000 */ nop +/* 0264FC 800258FC 00042023 */ negu $a0, $a0 +/* 026500 80025900 0004C400 */ sll $t8, $a0, 0x10 +/* 026504 80025904 0C01C1FE */ jal coss_f +/* 026508 80025908 00182403 */ sra $a0, $t8, 0x10 +/* 02650C 8002590C 3C01800E */ lui $at, %hi(D_800E5E60 + 4) # $at, 0x800e +/* 026510 80025910 C42F5E60 */ lwc1 $f15, %lo(D_800E5E60)($at) +/* 026514 80025914 C42E5E64 */ lwc1 $f14, %lo(D_800E5E60 + 4)($at) +/* 026518 80025918 4600D221 */ cvt.d.s $f8, $f26 +/* 02651C 8002591C 462E4282 */ mul.d $f10, $f8, $f14 +/* 026520 80025920 8E020000 */ lw $v0, ($s0) +/* 026524 80025924 3C038012 */ lui $v1, %hi(D_8011D4AC) # $v1, 0x8012 +/* 026528 80025928 C444000C */ lwc1 $f4, 0xc($v0) +/* 02652C 8002592C 2463D4AC */ addiu $v1, %lo(D_8011D4AC) # addiu $v1, $v1, -0x2b54 +/* 026530 80025930 460021A1 */ cvt.d.s $f6, $f4 +/* 026534 80025934 462A3400 */ add.d $f16, $f6, $f10 +/* 026538 80025938 3C048012 */ lui $a0, %hi(D_8011D4B0) # $a0, 0x8012 +/* 02653C 8002593C 462084A0 */ cvt.s.d $f18, $f16 +/* 026540 80025940 2484D4B0 */ addiu $a0, %lo(D_8011D4B0) # addiu $a0, $a0, -0x2b50 +/* 026544 80025944 460001A1 */ cvt.d.s $f6, $f0 +/* 026548 80025948 462E3282 */ mul.d $f10, $f6, $f14 +/* 02654C 8002594C E4720000 */ swc1 $f18, ($v1) +/* 026550 80025950 C4440014 */ lwc1 $f4, 0x14($v0) +/* 026554 80025954 C4620000 */ lwc1 $f2, ($v1) +/* 026558 80025958 3C058012 */ lui $a1, %hi(D_8011D4A0) # $a1, 0x8012 +/* 02655C 8002595C 46002221 */ cvt.d.s $f8, $f4 +/* 026560 80025960 462A4400 */ add.d $f16, $f8, $f10 +/* 026564 80025964 24A5D4A0 */ addiu $a1, %lo(D_8011D4A0) # addiu $a1, $a1, -0x2b60 +/* 026568 80025968 462084A0 */ cvt.s.d $f18, $f16 +/* 02656C 8002596C 3C068012 */ lui $a2, %hi(D_8011D4A4) # $a2, 0x8012 +/* 026570 80025970 4602D102 */ mul.s $f4, $f26, $f2 +/* 026574 80025974 E4920000 */ swc1 $f18, ($a0) +/* 026578 80025978 C48C0000 */ lwc1 $f12, ($a0) +/* 02657C 8002597C 24C6D4A4 */ addiu $a2, %lo(D_8011D4A4) # addiu $a2, $a2, -0x2b5c +/* 026580 80025980 46000207 */ neg.s $f8, $f0 +/* 026584 80025984 460C0182 */ mul.s $f6, $f0, $f12 +/* 026588 80025988 E4A80000 */ swc1 $f8, ($a1) +/* 02658C 8002598C C4AA0000 */ lwc1 $f10, ($a1) +/* 026590 80025990 E4DA0000 */ swc1 $f26, ($a2) +/* 026594 80025994 46025402 */ mul.s $f16, $f10, $f2 +/* 026598 80025998 C4D20000 */ lwc1 $f18, ($a2) +/* 02659C 8002599C 8FAA00C4 */ lw $t2, 0xc4($sp) +/* 0265A0 800259A0 3C018012 */ lui $at, %hi(D_8011D4A8) # $at, 0x8012 +/* 0265A4 800259A4 46062580 */ add.s $f22, $f4, $f6 +/* 0265A8 800259A8 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e +/* 0265AC 800259AC 460C9102 */ mul.s $f4, $f18, $f12 +/* 0265B0 800259B0 46000606 */ mov.s $f24, $f0 +/* 0265B4 800259B4 4600B587 */ neg.s $f22, $f22 +/* 0265B8 800259B8 00009025 */ move $s2, $zero +/* 0265BC 800259BC 46048180 */ add.s $f6, $f16, $f4 +/* 0265C0 800259C0 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 +/* 0265C4 800259C4 46003207 */ neg.s $f8, $f6 +/* 0265C8 800259C8 19400069 */ blez $t2, .L80025B70 +/* 0265CC 800259CC E428D4A8 */ swc1 $f8, %lo(D_8011D4A8)($at) +/* 0265D0 800259D0 4480A800 */ mtc1 $zero, $f21 +/* 0265D4 800259D4 4480A000 */ mtc1 $zero, $f20 +/* 0265D8 800259D8 24130044 */ li $s3, 68 +/* 0265DC 800259DC 8FAB00C0 */ lw $t3, 0xc0($sp) +.L800259E0: +/* 0265E0 800259E0 8E830000 */ lw $v1, ($s4) +/* 0265E4 800259E4 024B8821 */ addu $s1, $s2, $t3 +/* 0265E8 800259E8 92220000 */ lbu $v0, ($s1) +/* 0265EC 800259EC 8C6D0008 */ lw $t5, 8($v1) +/* 0265F0 800259F0 00026080 */ sll $t4, $v0, 2 +/* 0265F4 800259F4 01826023 */ subu $t4, $t4, $v0 +/* 0265F8 800259F8 000C6080 */ sll $t4, $t4, 2 +/* 0265FC 800259FC 018D8021 */ addu $s0, $t4, $t5 +/* 026600 80025A00 860E0000 */ lh $t6, ($s0) +/* 026604 80025A04 860F0004 */ lh $t7, 4($s0) +/* 026608 80025A08 448E5000 */ mtc1 $t6, $f10 +/* 02660C 80025A0C 448F8000 */ mtc1 $t7, $f16 +/* 026610 80025A10 468054A0 */ cvt.s.w $f18, $f10 +/* 026614 80025A14 00003025 */ move $a2, $zero +/* 026618 80025A18 461A9002 */ mul.s $f0, $f18, $f26 +/* 02661C 80025A1C 46808120 */ cvt.s.w $f4, $f16 +/* 026620 80025A20 4604C082 */ mul.s $f2, $f24, $f4 +/* 026624 80025A24 46020180 */ add.s $f6, $f0, $f2 +/* 026628 80025A28 46163200 */ add.s $f8, $f6, $f22 +/* 02662C 80025A2C 460042A1 */ cvt.d.s $f10, $f8 +/* 026630 80025A30 4634503E */ c.le.d $f10, $f20 +/* 026634 80025A34 00000000 */ nop +/* 026638 80025A38 45000002 */ bc1f .L80025A44 +/* 02663C 80025A3C 00000000 */ nop +/* 026640 80025A40 24060001 */ li $a2, 1 +.L80025A44: +/* 026644 80025A44 860A0006 */ lh $t2, 6($s0) +/* 026648 80025A48 0006C400 */ sll $t8, $a2, 0x10 +/* 02664C 80025A4C 448A9000 */ mtc1 $t2, $f18 +/* 026650 80025A50 00183403 */ sra $a2, $t8, 0x10 +/* 026654 80025A54 46809420 */ cvt.s.w $f16, $f18 +/* 026658 80025A58 00005825 */ move $t3, $zero +/* 02665C 80025A5C 4610D302 */ mul.s $f12, $f26, $f16 +/* 026660 80025A60 46026100 */ add.s $f4, $f12, $f2 +/* 026664 80025A64 46162180 */ add.s $f6, $f4, $f22 +/* 026668 80025A68 46003221 */ cvt.d.s $f8, $f6 +/* 02666C 80025A6C 4634403E */ c.le.d $f8, $f20 +/* 026670 80025A70 00000000 */ nop +/* 026674 80025A74 45000002 */ bc1f .L80025A80 +/* 026678 80025A78 00000000 */ nop +/* 02667C 80025A7C 240B0001 */ li $t3, 1 +.L80025A80: +/* 026680 80025A80 860E000A */ lh $t6, 0xa($s0) +/* 026684 80025A84 00CB3021 */ addu $a2, $a2, $t3 +/* 026688 80025A88 448E5000 */ mtc1 $t6, $f10 +/* 02668C 80025A8C 00066400 */ sll $t4, $a2, 0x10 +/* 026690 80025A90 468054A0 */ cvt.s.w $f18, $f10 +/* 026694 80025A94 000C3403 */ sra $a2, $t4, 0x10 +/* 026698 80025A98 00007825 */ move $t7, $zero +/* 02669C 80025A9C 4612C382 */ mul.s $f14, $f24, $f18 +/* 0266A0 80025AA0 00005025 */ move $t2, $zero +/* 0266A4 80025AA4 460E0400 */ add.s $f16, $f0, $f14 +/* 0266A8 80025AA8 46168100 */ add.s $f4, $f16, $f22 +/* 0266AC 80025AAC 460021A1 */ cvt.d.s $f6, $f4 +/* 0266B0 80025AB0 4634303E */ c.le.d $f6, $f20 +/* 0266B4 80025AB4 460E6200 */ add.s $f8, $f12, $f14 +/* 0266B8 80025AB8 45000002 */ bc1f .L80025AC4 +/* 0266BC 80025ABC 46164280 */ add.s $f10, $f8, $f22 +/* 0266C0 80025AC0 240F0001 */ li $t7, 1 +.L80025AC4: +/* 0266C4 80025AC4 460054A1 */ cvt.d.s $f18, $f10 +/* 0266C8 80025AC8 4634903E */ c.le.d $f18, $f20 +/* 0266CC 80025ACC 00CF3021 */ addu $a2, $a2, $t7 +/* 0266D0 80025AD0 0006C400 */ sll $t8, $a2, 0x10 +/* 0266D4 80025AD4 45000002 */ bc1f .L80025AE0 +/* 0266D8 80025AD8 00183403 */ sra $a2, $t8, 0x10 +/* 0266DC 80025ADC 240A0001 */ li $t2, 1 +.L80025AE0: +/* 0266E0 80025AE0 00CA6021 */ addu $t4, $a2, $t2 +/* 0266E4 80025AE4 318D0003 */ andi $t5, $t4, 3 +/* 0266E8 80025AE8 11A0001A */ beqz $t5, .L80025B54 +/* 0266EC 80025AEC 00000000 */ nop +/* 0266F0 80025AF0 00530019 */ multu $v0, $s3 +/* 0266F4 80025AF4 8C6F0004 */ lw $t7, 4($v1) +/* 0266F8 80025AF8 4405D000 */ mfc1 $a1, $f26 +/* 0266FC 80025AFC 4406C000 */ mfc1 $a2, $f24 +/* 026700 80025B00 4407B000 */ mfc1 $a3, $f22 +/* 026704 80025B04 00007012 */ mflo $t6 +/* 026708 80025B08 01CF2021 */ addu $a0, $t6, $t7 +/* 02670C 80025B0C 0C00990C */ jal func_80026430 +/* 026710 80025B10 00000000 */ nop +/* 026714 80025B14 922A0000 */ lbu $t2, ($s1) +/* 026718 80025B18 8E980000 */ lw $t8, ($s4) +/* 02671C 80025B1C 01530019 */ multu $t2, $s3 +/* 026720 80025B20 8F190004 */ lw $t9, 4($t8) +/* 026724 80025B24 00005812 */ mflo $t3 +/* 026728 80025B28 032B6021 */ addu $t4, $t9, $t3 +/* 02672C 80025B2C 8D8D003C */ lw $t5, 0x3c($t4) +/* 026730 80025B30 00000000 */ nop +/* 026734 80025B34 31AE0002 */ andi $t6, $t5, 2 +/* 026738 80025B38 11C00006 */ beqz $t6, .L80025B54 +/* 02673C 80025B3C 00000000 */ nop +/* 026740 80025B40 4405D000 */ mfc1 $a1, $f26 +/* 026744 80025B44 4406C000 */ mfc1 $a2, $f24 +/* 026748 80025B48 4407B000 */ mfc1 $a3, $f22 +/* 02674C 80025B4C 0C00981C */ jal func_80026070 +/* 026750 80025B50 02002025 */ move $a0, $s0 +.L80025B54: +/* 026754 80025B54 26520001 */ addiu $s2, $s2, 1 +/* 026758 80025B58 8FAA00C4 */ lw $t2, 0xc4($sp) +/* 02675C 80025B5C 00127C00 */ sll $t7, $s2, 0x10 +/* 026760 80025B60 000F9403 */ sra $s2, $t7, 0x10 +/* 026764 80025B64 024A082A */ slt $at, $s2, $t2 +/* 026768 80025B68 1420FF9D */ bnez $at, .L800259E0 +/* 02676C 80025B6C 8FAB00C0 */ lw $t3, 0xc0($sp) +.L80025B70: +/* 026770 80025B70 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e +/* 026774 80025B74 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 +/* 026778 80025B78 8E990000 */ lw $t9, ($s4) +/* 02677C 80025B7C 2404012C */ li $a0, 300 +/* 026780 80025B80 87250040 */ lh $a1, 0x40($t9) +/* 026784 80025B84 24060001 */ li $a2, 1 +/* 026788 80025B88 24A5FF3D */ addiu $a1, $a1, -0xc3 +/* 02678C 80025B8C 00055C00 */ sll $t3, $a1, 0x10 +/* 026790 80025B90 0C009B05 */ jal func_80026C14 +/* 026794 80025B94 000B2C03 */ sra $a1, $t3, 0x10 +/* 026798 80025B98 8E8D0000 */ lw $t5, ($s4) +/* 02679C 80025B9C 2404FED4 */ li $a0, -300 +/* 0267A0 80025BA0 85A50040 */ lh $a1, 0x40($t5) +/* 0267A4 80025BA4 24060001 */ li $a2, 1 +/* 0267A8 80025BA8 24A5FF3D */ addiu $a1, $a1, -0xc3 +/* 0267AC 80025BAC 00057400 */ sll $t6, $a1, 0x10 +/* 0267B0 80025BB0 0C009B05 */ jal func_80026C14 +/* 0267B4 80025BB4 000E2C03 */ sra $a1, $t6, 0x10 +/* 0267B8 80025BB8 8E980000 */ lw $t8, ($s4) +/* 0267BC 80025BBC 2404012C */ li $a0, 300 +/* 0267C0 80025BC0 87050042 */ lh $a1, 0x42($t8) +/* 0267C4 80025BC4 00003025 */ move $a2, $zero +/* 0267C8 80025BC8 24A500C3 */ addiu $a1, $a1, 0xc3 +/* 0267CC 80025BCC 00055400 */ sll $t2, $a1, 0x10 +/* 0267D0 80025BD0 0C009B05 */ jal func_80026C14 +/* 0267D4 80025BD4 000A2C03 */ sra $a1, $t2, 0x10 +/* 0267D8 80025BD8 8E8B0000 */ lw $t3, ($s4) +/* 0267DC 80025BDC 2404FED4 */ li $a0, -300 +/* 0267E0 80025BE0 85650042 */ lh $a1, 0x42($t3) +/* 0267E4 80025BE4 00003025 */ move $a2, $zero +/* 0267E8 80025BE8 24A500C3 */ addiu $a1, $a1, 0xc3 +/* 0267EC 80025BEC 00056400 */ sll $t4, $a1, 0x10 +/* 0267F0 80025BF0 0C009B05 */ jal func_80026C14 +/* 0267F4 80025BF4 000C2C03 */ sra $a1, $t4, 0x10 +/* 0267F8 80025BF8 3C098012 */ lui $t1, %hi(D_8011D49E) # $t1, 0x8012 +/* 0267FC 80025BFC 2529D49E */ addiu $t1, %lo(D_8011D49E) # addiu $t1, $t1, -0x2b62 +/* 026800 80025C00 3C0E8012 */ lui $t6, %hi(D_8011D4BA) # $t6, 0x8012 +/* 026804 80025C04 85CED4BA */ lh $t6, %lo(D_8011D4BA)($t6) +/* 026808 80025C08 85270000 */ lh $a3, ($t1) +/* 02680C 80025C0C 00000000 */ nop +/* 026810 80025C10 00EE082A */ slt $at, $a3, $t6 +/* 026814 80025C14 10200107 */ beqz $at, .L80026034 +/* 026818 80025C18 8FBF004C */ lw $ra, 0x4c($sp) +/* 02681C 80025C1C 10E00104 */ beqz $a3, .L80026030 +/* 026820 80025C20 00009025 */ move $s2, $zero +/* 026824 80025C24 3C088012 */ lui $t0, %hi(D_8011D478) # $t0, 0x8012 +/* 026828 80025C28 2508D478 */ addiu $t0, %lo(D_8011D478) # addiu $t0, $t0, -0x2b88 +/* 02682C 80025C2C 24E5FFFF */ addiu $a1, $a3, -1 +.L80025C30: +/* 026830 80025C30 8D020000 */ lw $v0, ($t0) +/* 026834 80025C34 18A0001A */ blez $a1, .L80025CA0 +/* 026838 80025C38 24060001 */ li $a2, 1 +.L80025C3C: +/* 02683C 80025C3C 8D0F0000 */ lw $t7, ($t0) +/* 026840 80025C40 0012C0C0 */ sll $t8, $s2, 3 +/* 026844 80025C44 01F82021 */ addu $a0, $t7, $t8 +/* 026848 80025C48 848A0008 */ lh $t2, 8($a0) +/* 02684C 80025C4C 84990000 */ lh $t9, ($a0) +/* 026850 80025C50 26520001 */ addiu $s2, $s2, 1 +/* 026854 80025C54 0159082A */ slt $at, $t2, $t9 +/* 026858 80025C58 1020000C */ beqz $at, .L80025C8C +/* 02685C 80025C5C 00126C00 */ sll $t5, $s2, 0x10 +/* 026860 80025C60 8C430000 */ lw $v1, ($v0) +/* 026864 80025C64 8C4B0008 */ lw $t3, 8($v0) +/* 026868 80025C68 AC430008 */ sw $v1, 8($v0) +/* 02686C 80025C6C 8C430004 */ lw $v1, 4($v0) +/* 026870 80025C70 8C4C000C */ lw $t4, 0xc($v0) +/* 026874 80025C74 AC4B0000 */ sw $t3, ($v0) +/* 026878 80025C78 AC43000C */ sw $v1, 0xc($v0) +/* 02687C 80025C7C AC4C0004 */ sw $t4, 4($v0) +/* 026880 80025C80 85270000 */ lh $a3, ($t1) +/* 026884 80025C84 00003025 */ move $a2, $zero +/* 026888 80025C88 24E5FFFF */ addiu $a1, $a3, -1 +.L80025C8C: +/* 02688C 80025C8C 000D9403 */ sra $s2, $t5, 0x10 +/* 026890 80025C90 0245082A */ slt $at, $s2, $a1 +/* 026894 80025C94 1420FFE9 */ bnez $at, .L80025C3C +/* 026898 80025C98 24420008 */ addiu $v0, $v0, 8 +/* 02689C 80025C9C 00009025 */ move $s2, $zero +.L80025CA0: +/* 0268A0 80025CA0 10C0FFE3 */ beqz $a2, .L80025C30 +/* 0268A4 80025CA4 00000000 */ nop +/* 0268A8 80025CA8 18E00022 */ blez $a3, .L80025D34 +/* 0268AC 80025CAC 00008025 */ move $s0, $zero +/* 0268B0 80025CB0 3C058012 */ lui $a1, %hi(D_8011D47C) # $a1, 0x8012 +/* 0268B4 80025CB4 24A5D47C */ addiu $a1, %lo(D_8011D47C) # addiu $a1, $a1, -0x2b84 +/* 0268B8 80025CB8 2406FFFF */ li $a2, -1 +.L80025CBC: +/* 0268BC 80025CBC 8D0F0000 */ lw $t7, ($t0) +/* 0268C0 80025CC0 0012C0C0 */ sll $t8, $s2, 3 +/* 0268C4 80025CC4 01F82021 */ addu $a0, $t7, $t8 +/* 0268C8 80025CC8 808A0007 */ lb $t2, 7($a0) +/* 0268CC 80025CCC 8CAC0000 */ lw $t4, ($a1) +/* 0268D0 80025CD0 000ACC40 */ sll $t9, $t2, 0x11 +/* 0268D4 80025CD4 00195C03 */ sra $t3, $t9, 0x10 +/* 0268D8 80025CD8 016C1021 */ addu $v0, $t3, $t4 +/* 0268DC 80025CDC 804D0000 */ lb $t5, ($v0) +/* 0268E0 80025CE0 00000000 */ nop +/* 0268E4 80025CE4 14CD000A */ bne $a2, $t5, .L80025D10 +/* 0268E8 80025CE8 00000000 */ nop +/* 0268EC 80025CEC 808E0006 */ lb $t6, 6($a0) +/* 0268F0 80025CF0 00000000 */ nop +/* 0268F4 80025CF4 35CF0002 */ ori $t7, $t6, 2 +/* 0268F8 80025CF8 A08F0006 */ sb $t7, 6($a0) +/* 0268FC 80025CFC 8CB80000 */ lw $t8, ($a1) +/* 026900 80025D00 00000000 */ nop +/* 026904 80025D04 030B5021 */ addu $t2, $t8, $t3 +/* 026908 80025D08 10000002 */ b .L80025D14 +/* 02690C 80025D0C A1520000 */ sb $s2, ($t2) +.L80025D10: +/* 026910 80025D10 A0520001 */ sb $s2, 1($v0) +.L80025D14: +/* 026914 80025D14 26520001 */ addiu $s2, $s2, 1 +/* 026918 80025D18 85270000 */ lh $a3, ($t1) +/* 02691C 80025D1C 0012CC00 */ sll $t9, $s2, 0x10 +/* 026920 80025D20 00199403 */ sra $s2, $t9, 0x10 +/* 026924 80025D24 0247082A */ slt $at, $s2, $a3 +/* 026928 80025D28 1420FFE4 */ bnez $at, .L80025CBC +/* 02692C 80025D2C 00000000 */ nop +/* 026930 80025D30 00009025 */ move $s2, $zero +.L80025D34: +/* 026934 80025D34 3C048012 */ lui $a0, %hi(D_8011D4B4) # $a0, 0x8012 +/* 026938 80025D38 2484D4B4 */ addiu $a0, %lo(D_8011D4B4) # addiu $a0, $a0, -0x2b4c +/* 02693C 80025D3C 80820000 */ lb $v0, ($a0) +/* 026940 80025D40 8D0C0000 */ lw $t4, ($t0) +/* 026944 80025D44 3C188012 */ lui $t8, %hi(D_8011D480) # $t8, 0x8012 +/* 026948 80025D48 00021880 */ sll $v1, $v0, 2 +/* 02694C 80025D4C 0303C021 */ addu $t8, $t8, $v1 +/* 026950 80025D50 8F18D480 */ lw $t8, %lo(D_8011D480)($t8) +/* 026954 80025D54 85930000 */ lh $s3, ($t4) +/* 026958 80025D58 3C0E8012 */ lui $t6, %hi(gSceneCurrVertexList) # $t6, 0x8012 +/* 02695C 80025D5C 3C0A8012 */ lui $t2, %hi(D_8011D490) # $t2, 0x8012 +/* 026960 80025D60 8DCEB0A8 */ lw $t6, %lo(gSceneCurrVertexList)($t6) +/* 026964 80025D64 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 +/* 026968 80025D68 01435021 */ addu $t2, $t2, $v1 +/* 02696C 80025D6C 8D4AD490 */ lw $t2, %lo(D_8011D490)($t2) +/* 026970 80025D70 3C0F8012 */ lui $t7, %hi(gSceneCurrTriList) # $t7, 0x8012 +/* 026974 80025D74 AC38B0A8 */ sw $t8, %lo(gSceneCurrVertexList)($at) +/* 026978 80025D78 8DEFB0AC */ lw $t7, %lo(gSceneCurrTriList)($t7) +/* 02697C 80025D7C 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 +/* 026980 80025D80 24190001 */ li $t9, 1 +/* 026984 80025D84 03225823 */ subu $t3, $t9, $v0 +/* 026988 80025D88 0013A400 */ sll $s4, $s3, 0x10 +/* 02698C 80025D8C AC2AB0AC */ sw $t2, %lo(gSceneCurrTriList)($at) +/* 026990 80025D90 00146C03 */ sra $t5, $s4, 0x10 +/* 026994 80025D94 A08B0000 */ sb $t3, ($a0) +/* 026998 80025D98 3C0C8012 */ lui $t4, %hi(gSceneCurrVertexList) # $t4, 0x8012 +/* 02699C 80025D9C 8D8CB0A8 */ lw $t4, %lo(gSceneCurrVertexList)($t4) +/* 0269A0 80025DA0 01A0A025 */ move $s4, $t5 +/* 0269A4 80025DA4 3C018012 */ lui $at, %hi(D_8011D488) # $at, 0x8012 +/* 0269A8 80025DA8 3C0D8012 */ lui $t5, %hi(gSceneCurrTriList) # $t5, 0x8012 +/* 0269AC 80025DAC 8DADB0AC */ lw $t5, %lo(gSceneCurrTriList)($t5) +/* 0269B0 80025DB0 AC2CD488 */ sw $t4, %lo(D_8011D488)($at) +/* 0269B4 80025DB4 3C018012 */ lui $at, %hi(D_8011D498) # $at, 0x8012 +/* 0269B8 80025DB8 AC2DD498 */ sw $t5, %lo(D_8011D498)($at) +/* 0269BC 80025DBC 3C018012 */ lui $at, %hi(D_8011D4B6) # $at, 0x8012 +/* 0269C0 80025DC0 A420D4B6 */ sh $zero, %lo(D_8011D4B6)($at) +/* 0269C4 80025DC4 3C018012 */ lui $at, %hi(D_8011D4B8) # $at, 0x8012 +/* 0269C8 80025DC8 A420D4B8 */ sh $zero, %lo(D_8011D4B8)($at) +/* 0269CC 80025DCC AFAE00AC */ sw $t6, 0xac($sp) +/* 0269D0 80025DD0 18E0005C */ blez $a3, .L80025F44 +/* 0269D4 80025DD4 AFAF00A8 */ sw $t7, 0xa8($sp) +/* 0269D8 80025DD8 27B1007C */ addiu $s1, $sp, 0x7c +/* 0269DC 80025DDC 0247082A */ slt $at, $s2, $a3 +.L80025DE0: +/* 0269E0 80025DE0 1020003A */ beqz $at, .L80025ECC +/* 0269E4 80025DE4 0247082A */ slt $at, $s2, $a3 +/* 0269E8 80025DE8 8D050000 */ lw $a1, ($t0) +/* 0269EC 80025DEC 001270C0 */ sll $t6, $s2, 3 +/* 0269F0 80025DF0 00AE2021 */ addu $a0, $a1, $t6 +/* 0269F4 80025DF4 848F0000 */ lh $t7, ($a0) +/* 0269F8 80025DF8 00000000 */ nop +/* 0269FC 80025DFC 168F0033 */ bne $s4, $t7, .L80025ECC +/* 026A00 80025E00 0247082A */ slt $at, $s2, $a3 +.L80025E04: +/* 026A04 80025E04 80980006 */ lb $t8, 6($a0) +/* 026A08 80025E08 02305821 */ addu $t3, $s1, $s0 +/* 026A0C 80025E0C 330A0002 */ andi $t2, $t8, 2 +/* 026A10 80025E10 11400007 */ beqz $t2, .L80025E30 +/* 026A14 80025E14 26520001 */ addiu $s2, $s2, 1 +/* 026A18 80025E18 80990007 */ lb $t9, 7($a0) +/* 026A1C 80025E1C 26100001 */ addiu $s0, $s0, 1 +/* 026A20 80025E20 00106400 */ sll $t4, $s0, 0x10 +/* 026A24 80025E24 000C8403 */ sra $s0, $t4, 0x10 +/* 026A28 80025E28 1000001C */ b .L80025E9C +/* 026A2C 80025E2C A1790000 */ sb $t9, ($t3) +.L80025E30: +/* 026A30 80025E30 1A00001A */ blez $s0, .L80025E9C +/* 026A34 80025E34 00001825 */ move $v1, $zero +/* 026A38 80025E38 02237021 */ addu $t6, $s1, $v1 +.L80025E3C: +/* 026A3C 80025E3C 81CF0000 */ lb $t7, ($t6) +/* 026A40 80025E40 80980007 */ lb $t8, 7($a0) +/* 026A44 80025E44 00000000 */ nop +/* 026A48 80025E48 15F8000E */ bne $t7, $t8, .L80025E84 +/* 026A4C 80025E4C 00000000 */ nop +/* 026A50 80025E50 2610FFFF */ addiu $s0, $s0, -1 +/* 026A54 80025E54 00105400 */ sll $t2, $s0, 0x10 +/* 026A58 80025E58 000A8403 */ sra $s0, $t2, 0x10 +/* 026A5C 80025E5C 0070082A */ slt $at, $v1, $s0 +/* 026A60 80025E60 10200008 */ beqz $at, .L80025E84 +.L80025E64: +/* 026A64 80025E64 02231021 */ addu $v0, $s1, $v1 +/* 026A68 80025E68 24630001 */ addiu $v1, $v1, 1 +/* 026A6C 80025E6C 00036400 */ sll $t4, $v1, 0x10 +/* 026A70 80025E70 804B0001 */ lb $t3, 1($v0) +/* 026A74 80025E74 000C1C03 */ sra $v1, $t4, 0x10 +/* 026A78 80025E78 0070082A */ slt $at, $v1, $s0 +/* 026A7C 80025E7C 1420FFF9 */ bnez $at, .L80025E64 +/* 026A80 80025E80 A04B0000 */ sb $t3, ($v0) +.L80025E84: +/* 026A84 80025E84 24630001 */ addiu $v1, $v1, 1 +/* 026A88 80025E88 00037400 */ sll $t6, $v1, 0x10 +/* 026A8C 80025E8C 000E1C03 */ sra $v1, $t6, 0x10 +/* 026A90 80025E90 0070082A */ slt $at, $v1, $s0 +/* 026A94 80025E94 1420FFE9 */ bnez $at, .L80025E3C +/* 026A98 80025E98 02237021 */ addu $t6, $s1, $v1 +.L80025E9C: +/* 026A9C 80025E9C 0012C400 */ sll $t8, $s2, 0x10 +/* 026AA0 80025EA0 00185403 */ sra $t2, $t8, 0x10 +/* 026AA4 80025EA4 0147082A */ slt $at, $t2, $a3 +/* 026AA8 80025EA8 10200007 */ beqz $at, .L80025EC8 +/* 026AAC 80025EAC 01409025 */ move $s2, $t2 +/* 026AB0 80025EB0 000AC8C0 */ sll $t9, $t2, 3 +/* 026AB4 80025EB4 00B92021 */ addu $a0, $a1, $t9 +/* 026AB8 80025EB8 848B0000 */ lh $t3, ($a0) +/* 026ABC 80025EBC 00000000 */ nop +/* 026AC0 80025EC0 128BFFD0 */ beq $s4, $t3, .L80025E04 +/* 026AC4 80025EC4 00000000 */ nop +.L80025EC8: +/* 026AC8 80025EC8 0247082A */ slt $at, $s2, $a3 +.L80025ECC: +/* 026ACC 80025ECC 1020001B */ beqz $at, .L80025F3C +/* 026AD0 80025ED0 0247082A */ slt $at, $s2, $a3 +/* 026AD4 80025ED4 8D0C0000 */ lw $t4, ($t0) +/* 026AD8 80025ED8 001268C0 */ sll $t5, $s2, 3 +/* 026ADC 80025EDC 018D7021 */ addu $t6, $t4, $t5 +/* 026AE0 80025EE0 85D30000 */ lh $s3, ($t6) +/* 026AE4 80025EE4 00000000 */ nop +/* 026AE8 80025EE8 12930014 */ beq $s4, $s3, .L80025F3C +/* 026AEC 80025EEC 0247082A */ slt $at, $s2, $a3 +/* 026AF0 80025EF0 44938000 */ mtc1 $s3, $f16 +/* 026AF4 80025EF4 44942000 */ mtc1 $s4, $f4 +/* 026AF8 80025EF8 46808420 */ cvt.s.w $f16, $f16 +/* 026AFC 80025EFC 00102400 */ sll $a0, $s0, 0x10 +/* 026B00 80025F00 00047C03 */ sra $t7, $a0, 0x10 +/* 026B04 80025F04 46802120 */ cvt.s.w $f4, $f4 +/* 026B08 80025F08 44068000 */ mfc1 $a2, $f16 +/* 026B0C 80025F0C 01E02025 */ move $a0, $t7 +/* 026B10 80025F10 44072000 */ mfc1 $a3, $f4 +/* 026B14 80025F14 0C009B95 */ jal func_80026E54 +/* 026B18 80025F18 02202825 */ move $a1, $s1 +/* 026B1C 80025F1C 0013A400 */ sll $s4, $s3, 0x10 +/* 026B20 80025F20 3C078012 */ lui $a3, %hi(D_8011D49E) # $a3, 0x8012 +/* 026B24 80025F24 3C088012 */ lui $t0, %hi(D_8011D478) # $t0, 0x8012 +/* 026B28 80025F28 0014C403 */ sra $t8, $s4, 0x10 +/* 026B2C 80025F2C 84E7D49E */ lh $a3, %lo(D_8011D49E)($a3) +/* 026B30 80025F30 2508D478 */ addiu $t0, %lo(D_8011D478) # addiu $t0, $t0, -0x2b88 +/* 026B34 80025F34 0300A025 */ move $s4, $t8 +/* 026B38 80025F38 0247082A */ slt $at, $s2, $a3 +.L80025F3C: +/* 026B3C 80025F3C 1420FFA8 */ bnez $at, .L80025DE0 +/* 026B40 80025F40 0247082A */ slt $at, $s2, $a3 +.L80025F44: +/* 026B44 80025F44 3C068012 */ lui $a2, %hi(D_8011D4B6) # $a2, 0x8012 +/* 026B48 80025F48 84C6D4B6 */ lh $a2, %lo(D_8011D4B6)($a2) +/* 026B4C 80025F4C 3C078000 */ lui $a3, 0x8000 +/* 026B50 80025F50 10C00031 */ beqz $a2, .L80026018 +/* 026B54 80025F54 3C088012 */ lui $t0, %hi(gSceneCurrDisplayList) # $t0, 0x8012 +/* 026B58 80025F58 2508B0A0 */ addiu $t0, %lo(gSceneCurrDisplayList) # addiu $t0, $t0, -0x4f60 +/* 026B5C 80025F5C 8D020000 */ lw $v0, ($t0) +/* 026B60 80025F60 3C0C8012 */ lui $t4, %hi(D_8011D488) # $t4, 0x8012 +/* 026B64 80025F64 244A0008 */ addiu $t2, $v0, 8 +/* 026B68 80025F68 AD0A0000 */ sw $t2, ($t0) +/* 026B6C 80025F6C 8D8CD488 */ lw $t4, %lo(D_8011D488)($t4) +/* 026B70 80025F70 24D9FFFF */ addiu $t9, $a2, -1 +/* 026B74 80025F74 01876821 */ addu $t5, $t4, $a3 +/* 026B78 80025F78 31AE0006 */ andi $t6, $t5, 6 +/* 026B7C 80025F7C 001958C0 */ sll $t3, $t9, 3 +/* 026B80 80025F80 016E7825 */ or $t7, $t3, $t6 +/* 026B84 80025F84 000660C0 */ sll $t4, $a2, 3 +/* 026B88 80025F88 01866821 */ addu $t5, $t4, $a2 +/* 026B8C 80025F8C 000D5840 */ sll $t3, $t5, 1 +/* 026B90 80025F90 31F800FF */ andi $t8, $t7, 0xff +/* 026B94 80025F94 00185400 */ sll $t2, $t8, 0x10 +/* 026B98 80025F98 256E0008 */ addiu $t6, $t3, 8 +/* 026B9C 80025F9C 3C010400 */ lui $at, 0x400 +/* 026BA0 80025FA0 0141C825 */ or $t9, $t2, $at +/* 026BA4 80025FA4 31CFFFFF */ andi $t7, $t6, 0xffff +/* 026BA8 80025FA8 032FC025 */ or $t8, $t9, $t7 +/* 026BAC 80025FAC 3C0A8012 */ lui $t2, %hi(D_8011D488) # $t2, 0x8012 +/* 026BB0 80025FB0 AC580000 */ sw $t8, ($v0) +/* 026BB4 80025FB4 8D4AD488 */ lw $t2, %lo(D_8011D488)($t2) +/* 026BB8 80025FB8 3C058012 */ lui $a1, %hi(D_8011D4B6) # $a1, 0x8012 +/* 026BBC 80025FBC 01476021 */ addu $t4, $t2, $a3 +/* 026BC0 80025FC0 AC4C0004 */ sw $t4, 4($v0) +/* 026BC4 80025FC4 8D020000 */ lw $v0, ($t0) +/* 026BC8 80025FC8 3C010500 */ lui $at, 0x500 +/* 026BCC 80025FCC 244D0008 */ addiu $t5, $v0, 8 +/* 026BD0 80025FD0 AD0D0000 */ sw $t5, ($t0) +/* 026BD4 80025FD4 84A5D4B6 */ lh $a1, %lo(D_8011D4B6)($a1) +/* 026BD8 80025FD8 00000000 */ nop +/* 026BDC 80025FDC 00055843 */ sra $t3, $a1, 1 +/* 026BE0 80025FE0 256EFFFF */ addiu $t6, $t3, -1 +/* 026BE4 80025FE4 000EC900 */ sll $t9, $t6, 4 +/* 026BE8 80025FE8 332F00FF */ andi $t7, $t9, 0xff +/* 026BEC 80025FEC 000FC400 */ sll $t8, $t7, 0x10 +/* 026BF0 80025FF0 000B6100 */ sll $t4, $t3, 4 +/* 026BF4 80025FF4 318DFFFF */ andi $t5, $t4, 0xffff +/* 026BF8 80025FF8 03015025 */ or $t2, $t8, $at +/* 026BFC 80025FFC 014D5825 */ or $t3, $t2, $t5 +/* 026C00 80026000 3C0E8012 */ lui $t6, %hi(D_8011D498) # $t6, 0x8012 +/* 026C04 80026004 AC4B0000 */ sw $t3, ($v0) +/* 026C08 80026008 8DCED498 */ lw $t6, %lo(D_8011D498)($t6) +/* 026C0C 8002600C 00000000 */ nop +/* 026C10 80026010 01C7C821 */ addu $t9, $t6, $a3 +/* 026C14 80026014 AC590004 */ sw $t9, 4($v0) +.L80026018: +/* 026C18 80026018 8FAF00AC */ lw $t7, 0xac($sp) +/* 026C1C 8002601C 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 +/* 026C20 80026020 8FB800A8 */ lw $t8, 0xa8($sp) +/* 026C24 80026024 AC2FB0A8 */ sw $t7, %lo(gSceneCurrVertexList)($at) +/* 026C28 80026028 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 +/* 026C2C 8002602C AC38B0AC */ sw $t8, %lo(gSceneCurrTriList)($at) +.L80026030: +/* 026C30 80026030 8FBF004C */ lw $ra, 0x4c($sp) +.L80026034: +/* 026C34 80026034 C7B50018 */ lwc1 $f21, 0x18($sp) +/* 026C38 80026038 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 026C3C 8002603C C7B70020 */ lwc1 $f23, 0x20($sp) +/* 026C40 80026040 C7B60024 */ lwc1 $f22, 0x24($sp) +/* 026C44 80026044 C7B90028 */ lwc1 $f25, 0x28($sp) +/* 026C48 80026048 C7B8002C */ lwc1 $f24, 0x2c($sp) +/* 026C4C 8002604C C7BB0030 */ lwc1 $f27, 0x30($sp) +/* 026C50 80026050 C7BA0034 */ lwc1 $f26, 0x34($sp) +/* 026C54 80026054 8FB00038 */ lw $s0, 0x38($sp) +/* 026C58 80026058 8FB1003C */ lw $s1, 0x3c($sp) +/* 026C5C 8002605C 8FB20040 */ lw $s2, 0x40($sp) +/* 026C60 80026060 8FB30044 */ lw $s3, 0x44($sp) +/* 026C64 80026064 8FB40048 */ lw $s4, 0x48($sp) +/* 026C68 80026068 03E00008 */ jr $ra +/* 026C6C 8002606C 27BD00C0 */ addiu $sp, $sp, 0xc0 + diff --git a/asm/non_matchings/unknown_0255E0/func_80027568.s b/asm/non_matchings/unknown_0255E0/func_80027568.s index 784b7724..bf8e8c38 100644 --- a/asm/non_matchings/unknown_0255E0/func_80027568.s +++ b/asm/non_matchings/unknown_0255E0/func_80027568.s @@ -1,252 +1,252 @@ -.late_rodata -glabel D_800E5E90 -.double -0.1 -glabel D_800E5E98 -.double -0.1 - -.text -glabel func_80027568 -/* 028168 80027568 27BDFF18 */ addiu $sp, $sp, -0xe8 -/* 02816C 8002756C AFBF0044 */ sw $ra, 0x44($sp) -/* 028170 80027570 E7BF0038 */ swc1 $f31, 0x38($sp) -/* 028174 80027574 E7BE003C */ swc1 $f30, 0x3c($sp) -/* 028178 80027578 E7BD0030 */ swc1 $f29, 0x30($sp) -/* 02817C 8002757C E7BC0034 */ swc1 $f28, 0x34($sp) -/* 028180 80027580 E7BB0028 */ swc1 $f27, 0x28($sp) -/* 028184 80027584 E7BA002C */ swc1 $f26, 0x2c($sp) -/* 028188 80027588 E7B90020 */ swc1 $f25, 0x20($sp) -/* 02818C 8002758C E7B80024 */ swc1 $f24, 0x24($sp) -/* 028190 80027590 E7B70018 */ swc1 $f23, 0x18($sp) -/* 028194 80027594 E7B6001C */ swc1 $f22, 0x1c($sp) -/* 028198 80027598 E7B50010 */ swc1 $f21, 0x10($sp) -/* 02819C 8002759C E7B40014 */ swc1 $f20, 0x14($sp) -/* 0281A0 800275A0 0C006E9D */ jal get_racer_objects -/* 0281A4 800275A4 27A400C4 */ addiu $a0, $sp, 0xc4 -/* 0281A8 800275A8 8FAE00C4 */ lw $t6, 0xc4($sp) -/* 0281AC 800275AC 00403025 */ move $a2, $v0 -/* 0281B0 800275B0 15C00003 */ bnez $t6, .L800275C0 -/* 0281B4 800275B4 00000000 */ nop -/* 0281B8 800275B8 100000BC */ b .L800278AC -/* 0281BC 800275BC 00001025 */ move $v0, $zero -.L800275C0: -/* 0281C0 800275C0 0C019944 */ jal check_if_showing_cutscene_camera -/* 0281C4 800275C4 AFA60080 */ sw $a2, 0x80($sp) -/* 0281C8 800275C8 8FA60080 */ lw $a2, 0x80($sp) -/* 0281CC 800275CC 1440000A */ bnez $v0, .L800275F8 -/* 0281D0 800275D0 3C0F8012 */ lui $t7, %hi(D_8011B0B0) # $t7, 0x8012 -/* 0281D4 800275D4 8DEFB0B0 */ lw $t7, %lo(D_8011B0B0)($t7) -/* 0281D8 800275D8 00000000 */ nop -/* 0281DC 800275DC 85E20036 */ lh $v0, 0x36($t7) -/* 0281E0 800275E0 00000000 */ nop -/* 0281E4 800275E4 28410005 */ slti $at, $v0, 5 -/* 0281E8 800275E8 10200003 */ beqz $at, .L800275F8 -/* 0281EC 800275EC 24010003 */ li $at, 3 -/* 0281F0 800275F0 14410003 */ bne $v0, $at, .L80027600 -/* 0281F4 800275F4 00000000 */ nop -.L800275F8: -/* 0281F8 800275F8 100000AC */ b .L800278AC -/* 0281FC 800275FC 00001025 */ move $v0, $zero -.L80027600: -/* 028200 80027600 0C019888 */ jal get_current_viewport -/* 028204 80027604 AFA60080 */ sw $a2, 0x80($sp) -/* 028208 80027608 8FB800C4 */ lw $t8, 0xc4($sp) -/* 02820C 8002760C 8FA60080 */ lw $a2, 0x80($sp) -/* 028210 80027610 00005825 */ move $t3, $zero -/* 028214 80027614 1B000011 */ blez $t8, .L8002765C -/* 028218 80027618 00001825 */ move $v1, $zero -/* 02821C 8002761C 0003C880 */ sll $t9, $v1, 2 -.L80027620: -/* 028220 80027620 00D97021 */ addu $t6, $a2, $t9 -/* 028224 80027624 8DC50000 */ lw $a1, ($t6) -/* 028228 80027628 8FB800C4 */ lw $t8, 0xc4($sp) -/* 02822C 8002762C 8CA40064 */ lw $a0, 0x64($a1) -/* 028230 80027630 00000000 */ nop -/* 028234 80027634 848F0000 */ lh $t7, ($a0) -/* 028238 80027638 00000000 */ nop -/* 02823C 8002763C 144F0004 */ bne $v0, $t7, .L80027650 -/* 028240 80027640 24630001 */ addiu $v1, $v1, 1 -/* 028244 80027644 8FA300C4 */ lw $v1, 0xc4($sp) -/* 028248 80027648 00A05825 */ move $t3, $a1 -/* 02824C 8002764C 24630001 */ addiu $v1, $v1, 1 -.L80027650: -/* 028250 80027650 0078082A */ slt $at, $v1, $t8 -/* 028254 80027654 1420FFF2 */ bnez $at, .L80027620 -/* 028258 80027658 0003C880 */ sll $t9, $v1, 2 -.L8002765C: -/* 02825C 8002765C 15600003 */ bnez $t3, .L8002766C -/* 028260 80027660 24040001 */ li $a0, 1 -/* 028264 80027664 10000091 */ b .L800278AC -/* 028268 80027668 00001025 */ move $v0, $zero -.L8002766C: -/* 02826C 8002766C 3C068012 */ lui $a2, %hi(D_8011B0B0) # $a2, 0x8012 -/* 028270 80027670 8CC6B0B0 */ lw $a2, %lo(D_8011B0B0)($a2) -/* 028274 80027674 2565000C */ addiu $a1, $t3, 0xc -/* 028278 80027678 2407FFFF */ li $a3, -1 -/* 02827C 8002767C AFAB007C */ sw $t3, 0x7c($sp) -/* 028280 80027680 0C00C44C */ jal func_80031130 -/* 028284 80027684 24C6000C */ addiu $a2, $a2, 0xc -/* 028288 80027688 3C038012 */ lui $v1, %hi(D_8011D378) # $v1, 0x8012 -/* 02828C 8002768C 8C63D378 */ lw $v1, %lo(D_8011D378)($v1) -/* 028290 80027690 8FAB007C */ lw $t3, 0x7c($sp) -/* 028294 80027694 18600084 */ blez $v1, .L800278A8 -/* 028298 80027698 00003825 */ move $a3, $zero -/* 02829C 8002769C 3C198012 */ lui $t9, %hi(D_8011D370) # $t9, 0x8012 -/* 0282A0 800276A0 8F39D370 */ lw $t9, %lo(D_8011D370)($t9) -/* 0282A4 800276A4 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0282A8 800276A8 00006080 */ sll $t4, $zero, 2 -/* 0282AC 800276AC 00037080 */ sll $t6, $v1, 2 -/* 0282B0 800276B0 4481D000 */ mtc1 $at, $f26 -/* 0282B4 800276B4 8FBF00E4 */ lw $ra, 0xe4($sp) -/* 0282B8 800276B8 AFAE004C */ sw $t6, 0x4c($sp) -/* 0282BC 800276BC 24090001 */ li $t1, 1 -/* 0282C0 800276C0 032C6821 */ addu $t5, $t9, $t4 -.L800276C4: -/* 0282C4 800276C4 8DA40000 */ lw $a0, ($t5) -/* 0282C8 800276C8 3C018000 */ lui $at, 0x8000 -/* 0282CC 800276CC 18800003 */ blez $a0, .L800276DC -/* 0282D0 800276D0 3C058012 */ lui $a1, %hi(D_8011B0B0) # $a1, 0x8012 -/* 0282D4 800276D4 1000006C */ b .L80027888 -/* 0282D8 800276D8 0081F825 */ or $ra, $a0, $at -.L800276DC: -/* 0282DC 800276DC 948F0000 */ lhu $t7, ($a0) -/* 0282E0 800276E0 8FE80018 */ lw $t0, 0x18($ra) -/* 0282E4 800276E4 8CA5B0B0 */ lw $a1, %lo(D_8011B0B0)($a1) -/* 0282E8 800276E8 000FC100 */ sll $t8, $t7, 4 -/* 0282EC 800276EC 01181821 */ addu $v1, $t0, $t8 -/* 0282F0 800276F0 C4620000 */ lwc1 $f2, ($v1) -/* 0282F4 800276F4 C4BC000C */ lwc1 $f28, 0xc($a1) -/* 0282F8 800276F8 C4740004 */ lwc1 $f20, 4($v1) -/* 0282FC 800276FC 4602E102 */ mul.s $f4, $f28, $f2 -/* 028300 80027700 C4BE0010 */ lwc1 $f30, 0x10($a1) -/* 028304 80027704 C4760008 */ lwc1 $f22, 8($v1) -/* 028308 80027708 C4A00014 */ lwc1 $f0, 0x14($a1) -/* 02830C 8002770C 461EA182 */ mul.s $f6, $f20, $f30 -/* 028310 80027710 C478000C */ lwc1 $f24, 0xc($v1) -/* 028314 80027714 3C01402C */ li $at, 0x402C0000 # 2.687500 -/* 028318 80027718 00805025 */ move $t2, $a0 -/* 02831C 8002771C 4600B282 */ mul.s $f10, $f22, $f0 -/* 028320 80027720 46062200 */ add.s $f8, $f4, $f6 -/* 028324 80027724 44815800 */ mtc1 $at, $f11 -/* 028328 80027728 3C01800E */ lui $at, %hi(D_800E5E90) # $at, 0x800e -/* 02832C 8002772C 460A4100 */ add.s $f4, $f8, $f10 -/* 028330 80027730 44805000 */ mtc1 $zero, $f10 -/* 028334 80027734 46182180 */ add.s $f6, $f4, $f24 -/* 028338 80027738 E7A0005C */ swc1 $f0, 0x5c($sp) -/* 02833C 8002773C 46003221 */ cvt.d.s $f8, $f6 -/* 028340 80027740 462A4101 */ sub.d $f4, $f8, $f10 -/* 028344 80027744 C4285E94 */ lwc1 $f8, %lo(D_800E5E90 + 4)($at) -/* 028348 80027748 46202320 */ cvt.s.d $f12, $f4 -/* 02834C 8002774C C4295E90 */ lwc1 $f9, %lo(D_800E5E90)($at) -/* 028350 80027750 460061A1 */ cvt.d.s $f6, $f12 -/* 028354 80027754 4628303C */ c.lt.d $f6, $f8 -/* 028358 80027758 00000000 */ nop -/* 02835C 8002775C 4500004B */ bc1f .L8002788C -/* 028360 80027760 8FB9004C */ lw $t9, 0x4c($sp) -/* 028364 80027764 C56E000C */ lwc1 $f14, 0xc($t3) -/* 028368 80027768 C5700010 */ lwc1 $f16, 0x10($t3) -/* 02836C 8002776C 46027282 */ mul.s $f10, $f14, $f2 -/* 028370 80027770 C5720014 */ lwc1 $f18, 0x14($t3) -/* 028374 80027774 3C01800E */ lui $at, %hi(D_800E5E98 + 4) # $at, 0x800e -/* 028378 80027778 00001025 */ move $v0, $zero -/* 02837C 8002777C 4610A102 */ mul.s $f4, $f20, $f16 -/* 028380 80027780 00000000 */ nop -/* 028384 80027784 4612B202 */ mul.s $f8, $f22, $f18 -/* 028388 80027788 46045180 */ add.s $f6, $f10, $f4 -/* 02838C 8002778C C4275E98 */ lwc1 $f7, %lo(D_800E5E98)($at) -/* 028390 80027790 46083280 */ add.s $f10, $f6, $f8 -/* 028394 80027794 C4265E9C */ lwc1 $f6, %lo(D_800E5E98 + 4)($at) -/* 028398 80027798 46185000 */ add.s $f0, $f10, $f24 -/* 02839C 8002779C C7A8005C */ lwc1 $f8, 0x5c($sp) -/* 0283A0 800277A0 46000121 */ cvt.d.s $f4, $f0 -/* 0283A4 800277A4 4624303E */ c.le.d $f6, $f4 -/* 0283A8 800277A8 00000000 */ nop -/* 0283AC 800277AC 45000036 */ bc1f .L80027888 -/* 0283B0 800277B0 00000000 */ nop -/* 0283B4 800277B4 460C0032 */ c.eq.s $f0, $f12 -/* 0283B8 800277B8 460EE501 */ sub.s $f20, $f28, $f14 -/* 0283BC 800277BC 24070001 */ li $a3, 1 -/* 0283C0 800277C0 4610F581 */ sub.s $f22, $f30, $f16 -/* 0283C4 800277C4 45010004 */ bc1t .L800277D8 -/* 0283C8 800277C8 46124601 */ sub.s $f24, $f8, $f18 -/* 0283CC 800277CC 460C0281 */ sub.s $f10, $f0, $f12 -/* 0283D0 800277D0 10000003 */ b .L800277E0 -/* 0283D4 800277D4 460A0083 */ div.s $f2, $f0, $f10 -.L800277D8: -/* 0283D8 800277D8 44801000 */ mtc1 $zero, $f2 -/* 0283DC 800277DC 00000000 */ nop -.L800277E0: -/* 0283E0 800277E0 4602A102 */ mul.s $f4, $f20, $f2 -/* 0283E4 800277E4 00022840 */ sll $a1, $v0, 1 -/* 0283E8 800277E8 01453021 */ addu $a2, $t2, $a1 -/* 0283EC 800277EC 4602B182 */ mul.s $f6, $f22, $f2 -/* 0283F0 800277F0 46047500 */ add.s $f20, $f14, $f4 -/* 0283F4 800277F4 4602C202 */ mul.s $f8, $f24, $f2 -/* 0283F8 800277F8 46068580 */ add.s $f22, $f16, $f6 -/* 0283FC 800277FC 46089600 */ add.s $f24, $f18, $f8 -.L80027800: -/* 028400 80027800 94C20002 */ lhu $v0, 2($a2) -/* 028404 80027804 24A50002 */ addiu $a1, $a1, 2 -/* 028408 80027808 30598000 */ andi $t9, $v0, 0x8000 -/* 02840C 8002780C 13200004 */ beqz $t9, .L80027820 -/* 028410 80027810 00002025 */ move $a0, $zero -/* 028414 80027814 304E7FFF */ andi $t6, $v0, 0x7fff -/* 028418 80027818 01C01025 */ move $v0, $t6 -/* 02841C 8002781C 01202025 */ move $a0, $t1 -.L80027820: -/* 028420 80027820 0002C100 */ sll $t8, $v0, 4 -/* 028424 80027824 01181821 */ addu $v1, $t0, $t8 -/* 028428 80027828 C4600000 */ lwc1 $f0, ($v1) -/* 02842C 8002782C C4620004 */ lwc1 $f2, 4($v1) -/* 028430 80027830 46140282 */ mul.s $f10, $f0, $f20 -/* 028434 80027834 C46C0008 */ lwc1 $f12, 8($v1) -/* 028438 80027838 C46E000C */ lwc1 $f14, 0xc($v1) -/* 02843C 8002783C 28A10006 */ slti $at, $a1, 6 -/* 028440 80027840 46161102 */ mul.s $f4, $f2, $f22 -/* 028444 80027844 00000000 */ nop -/* 028448 80027848 46186202 */ mul.s $f8, $f12, $f24 -/* 02844C 8002784C 46045180 */ add.s $f6, $f10, $f4 -/* 028450 80027850 46083280 */ add.s $f10, $f6, $f8 -/* 028454 80027854 460E5480 */ add.s $f18, $f10, $f14 -/* 028458 80027858 10800002 */ beqz $a0, .L80027864 -/* 02845C 8002785C 46009406 */ mov.s $f16, $f18 -/* 028460 80027860 46009407 */ neg.s $f16, $f18 -.L80027864: -/* 028464 80027864 4610D03C */ c.lt.s $f26, $f16 -/* 028468 80027868 00000000 */ nop -/* 02846C 8002786C 45000002 */ bc1f .L80027878 -/* 028470 80027870 00000000 */ nop -/* 028474 80027874 00003825 */ move $a3, $zero -.L80027878: -/* 028478 80027878 10200003 */ beqz $at, .L80027888 -/* 02847C 8002787C 24C60002 */ addiu $a2, $a2, 2 -/* 028480 80027880 10E9FFDF */ beq $a3, $t1, .L80027800 -/* 028484 80027884 00000000 */ nop -.L80027888: -/* 028488 80027888 8FB9004C */ lw $t9, 0x4c($sp) -.L8002788C: -/* 02848C 8002788C 258C0004 */ addiu $t4, $t4, 4 -/* 028490 80027890 0199082A */ slt $at, $t4, $t9 -/* 028494 80027894 10200004 */ beqz $at, .L800278A8 -/* 028498 80027898 25AD0004 */ addiu $t5, $t5, 4 -/* 02849C 8002789C 10E0FF89 */ beqz $a3, .L800276C4 -/* 0284A0 800278A0 00000000 */ nop -/* 0284A4 800278A4 AFBF00E4 */ sw $ra, 0xe4($sp) -.L800278A8: -/* 0284A8 800278A8 00E01025 */ move $v0, $a3 -.L800278AC: -/* 0284AC 800278AC 8FBF0044 */ lw $ra, 0x44($sp) -/* 0284B0 800278B0 C7B50010 */ lwc1 $f21, 0x10($sp) -/* 0284B4 800278B4 C7B40014 */ lwc1 $f20, 0x14($sp) -/* 0284B8 800278B8 C7B70018 */ lwc1 $f23, 0x18($sp) -/* 0284BC 800278BC C7B6001C */ lwc1 $f22, 0x1c($sp) -/* 0284C0 800278C0 C7B90020 */ lwc1 $f25, 0x20($sp) -/* 0284C4 800278C4 C7B80024 */ lwc1 $f24, 0x24($sp) -/* 0284C8 800278C8 C7BB0028 */ lwc1 $f27, 0x28($sp) -/* 0284CC 800278CC C7BA002C */ lwc1 $f26, 0x2c($sp) -/* 0284D0 800278D0 C7BD0030 */ lwc1 $f29, 0x30($sp) -/* 0284D4 800278D4 C7BC0034 */ lwc1 $f28, 0x34($sp) -/* 0284D8 800278D8 C7BF0038 */ lwc1 $f31, 0x38($sp) -/* 0284DC 800278DC C7BE003C */ lwc1 $f30, 0x3c($sp) -/* 0284E0 800278E0 03E00008 */ jr $ra -/* 0284E4 800278E4 27BD00E8 */ addiu $sp, $sp, 0xe8 - +.late_rodata +glabel D_800E5E90 +.double -0.1 +glabel D_800E5E98 +.double -0.1 + +.text +glabel func_80027568 +/* 028168 80027568 27BDFF18 */ addiu $sp, $sp, -0xe8 +/* 02816C 8002756C AFBF0044 */ sw $ra, 0x44($sp) +/* 028170 80027570 E7BF0038 */ swc1 $f31, 0x38($sp) +/* 028174 80027574 E7BE003C */ swc1 $f30, 0x3c($sp) +/* 028178 80027578 E7BD0030 */ swc1 $f29, 0x30($sp) +/* 02817C 8002757C E7BC0034 */ swc1 $f28, 0x34($sp) +/* 028180 80027580 E7BB0028 */ swc1 $f27, 0x28($sp) +/* 028184 80027584 E7BA002C */ swc1 $f26, 0x2c($sp) +/* 028188 80027588 E7B90020 */ swc1 $f25, 0x20($sp) +/* 02818C 8002758C E7B80024 */ swc1 $f24, 0x24($sp) +/* 028190 80027590 E7B70018 */ swc1 $f23, 0x18($sp) +/* 028194 80027594 E7B6001C */ swc1 $f22, 0x1c($sp) +/* 028198 80027598 E7B50010 */ swc1 $f21, 0x10($sp) +/* 02819C 8002759C E7B40014 */ swc1 $f20, 0x14($sp) +/* 0281A0 800275A0 0C006E9D */ jal get_racer_objects +/* 0281A4 800275A4 27A400C4 */ addiu $a0, $sp, 0xc4 +/* 0281A8 800275A8 8FAE00C4 */ lw $t6, 0xc4($sp) +/* 0281AC 800275AC 00403025 */ move $a2, $v0 +/* 0281B0 800275B0 15C00003 */ bnez $t6, .L800275C0 +/* 0281B4 800275B4 00000000 */ nop +/* 0281B8 800275B8 100000BC */ b .L800278AC +/* 0281BC 800275BC 00001025 */ move $v0, $zero +.L800275C0: +/* 0281C0 800275C0 0C019944 */ jal check_if_showing_cutscene_camera +/* 0281C4 800275C4 AFA60080 */ sw $a2, 0x80($sp) +/* 0281C8 800275C8 8FA60080 */ lw $a2, 0x80($sp) +/* 0281CC 800275CC 1440000A */ bnez $v0, .L800275F8 +/* 0281D0 800275D0 3C0F8012 */ lui $t7, %hi(gSceneActiveCamera) # $t7, 0x8012 +/* 0281D4 800275D4 8DEFB0B0 */ lw $t7, %lo(gSceneActiveCamera)($t7) +/* 0281D8 800275D8 00000000 */ nop +/* 0281DC 800275DC 85E20036 */ lh $v0, 0x36($t7) +/* 0281E0 800275E0 00000000 */ nop +/* 0281E4 800275E4 28410005 */ slti $at, $v0, 5 +/* 0281E8 800275E8 10200003 */ beqz $at, .L800275F8 +/* 0281EC 800275EC 24010003 */ li $at, 3 +/* 0281F0 800275F0 14410003 */ bne $v0, $at, .L80027600 +/* 0281F4 800275F4 00000000 */ nop +.L800275F8: +/* 0281F8 800275F8 100000AC */ b .L800278AC +/* 0281FC 800275FC 00001025 */ move $v0, $zero +.L80027600: +/* 028200 80027600 0C019888 */ jal get_current_viewport +/* 028204 80027604 AFA60080 */ sw $a2, 0x80($sp) +/* 028208 80027608 8FB800C4 */ lw $t8, 0xc4($sp) +/* 02820C 8002760C 8FA60080 */ lw $a2, 0x80($sp) +/* 028210 80027610 00005825 */ move $t3, $zero +/* 028214 80027614 1B000011 */ blez $t8, .L8002765C +/* 028218 80027618 00001825 */ move $v1, $zero +/* 02821C 8002761C 0003C880 */ sll $t9, $v1, 2 +.L80027620: +/* 028220 80027620 00D97021 */ addu $t6, $a2, $t9 +/* 028224 80027624 8DC50000 */ lw $a1, ($t6) +/* 028228 80027628 8FB800C4 */ lw $t8, 0xc4($sp) +/* 02822C 8002762C 8CA40064 */ lw $a0, 0x64($a1) +/* 028230 80027630 00000000 */ nop +/* 028234 80027634 848F0000 */ lh $t7, ($a0) +/* 028238 80027638 00000000 */ nop +/* 02823C 8002763C 144F0004 */ bne $v0, $t7, .L80027650 +/* 028240 80027640 24630001 */ addiu $v1, $v1, 1 +/* 028244 80027644 8FA300C4 */ lw $v1, 0xc4($sp) +/* 028248 80027648 00A05825 */ move $t3, $a1 +/* 02824C 8002764C 24630001 */ addiu $v1, $v1, 1 +.L80027650: +/* 028250 80027650 0078082A */ slt $at, $v1, $t8 +/* 028254 80027654 1420FFF2 */ bnez $at, .L80027620 +/* 028258 80027658 0003C880 */ sll $t9, $v1, 2 +.L8002765C: +/* 02825C 8002765C 15600003 */ bnez $t3, .L8002766C +/* 028260 80027660 24040001 */ li $a0, 1 +/* 028264 80027664 10000091 */ b .L800278AC +/* 028268 80027668 00001025 */ move $v0, $zero +.L8002766C: +/* 02826C 8002766C 3C068012 */ lui $a2, %hi(gSceneActiveCamera) # $a2, 0x8012 +/* 028270 80027670 8CC6B0B0 */ lw $a2, %lo(gSceneActiveCamera)($a2) +/* 028274 80027674 2565000C */ addiu $a1, $t3, 0xc +/* 028278 80027678 2407FFFF */ li $a3, -1 +/* 02827C 8002767C AFAB007C */ sw $t3, 0x7c($sp) +/* 028280 80027680 0C00C44C */ jal func_80031130 +/* 028284 80027684 24C6000C */ addiu $a2, $a2, 0xc +/* 028288 80027688 3C038012 */ lui $v1, %hi(D_8011D378) # $v1, 0x8012 +/* 02828C 8002768C 8C63D378 */ lw $v1, %lo(D_8011D378)($v1) +/* 028290 80027690 8FAB007C */ lw $t3, 0x7c($sp) +/* 028294 80027694 18600084 */ blez $v1, .L800278A8 +/* 028298 80027698 00003825 */ move $a3, $zero +/* 02829C 8002769C 3C198012 */ lui $t9, %hi(D_8011D370) # $t9, 0x8012 +/* 0282A0 800276A0 8F39D370 */ lw $t9, %lo(D_8011D370)($t9) +/* 0282A4 800276A4 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0282A8 800276A8 00006080 */ sll $t4, $zero, 2 +/* 0282AC 800276AC 00037080 */ sll $t6, $v1, 2 +/* 0282B0 800276B0 4481D000 */ mtc1 $at, $f26 +/* 0282B4 800276B4 8FBF00E4 */ lw $ra, 0xe4($sp) +/* 0282B8 800276B8 AFAE004C */ sw $t6, 0x4c($sp) +/* 0282BC 800276BC 24090001 */ li $t1, 1 +/* 0282C0 800276C0 032C6821 */ addu $t5, $t9, $t4 +.L800276C4: +/* 0282C4 800276C4 8DA40000 */ lw $a0, ($t5) +/* 0282C8 800276C8 3C018000 */ lui $at, 0x8000 +/* 0282CC 800276CC 18800003 */ blez $a0, .L800276DC +/* 0282D0 800276D0 3C058012 */ lui $a1, %hi(gSceneActiveCamera) # $a1, 0x8012 +/* 0282D4 800276D4 1000006C */ b .L80027888 +/* 0282D8 800276D8 0081F825 */ or $ra, $a0, $at +.L800276DC: +/* 0282DC 800276DC 948F0000 */ lhu $t7, ($a0) +/* 0282E0 800276E0 8FE80018 */ lw $t0, 0x18($ra) +/* 0282E4 800276E4 8CA5B0B0 */ lw $a1, %lo(gSceneActiveCamera)($a1) +/* 0282E8 800276E8 000FC100 */ sll $t8, $t7, 4 +/* 0282EC 800276EC 01181821 */ addu $v1, $t0, $t8 +/* 0282F0 800276F0 C4620000 */ lwc1 $f2, ($v1) +/* 0282F4 800276F4 C4BC000C */ lwc1 $f28, 0xc($a1) +/* 0282F8 800276F8 C4740004 */ lwc1 $f20, 4($v1) +/* 0282FC 800276FC 4602E102 */ mul.s $f4, $f28, $f2 +/* 028300 80027700 C4BE0010 */ lwc1 $f30, 0x10($a1) +/* 028304 80027704 C4760008 */ lwc1 $f22, 8($v1) +/* 028308 80027708 C4A00014 */ lwc1 $f0, 0x14($a1) +/* 02830C 8002770C 461EA182 */ mul.s $f6, $f20, $f30 +/* 028310 80027710 C478000C */ lwc1 $f24, 0xc($v1) +/* 028314 80027714 3C01402C */ li $at, 0x402C0000 # 2.687500 +/* 028318 80027718 00805025 */ move $t2, $a0 +/* 02831C 8002771C 4600B282 */ mul.s $f10, $f22, $f0 +/* 028320 80027720 46062200 */ add.s $f8, $f4, $f6 +/* 028324 80027724 44815800 */ mtc1 $at, $f11 +/* 028328 80027728 3C01800E */ lui $at, %hi(D_800E5E90) # $at, 0x800e +/* 02832C 8002772C 460A4100 */ add.s $f4, $f8, $f10 +/* 028330 80027730 44805000 */ mtc1 $zero, $f10 +/* 028334 80027734 46182180 */ add.s $f6, $f4, $f24 +/* 028338 80027738 E7A0005C */ swc1 $f0, 0x5c($sp) +/* 02833C 8002773C 46003221 */ cvt.d.s $f8, $f6 +/* 028340 80027740 462A4101 */ sub.d $f4, $f8, $f10 +/* 028344 80027744 C4285E94 */ lwc1 $f8, %lo(D_800E5E90 + 4)($at) +/* 028348 80027748 46202320 */ cvt.s.d $f12, $f4 +/* 02834C 8002774C C4295E90 */ lwc1 $f9, %lo(D_800E5E90)($at) +/* 028350 80027750 460061A1 */ cvt.d.s $f6, $f12 +/* 028354 80027754 4628303C */ c.lt.d $f6, $f8 +/* 028358 80027758 00000000 */ nop +/* 02835C 8002775C 4500004B */ bc1f .L8002788C +/* 028360 80027760 8FB9004C */ lw $t9, 0x4c($sp) +/* 028364 80027764 C56E000C */ lwc1 $f14, 0xc($t3) +/* 028368 80027768 C5700010 */ lwc1 $f16, 0x10($t3) +/* 02836C 8002776C 46027282 */ mul.s $f10, $f14, $f2 +/* 028370 80027770 C5720014 */ lwc1 $f18, 0x14($t3) +/* 028374 80027774 3C01800E */ lui $at, %hi(D_800E5E98 + 4) # $at, 0x800e +/* 028378 80027778 00001025 */ move $v0, $zero +/* 02837C 8002777C 4610A102 */ mul.s $f4, $f20, $f16 +/* 028380 80027780 00000000 */ nop +/* 028384 80027784 4612B202 */ mul.s $f8, $f22, $f18 +/* 028388 80027788 46045180 */ add.s $f6, $f10, $f4 +/* 02838C 8002778C C4275E98 */ lwc1 $f7, %lo(D_800E5E98)($at) +/* 028390 80027790 46083280 */ add.s $f10, $f6, $f8 +/* 028394 80027794 C4265E9C */ lwc1 $f6, %lo(D_800E5E98 + 4)($at) +/* 028398 80027798 46185000 */ add.s $f0, $f10, $f24 +/* 02839C 8002779C C7A8005C */ lwc1 $f8, 0x5c($sp) +/* 0283A0 800277A0 46000121 */ cvt.d.s $f4, $f0 +/* 0283A4 800277A4 4624303E */ c.le.d $f6, $f4 +/* 0283A8 800277A8 00000000 */ nop +/* 0283AC 800277AC 45000036 */ bc1f .L80027888 +/* 0283B0 800277B0 00000000 */ nop +/* 0283B4 800277B4 460C0032 */ c.eq.s $f0, $f12 +/* 0283B8 800277B8 460EE501 */ sub.s $f20, $f28, $f14 +/* 0283BC 800277BC 24070001 */ li $a3, 1 +/* 0283C0 800277C0 4610F581 */ sub.s $f22, $f30, $f16 +/* 0283C4 800277C4 45010004 */ bc1t .L800277D8 +/* 0283C8 800277C8 46124601 */ sub.s $f24, $f8, $f18 +/* 0283CC 800277CC 460C0281 */ sub.s $f10, $f0, $f12 +/* 0283D0 800277D0 10000003 */ b .L800277E0 +/* 0283D4 800277D4 460A0083 */ div.s $f2, $f0, $f10 +.L800277D8: +/* 0283D8 800277D8 44801000 */ mtc1 $zero, $f2 +/* 0283DC 800277DC 00000000 */ nop +.L800277E0: +/* 0283E0 800277E0 4602A102 */ mul.s $f4, $f20, $f2 +/* 0283E4 800277E4 00022840 */ sll $a1, $v0, 1 +/* 0283E8 800277E8 01453021 */ addu $a2, $t2, $a1 +/* 0283EC 800277EC 4602B182 */ mul.s $f6, $f22, $f2 +/* 0283F0 800277F0 46047500 */ add.s $f20, $f14, $f4 +/* 0283F4 800277F4 4602C202 */ mul.s $f8, $f24, $f2 +/* 0283F8 800277F8 46068580 */ add.s $f22, $f16, $f6 +/* 0283FC 800277FC 46089600 */ add.s $f24, $f18, $f8 +.L80027800: +/* 028400 80027800 94C20002 */ lhu $v0, 2($a2) +/* 028404 80027804 24A50002 */ addiu $a1, $a1, 2 +/* 028408 80027808 30598000 */ andi $t9, $v0, 0x8000 +/* 02840C 8002780C 13200004 */ beqz $t9, .L80027820 +/* 028410 80027810 00002025 */ move $a0, $zero +/* 028414 80027814 304E7FFF */ andi $t6, $v0, 0x7fff +/* 028418 80027818 01C01025 */ move $v0, $t6 +/* 02841C 8002781C 01202025 */ move $a0, $t1 +.L80027820: +/* 028420 80027820 0002C100 */ sll $t8, $v0, 4 +/* 028424 80027824 01181821 */ addu $v1, $t0, $t8 +/* 028428 80027828 C4600000 */ lwc1 $f0, ($v1) +/* 02842C 8002782C C4620004 */ lwc1 $f2, 4($v1) +/* 028430 80027830 46140282 */ mul.s $f10, $f0, $f20 +/* 028434 80027834 C46C0008 */ lwc1 $f12, 8($v1) +/* 028438 80027838 C46E000C */ lwc1 $f14, 0xc($v1) +/* 02843C 8002783C 28A10006 */ slti $at, $a1, 6 +/* 028440 80027840 46161102 */ mul.s $f4, $f2, $f22 +/* 028444 80027844 00000000 */ nop +/* 028448 80027848 46186202 */ mul.s $f8, $f12, $f24 +/* 02844C 8002784C 46045180 */ add.s $f6, $f10, $f4 +/* 028450 80027850 46083280 */ add.s $f10, $f6, $f8 +/* 028454 80027854 460E5480 */ add.s $f18, $f10, $f14 +/* 028458 80027858 10800002 */ beqz $a0, .L80027864 +/* 02845C 8002785C 46009406 */ mov.s $f16, $f18 +/* 028460 80027860 46009407 */ neg.s $f16, $f18 +.L80027864: +/* 028464 80027864 4610D03C */ c.lt.s $f26, $f16 +/* 028468 80027868 00000000 */ nop +/* 02846C 8002786C 45000002 */ bc1f .L80027878 +/* 028470 80027870 00000000 */ nop +/* 028474 80027874 00003825 */ move $a3, $zero +.L80027878: +/* 028478 80027878 10200003 */ beqz $at, .L80027888 +/* 02847C 8002787C 24C60002 */ addiu $a2, $a2, 2 +/* 028480 80027880 10E9FFDF */ beq $a3, $t1, .L80027800 +/* 028484 80027884 00000000 */ nop +.L80027888: +/* 028488 80027888 8FB9004C */ lw $t9, 0x4c($sp) +.L8002788C: +/* 02848C 8002788C 258C0004 */ addiu $t4, $t4, 4 +/* 028490 80027890 0199082A */ slt $at, $t4, $t9 +/* 028494 80027894 10200004 */ beqz $at, .L800278A8 +/* 028498 80027898 25AD0004 */ addiu $t5, $t5, 4 +/* 02849C 8002789C 10E0FF89 */ beqz $a3, .L800276C4 +/* 0284A0 800278A0 00000000 */ nop +/* 0284A4 800278A4 AFBF00E4 */ sw $ra, 0xe4($sp) +.L800278A8: +/* 0284A8 800278A8 00E01025 */ move $v0, $a3 +.L800278AC: +/* 0284AC 800278AC 8FBF0044 */ lw $ra, 0x44($sp) +/* 0284B0 800278B0 C7B50010 */ lwc1 $f21, 0x10($sp) +/* 0284B4 800278B4 C7B40014 */ lwc1 $f20, 0x14($sp) +/* 0284B8 800278B8 C7B70018 */ lwc1 $f23, 0x18($sp) +/* 0284BC 800278BC C7B6001C */ lwc1 $f22, 0x1c($sp) +/* 0284C0 800278C0 C7B90020 */ lwc1 $f25, 0x20($sp) +/* 0284C4 800278C4 C7B80024 */ lwc1 $f24, 0x24($sp) +/* 0284C8 800278C8 C7BB0028 */ lwc1 $f27, 0x28($sp) +/* 0284CC 800278CC C7BA002C */ lwc1 $f26, 0x2c($sp) +/* 0284D0 800278D0 C7BD0030 */ lwc1 $f29, 0x30($sp) +/* 0284D4 800278D4 C7BC0034 */ lwc1 $f28, 0x34($sp) +/* 0284D8 800278D8 C7BF0038 */ lwc1 $f31, 0x38($sp) +/* 0284DC 800278DC C7BE003C */ lwc1 $f30, 0x3c($sp) +/* 0284E0 800278E0 03E00008 */ jr $ra +/* 0284E4 800278E4 27BD00E8 */ addiu $sp, $sp, 0xe8 + diff --git a/asm/non_matchings/unknown_0255E0/render_level_segment.s b/asm/non_matchings/unknown_0255E0/render_level_segment.s deleted file mode 100644 index d0196a03..00000000 --- a/asm/non_matchings/unknown_0255E0/render_level_segment.s +++ /dev/null @@ -1,318 +0,0 @@ -glabel render_level_segment -/* 02A258 80029658 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 02A25C 8002965C 3C0E800E */ lui $t6, %hi(gCurrentLevelModel) # $t6, 0x800e -/* 02A260 80029660 8DCEC918 */ lw $t6, %lo(gCurrentLevelModel)($t6) -/* 02A264 80029664 AFBF003C */ sw $ra, 0x3c($sp) -/* 02A268 80029668 AFBE0038 */ sw $fp, 0x38($sp) -/* 02A26C 8002966C AFB70034 */ sw $s7, 0x34($sp) -/* 02A270 80029670 AFB60030 */ sw $s6, 0x30($sp) -/* 02A274 80029674 AFB5002C */ sw $s5, 0x2c($sp) -/* 02A278 80029678 AFB40028 */ sw $s4, 0x28($sp) -/* 02A27C 8002967C AFB30024 */ sw $s3, 0x24($sp) -/* 02A280 80029680 AFB20020 */ sw $s2, 0x20($sp) -/* 02A284 80029684 AFB1001C */ sw $s1, 0x1c($sp) -/* 02A288 80029688 AFB00018 */ sw $s0, 0x18($sp) -/* 02A28C 8002968C AFA500B4 */ sw $a1, 0xb4($sp) -/* 02A290 80029690 0004C100 */ sll $t8, $a0, 4 -/* 02A294 80029694 8DCF0004 */ lw $t7, 4($t6) -/* 02A298 80029698 0304C021 */ addu $t8, $t8, $a0 -/* 02A29C 8002969C 0018C080 */ sll $t8, $t8, 2 -/* 02A2A0 800296A0 01F8C821 */ addu $t9, $t7, $t8 -/* 02A2A4 800296A4 10A0000A */ beqz $a1, .L800296D0 -/* 02A2A8 800296A8 AFB900AC */ sw $t9, 0xac($sp) -/* 02A2AC 800296AC 3C0C8012 */ lui $t4, %hi(D_8011D384) # $t4, 0x8012 -/* 02A2B0 800296B0 8D8CD384 */ lw $t4, %lo(D_8011D384)($t4) -/* 02A2B4 800296B4 00000000 */ nop -/* 02A2B8 800296B8 11800005 */ beqz $t4, .L800296D0 -/* 02A2BC 800296BC 00000000 */ nop -/* 02A2C0 800296C0 0C02E48A */ jal func_800B9228 -/* 02A2C4 800296C4 03202025 */ move $a0, $t9 -/* 02A2C8 800296C8 10000002 */ b .L800296D4 -/* 02A2CC 800296CC AFA20078 */ sw $v0, 0x78($sp) -.L800296D0: -/* 02A2D0 800296D0 AFA00078 */ sw $zero, 0x78($sp) -.L800296D4: -/* 02A2D4 800296D4 8FAD00B4 */ lw $t5, 0xb4($sp) -/* 02A2D8 800296D8 8FB800AC */ lw $t8, 0xac($sp) -/* 02A2DC 800296DC 11A00007 */ beqz $t5, .L800296FC -/* 02A2E0 800296E0 3C1E8000 */ lui $fp, 0x8000 -/* 02A2E4 800296E4 8FAE00AC */ lw $t6, 0xac($sp) -/* 02A2E8 800296E8 00000000 */ nop -/* 02A2EC 800296EC 85CF0020 */ lh $t7, 0x20($t6) -/* 02A2F0 800296F0 91C20040 */ lbu $v0, 0x40($t6) -/* 02A2F4 800296F4 10000004 */ b .L80029708 -/* 02A2F8 800296F8 AFAF0070 */ sw $t7, 0x70($sp) -.L800296FC: -/* 02A2FC 800296FC 930B0040 */ lbu $t3, 0x40($t8) -/* 02A300 80029700 00001025 */ move $v0, $zero -/* 02A304 80029704 AFAB0070 */ sw $t3, 0x70($sp) -.L80029708: -/* 02A308 80029708 8FAC0070 */ lw $t4, 0x70($sp) -/* 02A30C 8002970C 00404825 */ move $t1, $v0 -/* 02A310 80029710 004C082A */ slt $at, $v0, $t4 -/* 02A314 80029714 102000EC */ beqz $at, .L80029AC8 -/* 02A318 80029718 00025080 */ sll $t2, $v0, 2 -/* 02A31C 8002971C 01425023 */ subu $t2, $t2, $v0 -/* 02A320 80029720 3C128012 */ lui $s2, %hi(gSceneCurrDisplayList) # $s2, 0x8012 -/* 02A324 80029724 2652B0A0 */ addiu $s2, %lo(gSceneCurrDisplayList) # addiu $s2, $s2, -0x4f60 -/* 02A328 80029728 000A5080 */ sll $t2, $t2, 2 -.L8002972C: -/* 02A32C 8002972C 8FB900AC */ lw $t9, 0xac($sp) -/* 02A330 80029730 00003025 */ move $a2, $zero -/* 02A334 80029734 8F2D000C */ lw $t5, 0xc($t9) -/* 02A338 80029738 00000000 */ nop -/* 02A33C 8002973C 01AA2821 */ addu $a1, $t5, $t2 -/* 02A340 80029740 8CA30008 */ lw $v1, 8($a1) -/* 02A344 80029744 00000000 */ nop -/* 02A348 80029748 30620100 */ andi $v0, $v1, 0x100 -/* 02A34C 8002974C 144000DA */ bnez $v0, .L80029AB8 -/* 02A350 80029750 00608825 */ move $s1, $v1 -/* 02A354 80029754 90A20000 */ lbu $v0, ($a1) -/* 02A358 80029758 240100FF */ li $at, 255 -/* 02A35C 8002975C 14410003 */ bne $v0, $at, .L8002976C -/* 02A360 80029760 00002025 */ move $a0, $zero -/* 02A364 80029764 1000000B */ b .L80029794 -/* 02A368 80029768 0000A825 */ move $s5, $zero -.L8002976C: -/* 02A36C 8002976C 3C0E800E */ lui $t6, %hi(gCurrentLevelModel) # $t6, 0x800e -/* 02A370 80029770 8DCEC918 */ lw $t6, %lo(gCurrentLevelModel)($t6) -/* 02A374 80029774 0002C0C0 */ sll $t8, $v0, 3 -/* 02A378 80029778 8DCF0000 */ lw $t7, ($t6) -/* 02A37C 8002977C 00000000 */ nop -/* 02A380 80029780 01F85821 */ addu $t3, $t7, $t8 -/* 02A384 80029784 8D750000 */ lw $s5, ($t3) -/* 02A388 80029788 00000000 */ nop -/* 02A38C 8002978C 86A60006 */ lh $a2, 6($s5) -/* 02A390 80029790 00000000 */ nop -.L80029794: -/* 02A394 80029794 362C000A */ ori $t4, $s1, 0xa -/* 02A398 80029798 31990010 */ andi $t9, $t4, 0x10 -/* 02A39C 8002979C 17200007 */ bnez $t9, .L800297BC -/* 02A3A0 800297A0 01808825 */ move $s1, $t4 -/* 02A3A4 800297A4 318D0800 */ andi $t5, $t4, 0x800 -/* 02A3A8 800297A8 15A00004 */ bnez $t5, .L800297BC -/* 02A3AC 800297AC 3C0E8012 */ lui $t6, %hi(D_8011B0FC) # $t6, 0x8012 -/* 02A3B0 800297B0 8DCEB0FC */ lw $t6, %lo(D_8011B0FC)($t6) -/* 02A3B4 800297B4 00000000 */ nop -/* 02A3B8 800297B8 018E8825 */ or $s1, $t4, $t6 -.L800297BC: -/* 02A3BC 800297BC 30CF0004 */ andi $t7, $a2, 4 -/* 02A3C0 800297C0 8FAC00B4 */ lw $t4, 0xb4($sp) -/* 02A3C4 800297C4 8FAD0078 */ lw $t5, 0x78($sp) -/* 02A3C8 800297C8 15E00002 */ bnez $t7, .L800297D4 -/* 02A3CC 800297CC 32382000 */ andi $t8, $s1, 0x2000 -/* 02A3D0 800297D0 13000003 */ beqz $t8, .L800297E0 -.L800297D4: -/* 02A3D4 800297D4 322B0800 */ andi $t3, $s1, 0x800 -/* 02A3D8 800297D8 11600002 */ beqz $t3, .L800297E4 -/* 02A3DC 800297DC 00000000 */ nop -.L800297E0: -/* 02A3E0 800297E0 24040001 */ li $a0, 1 -.L800297E4: -/* 02A3E4 800297E4 11800004 */ beqz $t4, .L800297F8 -/* 02A3E8 800297E8 322E2000 */ andi $t6, $s1, 0x2000 -/* 02A3EC 800297EC 24840001 */ addiu $a0, $a0, 1 -/* 02A3F0 800297F0 30990001 */ andi $t9, $a0, 1 -/* 02A3F4 800297F4 03202025 */ move $a0, $t9 -.L800297F8: -/* 02A3F8 800297F8 11A00004 */ beqz $t5, .L8002980C -/* 02A3FC 800297FC 00000000 */ nop -/* 02A400 80029800 11C00002 */ beqz $t6, .L8002980C -/* 02A404 80029804 00000000 */ nop -/* 02A408 80029808 00002025 */ move $a0, $zero -.L8002980C: -/* 02A40C 8002980C 108000AB */ beqz $a0, .L80029ABC -/* 02A410 80029810 8FAF0070 */ lw $t7, 0x70($sp) -/* 02A414 80029814 84A20002 */ lh $v0, 2($a1) -/* 02A418 80029818 8FAB00AC */ lw $t3, 0xac($sp) -/* 02A41C 8002981C 84A30004 */ lh $v1, 4($a1) -/* 02A420 80029820 84AF000E */ lh $t7, 0xe($a1) -/* 02A424 80029824 84B80010 */ lh $t8, 0x10($a1) -/* 02A428 80029828 90A70007 */ lbu $a3, 7($a1) -/* 02A42C 8002982C 0002C880 */ sll $t9, $v0, 2 -/* 02A430 80029830 8D6C0000 */ lw $t4, ($t3) -/* 02A434 80029834 8D6D0004 */ lw $t5, 4($t3) -/* 02A438 80029838 00112703 */ sra $a0, $s1, 0x1c -/* 02A43C 8002983C 0322C821 */ addu $t9, $t9, $v0 -/* 02A440 80029840 01E29823 */ subu $s3, $t7, $v0 -/* 02A444 80029844 0303A023 */ subu $s4, $t8, $v1 -/* 02A448 80029848 0019C840 */ sll $t9, $t9, 1 -/* 02A44C 8002984C 30980007 */ andi $t8, $a0, 7 -/* 02A450 80029850 00037100 */ sll $t6, $v1, 4 -/* 02A454 80029854 00077B80 */ sll $t7, $a3, 0xe -/* 02A458 80029858 01E03825 */ move $a3, $t7 -/* 02A45C 8002985C 0199B021 */ addu $s6, $t4, $t9 -/* 02A460 80029860 13000018 */ beqz $t8, .L800298C4 -/* 02A464 80029864 01AEB821 */ addu $s7, $t5, $t6 -/* 02A468 80029868 8E500000 */ lw $s0, ($s2) -/* 02A46C 8002986C 3C19FB00 */ lui $t9, 0xfb00 -/* 02A470 80029870 260C0008 */ addiu $t4, $s0, 8 -/* 02A474 80029874 AE4C0000 */ sw $t4, ($s2) -/* 02A478 80029878 3C0B800E */ lui $t3, %hi(gCurrentLevelHeader2) # $t3, 0x800e -/* 02A47C 8002987C AE190000 */ sw $t9, ($s0) -/* 02A480 80029880 8D6BC91C */ lw $t3, %lo(gCurrentLevelHeader2)($t3) -/* 02A484 80029884 00186880 */ sll $t5, $t8, 2 -/* 02A488 80029888 016D7021 */ addu $t6, $t3, $t5 -/* 02A48C 8002988C 8DC20070 */ lw $v0, 0x70($t6) -/* 02A490 80029890 00000000 */ nop -/* 02A494 80029894 90590010 */ lbu $t9, 0x10($v0) -/* 02A498 80029898 90580013 */ lbu $t8, 0x13($v0) -/* 02A49C 8002989C 00195E00 */ sll $t3, $t9, 0x18 -/* 02A4A0 800298A0 904F0011 */ lbu $t7, 0x11($v0) -/* 02A4A4 800298A4 030B6825 */ or $t5, $t8, $t3 -/* 02A4A8 800298A8 904B0012 */ lbu $t3, 0x12($v0) -/* 02A4AC 800298AC 000F6400 */ sll $t4, $t7, 0x10 -/* 02A4B0 800298B0 01ACC825 */ or $t9, $t5, $t4 -/* 02A4B4 800298B4 000B7200 */ sll $t6, $t3, 8 -/* 02A4B8 800298B8 032E7825 */ or $t7, $t9, $t6 -/* 02A4BC 800298BC 10000008 */ b .L800298E0 -/* 02A4C0 800298C0 AE0F0004 */ sw $t7, 4($s0) -.L800298C4: -/* 02A4C4 800298C4 8E500000 */ lw $s0, ($s2) -/* 02A4C8 800298C8 3C0CFB00 */ lui $t4, 0xfb00 -/* 02A4CC 800298CC 260D0008 */ addiu $t5, $s0, 8 -/* 02A4D0 800298D0 AE4D0000 */ sw $t5, ($s2) -/* 02A4D4 800298D4 2418FF00 */ li $t8, -256 -/* 02A4D8 800298D8 AE180004 */ sw $t8, 4($s0) -/* 02A4DC 800298DC AE0C0000 */ sw $t4, ($s0) -.L800298E0: -/* 02A4E0 800298E0 00115B40 */ sll $t3, $s1, 0xd -/* 02A4E4 800298E4 05610046 */ bgez $t3, .L80029A00 -/* 02A4E8 800298E8 02402025 */ move $a0, $s2 -/* 02A4EC 800298EC 3C19800E */ lui $t9, %hi(gCurrentLevelHeader2) # $t9, 0x800e -/* 02A4F0 800298F0 8F39C91C */ lw $t9, %lo(gCurrentLevelHeader2)($t9) -/* 02A4F4 800298F4 8E500000 */ lw $s0, ($s2) -/* 02A4F8 800298F8 8F2E00AC */ lw $t6, 0xac($t9) -/* 02A4FC 800298FC 260F0008 */ addiu $t7, $s0, 8 -/* 02A500 80029900 8DC80008 */ lw $t0, 8($t6) -/* 02A504 80029904 AE4F0000 */ sw $t7, ($s2) -/* 02A508 80029908 310200FF */ andi $v0, $t0, 0xff -/* 02A50C 8002990C 00026600 */ sll $t4, $v0, 0x18 -/* 02A510 80029910 0002C400 */ sll $t8, $v0, 0x10 -/* 02A514 80029914 01985825 */ or $t3, $t4, $t8 -/* 02A518 80029918 0002CA00 */ sll $t9, $v0, 8 -/* 02A51C 8002991C 01797025 */ or $t6, $t3, $t9 -/* 02A520 80029920 01C27825 */ or $t7, $t6, $v0 -/* 02A524 80029924 3C0DFA00 */ lui $t5, 0xfa00 -/* 02A528 80029928 AE0D0000 */ sw $t5, ($s0) -/* 02A52C 8002992C AE0F0004 */ sw $t7, 4($s0) -/* 02A530 80029930 AFAA0040 */ sw $t2, 0x40($sp) -/* 02A534 80029934 AFA900A8 */ sw $t1, 0xa8($sp) -/* 02A538 80029938 02402025 */ move $a0, $s2 -/* 02A53C 8002993C 02A02825 */ move $a1, $s5 -/* 02A540 80029940 0C01EE97 */ jal func_8007BA5C -/* 02A544 80029944 02203025 */ move $a2, $s1 -/* 02A548 80029948 02DE1821 */ addu $v1, $s6, $fp -/* 02A54C 8002994C 266CFFFF */ addiu $t4, $s3, -1 -/* 02A550 80029950 000CC0C0 */ sll $t8, $t4, 3 -/* 02A554 80029954 306B0006 */ andi $t3, $v1, 6 -/* 02A558 80029958 030BC825 */ or $t9, $t8, $t3 -/* 02A55C 8002995C 8E500000 */ lw $s0, ($s2) -/* 02A560 80029960 001360C0 */ sll $t4, $s3, 3 -/* 02A564 80029964 0193C021 */ addu $t8, $t4, $s3 -/* 02A568 80029968 332E00FF */ andi $t6, $t9, 0xff -/* 02A56C 8002996C 000E7C00 */ sll $t7, $t6, 0x10 -/* 02A570 80029970 00185840 */ sll $t3, $t8, 1 -/* 02A574 80029974 260D0008 */ addiu $t5, $s0, 8 -/* 02A578 80029978 AE4D0000 */ sw $t5, ($s2) -/* 02A57C 8002997C 25790008 */ addiu $t9, $t3, 8 -/* 02A580 80029980 3C010400 */ lui $at, 0x400 -/* 02A584 80029984 8FA900A8 */ lw $t1, 0xa8($sp) -/* 02A588 80029988 8FAA0040 */ lw $t2, 0x40($sp) -/* 02A58C 8002998C 01E16825 */ or $t5, $t7, $at -/* 02A590 80029990 332EFFFF */ andi $t6, $t9, 0xffff -/* 02A594 80029994 01AE7825 */ or $t7, $t5, $t6 -/* 02A598 80029998 AE0F0000 */ sw $t7, ($s0) -/* 02A59C 8002999C AE030004 */ sw $v1, 4($s0) -/* 02A5A0 800299A0 8E500000 */ lw $s0, ($s2) -/* 02A5A4 800299A4 2698FFFF */ addiu $t8, $s4, -1 -/* 02A5A8 800299A8 00185900 */ sll $t3, $t8, 4 -/* 02A5AC 800299AC 35790001 */ ori $t9, $t3, 1 -/* 02A5B0 800299B0 260C0008 */ addiu $t4, $s0, 8 -/* 02A5B4 800299B4 AE4C0000 */ sw $t4, ($s2) -/* 02A5B8 800299B8 332D00FF */ andi $t5, $t9, 0xff -/* 02A5BC 800299BC 000D7400 */ sll $t6, $t5, 0x10 -/* 02A5C0 800299C0 00146100 */ sll $t4, $s4, 4 -/* 02A5C4 800299C4 3C010500 */ lui $at, 0x500 -/* 02A5C8 800299C8 01C17825 */ or $t7, $t6, $at -/* 02A5CC 800299CC 3198FFFF */ andi $t8, $t4, 0xffff -/* 02A5D0 800299D0 01F85825 */ or $t3, $t7, $t8 -/* 02A5D4 800299D4 02FEC821 */ addu $t9, $s7, $fp -/* 02A5D8 800299D8 AE190004 */ sw $t9, 4($s0) -/* 02A5DC 800299DC AE0B0000 */ sw $t3, ($s0) -/* 02A5E0 800299E0 8E500000 */ lw $s0, ($s2) -/* 02A5E4 800299E4 240CFFFF */ li $t4, -1 -/* 02A5E8 800299E8 260D0008 */ addiu $t5, $s0, 8 -/* 02A5EC 800299EC AE4D0000 */ sw $t5, ($s2) -/* 02A5F0 800299F0 3C0EFA00 */ lui $t6, 0xfa00 -/* 02A5F4 800299F4 AE0E0000 */ sw $t6, ($s0) -/* 02A5F8 800299F8 1000002F */ b .L80029AB8 -/* 02A5FC 800299FC AE0C0004 */ sw $t4, 4($s0) -.L80029A00: -/* 02A600 80029A00 02A02825 */ move $a1, $s5 -/* 02A604 80029A04 02203025 */ move $a2, $s1 -/* 02A608 80029A08 AFA900A8 */ sw $t1, 0xa8($sp) -/* 02A60C 80029A0C 0C01ED3A */ jal load_and_set_texture -/* 02A610 80029A10 AFAA0040 */ sw $t2, 0x40($sp) -/* 02A614 80029A14 8FA900A8 */ lw $t1, 0xa8($sp) -/* 02A618 80029A18 8FAA0040 */ lw $t2, 0x40($sp) -/* 02A61C 80029A1C 16A00002 */ bnez $s5, .L80029A28 -/* 02A620 80029A20 24110001 */ li $s1, 1 -/* 02A624 80029A24 00008825 */ move $s1, $zero -.L80029A28: -/* 02A628 80029A28 02DE1821 */ addu $v1, $s6, $fp -/* 02A62C 80029A2C 2678FFFF */ addiu $t8, $s3, -1 -/* 02A630 80029A30 001858C0 */ sll $t3, $t8, 3 -/* 02A634 80029A34 30790006 */ andi $t9, $v1, 6 -/* 02A638 80029A38 01796825 */ or $t5, $t3, $t9 -/* 02A63C 80029A3C 8E500000 */ lw $s0, ($s2) -/* 02A640 80029A40 0013C0C0 */ sll $t8, $s3, 3 -/* 02A644 80029A44 03135821 */ addu $t3, $t8, $s3 -/* 02A648 80029A48 31AE00FF */ andi $t6, $t5, 0xff -/* 02A64C 80029A4C 000E6400 */ sll $t4, $t6, 0x10 -/* 02A650 80029A50 000BC840 */ sll $t9, $t3, 1 -/* 02A654 80029A54 260F0008 */ addiu $t7, $s0, 8 -/* 02A658 80029A58 AE4F0000 */ sw $t7, ($s2) -/* 02A65C 80029A5C 272D0008 */ addiu $t5, $t9, 8 -/* 02A660 80029A60 3C010400 */ lui $at, 0x400 -/* 02A664 80029A64 01817825 */ or $t7, $t4, $at -/* 02A668 80029A68 31AEFFFF */ andi $t6, $t5, 0xffff -/* 02A66C 80029A6C 01EE6025 */ or $t4, $t7, $t6 -/* 02A670 80029A70 AE0C0000 */ sw $t4, ($s0) -/* 02A674 80029A74 AE030004 */ sw $v1, 4($s0) -/* 02A678 80029A78 8E500000 */ lw $s0, ($s2) -/* 02A67C 80029A7C 268BFFFF */ addiu $t3, $s4, -1 -/* 02A680 80029A80 000BC900 */ sll $t9, $t3, 4 -/* 02A684 80029A84 03316825 */ or $t5, $t9, $s1 -/* 02A688 80029A88 26180008 */ addiu $t8, $s0, 8 -/* 02A68C 80029A8C AE580000 */ sw $t8, ($s2) -/* 02A690 80029A90 31AF00FF */ andi $t7, $t5, 0xff -/* 02A694 80029A94 000F7400 */ sll $t6, $t7, 0x10 -/* 02A698 80029A98 0014C100 */ sll $t8, $s4, 4 -/* 02A69C 80029A9C 3C010500 */ lui $at, 0x500 -/* 02A6A0 80029AA0 01C16025 */ or $t4, $t6, $at -/* 02A6A4 80029AA4 330BFFFF */ andi $t3, $t8, 0xffff -/* 02A6A8 80029AA8 018BC825 */ or $t9, $t4, $t3 -/* 02A6AC 80029AAC 02FE6821 */ addu $t5, $s7, $fp -/* 02A6B0 80029AB0 AE0D0004 */ sw $t5, 4($s0) -/* 02A6B4 80029AB4 AE190000 */ sw $t9, ($s0) -.L80029AB8: -/* 02A6B8 80029AB8 8FAF0070 */ lw $t7, 0x70($sp) -.L80029ABC: -/* 02A6BC 80029ABC 25290001 */ addiu $t1, $t1, 1 -/* 02A6C0 80029AC0 152FFF1A */ bne $t1, $t7, .L8002972C -/* 02A6C4 80029AC4 254A000C */ addiu $t2, $t2, 0xc -.L80029AC8: -/* 02A6C8 80029AC8 8FBF003C */ lw $ra, 0x3c($sp) -/* 02A6CC 80029ACC 8FB00018 */ lw $s0, 0x18($sp) -/* 02A6D0 80029AD0 8FB1001C */ lw $s1, 0x1c($sp) -/* 02A6D4 80029AD4 8FB20020 */ lw $s2, 0x20($sp) -/* 02A6D8 80029AD8 8FB30024 */ lw $s3, 0x24($sp) -/* 02A6DC 80029ADC 8FB40028 */ lw $s4, 0x28($sp) -/* 02A6E0 80029AE0 8FB5002C */ lw $s5, 0x2c($sp) -/* 02A6E4 80029AE4 8FB60030 */ lw $s6, 0x30($sp) -/* 02A6E8 80029AE8 8FB70034 */ lw $s7, 0x34($sp) -/* 02A6EC 80029AEC 8FBE0038 */ lw $fp, 0x38($sp) -/* 02A6F0 80029AF0 03E00008 */ jr $ra -/* 02A6F4 80029AF4 27BD00B0 */ addiu $sp, $sp, 0xb0 - diff --git a/asm/non_matchings/unknown_0255E0/render_scene.s b/asm/non_matchings/unknown_0255E0/render_scene.s deleted file mode 100644 index 6585884d..00000000 --- a/asm/non_matchings/unknown_0255E0/render_scene.s +++ /dev/null @@ -1,524 +0,0 @@ -glabel render_scene -/* 025954 80024D54 27BDFF70 */ addiu $sp, $sp, -0x90 -/* 025958 80024D58 AFB10020 */ sw $s1, 0x20($sp) -/* 02595C 80024D5C AFBF002C */ sw $ra, 0x2c($sp) -/* 025960 80024D60 AFB30028 */ sw $s3, 0x28($sp) -/* 025964 80024D64 AFB20024 */ sw $s2, 0x24($sp) -/* 025968 80024D68 AFB0001C */ sw $s0, 0x1c($sp) -/* 02596C 80024D6C AFA40090 */ sw $a0, 0x90($sp) -/* 025970 80024D70 AFA50094 */ sw $a1, 0x94($sp) -/* 025974 80024D74 AFA60098 */ sw $a2, 0x98($sp) -/* 025978 80024D78 AFA7009C */ sw $a3, 0x9c($sp) -/* 02597C 80024D7C 8C8F0000 */ lw $t7, ($a0) -/* 025980 80024D80 3C118012 */ lui $s1, %hi(gSceneCurrDisplayList) # $s1, 0x8012 -/* 025984 80024D84 2631B0A0 */ addiu $s1, %lo(gSceneCurrDisplayList) # addiu $s1, $s1, -0x4f60 -/* 025988 80024D88 AE2F0000 */ sw $t7, ($s1) -/* 02598C 80024D8C 8CB90000 */ lw $t9, ($a1) -/* 025990 80024D90 3C128012 */ lui $s2, %hi(gSceneCurrMatrix) # $s2, 0x8012 -/* 025994 80024D94 2652B0A4 */ addiu $s2, %lo(gSceneCurrMatrix) # addiu $s2, $s2, -0x4f5c -/* 025998 80024D98 AE590000 */ sw $t9, ($s2) -/* 02599C 80024D9C 8CCB0000 */ lw $t3, ($a2) -/* 0259A0 80024DA0 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 -/* 0259A4 80024DA4 AC2BB0A8 */ sw $t3, %lo(gSceneCurrVertexList)($at) -/* 0259A8 80024DA8 8CED0000 */ lw $t5, ($a3) -/* 0259AC 80024DAC 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 -/* 0259B0 80024DB0 AC2DB0AC */ sw $t5, %lo(gSceneCurrTriList)($at) -/* 0259B4 80024DB4 3C018012 */ lui $at, %hi(D_8011B0DC) # $at, 0x8012 -/* 0259B8 80024DB8 240E0001 */ li $t6, 1 -/* 0259BC 80024DBC AC2EB0DC */ sw $t6, %lo(D_8011B0DC)($at) -/* 0259C0 80024DC0 3C018012 */ lui $at, %hi(D_8011B0C4) # $at, 0x8012 -/* 0259C4 80024DC4 AC20B0C4 */ sw $zero, %lo(D_8011B0C4)($at) -/* 0259C8 80024DC8 3C018012 */ lui $at, %hi(D_8011B0C0) # $at, 0x8012 -/* 0259CC 80024DCC AC20B0C0 */ sw $zero, %lo(D_8011B0C0)($at) -/* 0259D0 80024DD0 3C048012 */ lui $a0, %hi(D_8011D37C) # $a0, 0x8012 -/* 0259D4 80024DD4 3C018012 */ lui $at, %hi(gIsNearCurrBBox) # $at, 0x8012 -/* 0259D8 80024DD8 8C84D37C */ lw $a0, %lo(D_8011D37C)($a0) -/* 0259DC 80024DDC 0C01994B */ jal set_active_viewports_and_object_stack_cap -/* 0259E0 80024DE0 AC20B0BC */ sw $zero, %lo(gIsNearCurrBBox)($at) -/* 0259E4 80024DE4 0C01BAA8 */ jal is_game_paused -/* 0259E8 80024DE8 00409825 */ move $s3, $v0 -/* 0259EC 80024DEC 10400003 */ beqz $v0, .L80024DFC -/* 0259F0 80024DF0 3C188012 */ lui $t8, %hi(D_8011D384) # $t8, 0x8012 -/* 0259F4 80024DF4 10000004 */ b .L80024E08 -/* 0259F8 80024DF8 AFA00084 */ sw $zero, 0x84($sp) -.L80024DFC: -/* 0259FC 80024DFC 8FAF00A0 */ lw $t7, 0xa0($sp) -/* 025A00 80024E00 00000000 */ nop -/* 025A04 80024E04 AFAF0084 */ sw $t7, 0x84($sp) -.L80024E08: -/* 025A08 80024E08 8F18D384 */ lw $t8, %lo(D_8011D384)($t8) -/* 025A0C 80024E0C 00000000 */ nop -/* 025A10 80024E10 13000005 */ beqz $t8, .L80024E28 -/* 025A14 80024E14 8FA600A0 */ lw $a2, 0xa0($sp) -/* 025A18 80024E18 8FA40084 */ lw $a0, 0x84($sp) -/* 025A1C 80024E1C 0C02E706 */ jal func_800B9C18 -/* 025A20 80024E20 00000000 */ nop -/* 025A24 80024E24 8FA600A0 */ lw $a2, 0xa0($sp) -.L80024E28: -/* 025A28 80024E28 24040002 */ li $a0, 2 -/* 025A2C 80024E2C 0C00B637 */ jal func_8002D8DC -/* 025A30 80024E30 24050002 */ li $a1, 2 -/* 025A34 80024E34 3C03800E */ lui $v1, %hi(gCurrentLevelHeader2) # $v1, 0x800e -/* 025A38 80024E38 8C63C91C */ lw $v1, %lo(gCurrentLevelHeader2)($v1) -/* 025A3C 80024E3C 00001025 */ move $v0, $zero -/* 025A40 80024E40 0062C821 */ addu $t9, $v1, $v0 -.L80024E44: -/* 025A44 80024E44 8F240074 */ lw $a0, 0x74($t9) -/* 025A48 80024E48 2401FFFF */ li $at, -1 -/* 025A4C 80024E4C 10810008 */ beq $a0, $at, .L80024E70 -/* 025A50 80024E50 00000000 */ nop -/* 025A54 80024E54 8FA50084 */ lw $a1, 0x84($sp) -/* 025A58 80024E58 0C01FC93 */ jal func_8007F24C -/* 025A5C 80024E5C AFA20034 */ sw $v0, 0x34($sp) -/* 025A60 80024E60 3C03800E */ lui $v1, %hi(gCurrentLevelHeader2) # $v1, 0x800e -/* 025A64 80024E64 8C63C91C */ lw $v1, %lo(gCurrentLevelHeader2)($v1) -/* 025A68 80024E68 8FA20034 */ lw $v0, 0x34($sp) -/* 025A6C 80024E6C 00000000 */ nop -.L80024E70: -/* 025A70 80024E70 24420004 */ addiu $v0, $v0, 4 -/* 025A74 80024E74 2841001C */ slti $at, $v0, 0x1c -/* 025A78 80024E78 1420FFF2 */ bnez $at, .L80024E44 -/* 025A7C 80024E7C 0062C821 */ addu $t9, $v1, $v0 -/* 025A80 80024E80 8C6400AC */ lw $a0, 0xac($v1) -/* 025A84 80024E84 2401FFFF */ li $at, -1 -/* 025A88 80024E88 10810007 */ beq $a0, $at, .L80024EA8 -/* 025A8C 80024E8C 00000000 */ nop -/* 025A90 80024E90 8FA50084 */ lw $a1, 0x84($sp) -/* 025A94 80024E94 0C01FD18 */ jal update_pulsating_light_data -/* 025A98 80024E98 00000000 */ nop -/* 025A9C 80024E9C 3C03800E */ lui $v1, %hi(gCurrentLevelHeader2) # $v1, 0x800e -/* 025AA0 80024EA0 8C63C91C */ lw $v1, %lo(gCurrentLevelHeader2)($v1) -/* 025AA4 80024EA4 00000000 */ nop -.L80024EA8: -/* 025AA8 80024EA8 3C048012 */ lui $a0, %hi(D_8011B0E0) # $a0, 0x8012 -/* 025AAC 80024EAC 2484B0E0 */ addiu $a0, %lo(D_8011B0E0) # addiu $a0, $a0, -0x4f20 -/* 025AB0 80024EB0 24090001 */ li $t1, 1 -/* 025AB4 80024EB4 A0890000 */ sb $t1, ($a0) -/* 025AB8 80024EB8 8062004C */ lb $v0, 0x4c($v1) -/* 025ABC 80024EBC 24010007 */ li $at, 7 -/* 025AC0 80024EC0 14410007 */ bne $v0, $at, .L80024EE0 -/* 025AC4 80024EC4 24010006 */ li $at, 6 -/* 025AC8 80024EC8 A0800000 */ sb $zero, ($a0) -/* 025ACC 80024ECC 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012 -/* 025AD0 80024ED0 AC29B0FC */ sw $t1, %lo(D_8011B0FC)($at) -/* 025AD4 80024ED4 8062004C */ lb $v0, 0x4c($v1) -/* 025AD8 80024ED8 00000000 */ nop -/* 025ADC 80024EDC 24010006 */ li $at, 6 -.L80024EE0: -/* 025AE0 80024EE0 10410004 */ beq $v0, $at, .L80024EF4 -/* 025AE4 80024EE4 00000000 */ nop -/* 025AE8 80024EE8 806A00BD */ lb $t2, 0xbd($v1) -/* 025AEC 80024EEC 00000000 */ nop -/* 025AF0 80024EF0 11400002 */ beqz $t2, .L80024EFC -.L80024EF4: -/* 025AF4 80024EF4 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012 -/* 025AF8 80024EF8 AC29B0FC */ sw $t1, %lo(D_8011B0FC)($at) -.L80024EFC: -/* 025AFC 80024EFC 806B0049 */ lb $t3, 0x49($v1) -/* 025B00 80024F00 2401FFFF */ li $at, -1 -/* 025B04 80024F04 15610025 */ bne $t3, $at, .L80024F9C -/* 025B08 80024F08 00000000 */ nop -/* 025B0C 80024F0C 8FA70084 */ lw $a3, 0x84($sp) -/* 025B10 80024F10 806F00A2 */ lb $t7, 0xa2($v1) -/* 025B14 80024F14 8C6C00A4 */ lw $t4, 0xa4($v1) -/* 025B18 80024F18 01E70019 */ multu $t7, $a3 -/* 025B1C 80024F1C 91880000 */ lbu $t0, ($t4) -/* 025B20 80024F20 846E00A8 */ lh $t6, 0xa8($v1) -/* 025B24 80024F24 00086A40 */ sll $t5, $t0, 9 -/* 025B28 80024F28 25A8FFFF */ addiu $t0, $t5, -1 -/* 025B2C 80024F2C 3C02800E */ lui $v0, %hi(gCurrentLevelHeader2) # $v0, 0x800e -/* 025B30 80024F30 2442C91C */ addiu $v0, %lo(gCurrentLevelHeader2) # addiu $v0, $v0, -0x36e4 -/* 025B34 80024F34 3C058012 */ lui $a1, %hi(D_8011B114) # $a1, 0x8012 -/* 025B38 80024F38 3C068012 */ lui $a2, %hi(D_8011B110) # $a2, 0x8012 -/* 025B3C 80024F3C 24C6B110 */ addiu $a2, %lo(D_8011B110) # addiu $a2, $a2, -0x4ef0 -/* 025B40 80024F40 24A5B114 */ addiu $a1, %lo(D_8011B114) # addiu $a1, $a1, -0x4eec -/* 025B44 80024F44 0000C012 */ mflo $t8 -/* 025B48 80024F48 01D8C821 */ addu $t9, $t6, $t8 -/* 025B4C 80024F4C 03285024 */ and $t2, $t9, $t0 -/* 025B50 80024F50 A46A00A8 */ sh $t2, 0xa8($v1) -/* 025B54 80024F54 8C430000 */ lw $v1, ($v0) -/* 025B58 80024F58 00000000 */ nop -/* 025B5C 80024F5C 806F00A3 */ lb $t7, 0xa3($v1) -/* 025B60 80024F60 8C6B00A4 */ lw $t3, 0xa4($v1) -/* 025B64 80024F64 01E70019 */ multu $t7, $a3 -/* 025B68 80024F68 91680001 */ lbu $t0, 1($t3) -/* 025B6C 80024F6C 846D00AA */ lh $t5, 0xaa($v1) -/* 025B70 80024F70 00086240 */ sll $t4, $t0, 9 -/* 025B74 80024F74 2588FFFF */ addiu $t0, $t4, -1 -/* 025B78 80024F78 00007012 */ mflo $t6 -/* 025B7C 80024F7C 01AEC021 */ addu $t8, $t5, $t6 -/* 025B80 80024F80 0308C824 */ and $t9, $t8, $t0 -/* 025B84 80024F84 A47900AA */ sh $t9, 0xaa($v1) -/* 025B88 80024F88 8C4A0000 */ lw $t2, ($v0) -/* 025B8C 80024F8C 00000000 */ nop -/* 025B90 80024F90 8D4400A4 */ lw $a0, 0xa4($t2) -/* 025B94 80024F94 0C01FBE0 */ jal func_8007EF80 -/* 025B98 80024F98 00000000 */ nop -.L80024F9C: -/* 025B9C 80024F9C 0C0270C3 */ jal get_filtered_cheats -/* 025BA0 80024FA0 A3A00083 */ sb $zero, 0x83($sp) -/* 025BA4 80024FA4 304B0004 */ andi $t3, $v0, 4 -/* 025BA8 80024FA8 11600003 */ beqz $t3, .L80024FB8 -/* 025BAC 80024FAC 3C0FA000 */ lui $t7, %hi(D_A0000200) # $t7, 0xa000 -/* 025BB0 80024FB0 240C0001 */ li $t4, 1 -/* 025BB4 80024FB4 A3AC0083 */ sb $t4, 0x83($sp) -.L80024FB8: -/* 025BB8 80024FB8 8DED0200 */ lw $t5, %lo(D_A0000200)($t7) -/* 025BBC 80024FBC 3C01AC29 */ lui $at, 0xac29 -/* 025BC0 80024FC0 11A10002 */ beq $t5, $at, .L80024FCC -/* 025BC4 80024FC4 240E0001 */ li $t6, 1 -/* 025BC8 80024FC8 A3AE0083 */ sb $t6, 0x83($sp) -.L80024FCC: -/* 025BCC 80024FCC 0C01ECF4 */ jal reset_render_settings -/* 025BD0 80024FD0 02202025 */ move $a0, $s1 -/* 025BD4 80024FD4 8E220000 */ lw $v0, ($s1) -/* 025BD8 80024FD8 3C19BC00 */ lui $t9, (0xBC000002 >> 16) # lui $t9, 0xbc00 -/* 025BDC 80024FDC 24580008 */ addiu $t8, $v0, 8 -/* 025BE0 80024FE0 AE380000 */ sw $t8, ($s1) -/* 025BE4 80024FE4 37390002 */ ori $t9, (0xBC000002 & 0xFFFF) # ori $t9, $t9, 2 -/* 025BE8 80024FE8 AC590000 */ sw $t9, ($v0) -/* 025BEC 80024FEC AC400004 */ sw $zero, 4($v0) -/* 025BF0 80024FF0 8E220000 */ lw $v0, ($s1) -/* 025BF4 80024FF4 3C0BB600 */ lui $t3, 0xb600 -/* 025BF8 80024FF8 244A0008 */ addiu $t2, $v0, 8 -/* 025BFC 80024FFC AE2A0000 */ sw $t2, ($s1) -/* 025C00 80025000 240C1000 */ li $t4, 4096 -/* 025C04 80025004 AC4C0004 */ sw $t4, 4($v0) -/* 025C08 80025008 AC4B0000 */ sw $t3, ($v0) -/* 025C0C 8002500C 8E220000 */ lw $v0, ($s1) -/* 025C10 80025010 3C0DF900 */ lui $t5, 0xf900 -/* 025C14 80025014 244F0008 */ addiu $t7, $v0, 8 -/* 025C18 80025018 AE2F0000 */ sw $t7, ($s1) -/* 025C1C 8002501C 240E0064 */ li $t6, 100 -/* 025C20 80025020 AC4E0004 */ sw $t6, 4($v0) -/* 025C24 80025024 AC4D0000 */ sw $t5, ($v0) -/* 025C28 80025028 8E220000 */ lw $v0, ($s1) -/* 025C2C 8002502C 240AFFFF */ li $t2, -1 -/* 025C30 80025030 24580008 */ addiu $t8, $v0, 8 -/* 025C34 80025034 AE380000 */ sw $t8, ($s1) -/* 025C38 80025038 3C19FA00 */ lui $t9, 0xfa00 -/* 025C3C 8002503C AC590000 */ sw $t9, ($v0) -/* 025C40 80025040 AC4A0004 */ sw $t2, 4($v0) -/* 025C44 80025044 8E220000 */ lw $v0, ($s1) -/* 025C48 80025048 240FFF00 */ li $t7, -256 -/* 025C4C 8002504C 244B0008 */ addiu $t3, $v0, 8 -/* 025C50 80025050 AE2B0000 */ sw $t3, ($s1) -/* 025C54 80025054 3C0CFB00 */ lui $t4, 0xfb00 -/* 025C58 80025058 AC4C0000 */ sw $t4, ($v0) -/* 025C5C 8002505C 0C02B503 */ jal func_800AD40C -/* 025C60 80025060 AC4F0004 */ sw $t7, 4($v0) -/* 025C64 80025064 8FA50084 */ lw $a1, 0x84($sp) -/* 025C68 80025068 0C00C20E */ jal func_80030838 -/* 025C6C 8002506C 02602025 */ move $a0, $s3 -/* 025C70 80025070 8FA40084 */ lw $a0, 0x84($sp) -/* 025C74 80025074 0C02BD01 */ jal func_800AF404 -/* 025C78 80025078 00000000 */ nop -/* 025C7C 8002507C 3C0D800E */ lui $t5, %hi(gCurrentLevelModel) # $t5, 0x800e -/* 025C80 80025080 8DADC918 */ lw $t5, %lo(gCurrentLevelModel)($t5) -/* 025C84 80025084 8FA40084 */ lw $a0, 0x84($sp) -/* 025C88 80025088 85AE001E */ lh $t6, 0x1e($t5) -/* 025C8C 8002508C 00000000 */ nop -/* 025C90 80025090 19C00003 */ blez $t6, .L800250A0 -/* 025C94 80025094 00000000 */ nop -/* 025C98 80025098 0C009F89 */ jal func_80027E24 -/* 025C9C 8002509C 00000000 */ nop -.L800250A0: -/* 025CA0 800250A0 3C108012 */ lui $s0, %hi(D_8011B0B4) # $s0, 0x8012 -/* 025CA4 800250A4 2610B0B4 */ addiu $s0, %lo(D_8011B0B4) # addiu $s0, $s0, -0x4f4c -/* 025CA8 800250A8 0013082A */ slt $at, $zero, $s3 -/* 025CAC 800250AC AE000000 */ sw $zero, ($s0) -/* 025CB0 800250B0 1020007E */ beqz $at, .L800252AC -/* 025CB4 800250B4 00001025 */ move $v0, $zero -.L800250B8: -/* 025CB8 800250B8 14400009 */ bnez $v0, .L800250E0 -/* 025CBC 800250BC 83B90083 */ lb $t9, 0x83($sp) -/* 025CC0 800250C0 0C003861 */ jal func_8000E184 -/* 025CC4 800250C4 00000000 */ nop -/* 025CC8 800250C8 10400004 */ beqz $v0, .L800250DC -/* 025CCC 800250CC 24010001 */ li $at, 1 -/* 025CD0 800250D0 16610002 */ bne $s3, $at, .L800250DC -/* 025CD4 800250D4 24180001 */ li $t8, 1 -/* 025CD8 800250D8 AE180000 */ sw $t8, ($s0) -.L800250DC: -/* 025CDC 800250DC 83B90083 */ lb $t9, 0x83($sp) -.L800250E0: -/* 025CE0 800250E0 3C0BB700 */ lui $t3, 0xb700 -/* 025CE4 800250E4 13200007 */ beqz $t9, .L80025104 -/* 025CE8 800250E8 00000000 */ nop -/* 025CEC 800250EC 8E220000 */ lw $v0, ($s1) -/* 025CF0 800250F0 240C1000 */ li $t4, 4096 -/* 025CF4 800250F4 244A0008 */ addiu $t2, $v0, 8 -/* 025CF8 800250F8 AE2A0000 */ sw $t2, ($s1) -/* 025CFC 800250FC AC4C0004 */ sw $t4, 4($v0) -/* 025D00 80025100 AC4B0000 */ sw $t3, ($v0) -.L80025104: -/* 025D04 80025104 8E040000 */ lw $a0, ($s0) -/* 025D08 80025108 0C00C24F */ jal func_8003093C -/* 025D0C 8002510C 00000000 */ nop -/* 025D10 80025110 8E220000 */ lw $v0, ($s1) -/* 025D14 80025114 3C0DE700 */ lui $t5, 0xe700 -/* 025D18 80025118 244F0008 */ addiu $t7, $v0, 8 -/* 025D1C 8002511C AE2F0000 */ sw $t7, ($s1) -/* 025D20 80025120 AC400004 */ sw $zero, 4($v0) -/* 025D24 80025124 AC4D0000 */ sw $t5, ($v0) -/* 025D28 80025128 8E040000 */ lw $a0, ($s0) -/* 025D2C 8002512C 0C01997A */ jal set_object_stack_pos -/* 025D30 80025130 00000000 */ nop -/* 025D34 80025134 02202025 */ move $a0, $s1 -/* 025D38 80025138 0C019B37 */ jal func_80066CDC -/* 025D3C 8002513C 02402825 */ move $a1, $s2 -/* 025D40 80025140 0C00A8C7 */ jal func_8002A31C -/* 025D44 80025144 00000000 */ nop -/* 025D48 80025148 2A610002 */ slti $at, $s3, 2 -/* 025D4C 8002514C 10200013 */ beqz $at, .L8002519C -/* 025D50 80025150 02202025 */ move $a0, $s1 -/* 025D54 80025154 02202025 */ move $a0, $s1 -/* 025D58 80025158 0C01A102 */ jal func_80068408 -/* 025D5C 8002515C 02402825 */ move $a1, $s2 -/* 025D60 80025160 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e -/* 025D64 80025164 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6) -/* 025D68 80025168 2401FFFF */ li $at, -1 -/* 025D6C 8002516C 81D80049 */ lb $t8, 0x49($t6) -/* 025D70 80025170 00000000 */ nop -/* 025D74 80025174 17010005 */ bne $t8, $at, .L8002518C -/* 025D78 80025178 00000000 */ nop -/* 025D7C 8002517C 0C00A014 */ jal func_80028050 -/* 025D80 80025180 00000000 */ nop -/* 025D84 80025184 10000010 */ b .L800251C8 -/* 025D88 80025188 8E220000 */ lw $v0, ($s1) -.L8002518C: -/* 025D8C 8002518C 0C00A304 */ jal render_skydome -/* 025D90 80025190 00000000 */ nop -/* 025D94 80025194 1000000C */ b .L800251C8 -/* 025D98 80025198 8E220000 */ lw $v0, ($s1) -.L8002519C: -/* 025D9C 8002519C 0C01A01F */ jal func_8006807C -/* 025DA0 800251A0 02402825 */ move $a1, $s2 -/* 025DA4 800251A4 0C00A26E */ jal draw_gradient_background -/* 025DA8 800251A8 00000000 */ nop -/* 025DAC 800251AC 02202025 */ move $a0, $s1 -/* 025DB0 800251B0 0C019F4F */ jal func_80067D3C -/* 025DB4 800251B4 02402825 */ move $a1, $s2 -/* 025DB8 800251B8 02202025 */ move $a0, $s1 -/* 025DBC 800251BC 0C01A102 */ jal func_80068408 -/* 025DC0 800251C0 02402825 */ move $a1, $s2 -/* 025DC4 800251C4 8E220000 */ lw $v0, ($s1) -.L800251C8: -/* 025DC8 800251C8 3C0AE700 */ lui $t2, 0xe700 -/* 025DCC 800251CC 24590008 */ addiu $t9, $v0, 8 -/* 025DD0 800251D0 AE390000 */ sw $t9, ($s1) -/* 025DD4 800251D4 AC400004 */ sw $zero, 4($v0) -/* 025DD8 800251D8 AC4A0000 */ sw $t2, ($v0) -/* 025DDC 800251DC 8FA400A0 */ lw $a0, 0xa0($sp) -/* 025DE0 800251E0 0C00A334 */ jal func_80028CD0 -/* 025DE4 800251E4 00000000 */ nop -/* 025DE8 800251E8 2404FFFF */ li $a0, -1 -/* 025DEC 800251EC 0C02ACC2 */ jal func_800AB308 -/* 025DF0 800251F0 2405FE00 */ li $a1, -512 -/* 025DF4 800251F4 3C0B800E */ lui $t3, %hi(gCurrentLevelHeader2) # $t3, 0x800e -/* 025DF8 800251F8 8D6BC91C */ lw $t3, %lo(gCurrentLevelHeader2)($t3) -/* 025DFC 800251FC 2A610002 */ slti $at, $s3, 2 -/* 025E00 80025200 856C0090 */ lh $t4, 0x90($t3) -/* 025E04 80025204 00000000 */ nop -/* 025E08 80025208 1980000B */ blez $t4, .L80025238 -/* 025E0C 8002520C 00000000 */ nop -/* 025E10 80025210 10200009 */ beqz $at, .L80025238 -/* 025E14 80025214 02202025 */ move $a0, $s1 -/* 025E18 80025218 8FAF0084 */ lw $t7, 0x84($sp) -/* 025E1C 8002521C 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 -/* 025E20 80025220 3C078012 */ lui $a3, %hi(gSceneCurrTriList) # $a3, 0x8012 -/* 025E24 80025224 24E7B0AC */ addiu $a3, %lo(gSceneCurrTriList) # addiu $a3, $a3, -0x4f54 -/* 025E28 80025228 24C6B0A8 */ addiu $a2, %lo(gSceneCurrVertexList) # addiu $a2, $a2, -0x4f58 -/* 025E2C 8002522C 02402825 */ move $a1, $s2 -/* 025E30 80025230 0C02AF9A */ jal process_weather -/* 025E34 80025234 AFAF0010 */ sw $t7, 0x10($sp) -.L80025238: -/* 025E38 80025238 0C01A748 */ jal get_active_camera_segment -/* 025E3C 8002523C 00000000 */ nop -/* 025E40 80025240 0C02B40C */ jal func_800AD030 -/* 025E44 80025244 00402025 */ move $a0, $v0 -/* 025E48 80025248 0C01A748 */ jal get_active_camera_segment -/* 025E4C 8002524C 00000000 */ nop -/* 025E50 80025250 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 -/* 025E54 80025254 24C6B0A8 */ addiu $a2, %lo(gSceneCurrVertexList) # addiu $a2, $a2, -0x4f58 -/* 025E58 80025258 02202025 */ move $a0, $s1 -/* 025E5C 8002525C 02402825 */ move $a1, $s2 -/* 025E60 80025260 0C02B288 */ jal func_800ACA20 -/* 025E64 80025264 00403825 */ move $a3, $v0 -/* 025E68 80025268 8E040000 */ lw $a0, ($s0) -/* 025E6C 8002526C 0C006EC6 */ jal get_racer_object_by_port -/* 025E70 80025270 00000000 */ nop -/* 025E74 80025274 8FAD00A0 */ lw $t5, 0xa0($sp) -/* 025E78 80025278 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 -/* 025E7C 8002527C 24C6B0A8 */ addiu $a2, %lo(gSceneCurrVertexList) # addiu $a2, $a2, -0x4f58 -/* 025E80 80025280 02202025 */ move $a0, $s1 -/* 025E84 80025284 02402825 */ move $a1, $s2 -/* 025E88 80025288 00403825 */ move $a3, $v0 -/* 025E8C 8002528C 0C028068 */ jal render_hud -/* 025E90 80025290 AFAD0010 */ sw $t5, 0x10($sp) -/* 025E94 80025294 8E0E0000 */ lw $t6, ($s0) -/* 025E98 80025298 00000000 */ nop -/* 025E9C 8002529C 25C20001 */ addiu $v0, $t6, 1 -/* 025EA0 800252A0 0053082A */ slt $at, $v0, $s3 -/* 025EA4 800252A4 1420FF84 */ bnez $at, .L800250B8 -/* 025EA8 800252A8 AE020000 */ sw $v0, ($s0) -.L800252AC: -/* 025EAC 800252AC 24010003 */ li $at, 3 -/* 025EB0 800252B0 1661006C */ bne $s3, $at, .L80025464 -/* 025EB4 800252B4 00000000 */ nop -/* 025EB8 800252B8 0C01AF66 */ jal get_current_level_race_type -/* 025EBC 800252BC 00000000 */ nop -/* 025EC0 800252C0 24010042 */ li $at, 66 -/* 025EC4 800252C4 10410067 */ beq $v0, $at, .L80025464 -/* 025EC8 800252C8 00000000 */ nop -/* 025ECC 800252CC 0C01AF66 */ jal get_current_level_race_type -/* 025ED0 800252D0 00000000 */ nop -/* 025ED4 800252D4 24010040 */ li $at, 64 -/* 025ED8 800252D8 10410062 */ beq $v0, $at, .L80025464 -/* 025EDC 800252DC 00000000 */ nop -/* 025EE0 800252E0 0C01AF66 */ jal get_current_level_race_type -/* 025EE4 800252E4 00000000 */ nop -/* 025EE8 800252E8 24010041 */ li $at, 65 -/* 025EEC 800252EC 1041005D */ beq $v0, $at, .L80025464 -/* 025EF0 800252F0 00000000 */ nop -/* 025EF4 800252F4 0C02A116 */ jal get_multiplayer_hud_setting -/* 025EF8 800252F8 00000000 */ nop -/* 025EFC 800252FC 14400054 */ bnez $v0, .L80025450 -/* 025F00 80025300 00000000 */ nop -/* 025F04 80025304 83B90083 */ lb $t9, 0x83($sp) -/* 025F08 80025308 00000000 */ nop -/* 025F0C 8002530C 13200008 */ beqz $t9, .L80025330 -/* 025F10 80025310 00000000 */ nop -/* 025F14 80025314 8E220000 */ lw $v0, ($s1) -/* 025F18 80025318 3C0BB700 */ lui $t3, 0xb700 -/* 025F1C 8002531C 244A0008 */ addiu $t2, $v0, 8 -/* 025F20 80025320 AE2A0000 */ sw $t2, ($s1) -/* 025F24 80025324 240C1000 */ li $t4, 4096 -/* 025F28 80025328 AC4C0004 */ sw $t4, 4($v0) -/* 025F2C 8002532C AC4B0000 */ sw $t3, ($v0) -.L80025330: -/* 025F30 80025330 0C00C24F */ jal func_8003093C -/* 025F34 80025334 24040003 */ li $a0, 3 -/* 025F38 80025338 8E220000 */ lw $v0, ($s1) -/* 025F3C 8002533C 3C0DE700 */ lui $t5, 0xe700 -/* 025F40 80025340 244F0008 */ addiu $t7, $v0, 8 -/* 025F44 80025344 AE2F0000 */ sw $t7, ($s1) -/* 025F48 80025348 24040003 */ li $a0, 3 -/* 025F4C 8002534C AC400004 */ sw $zero, 4($v0) -/* 025F50 80025350 0C01997A */ jal set_object_stack_pos -/* 025F54 80025354 AC4D0000 */ sw $t5, ($v0) -/* 025F58 80025358 0C019948 */ jal disable_cutscene_camera -/* 025F5C 8002535C 00000000 */ nop -/* 025F60 80025360 8FA400A0 */ lw $a0, 0xa0($sp) -/* 025F64 80025364 0C009E3A */ jal func_800278E8 -/* 025F68 80025368 00000000 */ nop -/* 025F6C 8002536C 02202025 */ move $a0, $s1 -/* 025F70 80025370 0C019B37 */ jal func_80066CDC -/* 025F74 80025374 02402825 */ move $a1, $s2 -/* 025F78 80025378 0C00A8C7 */ jal func_8002A31C -/* 025F7C 8002537C 00000000 */ nop -/* 025F80 80025380 02202025 */ move $a0, $s1 -/* 025F84 80025384 0C01A01F */ jal func_8006807C -/* 025F88 80025388 02402825 */ move $a1, $s2 -/* 025F8C 8002538C 0C00A26E */ jal draw_gradient_background -/* 025F90 80025390 00000000 */ nop -/* 025F94 80025394 02202025 */ move $a0, $s1 -/* 025F98 80025398 0C019F4F */ jal func_80067D3C -/* 025F9C 8002539C 02402825 */ move $a1, $s2 -/* 025FA0 800253A0 02202025 */ move $a0, $s1 -/* 025FA4 800253A4 0C01A102 */ jal func_80068408 -/* 025FA8 800253A8 02402825 */ move $a1, $s2 -/* 025FAC 800253AC 8E220000 */ lw $v0, ($s1) -/* 025FB0 800253B0 3C18E700 */ lui $t8, 0xe700 -/* 025FB4 800253B4 244E0008 */ addiu $t6, $v0, 8 -/* 025FB8 800253B8 AE2E0000 */ sw $t6, ($s1) -/* 025FBC 800253BC AC400004 */ sw $zero, 4($v0) -/* 025FC0 800253C0 AC580000 */ sw $t8, ($v0) -/* 025FC4 800253C4 8FA400A0 */ lw $a0, 0xa0($sp) -/* 025FC8 800253C8 0C00A334 */ jal func_80028CD0 -/* 025FCC 800253CC 00000000 */ nop -/* 025FD0 800253D0 2404FFFF */ li $a0, -1 -/* 025FD4 800253D4 0C02ACC2 */ jal func_800AB308 -/* 025FD8 800253D8 2405FE00 */ li $a1, -512 -/* 025FDC 800253DC 0C01A748 */ jal get_active_camera_segment -/* 025FE0 800253E0 00000000 */ nop -/* 025FE4 800253E4 0C02B40C */ jal func_800AD030 -/* 025FE8 800253E8 00402025 */ move $a0, $v0 -/* 025FEC 800253EC 0C01A748 */ jal get_active_camera_segment -/* 025FF0 800253F0 00000000 */ nop -/* 025FF4 800253F4 3C068012 */ lui $a2, %hi(gSceneCurrVertexList) # $a2, 0x8012 -/* 025FF8 800253F8 24C6B0A8 */ addiu $a2, %lo(gSceneCurrVertexList) # addiu $a2, $a2, -0x4f58 -/* 025FFC 800253FC 02202025 */ move $a0, $s1 -/* 026000 80025400 02402825 */ move $a1, $s2 -/* 026004 80025404 0C02B288 */ jal func_800ACA20 -/* 026008 80025408 00403825 */ move $a3, $v0 -/* 02600C 8002540C 0C0310BB */ jal set_text_font -/* 026010 80025410 00002025 */ move $a0, $zero -/* 026014 80025414 3C198000 */ lui $t9, %hi(osTvType) # $t9, 0x8000 -/* 026018 80025418 8F390300 */ lw $t9, %lo(osTvType)($t9) -/* 02601C 8002541C 02202025 */ move $a0, $s1 -/* 026020 80025420 17200004 */ bnez $t9, .L80025434 -/* 026024 80025424 3C07800E */ lui $a3, %hi(D_800E5DF0) # $a3, 0x800e -/* 026028 80025428 240500A6 */ li $a1, 166 -/* 02602C 8002542C 10000003 */ b .L8002543C -/* 026030 80025430 2406008A */ li $a2, 138 -.L80025434: -/* 026034 80025434 240500AA */ li $a1, 170 -/* 026038 80025438 2406007D */ li $a2, 125 -.L8002543C: -/* 02603C 8002543C 24E75DF0 */ addiu $a3, %lo(D_800E5DF0) # addiu $a3, $a3, 0x5df0 -/* 026040 80025440 0C031110 */ jal draw_text -/* 026044 80025444 AFA00010 */ sw $zero, 0x10($sp) -/* 026048 80025448 10000006 */ b .L80025464 -/* 02604C 8002544C 00000000 */ nop -.L80025450: -/* 026050 80025450 0C01997A */ jal set_object_stack_pos -/* 026054 80025454 24040003 */ li $a0, 3 -/* 026058 80025458 8FA400A0 */ lw $a0, 0xa0($sp) -/* 02605C 8002545C 0C009E3A */ jal func_800278E8 -/* 026060 80025460 00000000 */ nop -.L80025464: -/* 026064 80025464 0C01A0AB */ jal func_800682AC -/* 026068 80025468 02202025 */ move $a0, $s1 -/* 02606C 8002546C 8E220000 */ lw $v0, ($s1) -/* 026070 80025470 3C0BE700 */ lui $t3, 0xe700 -/* 026074 80025474 244A0008 */ addiu $t2, $v0, 8 -/* 026078 80025478 AE2A0000 */ sw $t2, ($s1) -/* 02607C 8002547C AC400004 */ sw $zero, 4($v0) -/* 026080 80025480 AC4B0000 */ sw $t3, ($v0) -/* 026084 80025484 8E220000 */ lw $v0, ($s1) -/* 026088 80025488 3C0FBC00 */ lui $t7, (0xBC000002 >> 16) # lui $t7, 0xbc00 -/* 02608C 8002548C 244C0008 */ addiu $t4, $v0, 8 -/* 026090 80025490 AE2C0000 */ sw $t4, ($s1) -/* 026094 80025494 3C058012 */ lui $a1, %hi(D_8011B0C8) # $a1, 0x8012 -/* 026098 80025498 35EF0002 */ ori $t7, (0xBC000002 & 0xFFFF) # ori $t7, $t7, 2 -/* 02609C 8002549C 24A5B0C8 */ addiu $a1, %lo(D_8011B0C8) # addiu $a1, $a1, -0x4f38 -/* 0260A0 800254A0 AC4F0000 */ sw $t7, ($v0) -/* 0260A4 800254A4 AC400004 */ sw $zero, 4($v0) -/* 0260A8 800254A8 8CAD0000 */ lw $t5, ($a1) -/* 0260AC 800254AC 240E0001 */ li $t6, 1 -/* 0260B0 800254B0 8FAA0090 */ lw $t2, 0x90($sp) -/* 0260B4 800254B4 8E390000 */ lw $t9, ($s1) -/* 0260B8 800254B8 01CDC023 */ subu $t8, $t6, $t5 -/* 0260BC 800254BC ACB80000 */ sw $t8, ($a1) -/* 0260C0 800254C0 AD590000 */ sw $t9, ($t2) -/* 0260C4 800254C4 8FAC0094 */ lw $t4, 0x94($sp) -/* 0260C8 800254C8 8E4B0000 */ lw $t3, ($s2) -/* 0260CC 800254CC 3C0F8012 */ lui $t7, %hi(gSceneCurrVertexList) # $t7, 0x8012 -/* 0260D0 800254D0 AD8B0000 */ sw $t3, ($t4) -/* 0260D4 800254D4 8FAE0098 */ lw $t6, 0x98($sp) -/* 0260D8 800254D8 8DEFB0A8 */ lw $t7, %lo(gSceneCurrVertexList)($t7) -/* 0260DC 800254DC 3C0D8012 */ lui $t5, %hi(gSceneCurrTriList) # $t5, 0x8012 -/* 0260E0 800254E0 ADCF0000 */ sw $t7, ($t6) -/* 0260E4 800254E4 8FB8009C */ lw $t8, 0x9c($sp) -/* 0260E8 800254E8 8DADB0AC */ lw $t5, %lo(gSceneCurrTriList)($t5) -/* 0260EC 800254EC 00000000 */ nop -/* 0260F0 800254F0 AF0D0000 */ sw $t5, ($t8) -/* 0260F4 800254F4 8FBF002C */ lw $ra, 0x2c($sp) -/* 0260F8 800254F8 8FB30028 */ lw $s3, 0x28($sp) -/* 0260FC 800254FC 8FB20024 */ lw $s2, 0x24($sp) -/* 026100 80025500 8FB10020 */ lw $s1, 0x20($sp) -/* 026104 80025504 8FB0001C */ lw $s0, 0x1c($sp) -/* 026108 80025508 03E00008 */ jr $ra -/* 02610C 8002550C 27BD0090 */ addiu $sp, $sp, 0x90 - diff --git a/include/structs.h b/include/structs.h index 1f09a1f5..93c0b192 100644 --- a/include/structs.h +++ b/include/structs.h @@ -39,6 +39,17 @@ typedef struct Vec3s { }; } Vec3s; +typedef struct Vec3i { + union { + struct { + s32 x; + s32 y; + s32 z; + }; + s32 i[3]; + }; +} Vec3i; + /* Size: 0x20 bytes */ typedef struct TextureHeader { /* 0x00 */ u8 width; @@ -362,8 +373,8 @@ typedef struct LevelHeader { /* 0xA2 */ s8 unkA2; /* 0xA3 */ s8 unkA3; /* 0xA4 */ TextureHeader *unkA4; - /* 0xA8 */ u16 unkA8; - /* 0xAA */ u16 unkAA; + /* 0xA8 */ s16 unkA8; + /* 0xAA */ s16 unkAA; /* 0xAC */ PulsatingLightData *pulseLightData; /* 0xB0 */ s16 unkB0; @@ -377,7 +388,7 @@ typedef struct LevelHeader { /* 0xB9 */ u8 unkB9; /* 0xBA */ s16 unkBA; /* 0xBC */ u8 unkBC; - /* 0xBD */ u8 unkBD; + /* 0xBD */ s8 unkBD; /* 0xBE */ u8 unkBE; /* 0xBF */ u8 unkBF; /* 0xC0 */ u8 unkC0; @@ -534,7 +545,7 @@ typedef struct LevelModelSegment { s16 *unk34; /* 0x38 */ s16 unk38; u8 pad3A[6]; -/* 0x40 */ u8 unk40; +/* 0x40 */ u8 numberofOpaqueBatches; u8 pad41[0x3]; } LevelModelSegment; diff --git a/src/borders.c b/src/borders.c index 52b8b5a1..4c7b6317 100644 --- a/src/borders.c +++ b/src/borders.c @@ -39,7 +39,7 @@ void render_borders_for_multiplayer(Gfx **dlist) { case VIEWPORTS_COUNT_3_PLAYERS: levelHeader = get_current_level_header(); // Draw black square in the bottom-right corner. - if (get_multiplayer_hud_setting() || (levelHeader->race_type & RACETYPE_CHALLENGE)) { + if (get_hud_setting() || (levelHeader->race_type & RACETYPE_CHALLENGE)) { gDPFillRectangle((*dlist)++, width >> 1, height >> 1, width, height); } // There is no break statement here. This is intentional. diff --git a/src/camera.c b/src/camera.c index 1ce75c21..380e8ee0 100644 --- a/src/camera.c +++ b/src/camera.c @@ -106,7 +106,7 @@ s16 gButtonMask = 0xFFFF; ObjectSegment gActiveCameraStack[8]; s32 gNumberOfViewports; s32 gActiveCameraID; -s32 gOjbectRenderStackCap; +s32 gViewportCap; UNUSED s32 D_80120CEC; ObjectTransform D_80120CF0; s32 D_80120D08; @@ -234,6 +234,9 @@ UNUSED Matrix *func_80066204(void) { return &D_801210A0; } +/** + * Returns the number of active viewports. +*/ s32 get_viewport_count(void) { return gNumberOfViewports; } @@ -256,8 +259,8 @@ void func_80066230(Gfx **dlist, MatrixS **mats) { f32 sp1C; f32 sp18; - set_active_viewports_and_object_stack_cap(0); - set_object_stack_pos(0); + set_active_viewports_and_max(0); + set_active_camera(0); someStruct = get_active_camera_segment(); sp2A = someStruct->trans.y_rotation; sp28 = someStruct->trans.x_rotation; @@ -273,7 +276,7 @@ void func_80066230(Gfx **dlist, MatrixS **mats) { someStruct->trans.x_position = 0.0f; someStruct->trans.y_position = 0.0f; someStruct->trans.z_position = 0.0f; - set_and_normalize_D_8011AFE8(0.0f, 0.0f, -1.0f); + update_envmap_position(0.0f, 0.0f, -1.0f); func_80066CDC(dlist, mats); someStruct->unk38.half.unk38 = sp24; someStruct->trans.y_rotation = sp2A; @@ -352,11 +355,11 @@ void disable_cutscene_camera(void) { } /** - * Sets the cap for the object render stack. + * Sets the cap for the viewports. Usually reflecting how many there are. * If the number passed is within 1-4, then the stack cap is set to * how many active viewports there are. */ -s32 set_active_viewports_and_object_stack_cap(s32 num) { +s32 set_active_viewports_and_max(s32 num) { if (num >= 0 && num < 4) { gNumberOfViewports = num; } else { @@ -364,29 +367,29 @@ s32 set_active_viewports_and_object_stack_cap(s32 num) { } switch (gNumberOfViewports) { case VIEWPORTS_COUNT_1_PLAYER: - gOjbectRenderStackCap = 1; + gViewportCap = 1; break; case VIEWPORTS_COUNT_2_PLAYERS: - gOjbectRenderStackCap = 2; + gViewportCap = 2; break; case VIEWPORTS_COUNT_3_PLAYERS: - gOjbectRenderStackCap = 3; + gViewportCap = 3; break; case VIEWPORTS_COUNT_4_PLAYERS: - gOjbectRenderStackCap = 4; + gViewportCap = 4; break; } - if (gActiveCameraID >= gOjbectRenderStackCap) { + if (gActiveCameraID >= gViewportCap) { gActiveCameraID = 0; } - return gOjbectRenderStackCap; + return gViewportCap; } /** - * Sets the object stack pos to the passed number. + * Sets the active viewport ID to the passed number. * If it's not within 1-4, then it's set to 0. */ -void set_object_stack_pos(s32 num) { +void set_active_camera(s32 num) { if (num >= 0 && num < 4) { gActiveCameraID = num; } else { diff --git a/src/camera.h b/src/camera.h index 7b7e5bb7..86f15a9c 100644 --- a/src/camera.h +++ b/src/camera.h @@ -103,8 +103,8 @@ void func_800663DC(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5); void write_to_object_render_stack(s32 arg0, f32 xPos, f32 yPos, f32 zPos, s16 arg4, s16 arg5, s16 arg6); void disable_cutscene_camera(void); s8 check_if_showing_cutscene_camera(void); -s32 set_active_viewports_and_object_stack_cap(s32 arg0); -void set_object_stack_pos(s32 arg0); +s32 set_active_viewports_and_max(s32 arg0); +void set_active_camera(s32 arg0); void func_80066818(s32 viewPortIndex, s32 arg1); void func_80066894(s32 viewPortIndex, s32 arg1); s32 func_80066910(s32 viewPortIndex); diff --git a/src/game_ui.c b/src/game_ui.c index a3ca5f5a..0ca4eb54 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -137,7 +137,7 @@ u8 D_800E2794[4][4] = { {2, 2, 2, 2} }; -s8 gHudMultiplayerUIToggle[4] = { +s8 gHudToggleSettings[4] = { 1, 1, 1, 1 }; @@ -364,8 +364,8 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s play_sound_global((SOUND_TING_HIGHEST - (D_800E2794[gHUDNumPlayers][racer->racer.playerIndex] == 0)), NULL); } if (get_buttons_pressed_from_player(D_80126D10) & R_CBUTTONS && racer->racer.raceFinished == FALSE && D_80126D34 && D_80126CD0 == 0) { - gHudMultiplayerUIToggle[gHUDNumPlayers] = 1 - gHudMultiplayerUIToggle[gHUDNumPlayers]; - if (gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { + gHudToggleSettings[gHUDNumPlayers] = 1 - gHudToggleSettings[gHUDNumPlayers]; + if (gHudToggleSettings[gHUDNumPlayers] == 0) { play_sound_global(SOUND_TING_LOW, NULL); } else { play_sound_global(SOUND_TING_HIGH, NULL); @@ -764,7 +764,7 @@ void render_speedometer(Object *obj, UNUSED s32 updateRate) { D_80126CDC->unk4C4 += ((vel - D_80126CDC->unk4C4) / 8); } } - if (gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { + if (gHudToggleSettings[gHUDNumPlayers] == 0) { if (D_80126CD3 & 2) { opacity = 255.0f - ((D_80126CD0 * 255.0f) / D_8012718B); } else { @@ -1520,11 +1520,14 @@ void func_800A83B4(LevelModel *model) { } /** - * Return's the HUD toggle setting of each player. - * This shows either the lap count, banana count or neither. + * Returns the hud settings value for the mumber of active players. + * For player 1, it's switching between the minimap and speedometre. + * For 2 players, it's for toggling the minimap + * For 3 players, it's for toggling between the minimap and a spectator cam in viewport 4. + * For 4 players, it's for toggling the minimap. */ -s8 get_multiplayer_hud_setting(void) { - return gHudMultiplayerUIToggle[gHUDNumPlayers]; +s8 get_hud_setting(void) { + return gHudToggleSettings[gHUDNumPlayers]; } /** @@ -1613,7 +1616,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 u gHUDCurrMatrix = *mtx; gHUDCurrVertex = *vtx; if (gHudLevelHeader->race_type == RACETYPE_CHALLENGE_EGGS) { - if (gNumActivePlayers == 2 && gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { + if (gNumActivePlayers == 2 && gHudToggleSettings[gHUDNumPlayers] == 0) { func_800A14F0(NULL, updateRate); reset_render_settings(&gHUDCurrDisplayList); } else { @@ -1650,7 +1653,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 u } } else if (gHudLevelHeader->race_type == RACETYPE_CHALLENGE_BATTLE) { // Show life counter and icons in 2 player. - if (gNumActivePlayers == 2 && gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { + if (gNumActivePlayers == 2 && gHudToggleSettings[gHUDNumPlayers] == 0) { func_80068508(TRUE); func_8007BF1C(FALSE); set_ortho_matrix_view(&gHUDCurrDisplayList, &gHUDCurrMatrix); @@ -1732,7 +1735,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 u } } } else if (gHudLevelHeader->race_type == RACETYPE_CHALLENGE_BANANAS) { - if (gNumActivePlayers == 2 && gHudMultiplayerUIToggle[gHUDNumPlayers] == 0) { + if (gNumActivePlayers == 2 && gHudToggleSettings[gHUDNumPlayers] == 0) { temp_s0_2 = D_80126CDC->unk64C; temp_s1_2 = D_80126CDC->unk650; temp_s3 = D_80126CDC->unk40C; @@ -1804,7 +1807,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 u } if((gHUDNumPlayers == THREE_PLAYERS && is_postrace_viewport_active()) || check_if_showing_cutscene_camera() || sp113) { goto test; - } else if(gHudMultiplayerUIToggle[gHUDNumPlayers] != 1) { + } else if(gHudToggleSettings[gHUDNumPlayers] != 1) { test: return; } else { diff --git a/src/game_ui.h b/src/game_ui.h index 9d91ed9a..b98478fb 100644 --- a/src/game_ui.h +++ b/src/game_ui.h @@ -296,7 +296,7 @@ void play_time_trial_end_message(s16 *playerID); void func_800A7484(u16 arg0, f32 arg1, s32 arg2); void func_800A74EC(u16 arg0, s32 arg1); void func_800A83B4(LevelModel *model); -s8 get_multiplayer_hud_setting(void); +s8 get_hud_setting(void); void func_800AB194(s32 arg0); void func_800AB1AC(s32 arg0); void func_800AB1C8(void); diff --git a/src/menu.c b/src/menu.c index f1578897..fe1fd343 100644 --- a/src/menu.c +++ b/src/menu.c @@ -8035,8 +8035,8 @@ void func_8009BD5C(void) { f32 sp1C; f32 sp18; - set_active_viewports_and_object_stack_cap(0); - set_object_stack_pos(0); + set_active_viewports_and_max(0); + set_active_camera(0); temp_v0 = (unk80069D20 *)get_active_camera_segment(); @@ -8053,7 +8053,7 @@ void func_8009BD5C(void) { temp_v0->unk10 = -32.0f; temp_v0->unk14 = -32.0f; - set_and_normalize_D_8011AFE8(0, 0, -1); + update_envmap_position(0, 0, -1); func_80066CDC(&sMenuCurrDisplayList, &sMenuCurrHudMat); temp_v0->unk0 = sp2A; diff --git a/src/object_functions.c b/src/object_functions.c index e21bdc76..76944fa0 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -3349,7 +3349,7 @@ void obj_init_skycontrol(Object *obj, LevelObjectEntry_SkyControl *entry) { void obj_loop_skycontrol(Object *obj, UNUSED s32 updateRate) { if (obj->interactObj->distance < obj->unk7C.word) { - func_80028044(obj->action); + set_skydome_visbility(obj->action); } } diff --git a/src/objects.c b/src/objects.c index b292aaf7..5022d3d3 100644 --- a/src/objects.c +++ b/src/objects.c @@ -258,7 +258,7 @@ s32 D_8011AF34; s32 D_8011AF38[10]; s32 D_8011AF60[2]; s32 D_8011AF68[32]; -VertexPosition D_8011AFE8; +VertexPosition gEnvmapPos; s16 D_8011AFEE; s32 D_8011AFF0; unk800179D0 *D_8011AFF4; @@ -2113,7 +2113,10 @@ void func_8001D258(f32 arg0, f32 arg1, s16 arg2, s16 arg3, s16 arg4) { GLOBAL_ASM("asm/non_matchings/objects/func_8001D2A0.s") GLOBAL_ASM("asm/non_matchings/objects/func_8001D4B4.s") -void set_and_normalize_D_8011AFE8(f32 x, f32 y, f32 z) { +/** + * Take the normalised length of the position set by the perspective and set the world angle for the envmap. +*/ +void update_envmap_position(f32 x, f32 y, f32 z) { f32 vecLength = sqrtf((x * x) + (y * y) + (z * z)); f32 normalizedLength; if (vecLength != 0.0f) { @@ -2122,9 +2125,9 @@ void set_and_normalize_D_8011AFE8(f32 x, f32 y, f32 z) { y *= normalizedLength; z *= normalizedLength; } - D_8011AFE8.x = x; - D_8011AFE8.y = y; - D_8011AFE8.z = z; + gEnvmapPos.x = x; + gEnvmapPos.y = y; + gEnvmapPos.z = z; } void calc_dyn_light_and_env_map_for_object(ObjectModel *model, Object *object, s32 arg2, f32 arg3) { diff --git a/src/objects.h b/src/objects.h index 0e535a0e..c57d510e 100644 --- a/src/objects.h +++ b/src/objects.h @@ -429,7 +429,7 @@ s32 move_object(Object *obj, f32 xPos, f32 yPos, f32 zPos); Object *get_racer_object_by_port(s32 index); void render_racer_shield(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *obj); void render_racer_magnet(Gfx **dList, MatrixS **mtx, Vertex **vtxList, Object *obj); -void set_and_normalize_D_8011AFE8(f32 arg0, f32 arg1, f32 arg2); +void update_envmap_position(f32 arg0, f32 arg1, f32 arg2); s32 func_8000FC6C(struct_8000FC6C_3 *arg0, struct_8000FC6C *arg1); s32 func_8001B2F0(s32 mapId); void render_3d_billboard(Object *obj); diff --git a/src/racer.c b/src/racer.c index 0eaaa3b8..a8410ade 100644 --- a/src/racer.c +++ b/src/racer.c @@ -2146,7 +2146,7 @@ void obj_init_racer(Object *obj, LevelObjectEntry_CharacterFlag *racer) { tempRacer->unk220 = 0; tempRacer->unk21C = 0; if (tempRacer->playerIndex != PLAYER_COMPUTER && !D_8011D582) { - set_object_stack_pos(player); + set_active_camera(player); gCameraObject = (ObjectCamera *) get_active_camera_segment_no_cutscenes(); gCameraObject->trans.z_rotation = 0; gCameraObject->trans.x_rotation = 0x400; @@ -2344,7 +2344,7 @@ void update_player_racer(Object *obj, s32 updateRate) { tempRacer->unk1B2 = 0; } } - set_object_stack_pos(tempRacer->playerIndex); + set_active_camera(tempRacer->playerIndex); gCameraObject = (ObjectCamera *) get_active_camera_segment_no_cutscenes(); tempRacer->miscAnimCounter++; //!@Delta gCurrentPlayerIndex = tempRacer->playerIndex; diff --git a/src/save_data.c b/src/save_data.c index 19f3bb6a..1a62d6da 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -1140,7 +1140,7 @@ void func_80074AA8(GhostHeader *ghostHeader, s16 characterID, s16 time, s16 node s32 func_80074B1C(void) { //func_80074EB8 Makes extensive use out of 0x1100, and even does a * 6 to it. //func_80075000 Uses 0x1100 once as well. - //Another possibility for 0x1100, seems to be from func_8007BA5C which seems to do (0xF5101100 & 0xFFFF); + //Another possibility for 0x1100, seems to be from load_blinking_lights_texture which seems to do (0xF5101100 & 0xFFFF); int x = 0x1100; return (&x)[0] * 6 + 0x100; } diff --git a/src/textures_sprites.c b/src/textures_sprites.c index 7b999705..f26435ae 100644 --- a/src/textures_sprites.c +++ b/src/textures_sprites.c @@ -6,6 +6,7 @@ #include "asset_loading.h" #include "memory.h" #include "math_util.h" +#include "unknown_0255E0.h" /************ .data ************/ @@ -1267,7 +1268,10 @@ void load_and_set_texture(Gfx **dlist, TextureHeader *texhead, s32 flags, s32 te } } -void func_8007BA5C(Gfx **dlist, TextureHeader *texture_list, u32 flags, s32 texture_index) { +/** + * Loads the texture and render settings for the blinking lights seen in Spaceport Alpha. +*/ +void load_blinking_lights_texture(Gfx **dlist, TextureHeader *texture_list, u32 flags, s32 texture_index) { u16 *mblock; u16 *tblock; if ((texture_index != 0) && (texture_index < (texture_list->numOfTextures * 256))) { @@ -1500,70 +1504,70 @@ s32 func_8007EF64(s16 arg0) { // There might be a file boundary here. -void func_8007EF80(TextureHeader *texture, u32 *triangleBatchInfoFlags, s32 *arg2, s32 arg3) { +void func_8007EF80(TextureHeader *texture, u32 *triangleBatchInfoFlags, s32 *arg2, s32 updateRate) { s32 bit23Set; s32 bit25Set; s32 bit26Set; s32 phi_a0; - bit23Set = *triangleBatchInfoFlags & 0x800000; - bit26Set = *triangleBatchInfoFlags & 0x04000000; - bit25Set = *triangleBatchInfoFlags & 0x02000000; + bit23Set = *triangleBatchInfoFlags & BATCH_FLAGS_UNK00800000; + bit26Set = *triangleBatchInfoFlags & BATCH_FLAGS_UNK04000000; + bit25Set = *triangleBatchInfoFlags & BATCH_FLAGS_UNK02000000; if (bit23Set) { if (!bit25Set) { - if (get_random_number_from_range(0, 1000) >= 986) { - *triangleBatchInfoFlags &= ~0x4000000; - *triangleBatchInfoFlags |= 0x02000000; + if (get_random_number_from_range(0, 1000) > 985) { + *triangleBatchInfoFlags &= ~BATCH_FLAGS_UNK04000000; + *triangleBatchInfoFlags |= BATCH_FLAGS_UNK02000000; } } else if (!bit26Set) { - *arg2 = *arg2 + (texture->frameAdvanceDelay * arg3); + *arg2 = *arg2 + (texture->frameAdvanceDelay * updateRate); if (*arg2 >= texture->numOfTextures) { *arg2 = ((texture->numOfTextures * 2) - *arg2) - 1; if (*arg2 < 0) { *arg2 = 0; - *triangleBatchInfoFlags &= ~(0x2000000 | 0x4000000); + *triangleBatchInfoFlags &= ~(BATCH_FLAGS_UNK02000000 | BATCH_FLAGS_UNK04000000); return; } - *triangleBatchInfoFlags |= 0x04000000; + *triangleBatchInfoFlags |= BATCH_FLAGS_UNK04000000; } } else { - *arg2 = *arg2 - (texture->frameAdvanceDelay * arg3); + *arg2 = *arg2 - (texture->frameAdvanceDelay * updateRate); if (*arg2 < 0) { *arg2 = 0; - *triangleBatchInfoFlags &= ~(0x2000000 | 0x4000000); + *triangleBatchInfoFlags &= ~(BATCH_FLAGS_UNK02000000 | BATCH_FLAGS_UNK04000000); } } } else { if (bit25Set) { if (!bit26Set) { - *arg2 += texture->frameAdvanceDelay * arg3; + *arg2 += texture->frameAdvanceDelay * updateRate; } else { - *arg2 -= texture->frameAdvanceDelay * arg3; + *arg2 -= texture->frameAdvanceDelay * updateRate; } do { phi_a0 = 0; if (*arg2 < 0) { *arg2 = -*arg2; - *triangleBatchInfoFlags &= ~0x4000000; + *triangleBatchInfoFlags &= ~BATCH_FLAGS_UNK04000000; phi_a0 = 1; } if (*arg2 >= texture->numOfTextures) { *arg2 = ((texture->numOfTextures * 2) - *arg2) - 1; - *triangleBatchInfoFlags |= 0x04000000; + *triangleBatchInfoFlags |= BATCH_FLAGS_UNK04000000; phi_a0 = 1; } } while (phi_a0 != 0); return; } if (!bit26Set) { - *arg2 = *arg2 + (texture->frameAdvanceDelay * arg3); + *arg2 = *arg2 + (texture->frameAdvanceDelay * updateRate); if (*arg2 >= texture->numOfTextures) { do { *arg2 -= texture->numOfTextures; } while (*arg2 >= texture->numOfTextures); } } else { - *arg2 = *arg2 - (texture->frameAdvanceDelay * arg3); + *arg2 = *arg2 - (texture->frameAdvanceDelay * updateRate); if (*arg2 < 0) { do { *arg2 += texture->numOfTextures; diff --git a/src/textures_sprites.h b/src/textures_sprites.h index a557a7c2..809ea7d8 100644 --- a/src/textures_sprites.h +++ b/src/textures_sprites.h @@ -139,7 +139,7 @@ s32 func_8007EF64(s16 arg0); void load_and_set_texture(Gfx **dlist, TextureHeader *texhead, s32 flags, s32 offset); // There might be a file boundary here. -void func_8007EF80(TextureHeader *texture, u32 *triangleBatchInfoFlags, s32 *arg2, s32 arg3); +void func_8007EF80(TextureHeader *texture, u32 *triangleBatchInfoFlags, s32 *arg2, s32 updateRate); void func_8007F1E8(unk8007F1E8 *arg0); void init_pulsating_light_data(PulsatingLightData *data); void update_pulsating_light_data(PulsatingLightData *data, s32 timeDelta); @@ -157,7 +157,7 @@ void func_8007CA68(s32 arg0, s32 arg1, s32 *arg2, s32 *arg3, s32 *arg4); // Non MemoryPoolSlot *func_8007C12C(s32 arg0, s32 arg1); // Non Matching void func_8007AC70(void); // Non Matching void func_8007BF34(Gfx **dlist, s32 arg1); // Non Matching -void func_8007BA5C(Gfx **dlist, TextureHeader *arg1, u32 flags, s32 arg3); // Non Matching +void load_blinking_lights_texture(Gfx **dlist, TextureHeader *arg1, u32 flags, s32 arg3); // Non Matching void build_tex_display_list(TextureHeader *tex, u8 *addr); #endif diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index def16f45..032b9ab5 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -21,9 +21,11 @@ #include "lib/src/libc/rmonPrintf.h" #include "objects.h" #include "math_util.h" +#include "printf.h" // Maximum size for a level model is 522.5 KiB #define LEVEL_MODEL_MAX_SIZE 0x82A00 +#define LEVEL_SEGMENT_MAX 128 /************ .data ************/ @@ -61,9 +63,9 @@ s8 D_800DC92C[24] = { /************ .rodata ************/ -const char D_800E5DF0[] = "TT CAM"; -const char D_800E5DF8[] = "Solid Clipping x0=x1 Error!!!\n"; -const char D_800E5E10[] = "TrackGetHeight() - Overflow!!!\n"; +const char gViewport4Text[] = "TT CAM"; +UNUSED const char gTrackClippingErrorString[] = "Solid Clipping x0=x1 Error!!!\n"; +UNUSED const char gTrackHeightOverflowString[] = "TrackGetHeight() - Overflow!!!\n"; /*********************************/ @@ -74,20 +76,20 @@ MatrixS *gSceneCurrMatrix; Vertex *gSceneCurrVertexList; TriangleList *gSceneCurrTriList; -ObjectSegment *D_8011B0B0; // Camera Object? +ObjectSegment *gSceneActiveCamera; -s32 D_8011B0B4; -Object *D_8011B0B8; +s32 gSceneCurrentPlayerID; +Object *gSkydomeSegment; UNUSED s32 gIsNearCurrBBox; // Set to true if the current visible segment is close to the camera. Never actually used though. s32 D_8011B0C0; s32 D_8011B0C4; s32 D_8011B0C8; s32 D_8011B0CC; s32 D_8011B0D0; -s32 D_8011B0D4; +s32 gSceneStartSegment; s32 D_8011B0D8; -s32 D_8011B0DC; -s8 D_8011B0E0; +s32 gSceneRenderSkyDome; +s8 gDrawLevelSegments; u8 D_8011B0E1; u8 D_8011B0E2; u8 D_8011B0E3; @@ -139,9 +141,9 @@ WaterProperties *gTrackWaves[20]; s8 D_8011D308; LevelModel *D_8011D30C; s32 *D_8011D310; -f32 D_8011D314; -f32 D_8011D318; -f32 D_8011D31C; +UNUSED f32 gPrevCameraX; // Set but never read +UNUSED f32 gPrevCameraY; // Set but never read +UNUSED f32 gPrevCameraZ; // Set but never read s32 *D_8011D320[4]; unk8011D330 *D_8011D330; s32 D_8011D334; @@ -160,7 +162,7 @@ s32 D_8011D37C; UNUSED f32 gCurrBBoxDistanceToCamera; // Used in a comparison check, but functionally unused. u32 D_8011D384; unk8011D388 D_8011D388[4]; -unk8011D468 D_8011D468; +Vec3i gScenePerspectivePos; s32 *D_8011D474; s32 D_8011D478; s32 D_8011D47C; @@ -224,7 +226,7 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, Vehicle vehicle, u32 arg4, u32 if (D_8011D384) { func_800B82B4(gCurrentLevelModel, gCurrentLevelHeader2, tmp_a2); } - set_active_viewports_and_object_stack_cap(arg2); + set_active_viewports_and_max(arg2); func_80027FC4(arg1); D_8011B110 = 0; D_8011B114 = 0x10000; @@ -239,7 +241,7 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, Vehicle vehicle, u32 arg4, u32 } else { func_800C01D8(&D_800DC874); } - set_active_viewports_and_object_stack_cap(D_8011D37C); + set_active_viewports_and_max(D_8011D37C); D_8011B0FC = 0; i = 0; do { @@ -266,94 +268,97 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, Vehicle vehicle, u32 arg4, u32 GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800249F0.s") #endif -// Regalloc -#ifdef NON_MATCHING -extern u32 D_A0000200; /** - * The root function for rendering the entire scene + * The root function for rendering the entire scene. + * Handles drawing the track, objects and the majority of the HUD in single player. */ -void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updateRate) { +void render_scene(Gfx **dList, MatrixS **mtx, Vertex **vtx, TriangleList **tris, s32 updateRate) { s32 i; s32 numViewports; - s32 delta; + s32 tempUpdateRate; s8 flip; s32 posX; s32 posY; - UNUSED s32 pad; + s32 j; gSceneCurrDisplayList = *dList; gSceneCurrMatrix = *mtx; gSceneCurrVertexList = *vtx; gSceneCurrTriList = *tris; - D_8011B0DC = 1; + gSceneRenderSkyDome = TRUE; D_8011B0C4 = 0; D_8011B0C0 = 0; gIsNearCurrBBox = 0; - numViewports = set_active_viewports_and_object_stack_cap(D_8011D37C); + numViewports = set_active_viewports_and_max(D_8011D37C); if (is_game_paused()) { - delta = 0; + tempUpdateRate = 0; } else { - delta = updateRate; + tempUpdateRate = updateRate; } if (D_8011D384) { - func_800B9C18(delta); + func_800B9C18(tempUpdateRate); } func_8002D8DC(2, 2, updateRate); for (i = 0; i < 7; i++) { if ((s32) gCurrentLevelHeader2->unk74[i] != -1) { - func_8007F24C(gCurrentLevelHeader2->unk74[i], delta); + func_8007F24C(gCurrentLevelHeader2->unk74[i], tempUpdateRate); } } - if (gCurrentLevelHeader2->pulseLightData != (PulsatingLightData* ) -1) { - update_pulsating_light_data(gCurrentLevelHeader2->pulseLightData, delta); + + if (gCurrentLevelHeader2->pulseLightData != (PulsatingLightData *) -1) { + update_pulsating_light_data(gCurrentLevelHeader2->pulseLightData, tempUpdateRate); } - D_8011B0E0 = 1; - if (gCurrentLevelHeader2->race_type == 7) { - D_8011B0E0 = 0; + gDrawLevelSegments = TRUE; + if (gCurrentLevelHeader2->race_type == RACETYPE_CUTSCENE_2) { + gDrawLevelSegments = FALSE; D_8011B0FC = 1; } - if (gCurrentLevelHeader2->race_type == 6 || gCurrentLevelHeader2->unkBD) { + if (gCurrentLevelHeader2->race_type == RACETYPE_CUTSCENE_1 || gCurrentLevelHeader2->unkBD) { D_8011B0FC = 1; } if (gCurrentLevelHeader2->unk49 == -1) { - gCurrentLevelHeader2->unkA8 = (gCurrentLevelHeader2->unkA8 + (gCurrentLevelHeader2->unkA2 * delta)) & ((gCurrentLevelHeader2->unkA4->width << 9) - 1); - gCurrentLevelHeader2->unkAA = (gCurrentLevelHeader2->unkAA + (gCurrentLevelHeader2->unkA3 * delta)) & ((gCurrentLevelHeader2->unkA4->height << 9) - 1); - func_8007EF80(gCurrentLevelHeader2->unkA4, &D_8011B114, &D_8011B110, delta); + i = (gCurrentLevelHeader2->unkA4->width << 9) - 1; + gCurrentLevelHeader2->unkA8 = (gCurrentLevelHeader2->unkA8 + (gCurrentLevelHeader2->unkA2 * tempUpdateRate)) & i; + i = (gCurrentLevelHeader2->unkA4->height << 9) - 1; + gCurrentLevelHeader2->unkAA = (gCurrentLevelHeader2->unkAA + (gCurrentLevelHeader2->unkA3 * tempUpdateRate)) & i; + func_8007EF80(gCurrentLevelHeader2->unkA4, &D_8011B114, &D_8011B110, tempUpdateRate); } flip = FALSE; if (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) { flip = TRUE; } - if (D_A0000200 != 0xAC290000) { + // Antipiracy measure + if (IO_READ(0x200) != 0xAC290000) { flip = TRUE; } reset_render_settings(&gSceneCurrDisplayList); gDkrDisableBillboard(gSceneCurrDisplayList++); - gSPClearGeometryMode(gSceneCurrDisplayList++, CVG_X_ALPHA); + gSPClearGeometryMode(gSceneCurrDisplayList++, G_CULL_FRONT); gDPSetBlendColor(gSceneCurrDisplayList++, 0, 0, 0, 0x64); gDPSetPrimColor(gSceneCurrDisplayList++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(gSceneCurrDisplayList++, 255, 255, 255, 0); func_800AD40C(); - func_80030838(numViewports, delta); - func_800AF404(delta); + func_80030838(numViewports, tempUpdateRate); + func_800AF404(tempUpdateRate); if (gCurrentLevelModel->unk1E > 0) { - func_80027E24(delta); + func_80027E24(tempUpdateRate); } - for (i = D_8011B0B4 = 0; i < numViewports; D_8011B0B4++, i = D_8011B0B4) { - if (i == 0) { - if ((func_8000E184()) && (numViewports == 1)) { - D_8011B0B4 = 1; + for (j = gSceneCurrentPlayerID = 0; j < numViewports; gSceneCurrentPlayerID++, j = gSceneCurrentPlayerID) { + if (gCurrentLevelHeader2 && !gCurrentLevelHeader2 && !gCurrentLevelHeader2) {} // Fakematch + if (j == 0) { + if (func_8000E184() && numViewports == VIEWPORTS_COUNT_2_PLAYERS) { + gSceneCurrentPlayerID = PLAYER_TWO; } } if (flip) { - gSPSetGeometryMode(gSceneCurrDisplayList++, CVG_X_ALPHA); + gSPSetGeometryMode(gSceneCurrDisplayList++, G_CULL_FRONT); } - func_8003093C(D_8011B0B4); + func_8003093C(gSceneCurrentPlayerID); gDPPipeSync(gSceneCurrDisplayList++); - set_object_stack_pos(D_8011B0B4); + set_active_camera(gSceneCurrentPlayerID); func_80066CDC(&gSceneCurrDisplayList, &gSceneCurrMatrix); func_8002A31C(); - if (numViewports < 2) { + if (numViewports < VIEWPORTS_COUNT_3_PLAYERS) { func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); if (gCurrentLevelHeader2->unk49 == -1) { func_80028050(); @@ -367,26 +372,24 @@ void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updat func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); } gDPPipeSync(gSceneCurrDisplayList++); - func_80028CD0(updateRate); + initialise_player_viewport_vars(updateRate); func_800AB308(-1, -512); - if (gCurrentLevelHeader2->weatherEnable > 0 && numViewports < 2) { - process_weather(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, &gSceneCurrTriList, delta); + if (gCurrentLevelHeader2->weatherEnable > 0 && numViewports < VIEWPORTS_COUNT_3_PLAYERS) { + process_weather(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, &gSceneCurrTriList, tempUpdateRate); } func_800AD030(get_active_camera_segment()); func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_active_camera_segment()); - render_hud(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_racer_object_by_port(D_8011B0B4), updateRate); + render_hud(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_racer_object_by_port(gSceneCurrentPlayerID), updateRate); } - if ((numViewports == 3) && - (get_current_level_race_type() != RACETYPE_CHALLENGE_EGGS) && - (get_current_level_race_type() != RACETYPE_CHALLENGE_BATTLE) && - (get_current_level_race_type() != RACETYPE_CHALLENGE_BANANAS)) { - if (get_multiplayer_hud_setting() == 0) { + + if (numViewports == VIEWPORTS_COUNT_4_PLAYERS && get_current_level_race_type() != RACETYPE_CHALLENGE_EGGS && get_current_level_race_type() != RACETYPE_CHALLENGE_BATTLE && get_current_level_race_type() != RACETYPE_CHALLENGE_BANANAS) { + if (get_hud_setting() == 0) { if (flip) { - gSPSetGeometryMode(gSceneCurrDisplayList++, CVG_X_ALPHA); + gSPSetGeometryMode(gSceneCurrDisplayList++, G_CULL_FRONT); } func_8003093C(3); gDPPipeSync(gSceneCurrDisplayList++); - set_object_stack_pos(3); + set_active_camera(3); disable_cutscene_camera(); func_800278E8(updateRate); func_80066CDC(&gSceneCurrDisplayList, &gSceneCurrMatrix); @@ -395,23 +398,22 @@ void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updat draw_gradient_background(); func_80067D3C(&gSceneCurrDisplayList, &gSceneCurrMatrix); func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); - gDPPipeSync(gSceneCurrDisplayList++); - func_80028CD0(updateRate); + initialise_player_viewport_vars(updateRate); func_800AB308(-1, -512); func_800AD030(get_active_camera_segment()); func_800ACA20(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, get_active_camera_segment()); set_text_font(0); - if (osTvType == 0) { + if (osTvType == TV_TYPE_PAL) { posX = 166; posY = 138; } else { posX = 170; posY = 125; } - draw_text(&gSceneCurrDisplayList, posX, posY, (char *) &D_800E5DF0, ALIGN_TOP_LEFT); + draw_text(&gSceneCurrDisplayList, posX, posY, (char *)(&gViewport4Text), ALIGN_TOP_LEFT); } else { - set_object_stack_pos(3); + set_active_camera(3); func_800278E8(updateRate); } } @@ -424,9 +426,6 @@ void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updat *vtx = gSceneCurrVertexList; *tris = gSceneCurrTriList; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/render_scene.s") -#endif GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80025510.s") @@ -447,7 +446,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027184.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027568.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800278E8.s") -void func_80027E24(s32 arg0) { +void func_80027E24(s32 updateRate) { s32 segmentNumber, batchNumber; LevelModelSegment *segment; TextureHeader *texture; @@ -458,17 +457,17 @@ void func_80027E24(s32 arg0) { for (segmentNumber = 0; segmentNumber < gCurrentLevelModel->numberOfSegments; segmentNumber++) { batch = segment[segmentNumber].batches; for (batchNumber = 0; batchNumber < segment[segmentNumber].numberOfBatches; batchNumber++) { - if (batch[batchNumber].flags & 0x10000) { + if (batch[batchNumber].flags & BATCH_FLAGS_TEXTURE_ANIM) { if (batch[batchNumber].textureIndex != 0xFF) { texture = gCurrentLevelModel->textures[batch[batchNumber].textureIndex].texture; if ((texture->numOfTextures != 0x100) && (texture->frameAdvanceDelay != 0)) { temp = batch[batchNumber].unk7 << 6; - if (batch[batchNumber].flags & 0x80000000) { + if (batch[batchNumber].flags & BATCH_FLAGS_UNK80000000) { temp |= batch[batchNumber].unk6; - func_8007EF80(texture, &batch[batchNumber].flags, &temp, arg0); + func_8007EF80(texture, &batch[batchNumber].flags, &temp, updateRate); batch[batchNumber].unk6 = temp & 0x3F; } else { - func_8007EF80(texture, &batch[batchNumber].flags, &temp, arg0); + func_8007EF80(texture, &batch[batchNumber].flags, &temp, updateRate); } batch[batchNumber].unk7 = (temp >> 6) & 0xFF; } @@ -483,7 +482,7 @@ void func_80027FC4(s32 arg0) { compare_balloon_checksums(); if (arg0 == -1) { - D_8011B0B8 = NULL; + gSkydomeSegment = NULL; return; } sp20.x = 0; @@ -491,15 +490,19 @@ void func_80027FC4(s32 arg0) { sp20.z = 0; sp20.size = 8; sp20.objectID = arg0; - D_8011B0B8 = spawn_object(&sp20, 2); - if (D_8011B0B8 != 0) { - D_8011B0B8->segment.unk3C_a.level_entry = NULL; - D_8011B0B8->unk4A = -1; + gSkydomeSegment = spawn_object(&sp20, 2); + if (gSkydomeSegment != 0) { + gSkydomeSegment->segment.unk3C_a.level_entry = NULL; + gSkydomeSegment->unk4A = -1; } } -void func_80028044(s32 arg0) { - D_8011B0DC = arg0; +/** + * Sets the status to render the sky. + * If set to false, will skip the background and skydome rendering. +*/ +void set_skydome_visbility(s32 renderSky) { + gSceneRenderSkyDome = renderSky; } GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80028050.s") @@ -604,59 +607,66 @@ void draw_gradient_background(void) { gSceneCurrTriList = (TriangleList *) tris; } +/** + * Sets the position to the current camera's position then renders the skydome if set to be visible. +*/ void render_skydome(void) { - ObjectSegment *v0_some_struct; - if (D_8011B0B8 == NULL) + ObjectSegment *cam; + if (gSkydomeSegment == NULL) return; - v0_some_struct = get_active_camera_segment(); + cam = get_active_camera_segment(); if (gCurrentLevelHeader2->unk49 == 0) { - D_8011B0B8->segment.trans.x_position = v0_some_struct->trans.x_position; - D_8011B0B8->segment.trans.y_position = v0_some_struct->trans.y_position; - D_8011B0B8->segment.trans.z_position = v0_some_struct->trans.z_position; + gSkydomeSegment->segment.trans.x_position = cam->trans.x_position; + gSkydomeSegment->segment.trans.y_position = cam->trans.y_position; + gSkydomeSegment->segment.trans.z_position = cam->trans.z_position; } func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); - if (D_8011B0DC) { - func_80012D5C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, D_8011B0B8); + if (gSceneRenderSkyDome) { + func_80012D5C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, gSkydomeSegment); } } void func_800B8C04(s32, s32, s32, s32, s32); -void func_80028CD0(s32 updateRate) { +/** + * Sets up all of the required variables for the player's view perspective. + * This includes setting up the camera index, viewport and +*/ +void initialise_player_viewport_vars(s32 updateRate) { s32 i; s32 numRacers; - s32 sp3C; - Object** racers; // sp38? - s32 temp_v0; + s32 viewportID; + Object **racers; + s32 segmentIndex; Object_Racer *racer; - D_8011B0B0 = get_active_camera_segment(); - sp3C = get_current_viewport(); - func_80031018(); - set_and_normalize_D_8011AFE8((f32) D_8011D468.x / 65536.0f, (f32) D_8011D468.y / 65536.0f, (f32) D_8011D468.z / 65536.0f); - temp_v0 = D_8011B0B0->unk34_a.levelSegmentIndex; - if ((temp_v0 >= 0) && (temp_v0 < gCurrentLevelModel->numberOfSegments)) { - D_8011B0D4 = (s32) gCurrentLevelModel->segments[temp_v0].unk28; + gSceneActiveCamera = get_active_camera_segment(); + viewportID = get_current_viewport(); + compute_scene_camera_transform_matrix(); + update_envmap_position((f32) gScenePerspectivePos.x / 65536.0f, (f32) gScenePerspectivePos.y / 65536.0f, (f32) gScenePerspectivePos.z / 65536.0f); + segmentIndex = gSceneActiveCamera->unk34_a.levelSegmentIndex; + if (segmentIndex > -1 && (segmentIndex < gCurrentLevelModel->numberOfSegments)) { + gSceneStartSegment = gCurrentLevelModel->segments[segmentIndex].unk28; } else { - D_8011B0D4 = -1; + gSceneStartSegment = -1; } - D_8011D314 = D_8011B0B0->trans.x_position; - D_8011D318 = D_8011B0B0->trans.y_position; - D_8011D31C = D_8011B0B0->trans.z_position; + gPrevCameraX = gSceneActiveCamera->trans.x_position; + gPrevCameraY = gSceneActiveCamera->trans.y_position; + gPrevCameraZ = gSceneActiveCamera->trans.z_position; if (D_8011D384 != 0) { func_800B8B8C(); racers = get_racer_objects(&numRacers); - if ((D_8011B0B0->unk34_a.unk36 != 7) && (numRacers > 0) && (!check_if_showing_cutscene_camera())) { + if (gSceneActiveCamera->unk34_a.unk36 != 7 && numRacers > 0 && !check_if_showing_cutscene_camera()) { i = -1; do { i++; racer = &racers[i]->unk64->racer; - } while((i < (numRacers - 1)) && (sp3C != (racer->playerIndex))); + } while(i < numRacers - 1 && viewportID != racer->playerIndex); func_800B8C04(racers[i]->segment.trans.x_position, racers[i]->segment.trans.y_position, racers[i]->segment.trans.z_position, get_current_viewport(), updateRate); } else { - func_800B8C04((s32) D_8011B0B0->trans.x_position, (s32) D_8011B0B0->trans.y_position, (s32) D_8011B0B0->trans.z_position, get_current_viewport(), updateRate); + func_800B8C04((s32) gSceneActiveCamera->trans.x_position, (s32) gSceneActiveCamera->trans.y_position, (s32) gSceneActiveCamera->trans.z_position, get_current_viewport(), updateRate); } } get_current_level_header()->unk3 = 1; @@ -668,6 +678,11 @@ void func_80028FA0(s32 arg0) { D_8011B0FC = arg0; } +/** + * Find which segments can and should be rendered, then render their opaque geometry. + * Render all objects inside visible segments then render the level's semitransparent geometry. + * Afterwards, render particles. +*/ void render_level_geometry_and_objects(void) { s32 sp16C; s32 numberOfSegments; @@ -675,8 +690,8 @@ void render_level_geometry_and_objects(void) { s32 sp160; s32 i; s32 sp158; - u8 segmentIds[128]; - u8 sp58[128]; + u8 segmentIds[LEVEL_SEGMENT_MAX]; + u8 objectsVisible[LEVEL_SEGMENT_MAX]; s32 s0; Object *obj; @@ -697,20 +712,20 @@ void render_level_geometry_and_objects(void) { } for (i = 1; i <= gCurrentLevelModel->numberOfSegments; i++) { - sp58[i] = FALSE; + objectsVisible[i] = FALSE; // why not a bzero? } - sp58[0] = TRUE; + objectsVisible[0] = TRUE; - if (D_8011B0E0 != 0) { + if (gDrawLevelSegments) { for (i = 0; i < numberOfSegments; i++) { - render_level_segment(segmentIds[i], 0); // Render opaque segments - sp58[segmentIds[i] + 1] = TRUE; + render_level_segment(segmentIds[i], FALSE); // Render opaque segments + objectsVisible[segmentIds[i] + 1] = TRUE; } } if (gCurrentLevelModel->numberOfSegments < 2) { - sp58[1] = TRUE; + objectsVisible[1] = TRUE; } reset_render_settings(&gSceneCurrDisplayList); @@ -729,7 +744,7 @@ void render_level_geometry_and_objects(void) { if (objFlags & sp158) { s0 = 0; } - if ((obj != NULL) && (s0 == 0xFF) && (check_if_in_draw_range(obj)) && ((sp58[obj->segment.unk2C.half.lower + 1]) || (1000.0 < obj->segment.unk34_a.unk34))) { + if (obj != NULL && s0 == 0xFF && check_if_in_draw_range(obj) && (objectsVisible[obj->segment.unk2C.half.lower + 1] || obj->segment.unk34_a.unk34 > 1000.0)) { if (obj->segment.trans.unk6 & 0x8000) { func_80012D5C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); continue; @@ -737,7 +752,7 @@ void render_level_geometry_and_objects(void) { render_floor_decal(obj, obj->unk50); } func_80012D5C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); - if ((obj->unk58 != NULL) && (obj->segment.header->unk30 & 0x10)) { + if (obj->unk58 != NULL && obj->segment.header->unk30 & 0x10) { func_8002D670(obj, obj->unk58); } } @@ -751,7 +766,7 @@ void render_level_geometry_and_objects(void) { } else { s0 = TRUE; } - if (obj != NULL && s0 && (objFlags & 0x100) && (sp58[obj->segment.unk2C.half.lower + 1]) && (check_if_in_draw_range(obj) != 0)) { + if (obj != NULL && s0 && objFlags & 0x100 && objectsVisible[obj->segment.unk2C.half.lower + 1] && check_if_in_draw_range(obj)) { if (obj->segment.trans.unk6 & 0x8000) { func_80012D5C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); continue; @@ -765,9 +780,9 @@ void render_level_geometry_and_objects(void) { } } - if (D_8011B0E0 != 0) { + if (gDrawLevelSegments) { for (i = numberOfSegments - 1; i >= 0; i--) { - render_level_segment(segmentIds[i], 1); // Render transparent segments + render_level_segment(segmentIds[i], TRUE); // Render transparent segments } } @@ -779,6 +794,7 @@ void render_level_geometry_and_objects(void) { load_and_set_texture_no_offset(&gSceneCurrDisplayList, 0, RENDER_FOG_ACTIVE | RENDER_Z_COMPARE); func_80012C3C(&gSceneCurrDisplayList); + // Particles and FX for (i = sp16C - 1; i >= sp160; i--) { obj = get_object(i); s0 = 0xFF; @@ -794,7 +810,7 @@ void render_level_geometry_and_objects(void) { if ((obj->behaviorId == BHV_RACER) && (s0 >= 0xFF)) { s0 = 0; } - if (obj != NULL && s0 < 0xFF && sp58[obj->segment.unk2C.half.lower + 1] && check_if_in_draw_range(obj)) { + if (obj != NULL && s0 < 0xFF && objectsVisible[obj->segment.unk2C.half.lower + 1] && check_if_in_draw_range(obj)) { if (s0 > 0) { if (obj->segment.trans.unk6 & 0x8000) { func_80012D5C(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, obj); @@ -821,8 +837,11 @@ skip: D_8011B0FC = 0; } -#ifdef NON_MATCHING -// nonOpaque: 0 for solid geometry, 1 for transparent geometry. +/** + * Render a batch of level geometry. + * Since opaque and transparent are done in two separate runs, it will skip over the other. + * Has a special case for the flashing lights in Spaceport Alpha, too. +*/ void render_level_segment(s32 segmentId, s32 nonOpaque) { LevelModelSegment *segment; s32 i; @@ -834,8 +853,7 @@ void render_level_segment(s32 segmentId, s32 nonOpaque) { s32 vertices; s32 triangles; s32 color; - //s32 hasTexture; - UNUSED s32 unused; + s32 isInvisible; s32 levelHeaderIndex; s32 texOffset; s32 sp78; @@ -843,104 +861,99 @@ void render_level_segment(s32 segmentId, s32 nonOpaque) { s32 endPos; s32 batchFlags; s32 textureFlags; - + numberVertices = (batchInfo + 1)->verticesOffset - batchInfo->verticesOffset; segment = &gCurrentLevelModel->segments[segmentId]; - sp78 = (nonOpaque && D_8011D384) ? func_800B9228(segment) : FALSE; - + sp78 = (nonOpaque && D_8011D384) ? (func_800B9228(segment)) : (0); if (nonOpaque) { - startPos = segment->unk40; + startPos = segment->numberofOpaqueBatches; endPos = segment->numberOfBatches; } else { startPos = 0; - endPos = segment->unk40; // unk40 = Number of opaque batches. + endPos = segment->numberofOpaqueBatches; } - for (i = startPos; i < endPos; i++) { batchInfo = &segment->batches[i]; - textureFlags = 0; // Texture flags + textureFlags = RENDER_NONE; + isInvisible = batchInfo->flags & BATCH_FLAGS_HIDDEN; + if (isInvisible) { + continue; + } batchFlags = batchInfo->flags; - if (!(batchInfo->flags & RENDER_Z_UPDATE)) { + renderBatch = 0; + if (batchInfo->textureIndex == 0xFF) { + texture = 0; + } else { + texture = gCurrentLevelModel->textures[batchInfo->textureIndex].texture; + textureFlags = texture->flags; + } + batchFlags |= BATCH_FLAGS_UNK00000008 | BATCH_FLAGS_UNK00000002; + if (!(batchFlags & BATCH_FLAGS_DEPTH_WRITE) && !(batchFlags & BATCH_FLAGS_UNK00000800)) { + batchFlags |= D_8011B0FC; + } + if ((!(textureFlags & RENDER_SEMI_TRANSPARENT) && !(batchFlags & BATCH_FLAGS_UNK00002000)) || batchFlags & BATCH_FLAGS_UNK00000800) { + renderBatch = TRUE; + } + if (nonOpaque) { + renderBatch = (renderBatch + 1) & 1; + } + if (sp78 && batchFlags & BATCH_FLAGS_UNK00002000) { renderBatch = FALSE; - if (batchInfo->textureIndex == 0xFF) { - texture = NULL; // Solid color only - } else - if(1) // Probably fake. - { - texture = gCurrentLevelModel->textures[batchInfo->textureIndex].texture; - textureFlags = texture->flags; - } - - batchFlags |= 10; - if (!(batchFlags & RENDER_UNK_0000010) && !(batchFlags & RENDER_DECAL)) { // 0x10 = Depth write - batchFlags |= D_8011B0FC; - } - // temp & 0x04 = Is interlaced texture - if ((!(textureFlags & 4) && !(batchFlags & RENDER_UNK_0002000)) || (batchFlags & 0x800)) { - renderBatch = TRUE; - } - if (nonOpaque) { - renderBatch = (renderBatch + 1) & 1; // Why not just do `renderBatch ^= 1;` or `renderBatch = !renderBatch`? - } - if (sp78 && (batchFlags & RENDER_UNK_0002000)) { - renderBatch = FALSE; - } - if (renderBatch) { - // Problem with this section. - numberVertices = (batchInfo + 1)->verticesOffset - batchInfo->verticesOffset; - numberTriangles = batchInfo->facesOffset; - numberTriangles = (batchInfo + 1)->facesOffset - numberTriangles; - vertices = (s32) &segment->vertices[batchInfo->verticesOffset]; - triangles = (s32) &segment->triangles[batchInfo->facesOffset]; - - texOffset = batchInfo->unk7 << 14; - - levelHeaderIndex = (batchFlags >> 28) & 7; - if (levelHeaderIndex != 0) { // This is unused, so this should always be false. - // Got to get that match, even if it costs me my dignity. - gDPSetEnvColor(gSceneCurrDisplayList++, - ((LevelHeader_70*)(((u8**)(&((LevelHeader **)(gCurrentLevelHeader2))[levelHeaderIndex]))[0x1C]))->red, - ((LevelHeader_70*)(((u8**)(&((LevelHeader **)(gCurrentLevelHeader2))[levelHeaderIndex]))[0x1C]))->green, - ((LevelHeader_70*)(((u8**)(&((LevelHeader **)(gCurrentLevelHeader2))[levelHeaderIndex]))[0x1C]))->blue, - ((LevelHeader_70*)(((u8**)(&((LevelHeader **)(gCurrentLevelHeader2))[levelHeaderIndex]))[0x1C]))->alpha - ); - } else { - gDPSetEnvColor(gSceneCurrDisplayList++, 255, 255, 255, 0); - } - if (batchFlags & RENDER_UNK_0040000) { // Only gets used in Spaceport alpha for the pulsating lights in the outside section. - color = gCurrentLevelHeader2->pulseLightData->outColorValue & 0xFF; - gDPSetPrimColor(gSceneCurrDisplayList++, 0, 0, color, color, color, color); - func_8007BA5C(&gSceneCurrDisplayList, texture, batchFlags, texOffset); - gSPVertexDKR(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(vertices), numberVertices, 0); - gSPPolygon(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(triangles), numberTriangles, TRIN_ENABLE_TEXTURE); - gDPSetPrimColor(gSceneCurrDisplayList++, 0, 0, 255, 255, 255, 255); // Reset the primitive color - } else { - load_and_set_texture(&gSceneCurrDisplayList, texture, batchFlags, texOffset); - batchFlags = TRIN_ENABLE_TEXTURE; - if(texture == NULL) { - batchFlags = TRIN_DISABLE_TEXTURE; - } - gSPVertexDKR(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(vertices), numberVertices, 0); - gSPPolygon(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(triangles), numberTriangles, batchFlags); - } + } + if (!renderBatch) { + continue; + } + numberTriangles = batchInfo->facesOffset; + do { //Fakematch + numberVertices = (batchInfo + 1)->verticesOffset - batchInfo->verticesOffset; + numberTriangles = (batchInfo + 1)->facesOffset - numberTriangles; + vertices = (s32) &segment->vertices[batchInfo->verticesOffset]; + } while (0); + triangles = (s32) &segment->triangles[batchInfo->facesOffset]; + texOffset = batchInfo->unk7 << 14; + levelHeaderIndex = (batchFlags >> 28) & 7; + if (levelHeaderIndex != (batchInfo->verticesOffset * 0)) { + gDPSetEnvColor(gSceneCurrDisplayList++, + ((LevelHeader_70 *)((u8 **)(&((LevelHeader **) gCurrentLevelHeader2)[levelHeaderIndex]))[28])->red, + ((LevelHeader_70 *)((u8 **)(&((LevelHeader **) gCurrentLevelHeader2)[levelHeaderIndex]))[28])->green, + ((LevelHeader_70 *)((u8 **)(&((LevelHeader **) gCurrentLevelHeader2)[levelHeaderIndex]))[28])->blue, + ((LevelHeader_70 *)((u8 **)(&((LevelHeader **) gCurrentLevelHeader2)[levelHeaderIndex]))[28])->alpha); + } else { + gDPSetEnvColor(gSceneCurrDisplayList++, 255, 255, 255, 0); + } + if (batchFlags & BATCH_FLAGS_PULSATING_LIGHTS) { + color = gCurrentLevelHeader2->pulseLightData->outColorValue; + gDPSetPrimColor(gSceneCurrDisplayList++, 0, 0, color, color, color, color); + load_blinking_lights_texture(&gSceneCurrDisplayList, texture, batchFlags, texOffset); + gSPVertexDKR(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(vertices), numberVertices, 0); + gSPPolygon(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(triangles), numberTriangles, TRIN_ENABLE_TEXTURE); + gDPSetPrimColor(gSceneCurrDisplayList++, 0, 0, 255, 255, 255, 255); + } else { + load_and_set_texture(&gSceneCurrDisplayList, texture, batchFlags, texOffset); + batchFlags = TRUE; + if (texture == NULL) { + batchFlags = FALSE; } + gSPVertexDKR(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(vertices), numberVertices, 0); + gSPPolygon(gSceneCurrDisplayList++, OS_PHYSICAL_TO_K0(triangles), numberTriangles, batchFlags); } } } -#else -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/render_level_segment.s") -#endif +/** + * Parse through applicable segments in the level. + * Uses function recursion to ensure adjacent segments remain next to each other in the list. +*/ void traverse_segments_bsp_tree(s32 nodeIndex, s32 segmentIndex, s32 segmentIndex2, u8 *segmentsOrder, s32 *segmentsOrderIndex) { BspTreeNode *curNode; s32 camValue; curNode = &gCurrentLevelModel->segmentsBspTree[nodeIndex]; if (curNode->splitType == 0) { - camValue = D_8011B0B0->trans.x_position; // Camera X + camValue = gSceneActiveCamera->trans.x_position; // Camera X } else if (curNode->splitType == 1) { - camValue = D_8011B0B0->trans.y_position; // Camera Y + camValue = gSceneActiveCamera->trans.y_position; // Camera Y } else { - camValue = D_8011B0B0->trans.z_position; // Camera Z + camValue = gSceneActiveCamera->trans.z_position; // Camera Z } if (camValue < curNode->splitValue) { @@ -970,17 +983,20 @@ void traverse_segments_bsp_tree(s32 nodeIndex, s32 segmentIndex, s32 segmentInde } } +/** + * Add this segment index to the specified segment ordering table if the segment in question is in view of the camera. +*/ void add_segment_to_order(s32 segmentIndex, s32 *segmentsOrderIndex, u8 *segmentsOrder) { u32 temp; if (segmentIndex < gCurrentLevelModel->numberOfSegments) { - if (D_8011B0D4 != -1) { - temp = gCurrentLevelModel->segmentsBitfields[D_8011B0D4 + (segmentIndex >> 3)]; + if (gSceneStartSegment != -1) { + temp = gCurrentLevelModel->segmentsBitfields[gSceneStartSegment + (segmentIndex >> 3)]; temp >>= segmentIndex & 7; temp &= 0xFF; } else { temp = 1; } - if ((temp & 1) && should_segment_be_visible(&gCurrentLevelModel->segmentsBoundingBoxes[segmentIndex])) { + if (temp & 1 && should_segment_be_visible(&gCurrentLevelModel->segmentsBoundingBoxes[segmentIndex])) { segmentsOrder[(*segmentsOrderIndex)++] = segmentIndex; } } @@ -1034,7 +1050,7 @@ s32 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos) { for (i = 0; i < gCurrentLevelModel->numberOfSegments; i++) { bb = &gCurrentLevelModel->segmentsBoundingBoxes[i]; - if ((x < bb->x2) && (bb->x1 < x) && (z < bb->z2) && (bb->z1 < z)) { + if (x < bb->x2 && bb->x1 < x && z < bb->z2 && bb->z1 < z) { heightDiff = (bb->y2 + bb->y1) >> 1; // Couldn't get / 2 to match, but >> 1 does. heightDiff = y - heightDiff; if (heightDiff < 0) { @@ -1137,7 +1153,7 @@ s32 should_segment_be_visible(LevelModelSegmentBoundingBox *bb) { dirZ = D_8011D0F8[j].unk8; dirW = D_8011D0F8[j].unkC; - for (i = 0, isVisible = FALSE; (i < 8) && (!isVisible); i++) { + for (i = 0, isVisible = FALSE; i < 8 && !isVisible; i++) { if (i & 1) { sp48 = bb->x1 * dirX; } else { @@ -1517,8 +1533,8 @@ void func_8002C7D4(void) { free_from_memory_pool(D_8011D338[i]); } func_800257D0(); - if (D_8011B0B8 != NULL) { - gParticlePtrList_addObject(D_8011B0B8); + if (gSkydomeSegment != NULL) { + gParticlePtrList_addObject(gSkydomeSegment); gParticlePtrList_flush(); } func_8000C604(); @@ -1728,7 +1744,7 @@ void func_8002D670(Object *obj, Object_50 *arg1) { } } -void func_8002D8DC(s32 arg0, s32 arg1, s32 arg2) { +void func_8002D8DC(s32 arg0, s32 arg1, s32 updateRate) { s32 sp94; s32 sp90; Object *obj; @@ -1806,7 +1822,7 @@ void func_8002D8DC(s32 arg0, s32 arg1, s32 arg2) { obj58->unk8 = -1; D_8011D0D4 = 1.0f; obj58_4 = obj58->unk4; - if (obj58_4 != NULL && arg2 != 0 && obj58_4->unk12 != 0x100) { + if (obj58_4 != NULL && updateRate != 0 && obj58_4->unk12 != 0x100) { obj58->unkC += obj58->unkE; while (obj58_4->unk12 < obj58->unkC) { obj58->unkC -= obj58_4->unk12; @@ -2070,33 +2086,39 @@ void func_80030DE0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030DE0.s") #endif -UNUSED void func_80030FA0(void) { - D_8011B0B0 = get_active_camera_segment(); - func_80031018(); - set_and_normalize_D_8011AFE8((f32) D_8011D468.x / 65536.0f, (f32) D_8011D468.y / 65536.0f, (f32) D_8011D468.z / 65536.0f); +/** + * Updates the stored perspective of the camera, as well as the envmap values derived from it. +*/ +UNUSED void update_perspective_and_envmap(void) { + gSceneActiveCamera = get_active_camera_segment(); + compute_scene_camera_transform_matrix(); + update_envmap_position((f32) gScenePerspectivePos.x / 65536.0f, (f32) gScenePerspectivePos.y / 65536.0f, (f32) gScenePerspectivePos.z / 65536.0f); } -void func_80031018(void) { - Matrix mf; +/** + * Take the current camera position and calculate the perspective position, for envmapping. +*/ +void compute_scene_camera_transform_matrix(void) { + Matrix mtx; ObjectTransform trans; f32 x = 0.0f; f32 y = 0.0f; f32 z = -65536.0f; - trans.z_rotation = D_8011B0B0->trans.z_rotation; - trans.x_rotation = D_8011B0B0->trans.x_rotation; - trans.y_rotation = D_8011B0B0->trans.y_rotation; + trans.z_rotation = gSceneActiveCamera->trans.z_rotation; + trans.x_rotation = gSceneActiveCamera->trans.x_rotation; + trans.y_rotation = gSceneActiveCamera->trans.y_rotation; trans.x_position = 0.0f; trans.y_position = 0.0f; trans.z_position = 0.0f; trans.scale = 1.0f; - object_transform_to_matrix(mf, &trans); - guMtxXFMF(mf, x, y, z, &x, &y, &z); + object_transform_to_matrix(mtx, &trans); + guMtxXFMF(mtx, x, y, z, &x, &y, &z); //Store x/y/z as integers - D_8011D468.x = (s32)x; - D_8011D468.y = (s32)y; - D_8011D468.z = (s32)z; + gScenePerspectivePos.x = (s32)x; + gScenePerspectivePos.y = (s32)y; + gScenePerspectivePos.z = (s32)z; } diff --git a/src/unknown_0255E0.h b/src/unknown_0255E0.h index 51365160..380d264c 100644 --- a/src/unknown_0255E0.h +++ b/src/unknown_0255E0.h @@ -9,6 +9,42 @@ #define LOCAL_OFFSET_TO_RAM_ADDRESS(type, ptr) \ ptr = (type)((s32)((u8*)ptr) + (s32)((u8*)mdl)) +enum TriangleBatchFlags { + BATCH_FLAGS_NONE = 0, + BATCH_FLAGS_UNK00000001 = (1 << 0), + BATCH_FLAGS_UNK00000002 = (1 << 1), + BATCH_FLAGS_UNK00000004 = (1 << 2), + BATCH_FLAGS_UNK00000008 = (1 << 3), + BATCH_FLAGS_DEPTH_WRITE = (1 << 4), + BATCH_FLAGS_UNK00000020 = (1 << 5), + BATCH_FLAGS_UNK00000040 = (1 << 6), + BATCH_FLAGS_UNK00000080 = (1 << 7), + BATCH_FLAGS_HIDDEN = (1 << 8), + BATCH_FLAGS_UNK00000200 = (1 << 9), + BATCH_FLAGS_UNK00000400 = (1 << 10), + BATCH_FLAGS_UNK00000800 = (1 << 11), + BATCH_FLAGS_UNK00001000 = (1 << 12), + BATCH_FLAGS_UNK00002000 = (1 << 13), + BATCH_FLAGS_UNK00004000 = (1 << 14), + BATCH_FLAGS_ENVMAP = (1 << 15), + BATCH_FLAGS_TEXTURE_ANIM = (1 << 16), + BATCH_FLAGS_UNK00020000 = (1 << 17), + BATCH_FLAGS_PULSATING_LIGHTS = (1 << 18), + BATCH_FLAGS_UNK00080000 = (1 << 19), + BATCH_FLAGS_UNK00100000 = (1 << 20), + BATCH_FLAGS_UNK00200000 = (1 << 21), + BATCH_FLAGS_UNK00400000 = (1 << 22), + BATCH_FLAGS_UNK00800000 = (1 << 23), + BATCH_FLAGS_UNK01000000 = (1 << 24), + BATCH_FLAGS_UNK02000000 = (1 << 25), + BATCH_FLAGS_UNK04000000 = (1 << 26), + BATCH_FLAGS_UNK08000000 = (1 << 27), + BATCH_FLAGS_UNK10000000 = (1 << 28), + BATCH_FLAGS_UNK20000000 = (1 << 29), + BATCH_FLAGS_UNK40000000 = (1 << 30), + BATCH_FLAGS_UNK80000000 = (1 << 31), +}; + /* Size: 0x8 bytes */ typedef struct unknown800DC874 { union { @@ -66,12 +102,6 @@ typedef struct unk8011D388 { Object *unk34; } unk8011D388; -typedef struct { - /* 0x00 */ s32 x; - /* 0x04 */ s32 y; - /* 0x08 */ s32 z; -} unk8011D468; - typedef struct WaterProperties { f32 waveHeight; f32 rotX; @@ -104,7 +134,7 @@ extern s8 D_800DC92C[24]; s32 func_800249E0(s32 arg0); void func_800257D0(void); void func_80027FC4(s32 arg0); -void func_80028044(s32 arg0); +void set_skydome_visbility(s32 renderSky); void render_skydome(void); void func_80028FA0(s32 arg0); void add_segment_to_order(s32 segmentIndex, s32 *segmentsOrderIndex, u8 *segmentsOrder); @@ -121,8 +151,8 @@ void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, u8 *arg3, u8 *arg4, u8 *arg5) void func_800307BC(s32 arg0); void func_80030838(s32 arg0, s32 arg1); void func_8003093C(s32 arg0); -void func_80031018(void); -void func_80027E24(s32 arg0); +void compute_scene_camera_transform_matrix(void); +void func_80027E24(s32 updateRate); s32 check_if_inside_segment(Object *obj, s32 segmentIndex); s32 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos); void traverse_segments_bsp_tree(s32 nodeIndex, s32 segmentIndex, s32 segmentIndex2, u8 *segmentsOrder, s32 *segmentsOrderIndex); @@ -135,14 +165,13 @@ void func_8002C954(LevelModelSegment *segment, LevelModelSegmentBoundingBox *bbo void draw_gradient_background(void); void func_8002D8DC(s32 arg0, s32 arg1, s32 arg2); void obj_loop_fogchanger(Object* obj); -void func_80028CD0(s32 updateRate); +void initialise_player_viewport_vars(s32 updateRate); s32 get_wave_properties(f32 yPos, f32 *waterHeight, Vec3f *rotation); - - -//Non Matching void render_level_segment(s32 segmentId, s32 nonOpaque); +void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, TriangleList** tris, s32 updateRate); + + void func_80030664(s32 arg0, s16 arg1, s16 arg2, u8 arg3, u8 arg4, u8 arg5); -void render_scene(Gfx** dList, MatrixS** mtx, Vertex** vtx, s8** tris, s32 updateRate); void func_8002C7D4(void); Gfx *func_8002581C(u8 *segmentIds, s32 numberOfSegments, s32 currentViewportIndex); s32 func_80027568(void); @@ -150,7 +179,7 @@ s32 func_8002CC30(LevelModelSegment*); s8 func_8002B0F4(s16, f32 xPos, f32 zPos, struct TempStruct8**); void func_800278E8(s32); void func_80028050(void); -void func_80028CD0(s32); +void initialise_player_viewport_vars(s32); void func_8002A31C(void); void func_8007F24C(s8*, s32); void func_800AD030(ObjectSegment*); diff --git a/tools/python/score.py b/tools/python/score.py index 5003f853..59276460 100644 --- a/tools/python/score.py +++ b/tools/python/score.py @@ -126,6 +126,9 @@ class ScoreFile: except Exception: pass + def get_number_of_functions(self): + return len(self.functions) + def get_number_of_documented_functions(self): count = 0 for func in self.functions: @@ -167,6 +170,8 @@ def main(): totalNumberOfNonEquivalent = 0 totalSizeOfDecompiledFunctions = 0 totalSizeOfDocumentedFunctions = 0 + ignoreNumberDocumentedFunctions = 0 + ignoreSizeDocumentedFunctions = 0 srcFilenames = FileUtil.get_filenames_from_directory_recursive(SRC_DIRECTORY, extensions=('.c')) for filename in srcFilenames: @@ -176,6 +181,7 @@ def main(): skipThis = True break if not skipThis: + # Get score properties of dkr functions. scoreFile = ScoreFile(SRC_DIRECTORY + '/' + filename) totalNumberOfDecompiledFunctions += len(scoreFile.functions) totalNumberOfGlobalAsms += scoreFile.numGlobalAsms @@ -185,14 +191,17 @@ def main(): totalSizeOfDecompiledFunctions += scoreFile.get_size_of_functions() totalSizeOfDocumentedFunctions += scoreFile.get_size_of_documented_functions() scoreFiles.append(scoreFile) + # Get score properties of libultra functions. srcFilenames = FileUtil.get_filenames_from_directory_recursive(LIB_SRC_DIRECTORY, extensions=('.c')) for filename in srcFilenames: scoreFile = ScoreFile(LIB_SRC_DIRECTORY + '/' + filename) totalNumberOfDecompiledFunctions += len(scoreFile.functions) totalNumberOfGlobalAsms += scoreFile.numGlobalAsms - totalNumberOfDocumentedFunctions += scoreFile.get_number_of_documented_functions() + #totalNumberOfDocumentedFunctions += scoreFile.get_number_of_documented_functions() + ignoreNumberDocumentedFunctions += scoreFile.get_number_of_functions() totalSizeOfDecompiledFunctions += scoreFile.get_size_of_functions() - totalSizeOfDocumentedFunctions += scoreFile.get_size_of_documented_functions() + #totalSizeOfDocumentedFunctions += scoreFile.get_size_of_documented_functions() + ignoreSizeDocumentedFunctions += scoreFile.get_size_of_functions() scoreFiles.append(scoreFile) @@ -202,10 +211,10 @@ def main(): totalSizeOfDecompiledFunctions += MAP_FILE.functionSizes[asm_function] adventureOnePercentage = (totalSizeOfDecompiledFunctions / CODE_SIZE) * 100 - adventureTwoPercentage = (totalSizeOfDocumentedFunctions / CODE_SIZE) * 100 + adventureTwoPercentage = (totalSizeOfDocumentedFunctions / (CODE_SIZE - ignoreSizeDocumentedFunctions)) * 100 scoreDisplay = ScoreDisplay() - print(scoreDisplay.getDisplay(adventureOnePercentage, adventureTwoPercentage, adventureSelect, totalNumberOfDecompiledFunctions, totalNumberOfGlobalAsms, totalNumberOfNonMatching, totalNumberOfNonEquivalent, totalNumberOfDocumentedFunctions, totalNumberOfFunctions - totalNumberOfDocumentedFunctions)) + print(scoreDisplay.getDisplay(adventureOnePercentage, adventureTwoPercentage, adventureSelect, totalNumberOfDecompiledFunctions, totalNumberOfGlobalAsms, totalNumberOfNonMatching, totalNumberOfNonEquivalent, totalNumberOfDocumentedFunctions, (totalNumberOfFunctions - ignoreNumberDocumentedFunctions) - totalNumberOfDocumentedFunctions)) if showTopFiles > 0: if showTopFiles > len(scoreFiles): @@ -224,4 +233,4 @@ def main(): print("", funcName, (" " * (24 - len(funcName))), "| {:5.2f}% | {:5.2f}% |".format(percentageRemaining, percentageDone)) -main() +main() \ No newline at end of file