From 154ca886d218584e6463cac29dad6c7c0fc20f6e Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Sun, 4 Dec 2022 18:43:29 +0000 Subject: [PATCH] 40% (#317) * match func_8002A5F8 * match func_8002A900 * identify function * bit more function identification * funny label * nonmatching func_8002C0C4 * prelim * match func_800289B8 * match func_8002D8DC * match obj_loop_fogchanger * identify some render mode flags * match func_80028CD0 * Update camera.c * match func_80055EC0 * Update camera.c * match drop_bananas * Update racer.c * prelim * match obj_loop_wizpigship and obj_loop_trophycab * Update object_functions.c * Update object_functions.c * match obj_loop_ttdoor * a * match obj_loop_collectegg and func_80056E2C * match obj_loop_weather * rename a func * fixed object_functions.c warnings * match obj_loop_silvercoin * match obj_loop_bombexplosion * match func_8003FC44 and obj_loop_flycoin * quick fixes * Update include/structs.h Co-authored-by: Ryan Myers * Update objects.c * Update object_functions.c Co-authored-by: Ryan Myers --- asm/non_matchings/game_ui/func_800A7A60.s | 2 +- asm/non_matchings/objects/func_80012F94.s | 2 +- asm/non_matchings/racer/drop_bananas.s | 189 - asm/non_matchings/racer/func_80046524.s | 5486 ++++++++-------- asm/non_matchings/racer/func_80049794.s | 5750 ++++++++--------- asm/non_matchings/racer/func_8004F7F4.s | 2150 +++--- asm/non_matchings/racer/func_80055EC0.s | 742 --- asm/non_matchings/racer/func_80056E2C.s | 149 - asm/non_matchings/racer/func_8005B818.s | 2 +- .../unknown_0255E0/func_80027568.s | 2 +- .../unknown_0255E0/func_80028CD0.s | 188 - .../unknown_032760/func_8003FC44.s | 77 - .../unknown_032760/obj_loop_bombexplosion.s | 97 - .../unknown_032760/obj_loop_collectegg.s | 278 - .../unknown_032760/obj_loop_flycoin.s | 88 - .../unknown_032760/obj_loop_silvercoin.s | 95 - .../unknown_032760/obj_loop_trophycab.s | 252 - .../unknown_032760/obj_loop_ttdoor.s | 236 - .../unknown_032760/obj_loop_weather.s | 73 - .../unknown_032760/obj_loop_wizpigship.s | 232 - include/level_object_entries.h | 6 + include/sound_ids.h | 4 +- include/structs.h | 58 +- src/audio.h | 2 +- src/camera.c | 6 +- src/camera.h | 2 +- src/game_ui.c | 2 +- src/object_functions.c | 704 +- src/object_functions.h | 12 +- src/objects.c | 26 +- src/objects.h | 3 +- src/racer.c | 491 +- src/racer.h | 38 +- src/unknown_008C40.h | 2 +- src/unknown_0255E0.c | 12 +- src/unknown_0255E0.h | 1 + src/unknown_032760.h | 1 + src/unknown_05CEF0.c | 4 +- src/waves.h | 2 + src/weather.h | 2 + 40 files changed, 7771 insertions(+), 9697 deletions(-) delete mode 100644 asm/non_matchings/racer/drop_bananas.s delete mode 100644 asm/non_matchings/racer/func_80055EC0.s delete mode 100644 asm/non_matchings/racer/func_80056E2C.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_80028CD0.s delete mode 100644 asm/non_matchings/unknown_032760/func_8003FC44.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_bombexplosion.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_collectegg.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_flycoin.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_silvercoin.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_trophycab.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_ttdoor.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_weather.s delete mode 100644 asm/non_matchings/unknown_032760/obj_loop_wizpigship.s diff --git a/asm/non_matchings/game_ui/func_800A7A60.s b/asm/non_matchings/game_ui/func_800A7A60.s index 331ee232..6db28e0d 100644 --- a/asm/non_matchings/game_ui/func_800A7A60.s +++ b/asm/non_matchings/game_ui/func_800A7A60.s @@ -7,7 +7,7 @@ glabel func_800A7A60 /* 0A8674 800A7A74 00000000 */ nop /* 0A8678 800A7A78 11C00038 */ beqz $t6, .L800A7B5C /* 0A867C 800A7A7C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A8680 800A7A80 0C019888 */ jal get_object_render_stack_pos +/* 0A8680 800A7A80 0C019888 */ jal get_current_viewport /* 0A8684 800A7A84 AFA30024 */ sw $v1, 0x24($sp) /* 0A8688 800A7A88 8FA30024 */ lw $v1, 0x24($sp) /* 0A868C 800A7A8C 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 diff --git a/asm/non_matchings/objects/func_80012F94.s b/asm/non_matchings/objects/func_80012F94.s index 1fefb981..7bded792 100644 --- a/asm/non_matchings/objects/func_80012F94.s +++ b/asm/non_matchings/objects/func_80012F94.s @@ -87,7 +87,7 @@ glabel func_80012F94 /* 013CA4 800130A4 01E27821 */ addu $t7, $t7, $v0 /* 013CA8 800130A8 000F7840 */ sll $t7, $t7, 1 /* 013CAC 800130AC 00AF2821 */ addu $a1, $a1, $t7 -/* 013CB0 800130B0 0C019888 */ jal get_object_render_stack_pos +/* 013CB0 800130B0 0C019888 */ jal get_current_viewport /* 013CB4 800130B4 AFA50038 */ sw $a1, 0x38($sp) /* 013CB8 800130B8 8FAA0024 */ lw $t2, 0x24($sp) /* 013CBC 800130BC 8FA50038 */ lw $a1, 0x38($sp) diff --git a/asm/non_matchings/racer/drop_bananas.s b/asm/non_matchings/racer/drop_bananas.s deleted file mode 100644 index 90c3e3ea..00000000 --- a/asm/non_matchings/racer/drop_bananas.s +++ /dev/null @@ -1,189 +0,0 @@ -glabel drop_bananas -/* 0582E0 800576E0 27BDFF70 */ addiu $sp, $sp, -0x90 -/* 0582E4 800576E4 AFBF005C */ sw $ra, 0x5c($sp) -/* 0582E8 800576E8 AFB20048 */ sw $s2, 0x48($sp) -/* 0582EC 800576EC AFB10044 */ sw $s1, 0x44($sp) -/* 0582F0 800576F0 AFB00040 */ sw $s0, 0x40($sp) -/* 0582F4 800576F4 00A08025 */ move $s0, $a1 -/* 0582F8 800576F8 00C08825 */ move $s1, $a2 -/* 0582FC 800576FC 00809025 */ move $s2, $a0 -/* 058300 80057700 AFB60058 */ sw $s6, 0x58($sp) -/* 058304 80057704 AFB50054 */ sw $s5, 0x54($sp) -/* 058308 80057708 AFB40050 */ sw $s4, 0x50($sp) -/* 05830C 8005770C AFB3004C */ sw $s3, 0x4c($sp) -/* 058310 80057710 E7BD0038 */ swc1 $f29, 0x38($sp) -/* 058314 80057714 E7BC003C */ swc1 $f28, 0x3c($sp) -/* 058318 80057718 E7BB0030 */ swc1 $f27, 0x30($sp) -/* 05831C 8005771C E7BA0034 */ swc1 $f26, 0x34($sp) -/* 058320 80057720 E7B90028 */ swc1 $f25, 0x28($sp) -/* 058324 80057724 E7B8002C */ swc1 $f24, 0x2c($sp) -/* 058328 80057728 E7B70020 */ swc1 $f23, 0x20($sp) -/* 05832C 8005772C E7B60024 */ swc1 $f22, 0x24($sp) -/* 058330 80057730 E7B50018 */ swc1 $f21, 0x18($sp) -/* 058334 80057734 0C0270C3 */ jal get_filtered_cheats -/* 058338 80057738 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 05833C 8005773C 304E0080 */ andi $t6, $v0, 0x80 -/* 058340 80057740 15C00088 */ bnez $t6, .L80057964 -/* 058344 80057744 8FBF005C */ lw $ra, 0x5c($sp) -/* 058348 80057748 82020185 */ lb $v0, 0x185($s0) -/* 05834C 8005774C A2000188 */ sb $zero, 0x188($s0) -/* 058350 80057750 0051082A */ slt $at, $v0, $s1 -/* 058354 80057754 10200002 */ beqz $at, .L80057760 -/* 058358 80057758 00000000 */ nop -/* 05835C 8005775C 00408825 */ move $s1, $v0 -.L80057760: -/* 058360 80057760 1A20007F */ blez $s1, .L80057960 -/* 058364 80057764 2A210003 */ slti $at, $s1, 3 -/* 058368 80057768 1020007D */ beqz $at, .L80057960 -/* 05836C 8005776C 24080008 */ li $t0, 8 -/* 058370 80057770 860F01A4 */ lh $t7, 0x1a4($s0) -/* 058374 80057774 2409000C */ li $t1, 12 -/* 058378 80057778 A7AF0078 */ sh $t7, 0x78($sp) -/* 05837C 8005777C 86580002 */ lh $t8, 2($s2) -/* 058380 80057780 27A40078 */ addiu $a0, $sp, 0x78 -/* 058384 80057784 A7B8007A */ sh $t8, 0x7a($sp) -/* 058388 80057788 861901A0 */ lh $t9, 0x1a0($s0) -/* 05838C 8005778C A7A00070 */ sh $zero, 0x70($sp) -/* 058390 80057790 A7A80072 */ sh $t0, 0x72($sp) -/* 058394 80057794 A7A90074 */ sh $t1, 0x74($sp) -/* 058398 80057798 27A50070 */ addiu $a1, $sp, 0x70 -/* 05839C 8005779C 0C01C079 */ jal s16_vec3_apply_object_rotation -/* 0583A0 800577A0 A7B9007C */ sh $t9, 0x7c($sp) -/* 0583A4 800577A4 444BF800 */ cfc1 $t3, $31 -/* 0583A8 800577A8 C644000C */ lwc1 $f4, 0xc($s2) -/* 0583AC 800577AC 35610003 */ ori $at, $t3, 3 -/* 0583B0 800577B0 38210002 */ xori $at, $at, 2 -/* 0583B4 800577B4 44C1F800 */ ctc1 $at, $31 -/* 0583B8 800577B8 87AA0070 */ lh $t2, 0x70($sp) -/* 0583BC 800577BC 460021A4 */ cvt.w.s $f6, $f4 -/* 0583C0 800577C0 87AE0072 */ lh $t6, 0x72($sp) -/* 0583C4 800577C4 44CBF800 */ ctc1 $t3, $31 -/* 0583C8 800577C8 440C3000 */ mfc1 $t4, $f6 -/* 0583CC 800577CC 87A80074 */ lh $t0, 0x74($sp) -/* 0583D0 800577D0 444FF800 */ cfc1 $t7, $31 -/* 0583D4 800577D4 014C6821 */ addu $t5, $t2, $t4 -/* 0583D8 800577D8 35E10003 */ ori $at, $t7, 3 -/* 0583DC 800577DC A7AD008A */ sh $t5, 0x8a($sp) -/* 0583E0 800577E0 38210002 */ xori $at, $at, 2 -/* 0583E4 800577E4 44C1F800 */ ctc1 $at, $31 -/* 0583E8 800577E8 C6480010 */ lwc1 $f8, 0x10($s2) -/* 0583EC 800577EC 240C0008 */ li $t4, 8 -/* 0583F0 800577F0 460042A4 */ cvt.w.s $f10, $f8 -/* 0583F4 800577F4 240D0053 */ li $t5, 83 -/* 0583F8 800577F8 44CFF800 */ ctc1 $t7, $31 -/* 0583FC 800577FC 44185000 */ mfc1 $t8, $f10 -/* 058400 80057800 4480C000 */ mtc1 $zero, $f24 -/* 058404 80057804 4449F800 */ cfc1 $t1, $31 -/* 058408 80057808 01D8C821 */ addu $t9, $t6, $t8 -/* 05840C 8005780C 35210003 */ ori $at, $t1, 3 -/* 058410 80057810 38210002 */ xori $at, $at, 2 -/* 058414 80057814 44C1F800 */ ctc1 $at, $31 -/* 058418 80057818 A7B9008C */ sh $t9, 0x8c($sp) -/* 05841C 8005781C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 058420 80057820 C6500014 */ lwc1 $f16, 0x14($s2) -/* 058424 80057824 4481E000 */ mtc1 $at, $f28 -/* 058428 80057828 3C01BF00 */ li $at, 0xBF000000 # -0.500000 -/* 05842C 8005782C 460084A4 */ cvt.w.s $f18, $f16 -/* 058430 80057830 4481D000 */ mtc1 $at, $f26 -/* 058434 80057834 3C014014 */ li $at, 0x40140000 # 2.312500 -/* 058438 80057838 440B9000 */ mfc1 $t3, $f18 -/* 05843C 8005783C 4481B800 */ mtc1 $at, $f23 -/* 058440 80057840 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 058444 80057844 44C9F800 */ ctc1 $t1, $31 -/* 058448 80057848 010B5021 */ addu $t2, $t0, $t3 -/* 05844C 8005784C 4481A000 */ mtc1 $at, $f20 -/* 058450 80057850 4480B000 */ mtc1 $zero, $f22 -/* 058454 80057854 A7AA008E */ sh $t2, 0x8e($sp) -/* 058458 80057858 A3AC0089 */ sb $t4, 0x89($sp) -/* 05845C 8005785C A3AD0088 */ sb $t5, 0x88($sp) -/* 058460 80057860 02209825 */ move $s3, $s1 -/* 058464 80057864 24120001 */ li $s2, 1 -/* 058468 80057868 24160002 */ li $s6, 2 -/* 05846C 8005786C 27B50088 */ addiu $s5, $sp, 0x88 -/* 058470 80057870 24140040 */ li $s4, 64 -.L80057874: -/* 058474 80057874 0C01AF66 */ jal get_current_level_race_type -/* 058478 80057878 00000000 */ nop -/* 05847C 8005787C 12820033 */ beq $s4, $v0, .L8005794C -/* 058480 80057880 02A02025 */ move $a0, $s5 -/* 058484 80057884 0C003A95 */ jal spawn_object -/* 058488 80057888 02402825 */ move $a1, $s2 -/* 05848C 8005788C 1040002F */ beqz $v0, .L8005794C -/* 058490 80057890 00000000 */ nop -/* 058494 80057894 AC40003C */ sw $zero, 0x3c($v0) -/* 058498 80057898 8C430064 */ lw $v1, 0x64($v0) -/* 05849C 8005789C 820F01D6 */ lb $t7, 0x1d6($s0) -/* 0584A0 800578A0 00000000 */ nop -/* 0584A4 800578A4 A06F0009 */ sb $t7, 9($v1) -/* 0584A8 800578A8 C6040038 */ lwc1 $f4, 0x38($s0) -/* 0584AC 800578AC 00000000 */ nop -/* 0584B0 800578B0 46142182 */ mul.s $f6, $f4, $f20 -/* 0584B4 800578B4 E446001C */ swc1 $f6, 0x1c($v0) -/* 0584B8 800578B8 C608003C */ lwc1 $f8, 0x3c($s0) -/* 0584BC 800578BC 00000000 */ nop -/* 0584C0 800578C0 4608C281 */ sub.s $f10, $f24, $f8 -/* 0584C4 800578C4 46005421 */ cvt.d.s $f16, $f10 -/* 0584C8 800578C8 46368480 */ add.d $f18, $f16, $f22 -/* 0584CC 800578CC 46209120 */ cvt.s.d $f4, $f18 -/* 0584D0 800578D0 E4440020 */ swc1 $f4, 0x20($v0) -/* 0584D4 800578D4 C6060040 */ lwc1 $f6, 0x40($s0) -/* 0584D8 800578D8 00000000 */ nop -/* 0584DC 800578DC 46143202 */ mul.s $f8, $f6, $f20 -/* 0584E0 800578E0 16760019 */ bne $s3, $s6, .L80057948 -/* 0584E4 800578E4 E4480024 */ swc1 $f8, 0x24($v0) -/* 0584E8 800578E8 16320002 */ bne $s1, $s2, .L800578F4 -/* 0584EC 800578EC 4600D006 */ mov.s $f0, $f26 -/* 0584F0 800578F0 4600E006 */ mov.s $f0, $f28 -.L800578F4: -/* 0584F4 800578F4 C60A0050 */ lwc1 $f10, 0x50($s0) -/* 0584F8 800578F8 C6100038 */ lwc1 $f16, 0x38($s0) -/* 0584FC 800578FC C446001C */ lwc1 $f6, 0x1c($v0) -/* 058500 80057900 46105481 */ sub.s $f18, $f10, $f16 -/* 058504 80057904 C44A0020 */ lwc1 $f10, 0x20($v0) -/* 058508 80057908 46009102 */ mul.s $f4, $f18, $f0 -/* 05850C 8005790C 46043201 */ sub.s $f8, $f6, $f4 -/* 058510 80057910 E448001C */ swc1 $f8, 0x1c($v0) -/* 058514 80057914 C6100054 */ lwc1 $f16, 0x54($s0) -/* 058518 80057918 00000000 */ nop -/* 05851C 8005791C 46008482 */ mul.s $f18, $f16, $f0 -/* 058520 80057920 46125181 */ sub.s $f6, $f10, $f18 -/* 058524 80057924 C4520024 */ lwc1 $f18, 0x24($v0) -/* 058528 80057928 E4460020 */ swc1 $f6, 0x20($v0) -/* 05852C 8005792C C6080040 */ lwc1 $f8, 0x40($s0) -/* 058530 80057930 C6040058 */ lwc1 $f4, 0x58($s0) -/* 058534 80057934 00000000 */ nop -/* 058538 80057938 46082401 */ sub.s $f16, $f4, $f8 -/* 05853C 8005793C 46008282 */ mul.s $f10, $f16, $f0 -/* 058540 80057940 460A9181 */ sub.s $f6, $f18, $f10 -/* 058544 80057944 E4460024 */ swc1 $f6, 0x24($v0) -.L80057948: -/* 058548 80057948 AC520078 */ sw $s2, 0x78($v0) -.L8005794C: -/* 05854C 8005794C 820E0185 */ lb $t6, 0x185($s0) -/* 058550 80057950 2631FFFF */ addiu $s1, $s1, -1 -/* 058554 80057954 25D8FFFF */ addiu $t8, $t6, -1 -/* 058558 80057958 1E20FFC6 */ bgtz $s1, .L80057874 -/* 05855C 8005795C A2180185 */ sb $t8, 0x185($s0) -.L80057960: -/* 058560 80057960 8FBF005C */ lw $ra, 0x5c($sp) -.L80057964: -/* 058564 80057964 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 058568 80057968 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 05856C 8005796C C7B70020 */ lwc1 $f23, 0x20($sp) -/* 058570 80057970 C7B60024 */ lwc1 $f22, 0x24($sp) -/* 058574 80057974 C7B90028 */ lwc1 $f25, 0x28($sp) -/* 058578 80057978 C7B8002C */ lwc1 $f24, 0x2c($sp) -/* 05857C 8005797C C7BB0030 */ lwc1 $f27, 0x30($sp) -/* 058580 80057980 C7BA0034 */ lwc1 $f26, 0x34($sp) -/* 058584 80057984 C7BD0038 */ lwc1 $f29, 0x38($sp) -/* 058588 80057988 C7BC003C */ lwc1 $f28, 0x3c($sp) -/* 05858C 8005798C 8FB00040 */ lw $s0, 0x40($sp) -/* 058590 80057990 8FB10044 */ lw $s1, 0x44($sp) -/* 058594 80057994 8FB20048 */ lw $s2, 0x48($sp) -/* 058598 80057998 8FB3004C */ lw $s3, 0x4c($sp) -/* 05859C 8005799C 8FB40050 */ lw $s4, 0x50($sp) -/* 0585A0 800579A0 8FB50054 */ lw $s5, 0x54($sp) -/* 0585A4 800579A4 8FB60058 */ lw $s6, 0x58($sp) -/* 0585A8 800579A8 03E00008 */ jr $ra -/* 0585AC 800579AC 27BD0090 */ addiu $sp, $sp, 0x90 - diff --git a/asm/non_matchings/racer/func_80046524.s b/asm/non_matchings/racer/func_80046524.s index 3a5be441..892fc799 100644 --- a/asm/non_matchings/racer/func_80046524.s +++ b/asm/non_matchings/racer/func_80046524.s @@ -1,2743 +1,2743 @@ -.late_rodata -glabel D_800E63A8 -.double 1.15 -glabel D_800E63B0 -.double 0.016 -glabel D_800E63B8 -.double 0.016 -glabel D_800E63C0 -.double 1.2 -glabel D_800E63C8 -.double 0.046 -glabel D_800E63D0 -.double 1.2 -glabel D_800E63D8 -.float 1.2 -.word 0 # Padding -glabel D_800E63E0 -.double 0.046 -glabel D_800E63E8 -.double 0.3 -glabel D_800E63F0 -.float 0.004 -.word 0 # Padding -glabel D_800E63F8 -.double 0.025 -glabel D_800E6400 -.double 300.0 -glabel D_800E6408 -.double 0.02 -glabel D_800E6410 -.double 1.7 -glabel D_800E6418 -.double 0.35 -glabel D_800E6420 -.double 0.2 -glabel D_800E6428 -.double 0.07 -glabel D_800E6430 -.double 0.8 -glabel D_800E6438 -.double 0.65 -glabel D_800E6440 -.double 0.65 -glabel D_800E6448 -.double 35.0 -glabel D_800E6450 -.float -10000.0 -.word 0 # Padding -glabel D_800E6458 -.double 0.8 -glabel D_800E6460 -.double 0.05 -glabel D_800E6468 -.float 0.11 - -.text -glabel func_80046524 -/* 047124 80046524 27BDFED8 */ addiu $sp, $sp, -0x128 -/* 047128 80046528 AFBF002C */ sw $ra, 0x2c($sp) -/* 04712C 8004652C AFB10028 */ sw $s1, 0x28($sp) -/* 047130 80046530 AFB00024 */ sw $s0, 0x24($sp) -/* 047134 80046534 00E08025 */ move $s0, $a3 -/* 047138 80046538 00C08825 */ move $s1, $a2 -/* 04713C 8004653C AFA40128 */ sw $a0, 0x128($sp) -/* 047140 80046540 0C00384E */ jal func_8000E138 -/* 047144 80046544 AFA5012C */ sw $a1, 0x12c($sp) -/* 047148 80046548 10400009 */ beqz $v0, .L80046570 -/* 04714C 8004654C 3C0A8012 */ lui $t2, %hi(D_8011D586) # $t2, 0x8012 -/* 047150 80046550 3C01800E */ lui $at, %hi(D_800E63A8 + 4) # $at, 0x800e -/* 047154 80046554 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* 047158 80046558 C42963A8 */ lwc1 $f9, %lo(D_800E63A8)($at) -/* 04715C 8004655C C42863AC */ lwc1 $f8, %lo(D_800E63A8 + 4)($at) -/* 047160 80046560 460021A1 */ cvt.d.s $f6, $f4 -/* 047164 80046564 46283282 */ mul.d $f10, $f6, $f8 -/* 047168 80046568 46205120 */ cvt.s.d $f4, $f10 -/* 04716C 8004656C E7A4012C */ swc1 $f4, 0x12c($sp) -.L80046570: -/* 047170 80046570 A3A00067 */ sb $zero, 0x67($sp) -/* 047174 80046574 860E0000 */ lh $t6, ($s0) -/* 047178 80046578 3C0D8012 */ lui $t5, %hi(gCurrentStickX) # $t5, 0x8012 -/* 04717C 8004657C 05C0000B */ bltz $t6, .L800465AC -/* 047180 80046580 02202025 */ move $a0, $s1 -/* 047184 80046584 3C0F800E */ lui $t7, %hi(gNumViewports) # $t7, 0x800e -/* 047188 80046588 8DEFCB98 */ lw $t7, %lo(gNumViewports)($t7) -/* 04718C 8004658C 00000000 */ nop -/* 047190 80046590 29E10002 */ slti $at, $t7, 2 -/* 047194 80046594 10200006 */ beqz $at, .L800465B0 -/* 047198 80046598 3C014120 */ lui $at, 0x4120 -/* 04719C 8004659C 8E380074 */ lw $t8, 0x74($s1) -/* 0471A0 800465A0 00000000 */ nop -/* 0471A4 800465A4 37190100 */ ori $t9, $t8, 0x100 -/* 0471A8 800465A8 AE390074 */ sw $t9, 0x74($s1) -.L800465AC: -/* 0471AC 800465AC 3C014120 */ li $at, 0x41200000 # 10.000000 -.L800465B0: -/* 0471B0 800465B0 44816000 */ mtc1 $at, $f12 -/* 0471B4 800465B4 3C018012 */ lui $at, %hi(D_8011D550) # $at, 0x8012 -/* 0471B8 800465B8 A420D550 */ sh $zero, %lo(D_8011D550)($at) -/* 0471BC 800465BC 3C018012 */ lui $at, %hi(gCurrentCarSteerVel) # $at, 0x8012 -/* 0471C0 800465C0 AC20D554 */ sw $zero, %lo(gCurrentCarSteerVel)($at) -/* 0471C4 800465C4 3C018012 */ lui $at, %hi(D_8011D558) # $at, 0x8012 -/* 0471C8 800465C8 AC20D558 */ sw $zero, %lo(D_8011D558)($at) -/* 0471CC 800465CC C626000C */ lwc1 $f6, 0xc($s1) -/* 0471D0 800465D0 854AD586 */ lh $t2, %lo(D_8011D586)($t2) -/* 0471D4 800465D4 E7A60110 */ swc1 $f6, 0x110($sp) -/* 0471D8 800465D8 C6280010 */ lwc1 $f8, 0x10($s1) -/* 0471DC 800465DC 448A2000 */ mtc1 $t2, $f4 -/* 0471E0 800465E0 E7A8010C */ swc1 $f8, 0x10c($sp) -/* 0471E4 800465E4 468021A0 */ cvt.s.w $f6, $f4 -/* 0471E8 800465E8 C62A0014 */ lwc1 $f10, 0x14($s1) -/* 0471EC 800465EC 3C014620 */ li $at, 0x46200000 # 10240.000000 -/* 0471F0 800465F0 44814000 */ mtc1 $at, $f8 -/* 0471F4 800465F4 E7AA0108 */ swc1 $f10, 0x108($sp) -/* 0471F8 800465F8 46083283 */ div.s $f10, $f6, $f8 -/* 0471FC 800465FC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 047200 80046600 44813800 */ mtc1 $at, $f7 -/* 047204 80046604 44803000 */ mtc1 $zero, $f6 -/* 047208 80046608 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 04720C 8004660C 3C0B8012 */ lui $t3, %hi(gCurrentPlayerIndex) # $t3, 0x8012 -/* 047210 80046610 8D6BD55C */ lw $t3, %lo(gCurrentPlayerIndex)($t3) -/* 047214 80046614 44811000 */ mtc1 $at, $f2 -/* 047218 80046618 2401FFFF */ li $at, -1 -/* 04721C 8004661C 02002825 */ move $a1, $s0 -/* 047220 80046620 46005121 */ cvt.d.s $f4, $f10 -/* 047224 80046624 C60A0038 */ lwc1 $f10, 0x38($s0) -/* 047228 80046628 46243201 */ sub.d $f8, $f6, $f4 -/* 04722C 8004662C 46005187 */ neg.s $f6, $f10 -/* 047230 80046630 460C3102 */ mul.s $f4, $f6, $f12 -/* 047234 80046634 46204020 */ cvt.s.d $f0, $f8 -/* 047238 80046638 46002202 */ mul.s $f8, $f4, $f0 -/* 04723C 8004663C E7A800E8 */ swc1 $f8, 0xe8($sp) -/* 047240 80046640 C60A0040 */ lwc1 $f10, 0x40($s0) -/* 047244 80046644 00000000 */ nop -/* 047248 80046648 46005187 */ neg.s $f6, $f10 -/* 04724C 8004664C 460C3102 */ mul.s $f4, $f6, $f12 -/* 047250 80046650 00000000 */ nop -/* 047254 80046654 46002202 */ mul.s $f8, $f4, $f0 -/* 047258 80046658 11610004 */ beq $t3, $at, .L8004666C -/* 04725C 8004665C E7A800E4 */ swc1 $f8, 0xe4($sp) -/* 047260 80046660 820C01D8 */ lb $t4, 0x1d8($s0) -/* 047264 80046664 00000000 */ nop -/* 047268 80046668 11800003 */ beqz $t4, .L80046678 -.L8004666C: -/* 04726C 8004666C 3C014200 */ li $at, 0x42000000 # 32.000000 -/* 047270 80046670 44811000 */ mtc1 $at, $f2 -/* 047274 80046674 00000000 */ nop -.L80046678: -/* 047278 80046678 820801E1 */ lb $t0, 0x1e1($s0) -/* 04727C 8004667C 8DADD534 */ lw $t5, %lo(gCurrentStickX)($t5) -/* 047280 80046680 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* 047284 80046684 01A81823 */ subu $v1, $t5, $t0 -/* 047288 80046688 44835000 */ mtc1 $v1, $f10 -/* 04728C 8004668C 00000000 */ nop -/* 047290 80046690 468051A0 */ cvt.s.w $f6, $f10 -/* 047294 80046694 46043202 */ mul.s $f8, $f6, $f4 -/* 047298 80046698 00000000 */ nop -/* 04729C 8004669C 46024283 */ div.s $f10, $f8, $f2 -/* 0472A0 800466A0 444EF800 */ cfc1 $t6, $31 -/* 0472A4 800466A4 00000000 */ nop -/* 0472A8 800466A8 35C10003 */ ori $at, $t6, 3 -/* 0472AC 800466AC 38210002 */ xori $at, $at, 2 -/* 0472B0 800466B0 44C1F800 */ ctc1 $at, $31 -/* 0472B4 800466B4 00000000 */ nop -/* 0472B8 800466B8 460051A4 */ cvt.w.s $f6, $f10 -/* 0472BC 800466BC 44023000 */ mfc1 $v0, $f6 -/* 0472C0 800466C0 44CEF800 */ ctc1 $t6, $31 -/* 0472C4 800466C4 10600009 */ beqz $v1, .L800466EC -/* 0472C8 800466C8 00403825 */ move $a3, $v0 -/* 0472CC 800466CC 14400008 */ bnez $v0, .L800466F0 -/* 0472D0 800466D0 01077821 */ addu $t7, $t0, $a3 -/* 0472D4 800466D4 18600002 */ blez $v1, .L800466E0 -/* 0472D8 800466D8 00000000 */ nop -/* 0472DC 800466DC 24070001 */ li $a3, 1 -.L800466E0: -/* 0472E0 800466E0 04610003 */ bgez $v1, .L800466F0 -/* 0472E4 800466E4 01077821 */ addu $t7, $t0, $a3 -/* 0472E8 800466E8 2407FFFF */ li $a3, -1 -.L800466EC: -/* 0472EC 800466EC 01077821 */ addu $t7, $t0, $a3 -.L800466F0: -/* 0472F0 800466F0 A20F01E1 */ sb $t7, 0x1e1($s0) -/* 0472F4 800466F4 8FA60128 */ lw $a2, 0x128($sp) -/* 0472F8 800466F8 0C0157B0 */ jal func_80055EC0 -/* 0472FC 800466FC E7A000C8 */ swc1 $f0, 0xc8($sp) -/* 047300 80046700 02202025 */ move $a0, $s1 -/* 047304 80046704 0C014D71 */ jal func_800535C4 -/* 047308 80046708 02002825 */ move $a1, $s0 -/* 04730C 8004670C 02202025 */ move $a0, $s1 -/* 047310 80046710 0C01231F */ jal func_80048C7C -/* 047314 80046714 02002825 */ move $a1, $s0 -/* 047318 80046718 3C188012 */ lui $t8, %hi(gCurrentPlayerIndex) # $t8, 0x8012 -/* 04731C 8004671C 8F18D55C */ lw $t8, %lo(gCurrentPlayerIndex)($t8) -/* 047320 80046720 2401FFFF */ li $at, -1 -/* 047324 80046724 13010007 */ beq $t8, $at, .L80046744 -/* 047328 80046728 00000000 */ nop -/* 04732C 8004672C 8FA60128 */ lw $a2, 0x128($sp) -/* 047330 80046730 02202025 */ move $a0, $s1 -/* 047334 80046734 0C014871 */ jal func_800521C4 -/* 047338 80046738 02002825 */ move $a1, $s0 -/* 04733C 8004673C 10000003 */ b .L8004674C -/* 047340 80046740 00000000 */ nop -.L80046744: -/* 047344 80046744 0C0148D3 */ jal func_8005234C -/* 047348 80046748 02002025 */ move $a0, $s0 -.L8004674C: -/* 04734C 8004674C 3C198012 */ lui $t9, %hi(gCurrentRacerInput) # $t9, 0x8012 -/* 047350 80046750 8F39D528 */ lw $t9, %lo(gCurrentRacerInput)($t9) -/* 047354 80046754 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 -/* 047358 80046758 332A8000 */ andi $t2, $t9, 0x8000 -/* 04735C 8004675C 1140001E */ beqz $t2, .L800467D8 -/* 047360 80046760 00000000 */ nop -/* 047364 80046764 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* 047368 80046768 3C01800E */ lui $at, %hi(D_800E63B0 + 4) # $at, 0x800e -/* 04736C 8004676C C42B63B0 */ lwc1 $f11, %lo(D_800E63B0)($at) -/* 047370 80046770 C42A63B4 */ lwc1 $f10, %lo(D_800E63B0 + 4)($at) -/* 047374 80046774 46002221 */ cvt.d.s $f8, $f4 -/* 047378 80046778 462A4182 */ mul.d $f6, $f8, $f10 -/* 04737C 8004677C E7A80054 */ swc1 $f8, 0x54($sp) -/* 047380 80046780 E7A90050 */ swc1 $f9, 0x50($sp) -/* 047384 80046784 C60400B4 */ lwc1 $f4, 0xb4($s0) -/* 047388 80046788 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04738C 8004678C 46002221 */ cvt.d.s $f8, $f4 -/* 047390 80046790 46264280 */ add.d $f10, $f8, $f6 -/* 047394 80046794 44804000 */ mtc1 $zero, $f8 -/* 047398 80046798 46205120 */ cvt.s.d $f4, $f10 -/* 04739C 8004679C 44814800 */ mtc1 $at, $f9 -/* 0473A0 800467A0 E60400B4 */ swc1 $f4, 0xb4($s0) -/* 0473A4 800467A4 C60200B4 */ lwc1 $f2, 0xb4($s0) -/* 0473A8 800467A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0473AC 800467AC 460011A1 */ cvt.d.s $f6, $f2 -/* 0473B0 800467B0 4626403C */ c.lt.d $f8, $f6 -/* 0473B4 800467B4 00000000 */ nop -/* 0473B8 800467B8 45000021 */ bc1f .L80046840 -/* 0473BC 800467BC 00000000 */ nop -/* 0473C0 800467C0 44815000 */ mtc1 $at, $f10 -/* 0473C4 800467C4 00000000 */ nop -/* 0473C8 800467C8 E60A00B4 */ swc1 $f10, 0xb4($s0) -/* 0473CC 800467CC C60200B4 */ lwc1 $f2, 0xb4($s0) -/* 0473D0 800467D0 1000001C */ b .L80046844 -/* 0473D4 800467D4 C60E002C */ lwc1 $f14, 0x2c($s0) -.L800467D8: -/* 0473D8 800467D8 C7A4012C */ lwc1 $f4, 0x12c($sp) -/* 0473DC 800467DC 3C01800E */ lui $at, %hi(D_800E63B8 + 4) # $at, 0x800e -/* 0473E0 800467E0 C42763B8 */ lwc1 $f7, %lo(D_800E63B8)($at) -/* 0473E4 800467E4 C42663BC */ lwc1 $f6, %lo(D_800E63B8 + 4)($at) -/* 0473E8 800467E8 46002221 */ cvt.d.s $f8, $f4 -/* 0473EC 800467EC 46264282 */ mul.d $f10, $f8, $f6 -/* 0473F0 800467F0 E7A80054 */ swc1 $f8, 0x54($sp) -/* 0473F4 800467F4 E7A90050 */ swc1 $f9, 0x50($sp) -/* 0473F8 800467F8 C60400B4 */ lwc1 $f4, 0xb4($s0) -/* 0473FC 800467FC 00000000 */ nop -/* 047400 80046800 46002221 */ cvt.d.s $f8, $f4 -/* 047404 80046804 462A4181 */ sub.d $f6, $f8, $f10 -/* 047408 80046808 44804000 */ mtc1 $zero, $f8 -/* 04740C 8004680C 46203120 */ cvt.s.d $f4, $f6 -/* 047410 80046810 E60400B4 */ swc1 $f4, 0xb4($s0) -/* 047414 80046814 C60200B4 */ lwc1 $f2, 0xb4($s0) -/* 047418 80046818 00000000 */ nop -/* 04741C 8004681C 4608103C */ c.lt.s $f2, $f8 -/* 047420 80046820 00000000 */ nop -/* 047424 80046824 45000006 */ bc1f .L80046840 -/* 047428 80046828 00000000 */ nop -/* 04742C 8004682C 44805000 */ mtc1 $zero, $f10 -/* 047430 80046830 00000000 */ nop -/* 047434 80046834 E60A00B4 */ swc1 $f10, 0xb4($s0) -/* 047438 80046838 C60200B4 */ lwc1 $f2, 0xb4($s0) -/* 04743C 8004683C 00000000 */ nop -.L80046840: -/* 047440 80046840 C60E002C */ lwc1 $f14, 0x2c($s0) -.L80046844: -/* 047444 80046844 44803000 */ mtc1 $zero, $f6 -/* 047448 80046848 44802800 */ mtc1 $zero, $f5 -/* 04744C 8004684C 460E303C */ c.lt.s $f6, $f14 -/* 047450 80046850 46001006 */ mov.s $f0, $f2 -/* 047454 80046854 45000008 */ bc1f .L80046878 -/* 047458 80046858 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 -/* 04745C 8004685C 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) -/* 047460 80046860 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 047464 80046864 316C8000 */ andi $t4, $t3, 0x8000 -/* 047468 80046868 11800003 */ beqz $t4, .L80046878 -/* 04746C 8004686C 00000000 */ nop -/* 047470 80046870 44810000 */ mtc1 $at, $f0 -/* 047474 80046874 00000000 */ nop -.L80046878: -/* 047478 80046878 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 04747C 8004687C 44812000 */ mtc1 $at, $f4 -/* 047480 80046880 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 047484 80046884 46040002 */ mul.s $f0, $f0, $f4 -/* 047488 80046888 44815000 */ mtc1 $at, $f10 -/* 04748C 8004688C 44802000 */ mtc1 $zero, $f4 -/* 047490 80046890 46000202 */ mul.s $f8, $f0, $f0 -/* 047494 80046894 00000000 */ nop -/* 047498 80046898 460A4303 */ div.s $f12, $f8, $f10 -/* 04749C 8004689C E7AC00F4 */ swc1 $f12, 0xf4($sp) -/* 0474A0 800468A0 8E0D0108 */ lw $t5, 0x108($s0) -/* 0474A4 800468A4 00000000 */ nop -/* 0474A8 800468A8 11A00004 */ beqz $t5, .L800468BC -/* 0474AC 800468AC 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 0474B0 800468B0 44813000 */ mtc1 $at, $f6 -/* 0474B4 800468B4 C60E002C */ lwc1 $f14, 0x2c($s0) -/* 0474B8 800468B8 E60600B4 */ swc1 $f6, 0xb4($s0) -.L800468BC: -/* 0474BC 800468BC 46007221 */ cvt.d.s $f8, $f14 -/* 0474C0 800468C0 4628203C */ c.lt.d $f4, $f8 -/* 0474C4 800468C4 8C84D528 */ lw $a0, %lo(gCurrentRacerInput)($a0) -/* 0474C8 800468C8 45000008 */ bc1f .L800468EC -/* 0474CC 800468CC 308E4000 */ andi $t6, $a0, 0x4000 -/* 0474D0 800468D0 3C01800E */ lui $at, %hi(D_800E63C0 + 4) # $at, 0x800e -/* 0474D4 800468D4 C42763C0 */ lwc1 $f7, %lo(D_800E63C0)($at) -/* 0474D8 800468D8 C42663C4 */ lwc1 $f6, %lo(D_800E63C0 + 4)($at) -/* 0474DC 800468DC 460062A1 */ cvt.d.s $f10, $f12 -/* 0474E0 800468E0 46265102 */ mul.d $f4, $f10, $f6 -/* 0474E4 800468E4 46202220 */ cvt.s.d $f8, $f4 -/* 0474E8 800468E8 E7A800F4 */ swc1 $f8, 0xf4($sp) -.L800468EC: -/* 0474EC 800468EC 11C0002F */ beqz $t6, .L800469AC -/* 0474F0 800468F0 3C0F8012 */ lui $t7, %hi(gCurrentStickY) # $t7, 0x8012 -/* 0474F4 800468F4 8DEFD538 */ lw $t7, %lo(gCurrentStickY)($t7) -/* 0474F8 800468F8 C7A70050 */ lwc1 $f7, 0x50($sp) -/* 0474FC 800468FC 29E1FFD8 */ slti $at, $t7, -0x28 -/* 047500 80046900 14200006 */ bnez $at, .L8004691C -/* 047504 80046904 00000000 */ nop -/* 047508 80046908 44805000 */ mtc1 $zero, $f10 -/* 04750C 8004690C 00000000 */ nop -/* 047510 80046910 460A703C */ c.lt.s $f14, $f10 -/* 047514 80046914 00000000 */ nop -/* 047518 80046918 45000024 */ bc1f .L800469AC -.L8004691C: -/* 04751C 8004691C 3C01800E */ lui $at, %hi(D_800E63C8 + 4) # $at, 0x800e -/* 047520 80046920 C42563C8 */ lwc1 $f5, %lo(D_800E63C8)($at) -/* 047524 80046924 C42463CC */ lwc1 $f4, %lo(D_800E63C8 + 4)($at) -/* 047528 80046928 C7A60054 */ lwc1 $f6, 0x54($sp) -/* 04752C 8004692C C60A00B8 */ lwc1 $f10, 0xb8($s0) -/* 047530 80046930 46243202 */ mul.d $f8, $f6, $f4 -/* 047534 80046934 460051A1 */ cvt.d.s $f6, $f10 -/* 047538 80046938 3C01800E */ lui $at, %hi(D_800E63D0) # $at, 0x800e -/* 04753C 8004693C 46283100 */ add.d $f4, $f6, $f8 -/* 047540 80046940 462022A0 */ cvt.s.d $f10, $f4 -/* 047544 80046944 E60A00B8 */ swc1 $f10, 0xb8($s0) -/* 047548 80046948 C60800B8 */ lwc1 $f8, 0xb8($s0) -/* 04754C 8004694C C42663D4 */ lwc1 $f6, %lo(D_800E63D0 + 4)($at) -/* 047550 80046950 C42763D0 */ lwc1 $f7, %lo(D_800E63D0)($at) -/* 047554 80046954 46004121 */ cvt.d.s $f4, $f8 -/* 047558 80046958 4624303C */ c.lt.d $f6, $f4 -/* 04755C 8004695C 44802000 */ mtc1 $zero, $f4 -/* 047560 80046960 45000004 */ bc1f .L80046974 -/* 047564 80046964 3C01800E */ lui $at, %hi(D_800E63D8) # $at, 0x800e -/* 047568 80046968 C42A63D8 */ lwc1 $f10, %lo(D_800E63D8)($at) -/* 04756C 8004696C 00000000 */ nop -/* 047570 80046970 E60A00B8 */ swc1 $f10, 0xb8($s0) -.L80046974: -/* 047574 80046974 C608002C */ lwc1 $f8, 0x2c($s0) -/* 047578 80046978 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 04757C 8004697C 44812800 */ mtc1 $at, $f5 -/* 047580 80046980 460041A1 */ cvt.d.s $f6, $f8 -/* 047584 80046984 4624303C */ c.lt.d $f6, $f4 -/* 047588 80046988 00000000 */ nop -/* 04758C 8004698C 45000004 */ bc1f .L800469A0 -/* 047590 80046990 00000000 */ nop -/* 047594 80046994 86040000 */ lh $a0, ($s0) -/* 047598 80046998 0C01C8D2 */ jal func_80072348 -/* 04759C 8004699C 24050005 */ li $a1, 5 -.L800469A0: -/* 0475A0 800469A0 C60200B8 */ lwc1 $f2, 0xb8($s0) -/* 0475A4 800469A4 10000019 */ b .L80046A0C -/* 0475A8 800469A8 3C014040 */ lui $at, 0x4040 -.L800469AC: -/* 0475AC 800469AC 3C01800E */ lui $at, %hi(D_800E63E0 + 4) # $at, 0x800e -/* 0475B0 800469B0 C42963E0 */ lwc1 $f9, %lo(D_800E63E0)($at) -/* 0475B4 800469B4 C42863E4 */ lwc1 $f8, %lo(D_800E63E0 + 4)($at) -/* 0475B8 800469B8 C7AB0050 */ lwc1 $f11, 0x50($sp) -/* 0475BC 800469BC C7AA0054 */ lwc1 $f10, 0x54($sp) -/* 0475C0 800469C0 C60400B8 */ lwc1 $f4, 0xb8($s0) -/* 0475C4 800469C4 46285182 */ mul.d $f6, $f10, $f8 -/* 0475C8 800469C8 460022A1 */ cvt.d.s $f10, $f4 -/* 0475CC 800469CC 46265201 */ sub.d $f8, $f10, $f6 -/* 0475D0 800469D0 44805000 */ mtc1 $zero, $f10 -/* 0475D4 800469D4 46204120 */ cvt.s.d $f4, $f8 -/* 0475D8 800469D8 E60400B8 */ swc1 $f4, 0xb8($s0) -/* 0475DC 800469DC C60200B8 */ lwc1 $f2, 0xb8($s0) -/* 0475E0 800469E0 00000000 */ nop -/* 0475E4 800469E4 460A103C */ c.lt.s $f2, $f10 -/* 0475E8 800469E8 00000000 */ nop -/* 0475EC 800469EC 45000007 */ bc1f .L80046A0C -/* 0475F0 800469F0 3C014040 */ lui $at, 0x4040 -/* 0475F4 800469F4 44803000 */ mtc1 $zero, $f6 -/* 0475F8 800469F8 00000000 */ nop -/* 0475FC 800469FC E60600B8 */ swc1 $f6, 0xb8($s0) -/* 047600 80046A00 C60200B8 */ lwc1 $f2, 0xb8($s0) -/* 047604 80046A04 00000000 */ nop -/* 047608 80046A08 3C014040 */ li $at, 0x40400000 # 3.000000 -.L80046A0C: -/* 04760C 80046A0C 44814000 */ mtc1 $at, $f8 -/* 047610 80046A10 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 047614 80046A14 46081002 */ mul.s $f0, $f2, $f8 -/* 047618 80046A18 44815000 */ mtc1 $at, $f10 -/* 04761C 80046A1C 44803800 */ mtc1 $zero, $f7 -/* 047620 80046A20 44803000 */ mtc1 $zero, $f6 -/* 047624 80046A24 46000102 */ mul.s $f4, $f0, $f0 -/* 047628 80046A28 00000000 */ nop -/* 04762C 80046A2C 460A2303 */ div.s $f12, $f4, $f10 -/* 047630 80046A30 E7AC00F0 */ swc1 $f12, 0xf0($sp) -/* 047634 80046A34 C60E002C */ lwc1 $f14, 0x2c($s0) -/* 047638 80046A38 00000000 */ nop -/* 04763C 80046A3C 46007221 */ cvt.d.s $f8, $f14 -/* 047640 80046A40 4628303C */ c.lt.d $f6, $f8 -/* 047644 80046A44 00000000 */ nop -/* 047648 80046A48 45000007 */ bc1f .L80046A68 -/* 04764C 80046A4C 3C01800E */ lui $at, %hi(D_800E63E8 + 4) # $at, 0x800e -/* 047650 80046A50 C42B63E8 */ lwc1 $f11, %lo(D_800E63E8)($at) -/* 047654 80046A54 C42A63EC */ lwc1 $f10, %lo(D_800E63E8 + 4)($at) -/* 047658 80046A58 46006121 */ cvt.d.s $f4, $f12 -/* 04765C 80046A5C 462A2182 */ mul.d $f6, $f4, $f10 -/* 047660 80046A60 46203220 */ cvt.s.d $f8, $f6 -/* 047664 80046A64 E7A800F0 */ swc1 $f8, 0xf0($sp) -.L80046A68: -/* 047668 80046A68 921801F5 */ lbu $t8, 0x1f5($s0) -/* 04766C 80046A6C 00000000 */ nop -/* 047670 80046A70 13000059 */ beqz $t8, .L80046BD8 -/* 047674 80046A74 3C018012 */ lui $at, %hi(gCurrentStickX) # $at, 0x8012 -/* 047678 80046A78 AC20D534 */ sw $zero, %lo(gCurrentStickX)($at) -/* 04767C 80046A7C 8E19014C */ lw $t9, 0x14c($s0) -/* 047680 80046A80 860201A0 */ lh $v0, 0x1a0($s0) -/* 047684 80046A84 A2000175 */ sb $zero, 0x175($s0) -/* 047688 80046A88 A20001E1 */ sb $zero, 0x1e1($s0) -/* 04768C 80046A8C A20001DB */ sb $zero, 0x1db($s0) -/* 047690 80046A90 A20001E0 */ sb $zero, 0x1e0($s0) -/* 047694 80046A94 872A0000 */ lh $t2, ($t9) -/* 047698 80046A98 304BFFFF */ andi $t3, $v0, 0xffff -/* 04769C 80046A9C 34018001 */ li $at, 32769 -/* 0476A0 80046AA0 014B1823 */ subu $v1, $t2, $t3 -/* 0476A4 80046AA4 0061082A */ slt $at, $v1, $at -/* 0476A8 80046AA8 8FAC0128 */ lw $t4, 0x128($sp) -/* 0476AC 80046AAC 14200003 */ bnez $at, .L80046ABC -/* 0476B0 80046AB0 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 0476B4 80046AB4 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 0476B8 80046AB8 00611821 */ addu $v1, $v1, $at -.L80046ABC: -/* 0476BC 80046ABC 28618000 */ slti $at, $v1, -0x8000 -/* 0476C0 80046AC0 10200002 */ beqz $at, .L80046ACC -/* 0476C4 80046AC4 3401FFFF */ li $at, 65535 -/* 0476C8 80046AC8 00611821 */ addu $v1, $v1, $at -.L80046ACC: -/* 0476CC 80046ACC 006C0019 */ multu $v1, $t4 -/* 0476D0 80046AD0 28610400 */ slti $at, $v1, 0x400 -/* 0476D4 80046AD4 00006812 */ mflo $t5 -/* 0476D8 80046AD8 000D70C3 */ sra $t6, $t5, 3 -/* 0476DC 80046ADC 004E7821 */ addu $t7, $v0, $t6 -/* 0476E0 80046AE0 10200004 */ beqz $at, .L80046AF4 -/* 0476E4 80046AE4 A60F01A0 */ sh $t7, 0x1a0($s0) -/* 0476E8 80046AE8 2861FC01 */ slti $at, $v1, -0x3ff -/* 0476EC 80046AEC 10200005 */ beqz $at, .L80046B04 -/* 0476F0 80046AF0 00000000 */ nop -.L80046AF4: -/* 0476F4 80046AF4 86180000 */ lh $t8, ($s0) -/* 0476F8 80046AF8 2401FFFF */ li $at, -1 -/* 0476FC 80046AFC 17010021 */ bne $t8, $at, .L80046B84 -/* 047700 80046B00 00000000 */ nop -.L80046B04: -/* 047704 80046B04 86190000 */ lh $t9, ($s0) -/* 047708 80046B08 2401FFFF */ li $at, -1 -/* 04770C 80046B0C 1321000B */ beq $t9, $at, .L80046B3C -/* 047710 80046B10 24040107 */ li $a0, 263 -/* 047714 80046B14 8E25000C */ lw $a1, 0xc($s1) -/* 047718 80046B18 8E260010 */ lw $a2, 0x10($s1) -/* 04771C 80046B1C 8E270014 */ lw $a3, 0x14($s1) -/* 047720 80046B20 0C0007AA */ jal play_sound_spatial -/* 047724 80046B24 AFA00010 */ sw $zero, 0x10($sp) -/* 047728 80046B28 02202025 */ move $a0, $s1 -/* 04772C 80046B2C 24050162 */ li $a1, 354 -/* 047730 80046B30 24060008 */ li $a2, 8 -/* 047734 80046B34 0C015C2E */ jal play_random_character_voice -/* 047738 80046B38 24070082 */ li $a3, 130 -.L80046B3C: -/* 04773C 80046B3C 0C00322D */ jal normalise_time -/* 047740 80046B40 2404002D */ li $a0, 45 -/* 047744 80046B44 920B020C */ lbu $t3, 0x20c($s0) -/* 047748 80046B48 240A0002 */ li $t2, 2 -/* 04774C 80046B4C A20201D3 */ sb $v0, 0x1d3($s0) -/* 047750 80046B50 11600005 */ beqz $t3, .L80046B68 -/* 047754 80046B54 A20A0203 */ sb $t2, 0x203($s0) -/* 047758 80046B58 820C0203 */ lb $t4, 0x203($s0) -/* 04775C 80046B5C 00000000 */ nop -/* 047760 80046B60 358D0004 */ ori $t5, $t4, 4 -/* 047764 80046B64 A20D0203 */ sb $t5, 0x203($s0) -.L80046B68: -/* 047768 80046B68 86040000 */ lh $a0, ($s0) -/* 04776C 80046B6C A20001F5 */ sb $zero, 0x1f5($s0) -/* 047770 80046B70 0C01C8D2 */ jal func_80072348 -/* 047774 80046B74 24050008 */ li $a1, 8 -/* 047778 80046B78 C60E002C */ lwc1 $f14, 0x2c($s0) -/* 04777C 80046B7C 10000017 */ b .L80046BDC -/* 047780 80046B80 44800000 */ mtc1 $zero, $f0 -.L80046B84: -/* 047784 80046B84 C624001C */ lwc1 $f4, 0x1c($s1) -/* 047788 80046B88 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 04778C 80046B8C 44810800 */ mtc1 $at, $f1 -/* 047790 80046B90 44800000 */ mtc1 $zero, $f0 -/* 047794 80046B94 460022A1 */ cvt.d.s $f10, $f4 -/* 047798 80046B98 46205182 */ mul.d $f6, $f10, $f0 -/* 04779C 80046B9C C6240020 */ lwc1 $f4, 0x20($s1) -/* 0477A0 80046BA0 00000000 */ nop -/* 0477A4 80046BA4 460022A1 */ cvt.d.s $f10, $f4 -/* 0477A8 80046BA8 C6240024 */ lwc1 $f4, 0x24($s1) -/* 0477AC 80046BAC 46203220 */ cvt.s.d $f8, $f6 -/* 0477B0 80046BB0 46205182 */ mul.d $f6, $f10, $f0 -/* 0477B4 80046BB4 E628001C */ swc1 $f8, 0x1c($s1) -/* 0477B8 80046BB8 460022A1 */ cvt.d.s $f10, $f4 -/* 0477BC 80046BBC 46203220 */ cvt.s.d $f8, $f6 -/* 0477C0 80046BC0 46205182 */ mul.d $f6, $f10, $f0 -/* 0477C4 80046BC4 E6280020 */ swc1 $f8, 0x20($s1) -/* 0477C8 80046BC8 46203220 */ cvt.s.d $f8, $f6 -/* 0477CC 80046BCC E6280024 */ swc1 $f8, 0x24($s1) -/* 0477D0 80046BD0 C60E002C */ lwc1 $f14, 0x2c($s0) -/* 0477D4 80046BD4 00000000 */ nop -.L80046BD8: -/* 0477D8 80046BD8 44800000 */ mtc1 $zero, $f0 -.L80046BDC: -/* 0477DC 80046BDC 46007087 */ neg.s $f2, $f14 -/* 0477E0 80046BE0 4600103C */ c.lt.s $f2, $f0 -/* 0477E4 80046BE4 44802000 */ mtc1 $zero, $f4 -/* 0477E8 80046BE8 45000002 */ bc1f .L80046BF4 -/* 0477EC 80046BEC 3C01402C */ li $at, 0x402C0000 # 2.687500 -/* 0477F0 80046BF0 46000086 */ mov.s $f2, $f0 -.L80046BF4: -/* 0477F4 80046BF4 44812800 */ mtc1 $at, $f5 -/* 0477F8 80046BF8 460012A1 */ cvt.d.s $f10, $f2 -/* 0477FC 80046BFC 462A203C */ c.lt.d $f4, $f10 -/* 047800 80046C00 00000000 */ nop -/* 047804 80046C04 45000003 */ bc1f .L80046C14 -/* 047808 80046C08 3C014160 */ li $at, 0x41600000 # 14.000000 -/* 04780C 80046C0C 44811000 */ mtc1 $at, $f2 -/* 047810 80046C10 00000000 */ nop -.L80046C14: -/* 047814 80046C14 3C014160 */ li $at, 0x41600000 # 14.000000 -/* 047818 80046C18 44813000 */ mtc1 $at, $f6 -/* 04781C 80046C1C 820E01D4 */ lb $t6, 0x1d4($s0) -/* 047820 80046C20 46061083 */ div.s $f2, $f2, $f6 -/* 047824 80046C24 15C00006 */ bnez $t6, .L80046C40 -/* 047828 80046C28 8FA50128 */ lw $a1, 0x128($sp) -/* 04782C 80046C2C 820F01D5 */ lb $t7, 0x1d5($s0) -/* 047830 80046C30 C7A800F0 */ lwc1 $f8, 0xf0($sp) -/* 047834 80046C34 11E00009 */ beqz $t7, .L80046C5C -/* 047838 80046C38 3C014580 */ li $at, 0x45800000 # 4096.000000 -/* 04783C 80046C3C 8FA50128 */ lw $a1, 0x128($sp) -.L80046C40: -/* 047840 80046C40 86060160 */ lh $a2, 0x160($s0) -/* 047844 80046C44 AFA00010 */ sw $zero, 0x10($sp) -/* 047848 80046C48 02002025 */ move $a0, $s0 -/* 04784C 80046C4C 0C014214 */ jal apply_vehicle_rotation_offset -/* 047850 80046C50 00003825 */ move $a3, $zero -/* 047854 80046C54 10000015 */ b .L80046CAC -/* 047858 80046C58 820B01D5 */ lb $t3, 0x1d5($s0) -.L80046C5C: -/* 04785C 80046C5C 44812000 */ mtc1 $at, $f4 -/* 047860 80046C60 8FA50128 */ lw $a1, 0x128($sp) -/* 047864 80046C64 46044282 */ mul.s $f10, $f8, $f4 -/* 047868 80046C68 02002025 */ move $a0, $s0 -/* 04786C 80046C6C 00003025 */ move $a2, $zero -/* 047870 80046C70 AFA00010 */ sw $zero, 0x10($sp) -/* 047874 80046C74 46025182 */ mul.s $f6, $f10, $f2 -/* 047878 80046C78 4458F800 */ cfc1 $t8, $31 -/* 04787C 80046C7C 00000000 */ nop -/* 047880 80046C80 37010003 */ ori $at, $t8, 3 -/* 047884 80046C84 38210002 */ xori $at, $at, 2 -/* 047888 80046C88 44C1F800 */ ctc1 $at, $31 -/* 04788C 80046C8C 00000000 */ nop -/* 047890 80046C90 46003224 */ cvt.w.s $f8, $f6 -/* 047894 80046C94 44074000 */ mfc1 $a3, $f8 -/* 047898 80046C98 44D8F800 */ ctc1 $t8, $31 -/* 04789C 80046C9C 0007CC00 */ sll $t9, $a3, 0x10 -/* 0478A0 80046CA0 0C014214 */ jal apply_vehicle_rotation_offset -/* 0478A4 80046CA4 00193C03 */ sra $a3, $t9, 0x10 -/* 0478A8 80046CA8 820B01D5 */ lb $t3, 0x1d5($s0) -.L80046CAC: -/* 0478AC 80046CAC 44800000 */ mtc1 $zero, $f0 -/* 0478B0 80046CB0 11600010 */ beqz $t3, .L80046CF4 -/* 0478B4 80046CB4 00000000 */ nop -/* 0478B8 80046CB8 86020160 */ lh $v0, 0x160($s0) -/* 0478BC 80046CBC 00000000 */ nop -/* 0478C0 80046CC0 000260C3 */ sra $t4, $v0, 3 -/* 0478C4 80046CC4 004C6823 */ subu $t5, $v0, $t4 -/* 0478C8 80046CC8 A60D0160 */ sh $t5, 0x160($s0) -/* 0478CC 80046CCC 86020160 */ lh $v0, 0x160($s0) -/* 0478D0 80046CD0 00000000 */ nop -/* 0478D4 80046CD4 28410010 */ slti $at, $v0, 0x10 -/* 0478D8 80046CD8 10200004 */ beqz $at, .L80046CEC -/* 0478DC 80046CDC 2841FFF1 */ slti $at, $v0, -0xf -/* 0478E0 80046CE0 14200002 */ bnez $at, .L80046CEC -/* 0478E4 80046CE4 00000000 */ nop -/* 0478E8 80046CE8 A20001D5 */ sb $zero, 0x1d5($s0) -.L80046CEC: -/* 0478EC 80046CEC 3C018012 */ lui $at, %hi(gCurrentStickX) # $at, 0x8012 -/* 0478F0 80046CF0 AC20D534 */ sw $zero, %lo(gCurrentStickX)($at) -.L80046CF4: -/* 0478F4 80046CF4 820201DB */ lb $v0, 0x1db($s0) -/* 0478F8 80046CF8 00000000 */ nop -/* 0478FC 80046CFC 1840000D */ blez $v0, .L80046D34 -/* 047900 80046D00 00000000 */ nop -/* 047904 80046D04 8FA60128 */ lw $a2, 0x128($sp) -/* 047908 80046D08 820E01D4 */ lb $t6, 0x1d4($s0) -/* 04790C 80046D0C 2419000A */ li $t9, 10 -/* 047910 80046D10 01C67821 */ addu $t7, $t6, $a2 -/* 047914 80046D14 A20F01D4 */ sb $t7, 0x1d4($s0) -/* 047918 80046D18 821801D4 */ lb $t8, 0x1d4($s0) -/* 04791C 80046D1C 00000000 */ nop -/* 047920 80046D20 2B01000B */ slti $at, $t8, 0xb -/* 047924 80046D24 14200029 */ bnez $at, .L80046DCC -/* 047928 80046D28 00000000 */ nop -/* 04792C 80046D2C 10000027 */ b .L80046DCC -/* 047930 80046D30 A21901D4 */ sb $t9, 0x1d4($s0) -.L80046D34: -/* 047934 80046D34 0441000D */ bgez $v0, .L80046D6C -/* 047938 80046D38 00000000 */ nop -/* 04793C 80046D3C 820A01D4 */ lb $t2, 0x1d4($s0) -/* 047940 80046D40 8FAB0128 */ lw $t3, 0x128($sp) -/* 047944 80046D44 240EFFF6 */ li $t6, -10 -/* 047948 80046D48 014B6023 */ subu $t4, $t2, $t3 -/* 04794C 80046D4C A20C01D4 */ sb $t4, 0x1d4($s0) -/* 047950 80046D50 820D01D4 */ lb $t5, 0x1d4($s0) -/* 047954 80046D54 00000000 */ nop -/* 047958 80046D58 29A1FFF6 */ slti $at, $t5, -0xa -/* 04795C 80046D5C 1020001B */ beqz $at, .L80046DCC -/* 047960 80046D60 00000000 */ nop -/* 047964 80046D64 10000019 */ b .L80046DCC -/* 047968 80046D68 A20E01D4 */ sb $t6, 0x1d4($s0) -.L80046D6C: -/* 04796C 80046D6C 820301D4 */ lb $v1, 0x1d4($s0) -/* 047970 80046D70 8FAF0128 */ lw $t7, 0x128($sp) -/* 047974 80046D74 04610009 */ bgez $v1, .L80046D9C -/* 047978 80046D78 006FC021 */ addu $t8, $v1, $t7 -/* 04797C 80046D7C A21801D4 */ sb $t8, 0x1d4($s0) -/* 047980 80046D80 821901D4 */ lb $t9, 0x1d4($s0) -/* 047984 80046D84 240A0001 */ li $t2, 1 -/* 047988 80046D88 1B200010 */ blez $t9, .L80046DCC -/* 04798C 80046D8C 00000000 */ nop -/* 047990 80046D90 A20001D4 */ sb $zero, 0x1d4($s0) -/* 047994 80046D94 1000000D */ b .L80046DCC -/* 047998 80046D98 A20A01D5 */ sb $t2, 0x1d5($s0) -.L80046D9C: -/* 04799C 80046D9C 1860000B */ blez $v1, .L80046DCC -/* 0479A0 80046DA0 00000000 */ nop -/* 0479A4 80046DA4 8FAB0128 */ lw $t3, 0x128($sp) -/* 0479A8 80046DA8 240E0001 */ li $t6, 1 -/* 0479AC 80046DAC 006B6023 */ subu $t4, $v1, $t3 -/* 0479B0 80046DB0 A20C01D4 */ sb $t4, 0x1d4($s0) -/* 0479B4 80046DB4 820D01D4 */ lb $t5, 0x1d4($s0) -/* 0479B8 80046DB8 00000000 */ nop -/* 0479BC 80046DBC 05A10003 */ bgez $t5, .L80046DCC -/* 0479C0 80046DC0 00000000 */ nop -/* 0479C4 80046DC4 A20001D4 */ sb $zero, 0x1d4($s0) -/* 0479C8 80046DC8 A20E01D5 */ sb $t6, 0x1d5($s0) -.L80046DCC: -/* 0479CC 80046DCC 820501E2 */ lb $a1, 0x1e2($s0) -/* 0479D0 80046DD0 8FA60128 */ lw $a2, 0x128($sp) -/* 0479D4 80046DD4 10A00011 */ beqz $a1, .L80046E1C -/* 0479D8 80046DD8 28A10003 */ slti $at, $a1, 3 -/* 0479DC 80046DDC 1020000F */ beqz $at, .L80046E1C -/* 0479E0 80046DE0 00000000 */ nop -/* 0479E4 80046DE4 86240002 */ lh $a0, 2($s1) -/* 0479E8 80046DE8 00000000 */ nop -/* 0479EC 80046DEC 00860019 */ multu $a0, $a2 -/* 0479F0 80046DF0 00007812 */ mflo $t7 -/* 0479F4 80046DF4 000FC183 */ sra $t8, $t7, 6 -/* 0479F8 80046DF8 0098C823 */ subu $t9, $a0, $t8 -/* 0479FC 80046DFC A6390002 */ sh $t9, 2($s1) -/* 047A00 80046E00 860501A4 */ lh $a1, 0x1a4($s0) -/* 047A04 80046E04 00000000 */ nop -/* 047A08 80046E08 00A60019 */ multu $a1, $a2 -/* 047A0C 80046E0C 00005012 */ mflo $t2 -/* 047A10 80046E10 000A5983 */ sra $t3, $t2, 6 -/* 047A14 80046E14 00AB6023 */ subu $t4, $a1, $t3 -/* 047A18 80046E18 A60C01A4 */ sh $t4, 0x1a4($s0) -.L80046E1C: -/* 047A1C 80046E1C 820301D4 */ lb $v1, 0x1d4($s0) -/* 047A20 80046E20 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 -/* 047A24 80046E24 10600041 */ beqz $v1, .L80046F2C -/* 047A28 80046E28 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 -/* 047A2C 80046E2C 86020160 */ lh $v0, 0x160($s0) -/* 047A30 80046E30 A20001D5 */ sb $zero, 0x1d5($s0) -/* 047A34 80046E34 18600018 */ blez $v1, .L80046E98 -/* 047A38 80046E38 00404025 */ move $t0, $v0 -/* 047A3C 80046E3C 00036880 */ sll $t5, $v1, 2 -/* 047A40 80046E40 01A36823 */ subu $t5, $t5, $v1 -/* 047A44 80046E44 000D6880 */ sll $t5, $t5, 2 -/* 047A48 80046E48 01A36823 */ subu $t5, $t5, $v1 -/* 047A4C 80046E4C 000D6880 */ sll $t5, $t5, 2 -/* 047A50 80046E50 01A36821 */ addu $t5, $t5, $v1 -/* 047A54 80046E54 000D6880 */ sll $t5, $t5, 2 -/* 047A58 80046E58 01A36823 */ subu $t5, $t5, $v1 -/* 047A5C 80046E5C 01A60019 */ multu $t5, $a2 -/* 047A60 80046E60 2841F000 */ slti $at, $v0, -0x1000 -/* 047A64 80046E64 00007012 */ mflo $t6 -/* 047A68 80046E68 004E7821 */ addu $t7, $v0, $t6 -/* 047A6C 80046E6C 1020000A */ beqz $at, .L80046E98 -/* 047A70 80046E70 A60F0160 */ sh $t7, 0x160($s0) -/* 047A74 80046E74 86180160 */ lh $t8, 0x160($s0) -/* 047A78 80046E78 00000000 */ nop -/* 047A7C 80046E7C 2B01F000 */ slti $at, $t8, -0x1000 -/* 047A80 80046E80 14200005 */ bnez $at, .L80046E98 -/* 047A84 80046E84 00000000 */ nop -/* 047A88 80046E88 821901DB */ lb $t9, 0x1db($s0) -/* 047A8C 80046E8C 820301D4 */ lb $v1, 0x1d4($s0) -/* 047A90 80046E90 272AFFFF */ addiu $t2, $t9, -1 -/* 047A94 80046E94 A20A01DB */ sb $t2, 0x1db($s0) -.L80046E98: -/* 047A98 80046E98 04610019 */ bgez $v1, .L80046F00 -/* 047A9C 80046E9C 3C0A8012 */ lui $t2, %hi(gCurrentRacerInput) # $t2, 0x8012 -/* 047AA0 80046EA0 00036080 */ sll $t4, $v1, 2 -/* 047AA4 80046EA4 01836023 */ subu $t4, $t4, $v1 -/* 047AA8 80046EA8 000C6080 */ sll $t4, $t4, 2 -/* 047AAC 80046EAC 01836023 */ subu $t4, $t4, $v1 -/* 047AB0 80046EB0 000C6080 */ sll $t4, $t4, 2 -/* 047AB4 80046EB4 01836021 */ addu $t4, $t4, $v1 -/* 047AB8 80046EB8 000C6080 */ sll $t4, $t4, 2 -/* 047ABC 80046EBC 01836023 */ subu $t4, $t4, $v1 -/* 047AC0 80046EC0 01860019 */ multu $t4, $a2 -/* 047AC4 80046EC4 860B0160 */ lh $t3, 0x160($s0) -/* 047AC8 80046EC8 29011001 */ slti $at, $t0, 0x1001 -/* 047ACC 80046ECC 00006812 */ mflo $t5 -/* 047AD0 80046ED0 016D7023 */ subu $t6, $t3, $t5 -/* 047AD4 80046ED4 1420000A */ bnez $at, .L80046F00 -/* 047AD8 80046ED8 A60E0160 */ sh $t6, 0x160($s0) -/* 047ADC 80046EDC 860F0160 */ lh $t7, 0x160($s0) -/* 047AE0 80046EE0 00000000 */ nop -/* 047AE4 80046EE4 29E11001 */ slti $at, $t7, 0x1001 -/* 047AE8 80046EE8 10200005 */ beqz $at, .L80046F00 -/* 047AEC 80046EEC 00000000 */ nop -/* 047AF0 80046EF0 821801DB */ lb $t8, 0x1db($s0) -/* 047AF4 80046EF4 00000000 */ nop -/* 047AF8 80046EF8 27190001 */ addiu $t9, $t8, 1 -/* 047AFC 80046EFC A21901DB */ sb $t9, 0x1db($s0) -.L80046F00: -/* 047B00 80046F00 8D4AD528 */ lw $t2, %lo(gCurrentRacerInput)($t2) -/* 047B04 80046F04 3C01FFFF */ lui $at, (0xFFFF3FFF >> 16) # lui $at, 0xffff -/* 047B08 80046F08 34213FFF */ ori $at, (0xFFFF3FFF & 0xFFFF) # ori $at, $at, 0x3fff -/* 047B0C 80046F0C 01416024 */ and $t4, $t2, $at -/* 047B10 80046F10 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 -/* 047B14 80046F14 AC2CD528 */ sw $t4, %lo(gCurrentRacerInput)($at) -/* 047B18 80046F18 3C018012 */ lui $at, %hi(gCurrentStickX) # $at, 0x8012 -/* 047B1C 80046F1C AC20D534 */ sw $zero, %lo(gCurrentStickX)($at) -/* 047B20 80046F20 A20001E1 */ sb $zero, 0x1e1($s0) -/* 047B24 80046F24 3C018012 */ lui $at, %hi(gCurrentStickY) # $at, 0x8012 -/* 047B28 80046F28 AC20D538 */ sw $zero, %lo(gCurrentStickY)($at) -.L80046F2C: -/* 047B2C 80046F2C 920B01F1 */ lbu $t3, 0x1f1($s0) -/* 047B30 80046F30 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 047B34 80046F34 1160000D */ beqz $t3, .L80046F6C -/* 047B38 80046F38 27A40068 */ addiu $a0, $sp, 0x68 -/* 047B3C 80046F3C 00067080 */ sll $t6, $a2, 2 -/* 047B40 80046F40 0006C880 */ sll $t9, $a2, 2 -/* 047B44 80046F44 860D0160 */ lh $t5, 0x160($s0) -/* 047B48 80046F48 86180162 */ lh $t8, 0x162($s0) -/* 047B4C 80046F4C 01C67021 */ addu $t6, $t6, $a2 -/* 047B50 80046F50 0326C823 */ subu $t9, $t9, $a2 -/* 047B54 80046F54 000E7200 */ sll $t6, $t6, 8 -/* 047B58 80046F58 0019CA40 */ sll $t9, $t9, 9 -/* 047B5C 80046F5C 01AE7821 */ addu $t7, $t5, $t6 -/* 047B60 80046F60 03195021 */ addu $t2, $t8, $t9 -/* 047B64 80046F64 A60F0160 */ sh $t7, 0x160($s0) -/* 047B68 80046F68 A60A0162 */ sh $t2, 0x162($s0) -.L80046F6C: -/* 047B6C 80046F6C 862C0000 */ lh $t4, ($s1) -/* 047B70 80046F70 44812000 */ mtc1 $at, $f4 -/* 047B74 80046F74 A4AC0000 */ sh $t4, ($a1) -/* 047B78 80046F78 862B0002 */ lh $t3, 2($s1) -/* 047B7C 80046F7C A4A00004 */ sh $zero, 4($a1) -/* 047B80 80046F80 E4A0000C */ swc1 $f0, 0xc($a1) -/* 047B84 80046F84 E4A00010 */ swc1 $f0, 0x10($a1) -/* 047B88 80046F88 E4A00014 */ swc1 $f0, 0x14($a1) -/* 047B8C 80046F8C E4A40008 */ swc1 $f4, 8($a1) -/* 047B90 80046F90 0C01BF0C */ jal object_transform_to_matrix -/* 047B94 80046F94 A4AB0002 */ sh $t3, 2($a1) -/* 047B98 80046F98 44800000 */ mtc1 $zero, $f0 -/* 047B9C 80046F9C 260D0038 */ addiu $t5, $s0, 0x38 -/* 047BA0 80046FA0 260E003C */ addiu $t6, $s0, 0x3c -/* 047BA4 80046FA4 260F0040 */ addiu $t7, $s0, 0x40 -/* 047BA8 80046FA8 44050000 */ mfc1 $a1, $f0 -/* 047BAC 80046FAC 44060000 */ mfc1 $a2, $f0 -/* 047BB0 80046FB0 AFAF0018 */ sw $t7, 0x18($sp) -/* 047BB4 80046FB4 AFAE0014 */ sw $t6, 0x14($sp) -/* 047BB8 80046FB8 AFAD0010 */ sw $t5, 0x10($sp) -/* 047BBC 80046FBC 27A40068 */ addiu $a0, $sp, 0x68 -/* 047BC0 80046FC0 0C01BD93 */ jal guMtxXFMF -/* 047BC4 80046FC4 3C073F80 */ lui $a3, 0x3f80 -/* 047BC8 80046FC8 44800000 */ mtc1 $zero, $f0 -/* 047BCC 80046FCC 26180044 */ addiu $t8, $s0, 0x44 -/* 047BD0 80046FD0 26190048 */ addiu $t9, $s0, 0x48 -/* 047BD4 80046FD4 260A004C */ addiu $t2, $s0, 0x4c -/* 047BD8 80046FD8 44050000 */ mfc1 $a1, $f0 -/* 047BDC 80046FDC 44070000 */ mfc1 $a3, $f0 -/* 047BE0 80046FE0 AFAA0018 */ sw $t2, 0x18($sp) -/* 047BE4 80046FE4 AFB90014 */ sw $t9, 0x14($sp) -/* 047BE8 80046FE8 AFB80010 */ sw $t8, 0x10($sp) -/* 047BEC 80046FEC 27A40068 */ addiu $a0, $sp, 0x68 -/* 047BF0 80046FF0 0C01BD93 */ jal guMtxXFMF -/* 047BF4 80046FF4 3C063F80 */ lui $a2, 0x3f80 -/* 047BF8 80046FF8 44800000 */ mtc1 $zero, $f0 -/* 047BFC 80046FFC 260C0050 */ addiu $t4, $s0, 0x50 -/* 047C00 80047000 260B0054 */ addiu $t3, $s0, 0x54 -/* 047C04 80047004 260D0058 */ addiu $t5, $s0, 0x58 -/* 047C08 80047008 44060000 */ mfc1 $a2, $f0 -/* 047C0C 8004700C 44070000 */ mfc1 $a3, $f0 -/* 047C10 80047010 AFAD0018 */ sw $t5, 0x18($sp) -/* 047C14 80047014 AFAB0014 */ sw $t3, 0x14($sp) -/* 047C18 80047018 AFAC0010 */ sw $t4, 0x10($sp) -/* 047C1C 8004701C 27A40068 */ addiu $a0, $sp, 0x68 -/* 047C20 80047020 0C01BD93 */ jal guMtxXFMF -/* 047C24 80047024 3C053F80 */ lui $a1, 0x3f80 -/* 047C28 80047028 8E0E0148 */ lw $t6, 0x148($s0) -/* 047C2C 8004702C 44805000 */ mtc1 $zero, $f10 -/* 047C30 80047030 15C0000E */ bnez $t6, .L8004706C -/* 047C34 80047034 3C0A8012 */ lui $t2, %hi(gCurrentRacerMiscAssetPtr) # $t2, 0x8012 -/* 047C38 80047038 A220003B */ sb $zero, 0x3b($s1) -/* 047C3C 8004703C 820201E1 */ lb $v0, 0x1e1($s0) -/* 047C40 80047040 24180028 */ li $t8, 40 -/* 047C44 80047044 00027843 */ sra $t7, $v0, 1 -/* 047C48 80047048 030F1023 */ subu $v0, $t8, $t7 -/* 047C4C 8004704C 04410003 */ bgez $v0, .L8004705C -/* 047C50 80047050 2841004A */ slti $at, $v0, 0x4a -/* 047C54 80047054 00001025 */ move $v0, $zero -/* 047C58 80047058 2841004A */ slti $at, $v0, 0x4a -.L8004705C: -/* 047C5C 8004705C 14200002 */ bnez $at, .L80047068 -/* 047C60 80047060 00000000 */ nop -/* 047C64 80047064 24020049 */ li $v0, 73 -.L80047068: -/* 047C68 80047068 A6220018 */ sh $v0, 0x18($s1) -.L8004706C: -/* 047C6C 8004706C C612002C */ lwc1 $f18, 0x2c($s0) -/* 047C70 80047070 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 047C74 80047074 460A903C */ c.lt.s $f18, $f10 -/* 047C78 80047078 44810000 */ mtc1 $at, $f0 -/* 047C7C 8004707C 45000002 */ bc1f .L80047088 -/* 047C80 80047080 3C0D8012 */ lui $t5, %hi(gCurrentPlayerIndex) # $t5, 0x8012 -/* 047C84 80047084 46009487 */ neg.s $f18, $f18 -.L80047088: -/* 047C88 80047088 4612003C */ c.lt.s $f0, $f18 -/* 047C8C 8004708C 00004825 */ move $t1, $zero -/* 047C90 80047090 45000002 */ bc1f .L8004709C -/* 047C94 80047094 00003825 */ move $a3, $zero -/* 047C98 80047098 46000486 */ mov.s $f18, $f0 -.L8004709C: -/* 047C9C 8004709C 4459F800 */ cfc1 $t9, $31 -/* 047CA0 800470A0 8D4AD564 */ lw $t2, %lo(gCurrentRacerMiscAssetPtr)($t2) -/* 047CA4 800470A4 37210003 */ ori $at, $t9, 3 -/* 047CA8 800470A8 38210002 */ xori $at, $at, 2 -/* 047CAC 800470AC 44C1F800 */ ctc1 $at, $31 -/* 047CB0 800470B0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 047CB4 800470B4 460091A4 */ cvt.w.s $f6, $f18 -/* 047CB8 800470B8 44815800 */ mtc1 $at, $f11 -/* 047CBC 800470BC 44023000 */ mfc1 $v0, $f6 -/* 047CC0 800470C0 44D9F800 */ ctc1 $t9, $31 -/* 047CC4 800470C4 44824000 */ mtc1 $v0, $f8 -/* 047CC8 800470C8 44805000 */ mtc1 $zero, $f10 -/* 047CCC 800470CC 46804120 */ cvt.s.w $f4, $f8 -/* 047CD0 800470D0 00026080 */ sll $t4, $v0, 2 -/* 047CD4 800470D4 014C1821 */ addu $v1, $t2, $t4 -/* 047CD8 800470D8 46049001 */ sub.s $f0, $f18, $f4 -/* 047CDC 800470DC C4640000 */ lwc1 $f4, ($v1) -/* 047CE0 800470E0 460001A1 */ cvt.d.s $f6, $f0 -/* 047CE4 800470E4 46265201 */ sub.d $f8, $f10, $f6 -/* 047CE8 800470E8 3C068012 */ lui $a2, %hi(gCurrentRacerWeightStat) # $a2, 0x8012 -/* 047CEC 800470EC 460022A1 */ cvt.d.s $f10, $f4 -/* 047CF0 800470F0 46285182 */ mul.d $f6, $f10, $f8 -/* 047CF4 800470F4 C4640004 */ lwc1 $f4, 4($v1) -/* 047CF8 800470F8 24C6D56C */ addiu $a2, %lo(gCurrentRacerWeightStat) # addiu $a2, $a2, -0x2a94 -/* 047CFC 800470FC 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 047D00 80047100 02001825 */ move $v1, $s0 -/* 047D04 80047104 46002282 */ mul.s $f10, $f4, $f0 -/* 047D08 80047108 46005221 */ cvt.d.s $f8, $f10 -/* 047D0C 8004710C 46283100 */ add.d $f4, $f6, $f8 -/* 047D10 80047110 C4CA0000 */ lwc1 $f10, ($a2) -/* 047D14 80047114 44804000 */ mtc1 $zero, $f8 -/* 047D18 80047118 44814800 */ mtc1 $at, $f9 -/* 047D1C 8004711C 462024A0 */ cvt.s.d $f18, $f4 -/* 047D20 80047120 460051A1 */ cvt.d.s $f6, $f10 -/* 047D24 80047124 46283102 */ mul.d $f4, $f6, $f8 -/* 047D28 80047128 462022A0 */ cvt.s.d $f10, $f4 -/* 047D2C 8004712C E4CA0000 */ swc1 $f10, ($a2) -/* 047D30 80047130 820B01E2 */ lb $t3, 0x1e2($s0) -/* 047D34 80047134 00000000 */ nop -/* 047D38 80047138 29610003 */ slti $at, $t3, 3 -/* 047D3C 8004713C 14200010 */ bnez $at, .L80047180 -/* 047D40 80047140 00000000 */ nop -/* 047D44 80047144 C4C60000 */ lwc1 $f6, ($a2) -/* 047D48 80047148 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 047D4C 8004714C 44812800 */ mtc1 $at, $f5 -/* 047D50 80047150 44802000 */ mtc1 $zero, $f4 -/* 047D54 80047154 46003221 */ cvt.d.s $f8, $f6 -/* 047D58 80047158 46244282 */ mul.d $f10, $f8, $f4 -/* 047D5C 8004715C C7A60054 */ lwc1 $f6, 0x54($sp) -/* 047D60 80047160 C7A70050 */ lwc1 $f7, 0x50($sp) -/* 047D64 80047164 C6240020 */ lwc1 $f4, 0x20($s1) -/* 047D68 80047168 46265202 */ mul.d $f8, $f10, $f6 -/* 047D6C 8004716C 460022A1 */ cvt.d.s $f10, $f4 -/* 047D70 80047170 46285181 */ sub.d $f6, $f10, $f8 -/* 047D74 80047174 46203120 */ cvt.s.d $f4, $f6 -/* 047D78 80047178 10000007 */ b .L80047198 -/* 047D7C 8004717C E6240020 */ swc1 $f4, 0x20($s1) -.L80047180: -/* 047D80 80047180 C4CA0000 */ lwc1 $f10, ($a2) -/* 047D84 80047184 C7A8012C */ lwc1 $f8, 0x12c($sp) -/* 047D88 80047188 C6240020 */ lwc1 $f4, 0x20($s1) -/* 047D8C 8004718C 46085182 */ mul.s $f6, $f10, $f8 -/* 047D90 80047190 46062281 */ sub.s $f10, $f4, $f6 -/* 047D94 80047194 E62A0020 */ swc1 $f10, 0x20($s1) -.L80047198: -/* 047D98 80047198 8DADD55C */ lw $t5, %lo(gCurrentPlayerIndex)($t5) -/* 047D9C 8004719C 2401FFFF */ li $at, -1 -/* 047DA0 800471A0 11A10008 */ beq $t5, $at, .L800471C4 -/* 047DA4 800471A4 24060004 */ li $a2, 4 -/* 047DA8 800471A8 820E01D8 */ lb $t6, 0x1d8($s0) -/* 047DAC 800471AC 00000000 */ nop -/* 047DB0 800471B0 15C00004 */ bnez $t6, .L800471C4 -/* 047DB4 800471B4 00000000 */ nop -/* 047DB8 800471B8 820801E1 */ lb $t0, 0x1e1($s0) -/* 047DBC 800471BC 10000004 */ b .L800471D0 -/* 047DC0 800471C0 00000000 */ nop -.L800471C4: -/* 047DC4 800471C4 3C088012 */ lui $t0, %hi(gCurrentStickX) # $t0, 0x8012 -/* 047DC8 800471C8 8D08D534 */ lw $t0, %lo(gCurrentStickX)($t0) -/* 047DCC 800471CC 00000000 */ nop -.L800471D0: -/* 047DD0 800471D0 3C01800E */ lui $at, %hi(D_800E63F0) # $at, 0x800e -/* 047DD4 800471D4 C42263F0 */ lwc1 $f2, %lo(D_800E63F0)($at) -/* 047DD8 800471D8 3C01800E */ lui $at, %hi(D_800E63F8 + 4) # $at, 0x800e -/* 047DDC 800471DC E7A200FC */ swc1 $f2, 0xfc($sp) -/* 047DE0 800471E0 C6280020 */ lwc1 $f8, 0x20($s1) -/* 047DE4 800471E4 C42563F8 */ lwc1 $f5, %lo(D_800E63F8)($at) -/* 047DE8 800471E8 C42463FC */ lwc1 $f4, %lo(D_800E63F8 + 4)($at) -/* 047DEC 800471EC 46004021 */ cvt.d.s $f0, $f8 -/* 047DF0 800471F0 46240182 */ mul.d $f6, $f0, $f4 -/* 047DF4 800471F4 C7AB0050 */ lwc1 $f11, 0x50($sp) -/* 047DF8 800471F8 C7AA0054 */ lwc1 $f10, 0x54($sp) -/* 047DFC 800471FC 3C0F8012 */ lui $t7, %hi(gCurrentRacerInput) # $t7, 0x8012 -/* 047E00 80047200 462A3202 */ mul.d $f8, $f6, $f10 -/* 047E04 80047204 46280101 */ sub.d $f4, $f0, $f8 -/* 047E08 80047208 462021A0 */ cvt.s.d $f6, $f4 -/* 047E0C 8004720C E6260020 */ swc1 $f6, 0x20($s1) -/* 047E10 80047210 8DEFD528 */ lw $t7, %lo(gCurrentRacerInput)($t7) -/* 047E14 80047214 00000000 */ nop -/* 047E18 80047218 31F84000 */ andi $t8, $t7, 0x4000 -/* 047E1C 8004721C 13000013 */ beqz $t8, .L8004726C -/* 047E20 80047220 3C198012 */ lui $t9, %hi(gCurrentStickY) # $t9, 0x8012 -/* 047E24 80047224 8F39D538 */ lw $t9, %lo(gCurrentStickY)($t9) -/* 047E28 80047228 00000000 */ nop -/* 047E2C 8004722C 2B21FFD8 */ slti $at, $t9, -0x28 -/* 047E30 80047230 1420000F */ bnez $at, .L80047270 -/* 047E34 80047234 8FA40128 */ lw $a0, 0x128($sp) -/* 047E38 80047238 C60A002C */ lwc1 $f10, 0x2c($s0) -/* 047E3C 8004723C 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 047E40 80047240 44812800 */ mtc1 $at, $f5 -/* 047E44 80047244 44802000 */ mtc1 $zero, $f4 -/* 047E48 80047248 46005221 */ cvt.d.s $f8, $f10 -/* 047E4C 8004724C 4628203E */ c.le.d $f4, $f8 -/* 047E50 80047250 3C014180 */ li $at, 0x41800000 # 16.000000 -/* 047E54 80047254 45000006 */ bc1f .L80047270 -/* 047E58 80047258 8FA40128 */ lw $a0, 0x128($sp) -/* 047E5C 8004725C 44813000 */ mtc1 $at, $f6 -/* 047E60 80047260 00000000 */ nop -/* 047E64 80047264 46061282 */ mul.s $f10, $f2, $f6 -/* 047E68 80047268 E7AA00FC */ swc1 $f10, 0xfc($sp) -.L8004726C: -/* 047E6C 8004726C 8FA40128 */ lw $a0, 0x128($sp) -.L80047270: -/* 047E70 80047270 000850C0 */ sll $t2, $t0, 3 -/* 047E74 80047274 01440019 */ multu $t2, $a0 -/* 047E78 80047278 3C028012 */ lui $v0, %hi(gCurrentStickY) # $v0, 0x8012 -/* 047E7C 8004727C 8C42D538 */ lw $v0, %lo(gCurrentStickY)($v0) -/* 047E80 80047280 00004025 */ move $t0, $zero -/* 047E84 80047284 00006012 */ mflo $t4 -/* 047E88 80047288 448C4000 */ mtc1 $t4, $f8 -/* 047E8C 8004728C 00000000 */ nop -/* 047E90 80047290 468040A0 */ cvt.s.w $f2, $f8 -/* 047E94 80047294 0441001C */ bgez $v0, .L80047308 -/* 047E98 80047298 46001386 */ mov.s $f14, $f2 -/* 047E9C 8004729C 00025823 */ negu $t3, $v0 -/* 047EA0 800472A0 448B2000 */ mtc1 $t3, $f4 -/* 047EA4 800472A4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 047EA8 800472A8 46802420 */ cvt.s.w $f16, $f4 -/* 047EAC 800472AC 44813800 */ mtc1 $at, $f7 -/* 047EB0 800472B0 3C01405C */ li $at, 0x405C0000 # 3.437500 -/* 047EB4 800472B4 44815800 */ mtc1 $at, $f11 -/* 047EB8 800472B8 44805000 */ mtc1 $zero, $f10 -/* 047EBC 800472BC 46008021 */ cvt.d.s $f0, $f16 -/* 047EC0 800472C0 00000000 */ nop -/* 047EC4 800472C4 462A0203 */ div.d $f8, $f0, $f10 -/* 047EC8 800472C8 44803000 */ mtc1 $zero, $f6 -/* 047ECC 800472CC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 047ED0 800472D0 460012A1 */ cvt.d.s $f10, $f2 -/* 047ED4 800472D4 46283100 */ add.d $f4, $f6, $f8 -/* 047ED8 800472D8 44814800 */ mtc1 $at, $f9 -/* 047EDC 800472DC 46245182 */ mul.d $f6, $f10, $f4 -/* 047EE0 800472E0 3C01800E */ lui $at, %hi(D_800E6400 + 4) # $at, 0x800e -/* 047EE4 800472E4 C42B6400 */ lwc1 $f11, %lo(D_800E6400)($at) -/* 047EE8 800472E8 C42A6404 */ lwc1 $f10, %lo(D_800E6400 + 4)($at) -/* 047EEC 800472EC 44804000 */ mtc1 $zero, $f8 -/* 047EF0 800472F0 462A0103 */ div.d $f4, $f0, $f10 -/* 047EF4 800472F4 462033A0 */ cvt.s.d $f14, $f6 -/* 047EF8 800472F8 460092A1 */ cvt.d.s $f10, $f18 -/* 047EFC 800472FC 46244181 */ sub.d $f6, $f8, $f4 -/* 047F00 80047300 46265202 */ mul.d $f8, $f10, $f6 -/* 047F04 80047304 462044A0 */ cvt.s.d $f18, $f8 -.L80047308: -/* 047F08 80047308 3C018012 */ lui $at, %hi(gCurrentRacerHandlingStat) # $at, 0x8012 -/* 047F0C 8004730C C424D570 */ lwc1 $f4, %lo(gCurrentRacerHandlingStat)($at) -/* 047F10 80047310 860D01A0 */ lh $t5, 0x1a0($s0) -/* 047F14 80047314 46047382 */ mul.s $f14, $f14, $f4 -/* 047F18 80047318 820C01E2 */ lb $t4, 0x1e2($s0) -/* 047F1C 8004731C 444EF800 */ cfc1 $t6, $31 -/* 047F20 80047320 00000000 */ nop -/* 047F24 80047324 35C10003 */ ori $at, $t6, 3 -/* 047F28 80047328 38210002 */ xori $at, $at, 2 -/* 047F2C 8004732C 44C1F800 */ ctc1 $at, $31 -/* 047F30 80047330 00000000 */ nop -/* 047F34 80047334 460072A4 */ cvt.w.s $f10, $f14 -/* 047F38 80047338 44195000 */ mfc1 $t9, $f10 -/* 047F3C 8004733C 44CEF800 */ ctc1 $t6, $31 -/* 047F40 80047340 01B95023 */ subu $t2, $t5, $t9 -/* 047F44 80047344 1580001A */ bnez $t4, .L800473B0 -/* 047F48 80047348 A60A01A0 */ sh $t2, 0x1a0($s0) -/* 047F4C 8004734C C60800C0 */ lwc1 $f8, 0xc0($s0) -/* 047F50 80047350 44803800 */ mtc1 $zero, $f7 -/* 047F54 80047354 44803000 */ mtc1 $zero, $f6 -/* 047F58 80047358 46004121 */ cvt.d.s $f4, $f8 -/* 047F5C 8004735C 46243032 */ c.eq.d $f6, $f4 -/* 047F60 80047360 00000000 */ nop -/* 047F64 80047364 45000012 */ bc1f .L800473B0 -/* 047F68 80047368 00000000 */ nop -/* 047F6C 8004736C C62A0020 */ lwc1 $f10, 0x20($s1) -/* 047F70 80047370 44804000 */ mtc1 $zero, $f8 -/* 047F74 80047374 24180019 */ li $t8, 25 -/* 047F78 80047378 4608503C */ c.lt.s $f10, $f8 -/* 047F7C 8004737C 00000000 */ nop -/* 047F80 80047380 45000005 */ bc1f .L80047398 -/* 047F84 80047384 00000000 */ nop -/* 047F88 80047388 820B01E0 */ lb $t3, 0x1e0($s0) -/* 047F8C 8004738C 00000000 */ nop -/* 047F90 80047390 01647021 */ addu $t6, $t3, $a0 -/* 047F94 80047394 A20E01E0 */ sb $t6, 0x1e0($s0) -.L80047398: -/* 047F98 80047398 820F01E0 */ lb $t7, 0x1e0($s0) -/* 047F9C 8004739C 00000000 */ nop -/* 047FA0 800473A0 29E1001A */ slti $at, $t7, 0x1a -/* 047FA4 800473A4 14200002 */ bnez $at, .L800473B0 -/* 047FA8 800473A8 00000000 */ nop -/* 047FAC 800473AC A21801E0 */ sb $t8, 0x1e0($s0) -.L800473B0: -/* 047FB0 800473B0 820501E2 */ lb $a1, 0x1e2($s0) -/* 047FB4 800473B4 240400FF */ li $a0, 255 -.L800473B8: -/* 047FB8 800473B8 906201DC */ lbu $v0, 0x1dc($v1) -/* 047FBC 800473BC 25080001 */ addiu $t0, $t0, 1 -/* 047FC0 800473C0 1082000B */ beq $a0, $v0, .L800473F0 -/* 047FC4 800473C4 0122082A */ slt $at, $t1, $v0 -/* 047FC8 800473C8 10200004 */ beqz $at, .L800473DC -/* 047FCC 800473CC 00000000 */ nop -/* 047FD0 800473D0 00024E00 */ sll $t1, $v0, 0x18 -/* 047FD4 800473D4 00096E03 */ sra $t5, $t1, 0x18 -/* 047FD8 800473D8 01A04825 */ move $t1, $t5 -.L800473DC: -/* 047FDC 800473DC 14C20005 */ bne $a2, $v0, .L800473F4 -/* 047FE0 800473E0 29010004 */ slti $at, $t0, 4 -/* 047FE4 800473E4 24E70001 */ addiu $a3, $a3, 1 -/* 047FE8 800473E8 0007CE00 */ sll $t9, $a3, 0x18 -/* 047FEC 800473EC 00193E03 */ sra $a3, $t9, 0x18 -.L800473F0: -/* 047FF0 800473F0 29010004 */ slti $at, $t0, 4 -.L800473F4: -/* 047FF4 800473F4 1420FFF0 */ bnez $at, .L800473B8 -/* 047FF8 800473F8 24630001 */ addiu $v1, $v1, 1 -/* 047FFC 800473FC 860C0000 */ lh $t4, ($s0) -/* 048000 80047400 00000000 */ nop -/* 048004 80047404 1580000D */ bnez $t4, .L8004743C -/* 048008 80047408 00000000 */ nop -/* 04800C 8004740C 10A0000B */ beqz $a1, .L8004743C -/* 048010 80047410 2401000C */ li $at, 12 -/* 048014 80047414 15210009 */ bne $t1, $at, .L8004743C -/* 048018 80047418 3C0B8012 */ lui $t3, %hi(gCurrentButtonsPressed) # $t3, 0x8012 -/* 04801C 8004741C 8D6BD52C */ lw $t3, %lo(gCurrentButtonsPressed)($t3) -/* 048020 80047420 240F0002 */ li $t7, 2 -/* 048024 80047424 316E2000 */ andi $t6, $t3, 0x2000 -/* 048028 80047428 11C00004 */ beqz $t6, .L8004743C -/* 04802C 8004742C 3C018012 */ lui $at, %hi(D_8011D582) # $at, 0x8012 -/* 048030 80047430 A02FD582 */ sb $t7, %lo(D_8011D582)($at) -/* 048034 80047434 820501E2 */ lb $a1, 0x1e2($s0) -/* 048038 80047438 00000000 */ nop -.L8004743C: -/* 04803C 8004743C 14A00008 */ bnez $a1, .L80047460 -/* 048040 80047440 00000000 */ nop -/* 048044 80047444 44803000 */ mtc1 $zero, $f6 -/* 048048 80047448 C60400C0 */ lwc1 $f4, 0xc0($s0) -/* 04804C 8004744C 00000000 */ nop -/* 048050 80047450 4604303C */ c.lt.s $f6, $f4 -/* 048054 80047454 00000000 */ nop -/* 048058 80047458 4500004F */ bc1f .L80047598 -/* 04805C 8004745C 02202025 */ move $a0, $s1 -.L80047460: -/* 048060 80047460 820201E0 */ lb $v0, 0x1e0($s0) -/* 048064 80047464 00000000 */ nop -/* 048068 80047468 1040004B */ beqz $v0, .L80047598 -/* 04806C 8004746C 02202025 */ move $a0, $s1 -/* 048070 80047470 10A0001E */ beqz $a1, .L800474EC -/* 048074 80047474 3C188012 */ lui $t8, %hi(gRaceStartTimer) # $t8, 0x8012 -/* 048078 80047478 8F18D540 */ lw $t8, %lo(gRaceStartTimer)($t8) -/* 04807C 8004747C 24010064 */ li $at, 100 -/* 048080 80047480 1301002A */ beq $t8, $at, .L8004752C -/* 048084 80047484 00000000 */ nop -/* 048088 80047488 860D0000 */ lh $t5, ($s0) -/* 04808C 8004748C 2401FFFF */ li $at, -1 -/* 048090 80047490 11A10026 */ beq $t5, $at, .L8004752C -/* 048094 80047494 28410006 */ slti $at, $v0, 6 -/* 048098 80047498 14200024 */ bnez $at, .L8004752C -/* 04809C 8004749C 240400AE */ li $a0, 174 -/* 0480A0 800474A0 2605021C */ addiu $a1, $s0, 0x21c -/* 0480A4 800474A4 A3A700AD */ sb $a3, 0xad($sp) -/* 0480A8 800474A8 A3A900AF */ sb $t1, 0xaf($sp) -/* 0480AC 800474AC 0C000741 */ jal play_sound_global -/* 0480B0 800474B0 E7B20104 */ swc1 $f18, 0x104($sp) -/* 0480B4 800474B4 820601E0 */ lb $a2, 0x1e0($s0) -/* 0480B8 800474B8 8E05021C */ lw $a1, 0x21c($s0) -/* 0480BC 800474BC 0006C840 */ sll $t9, $a2, 1 -/* 0480C0 800474C0 27260032 */ addiu $a2, $t9, 0x32 -/* 0480C4 800474C4 30CA00FF */ andi $t2, $a2, 0xff -/* 0480C8 800474C8 01403025 */ move $a2, $t2 -/* 0480CC 800474CC 0C0007EE */ jal func_80001FB8 -/* 0480D0 800474D0 240400AE */ li $a0, 174 -/* 0480D4 800474D4 83A700AD */ lb $a3, 0xad($sp) -/* 0480D8 800474D8 83A900AF */ lb $t1, 0xaf($sp) -/* 0480DC 800474DC C7B20104 */ lwc1 $f18, 0x104($sp) -/* 0480E0 800474E0 820201E0 */ lb $v0, 0x1e0($s0) -/* 0480E4 800474E4 10000012 */ b .L80047530 -/* 0480E8 800474E8 44825000 */ mtc1 $v0, $f10 -.L800474EC: -/* 0480EC 800474EC 8E0C0148 */ lw $t4, 0x148($s0) -/* 0480F0 800474F0 02202025 */ move $a0, $s1 -/* 0480F4 800474F4 1580000D */ bnez $t4, .L8004752C -/* 0480F8 800474F8 240500AF */ li $a1, 175 -/* 0480FC 800474FC A3A700AD */ sb $a3, 0xad($sp) -/* 048100 80047500 A3A900AF */ sb $t1, 0xaf($sp) -/* 048104 80047504 0C015C12 */ jal racer_play_sound -/* 048108 80047508 E7B20104 */ swc1 $f18, 0x104($sp) -/* 04810C 8004750C 8E2B0074 */ lw $t3, 0x74($s1) -/* 048110 80047510 83A700AD */ lb $a3, 0xad($sp) -/* 048114 80047514 83A900AF */ lb $t1, 0xaf($sp) -/* 048118 80047518 C7B20104 */ lwc1 $f18, 0x104($sp) -/* 04811C 8004751C 356E0030 */ ori $t6, $t3, 0x30 -/* 048120 80047520 AE2E0074 */ sw $t6, 0x74($s1) -/* 048124 80047524 820201E0 */ lb $v0, 0x1e0($s0) -/* 048128 80047528 00000000 */ nop -.L8004752C: -/* 04812C 8004752C 44825000 */ mtc1 $v0, $f10 -.L80047530: -/* 048130 80047530 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 048134 80047534 468050A0 */ cvt.s.w $f2, $f10 -/* 048138 80047538 44814000 */ mtc1 $at, $f8 -/* 04813C 8004753C 44803000 */ mtc1 $zero, $f6 -/* 048140 80047540 46081081 */ sub.s $f2, $f2, $f8 -/* 048144 80047544 4602303C */ c.lt.s $f6, $f2 -/* 048148 80047548 00000000 */ nop -/* 04814C 8004754C 45000010 */ bc1f .L80047590 -/* 048150 80047550 00000000 */ nop -/* 048154 80047554 8E0F0148 */ lw $t7, 0x148($s0) -/* 048158 80047558 3C01800E */ lui $at, %hi(D_800E6408 + 4) # $at, 0x800e -/* 04815C 8004755C 15E0000C */ bnez $t7, .L80047590 -/* 048160 80047560 00000000 */ nop -/* 048164 80047564 C42B6408 */ lwc1 $f11, %lo(D_800E6408)($at) -/* 048168 80047568 C42A640C */ lwc1 $f10, %lo(D_800E6408 + 4)($at) -/* 04816C 8004756C 46001121 */ cvt.d.s $f4, $f2 -/* 048170 80047570 462A2202 */ mul.d $f8, $f4, $f10 -/* 048174 80047574 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 048178 80047578 44813800 */ mtc1 $at, $f7 -/* 04817C 8004757C 44803000 */ mtc1 $zero, $f6 -/* 048180 80047580 00000000 */ nop -/* 048184 80047584 46283101 */ sub.d $f4, $f6, $f8 -/* 048188 80047588 462022A0 */ cvt.s.d $f10, $f4 -/* 04818C 8004758C E60A0090 */ swc1 $f10, 0x90($s0) -.L80047590: -/* 048190 80047590 A20001E0 */ sb $zero, 0x1e0($s0) -/* 048194 80047594 02202025 */ move $a0, $s1 -.L80047598: -/* 048198 80047598 02002825 */ move $a1, $s0 -/* 04819C 8004759C A3A700AD */ sb $a3, 0xad($sp) -/* 0481A0 800475A0 A3A900AF */ sb $t1, 0xaf($sp) -/* 0481A4 800475A4 0C015C88 */ jal handle_racer_top_speed -/* 0481A8 800475A8 E7B20104 */ swc1 $f18, 0x104($sp) -/* 0481AC 800475AC 3C01800E */ lui $at, %hi(D_800E6410 + 4) # $at, 0x800e -/* 0481B0 800475B0 C4296410 */ lwc1 $f9, %lo(D_800E6410)($at) -/* 0481B4 800475B4 C4286414 */ lwc1 $f8, %lo(D_800E6410 + 4)($at) -/* 0481B8 800475B8 460001A1 */ cvt.d.s $f6, $f0 -/* 0481BC 800475BC 46283102 */ mul.d $f4, $f6, $f8 -/* 0481C0 800475C0 C7B20104 */ lwc1 $f18, 0x104($sp) -/* 0481C4 800475C4 820301D3 */ lb $v1, 0x1d3($s0) -/* 0481C8 800475C8 460092A1 */ cvt.d.s $f10, $f18 -/* 0481CC 800475CC 83A700AD */ lb $a3, 0xad($sp) -/* 0481D0 800475D0 46245182 */ mul.d $f6, $f10, $f4 -/* 0481D4 800475D4 83A900AF */ lb $t1, 0xaf($sp) -/* 0481D8 800475D8 18600019 */ blez $v1, .L80047640 -/* 0481DC 800475DC 462034A0 */ cvt.s.d $f18, $f6 -/* 0481E0 800475E0 3C028012 */ lui $v0, %hi(gRaceStartTimer) # $v0, 0x8012 -/* 0481E4 800475E4 8C42D540 */ lw $v0, %lo(gRaceStartTimer)($v0) -/* 0481E8 800475E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0481EC 800475EC 14400018 */ bnez $v0, .L80047650 -/* 0481F0 800475F0 00000000 */ nop -/* 0481F4 800475F4 44802800 */ mtc1 $zero, $f5 -/* 0481F8 800475F8 44802000 */ mtc1 $zero, $f4 -/* 0481FC 800475FC 460091A1 */ cvt.d.s $f6, $f18 -/* 048200 80047600 44814000 */ mtc1 $at, $f8 -/* 048204 80047604 44805000 */ mtc1 $zero, $f10 -/* 048208 80047608 46262032 */ c.eq.d $f4, $f6 -/* 04820C 8004760C E7A800F4 */ swc1 $f8, 0xf4($sp) -/* 048210 80047610 45010004 */ bc1t .L80047624 -/* 048214 80047614 E7AA00F0 */ swc1 $f10, 0xf0($sp) -/* 048218 80047618 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04821C 8004761C 44819000 */ mtc1 $at, $f18 -/* 048220 80047620 00000000 */ nop -.L80047624: -/* 048224 80047624 8FB80128 */ lw $t8, 0x128($sp) -/* 048228 80047628 3C028012 */ lui $v0, %hi(gRaceStartTimer) # $v0, 0x8012 -/* 04822C 8004762C 00786823 */ subu $t5, $v1, $t8 -/* 048230 80047630 A20D01D3 */ sb $t5, 0x1d3($s0) -/* 048234 80047634 8C42D540 */ lw $v0, %lo(gRaceStartTimer)($v0) -/* 048238 80047638 10000005 */ b .L80047650 -/* 04823C 8004763C 00000000 */ nop -.L80047640: -/* 048240 80047640 A20001D3 */ sb $zero, 0x1d3($s0) -/* 048244 80047644 3C028012 */ lui $v0, %hi(gRaceStartTimer) # $v0, 0x8012 -/* 048248 80047648 8C42D540 */ lw $v0, %lo(gRaceStartTimer)($v0) -/* 04824C 8004764C 00000000 */ nop -.L80047650: -/* 048250 80047650 10400003 */ beqz $v0, .L80047660 -/* 048254 80047654 00000000 */ nop -/* 048258 80047658 44809000 */ mtc1 $zero, $f18 -/* 04825C 8004765C 00000000 */ nop -.L80047660: -/* 048260 80047660 10E00012 */ beqz $a3, .L800476AC -/* 048264 80047664 24040020 */ li $a0, 32 -/* 048268 80047668 A3A700AD */ sb $a3, 0xad($sp) -/* 04826C 8004766C A3A900AF */ sb $t1, 0xaf($sp) -/* 048270 80047670 0C0078A7 */ jal get_misc_asset -/* 048274 80047674 E7B20104 */ swc1 $f18, 0x104($sp) -/* 048278 80047678 83A700AD */ lb $a3, 0xad($sp) -/* 04827C 8004767C C7A800FC */ lwc1 $f8, 0xfc($sp) -/* 048280 80047680 0007C880 */ sll $t9, $a3, 2 -/* 048284 80047684 00595021 */ addu $t2, $v0, $t9 -/* 048288 80047688 C5400000 */ lwc1 $f0, ($t2) -/* 04828C 8004768C C7B20104 */ lwc1 $f18, 0x104($sp) -/* 048290 80047690 46004283 */ div.s $f10, $f8, $f0 -/* 048294 80047694 44802000 */ mtc1 $zero, $f4 -/* 048298 80047698 83A900AF */ lb $t1, 0xaf($sp) -/* 04829C 8004769C 46009482 */ mul.s $f18, $f18, $f0 -/* 0482A0 800476A0 E7AA00FC */ swc1 $f10, 0xfc($sp) -/* 0482A4 800476A4 A2000175 */ sb $zero, 0x175($s0) -/* 0482A8 800476A8 E6040030 */ swc1 $f4, 0x30($s0) -.L800476AC: -/* 0482AC 800476AC 820C01D3 */ lb $t4, 0x1d3($s0) -/* 0482B0 800476B0 00000000 */ nop -/* 0482B4 800476B4 1580001D */ bnez $t4, .L8004772C -/* 0482B8 800476B8 24010003 */ li $at, 3 -/* 0482BC 800476BC 1521001B */ bne $t1, $at, .L8004772C -/* 0482C0 800476C0 2404002D */ li $a0, 45 -/* 0482C4 800476C4 0C00322D */ jal normalise_time -/* 0482C8 800476C8 E7B20104 */ swc1 $f18, 0x104($sp) -/* 0482CC 800476CC 920E020C */ lbu $t6, 0x20c($s0) -/* 0482D0 800476D0 C7B20104 */ lwc1 $f18, 0x104($sp) -/* 0482D4 800476D4 240B0002 */ li $t3, 2 -/* 0482D8 800476D8 A20201D3 */ sb $v0, 0x1d3($s0) -/* 0482DC 800476DC 11C00005 */ beqz $t6, .L800476F4 -/* 0482E0 800476E0 A20B0203 */ sb $t3, 0x203($s0) -/* 0482E4 800476E4 820F0203 */ lb $t7, 0x203($s0) -/* 0482E8 800476E8 00000000 */ nop -/* 0482EC 800476EC 35F80004 */ ori $t8, $t7, 4 -/* 0482F0 800476F0 A2180203 */ sb $t8, 0x203($s0) -.L800476F4: -/* 0482F4 800476F4 02202025 */ move $a0, $s1 -/* 0482F8 800476F8 24050107 */ li $a1, 263 -/* 0482FC 800476FC 0C015C12 */ jal racer_play_sound -/* 048300 80047700 E7B20104 */ swc1 $f18, 0x104($sp) -/* 048304 80047704 02202025 */ move $a0, $s1 -/* 048308 80047708 24050162 */ li $a1, 354 -/* 04830C 8004770C 24060008 */ li $a2, 8 -/* 048310 80047710 0C015C2E */ jal play_random_character_voice -/* 048314 80047714 24070082 */ li $a3, 130 -/* 048318 80047718 86040000 */ lh $a0, ($s0) -/* 04831C 8004771C 0C01C8D2 */ jal func_80072348 -/* 048320 80047720 24050008 */ li $a1, 8 -/* 048324 80047724 C7B20104 */ lwc1 $f18, 0x104($sp) -/* 048328 80047728 00000000 */ nop -.L8004772C: -/* 04832C 8004772C C62E0024 */ lwc1 $f14, 0x24($s1) -/* 048330 80047730 C620001C */ lwc1 $f0, 0x1c($s1) -/* 048334 80047734 460E7182 */ mul.s $f6, $f14, $f14 -/* 048338 80047738 E7B20104 */ swc1 $f18, 0x104($sp) -/* 04833C 8004773C 46000202 */ mul.s $f8, $f0, $f0 -/* 048340 80047740 0C0326B4 */ jal sqrtf -/* 048344 80047744 46083300 */ add.s $f12, $f6, $f8 -/* 048348 80047748 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 -/* 04834C 8004774C 44815800 */ mtc1 $at, $f11 -/* 048350 80047750 44805000 */ mtc1 $zero, $f10 -/* 048354 80047754 46000121 */ cvt.d.s $f4, $f0 -/* 048358 80047758 4624503C */ c.lt.d $f10, $f4 -/* 04835C 8004775C C7B20104 */ lwc1 $f18, 0x104($sp) -/* 048360 80047760 4500007F */ bc1f .L80047960 -/* 048364 80047764 46000086 */ mov.s $f2, $f0 -/* 048368 80047768 C62C001C */ lwc1 $f12, 0x1c($s1) -/* 04836C 8004776C C62E0024 */ lwc1 $f14, 0x24($s1) -/* 048370 80047770 E7B20104 */ swc1 $f18, 0x104($sp) -/* 048374 80047774 0C01C1D4 */ jal arctan2_f -/* 048378 80047778 E7A200D0 */ swc1 $f2, 0xd0($sp) -/* 04837C 8004777C 34058000 */ li $a1, 32768 -/* 048380 80047780 C7A200D0 */ lwc1 $f2, 0xd0($sp) -/* 048384 80047784 00456821 */ addu $t5, $v0, $a1 -/* 048388 80047788 C7B20104 */ lwc1 $f18, 0x104($sp) -/* 04838C 8004778C A60D0168 */ sh $t5, 0x168($s0) -/* 048390 80047790 86190168 */ lh $t9, 0x168($s0) -/* 048394 80047794 86040196 */ lh $a0, 0x196($s0) -/* 048398 80047798 00B95023 */ subu $t2, $a1, $t9 -/* 04839C 8004779C 314CFFFF */ andi $t4, $t2, 0xffff -/* 0483A0 800477A0 308BFFFF */ andi $t3, $a0, 0xffff -/* 0483A4 800477A4 34098001 */ li $t1, 32769 -/* 0483A8 800477A8 018B1823 */ subu $v1, $t4, $t3 -/* 0483AC 800477AC 0069082A */ slt $at, $v1, $t1 -/* 0483B0 800477B0 14200004 */ bnez $at, .L800477C4 -/* 0483B4 800477B4 46001321 */ cvt.d.s $f12, $f2 -/* 0483B8 800477B8 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 0483BC 800477BC 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 0483C0 800477C0 00611821 */ addu $v1, $v1, $at -.L800477C4: -/* 0483C4 800477C4 28618000 */ slti $at, $v1, -0x8000 -/* 0483C8 800477C8 10200002 */ beqz $at, .L800477D4 -/* 0483CC 800477CC 3401FFFF */ li $at, 65535 -/* 0483D0 800477D0 00611821 */ addu $v1, $v1, $at -.L800477D4: -/* 0483D4 800477D4 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 -/* 0483D8 800477D8 44813800 */ mtc1 $at, $f7 -/* 0483DC 800477DC 44803000 */ mtc1 $zero, $f6 -/* 0483E0 800477E0 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 0483E4 800477E4 46266201 */ sub.d $f8, $f12, $f6 -/* 0483E8 800477E8 44815800 */ mtc1 $at, $f11 -/* 0483EC 800477EC 46204020 */ cvt.s.d $f0, $f8 -/* 0483F0 800477F0 44805000 */ mtc1 $zero, $f10 -/* 0483F4 800477F4 46000121 */ cvt.d.s $f4, $f0 -/* 0483F8 800477F8 4624503C */ c.lt.d $f10, $f4 -/* 0483FC 800477FC 44804000 */ mtc1 $zero, $f8 -/* 048400 80047800 44832000 */ mtc1 $v1, $f4 -/* 048404 80047804 45000003 */ bc1f .L80047814 -/* 048408 80047808 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 04840C 8004780C 44810000 */ mtc1 $at, $f0 -/* 048410 80047810 00000000 */ nop -.L80047814: -/* 048414 80047814 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 048418 80047818 44814800 */ mtc1 $at, $f9 -/* 04841C 8004781C 460001A1 */ cvt.d.s $f6, $f0 -/* 048420 80047820 46283282 */ mul.d $f10, $f6, $f8 -/* 048424 80047824 468021A0 */ cvt.s.w $f6, $f4 -/* 048428 80047828 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 04842C 8004782C 44812800 */ mtc1 $at, $f5 -/* 048430 80047830 44802000 */ mtc1 $zero, $f4 -/* 048434 80047834 46205020 */ cvt.s.d $f0, $f10 -/* 048438 80047838 8FA80128 */ lw $t0, 0x128($sp) -/* 04843C 8004783C 46003202 */ mul.s $f8, $f6, $f0 -/* 048440 80047840 860201A0 */ lh $v0, 0x1a0($s0) -/* 048444 80047844 44800000 */ mtc1 $zero, $f0 -/* 048448 80047848 304CFFFF */ andi $t4, $v0, 0xffff -/* 04844C 8004784C 460042A1 */ cvt.d.s $f10, $f8 -/* 048450 80047850 46245182 */ mul.d $f6, $f10, $f4 -/* 048454 80047854 444EF800 */ cfc1 $t6, $31 -/* 048458 80047858 00000000 */ nop -/* 04845C 8004785C 35C10003 */ ori $at, $t6, 3 -/* 048460 80047860 38210002 */ xori $at, $at, 2 -/* 048464 80047864 44C1F800 */ ctc1 $at, $31 -/* 048468 80047868 00000000 */ nop -/* 04846C 8004786C 46203224 */ cvt.w.d $f8, $f6 -/* 048470 80047870 44034000 */ mfc1 $v1, $f8 -/* 048474 80047874 44CEF800 */ ctc1 $t6, $31 -/* 048478 80047878 00680019 */ multu $v1, $t0 -/* 04847C 8004787C 00007812 */ mflo $t7 -/* 048480 80047880 000FC103 */ sra $t8, $t7, 4 -/* 048484 80047884 00986821 */ addu $t5, $a0, $t8 -/* 048488 80047888 A60D0196 */ sh $t5, 0x196($s0) -/* 04848C 8004788C 86190196 */ lh $t9, 0x196($s0) -/* 048490 80047890 00000000 */ nop -/* 048494 80047894 00B95023 */ subu $t2, $a1, $t9 -/* 048498 80047898 014C1823 */ subu $v1, $t2, $t4 -/* 04849C 8004789C 0069082A */ slt $at, $v1, $t1 -/* 0484A0 800478A0 14200003 */ bnez $at, .L800478B0 -/* 0484A4 800478A4 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 0484A8 800478A8 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 0484AC 800478AC 00611821 */ addu $v1, $v1, $at -.L800478B0: -/* 0484B0 800478B0 28618000 */ slti $at, $v1, -0x8000 -/* 0484B4 800478B4 10200002 */ beqz $at, .L800478C0 -/* 0484B8 800478B8 3401FFFF */ li $at, 65535 -/* 0484BC 800478BC 00611821 */ addu $v1, $v1, $at -.L800478C0: -/* 0484C0 800478C0 3C014024 */ li $at, 0x40240000 # 2.562500 -/* 0484C4 800478C4 44810800 */ mtc1 $at, $f1 -/* 0484C8 800478C8 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 0484CC 800478CC 462C003C */ c.lt.d $f0, $f12 -/* 0484D0 800478D0 00000000 */ nop -/* 0484D4 800478D4 45000005 */ bc1f .L800478EC -/* 0484D8 800478D8 00000000 */ nop -/* 0484DC 800478DC 44811000 */ mtc1 $at, $f2 -/* 0484E0 800478E0 00000000 */ nop -/* 0484E4 800478E4 46001321 */ cvt.d.s $f12, $f2 -/* 0484E8 800478E8 00000000 */ nop -.L800478EC: -/* 0484EC 800478EC 46206283 */ div.d $f10, $f12, $f0 -/* 0484F0 800478F0 44832000 */ mtc1 $v1, $f4 -/* 0484F4 800478F4 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 -/* 0484F8 800478F8 468021A0 */ cvt.s.w $f6, $f4 -/* 0484FC 800478FC 8C84D528 */ lw $a0, %lo(gCurrentRacerInput)($a0) -/* 048500 80047900 00000000 */ nop -/* 048504 80047904 308E8000 */ andi $t6, $a0, 0x8000 -/* 048508 80047908 308F0010 */ andi $t7, $a0, 0x10 -/* 04850C 8004790C 462050A0 */ cvt.s.d $f2, $f10 -/* 048510 80047910 46023202 */ mul.s $f8, $f6, $f2 -/* 048514 80047914 444BF800 */ cfc1 $t3, $31 -/* 048518 80047918 00000000 */ nop -/* 04851C 8004791C 35610003 */ ori $at, $t3, 3 -/* 048520 80047920 38210002 */ xori $at, $at, 2 -/* 048524 80047924 44C1F800 */ ctc1 $at, $31 -/* 048528 80047928 00000000 */ nop -/* 04852C 8004792C 460042A4 */ cvt.w.s $f10, $f8 -/* 048530 80047930 44035000 */ mfc1 $v1, $f10 -/* 048534 80047934 44CBF800 */ ctc1 $t3, $31 -/* 048538 80047938 15C00003 */ bnez $t6, .L80047948 -/* 04853C 8004793C 0003C040 */ sll $t8, $v1, 1 -/* 048540 80047940 11E00002 */ beqz $t7, .L8004794C -/* 048544 80047944 00000000 */ nop -.L80047948: -/* 048548 80047948 03001825 */ move $v1, $t8 -.L8004794C: -/* 04854C 8004794C 00680019 */ multu $v1, $t0 -/* 048550 80047950 00006812 */ mflo $t5 -/* 048554 80047954 000DC9C3 */ sra $t9, $t5, 7 -/* 048558 80047958 00595021 */ addu $t2, $v0, $t9 -/* 04855C 8004795C A60A01A0 */ sh $t2, 0x1a0($s0) -.L80047960: -/* 048560 80047960 86040196 */ lh $a0, 0x196($s0) -/* 048564 80047964 860C01A0 */ lh $t4, 0x1a0($s0) -/* 048568 80047968 34058000 */ li $a1, 32768 -/* 04856C 8004796C 308EFFFF */ andi $t6, $a0, 0xffff -/* 048570 80047970 00AC5823 */ subu $t3, $a1, $t4 -/* 048574 80047974 34098001 */ li $t1, 32769 -/* 048578 80047978 016E1823 */ subu $v1, $t3, $t6 -/* 04857C 8004797C 8FA80128 */ lw $t0, 0x128($sp) -/* 048580 80047980 0069082A */ slt $at, $v1, $t1 -/* 048584 80047984 14200003 */ bnez $at, .L80047994 -/* 048588 80047988 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 04858C 8004798C 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 048590 80047990 00611821 */ addu $v1, $v1, $at -.L80047994: -/* 048594 80047994 28618000 */ slti $at, $v1, -0x8000 -/* 048598 80047998 10200002 */ beqz $at, .L800479A4 -/* 04859C 8004799C 3401FFFF */ li $at, 65535 -/* 0485A0 800479A0 00611821 */ addu $v1, $v1, $at -.L800479A4: -/* 0485A4 800479A4 44832000 */ mtc1 $v1, $f4 -/* 0485A8 800479A8 3C013FFC */ li $at, 0x3FFC0000 # 1.968750 -/* 0485AC 800479AC 468021A0 */ cvt.s.w $f6, $f4 -/* 0485B0 800479B0 44815800 */ mtc1 $at, $f11 -/* 0485B4 800479B4 44805000 */ mtc1 $zero, $f10 -/* 0485B8 800479B8 46003221 */ cvt.d.s $f8, $f6 -/* 0485BC 800479BC 462A4102 */ mul.d $f4, $f8, $f10 -/* 0485C0 800479C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0485C4 800479C4 44813000 */ mtc1 $at, $f6 -/* 0485C8 800479C8 920A01F5 */ lbu $t2, 0x1f5($s0) -/* 0485CC 800479CC 46003221 */ cvt.d.s $f8, $f6 -/* 0485D0 800479D0 46282282 */ mul.d $f10, $f4, $f8 -/* 0485D4 800479D4 444FF800 */ cfc1 $t7, $31 -/* 0485D8 800479D8 00000000 */ nop -/* 0485DC 800479DC 35E10003 */ ori $at, $t7, 3 -/* 0485E0 800479E0 38210002 */ xori $at, $at, 2 -/* 0485E4 800479E4 44C1F800 */ ctc1 $at, $31 -/* 0485E8 800479E8 00000000 */ nop -/* 0485EC 800479EC 462051A4 */ cvt.w.d $f6, $f10 -/* 0485F0 800479F0 44033000 */ mfc1 $v1, $f6 -/* 0485F4 800479F4 44CFF800 */ ctc1 $t7, $31 -/* 0485F8 800479F8 00680019 */ multu $v1, $t0 -/* 0485FC 800479FC 0000C012 */ mflo $t8 -/* 048600 80047A00 00186983 */ sra $t5, $t8, 6 -/* 048604 80047A04 008DC821 */ addu $t9, $a0, $t5 -/* 048608 80047A08 15400120 */ bnez $t2, .L80047E8C -/* 04860C 80047A0C A6190196 */ sh $t9, 0x196($s0) -/* 048610 80047A10 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 -/* 048614 80047A14 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) -/* 048618 80047A18 2401FFFF */ li $at, -1 -/* 04861C 80047A1C 15810038 */ bne $t4, $at, .L80047B00 -/* 048620 80047A20 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 -/* 048624 80047A24 820B01D8 */ lb $t3, 0x1d8($s0) -/* 048628 80047A28 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 -/* 04862C 80047A2C 15600034 */ bnez $t3, .L80047B00 -/* 048630 80047A30 00000000 */ nop -/* 048634 80047A34 C6040030 */ lwc1 $f4, 0x30($s0) -/* 048638 80047A38 44815800 */ mtc1 $at, $f11 -/* 04863C 80047A3C 44805000 */ mtc1 $zero, $f10 -/* 048640 80047A40 46002221 */ cvt.d.s $f8, $f4 -/* 048644 80047A44 462A4182 */ mul.d $f6, $f8, $f10 -/* 048648 80047A48 3C01800E */ lui $at, %hi(D_800E6418 + 4) # $at, 0x800e -/* 04864C 80047A4C C4296418 */ lwc1 $f9, %lo(D_800E6418)($at) -/* 048650 80047A50 C428641C */ lwc1 $f8, %lo(D_800E6418 + 4)($at) -/* 048654 80047A54 3C01800E */ lui $at, %hi(D_800E6420 + 4) # $at, 0x800e -/* 048658 80047A58 46203420 */ cvt.s.d $f16, $f6 -/* 04865C 80047A5C 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 -/* 048660 80047A60 46008121 */ cvt.d.s $f4, $f16 -/* 048664 80047A64 46282282 */ mul.d $f10, $f4, $f8 -/* 048668 80047A68 44802000 */ mtc1 $zero, $f4 -/* 04866C 80047A6C 44802800 */ mtc1 $zero, $f5 -/* 048670 80047A70 46205020 */ cvt.s.d $f0, $f10 -/* 048674 80047A74 460001A1 */ cvt.d.s $f6, $f0 -/* 048678 80047A78 4624303C */ c.lt.d $f6, $f4 -/* 04867C 80047A7C 46000306 */ mov.s $f12, $f0 -/* 048680 80047A80 45000002 */ bc1f .L80047A8C -/* 048684 80047A84 00000000 */ nop -/* 048688 80047A88 46000307 */ neg.s $f12, $f0 -.L80047A8C: -/* 04868C 80047A8C C4296420 */ lwc1 $f9, %lo(D_800E6420)($at) -/* 048690 80047A90 C4286424 */ lwc1 $f8, %lo(D_800E6420 + 4)($at) -/* 048694 80047A94 460062A1 */ cvt.d.s $f10, $f12 -/* 048698 80047A98 462A403C */ c.lt.d $f8, $f10 -/* 04869C 80047A9C 00000000 */ nop -/* 0486A0 80047AA0 45000005 */ bc1f .L80047AB8 -/* 0486A4 80047AA4 00000000 */ nop -/* 0486A8 80047AA8 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) -/* 0486AC 80047AAC 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 -/* 0486B0 80047AB0 35CF0010 */ ori $t7, $t6, 0x10 -/* 0486B4 80047AB4 AC2FD528 */ sw $t7, %lo(gCurrentRacerInput)($at) -.L80047AB8: -/* 0486B8 80047AB8 C6040038 */ lwc1 $f4, 0x38($s0) -/* 0486BC 80047ABC C626001C */ lwc1 $f6, 0x1c($s1) -/* 0486C0 80047AC0 460C2202 */ mul.s $f8, $f4, $f12 -/* 0486C4 80047AC4 C6240020 */ lwc1 $f4, 0x20($s1) -/* 0486C8 80047AC8 46083280 */ add.s $f10, $f6, $f8 -/* 0486CC 80047ACC E62A001C */ swc1 $f10, 0x1c($s1) -/* 0486D0 80047AD0 C606003C */ lwc1 $f6, 0x3c($s0) -/* 0486D4 80047AD4 00000000 */ nop -/* 0486D8 80047AD8 460C3202 */ mul.s $f8, $f6, $f12 -/* 0486DC 80047ADC C6260024 */ lwc1 $f6, 0x24($s1) -/* 0486E0 80047AE0 46082280 */ add.s $f10, $f4, $f8 -/* 0486E4 80047AE4 E62A0020 */ swc1 $f10, 0x20($s1) -/* 0486E8 80047AE8 C6040040 */ lwc1 $f4, 0x40($s0) -/* 0486EC 80047AEC 00000000 */ nop -/* 0486F0 80047AF0 460C2202 */ mul.s $f8, $f4, $f12 -/* 0486F4 80047AF4 46083280 */ add.s $f10, $f6, $f8 -/* 0486F8 80047AF8 10000039 */ b .L80047BE0 -/* 0486FC 80047AFC E62A0024 */ swc1 $f10, 0x24($s1) -.L80047B00: -/* 048700 80047B00 3C01800E */ lui $at, %hi(D_800E6428 + 4) # $at, 0x800e -/* 048704 80047B04 C6040030 */ lwc1 $f4, 0x30($s0) -/* 048708 80047B08 C4276428 */ lwc1 $f7, %lo(D_800E6428)($at) -/* 04870C 80047B0C C426642C */ lwc1 $f6, %lo(D_800E6428 + 4)($at) -/* 048710 80047B10 46002021 */ cvt.d.s $f0, $f4 -/* 048714 80047B14 46260202 */ mul.d $f8, $f0, $f6 -/* 048718 80047B18 8C84D528 */ lw $a0, %lo(gCurrentRacerInput)($a0) -/* 04871C 80047B1C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 048720 80047B20 30980010 */ andi $t8, $a0, 0x10 -/* 048724 80047B24 1300002E */ beqz $t8, .L80047BE0 -/* 048728 80047B28 46204420 */ cvt.s.d $f16, $f8 -/* 04872C 80047B2C 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 -/* 048730 80047B30 44815000 */ mtc1 $at, $f10 -/* 048734 80047B34 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) -/* 048738 80047B38 460A8402 */ mul.s $f16, $f16, $f10 -/* 04873C 80047B3C 2841FFD9 */ slti $at, $v0, -0x27 -/* 048740 80047B40 1420000C */ bnez $at, .L80047B74 -/* 048744 80047B44 308D4000 */ andi $t5, $a0, 0x4000 -/* 048748 80047B48 28410028 */ slti $at, $v0, 0x28 -/* 04874C 80047B4C 10200009 */ beqz $at, .L80047B74 -/* 048750 80047B50 3C01800E */ lui $at, %hi(D_800E6430 + 4) # $at, 0x800e -/* 048754 80047B54 C7A400F4 */ lwc1 $f4, 0xf4($sp) -/* 048758 80047B58 C4296430 */ lwc1 $f9, %lo(D_800E6430)($at) -/* 04875C 80047B5C C4286434 */ lwc1 $f8, %lo(D_800E6430 + 4)($at) -/* 048760 80047B60 460021A1 */ cvt.d.s $f6, $f4 -/* 048764 80047B64 46283282 */ mul.d $f10, $f6, $f8 -/* 048768 80047B68 46205120 */ cvt.s.d $f4, $f10 -/* 04876C 80047B6C 10000016 */ b .L80047BC8 -/* 048770 80047B70 E7A400F4 */ swc1 $f4, 0xf4($sp) -.L80047B74: -/* 048774 80047B74 3C014004 */ li $at, 0x40040000 # 2.062500 -/* 048778 80047B78 44813800 */ mtc1 $at, $f7 -/* 04877C 80047B7C 44803000 */ mtc1 $zero, $f6 -/* 048780 80047B80 C7AA00F4 */ lwc1 $f10, 0xf4($sp) -/* 048784 80047B84 4620303C */ c.lt.d $f6, $f0 -/* 048788 80047B88 3C01C004 */ li $at, 0xC0040000 # -2.062500 -/* 04878C 80047B8C 45010007 */ bc1t .L80047BAC -/* 048790 80047B90 00000000 */ nop -/* 048794 80047B94 44814800 */ mtc1 $at, $f9 -/* 048798 80047B98 44804000 */ mtc1 $zero, $f8 -/* 04879C 80047B9C 00000000 */ nop -/* 0487A0 80047BA0 4628003C */ c.lt.d $f0, $f8 -/* 0487A4 80047BA4 00000000 */ nop -/* 0487A8 80047BA8 45000007 */ bc1f .L80047BC8 -.L80047BAC: -/* 0487AC 80047BAC 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 -/* 0487B0 80047BB0 44813800 */ mtc1 $at, $f7 -/* 0487B4 80047BB4 44803000 */ mtc1 $zero, $f6 -/* 0487B8 80047BB8 46005121 */ cvt.d.s $f4, $f10 -/* 0487BC 80047BBC 46262202 */ mul.d $f8, $f4, $f6 -/* 0487C0 80047BC0 462042A0 */ cvt.s.d $f10, $f8 -/* 0487C4 80047BC4 E7AA00F4 */ swc1 $f10, 0xf4($sp) -.L80047BC8: -/* 0487C8 80047BC8 11A00005 */ beqz $t5, .L80047BE0 -/* 0487CC 80047BCC 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0487D0 80047BD0 44812000 */ mtc1 $at, $f4 -/* 0487D4 80047BD4 00000000 */ nop -/* 0487D8 80047BD8 46048402 */ mul.s $f16, $f16, $f4 -/* 0487DC 80047BDC 00000000 */ nop -.L80047BE0: -/* 0487E0 80047BE0 C6080050 */ lwc1 $f8, 0x50($s0) -/* 0487E4 80047BE4 C626001C */ lwc1 $f6, 0x1c($s1) -/* 0487E8 80047BE8 46104282 */ mul.s $f10, $f8, $f16 -/* 0487EC 80047BEC C6280020 */ lwc1 $f8, 0x20($s1) -/* 0487F0 80047BF0 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 0487F4 80047BF4 3C0A8012 */ lui $t2, %hi(D_8011D584) # $t2, 0x8012 -/* 0487F8 80047BF8 460A3101 */ sub.s $f4, $f6, $f10 -/* 0487FC 80047BFC 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 -/* 048800 80047C00 E624001C */ swc1 $f4, 0x1c($s1) -/* 048804 80047C04 C6060054 */ lwc1 $f6, 0x54($s0) -/* 048808 80047C08 00000000 */ nop -/* 04880C 80047C0C 46103282 */ mul.s $f10, $f6, $f16 -/* 048810 80047C10 C6260024 */ lwc1 $f6, 0x24($s1) -/* 048814 80047C14 460A4101 */ sub.s $f4, $f8, $f10 -/* 048818 80047C18 E6240020 */ swc1 $f4, 0x20($s1) -/* 04881C 80047C1C C6080058 */ lwc1 $f8, 0x58($s0) -/* 048820 80047C20 00000000 */ nop -/* 048824 80047C24 46104282 */ mul.s $f10, $f8, $f16 -/* 048828 80047C28 460A3101 */ sub.s $f4, $f6, $f10 -/* 04882C 80047C2C E6240024 */ swc1 $f4, 0x24($s1) -/* 048830 80047C30 C7A800F4 */ lwc1 $f8, 0xf4($sp) -/* 048834 80047C34 00000000 */ nop -/* 048838 80047C38 46124182 */ mul.s $f6, $f8, $f18 -/* 04883C 80047C3C E7A600F4 */ swc1 $f6, 0xf4($sp) -/* 048840 80047C40 C60A0038 */ lwc1 $f10, 0x38($s0) -/* 048844 80047C44 C628001C */ lwc1 $f8, 0x1c($s1) -/* 048848 80047C48 46065102 */ mul.s $f4, $f10, $f6 -/* 04884C 80047C4C 46044281 */ sub.s $f10, $f8, $f4 -/* 048850 80047C50 E62A001C */ swc1 $f10, 0x1c($s1) -/* 048854 80047C54 C606003C */ lwc1 $f6, 0x3c($s0) -/* 048858 80047C58 C7A800F4 */ lwc1 $f8, 0xf4($sp) -/* 04885C 80047C5C C62A0020 */ lwc1 $f10, 0x20($s1) -/* 048860 80047C60 46083102 */ mul.s $f4, $f6, $f8 -/* 048864 80047C64 46045181 */ sub.s $f6, $f10, $f4 -/* 048868 80047C68 E6260020 */ swc1 $f6, 0x20($s1) -/* 04886C 80047C6C C6080040 */ lwc1 $f8, 0x40($s0) -/* 048870 80047C70 C7AA00F4 */ lwc1 $f10, 0xf4($sp) -/* 048874 80047C74 C6260024 */ lwc1 $f6, 0x24($s1) -/* 048878 80047C78 460A4102 */ mul.s $f4, $f8, $f10 -/* 04887C 80047C7C 46043201 */ sub.s $f8, $f6, $f4 -/* 048880 80047C80 44813000 */ mtc1 $at, $f6 -/* 048884 80047C84 E6280024 */ swc1 $f8, 0x24($s1) -/* 048888 80047C88 46069103 */ div.s $f4, $f18, $f6 -/* 04888C 80047C8C C7AA00F0 */ lwc1 $f10, 0xf0($sp) -/* 048890 80047C90 00000000 */ nop -/* 048894 80047C94 46045202 */ mul.s $f8, $f10, $f4 -/* 048898 80047C98 E7A800F0 */ swc1 $f8, 0xf0($sp) -/* 04889C 80047C9C C6060038 */ lwc1 $f6, 0x38($s0) -/* 0488A0 80047CA0 C624001C */ lwc1 $f4, 0x1c($s1) -/* 0488A4 80047CA4 46083282 */ mul.s $f10, $f6, $f8 -/* 0488A8 80047CA8 460A2180 */ add.s $f6, $f4, $f10 -/* 0488AC 80047CAC E626001C */ swc1 $f6, 0x1c($s1) -/* 0488B0 80047CB0 C7A400F0 */ lwc1 $f4, 0xf0($sp) -/* 0488B4 80047CB4 C608003C */ lwc1 $f8, 0x3c($s0) -/* 0488B8 80047CB8 C6260020 */ lwc1 $f6, 0x20($s1) -/* 0488BC 80047CBC 46044282 */ mul.s $f10, $f8, $f4 -/* 0488C0 80047CC0 460A3200 */ add.s $f8, $f6, $f10 -/* 0488C4 80047CC4 E6280020 */ swc1 $f8, 0x20($s1) -/* 0488C8 80047CC8 C7A600F0 */ lwc1 $f6, 0xf0($sp) -/* 0488CC 80047CCC C6040040 */ lwc1 $f4, 0x40($s0) -/* 0488D0 80047CD0 C6280024 */ lwc1 $f8, 0x24($s1) -/* 0488D4 80047CD4 46062282 */ mul.s $f10, $f4, $f6 -/* 0488D8 80047CD8 460A4100 */ add.s $f4, $f8, $f10 -/* 0488DC 80047CDC E6240024 */ swc1 $f4, 0x24($s1) -/* 0488E0 80047CE0 821901E2 */ lb $t9, 0x1e2($s0) -/* 0488E4 80047CE4 00000000 */ nop -/* 0488E8 80047CE8 13200031 */ beqz $t9, .L80047DB0 -/* 0488EC 80047CEC 00000000 */ nop -/* 0488F0 80047CF0 814AD584 */ lb $t2, %lo(D_8011D584)($t2) -/* 0488F4 80047CF4 3C0C8012 */ lui $t4, %hi(gRaceStartTimer) # $t4, 0x8012 -/* 0488F8 80047CF8 1540002D */ bnez $t2, .L80047DB0 -/* 0488FC 80047CFC 00000000 */ nop -/* 048900 80047D00 8D8CD540 */ lw $t4, %lo(gRaceStartTimer)($t4) -/* 048904 80047D04 C7A8012C */ lwc1 $f8, 0x12c($sp) -/* 048908 80047D08 15800029 */ bnez $t4, .L80047DB0 -/* 04890C 80047D0C 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 -/* 048910 80047D10 C426D56C */ lwc1 $f6, %lo(gCurrentRacerWeightStat)($at) -/* 048914 80047D14 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 -/* 048918 80047D18 46083282 */ mul.s $f10, $f6, $f8 -/* 04891C 80047D1C 44803000 */ mtc1 $zero, $f6 -/* 048920 80047D20 44813800 */ mtc1 $at, $f7 -/* 048924 80047D24 46005121 */ cvt.d.s $f4, $f10 -/* 048928 80047D28 46262202 */ mul.d $f8, $f4, $f6 -/* 04892C 80047D2C C60A009C */ lwc1 $f10, 0x9c($s0) -/* 048930 80047D30 C60400A0 */ lwc1 $f4, 0xa0($s0) -/* 048934 80047D34 C6060038 */ lwc1 $f6, 0x38($s0) -/* 048938 80047D38 462040A0 */ cvt.s.d $f2, $f8 -/* 04893C 80047D3C 46025002 */ mul.s $f0, $f10, $f2 -/* 048940 80047D40 C60A0050 */ lwc1 $f10, 0x50($s0) -/* 048944 80047D44 46041082 */ mul.s $f2, $f2, $f4 -/* 048948 80047D48 00000000 */ nop -/* 04894C 80047D4C 46003202 */ mul.s $f8, $f6, $f0 -/* 048950 80047D50 00000000 */ nop -/* 048954 80047D54 46025102 */ mul.s $f4, $f10, $f2 -/* 048958 80047D58 C62A001C */ lwc1 $f10, 0x1c($s1) -/* 04895C 80047D5C 46044180 */ add.s $f6, $f8, $f4 -/* 048960 80047D60 46065200 */ add.s $f8, $f10, $f6 -/* 048964 80047D64 E628001C */ swc1 $f8, 0x1c($s1) -/* 048968 80047D68 C604003C */ lwc1 $f4, 0x3c($s0) -/* 04896C 80047D6C C6060054 */ lwc1 $f6, 0x54($s0) -/* 048970 80047D70 46002282 */ mul.s $f10, $f4, $f0 -/* 048974 80047D74 00000000 */ nop -/* 048978 80047D78 46023202 */ mul.s $f8, $f6, $f2 -/* 04897C 80047D7C C6260020 */ lwc1 $f6, 0x20($s1) -/* 048980 80047D80 46085100 */ add.s $f4, $f10, $f8 -/* 048984 80047D84 46043280 */ add.s $f10, $f6, $f4 -/* 048988 80047D88 E62A0020 */ swc1 $f10, 0x20($s1) -/* 04898C 80047D8C C6080040 */ lwc1 $f8, 0x40($s0) -/* 048990 80047D90 C6040058 */ lwc1 $f4, 0x58($s0) -/* 048994 80047D94 46004182 */ mul.s $f6, $f8, $f0 -/* 048998 80047D98 00000000 */ nop -/* 04899C 80047D9C 46022282 */ mul.s $f10, $f4, $f2 -/* 0489A0 80047DA0 C6240024 */ lwc1 $f4, 0x24($s1) -/* 0489A4 80047DA4 460A3200 */ add.s $f8, $f6, $f10 -/* 0489A8 80047DA8 46082180 */ add.s $f6, $f4, $f8 -/* 0489AC 80047DAC E6260024 */ swc1 $f6, 0x24($s1) -.L80047DB0: -/* 0489B0 80047DB0 C60E002C */ lwc1 $f14, 0x2c($s0) -/* 0489B4 80047DB4 44805000 */ mtc1 $zero, $f10 -/* 0489B8 80047DB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0489BC 80047DBC 460A703C */ c.lt.s $f14, $f10 -/* 0489C0 80047DC0 44812000 */ mtc1 $at, $f4 -/* 0489C4 80047DC4 460E7302 */ mul.s $f12, $f14, $f14 -/* 0489C8 80047DC8 45000002 */ bc1f .L80047DD4 -/* 0489CC 80047DCC 00000000 */ nop -/* 0489D0 80047DD0 46006307 */ neg.s $f12, $f12 -.L80047DD4: -/* 0489D4 80047DD4 4604603C */ c.lt.s $f12, $f4 -/* 0489D8 80047DD8 C7A400FC */ lwc1 $f4, 0xfc($sp) -/* 0489DC 80047DDC 4500000D */ bc1f .L80047E14 -/* 0489E0 80047DE0 00000000 */ nop -/* 0489E4 80047DE4 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) -/* 0489E8 80047DE8 C7A800FC */ lwc1 $f8, 0xfc($sp) -/* 0489EC 80047DEC 316E8000 */ andi $t6, $t3, 0x8000 -/* 0489F0 80047DF0 15C00008 */ bnez $t6, .L80047E14 -/* 0489F4 80047DF4 00000000 */ nop -/* 0489F8 80047DF8 46087182 */ mul.s $f6, $f14, $f8 -/* 0489FC 80047DFC 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 048A00 80047E00 44815000 */ mtc1 $at, $f10 -/* 048A04 80047E04 00000000 */ nop -/* 048A08 80047E08 460A3402 */ mul.s $f16, $f6, $f10 -/* 048A0C 80047E0C 10000004 */ b .L80047E20 -/* 048A10 80047E10 C6060038 */ lwc1 $f6, 0x38($s0) -.L80047E14: -/* 048A14 80047E14 46046402 */ mul.s $f16, $f12, $f4 -/* 048A18 80047E18 00000000 */ nop -/* 048A1C 80047E1C C6060038 */ lwc1 $f6, 0x38($s0) -.L80047E20: -/* 048A20 80047E20 C628001C */ lwc1 $f8, 0x1c($s1) -/* 048A24 80047E24 46103282 */ mul.s $f10, $f6, $f16 -/* 048A28 80047E28 C6260020 */ lwc1 $f6, 0x20($s1) -/* 048A2C 80047E2C 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 -/* 048A30 80047E30 460A4101 */ sub.s $f4, $f8, $f10 -/* 048A34 80047E34 E624001C */ swc1 $f4, 0x1c($s1) -/* 048A38 80047E38 C608003C */ lwc1 $f8, 0x3c($s0) -/* 048A3C 80047E3C 00000000 */ nop -/* 048A40 80047E40 46104282 */ mul.s $f10, $f8, $f16 -/* 048A44 80047E44 C6280024 */ lwc1 $f8, 0x24($s1) -/* 048A48 80047E48 460A3101 */ sub.s $f4, $f6, $f10 -/* 048A4C 80047E4C E6240020 */ swc1 $f4, 0x20($s1) -/* 048A50 80047E50 C6060040 */ lwc1 $f6, 0x40($s0) -/* 048A54 80047E54 00000000 */ nop -/* 048A58 80047E58 46103282 */ mul.s $f10, $f6, $f16 -/* 048A5C 80047E5C 460A4101 */ sub.s $f4, $f8, $f10 -/* 048A60 80047E60 E6240024 */ swc1 $f4, 0x24($s1) -/* 048A64 80047E64 820F0175 */ lb $t7, 0x175($s0) -/* 048A68 80047E68 00000000 */ nop -/* 048A6C 80047E6C 11E00007 */ beqz $t7, .L80047E8C -/* 048A70 80047E70 00000000 */ nop -/* 048A74 80047E74 C426D578 */ lwc1 $f6, %lo(D_8011D578)($at) -/* 048A78 80047E78 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 -/* 048A7C 80047E7C E626001C */ swc1 $f6, 0x1c($s1) -/* 048A80 80047E80 C428D57C */ lwc1 $f8, %lo(D_8011D57C)($at) -/* 048A84 80047E84 00000000 */ nop -/* 048A88 80047E88 E6280024 */ swc1 $f8, 0x24($s1) -.L80047E8C: -/* 048A8C 80047E8C AE00010C */ sw $zero, 0x10c($s0) -/* 048A90 80047E90 3C188012 */ lui $t8, %hi(gCurrentCarSteerVel) # $t8, 0x8012 -/* 048A94 80047E94 8F18D554 */ lw $t8, %lo(gCurrentCarSteerVel)($t8) -/* 048A98 80047E98 860201A2 */ lh $v0, 0x1a2($s0) -/* 048A9C 80047E9C 860C01A0 */ lh $t4, 0x1a0($s0) -/* 048AA0 80047EA0 03026823 */ subu $t5, $t8, $v0 -/* 048AA4 80047EA4 000DC8C3 */ sra $t9, $t5, 3 -/* 048AA8 80047EA8 00595021 */ addu $t2, $v0, $t9 -/* 048AAC 80047EAC A60A01A2 */ sh $t2, 0x1a2($s0) -/* 048AB0 80047EB0 860B01A2 */ lh $t3, 0x1a2($s0) -/* 048AB4 80047EB4 3C0F8012 */ lui $t7, %hi(D_8011D558) # $t7, 0x8012 -/* 048AB8 80047EB8 018B7021 */ addu $t6, $t4, $t3 -/* 048ABC 80047EBC A62E0000 */ sh $t6, ($s1) -/* 048AC0 80047EC0 860301A6 */ lh $v1, 0x1a6($s0) -/* 048AC4 80047EC4 8DEFD558 */ lw $t7, %lo(D_8011D558)($t7) -/* 048AC8 80047EC8 860A01A4 */ lh $t2, 0x1a4($s0) -/* 048ACC 80047ECC 01E3C023 */ subu $t8, $t7, $v1 -/* 048AD0 80047ED0 001868C3 */ sra $t5, $t8, 3 -/* 048AD4 80047ED4 006DC821 */ addu $t9, $v1, $t5 -/* 048AD8 80047ED8 A61901A6 */ sh $t9, 0x1a6($s0) -/* 048ADC 80047EDC 860C01A6 */ lh $t4, 0x1a6($s0) -/* 048AE0 80047EE0 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 048AE4 80047EE4 014C5821 */ addu $t3, $t2, $t4 -/* 048AE8 80047EE8 A62B0004 */ sh $t3, 4($s1) -/* 048AEC 80047EEC 820401D2 */ lb $a0, 0x1d2($s0) -/* 048AF0 80047EF0 44812000 */ mtc1 $at, $f4 -/* 048AF4 80047EF4 18800003 */ blez $a0, .L80047F04 -/* 048AF8 80047EF8 00887023 */ subu $t6, $a0, $t0 -/* 048AFC 80047EFC 10000002 */ b .L80047F08 -/* 048B00 80047F00 A20E01D2 */ sb $t6, 0x1d2($s0) -.L80047F04: -/* 048B04 80047F04 A20001D2 */ sb $zero, 0x1d2($s0) -.L80047F08: -/* 048B08 80047F08 C60A0038 */ lwc1 $f10, 0x38($s0) -/* 048B0C 80047F0C C7A000C8 */ lwc1 $f0, 0xc8($sp) -/* 048B10 80047F10 46045182 */ mul.s $f6, $f10, $f4 -/* 048B14 80047F14 44812000 */ mtc1 $at, $f4 -/* 048B18 80047F18 C60A0040 */ lwc1 $f10, 0x40($s0) -/* 048B1C 80047F1C C7A200E8 */ lwc1 $f2, 0xe8($sp) -/* 048B20 80047F20 46003202 */ mul.s $f8, $f6, $f0 -/* 048B24 80047F24 C7AE00E4 */ lwc1 $f14, 0xe4($sp) -/* 048B28 80047F28 8E0F0148 */ lw $t7, 0x148($s0) -/* 048B2C 80047F2C 46045182 */ mul.s $f6, $f10, $f4 -/* 048B30 80047F30 46081080 */ add.s $f2, $f2, $f8 -/* 048B34 80047F34 46003202 */ mul.s $f8, $f6, $f0 -/* 048B38 80047F38 15E00059 */ bnez $t7, .L800480A0 -/* 048B3C 80047F3C 46087380 */ add.s $f14, $f14, $f8 -/* 048B40 80047F40 821801D2 */ lb $t8, 0x1d2($s0) -/* 048B44 80047F44 C630001C */ lwc1 $f16, 0x1c($s1) -/* 048B48 80047F48 C62C0024 */ lwc1 $f12, 0x24($s1) -/* 048B4C 80047F4C 13000005 */ beqz $t8, .L80047F64 -/* 048B50 80047F50 3C0D8012 */ lui $t5, %hi(D_8011D584) # $t5, 0x8012 -/* 048B54 80047F54 C60A011C */ lwc1 $f10, 0x11c($s0) -/* 048B58 80047F58 C6040120 */ lwc1 $f4, 0x120($s0) -/* 048B5C 80047F5C 460A8400 */ add.s $f16, $f16, $f10 -/* 048B60 80047F60 46046300 */ add.s $f12, $f12, $f4 -.L80047F64: -/* 048B64 80047F64 81ADD584 */ lb $t5, %lo(D_8011D584)($t5) -/* 048B68 80047F68 C7A8012C */ lwc1 $f8, 0x12c($sp) -/* 048B6C 80047F6C 11A0002E */ beqz $t5, .L80048028 -/* 048B70 80047F70 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 048B74 80047F74 44813800 */ mtc1 $at, $f7 -/* 048B78 80047F78 44803000 */ mtc1 $zero, $f6 -/* 048B7C 80047F7C 46008021 */ cvt.d.s $f0, $f16 -/* 048B80 80047F80 4620303C */ c.lt.d $f6, $f0 -/* 048B84 80047F84 44803000 */ mtc1 $zero, $f6 -/* 048B88 80047F88 45010007 */ bc1t .L80047FA8 -/* 048B8C 80047F8C 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 048B90 80047F90 44814800 */ mtc1 $at, $f9 -/* 048B94 80047F94 44804000 */ mtc1 $zero, $f8 -/* 048B98 80047F98 00000000 */ nop -/* 048B9C 80047F9C 4628003C */ c.lt.d $f0, $f8 -/* 048BA0 80047FA0 00000000 */ nop -/* 048BA4 80047FA4 45000007 */ bc1f .L80047FC4 -.L80047FA8: -/* 048BA8 80047FA8 3C01800E */ lui $at, %hi(D_800E6438 + 4) # $at, 0x800e -/* 048BAC 80047FAC C42B6438 */ lwc1 $f11, %lo(D_800E6438)($at) -/* 048BB0 80047FB0 C42A643C */ lwc1 $f10, %lo(D_800E6438 + 4)($at) -/* 048BB4 80047FB4 00000000 */ nop -/* 048BB8 80047FB8 462A0102 */ mul.d $f4, $f0, $f10 -/* 048BBC 80047FBC 10000003 */ b .L80047FCC -/* 048BC0 80047FC0 46202420 */ cvt.s.d $f16, $f4 -.L80047FC4: -/* 048BC4 80047FC4 44808000 */ mtc1 $zero, $f16 -/* 048BC8 80047FC8 00000000 */ nop -.L80047FCC: -/* 048BCC 80047FCC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 048BD0 80047FD0 44813800 */ mtc1 $at, $f7 -/* 048BD4 80047FD4 46006021 */ cvt.d.s $f0, $f12 -/* 048BD8 80047FD8 4620303C */ c.lt.d $f6, $f0 -/* 048BDC 80047FDC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 048BE0 80047FE0 45010007 */ bc1t .L80048000 -/* 048BE4 80047FE4 00000000 */ nop -/* 048BE8 80047FE8 44814800 */ mtc1 $at, $f9 -/* 048BEC 80047FEC 44804000 */ mtc1 $zero, $f8 -/* 048BF0 80047FF0 00000000 */ nop -/* 048BF4 80047FF4 4628003C */ c.lt.d $f0, $f8 -/* 048BF8 80047FF8 00000000 */ nop -/* 048BFC 80047FFC 45000007 */ bc1f .L8004801C -.L80048000: -/* 048C00 80048000 3C01800E */ lui $at, %hi(D_800E6440 + 4) # $at, 0x800e -/* 048C04 80048004 C42B6440 */ lwc1 $f11, %lo(D_800E6440)($at) -/* 048C08 80048008 C42A6444 */ lwc1 $f10, %lo(D_800E6440 + 4)($at) -/* 048C0C 8004800C 00000000 */ nop -/* 048C10 80048010 462A0102 */ mul.d $f4, $f0, $f10 -/* 048C14 80048014 1000000B */ b .L80048044 -/* 048C18 80048018 46202320 */ cvt.s.d $f12, $f4 -.L8004801C: -/* 048C1C 8004801C 44806000 */ mtc1 $zero, $f12 -/* 048C20 80048020 10000009 */ b .L80048048 -/* 048C24 80048024 C7A0012C */ lwc1 $f0, 0x12c($sp) -.L80048028: -/* 048C28 80048028 C6060084 */ lwc1 $f6, 0x84($s0) -/* 048C2C 8004802C C6040088 */ lwc1 $f4, 0x88($s0) -/* 048C30 80048030 46083282 */ mul.s $f10, $f6, $f8 -/* 048C34 80048034 00000000 */ nop -/* 048C38 80048038 46082182 */ mul.s $f6, $f4, $f8 -/* 048C3C 8004803C 460A1080 */ add.s $f2, $f2, $f10 -/* 048C40 80048040 46067380 */ add.s $f14, $f14, $f6 -.L80048044: -/* 048C44 80048044 C7A0012C */ lwc1 $f0, 0x12c($sp) -.L80048048: -/* 048C48 80048048 C6280020 */ lwc1 $f8, 0x20($s1) -/* 048C4C 8004804C 46008282 */ mul.s $f10, $f16, $f0 -/* 048C50 80048050 E7AE00E4 */ swc1 $f14, 0xe4($sp) -/* 048C54 80048054 E7A200E8 */ swc1 $f2, 0xe8($sp) -/* 048C58 80048058 02202025 */ move $a0, $s1 -/* 048C5C 8004805C 46004182 */ mul.s $f6, $f8, $f0 -/* 048C60 80048060 46025100 */ add.s $f4, $f10, $f2 -/* 048C64 80048064 44052000 */ mfc1 $a1, $f4 -/* 048C68 80048068 46006282 */ mul.s $f10, $f12, $f0 -/* 048C6C 8004806C 44063000 */ mfc1 $a2, $f6 -/* 048C70 80048070 460E5100 */ add.s $f4, $f10, $f14 -/* 048C74 80048074 44072000 */ mfc1 $a3, $f4 -/* 048C78 80048078 0C00455C */ jal func_80011570 -/* 048C7C 8004807C 00000000 */ nop -/* 048C80 80048080 1040000F */ beqz $v0, .L800480C0 -/* 048C84 80048084 3C198012 */ lui $t9, %hi(gCurrentPlayerIndex) # $t9, 0x8012 -/* 048C88 80048088 8F39D55C */ lw $t9, %lo(gCurrentPlayerIndex)($t9) -/* 048C8C 8004808C 2401FFFF */ li $at, -1 -/* 048C90 80048090 1321000B */ beq $t9, $at, .L800480C0 -/* 048C94 80048094 240A0001 */ li $t2, 1 -/* 048C98 80048098 10000009 */ b .L800480C0 -/* 048C9C 8004809C A3AA0067 */ sb $t2, 0x67($sp) -.L800480A0: -/* 048CA0 800480A0 44804000 */ mtc1 $zero, $f8 -/* 048CA4 800480A4 44803000 */ mtc1 $zero, $f6 -/* 048CA8 800480A8 8FA6012C */ lw $a2, 0x12c($sp) -/* 048CAC 800480AC 02202025 */ move $a0, $s1 -/* 048CB0 800480B0 02002825 */ move $a1, $s0 -/* 048CB4 800480B4 E7A800E8 */ swc1 $f8, 0xe8($sp) -/* 048CB8 800480B8 0C0141D5 */ jal func_80050754 -/* 048CBC 800480BC E7A600E4 */ swc1 $f6, 0xe4($sp) -.L800480C0: -/* 048CC0 800480C0 C60A00D0 */ lwc1 $f10, 0xd0($s0) -/* 048CC4 800480C4 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 048CC8 800480C8 44812800 */ mtc1 $at, $f5 -/* 048CCC 800480CC 44802000 */ mtc1 $zero, $f4 -/* 048CD0 800480D0 46005021 */ cvt.d.s $f0, $f10 -/* 048CD4 800480D4 46240202 */ mul.d $f8, $f0, $f4 -/* 048CD8 800480D8 C7A70050 */ lwc1 $f7, 0x50($sp) -/* 048CDC 800480DC C7A60054 */ lwc1 $f6, 0x54($sp) -/* 048CE0 800480E0 3C01401C */ li $at, 0x401C0000 # 2.437500 -/* 048CE4 800480E4 27A50118 */ addiu $a1, $sp, 0x118 -/* 048CE8 800480E8 46264282 */ mul.d $f10, $f8, $f6 -/* 048CEC 800480EC 462A0101 */ sub.d $f4, $f0, $f10 -/* 048CF0 800480F0 46202220 */ cvt.s.d $f8, $f4 -/* 048CF4 800480F4 44814800 */ mtc1 $at, $f9 -/* 048CF8 800480F8 E60800D0 */ swc1 $f8, 0xd0($s0) -/* 048CFC 800480FC C6260020 */ lwc1 $f6, 0x20($s1) -/* 048D00 80048100 44804000 */ mtc1 $zero, $f8 -/* 048D04 80048104 46003287 */ neg.s $f10, $f6 -/* 048D08 80048108 46005121 */ cvt.d.s $f4, $f10 -/* 048D0C 8004810C 46282182 */ mul.d $f6, $f4, $f8 -/* 048D10 80048110 3C01800E */ lui $at, %hi(D_800E6448) # $at, 0x800e -/* 048D14 80048114 44802800 */ mtc1 $zero, $f5 -/* 048D18 80048118 462032A0 */ cvt.s.d $f10, $f6 -/* 048D1C 8004811C E60A00D4 */ swc1 $f10, 0xd4($s0) -/* 048D20 80048120 C60400D4 */ lwc1 $f4, 0xd4($s0) -/* 048D24 80048124 C428644C */ lwc1 $f8, %lo(D_800E6448 + 4)($at) -/* 048D28 80048128 C4296448 */ lwc1 $f9, %lo(D_800E6448)($at) -/* 048D2C 8004812C 460020A1 */ cvt.d.s $f2, $f4 -/* 048D30 80048130 4622403C */ c.lt.d $f8, $f2 -/* 048D34 80048134 44802000 */ mtc1 $zero, $f4 -/* 048D38 80048138 45000007 */ bc1f .L80048158 -/* 048D3C 8004813C 3C01420C */ li $at, 0x420C0000 # 35.000000 -/* 048D40 80048140 44813000 */ mtc1 $at, $f6 -/* 048D44 80048144 00000000 */ nop -/* 048D48 80048148 E60600D4 */ swc1 $f6, 0xd4($s0) -/* 048D4C 8004814C C60A00D4 */ lwc1 $f10, 0xd4($s0) -/* 048D50 80048150 00000000 */ nop -/* 048D54 80048154 460050A1 */ cvt.d.s $f2, $f10 -.L80048158: -/* 048D58 80048158 4624103C */ c.lt.d $f2, $f4 -/* 048D5C 8004815C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 048D60 80048160 45000004 */ bc1f .L80048174 -/* 048D64 80048164 00000000 */ nop -/* 048D68 80048168 44804000 */ mtc1 $zero, $f8 -/* 048D6C 8004816C 00000000 */ nop -/* 048D70 80048170 E60800D4 */ swc1 $f8, 0xd4($s0) -.L80048174: -/* 048D74 80048174 44817000 */ mtc1 $at, $f14 -/* 048D78 80048178 3C01800E */ lui $at, %hi(D_800E6450) # $at, 0x800e -/* 048D7C 8004817C C4266450 */ lwc1 $f6, %lo(D_800E6450)($at) -/* 048D80 80048180 27A600D4 */ addiu $a2, $sp, 0xd4 -/* 048D84 80048184 E7A60118 */ swc1 $f6, 0x118($sp) -/* 048D88 80048188 C62C0010 */ lwc1 $f12, 0x10($s1) -/* 048D8C 8004818C 0C00AB42 */ jal func_8002AD08 -/* 048D90 80048190 E7AE0114 */ swc1 $f14, 0x114($sp) -/* 048D94 80048194 00023E00 */ sll $a3, $v0, 0x18 -/* 048D98 80048198 00025E00 */ sll $t3, $v0, 0x18 -/* 048D9C 8004819C 000B7603 */ sra $t6, $t3, 0x18 -/* 048DA0 800481A0 00076603 */ sra $t4, $a3, 0x18 -/* 048DA4 800481A4 C7AE0114 */ lwc1 $f14, 0x114($sp) -/* 048DA8 800481A8 11C00025 */ beqz $t6, .L80048240 -/* 048DAC 800481AC 01803825 */ move $a3, $t4 -/* 048DB0 800481B0 C60E002C */ lwc1 $f14, 0x2c($s0) -/* 048DB4 800481B4 44805000 */ mtc1 $zero, $f10 -/* 048DB8 800481B8 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 048DBC 800481BC 460A703C */ c.lt.s $f14, $f10 -/* 048DC0 800481C0 44812800 */ mtc1 $at, $f5 -/* 048DC4 800481C4 45000002 */ bc1f .L800481D0 -/* 048DC8 800481C8 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 048DCC 800481CC 46007387 */ neg.s $f14, $f14 -.L800481D0: -/* 048DD0 800481D0 44802000 */ mtc1 $zero, $f4 -/* 048DD4 800481D4 46007021 */ cvt.d.s $f0, $f14 -/* 048DD8 800481D8 4620203C */ c.lt.d $f4, $f0 -/* 048DDC 800481DC 240F0005 */ li $t7, 5 -/* 048DE0 800481E0 45000004 */ bc1f .L800481F4 -/* 048DE4 800481E4 00000000 */ nop -/* 048DE8 800481E8 44817000 */ mtc1 $at, $f14 -/* 048DEC 800481EC 00000000 */ nop -/* 048DF0 800481F0 46007021 */ cvt.d.s $f0, $f14 -.L800481F4: -/* 048DF4 800481F4 3C01800E */ lui $at, %hi(D_800E6458 + 4) # $at, 0x800e -/* 048DF8 800481F8 C4296458 */ lwc1 $f9, %lo(D_800E6458)($at) -/* 048DFC 800481FC C428645C */ lwc1 $f8, %lo(D_800E6458 + 4)($at) -/* 048E00 80048200 C62A0010 */ lwc1 $f10, 0x10($s1) -/* 048E04 80048204 46280182 */ mul.d $f6, $f0, $f8 -/* 048E08 80048208 C7A40118 */ lwc1 $f4, 0x118($sp) -/* 048E0C 8004820C 462033A0 */ cvt.s.d $f14, $f6 -/* 048E10 80048210 460E5081 */ sub.s $f2, $f10, $f14 -/* 048E14 80048214 4604103C */ c.lt.s $f2, $f4 -/* 048E18 80048218 00000000 */ nop -/* 048E1C 8004821C 45000005 */ bc1f .L80048234 -/* 048E20 80048220 00000000 */ nop -/* 048E24 80048224 46022201 */ sub.s $f8, $f4, $f2 -/* 048E28 80048228 A20F01E5 */ sb $t7, 0x1e5($s0) -/* 048E2C 8004822C 10000004 */ b .L80048240 -/* 048E30 80048230 E60800C0 */ swc1 $f8, 0xc0($s0) -.L80048234: -/* 048E34 80048234 44803000 */ mtc1 $zero, $f6 -/* 048E38 80048238 00000000 */ nop -/* 048E3C 8004823C E60600C0 */ swc1 $f6, 0xc0($s0) -.L80048240: -/* 048E40 80048240 820201E5 */ lb $v0, 0x1e5($s0) -/* 048E44 80048244 00000000 */ nop -/* 048E48 80048248 18400003 */ blez $v0, .L80048258 -/* 048E4C 8004824C 2458FFFF */ addiu $t8, $v0, -1 -/* 048E50 80048250 10000004 */ b .L80048264 -/* 048E54 80048254 A21801E5 */ sb $t8, 0x1e5($s0) -.L80048258: -/* 048E58 80048258 44805000 */ mtc1 $zero, $f10 -/* 048E5C 8004825C 00000000 */ nop -/* 048E60 80048260 E60A00C0 */ swc1 $f10, 0xc0($s0) -.L80048264: -/* 048E64 80048264 820D01E5 */ lb $t5, 0x1e5($s0) -/* 048E68 80048268 00000000 */ nop -/* 048E6C 8004826C 19A0000F */ blez $t5, .L800482AC -/* 048E70 80048270 00000000 */ nop -/* 048E74 80048274 C7A80118 */ lwc1 $f8, 0x118($sp) -/* 048E78 80048278 C6240010 */ lwc1 $f4, 0x10($s1) -/* 048E7C 8004827C 460E4180 */ add.s $f6, $f8, $f14 -/* 048E80 80048280 4606203C */ c.lt.s $f4, $f6 -/* 048E84 80048284 00000000 */ nop -/* 048E88 80048288 45000008 */ bc1f .L800482AC -/* 048E8C 8004828C 00000000 */ nop -/* 048E90 80048290 8E22004C */ lw $v0, 0x4c($s1) -/* 048E94 80048294 00000000 */ nop -/* 048E98 80048298 84590014 */ lh $t9, 0x14($v0) -/* 048E9C 8004829C 00000000 */ nop -/* 048EA0 800482A0 372A0010 */ ori $t2, $t9, 0x10 -/* 048EA4 800482A4 10000007 */ b .L800482C4 -/* 048EA8 800482A8 A44A0014 */ sh $t2, 0x14($v0) -.L800482AC: -/* 048EAC 800482AC 8E22004C */ lw $v0, 0x4c($s1) -/* 048EB0 800482B0 00000000 */ nop -/* 048EB4 800482B4 844C0014 */ lh $t4, 0x14($v0) -/* 048EB8 800482B8 00000000 */ nop -/* 048EBC 800482BC 318BFFEF */ andi $t3, $t4, 0xffef -/* 048EC0 800482C0 A44B0014 */ sh $t3, 0x14($v0) -.L800482C4: -/* 048EC4 800482C4 C7A80118 */ lwc1 $f8, 0x118($sp) -/* 048EC8 800482C8 C62A0010 */ lwc1 $f10, 0x10($s1) -/* 048ECC 800482CC 460E4100 */ add.s $f4, $f8, $f14 -/* 048ED0 800482D0 44804000 */ mtc1 $zero, $f8 -/* 048ED4 800482D4 46045181 */ sub.s $f6, $f10, $f4 -/* 048ED8 800482D8 44804800 */ mtc1 $zero, $f9 -/* 048EDC 800482DC E7A60118 */ swc1 $f6, 0x118($sp) -/* 048EE0 800482E0 C60C00C0 */ lwc1 $f12, 0xc0($s0) -/* 048EE4 800482E4 00000000 */ nop -/* 048EE8 800482E8 460060A1 */ cvt.d.s $f2, $f12 -/* 048EEC 800482EC 4622403C */ c.lt.d $f8, $f2 -/* 048EF0 800482F0 00000000 */ nop -/* 048EF4 800482F4 45000017 */ bc1f .L80048354 -/* 048EF8 800482F8 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 -/* 048EFC 800482FC 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) -/* 048F00 80048300 00004025 */ move $t0, $zero -/* 048F04 80048304 31CF0010 */ andi $t7, $t6, 0x10 -/* 048F08 80048308 11E00006 */ beqz $t7, .L80048324 -/* 048F0C 8004830C 02202025 */ move $a0, $s1 -/* 048F10 80048310 3C088012 */ lui $t0, %hi(gCurrentStickX) # $t0, 0x8012 -/* 048F14 80048314 8D08D534 */ lw $t0, %lo(gCurrentStickX)($t0) -/* 048F18 80048318 00000000 */ nop -/* 048F1C 8004831C 0008C040 */ sll $t8, $t0, 1 -/* 048F20 80048320 03004025 */ move $t0, $t8 -.L80048324: -/* 048F24 80048324 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 048F28 80048328 44815000 */ mtc1 $at, $f10 -/* 048F2C 8004832C 8FAD0128 */ lw $t5, 0x128($sp) -/* 048F30 80048330 02002825 */ move $a1, $s0 -/* 048F34 80048334 27A600D4 */ addiu $a2, $sp, 0xd4 -/* 048F38 80048338 AFA80014 */ sw $t0, 0x14($sp) -/* 048F3C 8004833C E7AA0018 */ swc1 $f10, 0x18($sp) -/* 048F40 80048340 0C012538 */ jal func_800494E0 -/* 048F44 80048344 AFAD0010 */ sw $t5, 0x10($sp) -/* 048F48 80048348 C60C00C0 */ lwc1 $f12, 0xc0($s0) -/* 048F4C 8004834C 00000000 */ nop -/* 048F50 80048350 460060A1 */ cvt.d.s $f2, $f12 -.L80048354: -/* 048F54 80048354 44802800 */ mtc1 $zero, $f5 -/* 048F58 80048358 44802000 */ mtc1 $zero, $f4 -/* 048F5C 8004835C 3C198012 */ lui $t9, %hi(gCurrentPlayerIndex) # $t9, 0x8012 -/* 048F60 80048360 4622203C */ c.lt.d $f4, $f2 -/* 048F64 80048364 00000000 */ nop -/* 048F68 80048368 45000013 */ bc1f .L800483B8 -/* 048F6C 8004836C 00000000 */ nop -/* 048F70 80048370 C60800C4 */ lwc1 $f8, 0xc4($s0) -/* 048F74 80048374 C6260010 */ lwc1 $f6, 0x10($s1) -/* 048F78 80048378 46086282 */ mul.s $f10, $f12, $f8 -/* 048F7C 8004837C 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 048F80 80048380 44813800 */ mtc1 $at, $f7 -/* 048F84 80048384 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 048F88 80048388 460A3100 */ add.s $f4, $f6, $f10 -/* 048F8C 8004838C 44803000 */ mtc1 $zero, $f6 -/* 048F90 80048390 E6240010 */ swc1 $f4, 0x10($s1) -/* 048F94 80048394 C60800C4 */ lwc1 $f8, 0xc4($s0) -/* 048F98 80048398 44802000 */ mtc1 $zero, $f4 -/* 048F9C 8004839C 46004021 */ cvt.d.s $f0, $f8 -/* 048FA0 800483A0 44812800 */ mtc1 $at, $f5 -/* 048FA4 800483A4 46203281 */ sub.d $f10, $f6, $f0 -/* 048FA8 800483A8 46245202 */ mul.d $f8, $f10, $f4 -/* 048FAC 800483AC 46280180 */ add.d $f6, $f0, $f8 -/* 048FB0 800483B0 462032A0 */ cvt.s.d $f10, $f6 -/* 048FB4 800483B4 E60A00C4 */ swc1 $f10, 0xc4($s0) -.L800483B8: -/* 048FB8 800483B8 8F39D55C */ lw $t9, %lo(gCurrentPlayerIndex)($t9) -/* 048FBC 800483BC 820801D2 */ lb $t0, 0x1d2($s0) -/* 048FC0 800483C0 2401FFFF */ li $at, -1 -/* 048FC4 800483C4 1721000E */ bne $t9, $at, .L80048400 -/* 048FC8 800483C8 8FA60128 */ lw $a2, 0x128($sp) -/* 048FCC 800483CC 0C008D5A */ jal func_80023568 -/* 048FD0 800483D0 AFA800C4 */ sw $t0, 0xc4($sp) -/* 048FD4 800483D4 8FA800C4 */ lw $t0, 0xc4($sp) -/* 048FD8 800483D8 14400008 */ bnez $v0, .L800483FC -/* 048FDC 800483DC 02202025 */ move $a0, $s1 -/* 048FE0 800483E0 8FA60128 */ lw $a2, 0x128($sp) -/* 048FE4 800483E4 02002825 */ move $a1, $s0 -/* 048FE8 800483E8 0C0156A1 */ jal func_80055A84 -/* 048FEC 800483EC AFA800C4 */ sw $t0, 0xc4($sp) -/* 048FF0 800483F0 8FA800C4 */ lw $t0, 0xc4($sp) -/* 048FF4 800483F4 10000008 */ b .L80048418 -/* 048FF8 800483F8 00000000 */ nop -.L800483FC: -/* 048FFC 800483FC 8FA60128 */ lw $a2, 0x128($sp) -.L80048400: -/* 049000 80048400 02202025 */ move $a0, $s1 -/* 049004 80048404 02002825 */ move $a1, $s0 -/* 049008 80048408 0C0153F4 */ jal func_80054FD0 -/* 04900C 8004840C AFA800C4 */ sw $t0, 0xc4($sp) -/* 049010 80048410 8FA800C4 */ lw $t0, 0xc4($sp) -/* 049014 80048414 00000000 */ nop -.L80048418: -/* 049018 80048418 15000006 */ bnez $t0, .L80048434 -/* 04901C 8004841C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 049020 80048420 820A01D2 */ lb $t2, 0x1d2($s0) -/* 049024 80048424 00000000 */ nop -/* 049028 80048428 11400002 */ beqz $t2, .L80048434 -/* 04902C 8004842C 00000000 */ nop -/* 049030 80048430 24080001 */ li $t0, 1 -.L80048434: -/* 049034 80048434 A20801D2 */ sb $t0, 0x1d2($s0) -/* 049038 80048438 C7A8012C */ lwc1 $f8, 0x12c($sp) -/* 04903C 8004843C 44812000 */ mtc1 $at, $f4 -/* 049040 80048440 C7AA00E8 */ lwc1 $f10, 0xe8($sp) -/* 049044 80048444 46082083 */ div.s $f2, $f4, $f8 -/* 049048 80048448 C7A60110 */ lwc1 $f6, 0x110($sp) -/* 04904C 8004844C C628000C */ lwc1 $f8, 0xc($s1) -/* 049050 80048450 460A3100 */ add.s $f4, $f6, $f10 -/* 049054 80048454 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012 -/* 049058 80048458 C42AD548 */ lwc1 $f10, %lo(D_8011D548)($at) -/* 04905C 8004845C 46044181 */ sub.s $f6, $f8, $f4 -/* 049060 80048460 C7A40108 */ lwc1 $f4, 0x108($sp) -/* 049064 80048464 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012 -/* 049068 80048468 3C03800E */ lui $v1, %hi(gNumViewports) # $v1, 0x800e -/* 04906C 8004846C 2463CB98 */ addiu $v1, %lo(gNumViewports) # addiu $v1, $v1, -0x3468 -/* 049070 80048470 460A3201 */ sub.s $f8, $f6, $f10 -/* 049074 80048474 C7A600E4 */ lwc1 $f6, 0xe4($sp) -/* 049078 80048478 46024402 */ mul.s $f16, $f8, $f2 -/* 04907C 8004847C C6280014 */ lwc1 $f8, 0x14($s1) -/* 049080 80048480 46062280 */ add.s $f10, $f4, $f6 -/* 049084 80048484 C426D54C */ lwc1 $f6, %lo(D_8011D54C)($at) -/* 049088 80048488 460A4101 */ sub.s $f4, $f8, $f10 -/* 04908C 8004848C E630001C */ swc1 $f16, 0x1c($s1) -/* 049090 80048490 46062201 */ sub.s $f8, $f4, $f6 -/* 049094 80048494 C62A0010 */ lwc1 $f10, 0x10($s1) -/* 049098 80048498 46024302 */ mul.s $f12, $f8, $f2 -/* 04909C 8004849C 3C01800E */ lui $at, %hi(D_800E6460) # $at, 0x800e -/* 0490A0 800484A0 E62C0024 */ swc1 $f12, 0x24($s1) -/* 0490A4 800484A4 C7A4010C */ lwc1 $f4, 0x10c($sp) -/* 0490A8 800484A8 00000000 */ nop -/* 0490AC 800484AC 46045181 */ sub.s $f6, $f10, $f4 -/* 0490B0 800484B0 46023202 */ mul.s $f8, $f6, $f2 -/* 0490B4 800484B4 E6280020 */ swc1 $f8, 0x20($s1) -/* 0490B8 800484B8 C60A0008 */ lwc1 $f10, 8($s0) -/* 0490BC 800484BC C604002C */ lwc1 $f4, 0x2c($s0) -/* 0490C0 800484C0 C4286464 */ lwc1 $f8, %lo(D_800E6460 + 4)($at) -/* 0490C4 800484C4 C4296460 */ lwc1 $f9, %lo(D_800E6460)($at) -/* 0490C8 800484C8 46005021 */ cvt.d.s $f0, $f10 -/* 0490CC 800484CC 460021A1 */ cvt.d.s $f6, $f4 -/* 0490D0 800484D0 46283282 */ mul.d $f10, $f6, $f8 -/* 0490D4 800484D4 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 0490D8 800484D8 44813800 */ mtc1 $at, $f7 -/* 0490DC 800484DC 44803000 */ mtc1 $zero, $f6 -/* 0490E0 800484E0 462A0100 */ add.d $f4, $f0, $f10 -/* 0490E4 800484E4 46262202 */ mul.d $f8, $f4, $f6 -/* 0490E8 800484E8 44803000 */ mtc1 $zero, $f6 -/* 0490EC 800484EC 44803800 */ mtc1 $zero, $f7 -/* 0490F0 800484F0 46280281 */ sub.d $f10, $f0, $f8 -/* 0490F4 800484F4 C60800C0 */ lwc1 $f8, 0xc0($s0) -/* 0490F8 800484F8 46205120 */ cvt.s.d $f4, $f10 -/* 0490FC 800484FC 460042A1 */ cvt.d.s $f10, $f8 -/* 049100 80048500 462A303C */ c.lt.d $f6, $f10 -/* 049104 80048504 E6040008 */ swc1 $f4, 8($s0) -/* 049108 80048508 45000010 */ bc1f .L8004854C -/* 04910C 8004850C 00000000 */ nop -/* 049110 80048510 820C01FB */ lb $t4, 0x1fb($s0) -/* 049114 80048514 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 049118 80048518 1580000C */ bnez $t4, .L8004854C -/* 04911C 8004851C 00000000 */ nop -/* 049120 80048520 C6280020 */ lwc1 $f8, 0x20($s1) -/* 049124 80048524 44812800 */ mtc1 $at, $f5 -/* 049128 80048528 44802000 */ mtc1 $zero, $f4 -/* 04912C 8004852C 460041A1 */ cvt.d.s $f6, $f8 -/* 049130 80048530 4626203C */ c.lt.d $f4, $f6 -/* 049134 80048534 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 049138 80048538 45000004 */ bc1f .L8004854C -/* 04913C 8004853C 00000000 */ nop -/* 049140 80048540 44815000 */ mtc1 $at, $f10 -/* 049144 80048544 00000000 */ nop -/* 049148 80048548 E62A0020 */ swc1 $f10, 0x20($s1) -.L8004854C: -/* 04914C 8004854C 8C6B0000 */ lw $t3, ($v1) -/* 049150 80048550 00000000 */ nop -/* 049154 80048554 29610002 */ slti $at, $t3, 2 -/* 049158 80048558 10200026 */ beqz $at, .L800485F4 -/* 04915C 8004855C 00000000 */ nop -/* 049160 80048560 8E2E0040 */ lw $t6, 0x40($s1) -/* 049164 80048564 3C188012 */ lui $t8, %hi(gCurrentRacerInput) # $t8, 0x8012 -/* 049168 80048568 81CF0057 */ lb $t7, 0x57($t6) -/* 04916C 8004856C 00000000 */ nop -/* 049170 80048570 29E10009 */ slti $at, $t7, 9 -/* 049174 80048574 1420001F */ bnez $at, .L800485F4 -/* 049178 80048578 00000000 */ nop -/* 04917C 8004857C 8F18D528 */ lw $t8, %lo(gCurrentRacerInput)($t8) -/* 049180 80048580 34018010 */ li $at, 32784 -/* 049184 80048584 330D8010 */ andi $t5, $t8, 0x8010 -/* 049188 80048588 15A10011 */ bne $t5, $at, .L800485D0 -/* 04918C 8004858C 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 -/* 049190 80048590 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) -/* 049194 80048594 02202025 */ move $a0, $s1 -/* 049198 80048598 2841FFE2 */ slti $at, $v0, -0x1e -/* 04919C 8004859C 14200004 */ bnez $at, .L800485B0 -/* 0491A0 800485A0 24050008 */ li $a1, 8 -/* 0491A4 800485A4 2841001F */ slti $at, $v0, 0x1f -/* 0491A8 800485A8 1420000A */ bnez $at, .L800485D4 -/* 0491AC 800485AC 8FA60128 */ lw $a2, 0x128($sp) -.L800485B0: -/* 0491B0 800485B0 8FA60128 */ lw $a2, 0x128($sp) -/* 0491B4 800485B4 24070080 */ li $a3, 128 -/* 0491B8 800485B8 0006CA80 */ sll $t9, $a2, 0xa -/* 0491BC 800485BC 0C02D19A */ jal func_800B4668 -/* 0491C0 800485C0 03203025 */ move $a2, $t9 -/* 0491C4 800485C4 3C03800E */ lui $v1, %hi(gNumViewports) # $v1, 0x800e -/* 0491C8 800485C8 1000000A */ b .L800485F4 -/* 0491CC 800485CC 2463CB98 */ addiu $v1, %lo(gNumViewports) # addiu $v1, $v1, -0x3468 -.L800485D0: -/* 0491D0 800485D0 8FA60128 */ lw $a2, 0x128($sp) -.L800485D4: -/* 0491D4 800485D4 02202025 */ move $a0, $s1 -/* 0491D8 800485D8 00065240 */ sll $t2, $a2, 9 -/* 0491DC 800485DC 01403025 */ move $a2, $t2 -/* 0491E0 800485E0 24050008 */ li $a1, 8 -/* 0491E4 800485E4 0C02D1AF */ jal func_800B46BC -/* 0491E8 800485E8 24070020 */ li $a3, 32 -/* 0491EC 800485EC 3C03800E */ lui $v1, %hi(gNumViewports) # $v1, 0x800e -/* 0491F0 800485F0 2463CB98 */ addiu $v1, %lo(gNumViewports) # addiu $v1, $v1, -0x3468 -.L800485F4: -/* 0491F4 800485F4 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 0491F8 800485F8 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 0491FC 800485FC 00000000 */ nop -/* 049200 80048600 04400057 */ bltz $v0, .L80048760 -/* 049204 80048604 2401FFFF */ li $at, -1 -/* 049208 80048608 C60400C0 */ lwc1 $f4, 0xc0($s0) -/* 04920C 8004860C 44804800 */ mtc1 $zero, $f9 -/* 049210 80048610 44804000 */ mtc1 $zero, $f8 -/* 049214 80048614 460021A1 */ cvt.d.s $f6, $f4 -/* 049218 80048618 4626403C */ c.lt.d $f8, $f6 -/* 04921C 8004861C 00000000 */ nop -/* 049220 80048620 4500004F */ bc1f .L80048760 -/* 049224 80048624 2401FFFF */ li $at, -1 -/* 049228 80048628 8C6C0000 */ lw $t4, ($v1) -/* 04922C 8004862C 00000000 */ nop -/* 049230 80048630 29810003 */ slti $at, $t4, 3 -/* 049234 80048634 10200035 */ beqz $at, .L8004870C -/* 049238 80048638 00000000 */ nop -/* 04923C 8004863C C620001C */ lwc1 $f0, 0x1c($s1) -/* 049240 80048640 C62C0020 */ lwc1 $f12, 0x20($s1) -/* 049244 80048644 46000282 */ mul.s $f10, $f0, $f0 -/* 049248 80048648 C62E0024 */ lwc1 $f14, 0x24($s1) -/* 04924C 8004864C 3C014180 */ li $at, 0x41800000 # 16.000000 -/* 049250 80048650 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 049254 80048654 460C6102 */ mul.s $f4, $f12, $f12 -/* 049258 80048658 00000000 */ nop -/* 04925C 8004865C 460E7182 */ mul.s $f6, $f14, $f14 -/* 049260 80048660 46045200 */ add.s $f8, $f10, $f4 -/* 049264 80048664 44815000 */ mtc1 $at, $f10 -/* 049268 80048668 3C0142A0 */ li $at, 0x42A00000 # 80.000000 -/* 04926C 8004866C 46064080 */ add.s $f2, $f8, $f6 -/* 049270 80048670 4602503C */ c.lt.s $f10, $f2 -/* 049274 80048674 00000000 */ nop -/* 049278 80048678 45000021 */ bc1f .L80048700 -/* 04927C 8004867C 00000000 */ nop -/* 049280 80048680 44812000 */ mtc1 $at, $f4 -/* 049284 80048684 3C0141E0 */ li $at, 0x41E00000 # 28.000000 -/* 049288 80048688 4604103C */ c.lt.s $f2, $f4 -/* 04928C 8004868C 44814000 */ mtc1 $at, $f8 -/* 049290 80048690 45000005 */ bc1f .L800486A8 -/* 049294 80048694 00000000 */ nop -/* 049298 80048698 8E2B0074 */ lw $t3, 0x74($s1) -/* 04929C 8004869C 00000000 */ nop -/* 0492A0 800486A0 356E000C */ ori $t6, $t3, 0xc -/* 0492A4 800486A4 AE2E0074 */ sw $t6, 0x74($s1) -.L800486A8: -/* 0492A8 800486A8 4602403C */ c.lt.s $f8, $f2 -/* 0492AC 800486AC 00000000 */ nop -/* 0492B0 800486B0 45000005 */ bc1f .L800486C8 -/* 0492B4 800486B4 00000000 */ nop -/* 0492B8 800486B8 8E2F0074 */ lw $t7, 0x74($s1) -/* 0492BC 800486BC 00000000 */ nop -/* 0492C0 800486C0 35F80003 */ ori $t8, $t7, 3 -/* 0492C4 800486C4 AE380074 */ sw $t8, 0x74($s1) -.L800486C8: -/* 0492C8 800486C8 8C6D0000 */ lw $t5, ($v1) -/* 0492CC 800486CC 24010001 */ li $at, 1 -/* 0492D0 800486D0 15A1000B */ bne $t5, $at, .L80048700 -/* 0492D4 800486D4 3C014124 */ li $at, 0x41240000 # 10.250000 -/* 0492D8 800486D8 44813000 */ mtc1 $at, $f6 -/* 0492DC 800486DC 00000000 */ nop -/* 0492E0 800486E0 4602303C */ c.lt.s $f6, $f2 -/* 0492E4 800486E4 00000000 */ nop -/* 0492E8 800486E8 45000005 */ bc1f .L80048700 -/* 0492EC 800486EC 00000000 */ nop -/* 0492F0 800486F0 8E390074 */ lw $t9, 0x74($s1) -/* 0492F4 800486F4 00000000 */ nop -/* 0492F8 800486F8 372A0040 */ ori $t2, $t9, 0x40 -/* 0492FC 800486FC AE2A0074 */ sw $t2, 0x74($s1) -.L80048700: -/* 049300 80048700 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 049304 80048704 10000016 */ b .L80048760 -/* 049308 80048708 2401FFFF */ li $at, -1 -.L8004870C: -/* 04930C 8004870C C60E002C */ lwc1 $f14, 0x2c($s0) -/* 049310 80048710 44805000 */ mtc1 $zero, $f10 -/* 049314 80048714 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 049318 80048718 460A703C */ c.lt.s $f14, $f10 -/* 04931C 8004871C 44812000 */ mtc1 $at, $f4 -/* 049320 80048720 45000003 */ bc1f .L80048730 -/* 049324 80048724 00000000 */ nop -/* 049328 80048728 10000002 */ b .L80048734 -/* 04932C 8004872C 46007087 */ neg.s $f2, $f14 -.L80048730: -/* 049330 80048730 46007086 */ mov.s $f2, $f14 -.L80048734: -/* 049334 80048734 4602203C */ c.lt.s $f4, $f2 -/* 049338 80048738 00000000 */ nop -/* 04933C 8004873C 45000008 */ bc1f .L80048760 -/* 049340 80048740 2401FFFF */ li $at, -1 -/* 049344 80048744 8E2C0074 */ lw $t4, 0x74($s1) -/* 049348 80048748 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 04934C 8004874C 358B000C */ ori $t3, $t4, 0xc -/* 049350 80048750 AE2B0074 */ sw $t3, 0x74($s1) -/* 049354 80048754 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 049358 80048758 00000000 */ nop -/* 04935C 8004875C 2401FFFF */ li $at, -1 -.L80048760: -/* 049360 80048760 10410046 */ beq $v0, $at, .L8004887C -/* 049364 80048764 00000000 */ nop -/* 049368 80048768 820E01D3 */ lb $t6, 0x1d3($s0) -/* 04936C 8004876C 00000000 */ nop -/* 049370 80048770 15C00042 */ bnez $t6, .L8004887C -/* 049374 80048774 00000000 */ nop -/* 049378 80048778 8C6F0000 */ lw $t7, ($v1) -/* 04937C 8004877C 00000000 */ nop -/* 049380 80048780 29E10002 */ slti $at, $t7, 2 -/* 049384 80048784 1020003D */ beqz $at, .L8004887C -/* 049388 80048788 00000000 */ nop -/* 04938C 8004878C 0C0078A7 */ jal get_misc_asset -/* 049390 80048790 24040014 */ li $a0, 20 -/* 049394 80048794 82080203 */ lb $t0, 0x203($s0) -/* 049398 80048798 82180002 */ lb $t8, 2($s0) -/* 04939C 8004879C 31190004 */ andi $t9, $t0, 4 -/* 0493A0 800487A0 00195083 */ sra $t2, $t9, 2 -/* 0493A4 800487A4 2548000A */ addiu $t0, $t2, 0xa -/* 0493A8 800487A8 2901000B */ slti $at, $t0, 0xb -/* 0493AC 800487AC 001869C0 */ sll $t5, $t8, 7 -/* 0493B0 800487B0 14200012 */ bnez $at, .L800487FC -/* 0493B4 800487B4 01A21821 */ addu $v1, $t5, $v0 -/* 0493B8 800487B8 906C0070 */ lbu $t4, 0x70($v1) -/* 0493BC 800487BC 240E0001 */ li $t6, 1 -/* 0493C0 800487C0 1D800009 */ bgtz $t4, .L800487E8 -/* 0493C4 800487C4 00000000 */ nop -/* 0493C8 800487C8 C4660074 */ lwc1 $f6, 0x74($v1) -/* 0493CC 800487CC 44804800 */ mtc1 $zero, $f9 -/* 0493D0 800487D0 44804000 */ mtc1 $zero, $f8 -/* 0493D4 800487D4 460032A1 */ cvt.d.s $f10, $f6 -/* 0493D8 800487D8 462A403C */ c.lt.d $f8, $f10 -/* 0493DC 800487DC 00000000 */ nop -/* 0493E0 800487E0 45000026 */ bc1f .L8004887C -/* 0493E4 800487E4 00000000 */ nop -.L800487E8: -/* 0493E8 800487E8 8E2B0074 */ lw $t3, 0x74($s1) -/* 0493EC 800487EC 010E7804 */ sllv $t7, $t6, $t0 -/* 0493F0 800487F0 016FC025 */ or $t8, $t3, $t7 -/* 0493F4 800487F4 10000021 */ b .L8004887C -/* 0493F8 800487F8 AE380074 */ sw $t8, 0x74($s1) -.L800487FC: -/* 0493FC 800487FC 90620070 */ lbu $v0, 0x70($v1) -/* 049400 80048800 24010002 */ li $at, 2 -/* 049404 80048804 14410010 */ bne $v0, $at, .L80048848 -/* 049408 80048808 28410002 */ slti $at, $v0, 2 -/* 04940C 8004880C C4640074 */ lwc1 $f4, 0x74($v1) -/* 049410 80048810 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 049414 80048814 44814800 */ mtc1 $at, $f9 -/* 049418 80048818 44804000 */ mtc1 $zero, $f8 -/* 04941C 8004881C 460021A1 */ cvt.d.s $f6, $f4 -/* 049420 80048820 4628303C */ c.lt.d $f6, $f8 -/* 049424 80048824 24190001 */ li $t9, 1 -/* 049428 80048828 45000007 */ bc1f .L80048848 -/* 04942C 8004882C 28410002 */ slti $at, $v0, 2 -/* 049430 80048830 8E2D0074 */ lw $t5, 0x74($s1) -/* 049434 80048834 01195004 */ sllv $t2, $t9, $t0 -/* 049438 80048838 01AA6025 */ or $t4, $t5, $t2 -/* 04943C 8004883C 1000000F */ b .L8004887C -/* 049440 80048840 AE2C0074 */ sw $t4, 0x74($s1) -/* 049444 80048844 28410002 */ slti $at, $v0, 2 -.L80048848: -/* 049448 80048848 1020000C */ beqz $at, .L8004887C -/* 04944C 8004884C 00000000 */ nop -/* 049450 80048850 44805000 */ mtc1 $zero, $f10 -/* 049454 80048854 C4640074 */ lwc1 $f4, 0x74($v1) -/* 049458 80048858 240B0001 */ li $t3, 1 -/* 04945C 8004885C 4604503C */ c.lt.s $f10, $f4 -/* 049460 80048860 00000000 */ nop -/* 049464 80048864 45000005 */ bc1f .L8004887C -/* 049468 80048868 00000000 */ nop -/* 04946C 8004886C 8E2E0074 */ lw $t6, 0x74($s1) -/* 049470 80048870 010B7804 */ sllv $t7, $t3, $t0 -/* 049474 80048874 01CFC025 */ or $t8, $t6, $t7 -/* 049478 80048878 AE380074 */ sw $t8, 0x74($s1) -.L8004887C: -/* 04947C 8004887C 82190201 */ lb $t9, 0x201($s0) -/* 049480 80048880 00000000 */ nop -/* 049484 80048884 17200004 */ bnez $t9, .L80048898 -/* 049488 80048888 8FAD0128 */ lw $t5, 0x128($sp) -/* 04948C 8004888C 10000015 */ b .L800488E4 -/* 049490 80048890 AE200074 */ sw $zero, 0x74($s1) -/* 049494 80048894 8FAD0128 */ lw $t5, 0x128($sp) -.L80048898: -/* 049498 80048898 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 -/* 04949C 8004889C 448D3000 */ mtc1 $t5, $f6 -/* 0494A0 800488A0 C42AD56C */ lwc1 $f10, %lo(gCurrentRacerWeightStat)($at) -/* 0494A4 800488A4 46803020 */ cvt.s.w $f0, $f6 -/* 0494A8 800488A8 C6280020 */ lwc1 $f8, 0x20($s1) -/* 0494AC 800488AC 02202025 */ move $a0, $s1 -/* 0494B0 800488B0 460A0102 */ mul.s $f4, $f0, $f10 -/* 0494B4 800488B4 46044180 */ add.s $f6, $f8, $f4 -/* 0494B8 800488B8 E6260020 */ swc1 $f6, 0x20($s1) -/* 0494BC 800488BC 8FA50128 */ lw $a1, 0x128($sp) -/* 0494C0 800488C0 0C02BDC5 */ jal func_800AF714 -/* 0494C4 800488C4 E7A0004C */ swc1 $f0, 0x4c($sp) -/* 0494C8 800488C8 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 -/* 0494CC 800488CC C7A0004C */ lwc1 $f0, 0x4c($sp) -/* 0494D0 800488D0 C428D56C */ lwc1 $f8, %lo(gCurrentRacerWeightStat)($at) -/* 0494D4 800488D4 C62A0020 */ lwc1 $f10, 0x20($s1) -/* 0494D8 800488D8 46080102 */ mul.s $f4, $f0, $f8 -/* 0494DC 800488DC 46045181 */ sub.s $f6, $f10, $f4 -/* 0494E0 800488E0 E6260020 */ swc1 $f6, 0x20($s1) -.L800488E4: -/* 0494E4 800488E4 862A0000 */ lh $t2, ($s1) -/* 0494E8 800488E8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 -/* 0494EC 800488EC 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 -/* 0494F0 800488F0 000A6023 */ negu $t4, $t2 -/* 0494F4 800488F4 A4AC0000 */ sh $t4, ($a1) -/* 0494F8 800488F8 862B0002 */ lh $t3, 2($s1) -/* 0494FC 800488FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 049500 80048900 000B7023 */ negu $t6, $t3 -/* 049504 80048904 A4AE0002 */ sh $t6, 2($a1) -/* 049508 80048908 862F0004 */ lh $t7, 4($s1) -/* 04950C 8004890C 44814000 */ mtc1 $at, $f8 -/* 049510 80048910 44805000 */ mtc1 $zero, $f10 -/* 049514 80048914 44802000 */ mtc1 $zero, $f4 -/* 049518 80048918 44803000 */ mtc1 $zero, $f6 -/* 04951C 8004891C 000FC023 */ negu $t8, $t7 -/* 049520 80048920 A4B80004 */ sh $t8, 4($a1) -/* 049524 80048924 27A40068 */ addiu $a0, $sp, 0x68 -/* 049528 80048928 E4A80008 */ swc1 $f8, 8($a1) -/* 04952C 8004892C E4AA000C */ swc1 $f10, 0xc($a1) -/* 049530 80048930 E4A40010 */ swc1 $f4, 0x10($a1) -/* 049534 80048934 0C01BF9D */ jal object_transform_to_matrix_2 -/* 049538 80048938 E4A60014 */ swc1 $f6, 0x14($a1) -/* 04953C 8004893C 8E25001C */ lw $a1, 0x1c($s1) -/* 049540 80048940 8E260020 */ lw $a2, 0x20($s1) -/* 049544 80048944 8E270024 */ lw $a3, 0x24($s1) -/* 049548 80048948 26190030 */ addiu $t9, $s0, 0x30 -/* 04954C 8004894C 260D0034 */ addiu $t5, $s0, 0x34 -/* 049550 80048950 260A002C */ addiu $t2, $s0, 0x2c -/* 049554 80048954 AFAA0018 */ sw $t2, 0x18($sp) -/* 049558 80048958 AFAD0014 */ sw $t5, 0x14($sp) -/* 04955C 8004895C AFB90010 */ sw $t9, 0x10($sp) -/* 049560 80048960 0C01BD93 */ jal guMtxXFMF -/* 049564 80048964 27A40068 */ addiu $a0, $sp, 0x68 -/* 049568 80048968 820C01E2 */ lb $t4, 0x1e2($s0) -/* 04956C 8004896C 44804000 */ mtc1 $zero, $f8 -/* 049570 80048970 1580002B */ bnez $t4, .L80048A20 -/* 049574 80048974 24060004 */ li $a2, 4 -/* 049578 80048978 820B01E5 */ lb $t3, 0x1e5($s0) -/* 04957C 8004897C 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 -/* 049580 80048980 15600027 */ bnez $t3, .L80048A20 -/* 049584 80048984 34018001 */ li $at, 32769 -/* 049588 80048988 8D08D538 */ lw $t0, %lo(gCurrentStickY)($t0) -/* 04958C 8004898C 86240002 */ lh $a0, 2($s1) -/* 049590 80048990 00084023 */ negu $t0, $t0 -/* 049594 80048994 00087180 */ sll $t6, $t0, 6 -/* 049598 80048998 31CFFFFF */ andi $t7, $t6, 0xffff -/* 04959C 8004899C 3098FFFF */ andi $t8, $a0, 0xffff -/* 0495A0 800489A0 01F81823 */ subu $v1, $t7, $t8 -/* 0495A4 800489A4 0061082A */ slt $at, $v1, $at -/* 0495A8 800489A8 14200003 */ bnez $at, .L800489B8 -/* 0495AC 800489AC 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 0495B0 800489B0 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 0495B4 800489B4 00611821 */ addu $v1, $v1, $at -.L800489B8: -/* 0495B8 800489B8 28618000 */ slti $at, $v1, -0x8000 -/* 0495BC 800489BC 10200002 */ beqz $at, .L800489C8 -/* 0495C0 800489C0 3401FFFF */ li $at, 65535 -/* 0495C4 800489C4 00611821 */ addu $v1, $v1, $at -.L800489C8: -/* 0495C8 800489C8 0003C883 */ sra $t9, $v1, 2 -/* 0495CC 800489CC 00996821 */ addu $t5, $a0, $t9 -/* 0495D0 800489D0 A62D0002 */ sh $t5, 2($s1) -/* 0495D4 800489D4 860501A4 */ lh $a1, 0x1a4($s0) -/* 0495D8 800489D8 34018001 */ li $at, 32769 -/* 0495DC 800489DC 30A2FFFF */ andi $v0, $a1, 0xffff -/* 0495E0 800489E0 00021023 */ negu $v0, $v0 -/* 0495E4 800489E4 0041082A */ slt $at, $v0, $at -/* 0495E8 800489E8 8FAA0128 */ lw $t2, 0x128($sp) -/* 0495EC 800489EC 14200003 */ bnez $at, .L800489FC -/* 0495F0 800489F0 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 0495F4 800489F4 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 0495F8 800489F8 00411021 */ addu $v0, $v0, $at -.L800489FC: -/* 0495FC 800489FC 28418000 */ slti $at, $v0, -0x8000 -/* 049600 80048A00 10200002 */ beqz $at, .L80048A0C -/* 049604 80048A04 3401FFFF */ li $at, 65535 -/* 049608 80048A08 00411021 */ addu $v0, $v0, $at -.L80048A0C: -/* 04960C 80048A0C 004A0019 */ multu $v0, $t2 -/* 049610 80048A10 00001012 */ mflo $v0 -/* 049614 80048A14 00026103 */ sra $t4, $v0, 4 -/* 049618 80048A18 00AC5821 */ addu $t3, $a1, $t4 -/* 04961C 80048A1C A60B01A4 */ sh $t3, 0x1a4($s0) -.L80048A20: -/* 049620 80048A20 3C0E8012 */ lui $t6, %hi(gRaceStartTimer) # $t6, 0x8012 -/* 049624 80048A24 8DCED540 */ lw $t6, %lo(gRaceStartTimer)($t6) -/* 049628 80048A28 3C0D8012 */ lui $t5, %hi(gCurrentButtonsPressed) # $t5, 0x8012 -/* 04962C 80048A2C 11C00007 */ beqz $t6, .L80048A4C -/* 049630 80048A30 02202025 */ move $a0, $s1 -/* 049634 80048A34 3C0F8012 */ lui $t7, %hi(gCurrentButtonsPressed) # $t7, 0x8012 -/* 049638 80048A38 8DEFD52C */ lw $t7, %lo(gCurrentButtonsPressed)($t7) -/* 04963C 80048A3C 2401FFEF */ li $at, -17 -/* 049640 80048A40 01E1C024 */ and $t8, $t7, $at -/* 049644 80048A44 3C018012 */ lui $at, %hi(gCurrentButtonsPressed) # $at, 0x8012 -/* 049648 80048A48 AC38D52C */ sw $t8, %lo(gCurrentButtonsPressed)($at) -.L80048A4C: -/* 04964C 80048A4C C60A00C0 */ lwc1 $f10, 0xc0($s0) -/* 049650 80048A50 00000000 */ nop -/* 049654 80048A54 460A4032 */ c.eq.s $f8, $f10 -/* 049658 80048A58 00000000 */ nop -/* 04965C 80048A5C 45000005 */ bc1f .L80048A74 -/* 049660 80048A60 00000000 */ nop -/* 049664 80048A64 821901E2 */ lb $t9, 0x1e2($s0) -/* 049668 80048A68 24010004 */ li $at, 4 -/* 04966C 80048A6C 17210002 */ bne $t9, $at, .L80048A78 -/* 049670 80048A70 00000000 */ nop -.L80048A74: -/* 049674 80048A74 A20001FB */ sb $zero, 0x1fb($s0) -.L80048A78: -/* 049678 80048A78 8DADD52C */ lw $t5, %lo(gCurrentButtonsPressed)($t5) -/* 04967C 80048A7C 00000000 */ nop -/* 049680 80048A80 31AA0010 */ andi $t2, $t5, 0x10 -/* 049684 80048A84 1140004A */ beqz $t2, .L80048BB0 -/* 049688 80048A88 00000000 */ nop -/* 04968C 80048A8C C60C00C0 */ lwc1 $f12, 0xc0($s0) -/* 049690 80048A90 44802000 */ mtc1 $zero, $f4 -/* 049694 80048A94 00000000 */ nop -/* 049698 80048A98 460C203C */ c.lt.s $f4, $f12 -/* 04969C 80048A9C 00000000 */ nop -/* 0496A0 80048AA0 45010006 */ bc1t .L80048ABC -/* 0496A4 80048AA4 00000000 */ nop -/* 0496A8 80048AA8 820C01E2 */ lb $t4, 0x1e2($s0) -/* 0496AC 80048AAC 00000000 */ nop -/* 0496B0 80048AB0 29810002 */ slti $at, $t4, 2 -/* 0496B4 80048AB4 1420003E */ bnez $at, .L80048BB0 -/* 0496B8 80048AB8 00000000 */ nop -.L80048ABC: -/* 0496BC 80048ABC 820B01FB */ lb $t3, 0x1fb($s0) -/* 0496C0 80048AC0 00000000 */ nop -/* 0496C4 80048AC4 1560003A */ bnez $t3, .L80048BB0 -/* 0496C8 80048AC8 00000000 */ nop -/* 0496CC 80048ACC 44803000 */ mtc1 $zero, $f6 -/* 0496D0 80048AD0 3C01400C */ li $at, 0x400C0000 # 2.187500 -/* 0496D4 80048AD4 460C3032 */ c.eq.s $f6, $f12 -/* 0496D8 80048AD8 00000000 */ nop -/* 0496DC 80048ADC 45010018 */ bc1t .L80048B40 -/* 0496E0 80048AE0 00000000 */ nop -/* 0496E4 80048AE4 C6280020 */ lwc1 $f8, 0x20($s1) -/* 0496E8 80048AE8 3C014012 */ li $at, 0x40120000 # 2.281250 -/* 0496EC 80048AEC 44812800 */ mtc1 $at, $f5 -/* 0496F0 80048AF0 44802000 */ mtc1 $zero, $f4 -/* 0496F4 80048AF4 460042A1 */ cvt.d.s $f10, $f8 -/* 0496F8 80048AF8 46245180 */ add.d $f6, $f10, $f4 -/* 0496FC 80048AFC 3C014016 */ li $at, 0x40160000 # 2.343750 -/* 049700 80048B00 46203220 */ cvt.s.d $f8, $f6 -/* 049704 80048B04 44812800 */ mtc1 $at, $f5 -/* 049708 80048B08 E6280020 */ swc1 $f8, 0x20($s1) -/* 04970C 80048B0C C62A0020 */ lwc1 $f10, 0x20($s1) -/* 049710 80048B10 44802000 */ mtc1 $zero, $f4 -/* 049714 80048B14 46005021 */ cvt.d.s $f0, $f10 -/* 049718 80048B18 4620203C */ c.lt.d $f4, $f0 -/* 04971C 80048B1C 3C0140B0 */ li $at, 0x40B00000 # 5.500000 -/* 049720 80048B20 45000011 */ bc1f .L80048B68 -/* 049724 80048B24 00000000 */ nop -/* 049728 80048B28 44813000 */ mtc1 $at, $f6 -/* 04972C 80048B2C 00000000 */ nop -/* 049730 80048B30 E6260020 */ swc1 $f6, 0x20($s1) -/* 049734 80048B34 C6280020 */ lwc1 $f8, 0x20($s1) -/* 049738 80048B38 1000000B */ b .L80048B68 -/* 04973C 80048B3C 46004021 */ cvt.d.s $f0, $f8 -.L80048B40: -/* 049740 80048B40 C62A0020 */ lwc1 $f10, 0x20($s1) -/* 049744 80048B44 44813800 */ mtc1 $at, $f7 -/* 049748 80048B48 44803000 */ mtc1 $zero, $f6 -/* 04974C 80048B4C 46005121 */ cvt.d.s $f4, $f10 -/* 049750 80048B50 46262200 */ add.d $f8, $f4, $f6 -/* 049754 80048B54 462042A0 */ cvt.s.d $f10, $f8 -/* 049758 80048B58 E62A0020 */ swc1 $f10, 0x20($s1) -/* 04975C 80048B5C C6240020 */ lwc1 $f4, 0x20($s1) -/* 049760 80048B60 00000000 */ nop -/* 049764 80048B64 46002021 */ cvt.d.s $f0, $f4 -.L80048B68: -/* 049768 80048B68 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 -/* 04976C 80048B6C C428D56C */ lwc1 $f8, %lo(gCurrentRacerWeightStat)($at) -/* 049770 80048B70 46200180 */ add.d $f6, $f0, $f0 -/* 049774 80048B74 460042A1 */ cvt.d.s $f10, $f8 -/* 049778 80048B78 00000000 */ nop -/* 04977C 80048B7C 462A3103 */ div.d $f4, $f6, $f10 -/* 049780 80048B80 462020A0 */ cvt.s.d $f2, $f4 -/* 049784 80048B84 444EF800 */ cfc1 $t6, $31 -/* 049788 80048B88 00000000 */ nop -/* 04978C 80048B8C 35C10003 */ ori $at, $t6, 3 -/* 049790 80048B90 38210002 */ xori $at, $at, 2 -/* 049794 80048B94 44C1F800 */ ctc1 $at, $31 -/* 049798 80048B98 00000000 */ nop -/* 04979C 80048B9C 46001224 */ cvt.w.s $f8, $f2 -/* 0497A0 80048BA0 440F4000 */ mfc1 $t7, $f8 -/* 0497A4 80048BA4 44CEF800 */ ctc1 $t6, $31 -/* 0497A8 80048BA8 25F80001 */ addiu $t8, $t7, 1 -/* 0497AC 80048BAC A21801FB */ sb $t8, 0x1fb($s0) -.L80048BB0: -/* 0497B0 80048BB0 820201FB */ lb $v0, 0x1fb($s0) -/* 0497B4 80048BB4 8FB90128 */ lw $t9, 0x128($sp) -/* 0497B8 80048BB8 18400004 */ blez $v0, .L80048BCC -/* 0497BC 80048BBC 3C014220 */ li $at, 0x42200000 # 40.000000 -/* 0497C0 80048BC0 00596823 */ subu $t5, $v0, $t9 -/* 0497C4 80048BC4 10000002 */ b .L80048BD0 -/* 0497C8 80048BC8 A20D01FB */ sb $t5, 0x1fb($s0) -.L80048BCC: -/* 0497CC 80048BCC A20001FB */ sb $zero, 0x1fb($s0) -.L80048BD0: -/* 0497D0 80048BD0 44813000 */ mtc1 $at, $f6 -/* 0497D4 80048BD4 C7AA0118 */ lwc1 $f10, 0x118($sp) -/* 0497D8 80048BD8 3C01800E */ lui $at, %hi(D_800E6468) # $at, 0x800e -/* 0497DC 80048BDC 460A303C */ c.lt.s $f6, $f10 -/* 0497E0 80048BE0 3C0C8012 */ lui $t4, %hi(gCurrentStickX) # $t4, 0x8012 -/* 0497E4 80048BE4 45000004 */ bc1f .L80048BF8 -/* 0497E8 80048BE8 00000000 */ nop -/* 0497EC 80048BEC C4246468 */ lwc1 $f4, %lo(D_800E6468)($at) -/* 0497F0 80048BF0 00000000 */ nop -/* 0497F4 80048BF4 E60400C4 */ swc1 $f4, 0xc4($s0) -.L80048BF8: -/* 0497F8 80048BF8 8E230060 */ lw $v1, 0x60($s1) -/* 0497FC 80048BFC 24010001 */ li $at, 1 -/* 049800 80048C00 8C6A0000 */ lw $t2, ($v1) -/* 049804 80048C04 00000000 */ nop -/* 049808 80048C08 1541000F */ bne $t2, $at, .L80048C48 -/* 04980C 80048C0C 8FA7012C */ lw $a3, 0x12c($sp) -/* 049810 80048C10 8C620004 */ lw $v0, 4($v1) -/* 049814 80048C14 8D8CD534 */ lw $t4, %lo(gCurrentStickX)($t4) -/* 049818 80048C18 804F003A */ lb $t7, 0x3a($v0) -/* 04981C 80048C1C 000C5880 */ sll $t3, $t4, 2 -/* 049820 80048C20 25F80001 */ addiu $t8, $t7, 1 -/* 049824 80048C24 A058003A */ sb $t8, 0x3a($v0) -/* 049828 80048C28 8059003A */ lb $t9, 0x3a($v0) -/* 04982C 80048C2C 016C5821 */ addu $t3, $t3, $t4 -/* 049830 80048C30 000B5880 */ sll $t3, $t3, 2 -/* 049834 80048C34 256E4000 */ addiu $t6, $t3, 0x4000 -/* 049838 80048C38 332D0001 */ andi $t5, $t9, 1 -/* 04983C 80048C3C A44E0000 */ sh $t6, ($v0) -/* 049840 80048C40 A04D003A */ sb $t5, 0x3a($v0) -/* 049844 80048C44 8FA7012C */ lw $a3, 0x12c($sp) -.L80048C48: -/* 049848 80048C48 0C01602D */ jal func_800580B4 -/* 04984C 80048C4C 02002825 */ move $a1, $s0 -/* 049850 80048C50 83AA0067 */ lb $t2, 0x67($sp) -/* 049854 80048C54 02202025 */ move $a0, $s1 -/* 049858 80048C58 11400004 */ beqz $t2, .L80048C6C -/* 04985C 80048C5C 8FBF002C */ lw $ra, 0x2c($sp) -/* 049860 80048C60 0C008C34 */ jal func_800230D0 -/* 049864 80048C64 02002825 */ move $a1, $s0 -/* 049868 80048C68 8FBF002C */ lw $ra, 0x2c($sp) -.L80048C6C: -/* 04986C 80048C6C 8FB00024 */ lw $s0, 0x24($sp) -/* 049870 80048C70 8FB10028 */ lw $s1, 0x28($sp) -/* 049874 80048C74 03E00008 */ jr $ra -/* 049878 80048C78 27BD0128 */ addiu $sp, $sp, 0x128 - +.late_rodata +glabel D_800E63A8 +.double 1.15 +glabel D_800E63B0 +.double 0.016 +glabel D_800E63B8 +.double 0.016 +glabel D_800E63C0 +.double 1.2 +glabel D_800E63C8 +.double 0.046 +glabel D_800E63D0 +.double 1.2 +glabel D_800E63D8 +.float 1.2 +.word 0 # Padding +glabel D_800E63E0 +.double 0.046 +glabel D_800E63E8 +.double 0.3 +glabel D_800E63F0 +.float 0.004 +.word 0 # Padding +glabel D_800E63F8 +.double 0.025 +glabel D_800E6400 +.double 300.0 +glabel D_800E6408 +.double 0.02 +glabel D_800E6410 +.double 1.7 +glabel D_800E6418 +.double 0.35 +glabel D_800E6420 +.double 0.2 +glabel D_800E6428 +.double 0.07 +glabel D_800E6430 +.double 0.8 +glabel D_800E6438 +.double 0.65 +glabel D_800E6440 +.double 0.65 +glabel D_800E6448 +.double 35.0 +glabel D_800E6450 +.float -10000.0 +.word 0 # Padding +glabel D_800E6458 +.double 0.8 +glabel D_800E6460 +.double 0.05 +glabel D_800E6468 +.float 0.11 + +.text +glabel func_80046524 +/* 047124 80046524 27BDFED8 */ addiu $sp, $sp, -0x128 +/* 047128 80046528 AFBF002C */ sw $ra, 0x2c($sp) +/* 04712C 8004652C AFB10028 */ sw $s1, 0x28($sp) +/* 047130 80046530 AFB00024 */ sw $s0, 0x24($sp) +/* 047134 80046534 00E08025 */ move $s0, $a3 +/* 047138 80046538 00C08825 */ move $s1, $a2 +/* 04713C 8004653C AFA40128 */ sw $a0, 0x128($sp) +/* 047140 80046540 0C00384E */ jal func_8000E138 +/* 047144 80046544 AFA5012C */ sw $a1, 0x12c($sp) +/* 047148 80046548 10400009 */ beqz $v0, .L80046570 +/* 04714C 8004654C 3C0A8012 */ lui $t2, %hi(D_8011D586) # $t2, 0x8012 +/* 047150 80046550 3C01800E */ lui $at, %hi(D_800E63A8 + 4) # $at, 0x800e +/* 047154 80046554 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 047158 80046558 C42963A8 */ lwc1 $f9, %lo(D_800E63A8)($at) +/* 04715C 8004655C C42863AC */ lwc1 $f8, %lo(D_800E63A8 + 4)($at) +/* 047160 80046560 460021A1 */ cvt.d.s $f6, $f4 +/* 047164 80046564 46283282 */ mul.d $f10, $f6, $f8 +/* 047168 80046568 46205120 */ cvt.s.d $f4, $f10 +/* 04716C 8004656C E7A4012C */ swc1 $f4, 0x12c($sp) +.L80046570: +/* 047170 80046570 A3A00067 */ sb $zero, 0x67($sp) +/* 047174 80046574 860E0000 */ lh $t6, ($s0) +/* 047178 80046578 3C0D8012 */ lui $t5, %hi(gCurrentStickX) # $t5, 0x8012 +/* 04717C 8004657C 05C0000B */ bltz $t6, .L800465AC +/* 047180 80046580 02202025 */ move $a0, $s1 +/* 047184 80046584 3C0F800E */ lui $t7, %hi(gNumViewports) # $t7, 0x800e +/* 047188 80046588 8DEFCB98 */ lw $t7, %lo(gNumViewports)($t7) +/* 04718C 8004658C 00000000 */ nop +/* 047190 80046590 29E10002 */ slti $at, $t7, 2 +/* 047194 80046594 10200006 */ beqz $at, .L800465B0 +/* 047198 80046598 3C014120 */ lui $at, 0x4120 +/* 04719C 8004659C 8E380074 */ lw $t8, 0x74($s1) +/* 0471A0 800465A0 00000000 */ nop +/* 0471A4 800465A4 37190100 */ ori $t9, $t8, 0x100 +/* 0471A8 800465A8 AE390074 */ sw $t9, 0x74($s1) +.L800465AC: +/* 0471AC 800465AC 3C014120 */ li $at, 0x41200000 # 10.000000 +.L800465B0: +/* 0471B0 800465B0 44816000 */ mtc1 $at, $f12 +/* 0471B4 800465B4 3C018012 */ lui $at, %hi(D_8011D550) # $at, 0x8012 +/* 0471B8 800465B8 A420D550 */ sh $zero, %lo(D_8011D550)($at) +/* 0471BC 800465BC 3C018012 */ lui $at, %hi(gCurrentCarSteerVel) # $at, 0x8012 +/* 0471C0 800465C0 AC20D554 */ sw $zero, %lo(gCurrentCarSteerVel)($at) +/* 0471C4 800465C4 3C018012 */ lui $at, %hi(D_8011D558) # $at, 0x8012 +/* 0471C8 800465C8 AC20D558 */ sw $zero, %lo(D_8011D558)($at) +/* 0471CC 800465CC C626000C */ lwc1 $f6, 0xc($s1) +/* 0471D0 800465D0 854AD586 */ lh $t2, %lo(D_8011D586)($t2) +/* 0471D4 800465D4 E7A60110 */ swc1 $f6, 0x110($sp) +/* 0471D8 800465D8 C6280010 */ lwc1 $f8, 0x10($s1) +/* 0471DC 800465DC 448A2000 */ mtc1 $t2, $f4 +/* 0471E0 800465E0 E7A8010C */ swc1 $f8, 0x10c($sp) +/* 0471E4 800465E4 468021A0 */ cvt.s.w $f6, $f4 +/* 0471E8 800465E8 C62A0014 */ lwc1 $f10, 0x14($s1) +/* 0471EC 800465EC 3C014620 */ li $at, 0x46200000 # 10240.000000 +/* 0471F0 800465F0 44814000 */ mtc1 $at, $f8 +/* 0471F4 800465F4 E7AA0108 */ swc1 $f10, 0x108($sp) +/* 0471F8 800465F8 46083283 */ div.s $f10, $f6, $f8 +/* 0471FC 800465FC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 047200 80046600 44813800 */ mtc1 $at, $f7 +/* 047204 80046604 44803000 */ mtc1 $zero, $f6 +/* 047208 80046608 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 04720C 8004660C 3C0B8012 */ lui $t3, %hi(gCurrentPlayerIndex) # $t3, 0x8012 +/* 047210 80046610 8D6BD55C */ lw $t3, %lo(gCurrentPlayerIndex)($t3) +/* 047214 80046614 44811000 */ mtc1 $at, $f2 +/* 047218 80046618 2401FFFF */ li $at, -1 +/* 04721C 8004661C 02002825 */ move $a1, $s0 +/* 047220 80046620 46005121 */ cvt.d.s $f4, $f10 +/* 047224 80046624 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 047228 80046628 46243201 */ sub.d $f8, $f6, $f4 +/* 04722C 8004662C 46005187 */ neg.s $f6, $f10 +/* 047230 80046630 460C3102 */ mul.s $f4, $f6, $f12 +/* 047234 80046634 46204020 */ cvt.s.d $f0, $f8 +/* 047238 80046638 46002202 */ mul.s $f8, $f4, $f0 +/* 04723C 8004663C E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 047240 80046640 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 047244 80046644 00000000 */ nop +/* 047248 80046648 46005187 */ neg.s $f6, $f10 +/* 04724C 8004664C 460C3102 */ mul.s $f4, $f6, $f12 +/* 047250 80046650 00000000 */ nop +/* 047254 80046654 46002202 */ mul.s $f8, $f4, $f0 +/* 047258 80046658 11610004 */ beq $t3, $at, .L8004666C +/* 04725C 8004665C E7A800E4 */ swc1 $f8, 0xe4($sp) +/* 047260 80046660 820C01D8 */ lb $t4, 0x1d8($s0) +/* 047264 80046664 00000000 */ nop +/* 047268 80046668 11800003 */ beqz $t4, .L80046678 +.L8004666C: +/* 04726C 8004666C 3C014200 */ li $at, 0x42000000 # 32.000000 +/* 047270 80046670 44811000 */ mtc1 $at, $f2 +/* 047274 80046674 00000000 */ nop +.L80046678: +/* 047278 80046678 820801E1 */ lb $t0, 0x1e1($s0) +/* 04727C 8004667C 8DADD534 */ lw $t5, %lo(gCurrentStickX)($t5) +/* 047280 80046680 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 047284 80046684 01A81823 */ subu $v1, $t5, $t0 +/* 047288 80046688 44835000 */ mtc1 $v1, $f10 +/* 04728C 8004668C 00000000 */ nop +/* 047290 80046690 468051A0 */ cvt.s.w $f6, $f10 +/* 047294 80046694 46043202 */ mul.s $f8, $f6, $f4 +/* 047298 80046698 00000000 */ nop +/* 04729C 8004669C 46024283 */ div.s $f10, $f8, $f2 +/* 0472A0 800466A0 444EF800 */ cfc1 $t6, $31 +/* 0472A4 800466A4 00000000 */ nop +/* 0472A8 800466A8 35C10003 */ ori $at, $t6, 3 +/* 0472AC 800466AC 38210002 */ xori $at, $at, 2 +/* 0472B0 800466B0 44C1F800 */ ctc1 $at, $31 +/* 0472B4 800466B4 00000000 */ nop +/* 0472B8 800466B8 460051A4 */ cvt.w.s $f6, $f10 +/* 0472BC 800466BC 44023000 */ mfc1 $v0, $f6 +/* 0472C0 800466C0 44CEF800 */ ctc1 $t6, $31 +/* 0472C4 800466C4 10600009 */ beqz $v1, .L800466EC +/* 0472C8 800466C8 00403825 */ move $a3, $v0 +/* 0472CC 800466CC 14400008 */ bnez $v0, .L800466F0 +/* 0472D0 800466D0 01077821 */ addu $t7, $t0, $a3 +/* 0472D4 800466D4 18600002 */ blez $v1, .L800466E0 +/* 0472D8 800466D8 00000000 */ nop +/* 0472DC 800466DC 24070001 */ li $a3, 1 +.L800466E0: +/* 0472E0 800466E0 04610003 */ bgez $v1, .L800466F0 +/* 0472E4 800466E4 01077821 */ addu $t7, $t0, $a3 +/* 0472E8 800466E8 2407FFFF */ li $a3, -1 +.L800466EC: +/* 0472EC 800466EC 01077821 */ addu $t7, $t0, $a3 +.L800466F0: +/* 0472F0 800466F0 A20F01E1 */ sb $t7, 0x1e1($s0) +/* 0472F4 800466F4 8FA60128 */ lw $a2, 0x128($sp) +/* 0472F8 800466F8 0C0157B0 */ jal handle_racer_items +/* 0472FC 800466FC E7A000C8 */ swc1 $f0, 0xc8($sp) +/* 047300 80046700 02202025 */ move $a0, $s1 +/* 047304 80046704 0C014D71 */ jal func_800535C4 +/* 047308 80046708 02002825 */ move $a1, $s0 +/* 04730C 8004670C 02202025 */ move $a0, $s1 +/* 047310 80046710 0C01231F */ jal func_80048C7C +/* 047314 80046714 02002825 */ move $a1, $s0 +/* 047318 80046718 3C188012 */ lui $t8, %hi(gCurrentPlayerIndex) # $t8, 0x8012 +/* 04731C 8004671C 8F18D55C */ lw $t8, %lo(gCurrentPlayerIndex)($t8) +/* 047320 80046720 2401FFFF */ li $at, -1 +/* 047324 80046724 13010007 */ beq $t8, $at, .L80046744 +/* 047328 80046728 00000000 */ nop +/* 04732C 8004672C 8FA60128 */ lw $a2, 0x128($sp) +/* 047330 80046730 02202025 */ move $a0, $s1 +/* 047334 80046734 0C014871 */ jal func_800521C4 +/* 047338 80046738 02002825 */ move $a1, $s0 +/* 04733C 8004673C 10000003 */ b .L8004674C +/* 047340 80046740 00000000 */ nop +.L80046744: +/* 047344 80046744 0C0148D3 */ jal func_8005234C +/* 047348 80046748 02002025 */ move $a0, $s0 +.L8004674C: +/* 04734C 8004674C 3C198012 */ lui $t9, %hi(gCurrentRacerInput) # $t9, 0x8012 +/* 047350 80046750 8F39D528 */ lw $t9, %lo(gCurrentRacerInput)($t9) +/* 047354 80046754 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 +/* 047358 80046758 332A8000 */ andi $t2, $t9, 0x8000 +/* 04735C 8004675C 1140001E */ beqz $t2, .L800467D8 +/* 047360 80046760 00000000 */ nop +/* 047364 80046764 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 047368 80046768 3C01800E */ lui $at, %hi(D_800E63B0 + 4) # $at, 0x800e +/* 04736C 8004676C C42B63B0 */ lwc1 $f11, %lo(D_800E63B0)($at) +/* 047370 80046770 C42A63B4 */ lwc1 $f10, %lo(D_800E63B0 + 4)($at) +/* 047374 80046774 46002221 */ cvt.d.s $f8, $f4 +/* 047378 80046778 462A4182 */ mul.d $f6, $f8, $f10 +/* 04737C 8004677C E7A80054 */ swc1 $f8, 0x54($sp) +/* 047380 80046780 E7A90050 */ swc1 $f9, 0x50($sp) +/* 047384 80046784 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 047388 80046788 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04738C 8004678C 46002221 */ cvt.d.s $f8, $f4 +/* 047390 80046790 46264280 */ add.d $f10, $f8, $f6 +/* 047394 80046794 44804000 */ mtc1 $zero, $f8 +/* 047398 80046798 46205120 */ cvt.s.d $f4, $f10 +/* 04739C 8004679C 44814800 */ mtc1 $at, $f9 +/* 0473A0 800467A0 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 0473A4 800467A4 C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 0473A8 800467A8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0473AC 800467AC 460011A1 */ cvt.d.s $f6, $f2 +/* 0473B0 800467B0 4626403C */ c.lt.d $f8, $f6 +/* 0473B4 800467B4 00000000 */ nop +/* 0473B8 800467B8 45000021 */ bc1f .L80046840 +/* 0473BC 800467BC 00000000 */ nop +/* 0473C0 800467C0 44815000 */ mtc1 $at, $f10 +/* 0473C4 800467C4 00000000 */ nop +/* 0473C8 800467C8 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 0473CC 800467CC C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 0473D0 800467D0 1000001C */ b .L80046844 +/* 0473D4 800467D4 C60E002C */ lwc1 $f14, 0x2c($s0) +.L800467D8: +/* 0473D8 800467D8 C7A4012C */ lwc1 $f4, 0x12c($sp) +/* 0473DC 800467DC 3C01800E */ lui $at, %hi(D_800E63B8 + 4) # $at, 0x800e +/* 0473E0 800467E0 C42763B8 */ lwc1 $f7, %lo(D_800E63B8)($at) +/* 0473E4 800467E4 C42663BC */ lwc1 $f6, %lo(D_800E63B8 + 4)($at) +/* 0473E8 800467E8 46002221 */ cvt.d.s $f8, $f4 +/* 0473EC 800467EC 46264282 */ mul.d $f10, $f8, $f6 +/* 0473F0 800467F0 E7A80054 */ swc1 $f8, 0x54($sp) +/* 0473F4 800467F4 E7A90050 */ swc1 $f9, 0x50($sp) +/* 0473F8 800467F8 C60400B4 */ lwc1 $f4, 0xb4($s0) +/* 0473FC 800467FC 00000000 */ nop +/* 047400 80046800 46002221 */ cvt.d.s $f8, $f4 +/* 047404 80046804 462A4181 */ sub.d $f6, $f8, $f10 +/* 047408 80046808 44804000 */ mtc1 $zero, $f8 +/* 04740C 8004680C 46203120 */ cvt.s.d $f4, $f6 +/* 047410 80046810 E60400B4 */ swc1 $f4, 0xb4($s0) +/* 047414 80046814 C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 047418 80046818 00000000 */ nop +/* 04741C 8004681C 4608103C */ c.lt.s $f2, $f8 +/* 047420 80046820 00000000 */ nop +/* 047424 80046824 45000006 */ bc1f .L80046840 +/* 047428 80046828 00000000 */ nop +/* 04742C 8004682C 44805000 */ mtc1 $zero, $f10 +/* 047430 80046830 00000000 */ nop +/* 047434 80046834 E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 047438 80046838 C60200B4 */ lwc1 $f2, 0xb4($s0) +/* 04743C 8004683C 00000000 */ nop +.L80046840: +/* 047440 80046840 C60E002C */ lwc1 $f14, 0x2c($s0) +.L80046844: +/* 047444 80046844 44803000 */ mtc1 $zero, $f6 +/* 047448 80046848 44802800 */ mtc1 $zero, $f5 +/* 04744C 8004684C 460E303C */ c.lt.s $f6, $f14 +/* 047450 80046850 46001006 */ mov.s $f0, $f2 +/* 047454 80046854 45000008 */ bc1f .L80046878 +/* 047458 80046858 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 +/* 04745C 8004685C 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) +/* 047460 80046860 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 047464 80046864 316C8000 */ andi $t4, $t3, 0x8000 +/* 047468 80046868 11800003 */ beqz $t4, .L80046878 +/* 04746C 8004686C 00000000 */ nop +/* 047470 80046870 44810000 */ mtc1 $at, $f0 +/* 047474 80046874 00000000 */ nop +.L80046878: +/* 047478 80046878 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 04747C 8004687C 44812000 */ mtc1 $at, $f4 +/* 047480 80046880 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 047484 80046884 46040002 */ mul.s $f0, $f0, $f4 +/* 047488 80046888 44815000 */ mtc1 $at, $f10 +/* 04748C 8004688C 44802000 */ mtc1 $zero, $f4 +/* 047490 80046890 46000202 */ mul.s $f8, $f0, $f0 +/* 047494 80046894 00000000 */ nop +/* 047498 80046898 460A4303 */ div.s $f12, $f8, $f10 +/* 04749C 8004689C E7AC00F4 */ swc1 $f12, 0xf4($sp) +/* 0474A0 800468A0 8E0D0108 */ lw $t5, 0x108($s0) +/* 0474A4 800468A4 00000000 */ nop +/* 0474A8 800468A8 11A00004 */ beqz $t5, .L800468BC +/* 0474AC 800468AC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 0474B0 800468B0 44813000 */ mtc1 $at, $f6 +/* 0474B4 800468B4 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 0474B8 800468B8 E60600B4 */ swc1 $f6, 0xb4($s0) +.L800468BC: +/* 0474BC 800468BC 46007221 */ cvt.d.s $f8, $f14 +/* 0474C0 800468C0 4628203C */ c.lt.d $f4, $f8 +/* 0474C4 800468C4 8C84D528 */ lw $a0, %lo(gCurrentRacerInput)($a0) +/* 0474C8 800468C8 45000008 */ bc1f .L800468EC +/* 0474CC 800468CC 308E4000 */ andi $t6, $a0, 0x4000 +/* 0474D0 800468D0 3C01800E */ lui $at, %hi(D_800E63C0 + 4) # $at, 0x800e +/* 0474D4 800468D4 C42763C0 */ lwc1 $f7, %lo(D_800E63C0)($at) +/* 0474D8 800468D8 C42663C4 */ lwc1 $f6, %lo(D_800E63C0 + 4)($at) +/* 0474DC 800468DC 460062A1 */ cvt.d.s $f10, $f12 +/* 0474E0 800468E0 46265102 */ mul.d $f4, $f10, $f6 +/* 0474E4 800468E4 46202220 */ cvt.s.d $f8, $f4 +/* 0474E8 800468E8 E7A800F4 */ swc1 $f8, 0xf4($sp) +.L800468EC: +/* 0474EC 800468EC 11C0002F */ beqz $t6, .L800469AC +/* 0474F0 800468F0 3C0F8012 */ lui $t7, %hi(gCurrentStickY) # $t7, 0x8012 +/* 0474F4 800468F4 8DEFD538 */ lw $t7, %lo(gCurrentStickY)($t7) +/* 0474F8 800468F8 C7A70050 */ lwc1 $f7, 0x50($sp) +/* 0474FC 800468FC 29E1FFD8 */ slti $at, $t7, -0x28 +/* 047500 80046900 14200006 */ bnez $at, .L8004691C +/* 047504 80046904 00000000 */ nop +/* 047508 80046908 44805000 */ mtc1 $zero, $f10 +/* 04750C 8004690C 00000000 */ nop +/* 047510 80046910 460A703C */ c.lt.s $f14, $f10 +/* 047514 80046914 00000000 */ nop +/* 047518 80046918 45000024 */ bc1f .L800469AC +.L8004691C: +/* 04751C 8004691C 3C01800E */ lui $at, %hi(D_800E63C8 + 4) # $at, 0x800e +/* 047520 80046920 C42563C8 */ lwc1 $f5, %lo(D_800E63C8)($at) +/* 047524 80046924 C42463CC */ lwc1 $f4, %lo(D_800E63C8 + 4)($at) +/* 047528 80046928 C7A60054 */ lwc1 $f6, 0x54($sp) +/* 04752C 8004692C C60A00B8 */ lwc1 $f10, 0xb8($s0) +/* 047530 80046930 46243202 */ mul.d $f8, $f6, $f4 +/* 047534 80046934 460051A1 */ cvt.d.s $f6, $f10 +/* 047538 80046938 3C01800E */ lui $at, %hi(D_800E63D0) # $at, 0x800e +/* 04753C 8004693C 46283100 */ add.d $f4, $f6, $f8 +/* 047540 80046940 462022A0 */ cvt.s.d $f10, $f4 +/* 047544 80046944 E60A00B8 */ swc1 $f10, 0xb8($s0) +/* 047548 80046948 C60800B8 */ lwc1 $f8, 0xb8($s0) +/* 04754C 8004694C C42663D4 */ lwc1 $f6, %lo(D_800E63D0 + 4)($at) +/* 047550 80046950 C42763D0 */ lwc1 $f7, %lo(D_800E63D0)($at) +/* 047554 80046954 46004121 */ cvt.d.s $f4, $f8 +/* 047558 80046958 4624303C */ c.lt.d $f6, $f4 +/* 04755C 8004695C 44802000 */ mtc1 $zero, $f4 +/* 047560 80046960 45000004 */ bc1f .L80046974 +/* 047564 80046964 3C01800E */ lui $at, %hi(D_800E63D8) # $at, 0x800e +/* 047568 80046968 C42A63D8 */ lwc1 $f10, %lo(D_800E63D8)($at) +/* 04756C 8004696C 00000000 */ nop +/* 047570 80046970 E60A00B8 */ swc1 $f10, 0xb8($s0) +.L80046974: +/* 047574 80046974 C608002C */ lwc1 $f8, 0x2c($s0) +/* 047578 80046978 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 04757C 8004697C 44812800 */ mtc1 $at, $f5 +/* 047580 80046980 460041A1 */ cvt.d.s $f6, $f8 +/* 047584 80046984 4624303C */ c.lt.d $f6, $f4 +/* 047588 80046988 00000000 */ nop +/* 04758C 8004698C 45000004 */ bc1f .L800469A0 +/* 047590 80046990 00000000 */ nop +/* 047594 80046994 86040000 */ lh $a0, ($s0) +/* 047598 80046998 0C01C8D2 */ jal func_80072348 +/* 04759C 8004699C 24050005 */ li $a1, 5 +.L800469A0: +/* 0475A0 800469A0 C60200B8 */ lwc1 $f2, 0xb8($s0) +/* 0475A4 800469A4 10000019 */ b .L80046A0C +/* 0475A8 800469A8 3C014040 */ lui $at, 0x4040 +.L800469AC: +/* 0475AC 800469AC 3C01800E */ lui $at, %hi(D_800E63E0 + 4) # $at, 0x800e +/* 0475B0 800469B0 C42963E0 */ lwc1 $f9, %lo(D_800E63E0)($at) +/* 0475B4 800469B4 C42863E4 */ lwc1 $f8, %lo(D_800E63E0 + 4)($at) +/* 0475B8 800469B8 C7AB0050 */ lwc1 $f11, 0x50($sp) +/* 0475BC 800469BC C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 0475C0 800469C0 C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 0475C4 800469C4 46285182 */ mul.d $f6, $f10, $f8 +/* 0475C8 800469C8 460022A1 */ cvt.d.s $f10, $f4 +/* 0475CC 800469CC 46265201 */ sub.d $f8, $f10, $f6 +/* 0475D0 800469D0 44805000 */ mtc1 $zero, $f10 +/* 0475D4 800469D4 46204120 */ cvt.s.d $f4, $f8 +/* 0475D8 800469D8 E60400B8 */ swc1 $f4, 0xb8($s0) +/* 0475DC 800469DC C60200B8 */ lwc1 $f2, 0xb8($s0) +/* 0475E0 800469E0 00000000 */ nop +/* 0475E4 800469E4 460A103C */ c.lt.s $f2, $f10 +/* 0475E8 800469E8 00000000 */ nop +/* 0475EC 800469EC 45000007 */ bc1f .L80046A0C +/* 0475F0 800469F0 3C014040 */ lui $at, 0x4040 +/* 0475F4 800469F4 44803000 */ mtc1 $zero, $f6 +/* 0475F8 800469F8 00000000 */ nop +/* 0475FC 800469FC E60600B8 */ swc1 $f6, 0xb8($s0) +/* 047600 80046A00 C60200B8 */ lwc1 $f2, 0xb8($s0) +/* 047604 80046A04 00000000 */ nop +/* 047608 80046A08 3C014040 */ li $at, 0x40400000 # 3.000000 +.L80046A0C: +/* 04760C 80046A0C 44814000 */ mtc1 $at, $f8 +/* 047610 80046A10 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 047614 80046A14 46081002 */ mul.s $f0, $f2, $f8 +/* 047618 80046A18 44815000 */ mtc1 $at, $f10 +/* 04761C 80046A1C 44803800 */ mtc1 $zero, $f7 +/* 047620 80046A20 44803000 */ mtc1 $zero, $f6 +/* 047624 80046A24 46000102 */ mul.s $f4, $f0, $f0 +/* 047628 80046A28 00000000 */ nop +/* 04762C 80046A2C 460A2303 */ div.s $f12, $f4, $f10 +/* 047630 80046A30 E7AC00F0 */ swc1 $f12, 0xf0($sp) +/* 047634 80046A34 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 047638 80046A38 00000000 */ nop +/* 04763C 80046A3C 46007221 */ cvt.d.s $f8, $f14 +/* 047640 80046A40 4628303C */ c.lt.d $f6, $f8 +/* 047644 80046A44 00000000 */ nop +/* 047648 80046A48 45000007 */ bc1f .L80046A68 +/* 04764C 80046A4C 3C01800E */ lui $at, %hi(D_800E63E8 + 4) # $at, 0x800e +/* 047650 80046A50 C42B63E8 */ lwc1 $f11, %lo(D_800E63E8)($at) +/* 047654 80046A54 C42A63EC */ lwc1 $f10, %lo(D_800E63E8 + 4)($at) +/* 047658 80046A58 46006121 */ cvt.d.s $f4, $f12 +/* 04765C 80046A5C 462A2182 */ mul.d $f6, $f4, $f10 +/* 047660 80046A60 46203220 */ cvt.s.d $f8, $f6 +/* 047664 80046A64 E7A800F0 */ swc1 $f8, 0xf0($sp) +.L80046A68: +/* 047668 80046A68 921801F5 */ lbu $t8, 0x1f5($s0) +/* 04766C 80046A6C 00000000 */ nop +/* 047670 80046A70 13000059 */ beqz $t8, .L80046BD8 +/* 047674 80046A74 3C018012 */ lui $at, %hi(gCurrentStickX) # $at, 0x8012 +/* 047678 80046A78 AC20D534 */ sw $zero, %lo(gCurrentStickX)($at) +/* 04767C 80046A7C 8E19014C */ lw $t9, 0x14c($s0) +/* 047680 80046A80 860201A0 */ lh $v0, 0x1a0($s0) +/* 047684 80046A84 A2000175 */ sb $zero, 0x175($s0) +/* 047688 80046A88 A20001E1 */ sb $zero, 0x1e1($s0) +/* 04768C 80046A8C A20001DB */ sb $zero, 0x1db($s0) +/* 047690 80046A90 A20001E0 */ sb $zero, 0x1e0($s0) +/* 047694 80046A94 872A0000 */ lh $t2, ($t9) +/* 047698 80046A98 304BFFFF */ andi $t3, $v0, 0xffff +/* 04769C 80046A9C 34018001 */ li $at, 32769 +/* 0476A0 80046AA0 014B1823 */ subu $v1, $t2, $t3 +/* 0476A4 80046AA4 0061082A */ slt $at, $v1, $at +/* 0476A8 80046AA8 8FAC0128 */ lw $t4, 0x128($sp) +/* 0476AC 80046AAC 14200003 */ bnez $at, .L80046ABC +/* 0476B0 80046AB0 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 0476B4 80046AB4 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 0476B8 80046AB8 00611821 */ addu $v1, $v1, $at +.L80046ABC: +/* 0476BC 80046ABC 28618000 */ slti $at, $v1, -0x8000 +/* 0476C0 80046AC0 10200002 */ beqz $at, .L80046ACC +/* 0476C4 80046AC4 3401FFFF */ li $at, 65535 +/* 0476C8 80046AC8 00611821 */ addu $v1, $v1, $at +.L80046ACC: +/* 0476CC 80046ACC 006C0019 */ multu $v1, $t4 +/* 0476D0 80046AD0 28610400 */ slti $at, $v1, 0x400 +/* 0476D4 80046AD4 00006812 */ mflo $t5 +/* 0476D8 80046AD8 000D70C3 */ sra $t6, $t5, 3 +/* 0476DC 80046ADC 004E7821 */ addu $t7, $v0, $t6 +/* 0476E0 80046AE0 10200004 */ beqz $at, .L80046AF4 +/* 0476E4 80046AE4 A60F01A0 */ sh $t7, 0x1a0($s0) +/* 0476E8 80046AE8 2861FC01 */ slti $at, $v1, -0x3ff +/* 0476EC 80046AEC 10200005 */ beqz $at, .L80046B04 +/* 0476F0 80046AF0 00000000 */ nop +.L80046AF4: +/* 0476F4 80046AF4 86180000 */ lh $t8, ($s0) +/* 0476F8 80046AF8 2401FFFF */ li $at, -1 +/* 0476FC 80046AFC 17010021 */ bne $t8, $at, .L80046B84 +/* 047700 80046B00 00000000 */ nop +.L80046B04: +/* 047704 80046B04 86190000 */ lh $t9, ($s0) +/* 047708 80046B08 2401FFFF */ li $at, -1 +/* 04770C 80046B0C 1321000B */ beq $t9, $at, .L80046B3C +/* 047710 80046B10 24040107 */ li $a0, 263 +/* 047714 80046B14 8E25000C */ lw $a1, 0xc($s1) +/* 047718 80046B18 8E260010 */ lw $a2, 0x10($s1) +/* 04771C 80046B1C 8E270014 */ lw $a3, 0x14($s1) +/* 047720 80046B20 0C0007AA */ jal play_sound_spatial +/* 047724 80046B24 AFA00010 */ sw $zero, 0x10($sp) +/* 047728 80046B28 02202025 */ move $a0, $s1 +/* 04772C 80046B2C 24050162 */ li $a1, 354 +/* 047730 80046B30 24060008 */ li $a2, 8 +/* 047734 80046B34 0C015C2E */ jal play_random_character_voice +/* 047738 80046B38 24070082 */ li $a3, 130 +.L80046B3C: +/* 04773C 80046B3C 0C00322D */ jal normalise_time +/* 047740 80046B40 2404002D */ li $a0, 45 +/* 047744 80046B44 920B020C */ lbu $t3, 0x20c($s0) +/* 047748 80046B48 240A0002 */ li $t2, 2 +/* 04774C 80046B4C A20201D3 */ sb $v0, 0x1d3($s0) +/* 047750 80046B50 11600005 */ beqz $t3, .L80046B68 +/* 047754 80046B54 A20A0203 */ sb $t2, 0x203($s0) +/* 047758 80046B58 820C0203 */ lb $t4, 0x203($s0) +/* 04775C 80046B5C 00000000 */ nop +/* 047760 80046B60 358D0004 */ ori $t5, $t4, 4 +/* 047764 80046B64 A20D0203 */ sb $t5, 0x203($s0) +.L80046B68: +/* 047768 80046B68 86040000 */ lh $a0, ($s0) +/* 04776C 80046B6C A20001F5 */ sb $zero, 0x1f5($s0) +/* 047770 80046B70 0C01C8D2 */ jal func_80072348 +/* 047774 80046B74 24050008 */ li $a1, 8 +/* 047778 80046B78 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 04777C 80046B7C 10000017 */ b .L80046BDC +/* 047780 80046B80 44800000 */ mtc1 $zero, $f0 +.L80046B84: +/* 047784 80046B84 C624001C */ lwc1 $f4, 0x1c($s1) +/* 047788 80046B88 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 04778C 80046B8C 44810800 */ mtc1 $at, $f1 +/* 047790 80046B90 44800000 */ mtc1 $zero, $f0 +/* 047794 80046B94 460022A1 */ cvt.d.s $f10, $f4 +/* 047798 80046B98 46205182 */ mul.d $f6, $f10, $f0 +/* 04779C 80046B9C C6240020 */ lwc1 $f4, 0x20($s1) +/* 0477A0 80046BA0 00000000 */ nop +/* 0477A4 80046BA4 460022A1 */ cvt.d.s $f10, $f4 +/* 0477A8 80046BA8 C6240024 */ lwc1 $f4, 0x24($s1) +/* 0477AC 80046BAC 46203220 */ cvt.s.d $f8, $f6 +/* 0477B0 80046BB0 46205182 */ mul.d $f6, $f10, $f0 +/* 0477B4 80046BB4 E628001C */ swc1 $f8, 0x1c($s1) +/* 0477B8 80046BB8 460022A1 */ cvt.d.s $f10, $f4 +/* 0477BC 80046BBC 46203220 */ cvt.s.d $f8, $f6 +/* 0477C0 80046BC0 46205182 */ mul.d $f6, $f10, $f0 +/* 0477C4 80046BC4 E6280020 */ swc1 $f8, 0x20($s1) +/* 0477C8 80046BC8 46203220 */ cvt.s.d $f8, $f6 +/* 0477CC 80046BCC E6280024 */ swc1 $f8, 0x24($s1) +/* 0477D0 80046BD0 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 0477D4 80046BD4 00000000 */ nop +.L80046BD8: +/* 0477D8 80046BD8 44800000 */ mtc1 $zero, $f0 +.L80046BDC: +/* 0477DC 80046BDC 46007087 */ neg.s $f2, $f14 +/* 0477E0 80046BE0 4600103C */ c.lt.s $f2, $f0 +/* 0477E4 80046BE4 44802000 */ mtc1 $zero, $f4 +/* 0477E8 80046BE8 45000002 */ bc1f .L80046BF4 +/* 0477EC 80046BEC 3C01402C */ li $at, 0x402C0000 # 2.687500 +/* 0477F0 80046BF0 46000086 */ mov.s $f2, $f0 +.L80046BF4: +/* 0477F4 80046BF4 44812800 */ mtc1 $at, $f5 +/* 0477F8 80046BF8 460012A1 */ cvt.d.s $f10, $f2 +/* 0477FC 80046BFC 462A203C */ c.lt.d $f4, $f10 +/* 047800 80046C00 00000000 */ nop +/* 047804 80046C04 45000003 */ bc1f .L80046C14 +/* 047808 80046C08 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 04780C 80046C0C 44811000 */ mtc1 $at, $f2 +/* 047810 80046C10 00000000 */ nop +.L80046C14: +/* 047814 80046C14 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 047818 80046C18 44813000 */ mtc1 $at, $f6 +/* 04781C 80046C1C 820E01D4 */ lb $t6, 0x1d4($s0) +/* 047820 80046C20 46061083 */ div.s $f2, $f2, $f6 +/* 047824 80046C24 15C00006 */ bnez $t6, .L80046C40 +/* 047828 80046C28 8FA50128 */ lw $a1, 0x128($sp) +/* 04782C 80046C2C 820F01D5 */ lb $t7, 0x1d5($s0) +/* 047830 80046C30 C7A800F0 */ lwc1 $f8, 0xf0($sp) +/* 047834 80046C34 11E00009 */ beqz $t7, .L80046C5C +/* 047838 80046C38 3C014580 */ li $at, 0x45800000 # 4096.000000 +/* 04783C 80046C3C 8FA50128 */ lw $a1, 0x128($sp) +.L80046C40: +/* 047840 80046C40 86060160 */ lh $a2, 0x160($s0) +/* 047844 80046C44 AFA00010 */ sw $zero, 0x10($sp) +/* 047848 80046C48 02002025 */ move $a0, $s0 +/* 04784C 80046C4C 0C014214 */ jal apply_vehicle_rotation_offset +/* 047850 80046C50 00003825 */ move $a3, $zero +/* 047854 80046C54 10000015 */ b .L80046CAC +/* 047858 80046C58 820B01D5 */ lb $t3, 0x1d5($s0) +.L80046C5C: +/* 04785C 80046C5C 44812000 */ mtc1 $at, $f4 +/* 047860 80046C60 8FA50128 */ lw $a1, 0x128($sp) +/* 047864 80046C64 46044282 */ mul.s $f10, $f8, $f4 +/* 047868 80046C68 02002025 */ move $a0, $s0 +/* 04786C 80046C6C 00003025 */ move $a2, $zero +/* 047870 80046C70 AFA00010 */ sw $zero, 0x10($sp) +/* 047874 80046C74 46025182 */ mul.s $f6, $f10, $f2 +/* 047878 80046C78 4458F800 */ cfc1 $t8, $31 +/* 04787C 80046C7C 00000000 */ nop +/* 047880 80046C80 37010003 */ ori $at, $t8, 3 +/* 047884 80046C84 38210002 */ xori $at, $at, 2 +/* 047888 80046C88 44C1F800 */ ctc1 $at, $31 +/* 04788C 80046C8C 00000000 */ nop +/* 047890 80046C90 46003224 */ cvt.w.s $f8, $f6 +/* 047894 80046C94 44074000 */ mfc1 $a3, $f8 +/* 047898 80046C98 44D8F800 */ ctc1 $t8, $31 +/* 04789C 80046C9C 0007CC00 */ sll $t9, $a3, 0x10 +/* 0478A0 80046CA0 0C014214 */ jal apply_vehicle_rotation_offset +/* 0478A4 80046CA4 00193C03 */ sra $a3, $t9, 0x10 +/* 0478A8 80046CA8 820B01D5 */ lb $t3, 0x1d5($s0) +.L80046CAC: +/* 0478AC 80046CAC 44800000 */ mtc1 $zero, $f0 +/* 0478B0 80046CB0 11600010 */ beqz $t3, .L80046CF4 +/* 0478B4 80046CB4 00000000 */ nop +/* 0478B8 80046CB8 86020160 */ lh $v0, 0x160($s0) +/* 0478BC 80046CBC 00000000 */ nop +/* 0478C0 80046CC0 000260C3 */ sra $t4, $v0, 3 +/* 0478C4 80046CC4 004C6823 */ subu $t5, $v0, $t4 +/* 0478C8 80046CC8 A60D0160 */ sh $t5, 0x160($s0) +/* 0478CC 80046CCC 86020160 */ lh $v0, 0x160($s0) +/* 0478D0 80046CD0 00000000 */ nop +/* 0478D4 80046CD4 28410010 */ slti $at, $v0, 0x10 +/* 0478D8 80046CD8 10200004 */ beqz $at, .L80046CEC +/* 0478DC 80046CDC 2841FFF1 */ slti $at, $v0, -0xf +/* 0478E0 80046CE0 14200002 */ bnez $at, .L80046CEC +/* 0478E4 80046CE4 00000000 */ nop +/* 0478E8 80046CE8 A20001D5 */ sb $zero, 0x1d5($s0) +.L80046CEC: +/* 0478EC 80046CEC 3C018012 */ lui $at, %hi(gCurrentStickX) # $at, 0x8012 +/* 0478F0 80046CF0 AC20D534 */ sw $zero, %lo(gCurrentStickX)($at) +.L80046CF4: +/* 0478F4 80046CF4 820201DB */ lb $v0, 0x1db($s0) +/* 0478F8 80046CF8 00000000 */ nop +/* 0478FC 80046CFC 1840000D */ blez $v0, .L80046D34 +/* 047900 80046D00 00000000 */ nop +/* 047904 80046D04 8FA60128 */ lw $a2, 0x128($sp) +/* 047908 80046D08 820E01D4 */ lb $t6, 0x1d4($s0) +/* 04790C 80046D0C 2419000A */ li $t9, 10 +/* 047910 80046D10 01C67821 */ addu $t7, $t6, $a2 +/* 047914 80046D14 A20F01D4 */ sb $t7, 0x1d4($s0) +/* 047918 80046D18 821801D4 */ lb $t8, 0x1d4($s0) +/* 04791C 80046D1C 00000000 */ nop +/* 047920 80046D20 2B01000B */ slti $at, $t8, 0xb +/* 047924 80046D24 14200029 */ bnez $at, .L80046DCC +/* 047928 80046D28 00000000 */ nop +/* 04792C 80046D2C 10000027 */ b .L80046DCC +/* 047930 80046D30 A21901D4 */ sb $t9, 0x1d4($s0) +.L80046D34: +/* 047934 80046D34 0441000D */ bgez $v0, .L80046D6C +/* 047938 80046D38 00000000 */ nop +/* 04793C 80046D3C 820A01D4 */ lb $t2, 0x1d4($s0) +/* 047940 80046D40 8FAB0128 */ lw $t3, 0x128($sp) +/* 047944 80046D44 240EFFF6 */ li $t6, -10 +/* 047948 80046D48 014B6023 */ subu $t4, $t2, $t3 +/* 04794C 80046D4C A20C01D4 */ sb $t4, 0x1d4($s0) +/* 047950 80046D50 820D01D4 */ lb $t5, 0x1d4($s0) +/* 047954 80046D54 00000000 */ nop +/* 047958 80046D58 29A1FFF6 */ slti $at, $t5, -0xa +/* 04795C 80046D5C 1020001B */ beqz $at, .L80046DCC +/* 047960 80046D60 00000000 */ nop +/* 047964 80046D64 10000019 */ b .L80046DCC +/* 047968 80046D68 A20E01D4 */ sb $t6, 0x1d4($s0) +.L80046D6C: +/* 04796C 80046D6C 820301D4 */ lb $v1, 0x1d4($s0) +/* 047970 80046D70 8FAF0128 */ lw $t7, 0x128($sp) +/* 047974 80046D74 04610009 */ bgez $v1, .L80046D9C +/* 047978 80046D78 006FC021 */ addu $t8, $v1, $t7 +/* 04797C 80046D7C A21801D4 */ sb $t8, 0x1d4($s0) +/* 047980 80046D80 821901D4 */ lb $t9, 0x1d4($s0) +/* 047984 80046D84 240A0001 */ li $t2, 1 +/* 047988 80046D88 1B200010 */ blez $t9, .L80046DCC +/* 04798C 80046D8C 00000000 */ nop +/* 047990 80046D90 A20001D4 */ sb $zero, 0x1d4($s0) +/* 047994 80046D94 1000000D */ b .L80046DCC +/* 047998 80046D98 A20A01D5 */ sb $t2, 0x1d5($s0) +.L80046D9C: +/* 04799C 80046D9C 1860000B */ blez $v1, .L80046DCC +/* 0479A0 80046DA0 00000000 */ nop +/* 0479A4 80046DA4 8FAB0128 */ lw $t3, 0x128($sp) +/* 0479A8 80046DA8 240E0001 */ li $t6, 1 +/* 0479AC 80046DAC 006B6023 */ subu $t4, $v1, $t3 +/* 0479B0 80046DB0 A20C01D4 */ sb $t4, 0x1d4($s0) +/* 0479B4 80046DB4 820D01D4 */ lb $t5, 0x1d4($s0) +/* 0479B8 80046DB8 00000000 */ nop +/* 0479BC 80046DBC 05A10003 */ bgez $t5, .L80046DCC +/* 0479C0 80046DC0 00000000 */ nop +/* 0479C4 80046DC4 A20001D4 */ sb $zero, 0x1d4($s0) +/* 0479C8 80046DC8 A20E01D5 */ sb $t6, 0x1d5($s0) +.L80046DCC: +/* 0479CC 80046DCC 820501E2 */ lb $a1, 0x1e2($s0) +/* 0479D0 80046DD0 8FA60128 */ lw $a2, 0x128($sp) +/* 0479D4 80046DD4 10A00011 */ beqz $a1, .L80046E1C +/* 0479D8 80046DD8 28A10003 */ slti $at, $a1, 3 +/* 0479DC 80046DDC 1020000F */ beqz $at, .L80046E1C +/* 0479E0 80046DE0 00000000 */ nop +/* 0479E4 80046DE4 86240002 */ lh $a0, 2($s1) +/* 0479E8 80046DE8 00000000 */ nop +/* 0479EC 80046DEC 00860019 */ multu $a0, $a2 +/* 0479F0 80046DF0 00007812 */ mflo $t7 +/* 0479F4 80046DF4 000FC183 */ sra $t8, $t7, 6 +/* 0479F8 80046DF8 0098C823 */ subu $t9, $a0, $t8 +/* 0479FC 80046DFC A6390002 */ sh $t9, 2($s1) +/* 047A00 80046E00 860501A4 */ lh $a1, 0x1a4($s0) +/* 047A04 80046E04 00000000 */ nop +/* 047A08 80046E08 00A60019 */ multu $a1, $a2 +/* 047A0C 80046E0C 00005012 */ mflo $t2 +/* 047A10 80046E10 000A5983 */ sra $t3, $t2, 6 +/* 047A14 80046E14 00AB6023 */ subu $t4, $a1, $t3 +/* 047A18 80046E18 A60C01A4 */ sh $t4, 0x1a4($s0) +.L80046E1C: +/* 047A1C 80046E1C 820301D4 */ lb $v1, 0x1d4($s0) +/* 047A20 80046E20 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 +/* 047A24 80046E24 10600041 */ beqz $v1, .L80046F2C +/* 047A28 80046E28 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 +/* 047A2C 80046E2C 86020160 */ lh $v0, 0x160($s0) +/* 047A30 80046E30 A20001D5 */ sb $zero, 0x1d5($s0) +/* 047A34 80046E34 18600018 */ blez $v1, .L80046E98 +/* 047A38 80046E38 00404025 */ move $t0, $v0 +/* 047A3C 80046E3C 00036880 */ sll $t5, $v1, 2 +/* 047A40 80046E40 01A36823 */ subu $t5, $t5, $v1 +/* 047A44 80046E44 000D6880 */ sll $t5, $t5, 2 +/* 047A48 80046E48 01A36823 */ subu $t5, $t5, $v1 +/* 047A4C 80046E4C 000D6880 */ sll $t5, $t5, 2 +/* 047A50 80046E50 01A36821 */ addu $t5, $t5, $v1 +/* 047A54 80046E54 000D6880 */ sll $t5, $t5, 2 +/* 047A58 80046E58 01A36823 */ subu $t5, $t5, $v1 +/* 047A5C 80046E5C 01A60019 */ multu $t5, $a2 +/* 047A60 80046E60 2841F000 */ slti $at, $v0, -0x1000 +/* 047A64 80046E64 00007012 */ mflo $t6 +/* 047A68 80046E68 004E7821 */ addu $t7, $v0, $t6 +/* 047A6C 80046E6C 1020000A */ beqz $at, .L80046E98 +/* 047A70 80046E70 A60F0160 */ sh $t7, 0x160($s0) +/* 047A74 80046E74 86180160 */ lh $t8, 0x160($s0) +/* 047A78 80046E78 00000000 */ nop +/* 047A7C 80046E7C 2B01F000 */ slti $at, $t8, -0x1000 +/* 047A80 80046E80 14200005 */ bnez $at, .L80046E98 +/* 047A84 80046E84 00000000 */ nop +/* 047A88 80046E88 821901DB */ lb $t9, 0x1db($s0) +/* 047A8C 80046E8C 820301D4 */ lb $v1, 0x1d4($s0) +/* 047A90 80046E90 272AFFFF */ addiu $t2, $t9, -1 +/* 047A94 80046E94 A20A01DB */ sb $t2, 0x1db($s0) +.L80046E98: +/* 047A98 80046E98 04610019 */ bgez $v1, .L80046F00 +/* 047A9C 80046E9C 3C0A8012 */ lui $t2, %hi(gCurrentRacerInput) # $t2, 0x8012 +/* 047AA0 80046EA0 00036080 */ sll $t4, $v1, 2 +/* 047AA4 80046EA4 01836023 */ subu $t4, $t4, $v1 +/* 047AA8 80046EA8 000C6080 */ sll $t4, $t4, 2 +/* 047AAC 80046EAC 01836023 */ subu $t4, $t4, $v1 +/* 047AB0 80046EB0 000C6080 */ sll $t4, $t4, 2 +/* 047AB4 80046EB4 01836021 */ addu $t4, $t4, $v1 +/* 047AB8 80046EB8 000C6080 */ sll $t4, $t4, 2 +/* 047ABC 80046EBC 01836023 */ subu $t4, $t4, $v1 +/* 047AC0 80046EC0 01860019 */ multu $t4, $a2 +/* 047AC4 80046EC4 860B0160 */ lh $t3, 0x160($s0) +/* 047AC8 80046EC8 29011001 */ slti $at, $t0, 0x1001 +/* 047ACC 80046ECC 00006812 */ mflo $t5 +/* 047AD0 80046ED0 016D7023 */ subu $t6, $t3, $t5 +/* 047AD4 80046ED4 1420000A */ bnez $at, .L80046F00 +/* 047AD8 80046ED8 A60E0160 */ sh $t6, 0x160($s0) +/* 047ADC 80046EDC 860F0160 */ lh $t7, 0x160($s0) +/* 047AE0 80046EE0 00000000 */ nop +/* 047AE4 80046EE4 29E11001 */ slti $at, $t7, 0x1001 +/* 047AE8 80046EE8 10200005 */ beqz $at, .L80046F00 +/* 047AEC 80046EEC 00000000 */ nop +/* 047AF0 80046EF0 821801DB */ lb $t8, 0x1db($s0) +/* 047AF4 80046EF4 00000000 */ nop +/* 047AF8 80046EF8 27190001 */ addiu $t9, $t8, 1 +/* 047AFC 80046EFC A21901DB */ sb $t9, 0x1db($s0) +.L80046F00: +/* 047B00 80046F00 8D4AD528 */ lw $t2, %lo(gCurrentRacerInput)($t2) +/* 047B04 80046F04 3C01FFFF */ lui $at, (0xFFFF3FFF >> 16) # lui $at, 0xffff +/* 047B08 80046F08 34213FFF */ ori $at, (0xFFFF3FFF & 0xFFFF) # ori $at, $at, 0x3fff +/* 047B0C 80046F0C 01416024 */ and $t4, $t2, $at +/* 047B10 80046F10 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 +/* 047B14 80046F14 AC2CD528 */ sw $t4, %lo(gCurrentRacerInput)($at) +/* 047B18 80046F18 3C018012 */ lui $at, %hi(gCurrentStickX) # $at, 0x8012 +/* 047B1C 80046F1C AC20D534 */ sw $zero, %lo(gCurrentStickX)($at) +/* 047B20 80046F20 A20001E1 */ sb $zero, 0x1e1($s0) +/* 047B24 80046F24 3C018012 */ lui $at, %hi(gCurrentStickY) # $at, 0x8012 +/* 047B28 80046F28 AC20D538 */ sw $zero, %lo(gCurrentStickY)($at) +.L80046F2C: +/* 047B2C 80046F2C 920B01F1 */ lbu $t3, 0x1f1($s0) +/* 047B30 80046F30 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 047B34 80046F34 1160000D */ beqz $t3, .L80046F6C +/* 047B38 80046F38 27A40068 */ addiu $a0, $sp, 0x68 +/* 047B3C 80046F3C 00067080 */ sll $t6, $a2, 2 +/* 047B40 80046F40 0006C880 */ sll $t9, $a2, 2 +/* 047B44 80046F44 860D0160 */ lh $t5, 0x160($s0) +/* 047B48 80046F48 86180162 */ lh $t8, 0x162($s0) +/* 047B4C 80046F4C 01C67021 */ addu $t6, $t6, $a2 +/* 047B50 80046F50 0326C823 */ subu $t9, $t9, $a2 +/* 047B54 80046F54 000E7200 */ sll $t6, $t6, 8 +/* 047B58 80046F58 0019CA40 */ sll $t9, $t9, 9 +/* 047B5C 80046F5C 01AE7821 */ addu $t7, $t5, $t6 +/* 047B60 80046F60 03195021 */ addu $t2, $t8, $t9 +/* 047B64 80046F64 A60F0160 */ sh $t7, 0x160($s0) +/* 047B68 80046F68 A60A0162 */ sh $t2, 0x162($s0) +.L80046F6C: +/* 047B6C 80046F6C 862C0000 */ lh $t4, ($s1) +/* 047B70 80046F70 44812000 */ mtc1 $at, $f4 +/* 047B74 80046F74 A4AC0000 */ sh $t4, ($a1) +/* 047B78 80046F78 862B0002 */ lh $t3, 2($s1) +/* 047B7C 80046F7C A4A00004 */ sh $zero, 4($a1) +/* 047B80 80046F80 E4A0000C */ swc1 $f0, 0xc($a1) +/* 047B84 80046F84 E4A00010 */ swc1 $f0, 0x10($a1) +/* 047B88 80046F88 E4A00014 */ swc1 $f0, 0x14($a1) +/* 047B8C 80046F8C E4A40008 */ swc1 $f4, 8($a1) +/* 047B90 80046F90 0C01BF0C */ jal object_transform_to_matrix +/* 047B94 80046F94 A4AB0002 */ sh $t3, 2($a1) +/* 047B98 80046F98 44800000 */ mtc1 $zero, $f0 +/* 047B9C 80046F9C 260D0038 */ addiu $t5, $s0, 0x38 +/* 047BA0 80046FA0 260E003C */ addiu $t6, $s0, 0x3c +/* 047BA4 80046FA4 260F0040 */ addiu $t7, $s0, 0x40 +/* 047BA8 80046FA8 44050000 */ mfc1 $a1, $f0 +/* 047BAC 80046FAC 44060000 */ mfc1 $a2, $f0 +/* 047BB0 80046FB0 AFAF0018 */ sw $t7, 0x18($sp) +/* 047BB4 80046FB4 AFAE0014 */ sw $t6, 0x14($sp) +/* 047BB8 80046FB8 AFAD0010 */ sw $t5, 0x10($sp) +/* 047BBC 80046FBC 27A40068 */ addiu $a0, $sp, 0x68 +/* 047BC0 80046FC0 0C01BD93 */ jal guMtxXFMF +/* 047BC4 80046FC4 3C073F80 */ lui $a3, 0x3f80 +/* 047BC8 80046FC8 44800000 */ mtc1 $zero, $f0 +/* 047BCC 80046FCC 26180044 */ addiu $t8, $s0, 0x44 +/* 047BD0 80046FD0 26190048 */ addiu $t9, $s0, 0x48 +/* 047BD4 80046FD4 260A004C */ addiu $t2, $s0, 0x4c +/* 047BD8 80046FD8 44050000 */ mfc1 $a1, $f0 +/* 047BDC 80046FDC 44070000 */ mfc1 $a3, $f0 +/* 047BE0 80046FE0 AFAA0018 */ sw $t2, 0x18($sp) +/* 047BE4 80046FE4 AFB90014 */ sw $t9, 0x14($sp) +/* 047BE8 80046FE8 AFB80010 */ sw $t8, 0x10($sp) +/* 047BEC 80046FEC 27A40068 */ addiu $a0, $sp, 0x68 +/* 047BF0 80046FF0 0C01BD93 */ jal guMtxXFMF +/* 047BF4 80046FF4 3C063F80 */ lui $a2, 0x3f80 +/* 047BF8 80046FF8 44800000 */ mtc1 $zero, $f0 +/* 047BFC 80046FFC 260C0050 */ addiu $t4, $s0, 0x50 +/* 047C00 80047000 260B0054 */ addiu $t3, $s0, 0x54 +/* 047C04 80047004 260D0058 */ addiu $t5, $s0, 0x58 +/* 047C08 80047008 44060000 */ mfc1 $a2, $f0 +/* 047C0C 8004700C 44070000 */ mfc1 $a3, $f0 +/* 047C10 80047010 AFAD0018 */ sw $t5, 0x18($sp) +/* 047C14 80047014 AFAB0014 */ sw $t3, 0x14($sp) +/* 047C18 80047018 AFAC0010 */ sw $t4, 0x10($sp) +/* 047C1C 8004701C 27A40068 */ addiu $a0, $sp, 0x68 +/* 047C20 80047020 0C01BD93 */ jal guMtxXFMF +/* 047C24 80047024 3C053F80 */ lui $a1, 0x3f80 +/* 047C28 80047028 8E0E0148 */ lw $t6, 0x148($s0) +/* 047C2C 8004702C 44805000 */ mtc1 $zero, $f10 +/* 047C30 80047030 15C0000E */ bnez $t6, .L8004706C +/* 047C34 80047034 3C0A8012 */ lui $t2, %hi(gCurrentRacerMiscAssetPtr) # $t2, 0x8012 +/* 047C38 80047038 A220003B */ sb $zero, 0x3b($s1) +/* 047C3C 8004703C 820201E1 */ lb $v0, 0x1e1($s0) +/* 047C40 80047040 24180028 */ li $t8, 40 +/* 047C44 80047044 00027843 */ sra $t7, $v0, 1 +/* 047C48 80047048 030F1023 */ subu $v0, $t8, $t7 +/* 047C4C 8004704C 04410003 */ bgez $v0, .L8004705C +/* 047C50 80047050 2841004A */ slti $at, $v0, 0x4a +/* 047C54 80047054 00001025 */ move $v0, $zero +/* 047C58 80047058 2841004A */ slti $at, $v0, 0x4a +.L8004705C: +/* 047C5C 8004705C 14200002 */ bnez $at, .L80047068 +/* 047C60 80047060 00000000 */ nop +/* 047C64 80047064 24020049 */ li $v0, 73 +.L80047068: +/* 047C68 80047068 A6220018 */ sh $v0, 0x18($s1) +.L8004706C: +/* 047C6C 8004706C C612002C */ lwc1 $f18, 0x2c($s0) +/* 047C70 80047070 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 047C74 80047074 460A903C */ c.lt.s $f18, $f10 +/* 047C78 80047078 44810000 */ mtc1 $at, $f0 +/* 047C7C 8004707C 45000002 */ bc1f .L80047088 +/* 047C80 80047080 3C0D8012 */ lui $t5, %hi(gCurrentPlayerIndex) # $t5, 0x8012 +/* 047C84 80047084 46009487 */ neg.s $f18, $f18 +.L80047088: +/* 047C88 80047088 4612003C */ c.lt.s $f0, $f18 +/* 047C8C 8004708C 00004825 */ move $t1, $zero +/* 047C90 80047090 45000002 */ bc1f .L8004709C +/* 047C94 80047094 00003825 */ move $a3, $zero +/* 047C98 80047098 46000486 */ mov.s $f18, $f0 +.L8004709C: +/* 047C9C 8004709C 4459F800 */ cfc1 $t9, $31 +/* 047CA0 800470A0 8D4AD564 */ lw $t2, %lo(gCurrentRacerMiscAssetPtr)($t2) +/* 047CA4 800470A4 37210003 */ ori $at, $t9, 3 +/* 047CA8 800470A8 38210002 */ xori $at, $at, 2 +/* 047CAC 800470AC 44C1F800 */ ctc1 $at, $31 +/* 047CB0 800470B0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 047CB4 800470B4 460091A4 */ cvt.w.s $f6, $f18 +/* 047CB8 800470B8 44815800 */ mtc1 $at, $f11 +/* 047CBC 800470BC 44023000 */ mfc1 $v0, $f6 +/* 047CC0 800470C0 44D9F800 */ ctc1 $t9, $31 +/* 047CC4 800470C4 44824000 */ mtc1 $v0, $f8 +/* 047CC8 800470C8 44805000 */ mtc1 $zero, $f10 +/* 047CCC 800470CC 46804120 */ cvt.s.w $f4, $f8 +/* 047CD0 800470D0 00026080 */ sll $t4, $v0, 2 +/* 047CD4 800470D4 014C1821 */ addu $v1, $t2, $t4 +/* 047CD8 800470D8 46049001 */ sub.s $f0, $f18, $f4 +/* 047CDC 800470DC C4640000 */ lwc1 $f4, ($v1) +/* 047CE0 800470E0 460001A1 */ cvt.d.s $f6, $f0 +/* 047CE4 800470E4 46265201 */ sub.d $f8, $f10, $f6 +/* 047CE8 800470E8 3C068012 */ lui $a2, %hi(gCurrentRacerWeightStat) # $a2, 0x8012 +/* 047CEC 800470EC 460022A1 */ cvt.d.s $f10, $f4 +/* 047CF0 800470F0 46285182 */ mul.d $f6, $f10, $f8 +/* 047CF4 800470F4 C4640004 */ lwc1 $f4, 4($v1) +/* 047CF8 800470F8 24C6D56C */ addiu $a2, %lo(gCurrentRacerWeightStat) # addiu $a2, $a2, -0x2a94 +/* 047CFC 800470FC 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 047D00 80047100 02001825 */ move $v1, $s0 +/* 047D04 80047104 46002282 */ mul.s $f10, $f4, $f0 +/* 047D08 80047108 46005221 */ cvt.d.s $f8, $f10 +/* 047D0C 8004710C 46283100 */ add.d $f4, $f6, $f8 +/* 047D10 80047110 C4CA0000 */ lwc1 $f10, ($a2) +/* 047D14 80047114 44804000 */ mtc1 $zero, $f8 +/* 047D18 80047118 44814800 */ mtc1 $at, $f9 +/* 047D1C 8004711C 462024A0 */ cvt.s.d $f18, $f4 +/* 047D20 80047120 460051A1 */ cvt.d.s $f6, $f10 +/* 047D24 80047124 46283102 */ mul.d $f4, $f6, $f8 +/* 047D28 80047128 462022A0 */ cvt.s.d $f10, $f4 +/* 047D2C 8004712C E4CA0000 */ swc1 $f10, ($a2) +/* 047D30 80047130 820B01E2 */ lb $t3, 0x1e2($s0) +/* 047D34 80047134 00000000 */ nop +/* 047D38 80047138 29610003 */ slti $at, $t3, 3 +/* 047D3C 8004713C 14200010 */ bnez $at, .L80047180 +/* 047D40 80047140 00000000 */ nop +/* 047D44 80047144 C4C60000 */ lwc1 $f6, ($a2) +/* 047D48 80047148 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 047D4C 8004714C 44812800 */ mtc1 $at, $f5 +/* 047D50 80047150 44802000 */ mtc1 $zero, $f4 +/* 047D54 80047154 46003221 */ cvt.d.s $f8, $f6 +/* 047D58 80047158 46244282 */ mul.d $f10, $f8, $f4 +/* 047D5C 8004715C C7A60054 */ lwc1 $f6, 0x54($sp) +/* 047D60 80047160 C7A70050 */ lwc1 $f7, 0x50($sp) +/* 047D64 80047164 C6240020 */ lwc1 $f4, 0x20($s1) +/* 047D68 80047168 46265202 */ mul.d $f8, $f10, $f6 +/* 047D6C 8004716C 460022A1 */ cvt.d.s $f10, $f4 +/* 047D70 80047170 46285181 */ sub.d $f6, $f10, $f8 +/* 047D74 80047174 46203120 */ cvt.s.d $f4, $f6 +/* 047D78 80047178 10000007 */ b .L80047198 +/* 047D7C 8004717C E6240020 */ swc1 $f4, 0x20($s1) +.L80047180: +/* 047D80 80047180 C4CA0000 */ lwc1 $f10, ($a2) +/* 047D84 80047184 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 047D88 80047188 C6240020 */ lwc1 $f4, 0x20($s1) +/* 047D8C 8004718C 46085182 */ mul.s $f6, $f10, $f8 +/* 047D90 80047190 46062281 */ sub.s $f10, $f4, $f6 +/* 047D94 80047194 E62A0020 */ swc1 $f10, 0x20($s1) +.L80047198: +/* 047D98 80047198 8DADD55C */ lw $t5, %lo(gCurrentPlayerIndex)($t5) +/* 047D9C 8004719C 2401FFFF */ li $at, -1 +/* 047DA0 800471A0 11A10008 */ beq $t5, $at, .L800471C4 +/* 047DA4 800471A4 24060004 */ li $a2, 4 +/* 047DA8 800471A8 820E01D8 */ lb $t6, 0x1d8($s0) +/* 047DAC 800471AC 00000000 */ nop +/* 047DB0 800471B0 15C00004 */ bnez $t6, .L800471C4 +/* 047DB4 800471B4 00000000 */ nop +/* 047DB8 800471B8 820801E1 */ lb $t0, 0x1e1($s0) +/* 047DBC 800471BC 10000004 */ b .L800471D0 +/* 047DC0 800471C0 00000000 */ nop +.L800471C4: +/* 047DC4 800471C4 3C088012 */ lui $t0, %hi(gCurrentStickX) # $t0, 0x8012 +/* 047DC8 800471C8 8D08D534 */ lw $t0, %lo(gCurrentStickX)($t0) +/* 047DCC 800471CC 00000000 */ nop +.L800471D0: +/* 047DD0 800471D0 3C01800E */ lui $at, %hi(D_800E63F0) # $at, 0x800e +/* 047DD4 800471D4 C42263F0 */ lwc1 $f2, %lo(D_800E63F0)($at) +/* 047DD8 800471D8 3C01800E */ lui $at, %hi(D_800E63F8 + 4) # $at, 0x800e +/* 047DDC 800471DC E7A200FC */ swc1 $f2, 0xfc($sp) +/* 047DE0 800471E0 C6280020 */ lwc1 $f8, 0x20($s1) +/* 047DE4 800471E4 C42563F8 */ lwc1 $f5, %lo(D_800E63F8)($at) +/* 047DE8 800471E8 C42463FC */ lwc1 $f4, %lo(D_800E63F8 + 4)($at) +/* 047DEC 800471EC 46004021 */ cvt.d.s $f0, $f8 +/* 047DF0 800471F0 46240182 */ mul.d $f6, $f0, $f4 +/* 047DF4 800471F4 C7AB0050 */ lwc1 $f11, 0x50($sp) +/* 047DF8 800471F8 C7AA0054 */ lwc1 $f10, 0x54($sp) +/* 047DFC 800471FC 3C0F8012 */ lui $t7, %hi(gCurrentRacerInput) # $t7, 0x8012 +/* 047E00 80047200 462A3202 */ mul.d $f8, $f6, $f10 +/* 047E04 80047204 46280101 */ sub.d $f4, $f0, $f8 +/* 047E08 80047208 462021A0 */ cvt.s.d $f6, $f4 +/* 047E0C 8004720C E6260020 */ swc1 $f6, 0x20($s1) +/* 047E10 80047210 8DEFD528 */ lw $t7, %lo(gCurrentRacerInput)($t7) +/* 047E14 80047214 00000000 */ nop +/* 047E18 80047218 31F84000 */ andi $t8, $t7, 0x4000 +/* 047E1C 8004721C 13000013 */ beqz $t8, .L8004726C +/* 047E20 80047220 3C198012 */ lui $t9, %hi(gCurrentStickY) # $t9, 0x8012 +/* 047E24 80047224 8F39D538 */ lw $t9, %lo(gCurrentStickY)($t9) +/* 047E28 80047228 00000000 */ nop +/* 047E2C 8004722C 2B21FFD8 */ slti $at, $t9, -0x28 +/* 047E30 80047230 1420000F */ bnez $at, .L80047270 +/* 047E34 80047234 8FA40128 */ lw $a0, 0x128($sp) +/* 047E38 80047238 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 047E3C 8004723C 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 047E40 80047240 44812800 */ mtc1 $at, $f5 +/* 047E44 80047244 44802000 */ mtc1 $zero, $f4 +/* 047E48 80047248 46005221 */ cvt.d.s $f8, $f10 +/* 047E4C 8004724C 4628203E */ c.le.d $f4, $f8 +/* 047E50 80047250 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 047E54 80047254 45000006 */ bc1f .L80047270 +/* 047E58 80047258 8FA40128 */ lw $a0, 0x128($sp) +/* 047E5C 8004725C 44813000 */ mtc1 $at, $f6 +/* 047E60 80047260 00000000 */ nop +/* 047E64 80047264 46061282 */ mul.s $f10, $f2, $f6 +/* 047E68 80047268 E7AA00FC */ swc1 $f10, 0xfc($sp) +.L8004726C: +/* 047E6C 8004726C 8FA40128 */ lw $a0, 0x128($sp) +.L80047270: +/* 047E70 80047270 000850C0 */ sll $t2, $t0, 3 +/* 047E74 80047274 01440019 */ multu $t2, $a0 +/* 047E78 80047278 3C028012 */ lui $v0, %hi(gCurrentStickY) # $v0, 0x8012 +/* 047E7C 8004727C 8C42D538 */ lw $v0, %lo(gCurrentStickY)($v0) +/* 047E80 80047280 00004025 */ move $t0, $zero +/* 047E84 80047284 00006012 */ mflo $t4 +/* 047E88 80047288 448C4000 */ mtc1 $t4, $f8 +/* 047E8C 8004728C 00000000 */ nop +/* 047E90 80047290 468040A0 */ cvt.s.w $f2, $f8 +/* 047E94 80047294 0441001C */ bgez $v0, .L80047308 +/* 047E98 80047298 46001386 */ mov.s $f14, $f2 +/* 047E9C 8004729C 00025823 */ negu $t3, $v0 +/* 047EA0 800472A0 448B2000 */ mtc1 $t3, $f4 +/* 047EA4 800472A4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 047EA8 800472A8 46802420 */ cvt.s.w $f16, $f4 +/* 047EAC 800472AC 44813800 */ mtc1 $at, $f7 +/* 047EB0 800472B0 3C01405C */ li $at, 0x405C0000 # 3.437500 +/* 047EB4 800472B4 44815800 */ mtc1 $at, $f11 +/* 047EB8 800472B8 44805000 */ mtc1 $zero, $f10 +/* 047EBC 800472BC 46008021 */ cvt.d.s $f0, $f16 +/* 047EC0 800472C0 00000000 */ nop +/* 047EC4 800472C4 462A0203 */ div.d $f8, $f0, $f10 +/* 047EC8 800472C8 44803000 */ mtc1 $zero, $f6 +/* 047ECC 800472CC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 047ED0 800472D0 460012A1 */ cvt.d.s $f10, $f2 +/* 047ED4 800472D4 46283100 */ add.d $f4, $f6, $f8 +/* 047ED8 800472D8 44814800 */ mtc1 $at, $f9 +/* 047EDC 800472DC 46245182 */ mul.d $f6, $f10, $f4 +/* 047EE0 800472E0 3C01800E */ lui $at, %hi(D_800E6400 + 4) # $at, 0x800e +/* 047EE4 800472E4 C42B6400 */ lwc1 $f11, %lo(D_800E6400)($at) +/* 047EE8 800472E8 C42A6404 */ lwc1 $f10, %lo(D_800E6400 + 4)($at) +/* 047EEC 800472EC 44804000 */ mtc1 $zero, $f8 +/* 047EF0 800472F0 462A0103 */ div.d $f4, $f0, $f10 +/* 047EF4 800472F4 462033A0 */ cvt.s.d $f14, $f6 +/* 047EF8 800472F8 460092A1 */ cvt.d.s $f10, $f18 +/* 047EFC 800472FC 46244181 */ sub.d $f6, $f8, $f4 +/* 047F00 80047300 46265202 */ mul.d $f8, $f10, $f6 +/* 047F04 80047304 462044A0 */ cvt.s.d $f18, $f8 +.L80047308: +/* 047F08 80047308 3C018012 */ lui $at, %hi(gCurrentRacerHandlingStat) # $at, 0x8012 +/* 047F0C 8004730C C424D570 */ lwc1 $f4, %lo(gCurrentRacerHandlingStat)($at) +/* 047F10 80047310 860D01A0 */ lh $t5, 0x1a0($s0) +/* 047F14 80047314 46047382 */ mul.s $f14, $f14, $f4 +/* 047F18 80047318 820C01E2 */ lb $t4, 0x1e2($s0) +/* 047F1C 8004731C 444EF800 */ cfc1 $t6, $31 +/* 047F20 80047320 00000000 */ nop +/* 047F24 80047324 35C10003 */ ori $at, $t6, 3 +/* 047F28 80047328 38210002 */ xori $at, $at, 2 +/* 047F2C 8004732C 44C1F800 */ ctc1 $at, $31 +/* 047F30 80047330 00000000 */ nop +/* 047F34 80047334 460072A4 */ cvt.w.s $f10, $f14 +/* 047F38 80047338 44195000 */ mfc1 $t9, $f10 +/* 047F3C 8004733C 44CEF800 */ ctc1 $t6, $31 +/* 047F40 80047340 01B95023 */ subu $t2, $t5, $t9 +/* 047F44 80047344 1580001A */ bnez $t4, .L800473B0 +/* 047F48 80047348 A60A01A0 */ sh $t2, 0x1a0($s0) +/* 047F4C 8004734C C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 047F50 80047350 44803800 */ mtc1 $zero, $f7 +/* 047F54 80047354 44803000 */ mtc1 $zero, $f6 +/* 047F58 80047358 46004121 */ cvt.d.s $f4, $f8 +/* 047F5C 8004735C 46243032 */ c.eq.d $f6, $f4 +/* 047F60 80047360 00000000 */ nop +/* 047F64 80047364 45000012 */ bc1f .L800473B0 +/* 047F68 80047368 00000000 */ nop +/* 047F6C 8004736C C62A0020 */ lwc1 $f10, 0x20($s1) +/* 047F70 80047370 44804000 */ mtc1 $zero, $f8 +/* 047F74 80047374 24180019 */ li $t8, 25 +/* 047F78 80047378 4608503C */ c.lt.s $f10, $f8 +/* 047F7C 8004737C 00000000 */ nop +/* 047F80 80047380 45000005 */ bc1f .L80047398 +/* 047F84 80047384 00000000 */ nop +/* 047F88 80047388 820B01E0 */ lb $t3, 0x1e0($s0) +/* 047F8C 8004738C 00000000 */ nop +/* 047F90 80047390 01647021 */ addu $t6, $t3, $a0 +/* 047F94 80047394 A20E01E0 */ sb $t6, 0x1e0($s0) +.L80047398: +/* 047F98 80047398 820F01E0 */ lb $t7, 0x1e0($s0) +/* 047F9C 8004739C 00000000 */ nop +/* 047FA0 800473A0 29E1001A */ slti $at, $t7, 0x1a +/* 047FA4 800473A4 14200002 */ bnez $at, .L800473B0 +/* 047FA8 800473A8 00000000 */ nop +/* 047FAC 800473AC A21801E0 */ sb $t8, 0x1e0($s0) +.L800473B0: +/* 047FB0 800473B0 820501E2 */ lb $a1, 0x1e2($s0) +/* 047FB4 800473B4 240400FF */ li $a0, 255 +.L800473B8: +/* 047FB8 800473B8 906201DC */ lbu $v0, 0x1dc($v1) +/* 047FBC 800473BC 25080001 */ addiu $t0, $t0, 1 +/* 047FC0 800473C0 1082000B */ beq $a0, $v0, .L800473F0 +/* 047FC4 800473C4 0122082A */ slt $at, $t1, $v0 +/* 047FC8 800473C8 10200004 */ beqz $at, .L800473DC +/* 047FCC 800473CC 00000000 */ nop +/* 047FD0 800473D0 00024E00 */ sll $t1, $v0, 0x18 +/* 047FD4 800473D4 00096E03 */ sra $t5, $t1, 0x18 +/* 047FD8 800473D8 01A04825 */ move $t1, $t5 +.L800473DC: +/* 047FDC 800473DC 14C20005 */ bne $a2, $v0, .L800473F4 +/* 047FE0 800473E0 29010004 */ slti $at, $t0, 4 +/* 047FE4 800473E4 24E70001 */ addiu $a3, $a3, 1 +/* 047FE8 800473E8 0007CE00 */ sll $t9, $a3, 0x18 +/* 047FEC 800473EC 00193E03 */ sra $a3, $t9, 0x18 +.L800473F0: +/* 047FF0 800473F0 29010004 */ slti $at, $t0, 4 +.L800473F4: +/* 047FF4 800473F4 1420FFF0 */ bnez $at, .L800473B8 +/* 047FF8 800473F8 24630001 */ addiu $v1, $v1, 1 +/* 047FFC 800473FC 860C0000 */ lh $t4, ($s0) +/* 048000 80047400 00000000 */ nop +/* 048004 80047404 1580000D */ bnez $t4, .L8004743C +/* 048008 80047408 00000000 */ nop +/* 04800C 8004740C 10A0000B */ beqz $a1, .L8004743C +/* 048010 80047410 2401000C */ li $at, 12 +/* 048014 80047414 15210009 */ bne $t1, $at, .L8004743C +/* 048018 80047418 3C0B8012 */ lui $t3, %hi(gCurrentButtonsPressed) # $t3, 0x8012 +/* 04801C 8004741C 8D6BD52C */ lw $t3, %lo(gCurrentButtonsPressed)($t3) +/* 048020 80047420 240F0002 */ li $t7, 2 +/* 048024 80047424 316E2000 */ andi $t6, $t3, 0x2000 +/* 048028 80047428 11C00004 */ beqz $t6, .L8004743C +/* 04802C 8004742C 3C018012 */ lui $at, %hi(D_8011D582) # $at, 0x8012 +/* 048030 80047430 A02FD582 */ sb $t7, %lo(D_8011D582)($at) +/* 048034 80047434 820501E2 */ lb $a1, 0x1e2($s0) +/* 048038 80047438 00000000 */ nop +.L8004743C: +/* 04803C 8004743C 14A00008 */ bnez $a1, .L80047460 +/* 048040 80047440 00000000 */ nop +/* 048044 80047444 44803000 */ mtc1 $zero, $f6 +/* 048048 80047448 C60400C0 */ lwc1 $f4, 0xc0($s0) +/* 04804C 8004744C 00000000 */ nop +/* 048050 80047450 4604303C */ c.lt.s $f6, $f4 +/* 048054 80047454 00000000 */ nop +/* 048058 80047458 4500004F */ bc1f .L80047598 +/* 04805C 8004745C 02202025 */ move $a0, $s1 +.L80047460: +/* 048060 80047460 820201E0 */ lb $v0, 0x1e0($s0) +/* 048064 80047464 00000000 */ nop +/* 048068 80047468 1040004B */ beqz $v0, .L80047598 +/* 04806C 8004746C 02202025 */ move $a0, $s1 +/* 048070 80047470 10A0001E */ beqz $a1, .L800474EC +/* 048074 80047474 3C188012 */ lui $t8, %hi(gRaceStartTimer) # $t8, 0x8012 +/* 048078 80047478 8F18D540 */ lw $t8, %lo(gRaceStartTimer)($t8) +/* 04807C 8004747C 24010064 */ li $at, 100 +/* 048080 80047480 1301002A */ beq $t8, $at, .L8004752C +/* 048084 80047484 00000000 */ nop +/* 048088 80047488 860D0000 */ lh $t5, ($s0) +/* 04808C 8004748C 2401FFFF */ li $at, -1 +/* 048090 80047490 11A10026 */ beq $t5, $at, .L8004752C +/* 048094 80047494 28410006 */ slti $at, $v0, 6 +/* 048098 80047498 14200024 */ bnez $at, .L8004752C +/* 04809C 8004749C 240400AE */ li $a0, 174 +/* 0480A0 800474A0 2605021C */ addiu $a1, $s0, 0x21c +/* 0480A4 800474A4 A3A700AD */ sb $a3, 0xad($sp) +/* 0480A8 800474A8 A3A900AF */ sb $t1, 0xaf($sp) +/* 0480AC 800474AC 0C000741 */ jal play_sound_global +/* 0480B0 800474B0 E7B20104 */ swc1 $f18, 0x104($sp) +/* 0480B4 800474B4 820601E0 */ lb $a2, 0x1e0($s0) +/* 0480B8 800474B8 8E05021C */ lw $a1, 0x21c($s0) +/* 0480BC 800474BC 0006C840 */ sll $t9, $a2, 1 +/* 0480C0 800474C0 27260032 */ addiu $a2, $t9, 0x32 +/* 0480C4 800474C4 30CA00FF */ andi $t2, $a2, 0xff +/* 0480C8 800474C8 01403025 */ move $a2, $t2 +/* 0480CC 800474CC 0C0007EE */ jal func_80001FB8 +/* 0480D0 800474D0 240400AE */ li $a0, 174 +/* 0480D4 800474D4 83A700AD */ lb $a3, 0xad($sp) +/* 0480D8 800474D8 83A900AF */ lb $t1, 0xaf($sp) +/* 0480DC 800474DC C7B20104 */ lwc1 $f18, 0x104($sp) +/* 0480E0 800474E0 820201E0 */ lb $v0, 0x1e0($s0) +/* 0480E4 800474E4 10000012 */ b .L80047530 +/* 0480E8 800474E8 44825000 */ mtc1 $v0, $f10 +.L800474EC: +/* 0480EC 800474EC 8E0C0148 */ lw $t4, 0x148($s0) +/* 0480F0 800474F0 02202025 */ move $a0, $s1 +/* 0480F4 800474F4 1580000D */ bnez $t4, .L8004752C +/* 0480F8 800474F8 240500AF */ li $a1, 175 +/* 0480FC 800474FC A3A700AD */ sb $a3, 0xad($sp) +/* 048100 80047500 A3A900AF */ sb $t1, 0xaf($sp) +/* 048104 80047504 0C015C12 */ jal racer_play_sound +/* 048108 80047508 E7B20104 */ swc1 $f18, 0x104($sp) +/* 04810C 8004750C 8E2B0074 */ lw $t3, 0x74($s1) +/* 048110 80047510 83A700AD */ lb $a3, 0xad($sp) +/* 048114 80047514 83A900AF */ lb $t1, 0xaf($sp) +/* 048118 80047518 C7B20104 */ lwc1 $f18, 0x104($sp) +/* 04811C 8004751C 356E0030 */ ori $t6, $t3, 0x30 +/* 048120 80047520 AE2E0074 */ sw $t6, 0x74($s1) +/* 048124 80047524 820201E0 */ lb $v0, 0x1e0($s0) +/* 048128 80047528 00000000 */ nop +.L8004752C: +/* 04812C 8004752C 44825000 */ mtc1 $v0, $f10 +.L80047530: +/* 048130 80047530 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 048134 80047534 468050A0 */ cvt.s.w $f2, $f10 +/* 048138 80047538 44814000 */ mtc1 $at, $f8 +/* 04813C 8004753C 44803000 */ mtc1 $zero, $f6 +/* 048140 80047540 46081081 */ sub.s $f2, $f2, $f8 +/* 048144 80047544 4602303C */ c.lt.s $f6, $f2 +/* 048148 80047548 00000000 */ nop +/* 04814C 8004754C 45000010 */ bc1f .L80047590 +/* 048150 80047550 00000000 */ nop +/* 048154 80047554 8E0F0148 */ lw $t7, 0x148($s0) +/* 048158 80047558 3C01800E */ lui $at, %hi(D_800E6408 + 4) # $at, 0x800e +/* 04815C 8004755C 15E0000C */ bnez $t7, .L80047590 +/* 048160 80047560 00000000 */ nop +/* 048164 80047564 C42B6408 */ lwc1 $f11, %lo(D_800E6408)($at) +/* 048168 80047568 C42A640C */ lwc1 $f10, %lo(D_800E6408 + 4)($at) +/* 04816C 8004756C 46001121 */ cvt.d.s $f4, $f2 +/* 048170 80047570 462A2202 */ mul.d $f8, $f4, $f10 +/* 048174 80047574 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 048178 80047578 44813800 */ mtc1 $at, $f7 +/* 04817C 8004757C 44803000 */ mtc1 $zero, $f6 +/* 048180 80047580 00000000 */ nop +/* 048184 80047584 46283101 */ sub.d $f4, $f6, $f8 +/* 048188 80047588 462022A0 */ cvt.s.d $f10, $f4 +/* 04818C 8004758C E60A0090 */ swc1 $f10, 0x90($s0) +.L80047590: +/* 048190 80047590 A20001E0 */ sb $zero, 0x1e0($s0) +/* 048194 80047594 02202025 */ move $a0, $s1 +.L80047598: +/* 048198 80047598 02002825 */ move $a1, $s0 +/* 04819C 8004759C A3A700AD */ sb $a3, 0xad($sp) +/* 0481A0 800475A0 A3A900AF */ sb $t1, 0xaf($sp) +/* 0481A4 800475A4 0C015C88 */ jal handle_racer_top_speed +/* 0481A8 800475A8 E7B20104 */ swc1 $f18, 0x104($sp) +/* 0481AC 800475AC 3C01800E */ lui $at, %hi(D_800E6410 + 4) # $at, 0x800e +/* 0481B0 800475B0 C4296410 */ lwc1 $f9, %lo(D_800E6410)($at) +/* 0481B4 800475B4 C4286414 */ lwc1 $f8, %lo(D_800E6410 + 4)($at) +/* 0481B8 800475B8 460001A1 */ cvt.d.s $f6, $f0 +/* 0481BC 800475BC 46283102 */ mul.d $f4, $f6, $f8 +/* 0481C0 800475C0 C7B20104 */ lwc1 $f18, 0x104($sp) +/* 0481C4 800475C4 820301D3 */ lb $v1, 0x1d3($s0) +/* 0481C8 800475C8 460092A1 */ cvt.d.s $f10, $f18 +/* 0481CC 800475CC 83A700AD */ lb $a3, 0xad($sp) +/* 0481D0 800475D0 46245182 */ mul.d $f6, $f10, $f4 +/* 0481D4 800475D4 83A900AF */ lb $t1, 0xaf($sp) +/* 0481D8 800475D8 18600019 */ blez $v1, .L80047640 +/* 0481DC 800475DC 462034A0 */ cvt.s.d $f18, $f6 +/* 0481E0 800475E0 3C028012 */ lui $v0, %hi(gRaceStartTimer) # $v0, 0x8012 +/* 0481E4 800475E4 8C42D540 */ lw $v0, %lo(gRaceStartTimer)($v0) +/* 0481E8 800475E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0481EC 800475EC 14400018 */ bnez $v0, .L80047650 +/* 0481F0 800475F0 00000000 */ nop +/* 0481F4 800475F4 44802800 */ mtc1 $zero, $f5 +/* 0481F8 800475F8 44802000 */ mtc1 $zero, $f4 +/* 0481FC 800475FC 460091A1 */ cvt.d.s $f6, $f18 +/* 048200 80047600 44814000 */ mtc1 $at, $f8 +/* 048204 80047604 44805000 */ mtc1 $zero, $f10 +/* 048208 80047608 46262032 */ c.eq.d $f4, $f6 +/* 04820C 8004760C E7A800F4 */ swc1 $f8, 0xf4($sp) +/* 048210 80047610 45010004 */ bc1t .L80047624 +/* 048214 80047614 E7AA00F0 */ swc1 $f10, 0xf0($sp) +/* 048218 80047618 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04821C 8004761C 44819000 */ mtc1 $at, $f18 +/* 048220 80047620 00000000 */ nop +.L80047624: +/* 048224 80047624 8FB80128 */ lw $t8, 0x128($sp) +/* 048228 80047628 3C028012 */ lui $v0, %hi(gRaceStartTimer) # $v0, 0x8012 +/* 04822C 8004762C 00786823 */ subu $t5, $v1, $t8 +/* 048230 80047630 A20D01D3 */ sb $t5, 0x1d3($s0) +/* 048234 80047634 8C42D540 */ lw $v0, %lo(gRaceStartTimer)($v0) +/* 048238 80047638 10000005 */ b .L80047650 +/* 04823C 8004763C 00000000 */ nop +.L80047640: +/* 048240 80047640 A20001D3 */ sb $zero, 0x1d3($s0) +/* 048244 80047644 3C028012 */ lui $v0, %hi(gRaceStartTimer) # $v0, 0x8012 +/* 048248 80047648 8C42D540 */ lw $v0, %lo(gRaceStartTimer)($v0) +/* 04824C 8004764C 00000000 */ nop +.L80047650: +/* 048250 80047650 10400003 */ beqz $v0, .L80047660 +/* 048254 80047654 00000000 */ nop +/* 048258 80047658 44809000 */ mtc1 $zero, $f18 +/* 04825C 8004765C 00000000 */ nop +.L80047660: +/* 048260 80047660 10E00012 */ beqz $a3, .L800476AC +/* 048264 80047664 24040020 */ li $a0, 32 +/* 048268 80047668 A3A700AD */ sb $a3, 0xad($sp) +/* 04826C 8004766C A3A900AF */ sb $t1, 0xaf($sp) +/* 048270 80047670 0C0078A7 */ jal get_misc_asset +/* 048274 80047674 E7B20104 */ swc1 $f18, 0x104($sp) +/* 048278 80047678 83A700AD */ lb $a3, 0xad($sp) +/* 04827C 8004767C C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 048280 80047680 0007C880 */ sll $t9, $a3, 2 +/* 048284 80047684 00595021 */ addu $t2, $v0, $t9 +/* 048288 80047688 C5400000 */ lwc1 $f0, ($t2) +/* 04828C 8004768C C7B20104 */ lwc1 $f18, 0x104($sp) +/* 048290 80047690 46004283 */ div.s $f10, $f8, $f0 +/* 048294 80047694 44802000 */ mtc1 $zero, $f4 +/* 048298 80047698 83A900AF */ lb $t1, 0xaf($sp) +/* 04829C 8004769C 46009482 */ mul.s $f18, $f18, $f0 +/* 0482A0 800476A0 E7AA00FC */ swc1 $f10, 0xfc($sp) +/* 0482A4 800476A4 A2000175 */ sb $zero, 0x175($s0) +/* 0482A8 800476A8 E6040030 */ swc1 $f4, 0x30($s0) +.L800476AC: +/* 0482AC 800476AC 820C01D3 */ lb $t4, 0x1d3($s0) +/* 0482B0 800476B0 00000000 */ nop +/* 0482B4 800476B4 1580001D */ bnez $t4, .L8004772C +/* 0482B8 800476B8 24010003 */ li $at, 3 +/* 0482BC 800476BC 1521001B */ bne $t1, $at, .L8004772C +/* 0482C0 800476C0 2404002D */ li $a0, 45 +/* 0482C4 800476C4 0C00322D */ jal normalise_time +/* 0482C8 800476C8 E7B20104 */ swc1 $f18, 0x104($sp) +/* 0482CC 800476CC 920E020C */ lbu $t6, 0x20c($s0) +/* 0482D0 800476D0 C7B20104 */ lwc1 $f18, 0x104($sp) +/* 0482D4 800476D4 240B0002 */ li $t3, 2 +/* 0482D8 800476D8 A20201D3 */ sb $v0, 0x1d3($s0) +/* 0482DC 800476DC 11C00005 */ beqz $t6, .L800476F4 +/* 0482E0 800476E0 A20B0203 */ sb $t3, 0x203($s0) +/* 0482E4 800476E4 820F0203 */ lb $t7, 0x203($s0) +/* 0482E8 800476E8 00000000 */ nop +/* 0482EC 800476EC 35F80004 */ ori $t8, $t7, 4 +/* 0482F0 800476F0 A2180203 */ sb $t8, 0x203($s0) +.L800476F4: +/* 0482F4 800476F4 02202025 */ move $a0, $s1 +/* 0482F8 800476F8 24050107 */ li $a1, 263 +/* 0482FC 800476FC 0C015C12 */ jal racer_play_sound +/* 048300 80047700 E7B20104 */ swc1 $f18, 0x104($sp) +/* 048304 80047704 02202025 */ move $a0, $s1 +/* 048308 80047708 24050162 */ li $a1, 354 +/* 04830C 8004770C 24060008 */ li $a2, 8 +/* 048310 80047710 0C015C2E */ jal play_random_character_voice +/* 048314 80047714 24070082 */ li $a3, 130 +/* 048318 80047718 86040000 */ lh $a0, ($s0) +/* 04831C 8004771C 0C01C8D2 */ jal func_80072348 +/* 048320 80047720 24050008 */ li $a1, 8 +/* 048324 80047724 C7B20104 */ lwc1 $f18, 0x104($sp) +/* 048328 80047728 00000000 */ nop +.L8004772C: +/* 04832C 8004772C C62E0024 */ lwc1 $f14, 0x24($s1) +/* 048330 80047730 C620001C */ lwc1 $f0, 0x1c($s1) +/* 048334 80047734 460E7182 */ mul.s $f6, $f14, $f14 +/* 048338 80047738 E7B20104 */ swc1 $f18, 0x104($sp) +/* 04833C 8004773C 46000202 */ mul.s $f8, $f0, $f0 +/* 048340 80047740 0C0326B4 */ jal sqrtf +/* 048344 80047744 46083300 */ add.s $f12, $f6, $f8 +/* 048348 80047748 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 +/* 04834C 8004774C 44815800 */ mtc1 $at, $f11 +/* 048350 80047750 44805000 */ mtc1 $zero, $f10 +/* 048354 80047754 46000121 */ cvt.d.s $f4, $f0 +/* 048358 80047758 4624503C */ c.lt.d $f10, $f4 +/* 04835C 8004775C C7B20104 */ lwc1 $f18, 0x104($sp) +/* 048360 80047760 4500007F */ bc1f .L80047960 +/* 048364 80047764 46000086 */ mov.s $f2, $f0 +/* 048368 80047768 C62C001C */ lwc1 $f12, 0x1c($s1) +/* 04836C 8004776C C62E0024 */ lwc1 $f14, 0x24($s1) +/* 048370 80047770 E7B20104 */ swc1 $f18, 0x104($sp) +/* 048374 80047774 0C01C1D4 */ jal arctan2_f +/* 048378 80047778 E7A200D0 */ swc1 $f2, 0xd0($sp) +/* 04837C 8004777C 34058000 */ li $a1, 32768 +/* 048380 80047780 C7A200D0 */ lwc1 $f2, 0xd0($sp) +/* 048384 80047784 00456821 */ addu $t5, $v0, $a1 +/* 048388 80047788 C7B20104 */ lwc1 $f18, 0x104($sp) +/* 04838C 8004778C A60D0168 */ sh $t5, 0x168($s0) +/* 048390 80047790 86190168 */ lh $t9, 0x168($s0) +/* 048394 80047794 86040196 */ lh $a0, 0x196($s0) +/* 048398 80047798 00B95023 */ subu $t2, $a1, $t9 +/* 04839C 8004779C 314CFFFF */ andi $t4, $t2, 0xffff +/* 0483A0 800477A0 308BFFFF */ andi $t3, $a0, 0xffff +/* 0483A4 800477A4 34098001 */ li $t1, 32769 +/* 0483A8 800477A8 018B1823 */ subu $v1, $t4, $t3 +/* 0483AC 800477AC 0069082A */ slt $at, $v1, $t1 +/* 0483B0 800477B0 14200004 */ bnez $at, .L800477C4 +/* 0483B4 800477B4 46001321 */ cvt.d.s $f12, $f2 +/* 0483B8 800477B8 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 0483BC 800477BC 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 0483C0 800477C0 00611821 */ addu $v1, $v1, $at +.L800477C4: +/* 0483C4 800477C4 28618000 */ slti $at, $v1, -0x8000 +/* 0483C8 800477C8 10200002 */ beqz $at, .L800477D4 +/* 0483CC 800477CC 3401FFFF */ li $at, 65535 +/* 0483D0 800477D0 00611821 */ addu $v1, $v1, $at +.L800477D4: +/* 0483D4 800477D4 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 +/* 0483D8 800477D8 44813800 */ mtc1 $at, $f7 +/* 0483DC 800477DC 44803000 */ mtc1 $zero, $f6 +/* 0483E0 800477E0 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0483E4 800477E4 46266201 */ sub.d $f8, $f12, $f6 +/* 0483E8 800477E8 44815800 */ mtc1 $at, $f11 +/* 0483EC 800477EC 46204020 */ cvt.s.d $f0, $f8 +/* 0483F0 800477F0 44805000 */ mtc1 $zero, $f10 +/* 0483F4 800477F4 46000121 */ cvt.d.s $f4, $f0 +/* 0483F8 800477F8 4624503C */ c.lt.d $f10, $f4 +/* 0483FC 800477FC 44804000 */ mtc1 $zero, $f8 +/* 048400 80047800 44832000 */ mtc1 $v1, $f4 +/* 048404 80047804 45000003 */ bc1f .L80047814 +/* 048408 80047808 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 04840C 8004780C 44810000 */ mtc1 $at, $f0 +/* 048410 80047810 00000000 */ nop +.L80047814: +/* 048414 80047814 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 048418 80047818 44814800 */ mtc1 $at, $f9 +/* 04841C 8004781C 460001A1 */ cvt.d.s $f6, $f0 +/* 048420 80047820 46283282 */ mul.d $f10, $f6, $f8 +/* 048424 80047824 468021A0 */ cvt.s.w $f6, $f4 +/* 048428 80047828 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 04842C 8004782C 44812800 */ mtc1 $at, $f5 +/* 048430 80047830 44802000 */ mtc1 $zero, $f4 +/* 048434 80047834 46205020 */ cvt.s.d $f0, $f10 +/* 048438 80047838 8FA80128 */ lw $t0, 0x128($sp) +/* 04843C 8004783C 46003202 */ mul.s $f8, $f6, $f0 +/* 048440 80047840 860201A0 */ lh $v0, 0x1a0($s0) +/* 048444 80047844 44800000 */ mtc1 $zero, $f0 +/* 048448 80047848 304CFFFF */ andi $t4, $v0, 0xffff +/* 04844C 8004784C 460042A1 */ cvt.d.s $f10, $f8 +/* 048450 80047850 46245182 */ mul.d $f6, $f10, $f4 +/* 048454 80047854 444EF800 */ cfc1 $t6, $31 +/* 048458 80047858 00000000 */ nop +/* 04845C 8004785C 35C10003 */ ori $at, $t6, 3 +/* 048460 80047860 38210002 */ xori $at, $at, 2 +/* 048464 80047864 44C1F800 */ ctc1 $at, $31 +/* 048468 80047868 00000000 */ nop +/* 04846C 8004786C 46203224 */ cvt.w.d $f8, $f6 +/* 048470 80047870 44034000 */ mfc1 $v1, $f8 +/* 048474 80047874 44CEF800 */ ctc1 $t6, $31 +/* 048478 80047878 00680019 */ multu $v1, $t0 +/* 04847C 8004787C 00007812 */ mflo $t7 +/* 048480 80047880 000FC103 */ sra $t8, $t7, 4 +/* 048484 80047884 00986821 */ addu $t5, $a0, $t8 +/* 048488 80047888 A60D0196 */ sh $t5, 0x196($s0) +/* 04848C 8004788C 86190196 */ lh $t9, 0x196($s0) +/* 048490 80047890 00000000 */ nop +/* 048494 80047894 00B95023 */ subu $t2, $a1, $t9 +/* 048498 80047898 014C1823 */ subu $v1, $t2, $t4 +/* 04849C 8004789C 0069082A */ slt $at, $v1, $t1 +/* 0484A0 800478A0 14200003 */ bnez $at, .L800478B0 +/* 0484A4 800478A4 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 0484A8 800478A8 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 0484AC 800478AC 00611821 */ addu $v1, $v1, $at +.L800478B0: +/* 0484B0 800478B0 28618000 */ slti $at, $v1, -0x8000 +/* 0484B4 800478B4 10200002 */ beqz $at, .L800478C0 +/* 0484B8 800478B8 3401FFFF */ li $at, 65535 +/* 0484BC 800478BC 00611821 */ addu $v1, $v1, $at +.L800478C0: +/* 0484C0 800478C0 3C014024 */ li $at, 0x40240000 # 2.562500 +/* 0484C4 800478C4 44810800 */ mtc1 $at, $f1 +/* 0484C8 800478C8 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 0484CC 800478CC 462C003C */ c.lt.d $f0, $f12 +/* 0484D0 800478D0 00000000 */ nop +/* 0484D4 800478D4 45000005 */ bc1f .L800478EC +/* 0484D8 800478D8 00000000 */ nop +/* 0484DC 800478DC 44811000 */ mtc1 $at, $f2 +/* 0484E0 800478E0 00000000 */ nop +/* 0484E4 800478E4 46001321 */ cvt.d.s $f12, $f2 +/* 0484E8 800478E8 00000000 */ nop +.L800478EC: +/* 0484EC 800478EC 46206283 */ div.d $f10, $f12, $f0 +/* 0484F0 800478F0 44832000 */ mtc1 $v1, $f4 +/* 0484F4 800478F4 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 +/* 0484F8 800478F8 468021A0 */ cvt.s.w $f6, $f4 +/* 0484FC 800478FC 8C84D528 */ lw $a0, %lo(gCurrentRacerInput)($a0) +/* 048500 80047900 00000000 */ nop +/* 048504 80047904 308E8000 */ andi $t6, $a0, 0x8000 +/* 048508 80047908 308F0010 */ andi $t7, $a0, 0x10 +/* 04850C 8004790C 462050A0 */ cvt.s.d $f2, $f10 +/* 048510 80047910 46023202 */ mul.s $f8, $f6, $f2 +/* 048514 80047914 444BF800 */ cfc1 $t3, $31 +/* 048518 80047918 00000000 */ nop +/* 04851C 8004791C 35610003 */ ori $at, $t3, 3 +/* 048520 80047920 38210002 */ xori $at, $at, 2 +/* 048524 80047924 44C1F800 */ ctc1 $at, $31 +/* 048528 80047928 00000000 */ nop +/* 04852C 8004792C 460042A4 */ cvt.w.s $f10, $f8 +/* 048530 80047930 44035000 */ mfc1 $v1, $f10 +/* 048534 80047934 44CBF800 */ ctc1 $t3, $31 +/* 048538 80047938 15C00003 */ bnez $t6, .L80047948 +/* 04853C 8004793C 0003C040 */ sll $t8, $v1, 1 +/* 048540 80047940 11E00002 */ beqz $t7, .L8004794C +/* 048544 80047944 00000000 */ nop +.L80047948: +/* 048548 80047948 03001825 */ move $v1, $t8 +.L8004794C: +/* 04854C 8004794C 00680019 */ multu $v1, $t0 +/* 048550 80047950 00006812 */ mflo $t5 +/* 048554 80047954 000DC9C3 */ sra $t9, $t5, 7 +/* 048558 80047958 00595021 */ addu $t2, $v0, $t9 +/* 04855C 8004795C A60A01A0 */ sh $t2, 0x1a0($s0) +.L80047960: +/* 048560 80047960 86040196 */ lh $a0, 0x196($s0) +/* 048564 80047964 860C01A0 */ lh $t4, 0x1a0($s0) +/* 048568 80047968 34058000 */ li $a1, 32768 +/* 04856C 8004796C 308EFFFF */ andi $t6, $a0, 0xffff +/* 048570 80047970 00AC5823 */ subu $t3, $a1, $t4 +/* 048574 80047974 34098001 */ li $t1, 32769 +/* 048578 80047978 016E1823 */ subu $v1, $t3, $t6 +/* 04857C 8004797C 8FA80128 */ lw $t0, 0x128($sp) +/* 048580 80047980 0069082A */ slt $at, $v1, $t1 +/* 048584 80047984 14200003 */ bnez $at, .L80047994 +/* 048588 80047988 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 04858C 8004798C 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 048590 80047990 00611821 */ addu $v1, $v1, $at +.L80047994: +/* 048594 80047994 28618000 */ slti $at, $v1, -0x8000 +/* 048598 80047998 10200002 */ beqz $at, .L800479A4 +/* 04859C 8004799C 3401FFFF */ li $at, 65535 +/* 0485A0 800479A0 00611821 */ addu $v1, $v1, $at +.L800479A4: +/* 0485A4 800479A4 44832000 */ mtc1 $v1, $f4 +/* 0485A8 800479A8 3C013FFC */ li $at, 0x3FFC0000 # 1.968750 +/* 0485AC 800479AC 468021A0 */ cvt.s.w $f6, $f4 +/* 0485B0 800479B0 44815800 */ mtc1 $at, $f11 +/* 0485B4 800479B4 44805000 */ mtc1 $zero, $f10 +/* 0485B8 800479B8 46003221 */ cvt.d.s $f8, $f6 +/* 0485BC 800479BC 462A4102 */ mul.d $f4, $f8, $f10 +/* 0485C0 800479C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0485C4 800479C4 44813000 */ mtc1 $at, $f6 +/* 0485C8 800479C8 920A01F5 */ lbu $t2, 0x1f5($s0) +/* 0485CC 800479CC 46003221 */ cvt.d.s $f8, $f6 +/* 0485D0 800479D0 46282282 */ mul.d $f10, $f4, $f8 +/* 0485D4 800479D4 444FF800 */ cfc1 $t7, $31 +/* 0485D8 800479D8 00000000 */ nop +/* 0485DC 800479DC 35E10003 */ ori $at, $t7, 3 +/* 0485E0 800479E0 38210002 */ xori $at, $at, 2 +/* 0485E4 800479E4 44C1F800 */ ctc1 $at, $31 +/* 0485E8 800479E8 00000000 */ nop +/* 0485EC 800479EC 462051A4 */ cvt.w.d $f6, $f10 +/* 0485F0 800479F0 44033000 */ mfc1 $v1, $f6 +/* 0485F4 800479F4 44CFF800 */ ctc1 $t7, $31 +/* 0485F8 800479F8 00680019 */ multu $v1, $t0 +/* 0485FC 800479FC 0000C012 */ mflo $t8 +/* 048600 80047A00 00186983 */ sra $t5, $t8, 6 +/* 048604 80047A04 008DC821 */ addu $t9, $a0, $t5 +/* 048608 80047A08 15400120 */ bnez $t2, .L80047E8C +/* 04860C 80047A0C A6190196 */ sh $t9, 0x196($s0) +/* 048610 80047A10 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 +/* 048614 80047A14 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) +/* 048618 80047A18 2401FFFF */ li $at, -1 +/* 04861C 80047A1C 15810038 */ bne $t4, $at, .L80047B00 +/* 048620 80047A20 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 +/* 048624 80047A24 820B01D8 */ lb $t3, 0x1d8($s0) +/* 048628 80047A28 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 +/* 04862C 80047A2C 15600034 */ bnez $t3, .L80047B00 +/* 048630 80047A30 00000000 */ nop +/* 048634 80047A34 C6040030 */ lwc1 $f4, 0x30($s0) +/* 048638 80047A38 44815800 */ mtc1 $at, $f11 +/* 04863C 80047A3C 44805000 */ mtc1 $zero, $f10 +/* 048640 80047A40 46002221 */ cvt.d.s $f8, $f4 +/* 048644 80047A44 462A4182 */ mul.d $f6, $f8, $f10 +/* 048648 80047A48 3C01800E */ lui $at, %hi(D_800E6418 + 4) # $at, 0x800e +/* 04864C 80047A4C C4296418 */ lwc1 $f9, %lo(D_800E6418)($at) +/* 048650 80047A50 C428641C */ lwc1 $f8, %lo(D_800E6418 + 4)($at) +/* 048654 80047A54 3C01800E */ lui $at, %hi(D_800E6420 + 4) # $at, 0x800e +/* 048658 80047A58 46203420 */ cvt.s.d $f16, $f6 +/* 04865C 80047A5C 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 +/* 048660 80047A60 46008121 */ cvt.d.s $f4, $f16 +/* 048664 80047A64 46282282 */ mul.d $f10, $f4, $f8 +/* 048668 80047A68 44802000 */ mtc1 $zero, $f4 +/* 04866C 80047A6C 44802800 */ mtc1 $zero, $f5 +/* 048670 80047A70 46205020 */ cvt.s.d $f0, $f10 +/* 048674 80047A74 460001A1 */ cvt.d.s $f6, $f0 +/* 048678 80047A78 4624303C */ c.lt.d $f6, $f4 +/* 04867C 80047A7C 46000306 */ mov.s $f12, $f0 +/* 048680 80047A80 45000002 */ bc1f .L80047A8C +/* 048684 80047A84 00000000 */ nop +/* 048688 80047A88 46000307 */ neg.s $f12, $f0 +.L80047A8C: +/* 04868C 80047A8C C4296420 */ lwc1 $f9, %lo(D_800E6420)($at) +/* 048690 80047A90 C4286424 */ lwc1 $f8, %lo(D_800E6420 + 4)($at) +/* 048694 80047A94 460062A1 */ cvt.d.s $f10, $f12 +/* 048698 80047A98 462A403C */ c.lt.d $f8, $f10 +/* 04869C 80047A9C 00000000 */ nop +/* 0486A0 80047AA0 45000005 */ bc1f .L80047AB8 +/* 0486A4 80047AA4 00000000 */ nop +/* 0486A8 80047AA8 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) +/* 0486AC 80047AAC 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 +/* 0486B0 80047AB0 35CF0010 */ ori $t7, $t6, 0x10 +/* 0486B4 80047AB4 AC2FD528 */ sw $t7, %lo(gCurrentRacerInput)($at) +.L80047AB8: +/* 0486B8 80047AB8 C6040038 */ lwc1 $f4, 0x38($s0) +/* 0486BC 80047ABC C626001C */ lwc1 $f6, 0x1c($s1) +/* 0486C0 80047AC0 460C2202 */ mul.s $f8, $f4, $f12 +/* 0486C4 80047AC4 C6240020 */ lwc1 $f4, 0x20($s1) +/* 0486C8 80047AC8 46083280 */ add.s $f10, $f6, $f8 +/* 0486CC 80047ACC E62A001C */ swc1 $f10, 0x1c($s1) +/* 0486D0 80047AD0 C606003C */ lwc1 $f6, 0x3c($s0) +/* 0486D4 80047AD4 00000000 */ nop +/* 0486D8 80047AD8 460C3202 */ mul.s $f8, $f6, $f12 +/* 0486DC 80047ADC C6260024 */ lwc1 $f6, 0x24($s1) +/* 0486E0 80047AE0 46082280 */ add.s $f10, $f4, $f8 +/* 0486E4 80047AE4 E62A0020 */ swc1 $f10, 0x20($s1) +/* 0486E8 80047AE8 C6040040 */ lwc1 $f4, 0x40($s0) +/* 0486EC 80047AEC 00000000 */ nop +/* 0486F0 80047AF0 460C2202 */ mul.s $f8, $f4, $f12 +/* 0486F4 80047AF4 46083280 */ add.s $f10, $f6, $f8 +/* 0486F8 80047AF8 10000039 */ b .L80047BE0 +/* 0486FC 80047AFC E62A0024 */ swc1 $f10, 0x24($s1) +.L80047B00: +/* 048700 80047B00 3C01800E */ lui $at, %hi(D_800E6428 + 4) # $at, 0x800e +/* 048704 80047B04 C6040030 */ lwc1 $f4, 0x30($s0) +/* 048708 80047B08 C4276428 */ lwc1 $f7, %lo(D_800E6428)($at) +/* 04870C 80047B0C C426642C */ lwc1 $f6, %lo(D_800E6428 + 4)($at) +/* 048710 80047B10 46002021 */ cvt.d.s $f0, $f4 +/* 048714 80047B14 46260202 */ mul.d $f8, $f0, $f6 +/* 048718 80047B18 8C84D528 */ lw $a0, %lo(gCurrentRacerInput)($a0) +/* 04871C 80047B1C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 048720 80047B20 30980010 */ andi $t8, $a0, 0x10 +/* 048724 80047B24 1300002E */ beqz $t8, .L80047BE0 +/* 048728 80047B28 46204420 */ cvt.s.d $f16, $f8 +/* 04872C 80047B2C 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 +/* 048730 80047B30 44815000 */ mtc1 $at, $f10 +/* 048734 80047B34 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) +/* 048738 80047B38 460A8402 */ mul.s $f16, $f16, $f10 +/* 04873C 80047B3C 2841FFD9 */ slti $at, $v0, -0x27 +/* 048740 80047B40 1420000C */ bnez $at, .L80047B74 +/* 048744 80047B44 308D4000 */ andi $t5, $a0, 0x4000 +/* 048748 80047B48 28410028 */ slti $at, $v0, 0x28 +/* 04874C 80047B4C 10200009 */ beqz $at, .L80047B74 +/* 048750 80047B50 3C01800E */ lui $at, %hi(D_800E6430 + 4) # $at, 0x800e +/* 048754 80047B54 C7A400F4 */ lwc1 $f4, 0xf4($sp) +/* 048758 80047B58 C4296430 */ lwc1 $f9, %lo(D_800E6430)($at) +/* 04875C 80047B5C C4286434 */ lwc1 $f8, %lo(D_800E6430 + 4)($at) +/* 048760 80047B60 460021A1 */ cvt.d.s $f6, $f4 +/* 048764 80047B64 46283282 */ mul.d $f10, $f6, $f8 +/* 048768 80047B68 46205120 */ cvt.s.d $f4, $f10 +/* 04876C 80047B6C 10000016 */ b .L80047BC8 +/* 048770 80047B70 E7A400F4 */ swc1 $f4, 0xf4($sp) +.L80047B74: +/* 048774 80047B74 3C014004 */ li $at, 0x40040000 # 2.062500 +/* 048778 80047B78 44813800 */ mtc1 $at, $f7 +/* 04877C 80047B7C 44803000 */ mtc1 $zero, $f6 +/* 048780 80047B80 C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 048784 80047B84 4620303C */ c.lt.d $f6, $f0 +/* 048788 80047B88 3C01C004 */ li $at, 0xC0040000 # -2.062500 +/* 04878C 80047B8C 45010007 */ bc1t .L80047BAC +/* 048790 80047B90 00000000 */ nop +/* 048794 80047B94 44814800 */ mtc1 $at, $f9 +/* 048798 80047B98 44804000 */ mtc1 $zero, $f8 +/* 04879C 80047B9C 00000000 */ nop +/* 0487A0 80047BA0 4628003C */ c.lt.d $f0, $f8 +/* 0487A4 80047BA4 00000000 */ nop +/* 0487A8 80047BA8 45000007 */ bc1f .L80047BC8 +.L80047BAC: +/* 0487AC 80047BAC 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 +/* 0487B0 80047BB0 44813800 */ mtc1 $at, $f7 +/* 0487B4 80047BB4 44803000 */ mtc1 $zero, $f6 +/* 0487B8 80047BB8 46005121 */ cvt.d.s $f4, $f10 +/* 0487BC 80047BBC 46262202 */ mul.d $f8, $f4, $f6 +/* 0487C0 80047BC0 462042A0 */ cvt.s.d $f10, $f8 +/* 0487C4 80047BC4 E7AA00F4 */ swc1 $f10, 0xf4($sp) +.L80047BC8: +/* 0487C8 80047BC8 11A00005 */ beqz $t5, .L80047BE0 +/* 0487CC 80047BCC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0487D0 80047BD0 44812000 */ mtc1 $at, $f4 +/* 0487D4 80047BD4 00000000 */ nop +/* 0487D8 80047BD8 46048402 */ mul.s $f16, $f16, $f4 +/* 0487DC 80047BDC 00000000 */ nop +.L80047BE0: +/* 0487E0 80047BE0 C6080050 */ lwc1 $f8, 0x50($s0) +/* 0487E4 80047BE4 C626001C */ lwc1 $f6, 0x1c($s1) +/* 0487E8 80047BE8 46104282 */ mul.s $f10, $f8, $f16 +/* 0487EC 80047BEC C6280020 */ lwc1 $f8, 0x20($s1) +/* 0487F0 80047BF0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 0487F4 80047BF4 3C0A8012 */ lui $t2, %hi(D_8011D584) # $t2, 0x8012 +/* 0487F8 80047BF8 460A3101 */ sub.s $f4, $f6, $f10 +/* 0487FC 80047BFC 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 +/* 048800 80047C00 E624001C */ swc1 $f4, 0x1c($s1) +/* 048804 80047C04 C6060054 */ lwc1 $f6, 0x54($s0) +/* 048808 80047C08 00000000 */ nop +/* 04880C 80047C0C 46103282 */ mul.s $f10, $f6, $f16 +/* 048810 80047C10 C6260024 */ lwc1 $f6, 0x24($s1) +/* 048814 80047C14 460A4101 */ sub.s $f4, $f8, $f10 +/* 048818 80047C18 E6240020 */ swc1 $f4, 0x20($s1) +/* 04881C 80047C1C C6080058 */ lwc1 $f8, 0x58($s0) +/* 048820 80047C20 00000000 */ nop +/* 048824 80047C24 46104282 */ mul.s $f10, $f8, $f16 +/* 048828 80047C28 460A3101 */ sub.s $f4, $f6, $f10 +/* 04882C 80047C2C E6240024 */ swc1 $f4, 0x24($s1) +/* 048830 80047C30 C7A800F4 */ lwc1 $f8, 0xf4($sp) +/* 048834 80047C34 00000000 */ nop +/* 048838 80047C38 46124182 */ mul.s $f6, $f8, $f18 +/* 04883C 80047C3C E7A600F4 */ swc1 $f6, 0xf4($sp) +/* 048840 80047C40 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 048844 80047C44 C628001C */ lwc1 $f8, 0x1c($s1) +/* 048848 80047C48 46065102 */ mul.s $f4, $f10, $f6 +/* 04884C 80047C4C 46044281 */ sub.s $f10, $f8, $f4 +/* 048850 80047C50 E62A001C */ swc1 $f10, 0x1c($s1) +/* 048854 80047C54 C606003C */ lwc1 $f6, 0x3c($s0) +/* 048858 80047C58 C7A800F4 */ lwc1 $f8, 0xf4($sp) +/* 04885C 80047C5C C62A0020 */ lwc1 $f10, 0x20($s1) +/* 048860 80047C60 46083102 */ mul.s $f4, $f6, $f8 +/* 048864 80047C64 46045181 */ sub.s $f6, $f10, $f4 +/* 048868 80047C68 E6260020 */ swc1 $f6, 0x20($s1) +/* 04886C 80047C6C C6080040 */ lwc1 $f8, 0x40($s0) +/* 048870 80047C70 C7AA00F4 */ lwc1 $f10, 0xf4($sp) +/* 048874 80047C74 C6260024 */ lwc1 $f6, 0x24($s1) +/* 048878 80047C78 460A4102 */ mul.s $f4, $f8, $f10 +/* 04887C 80047C7C 46043201 */ sub.s $f8, $f6, $f4 +/* 048880 80047C80 44813000 */ mtc1 $at, $f6 +/* 048884 80047C84 E6280024 */ swc1 $f8, 0x24($s1) +/* 048888 80047C88 46069103 */ div.s $f4, $f18, $f6 +/* 04888C 80047C8C C7AA00F0 */ lwc1 $f10, 0xf0($sp) +/* 048890 80047C90 00000000 */ nop +/* 048894 80047C94 46045202 */ mul.s $f8, $f10, $f4 +/* 048898 80047C98 E7A800F0 */ swc1 $f8, 0xf0($sp) +/* 04889C 80047C9C C6060038 */ lwc1 $f6, 0x38($s0) +/* 0488A0 80047CA0 C624001C */ lwc1 $f4, 0x1c($s1) +/* 0488A4 80047CA4 46083282 */ mul.s $f10, $f6, $f8 +/* 0488A8 80047CA8 460A2180 */ add.s $f6, $f4, $f10 +/* 0488AC 80047CAC E626001C */ swc1 $f6, 0x1c($s1) +/* 0488B0 80047CB0 C7A400F0 */ lwc1 $f4, 0xf0($sp) +/* 0488B4 80047CB4 C608003C */ lwc1 $f8, 0x3c($s0) +/* 0488B8 80047CB8 C6260020 */ lwc1 $f6, 0x20($s1) +/* 0488BC 80047CBC 46044282 */ mul.s $f10, $f8, $f4 +/* 0488C0 80047CC0 460A3200 */ add.s $f8, $f6, $f10 +/* 0488C4 80047CC4 E6280020 */ swc1 $f8, 0x20($s1) +/* 0488C8 80047CC8 C7A600F0 */ lwc1 $f6, 0xf0($sp) +/* 0488CC 80047CCC C6040040 */ lwc1 $f4, 0x40($s0) +/* 0488D0 80047CD0 C6280024 */ lwc1 $f8, 0x24($s1) +/* 0488D4 80047CD4 46062282 */ mul.s $f10, $f4, $f6 +/* 0488D8 80047CD8 460A4100 */ add.s $f4, $f8, $f10 +/* 0488DC 80047CDC E6240024 */ swc1 $f4, 0x24($s1) +/* 0488E0 80047CE0 821901E2 */ lb $t9, 0x1e2($s0) +/* 0488E4 80047CE4 00000000 */ nop +/* 0488E8 80047CE8 13200031 */ beqz $t9, .L80047DB0 +/* 0488EC 80047CEC 00000000 */ nop +/* 0488F0 80047CF0 814AD584 */ lb $t2, %lo(D_8011D584)($t2) +/* 0488F4 80047CF4 3C0C8012 */ lui $t4, %hi(gRaceStartTimer) # $t4, 0x8012 +/* 0488F8 80047CF8 1540002D */ bnez $t2, .L80047DB0 +/* 0488FC 80047CFC 00000000 */ nop +/* 048900 80047D00 8D8CD540 */ lw $t4, %lo(gRaceStartTimer)($t4) +/* 048904 80047D04 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 048908 80047D08 15800029 */ bnez $t4, .L80047DB0 +/* 04890C 80047D0C 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 +/* 048910 80047D10 C426D56C */ lwc1 $f6, %lo(gCurrentRacerWeightStat)($at) +/* 048914 80047D14 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 +/* 048918 80047D18 46083282 */ mul.s $f10, $f6, $f8 +/* 04891C 80047D1C 44803000 */ mtc1 $zero, $f6 +/* 048920 80047D20 44813800 */ mtc1 $at, $f7 +/* 048924 80047D24 46005121 */ cvt.d.s $f4, $f10 +/* 048928 80047D28 46262202 */ mul.d $f8, $f4, $f6 +/* 04892C 80047D2C C60A009C */ lwc1 $f10, 0x9c($s0) +/* 048930 80047D30 C60400A0 */ lwc1 $f4, 0xa0($s0) +/* 048934 80047D34 C6060038 */ lwc1 $f6, 0x38($s0) +/* 048938 80047D38 462040A0 */ cvt.s.d $f2, $f8 +/* 04893C 80047D3C 46025002 */ mul.s $f0, $f10, $f2 +/* 048940 80047D40 C60A0050 */ lwc1 $f10, 0x50($s0) +/* 048944 80047D44 46041082 */ mul.s $f2, $f2, $f4 +/* 048948 80047D48 00000000 */ nop +/* 04894C 80047D4C 46003202 */ mul.s $f8, $f6, $f0 +/* 048950 80047D50 00000000 */ nop +/* 048954 80047D54 46025102 */ mul.s $f4, $f10, $f2 +/* 048958 80047D58 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 04895C 80047D5C 46044180 */ add.s $f6, $f8, $f4 +/* 048960 80047D60 46065200 */ add.s $f8, $f10, $f6 +/* 048964 80047D64 E628001C */ swc1 $f8, 0x1c($s1) +/* 048968 80047D68 C604003C */ lwc1 $f4, 0x3c($s0) +/* 04896C 80047D6C C6060054 */ lwc1 $f6, 0x54($s0) +/* 048970 80047D70 46002282 */ mul.s $f10, $f4, $f0 +/* 048974 80047D74 00000000 */ nop +/* 048978 80047D78 46023202 */ mul.s $f8, $f6, $f2 +/* 04897C 80047D7C C6260020 */ lwc1 $f6, 0x20($s1) +/* 048980 80047D80 46085100 */ add.s $f4, $f10, $f8 +/* 048984 80047D84 46043280 */ add.s $f10, $f6, $f4 +/* 048988 80047D88 E62A0020 */ swc1 $f10, 0x20($s1) +/* 04898C 80047D8C C6080040 */ lwc1 $f8, 0x40($s0) +/* 048990 80047D90 C6040058 */ lwc1 $f4, 0x58($s0) +/* 048994 80047D94 46004182 */ mul.s $f6, $f8, $f0 +/* 048998 80047D98 00000000 */ nop +/* 04899C 80047D9C 46022282 */ mul.s $f10, $f4, $f2 +/* 0489A0 80047DA0 C6240024 */ lwc1 $f4, 0x24($s1) +/* 0489A4 80047DA4 460A3200 */ add.s $f8, $f6, $f10 +/* 0489A8 80047DA8 46082180 */ add.s $f6, $f4, $f8 +/* 0489AC 80047DAC E6260024 */ swc1 $f6, 0x24($s1) +.L80047DB0: +/* 0489B0 80047DB0 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 0489B4 80047DB4 44805000 */ mtc1 $zero, $f10 +/* 0489B8 80047DB8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0489BC 80047DBC 460A703C */ c.lt.s $f14, $f10 +/* 0489C0 80047DC0 44812000 */ mtc1 $at, $f4 +/* 0489C4 80047DC4 460E7302 */ mul.s $f12, $f14, $f14 +/* 0489C8 80047DC8 45000002 */ bc1f .L80047DD4 +/* 0489CC 80047DCC 00000000 */ nop +/* 0489D0 80047DD0 46006307 */ neg.s $f12, $f12 +.L80047DD4: +/* 0489D4 80047DD4 4604603C */ c.lt.s $f12, $f4 +/* 0489D8 80047DD8 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 0489DC 80047DDC 4500000D */ bc1f .L80047E14 +/* 0489E0 80047DE0 00000000 */ nop +/* 0489E4 80047DE4 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) +/* 0489E8 80047DE8 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 0489EC 80047DEC 316E8000 */ andi $t6, $t3, 0x8000 +/* 0489F0 80047DF0 15C00008 */ bnez $t6, .L80047E14 +/* 0489F4 80047DF4 00000000 */ nop +/* 0489F8 80047DF8 46087182 */ mul.s $f6, $f14, $f8 +/* 0489FC 80047DFC 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 048A00 80047E00 44815000 */ mtc1 $at, $f10 +/* 048A04 80047E04 00000000 */ nop +/* 048A08 80047E08 460A3402 */ mul.s $f16, $f6, $f10 +/* 048A0C 80047E0C 10000004 */ b .L80047E20 +/* 048A10 80047E10 C6060038 */ lwc1 $f6, 0x38($s0) +.L80047E14: +/* 048A14 80047E14 46046402 */ mul.s $f16, $f12, $f4 +/* 048A18 80047E18 00000000 */ nop +/* 048A1C 80047E1C C6060038 */ lwc1 $f6, 0x38($s0) +.L80047E20: +/* 048A20 80047E20 C628001C */ lwc1 $f8, 0x1c($s1) +/* 048A24 80047E24 46103282 */ mul.s $f10, $f6, $f16 +/* 048A28 80047E28 C6260020 */ lwc1 $f6, 0x20($s1) +/* 048A2C 80047E2C 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 +/* 048A30 80047E30 460A4101 */ sub.s $f4, $f8, $f10 +/* 048A34 80047E34 E624001C */ swc1 $f4, 0x1c($s1) +/* 048A38 80047E38 C608003C */ lwc1 $f8, 0x3c($s0) +/* 048A3C 80047E3C 00000000 */ nop +/* 048A40 80047E40 46104282 */ mul.s $f10, $f8, $f16 +/* 048A44 80047E44 C6280024 */ lwc1 $f8, 0x24($s1) +/* 048A48 80047E48 460A3101 */ sub.s $f4, $f6, $f10 +/* 048A4C 80047E4C E6240020 */ swc1 $f4, 0x20($s1) +/* 048A50 80047E50 C6060040 */ lwc1 $f6, 0x40($s0) +/* 048A54 80047E54 00000000 */ nop +/* 048A58 80047E58 46103282 */ mul.s $f10, $f6, $f16 +/* 048A5C 80047E5C 460A4101 */ sub.s $f4, $f8, $f10 +/* 048A60 80047E60 E6240024 */ swc1 $f4, 0x24($s1) +/* 048A64 80047E64 820F0175 */ lb $t7, 0x175($s0) +/* 048A68 80047E68 00000000 */ nop +/* 048A6C 80047E6C 11E00007 */ beqz $t7, .L80047E8C +/* 048A70 80047E70 00000000 */ nop +/* 048A74 80047E74 C426D578 */ lwc1 $f6, %lo(D_8011D578)($at) +/* 048A78 80047E78 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 +/* 048A7C 80047E7C E626001C */ swc1 $f6, 0x1c($s1) +/* 048A80 80047E80 C428D57C */ lwc1 $f8, %lo(D_8011D57C)($at) +/* 048A84 80047E84 00000000 */ nop +/* 048A88 80047E88 E6280024 */ swc1 $f8, 0x24($s1) +.L80047E8C: +/* 048A8C 80047E8C AE00010C */ sw $zero, 0x10c($s0) +/* 048A90 80047E90 3C188012 */ lui $t8, %hi(gCurrentCarSteerVel) # $t8, 0x8012 +/* 048A94 80047E94 8F18D554 */ lw $t8, %lo(gCurrentCarSteerVel)($t8) +/* 048A98 80047E98 860201A2 */ lh $v0, 0x1a2($s0) +/* 048A9C 80047E9C 860C01A0 */ lh $t4, 0x1a0($s0) +/* 048AA0 80047EA0 03026823 */ subu $t5, $t8, $v0 +/* 048AA4 80047EA4 000DC8C3 */ sra $t9, $t5, 3 +/* 048AA8 80047EA8 00595021 */ addu $t2, $v0, $t9 +/* 048AAC 80047EAC A60A01A2 */ sh $t2, 0x1a2($s0) +/* 048AB0 80047EB0 860B01A2 */ lh $t3, 0x1a2($s0) +/* 048AB4 80047EB4 3C0F8012 */ lui $t7, %hi(D_8011D558) # $t7, 0x8012 +/* 048AB8 80047EB8 018B7021 */ addu $t6, $t4, $t3 +/* 048ABC 80047EBC A62E0000 */ sh $t6, ($s1) +/* 048AC0 80047EC0 860301A6 */ lh $v1, 0x1a6($s0) +/* 048AC4 80047EC4 8DEFD558 */ lw $t7, %lo(D_8011D558)($t7) +/* 048AC8 80047EC8 860A01A4 */ lh $t2, 0x1a4($s0) +/* 048ACC 80047ECC 01E3C023 */ subu $t8, $t7, $v1 +/* 048AD0 80047ED0 001868C3 */ sra $t5, $t8, 3 +/* 048AD4 80047ED4 006DC821 */ addu $t9, $v1, $t5 +/* 048AD8 80047ED8 A61901A6 */ sh $t9, 0x1a6($s0) +/* 048ADC 80047EDC 860C01A6 */ lh $t4, 0x1a6($s0) +/* 048AE0 80047EE0 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 048AE4 80047EE4 014C5821 */ addu $t3, $t2, $t4 +/* 048AE8 80047EE8 A62B0004 */ sh $t3, 4($s1) +/* 048AEC 80047EEC 820401D2 */ lb $a0, 0x1d2($s0) +/* 048AF0 80047EF0 44812000 */ mtc1 $at, $f4 +/* 048AF4 80047EF4 18800003 */ blez $a0, .L80047F04 +/* 048AF8 80047EF8 00887023 */ subu $t6, $a0, $t0 +/* 048AFC 80047EFC 10000002 */ b .L80047F08 +/* 048B00 80047F00 A20E01D2 */ sb $t6, 0x1d2($s0) +.L80047F04: +/* 048B04 80047F04 A20001D2 */ sb $zero, 0x1d2($s0) +.L80047F08: +/* 048B08 80047F08 C60A0038 */ lwc1 $f10, 0x38($s0) +/* 048B0C 80047F0C C7A000C8 */ lwc1 $f0, 0xc8($sp) +/* 048B10 80047F10 46045182 */ mul.s $f6, $f10, $f4 +/* 048B14 80047F14 44812000 */ mtc1 $at, $f4 +/* 048B18 80047F18 C60A0040 */ lwc1 $f10, 0x40($s0) +/* 048B1C 80047F1C C7A200E8 */ lwc1 $f2, 0xe8($sp) +/* 048B20 80047F20 46003202 */ mul.s $f8, $f6, $f0 +/* 048B24 80047F24 C7AE00E4 */ lwc1 $f14, 0xe4($sp) +/* 048B28 80047F28 8E0F0148 */ lw $t7, 0x148($s0) +/* 048B2C 80047F2C 46045182 */ mul.s $f6, $f10, $f4 +/* 048B30 80047F30 46081080 */ add.s $f2, $f2, $f8 +/* 048B34 80047F34 46003202 */ mul.s $f8, $f6, $f0 +/* 048B38 80047F38 15E00059 */ bnez $t7, .L800480A0 +/* 048B3C 80047F3C 46087380 */ add.s $f14, $f14, $f8 +/* 048B40 80047F40 821801D2 */ lb $t8, 0x1d2($s0) +/* 048B44 80047F44 C630001C */ lwc1 $f16, 0x1c($s1) +/* 048B48 80047F48 C62C0024 */ lwc1 $f12, 0x24($s1) +/* 048B4C 80047F4C 13000005 */ beqz $t8, .L80047F64 +/* 048B50 80047F50 3C0D8012 */ lui $t5, %hi(D_8011D584) # $t5, 0x8012 +/* 048B54 80047F54 C60A011C */ lwc1 $f10, 0x11c($s0) +/* 048B58 80047F58 C6040120 */ lwc1 $f4, 0x120($s0) +/* 048B5C 80047F5C 460A8400 */ add.s $f16, $f16, $f10 +/* 048B60 80047F60 46046300 */ add.s $f12, $f12, $f4 +.L80047F64: +/* 048B64 80047F64 81ADD584 */ lb $t5, %lo(D_8011D584)($t5) +/* 048B68 80047F68 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 048B6C 80047F6C 11A0002E */ beqz $t5, .L80048028 +/* 048B70 80047F70 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 048B74 80047F74 44813800 */ mtc1 $at, $f7 +/* 048B78 80047F78 44803000 */ mtc1 $zero, $f6 +/* 048B7C 80047F7C 46008021 */ cvt.d.s $f0, $f16 +/* 048B80 80047F80 4620303C */ c.lt.d $f6, $f0 +/* 048B84 80047F84 44803000 */ mtc1 $zero, $f6 +/* 048B88 80047F88 45010007 */ bc1t .L80047FA8 +/* 048B8C 80047F8C 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 048B90 80047F90 44814800 */ mtc1 $at, $f9 +/* 048B94 80047F94 44804000 */ mtc1 $zero, $f8 +/* 048B98 80047F98 00000000 */ nop +/* 048B9C 80047F9C 4628003C */ c.lt.d $f0, $f8 +/* 048BA0 80047FA0 00000000 */ nop +/* 048BA4 80047FA4 45000007 */ bc1f .L80047FC4 +.L80047FA8: +/* 048BA8 80047FA8 3C01800E */ lui $at, %hi(D_800E6438 + 4) # $at, 0x800e +/* 048BAC 80047FAC C42B6438 */ lwc1 $f11, %lo(D_800E6438)($at) +/* 048BB0 80047FB0 C42A643C */ lwc1 $f10, %lo(D_800E6438 + 4)($at) +/* 048BB4 80047FB4 00000000 */ nop +/* 048BB8 80047FB8 462A0102 */ mul.d $f4, $f0, $f10 +/* 048BBC 80047FBC 10000003 */ b .L80047FCC +/* 048BC0 80047FC0 46202420 */ cvt.s.d $f16, $f4 +.L80047FC4: +/* 048BC4 80047FC4 44808000 */ mtc1 $zero, $f16 +/* 048BC8 80047FC8 00000000 */ nop +.L80047FCC: +/* 048BCC 80047FCC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 048BD0 80047FD0 44813800 */ mtc1 $at, $f7 +/* 048BD4 80047FD4 46006021 */ cvt.d.s $f0, $f12 +/* 048BD8 80047FD8 4620303C */ c.lt.d $f6, $f0 +/* 048BDC 80047FDC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 048BE0 80047FE0 45010007 */ bc1t .L80048000 +/* 048BE4 80047FE4 00000000 */ nop +/* 048BE8 80047FE8 44814800 */ mtc1 $at, $f9 +/* 048BEC 80047FEC 44804000 */ mtc1 $zero, $f8 +/* 048BF0 80047FF0 00000000 */ nop +/* 048BF4 80047FF4 4628003C */ c.lt.d $f0, $f8 +/* 048BF8 80047FF8 00000000 */ nop +/* 048BFC 80047FFC 45000007 */ bc1f .L8004801C +.L80048000: +/* 048C00 80048000 3C01800E */ lui $at, %hi(D_800E6440 + 4) # $at, 0x800e +/* 048C04 80048004 C42B6440 */ lwc1 $f11, %lo(D_800E6440)($at) +/* 048C08 80048008 C42A6444 */ lwc1 $f10, %lo(D_800E6440 + 4)($at) +/* 048C0C 8004800C 00000000 */ nop +/* 048C10 80048010 462A0102 */ mul.d $f4, $f0, $f10 +/* 048C14 80048014 1000000B */ b .L80048044 +/* 048C18 80048018 46202320 */ cvt.s.d $f12, $f4 +.L8004801C: +/* 048C1C 8004801C 44806000 */ mtc1 $zero, $f12 +/* 048C20 80048020 10000009 */ b .L80048048 +/* 048C24 80048024 C7A0012C */ lwc1 $f0, 0x12c($sp) +.L80048028: +/* 048C28 80048028 C6060084 */ lwc1 $f6, 0x84($s0) +/* 048C2C 8004802C C6040088 */ lwc1 $f4, 0x88($s0) +/* 048C30 80048030 46083282 */ mul.s $f10, $f6, $f8 +/* 048C34 80048034 00000000 */ nop +/* 048C38 80048038 46082182 */ mul.s $f6, $f4, $f8 +/* 048C3C 8004803C 460A1080 */ add.s $f2, $f2, $f10 +/* 048C40 80048040 46067380 */ add.s $f14, $f14, $f6 +.L80048044: +/* 048C44 80048044 C7A0012C */ lwc1 $f0, 0x12c($sp) +.L80048048: +/* 048C48 80048048 C6280020 */ lwc1 $f8, 0x20($s1) +/* 048C4C 8004804C 46008282 */ mul.s $f10, $f16, $f0 +/* 048C50 80048050 E7AE00E4 */ swc1 $f14, 0xe4($sp) +/* 048C54 80048054 E7A200E8 */ swc1 $f2, 0xe8($sp) +/* 048C58 80048058 02202025 */ move $a0, $s1 +/* 048C5C 8004805C 46004182 */ mul.s $f6, $f8, $f0 +/* 048C60 80048060 46025100 */ add.s $f4, $f10, $f2 +/* 048C64 80048064 44052000 */ mfc1 $a1, $f4 +/* 048C68 80048068 46006282 */ mul.s $f10, $f12, $f0 +/* 048C6C 8004806C 44063000 */ mfc1 $a2, $f6 +/* 048C70 80048070 460E5100 */ add.s $f4, $f10, $f14 +/* 048C74 80048074 44072000 */ mfc1 $a3, $f4 +/* 048C78 80048078 0C00455C */ jal func_80011570 +/* 048C7C 8004807C 00000000 */ nop +/* 048C80 80048080 1040000F */ beqz $v0, .L800480C0 +/* 048C84 80048084 3C198012 */ lui $t9, %hi(gCurrentPlayerIndex) # $t9, 0x8012 +/* 048C88 80048088 8F39D55C */ lw $t9, %lo(gCurrentPlayerIndex)($t9) +/* 048C8C 8004808C 2401FFFF */ li $at, -1 +/* 048C90 80048090 1321000B */ beq $t9, $at, .L800480C0 +/* 048C94 80048094 240A0001 */ li $t2, 1 +/* 048C98 80048098 10000009 */ b .L800480C0 +/* 048C9C 8004809C A3AA0067 */ sb $t2, 0x67($sp) +.L800480A0: +/* 048CA0 800480A0 44804000 */ mtc1 $zero, $f8 +/* 048CA4 800480A4 44803000 */ mtc1 $zero, $f6 +/* 048CA8 800480A8 8FA6012C */ lw $a2, 0x12c($sp) +/* 048CAC 800480AC 02202025 */ move $a0, $s1 +/* 048CB0 800480B0 02002825 */ move $a1, $s0 +/* 048CB4 800480B4 E7A800E8 */ swc1 $f8, 0xe8($sp) +/* 048CB8 800480B8 0C0141D5 */ jal func_80050754 +/* 048CBC 800480BC E7A600E4 */ swc1 $f6, 0xe4($sp) +.L800480C0: +/* 048CC0 800480C0 C60A00D0 */ lwc1 $f10, 0xd0($s0) +/* 048CC4 800480C4 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 048CC8 800480C8 44812800 */ mtc1 $at, $f5 +/* 048CCC 800480CC 44802000 */ mtc1 $zero, $f4 +/* 048CD0 800480D0 46005021 */ cvt.d.s $f0, $f10 +/* 048CD4 800480D4 46240202 */ mul.d $f8, $f0, $f4 +/* 048CD8 800480D8 C7A70050 */ lwc1 $f7, 0x50($sp) +/* 048CDC 800480DC C7A60054 */ lwc1 $f6, 0x54($sp) +/* 048CE0 800480E0 3C01401C */ li $at, 0x401C0000 # 2.437500 +/* 048CE4 800480E4 27A50118 */ addiu $a1, $sp, 0x118 +/* 048CE8 800480E8 46264282 */ mul.d $f10, $f8, $f6 +/* 048CEC 800480EC 462A0101 */ sub.d $f4, $f0, $f10 +/* 048CF0 800480F0 46202220 */ cvt.s.d $f8, $f4 +/* 048CF4 800480F4 44814800 */ mtc1 $at, $f9 +/* 048CF8 800480F8 E60800D0 */ swc1 $f8, 0xd0($s0) +/* 048CFC 800480FC C6260020 */ lwc1 $f6, 0x20($s1) +/* 048D00 80048100 44804000 */ mtc1 $zero, $f8 +/* 048D04 80048104 46003287 */ neg.s $f10, $f6 +/* 048D08 80048108 46005121 */ cvt.d.s $f4, $f10 +/* 048D0C 8004810C 46282182 */ mul.d $f6, $f4, $f8 +/* 048D10 80048110 3C01800E */ lui $at, %hi(D_800E6448) # $at, 0x800e +/* 048D14 80048114 44802800 */ mtc1 $zero, $f5 +/* 048D18 80048118 462032A0 */ cvt.s.d $f10, $f6 +/* 048D1C 8004811C E60A00D4 */ swc1 $f10, 0xd4($s0) +/* 048D20 80048120 C60400D4 */ lwc1 $f4, 0xd4($s0) +/* 048D24 80048124 C428644C */ lwc1 $f8, %lo(D_800E6448 + 4)($at) +/* 048D28 80048128 C4296448 */ lwc1 $f9, %lo(D_800E6448)($at) +/* 048D2C 8004812C 460020A1 */ cvt.d.s $f2, $f4 +/* 048D30 80048130 4622403C */ c.lt.d $f8, $f2 +/* 048D34 80048134 44802000 */ mtc1 $zero, $f4 +/* 048D38 80048138 45000007 */ bc1f .L80048158 +/* 048D3C 8004813C 3C01420C */ li $at, 0x420C0000 # 35.000000 +/* 048D40 80048140 44813000 */ mtc1 $at, $f6 +/* 048D44 80048144 00000000 */ nop +/* 048D48 80048148 E60600D4 */ swc1 $f6, 0xd4($s0) +/* 048D4C 8004814C C60A00D4 */ lwc1 $f10, 0xd4($s0) +/* 048D50 80048150 00000000 */ nop +/* 048D54 80048154 460050A1 */ cvt.d.s $f2, $f10 +.L80048158: +/* 048D58 80048158 4624103C */ c.lt.d $f2, $f4 +/* 048D5C 8004815C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 048D60 80048160 45000004 */ bc1f .L80048174 +/* 048D64 80048164 00000000 */ nop +/* 048D68 80048168 44804000 */ mtc1 $zero, $f8 +/* 048D6C 8004816C 00000000 */ nop +/* 048D70 80048170 E60800D4 */ swc1 $f8, 0xd4($s0) +.L80048174: +/* 048D74 80048174 44817000 */ mtc1 $at, $f14 +/* 048D78 80048178 3C01800E */ lui $at, %hi(D_800E6450) # $at, 0x800e +/* 048D7C 8004817C C4266450 */ lwc1 $f6, %lo(D_800E6450)($at) +/* 048D80 80048180 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 048D84 80048184 E7A60118 */ swc1 $f6, 0x118($sp) +/* 048D88 80048188 C62C0010 */ lwc1 $f12, 0x10($s1) +/* 048D8C 8004818C 0C00AB42 */ jal func_8002AD08 +/* 048D90 80048190 E7AE0114 */ swc1 $f14, 0x114($sp) +/* 048D94 80048194 00023E00 */ sll $a3, $v0, 0x18 +/* 048D98 80048198 00025E00 */ sll $t3, $v0, 0x18 +/* 048D9C 8004819C 000B7603 */ sra $t6, $t3, 0x18 +/* 048DA0 800481A0 00076603 */ sra $t4, $a3, 0x18 +/* 048DA4 800481A4 C7AE0114 */ lwc1 $f14, 0x114($sp) +/* 048DA8 800481A8 11C00025 */ beqz $t6, .L80048240 +/* 048DAC 800481AC 01803825 */ move $a3, $t4 +/* 048DB0 800481B0 C60E002C */ lwc1 $f14, 0x2c($s0) +/* 048DB4 800481B4 44805000 */ mtc1 $zero, $f10 +/* 048DB8 800481B8 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 048DBC 800481BC 460A703C */ c.lt.s $f14, $f10 +/* 048DC0 800481C0 44812800 */ mtc1 $at, $f5 +/* 048DC4 800481C4 45000002 */ bc1f .L800481D0 +/* 048DC8 800481C8 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 048DCC 800481CC 46007387 */ neg.s $f14, $f14 +.L800481D0: +/* 048DD0 800481D0 44802000 */ mtc1 $zero, $f4 +/* 048DD4 800481D4 46007021 */ cvt.d.s $f0, $f14 +/* 048DD8 800481D8 4620203C */ c.lt.d $f4, $f0 +/* 048DDC 800481DC 240F0005 */ li $t7, 5 +/* 048DE0 800481E0 45000004 */ bc1f .L800481F4 +/* 048DE4 800481E4 00000000 */ nop +/* 048DE8 800481E8 44817000 */ mtc1 $at, $f14 +/* 048DEC 800481EC 00000000 */ nop +/* 048DF0 800481F0 46007021 */ cvt.d.s $f0, $f14 +.L800481F4: +/* 048DF4 800481F4 3C01800E */ lui $at, %hi(D_800E6458 + 4) # $at, 0x800e +/* 048DF8 800481F8 C4296458 */ lwc1 $f9, %lo(D_800E6458)($at) +/* 048DFC 800481FC C428645C */ lwc1 $f8, %lo(D_800E6458 + 4)($at) +/* 048E00 80048200 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 048E04 80048204 46280182 */ mul.d $f6, $f0, $f8 +/* 048E08 80048208 C7A40118 */ lwc1 $f4, 0x118($sp) +/* 048E0C 8004820C 462033A0 */ cvt.s.d $f14, $f6 +/* 048E10 80048210 460E5081 */ sub.s $f2, $f10, $f14 +/* 048E14 80048214 4604103C */ c.lt.s $f2, $f4 +/* 048E18 80048218 00000000 */ nop +/* 048E1C 8004821C 45000005 */ bc1f .L80048234 +/* 048E20 80048220 00000000 */ nop +/* 048E24 80048224 46022201 */ sub.s $f8, $f4, $f2 +/* 048E28 80048228 A20F01E5 */ sb $t7, 0x1e5($s0) +/* 048E2C 8004822C 10000004 */ b .L80048240 +/* 048E30 80048230 E60800C0 */ swc1 $f8, 0xc0($s0) +.L80048234: +/* 048E34 80048234 44803000 */ mtc1 $zero, $f6 +/* 048E38 80048238 00000000 */ nop +/* 048E3C 8004823C E60600C0 */ swc1 $f6, 0xc0($s0) +.L80048240: +/* 048E40 80048240 820201E5 */ lb $v0, 0x1e5($s0) +/* 048E44 80048244 00000000 */ nop +/* 048E48 80048248 18400003 */ blez $v0, .L80048258 +/* 048E4C 8004824C 2458FFFF */ addiu $t8, $v0, -1 +/* 048E50 80048250 10000004 */ b .L80048264 +/* 048E54 80048254 A21801E5 */ sb $t8, 0x1e5($s0) +.L80048258: +/* 048E58 80048258 44805000 */ mtc1 $zero, $f10 +/* 048E5C 8004825C 00000000 */ nop +/* 048E60 80048260 E60A00C0 */ swc1 $f10, 0xc0($s0) +.L80048264: +/* 048E64 80048264 820D01E5 */ lb $t5, 0x1e5($s0) +/* 048E68 80048268 00000000 */ nop +/* 048E6C 8004826C 19A0000F */ blez $t5, .L800482AC +/* 048E70 80048270 00000000 */ nop +/* 048E74 80048274 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 048E78 80048278 C6240010 */ lwc1 $f4, 0x10($s1) +/* 048E7C 8004827C 460E4180 */ add.s $f6, $f8, $f14 +/* 048E80 80048280 4606203C */ c.lt.s $f4, $f6 +/* 048E84 80048284 00000000 */ nop +/* 048E88 80048288 45000008 */ bc1f .L800482AC +/* 048E8C 8004828C 00000000 */ nop +/* 048E90 80048290 8E22004C */ lw $v0, 0x4c($s1) +/* 048E94 80048294 00000000 */ nop +/* 048E98 80048298 84590014 */ lh $t9, 0x14($v0) +/* 048E9C 8004829C 00000000 */ nop +/* 048EA0 800482A0 372A0010 */ ori $t2, $t9, 0x10 +/* 048EA4 800482A4 10000007 */ b .L800482C4 +/* 048EA8 800482A8 A44A0014 */ sh $t2, 0x14($v0) +.L800482AC: +/* 048EAC 800482AC 8E22004C */ lw $v0, 0x4c($s1) +/* 048EB0 800482B0 00000000 */ nop +/* 048EB4 800482B4 844C0014 */ lh $t4, 0x14($v0) +/* 048EB8 800482B8 00000000 */ nop +/* 048EBC 800482BC 318BFFEF */ andi $t3, $t4, 0xffef +/* 048EC0 800482C0 A44B0014 */ sh $t3, 0x14($v0) +.L800482C4: +/* 048EC4 800482C4 C7A80118 */ lwc1 $f8, 0x118($sp) +/* 048EC8 800482C8 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 048ECC 800482CC 460E4100 */ add.s $f4, $f8, $f14 +/* 048ED0 800482D0 44804000 */ mtc1 $zero, $f8 +/* 048ED4 800482D4 46045181 */ sub.s $f6, $f10, $f4 +/* 048ED8 800482D8 44804800 */ mtc1 $zero, $f9 +/* 048EDC 800482DC E7A60118 */ swc1 $f6, 0x118($sp) +/* 048EE0 800482E0 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 048EE4 800482E4 00000000 */ nop +/* 048EE8 800482E8 460060A1 */ cvt.d.s $f2, $f12 +/* 048EEC 800482EC 4622403C */ c.lt.d $f8, $f2 +/* 048EF0 800482F0 00000000 */ nop +/* 048EF4 800482F4 45000017 */ bc1f .L80048354 +/* 048EF8 800482F8 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 +/* 048EFC 800482FC 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) +/* 048F00 80048300 00004025 */ move $t0, $zero +/* 048F04 80048304 31CF0010 */ andi $t7, $t6, 0x10 +/* 048F08 80048308 11E00006 */ beqz $t7, .L80048324 +/* 048F0C 8004830C 02202025 */ move $a0, $s1 +/* 048F10 80048310 3C088012 */ lui $t0, %hi(gCurrentStickX) # $t0, 0x8012 +/* 048F14 80048314 8D08D534 */ lw $t0, %lo(gCurrentStickX)($t0) +/* 048F18 80048318 00000000 */ nop +/* 048F1C 8004831C 0008C040 */ sll $t8, $t0, 1 +/* 048F20 80048320 03004025 */ move $t0, $t8 +.L80048324: +/* 048F24 80048324 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 048F28 80048328 44815000 */ mtc1 $at, $f10 +/* 048F2C 8004832C 8FAD0128 */ lw $t5, 0x128($sp) +/* 048F30 80048330 02002825 */ move $a1, $s0 +/* 048F34 80048334 27A600D4 */ addiu $a2, $sp, 0xd4 +/* 048F38 80048338 AFA80014 */ sw $t0, 0x14($sp) +/* 048F3C 8004833C E7AA0018 */ swc1 $f10, 0x18($sp) +/* 048F40 80048340 0C012538 */ jal func_800494E0 +/* 048F44 80048344 AFAD0010 */ sw $t5, 0x10($sp) +/* 048F48 80048348 C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 048F4C 8004834C 00000000 */ nop +/* 048F50 80048350 460060A1 */ cvt.d.s $f2, $f12 +.L80048354: +/* 048F54 80048354 44802800 */ mtc1 $zero, $f5 +/* 048F58 80048358 44802000 */ mtc1 $zero, $f4 +/* 048F5C 8004835C 3C198012 */ lui $t9, %hi(gCurrentPlayerIndex) # $t9, 0x8012 +/* 048F60 80048360 4622203C */ c.lt.d $f4, $f2 +/* 048F64 80048364 00000000 */ nop +/* 048F68 80048368 45000013 */ bc1f .L800483B8 +/* 048F6C 8004836C 00000000 */ nop +/* 048F70 80048370 C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 048F74 80048374 C6260010 */ lwc1 $f6, 0x10($s1) +/* 048F78 80048378 46086282 */ mul.s $f10, $f12, $f8 +/* 048F7C 8004837C 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 048F80 80048380 44813800 */ mtc1 $at, $f7 +/* 048F84 80048384 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 048F88 80048388 460A3100 */ add.s $f4, $f6, $f10 +/* 048F8C 8004838C 44803000 */ mtc1 $zero, $f6 +/* 048F90 80048390 E6240010 */ swc1 $f4, 0x10($s1) +/* 048F94 80048394 C60800C4 */ lwc1 $f8, 0xc4($s0) +/* 048F98 80048398 44802000 */ mtc1 $zero, $f4 +/* 048F9C 8004839C 46004021 */ cvt.d.s $f0, $f8 +/* 048FA0 800483A0 44812800 */ mtc1 $at, $f5 +/* 048FA4 800483A4 46203281 */ sub.d $f10, $f6, $f0 +/* 048FA8 800483A8 46245202 */ mul.d $f8, $f10, $f4 +/* 048FAC 800483AC 46280180 */ add.d $f6, $f0, $f8 +/* 048FB0 800483B0 462032A0 */ cvt.s.d $f10, $f6 +/* 048FB4 800483B4 E60A00C4 */ swc1 $f10, 0xc4($s0) +.L800483B8: +/* 048FB8 800483B8 8F39D55C */ lw $t9, %lo(gCurrentPlayerIndex)($t9) +/* 048FBC 800483BC 820801D2 */ lb $t0, 0x1d2($s0) +/* 048FC0 800483C0 2401FFFF */ li $at, -1 +/* 048FC4 800483C4 1721000E */ bne $t9, $at, .L80048400 +/* 048FC8 800483C8 8FA60128 */ lw $a2, 0x128($sp) +/* 048FCC 800483CC 0C008D5A */ jal func_80023568 +/* 048FD0 800483D0 AFA800C4 */ sw $t0, 0xc4($sp) +/* 048FD4 800483D4 8FA800C4 */ lw $t0, 0xc4($sp) +/* 048FD8 800483D8 14400008 */ bnez $v0, .L800483FC +/* 048FDC 800483DC 02202025 */ move $a0, $s1 +/* 048FE0 800483E0 8FA60128 */ lw $a2, 0x128($sp) +/* 048FE4 800483E4 02002825 */ move $a1, $s0 +/* 048FE8 800483E8 0C0156A1 */ jal func_80055A84 +/* 048FEC 800483EC AFA800C4 */ sw $t0, 0xc4($sp) +/* 048FF0 800483F0 8FA800C4 */ lw $t0, 0xc4($sp) +/* 048FF4 800483F4 10000008 */ b .L80048418 +/* 048FF8 800483F8 00000000 */ nop +.L800483FC: +/* 048FFC 800483FC 8FA60128 */ lw $a2, 0x128($sp) +.L80048400: +/* 049000 80048400 02202025 */ move $a0, $s1 +/* 049004 80048404 02002825 */ move $a1, $s0 +/* 049008 80048408 0C0153F4 */ jal func_80054FD0 +/* 04900C 8004840C AFA800C4 */ sw $t0, 0xc4($sp) +/* 049010 80048410 8FA800C4 */ lw $t0, 0xc4($sp) +/* 049014 80048414 00000000 */ nop +.L80048418: +/* 049018 80048418 15000006 */ bnez $t0, .L80048434 +/* 04901C 8004841C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 049020 80048420 820A01D2 */ lb $t2, 0x1d2($s0) +/* 049024 80048424 00000000 */ nop +/* 049028 80048428 11400002 */ beqz $t2, .L80048434 +/* 04902C 8004842C 00000000 */ nop +/* 049030 80048430 24080001 */ li $t0, 1 +.L80048434: +/* 049034 80048434 A20801D2 */ sb $t0, 0x1d2($s0) +/* 049038 80048438 C7A8012C */ lwc1 $f8, 0x12c($sp) +/* 04903C 8004843C 44812000 */ mtc1 $at, $f4 +/* 049040 80048440 C7AA00E8 */ lwc1 $f10, 0xe8($sp) +/* 049044 80048444 46082083 */ div.s $f2, $f4, $f8 +/* 049048 80048448 C7A60110 */ lwc1 $f6, 0x110($sp) +/* 04904C 8004844C C628000C */ lwc1 $f8, 0xc($s1) +/* 049050 80048450 460A3100 */ add.s $f4, $f6, $f10 +/* 049054 80048454 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012 +/* 049058 80048458 C42AD548 */ lwc1 $f10, %lo(D_8011D548)($at) +/* 04905C 8004845C 46044181 */ sub.s $f6, $f8, $f4 +/* 049060 80048460 C7A40108 */ lwc1 $f4, 0x108($sp) +/* 049064 80048464 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012 +/* 049068 80048468 3C03800E */ lui $v1, %hi(gNumViewports) # $v1, 0x800e +/* 04906C 8004846C 2463CB98 */ addiu $v1, %lo(gNumViewports) # addiu $v1, $v1, -0x3468 +/* 049070 80048470 460A3201 */ sub.s $f8, $f6, $f10 +/* 049074 80048474 C7A600E4 */ lwc1 $f6, 0xe4($sp) +/* 049078 80048478 46024402 */ mul.s $f16, $f8, $f2 +/* 04907C 8004847C C6280014 */ lwc1 $f8, 0x14($s1) +/* 049080 80048480 46062280 */ add.s $f10, $f4, $f6 +/* 049084 80048484 C426D54C */ lwc1 $f6, %lo(D_8011D54C)($at) +/* 049088 80048488 460A4101 */ sub.s $f4, $f8, $f10 +/* 04908C 8004848C E630001C */ swc1 $f16, 0x1c($s1) +/* 049090 80048490 46062201 */ sub.s $f8, $f4, $f6 +/* 049094 80048494 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 049098 80048498 46024302 */ mul.s $f12, $f8, $f2 +/* 04909C 8004849C 3C01800E */ lui $at, %hi(D_800E6460) # $at, 0x800e +/* 0490A0 800484A0 E62C0024 */ swc1 $f12, 0x24($s1) +/* 0490A4 800484A4 C7A4010C */ lwc1 $f4, 0x10c($sp) +/* 0490A8 800484A8 00000000 */ nop +/* 0490AC 800484AC 46045181 */ sub.s $f6, $f10, $f4 +/* 0490B0 800484B0 46023202 */ mul.s $f8, $f6, $f2 +/* 0490B4 800484B4 E6280020 */ swc1 $f8, 0x20($s1) +/* 0490B8 800484B8 C60A0008 */ lwc1 $f10, 8($s0) +/* 0490BC 800484BC C604002C */ lwc1 $f4, 0x2c($s0) +/* 0490C0 800484C0 C4286464 */ lwc1 $f8, %lo(D_800E6460 + 4)($at) +/* 0490C4 800484C4 C4296460 */ lwc1 $f9, %lo(D_800E6460)($at) +/* 0490C8 800484C8 46005021 */ cvt.d.s $f0, $f10 +/* 0490CC 800484CC 460021A1 */ cvt.d.s $f6, $f4 +/* 0490D0 800484D0 46283282 */ mul.d $f10, $f6, $f8 +/* 0490D4 800484D4 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 0490D8 800484D8 44813800 */ mtc1 $at, $f7 +/* 0490DC 800484DC 44803000 */ mtc1 $zero, $f6 +/* 0490E0 800484E0 462A0100 */ add.d $f4, $f0, $f10 +/* 0490E4 800484E4 46262202 */ mul.d $f8, $f4, $f6 +/* 0490E8 800484E8 44803000 */ mtc1 $zero, $f6 +/* 0490EC 800484EC 44803800 */ mtc1 $zero, $f7 +/* 0490F0 800484F0 46280281 */ sub.d $f10, $f0, $f8 +/* 0490F4 800484F4 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 0490F8 800484F8 46205120 */ cvt.s.d $f4, $f10 +/* 0490FC 800484FC 460042A1 */ cvt.d.s $f10, $f8 +/* 049100 80048500 462A303C */ c.lt.d $f6, $f10 +/* 049104 80048504 E6040008 */ swc1 $f4, 8($s0) +/* 049108 80048508 45000010 */ bc1f .L8004854C +/* 04910C 8004850C 00000000 */ nop +/* 049110 80048510 820C01FB */ lb $t4, 0x1fb($s0) +/* 049114 80048514 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 049118 80048518 1580000C */ bnez $t4, .L8004854C +/* 04911C 8004851C 00000000 */ nop +/* 049120 80048520 C6280020 */ lwc1 $f8, 0x20($s1) +/* 049124 80048524 44812800 */ mtc1 $at, $f5 +/* 049128 80048528 44802000 */ mtc1 $zero, $f4 +/* 04912C 8004852C 460041A1 */ cvt.d.s $f6, $f8 +/* 049130 80048530 4626203C */ c.lt.d $f4, $f6 +/* 049134 80048534 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 049138 80048538 45000004 */ bc1f .L8004854C +/* 04913C 8004853C 00000000 */ nop +/* 049140 80048540 44815000 */ mtc1 $at, $f10 +/* 049144 80048544 00000000 */ nop +/* 049148 80048548 E62A0020 */ swc1 $f10, 0x20($s1) +.L8004854C: +/* 04914C 8004854C 8C6B0000 */ lw $t3, ($v1) +/* 049150 80048550 00000000 */ nop +/* 049154 80048554 29610002 */ slti $at, $t3, 2 +/* 049158 80048558 10200026 */ beqz $at, .L800485F4 +/* 04915C 8004855C 00000000 */ nop +/* 049160 80048560 8E2E0040 */ lw $t6, 0x40($s1) +/* 049164 80048564 3C188012 */ lui $t8, %hi(gCurrentRacerInput) # $t8, 0x8012 +/* 049168 80048568 81CF0057 */ lb $t7, 0x57($t6) +/* 04916C 8004856C 00000000 */ nop +/* 049170 80048570 29E10009 */ slti $at, $t7, 9 +/* 049174 80048574 1420001F */ bnez $at, .L800485F4 +/* 049178 80048578 00000000 */ nop +/* 04917C 8004857C 8F18D528 */ lw $t8, %lo(gCurrentRacerInput)($t8) +/* 049180 80048580 34018010 */ li $at, 32784 +/* 049184 80048584 330D8010 */ andi $t5, $t8, 0x8010 +/* 049188 80048588 15A10011 */ bne $t5, $at, .L800485D0 +/* 04918C 8004858C 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 +/* 049190 80048590 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) +/* 049194 80048594 02202025 */ move $a0, $s1 +/* 049198 80048598 2841FFE2 */ slti $at, $v0, -0x1e +/* 04919C 8004859C 14200004 */ bnez $at, .L800485B0 +/* 0491A0 800485A0 24050008 */ li $a1, 8 +/* 0491A4 800485A4 2841001F */ slti $at, $v0, 0x1f +/* 0491A8 800485A8 1420000A */ bnez $at, .L800485D4 +/* 0491AC 800485AC 8FA60128 */ lw $a2, 0x128($sp) +.L800485B0: +/* 0491B0 800485B0 8FA60128 */ lw $a2, 0x128($sp) +/* 0491B4 800485B4 24070080 */ li $a3, 128 +/* 0491B8 800485B8 0006CA80 */ sll $t9, $a2, 0xa +/* 0491BC 800485BC 0C02D19A */ jal func_800B4668 +/* 0491C0 800485C0 03203025 */ move $a2, $t9 +/* 0491C4 800485C4 3C03800E */ lui $v1, %hi(gNumViewports) # $v1, 0x800e +/* 0491C8 800485C8 1000000A */ b .L800485F4 +/* 0491CC 800485CC 2463CB98 */ addiu $v1, %lo(gNumViewports) # addiu $v1, $v1, -0x3468 +.L800485D0: +/* 0491D0 800485D0 8FA60128 */ lw $a2, 0x128($sp) +.L800485D4: +/* 0491D4 800485D4 02202025 */ move $a0, $s1 +/* 0491D8 800485D8 00065240 */ sll $t2, $a2, 9 +/* 0491DC 800485DC 01403025 */ move $a2, $t2 +/* 0491E0 800485E0 24050008 */ li $a1, 8 +/* 0491E4 800485E4 0C02D1AF */ jal func_800B46BC +/* 0491E8 800485E8 24070020 */ li $a3, 32 +/* 0491EC 800485EC 3C03800E */ lui $v1, %hi(gNumViewports) # $v1, 0x800e +/* 0491F0 800485F0 2463CB98 */ addiu $v1, %lo(gNumViewports) # addiu $v1, $v1, -0x3468 +.L800485F4: +/* 0491F4 800485F4 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 0491F8 800485F8 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 0491FC 800485FC 00000000 */ nop +/* 049200 80048600 04400057 */ bltz $v0, .L80048760 +/* 049204 80048604 2401FFFF */ li $at, -1 +/* 049208 80048608 C60400C0 */ lwc1 $f4, 0xc0($s0) +/* 04920C 8004860C 44804800 */ mtc1 $zero, $f9 +/* 049210 80048610 44804000 */ mtc1 $zero, $f8 +/* 049214 80048614 460021A1 */ cvt.d.s $f6, $f4 +/* 049218 80048618 4626403C */ c.lt.d $f8, $f6 +/* 04921C 8004861C 00000000 */ nop +/* 049220 80048620 4500004F */ bc1f .L80048760 +/* 049224 80048624 2401FFFF */ li $at, -1 +/* 049228 80048628 8C6C0000 */ lw $t4, ($v1) +/* 04922C 8004862C 00000000 */ nop +/* 049230 80048630 29810003 */ slti $at, $t4, 3 +/* 049234 80048634 10200035 */ beqz $at, .L8004870C +/* 049238 80048638 00000000 */ nop +/* 04923C 8004863C C620001C */ lwc1 $f0, 0x1c($s1) +/* 049240 80048640 C62C0020 */ lwc1 $f12, 0x20($s1) +/* 049244 80048644 46000282 */ mul.s $f10, $f0, $f0 +/* 049248 80048648 C62E0024 */ lwc1 $f14, 0x24($s1) +/* 04924C 8004864C 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 049250 80048650 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 049254 80048654 460C6102 */ mul.s $f4, $f12, $f12 +/* 049258 80048658 00000000 */ nop +/* 04925C 8004865C 460E7182 */ mul.s $f6, $f14, $f14 +/* 049260 80048660 46045200 */ add.s $f8, $f10, $f4 +/* 049264 80048664 44815000 */ mtc1 $at, $f10 +/* 049268 80048668 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 04926C 8004866C 46064080 */ add.s $f2, $f8, $f6 +/* 049270 80048670 4602503C */ c.lt.s $f10, $f2 +/* 049274 80048674 00000000 */ nop +/* 049278 80048678 45000021 */ bc1f .L80048700 +/* 04927C 8004867C 00000000 */ nop +/* 049280 80048680 44812000 */ mtc1 $at, $f4 +/* 049284 80048684 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 049288 80048688 4604103C */ c.lt.s $f2, $f4 +/* 04928C 8004868C 44814000 */ mtc1 $at, $f8 +/* 049290 80048690 45000005 */ bc1f .L800486A8 +/* 049294 80048694 00000000 */ nop +/* 049298 80048698 8E2B0074 */ lw $t3, 0x74($s1) +/* 04929C 8004869C 00000000 */ nop +/* 0492A0 800486A0 356E000C */ ori $t6, $t3, 0xc +/* 0492A4 800486A4 AE2E0074 */ sw $t6, 0x74($s1) +.L800486A8: +/* 0492A8 800486A8 4602403C */ c.lt.s $f8, $f2 +/* 0492AC 800486AC 00000000 */ nop +/* 0492B0 800486B0 45000005 */ bc1f .L800486C8 +/* 0492B4 800486B4 00000000 */ nop +/* 0492B8 800486B8 8E2F0074 */ lw $t7, 0x74($s1) +/* 0492BC 800486BC 00000000 */ nop +/* 0492C0 800486C0 35F80003 */ ori $t8, $t7, 3 +/* 0492C4 800486C4 AE380074 */ sw $t8, 0x74($s1) +.L800486C8: +/* 0492C8 800486C8 8C6D0000 */ lw $t5, ($v1) +/* 0492CC 800486CC 24010001 */ li $at, 1 +/* 0492D0 800486D0 15A1000B */ bne $t5, $at, .L80048700 +/* 0492D4 800486D4 3C014124 */ li $at, 0x41240000 # 10.250000 +/* 0492D8 800486D8 44813000 */ mtc1 $at, $f6 +/* 0492DC 800486DC 00000000 */ nop +/* 0492E0 800486E0 4602303C */ c.lt.s $f6, $f2 +/* 0492E4 800486E4 00000000 */ nop +/* 0492E8 800486E8 45000005 */ bc1f .L80048700 +/* 0492EC 800486EC 00000000 */ nop +/* 0492F0 800486F0 8E390074 */ lw $t9, 0x74($s1) +/* 0492F4 800486F4 00000000 */ nop +/* 0492F8 800486F8 372A0040 */ ori $t2, $t9, 0x40 +/* 0492FC 800486FC AE2A0074 */ sw $t2, 0x74($s1) +.L80048700: +/* 049300 80048700 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 049304 80048704 10000016 */ b .L80048760 +/* 049308 80048708 2401FFFF */ li $at, -1 +.L8004870C: +/* 04930C 8004870C C60E002C */ lwc1 $f14, 0x2c($s0) +/* 049310 80048710 44805000 */ mtc1 $zero, $f10 +/* 049314 80048714 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 049318 80048718 460A703C */ c.lt.s $f14, $f10 +/* 04931C 8004871C 44812000 */ mtc1 $at, $f4 +/* 049320 80048720 45000003 */ bc1f .L80048730 +/* 049324 80048724 00000000 */ nop +/* 049328 80048728 10000002 */ b .L80048734 +/* 04932C 8004872C 46007087 */ neg.s $f2, $f14 +.L80048730: +/* 049330 80048730 46007086 */ mov.s $f2, $f14 +.L80048734: +/* 049334 80048734 4602203C */ c.lt.s $f4, $f2 +/* 049338 80048738 00000000 */ nop +/* 04933C 8004873C 45000008 */ bc1f .L80048760 +/* 049340 80048740 2401FFFF */ li $at, -1 +/* 049344 80048744 8E2C0074 */ lw $t4, 0x74($s1) +/* 049348 80048748 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 04934C 8004874C 358B000C */ ori $t3, $t4, 0xc +/* 049350 80048750 AE2B0074 */ sw $t3, 0x74($s1) +/* 049354 80048754 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 049358 80048758 00000000 */ nop +/* 04935C 8004875C 2401FFFF */ li $at, -1 +.L80048760: +/* 049360 80048760 10410046 */ beq $v0, $at, .L8004887C +/* 049364 80048764 00000000 */ nop +/* 049368 80048768 820E01D3 */ lb $t6, 0x1d3($s0) +/* 04936C 8004876C 00000000 */ nop +/* 049370 80048770 15C00042 */ bnez $t6, .L8004887C +/* 049374 80048774 00000000 */ nop +/* 049378 80048778 8C6F0000 */ lw $t7, ($v1) +/* 04937C 8004877C 00000000 */ nop +/* 049380 80048780 29E10002 */ slti $at, $t7, 2 +/* 049384 80048784 1020003D */ beqz $at, .L8004887C +/* 049388 80048788 00000000 */ nop +/* 04938C 8004878C 0C0078A7 */ jal get_misc_asset +/* 049390 80048790 24040014 */ li $a0, 20 +/* 049394 80048794 82080203 */ lb $t0, 0x203($s0) +/* 049398 80048798 82180002 */ lb $t8, 2($s0) +/* 04939C 8004879C 31190004 */ andi $t9, $t0, 4 +/* 0493A0 800487A0 00195083 */ sra $t2, $t9, 2 +/* 0493A4 800487A4 2548000A */ addiu $t0, $t2, 0xa +/* 0493A8 800487A8 2901000B */ slti $at, $t0, 0xb +/* 0493AC 800487AC 001869C0 */ sll $t5, $t8, 7 +/* 0493B0 800487B0 14200012 */ bnez $at, .L800487FC +/* 0493B4 800487B4 01A21821 */ addu $v1, $t5, $v0 +/* 0493B8 800487B8 906C0070 */ lbu $t4, 0x70($v1) +/* 0493BC 800487BC 240E0001 */ li $t6, 1 +/* 0493C0 800487C0 1D800009 */ bgtz $t4, .L800487E8 +/* 0493C4 800487C4 00000000 */ nop +/* 0493C8 800487C8 C4660074 */ lwc1 $f6, 0x74($v1) +/* 0493CC 800487CC 44804800 */ mtc1 $zero, $f9 +/* 0493D0 800487D0 44804000 */ mtc1 $zero, $f8 +/* 0493D4 800487D4 460032A1 */ cvt.d.s $f10, $f6 +/* 0493D8 800487D8 462A403C */ c.lt.d $f8, $f10 +/* 0493DC 800487DC 00000000 */ nop +/* 0493E0 800487E0 45000026 */ bc1f .L8004887C +/* 0493E4 800487E4 00000000 */ nop +.L800487E8: +/* 0493E8 800487E8 8E2B0074 */ lw $t3, 0x74($s1) +/* 0493EC 800487EC 010E7804 */ sllv $t7, $t6, $t0 +/* 0493F0 800487F0 016FC025 */ or $t8, $t3, $t7 +/* 0493F4 800487F4 10000021 */ b .L8004887C +/* 0493F8 800487F8 AE380074 */ sw $t8, 0x74($s1) +.L800487FC: +/* 0493FC 800487FC 90620070 */ lbu $v0, 0x70($v1) +/* 049400 80048800 24010002 */ li $at, 2 +/* 049404 80048804 14410010 */ bne $v0, $at, .L80048848 +/* 049408 80048808 28410002 */ slti $at, $v0, 2 +/* 04940C 8004880C C4640074 */ lwc1 $f4, 0x74($v1) +/* 049410 80048810 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 049414 80048814 44814800 */ mtc1 $at, $f9 +/* 049418 80048818 44804000 */ mtc1 $zero, $f8 +/* 04941C 8004881C 460021A1 */ cvt.d.s $f6, $f4 +/* 049420 80048820 4628303C */ c.lt.d $f6, $f8 +/* 049424 80048824 24190001 */ li $t9, 1 +/* 049428 80048828 45000007 */ bc1f .L80048848 +/* 04942C 8004882C 28410002 */ slti $at, $v0, 2 +/* 049430 80048830 8E2D0074 */ lw $t5, 0x74($s1) +/* 049434 80048834 01195004 */ sllv $t2, $t9, $t0 +/* 049438 80048838 01AA6025 */ or $t4, $t5, $t2 +/* 04943C 8004883C 1000000F */ b .L8004887C +/* 049440 80048840 AE2C0074 */ sw $t4, 0x74($s1) +/* 049444 80048844 28410002 */ slti $at, $v0, 2 +.L80048848: +/* 049448 80048848 1020000C */ beqz $at, .L8004887C +/* 04944C 8004884C 00000000 */ nop +/* 049450 80048850 44805000 */ mtc1 $zero, $f10 +/* 049454 80048854 C4640074 */ lwc1 $f4, 0x74($v1) +/* 049458 80048858 240B0001 */ li $t3, 1 +/* 04945C 8004885C 4604503C */ c.lt.s $f10, $f4 +/* 049460 80048860 00000000 */ nop +/* 049464 80048864 45000005 */ bc1f .L8004887C +/* 049468 80048868 00000000 */ nop +/* 04946C 8004886C 8E2E0074 */ lw $t6, 0x74($s1) +/* 049470 80048870 010B7804 */ sllv $t7, $t3, $t0 +/* 049474 80048874 01CFC025 */ or $t8, $t6, $t7 +/* 049478 80048878 AE380074 */ sw $t8, 0x74($s1) +.L8004887C: +/* 04947C 8004887C 82190201 */ lb $t9, 0x201($s0) +/* 049480 80048880 00000000 */ nop +/* 049484 80048884 17200004 */ bnez $t9, .L80048898 +/* 049488 80048888 8FAD0128 */ lw $t5, 0x128($sp) +/* 04948C 8004888C 10000015 */ b .L800488E4 +/* 049490 80048890 AE200074 */ sw $zero, 0x74($s1) +/* 049494 80048894 8FAD0128 */ lw $t5, 0x128($sp) +.L80048898: +/* 049498 80048898 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 +/* 04949C 8004889C 448D3000 */ mtc1 $t5, $f6 +/* 0494A0 800488A0 C42AD56C */ lwc1 $f10, %lo(gCurrentRacerWeightStat)($at) +/* 0494A4 800488A4 46803020 */ cvt.s.w $f0, $f6 +/* 0494A8 800488A8 C6280020 */ lwc1 $f8, 0x20($s1) +/* 0494AC 800488AC 02202025 */ move $a0, $s1 +/* 0494B0 800488B0 460A0102 */ mul.s $f4, $f0, $f10 +/* 0494B4 800488B4 46044180 */ add.s $f6, $f8, $f4 +/* 0494B8 800488B8 E6260020 */ swc1 $f6, 0x20($s1) +/* 0494BC 800488BC 8FA50128 */ lw $a1, 0x128($sp) +/* 0494C0 800488C0 0C02BDC5 */ jal func_800AF714 +/* 0494C4 800488C4 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 0494C8 800488C8 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 +/* 0494CC 800488CC C7A0004C */ lwc1 $f0, 0x4c($sp) +/* 0494D0 800488D0 C428D56C */ lwc1 $f8, %lo(gCurrentRacerWeightStat)($at) +/* 0494D4 800488D4 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 0494D8 800488D8 46080102 */ mul.s $f4, $f0, $f8 +/* 0494DC 800488DC 46045181 */ sub.s $f6, $f10, $f4 +/* 0494E0 800488E0 E6260020 */ swc1 $f6, 0x20($s1) +.L800488E4: +/* 0494E4 800488E4 862A0000 */ lh $t2, ($s1) +/* 0494E8 800488E8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 +/* 0494EC 800488EC 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 +/* 0494F0 800488F0 000A6023 */ negu $t4, $t2 +/* 0494F4 800488F4 A4AC0000 */ sh $t4, ($a1) +/* 0494F8 800488F8 862B0002 */ lh $t3, 2($s1) +/* 0494FC 800488FC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 049500 80048900 000B7023 */ negu $t6, $t3 +/* 049504 80048904 A4AE0002 */ sh $t6, 2($a1) +/* 049508 80048908 862F0004 */ lh $t7, 4($s1) +/* 04950C 8004890C 44814000 */ mtc1 $at, $f8 +/* 049510 80048910 44805000 */ mtc1 $zero, $f10 +/* 049514 80048914 44802000 */ mtc1 $zero, $f4 +/* 049518 80048918 44803000 */ mtc1 $zero, $f6 +/* 04951C 8004891C 000FC023 */ negu $t8, $t7 +/* 049520 80048920 A4B80004 */ sh $t8, 4($a1) +/* 049524 80048924 27A40068 */ addiu $a0, $sp, 0x68 +/* 049528 80048928 E4A80008 */ swc1 $f8, 8($a1) +/* 04952C 8004892C E4AA000C */ swc1 $f10, 0xc($a1) +/* 049530 80048930 E4A40010 */ swc1 $f4, 0x10($a1) +/* 049534 80048934 0C01BF9D */ jal object_transform_to_matrix_2 +/* 049538 80048938 E4A60014 */ swc1 $f6, 0x14($a1) +/* 04953C 8004893C 8E25001C */ lw $a1, 0x1c($s1) +/* 049540 80048940 8E260020 */ lw $a2, 0x20($s1) +/* 049544 80048944 8E270024 */ lw $a3, 0x24($s1) +/* 049548 80048948 26190030 */ addiu $t9, $s0, 0x30 +/* 04954C 8004894C 260D0034 */ addiu $t5, $s0, 0x34 +/* 049550 80048950 260A002C */ addiu $t2, $s0, 0x2c +/* 049554 80048954 AFAA0018 */ sw $t2, 0x18($sp) +/* 049558 80048958 AFAD0014 */ sw $t5, 0x14($sp) +/* 04955C 8004895C AFB90010 */ sw $t9, 0x10($sp) +/* 049560 80048960 0C01BD93 */ jal guMtxXFMF +/* 049564 80048964 27A40068 */ addiu $a0, $sp, 0x68 +/* 049568 80048968 820C01E2 */ lb $t4, 0x1e2($s0) +/* 04956C 8004896C 44804000 */ mtc1 $zero, $f8 +/* 049570 80048970 1580002B */ bnez $t4, .L80048A20 +/* 049574 80048974 24060004 */ li $a2, 4 +/* 049578 80048978 820B01E5 */ lb $t3, 0x1e5($s0) +/* 04957C 8004897C 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 +/* 049580 80048980 15600027 */ bnez $t3, .L80048A20 +/* 049584 80048984 34018001 */ li $at, 32769 +/* 049588 80048988 8D08D538 */ lw $t0, %lo(gCurrentStickY)($t0) +/* 04958C 8004898C 86240002 */ lh $a0, 2($s1) +/* 049590 80048990 00084023 */ negu $t0, $t0 +/* 049594 80048994 00087180 */ sll $t6, $t0, 6 +/* 049598 80048998 31CFFFFF */ andi $t7, $t6, 0xffff +/* 04959C 8004899C 3098FFFF */ andi $t8, $a0, 0xffff +/* 0495A0 800489A0 01F81823 */ subu $v1, $t7, $t8 +/* 0495A4 800489A4 0061082A */ slt $at, $v1, $at +/* 0495A8 800489A8 14200003 */ bnez $at, .L800489B8 +/* 0495AC 800489AC 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 0495B0 800489B0 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 0495B4 800489B4 00611821 */ addu $v1, $v1, $at +.L800489B8: +/* 0495B8 800489B8 28618000 */ slti $at, $v1, -0x8000 +/* 0495BC 800489BC 10200002 */ beqz $at, .L800489C8 +/* 0495C0 800489C0 3401FFFF */ li $at, 65535 +/* 0495C4 800489C4 00611821 */ addu $v1, $v1, $at +.L800489C8: +/* 0495C8 800489C8 0003C883 */ sra $t9, $v1, 2 +/* 0495CC 800489CC 00996821 */ addu $t5, $a0, $t9 +/* 0495D0 800489D0 A62D0002 */ sh $t5, 2($s1) +/* 0495D4 800489D4 860501A4 */ lh $a1, 0x1a4($s0) +/* 0495D8 800489D8 34018001 */ li $at, 32769 +/* 0495DC 800489DC 30A2FFFF */ andi $v0, $a1, 0xffff +/* 0495E0 800489E0 00021023 */ negu $v0, $v0 +/* 0495E4 800489E4 0041082A */ slt $at, $v0, $at +/* 0495E8 800489E8 8FAA0128 */ lw $t2, 0x128($sp) +/* 0495EC 800489EC 14200003 */ bnez $at, .L800489FC +/* 0495F0 800489F0 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 0495F4 800489F4 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 0495F8 800489F8 00411021 */ addu $v0, $v0, $at +.L800489FC: +/* 0495FC 800489FC 28418000 */ slti $at, $v0, -0x8000 +/* 049600 80048A00 10200002 */ beqz $at, .L80048A0C +/* 049604 80048A04 3401FFFF */ li $at, 65535 +/* 049608 80048A08 00411021 */ addu $v0, $v0, $at +.L80048A0C: +/* 04960C 80048A0C 004A0019 */ multu $v0, $t2 +/* 049610 80048A10 00001012 */ mflo $v0 +/* 049614 80048A14 00026103 */ sra $t4, $v0, 4 +/* 049618 80048A18 00AC5821 */ addu $t3, $a1, $t4 +/* 04961C 80048A1C A60B01A4 */ sh $t3, 0x1a4($s0) +.L80048A20: +/* 049620 80048A20 3C0E8012 */ lui $t6, %hi(gRaceStartTimer) # $t6, 0x8012 +/* 049624 80048A24 8DCED540 */ lw $t6, %lo(gRaceStartTimer)($t6) +/* 049628 80048A28 3C0D8012 */ lui $t5, %hi(gCurrentButtonsPressed) # $t5, 0x8012 +/* 04962C 80048A2C 11C00007 */ beqz $t6, .L80048A4C +/* 049630 80048A30 02202025 */ move $a0, $s1 +/* 049634 80048A34 3C0F8012 */ lui $t7, %hi(gCurrentButtonsPressed) # $t7, 0x8012 +/* 049638 80048A38 8DEFD52C */ lw $t7, %lo(gCurrentButtonsPressed)($t7) +/* 04963C 80048A3C 2401FFEF */ li $at, -17 +/* 049640 80048A40 01E1C024 */ and $t8, $t7, $at +/* 049644 80048A44 3C018012 */ lui $at, %hi(gCurrentButtonsPressed) # $at, 0x8012 +/* 049648 80048A48 AC38D52C */ sw $t8, %lo(gCurrentButtonsPressed)($at) +.L80048A4C: +/* 04964C 80048A4C C60A00C0 */ lwc1 $f10, 0xc0($s0) +/* 049650 80048A50 00000000 */ nop +/* 049654 80048A54 460A4032 */ c.eq.s $f8, $f10 +/* 049658 80048A58 00000000 */ nop +/* 04965C 80048A5C 45000005 */ bc1f .L80048A74 +/* 049660 80048A60 00000000 */ nop +/* 049664 80048A64 821901E2 */ lb $t9, 0x1e2($s0) +/* 049668 80048A68 24010004 */ li $at, 4 +/* 04966C 80048A6C 17210002 */ bne $t9, $at, .L80048A78 +/* 049670 80048A70 00000000 */ nop +.L80048A74: +/* 049674 80048A74 A20001FB */ sb $zero, 0x1fb($s0) +.L80048A78: +/* 049678 80048A78 8DADD52C */ lw $t5, %lo(gCurrentButtonsPressed)($t5) +/* 04967C 80048A7C 00000000 */ nop +/* 049680 80048A80 31AA0010 */ andi $t2, $t5, 0x10 +/* 049684 80048A84 1140004A */ beqz $t2, .L80048BB0 +/* 049688 80048A88 00000000 */ nop +/* 04968C 80048A8C C60C00C0 */ lwc1 $f12, 0xc0($s0) +/* 049690 80048A90 44802000 */ mtc1 $zero, $f4 +/* 049694 80048A94 00000000 */ nop +/* 049698 80048A98 460C203C */ c.lt.s $f4, $f12 +/* 04969C 80048A9C 00000000 */ nop +/* 0496A0 80048AA0 45010006 */ bc1t .L80048ABC +/* 0496A4 80048AA4 00000000 */ nop +/* 0496A8 80048AA8 820C01E2 */ lb $t4, 0x1e2($s0) +/* 0496AC 80048AAC 00000000 */ nop +/* 0496B0 80048AB0 29810002 */ slti $at, $t4, 2 +/* 0496B4 80048AB4 1420003E */ bnez $at, .L80048BB0 +/* 0496B8 80048AB8 00000000 */ nop +.L80048ABC: +/* 0496BC 80048ABC 820B01FB */ lb $t3, 0x1fb($s0) +/* 0496C0 80048AC0 00000000 */ nop +/* 0496C4 80048AC4 1560003A */ bnez $t3, .L80048BB0 +/* 0496C8 80048AC8 00000000 */ nop +/* 0496CC 80048ACC 44803000 */ mtc1 $zero, $f6 +/* 0496D0 80048AD0 3C01400C */ li $at, 0x400C0000 # 2.187500 +/* 0496D4 80048AD4 460C3032 */ c.eq.s $f6, $f12 +/* 0496D8 80048AD8 00000000 */ nop +/* 0496DC 80048ADC 45010018 */ bc1t .L80048B40 +/* 0496E0 80048AE0 00000000 */ nop +/* 0496E4 80048AE4 C6280020 */ lwc1 $f8, 0x20($s1) +/* 0496E8 80048AE8 3C014012 */ li $at, 0x40120000 # 2.281250 +/* 0496EC 80048AEC 44812800 */ mtc1 $at, $f5 +/* 0496F0 80048AF0 44802000 */ mtc1 $zero, $f4 +/* 0496F4 80048AF4 460042A1 */ cvt.d.s $f10, $f8 +/* 0496F8 80048AF8 46245180 */ add.d $f6, $f10, $f4 +/* 0496FC 80048AFC 3C014016 */ li $at, 0x40160000 # 2.343750 +/* 049700 80048B00 46203220 */ cvt.s.d $f8, $f6 +/* 049704 80048B04 44812800 */ mtc1 $at, $f5 +/* 049708 80048B08 E6280020 */ swc1 $f8, 0x20($s1) +/* 04970C 80048B0C C62A0020 */ lwc1 $f10, 0x20($s1) +/* 049710 80048B10 44802000 */ mtc1 $zero, $f4 +/* 049714 80048B14 46005021 */ cvt.d.s $f0, $f10 +/* 049718 80048B18 4620203C */ c.lt.d $f4, $f0 +/* 04971C 80048B1C 3C0140B0 */ li $at, 0x40B00000 # 5.500000 +/* 049720 80048B20 45000011 */ bc1f .L80048B68 +/* 049724 80048B24 00000000 */ nop +/* 049728 80048B28 44813000 */ mtc1 $at, $f6 +/* 04972C 80048B2C 00000000 */ nop +/* 049730 80048B30 E6260020 */ swc1 $f6, 0x20($s1) +/* 049734 80048B34 C6280020 */ lwc1 $f8, 0x20($s1) +/* 049738 80048B38 1000000B */ b .L80048B68 +/* 04973C 80048B3C 46004021 */ cvt.d.s $f0, $f8 +.L80048B40: +/* 049740 80048B40 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 049744 80048B44 44813800 */ mtc1 $at, $f7 +/* 049748 80048B48 44803000 */ mtc1 $zero, $f6 +/* 04974C 80048B4C 46005121 */ cvt.d.s $f4, $f10 +/* 049750 80048B50 46262200 */ add.d $f8, $f4, $f6 +/* 049754 80048B54 462042A0 */ cvt.s.d $f10, $f8 +/* 049758 80048B58 E62A0020 */ swc1 $f10, 0x20($s1) +/* 04975C 80048B5C C6240020 */ lwc1 $f4, 0x20($s1) +/* 049760 80048B60 00000000 */ nop +/* 049764 80048B64 46002021 */ cvt.d.s $f0, $f4 +.L80048B68: +/* 049768 80048B68 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 +/* 04976C 80048B6C C428D56C */ lwc1 $f8, %lo(gCurrentRacerWeightStat)($at) +/* 049770 80048B70 46200180 */ add.d $f6, $f0, $f0 +/* 049774 80048B74 460042A1 */ cvt.d.s $f10, $f8 +/* 049778 80048B78 00000000 */ nop +/* 04977C 80048B7C 462A3103 */ div.d $f4, $f6, $f10 +/* 049780 80048B80 462020A0 */ cvt.s.d $f2, $f4 +/* 049784 80048B84 444EF800 */ cfc1 $t6, $31 +/* 049788 80048B88 00000000 */ nop +/* 04978C 80048B8C 35C10003 */ ori $at, $t6, 3 +/* 049790 80048B90 38210002 */ xori $at, $at, 2 +/* 049794 80048B94 44C1F800 */ ctc1 $at, $31 +/* 049798 80048B98 00000000 */ nop +/* 04979C 80048B9C 46001224 */ cvt.w.s $f8, $f2 +/* 0497A0 80048BA0 440F4000 */ mfc1 $t7, $f8 +/* 0497A4 80048BA4 44CEF800 */ ctc1 $t6, $31 +/* 0497A8 80048BA8 25F80001 */ addiu $t8, $t7, 1 +/* 0497AC 80048BAC A21801FB */ sb $t8, 0x1fb($s0) +.L80048BB0: +/* 0497B0 80048BB0 820201FB */ lb $v0, 0x1fb($s0) +/* 0497B4 80048BB4 8FB90128 */ lw $t9, 0x128($sp) +/* 0497B8 80048BB8 18400004 */ blez $v0, .L80048BCC +/* 0497BC 80048BBC 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 0497C0 80048BC0 00596823 */ subu $t5, $v0, $t9 +/* 0497C4 80048BC4 10000002 */ b .L80048BD0 +/* 0497C8 80048BC8 A20D01FB */ sb $t5, 0x1fb($s0) +.L80048BCC: +/* 0497CC 80048BCC A20001FB */ sb $zero, 0x1fb($s0) +.L80048BD0: +/* 0497D0 80048BD0 44813000 */ mtc1 $at, $f6 +/* 0497D4 80048BD4 C7AA0118 */ lwc1 $f10, 0x118($sp) +/* 0497D8 80048BD8 3C01800E */ lui $at, %hi(D_800E6468) # $at, 0x800e +/* 0497DC 80048BDC 460A303C */ c.lt.s $f6, $f10 +/* 0497E0 80048BE0 3C0C8012 */ lui $t4, %hi(gCurrentStickX) # $t4, 0x8012 +/* 0497E4 80048BE4 45000004 */ bc1f .L80048BF8 +/* 0497E8 80048BE8 00000000 */ nop +/* 0497EC 80048BEC C4246468 */ lwc1 $f4, %lo(D_800E6468)($at) +/* 0497F0 80048BF0 00000000 */ nop +/* 0497F4 80048BF4 E60400C4 */ swc1 $f4, 0xc4($s0) +.L80048BF8: +/* 0497F8 80048BF8 8E230060 */ lw $v1, 0x60($s1) +/* 0497FC 80048BFC 24010001 */ li $at, 1 +/* 049800 80048C00 8C6A0000 */ lw $t2, ($v1) +/* 049804 80048C04 00000000 */ nop +/* 049808 80048C08 1541000F */ bne $t2, $at, .L80048C48 +/* 04980C 80048C0C 8FA7012C */ lw $a3, 0x12c($sp) +/* 049810 80048C10 8C620004 */ lw $v0, 4($v1) +/* 049814 80048C14 8D8CD534 */ lw $t4, %lo(gCurrentStickX)($t4) +/* 049818 80048C18 804F003A */ lb $t7, 0x3a($v0) +/* 04981C 80048C1C 000C5880 */ sll $t3, $t4, 2 +/* 049820 80048C20 25F80001 */ addiu $t8, $t7, 1 +/* 049824 80048C24 A058003A */ sb $t8, 0x3a($v0) +/* 049828 80048C28 8059003A */ lb $t9, 0x3a($v0) +/* 04982C 80048C2C 016C5821 */ addu $t3, $t3, $t4 +/* 049830 80048C30 000B5880 */ sll $t3, $t3, 2 +/* 049834 80048C34 256E4000 */ addiu $t6, $t3, 0x4000 +/* 049838 80048C38 332D0001 */ andi $t5, $t9, 1 +/* 04983C 80048C3C A44E0000 */ sh $t6, ($v0) +/* 049840 80048C40 A04D003A */ sb $t5, 0x3a($v0) +/* 049844 80048C44 8FA7012C */ lw $a3, 0x12c($sp) +.L80048C48: +/* 049848 80048C48 0C01602D */ jal func_800580B4 +/* 04984C 80048C4C 02002825 */ move $a1, $s0 +/* 049850 80048C50 83AA0067 */ lb $t2, 0x67($sp) +/* 049854 80048C54 02202025 */ move $a0, $s1 +/* 049858 80048C58 11400004 */ beqz $t2, .L80048C6C +/* 04985C 80048C5C 8FBF002C */ lw $ra, 0x2c($sp) +/* 049860 80048C60 0C008C34 */ jal func_800230D0 +/* 049864 80048C64 02002825 */ move $a1, $s0 +/* 049868 80048C68 8FBF002C */ lw $ra, 0x2c($sp) +.L80048C6C: +/* 04986C 80048C6C 8FB00024 */ lw $s0, 0x24($sp) +/* 049870 80048C70 8FB10028 */ lw $s1, 0x28($sp) +/* 049874 80048C74 03E00008 */ jr $ra +/* 049878 80048C78 27BD0128 */ addiu $sp, $sp, 0x128 + diff --git a/asm/non_matchings/racer/func_80049794.s b/asm/non_matchings/racer/func_80049794.s index f16879ca..133e1a50 100644 --- a/asm/non_matchings/racer/func_80049794.s +++ b/asm/non_matchings/racer/func_80049794.s @@ -1,2875 +1,2875 @@ -.late_rodata -glabel D_800E64A8 -.double 1.09 -glabel D_800E64B0 -.double 0.4 -glabel D_800E64B8 -.double 0.01 -glabel D_800E64C0 -.double 0.01 -glabel D_800E64C8 -.double 0.016 -glabel D_800E64D0 -.double 1.2 -glabel D_800E64D8 -.float 1.2 -.word 0 # Padding -glabel D_800E64E0 -.double 0.016 -glabel D_800E64E8 -.float 1.4 -glabel D_800E64EC -.float 0.01 -glabel D_800E64F0 -.float 0.02 -glabel D_800E64F4 -.float 0.004 -glabel D_800E64F8 -.double 0.6 -glabel D_800E6500 -.double 0.3 -glabel D_800E6508 -.float 1.2 -.word 0 # Padding -glabel D_800E6510 -.double 0.00015 -glabel D_800E6518 -.double 1.8 -glabel D_800E6520 -.double 0.4 -glabel D_800E6528 -.float 0.4 -.word 0 # Padding -glabel D_800E6530 -.double 0.058823529411764705 -glabel D_800E6538 -.double 0.05 -glabel D_800E6540 -.double 0.65 -glabel D_800E6548 -.double 0.65 - -.text -glabel func_80049794 -/* 04A394 80049794 27BDFF08 */ addiu $sp, $sp, -0xf8 -/* 04A398 80049798 AFBF0034 */ sw $ra, 0x34($sp) -/* 04A39C 8004979C AFB10030 */ sw $s1, 0x30($sp) -/* 04A3A0 800497A0 AFB0002C */ sw $s0, 0x2c($sp) -/* 04A3A4 800497A4 00E08025 */ move $s0, $a3 -/* 04A3A8 800497A8 00C08825 */ move $s1, $a2 -/* 04A3AC 800497AC E7B50020 */ swc1 $f21, 0x20($sp) -/* 04A3B0 800497B0 E7B40024 */ swc1 $f20, 0x24($sp) -/* 04A3B4 800497B4 AFA400F8 */ sw $a0, 0xf8($sp) -/* 04A3B8 800497B8 0C00384E */ jal func_8000E138 -/* 04A3BC 800497BC AFA500FC */ sw $a1, 0xfc($sp) -/* 04A3C0 800497C0 10400008 */ beqz $v0, .L800497E4 -/* 04A3C4 800497C4 3C01800E */ lui $at, %hi(D_800E64A8 + 4) # $at, 0x800e -/* 04A3C8 800497C8 C7A400FC */ lwc1 $f4, 0xfc($sp) -/* 04A3CC 800497CC C42964A8 */ lwc1 $f9, %lo(D_800E64A8)($at) -/* 04A3D0 800497D0 C42864AC */ lwc1 $f8, %lo(D_800E64A8 + 4)($at) -/* 04A3D4 800497D4 460021A1 */ cvt.d.s $f6, $f4 -/* 04A3D8 800497D8 46283282 */ mul.d $f10, $f6, $f8 -/* 04A3DC 800497DC 462054A0 */ cvt.s.d $f18, $f10 -/* 04A3E0 800497E0 E7B200FC */ swc1 $f18, 0xfc($sp) -.L800497E4: -/* 04A3E4 800497E4 A3A0005F */ sb $zero, 0x5f($sp) -/* 04A3E8 800497E8 820E01E2 */ lb $t6, 0x1e2($s0) -/* 04A3EC 800497EC 24010004 */ li $at, 4 -/* 04A3F0 800497F0 19C00005 */ blez $t6, .L80049808 -/* 04A3F4 800497F4 00000000 */ nop -/* 04A3F8 800497F8 44807000 */ mtc1 $zero, $f14 -/* 04A3FC 800497FC 00000000 */ nop -/* 04A400 80049800 E60E0084 */ swc1 $f14, 0x84($s0) -/* 04A404 80049804 E60E0088 */ swc1 $f14, 0x88($s0) -.L80049808: -/* 04A408 80049808 920F01FE */ lbu $t7, 0x1fe($s0) -/* 04A40C 8004980C 44807000 */ mtc1 $zero, $f14 -/* 04A410 80049810 15E1000A */ bne $t7, $at, .L8004983C -/* 04A414 80049814 00000000 */ nop -/* 04A418 80049818 821801DB */ lb $t8, 0x1db($s0) -/* 04A41C 8004981C 24040240 */ li $a0, 576 -/* 04A420 80049820 17000006 */ bnez $t8, .L8004983C -/* 04A424 80049824 00000000 */ nop -/* 04A428 80049828 0C000741 */ jal play_sound_global -/* 04A42C 8004982C 00002825 */ move $a1, $zero -/* 04A430 80049830 24190014 */ li $t9, 20 -/* 04A434 80049834 44807000 */ mtc1 $zero, $f14 -/* 04A438 80049838 A21901DB */ sb $t9, 0x1db($s0) -.L8004983C: -/* 04A43C 8004983C 3C0B8012 */ lui $t3, %hi(gCurrentPlayerIndex) # $t3, 0x8012 -/* 04A440 80049840 8D6BD55C */ lw $t3, %lo(gCurrentPlayerIndex)($t3) -/* 04A444 80049844 2409FFFF */ li $t1, -1 -/* 04A448 80049848 112B00A4 */ beq $t1, $t3, .L80049ADC -/* 04A44C 8004984C 00005025 */ move $t2, $zero -/* 04A450 80049850 820C01D7 */ lb $t4, 0x1d7($s0) -/* 04A454 80049854 2401000C */ li $at, 12 -/* 04A458 80049858 118100A0 */ beq $t4, $at, .L80049ADC -/* 04A45C 8004985C 3C028012 */ lui $v0, %hi(D_8011D5AE) # $v0, 0x8012 -/* 04A460 80049860 8042D5AE */ lb $v0, %lo(D_8011D5AE)($v0) -/* 04A464 80049864 3C198012 */ lui $t9, %hi(D_8011D5B0) # $t9, 0x8012 -/* 04A468 80049868 1040009C */ beqz $v0, .L80049ADC -/* 04A46C 8004986C 2443FFFF */ addiu $v1, $v0, -1 -/* 04A470 80049870 0460001A */ bltz $v1, .L800498DC -/* 04A474 80049874 00602025 */ move $a0, $v1 -/* 04A478 80049878 3C0D8012 */ lui $t5, %hi(D_8011D5B0) # $t5, 0x8012 -/* 04A47C 8004987C 8DADD5B0 */ lw $t5, %lo(D_8011D5B0)($t5) -/* 04A480 80049880 00047080 */ sll $t6, $a0, 2 -/* 04A484 80049884 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 04A488 80049888 01AE1021 */ addu $v0, $t5, $t6 -/* 04A48C 8004988C 8C4F0000 */ lw $t7, ($v0) -/* 04A490 80049890 44813000 */ mtc1 $at, $f6 -/* 04A494 80049894 C6240010 */ lwc1 $f4, 0x10($s1) -/* 04A498 80049898 C5E80000 */ lwc1 $f8, ($t7) -/* 04A49C 8004989C 46062000 */ add.s $f0, $f4, $f6 -/* 04A4A0 800498A0 4600403C */ c.lt.s $f8, $f0 -/* 04A4A4 800498A4 00000000 */ nop -/* 04A4A8 800498A8 4500000C */ bc1f .L800498DC -/* 04A4AC 800498AC 00000000 */ nop -.L800498B0: -/* 04A4B0 800498B0 2484FFFF */ addiu $a0, $a0, -1 -/* 04A4B4 800498B4 04800009 */ bltz $a0, .L800498DC -/* 04A4B8 800498B8 2442FFFC */ addiu $v0, $v0, -4 -/* 04A4BC 800498BC 8C580000 */ lw $t8, ($v0) -/* 04A4C0 800498C0 00000000 */ nop -/* 04A4C4 800498C4 C70A0000 */ lwc1 $f10, ($t8) -/* 04A4C8 800498C8 00000000 */ nop -/* 04A4CC 800498CC 4600503C */ c.lt.s $f10, $f0 -/* 04A4D0 800498D0 00000000 */ nop -/* 04A4D4 800498D4 4501FFF6 */ bc1t .L800498B0 -/* 04A4D8 800498D8 00000000 */ nop -.L800498DC: -/* 04A4DC 800498DC 8F39D5B0 */ lw $t9, %lo(D_8011D5B0)($t9) -/* 04A4E0 800498E0 00042880 */ sll $a1, $a0, 2 -/* 04A4E4 800498E4 C62C0010 */ lwc1 $f12, 0x10($s1) -/* 04A4E8 800498E8 14830003 */ bne $a0, $v1, .L800498F8 -/* 04A4EC 800498EC 03251021 */ addu $v0, $t9, $a1 -/* 04A4F0 800498F0 24A5FFFC */ addiu $a1, $a1, -4 -/* 04A4F4 800498F4 2442FFFC */ addiu $v0, $v0, -4 -.L800498F8: -/* 04A4F8 800498F8 8C4B0004 */ lw $t3, 4($v0) -/* 04A4FC 800498FC 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 04A500 80049900 C5620000 */ lwc1 $f2, ($t3) -/* 04A504 80049904 44812000 */ mtc1 $at, $f4 -/* 04A508 80049908 46026481 */ sub.s $f18, $f12, $f2 -/* 04A50C 8004990C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 04A510 80049910 44813000 */ mtc1 $at, $f6 -/* 04A514 80049914 46049081 */ sub.s $f2, $f18, $f4 -/* 04A518 80049918 3C01420C */ li $at, 0x420C0000 # 35.000000 -/* 04A51C 8004991C 4602303C */ c.lt.s $f6, $f2 -/* 04A520 80049920 44814000 */ mtc1 $at, $f8 -/* 04A524 80049924 45000002 */ bc1f .L80049930 -/* 04A528 80049928 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 04A52C 8004992C A20001E6 */ sb $zero, 0x1e6($s0) -.L80049930: -/* 04A530 80049930 C600002C */ lwc1 $f0, 0x2c($s0) -/* 04A534 80049934 00000000 */ nop -/* 04A538 80049938 46000007 */ neg.s $f0, $f0 -/* 04A53C 8004993C 460E003C */ c.lt.s $f0, $f14 -/* 04A540 80049940 00000000 */ nop -/* 04A544 80049944 45000002 */ bc1f .L80049950 -/* 04A548 80049948 00000000 */ nop -/* 04A54C 8004994C 46007006 */ mov.s $f0, $f14 -.L80049950: -/* 04A550 80049950 4608103C */ c.lt.s $f2, $f8 -/* 04A554 80049954 00000000 */ nop -/* 04A558 80049958 45000009 */ bc1f .L80049980 -/* 04A55C 8004995C 00000000 */ nop -/* 04A560 80049960 44816800 */ mtc1 $at, $f13 -/* 04A564 80049964 44806000 */ mtc1 $zero, $f12 -/* 04A568 80049968 460002A1 */ cvt.d.s $f10, $f0 -/* 04A56C 8004996C 462C503C */ c.lt.d $f10, $f12 -/* 04A570 80049970 00000000 */ nop -/* 04A574 80049974 45000002 */ bc1f .L80049980 -/* 04A578 80049978 00000000 */ nop -/* 04A57C 8004997C 240A0001 */ li $t2, 1 -.L80049980: -/* 04A580 80049980 820C01E6 */ lb $t4, 0x1e6($s0) -/* 04A584 80049984 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 04A588 80049988 44816800 */ mtc1 $at, $f13 -/* 04A58C 8004998C 44806000 */ mtc1 $zero, $f12 -/* 04A590 80049990 1580000D */ bnez $t4, .L800499C8 -/* 04A594 80049994 3C014218 */ li $at, 0x42180000 # 38.000000 -/* 04A598 80049998 44819000 */ mtc1 $at, $f18 -/* 04A59C 8004999C 00000000 */ nop -/* 04A5A0 800499A0 4612103C */ c.lt.s $f2, $f18 -/* 04A5A4 800499A4 00000000 */ nop -/* 04A5A8 800499A8 45000007 */ bc1f .L800499C8 -/* 04A5AC 800499AC 00000000 */ nop -/* 04A5B0 800499B0 46000121 */ cvt.d.s $f4, $f0 -/* 04A5B4 800499B4 4624603E */ c.le.d $f12, $f4 -/* 04A5B8 800499B8 240D0001 */ li $t5, 1 -/* 04A5BC 800499BC 45000002 */ bc1f .L800499C8 -/* 04A5C0 800499C0 00000000 */ nop -/* 04A5C4 800499C4 A20D01E6 */ sb $t5, 0x1e6($s0) -.L800499C8: -/* 04A5C8 800499C8 820201E0 */ lb $v0, 0x1e0($s0) -/* 04A5CC 800499CC 24010001 */ li $at, 1 -/* 04A5D0 800499D0 1041000F */ beq $v0, $at, .L80049A10 -/* 04A5D4 800499D4 00000000 */ nop -/* 04A5D8 800499D8 1122000D */ beq $t1, $v0, .L80049A10 -/* 04A5DC 800499DC 3C0E8012 */ lui $t6, %hi(D_8011D5B0) # $t6, 0x8012 -/* 04A5E0 800499E0 8DCED5B0 */ lw $t6, %lo(D_8011D5B0)($t6) -/* 04A5E4 800499E4 3C01800E */ lui $at, %hi(D_800E64B0 + 4) # $at, 0x800e -/* 04A5E8 800499E8 01C57821 */ addu $t7, $t6, $a1 -/* 04A5EC 800499EC 8DF80004 */ lw $t8, 4($t7) -/* 04A5F0 800499F0 C42B64B0 */ lwc1 $f11, %lo(D_800E64B0)($at) -/* 04A5F4 800499F4 C7060008 */ lwc1 $f6, 8($t8) -/* 04A5F8 800499F8 C42A64B4 */ lwc1 $f10, %lo(D_800E64B0 + 4)($at) -/* 04A5FC 800499FC 46003221 */ cvt.d.s $f8, $f6 -/* 04A600 80049A00 462A403C */ c.lt.d $f8, $f10 -/* 04A604 80049A04 00000000 */ nop -/* 04A608 80049A08 45000003 */ bc1f .L80049A18 -/* 04A60C 80049A0C 00000000 */ nop -.L80049A10: -/* 04A610 80049A10 A20001E6 */ sb $zero, 0x1e6($s0) -/* 04A614 80049A14 00005025 */ move $t2, $zero -.L80049A18: -/* 04A618 80049A18 821901E6 */ lb $t9, 0x1e6($s0) -/* 04A61C 80049A1C 00000000 */ nop -/* 04A620 80049A20 1320002F */ beqz $t9, .L80049AE0 -/* 04A624 80049A24 3C014100 */ lui $at, 0x4100 -/* 04A628 80049A28 460004A1 */ cvt.d.s $f18, $f0 -/* 04A62C 80049A2C 462C903C */ c.lt.d $f18, $f12 -/* 04A630 80049A30 44802000 */ mtc1 $zero, $f4 -/* 04A634 80049A34 45010007 */ bc1t .L80049A54 -/* 04A638 80049A38 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 -/* 04A63C 80049A3C 2508D538 */ addiu $t0, %lo(gCurrentStickY) # addiu $t0, $t0, -0x2ac8 -/* 04A640 80049A40 8D0B0000 */ lw $t3, ($t0) -/* 04A644 80049A44 00000000 */ nop -/* 04A648 80049A48 2961FFF6 */ slti $at, $t3, -0xa -/* 04A64C 80049A4C 10200005 */ beqz $at, .L80049A64 -/* 04A650 80049A50 3C014100 */ lui $at, 0x4100 -.L80049A54: -/* 04A654 80049A54 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 -/* 04A658 80049A58 2508D538 */ addiu $t0, %lo(gCurrentStickY) # addiu $t0, $t0, -0x2ac8 -/* 04A65C 80049A5C A20001E6 */ sb $zero, 0x1e6($s0) -/* 04A660 80049A60 3C014100 */ li $at, 0x41000000 # 8.000000 -.L80049A64: -/* 04A664 80049A64 44818000 */ mtc1 $at, $f16 -/* 04A668 80049A68 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 04A66C 80049A6C 46100001 */ sub.s $f0, $f0, $f16 -/* 04A670 80049A70 44812800 */ mtc1 $at, $f5 -/* 04A674 80049A74 460001A1 */ cvt.d.s $f6, $f0 -/* 04A678 80049A78 4626203C */ c.lt.d $f4, $f6 -/* 04A67C 80049A7C C62C0010 */ lwc1 $f12, 0x10($s1) -/* 04A680 80049A80 45000003 */ bc1f .L80049A90 -/* 04A684 80049A84 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04A688 80049A88 44810000 */ mtc1 $at, $f0 -/* 04A68C 80049A8C 00000000 */ nop -.L80049A90: -/* 04A690 80049A90 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04A694 80049A94 44814000 */ mtc1 $at, $f8 -/* 04A698 80049A98 3C014218 */ li $at, 0x42180000 # 38.000000 -/* 04A69C 80049A9C 46080003 */ div.s $f0, $f0, $f8 -/* 04A6A0 80049AA0 44815000 */ mtc1 $at, $f10 -/* 04A6A4 80049AA4 C7A400FC */ lwc1 $f4, 0xfc($sp) -/* 04A6A8 80049AA8 46025481 */ sub.s $f18, $f10, $f2 -/* 04A6AC 80049AAC 46049182 */ mul.s $f6, $f18, $f4 -/* 04A6B0 80049AB0 00000000 */ nop -/* 04A6B4 80049AB4 46003202 */ mul.s $f8, $f6, $f0 -/* 04A6B8 80049AB8 00000000 */ nop -/* 04A6BC 80049ABC 46104283 */ div.s $f10, $f8, $f16 -/* 04A6C0 80049AC0 460A6480 */ add.s $f18, $f12, $f10 -/* 04A6C4 80049AC4 E6320010 */ swc1 $f18, 0x10($s1) -/* 04A6C8 80049AC8 8D020000 */ lw $v0, ($t0) -/* 04A6CC 80049ACC 00000000 */ nop -/* 04A6D0 80049AD0 18400002 */ blez $v0, .L80049ADC -/* 04A6D4 80049AD4 00026043 */ sra $t4, $v0, 1 -/* 04A6D8 80049AD8 AD0C0000 */ sw $t4, ($t0) -.L80049ADC: -/* 04A6DC 80049ADC 3C014100 */ li $at, 0x41000000 # 8.000000 -.L80049AE0: -/* 04A6E0 80049AE0 44818000 */ mtc1 $at, $f16 -/* 04A6E4 80049AE4 3C018012 */ lui $at, %hi(D_8011D550) # $at, 0x8012 -/* 04A6E8 80049AE8 A420D550 */ sh $zero, %lo(D_8011D550)($at) -/* 04A6EC 80049AEC 3C018012 */ lui $at, %hi(gCurrentCarSteerVel) # $at, 0x8012 -/* 04A6F0 80049AF0 AC20D554 */ sw $zero, %lo(gCurrentCarSteerVel)($at) -/* 04A6F4 80049AF4 3C018012 */ lui $at, %hi(D_8011D558) # $at, 0x8012 -/* 04A6F8 80049AF8 AC20D558 */ sw $zero, %lo(D_8011D558)($at) -/* 04A6FC 80049AFC C624000C */ lwc1 $f4, 0xc($s1) -/* 04A700 80049B00 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 -/* 04A704 80049B04 E7A400E8 */ swc1 $f4, 0xe8($sp) -/* 04A708 80049B08 C6260010 */ lwc1 $f6, 0x10($s1) -/* 04A70C 80049B0C 2508D538 */ addiu $t0, %lo(gCurrentStickY) # addiu $t0, $t0, -0x2ac8 -/* 04A710 80049B10 E7A600E4 */ swc1 $f6, 0xe4($sp) -/* 04A714 80049B14 C6280014 */ lwc1 $f8, 0x14($s1) -/* 04A718 80049B18 3C0E8012 */ lui $t6, %hi(gCurrentStickX) # $t6, 0x8012 -/* 04A71C 80049B1C E7A800E0 */ swc1 $f8, 0xe0($sp) -/* 04A720 80049B20 820D01E0 */ lb $t5, 0x1e0($s0) -/* 04A724 80049B24 00000000 */ nop -/* 04A728 80049B28 11A00004 */ beqz $t5, .L80049B3C -/* 04A72C 80049B2C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04A730 80049B30 44811000 */ mtc1 $at, $f2 -/* 04A734 80049B34 10000003 */ b .L80049B44 -/* 04A738 80049B38 820501E1 */ lb $a1, 0x1e1($s0) -.L80049B3C: -/* 04A73C 80049B3C 46008086 */ mov.s $f2, $f16 -/* 04A740 80049B40 820501E1 */ lb $a1, 0x1e1($s0) -.L80049B44: -/* 04A744 80049B44 8DCED534 */ lw $t6, %lo(gCurrentStickX)($t6) -/* 04A748 80049B48 C7A400FC */ lwc1 $f4, 0xfc($sp) -/* 04A74C 80049B4C 01C51023 */ subu $v0, $t6, $a1 -/* 04A750 80049B50 44825000 */ mtc1 $v0, $f10 -/* 04A754 80049B54 00000000 */ nop -/* 04A758 80049B58 468054A0 */ cvt.s.w $f18, $f10 -/* 04A75C 80049B5C 46049182 */ mul.s $f6, $f18, $f4 -/* 04A760 80049B60 00000000 */ nop -/* 04A764 80049B64 46023203 */ div.s $f8, $f6, $f2 -/* 04A768 80049B68 444FF800 */ cfc1 $t7, $31 -/* 04A76C 80049B6C 00000000 */ nop -/* 04A770 80049B70 35E10003 */ ori $at, $t7, 3 -/* 04A774 80049B74 38210002 */ xori $at, $at, 2 -/* 04A778 80049B78 44C1F800 */ ctc1 $at, $31 -/* 04A77C 80049B7C 00000000 */ nop -/* 04A780 80049B80 460042A4 */ cvt.w.s $f10, $f8 -/* 04A784 80049B84 44045000 */ mfc1 $a0, $f10 -/* 04A788 80049B88 44CFF800 */ ctc1 $t7, $31 -/* 04A78C 80049B8C 10400009 */ beqz $v0, .L80049BB4 -/* 04A790 80049B90 00801825 */ move $v1, $a0 -/* 04A794 80049B94 14800008 */ bnez $a0, .L80049BB8 -/* 04A798 80049B98 00A3C021 */ addu $t8, $a1, $v1 -/* 04A79C 80049B9C 18400002 */ blez $v0, .L80049BA8 -/* 04A7A0 80049BA0 00000000 */ nop -/* 04A7A4 80049BA4 24030001 */ li $v1, 1 -.L80049BA8: -/* 04A7A8 80049BA8 04410003 */ bgez $v0, .L80049BB8 -/* 04A7AC 80049BAC 00A3C021 */ addu $t8, $a1, $v1 -/* 04A7B0 80049BB0 01201825 */ move $v1, $t1 -.L80049BB4: -/* 04A7B4 80049BB4 00A3C021 */ addu $t8, $a1, $v1 -.L80049BB8: -/* 04A7B8 80049BB8 A21801E1 */ sb $t8, 0x1e1($s0) -/* 04A7BC 80049BBC 8D190000 */ lw $t9, ($t0) -/* 04A7C0 80049BC0 820701E8 */ lb $a3, 0x1e8($s0) -/* 04A7C4 80049BC4 C7A600FC */ lwc1 $f6, 0xfc($sp) -/* 04A7C8 80049BC8 03271023 */ subu $v0, $t9, $a3 -/* 04A7CC 80049BCC 44829000 */ mtc1 $v0, $f18 -/* 04A7D0 80049BD0 3C013FB0 */ li $at, 0x3FB00000 # 1.375000 -/* 04A7D4 80049BD4 46809120 */ cvt.s.w $f4, $f18 -/* 04A7D8 80049BD8 44809000 */ mtc1 $zero, $f18 -/* 04A7DC 80049BDC 44819800 */ mtc1 $at, $f19 -/* 04A7E0 80049BE0 46062202 */ mul.s $f8, $f4, $f6 -/* 04A7E4 80049BE4 02002825 */ move $a1, $s0 -/* 04A7E8 80049BE8 460042A1 */ cvt.d.s $f10, $f8 -/* 04A7EC 80049BEC 46325102 */ mul.d $f4, $f10, $f18 -/* 04A7F0 80049BF0 444BF800 */ cfc1 $t3, $31 -/* 04A7F4 80049BF4 00000000 */ nop -/* 04A7F8 80049BF8 35610003 */ ori $at, $t3, 3 -/* 04A7FC 80049BFC 38210002 */ xori $at, $at, 2 -/* 04A800 80049C00 44C1F800 */ ctc1 $at, $31 -/* 04A804 80049C04 00000000 */ nop -/* 04A808 80049C08 462021A4 */ cvt.w.d $f6, $f4 -/* 04A80C 80049C0C 44043000 */ mfc1 $a0, $f6 -/* 04A810 80049C10 44CBF800 */ ctc1 $t3, $31 -/* 04A814 80049C14 10400009 */ beqz $v0, .L80049C3C -/* 04A818 80049C18 00801825 */ move $v1, $a0 -/* 04A81C 80049C1C 14800008 */ bnez $a0, .L80049C40 -/* 04A820 80049C20 00E36021 */ addu $t4, $a3, $v1 -/* 04A824 80049C24 18400002 */ blez $v0, .L80049C30 -/* 04A828 80049C28 00000000 */ nop -/* 04A82C 80049C2C 24030001 */ li $v1, 1 -.L80049C30: -/* 04A830 80049C30 04410003 */ bgez $v0, .L80049C40 -/* 04A834 80049C34 00E36021 */ addu $t4, $a3, $v1 -/* 04A838 80049C38 01201825 */ move $v1, $t1 -.L80049C3C: -/* 04A83C 80049C3C 00E36021 */ addu $t4, $a3, $v1 -.L80049C40: -/* 04A840 80049C40 A20C01E8 */ sb $t4, 0x1e8($s0) -/* 04A844 80049C44 8FA600F8 */ lw $a2, 0xf8($sp) -/* 04A848 80049C48 A3AA00A2 */ sb $t2, 0xa2($sp) -/* 04A84C 80049C4C 0C0157B0 */ jal func_80055EC0 -/* 04A850 80049C50 02202025 */ move $a0, $s1 -/* 04A854 80049C54 02202025 */ move $a0, $s1 -/* 04A858 80049C58 0C014D71 */ jal func_800535C4 -/* 04A85C 80049C5C 02002825 */ move $a1, $s0 -/* 04A860 80049C60 02202025 */ move $a0, $s1 -/* 04A864 80049C64 0C013050 */ jal func_8004C140 -/* 04A868 80049C68 02002825 */ move $a1, $s0 -/* 04A86C 80049C6C 3C0D8012 */ lui $t5, %hi(gCurrentPlayerIndex) # $t5, 0x8012 -/* 04A870 80049C70 8DADD55C */ lw $t5, %lo(gCurrentPlayerIndex)($t5) -/* 04A874 80049C74 2401FFFF */ li $at, -1 -/* 04A878 80049C78 11A10007 */ beq $t5, $at, .L80049C98 -/* 04A87C 80049C7C 00000000 */ nop -/* 04A880 80049C80 8FA600F8 */ lw $a2, 0xf8($sp) -/* 04A884 80049C84 02202025 */ move $a0, $s1 -/* 04A888 80049C88 0C014871 */ jal func_800521C4 -/* 04A88C 80049C8C 02002825 */ move $a1, $s0 -/* 04A890 80049C90 10000003 */ b .L80049CA0 -/* 04A894 80049C94 00000000 */ nop -.L80049C98: -/* 04A898 80049C98 0C0148D3 */ jal func_8005234C -/* 04A89C 80049C9C 02002025 */ move $a0, $s0 -.L80049CA0: -/* 04A8A0 80049CA0 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 -/* 04A8A4 80049CA4 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) -/* 04A8A8 80049CA8 3C198012 */ lui $t9, %hi(gCurrentRacerInput) # $t9, 0x8012 -/* 04A8AC 80049CAC 31CF8000 */ andi $t7, $t6, 0x8000 -/* 04A8B0 80049CB0 11E00019 */ beqz $t7, .L80049D18 -/* 04A8B4 80049CB4 3C01800E */ lui $at, %hi(D_800E64B8 + 4) # $at, 0x800e -/* 04A8B8 80049CB8 C7A800FC */ lwc1 $f8, 0xfc($sp) -/* 04A8BC 80049CBC C42564B8 */ lwc1 $f5, %lo(D_800E64B8)($at) -/* 04A8C0 80049CC0 C42464BC */ lwc1 $f4, %lo(D_800E64B8 + 4)($at) -/* 04A8C4 80049CC4 46004021 */ cvt.d.s $f0, $f8 -/* 04A8C8 80049CC8 46240182 */ mul.d $f6, $f0, $f4 -/* 04A8CC 80049CCC C60A00B4 */ lwc1 $f10, 0xb4($s0) -/* 04A8D0 80049CD0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04A8D4 80049CD4 460054A1 */ cvt.d.s $f18, $f10 -/* 04A8D8 80049CD8 44812800 */ mtc1 $at, $f5 -/* 04A8DC 80049CDC 46269200 */ add.d $f8, $f18, $f6 -/* 04A8E0 80049CE0 44802000 */ mtc1 $zero, $f4 -/* 04A8E4 80049CE4 462042A0 */ cvt.s.d $f10, $f8 -/* 04A8E8 80049CE8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04A8EC 80049CEC E60A00B4 */ swc1 $f10, 0xb4($s0) -/* 04A8F0 80049CF0 C61200B4 */ lwc1 $f18, 0xb4($s0) -/* 04A8F4 80049CF4 00000000 */ nop -/* 04A8F8 80049CF8 460091A1 */ cvt.d.s $f6, $f18 -/* 04A8FC 80049CFC 4626203C */ c.lt.d $f4, $f6 -/* 04A900 80049D00 00000000 */ nop -/* 04A904 80049D04 4500001A */ bc1f .L80049D70 -/* 04A908 80049D08 00000000 */ nop -/* 04A90C 80049D0C 44814000 */ mtc1 $at, $f8 -/* 04A910 80049D10 10000017 */ b .L80049D70 -/* 04A914 80049D14 E60800B4 */ swc1 $f8, 0xb4($s0) -.L80049D18: -/* 04A918 80049D18 3C01800E */ lui $at, %hi(D_800E64C0 + 4) # $at, 0x800e -/* 04A91C 80049D1C C7AA00FC */ lwc1 $f10, 0xfc($sp) -/* 04A920 80049D20 C42764C0 */ lwc1 $f7, %lo(D_800E64C0)($at) -/* 04A924 80049D24 C42664C4 */ lwc1 $f6, %lo(D_800E64C0 + 4)($at) -/* 04A928 80049D28 46005021 */ cvt.d.s $f0, $f10 -/* 04A92C 80049D2C 46260202 */ mul.d $f8, $f0, $f6 -/* 04A930 80049D30 C61200B4 */ lwc1 $f18, 0xb4($s0) -/* 04A934 80049D34 00000000 */ nop -/* 04A938 80049D38 46009121 */ cvt.d.s $f4, $f18 -/* 04A93C 80049D3C 46282281 */ sub.d $f10, $f4, $f8 -/* 04A940 80049D40 44802000 */ mtc1 $zero, $f4 -/* 04A944 80049D44 462054A0 */ cvt.s.d $f18, $f10 -/* 04A948 80049D48 E61200B4 */ swc1 $f18, 0xb4($s0) -/* 04A94C 80049D4C C60600B4 */ lwc1 $f6, 0xb4($s0) -/* 04A950 80049D50 00000000 */ nop -/* 04A954 80049D54 4604303C */ c.lt.s $f6, $f4 -/* 04A958 80049D58 00000000 */ nop -/* 04A95C 80049D5C 45000004 */ bc1f .L80049D70 -/* 04A960 80049D60 00000000 */ nop -/* 04A964 80049D64 44804000 */ mtc1 $zero, $f8 -/* 04A968 80049D68 00000000 */ nop -/* 04A96C 80049D6C E60800B4 */ swc1 $f8, 0xb4($s0) -.L80049D70: -/* 04A970 80049D70 8E180108 */ lw $t8, 0x108($s0) -/* 04A974 80049D74 00000000 */ nop -/* 04A978 80049D78 13000004 */ beqz $t8, .L80049D8C -/* 04A97C 80049D7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 04A980 80049D80 44815000 */ mtc1 $at, $f10 -/* 04A984 80049D84 00000000 */ nop -/* 04A988 80049D88 E60A00B4 */ swc1 $f10, 0xb4($s0) -.L80049D8C: -/* 04A98C 80049D8C 8F39D528 */ lw $t9, %lo(gCurrentRacerInput)($t9) -/* 04A990 80049D90 C61200B4 */ lwc1 $f18, 0xb4($s0) -/* 04A994 80049D94 332B4000 */ andi $t3, $t9, 0x4000 -/* 04A998 80049D98 11600038 */ beqz $t3, .L80049E7C -/* 04A99C 80049D9C E7B200C8 */ swc1 $f18, 0xc8($sp) -/* 04A9A0 80049DA0 3C0C8012 */ lui $t4, %hi(gCurrentStickY) # $t4, 0x8012 -/* 04A9A4 80049DA4 8D8CD538 */ lw $t4, %lo(gCurrentStickY)($t4) -/* 04A9A8 80049DA8 00000000 */ nop -/* 04A9AC 80049DAC 2981FFD8 */ slti $at, $t4, -0x28 -/* 04A9B0 80049DB0 14200007 */ bnez $at, .L80049DD0 -/* 04A9B4 80049DB4 00000000 */ nop -/* 04A9B8 80049DB8 44806000 */ mtc1 $zero, $f12 -/* 04A9BC 80049DBC C606002C */ lwc1 $f6, 0x2c($s0) -/* 04A9C0 80049DC0 00000000 */ nop -/* 04A9C4 80049DC4 460C303C */ c.lt.s $f6, $f12 -/* 04A9C8 80049DC8 00000000 */ nop -/* 04A9CC 80049DCC 4500002B */ bc1f .L80049E7C -.L80049DD0: -/* 04A9D0 80049DD0 3C01800E */ lui $at, %hi(D_800E64C8 + 4) # $at, 0x800e -/* 04A9D4 80049DD4 C42B64C8 */ lwc1 $f11, %lo(D_800E64C8)($at) -/* 04A9D8 80049DD8 C42A64CC */ lwc1 $f10, %lo(D_800E64C8 + 4)($at) -/* 04A9DC 80049DDC C60400B8 */ lwc1 $f4, 0xb8($s0) -/* 04A9E0 80049DE0 462A0482 */ mul.d $f18, $f0, $f10 -/* 04A9E4 80049DE4 46002221 */ cvt.d.s $f8, $f4 -/* 04A9E8 80049DE8 3C01800E */ lui $at, %hi(D_800E64D0) # $at, 0x800e -/* 04A9EC 80049DEC 44806000 */ mtc1 $zero, $f12 -/* 04A9F0 80049DF0 46324180 */ add.d $f6, $f8, $f18 -/* 04A9F4 80049DF4 46203120 */ cvt.s.d $f4, $f6 -/* 04A9F8 80049DF8 E60400B8 */ swc1 $f4, 0xb8($s0) -/* 04A9FC 80049DFC C60800B8 */ lwc1 $f8, 0xb8($s0) -/* 04AA00 80049E00 C42A64D4 */ lwc1 $f10, %lo(D_800E64D0 + 4)($at) -/* 04AA04 80049E04 C42B64D0 */ lwc1 $f11, %lo(D_800E64D0)($at) -/* 04AA08 80049E08 460044A1 */ cvt.d.s $f18, $f8 -/* 04AA0C 80049E0C 4632503C */ c.lt.d $f10, $f18 -/* 04AA10 80049E10 44805000 */ mtc1 $zero, $f10 -/* 04AA14 80049E14 45000004 */ bc1f .L80049E28 -/* 04AA18 80049E18 3C01800E */ lui $at, %hi(D_800E64D8) # $at, 0x800e -/* 04AA1C 80049E1C C42664D8 */ lwc1 $f6, %lo(D_800E64D8)($at) -/* 04AA20 80049E20 00000000 */ nop -/* 04AA24 80049E24 E60600B8 */ swc1 $f6, 0xb8($s0) -.L80049E28: -/* 04AA28 80049E28 C604002C */ lwc1 $f4, 0x2c($s0) -/* 04AA2C 80049E2C 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 04AA30 80049E30 44815800 */ mtc1 $at, $f11 -/* 04AA34 80049E34 46002221 */ cvt.d.s $f8, $f4 -/* 04AA38 80049E38 462A403C */ c.lt.d $f8, $f10 -/* 04AA3C 80049E3C 00000000 */ nop -/* 04AA40 80049E40 4500000B */ bc1f .L80049E70 -/* 04AA44 80049E44 00000000 */ nop -/* 04AA48 80049E48 820D01E2 */ lb $t5, 0x1e2($s0) -/* 04AA4C 80049E4C 00000000 */ nop -/* 04AA50 80049E50 29A10002 */ slti $at, $t5, 2 -/* 04AA54 80049E54 14200006 */ bnez $at, .L80049E70 -/* 04AA58 80049E58 00000000 */ nop -/* 04AA5C 80049E5C 86040000 */ lh $a0, ($s0) -/* 04AA60 80049E60 0C01C8D2 */ jal func_80072348 -/* 04AA64 80049E64 24050003 */ li $a1, 3 -/* 04AA68 80049E68 44806000 */ mtc1 $zero, $f12 -/* 04AA6C 80049E6C 00000000 */ nop -.L80049E70: -/* 04AA70 80049E70 C60200B8 */ lwc1 $f2, 0xb8($s0) -/* 04AA74 80049E74 10000015 */ b .L80049ECC -/* 04AA78 80049E78 E7A200C4 */ swc1 $f2, 0xc4($sp) -.L80049E7C: -/* 04AA7C 80049E7C 3C01800E */ lui $at, %hi(D_800E64E0 + 4) # $at, 0x800e -/* 04AA80 80049E80 C42564E0 */ lwc1 $f5, %lo(D_800E64E0)($at) -/* 04AA84 80049E84 C42464E4 */ lwc1 $f4, %lo(D_800E64E0 + 4)($at) -/* 04AA88 80049E88 C61200B8 */ lwc1 $f18, 0xb8($s0) -/* 04AA8C 80049E8C 46240202 */ mul.d $f8, $f0, $f4 -/* 04AA90 80049E90 460091A1 */ cvt.d.s $f6, $f18 -/* 04AA94 80049E94 44806000 */ mtc1 $zero, $f12 -/* 04AA98 80049E98 46283281 */ sub.d $f10, $f6, $f8 -/* 04AA9C 80049E9C 462054A0 */ cvt.s.d $f18, $f10 -/* 04AAA0 80049EA0 E61200B8 */ swc1 $f18, 0xb8($s0) -/* 04AAA4 80049EA4 C60200B8 */ lwc1 $f2, 0xb8($s0) -/* 04AAA8 80049EA8 00000000 */ nop -/* 04AAAC 80049EAC 460C103C */ c.lt.s $f2, $f12 -/* 04AAB0 80049EB0 00000000 */ nop -/* 04AAB4 80049EB4 45000004 */ bc1f .L80049EC8 -/* 04AAB8 80049EB8 00000000 */ nop -/* 04AABC 80049EBC E60C00B8 */ swc1 $f12, 0xb8($s0) -/* 04AAC0 80049EC0 C60200B8 */ lwc1 $f2, 0xb8($s0) -/* 04AAC4 80049EC4 00000000 */ nop -.L80049EC8: -/* 04AAC8 80049EC8 E7A200C4 */ swc1 $f2, 0xc4($sp) -.L80049ECC: -/* 04AACC 80049ECC 862E0000 */ lh $t6, ($s1) -/* 04AAD0 80049ED0 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 -/* 04AAD4 80049ED4 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 -/* 04AAD8 80049ED8 A4AE0000 */ sh $t6, ($a1) -/* 04AADC 80049EDC 862F0002 */ lh $t7, 2($s1) -/* 04AAE0 80049EE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04AAE4 80049EE4 44812000 */ mtc1 $at, $f4 -/* 04AAE8 80049EE8 A4A00004 */ sh $zero, 4($a1) -/* 04AAEC 80049EEC E4AC000C */ swc1 $f12, 0xc($a1) -/* 04AAF0 80049EF0 E4AC0010 */ swc1 $f12, 0x10($a1) -/* 04AAF4 80049EF4 E4AC0014 */ swc1 $f12, 0x14($a1) -/* 04AAF8 80049EF8 27A40060 */ addiu $a0, $sp, 0x60 -/* 04AAFC 80049EFC A4AF0002 */ sh $t7, 2($a1) -/* 04AB00 80049F00 0C01BF0C */ jal object_transform_to_matrix -/* 04AB04 80049F04 E4A40008 */ swc1 $f4, 8($a1) -/* 04AB08 80049F08 44800000 */ mtc1 $zero, $f0 -/* 04AB0C 80049F0C 26180038 */ addiu $t8, $s0, 0x38 -/* 04AB10 80049F10 2619003C */ addiu $t9, $s0, 0x3c -/* 04AB14 80049F14 260B0040 */ addiu $t3, $s0, 0x40 -/* 04AB18 80049F18 44050000 */ mfc1 $a1, $f0 -/* 04AB1C 80049F1C 44060000 */ mfc1 $a2, $f0 -/* 04AB20 80049F20 AFAB0018 */ sw $t3, 0x18($sp) -/* 04AB24 80049F24 AFB90014 */ sw $t9, 0x14($sp) -/* 04AB28 80049F28 AFB80010 */ sw $t8, 0x10($sp) -/* 04AB2C 80049F2C 27A40060 */ addiu $a0, $sp, 0x60 -/* 04AB30 80049F30 0C01BD93 */ jal guMtxXFMF -/* 04AB34 80049F34 3C073F80 */ lui $a3, 0x3f80 -/* 04AB38 80049F38 44800000 */ mtc1 $zero, $f0 -/* 04AB3C 80049F3C 260C0050 */ addiu $t4, $s0, 0x50 -/* 04AB40 80049F40 260D0054 */ addiu $t5, $s0, 0x54 -/* 04AB44 80049F44 260E0058 */ addiu $t6, $s0, 0x58 -/* 04AB48 80049F48 44060000 */ mfc1 $a2, $f0 -/* 04AB4C 80049F4C 44070000 */ mfc1 $a3, $f0 -/* 04AB50 80049F50 AFAE0018 */ sw $t6, 0x18($sp) -/* 04AB54 80049F54 AFAD0014 */ sw $t5, 0x14($sp) -/* 04AB58 80049F58 AFAC0010 */ sw $t4, 0x10($sp) -/* 04AB5C 80049F5C 27A40060 */ addiu $a0, $sp, 0x60 -/* 04AB60 80049F60 0C01BD93 */ jal guMtxXFMF -/* 04AB64 80049F64 3C053F80 */ lui $a1, 0x3f80 -/* 04AB68 80049F68 44800000 */ mtc1 $zero, $f0 -/* 04AB6C 80049F6C 260F0044 */ addiu $t7, $s0, 0x44 -/* 04AB70 80049F70 26180048 */ addiu $t8, $s0, 0x48 -/* 04AB74 80049F74 2619004C */ addiu $t9, $s0, 0x4c -/* 04AB78 80049F78 44050000 */ mfc1 $a1, $f0 -/* 04AB7C 80049F7C 44070000 */ mfc1 $a3, $f0 -/* 04AB80 80049F80 AFB90018 */ sw $t9, 0x18($sp) -/* 04AB84 80049F84 AFB80014 */ sw $t8, 0x14($sp) -/* 04AB88 80049F88 AFAF0010 */ sw $t7, 0x10($sp) -/* 04AB8C 80049F8C 27A40060 */ addiu $a0, $sp, 0x60 -/* 04AB90 80049F90 0C01BD93 */ jal guMtxXFMF -/* 04AB94 80049F94 3C063F80 */ lui $a2, 0x3f80 -/* 04AB98 80049F98 8E0B0148 */ lw $t3, 0x148($s0) -/* 04AB9C 80049F9C 00000000 */ nop -/* 04ABA0 80049FA0 15600005 */ bnez $t3, .L80049FB8 -/* 04ABA4 80049FA4 00000000 */ nop -/* 04ABA8 80049FA8 8FA400F8 */ lw $a0, 0xf8($sp) -/* 04ABAC 80049FAC 02202825 */ move $a1, $s1 -/* 04ABB0 80049FB0 0C013028 */ jal func_8004C0A0 -/* 04ABB4 80049FB4 02003025 */ move $a2, $s0 -.L80049FB8: -/* 04ABB8 80049FB8 86020000 */ lh $v0, ($s0) -/* 04ABBC 80049FBC 2403FFFF */ li $v1, -1 -/* 04ABC0 80049FC0 14620008 */ bne $v1, $v0, .L80049FE4 -/* 04ABC4 80049FC4 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 -/* 04ABC8 80049FC8 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) -/* 04ABCC 80049FCC 3C01800E */ lui $at, %hi(D_800E64E8) # $at, 0x800e -/* 04ABD0 80049FD0 106C0004 */ beq $v1, $t4, .L80049FE4 -/* 04ABD4 80049FD4 00000000 */ nop -/* 04ABD8 80049FD8 C42664E8 */ lwc1 $f6, %lo(D_800E64E8)($at) -/* 04ABDC 80049FDC 3C018012 */ lui $at, %hi(gCurrentRacerHandlingStat) # $at, 0x8012 -/* 04ABE0 80049FE0 E426D570 */ swc1 $f6, %lo(gCurrentRacerHandlingStat)($at) -.L80049FE4: -/* 04ABE4 80049FE4 C620001C */ lwc1 $f0, 0x1c($s1) -/* 04ABE8 80049FE8 C6220024 */ lwc1 $f2, 0x24($s1) -/* 04ABEC 80049FEC 46000202 */ mul.s $f8, $f0, $f0 -/* 04ABF0 80049FF0 C62E0020 */ lwc1 $f14, 0x20($s1) -/* 04ABF4 80049FF4 46021282 */ mul.s $f10, $f2, $f2 -/* 04ABF8 80049FF8 00000000 */ nop -/* 04ABFC 80049FFC 460E7102 */ mul.s $f4, $f14, $f14 -/* 04AC00 8004A000 460A4480 */ add.s $f18, $f8, $f10 -/* 04AC04 8004A004 0C0326B4 */ jal sqrtf -/* 04AC08 8004A008 46049300 */ add.s $f12, $f18, $f4 -/* 04AC0C 8004A00C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04AC10 8004A010 44817800 */ mtc1 $at, $f15 -/* 04AC14 8004A014 44807000 */ mtc1 $zero, $f14 -/* 04AC18 8004A018 460001A1 */ cvt.d.s $f6, $f0 -/* 04AC1C 8004A01C 820D01D6 */ lb $t5, 0x1d6($s0) -/* 04AC20 8004A020 462E3201 */ sub.d $f8, $f6, $f14 -/* 04AC24 8004A024 29A10005 */ slti $at, $t5, 5 -/* 04AC28 8004A028 462040A0 */ cvt.s.d $f2, $f8 -/* 04AC2C 8004A02C 14200009 */ bnez $at, .L8004A054 -/* 04AC30 8004A030 46001506 */ mov.s $f20, $f2 -/* 04AC34 8004A034 460012A1 */ cvt.d.s $f10, $f2 -/* 04AC38 8004A038 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 04AC3C 8004A03C 44812800 */ mtc1 $at, $f5 -/* 04AC40 8004A040 462E5481 */ sub.d $f18, $f10, $f14 -/* 04AC44 8004A044 44802000 */ mtc1 $zero, $f4 -/* 04AC48 8004A048 00000000 */ nop -/* 04AC4C 8004A04C 46249182 */ mul.d $f6, $f18, $f4 -/* 04AC50 8004A050 46203520 */ cvt.s.d $f20, $f6 -.L8004A054: -/* 04AC54 8004A054 44806000 */ mtc1 $zero, $f12 -/* 04AC58 8004A058 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 04AC5C 8004A05C 460CA03C */ c.lt.s $f20, $f12 -/* 04AC60 8004A060 44814800 */ mtc1 $at, $f9 -/* 04AC64 8004A064 45000002 */ bc1f .L8004A070 -/* 04AC68 8004A068 3C0B8012 */ lui $t3, %hi(gCurrentRacerMiscAssetPtr) # $t3, 0x8012 -/* 04AC6C 8004A06C 46006506 */ mov.s $f20, $f12 -.L8004A070: -/* 04AC70 8004A070 44804000 */ mtc1 $zero, $f8 -/* 04AC74 8004A074 4600A021 */ cvt.d.s $f0, $f20 -/* 04AC78 8004A078 4620403C */ c.lt.d $f8, $f0 -/* 04AC7C 8004A07C 44805000 */ mtc1 $zero, $f10 -/* 04AC80 8004A080 45000004 */ bc1f .L8004A094 -/* 04AC84 8004A084 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04AC88 8004A088 4481A000 */ mtc1 $at, $f20 -/* 04AC8C 8004A08C 00000000 */ nop -/* 04AC90 8004A090 4600A021 */ cvt.d.s $f0, $f20 -.L8004A094: -/* 04AC94 8004A094 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04AC98 8004A098 44815800 */ mtc1 $at, $f11 -/* 04AC9C 8004A09C 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 -/* 04ACA0 8004A0A0 44819800 */ mtc1 $at, $f19 -/* 04ACA4 8004A0A4 44809000 */ mtc1 $zero, $f18 -/* 04ACA8 8004A0A8 3C018012 */ lui $at, %hi(gCurrentCourseHeight) # $at, 0x8012 -/* 04ACAC 8004A0AC 46320102 */ mul.d $f4, $f0, $f18 -/* 04ACB0 8004A0B0 C428D4F0 */ lwc1 $f8, %lo(gCurrentCourseHeight)($at) -/* 04ACB4 8004A0B4 3C014049 */ li $at, 0x40490000 # 3.140625 -/* 04ACB8 8004A0B8 A3A000A3 */ sb $zero, 0xa3($sp) -/* 04ACBC 8004A0BC 820201E0 */ lb $v0, 0x1e0($s0) -/* 04ACC0 8004A0C0 46245181 */ sub.d $f6, $f10, $f4 -/* 04ACC4 8004A0C4 44805000 */ mtc1 $zero, $f10 -/* 04ACC8 8004A0C8 44815800 */ mtc1 $at, $f11 -/* 04ACCC 8004A0CC 46203520 */ cvt.s.d $f20, $f6 -/* 04ACD0 8004A0D0 C6260010 */ lwc1 $f6, 0x10($s1) -/* 04ACD4 8004A0D4 460044A1 */ cvt.d.s $f18, $f8 -/* 04ACD8 8004A0D8 462A9101 */ sub.d $f4, $f18, $f10 -/* 04ACDC 8004A0DC 28410002 */ slti $at, $v0, 2 -/* 04ACE0 8004A0E0 46003221 */ cvt.d.s $f8, $f6 -/* 04ACE4 8004A0E4 46282481 */ sub.d $f18, $f4, $f8 -/* 04ACE8 8004A0E8 10200023 */ beqz $at, .L8004A178 -/* 04ACEC 8004A0EC 462090A0 */ cvt.s.d $f2, $f18 -/* 04ACF0 8004A0F0 2841FFFF */ slti $at, $v0, -1 -/* 04ACF4 8004A0F4 14200020 */ bnez $at, .L8004A178 -/* 04ACF8 8004A0F8 00000000 */ nop -/* 04ACFC 8004A0FC 460C103C */ c.lt.s $f2, $f12 -/* 04AD00 8004A100 3C014039 */ li $at, 0x40390000 # 2.890625 -/* 04AD04 8004A104 4500001C */ bc1f .L8004A178 -/* 04AD08 8004A108 24180001 */ li $t8, 1 -/* 04AD0C 8004A10C 44812800 */ mtc1 $at, $f5 -/* 04AD10 8004A110 44802000 */ mtc1 $zero, $f4 -/* 04AD14 8004A114 46001287 */ neg.s $f10, $f2 -/* 04AD18 8004A118 460051A1 */ cvt.d.s $f6, $f10 -/* 04AD1C 8004A11C 00000000 */ nop -/* 04AD20 8004A120 46243203 */ div.d $f8, $f6, $f4 -/* 04AD24 8004A124 3C098012 */ lui $t1, %hi(gCurrentStickY) # $t1, 0x8012 -/* 04AD28 8004A128 2529D538 */ addiu $t1, %lo(gCurrentStickY) # addiu $t1, $t1, -0x2ac8 -/* 04AD2C 8004A12C 8D2E0000 */ lw $t6, ($t1) -/* 04AD30 8004A130 4600A4A1 */ cvt.d.s $f18, $f20 -/* 04AD34 8004A134 44803000 */ mtc1 $zero, $f6 -/* 04AD38 8004A138 29C1FFEC */ slti $at, $t6, -0x14 -/* 04AD3C 8004A13C 240FFFEC */ li $t7, -20 -/* 04AD40 8004A140 46289280 */ add.d $f10, $f18, $f8 -/* 04AD44 8004A144 10200002 */ beqz $at, .L8004A150 -/* 04AD48 8004A148 46205520 */ cvt.s.d $f20, $f10 -/* 04AD4C 8004A14C AD2F0000 */ sw $t7, ($t1) -.L8004A150: -/* 04AD50 8004A150 3C014004 */ li $at, 0x40040000 # 2.062500 -/* 04AD54 8004A154 44813800 */ mtc1 $at, $f7 -/* 04AD58 8004A158 4600A121 */ cvt.d.s $f4, $f20 -/* 04AD5C 8004A15C 4624303C */ c.lt.d $f6, $f4 -/* 04AD60 8004A160 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 04AD64 8004A164 45000003 */ bc1f .L8004A174 -/* 04AD68 8004A168 00000000 */ nop -/* 04AD6C 8004A16C 4481A000 */ mtc1 $at, $f20 -/* 04AD70 8004A170 00000000 */ nop -.L8004A174: -/* 04AD74 8004A174 A3B800A3 */ sb $t8, 0xa3($sp) -.L8004A178: -/* 04AD78 8004A178 C602002C */ lwc1 $f2, 0x2c($s0) -/* 04AD7C 8004A17C 44809000 */ mtc1 $zero, $f18 -/* 04AD80 8004A180 3C098012 */ lui $t1, %hi(gCurrentStickY) # $t1, 0x8012 -/* 04AD84 8004A184 4612103C */ c.lt.s $f2, $f18 -/* 04AD88 8004A188 2529D538 */ addiu $t1, %lo(gCurrentStickY) # addiu $t1, $t1, -0x2ac8 -/* 04AD8C 8004A18C 45000002 */ bc1f .L8004A198 -/* 04AD90 8004A190 46001386 */ mov.s $f14, $f2 -/* 04AD94 8004A194 46007387 */ neg.s $f14, $f14 -.L8004A198: -/* 04AD98 8004A198 44804000 */ mtc1 $zero, $f8 -/* 04AD9C 8004A19C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04ADA0 8004A1A0 4608103C */ c.lt.s $f2, $f8 -/* 04ADA4 8004A1A4 44815000 */ mtc1 $at, $f10 -/* 04ADA8 8004A1A8 45000002 */ bc1f .L8004A1B4 -/* 04ADAC 8004A1AC 46001006 */ mov.s $f0, $f2 -/* 04ADB0 8004A1B0 46001007 */ neg.s $f0, $f2 -.L8004A1B4: -/* 04ADB4 8004A1B4 460A0180 */ add.s $f6, $f0, $f10 -/* 04ADB8 8004A1B8 460E303C */ c.lt.s $f6, $f14 -/* 04ADBC 8004A1BC 00000000 */ nop -/* 04ADC0 8004A1C0 45000004 */ bc1f .L8004A1D4 -/* 04ADC4 8004A1C4 3C014040 */ li $at, 0x40400000 # 3.000000 -/* 04ADC8 8004A1C8 44812000 */ mtc1 $at, $f4 -/* 04ADCC 8004A1CC 00000000 */ nop -/* 04ADD0 8004A1D0 46040380 */ add.s $f14, $f0, $f4 -.L8004A1D4: -/* 04ADD4 8004A1D4 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 04ADD8 8004A1D8 44810000 */ mtc1 $at, $f0 -/* 04ADDC 8004A1DC 3C01800E */ lui $at, %hi(D_800E64EC) # $at, 0x800e -/* 04ADE0 8004A1E0 460E003C */ c.lt.s $f0, $f14 -/* 04ADE4 8004A1E4 00000000 */ nop -/* 04ADE8 8004A1E8 45000002 */ bc1f .L8004A1F4 -/* 04ADEC 8004A1EC 00000000 */ nop -/* 04ADF0 8004A1F0 46000386 */ mov.s $f14, $f0 -.L8004A1F4: -/* 04ADF4 8004A1F4 C42264EC */ lwc1 $f2, %lo(D_800E64EC)($at) -/* 04ADF8 8004A1F8 3C01800E */ lui $at, %hi(D_800E64F0) # $at, 0x800e -/* 04ADFC 8004A1FC C42C64F0 */ lwc1 $f12, %lo(D_800E64F0)($at) -/* 04AE00 8004A200 4459F800 */ cfc1 $t9, $31 -/* 04AE04 8004A204 3C01800E */ lui $at, %hi(D_800E64F4) # $at, 0x800e -/* 04AE08 8004A208 C43064F4 */ lwc1 $f16, %lo(D_800E64F4)($at) -/* 04AE0C 8004A20C 37210003 */ ori $at, $t9, 3 -/* 04AE10 8004A210 38210002 */ xori $at, $at, 2 -/* 04AE14 8004A214 44C1F800 */ ctc1 $at, $31 -/* 04AE18 8004A218 8D6BD564 */ lw $t3, %lo(gCurrentRacerMiscAssetPtr)($t3) -/* 04AE1C 8004A21C 460074A4 */ cvt.w.s $f18, $f14 -/* 04AE20 8004A220 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04AE24 8004A224 44029000 */ mfc1 $v0, $f18 -/* 04AE28 8004A228 44D9F800 */ ctc1 $t9, $31 -/* 04AE2C 8004A22C 44824000 */ mtc1 $v0, $f8 -/* 04AE30 8004A230 00026080 */ sll $t4, $v0, 2 -/* 04AE34 8004A234 468042A0 */ cvt.s.w $f10, $f8 -/* 04AE38 8004A238 44813800 */ mtc1 $at, $f7 -/* 04AE3C 8004A23C 44803000 */ mtc1 $zero, $f6 -/* 04AE40 8004A240 460A7001 */ sub.s $f0, $f14, $f10 -/* 04AE44 8004A244 016C1821 */ addu $v1, $t3, $t4 -/* 04AE48 8004A248 C4680000 */ lwc1 $f8, ($v1) -/* 04AE4C 8004A24C 46000121 */ cvt.d.s $f4, $f0 -/* 04AE50 8004A250 46243481 */ sub.d $f18, $f6, $f4 -/* 04AE54 8004A254 C4640004 */ lwc1 $f4, 4($v1) -/* 04AE58 8004A258 460042A1 */ cvt.d.s $f10, $f8 -/* 04AE5C 8004A25C 46325182 */ mul.d $f6, $f10, $f18 -/* 04AE60 8004A260 E7A200D4 */ swc1 $f2, 0xd4($sp) -/* 04AE64 8004A264 E7AC00D0 */ swc1 $f12, 0xd0($sp) -/* 04AE68 8004A268 E7B000D8 */ swc1 $f16, 0xd8($sp) -/* 04AE6C 8004A26C 820D01E2 */ lb $t5, 0x1e2($s0) -/* 04AE70 8004A270 46002202 */ mul.s $f8, $f4, $f0 -/* 04AE74 8004A274 460042A1 */ cvt.d.s $f10, $f8 -/* 04AE78 8004A278 462A3480 */ add.d $f18, $f6, $f10 -/* 04AE7C 8004A27C 11A000A0 */ beqz $t5, .L8004A500 -/* 04AE80 8004A280 462093A0 */ cvt.s.d $f14, $f18 -/* 04AE84 8004A284 E7AC00D4 */ swc1 $f12, 0xd4($sp) -/* 04AE88 8004A288 E7A200D0 */ swc1 $f2, 0xd0($sp) -/* 04AE8C 8004A28C 00002825 */ move $a1, $zero -/* 04AE90 8004A290 00004025 */ move $t0, $zero -/* 04AE94 8004A294 4600A021 */ cvt.d.s $f0, $f20 -/* 04AE98 8004A298 02001825 */ move $v1, $s0 -/* 04AE9C 8004A29C 24060004 */ li $a2, 4 -/* 04AEA0 8004A2A0 240400FF */ li $a0, 255 -.L8004A2A4: -/* 04AEA4 8004A2A4 906201DC */ lbu $v0, 0x1dc($v1) -/* 04AEA8 8004A2A8 25080001 */ addiu $t0, $t0, 1 -/* 04AEAC 8004A2AC 10820004 */ beq $a0, $v0, .L8004A2C0 -/* 04AEB0 8004A2B0 00A2082A */ slt $at, $a1, $v0 -/* 04AEB4 8004A2B4 10200002 */ beqz $at, .L8004A2C0 -/* 04AEB8 8004A2B8 00000000 */ nop -/* 04AEBC 8004A2BC 00402825 */ move $a1, $v0 -.L8004A2C0: -/* 04AEC0 8004A2C0 1506FFF8 */ bne $t0, $a2, .L8004A2A4 -/* 04AEC4 8004A2C4 24630001 */ addiu $v1, $v1, 1 -/* 04AEC8 8004A2C8 14A60002 */ bne $a1, $a2, .L8004A2D4 -/* 04AECC 8004A2CC 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 -/* 04AED0 8004A2D0 A2000175 */ sb $zero, 0x175($s0) -.L8004A2D4: -/* 04AED4 8004A2D4 860E0000 */ lh $t6, ($s0) -/* 04AED8 8004A2D8 2401000C */ li $at, 12 -/* 04AEDC 8004A2DC 15C00009 */ bnez $t6, .L8004A304 -/* 04AEE0 8004A2E0 00000000 */ nop -/* 04AEE4 8004A2E4 14A10007 */ bne $a1, $at, .L8004A304 -/* 04AEE8 8004A2E8 3C0F8012 */ lui $t7, %hi(gCurrentButtonsPressed) # $t7, 0x8012 -/* 04AEEC 8004A2EC 8DEFD52C */ lw $t7, %lo(gCurrentButtonsPressed)($t7) -/* 04AEF0 8004A2F0 24190002 */ li $t9, 2 -/* 04AEF4 8004A2F4 31F82000 */ andi $t8, $t7, 0x2000 -/* 04AEF8 8004A2F8 13000002 */ beqz $t8, .L8004A304 -/* 04AEFC 8004A2FC 3C018012 */ lui $at, %hi(D_8011D582) # $at, 0x8012 -/* 04AF00 8004A300 A039D582 */ sb $t9, %lo(D_8011D582)($at) -.L8004A304: -/* 04AF04 8004A304 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) -/* 04AF08 8004A308 00000000 */ nop -/* 04AF0C 8004A30C 316C4000 */ andi $t4, $t3, 0x4000 -/* 04AF10 8004A310 11800013 */ beqz $t4, .L8004A360 -/* 04AF14 8004A314 00000000 */ nop -/* 04AF18 8004A318 8D2D0000 */ lw $t5, ($t1) -/* 04AF1C 8004A31C 00000000 */ nop -/* 04AF20 8004A320 29A1FFD8 */ slti $at, $t5, -0x28 -/* 04AF24 8004A324 1420000E */ bnez $at, .L8004A360 -/* 04AF28 8004A328 00000000 */ nop -/* 04AF2C 8004A32C C604002C */ lwc1 $f4, 0x2c($s0) -/* 04AF30 8004A330 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 04AF34 8004A334 44813800 */ mtc1 $at, $f7 -/* 04AF38 8004A338 44803000 */ mtc1 $zero, $f6 -/* 04AF3C 8004A33C 46002221 */ cvt.d.s $f8, $f4 -/* 04AF40 8004A340 4628303E */ c.le.d $f6, $f8 -/* 04AF44 8004A344 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 04AF48 8004A348 45000005 */ bc1f .L8004A360 -/* 04AF4C 8004A34C 00000000 */ nop -/* 04AF50 8004A350 44815000 */ mtc1 $at, $f10 -/* 04AF54 8004A354 00000000 */ nop -/* 04AF58 8004A358 460A8482 */ mul.s $f18, $f16, $f10 -/* 04AF5C 8004A35C E7B200D8 */ swc1 $f18, 0xd8($sp) -.L8004A360: -/* 04AF60 8004A360 820E01D3 */ lb $t6, 0x1d3($s0) -/* 04AF64 8004A364 24010003 */ li $at, 3 -/* 04AF68 8004A368 15C00026 */ bnez $t6, .L8004A404 -/* 04AF6C 8004A36C 00000000 */ nop -/* 04AF70 8004A370 14A10024 */ bne $a1, $at, .L8004A404 -/* 04AF74 8004A374 2404002D */ li $a0, 45 -/* 04AF78 8004A378 E7A10048 */ swc1 $f1, 0x48($sp) -/* 04AF7C 8004A37C E7A0004C */ swc1 $f0, 0x4c($sp) -/* 04AF80 8004A380 0C00322D */ jal normalise_time -/* 04AF84 8004A384 E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04AF88 8004A388 9218020C */ lbu $t8, 0x20c($s0) -/* 04AF8C 8004A38C C7A10048 */ lwc1 $f1, 0x48($sp) -/* 04AF90 8004A390 C7A0004C */ lwc1 $f0, 0x4c($sp) -/* 04AF94 8004A394 C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04AF98 8004A398 240F0002 */ li $t7, 2 -/* 04AF9C 8004A39C A20201D3 */ sb $v0, 0x1d3($s0) -/* 04AFA0 8004A3A0 13000005 */ beqz $t8, .L8004A3B8 -/* 04AFA4 8004A3A4 A20F0203 */ sb $t7, 0x203($s0) -/* 04AFA8 8004A3A8 82190203 */ lb $t9, 0x203($s0) -/* 04AFAC 8004A3AC 00000000 */ nop -/* 04AFB0 8004A3B0 372B0004 */ ori $t3, $t9, 4 -/* 04AFB4 8004A3B4 A20B0203 */ sb $t3, 0x203($s0) -.L8004A3B8: -/* 04AFB8 8004A3B8 02202025 */ move $a0, $s1 -/* 04AFBC 8004A3BC 24050107 */ li $a1, 263 -/* 04AFC0 8004A3C0 E7A10048 */ swc1 $f1, 0x48($sp) -/* 04AFC4 8004A3C4 E7A0004C */ swc1 $f0, 0x4c($sp) -/* 04AFC8 8004A3C8 0C015C12 */ jal racer_play_sound -/* 04AFCC 8004A3CC E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04AFD0 8004A3D0 02202025 */ move $a0, $s1 -/* 04AFD4 8004A3D4 24050162 */ li $a1, 354 -/* 04AFD8 8004A3D8 24060008 */ li $a2, 8 -/* 04AFDC 8004A3DC 0C015C2E */ jal play_random_character_voice -/* 04AFE0 8004A3E0 24070082 */ li $a3, 130 -/* 04AFE4 8004A3E4 86040000 */ lh $a0, ($s0) -/* 04AFE8 8004A3E8 0C01C8D2 */ jal func_80072348 -/* 04AFEC 8004A3EC 24050008 */ li $a1, 8 -/* 04AFF0 8004A3F0 3C098012 */ lui $t1, %hi(gCurrentStickY) # $t1, 0x8012 -/* 04AFF4 8004A3F4 C7A10048 */ lwc1 $f1, 0x48($sp) -/* 04AFF8 8004A3F8 C7A0004C */ lwc1 $f0, 0x4c($sp) -/* 04AFFC 8004A3FC C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B000 8004A400 2529D538 */ addiu $t1, %lo(gCurrentStickY) # addiu $t1, $t1, -0x2ac8 -.L8004A404: -/* 04B004 8004A404 820C01D6 */ lb $t4, 0x1d6($s0) -/* 04B008 8004A408 3C0D8012 */ lui $t5, %hi(gCurrentRacerInput) # $t5, 0x8012 -/* 04B00C 8004A40C 29810005 */ slti $at, $t4, 5 -/* 04B010 8004A410 14200018 */ bnez $at, .L8004A474 -/* 04B014 8004A414 3C0F800E */ lui $t7, %hi(gNumViewports) # $t7, 0x800e -/* 04B018 8004A418 C608002C */ lwc1 $f8, 0x2c($s0) -/* 04B01C 8004A41C 3C01C018 */ li $at, 0xC0180000 # -2.375000 -/* 04B020 8004A420 44812800 */ mtc1 $at, $f5 -/* 04B024 8004A424 44802000 */ mtc1 $zero, $f4 -/* 04B028 8004A428 460041A1 */ cvt.d.s $f6, $f8 -/* 04B02C 8004A42C 4626203C */ c.lt.d $f4, $f6 -/* 04B030 8004A430 C7AA00C8 */ lwc1 $f10, 0xc8($sp) -/* 04B034 8004A434 4500000F */ bc1f .L8004A474 -/* 04B038 8004A438 3C01800E */ lui $at, %hi(D_800E64F8 + 4) # $at, 0x800e -/* 04B03C 8004A43C C42964F8 */ lwc1 $f9, %lo(D_800E64F8)($at) -/* 04B040 8004A440 C42864FC */ lwc1 $f8, %lo(D_800E64F8 + 4)($at) -/* 04B044 8004A444 460054A1 */ cvt.d.s $f18, $f10 -/* 04B048 8004A448 46289102 */ mul.d $f4, $f18, $f8 -/* 04B04C 8004A44C 3C01800E */ lui $at, %hi(D_800E6500 + 4) # $at, 0x800e -/* 04B050 8004A450 C7AA00C4 */ lwc1 $f10, 0xc4($sp) -/* 04B054 8004A454 C4296500 */ lwc1 $f9, %lo(D_800E6500)($at) -/* 04B058 8004A458 C4286504 */ lwc1 $f8, %lo(D_800E6500 + 4)($at) -/* 04B05C 8004A45C 462021A0 */ cvt.s.d $f6, $f4 -/* 04B060 8004A460 460054A1 */ cvt.d.s $f18, $f10 -/* 04B064 8004A464 46289102 */ mul.d $f4, $f18, $f8 -/* 04B068 8004A468 E7A600C8 */ swc1 $f6, 0xc8($sp) -/* 04B06C 8004A46C 462021A0 */ cvt.s.d $f6, $f4 -/* 04B070 8004A470 E7A600C4 */ swc1 $f6, 0xc4($sp) -.L8004A474: -/* 04B074 8004A474 A20001E0 */ sb $zero, 0x1e0($s0) -/* 04B078 8004A478 8DADD528 */ lw $t5, %lo(gCurrentRacerInput)($t5) -/* 04B07C 8004A47C 00000000 */ nop -/* 04B080 8004A480 31AE4000 */ andi $t6, $t5, 0x4000 -/* 04B084 8004A484 11C00007 */ beqz $t6, .L8004A4A4 -/* 04B088 8004A488 00000000 */ nop -/* 04B08C 8004A48C 8DEFCB98 */ lw $t7, %lo(gNumViewports)($t7) -/* 04B090 8004A490 24180003 */ li $t8, 3 -/* 04B094 8004A494 29E10003 */ slti $at, $t7, 3 -/* 04B098 8004A498 10200002 */ beqz $at, .L8004A4A4 -/* 04B09C 8004A49C 00000000 */ nop -/* 04B0A0 8004A4A0 AE380074 */ sw $t8, 0x74($s1) -.L8004A4A4: -/* 04B0A4 8004A4A4 8D390000 */ lw $t9, ($t1) -/* 04B0A8 8004A4A8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04B0AC 8004A4AC 44995000 */ mtc1 $t9, $f10 -/* 04B0B0 8004A4B0 44812800 */ mtc1 $at, $f5 -/* 04B0B4 8004A4B4 468054A0 */ cvt.s.w $f18, $f10 -/* 04B0B8 8004A4B8 44802000 */ mtc1 $zero, $f4 -/* 04B0BC 8004A4BC 00000000 */ nop -/* 04B0C0 8004A4C0 46202181 */ sub.d $f6, $f4, $f0 -/* 04B0C4 8004A4C4 46009221 */ cvt.d.s $f8, $f18 -/* 04B0C8 8004A4C8 46264282 */ mul.d $f10, $f8, $f6 -/* 04B0CC 8004A4CC 444BF800 */ cfc1 $t3, $31 -/* 04B0D0 8004A4D0 00000000 */ nop -/* 04B0D4 8004A4D4 35610003 */ ori $at, $t3, 3 -/* 04B0D8 8004A4D8 38210002 */ xori $at, $at, 2 -/* 04B0DC 8004A4DC 44C1F800 */ ctc1 $at, $31 -/* 04B0E0 8004A4E0 00000000 */ nop -/* 04B0E4 8004A4E4 462054A4 */ cvt.w.d $f18, $f10 -/* 04B0E8 8004A4E8 E5320000 */ swc1 $f18, ($t1) -/* 04B0EC 8004A4EC 8D2C0000 */ lw $t4, ($t1) -/* 04B0F0 8004A4F0 44CBF800 */ ctc1 $t3, $31 -/* 04B0F4 8004A4F4 19800003 */ blez $t4, .L8004A504 -/* 04B0F8 8004A4F8 83AD00A3 */ lb $t5, 0xa3($sp) -/* 04B0FC 8004A4FC AD200000 */ sw $zero, ($t1) -.L8004A500: -/* 04B100 8004A500 83AD00A3 */ lb $t5, 0xa3($sp) -.L8004A504: -/* 04B104 8004A504 820201D6 */ lb $v0, 0x1d6($s0) -/* 04B108 8004A508 15A0000F */ bnez $t5, .L8004A548 -/* 04B10C 8004A50C 00004025 */ move $t0, $zero -/* 04B110 8004A510 3C014590 */ li $at, 0x45900000 # 4608.000000 -/* 04B114 8004A514 44812000 */ mtc1 $at, $f4 -/* 04B118 8004A518 00000000 */ nop -/* 04B11C 8004A51C 4604A202 */ mul.s $f8, $f20, $f4 -/* 04B120 8004A520 444EF800 */ cfc1 $t6, $31 -/* 04B124 8004A524 00000000 */ nop -/* 04B128 8004A528 35C10003 */ ori $at, $t6, 3 -/* 04B12C 8004A52C 38210002 */ xori $at, $at, 2 -/* 04B130 8004A530 44C1F800 */ ctc1 $at, $31 -/* 04B134 8004A534 00000000 */ nop -/* 04B138 8004A538 460041A4 */ cvt.w.s $f6, $f8 -/* 04B13C 8004A53C 44CEF800 */ ctc1 $t6, $31 -/* 04B140 8004A540 44083000 */ mfc1 $t0, $f6 -/* 04B144 8004A544 00000000 */ nop -.L8004A548: -/* 04B148 8004A548 28410006 */ slti $at, $v0, 6 -/* 04B14C 8004A54C 14200002 */ bnez $at, .L8004A558 -/* 04B150 8004A550 02002025 */ move $a0, $s0 -/* 04B154 8004A554 00004025 */ move $t0, $zero -.L8004A558: -/* 04B158 8004A558 2401000A */ li $at, 10 -/* 04B15C 8004A55C 14410003 */ bne $v0, $at, .L8004A56C -/* 04B160 8004A560 00003025 */ move $a2, $zero -/* 04B164 8004A564 4480A000 */ mtc1 $zero, $f20 -/* 04B168 8004A568 00004025 */ move $t0, $zero -.L8004A56C: -/* 04B16C 8004A56C 00083C00 */ sll $a3, $t0, 0x10 -/* 04B170 8004A570 00077C03 */ sra $t7, $a3, 0x10 -/* 04B174 8004A574 8FA500F8 */ lw $a1, 0xf8($sp) -/* 04B178 8004A578 01E03825 */ move $a3, $t7 -/* 04B17C 8004A57C AFA00010 */ sw $zero, 0x10($sp) -/* 04B180 8004A580 0C014214 */ jal apply_vehicle_rotation_offset -/* 04B184 8004A584 E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B188 8004A588 920201FE */ lbu $v0, 0x1fe($s0) -/* 04B18C 8004A58C C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B190 8004A590 14400008 */ bnez $v0, .L8004A5B4 -/* 04B194 8004A594 3C0C8012 */ lui $t4, %hi(gRaceStartTimer) # $t4, 0x8012 -/* 04B198 8004A598 8E380074 */ lw $t8, 0x74($s1) -/* 04B19C 8004A59C 3C0140B0 */ li $at, 0x40B00000 # 5.500000 -/* 04B1A0 8004A5A0 37190100 */ ori $t9, $t8, 0x100 -/* 04B1A4 8004A5A4 AE390074 */ sw $t9, 0x74($s1) -/* 04B1A8 8004A5A8 4481A000 */ mtc1 $at, $f20 -/* 04B1AC 8004A5AC 920201FE */ lbu $v0, 0x1fe($s0) -/* 04B1B0 8004A5B0 00000000 */ nop -.L8004A5B4: -/* 04B1B4 8004A5B4 24010001 */ li $at, 1 -/* 04B1B8 8004A5B8 14410003 */ bne $v0, $at, .L8004A5C8 -/* 04B1BC 8004A5BC 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04B1C0 8004A5C0 4481A000 */ mtc1 $at, $f20 -/* 04B1C4 8004A5C4 00000000 */ nop -.L8004A5C8: -/* 04B1C8 8004A5C8 C61200C0 */ lwc1 $f18, 0xc0($s0) -/* 04B1CC 8004A5CC 44805800 */ mtc1 $zero, $f11 -/* 04B1D0 8004A5D0 44805000 */ mtc1 $zero, $f10 -/* 04B1D4 8004A5D4 46009121 */ cvt.d.s $f4, $f18 -/* 04B1D8 8004A5D8 46245032 */ c.eq.d $f10, $f4 -/* 04B1DC 8004A5DC 00000000 */ nop -/* 04B1E0 8004A5E0 45010021 */ bc1t .L8004A668 -/* 04B1E4 8004A5E4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 04B1E8 8004A5E8 44810000 */ mtc1 $at, $f0 -/* 04B1EC 8004A5EC 3C018012 */ lui $at, %hi(gCurrentStickY) # $at, 0x8012 -/* 04B1F0 8004A5F0 240BFFC4 */ li $t3, -60 -/* 04B1F4 8004A5F4 AC2BD538 */ sw $t3, %lo(gCurrentStickY)($at) -/* 04B1F8 8004A5F8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 04B1FC 8004A5FC 44813000 */ mtc1 $at, $f6 -/* 04B200 8004A600 C60800C0 */ lwc1 $f8, 0xc0($s0) -/* 04B204 8004A604 44805800 */ mtc1 $zero, $f11 -/* 04B208 8004A608 46064081 */ sub.s $f2, $f8, $f6 -/* 04B20C 8004A60C 44805000 */ mtc1 $zero, $f10 -/* 04B210 8004A610 460014A1 */ cvt.d.s $f18, $f2 -/* 04B214 8004A614 462A903C */ c.lt.d $f18, $f10 -/* 04B218 8004A618 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 04B21C 8004A61C 44812000 */ mtc1 $at, $f4 -/* 04B220 8004A620 45000004 */ bc1f .L8004A634 -/* 04B224 8004A624 00000000 */ nop -/* 04B228 8004A628 44801000 */ mtc1 $zero, $f2 -/* 04B22C 8004A62C 00000000 */ nop -/* 04B230 8004A630 00000000 */ nop -.L8004A634: -/* 04B234 8004A634 46041203 */ div.s $f8, $f2, $f4 -/* 04B238 8004A638 3C01C010 */ li $at, 0xC0100000 # -2.250000 -/* 04B23C 8004A63C 44819800 */ mtc1 $at, $f19 -/* 04B240 8004A640 44809000 */ mtc1 $zero, $f18 -/* 04B244 8004A644 3C01C080 */ li $at, 0xC0800000 # -4.000000 -/* 04B248 8004A648 46080501 */ sub.s $f20, $f0, $f8 -/* 04B24C 8004A64C 4600A1A1 */ cvt.d.s $f6, $f20 -/* 04B250 8004A650 4632303C */ c.lt.d $f6, $f18 -/* 04B254 8004A654 00000000 */ nop -/* 04B258 8004A658 45000003 */ bc1f .L8004A668 -/* 04B25C 8004A65C 00000000 */ nop -/* 04B260 8004A660 4481A000 */ mtc1 $at, $f20 -/* 04B264 8004A664 00000000 */ nop -.L8004A668: -/* 04B268 8004A668 8D8CD540 */ lw $t4, %lo(gRaceStartTimer)($t4) -/* 04B26C 8004A66C 00000000 */ nop -/* 04B270 8004A670 11800003 */ beqz $t4, .L8004A680 -/* 04B274 8004A674 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04B278 8004A678 4481A000 */ mtc1 $at, $f20 -/* 04B27C 8004A67C 00000000 */ nop -.L8004A680: -/* 04B280 8004A680 820D01D7 */ lb $t5, 0x1d7($s0) -/* 04B284 8004A684 2401000C */ li $at, 12 -/* 04B288 8004A688 15A1000B */ bne $t5, $at, .L8004A6B8 -/* 04B28C 8004A68C 00000000 */ nop -/* 04B290 8004A690 822E003B */ lb $t6, 0x3b($s1) -/* 04B294 8004A694 00000000 */ nop -/* 04B298 8004A698 29C10003 */ slti $at, $t6, 3 -/* 04B29C 8004A69C 10200004 */ beqz $at, .L8004A6B0 -/* 04B2A0 8004A6A0 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04B2A4 8004A6A4 4481A000 */ mtc1 $at, $f20 -/* 04B2A8 8004A6A8 10000003 */ b .L8004A6B8 -/* 04B2AC 8004A6AC 00000000 */ nop -.L8004A6B0: -/* 04B2B0 8004A6B0 4480A000 */ mtc1 $zero, $f20 -/* 04B2B4 8004A6B4 00000000 */ nop -.L8004A6B8: -/* 04B2B8 8004A6B8 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 -/* 04B2BC 8004A6BC C42AD56C */ lwc1 $f10, %lo(gCurrentRacerWeightStat)($at) -/* 04B2C0 8004A6C0 C6240020 */ lwc1 $f4, 0x20($s1) -/* 04B2C4 8004A6C4 460AA502 */ mul.s $f20, $f20, $f10 -/* 04B2C8 8004A6C8 46142201 */ sub.s $f8, $f4, $f20 -/* 04B2CC 8004A6CC E6280020 */ swc1 $f8, 0x20($s1) -/* 04B2D0 8004A6D0 920F01F5 */ lbu $t7, 0x1f5($s0) -/* 04B2D4 8004A6D4 00000000 */ nop -/* 04B2D8 8004A6D8 11E0005E */ beqz $t7, .L8004A854 -/* 04B2DC 8004A6DC 00000000 */ nop -/* 04B2E0 8004A6E0 821801DB */ lb $t8, 0x1db($s0) -/* 04B2E4 8004A6E4 34018001 */ li $at, 32769 -/* 04B2E8 8004A6E8 1700005A */ bnez $t8, .L8004A854 -/* 04B2EC 8004A6EC 00000000 */ nop -/* 04B2F0 8004A6F0 8E19014C */ lw $t9, 0x14c($s0) -/* 04B2F4 8004A6F4 860301A0 */ lh $v1, 0x1a0($s0) -/* 04B2F8 8004A6F8 A2000175 */ sb $zero, 0x175($s0) -/* 04B2FC 8004A6FC A20001DB */ sb $zero, 0x1db($s0) -/* 04B300 8004A700 A20001E0 */ sb $zero, 0x1e0($s0) -/* 04B304 8004A704 872B0000 */ lh $t3, ($t9) -/* 04B308 8004A708 306CFFFF */ andi $t4, $v1, 0xffff -/* 04B30C 8004A70C 016C1023 */ subu $v0, $t3, $t4 -/* 04B310 8004A710 0041082A */ slt $at, $v0, $at -/* 04B314 8004A714 8FAD00F8 */ lw $t5, 0xf8($sp) -/* 04B318 8004A718 14200003 */ bnez $at, .L8004A728 -/* 04B31C 8004A71C 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 04B320 8004A720 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 04B324 8004A724 00411021 */ addu $v0, $v0, $at -.L8004A728: -/* 04B328 8004A728 28418000 */ slti $at, $v0, -0x8000 -/* 04B32C 8004A72C 10200002 */ beqz $at, .L8004A738 -/* 04B330 8004A730 3401FFFF */ li $at, 65535 -/* 04B334 8004A734 00411021 */ addu $v0, $v0, $at -.L8004A738: -/* 04B338 8004A738 004D0019 */ multu $v0, $t5 -/* 04B33C 8004A73C 28410400 */ slti $at, $v0, 0x400 -/* 04B340 8004A740 00007012 */ mflo $t6 -/* 04B344 8004A744 000E78C3 */ sra $t7, $t6, 3 -/* 04B348 8004A748 006FC021 */ addu $t8, $v1, $t7 -/* 04B34C 8004A74C 10200004 */ beqz $at, .L8004A760 -/* 04B350 8004A750 A61801A0 */ sh $t8, 0x1a0($s0) -/* 04B354 8004A754 2841FC01 */ slti $at, $v0, -0x3ff -/* 04B358 8004A758 10200005 */ beqz $at, .L8004A770 -/* 04B35C 8004A75C 00000000 */ nop -.L8004A760: -/* 04B360 8004A760 86190000 */ lh $t9, ($s0) -/* 04B364 8004A764 2401FFFF */ li $at, -1 -/* 04B368 8004A768 17210026 */ bne $t9, $at, .L8004A804 -/* 04B36C 8004A76C 00000000 */ nop -.L8004A770: -/* 04B370 8004A770 860B0000 */ lh $t3, ($s0) -/* 04B374 8004A774 2401FFFF */ li $at, -1 -/* 04B378 8004A778 1161000E */ beq $t3, $at, .L8004A7B4 -/* 04B37C 8004A77C 24040107 */ li $a0, 263 -/* 04B380 8004A780 8E25000C */ lw $a1, 0xc($s1) -/* 04B384 8004A784 8E260010 */ lw $a2, 0x10($s1) -/* 04B388 8004A788 8E270014 */ lw $a3, 0x14($s1) -/* 04B38C 8004A78C E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B390 8004A790 0C0007AA */ jal play_sound_spatial -/* 04B394 8004A794 AFA00010 */ sw $zero, 0x10($sp) -/* 04B398 8004A798 02202025 */ move $a0, $s1 -/* 04B39C 8004A79C 24050162 */ li $a1, 354 -/* 04B3A0 8004A7A0 24060008 */ li $a2, 8 -/* 04B3A4 8004A7A4 0C015C2E */ jal play_random_character_voice -/* 04B3A8 8004A7A8 24070082 */ li $a3, 130 -/* 04B3AC 8004A7AC C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B3B0 8004A7B0 00000000 */ nop -.L8004A7B4: -/* 04B3B4 8004A7B4 2404002D */ li $a0, 45 -/* 04B3B8 8004A7B8 0C00322D */ jal normalise_time -/* 04B3BC 8004A7BC E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B3C0 8004A7C0 920D020C */ lbu $t5, 0x20c($s0) -/* 04B3C4 8004A7C4 C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B3C8 8004A7C8 240C0002 */ li $t4, 2 -/* 04B3CC 8004A7CC A20201D3 */ sb $v0, 0x1d3($s0) -/* 04B3D0 8004A7D0 11A00005 */ beqz $t5, .L8004A7E8 -/* 04B3D4 8004A7D4 A20C0203 */ sb $t4, 0x203($s0) -/* 04B3D8 8004A7D8 820E0203 */ lb $t6, 0x203($s0) -/* 04B3DC 8004A7DC 00000000 */ nop -/* 04B3E0 8004A7E0 35CF0004 */ ori $t7, $t6, 4 -/* 04B3E4 8004A7E4 A20F0203 */ sb $t7, 0x203($s0) -.L8004A7E8: -/* 04B3E8 8004A7E8 86040000 */ lh $a0, ($s0) -/* 04B3EC 8004A7EC E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B3F0 8004A7F0 0C01C8D2 */ jal func_80072348 -/* 04B3F4 8004A7F4 24050008 */ li $a1, 8 -/* 04B3F8 8004A7F8 C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B3FC 8004A7FC 10000015 */ b .L8004A854 -/* 04B400 8004A800 A20001F5 */ sb $zero, 0x1f5($s0) -.L8004A804: -/* 04B404 8004A804 C626001C */ lwc1 $f6, 0x1c($s1) -/* 04B408 8004A808 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 -/* 04B40C 8004A80C 44810800 */ mtc1 $at, $f1 -/* 04B410 8004A810 44800000 */ mtc1 $zero, $f0 -/* 04B414 8004A814 460034A1 */ cvt.d.s $f18, $f6 -/* 04B418 8004A818 46209282 */ mul.d $f10, $f18, $f0 -/* 04B41C 8004A81C C6280020 */ lwc1 $f8, 0x20($s1) -/* 04B420 8004A820 00000000 */ nop -/* 04B424 8004A824 460041A1 */ cvt.d.s $f6, $f8 -/* 04B428 8004A828 46205120 */ cvt.s.d $f4, $f10 -/* 04B42C 8004A82C E624001C */ swc1 $f4, 0x1c($s1) -/* 04B430 8004A830 46203482 */ mul.d $f18, $f6, $f0 -/* 04B434 8004A834 C6240024 */ lwc1 $f4, 0x24($s1) -/* 04B438 8004A838 00000000 */ nop -/* 04B43C 8004A83C 46002221 */ cvt.d.s $f8, $f4 -/* 04B440 8004A840 46204182 */ mul.d $f6, $f8, $f0 -/* 04B444 8004A844 462092A0 */ cvt.s.d $f10, $f18 -/* 04B448 8004A848 E62A0020 */ swc1 $f10, 0x20($s1) -/* 04B44C 8004A84C 462034A0 */ cvt.s.d $f18, $f6 -/* 04B450 8004A850 E6320024 */ swc1 $f18, 0x24($s1) -.L8004A854: -/* 04B454 8004A854 821801DB */ lb $t8, 0x1db($s0) -/* 04B458 8004A858 00000000 */ nop -/* 04B45C 8004A85C 13000081 */ beqz $t8, .L8004AA64 -/* 04B460 8004A860 00000000 */ nop -/* 04B464 8004A864 921901F1 */ lbu $t9, 0x1f1($s0) -/* 04B468 8004A868 86040162 */ lh $a0, 0x162($s0) -/* 04B46C 8004A86C 17200002 */ bnez $t9, .L8004A878 -/* 04B470 8004A870 240B0001 */ li $t3, 1 -/* 04B474 8004A874 A20B01F1 */ sb $t3, 0x1f1($s0) -.L8004A878: -/* 04B478 8004A878 820C01E2 */ lb $t4, 0x1e2($s0) -/* 04B47C 8004A87C 240E0002 */ li $t6, 2 -/* 04B480 8004A880 15800005 */ bnez $t4, .L8004A898 -/* 04B484 8004A884 00000000 */ nop -/* 04B488 8004A888 920D01F1 */ lbu $t5, 0x1f1($s0) -/* 04B48C 8004A88C 24010002 */ li $at, 2 -/* 04B490 8004A890 15A10025 */ bne $t5, $at, .L8004A928 -/* 04B494 8004A894 8FAF00F8 */ lw $t7, 0xf8($sp) -.L8004A898: -/* 04B498 8004A898 A20E01F1 */ sb $t6, 0x1f1($s0) -/* 04B49C 8004A89C 8FA200F8 */ lw $v0, 0xf8($sp) -/* 04B4A0 8004A8A0 86180162 */ lh $t8, 0x162($s0) -/* 04B4A4 8004A8A4 86030164 */ lh $v1, 0x164($s0) -/* 04B4A8 8004A8A8 00027AC0 */ sll $t7, $v0, 0xb -/* 04B4AC 8004A8AC 030FC823 */ subu $t9, $t8, $t7 -/* 04B4B0 8004A8B0 01E35821 */ addu $t3, $t7, $v1 -/* 04B4B4 8004A8B4 A6190162 */ sh $t9, 0x162($s0) -/* 04B4B8 8004A8B8 01E01025 */ move $v0, $t7 -/* 04B4BC 8004A8BC 19600005 */ blez $t3, .L8004A8D4 -/* 04B4C0 8004A8C0 00604025 */ move $t0, $v1 -/* 04B4C4 8004A8C4 1D000004 */ bgtz $t0, .L8004A8D8 -/* 04B4C8 8004A8C8 00626021 */ addu $t4, $v1, $v0 -/* 04B4CC 8004A8CC 10000003 */ b .L8004A8DC -/* 04B4D0 8004A8D0 A6000164 */ sh $zero, 0x164($s0) -.L8004A8D4: -/* 04B4D4 8004A8D4 00626021 */ addu $t4, $v1, $v0 -.L8004A8D8: -/* 04B4D8 8004A8D8 A60C0164 */ sh $t4, 0x164($s0) -.L8004A8DC: -/* 04B4DC 8004A8DC C604002C */ lwc1 $f4, 0x2c($s0) -/* 04B4E0 8004A8E0 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 04B4E4 8004A8E4 44815800 */ mtc1 $at, $f11 -/* 04B4E8 8004A8E8 44805000 */ mtc1 $zero, $f10 -/* 04B4EC 8004A8EC 46002221 */ cvt.d.s $f8, $f4 -/* 04B4F0 8004A8F0 4628503C */ c.lt.d $f10, $f8 -/* 04B4F4 8004A8F4 00000000 */ nop -/* 04B4F8 8004A8F8 45000007 */ bc1f .L8004A918 -/* 04B4FC 8004A8FC 00000000 */ nop -/* 04B500 8004A900 820D01E2 */ lb $t5, 0x1e2($s0) -/* 04B504 8004A904 00000000 */ nop -/* 04B508 8004A908 29A10003 */ slti $at, $t5, 3 -/* 04B50C 8004A90C 14200002 */ bnez $at, .L8004A918 -/* 04B510 8004A910 00000000 */ nop -/* 04B514 8004A914 A20001DB */ sb $zero, 0x1db($s0) -.L8004A918: -/* 04B518 8004A918 820301E2 */ lb $v1, 0x1e2($s0) -/* 04B51C 8004A91C 10000007 */ b .L8004A93C -/* 04B520 8004A920 00000000 */ nop -/* 04B524 8004A924 8FAF00F8 */ lw $t7, 0xf8($sp) -.L8004A928: -/* 04B528 8004A928 860E0164 */ lh $t6, 0x164($s0) -/* 04B52C 8004A92C 000FC2C0 */ sll $t8, $t7, 0xb -/* 04B530 8004A930 01D8C821 */ addu $t9, $t6, $t8 -/* 04B534 8004A934 820301E2 */ lb $v1, 0x1e2($s0) -/* 04B538 8004A938 A6190164 */ sh $t9, 0x164($s0) -.L8004A93C: -/* 04B53C 8004A93C 10600022 */ beqz $v1, .L8004A9C8 -/* 04B540 8004A940 28816001 */ slti $at, $a0, 0x6001 -/* 04B544 8004A944 14200006 */ bnez $at, .L8004A960 -/* 04B548 8004A948 2881A001 */ slti $at, $a0, -0x5fff -/* 04B54C 8004A94C 860B0162 */ lh $t3, 0x162($s0) -/* 04B550 8004A950 00000000 */ nop -/* 04B554 8004A954 29616001 */ slti $at, $t3, 0x6001 -/* 04B558 8004A958 1420000D */ bnez $at, .L8004A990 -/* 04B55C 8004A95C 2881A001 */ slti $at, $a0, -0x5fff -.L8004A960: -/* 04B560 8004A960 14200006 */ bnez $at, .L8004A97C -/* 04B564 8004A964 00000000 */ nop -/* 04B568 8004A968 860C0162 */ lh $t4, 0x162($s0) -/* 04B56C 8004A96C 00000000 */ nop -/* 04B570 8004A970 2981A001 */ slti $at, $t4, -0x5fff -/* 04B574 8004A974 14200006 */ bnez $at, .L8004A990 -/* 04B578 8004A978 00000000 */ nop -.L8004A97C: -/* 04B57C 8004A97C 18800012 */ blez $a0, .L8004A9C8 -/* 04B580 8004A980 00000000 */ nop -/* 04B584 8004A984 860D0162 */ lh $t5, 0x162($s0) -/* 04B588 8004A988 00000000 */ nop -/* 04B58C 8004A98C 1DA0000E */ bgtz $t5, .L8004A9C8 -.L8004A990: -/* 04B590 8004A990 02202025 */ move $a0, $s1 -/* 04B594 8004A994 2405000C */ li $a1, 12 -/* 04B598 8004A998 0C015C12 */ jal racer_play_sound -/* 04B59C 8004A99C E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B5A0 8004A9A0 860F0000 */ lh $t7, ($s0) -/* 04B5A4 8004A9A4 C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B5A8 8004A9A8 2401FFFF */ li $at, -1 -/* 04B5AC 8004A9AC 11E10006 */ beq $t7, $at, .L8004A9C8 -/* 04B5B0 8004A9B0 3C0E8012 */ lui $t6, %hi(gCameraObject) # $t6, 0x8012 -/* 04B5B4 8004A9B4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 04B5B8 8004A9B8 44813000 */ mtc1 $at, $f6 -/* 04B5BC 8004A9BC 8DCED508 */ lw $t6, %lo(gCameraObject)($t6) -/* 04B5C0 8004A9C0 00000000 */ nop -/* 04B5C4 8004A9C4 E5C60030 */ swc1 $f6, 0x30($t6) -.L8004A9C8: -/* 04B5C8 8004A9C8 3C188012 */ lui $t8, %hi(gCurrentRacerInput) # $t8, 0x8012 -/* 04B5CC 8004A9CC 8F18D528 */ lw $t8, %lo(gCurrentRacerInput)($t8) -/* 04B5D0 8004A9D0 3C01FFFF */ lui $at, (0xFFFF5FFF >> 16) # lui $at, 0xffff -/* 04B5D4 8004A9D4 34215FFF */ ori $at, (0xFFFF5FFF & 0xFFFF) # ori $at, $at, 0x5fff -/* 04B5D8 8004A9D8 0301C824 */ and $t9, $t8, $at -/* 04B5DC 8004A9DC 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 -/* 04B5E0 8004A9E0 AC39D528 */ sw $t9, %lo(gCurrentRacerInput)($at) -/* 04B5E4 8004A9E4 8FA400F8 */ lw $a0, 0xf8($sp) -/* 04B5E8 8004A9E8 820B01DB */ lb $t3, 0x1db($s0) -/* 04B5EC 8004A9EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04B5F0 8004A9F0 01646023 */ subu $t4, $t3, $a0 -/* 04B5F4 8004A9F4 A20C01DB */ sb $t4, 0x1db($s0) -/* 04B5F8 8004A9F8 44819000 */ mtc1 $at, $f18 -/* 04B5FC 8004A9FC 820D01DB */ lb $t5, 0x1db($s0) -/* 04B600 8004AA00 A20001D3 */ sb $zero, 0x1d3($s0) -/* 04B604 8004AA04 1DA00003 */ bgtz $t5, .L8004AA14 -/* 04B608 8004AA08 E61200B8 */ swc1 $f18, 0xb8($s0) -/* 04B60C 8004AA0C A20001DB */ sb $zero, 0x1db($s0) -/* 04B610 8004AA10 A20001F1 */ sb $zero, 0x1f1($s0) -.L8004AA14: -/* 04B614 8004AA14 86230002 */ lh $v1, 2($s1) -/* 04B618 8004AA18 340ED800 */ li $t6, 55296 -/* 04B61C 8004AA1C 306FFFFF */ andi $t7, $v1, 0xffff -/* 04B620 8004AA20 01CF1023 */ subu $v0, $t6, $t7 -/* 04B624 8004AA24 34018001 */ li $at, 32769 -/* 04B628 8004AA28 0041082A */ slt $at, $v0, $at -/* 04B62C 8004AA2C 14200003 */ bnez $at, .L8004AA3C -/* 04B630 8004AA30 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 04B634 8004AA34 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 04B638 8004AA38 00411021 */ addu $v0, $v0, $at -.L8004AA3C: -/* 04B63C 8004AA3C 28418000 */ slti $at, $v0, -0x8000 -/* 04B640 8004AA40 10200002 */ beqz $at, .L8004AA4C -/* 04B644 8004AA44 3401FFFF */ li $at, 65535 -/* 04B648 8004AA48 00411021 */ addu $v0, $v0, $at -.L8004AA4C: -/* 04B64C 8004AA4C 00440019 */ multu $v0, $a0 -/* 04B650 8004AA50 0000C012 */ mflo $t8 -/* 04B654 8004AA54 0018C903 */ sra $t9, $t8, 4 -/* 04B658 8004AA58 00795821 */ addu $t3, $v1, $t9 -/* 04B65C 8004AA5C 10000233 */ b .L8004B32C -/* 04B660 8004AA60 A62B0002 */ sh $t3, 2($s1) -.L8004AA64: -/* 04B664 8004AA64 820201E0 */ lb $v0, 0x1e0($s0) -/* 04B668 8004AA68 24010001 */ li $at, 1 -/* 04B66C 8004AA6C 10410004 */ beq $v0, $at, .L8004AA80 -/* 04B670 8004AA70 00026080 */ sll $t4, $v0, 2 -/* 04B674 8004AA74 2401FFFF */ li $at, -1 -/* 04B678 8004AA78 14410030 */ bne $v0, $at, .L8004AB3C -/* 04B67C 8004AA7C 24010002 */ li $at, 2 -.L8004AA80: -/* 04B680 8004AA80 8FAD00F8 */ lw $t5, 0xf8($sp) -/* 04B684 8004AA84 01826023 */ subu $t4, $t4, $v0 -/* 04B688 8004AA88 000C6240 */ sll $t4, $t4, 9 -/* 04B68C 8004AA8C 018D0019 */ multu $t4, $t5 -/* 04B690 8004AA90 860301A4 */ lh $v1, 0x1a4($s0) -/* 04B694 8004AA94 3C01800E */ lui $at, %hi(D_800E6508) # $at, 0x800e -/* 04B698 8004AA98 00604025 */ move $t0, $v1 -/* 04B69C 8004AA9C 00007012 */ mflo $t6 -/* 04B6A0 8004AAA0 006E7821 */ addu $t7, $v1, $t6 -/* 04B6A4 8004AAA4 A60F01A4 */ sh $t7, 0x1a4($s0) -/* 04B6A8 8004AAA8 C4246508 */ lwc1 $f4, %lo(D_800E6508)($at) -/* 04B6AC 8004AAAC 24010001 */ li $at, 1 -/* 04B6B0 8004AAB0 14410011 */ bne $v0, $at, .L8004AAF8 -/* 04B6B4 8004AAB4 E7A400C8 */ swc1 $f4, 0xc8($sp) -/* 04B6B8 8004AAB8 18600002 */ blez $v1, .L8004AAC4 -/* 04B6BC 8004AABC 24180001 */ li $t8, 1 -/* 04B6C0 8004AAC0 A21801D4 */ sb $t8, 0x1d4($s0) -.L8004AAC4: -/* 04B6C4 8004AAC4 05010219 */ bgez $t0, .L8004B32C -/* 04B6C8 8004AAC8 00000000 */ nop -/* 04B6CC 8004AACC 861901A4 */ lh $t9, 0x1a4($s0) -/* 04B6D0 8004AAD0 00000000 */ nop -/* 04B6D4 8004AAD4 07200215 */ bltz $t9, .L8004B32C -/* 04B6D8 8004AAD8 00000000 */ nop -/* 04B6DC 8004AADC 820B01D4 */ lb $t3, 0x1d4($s0) -/* 04B6E0 8004AAE0 00000000 */ nop -/* 04B6E4 8004AAE4 11600211 */ beqz $t3, .L8004B32C -/* 04B6E8 8004AAE8 00000000 */ nop -/* 04B6EC 8004AAEC A20001E0 */ sb $zero, 0x1e0($s0) -/* 04B6F0 8004AAF0 1000020E */ b .L8004B32C -/* 04B6F4 8004AAF4 A60001A4 */ sh $zero, 0x1a4($s0) -.L8004AAF8: -/* 04B6F8 8004AAF8 05010002 */ bgez $t0, .L8004AB04 -/* 04B6FC 8004AAFC 240C0001 */ li $t4, 1 -/* 04B700 8004AB00 A20C01D4 */ sb $t4, 0x1d4($s0) -.L8004AB04: -/* 04B704 8004AB04 19000209 */ blez $t0, .L8004B32C -/* 04B708 8004AB08 00000000 */ nop -/* 04B70C 8004AB0C 860D01A4 */ lh $t5, 0x1a4($s0) -/* 04B710 8004AB10 00000000 */ nop -/* 04B714 8004AB14 1DA00205 */ bgtz $t5, .L8004B32C -/* 04B718 8004AB18 00000000 */ nop -/* 04B71C 8004AB1C 820E01D4 */ lb $t6, 0x1d4($s0) -/* 04B720 8004AB20 00000000 */ nop -/* 04B724 8004AB24 11C00201 */ beqz $t6, .L8004B32C -/* 04B728 8004AB28 00000000 */ nop -/* 04B72C 8004AB2C A20001E0 */ sb $zero, 0x1e0($s0) -/* 04B730 8004AB30 100001FE */ b .L8004B32C -/* 04B734 8004AB34 A60001A4 */ sh $zero, 0x1a4($s0) -/* 04B738 8004AB38 24010002 */ li $at, 2 -.L8004AB3C: -/* 04B73C 8004AB3C 10410003 */ beq $v0, $at, .L8004AB4C -/* 04B740 8004AB40 2405FFFE */ li $a1, -2 -/* 04B744 8004AB44 14A2008B */ bne $a1, $v0, .L8004AD74 -/* 04B748 8004AB48 00000000 */ nop -.L8004AB4C: -/* 04B74C 8004AB4C 86230002 */ lh $v1, 2($s1) -/* 04B750 8004AB50 820F01D5 */ lb $t7, 0x1d5($s0) -/* 04B754 8004AB54 3C0D8012 */ lui $t5, %hi(gCurrentRacerInput) # $t5, 0x8012 -/* 04B758 8004AB58 15E00009 */ bnez $t7, .L8004AB80 -/* 04B75C 8004AB5C 00604025 */ move $t0, $v1 -/* 04B760 8004AB60 0002C080 */ sll $t8, $v0, 2 -/* 04B764 8004AB64 8FB900F8 */ lw $t9, 0xf8($sp) -/* 04B768 8004AB68 0302C023 */ subu $t8, $t8, $v0 -/* 04B76C 8004AB6C 0018C1C0 */ sll $t8, $t8, 7 -/* 04B770 8004AB70 03190019 */ multu $t8, $t9 -/* 04B774 8004AB74 00005812 */ mflo $t3 -/* 04B778 8004AB78 006B6021 */ addu $t4, $v1, $t3 -/* 04B77C 8004AB7C A62C0002 */ sh $t4, 2($s1) -.L8004AB80: -/* 04B780 8004AB80 8DADD528 */ lw $t5, %lo(gCurrentRacerInput)($t5) -/* 04B784 8004AB84 00000000 */ nop -/* 04B788 8004AB88 31AE0010 */ andi $t6, $t5, 0x10 -/* 04B78C 8004AB8C 15C00002 */ bnez $t6, .L8004AB98 -/* 04B790 8004AB90 00000000 */ nop -/* 04B794 8004AB94 A20001D5 */ sb $zero, 0x1d5($s0) -.L8004AB98: -/* 04B798 8004AB98 820201D5 */ lb $v0, 0x1d5($s0) -/* 04B79C 8004AB9C 8FAF00F8 */ lw $t7, 0xf8($sp) -/* 04B7A0 8004ABA0 18400003 */ blez $v0, .L8004ABB0 -/* 04B7A4 8004ABA4 004FC023 */ subu $t8, $v0, $t7 -/* 04B7A8 8004ABA8 10000002 */ b .L8004ABB4 -/* 04B7AC 8004ABAC A21801D5 */ sb $t8, 0x1d5($s0) -.L8004ABB0: -/* 04B7B0 8004ABB0 A20001D5 */ sb $zero, 0x1d5($s0) -.L8004ABB4: -/* 04B7B4 8004ABB4 860301A4 */ lh $v1, 0x1a4($s0) -/* 04B7B8 8004ABB8 8FB900F8 */ lw $t9, 0xf8($sp) -/* 04B7BC 8004ABBC C60A002C */ lwc1 $f10, 0x2c($s0) -/* 04B7C0 8004ABC0 00790019 */ multu $v1, $t9 -/* 04B7C4 8004ABC4 C6080038 */ lwc1 $f8, 0x38($s0) -/* 04B7C8 8004ABC8 24010002 */ li $at, 2 -/* 04B7CC 8004ABCC 46085182 */ mul.s $f6, $f10, $f8 -/* 04B7D0 8004ABD0 00005812 */ mflo $t3 -/* 04B7D4 8004ABD4 000B6103 */ sra $t4, $t3, 4 -/* 04B7D8 8004ABD8 006C6823 */ subu $t5, $v1, $t4 -/* 04B7DC 8004ABDC A60D01A4 */ sh $t5, 0x1a4($s0) -/* 04B7E0 8004ABE0 E626001C */ swc1 $f6, 0x1c($s1) -/* 04B7E4 8004ABE4 C612002C */ lwc1 $f18, 0x2c($s0) -/* 04B7E8 8004ABE8 C604003C */ lwc1 $f4, 0x3c($s0) -/* 04B7EC 8004ABEC 00000000 */ nop -/* 04B7F0 8004ABF0 46049282 */ mul.s $f10, $f18, $f4 -/* 04B7F4 8004ABF4 E62A0020 */ swc1 $f10, 0x20($s1) -/* 04B7F8 8004ABF8 C6060040 */ lwc1 $f6, 0x40($s0) -/* 04B7FC 8004ABFC C608002C */ lwc1 $f8, 0x2c($s0) -/* 04B800 8004AC00 00000000 */ nop -/* 04B804 8004AC04 46064482 */ mul.s $f18, $f8, $f6 -/* 04B808 8004AC08 E6320024 */ swc1 $f18, 0x24($s1) -/* 04B80C 8004AC0C 820E01E0 */ lb $t6, 0x1e0($s0) -/* 04B810 8004AC10 00000000 */ nop -/* 04B814 8004AC14 15C1002C */ bne $t6, $at, .L8004ACC8 -/* 04B818 8004AC18 00000000 */ nop -/* 04B81C 8004AC1C 19000002 */ blez $t0, .L8004AC28 -/* 04B820 8004AC20 240F0001 */ li $t7, 1 -/* 04B824 8004AC24 A20F01D4 */ sb $t7, 0x1d4($s0) -.L8004AC28: -/* 04B828 8004AC28 05010019 */ bgez $t0, .L8004AC90 -/* 04B82C 8004AC2C 29014001 */ slti $at, $t0, 0x4001 -/* 04B830 8004AC30 86380002 */ lh $t8, 2($s1) -/* 04B834 8004AC34 00000000 */ nop -/* 04B838 8004AC38 07000015 */ bltz $t8, .L8004AC90 -/* 04B83C 8004AC3C 29014001 */ slti $at, $t0, 0x4001 -/* 04B840 8004AC40 821901D4 */ lb $t9, 0x1d4($s0) -/* 04B844 8004AC44 2404000A */ li $a0, 10 -/* 04B848 8004AC48 13200011 */ beqz $t9, .L8004AC90 -/* 04B84C 8004AC4C 29014001 */ slti $at, $t0, 0x4001 -/* 04B850 8004AC50 A20001E0 */ sb $zero, 0x1e0($s0) -/* 04B854 8004AC54 A6200002 */ sh $zero, 2($s1) -/* 04B858 8004AC58 E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B85C 8004AC5C 0C00322D */ jal normalise_time -/* 04B860 8004AC60 AFA800B8 */ sw $t0, 0xb8($sp) -/* 04B864 8004AC64 920B020C */ lbu $t3, 0x20c($s0) -/* 04B868 8004AC68 8FA800B8 */ lw $t0, 0xb8($sp) -/* 04B86C 8004AC6C C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B870 8004AC70 A20201D3 */ sb $v0, 0x1d3($s0) -/* 04B874 8004AC74 11600005 */ beqz $t3, .L8004AC8C -/* 04B878 8004AC78 A2000203 */ sb $zero, 0x203($s0) -/* 04B87C 8004AC7C 820C0203 */ lb $t4, 0x203($s0) -/* 04B880 8004AC80 00000000 */ nop -/* 04B884 8004AC84 358D0004 */ ori $t5, $t4, 4 -/* 04B888 8004AC88 A20D0203 */ sb $t5, 0x203($s0) -.L8004AC8C: -/* 04B88C 8004AC8C 29014001 */ slti $at, $t0, 0x4001 -.L8004AC90: -/* 04B890 8004AC90 142001A6 */ bnez $at, .L8004B32C -/* 04B894 8004AC94 00000000 */ nop -/* 04B898 8004AC98 862E0002 */ lh $t6, 2($s1) -/* 04B89C 8004AC9C 3C0F8012 */ lui $t7, %hi(gCurrentRacerInput) # $t7, 0x8012 -/* 04B8A0 8004ACA0 29C1C000 */ slti $at, $t6, -0x4000 -/* 04B8A4 8004ACA4 102001A1 */ beqz $at, .L8004B32C -/* 04B8A8 8004ACA8 00000000 */ nop -/* 04B8AC 8004ACAC 8DEFD528 */ lw $t7, %lo(gCurrentRacerInput)($t7) -/* 04B8B0 8004ACB0 2419003C */ li $t9, 60 -/* 04B8B4 8004ACB4 31F80010 */ andi $t8, $t7, 0x10 -/* 04B8B8 8004ACB8 1300019C */ beqz $t8, .L8004B32C -/* 04B8BC 8004ACBC 00000000 */ nop -/* 04B8C0 8004ACC0 1000019A */ b .L8004B32C -/* 04B8C4 8004ACC4 A21901D5 */ sb $t9, 0x1d5($s0) -.L8004ACC8: -/* 04B8C8 8004ACC8 05010002 */ bgez $t0, .L8004ACD4 -/* 04B8CC 8004ACCC 240B0001 */ li $t3, 1 -/* 04B8D0 8004ACD0 A20B01D4 */ sb $t3, 0x1d4($s0) -.L8004ACD4: -/* 04B8D4 8004ACD4 19000019 */ blez $t0, .L8004AD3C -/* 04B8D8 8004ACD8 2901C000 */ slti $at, $t0, -0x4000 -/* 04B8DC 8004ACDC 862C0002 */ lh $t4, 2($s1) -/* 04B8E0 8004ACE0 00000000 */ nop -/* 04B8E4 8004ACE4 1D800015 */ bgtz $t4, .L8004AD3C -/* 04B8E8 8004ACE8 2901C000 */ slti $at, $t0, -0x4000 -/* 04B8EC 8004ACEC 820D01D4 */ lb $t5, 0x1d4($s0) -/* 04B8F0 8004ACF0 2404000A */ li $a0, 10 -/* 04B8F4 8004ACF4 11A00011 */ beqz $t5, .L8004AD3C -/* 04B8F8 8004ACF8 2901C000 */ slti $at, $t0, -0x4000 -/* 04B8FC 8004ACFC A20001E0 */ sb $zero, 0x1e0($s0) -/* 04B900 8004AD00 A6200002 */ sh $zero, 2($s1) -/* 04B904 8004AD04 E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B908 8004AD08 0C00322D */ jal normalise_time -/* 04B90C 8004AD0C AFA800B8 */ sw $t0, 0xb8($sp) -/* 04B910 8004AD10 920E020C */ lbu $t6, 0x20c($s0) -/* 04B914 8004AD14 8FA800B8 */ lw $t0, 0xb8($sp) -/* 04B918 8004AD18 C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04B91C 8004AD1C A20201D3 */ sb $v0, 0x1d3($s0) -/* 04B920 8004AD20 11C00005 */ beqz $t6, .L8004AD38 -/* 04B924 8004AD24 A2000203 */ sb $zero, 0x203($s0) -/* 04B928 8004AD28 820F0203 */ lb $t7, 0x203($s0) -/* 04B92C 8004AD2C 00000000 */ nop -/* 04B930 8004AD30 35F80004 */ ori $t8, $t7, 4 -/* 04B934 8004AD34 A2180203 */ sb $t8, 0x203($s0) -.L8004AD38: -/* 04B938 8004AD38 2901C000 */ slti $at, $t0, -0x4000 -.L8004AD3C: -/* 04B93C 8004AD3C 1020017B */ beqz $at, .L8004B32C -/* 04B940 8004AD40 00000000 */ nop -/* 04B944 8004AD44 86390002 */ lh $t9, 2($s1) -/* 04B948 8004AD48 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 -/* 04B94C 8004AD4C 2B214001 */ slti $at, $t9, 0x4001 -/* 04B950 8004AD50 14200176 */ bnez $at, .L8004B32C -/* 04B954 8004AD54 00000000 */ nop -/* 04B958 8004AD58 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) -/* 04B95C 8004AD5C 240D003C */ li $t5, 60 -/* 04B960 8004AD60 316C0010 */ andi $t4, $t3, 0x10 -/* 04B964 8004AD64 11800171 */ beqz $t4, .L8004B32C -/* 04B968 8004AD68 00000000 */ nop -/* 04B96C 8004AD6C 1000016F */ b .L8004B32C -/* 04B970 8004AD70 A20D01D5 */ sb $t5, 0x1d5($s0) -.L8004AD74: -/* 04B974 8004AD74 820401E1 */ lb $a0, 0x1e1($s0) -/* 04B978 8004AD78 A3A000A1 */ sb $zero, 0xa1($sp) -/* 04B97C 8004AD7C 820301E2 */ lb $v1, 0x1e2($s0) -/* 04B980 8004AD80 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 -/* 04B984 8004AD84 1060000B */ beqz $v1, .L8004ADB4 -/* 04B988 8004AD88 2401FFEF */ li $at, -17 -/* 04B98C 8004AD8C 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) -/* 04B990 8004AD90 240F0001 */ li $t7, 1 -/* 04B994 8004AD94 304E0010 */ andi $t6, $v0, 0x10 -/* 04B998 8004AD98 11C00002 */ beqz $t6, .L8004ADA4 -/* 04B99C 8004AD9C 0041C024 */ and $t8, $v0, $at -/* 04B9A0 8004ADA0 A3AF00A1 */ sb $t7, 0xa1($sp) -.L8004ADA4: -/* 04B9A4 8004ADA4 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 -/* 04B9A8 8004ADA8 AC38D528 */ sw $t8, %lo(gCurrentRacerInput)($at) -/* 04B9AC 8004ADAC 820301E2 */ lb $v1, 0x1e2($s0) -/* 04B9B0 8004ADB0 00000000 */ nop -.L8004ADB4: -/* 04B9B4 8004ADB4 28610002 */ slti $at, $v1, 2 -/* 04B9B8 8004ADB8 10200083 */ beqz $at, .L8004AFC8 -/* 04B9BC 8004ADBC 00000000 */ nop -/* 04B9C0 8004ADC0 86230002 */ lh $v1, 2($s1) -/* 04B9C4 8004ADC4 00804025 */ move $t0, $a0 -/* 04B9C8 8004ADC8 28613001 */ slti $at, $v1, 0x3001 -/* 04B9CC 8004ADCC 14200007 */ bnez $at, .L8004ADEC -/* 04B9D0 8004ADD0 00002025 */ move $a0, $zero -/* 04B9D4 8004ADD4 2464D000 */ addiu $a0, $v1, -0x3000 -/* 04B9D8 8004ADD8 28811001 */ slti $at, $a0, 0x1001 -/* 04B9DC 8004ADDC 1420000C */ bnez $at, .L8004AE10 -/* 04B9E0 8004ADE0 00000000 */ nop -/* 04B9E4 8004ADE4 1000000A */ b .L8004AE10 -/* 04B9E8 8004ADE8 24041000 */ li $a0, 4096 -.L8004ADEC: -/* 04B9EC 8004ADEC 2861D000 */ slti $at, $v1, -0x3000 -/* 04B9F0 8004ADF0 10200007 */ beqz $at, .L8004AE10 -/* 04B9F4 8004ADF4 00000000 */ nop -/* 04B9F8 8004ADF8 24643000 */ addiu $a0, $v1, 0x3000 -/* 04B9FC 8004ADFC 2881F000 */ slti $at, $a0, -0x1000 -/* 04BA00 8004AE00 10200003 */ beqz $at, .L8004AE10 -/* 04BA04 8004AE04 00042023 */ negu $a0, $a0 -/* 04BA08 8004AE08 2404F000 */ li $a0, -4096 -/* 04BA0C 8004AE0C 00042023 */ negu $a0, $a0 -.L8004AE10: -/* 04BA10 8004AE10 44842000 */ mtc1 $a0, $f4 -/* 04BA14 8004AE14 3C014580 */ li $at, 0x45800000 # 4096.000000 -/* 04BA18 8004AE18 468022A0 */ cvt.s.w $f10, $f4 -/* 04BA1C 8004AE1C 44814000 */ mtc1 $at, $f8 -/* 04BA20 8004AE20 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04BA24 8004AE24 46085183 */ div.s $f6, $f10, $f8 -/* 04BA28 8004AE28 44812800 */ mtc1 $at, $f5 -/* 04BA2C 8004AE2C 44802000 */ mtc1 $zero, $f4 -/* 04BA30 8004AE30 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 -/* 04BA34 8004AE34 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) -/* 04BA38 8004AE38 00000000 */ nop -/* 04BA3C 8004AE3C 316C0010 */ andi $t4, $t3, 0x10 -/* 04BA40 8004AE40 460034A1 */ cvt.d.s $f18, $f6 -/* 04BA44 8004AE44 44883000 */ mtc1 $t0, $f6 -/* 04BA48 8004AE48 46322281 */ sub.d $f10, $f4, $f18 -/* 04BA4C 8004AE4C 46803120 */ cvt.s.w $f4, $f6 -/* 04BA50 8004AE50 46205220 */ cvt.s.d $f8, $f10 -/* 04BA54 8004AE54 46082482 */ mul.s $f18, $f4, $f8 -/* 04BA58 8004AE58 4459F800 */ cfc1 $t9, $31 -/* 04BA5C 8004AE5C 00000000 */ nop -/* 04BA60 8004AE60 37210003 */ ori $at, $t9, 3 -/* 04BA64 8004AE64 38210002 */ xori $at, $at, 2 -/* 04BA68 8004AE68 44C1F800 */ ctc1 $at, $31 -/* 04BA6C 8004AE6C 00000000 */ nop -/* 04BA70 8004AE70 460092A4 */ cvt.w.s $f10, $f18 -/* 04BA74 8004AE74 44085000 */ mfc1 $t0, $f10 -/* 04BA78 8004AE78 44D9F800 */ ctc1 $t9, $31 -/* 04BA7C 8004AE7C 1180000D */ beqz $t4, .L8004AEB4 -/* 04BA80 8004AE80 8FAF00F8 */ lw $t7, 0xf8($sp) -/* 04BA84 8004AE84 8E2D0074 */ lw $t5, 0x74($s1) -/* 04BA88 8004AE88 00087900 */ sll $t7, $t0, 4 -/* 04BA8C 8004AE8C 35AE00C0 */ ori $t6, $t5, 0xc0 -/* 04BA90 8004AE90 AE2E0074 */ sw $t6, 0x74($s1) -/* 04BA94 8004AE94 8FB800F8 */ lw $t8, 0xf8($sp) -/* 04BA98 8004AE98 860C01A4 */ lh $t4, 0x1a4($s0) -/* 04BA9C 8004AE9C 01F80019 */ multu $t7, $t8 -/* 04BAA0 8004AEA0 0000C812 */ mflo $t9 -/* 04BAA4 8004AEA4 00195843 */ sra $t3, $t9, 1 -/* 04BAA8 8004AEA8 018B6823 */ subu $t5, $t4, $t3 -/* 04BAAC 8004AEAC A60D01A4 */ sh $t5, 0x1a4($s0) -/* 04BAB0 8004AEB0 8FAF00F8 */ lw $t7, 0xf8($sp) -.L8004AEB4: -/* 04BAB4 8004AEB4 860E01A4 */ lh $t6, 0x1a4($s0) -/* 04BAB8 8004AEB8 010F0019 */ multu $t0, $t7 -/* 04BABC 8004AEBC 0000C012 */ mflo $t8 -/* 04BAC0 8004AEC0 0018C880 */ sll $t9, $t8, 2 -/* 04BAC4 8004AEC4 0338C821 */ addu $t9, $t9, $t8 -/* 04BAC8 8004AEC8 0019C880 */ sll $t9, $t9, 2 -/* 04BACC 8004AECC 00196043 */ sra $t4, $t9, 1 -/* 04BAD0 8004AED0 01CC5823 */ subu $t3, $t6, $t4 -/* 04BAD4 8004AED4 A60B01A4 */ sh $t3, 0x1a4($s0) -/* 04BAD8 8004AED8 860301A4 */ lh $v1, 0x1a4($s0) -/* 04BADC 8004AEDC 8FAD00F8 */ lw $t5, 0xf8($sp) -/* 04BAE0 8004AEE0 920E01F5 */ lbu $t6, 0x1f5($s0) -/* 04BAE4 8004AEE4 006D0019 */ multu $v1, $t5 -/* 04BAE8 8004AEE8 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 -/* 04BAEC 8004AEEC 00007812 */ mflo $t7 -/* 04BAF0 8004AEF0 000FC103 */ sra $t8, $t7, 4 -/* 04BAF4 8004AEF4 0078C823 */ subu $t9, $v1, $t8 -/* 04BAF8 8004AEF8 15C00056 */ bnez $t6, .L8004B054 -/* 04BAFC 8004AEFC A61901A4 */ sh $t9, 0x1a4($s0) -/* 04BB00 8004AF00 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) -/* 04BB04 8004AF04 2401FFFF */ li $at, -1 -/* 04BB08 8004AF08 11810025 */ beq $t4, $at, .L8004AFA0 -/* 04BB0C 8004AF0C 3C088012 */ lui $t0, %hi(gCurrentStickX) # $t0, 0x8012 -/* 04BB10 8004AF10 820B01D8 */ lb $t3, 0x1d8($s0) -/* 04BB14 8004AF14 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 -/* 04BB18 8004AF18 15600021 */ bnez $t3, .L8004AFA0 -/* 04BB1C 8004AF1C 00000000 */ nop -/* 04BB20 8004AF20 860801A4 */ lh $t0, 0x1a4($s0) -/* 04BB24 8004AF24 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) -/* 04BB28 8004AF28 00084023 */ negu $t0, $t0 -/* 04BB2C 8004AF2C 00086983 */ sra $t5, $t0, 6 -/* 04BB30 8004AF30 304F0010 */ andi $t7, $v0, 0x10 -/* 04BB34 8004AF34 11E00005 */ beqz $t7, .L8004AF4C -/* 04BB38 8004AF38 01A04025 */ move $t0, $t5 -/* 04BB3C 8004AF3C 30584000 */ andi $t8, $v0, 0x4000 -/* 04BB40 8004AF40 13000002 */ beqz $t8, .L8004AF4C -/* 04BB44 8004AF44 00000000 */ nop -/* 04BB48 8004AF48 000D4040 */ sll $t0, $t5, 1 -.L8004AF4C: -/* 04BB4C 8004AF4C 44883000 */ mtc1 $t0, $f6 -/* 04BB50 8004AF50 3C018012 */ lui $at, %hi(gCurrentRacerHandlingStat) # $at, 0x8012 -/* 04BB54 8004AF54 46803120 */ cvt.s.w $f4, $f6 -/* 04BB58 8004AF58 C428D570 */ lwc1 $f8, %lo(gCurrentRacerHandlingStat)($at) -/* 04BB5C 8004AF5C 8FAB00F8 */ lw $t3, 0xf8($sp) -/* 04BB60 8004AF60 46082482 */ mul.s $f18, $f4, $f8 -/* 04BB64 8004AF64 860C01A0 */ lh $t4, 0x1a0($s0) -/* 04BB68 8004AF68 444EF800 */ cfc1 $t6, $31 -/* 04BB6C 8004AF6C 00000000 */ nop -/* 04BB70 8004AF70 35C10003 */ ori $at, $t6, 3 -/* 04BB74 8004AF74 38210002 */ xori $at, $at, 2 -/* 04BB78 8004AF78 44C1F800 */ ctc1 $at, $31 -/* 04BB7C 8004AF7C 00000000 */ nop -/* 04BB80 8004AF80 460092A4 */ cvt.w.s $f10, $f18 -/* 04BB84 8004AF84 44085000 */ mfc1 $t0, $f10 -/* 04BB88 8004AF88 44CEF800 */ ctc1 $t6, $31 -/* 04BB8C 8004AF8C 010B0019 */ multu $t0, $t3 -/* 04BB90 8004AF90 00007812 */ mflo $t7 -/* 04BB94 8004AF94 018FC023 */ subu $t8, $t4, $t7 -/* 04BB98 8004AF98 1000002E */ b .L8004B054 -/* 04BB9C 8004AF9C A61801A0 */ sh $t8, 0x1a0($s0) -.L8004AFA0: -/* 04BBA0 8004AFA0 8D08D534 */ lw $t0, %lo(gCurrentStickX)($t0) -/* 04BBA4 8004AFA4 8FAB00F8 */ lw $t3, 0xf8($sp) -/* 04BBA8 8004AFA8 0008C880 */ sll $t9, $t0, 2 -/* 04BBAC 8004AFAC 032B0019 */ multu $t9, $t3 -/* 04BBB0 8004AFB0 860E01A0 */ lh $t6, 0x1a0($s0) -/* 04BBB4 8004AFB4 03204025 */ move $t0, $t9 -/* 04BBB8 8004AFB8 00006012 */ mflo $t4 -/* 04BBBC 8004AFBC 01CC7823 */ subu $t7, $t6, $t4 -/* 04BBC0 8004AFC0 10000024 */ b .L8004B054 -/* 04BBC4 8004AFC4 A60F01A0 */ sh $t7, 0x1a0($s0) -.L8004AFC8: -/* 04BBC8 8004AFC8 860301A4 */ lh $v1, 0x1a4($s0) -/* 04BBCC 8004AFCC 34018001 */ li $at, 32769 -/* 04BBD0 8004AFD0 3062FFFF */ andi $v0, $v1, 0xffff -/* 04BBD4 8004AFD4 00021023 */ negu $v0, $v0 -/* 04BBD8 8004AFD8 0041082A */ slt $at, $v0, $at -/* 04BBDC 8004AFDC 8FB800F8 */ lw $t8, 0xf8($sp) -/* 04BBE0 8004AFE0 14200004 */ bnez $at, .L8004AFF4 -/* 04BBE4 8004AFE4 00044080 */ sll $t0, $a0, 2 -/* 04BBE8 8004AFE8 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 04BBEC 8004AFEC 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 04BBF0 8004AFF0 00411021 */ addu $v0, $v0, $at -.L8004AFF4: -/* 04BBF4 8004AFF4 28418000 */ slti $at, $v0, -0x8000 -/* 04BBF8 8004AFF8 10200002 */ beqz $at, .L8004B004 -/* 04BBFC 8004AFFC 3401FFFF */ li $at, 65535 -/* 04BC00 8004B000 00411021 */ addu $v0, $v0, $at -.L8004B004: -/* 04BC04 8004B004 00580019 */ multu $v0, $t8 -/* 04BC08 8004B008 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 -/* 04BC0C 8004B00C 0000C812 */ mflo $t9 -/* 04BC10 8004B010 00195903 */ sra $t3, $t9, 4 -/* 04BC14 8004B014 006B6821 */ addu $t5, $v1, $t3 -/* 04BC18 8004B018 A60D01A4 */ sh $t5, 0x1a4($s0) -/* 04BC1C 8004B01C 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) -/* 04BC20 8004B020 8FB800F8 */ lw $t8, 0xf8($sp) -/* 04BC24 8004B024 31CC0010 */ andi $t4, $t6, 0x10 -/* 04BC28 8004B028 11800005 */ beqz $t4, .L8004B040 -/* 04BC2C 8004B02C 00000000 */ nop -/* 04BC30 8004B030 00044080 */ sll $t0, $a0, 2 -/* 04BC34 8004B034 01044023 */ subu $t0, $t0, $a0 -/* 04BC38 8004B038 10000001 */ b .L8004B040 -/* 04BC3C 8004B03C 00084040 */ sll $t0, $t0, 1 -.L8004B040: -/* 04BC40 8004B040 01180019 */ multu $t0, $t8 -/* 04BC44 8004B044 860F01A0 */ lh $t7, 0x1a0($s0) -/* 04BC48 8004B048 00005812 */ mflo $t3 -/* 04BC4C 8004B04C 01EB6823 */ subu $t5, $t7, $t3 -/* 04BC50 8004B050 A60D01A0 */ sh $t5, 0x1a0($s0) -.L8004B054: -/* 04BC54 8004B054 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 -/* 04BC58 8004B058 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) -/* 04BC5C 8004B05C 3C0F8012 */ lui $t7, %hi(gCurrentPlayerIndex) # $t7, 0x8012 -/* 04BC60 8004B060 304E0010 */ andi $t6, $v0, 0x10 -/* 04BC64 8004B064 11C00009 */ beqz $t6, .L8004B08C -/* 04BC68 8004B068 01C01025 */ move $v0, $t6 -/* 04BC6C 8004B06C 820C01E2 */ lb $t4, 0x1e2($s0) -/* 04BC70 8004B070 00000000 */ nop -/* 04BC74 8004B074 11800005 */ beqz $t4, .L8004B08C -/* 04BC78 8004B078 00000000 */ nop -/* 04BC7C 8004B07C 921801F5 */ lbu $t8, 0x1f5($s0) -/* 04BC80 8004B080 00000000 */ nop -/* 04BC84 8004B084 13000020 */ beqz $t8, .L8004B108 -/* 04BC88 8004B088 00000000 */ nop -.L8004B08C: -/* 04BC8C 8004B08C 44882000 */ mtc1 $t0, $f4 -/* 04BC90 8004B090 C606002C */ lwc1 $f6, 0x2c($s0) -/* 04BC94 8004B094 46802220 */ cvt.s.w $f8, $f4 -/* 04BC98 8004B098 3C01800E */ lui $at, %hi(D_800E6510 + 4) # $at, 0x800e -/* 04BC9C 8004B09C C4256510 */ lwc1 $f5, %lo(D_800E6510)($at) -/* 04BCA0 8004B0A0 46083482 */ mul.s $f18, $f6, $f8 -/* 04BCA4 8004B0A4 C4246514 */ lwc1 $f4, %lo(D_800E6510 + 4)($at) -/* 04BCA8 8004B0A8 C628001C */ lwc1 $f8, 0x1c($s1) -/* 04BCAC 8004B0AC 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 -/* 04BCB0 8004B0B0 460092A1 */ cvt.d.s $f10, $f18 -/* 04BCB4 8004B0B4 46245182 */ mul.d $f6, $f10, $f4 -/* 04BCB8 8004B0B8 C6120050 */ lwc1 $f18, 0x50($s0) -/* 04BCBC 8004B0BC 46203520 */ cvt.s.d $f20, $f6 -/* 04BCC0 8004B0C0 C6260020 */ lwc1 $f6, 0x20($s1) -/* 04BCC4 8004B0C4 46149282 */ mul.s $f10, $f18, $f20 -/* 04BCC8 8004B0C8 460A4101 */ sub.s $f4, $f8, $f10 -/* 04BCCC 8004B0CC E624001C */ swc1 $f4, 0x1c($s1) -/* 04BCD0 8004B0D0 C6120054 */ lwc1 $f18, 0x54($s0) -/* 04BCD4 8004B0D4 C6240024 */ lwc1 $f4, 0x24($s1) -/* 04BCD8 8004B0D8 46149202 */ mul.s $f8, $f18, $f20 -/* 04BCDC 8004B0DC 46083281 */ sub.s $f10, $f6, $f8 -/* 04BCE0 8004B0E0 E62A0020 */ swc1 $f10, 0x20($s1) -/* 04BCE4 8004B0E4 C6120058 */ lwc1 $f18, 0x58($s0) -/* 04BCE8 8004B0E8 00000000 */ nop -/* 04BCEC 8004B0EC 46149182 */ mul.s $f6, $f18, $f20 -/* 04BCF0 8004B0F0 46062201 */ sub.s $f8, $f4, $f6 -/* 04BCF4 8004B0F4 E6280024 */ swc1 $f8, 0x24($s1) -/* 04BCF8 8004B0F8 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) -/* 04BCFC 8004B0FC 00000000 */ nop -/* 04BD00 8004B100 30590010 */ andi $t9, $v0, 0x10 -/* 04BD04 8004B104 03201025 */ move $v0, $t9 -.L8004B108: -/* 04BD08 8004B108 8DEFD55C */ lw $t7, %lo(gCurrentPlayerIndex)($t7) -/* 04BD0C 8004B10C 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 -/* 04BD10 8004B110 8D08D538 */ lw $t0, %lo(gCurrentStickY)($t0) -/* 04BD14 8004B114 2401FFFF */ li $at, -1 -/* 04BD18 8004B118 11E10007 */ beq $t7, $at, .L8004B138 -/* 04BD1C 8004B11C 00000000 */ nop -/* 04BD20 8004B120 820B01D8 */ lb $t3, 0x1d8($s0) -/* 04BD24 8004B124 00000000 */ nop -/* 04BD28 8004B128 15600003 */ bnez $t3, .L8004B138 -/* 04BD2C 8004B12C 00000000 */ nop -/* 04BD30 8004B130 820801E8 */ lb $t0, 0x1e8($s0) -/* 04BD34 8004B134 00000000 */ nop -.L8004B138: -/* 04BD38 8004B138 C602002C */ lwc1 $f2, 0x2c($s0) -/* 04BD3C 8004B13C 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 04BD40 8004B140 44815800 */ mtc1 $at, $f11 -/* 04BD44 8004B144 44805000 */ mtc1 $zero, $f10 -/* 04BD48 8004B148 46001087 */ neg.s $f2, $f2 -/* 04BD4C 8004B14C 46001021 */ cvt.d.s $f0, $f2 -/* 04BD50 8004B150 462A003C */ c.lt.d $f0, $f10 -/* 04BD54 8004B154 44809000 */ mtc1 $zero, $f18 -/* 04BD58 8004B158 45000004 */ bc1f .L8004B16C -/* 04BD5C 8004B15C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04BD60 8004B160 44811000 */ mtc1 $at, $f2 -/* 04BD64 8004B164 00000000 */ nop -/* 04BD68 8004B168 46001021 */ cvt.d.s $f0, $f2 -.L8004B16C: -/* 04BD6C 8004B16C 3C01402C */ li $at, 0x402C0000 # 2.687500 -/* 04BD70 8004B170 44819800 */ mtc1 $at, $f19 -/* 04BD74 8004B174 44802000 */ mtc1 $zero, $f4 -/* 04BD78 8004B178 4620903C */ c.lt.d $f18, $f0 -/* 04BD7C 8004B17C 8FAB00F8 */ lw $t3, 0xf8($sp) -/* 04BD80 8004B180 45000004 */ bc1f .L8004B194 -/* 04BD84 8004B184 3C014160 */ li $at, 0x41600000 # 14.000000 -/* 04BD88 8004B188 44811000 */ mtc1 $at, $f2 -/* 04BD8C 8004B18C 00000000 */ nop -/* 04BD90 8004B190 46001021 */ cvt.d.s $f0, $f2 -.L8004B194: -/* 04BD94 8004B194 3C01401C */ li $at, 0x401C0000 # 2.437500 -/* 04BD98 8004B198 44812800 */ mtc1 $at, $f5 -/* 04BD9C 8004B19C 44884000 */ mtc1 $t0, $f8 -/* 04BDA0 8004B1A0 46240183 */ div.d $f6, $f0, $f4 -/* 04BDA4 8004B1A4 468042A0 */ cvt.s.w $f10, $f8 -/* 04BDA8 8004B1A8 8FAC00F8 */ lw $t4, 0xf8($sp) -/* 04BDAC 8004B1AC 462030A0 */ cvt.s.d $f2, $f6 -/* 04BDB0 8004B1B0 46025482 */ mul.s $f18, $f10, $f2 -/* 04BDB4 8004B1B4 444DF800 */ cfc1 $t5, $31 -/* 04BDB8 8004B1B8 00000000 */ nop -/* 04BDBC 8004B1BC 35A10003 */ ori $at, $t5, 3 -/* 04BDC0 8004B1C0 38210002 */ xori $at, $at, 2 -/* 04BDC4 8004B1C4 44C1F800 */ ctc1 $at, $31 -/* 04BDC8 8004B1C8 00000000 */ nop -/* 04BDCC 8004B1CC 46009124 */ cvt.w.s $f4, $f18 -/* 04BDD0 8004B1D0 44082000 */ mfc1 $t0, $f4 -/* 04BDD4 8004B1D4 44CDF800 */ ctc1 $t5, $31 -/* 04BDD8 8004B1D8 14400014 */ bnez $v0, .L8004B22C -/* 04BDDC 8004B1DC 00000000 */ nop -/* 04BDE0 8004B1E0 86230002 */ lh $v1, 2($s1) -/* 04BDE4 8004B1E4 00087043 */ sra $t6, $t0, 1 -/* 04BDE8 8004B1E8 006C0019 */ multu $v1, $t4 -/* 04BDEC 8004B1EC 000E5880 */ sll $t3, $t6, 2 -/* 04BDF0 8004B1F0 016E5821 */ addu $t3, $t3, $t6 -/* 04BDF4 8004B1F4 000B5880 */ sll $t3, $t3, 2 -/* 04BDF8 8004B1F8 016E5823 */ subu $t3, $t3, $t6 -/* 04BDFC 8004B1FC 0000C012 */ mflo $t8 -/* 04BE00 8004B200 0018C903 */ sra $t9, $t8, 4 -/* 04BE04 8004B204 00797823 */ subu $t7, $v1, $t9 -/* 04BE08 8004B208 A62F0002 */ sh $t7, 2($s1) -/* 04BE0C 8004B20C 8FAD00F8 */ lw $t5, 0xf8($sp) -/* 04BE10 8004B210 86380002 */ lh $t8, 2($s1) -/* 04BE14 8004B214 016D0019 */ multu $t3, $t5 -/* 04BE18 8004B218 00007012 */ mflo $t6 -/* 04BE1C 8004B21C 000E6043 */ sra $t4, $t6, 1 -/* 04BE20 8004B220 030CC823 */ subu $t9, $t8, $t4 -/* 04BE24 8004B224 10000012 */ b .L8004B270 -/* 04BE28 8004B228 A6390002 */ sh $t9, 2($s1) -.L8004B22C: -/* 04BE2C 8004B22C 86230002 */ lh $v1, 2($s1) -/* 04BE30 8004B230 00087843 */ sra $t7, $t0, 1 -/* 04BE34 8004B234 006B0019 */ multu $v1, $t3 -/* 04BE38 8004B238 000F6100 */ sll $t4, $t7, 4 -/* 04BE3C 8004B23C 018F6023 */ subu $t4, $t4, $t7 -/* 04BE40 8004B240 000C6040 */ sll $t4, $t4, 1 -/* 04BE44 8004B244 00006812 */ mflo $t5 -/* 04BE48 8004B248 000D7103 */ sra $t6, $t5, 4 -/* 04BE4C 8004B24C 006EC023 */ subu $t8, $v1, $t6 -/* 04BE50 8004B250 A6380002 */ sh $t8, 2($s1) -/* 04BE54 8004B254 8FB900F8 */ lw $t9, 0xf8($sp) -/* 04BE58 8004B258 862D0002 */ lh $t5, 2($s1) -/* 04BE5C 8004B25C 01990019 */ multu $t4, $t9 -/* 04BE60 8004B260 00007812 */ mflo $t7 -/* 04BE64 8004B264 000F5843 */ sra $t3, $t7, 1 -/* 04BE68 8004B268 01AB7023 */ subu $t6, $t5, $t3 -/* 04BE6C 8004B26C A62E0002 */ sh $t6, 2($s1) -.L8004B270: -/* 04BE70 8004B270 821801EC */ lb $t8, 0x1ec($s0) -/* 04BE74 8004B274 00000000 */ nop -/* 04BE78 8004B278 1300002C */ beqz $t8, .L8004B32C -/* 04BE7C 8004B27C 00000000 */ nop -/* 04BE80 8004B280 820C01E2 */ lb $t4, 0x1e2($s0) -/* 04BE84 8004B284 A20001EC */ sb $zero, 0x1ec($s0) -/* 04BE88 8004B288 15800028 */ bnez $t4, .L8004B32C -/* 04BE8C 8004B28C 3C01C01A */ li $at, 0xC01A0000 # -2.406250 -/* 04BE90 8004B290 C606002C */ lwc1 $f6, 0x2c($s0) -/* 04BE94 8004B294 44815800 */ mtc1 $at, $f11 -/* 04BE98 8004B298 44805000 */ mtc1 $zero, $f10 -/* 04BE9C 8004B29C 46003221 */ cvt.d.s $f8, $f6 -/* 04BEA0 8004B2A0 462A403C */ c.lt.d $f8, $f10 -/* 04BEA4 8004B2A4 00000000 */ nop -/* 04BEA8 8004B2A8 45000020 */ bc1f .L8004B32C -/* 04BEAC 8004B2AC 00000000 */ nop -/* 04BEB0 8004B2B0 821901E5 */ lb $t9, 0x1e5($s0) -/* 04BEB4 8004B2B4 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 -/* 04BEB8 8004B2B8 1720001C */ bnez $t9, .L8004B32C -/* 04BEBC 8004B2BC 3C0B8012 */ lui $t3, %hi(gCurrentStickY) # $t3, 0x8012 -/* 04BEC0 8004B2C0 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) -/* 04BEC4 8004B2C4 240FFFFF */ li $t7, -1 -/* 04BEC8 8004B2C8 28410029 */ slti $at, $v0, 0x29 -/* 04BECC 8004B2CC 14200005 */ bnez $at, .L8004B2E4 -/* 04BED0 8004B2D0 240D0001 */ li $t5, 1 -/* 04BED4 8004B2D4 A20F01E0 */ sb $t7, 0x1e0($s0) -/* 04BED8 8004B2D8 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 -/* 04BEDC 8004B2DC 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) -/* 04BEE0 8004B2E0 00000000 */ nop -.L8004B2E4: -/* 04BEE4 8004B2E4 2841FFD8 */ slti $at, $v0, -0x28 -/* 04BEE8 8004B2E8 10200002 */ beqz $at, .L8004B2F4 -/* 04BEEC 8004B2EC 00000000 */ nop -/* 04BEF0 8004B2F0 A20D01E0 */ sb $t5, 0x1e0($s0) -.L8004B2F4: -/* 04BEF4 8004B2F4 8D6BD538 */ lw $t3, %lo(gCurrentStickY)($t3) -/* 04BEF8 8004B2F8 00000000 */ nop -/* 04BEFC 8004B2FC 29610029 */ slti $at, $t3, 0x29 -/* 04BF00 8004B300 14200003 */ bnez $at, .L8004B310 -/* 04BF04 8004B304 00000000 */ nop -/* 04BF08 8004B308 10000006 */ b .L8004B324 -/* 04BF0C 8004B30C A20501E0 */ sb $a1, 0x1e0($s0) -.L8004B310: -/* 04BF10 8004B310 820E01E0 */ lb $t6, 0x1e0($s0) -/* 04BF14 8004B314 24180002 */ li $t8, 2 -/* 04BF18 8004B318 15C00002 */ bnez $t6, .L8004B324 -/* 04BF1C 8004B31C 00000000 */ nop -/* 04BF20 8004B320 A21801E0 */ sb $t8, 0x1e0($s0) -.L8004B324: -/* 04BF24 8004B324 A20001D4 */ sb $zero, 0x1d4($s0) -/* 04BF28 8004B328 A20001D5 */ sb $zero, 0x1d5($s0) -.L8004B32C: -/* 04BF2C 8004B32C 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 -/* 04BF30 8004B330 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) -/* 04BF34 8004B334 2401FFFF */ li $at, -1 -/* 04BF38 8004B338 1181000F */ beq $t4, $at, .L8004B378 -/* 04BF3C 8004B33C 02202025 */ move $a0, $s1 -/* 04BF40 8004B340 3C01C080 */ li $at, 0xC0800000 # -4.000000 -/* 04BF44 8004B344 44812000 */ mtc1 $at, $f4 -/* 04BF48 8004B348 C612002C */ lwc1 $f18, 0x2c($s0) -/* 04BF4C 8004B34C 00000000 */ nop -/* 04BF50 8004B350 4604903C */ c.lt.s $f18, $f4 -/* 04BF54 8004B354 00000000 */ nop -/* 04BF58 8004B358 45000008 */ bc1f .L8004B37C -/* 04BF5C 8004B35C 02002825 */ move $a1, $s0 -/* 04BF60 8004B360 8E220074 */ lw $v0, 0x74($s1) -/* 04BF64 8004B364 240100C0 */ li $at, 192 -/* 04BF68 8004B368 305900C0 */ andi $t9, $v0, 0xc0 -/* 04BF6C 8004B36C 13210002 */ beq $t9, $at, .L8004B378 -/* 04BF70 8004B370 344F000C */ ori $t7, $v0, 0xc -/* 04BF74 8004B374 AE2F0074 */ sw $t7, 0x74($s1) -.L8004B378: -/* 04BF78 8004B378 02002825 */ move $a1, $s0 -.L8004B37C: -/* 04BF7C 8004B37C 0C015C88 */ jal handle_racer_top_speed -/* 04BF80 8004B380 E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04BF84 8004B384 C7AE00DC */ lwc1 $f14, 0xdc($sp) -/* 04BF88 8004B388 3C01800E */ lui $at, %hi(D_800E6518 + 4) # $at, 0x800e -/* 04BF8C 8004B38C 46007382 */ mul.s $f14, $f14, $f0 -/* 04BF90 8004B390 C4296518 */ lwc1 $f9, %lo(D_800E6518)($at) -/* 04BF94 8004B394 C428651C */ lwc1 $f8, %lo(D_800E6518 + 4)($at) -/* 04BF98 8004B398 820201D3 */ lb $v0, 0x1d3($s0) -/* 04BF9C 8004B39C 460071A1 */ cvt.d.s $f6, $f14 -/* 04BFA0 8004B3A0 46283282 */ mul.d $f10, $f6, $f8 -/* 04BFA4 8004B3A4 18400012 */ blez $v0, .L8004B3F0 -/* 04BFA8 8004B3A8 462053A0 */ cvt.s.d $f14, $f10 -/* 04BFAC 8004B3AC 3C0D8012 */ lui $t5, %hi(gRaceStartTimer) # $t5, 0x8012 -/* 04BFB0 8004B3B0 8DADD540 */ lw $t5, %lo(gRaceStartTimer)($t5) -/* 04BFB4 8004B3B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04BFB8 8004B3B8 15A0000E */ bnez $t5, .L8004B3F4 -/* 04BFBC 8004B3BC 00000000 */ nop -/* 04BFC0 8004B3C0 44819000 */ mtc1 $at, $f18 -/* 04BFC4 8004B3C4 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04BFC8 8004B3C8 E61200B4 */ swc1 $f18, 0xb4($s0) -/* 04BFCC 8004B3CC 8FAB00F8 */ lw $t3, 0xf8($sp) -/* 04BFD0 8004B3D0 44817000 */ mtc1 $at, $f14 -/* 04BFD4 8004B3D4 004B7023 */ subu $t6, $v0, $t3 -/* 04BFD8 8004B3D8 A20E01D3 */ sb $t6, 0x1d3($s0) -/* 04BFDC 8004B3DC 8E380074 */ lw $t8, 0x74($s1) -/* 04BFE0 8004B3E0 00000000 */ nop -/* 04BFE4 8004B3E4 370C00C0 */ ori $t4, $t8, 0xc0 -/* 04BFE8 8004B3E8 10000002 */ b .L8004B3F4 -/* 04BFEC 8004B3EC AE2C0074 */ sw $t4, 0x74($s1) -.L8004B3F0: -/* 04BFF0 8004B3F0 A20001D3 */ sb $zero, 0x1d3($s0) -.L8004B3F4: -/* 04BFF4 8004B3F4 921901F5 */ lbu $t9, 0x1f5($s0) -/* 04BFF8 8004B3F8 00000000 */ nop -/* 04BFFC 8004B3FC 17200128 */ bnez $t9, .L8004B8A0 -/* 04C000 8004B400 3C0F8012 */ lui $t7, %hi(gRaceStartTimer) # $t7, 0x8012 -/* 04C004 8004B404 8DEFD540 */ lw $t7, %lo(gRaceStartTimer)($t7) -/* 04C008 8004B408 00000000 */ nop -/* 04C00C 8004B40C 15E00124 */ bnez $t7, .L8004B8A0 -/* 04C010 8004B410 00000000 */ nop -/* 04C014 8004B414 820D01E2 */ lb $t5, 0x1e2($s0) -/* 04C018 8004B418 C7A400C8 */ lwc1 $f4, 0xc8($sp) -/* 04C01C 8004B41C 15A0000F */ bnez $t5, .L8004B45C -/* 04C020 8004B420 3C01800E */ lui $at, %hi(D_800E6520 + 4) # $at, 0x800e -/* 04C024 8004B424 C4296520 */ lwc1 $f9, %lo(D_800E6520)($at) -/* 04C028 8004B428 C4286524 */ lwc1 $f8, %lo(D_800E6520 + 4)($at) -/* 04C02C 8004B42C 460021A1 */ cvt.d.s $f6, $f4 -/* 04C030 8004B430 4628303C */ c.lt.d $f6, $f8 -/* 04C034 8004B434 00000000 */ nop -/* 04C038 8004B438 45000008 */ bc1f .L8004B45C -/* 04C03C 8004B43C 00000000 */ nop -/* 04C040 8004B440 820B01D6 */ lb $t3, 0x1d6($s0) -/* 04C044 8004B444 2401000A */ li $at, 10 -/* 04C048 8004B448 11610004 */ beq $t3, $at, .L8004B45C -/* 04C04C 8004B44C 3C01800E */ lui $at, %hi(D_800E6528) # $at, 0x800e -/* 04C050 8004B450 C4206528 */ lwc1 $f0, %lo(D_800E6528)($at) -/* 04C054 8004B454 00000000 */ nop -/* 04C058 8004B458 E7A000C8 */ swc1 $f0, 0xc8($sp) -.L8004B45C: -/* 04C05C 8004B45C C7A000C8 */ lwc1 $f0, 0xc8($sp) -/* 04C060 8004B460 C6120038 */ lwc1 $f18, 0x38($s0) -/* 04C064 8004B464 460E0002 */ mul.s $f0, $f0, $f14 -/* 04C068 8004B468 C62A001C */ lwc1 $f10, 0x1c($s1) -/* 04C06C 8004B46C C6280020 */ lwc1 $f8, 0x20($s1) -/* 04C070 8004B470 3C188012 */ lui $t8, %hi(gCurrentRacerInput) # $t8, 0x8012 -/* 04C074 8004B474 46009102 */ mul.s $f4, $f18, $f0 -/* 04C078 8004B478 46045181 */ sub.s $f6, $f10, $f4 -/* 04C07C 8004B47C E626001C */ swc1 $f6, 0x1c($s1) -/* 04C080 8004B480 C612003C */ lwc1 $f18, 0x3c($s0) -/* 04C084 8004B484 C6260024 */ lwc1 $f6, 0x24($s1) -/* 04C088 8004B488 46009282 */ mul.s $f10, $f18, $f0 -/* 04C08C 8004B48C 460A4101 */ sub.s $f4, $f8, $f10 -/* 04C090 8004B490 E6240020 */ swc1 $f4, 0x20($s1) -/* 04C094 8004B494 C6120040 */ lwc1 $f18, 0x40($s0) -/* 04C098 8004B498 00000000 */ nop -/* 04C09C 8004B49C 46009202 */ mul.s $f8, $f18, $f0 -/* 04C0A0 8004B4A0 46083281 */ sub.s $f10, $f6, $f8 -/* 04C0A4 8004B4A4 E62A0024 */ swc1 $f10, 0x24($s1) -/* 04C0A8 8004B4A8 820301E2 */ lb $v1, 0x1e2($s0) -/* 04C0AC 8004B4AC 00000000 */ nop -/* 04C0B0 8004B4B0 28610003 */ slti $at, $v1, 3 -/* 04C0B4 8004B4B4 1020000E */ beqz $at, .L8004B4F0 -/* 04C0B8 8004B4B8 00000000 */ nop -/* 04C0BC 8004B4BC C602002C */ lwc1 $f2, 0x2c($s0) -/* 04C0C0 8004B4C0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 04C0C4 8004B4C4 44819800 */ mtc1 $at, $f19 -/* 04C0C8 8004B4C8 44809000 */ mtc1 $zero, $f18 -/* 04C0CC 8004B4CC 46001121 */ cvt.d.s $f4, $f2 -/* 04C0D0 8004B4D0 4632203C */ c.lt.d $f4, $f18 -/* 04C0D4 8004B4D4 00000000 */ nop -/* 04C0D8 8004B4D8 45010005 */ bc1t .L8004B4F0 -/* 04C0DC 8004B4DC 00000000 */ nop -/* 04C0E0 8004B4E0 820E01D6 */ lb $t6, 0x1d6($s0) -/* 04C0E4 8004B4E4 2401000A */ li $at, 10 -/* 04C0E8 8004B4E8 15C1001F */ bne $t6, $at, .L8004B568 -/* 04C0EC 8004B4EC 00000000 */ nop -.L8004B4F0: -/* 04C0F0 8004B4F0 14600006 */ bnez $v1, .L8004B50C -/* 04C0F4 8004B4F4 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04C0F8 8004B4F8 C7A000C4 */ lwc1 $f0, 0xc4($sp) -/* 04C0FC 8004B4FC 44813000 */ mtc1 $at, $f6 -/* 04C100 8004B500 00000000 */ nop -/* 04C104 8004B504 46060003 */ div.s $f0, $f0, $f6 -/* 04C108 8004B508 E7A000C4 */ swc1 $f0, 0xc4($sp) -.L8004B50C: -/* 04C10C 8004B50C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04C110 8004B510 44814000 */ mtc1 $at, $f8 -/* 04C114 8004B514 C7A000C4 */ lwc1 $f0, 0xc4($sp) -/* 04C118 8004B518 46087283 */ div.s $f10, $f14, $f8 -/* 04C11C 8004B51C C6120038 */ lwc1 $f18, 0x38($s0) -/* 04C120 8004B520 C624001C */ lwc1 $f4, 0x1c($s1) -/* 04C124 8004B524 460A0002 */ mul.s $f0, $f0, $f10 -/* 04C128 8004B528 C62A0020 */ lwc1 $f10, 0x20($s1) -/* 04C12C 8004B52C 46009182 */ mul.s $f6, $f18, $f0 -/* 04C130 8004B530 46062200 */ add.s $f8, $f4, $f6 -/* 04C134 8004B534 E628001C */ swc1 $f8, 0x1c($s1) -/* 04C138 8004B538 C612003C */ lwc1 $f18, 0x3c($s0) -/* 04C13C 8004B53C C6280024 */ lwc1 $f8, 0x24($s1) -/* 04C140 8004B540 46009102 */ mul.s $f4, $f18, $f0 -/* 04C144 8004B544 46045180 */ add.s $f6, $f10, $f4 -/* 04C148 8004B548 E6260020 */ swc1 $f6, 0x20($s1) -/* 04C14C 8004B54C C6120040 */ lwc1 $f18, 0x40($s0) -/* 04C150 8004B550 00000000 */ nop -/* 04C154 8004B554 46009282 */ mul.s $f10, $f18, $f0 -/* 04C158 8004B558 460A4100 */ add.s $f4, $f8, $f10 -/* 04C15C 8004B55C E6240024 */ swc1 $f4, 0x24($s1) -/* 04C160 8004B560 C602002C */ lwc1 $f2, 0x2c($s0) -/* 04C164 8004B564 00000000 */ nop -.L8004B568: -/* 04C168 8004B568 44803000 */ mtc1 $zero, $f6 -/* 04C16C 8004B56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04C170 8004B570 4606103C */ c.lt.s $f2, $f6 -/* 04C174 8004B574 46021302 */ mul.s $f12, $f2, $f2 -/* 04C178 8004B578 44819000 */ mtc1 $at, $f18 -/* 04C17C 8004B57C 45000002 */ bc1f .L8004B588 -/* 04C180 8004B580 00000000 */ nop -/* 04C184 8004B584 46006307 */ neg.s $f12, $f12 -.L8004B588: -/* 04C188 8004B588 4612603C */ c.lt.s $f12, $f18 -/* 04C18C 8004B58C C7A600D8 */ lwc1 $f6, 0xd8($sp) -/* 04C190 8004B590 4500000D */ bc1f .L8004B5C8 -/* 04C194 8004B594 00000000 */ nop -/* 04C198 8004B598 8F18D528 */ lw $t8, %lo(gCurrentRacerInput)($t8) -/* 04C19C 8004B59C C7A800D8 */ lwc1 $f8, 0xd8($sp) -/* 04C1A0 8004B5A0 330C8000 */ andi $t4, $t8, 0x8000 -/* 04C1A4 8004B5A4 15800008 */ bnez $t4, .L8004B5C8 -/* 04C1A8 8004B5A8 00000000 */ nop -/* 04C1AC 8004B5AC 46081282 */ mul.s $f10, $f2, $f8 -/* 04C1B0 8004B5B0 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 04C1B4 8004B5B4 44812000 */ mtc1 $at, $f4 -/* 04C1B8 8004B5B8 00000000 */ nop -/* 04C1BC 8004B5BC 46045502 */ mul.s $f20, $f10, $f4 -/* 04C1C0 8004B5C0 10000004 */ b .L8004B5D4 -/* 04C1C4 8004B5C4 C6080038 */ lwc1 $f8, 0x38($s0) -.L8004B5C8: -/* 04C1C8 8004B5C8 46066502 */ mul.s $f20, $f12, $f6 -/* 04C1CC 8004B5CC 00000000 */ nop -/* 04C1D0 8004B5D0 C6080038 */ lwc1 $f8, 0x38($s0) -.L8004B5D4: -/* 04C1D4 8004B5D4 C632001C */ lwc1 $f18, 0x1c($s1) -/* 04C1D8 8004B5D8 46144282 */ mul.s $f10, $f8, $f20 -/* 04C1DC 8004B5DC C6260020 */ lwc1 $f6, 0x20($s1) -/* 04C1E0 8004B5E0 460A9101 */ sub.s $f4, $f18, $f10 -/* 04C1E4 8004B5E4 E624001C */ swc1 $f4, 0x1c($s1) -/* 04C1E8 8004B5E8 C608003C */ lwc1 $f8, 0x3c($s0) -/* 04C1EC 8004B5EC C6240024 */ lwc1 $f4, 0x24($s1) -/* 04C1F0 8004B5F0 46144482 */ mul.s $f18, $f8, $f20 -/* 04C1F4 8004B5F4 46123281 */ sub.s $f10, $f6, $f18 -/* 04C1F8 8004B5F8 E62A0020 */ swc1 $f10, 0x20($s1) -/* 04C1FC 8004B5FC C6080040 */ lwc1 $f8, 0x40($s0) -/* 04C200 8004B600 00000000 */ nop -/* 04C204 8004B604 46144182 */ mul.s $f6, $f8, $f20 -/* 04C208 8004B608 46062481 */ sub.s $f18, $f4, $f6 -/* 04C20C 8004B60C 44802000 */ mtc1 $zero, $f4 -/* 04C210 8004B610 E6320024 */ swc1 $f18, 0x24($s1) -/* 04C214 8004B614 C6000030 */ lwc1 $f0, 0x30($s0) -/* 04C218 8004B618 C7A800D4 */ lwc1 $f8, 0xd4($sp) -/* 04C21C 8004B61C 46000282 */ mul.s $f10, $f0, $f0 -/* 04C220 8004B620 4604003C */ c.lt.s $f0, $f4 -/* 04C224 8004B624 C7A600D4 */ lwc1 $f6, 0xd4($sp) -/* 04C228 8004B628 46085502 */ mul.s $f20, $f10, $f8 -/* 04C22C 8004B62C 45000002 */ bc1f .L8004B638 -/* 04C230 8004B630 00000000 */ nop -/* 04C234 8004B634 4600A507 */ neg.s $f20, $f20 -.L8004B638: -/* 04C238 8004B638 46060482 */ mul.s $f18, $f0, $f6 -/* 04C23C 8004B63C 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04C240 8004B640 44815000 */ mtc1 $at, $f10 -/* 04C244 8004B644 C6060050 */ lwc1 $f6, 0x50($s0) -/* 04C248 8004B648 460A9202 */ mul.s $f8, $f18, $f10 -/* 04C24C 8004B64C C624001C */ lwc1 $f4, 0x1c($s1) -/* 04C250 8004B650 24010001 */ li $at, 1 -/* 04C254 8004B654 4608A500 */ add.s $f20, $f20, $f8 -/* 04C258 8004B658 C6280020 */ lwc1 $f8, 0x20($s1) -/* 04C25C 8004B65C 46143482 */ mul.s $f18, $f6, $f20 -/* 04C260 8004B660 46122281 */ sub.s $f10, $f4, $f18 -/* 04C264 8004B664 E62A001C */ swc1 $f10, 0x1c($s1) -/* 04C268 8004B668 C6060054 */ lwc1 $f6, 0x54($s0) -/* 04C26C 8004B66C C62A0024 */ lwc1 $f10, 0x24($s1) -/* 04C270 8004B670 46143102 */ mul.s $f4, $f6, $f20 -/* 04C274 8004B674 46044481 */ sub.s $f18, $f8, $f4 -/* 04C278 8004B678 E6320020 */ swc1 $f18, 0x20($s1) -/* 04C27C 8004B67C C6060058 */ lwc1 $f6, 0x58($s0) -/* 04C280 8004B680 00000000 */ nop -/* 04C284 8004B684 46143202 */ mul.s $f8, $f6, $f20 -/* 04C288 8004B688 46085101 */ sub.s $f4, $f10, $f8 -/* 04C28C 8004B68C E6240024 */ swc1 $f4, 0x24($s1) -/* 04C290 8004B690 820201E0 */ lb $v0, 0x1e0($s0) -/* 04C294 8004B694 00000000 */ nop -/* 04C298 8004B698 10410002 */ beq $v0, $at, .L8004B6A4 -/* 04C29C 8004B69C 2401FFFF */ li $at, -1 -/* 04C2A0 8004B6A0 1441004E */ bne $v0, $at, .L8004B7DC -.L8004B6A4: -/* 04C2A4 8004B6A4 3C01800E */ lui $at, %hi(D_800E6530 + 4) # $at, 0x800e -/* 04C2A8 8004B6A8 C612002C */ lwc1 $f18, 0x2c($s0) -/* 04C2AC 8004B6AC C42B6530 */ lwc1 $f11, %lo(D_800E6530)($at) -/* 04C2B0 8004B6B0 C42A6534 */ lwc1 $f10, %lo(D_800E6530 + 4)($at) -/* 04C2B4 8004B6B4 460091A1 */ cvt.d.s $f6, $f18 -/* 04C2B8 8004B6B8 462A3202 */ mul.d $f8, $f6, $f10 -/* 04C2BC 8004B6BC 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 -/* 04C2C0 8004B6C0 44812800 */ mtc1 $at, $f5 -/* 04C2C4 8004B6C4 44802000 */ mtc1 $zero, $f4 -/* 04C2C8 8004B6C8 860401A4 */ lh $a0, 0x1a4($s0) -/* 04C2CC 8004B6CC 46244482 */ mul.d $f18, $f8, $f4 -/* 04C2D0 8004B6D0 46209320 */ cvt.s.d $f12, $f18 -/* 04C2D4 8004B6D4 0C01C1FE */ jal coss_f -/* 04C2D8 8004B6D8 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C2DC 8004B6DC 821901E0 */ lb $t9, 0x1e0($s0) -/* 04C2E0 8004B6E0 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C2E4 8004B6E4 44995000 */ mtc1 $t9, $f10 -/* 04C2E8 8004B6E8 460C0182 */ mul.s $f6, $f0, $f12 -/* 04C2EC 8004B6EC 860301A4 */ lh $v1, 0x1a4($s0) -/* 04C2F0 8004B6F0 00000000 */ nop -/* 04C2F4 8004B6F4 28614001 */ slti $at, $v1, 0x4001 -/* 04C2F8 8004B6F8 46805220 */ cvt.s.w $f8, $f10 -/* 04C2FC 8004B6FC 46083502 */ mul.s $f20, $f6, $f8 -/* 04C300 8004B700 10200002 */ beqz $at, .L8004B70C -/* 04C304 8004B704 2861C000 */ slti $at, $v1, -0x4000 -/* 04C308 8004B708 10200005 */ beqz $at, .L8004B720 -.L8004B70C: -/* 04C30C 8004B70C 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04C310 8004B710 44812000 */ mtc1 $at, $f4 -/* 04C314 8004B714 00000000 */ nop -/* 04C318 8004B718 4604A502 */ mul.s $f20, $f20, $f4 -/* 04C31C 8004B71C 00000000 */ nop -.L8004B720: -/* 04C320 8004B720 C60A0050 */ lwc1 $f10, 0x50($s0) -/* 04C324 8004B724 C632001C */ lwc1 $f18, 0x1c($s1) -/* 04C328 8004B728 46145182 */ mul.s $f6, $f10, $f20 -/* 04C32C 8004B72C C6240020 */ lwc1 $f4, 0x20($s1) -/* 04C330 8004B730 46069201 */ sub.s $f8, $f18, $f6 -/* 04C334 8004B734 E628001C */ swc1 $f8, 0x1c($s1) -/* 04C338 8004B738 C60A0054 */ lwc1 $f10, 0x54($s0) -/* 04C33C 8004B73C C6280024 */ lwc1 $f8, 0x24($s1) -/* 04C340 8004B740 46145482 */ mul.s $f18, $f10, $f20 -/* 04C344 8004B744 46122181 */ sub.s $f6, $f4, $f18 -/* 04C348 8004B748 E6260020 */ swc1 $f6, 0x20($s1) -/* 04C34C 8004B74C C60A0058 */ lwc1 $f10, 0x58($s0) -/* 04C350 8004B750 00000000 */ nop -/* 04C354 8004B754 46145102 */ mul.s $f4, $f10, $f20 -/* 04C358 8004B758 46044481 */ sub.s $f18, $f8, $f4 -/* 04C35C 8004B75C E6320024 */ swc1 $f18, 0x24($s1) -/* 04C360 8004B760 860401A4 */ lh $a0, 0x1a4($s0) -/* 04C364 8004B764 0C01C1F1 */ jal sins_f -/* 04C368 8004B768 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C36C 8004B76C 820F01E0 */ lb $t7, 0x1e0($s0) -/* 04C370 8004B770 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C374 8004B774 448F5000 */ mtc1 $t7, $f10 -/* 04C378 8004B778 460C0182 */ mul.s $f6, $f0, $f12 -/* 04C37C 8004B77C 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 -/* 04C380 8004B780 44815800 */ mtc1 $at, $f11 -/* 04C384 8004B784 46805220 */ cvt.s.w $f8, $f10 -/* 04C388 8004B788 44805000 */ mtc1 $zero, $f10 -/* 04C38C 8004B78C 46083102 */ mul.s $f4, $f6, $f8 -/* 04C390 8004B790 C628001C */ lwc1 $f8, 0x1c($s1) -/* 04C394 8004B794 460024A1 */ cvt.d.s $f18, $f4 -/* 04C398 8004B798 462A9182 */ mul.d $f6, $f18, $f10 -/* 04C39C 8004B79C C6040044 */ lwc1 $f4, 0x44($s0) -/* 04C3A0 8004B7A0 46203520 */ cvt.s.d $f20, $f6 -/* 04C3A4 8004B7A4 C6260020 */ lwc1 $f6, 0x20($s1) -/* 04C3A8 8004B7A8 46142482 */ mul.s $f18, $f4, $f20 -/* 04C3AC 8004B7AC 46124281 */ sub.s $f10, $f8, $f18 -/* 04C3B0 8004B7B0 E62A001C */ swc1 $f10, 0x1c($s1) -/* 04C3B4 8004B7B4 C6040048 */ lwc1 $f4, 0x48($s0) -/* 04C3B8 8004B7B8 C62A0024 */ lwc1 $f10, 0x24($s1) -/* 04C3BC 8004B7BC 46142202 */ mul.s $f8, $f4, $f20 -/* 04C3C0 8004B7C0 46083481 */ sub.s $f18, $f6, $f8 -/* 04C3C4 8004B7C4 E6320020 */ swc1 $f18, 0x20($s1) -/* 04C3C8 8004B7C8 C604004C */ lwc1 $f4, 0x4c($s0) -/* 04C3CC 8004B7CC 00000000 */ nop -/* 04C3D0 8004B7D0 46142182 */ mul.s $f6, $f4, $f20 -/* 04C3D4 8004B7D4 46065201 */ sub.s $f8, $f10, $f6 -/* 04C3D8 8004B7D8 E6280024 */ swc1 $f8, 0x24($s1) -.L8004B7DC: -/* 04C3DC 8004B7DC C6020034 */ lwc1 $f2, 0x34($s0) -/* 04C3E0 8004B7E0 44805000 */ mtc1 $zero, $f10 -/* 04C3E4 8004B7E4 46021482 */ mul.s $f18, $f2, $f2 -/* 04C3E8 8004B7E8 C7A400D0 */ lwc1 $f4, 0xd0($sp) -/* 04C3EC 8004B7EC 460A103C */ c.lt.s $f2, $f10 -/* 04C3F0 8004B7F0 C7A600D0 */ lwc1 $f6, 0xd0($sp) -/* 04C3F4 8004B7F4 46049502 */ mul.s $f20, $f18, $f4 -/* 04C3F8 8004B7F8 45000002 */ bc1f .L8004B804 -/* 04C3FC 8004B7FC 00000000 */ nop -/* 04C400 8004B800 4600A507 */ neg.s $f20, $f20 -.L8004B804: -/* 04C404 8004B804 46061202 */ mul.s $f8, $f2, $f6 -/* 04C408 8004B808 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 04C40C 8004B80C 44819000 */ mtc1 $at, $f18 -/* 04C410 8004B810 C6060044 */ lwc1 $f6, 0x44($s0) -/* 04C414 8004B814 46124102 */ mul.s $f4, $f8, $f18 -/* 04C418 8004B818 C62A001C */ lwc1 $f10, 0x1c($s1) -/* 04C41C 8004B81C 3C01800E */ lui $at, %hi(D_800E6538) # $at, 0x800e -/* 04C420 8004B820 4604A500 */ add.s $f20, $f20, $f4 -/* 04C424 8004B824 C6240020 */ lwc1 $f4, 0x20($s1) -/* 04C428 8004B828 46143202 */ mul.s $f8, $f6, $f20 -/* 04C42C 8004B82C 46085481 */ sub.s $f18, $f10, $f8 -/* 04C430 8004B830 E632001C */ swc1 $f18, 0x1c($s1) -/* 04C434 8004B834 C6060048 */ lwc1 $f6, 0x48($s0) -/* 04C438 8004B838 C6320024 */ lwc1 $f18, 0x24($s1) -/* 04C43C 8004B83C 46143282 */ mul.s $f10, $f6, $f20 -/* 04C440 8004B840 460A2201 */ sub.s $f8, $f4, $f10 -/* 04C444 8004B844 E6280020 */ swc1 $f8, 0x20($s1) -/* 04C448 8004B848 C606004C */ lwc1 $f6, 0x4c($s0) -/* 04C44C 8004B84C 00000000 */ nop -/* 04C450 8004B850 46143102 */ mul.s $f4, $f6, $f20 -/* 04C454 8004B854 46049281 */ sub.s $f10, $f18, $f4 -/* 04C458 8004B858 E62A0024 */ swc1 $f10, 0x24($s1) -/* 04C45C 8004B85C C606002C */ lwc1 $f6, 0x2c($s0) -/* 04C460 8004B860 C424653C */ lwc1 $f4, %lo(D_800E6538 + 4)($at) -/* 04C464 8004B864 C4256538 */ lwc1 $f5, %lo(D_800E6538)($at) -/* 04C468 8004B868 460034A1 */ cvt.d.s $f18, $f6 -/* 04C46C 8004B86C 46249282 */ mul.d $f10, $f18, $f4 -/* 04C470 8004B870 C6080008 */ lwc1 $f8, 8($s0) -/* 04C474 8004B874 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 04C478 8004B878 46004021 */ cvt.d.s $f0, $f8 -/* 04C47C 8004B87C 44813800 */ mtc1 $at, $f7 -/* 04C480 8004B880 462A0200 */ add.d $f8, $f0, $f10 -/* 04C484 8004B884 44803000 */ mtc1 $zero, $f6 -/* 04C488 8004B888 00000000 */ nop -/* 04C48C 8004B88C 46264482 */ mul.d $f18, $f8, $f6 -/* 04C490 8004B890 46320101 */ sub.d $f4, $f0, $f18 -/* 04C494 8004B894 462022A0 */ cvt.s.d $f10, $f4 -/* 04C498 8004B898 E60A0008 */ swc1 $f10, 8($s0) -/* 04C49C 8004B89C E7AC00EC */ swc1 $f12, 0xec($sp) -.L8004B8A0: -/* 04C4A0 8004B8A0 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C4A4 8004B8A4 AE00010C */ sw $zero, 0x10c($s0) -/* 04C4A8 8004B8A8 3C0D8012 */ lui $t5, %hi(gCurrentCarSteerVel) # $t5, 0x8012 -/* 04C4AC 8004B8AC 8DADD554 */ lw $t5, %lo(gCurrentCarSteerVel)($t5) -/* 04C4B0 8004B8B0 860201A2 */ lh $v0, 0x1a2($s0) -/* 04C4B4 8004B8B4 860C01A0 */ lh $t4, 0x1a0($s0) -/* 04C4B8 8004B8B8 01A25823 */ subu $t3, $t5, $v0 -/* 04C4BC 8004B8BC 000B70C3 */ sra $t6, $t3, 3 -/* 04C4C0 8004B8C0 004EC021 */ addu $t8, $v0, $t6 -/* 04C4C4 8004B8C4 A61801A2 */ sh $t8, 0x1a2($s0) -/* 04C4C8 8004B8C8 861901A2 */ lh $t9, 0x1a2($s0) -/* 04C4CC 8004B8CC 3C0D8012 */ lui $t5, %hi(D_8011D558) # $t5, 0x8012 -/* 04C4D0 8004B8D0 01997821 */ addu $t7, $t4, $t9 -/* 04C4D4 8004B8D4 A62F0000 */ sh $t7, ($s1) -/* 04C4D8 8004B8D8 860301A6 */ lh $v1, 0x1a6($s0) -/* 04C4DC 8004B8DC 8DADD558 */ lw $t5, %lo(D_8011D558)($t5) -/* 04C4E0 8004B8E0 860C01A4 */ lh $t4, 0x1a4($s0) -/* 04C4E4 8004B8E4 01A35823 */ subu $t3, $t5, $v1 -/* 04C4E8 8004B8E8 000B70C3 */ sra $t6, $t3, 3 -/* 04C4EC 8004B8EC 006EC021 */ addu $t8, $v1, $t6 -/* 04C4F0 8004B8F0 A61801A6 */ sh $t8, 0x1a6($s0) -/* 04C4F4 8004B8F4 861901A6 */ lh $t9, 0x1a6($s0) -/* 04C4F8 8004B8F8 00000000 */ nop -/* 04C4FC 8004B8FC 01997821 */ addu $t7, $t4, $t9 -/* 04C500 8004B900 A62F0004 */ sh $t7, 4($s1) -/* 04C504 8004B904 820D0175 */ lb $t5, 0x175($s0) -/* 04C508 8004B908 00000000 */ nop -/* 04C50C 8004B90C 11A00007 */ beqz $t5, .L8004B92C -/* 04C510 8004B910 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 -/* 04C514 8004B914 C428D578 */ lwc1 $f8, %lo(D_8011D578)($at) -/* 04C518 8004B918 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 -/* 04C51C 8004B91C E628001C */ swc1 $f8, 0x1c($s1) -/* 04C520 8004B920 C426D57C */ lwc1 $f6, %lo(D_8011D57C)($at) -/* 04C524 8004B924 00000000 */ nop -/* 04C528 8004B928 E6260024 */ swc1 $f6, 0x24($s1) -.L8004B92C: -/* 04C52C 8004B92C 8E0B0148 */ lw $t3, 0x148($s0) -/* 04C530 8004B930 00000000 */ nop -/* 04C534 8004B934 15600061 */ bnez $t3, .L8004BABC -/* 04C538 8004B938 8FA600FC */ lw $a2, 0xfc($sp) -/* 04C53C 8004B93C 820E01D2 */ lb $t6, 0x1d2($s0) -/* 04C540 8004B940 C634001C */ lwc1 $f20, 0x1c($s1) -/* 04C544 8004B944 C62C0024 */ lwc1 $f12, 0x24($s1) -/* 04C548 8004B948 11C00010 */ beqz $t6, .L8004B98C -/* 04C54C 8004B94C 3C188012 */ lui $t8, %hi(D_8011D584) # $t8, 0x8012 -/* 04C550 8004B950 C604011C */ lwc1 $f4, 0x11c($s0) -/* 04C554 8004B954 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 04C558 8004B958 44811800 */ mtc1 $at, $f3 -/* 04C55C 8004B95C 44801000 */ mtc1 $zero, $f2 -/* 04C560 8004B960 460022A1 */ cvt.d.s $f10, $f4 -/* 04C564 8004B964 46225202 */ mul.d $f8, $f10, $f2 -/* 04C568 8004B968 C60A0120 */ lwc1 $f10, 0x120($s0) -/* 04C56C 8004B96C 4600A4A1 */ cvt.d.s $f18, $f20 -/* 04C570 8004B970 46006121 */ cvt.d.s $f4, $f12 -/* 04C574 8004B974 46289180 */ add.d $f6, $f18, $f8 -/* 04C578 8004B978 460054A1 */ cvt.d.s $f18, $f10 -/* 04C57C 8004B97C 46229202 */ mul.d $f8, $f18, $f2 -/* 04C580 8004B980 46203520 */ cvt.s.d $f20, $f6 -/* 04C584 8004B984 46282180 */ add.d $f6, $f4, $f8 -/* 04C588 8004B988 46203320 */ cvt.s.d $f12, $f6 -.L8004B98C: -/* 04C58C 8004B98C 8318D584 */ lb $t8, %lo(D_8011D584)($t8) -/* 04C590 8004B990 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 04C594 8004B994 44811800 */ mtc1 $at, $f3 -/* 04C598 8004B998 44801000 */ mtc1 $zero, $f2 -/* 04C59C 8004B99C 1300002A */ beqz $t8, .L8004BA48 -/* 04C5A0 8004B9A0 00000000 */ nop -/* 04C5A4 8004B9A4 4600A021 */ cvt.d.s $f0, $f20 -/* 04C5A8 8004B9A8 4620103C */ c.lt.d $f2, $f0 -/* 04C5AC 8004B9AC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 04C5B0 8004B9B0 45010007 */ bc1t .L8004B9D0 -/* 04C5B4 8004B9B4 00000000 */ nop -/* 04C5B8 8004B9B8 44815800 */ mtc1 $at, $f11 -/* 04C5BC 8004B9BC 44805000 */ mtc1 $zero, $f10 -/* 04C5C0 8004B9C0 00000000 */ nop -/* 04C5C4 8004B9C4 462A003C */ c.lt.d $f0, $f10 -/* 04C5C8 8004B9C8 00000000 */ nop -/* 04C5CC 8004B9CC 45000007 */ bc1f .L8004B9EC -.L8004B9D0: -/* 04C5D0 8004B9D0 3C01800E */ lui $at, %hi(D_800E6540 + 4) # $at, 0x800e -/* 04C5D4 8004B9D4 C4336540 */ lwc1 $f19, %lo(D_800E6540)($at) -/* 04C5D8 8004B9D8 C4326544 */ lwc1 $f18, %lo(D_800E6540 + 4)($at) -/* 04C5DC 8004B9DC 00000000 */ nop -/* 04C5E0 8004B9E0 46320102 */ mul.d $f4, $f0, $f18 -/* 04C5E4 8004B9E4 10000003 */ b .L8004B9F4 -/* 04C5E8 8004B9E8 46202520 */ cvt.s.d $f20, $f4 -.L8004B9EC: -/* 04C5EC 8004B9EC 4480A000 */ mtc1 $zero, $f20 -/* 04C5F0 8004B9F0 00000000 */ nop -.L8004B9F4: -/* 04C5F4 8004B9F4 46006021 */ cvt.d.s $f0, $f12 -/* 04C5F8 8004B9F8 4620103C */ c.lt.d $f2, $f0 -/* 04C5FC 8004B9FC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 04C600 8004BA00 45010007 */ bc1t .L8004BA20 -/* 04C604 8004BA04 00000000 */ nop -/* 04C608 8004BA08 44814800 */ mtc1 $at, $f9 -/* 04C60C 8004BA0C 44804000 */ mtc1 $zero, $f8 -/* 04C610 8004BA10 00000000 */ nop -/* 04C614 8004BA14 4628003C */ c.lt.d $f0, $f8 -/* 04C618 8004BA18 00000000 */ nop -/* 04C61C 8004BA1C 45000007 */ bc1f .L8004BA3C -.L8004BA20: -/* 04C620 8004BA20 3C01800E */ lui $at, %hi(D_800E6548 + 4) # $at, 0x800e -/* 04C624 8004BA24 C4276548 */ lwc1 $f7, %lo(D_800E6548)($at) -/* 04C628 8004BA28 C426654C */ lwc1 $f6, %lo(D_800E6548 + 4)($at) -/* 04C62C 8004BA2C 00000000 */ nop -/* 04C630 8004BA30 46260282 */ mul.d $f10, $f0, $f6 -/* 04C634 8004BA34 10000008 */ b .L8004BA58 -/* 04C638 8004BA38 46205320 */ cvt.s.d $f12, $f10 -.L8004BA3C: -/* 04C63C 8004BA3C 44806000 */ mtc1 $zero, $f12 -/* 04C640 8004BA40 10000006 */ b .L8004BA5C -/* 04C644 8004BA44 C7A000FC */ lwc1 $f0, 0xfc($sp) -.L8004BA48: -/* 04C648 8004BA48 C6120084 */ lwc1 $f18, 0x84($s0) -/* 04C64C 8004BA4C C6040088 */ lwc1 $f4, 0x88($s0) -/* 04C650 8004BA50 4612A500 */ add.s $f20, $f20, $f18 -/* 04C654 8004BA54 46046300 */ add.s $f12, $f12, $f4 -.L8004BA58: -/* 04C658 8004BA58 C7A000FC */ lwc1 $f0, 0xfc($sp) -.L8004BA5C: -/* 04C65C 8004BA5C C6260020 */ lwc1 $f6, 0x20($s1) -/* 04C660 8004BA60 4600A202 */ mul.s $f8, $f20, $f0 -/* 04C664 8004BA64 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C668 8004BA68 02202025 */ move $a0, $s1 -/* 04C66C 8004BA6C 46003282 */ mul.s $f10, $f6, $f0 -/* 04C670 8004BA70 44054000 */ mfc1 $a1, $f8 -/* 04C674 8004BA74 46006482 */ mul.s $f18, $f12, $f0 -/* 04C678 8004BA78 44065000 */ mfc1 $a2, $f10 -/* 04C67C 8004BA7C 44079000 */ mfc1 $a3, $f18 -/* 04C680 8004BA80 0C00455C */ jal func_80011570 -/* 04C684 8004BA84 00000000 */ nop -/* 04C688 8004BA88 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C68C 8004BA8C 10400006 */ beqz $v0, .L8004BAA8 -/* 04C690 8004BA90 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 -/* 04C694 8004BA94 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) -/* 04C698 8004BA98 2401FFFF */ li $at, -1 -/* 04C69C 8004BA9C 11810002 */ beq $t4, $at, .L8004BAA8 -/* 04C6A0 8004BAA0 24190001 */ li $t9, 1 -/* 04C6A4 8004BAA4 A3B9005F */ sb $t9, 0x5f($sp) -.L8004BAA8: -/* 04C6A8 8004BAA8 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 04C6AC 8004BAAC 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 04C6B0 8004BAB0 1000000B */ b .L8004BAE0 -/* 04C6B4 8004BAB4 820801E2 */ lb $t0, 0x1e2($s0) -/* 04C6B8 8004BAB8 8FA600FC */ lw $a2, 0xfc($sp) -.L8004BABC: -/* 04C6BC 8004BABC 02202025 */ move $a0, $s1 -/* 04C6C0 8004BAC0 02002825 */ move $a1, $s0 -/* 04C6C4 8004BAC4 0C0141D5 */ jal func_80050754 -/* 04C6C8 8004BAC8 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C6CC 8004BACC 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 04C6D0 8004BAD0 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 04C6D4 8004BAD4 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C6D8 8004BAD8 00000000 */ nop -/* 04C6DC 8004BADC 820801E2 */ lb $t0, 0x1e2($s0) -.L8004BAE0: -/* 04C6E0 8004BAE0 2401FFFF */ li $at, -1 -/* 04C6E4 8004BAE4 14410017 */ bne $v0, $at, .L8004BB44 -/* 04C6E8 8004BAE8 8FA600F8 */ lw $a2, 0xf8($sp) -/* 04C6EC 8004BAEC 820F01D7 */ lb $t7, 0x1d7($s0) -/* 04C6F0 8004BAF0 2401000D */ li $at, 13 -/* 04C6F4 8004BAF4 15E10005 */ bne $t7, $at, .L8004BB0C -/* 04C6F8 8004BAF8 3C0D8012 */ lui $t5, %hi(gRaceStartTimer) # $t5, 0x8012 -/* 04C6FC 8004BAFC 8DADD540 */ lw $t5, %lo(gRaceStartTimer)($t5) -/* 04C700 8004BB00 00000000 */ nop -/* 04C704 8004BB04 11A0000B */ beqz $t5, .L8004BB34 -/* 04C708 8004BB08 00000000 */ nop -.L8004BB0C: -/* 04C70C 8004BB0C 8FA600F8 */ lw $a2, 0xf8($sp) -/* 04C710 8004BB10 02202025 */ move $a0, $s1 -/* 04C714 8004BB14 02002825 */ move $a1, $s0 -/* 04C718 8004BB18 AFA800B8 */ sw $t0, 0xb8($sp) -/* 04C71C 8004BB1C 0C0156A1 */ jal func_80055A84 -/* 04C720 8004BB20 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C724 8004BB24 8FA800B8 */ lw $t0, 0xb8($sp) -/* 04C728 8004BB28 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C72C 8004BB2C 1000000D */ b .L8004BB64 -/* 04C730 8004BB30 00000000 */ nop -.L8004BB34: -/* 04C734 8004BB34 A20001E2 */ sb $zero, 0x1e2($s0) -/* 04C738 8004BB38 1000000A */ b .L8004BB64 -/* 04C73C 8004BB3C A20001E3 */ sb $zero, 0x1e3($s0) -/* 04C740 8004BB40 8FA600F8 */ lw $a2, 0xf8($sp) -.L8004BB44: -/* 04C744 8004BB44 02202025 */ move $a0, $s1 -/* 04C748 8004BB48 02002825 */ move $a1, $s0 -/* 04C74C 8004BB4C AFA800B8 */ sw $t0, 0xb8($sp) -/* 04C750 8004BB50 0C0153F4 */ jal func_80054FD0 -/* 04C754 8004BB54 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C758 8004BB58 8FA800B8 */ lw $t0, 0xb8($sp) -/* 04C75C 8004BB5C C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C760 8004BB60 00000000 */ nop -.L8004BB64: -/* 04C764 8004BB64 15000015 */ bnez $t0, .L8004BBBC -/* 04C768 8004BB68 00000000 */ nop -/* 04C76C 8004BB6C 820B01E2 */ lb $t3, 0x1e2($s0) -/* 04C770 8004BB70 00000000 */ nop -/* 04C774 8004BB74 11600011 */ beqz $t3, .L8004BBBC -/* 04C778 8004BB78 00000000 */ nop -/* 04C77C 8004BB7C 820E01DB */ lb $t6, 0x1db($s0) -/* 04C780 8004BB80 02202025 */ move $a0, $s1 -/* 04C784 8004BB84 11C0000D */ beqz $t6, .L8004BBBC -/* 04C788 8004BB88 2405000C */ li $a1, 12 -/* 04C78C 8004BB8C 0C015C12 */ jal racer_play_sound -/* 04C790 8004BB90 E7AC00EC */ swc1 $f12, 0xec($sp) -/* 04C794 8004BB94 86180000 */ lh $t8, ($s0) -/* 04C798 8004BB98 C7AC00EC */ lwc1 $f12, 0xec($sp) -/* 04C79C 8004BB9C 2401FFFF */ li $at, -1 -/* 04C7A0 8004BBA0 13010006 */ beq $t8, $at, .L8004BBBC -/* 04C7A4 8004BBA4 3C0C8012 */ lui $t4, %hi(gCameraObject) # $t4, 0x8012 -/* 04C7A8 8004BBA8 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 04C7AC 8004BBAC 44812000 */ mtc1 $at, $f4 -/* 04C7B0 8004BBB0 8D8CD508 */ lw $t4, %lo(gCameraObject)($t4) -/* 04C7B4 8004BBB4 00000000 */ nop -/* 04C7B8 8004BBB8 E5840030 */ swc1 $f4, 0x30($t4) -.L8004BBBC: -/* 04C7BC 8004BBBC 820201D2 */ lb $v0, 0x1d2($s0) -/* 04C7C0 8004BBC0 3C0B8012 */ lui $t3, %hi(gRaceStartTimer) # $t3, 0x8012 -/* 04C7C4 8004BBC4 1040000B */ beqz $v0, .L8004BBF4 -/* 04C7C8 8004BBC8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 -/* 04C7CC 8004BBCC 8FB900F8 */ lw $t9, 0xf8($sp) -/* 04C7D0 8004BBD0 00000000 */ nop -/* 04C7D4 8004BBD4 00597823 */ subu $t7, $v0, $t9 -/* 04C7D8 8004BBD8 A20F01D2 */ sb $t7, 0x1d2($s0) -/* 04C7DC 8004BBDC 820D01D2 */ lb $t5, 0x1d2($s0) -/* 04C7E0 8004BBE0 00000000 */ nop -/* 04C7E4 8004BBE4 05A1001B */ bgez $t5, .L8004BC54 -/* 04C7E8 8004BBE8 00000000 */ nop -/* 04C7EC 8004BBEC 10000019 */ b .L8004BC54 -/* 04C7F0 8004BBF0 A20001D2 */ sb $zero, 0x1d2($s0) -.L8004BBF4: -/* 04C7F4 8004BBF4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04C7F8 8004BBF8 44814000 */ mtc1 $at, $f8 -/* 04C7FC 8004BBFC C7A600FC */ lwc1 $f6, 0xfc($sp) -/* 04C800 8004BC00 C62A000C */ lwc1 $f10, 0xc($s1) -/* 04C804 8004BC04 46064003 */ div.s $f0, $f8, $f6 -/* 04C808 8004BC08 C7B200E8 */ lwc1 $f18, 0xe8($sp) -/* 04C80C 8004BC0C 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012 -/* 04C810 8004BC10 C428D548 */ lwc1 $f8, %lo(D_8011D548)($at) -/* 04C814 8004BC14 46125101 */ sub.s $f4, $f10, $f18 -/* 04C818 8004BC18 C7B200E4 */ lwc1 $f18, 0xe4($sp) -/* 04C81C 8004BC1C 46082181 */ sub.s $f6, $f4, $f8 -/* 04C820 8004BC20 C62A0010 */ lwc1 $f10, 0x10($s1) -/* 04C824 8004BC24 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012 -/* 04C828 8004BC28 46003502 */ mul.s $f20, $f6, $f0 -/* 04C82C 8004BC2C 46125101 */ sub.s $f4, $f10, $f18 -/* 04C830 8004BC30 C6260014 */ lwc1 $f6, 0x14($s1) -/* 04C834 8004BC34 46002202 */ mul.s $f8, $f4, $f0 -/* 04C838 8004BC38 E6280020 */ swc1 $f8, 0x20($s1) -/* 04C83C 8004BC3C C7AA00E0 */ lwc1 $f10, 0xe0($sp) -/* 04C840 8004BC40 C424D54C */ lwc1 $f4, %lo(D_8011D54C)($at) -/* 04C844 8004BC44 460A3481 */ sub.s $f18, $f6, $f10 -/* 04C848 8004BC48 46049201 */ sub.s $f8, $f18, $f4 -/* 04C84C 8004BC4C 46004302 */ mul.s $f12, $f8, $f0 -/* 04C850 8004BC50 00000000 */ nop -.L8004BC54: -/* 04C854 8004BC54 8D6BD540 */ lw $t3, %lo(gRaceStartTimer)($t3) -/* 04C858 8004BC58 24010064 */ li $at, 100 -/* 04C85C 8004BC5C 15610005 */ bne $t3, $at, .L8004BC74 -/* 04C860 8004BC60 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 -/* 04C864 8004BC64 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 -/* 04C868 8004BC68 44813000 */ mtc1 $at, $f6 -/* 04C86C 8004BC6C 00000000 */ nop -/* 04C870 8004BC70 E6260020 */ swc1 $f6, 0x20($s1) -.L8004BC74: -/* 04C874 8004BC74 862E0000 */ lh $t6, ($s1) -/* 04C878 8004BC78 E634001C */ swc1 $f20, 0x1c($s1) -/* 04C87C 8004BC7C E62C0024 */ swc1 $f12, 0x24($s1) -/* 04C880 8004BC80 000EC023 */ negu $t8, $t6 -/* 04C884 8004BC84 A4B80000 */ sh $t8, ($a1) -/* 04C888 8004BC88 862C0002 */ lh $t4, 2($s1) -/* 04C88C 8004BC8C 44800000 */ mtc1 $zero, $f0 -/* 04C890 8004BC90 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04C894 8004BC94 44815000 */ mtc1 $at, $f10 -/* 04C898 8004BC98 000CC823 */ negu $t9, $t4 -/* 04C89C 8004BC9C A4B90002 */ sh $t9, 2($a1) -/* 04C8A0 8004BCA0 A4A00004 */ sh $zero, 4($a1) -/* 04C8A4 8004BCA4 27A40060 */ addiu $a0, $sp, 0x60 -/* 04C8A8 8004BCA8 E4A0000C */ swc1 $f0, 0xc($a1) -/* 04C8AC 8004BCAC E4A00010 */ swc1 $f0, 0x10($a1) -/* 04C8B0 8004BCB0 E4A00014 */ swc1 $f0, 0x14($a1) -/* 04C8B4 8004BCB4 0C01BF9D */ jal object_transform_to_matrix_2 -/* 04C8B8 8004BCB8 E4AA0008 */ swc1 $f10, 8($a1) -/* 04C8BC 8004BCBC 8E25001C */ lw $a1, 0x1c($s1) -/* 04C8C0 8004BCC0 8E260020 */ lw $a2, 0x20($s1) -/* 04C8C4 8004BCC4 8E270024 */ lw $a3, 0x24($s1) -/* 04C8C8 8004BCC8 260F0030 */ addiu $t7, $s0, 0x30 -/* 04C8CC 8004BCCC 260D0034 */ addiu $t5, $s0, 0x34 -/* 04C8D0 8004BCD0 260B002C */ addiu $t3, $s0, 0x2c -/* 04C8D4 8004BCD4 AFAB0018 */ sw $t3, 0x18($sp) -/* 04C8D8 8004BCD8 AFAD0014 */ sw $t5, 0x14($sp) -/* 04C8DC 8004BCDC AFAF0010 */ sw $t7, 0x10($sp) -/* 04C8E0 8004BCE0 0C01BD93 */ jal guMtxXFMF -/* 04C8E4 8004BCE4 27A40060 */ addiu $a0, $sp, 0x60 -/* 04C8E8 8004BCE8 8E230060 */ lw $v1, 0x60($s1) -/* 04C8EC 8004BCEC 00000000 */ nop -/* 04C8F0 8004BCF0 10600013 */ beqz $v1, .L8004BD40 -/* 04C8F4 8004BCF4 00000000 */ nop -/* 04C8F8 8004BCF8 8C6E0000 */ lw $t6, ($v1) -/* 04C8FC 8004BCFC 00000000 */ nop -/* 04C900 8004BD00 29C10003 */ slti $at, $t6, 3 -/* 04C904 8004BD04 1420000E */ bnez $at, .L8004BD40 -/* 04C908 8004BD08 00000000 */ nop -/* 04C90C 8004BD0C 8C62000C */ lw $v0, 0xc($v1) -/* 04C910 8004BD10 24184000 */ li $t8, 16384 -/* 04C914 8004BD14 804C003A */ lb $t4, 0x3a($v0) -/* 04C918 8004BD18 8C4F0040 */ lw $t7, 0x40($v0) -/* 04C91C 8004BD1C 25990001 */ addiu $t9, $t4, 1 -/* 04C920 8004BD20 A059003A */ sb $t9, 0x3a($v0) -/* 04C924 8004BD24 A4580000 */ sh $t8, ($v0) -/* 04C928 8004BD28 804B003A */ lb $t3, 0x3a($v0) -/* 04C92C 8004BD2C 81ED0055 */ lb $t5, 0x55($t7) -/* 04C930 8004BD30 00000000 */ nop -/* 04C934 8004BD34 15AB0002 */ bne $t5, $t3, .L8004BD40 -/* 04C938 8004BD38 00000000 */ nop -/* 04C93C 8004BD3C A040003A */ sb $zero, 0x3a($v0) -.L8004BD40: -/* 04C940 8004BD40 8E230060 */ lw $v1, 0x60($s1) -/* 04C944 8004BD44 00000000 */ nop -/* 04C948 8004BD48 1060005F */ beqz $v1, .L8004BEC8 -/* 04C94C 8004BD4C 00000000 */ nop -/* 04C950 8004BD50 8C6E0000 */ lw $t6, ($v1) -/* 04C954 8004BD54 00000000 */ nop -/* 04C958 8004BD58 29C10003 */ slti $at, $t6, 3 -/* 04C95C 8004BD5C 1420005A */ bnez $at, .L8004BEC8 -/* 04C960 8004BD60 00000000 */ nop -/* 04C964 8004BD64 821801E2 */ lb $t8, 0x1e2($s0) -/* 04C968 8004BD68 83AC00A2 */ lb $t4, 0xa2($sp) -/* 04C96C 8004BD6C 17000003 */ bnez $t8, .L8004BD7C -/* 04C970 8004BD70 00000000 */ nop -/* 04C974 8004BD74 11800030 */ beqz $t4, .L8004BE38 -/* 04C978 8004BD78 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -.L8004BD7C: -/* 04C97C 8004BD7C 8C620004 */ lw $v0, 4($v1) -/* 04C980 8004BD80 44809000 */ mtc1 $zero, $f18 -/* 04C984 8004BD84 C4400010 */ lwc1 $f0, 0x10($v0) -/* 04C988 8004BD88 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04C98C 8004BD8C 4600903C */ c.lt.s $f18, $f0 -/* 04C990 8004BD90 00000000 */ nop -/* 04C994 8004BD94 45000008 */ bc1f .L8004BDB8 -/* 04C998 8004BD98 00000000 */ nop -/* 04C99C 8004BD9C 44814800 */ mtc1 $at, $f9 -/* 04C9A0 8004BDA0 44804000 */ mtc1 $zero, $f8 -/* 04C9A4 8004BDA4 46000121 */ cvt.d.s $f4, $f0 -/* 04C9A8 8004BDA8 46282181 */ sub.d $f6, $f4, $f8 -/* 04C9AC 8004BDAC 462032A0 */ cvt.s.d $f10, $f6 -/* 04C9B0 8004BDB0 10000004 */ b .L8004BDC4 -/* 04C9B4 8004BDB4 E44A0010 */ swc1 $f10, 0x10($v0) -.L8004BDB8: -/* 04C9B8 8004BDB8 44809000 */ mtc1 $zero, $f18 -/* 04C9BC 8004BDBC 00000000 */ nop -/* 04C9C0 8004BDC0 E4520010 */ swc1 $f18, 0x10($v0) -.L8004BDC4: -/* 04C9C4 8004BDC4 84590006 */ lh $t9, 6($v0) -/* 04C9C8 8004BDC8 44802000 */ mtc1 $zero, $f4 -/* 04C9CC 8004BDCC 332FBFFF */ andi $t7, $t9, 0xbfff -/* 04C9D0 8004BDD0 A44F0006 */ sh $t7, 6($v0) -/* 04C9D4 8004BDD4 8E2D0060 */ lw $t5, 0x60($s1) -/* 04C9D8 8004BDD8 2403BFFF */ li $v1, -16385 -/* 04C9DC 8004BDDC 8DA20008 */ lw $v0, 8($t5) -/* 04C9E0 8004BDE0 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 04C9E4 8004BDE4 C4400010 */ lwc1 $f0, 0x10($v0) -/* 04C9E8 8004BDE8 00000000 */ nop -/* 04C9EC 8004BDEC 4600203C */ c.lt.s $f4, $f0 -/* 04C9F0 8004BDF0 00000000 */ nop -/* 04C9F4 8004BDF4 45000008 */ bc1f .L8004BE18 -/* 04C9F8 8004BDF8 00000000 */ nop -/* 04C9FC 8004BDFC 44813800 */ mtc1 $at, $f7 -/* 04CA00 8004BE00 44803000 */ mtc1 $zero, $f6 -/* 04CA04 8004BE04 46000221 */ cvt.d.s $f8, $f0 -/* 04CA08 8004BE08 46264281 */ sub.d $f10, $f8, $f6 -/* 04CA0C 8004BE0C 462054A0 */ cvt.s.d $f18, $f10 -/* 04CA10 8004BE10 10000004 */ b .L8004BE24 -/* 04CA14 8004BE14 E4520010 */ swc1 $f18, 0x10($v0) -.L8004BE18: -/* 04CA18 8004BE18 44802000 */ mtc1 $zero, $f4 -/* 04CA1C 8004BE1C 00000000 */ nop -/* 04CA20 8004BE20 E4440010 */ swc1 $f4, 0x10($v0) -.L8004BE24: -/* 04CA24 8004BE24 844B0006 */ lh $t3, 6($v0) -/* 04CA28 8004BE28 00000000 */ nop -/* 04CA2C 8004BE2C 01637024 */ and $t6, $t3, $v1 -/* 04CA30 8004BE30 10000025 */ b .L8004BEC8 -/* 04CA34 8004BE34 A44E0006 */ sh $t6, 6($v0) -.L8004BE38: -/* 04CA38 8004BE38 8C620004 */ lw $v0, 4($v1) -/* 04CA3C 8004BE3C 44814000 */ mtc1 $at, $f8 -/* 04CA40 8004BE40 C4400010 */ lwc1 $f0, 0x10($v0) -/* 04CA44 8004BE44 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04CA48 8004BE48 4608003C */ c.lt.s $f0, $f8 -/* 04CA4C 8004BE4C 00000000 */ nop -/* 04CA50 8004BE50 45000006 */ bc1f .L8004BE6C -/* 04CA54 8004BE54 00000000 */ nop -/* 04CA58 8004BE58 44813000 */ mtc1 $at, $f6 -/* 04CA5C 8004BE5C 00000000 */ nop -/* 04CA60 8004BE60 46060280 */ add.s $f10, $f0, $f6 -/* 04CA64 8004BE64 10000005 */ b .L8004BE7C -/* 04CA68 8004BE68 E44A0010 */ swc1 $f10, 0x10($v0) -.L8004BE6C: -/* 04CA6C 8004BE6C 84580006 */ lh $t8, 6($v0) -/* 04CA70 8004BE70 00000000 */ nop -/* 04CA74 8004BE74 370C4000 */ ori $t4, $t8, 0x4000 -/* 04CA78 8004BE78 A44C0006 */ sh $t4, 6($v0) -.L8004BE7C: -/* 04CA7C 8004BE7C 8E390060 */ lw $t9, 0x60($s1) -/* 04CA80 8004BE80 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 04CA84 8004BE84 8F220008 */ lw $v0, 8($t9) -/* 04CA88 8004BE88 44819000 */ mtc1 $at, $f18 -/* 04CA8C 8004BE8C C4400010 */ lwc1 $f0, 0x10($v0) -/* 04CA90 8004BE90 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 04CA94 8004BE94 4612003C */ c.lt.s $f0, $f18 -/* 04CA98 8004BE98 00000000 */ nop -/* 04CA9C 8004BE9C 45000006 */ bc1f .L8004BEB8 -/* 04CAA0 8004BEA0 00000000 */ nop -/* 04CAA4 8004BEA4 44812000 */ mtc1 $at, $f4 -/* 04CAA8 8004BEA8 00000000 */ nop -/* 04CAAC 8004BEAC 46040200 */ add.s $f8, $f0, $f4 -/* 04CAB0 8004BEB0 10000005 */ b .L8004BEC8 -/* 04CAB4 8004BEB4 E4480010 */ swc1 $f8, 0x10($v0) -.L8004BEB8: -/* 04CAB8 8004BEB8 844F0006 */ lh $t7, 6($v0) -/* 04CABC 8004BEBC 00000000 */ nop -/* 04CAC0 8004BEC0 35ED4000 */ ori $t5, $t7, 0x4000 -/* 04CAC4 8004BEC4 A44D0006 */ sh $t5, 6($v0) -.L8004BEC8: -/* 04CAC8 8004BEC8 3C0B8012 */ lui $t3, %hi(gCurrentPlayerIndex) # $t3, 0x8012 -/* 04CACC 8004BECC 8D6BD55C */ lw $t3, %lo(gCurrentPlayerIndex)($t3) -/* 04CAD0 8004BED0 2401FFFF */ li $at, -1 -/* 04CAD4 8004BED4 11610046 */ beq $t3, $at, .L8004BFF0 -/* 04CAD8 8004BED8 00000000 */ nop -/* 04CADC 8004BEDC 820E01D3 */ lb $t6, 0x1d3($s0) -/* 04CAE0 8004BEE0 3C18800E */ lui $t8, %hi(gNumViewports) # $t8, 0x800e -/* 04CAE4 8004BEE4 15C00042 */ bnez $t6, .L8004BFF0 -/* 04CAE8 8004BEE8 00000000 */ nop -/* 04CAEC 8004BEEC 8F18CB98 */ lw $t8, %lo(gNumViewports)($t8) -/* 04CAF0 8004BEF0 00000000 */ nop -/* 04CAF4 8004BEF4 2B010002 */ slti $at, $t8, 2 -/* 04CAF8 8004BEF8 1020003D */ beqz $at, .L8004BFF0 -/* 04CAFC 8004BEFC 00000000 */ nop -/* 04CB00 8004BF00 0C0078A7 */ jal get_misc_asset -/* 04CB04 8004BF04 24040014 */ li $a0, 20 -/* 04CB08 8004BF08 82080203 */ lb $t0, 0x203($s0) -/* 04CB0C 8004BF0C 820C0002 */ lb $t4, 2($s0) -/* 04CB10 8004BF10 310F0004 */ andi $t7, $t0, 4 -/* 04CB14 8004BF14 000F6883 */ sra $t5, $t7, 2 -/* 04CB18 8004BF18 25A80009 */ addiu $t0, $t5, 9 -/* 04CB1C 8004BF1C 2901000A */ slti $at, $t0, 0xa -/* 04CB20 8004BF20 000CC9C0 */ sll $t9, $t4, 7 -/* 04CB24 8004BF24 14200012 */ bnez $at, .L8004BF70 -/* 04CB28 8004BF28 03221821 */ addu $v1, $t9, $v0 -/* 04CB2C 8004BF2C 906B0070 */ lbu $t3, 0x70($v1) -/* 04CB30 8004BF30 24180001 */ li $t8, 1 -/* 04CB34 8004BF34 1D600009 */ bgtz $t3, .L8004BF5C -/* 04CB38 8004BF38 00000000 */ nop -/* 04CB3C 8004BF3C C46A0074 */ lwc1 $f10, 0x74($v1) -/* 04CB40 8004BF40 44803800 */ mtc1 $zero, $f7 -/* 04CB44 8004BF44 44803000 */ mtc1 $zero, $f6 -/* 04CB48 8004BF48 460054A1 */ cvt.d.s $f18, $f10 -/* 04CB4C 8004BF4C 4632303C */ c.lt.d $f6, $f18 -/* 04CB50 8004BF50 00000000 */ nop -/* 04CB54 8004BF54 45000026 */ bc1f .L8004BFF0 -/* 04CB58 8004BF58 00000000 */ nop -.L8004BF5C: -/* 04CB5C 8004BF5C 8E2E0074 */ lw $t6, 0x74($s1) -/* 04CB60 8004BF60 01186004 */ sllv $t4, $t8, $t0 -/* 04CB64 8004BF64 01CCC825 */ or $t9, $t6, $t4 -/* 04CB68 8004BF68 10000021 */ b .L8004BFF0 -/* 04CB6C 8004BF6C AE390074 */ sw $t9, 0x74($s1) -.L8004BF70: -/* 04CB70 8004BF70 90620070 */ lbu $v0, 0x70($v1) -/* 04CB74 8004BF74 24010002 */ li $at, 2 -/* 04CB78 8004BF78 14410010 */ bne $v0, $at, .L8004BFBC -/* 04CB7C 8004BF7C 28410002 */ slti $at, $v0, 2 -/* 04CB80 8004BF80 C4640074 */ lwc1 $f4, 0x74($v1) -/* 04CB84 8004BF84 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 04CB88 8004BF88 44815800 */ mtc1 $at, $f11 -/* 04CB8C 8004BF8C 44805000 */ mtc1 $zero, $f10 -/* 04CB90 8004BF90 46002221 */ cvt.d.s $f8, $f4 -/* 04CB94 8004BF94 462A403C */ c.lt.d $f8, $f10 -/* 04CB98 8004BF98 240D0001 */ li $t5, 1 -/* 04CB9C 8004BF9C 45000007 */ bc1f .L8004BFBC -/* 04CBA0 8004BFA0 28410002 */ slti $at, $v0, 2 -/* 04CBA4 8004BFA4 8E2F0074 */ lw $t7, 0x74($s1) -/* 04CBA8 8004BFA8 010D5804 */ sllv $t3, $t5, $t0 -/* 04CBAC 8004BFAC 01EBC025 */ or $t8, $t7, $t3 -/* 04CBB0 8004BFB0 1000000F */ b .L8004BFF0 -/* 04CBB4 8004BFB4 AE380074 */ sw $t8, 0x74($s1) -/* 04CBB8 8004BFB8 28410002 */ slti $at, $v0, 2 -.L8004BFBC: -/* 04CBBC 8004BFBC 1020000C */ beqz $at, .L8004BFF0 -/* 04CBC0 8004BFC0 00000000 */ nop -/* 04CBC4 8004BFC4 44803000 */ mtc1 $zero, $f6 -/* 04CBC8 8004BFC8 C4720074 */ lwc1 $f18, 0x74($v1) -/* 04CBCC 8004BFCC 240C0001 */ li $t4, 1 -/* 04CBD0 8004BFD0 4612303C */ c.lt.s $f6, $f18 -/* 04CBD4 8004BFD4 00000000 */ nop -/* 04CBD8 8004BFD8 45000005 */ bc1f .L8004BFF0 -/* 04CBDC 8004BFDC 00000000 */ nop -/* 04CBE0 8004BFE0 8E2E0074 */ lw $t6, 0x74($s1) -/* 04CBE4 8004BFE4 010CC804 */ sllv $t9, $t4, $t0 -/* 04CBE8 8004BFE8 01D96825 */ or $t5, $t6, $t9 -/* 04CBEC 8004BFEC AE2D0074 */ sw $t5, 0x74($s1) -.L8004BFF0: -/* 04CBF0 8004BFF0 3C0F8012 */ lui $t7, %hi(gCurrentPlayerIndex) # $t7, 0x8012 -/* 04CBF4 8004BFF4 8DEFD55C */ lw $t7, %lo(gCurrentPlayerIndex)($t7) -/* 04CBF8 8004BFF8 2401FFFF */ li $at, -1 -/* 04CBFC 8004BFFC 15E10002 */ bne $t7, $at, .L8004C008 -/* 04CC00 8004C000 00000000 */ nop -/* 04CC04 8004C004 AE200074 */ sw $zero, 0x74($s1) -.L8004C008: -/* 04CC08 8004C008 820B0201 */ lb $t3, 0x201($s0) -/* 04CC0C 8004C00C 00000000 */ nop -/* 04CC10 8004C010 15600002 */ bnez $t3, .L8004C01C -/* 04CC14 8004C014 00000000 */ nop -/* 04CC18 8004C018 AE200074 */ sw $zero, 0x74($s1) -.L8004C01C: -/* 04CC1C 8004C01C 821801D7 */ lb $t8, 0x1d7($s0) -/* 04CC20 8004C020 8FA500F8 */ lw $a1, 0xf8($sp) -/* 04CC24 8004C024 2B010005 */ slti $at, $t8, 5 -/* 04CC28 8004C028 10200004 */ beqz $at, .L8004C03C -/* 04CC2C 8004C02C 83AC00A1 */ lb $t4, 0xa1($sp) -/* 04CC30 8004C030 0C02BDC5 */ jal func_800AF714 -/* 04CC34 8004C034 02202025 */ move $a0, $s1 -/* 04CC38 8004C038 83AC00A1 */ lb $t4, 0xa1($sp) -.L8004C03C: -/* 04CC3C 8004C03C 02202025 */ move $a0, $s1 -/* 04CC40 8004C040 11800007 */ beqz $t4, .L8004C060 -/* 04CC44 8004C044 02002825 */ move $a1, $s0 -/* 04CC48 8004C048 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 -/* 04CC4C 8004C04C 2442D528 */ addiu $v0, %lo(gCurrentRacerInput) # addiu $v0, $v0, -0x2ad8 -/* 04CC50 8004C050 8C4E0000 */ lw $t6, ($v0) -/* 04CC54 8004C054 00000000 */ nop -/* 04CC58 8004C058 35D90010 */ ori $t9, $t6, 0x10 -/* 04CC5C 8004C05C AC590000 */ sw $t9, ($v0) -.L8004C060: -/* 04CC60 8004C060 8FA700FC */ lw $a3, 0xfc($sp) -/* 04CC64 8004C064 0C01602D */ jal func_800580B4 -/* 04CC68 8004C068 24060001 */ li $a2, 1 -/* 04CC6C 8004C06C 83AD005F */ lb $t5, 0x5f($sp) -/* 04CC70 8004C070 02202025 */ move $a0, $s1 -/* 04CC74 8004C074 11A00004 */ beqz $t5, .L8004C088 -/* 04CC78 8004C078 8FBF0034 */ lw $ra, 0x34($sp) -/* 04CC7C 8004C07C 0C008C34 */ jal func_800230D0 -/* 04CC80 8004C080 02002825 */ move $a1, $s0 -/* 04CC84 8004C084 8FBF0034 */ lw $ra, 0x34($sp) -.L8004C088: -/* 04CC88 8004C088 C7B50020 */ lwc1 $f21, 0x20($sp) -/* 04CC8C 8004C08C C7B40024 */ lwc1 $f20, 0x24($sp) -/* 04CC90 8004C090 8FB0002C */ lw $s0, 0x2c($sp) -/* 04CC94 8004C094 8FB10030 */ lw $s1, 0x30($sp) -/* 04CC98 8004C098 03E00008 */ jr $ra -/* 04CC9C 8004C09C 27BD00F8 */ addiu $sp, $sp, 0xf8 - +.late_rodata +glabel D_800E64A8 +.double 1.09 +glabel D_800E64B0 +.double 0.4 +glabel D_800E64B8 +.double 0.01 +glabel D_800E64C0 +.double 0.01 +glabel D_800E64C8 +.double 0.016 +glabel D_800E64D0 +.double 1.2 +glabel D_800E64D8 +.float 1.2 +.word 0 # Padding +glabel D_800E64E0 +.double 0.016 +glabel D_800E64E8 +.float 1.4 +glabel D_800E64EC +.float 0.01 +glabel D_800E64F0 +.float 0.02 +glabel D_800E64F4 +.float 0.004 +glabel D_800E64F8 +.double 0.6 +glabel D_800E6500 +.double 0.3 +glabel D_800E6508 +.float 1.2 +.word 0 # Padding +glabel D_800E6510 +.double 0.00015 +glabel D_800E6518 +.double 1.8 +glabel D_800E6520 +.double 0.4 +glabel D_800E6528 +.float 0.4 +.word 0 # Padding +glabel D_800E6530 +.double 0.058823529411764705 +glabel D_800E6538 +.double 0.05 +glabel D_800E6540 +.double 0.65 +glabel D_800E6548 +.double 0.65 + +.text +glabel func_80049794 +/* 04A394 80049794 27BDFF08 */ addiu $sp, $sp, -0xf8 +/* 04A398 80049798 AFBF0034 */ sw $ra, 0x34($sp) +/* 04A39C 8004979C AFB10030 */ sw $s1, 0x30($sp) +/* 04A3A0 800497A0 AFB0002C */ sw $s0, 0x2c($sp) +/* 04A3A4 800497A4 00E08025 */ move $s0, $a3 +/* 04A3A8 800497A8 00C08825 */ move $s1, $a2 +/* 04A3AC 800497AC E7B50020 */ swc1 $f21, 0x20($sp) +/* 04A3B0 800497B0 E7B40024 */ swc1 $f20, 0x24($sp) +/* 04A3B4 800497B4 AFA400F8 */ sw $a0, 0xf8($sp) +/* 04A3B8 800497B8 0C00384E */ jal func_8000E138 +/* 04A3BC 800497BC AFA500FC */ sw $a1, 0xfc($sp) +/* 04A3C0 800497C0 10400008 */ beqz $v0, .L800497E4 +/* 04A3C4 800497C4 3C01800E */ lui $at, %hi(D_800E64A8 + 4) # $at, 0x800e +/* 04A3C8 800497C8 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 04A3CC 800497CC C42964A8 */ lwc1 $f9, %lo(D_800E64A8)($at) +/* 04A3D0 800497D0 C42864AC */ lwc1 $f8, %lo(D_800E64A8 + 4)($at) +/* 04A3D4 800497D4 460021A1 */ cvt.d.s $f6, $f4 +/* 04A3D8 800497D8 46283282 */ mul.d $f10, $f6, $f8 +/* 04A3DC 800497DC 462054A0 */ cvt.s.d $f18, $f10 +/* 04A3E0 800497E0 E7B200FC */ swc1 $f18, 0xfc($sp) +.L800497E4: +/* 04A3E4 800497E4 A3A0005F */ sb $zero, 0x5f($sp) +/* 04A3E8 800497E8 820E01E2 */ lb $t6, 0x1e2($s0) +/* 04A3EC 800497EC 24010004 */ li $at, 4 +/* 04A3F0 800497F0 19C00005 */ blez $t6, .L80049808 +/* 04A3F4 800497F4 00000000 */ nop +/* 04A3F8 800497F8 44807000 */ mtc1 $zero, $f14 +/* 04A3FC 800497FC 00000000 */ nop +/* 04A400 80049800 E60E0084 */ swc1 $f14, 0x84($s0) +/* 04A404 80049804 E60E0088 */ swc1 $f14, 0x88($s0) +.L80049808: +/* 04A408 80049808 920F01FE */ lbu $t7, 0x1fe($s0) +/* 04A40C 8004980C 44807000 */ mtc1 $zero, $f14 +/* 04A410 80049810 15E1000A */ bne $t7, $at, .L8004983C +/* 04A414 80049814 00000000 */ nop +/* 04A418 80049818 821801DB */ lb $t8, 0x1db($s0) +/* 04A41C 8004981C 24040240 */ li $a0, 576 +/* 04A420 80049820 17000006 */ bnez $t8, .L8004983C +/* 04A424 80049824 00000000 */ nop +/* 04A428 80049828 0C000741 */ jal play_sound_global +/* 04A42C 8004982C 00002825 */ move $a1, $zero +/* 04A430 80049830 24190014 */ li $t9, 20 +/* 04A434 80049834 44807000 */ mtc1 $zero, $f14 +/* 04A438 80049838 A21901DB */ sb $t9, 0x1db($s0) +.L8004983C: +/* 04A43C 8004983C 3C0B8012 */ lui $t3, %hi(gCurrentPlayerIndex) # $t3, 0x8012 +/* 04A440 80049840 8D6BD55C */ lw $t3, %lo(gCurrentPlayerIndex)($t3) +/* 04A444 80049844 2409FFFF */ li $t1, -1 +/* 04A448 80049848 112B00A4 */ beq $t1, $t3, .L80049ADC +/* 04A44C 8004984C 00005025 */ move $t2, $zero +/* 04A450 80049850 820C01D7 */ lb $t4, 0x1d7($s0) +/* 04A454 80049854 2401000C */ li $at, 12 +/* 04A458 80049858 118100A0 */ beq $t4, $at, .L80049ADC +/* 04A45C 8004985C 3C028012 */ lui $v0, %hi(D_8011D5AE) # $v0, 0x8012 +/* 04A460 80049860 8042D5AE */ lb $v0, %lo(D_8011D5AE)($v0) +/* 04A464 80049864 3C198012 */ lui $t9, %hi(D_8011D5B0) # $t9, 0x8012 +/* 04A468 80049868 1040009C */ beqz $v0, .L80049ADC +/* 04A46C 8004986C 2443FFFF */ addiu $v1, $v0, -1 +/* 04A470 80049870 0460001A */ bltz $v1, .L800498DC +/* 04A474 80049874 00602025 */ move $a0, $v1 +/* 04A478 80049878 3C0D8012 */ lui $t5, %hi(D_8011D5B0) # $t5, 0x8012 +/* 04A47C 8004987C 8DADD5B0 */ lw $t5, %lo(D_8011D5B0)($t5) +/* 04A480 80049880 00047080 */ sll $t6, $a0, 2 +/* 04A484 80049884 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 04A488 80049888 01AE1021 */ addu $v0, $t5, $t6 +/* 04A48C 8004988C 8C4F0000 */ lw $t7, ($v0) +/* 04A490 80049890 44813000 */ mtc1 $at, $f6 +/* 04A494 80049894 C6240010 */ lwc1 $f4, 0x10($s1) +/* 04A498 80049898 C5E80000 */ lwc1 $f8, ($t7) +/* 04A49C 8004989C 46062000 */ add.s $f0, $f4, $f6 +/* 04A4A0 800498A0 4600403C */ c.lt.s $f8, $f0 +/* 04A4A4 800498A4 00000000 */ nop +/* 04A4A8 800498A8 4500000C */ bc1f .L800498DC +/* 04A4AC 800498AC 00000000 */ nop +.L800498B0: +/* 04A4B0 800498B0 2484FFFF */ addiu $a0, $a0, -1 +/* 04A4B4 800498B4 04800009 */ bltz $a0, .L800498DC +/* 04A4B8 800498B8 2442FFFC */ addiu $v0, $v0, -4 +/* 04A4BC 800498BC 8C580000 */ lw $t8, ($v0) +/* 04A4C0 800498C0 00000000 */ nop +/* 04A4C4 800498C4 C70A0000 */ lwc1 $f10, ($t8) +/* 04A4C8 800498C8 00000000 */ nop +/* 04A4CC 800498CC 4600503C */ c.lt.s $f10, $f0 +/* 04A4D0 800498D0 00000000 */ nop +/* 04A4D4 800498D4 4501FFF6 */ bc1t .L800498B0 +/* 04A4D8 800498D8 00000000 */ nop +.L800498DC: +/* 04A4DC 800498DC 8F39D5B0 */ lw $t9, %lo(D_8011D5B0)($t9) +/* 04A4E0 800498E0 00042880 */ sll $a1, $a0, 2 +/* 04A4E4 800498E4 C62C0010 */ lwc1 $f12, 0x10($s1) +/* 04A4E8 800498E8 14830003 */ bne $a0, $v1, .L800498F8 +/* 04A4EC 800498EC 03251021 */ addu $v0, $t9, $a1 +/* 04A4F0 800498F0 24A5FFFC */ addiu $a1, $a1, -4 +/* 04A4F4 800498F4 2442FFFC */ addiu $v0, $v0, -4 +.L800498F8: +/* 04A4F8 800498F8 8C4B0004 */ lw $t3, 4($v0) +/* 04A4FC 800498FC 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 04A500 80049900 C5620000 */ lwc1 $f2, ($t3) +/* 04A504 80049904 44812000 */ mtc1 $at, $f4 +/* 04A508 80049908 46026481 */ sub.s $f18, $f12, $f2 +/* 04A50C 8004990C 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 04A510 80049910 44813000 */ mtc1 $at, $f6 +/* 04A514 80049914 46049081 */ sub.s $f2, $f18, $f4 +/* 04A518 80049918 3C01420C */ li $at, 0x420C0000 # 35.000000 +/* 04A51C 8004991C 4602303C */ c.lt.s $f6, $f2 +/* 04A520 80049920 44814000 */ mtc1 $at, $f8 +/* 04A524 80049924 45000002 */ bc1f .L80049930 +/* 04A528 80049928 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 04A52C 8004992C A20001E6 */ sb $zero, 0x1e6($s0) +.L80049930: +/* 04A530 80049930 C600002C */ lwc1 $f0, 0x2c($s0) +/* 04A534 80049934 00000000 */ nop +/* 04A538 80049938 46000007 */ neg.s $f0, $f0 +/* 04A53C 8004993C 460E003C */ c.lt.s $f0, $f14 +/* 04A540 80049940 00000000 */ nop +/* 04A544 80049944 45000002 */ bc1f .L80049950 +/* 04A548 80049948 00000000 */ nop +/* 04A54C 8004994C 46007006 */ mov.s $f0, $f14 +.L80049950: +/* 04A550 80049950 4608103C */ c.lt.s $f2, $f8 +/* 04A554 80049954 00000000 */ nop +/* 04A558 80049958 45000009 */ bc1f .L80049980 +/* 04A55C 8004995C 00000000 */ nop +/* 04A560 80049960 44816800 */ mtc1 $at, $f13 +/* 04A564 80049964 44806000 */ mtc1 $zero, $f12 +/* 04A568 80049968 460002A1 */ cvt.d.s $f10, $f0 +/* 04A56C 8004996C 462C503C */ c.lt.d $f10, $f12 +/* 04A570 80049970 00000000 */ nop +/* 04A574 80049974 45000002 */ bc1f .L80049980 +/* 04A578 80049978 00000000 */ nop +/* 04A57C 8004997C 240A0001 */ li $t2, 1 +.L80049980: +/* 04A580 80049980 820C01E6 */ lb $t4, 0x1e6($s0) +/* 04A584 80049984 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 04A588 80049988 44816800 */ mtc1 $at, $f13 +/* 04A58C 8004998C 44806000 */ mtc1 $zero, $f12 +/* 04A590 80049990 1580000D */ bnez $t4, .L800499C8 +/* 04A594 80049994 3C014218 */ li $at, 0x42180000 # 38.000000 +/* 04A598 80049998 44819000 */ mtc1 $at, $f18 +/* 04A59C 8004999C 00000000 */ nop +/* 04A5A0 800499A0 4612103C */ c.lt.s $f2, $f18 +/* 04A5A4 800499A4 00000000 */ nop +/* 04A5A8 800499A8 45000007 */ bc1f .L800499C8 +/* 04A5AC 800499AC 00000000 */ nop +/* 04A5B0 800499B0 46000121 */ cvt.d.s $f4, $f0 +/* 04A5B4 800499B4 4624603E */ c.le.d $f12, $f4 +/* 04A5B8 800499B8 240D0001 */ li $t5, 1 +/* 04A5BC 800499BC 45000002 */ bc1f .L800499C8 +/* 04A5C0 800499C0 00000000 */ nop +/* 04A5C4 800499C4 A20D01E6 */ sb $t5, 0x1e6($s0) +.L800499C8: +/* 04A5C8 800499C8 820201E0 */ lb $v0, 0x1e0($s0) +/* 04A5CC 800499CC 24010001 */ li $at, 1 +/* 04A5D0 800499D0 1041000F */ beq $v0, $at, .L80049A10 +/* 04A5D4 800499D4 00000000 */ nop +/* 04A5D8 800499D8 1122000D */ beq $t1, $v0, .L80049A10 +/* 04A5DC 800499DC 3C0E8012 */ lui $t6, %hi(D_8011D5B0) # $t6, 0x8012 +/* 04A5E0 800499E0 8DCED5B0 */ lw $t6, %lo(D_8011D5B0)($t6) +/* 04A5E4 800499E4 3C01800E */ lui $at, %hi(D_800E64B0 + 4) # $at, 0x800e +/* 04A5E8 800499E8 01C57821 */ addu $t7, $t6, $a1 +/* 04A5EC 800499EC 8DF80004 */ lw $t8, 4($t7) +/* 04A5F0 800499F0 C42B64B0 */ lwc1 $f11, %lo(D_800E64B0)($at) +/* 04A5F4 800499F4 C7060008 */ lwc1 $f6, 8($t8) +/* 04A5F8 800499F8 C42A64B4 */ lwc1 $f10, %lo(D_800E64B0 + 4)($at) +/* 04A5FC 800499FC 46003221 */ cvt.d.s $f8, $f6 +/* 04A600 80049A00 462A403C */ c.lt.d $f8, $f10 +/* 04A604 80049A04 00000000 */ nop +/* 04A608 80049A08 45000003 */ bc1f .L80049A18 +/* 04A60C 80049A0C 00000000 */ nop +.L80049A10: +/* 04A610 80049A10 A20001E6 */ sb $zero, 0x1e6($s0) +/* 04A614 80049A14 00005025 */ move $t2, $zero +.L80049A18: +/* 04A618 80049A18 821901E6 */ lb $t9, 0x1e6($s0) +/* 04A61C 80049A1C 00000000 */ nop +/* 04A620 80049A20 1320002F */ beqz $t9, .L80049AE0 +/* 04A624 80049A24 3C014100 */ lui $at, 0x4100 +/* 04A628 80049A28 460004A1 */ cvt.d.s $f18, $f0 +/* 04A62C 80049A2C 462C903C */ c.lt.d $f18, $f12 +/* 04A630 80049A30 44802000 */ mtc1 $zero, $f4 +/* 04A634 80049A34 45010007 */ bc1t .L80049A54 +/* 04A638 80049A38 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 +/* 04A63C 80049A3C 2508D538 */ addiu $t0, %lo(gCurrentStickY) # addiu $t0, $t0, -0x2ac8 +/* 04A640 80049A40 8D0B0000 */ lw $t3, ($t0) +/* 04A644 80049A44 00000000 */ nop +/* 04A648 80049A48 2961FFF6 */ slti $at, $t3, -0xa +/* 04A64C 80049A4C 10200005 */ beqz $at, .L80049A64 +/* 04A650 80049A50 3C014100 */ lui $at, 0x4100 +.L80049A54: +/* 04A654 80049A54 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 +/* 04A658 80049A58 2508D538 */ addiu $t0, %lo(gCurrentStickY) # addiu $t0, $t0, -0x2ac8 +/* 04A65C 80049A5C A20001E6 */ sb $zero, 0x1e6($s0) +/* 04A660 80049A60 3C014100 */ li $at, 0x41000000 # 8.000000 +.L80049A64: +/* 04A664 80049A64 44818000 */ mtc1 $at, $f16 +/* 04A668 80049A68 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 04A66C 80049A6C 46100001 */ sub.s $f0, $f0, $f16 +/* 04A670 80049A70 44812800 */ mtc1 $at, $f5 +/* 04A674 80049A74 460001A1 */ cvt.d.s $f6, $f0 +/* 04A678 80049A78 4626203C */ c.lt.d $f4, $f6 +/* 04A67C 80049A7C C62C0010 */ lwc1 $f12, 0x10($s1) +/* 04A680 80049A80 45000003 */ bc1f .L80049A90 +/* 04A684 80049A84 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04A688 80049A88 44810000 */ mtc1 $at, $f0 +/* 04A68C 80049A8C 00000000 */ nop +.L80049A90: +/* 04A690 80049A90 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04A694 80049A94 44814000 */ mtc1 $at, $f8 +/* 04A698 80049A98 3C014218 */ li $at, 0x42180000 # 38.000000 +/* 04A69C 80049A9C 46080003 */ div.s $f0, $f0, $f8 +/* 04A6A0 80049AA0 44815000 */ mtc1 $at, $f10 +/* 04A6A4 80049AA4 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 04A6A8 80049AA8 46025481 */ sub.s $f18, $f10, $f2 +/* 04A6AC 80049AAC 46049182 */ mul.s $f6, $f18, $f4 +/* 04A6B0 80049AB0 00000000 */ nop +/* 04A6B4 80049AB4 46003202 */ mul.s $f8, $f6, $f0 +/* 04A6B8 80049AB8 00000000 */ nop +/* 04A6BC 80049ABC 46104283 */ div.s $f10, $f8, $f16 +/* 04A6C0 80049AC0 460A6480 */ add.s $f18, $f12, $f10 +/* 04A6C4 80049AC4 E6320010 */ swc1 $f18, 0x10($s1) +/* 04A6C8 80049AC8 8D020000 */ lw $v0, ($t0) +/* 04A6CC 80049ACC 00000000 */ nop +/* 04A6D0 80049AD0 18400002 */ blez $v0, .L80049ADC +/* 04A6D4 80049AD4 00026043 */ sra $t4, $v0, 1 +/* 04A6D8 80049AD8 AD0C0000 */ sw $t4, ($t0) +.L80049ADC: +/* 04A6DC 80049ADC 3C014100 */ li $at, 0x41000000 # 8.000000 +.L80049AE0: +/* 04A6E0 80049AE0 44818000 */ mtc1 $at, $f16 +/* 04A6E4 80049AE4 3C018012 */ lui $at, %hi(D_8011D550) # $at, 0x8012 +/* 04A6E8 80049AE8 A420D550 */ sh $zero, %lo(D_8011D550)($at) +/* 04A6EC 80049AEC 3C018012 */ lui $at, %hi(gCurrentCarSteerVel) # $at, 0x8012 +/* 04A6F0 80049AF0 AC20D554 */ sw $zero, %lo(gCurrentCarSteerVel)($at) +/* 04A6F4 80049AF4 3C018012 */ lui $at, %hi(D_8011D558) # $at, 0x8012 +/* 04A6F8 80049AF8 AC20D558 */ sw $zero, %lo(D_8011D558)($at) +/* 04A6FC 80049AFC C624000C */ lwc1 $f4, 0xc($s1) +/* 04A700 80049B00 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 +/* 04A704 80049B04 E7A400E8 */ swc1 $f4, 0xe8($sp) +/* 04A708 80049B08 C6260010 */ lwc1 $f6, 0x10($s1) +/* 04A70C 80049B0C 2508D538 */ addiu $t0, %lo(gCurrentStickY) # addiu $t0, $t0, -0x2ac8 +/* 04A710 80049B10 E7A600E4 */ swc1 $f6, 0xe4($sp) +/* 04A714 80049B14 C6280014 */ lwc1 $f8, 0x14($s1) +/* 04A718 80049B18 3C0E8012 */ lui $t6, %hi(gCurrentStickX) # $t6, 0x8012 +/* 04A71C 80049B1C E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 04A720 80049B20 820D01E0 */ lb $t5, 0x1e0($s0) +/* 04A724 80049B24 00000000 */ nop +/* 04A728 80049B28 11A00004 */ beqz $t5, .L80049B3C +/* 04A72C 80049B2C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04A730 80049B30 44811000 */ mtc1 $at, $f2 +/* 04A734 80049B34 10000003 */ b .L80049B44 +/* 04A738 80049B38 820501E1 */ lb $a1, 0x1e1($s0) +.L80049B3C: +/* 04A73C 80049B3C 46008086 */ mov.s $f2, $f16 +/* 04A740 80049B40 820501E1 */ lb $a1, 0x1e1($s0) +.L80049B44: +/* 04A744 80049B44 8DCED534 */ lw $t6, %lo(gCurrentStickX)($t6) +/* 04A748 80049B48 C7A400FC */ lwc1 $f4, 0xfc($sp) +/* 04A74C 80049B4C 01C51023 */ subu $v0, $t6, $a1 +/* 04A750 80049B50 44825000 */ mtc1 $v0, $f10 +/* 04A754 80049B54 00000000 */ nop +/* 04A758 80049B58 468054A0 */ cvt.s.w $f18, $f10 +/* 04A75C 80049B5C 46049182 */ mul.s $f6, $f18, $f4 +/* 04A760 80049B60 00000000 */ nop +/* 04A764 80049B64 46023203 */ div.s $f8, $f6, $f2 +/* 04A768 80049B68 444FF800 */ cfc1 $t7, $31 +/* 04A76C 80049B6C 00000000 */ nop +/* 04A770 80049B70 35E10003 */ ori $at, $t7, 3 +/* 04A774 80049B74 38210002 */ xori $at, $at, 2 +/* 04A778 80049B78 44C1F800 */ ctc1 $at, $31 +/* 04A77C 80049B7C 00000000 */ nop +/* 04A780 80049B80 460042A4 */ cvt.w.s $f10, $f8 +/* 04A784 80049B84 44045000 */ mfc1 $a0, $f10 +/* 04A788 80049B88 44CFF800 */ ctc1 $t7, $31 +/* 04A78C 80049B8C 10400009 */ beqz $v0, .L80049BB4 +/* 04A790 80049B90 00801825 */ move $v1, $a0 +/* 04A794 80049B94 14800008 */ bnez $a0, .L80049BB8 +/* 04A798 80049B98 00A3C021 */ addu $t8, $a1, $v1 +/* 04A79C 80049B9C 18400002 */ blez $v0, .L80049BA8 +/* 04A7A0 80049BA0 00000000 */ nop +/* 04A7A4 80049BA4 24030001 */ li $v1, 1 +.L80049BA8: +/* 04A7A8 80049BA8 04410003 */ bgez $v0, .L80049BB8 +/* 04A7AC 80049BAC 00A3C021 */ addu $t8, $a1, $v1 +/* 04A7B0 80049BB0 01201825 */ move $v1, $t1 +.L80049BB4: +/* 04A7B4 80049BB4 00A3C021 */ addu $t8, $a1, $v1 +.L80049BB8: +/* 04A7B8 80049BB8 A21801E1 */ sb $t8, 0x1e1($s0) +/* 04A7BC 80049BBC 8D190000 */ lw $t9, ($t0) +/* 04A7C0 80049BC0 820701E8 */ lb $a3, 0x1e8($s0) +/* 04A7C4 80049BC4 C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 04A7C8 80049BC8 03271023 */ subu $v0, $t9, $a3 +/* 04A7CC 80049BCC 44829000 */ mtc1 $v0, $f18 +/* 04A7D0 80049BD0 3C013FB0 */ li $at, 0x3FB00000 # 1.375000 +/* 04A7D4 80049BD4 46809120 */ cvt.s.w $f4, $f18 +/* 04A7D8 80049BD8 44809000 */ mtc1 $zero, $f18 +/* 04A7DC 80049BDC 44819800 */ mtc1 $at, $f19 +/* 04A7E0 80049BE0 46062202 */ mul.s $f8, $f4, $f6 +/* 04A7E4 80049BE4 02002825 */ move $a1, $s0 +/* 04A7E8 80049BE8 460042A1 */ cvt.d.s $f10, $f8 +/* 04A7EC 80049BEC 46325102 */ mul.d $f4, $f10, $f18 +/* 04A7F0 80049BF0 444BF800 */ cfc1 $t3, $31 +/* 04A7F4 80049BF4 00000000 */ nop +/* 04A7F8 80049BF8 35610003 */ ori $at, $t3, 3 +/* 04A7FC 80049BFC 38210002 */ xori $at, $at, 2 +/* 04A800 80049C00 44C1F800 */ ctc1 $at, $31 +/* 04A804 80049C04 00000000 */ nop +/* 04A808 80049C08 462021A4 */ cvt.w.d $f6, $f4 +/* 04A80C 80049C0C 44043000 */ mfc1 $a0, $f6 +/* 04A810 80049C10 44CBF800 */ ctc1 $t3, $31 +/* 04A814 80049C14 10400009 */ beqz $v0, .L80049C3C +/* 04A818 80049C18 00801825 */ move $v1, $a0 +/* 04A81C 80049C1C 14800008 */ bnez $a0, .L80049C40 +/* 04A820 80049C20 00E36021 */ addu $t4, $a3, $v1 +/* 04A824 80049C24 18400002 */ blez $v0, .L80049C30 +/* 04A828 80049C28 00000000 */ nop +/* 04A82C 80049C2C 24030001 */ li $v1, 1 +.L80049C30: +/* 04A830 80049C30 04410003 */ bgez $v0, .L80049C40 +/* 04A834 80049C34 00E36021 */ addu $t4, $a3, $v1 +/* 04A838 80049C38 01201825 */ move $v1, $t1 +.L80049C3C: +/* 04A83C 80049C3C 00E36021 */ addu $t4, $a3, $v1 +.L80049C40: +/* 04A840 80049C40 A20C01E8 */ sb $t4, 0x1e8($s0) +/* 04A844 80049C44 8FA600F8 */ lw $a2, 0xf8($sp) +/* 04A848 80049C48 A3AA00A2 */ sb $t2, 0xa2($sp) +/* 04A84C 80049C4C 0C0157B0 */ jal handle_racer_items +/* 04A850 80049C50 02202025 */ move $a0, $s1 +/* 04A854 80049C54 02202025 */ move $a0, $s1 +/* 04A858 80049C58 0C014D71 */ jal func_800535C4 +/* 04A85C 80049C5C 02002825 */ move $a1, $s0 +/* 04A860 80049C60 02202025 */ move $a0, $s1 +/* 04A864 80049C64 0C013050 */ jal func_8004C140 +/* 04A868 80049C68 02002825 */ move $a1, $s0 +/* 04A86C 80049C6C 3C0D8012 */ lui $t5, %hi(gCurrentPlayerIndex) # $t5, 0x8012 +/* 04A870 80049C70 8DADD55C */ lw $t5, %lo(gCurrentPlayerIndex)($t5) +/* 04A874 80049C74 2401FFFF */ li $at, -1 +/* 04A878 80049C78 11A10007 */ beq $t5, $at, .L80049C98 +/* 04A87C 80049C7C 00000000 */ nop +/* 04A880 80049C80 8FA600F8 */ lw $a2, 0xf8($sp) +/* 04A884 80049C84 02202025 */ move $a0, $s1 +/* 04A888 80049C88 0C014871 */ jal func_800521C4 +/* 04A88C 80049C8C 02002825 */ move $a1, $s0 +/* 04A890 80049C90 10000003 */ b .L80049CA0 +/* 04A894 80049C94 00000000 */ nop +.L80049C98: +/* 04A898 80049C98 0C0148D3 */ jal func_8005234C +/* 04A89C 80049C9C 02002025 */ move $a0, $s0 +.L80049CA0: +/* 04A8A0 80049CA0 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 +/* 04A8A4 80049CA4 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) +/* 04A8A8 80049CA8 3C198012 */ lui $t9, %hi(gCurrentRacerInput) # $t9, 0x8012 +/* 04A8AC 80049CAC 31CF8000 */ andi $t7, $t6, 0x8000 +/* 04A8B0 80049CB0 11E00019 */ beqz $t7, .L80049D18 +/* 04A8B4 80049CB4 3C01800E */ lui $at, %hi(D_800E64B8 + 4) # $at, 0x800e +/* 04A8B8 80049CB8 C7A800FC */ lwc1 $f8, 0xfc($sp) +/* 04A8BC 80049CBC C42564B8 */ lwc1 $f5, %lo(D_800E64B8)($at) +/* 04A8C0 80049CC0 C42464BC */ lwc1 $f4, %lo(D_800E64B8 + 4)($at) +/* 04A8C4 80049CC4 46004021 */ cvt.d.s $f0, $f8 +/* 04A8C8 80049CC8 46240182 */ mul.d $f6, $f0, $f4 +/* 04A8CC 80049CCC C60A00B4 */ lwc1 $f10, 0xb4($s0) +/* 04A8D0 80049CD0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04A8D4 80049CD4 460054A1 */ cvt.d.s $f18, $f10 +/* 04A8D8 80049CD8 44812800 */ mtc1 $at, $f5 +/* 04A8DC 80049CDC 46269200 */ add.d $f8, $f18, $f6 +/* 04A8E0 80049CE0 44802000 */ mtc1 $zero, $f4 +/* 04A8E4 80049CE4 462042A0 */ cvt.s.d $f10, $f8 +/* 04A8E8 80049CE8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04A8EC 80049CEC E60A00B4 */ swc1 $f10, 0xb4($s0) +/* 04A8F0 80049CF0 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 04A8F4 80049CF4 00000000 */ nop +/* 04A8F8 80049CF8 460091A1 */ cvt.d.s $f6, $f18 +/* 04A8FC 80049CFC 4626203C */ c.lt.d $f4, $f6 +/* 04A900 80049D00 00000000 */ nop +/* 04A904 80049D04 4500001A */ bc1f .L80049D70 +/* 04A908 80049D08 00000000 */ nop +/* 04A90C 80049D0C 44814000 */ mtc1 $at, $f8 +/* 04A910 80049D10 10000017 */ b .L80049D70 +/* 04A914 80049D14 E60800B4 */ swc1 $f8, 0xb4($s0) +.L80049D18: +/* 04A918 80049D18 3C01800E */ lui $at, %hi(D_800E64C0 + 4) # $at, 0x800e +/* 04A91C 80049D1C C7AA00FC */ lwc1 $f10, 0xfc($sp) +/* 04A920 80049D20 C42764C0 */ lwc1 $f7, %lo(D_800E64C0)($at) +/* 04A924 80049D24 C42664C4 */ lwc1 $f6, %lo(D_800E64C0 + 4)($at) +/* 04A928 80049D28 46005021 */ cvt.d.s $f0, $f10 +/* 04A92C 80049D2C 46260202 */ mul.d $f8, $f0, $f6 +/* 04A930 80049D30 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 04A934 80049D34 00000000 */ nop +/* 04A938 80049D38 46009121 */ cvt.d.s $f4, $f18 +/* 04A93C 80049D3C 46282281 */ sub.d $f10, $f4, $f8 +/* 04A940 80049D40 44802000 */ mtc1 $zero, $f4 +/* 04A944 80049D44 462054A0 */ cvt.s.d $f18, $f10 +/* 04A948 80049D48 E61200B4 */ swc1 $f18, 0xb4($s0) +/* 04A94C 80049D4C C60600B4 */ lwc1 $f6, 0xb4($s0) +/* 04A950 80049D50 00000000 */ nop +/* 04A954 80049D54 4604303C */ c.lt.s $f6, $f4 +/* 04A958 80049D58 00000000 */ nop +/* 04A95C 80049D5C 45000004 */ bc1f .L80049D70 +/* 04A960 80049D60 00000000 */ nop +/* 04A964 80049D64 44804000 */ mtc1 $zero, $f8 +/* 04A968 80049D68 00000000 */ nop +/* 04A96C 80049D6C E60800B4 */ swc1 $f8, 0xb4($s0) +.L80049D70: +/* 04A970 80049D70 8E180108 */ lw $t8, 0x108($s0) +/* 04A974 80049D74 00000000 */ nop +/* 04A978 80049D78 13000004 */ beqz $t8, .L80049D8C +/* 04A97C 80049D7C 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 04A980 80049D80 44815000 */ mtc1 $at, $f10 +/* 04A984 80049D84 00000000 */ nop +/* 04A988 80049D88 E60A00B4 */ swc1 $f10, 0xb4($s0) +.L80049D8C: +/* 04A98C 80049D8C 8F39D528 */ lw $t9, %lo(gCurrentRacerInput)($t9) +/* 04A990 80049D90 C61200B4 */ lwc1 $f18, 0xb4($s0) +/* 04A994 80049D94 332B4000 */ andi $t3, $t9, 0x4000 +/* 04A998 80049D98 11600038 */ beqz $t3, .L80049E7C +/* 04A99C 80049D9C E7B200C8 */ swc1 $f18, 0xc8($sp) +/* 04A9A0 80049DA0 3C0C8012 */ lui $t4, %hi(gCurrentStickY) # $t4, 0x8012 +/* 04A9A4 80049DA4 8D8CD538 */ lw $t4, %lo(gCurrentStickY)($t4) +/* 04A9A8 80049DA8 00000000 */ nop +/* 04A9AC 80049DAC 2981FFD8 */ slti $at, $t4, -0x28 +/* 04A9B0 80049DB0 14200007 */ bnez $at, .L80049DD0 +/* 04A9B4 80049DB4 00000000 */ nop +/* 04A9B8 80049DB8 44806000 */ mtc1 $zero, $f12 +/* 04A9BC 80049DBC C606002C */ lwc1 $f6, 0x2c($s0) +/* 04A9C0 80049DC0 00000000 */ nop +/* 04A9C4 80049DC4 460C303C */ c.lt.s $f6, $f12 +/* 04A9C8 80049DC8 00000000 */ nop +/* 04A9CC 80049DCC 4500002B */ bc1f .L80049E7C +.L80049DD0: +/* 04A9D0 80049DD0 3C01800E */ lui $at, %hi(D_800E64C8 + 4) # $at, 0x800e +/* 04A9D4 80049DD4 C42B64C8 */ lwc1 $f11, %lo(D_800E64C8)($at) +/* 04A9D8 80049DD8 C42A64CC */ lwc1 $f10, %lo(D_800E64C8 + 4)($at) +/* 04A9DC 80049DDC C60400B8 */ lwc1 $f4, 0xb8($s0) +/* 04A9E0 80049DE0 462A0482 */ mul.d $f18, $f0, $f10 +/* 04A9E4 80049DE4 46002221 */ cvt.d.s $f8, $f4 +/* 04A9E8 80049DE8 3C01800E */ lui $at, %hi(D_800E64D0) # $at, 0x800e +/* 04A9EC 80049DEC 44806000 */ mtc1 $zero, $f12 +/* 04A9F0 80049DF0 46324180 */ add.d $f6, $f8, $f18 +/* 04A9F4 80049DF4 46203120 */ cvt.s.d $f4, $f6 +/* 04A9F8 80049DF8 E60400B8 */ swc1 $f4, 0xb8($s0) +/* 04A9FC 80049DFC C60800B8 */ lwc1 $f8, 0xb8($s0) +/* 04AA00 80049E00 C42A64D4 */ lwc1 $f10, %lo(D_800E64D0 + 4)($at) +/* 04AA04 80049E04 C42B64D0 */ lwc1 $f11, %lo(D_800E64D0)($at) +/* 04AA08 80049E08 460044A1 */ cvt.d.s $f18, $f8 +/* 04AA0C 80049E0C 4632503C */ c.lt.d $f10, $f18 +/* 04AA10 80049E10 44805000 */ mtc1 $zero, $f10 +/* 04AA14 80049E14 45000004 */ bc1f .L80049E28 +/* 04AA18 80049E18 3C01800E */ lui $at, %hi(D_800E64D8) # $at, 0x800e +/* 04AA1C 80049E1C C42664D8 */ lwc1 $f6, %lo(D_800E64D8)($at) +/* 04AA20 80049E20 00000000 */ nop +/* 04AA24 80049E24 E60600B8 */ swc1 $f6, 0xb8($s0) +.L80049E28: +/* 04AA28 80049E28 C604002C */ lwc1 $f4, 0x2c($s0) +/* 04AA2C 80049E2C 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 04AA30 80049E30 44815800 */ mtc1 $at, $f11 +/* 04AA34 80049E34 46002221 */ cvt.d.s $f8, $f4 +/* 04AA38 80049E38 462A403C */ c.lt.d $f8, $f10 +/* 04AA3C 80049E3C 00000000 */ nop +/* 04AA40 80049E40 4500000B */ bc1f .L80049E70 +/* 04AA44 80049E44 00000000 */ nop +/* 04AA48 80049E48 820D01E2 */ lb $t5, 0x1e2($s0) +/* 04AA4C 80049E4C 00000000 */ nop +/* 04AA50 80049E50 29A10002 */ slti $at, $t5, 2 +/* 04AA54 80049E54 14200006 */ bnez $at, .L80049E70 +/* 04AA58 80049E58 00000000 */ nop +/* 04AA5C 80049E5C 86040000 */ lh $a0, ($s0) +/* 04AA60 80049E60 0C01C8D2 */ jal func_80072348 +/* 04AA64 80049E64 24050003 */ li $a1, 3 +/* 04AA68 80049E68 44806000 */ mtc1 $zero, $f12 +/* 04AA6C 80049E6C 00000000 */ nop +.L80049E70: +/* 04AA70 80049E70 C60200B8 */ lwc1 $f2, 0xb8($s0) +/* 04AA74 80049E74 10000015 */ b .L80049ECC +/* 04AA78 80049E78 E7A200C4 */ swc1 $f2, 0xc4($sp) +.L80049E7C: +/* 04AA7C 80049E7C 3C01800E */ lui $at, %hi(D_800E64E0 + 4) # $at, 0x800e +/* 04AA80 80049E80 C42564E0 */ lwc1 $f5, %lo(D_800E64E0)($at) +/* 04AA84 80049E84 C42464E4 */ lwc1 $f4, %lo(D_800E64E0 + 4)($at) +/* 04AA88 80049E88 C61200B8 */ lwc1 $f18, 0xb8($s0) +/* 04AA8C 80049E8C 46240202 */ mul.d $f8, $f0, $f4 +/* 04AA90 80049E90 460091A1 */ cvt.d.s $f6, $f18 +/* 04AA94 80049E94 44806000 */ mtc1 $zero, $f12 +/* 04AA98 80049E98 46283281 */ sub.d $f10, $f6, $f8 +/* 04AA9C 80049E9C 462054A0 */ cvt.s.d $f18, $f10 +/* 04AAA0 80049EA0 E61200B8 */ swc1 $f18, 0xb8($s0) +/* 04AAA4 80049EA4 C60200B8 */ lwc1 $f2, 0xb8($s0) +/* 04AAA8 80049EA8 00000000 */ nop +/* 04AAAC 80049EAC 460C103C */ c.lt.s $f2, $f12 +/* 04AAB0 80049EB0 00000000 */ nop +/* 04AAB4 80049EB4 45000004 */ bc1f .L80049EC8 +/* 04AAB8 80049EB8 00000000 */ nop +/* 04AABC 80049EBC E60C00B8 */ swc1 $f12, 0xb8($s0) +/* 04AAC0 80049EC0 C60200B8 */ lwc1 $f2, 0xb8($s0) +/* 04AAC4 80049EC4 00000000 */ nop +.L80049EC8: +/* 04AAC8 80049EC8 E7A200C4 */ swc1 $f2, 0xc4($sp) +.L80049ECC: +/* 04AACC 80049ECC 862E0000 */ lh $t6, ($s1) +/* 04AAD0 80049ED0 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 +/* 04AAD4 80049ED4 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 +/* 04AAD8 80049ED8 A4AE0000 */ sh $t6, ($a1) +/* 04AADC 80049EDC 862F0002 */ lh $t7, 2($s1) +/* 04AAE0 80049EE0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04AAE4 80049EE4 44812000 */ mtc1 $at, $f4 +/* 04AAE8 80049EE8 A4A00004 */ sh $zero, 4($a1) +/* 04AAEC 80049EEC E4AC000C */ swc1 $f12, 0xc($a1) +/* 04AAF0 80049EF0 E4AC0010 */ swc1 $f12, 0x10($a1) +/* 04AAF4 80049EF4 E4AC0014 */ swc1 $f12, 0x14($a1) +/* 04AAF8 80049EF8 27A40060 */ addiu $a0, $sp, 0x60 +/* 04AAFC 80049EFC A4AF0002 */ sh $t7, 2($a1) +/* 04AB00 80049F00 0C01BF0C */ jal object_transform_to_matrix +/* 04AB04 80049F04 E4A40008 */ swc1 $f4, 8($a1) +/* 04AB08 80049F08 44800000 */ mtc1 $zero, $f0 +/* 04AB0C 80049F0C 26180038 */ addiu $t8, $s0, 0x38 +/* 04AB10 80049F10 2619003C */ addiu $t9, $s0, 0x3c +/* 04AB14 80049F14 260B0040 */ addiu $t3, $s0, 0x40 +/* 04AB18 80049F18 44050000 */ mfc1 $a1, $f0 +/* 04AB1C 80049F1C 44060000 */ mfc1 $a2, $f0 +/* 04AB20 80049F20 AFAB0018 */ sw $t3, 0x18($sp) +/* 04AB24 80049F24 AFB90014 */ sw $t9, 0x14($sp) +/* 04AB28 80049F28 AFB80010 */ sw $t8, 0x10($sp) +/* 04AB2C 80049F2C 27A40060 */ addiu $a0, $sp, 0x60 +/* 04AB30 80049F30 0C01BD93 */ jal guMtxXFMF +/* 04AB34 80049F34 3C073F80 */ lui $a3, 0x3f80 +/* 04AB38 80049F38 44800000 */ mtc1 $zero, $f0 +/* 04AB3C 80049F3C 260C0050 */ addiu $t4, $s0, 0x50 +/* 04AB40 80049F40 260D0054 */ addiu $t5, $s0, 0x54 +/* 04AB44 80049F44 260E0058 */ addiu $t6, $s0, 0x58 +/* 04AB48 80049F48 44060000 */ mfc1 $a2, $f0 +/* 04AB4C 80049F4C 44070000 */ mfc1 $a3, $f0 +/* 04AB50 80049F50 AFAE0018 */ sw $t6, 0x18($sp) +/* 04AB54 80049F54 AFAD0014 */ sw $t5, 0x14($sp) +/* 04AB58 80049F58 AFAC0010 */ sw $t4, 0x10($sp) +/* 04AB5C 80049F5C 27A40060 */ addiu $a0, $sp, 0x60 +/* 04AB60 80049F60 0C01BD93 */ jal guMtxXFMF +/* 04AB64 80049F64 3C053F80 */ lui $a1, 0x3f80 +/* 04AB68 80049F68 44800000 */ mtc1 $zero, $f0 +/* 04AB6C 80049F6C 260F0044 */ addiu $t7, $s0, 0x44 +/* 04AB70 80049F70 26180048 */ addiu $t8, $s0, 0x48 +/* 04AB74 80049F74 2619004C */ addiu $t9, $s0, 0x4c +/* 04AB78 80049F78 44050000 */ mfc1 $a1, $f0 +/* 04AB7C 80049F7C 44070000 */ mfc1 $a3, $f0 +/* 04AB80 80049F80 AFB90018 */ sw $t9, 0x18($sp) +/* 04AB84 80049F84 AFB80014 */ sw $t8, 0x14($sp) +/* 04AB88 80049F88 AFAF0010 */ sw $t7, 0x10($sp) +/* 04AB8C 80049F8C 27A40060 */ addiu $a0, $sp, 0x60 +/* 04AB90 80049F90 0C01BD93 */ jal guMtxXFMF +/* 04AB94 80049F94 3C063F80 */ lui $a2, 0x3f80 +/* 04AB98 80049F98 8E0B0148 */ lw $t3, 0x148($s0) +/* 04AB9C 80049F9C 00000000 */ nop +/* 04ABA0 80049FA0 15600005 */ bnez $t3, .L80049FB8 +/* 04ABA4 80049FA4 00000000 */ nop +/* 04ABA8 80049FA8 8FA400F8 */ lw $a0, 0xf8($sp) +/* 04ABAC 80049FAC 02202825 */ move $a1, $s1 +/* 04ABB0 80049FB0 0C013028 */ jal func_8004C0A0 +/* 04ABB4 80049FB4 02003025 */ move $a2, $s0 +.L80049FB8: +/* 04ABB8 80049FB8 86020000 */ lh $v0, ($s0) +/* 04ABBC 80049FBC 2403FFFF */ li $v1, -1 +/* 04ABC0 80049FC0 14620008 */ bne $v1, $v0, .L80049FE4 +/* 04ABC4 80049FC4 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 +/* 04ABC8 80049FC8 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) +/* 04ABCC 80049FCC 3C01800E */ lui $at, %hi(D_800E64E8) # $at, 0x800e +/* 04ABD0 80049FD0 106C0004 */ beq $v1, $t4, .L80049FE4 +/* 04ABD4 80049FD4 00000000 */ nop +/* 04ABD8 80049FD8 C42664E8 */ lwc1 $f6, %lo(D_800E64E8)($at) +/* 04ABDC 80049FDC 3C018012 */ lui $at, %hi(gCurrentRacerHandlingStat) # $at, 0x8012 +/* 04ABE0 80049FE0 E426D570 */ swc1 $f6, %lo(gCurrentRacerHandlingStat)($at) +.L80049FE4: +/* 04ABE4 80049FE4 C620001C */ lwc1 $f0, 0x1c($s1) +/* 04ABE8 80049FE8 C6220024 */ lwc1 $f2, 0x24($s1) +/* 04ABEC 80049FEC 46000202 */ mul.s $f8, $f0, $f0 +/* 04ABF0 80049FF0 C62E0020 */ lwc1 $f14, 0x20($s1) +/* 04ABF4 80049FF4 46021282 */ mul.s $f10, $f2, $f2 +/* 04ABF8 80049FF8 00000000 */ nop +/* 04ABFC 80049FFC 460E7102 */ mul.s $f4, $f14, $f14 +/* 04AC00 8004A000 460A4480 */ add.s $f18, $f8, $f10 +/* 04AC04 8004A004 0C0326B4 */ jal sqrtf +/* 04AC08 8004A008 46049300 */ add.s $f12, $f18, $f4 +/* 04AC0C 8004A00C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04AC10 8004A010 44817800 */ mtc1 $at, $f15 +/* 04AC14 8004A014 44807000 */ mtc1 $zero, $f14 +/* 04AC18 8004A018 460001A1 */ cvt.d.s $f6, $f0 +/* 04AC1C 8004A01C 820D01D6 */ lb $t5, 0x1d6($s0) +/* 04AC20 8004A020 462E3201 */ sub.d $f8, $f6, $f14 +/* 04AC24 8004A024 29A10005 */ slti $at, $t5, 5 +/* 04AC28 8004A028 462040A0 */ cvt.s.d $f2, $f8 +/* 04AC2C 8004A02C 14200009 */ bnez $at, .L8004A054 +/* 04AC30 8004A030 46001506 */ mov.s $f20, $f2 +/* 04AC34 8004A034 460012A1 */ cvt.d.s $f10, $f2 +/* 04AC38 8004A038 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 04AC3C 8004A03C 44812800 */ mtc1 $at, $f5 +/* 04AC40 8004A040 462E5481 */ sub.d $f18, $f10, $f14 +/* 04AC44 8004A044 44802000 */ mtc1 $zero, $f4 +/* 04AC48 8004A048 00000000 */ nop +/* 04AC4C 8004A04C 46249182 */ mul.d $f6, $f18, $f4 +/* 04AC50 8004A050 46203520 */ cvt.s.d $f20, $f6 +.L8004A054: +/* 04AC54 8004A054 44806000 */ mtc1 $zero, $f12 +/* 04AC58 8004A058 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 04AC5C 8004A05C 460CA03C */ c.lt.s $f20, $f12 +/* 04AC60 8004A060 44814800 */ mtc1 $at, $f9 +/* 04AC64 8004A064 45000002 */ bc1f .L8004A070 +/* 04AC68 8004A068 3C0B8012 */ lui $t3, %hi(gCurrentRacerMiscAssetPtr) # $t3, 0x8012 +/* 04AC6C 8004A06C 46006506 */ mov.s $f20, $f12 +.L8004A070: +/* 04AC70 8004A070 44804000 */ mtc1 $zero, $f8 +/* 04AC74 8004A074 4600A021 */ cvt.d.s $f0, $f20 +/* 04AC78 8004A078 4620403C */ c.lt.d $f8, $f0 +/* 04AC7C 8004A07C 44805000 */ mtc1 $zero, $f10 +/* 04AC80 8004A080 45000004 */ bc1f .L8004A094 +/* 04AC84 8004A084 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04AC88 8004A088 4481A000 */ mtc1 $at, $f20 +/* 04AC8C 8004A08C 00000000 */ nop +/* 04AC90 8004A090 4600A021 */ cvt.d.s $f0, $f20 +.L8004A094: +/* 04AC94 8004A094 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04AC98 8004A098 44815800 */ mtc1 $at, $f11 +/* 04AC9C 8004A09C 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 +/* 04ACA0 8004A0A0 44819800 */ mtc1 $at, $f19 +/* 04ACA4 8004A0A4 44809000 */ mtc1 $zero, $f18 +/* 04ACA8 8004A0A8 3C018012 */ lui $at, %hi(gCurrentCourseHeight) # $at, 0x8012 +/* 04ACAC 8004A0AC 46320102 */ mul.d $f4, $f0, $f18 +/* 04ACB0 8004A0B0 C428D4F0 */ lwc1 $f8, %lo(gCurrentCourseHeight)($at) +/* 04ACB4 8004A0B4 3C014049 */ li $at, 0x40490000 # 3.140625 +/* 04ACB8 8004A0B8 A3A000A3 */ sb $zero, 0xa3($sp) +/* 04ACBC 8004A0BC 820201E0 */ lb $v0, 0x1e0($s0) +/* 04ACC0 8004A0C0 46245181 */ sub.d $f6, $f10, $f4 +/* 04ACC4 8004A0C4 44805000 */ mtc1 $zero, $f10 +/* 04ACC8 8004A0C8 44815800 */ mtc1 $at, $f11 +/* 04ACCC 8004A0CC 46203520 */ cvt.s.d $f20, $f6 +/* 04ACD0 8004A0D0 C6260010 */ lwc1 $f6, 0x10($s1) +/* 04ACD4 8004A0D4 460044A1 */ cvt.d.s $f18, $f8 +/* 04ACD8 8004A0D8 462A9101 */ sub.d $f4, $f18, $f10 +/* 04ACDC 8004A0DC 28410002 */ slti $at, $v0, 2 +/* 04ACE0 8004A0E0 46003221 */ cvt.d.s $f8, $f6 +/* 04ACE4 8004A0E4 46282481 */ sub.d $f18, $f4, $f8 +/* 04ACE8 8004A0E8 10200023 */ beqz $at, .L8004A178 +/* 04ACEC 8004A0EC 462090A0 */ cvt.s.d $f2, $f18 +/* 04ACF0 8004A0F0 2841FFFF */ slti $at, $v0, -1 +/* 04ACF4 8004A0F4 14200020 */ bnez $at, .L8004A178 +/* 04ACF8 8004A0F8 00000000 */ nop +/* 04ACFC 8004A0FC 460C103C */ c.lt.s $f2, $f12 +/* 04AD00 8004A100 3C014039 */ li $at, 0x40390000 # 2.890625 +/* 04AD04 8004A104 4500001C */ bc1f .L8004A178 +/* 04AD08 8004A108 24180001 */ li $t8, 1 +/* 04AD0C 8004A10C 44812800 */ mtc1 $at, $f5 +/* 04AD10 8004A110 44802000 */ mtc1 $zero, $f4 +/* 04AD14 8004A114 46001287 */ neg.s $f10, $f2 +/* 04AD18 8004A118 460051A1 */ cvt.d.s $f6, $f10 +/* 04AD1C 8004A11C 00000000 */ nop +/* 04AD20 8004A120 46243203 */ div.d $f8, $f6, $f4 +/* 04AD24 8004A124 3C098012 */ lui $t1, %hi(gCurrentStickY) # $t1, 0x8012 +/* 04AD28 8004A128 2529D538 */ addiu $t1, %lo(gCurrentStickY) # addiu $t1, $t1, -0x2ac8 +/* 04AD2C 8004A12C 8D2E0000 */ lw $t6, ($t1) +/* 04AD30 8004A130 4600A4A1 */ cvt.d.s $f18, $f20 +/* 04AD34 8004A134 44803000 */ mtc1 $zero, $f6 +/* 04AD38 8004A138 29C1FFEC */ slti $at, $t6, -0x14 +/* 04AD3C 8004A13C 240FFFEC */ li $t7, -20 +/* 04AD40 8004A140 46289280 */ add.d $f10, $f18, $f8 +/* 04AD44 8004A144 10200002 */ beqz $at, .L8004A150 +/* 04AD48 8004A148 46205520 */ cvt.s.d $f20, $f10 +/* 04AD4C 8004A14C AD2F0000 */ sw $t7, ($t1) +.L8004A150: +/* 04AD50 8004A150 3C014004 */ li $at, 0x40040000 # 2.062500 +/* 04AD54 8004A154 44813800 */ mtc1 $at, $f7 +/* 04AD58 8004A158 4600A121 */ cvt.d.s $f4, $f20 +/* 04AD5C 8004A15C 4624303C */ c.lt.d $f6, $f4 +/* 04AD60 8004A160 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 04AD64 8004A164 45000003 */ bc1f .L8004A174 +/* 04AD68 8004A168 00000000 */ nop +/* 04AD6C 8004A16C 4481A000 */ mtc1 $at, $f20 +/* 04AD70 8004A170 00000000 */ nop +.L8004A174: +/* 04AD74 8004A174 A3B800A3 */ sb $t8, 0xa3($sp) +.L8004A178: +/* 04AD78 8004A178 C602002C */ lwc1 $f2, 0x2c($s0) +/* 04AD7C 8004A17C 44809000 */ mtc1 $zero, $f18 +/* 04AD80 8004A180 3C098012 */ lui $t1, %hi(gCurrentStickY) # $t1, 0x8012 +/* 04AD84 8004A184 4612103C */ c.lt.s $f2, $f18 +/* 04AD88 8004A188 2529D538 */ addiu $t1, %lo(gCurrentStickY) # addiu $t1, $t1, -0x2ac8 +/* 04AD8C 8004A18C 45000002 */ bc1f .L8004A198 +/* 04AD90 8004A190 46001386 */ mov.s $f14, $f2 +/* 04AD94 8004A194 46007387 */ neg.s $f14, $f14 +.L8004A198: +/* 04AD98 8004A198 44804000 */ mtc1 $zero, $f8 +/* 04AD9C 8004A19C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04ADA0 8004A1A0 4608103C */ c.lt.s $f2, $f8 +/* 04ADA4 8004A1A4 44815000 */ mtc1 $at, $f10 +/* 04ADA8 8004A1A8 45000002 */ bc1f .L8004A1B4 +/* 04ADAC 8004A1AC 46001006 */ mov.s $f0, $f2 +/* 04ADB0 8004A1B0 46001007 */ neg.s $f0, $f2 +.L8004A1B4: +/* 04ADB4 8004A1B4 460A0180 */ add.s $f6, $f0, $f10 +/* 04ADB8 8004A1B8 460E303C */ c.lt.s $f6, $f14 +/* 04ADBC 8004A1BC 00000000 */ nop +/* 04ADC0 8004A1C0 45000004 */ bc1f .L8004A1D4 +/* 04ADC4 8004A1C4 3C014040 */ li $at, 0x40400000 # 3.000000 +/* 04ADC8 8004A1C8 44812000 */ mtc1 $at, $f4 +/* 04ADCC 8004A1CC 00000000 */ nop +/* 04ADD0 8004A1D0 46040380 */ add.s $f14, $f0, $f4 +.L8004A1D4: +/* 04ADD4 8004A1D4 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 04ADD8 8004A1D8 44810000 */ mtc1 $at, $f0 +/* 04ADDC 8004A1DC 3C01800E */ lui $at, %hi(D_800E64EC) # $at, 0x800e +/* 04ADE0 8004A1E0 460E003C */ c.lt.s $f0, $f14 +/* 04ADE4 8004A1E4 00000000 */ nop +/* 04ADE8 8004A1E8 45000002 */ bc1f .L8004A1F4 +/* 04ADEC 8004A1EC 00000000 */ nop +/* 04ADF0 8004A1F0 46000386 */ mov.s $f14, $f0 +.L8004A1F4: +/* 04ADF4 8004A1F4 C42264EC */ lwc1 $f2, %lo(D_800E64EC)($at) +/* 04ADF8 8004A1F8 3C01800E */ lui $at, %hi(D_800E64F0) # $at, 0x800e +/* 04ADFC 8004A1FC C42C64F0 */ lwc1 $f12, %lo(D_800E64F0)($at) +/* 04AE00 8004A200 4459F800 */ cfc1 $t9, $31 +/* 04AE04 8004A204 3C01800E */ lui $at, %hi(D_800E64F4) # $at, 0x800e +/* 04AE08 8004A208 C43064F4 */ lwc1 $f16, %lo(D_800E64F4)($at) +/* 04AE0C 8004A20C 37210003 */ ori $at, $t9, 3 +/* 04AE10 8004A210 38210002 */ xori $at, $at, 2 +/* 04AE14 8004A214 44C1F800 */ ctc1 $at, $31 +/* 04AE18 8004A218 8D6BD564 */ lw $t3, %lo(gCurrentRacerMiscAssetPtr)($t3) +/* 04AE1C 8004A21C 460074A4 */ cvt.w.s $f18, $f14 +/* 04AE20 8004A220 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04AE24 8004A224 44029000 */ mfc1 $v0, $f18 +/* 04AE28 8004A228 44D9F800 */ ctc1 $t9, $31 +/* 04AE2C 8004A22C 44824000 */ mtc1 $v0, $f8 +/* 04AE30 8004A230 00026080 */ sll $t4, $v0, 2 +/* 04AE34 8004A234 468042A0 */ cvt.s.w $f10, $f8 +/* 04AE38 8004A238 44813800 */ mtc1 $at, $f7 +/* 04AE3C 8004A23C 44803000 */ mtc1 $zero, $f6 +/* 04AE40 8004A240 460A7001 */ sub.s $f0, $f14, $f10 +/* 04AE44 8004A244 016C1821 */ addu $v1, $t3, $t4 +/* 04AE48 8004A248 C4680000 */ lwc1 $f8, ($v1) +/* 04AE4C 8004A24C 46000121 */ cvt.d.s $f4, $f0 +/* 04AE50 8004A250 46243481 */ sub.d $f18, $f6, $f4 +/* 04AE54 8004A254 C4640004 */ lwc1 $f4, 4($v1) +/* 04AE58 8004A258 460042A1 */ cvt.d.s $f10, $f8 +/* 04AE5C 8004A25C 46325182 */ mul.d $f6, $f10, $f18 +/* 04AE60 8004A260 E7A200D4 */ swc1 $f2, 0xd4($sp) +/* 04AE64 8004A264 E7AC00D0 */ swc1 $f12, 0xd0($sp) +/* 04AE68 8004A268 E7B000D8 */ swc1 $f16, 0xd8($sp) +/* 04AE6C 8004A26C 820D01E2 */ lb $t5, 0x1e2($s0) +/* 04AE70 8004A270 46002202 */ mul.s $f8, $f4, $f0 +/* 04AE74 8004A274 460042A1 */ cvt.d.s $f10, $f8 +/* 04AE78 8004A278 462A3480 */ add.d $f18, $f6, $f10 +/* 04AE7C 8004A27C 11A000A0 */ beqz $t5, .L8004A500 +/* 04AE80 8004A280 462093A0 */ cvt.s.d $f14, $f18 +/* 04AE84 8004A284 E7AC00D4 */ swc1 $f12, 0xd4($sp) +/* 04AE88 8004A288 E7A200D0 */ swc1 $f2, 0xd0($sp) +/* 04AE8C 8004A28C 00002825 */ move $a1, $zero +/* 04AE90 8004A290 00004025 */ move $t0, $zero +/* 04AE94 8004A294 4600A021 */ cvt.d.s $f0, $f20 +/* 04AE98 8004A298 02001825 */ move $v1, $s0 +/* 04AE9C 8004A29C 24060004 */ li $a2, 4 +/* 04AEA0 8004A2A0 240400FF */ li $a0, 255 +.L8004A2A4: +/* 04AEA4 8004A2A4 906201DC */ lbu $v0, 0x1dc($v1) +/* 04AEA8 8004A2A8 25080001 */ addiu $t0, $t0, 1 +/* 04AEAC 8004A2AC 10820004 */ beq $a0, $v0, .L8004A2C0 +/* 04AEB0 8004A2B0 00A2082A */ slt $at, $a1, $v0 +/* 04AEB4 8004A2B4 10200002 */ beqz $at, .L8004A2C0 +/* 04AEB8 8004A2B8 00000000 */ nop +/* 04AEBC 8004A2BC 00402825 */ move $a1, $v0 +.L8004A2C0: +/* 04AEC0 8004A2C0 1506FFF8 */ bne $t0, $a2, .L8004A2A4 +/* 04AEC4 8004A2C4 24630001 */ addiu $v1, $v1, 1 +/* 04AEC8 8004A2C8 14A60002 */ bne $a1, $a2, .L8004A2D4 +/* 04AECC 8004A2CC 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 +/* 04AED0 8004A2D0 A2000175 */ sb $zero, 0x175($s0) +.L8004A2D4: +/* 04AED4 8004A2D4 860E0000 */ lh $t6, ($s0) +/* 04AED8 8004A2D8 2401000C */ li $at, 12 +/* 04AEDC 8004A2DC 15C00009 */ bnez $t6, .L8004A304 +/* 04AEE0 8004A2E0 00000000 */ nop +/* 04AEE4 8004A2E4 14A10007 */ bne $a1, $at, .L8004A304 +/* 04AEE8 8004A2E8 3C0F8012 */ lui $t7, %hi(gCurrentButtonsPressed) # $t7, 0x8012 +/* 04AEEC 8004A2EC 8DEFD52C */ lw $t7, %lo(gCurrentButtonsPressed)($t7) +/* 04AEF0 8004A2F0 24190002 */ li $t9, 2 +/* 04AEF4 8004A2F4 31F82000 */ andi $t8, $t7, 0x2000 +/* 04AEF8 8004A2F8 13000002 */ beqz $t8, .L8004A304 +/* 04AEFC 8004A2FC 3C018012 */ lui $at, %hi(D_8011D582) # $at, 0x8012 +/* 04AF00 8004A300 A039D582 */ sb $t9, %lo(D_8011D582)($at) +.L8004A304: +/* 04AF04 8004A304 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) +/* 04AF08 8004A308 00000000 */ nop +/* 04AF0C 8004A30C 316C4000 */ andi $t4, $t3, 0x4000 +/* 04AF10 8004A310 11800013 */ beqz $t4, .L8004A360 +/* 04AF14 8004A314 00000000 */ nop +/* 04AF18 8004A318 8D2D0000 */ lw $t5, ($t1) +/* 04AF1C 8004A31C 00000000 */ nop +/* 04AF20 8004A320 29A1FFD8 */ slti $at, $t5, -0x28 +/* 04AF24 8004A324 1420000E */ bnez $at, .L8004A360 +/* 04AF28 8004A328 00000000 */ nop +/* 04AF2C 8004A32C C604002C */ lwc1 $f4, 0x2c($s0) +/* 04AF30 8004A330 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 04AF34 8004A334 44813800 */ mtc1 $at, $f7 +/* 04AF38 8004A338 44803000 */ mtc1 $zero, $f6 +/* 04AF3C 8004A33C 46002221 */ cvt.d.s $f8, $f4 +/* 04AF40 8004A340 4628303E */ c.le.d $f6, $f8 +/* 04AF44 8004A344 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 04AF48 8004A348 45000005 */ bc1f .L8004A360 +/* 04AF4C 8004A34C 00000000 */ nop +/* 04AF50 8004A350 44815000 */ mtc1 $at, $f10 +/* 04AF54 8004A354 00000000 */ nop +/* 04AF58 8004A358 460A8482 */ mul.s $f18, $f16, $f10 +/* 04AF5C 8004A35C E7B200D8 */ swc1 $f18, 0xd8($sp) +.L8004A360: +/* 04AF60 8004A360 820E01D3 */ lb $t6, 0x1d3($s0) +/* 04AF64 8004A364 24010003 */ li $at, 3 +/* 04AF68 8004A368 15C00026 */ bnez $t6, .L8004A404 +/* 04AF6C 8004A36C 00000000 */ nop +/* 04AF70 8004A370 14A10024 */ bne $a1, $at, .L8004A404 +/* 04AF74 8004A374 2404002D */ li $a0, 45 +/* 04AF78 8004A378 E7A10048 */ swc1 $f1, 0x48($sp) +/* 04AF7C 8004A37C E7A0004C */ swc1 $f0, 0x4c($sp) +/* 04AF80 8004A380 0C00322D */ jal normalise_time +/* 04AF84 8004A384 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04AF88 8004A388 9218020C */ lbu $t8, 0x20c($s0) +/* 04AF8C 8004A38C C7A10048 */ lwc1 $f1, 0x48($sp) +/* 04AF90 8004A390 C7A0004C */ lwc1 $f0, 0x4c($sp) +/* 04AF94 8004A394 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04AF98 8004A398 240F0002 */ li $t7, 2 +/* 04AF9C 8004A39C A20201D3 */ sb $v0, 0x1d3($s0) +/* 04AFA0 8004A3A0 13000005 */ beqz $t8, .L8004A3B8 +/* 04AFA4 8004A3A4 A20F0203 */ sb $t7, 0x203($s0) +/* 04AFA8 8004A3A8 82190203 */ lb $t9, 0x203($s0) +/* 04AFAC 8004A3AC 00000000 */ nop +/* 04AFB0 8004A3B0 372B0004 */ ori $t3, $t9, 4 +/* 04AFB4 8004A3B4 A20B0203 */ sb $t3, 0x203($s0) +.L8004A3B8: +/* 04AFB8 8004A3B8 02202025 */ move $a0, $s1 +/* 04AFBC 8004A3BC 24050107 */ li $a1, 263 +/* 04AFC0 8004A3C0 E7A10048 */ swc1 $f1, 0x48($sp) +/* 04AFC4 8004A3C4 E7A0004C */ swc1 $f0, 0x4c($sp) +/* 04AFC8 8004A3C8 0C015C12 */ jal racer_play_sound +/* 04AFCC 8004A3CC E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04AFD0 8004A3D0 02202025 */ move $a0, $s1 +/* 04AFD4 8004A3D4 24050162 */ li $a1, 354 +/* 04AFD8 8004A3D8 24060008 */ li $a2, 8 +/* 04AFDC 8004A3DC 0C015C2E */ jal play_random_character_voice +/* 04AFE0 8004A3E0 24070082 */ li $a3, 130 +/* 04AFE4 8004A3E4 86040000 */ lh $a0, ($s0) +/* 04AFE8 8004A3E8 0C01C8D2 */ jal func_80072348 +/* 04AFEC 8004A3EC 24050008 */ li $a1, 8 +/* 04AFF0 8004A3F0 3C098012 */ lui $t1, %hi(gCurrentStickY) # $t1, 0x8012 +/* 04AFF4 8004A3F4 C7A10048 */ lwc1 $f1, 0x48($sp) +/* 04AFF8 8004A3F8 C7A0004C */ lwc1 $f0, 0x4c($sp) +/* 04AFFC 8004A3FC C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B000 8004A400 2529D538 */ addiu $t1, %lo(gCurrentStickY) # addiu $t1, $t1, -0x2ac8 +.L8004A404: +/* 04B004 8004A404 820C01D6 */ lb $t4, 0x1d6($s0) +/* 04B008 8004A408 3C0D8012 */ lui $t5, %hi(gCurrentRacerInput) # $t5, 0x8012 +/* 04B00C 8004A40C 29810005 */ slti $at, $t4, 5 +/* 04B010 8004A410 14200018 */ bnez $at, .L8004A474 +/* 04B014 8004A414 3C0F800E */ lui $t7, %hi(gNumViewports) # $t7, 0x800e +/* 04B018 8004A418 C608002C */ lwc1 $f8, 0x2c($s0) +/* 04B01C 8004A41C 3C01C018 */ li $at, 0xC0180000 # -2.375000 +/* 04B020 8004A420 44812800 */ mtc1 $at, $f5 +/* 04B024 8004A424 44802000 */ mtc1 $zero, $f4 +/* 04B028 8004A428 460041A1 */ cvt.d.s $f6, $f8 +/* 04B02C 8004A42C 4626203C */ c.lt.d $f4, $f6 +/* 04B030 8004A430 C7AA00C8 */ lwc1 $f10, 0xc8($sp) +/* 04B034 8004A434 4500000F */ bc1f .L8004A474 +/* 04B038 8004A438 3C01800E */ lui $at, %hi(D_800E64F8 + 4) # $at, 0x800e +/* 04B03C 8004A43C C42964F8 */ lwc1 $f9, %lo(D_800E64F8)($at) +/* 04B040 8004A440 C42864FC */ lwc1 $f8, %lo(D_800E64F8 + 4)($at) +/* 04B044 8004A444 460054A1 */ cvt.d.s $f18, $f10 +/* 04B048 8004A448 46289102 */ mul.d $f4, $f18, $f8 +/* 04B04C 8004A44C 3C01800E */ lui $at, %hi(D_800E6500 + 4) # $at, 0x800e +/* 04B050 8004A450 C7AA00C4 */ lwc1 $f10, 0xc4($sp) +/* 04B054 8004A454 C4296500 */ lwc1 $f9, %lo(D_800E6500)($at) +/* 04B058 8004A458 C4286504 */ lwc1 $f8, %lo(D_800E6500 + 4)($at) +/* 04B05C 8004A45C 462021A0 */ cvt.s.d $f6, $f4 +/* 04B060 8004A460 460054A1 */ cvt.d.s $f18, $f10 +/* 04B064 8004A464 46289102 */ mul.d $f4, $f18, $f8 +/* 04B068 8004A468 E7A600C8 */ swc1 $f6, 0xc8($sp) +/* 04B06C 8004A46C 462021A0 */ cvt.s.d $f6, $f4 +/* 04B070 8004A470 E7A600C4 */ swc1 $f6, 0xc4($sp) +.L8004A474: +/* 04B074 8004A474 A20001E0 */ sb $zero, 0x1e0($s0) +/* 04B078 8004A478 8DADD528 */ lw $t5, %lo(gCurrentRacerInput)($t5) +/* 04B07C 8004A47C 00000000 */ nop +/* 04B080 8004A480 31AE4000 */ andi $t6, $t5, 0x4000 +/* 04B084 8004A484 11C00007 */ beqz $t6, .L8004A4A4 +/* 04B088 8004A488 00000000 */ nop +/* 04B08C 8004A48C 8DEFCB98 */ lw $t7, %lo(gNumViewports)($t7) +/* 04B090 8004A490 24180003 */ li $t8, 3 +/* 04B094 8004A494 29E10003 */ slti $at, $t7, 3 +/* 04B098 8004A498 10200002 */ beqz $at, .L8004A4A4 +/* 04B09C 8004A49C 00000000 */ nop +/* 04B0A0 8004A4A0 AE380074 */ sw $t8, 0x74($s1) +.L8004A4A4: +/* 04B0A4 8004A4A4 8D390000 */ lw $t9, ($t1) +/* 04B0A8 8004A4A8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04B0AC 8004A4AC 44995000 */ mtc1 $t9, $f10 +/* 04B0B0 8004A4B0 44812800 */ mtc1 $at, $f5 +/* 04B0B4 8004A4B4 468054A0 */ cvt.s.w $f18, $f10 +/* 04B0B8 8004A4B8 44802000 */ mtc1 $zero, $f4 +/* 04B0BC 8004A4BC 00000000 */ nop +/* 04B0C0 8004A4C0 46202181 */ sub.d $f6, $f4, $f0 +/* 04B0C4 8004A4C4 46009221 */ cvt.d.s $f8, $f18 +/* 04B0C8 8004A4C8 46264282 */ mul.d $f10, $f8, $f6 +/* 04B0CC 8004A4CC 444BF800 */ cfc1 $t3, $31 +/* 04B0D0 8004A4D0 00000000 */ nop +/* 04B0D4 8004A4D4 35610003 */ ori $at, $t3, 3 +/* 04B0D8 8004A4D8 38210002 */ xori $at, $at, 2 +/* 04B0DC 8004A4DC 44C1F800 */ ctc1 $at, $31 +/* 04B0E0 8004A4E0 00000000 */ nop +/* 04B0E4 8004A4E4 462054A4 */ cvt.w.d $f18, $f10 +/* 04B0E8 8004A4E8 E5320000 */ swc1 $f18, ($t1) +/* 04B0EC 8004A4EC 8D2C0000 */ lw $t4, ($t1) +/* 04B0F0 8004A4F0 44CBF800 */ ctc1 $t3, $31 +/* 04B0F4 8004A4F4 19800003 */ blez $t4, .L8004A504 +/* 04B0F8 8004A4F8 83AD00A3 */ lb $t5, 0xa3($sp) +/* 04B0FC 8004A4FC AD200000 */ sw $zero, ($t1) +.L8004A500: +/* 04B100 8004A500 83AD00A3 */ lb $t5, 0xa3($sp) +.L8004A504: +/* 04B104 8004A504 820201D6 */ lb $v0, 0x1d6($s0) +/* 04B108 8004A508 15A0000F */ bnez $t5, .L8004A548 +/* 04B10C 8004A50C 00004025 */ move $t0, $zero +/* 04B110 8004A510 3C014590 */ li $at, 0x45900000 # 4608.000000 +/* 04B114 8004A514 44812000 */ mtc1 $at, $f4 +/* 04B118 8004A518 00000000 */ nop +/* 04B11C 8004A51C 4604A202 */ mul.s $f8, $f20, $f4 +/* 04B120 8004A520 444EF800 */ cfc1 $t6, $31 +/* 04B124 8004A524 00000000 */ nop +/* 04B128 8004A528 35C10003 */ ori $at, $t6, 3 +/* 04B12C 8004A52C 38210002 */ xori $at, $at, 2 +/* 04B130 8004A530 44C1F800 */ ctc1 $at, $31 +/* 04B134 8004A534 00000000 */ nop +/* 04B138 8004A538 460041A4 */ cvt.w.s $f6, $f8 +/* 04B13C 8004A53C 44CEF800 */ ctc1 $t6, $31 +/* 04B140 8004A540 44083000 */ mfc1 $t0, $f6 +/* 04B144 8004A544 00000000 */ nop +.L8004A548: +/* 04B148 8004A548 28410006 */ slti $at, $v0, 6 +/* 04B14C 8004A54C 14200002 */ bnez $at, .L8004A558 +/* 04B150 8004A550 02002025 */ move $a0, $s0 +/* 04B154 8004A554 00004025 */ move $t0, $zero +.L8004A558: +/* 04B158 8004A558 2401000A */ li $at, 10 +/* 04B15C 8004A55C 14410003 */ bne $v0, $at, .L8004A56C +/* 04B160 8004A560 00003025 */ move $a2, $zero +/* 04B164 8004A564 4480A000 */ mtc1 $zero, $f20 +/* 04B168 8004A568 00004025 */ move $t0, $zero +.L8004A56C: +/* 04B16C 8004A56C 00083C00 */ sll $a3, $t0, 0x10 +/* 04B170 8004A570 00077C03 */ sra $t7, $a3, 0x10 +/* 04B174 8004A574 8FA500F8 */ lw $a1, 0xf8($sp) +/* 04B178 8004A578 01E03825 */ move $a3, $t7 +/* 04B17C 8004A57C AFA00010 */ sw $zero, 0x10($sp) +/* 04B180 8004A580 0C014214 */ jal apply_vehicle_rotation_offset +/* 04B184 8004A584 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B188 8004A588 920201FE */ lbu $v0, 0x1fe($s0) +/* 04B18C 8004A58C C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B190 8004A590 14400008 */ bnez $v0, .L8004A5B4 +/* 04B194 8004A594 3C0C8012 */ lui $t4, %hi(gRaceStartTimer) # $t4, 0x8012 +/* 04B198 8004A598 8E380074 */ lw $t8, 0x74($s1) +/* 04B19C 8004A59C 3C0140B0 */ li $at, 0x40B00000 # 5.500000 +/* 04B1A0 8004A5A0 37190100 */ ori $t9, $t8, 0x100 +/* 04B1A4 8004A5A4 AE390074 */ sw $t9, 0x74($s1) +/* 04B1A8 8004A5A8 4481A000 */ mtc1 $at, $f20 +/* 04B1AC 8004A5AC 920201FE */ lbu $v0, 0x1fe($s0) +/* 04B1B0 8004A5B0 00000000 */ nop +.L8004A5B4: +/* 04B1B4 8004A5B4 24010001 */ li $at, 1 +/* 04B1B8 8004A5B8 14410003 */ bne $v0, $at, .L8004A5C8 +/* 04B1BC 8004A5BC 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04B1C0 8004A5C0 4481A000 */ mtc1 $at, $f20 +/* 04B1C4 8004A5C4 00000000 */ nop +.L8004A5C8: +/* 04B1C8 8004A5C8 C61200C0 */ lwc1 $f18, 0xc0($s0) +/* 04B1CC 8004A5CC 44805800 */ mtc1 $zero, $f11 +/* 04B1D0 8004A5D0 44805000 */ mtc1 $zero, $f10 +/* 04B1D4 8004A5D4 46009121 */ cvt.d.s $f4, $f18 +/* 04B1D8 8004A5D8 46245032 */ c.eq.d $f10, $f4 +/* 04B1DC 8004A5DC 00000000 */ nop +/* 04B1E0 8004A5E0 45010021 */ bc1t .L8004A668 +/* 04B1E4 8004A5E4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 04B1E8 8004A5E8 44810000 */ mtc1 $at, $f0 +/* 04B1EC 8004A5EC 3C018012 */ lui $at, %hi(gCurrentStickY) # $at, 0x8012 +/* 04B1F0 8004A5F0 240BFFC4 */ li $t3, -60 +/* 04B1F4 8004A5F4 AC2BD538 */ sw $t3, %lo(gCurrentStickY)($at) +/* 04B1F8 8004A5F8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 04B1FC 8004A5FC 44813000 */ mtc1 $at, $f6 +/* 04B200 8004A600 C60800C0 */ lwc1 $f8, 0xc0($s0) +/* 04B204 8004A604 44805800 */ mtc1 $zero, $f11 +/* 04B208 8004A608 46064081 */ sub.s $f2, $f8, $f6 +/* 04B20C 8004A60C 44805000 */ mtc1 $zero, $f10 +/* 04B210 8004A610 460014A1 */ cvt.d.s $f18, $f2 +/* 04B214 8004A614 462A903C */ c.lt.d $f18, $f10 +/* 04B218 8004A618 3C014120 */ li $at, 0x41200000 # 10.000000 +/* 04B21C 8004A61C 44812000 */ mtc1 $at, $f4 +/* 04B220 8004A620 45000004 */ bc1f .L8004A634 +/* 04B224 8004A624 00000000 */ nop +/* 04B228 8004A628 44801000 */ mtc1 $zero, $f2 +/* 04B22C 8004A62C 00000000 */ nop +/* 04B230 8004A630 00000000 */ nop +.L8004A634: +/* 04B234 8004A634 46041203 */ div.s $f8, $f2, $f4 +/* 04B238 8004A638 3C01C010 */ li $at, 0xC0100000 # -2.250000 +/* 04B23C 8004A63C 44819800 */ mtc1 $at, $f19 +/* 04B240 8004A640 44809000 */ mtc1 $zero, $f18 +/* 04B244 8004A644 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 04B248 8004A648 46080501 */ sub.s $f20, $f0, $f8 +/* 04B24C 8004A64C 4600A1A1 */ cvt.d.s $f6, $f20 +/* 04B250 8004A650 4632303C */ c.lt.d $f6, $f18 +/* 04B254 8004A654 00000000 */ nop +/* 04B258 8004A658 45000003 */ bc1f .L8004A668 +/* 04B25C 8004A65C 00000000 */ nop +/* 04B260 8004A660 4481A000 */ mtc1 $at, $f20 +/* 04B264 8004A664 00000000 */ nop +.L8004A668: +/* 04B268 8004A668 8D8CD540 */ lw $t4, %lo(gRaceStartTimer)($t4) +/* 04B26C 8004A66C 00000000 */ nop +/* 04B270 8004A670 11800003 */ beqz $t4, .L8004A680 +/* 04B274 8004A674 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04B278 8004A678 4481A000 */ mtc1 $at, $f20 +/* 04B27C 8004A67C 00000000 */ nop +.L8004A680: +/* 04B280 8004A680 820D01D7 */ lb $t5, 0x1d7($s0) +/* 04B284 8004A684 2401000C */ li $at, 12 +/* 04B288 8004A688 15A1000B */ bne $t5, $at, .L8004A6B8 +/* 04B28C 8004A68C 00000000 */ nop +/* 04B290 8004A690 822E003B */ lb $t6, 0x3b($s1) +/* 04B294 8004A694 00000000 */ nop +/* 04B298 8004A698 29C10003 */ slti $at, $t6, 3 +/* 04B29C 8004A69C 10200004 */ beqz $at, .L8004A6B0 +/* 04B2A0 8004A6A0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04B2A4 8004A6A4 4481A000 */ mtc1 $at, $f20 +/* 04B2A8 8004A6A8 10000003 */ b .L8004A6B8 +/* 04B2AC 8004A6AC 00000000 */ nop +.L8004A6B0: +/* 04B2B0 8004A6B0 4480A000 */ mtc1 $zero, $f20 +/* 04B2B4 8004A6B4 00000000 */ nop +.L8004A6B8: +/* 04B2B8 8004A6B8 3C018012 */ lui $at, %hi(gCurrentRacerWeightStat) # $at, 0x8012 +/* 04B2BC 8004A6BC C42AD56C */ lwc1 $f10, %lo(gCurrentRacerWeightStat)($at) +/* 04B2C0 8004A6C0 C6240020 */ lwc1 $f4, 0x20($s1) +/* 04B2C4 8004A6C4 460AA502 */ mul.s $f20, $f20, $f10 +/* 04B2C8 8004A6C8 46142201 */ sub.s $f8, $f4, $f20 +/* 04B2CC 8004A6CC E6280020 */ swc1 $f8, 0x20($s1) +/* 04B2D0 8004A6D0 920F01F5 */ lbu $t7, 0x1f5($s0) +/* 04B2D4 8004A6D4 00000000 */ nop +/* 04B2D8 8004A6D8 11E0005E */ beqz $t7, .L8004A854 +/* 04B2DC 8004A6DC 00000000 */ nop +/* 04B2E0 8004A6E0 821801DB */ lb $t8, 0x1db($s0) +/* 04B2E4 8004A6E4 34018001 */ li $at, 32769 +/* 04B2E8 8004A6E8 1700005A */ bnez $t8, .L8004A854 +/* 04B2EC 8004A6EC 00000000 */ nop +/* 04B2F0 8004A6F0 8E19014C */ lw $t9, 0x14c($s0) +/* 04B2F4 8004A6F4 860301A0 */ lh $v1, 0x1a0($s0) +/* 04B2F8 8004A6F8 A2000175 */ sb $zero, 0x175($s0) +/* 04B2FC 8004A6FC A20001DB */ sb $zero, 0x1db($s0) +/* 04B300 8004A700 A20001E0 */ sb $zero, 0x1e0($s0) +/* 04B304 8004A704 872B0000 */ lh $t3, ($t9) +/* 04B308 8004A708 306CFFFF */ andi $t4, $v1, 0xffff +/* 04B30C 8004A70C 016C1023 */ subu $v0, $t3, $t4 +/* 04B310 8004A710 0041082A */ slt $at, $v0, $at +/* 04B314 8004A714 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 04B318 8004A718 14200003 */ bnez $at, .L8004A728 +/* 04B31C 8004A71C 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 04B320 8004A720 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 04B324 8004A724 00411021 */ addu $v0, $v0, $at +.L8004A728: +/* 04B328 8004A728 28418000 */ slti $at, $v0, -0x8000 +/* 04B32C 8004A72C 10200002 */ beqz $at, .L8004A738 +/* 04B330 8004A730 3401FFFF */ li $at, 65535 +/* 04B334 8004A734 00411021 */ addu $v0, $v0, $at +.L8004A738: +/* 04B338 8004A738 004D0019 */ multu $v0, $t5 +/* 04B33C 8004A73C 28410400 */ slti $at, $v0, 0x400 +/* 04B340 8004A740 00007012 */ mflo $t6 +/* 04B344 8004A744 000E78C3 */ sra $t7, $t6, 3 +/* 04B348 8004A748 006FC021 */ addu $t8, $v1, $t7 +/* 04B34C 8004A74C 10200004 */ beqz $at, .L8004A760 +/* 04B350 8004A750 A61801A0 */ sh $t8, 0x1a0($s0) +/* 04B354 8004A754 2841FC01 */ slti $at, $v0, -0x3ff +/* 04B358 8004A758 10200005 */ beqz $at, .L8004A770 +/* 04B35C 8004A75C 00000000 */ nop +.L8004A760: +/* 04B360 8004A760 86190000 */ lh $t9, ($s0) +/* 04B364 8004A764 2401FFFF */ li $at, -1 +/* 04B368 8004A768 17210026 */ bne $t9, $at, .L8004A804 +/* 04B36C 8004A76C 00000000 */ nop +.L8004A770: +/* 04B370 8004A770 860B0000 */ lh $t3, ($s0) +/* 04B374 8004A774 2401FFFF */ li $at, -1 +/* 04B378 8004A778 1161000E */ beq $t3, $at, .L8004A7B4 +/* 04B37C 8004A77C 24040107 */ li $a0, 263 +/* 04B380 8004A780 8E25000C */ lw $a1, 0xc($s1) +/* 04B384 8004A784 8E260010 */ lw $a2, 0x10($s1) +/* 04B388 8004A788 8E270014 */ lw $a3, 0x14($s1) +/* 04B38C 8004A78C E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B390 8004A790 0C0007AA */ jal play_sound_spatial +/* 04B394 8004A794 AFA00010 */ sw $zero, 0x10($sp) +/* 04B398 8004A798 02202025 */ move $a0, $s1 +/* 04B39C 8004A79C 24050162 */ li $a1, 354 +/* 04B3A0 8004A7A0 24060008 */ li $a2, 8 +/* 04B3A4 8004A7A4 0C015C2E */ jal play_random_character_voice +/* 04B3A8 8004A7A8 24070082 */ li $a3, 130 +/* 04B3AC 8004A7AC C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B3B0 8004A7B0 00000000 */ nop +.L8004A7B4: +/* 04B3B4 8004A7B4 2404002D */ li $a0, 45 +/* 04B3B8 8004A7B8 0C00322D */ jal normalise_time +/* 04B3BC 8004A7BC E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B3C0 8004A7C0 920D020C */ lbu $t5, 0x20c($s0) +/* 04B3C4 8004A7C4 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B3C8 8004A7C8 240C0002 */ li $t4, 2 +/* 04B3CC 8004A7CC A20201D3 */ sb $v0, 0x1d3($s0) +/* 04B3D0 8004A7D0 11A00005 */ beqz $t5, .L8004A7E8 +/* 04B3D4 8004A7D4 A20C0203 */ sb $t4, 0x203($s0) +/* 04B3D8 8004A7D8 820E0203 */ lb $t6, 0x203($s0) +/* 04B3DC 8004A7DC 00000000 */ nop +/* 04B3E0 8004A7E0 35CF0004 */ ori $t7, $t6, 4 +/* 04B3E4 8004A7E4 A20F0203 */ sb $t7, 0x203($s0) +.L8004A7E8: +/* 04B3E8 8004A7E8 86040000 */ lh $a0, ($s0) +/* 04B3EC 8004A7EC E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B3F0 8004A7F0 0C01C8D2 */ jal func_80072348 +/* 04B3F4 8004A7F4 24050008 */ li $a1, 8 +/* 04B3F8 8004A7F8 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B3FC 8004A7FC 10000015 */ b .L8004A854 +/* 04B400 8004A800 A20001F5 */ sb $zero, 0x1f5($s0) +.L8004A804: +/* 04B404 8004A804 C626001C */ lwc1 $f6, 0x1c($s1) +/* 04B408 8004A808 3C013FE8 */ li $at, 0x3FE80000 # 1.812500 +/* 04B40C 8004A80C 44810800 */ mtc1 $at, $f1 +/* 04B410 8004A810 44800000 */ mtc1 $zero, $f0 +/* 04B414 8004A814 460034A1 */ cvt.d.s $f18, $f6 +/* 04B418 8004A818 46209282 */ mul.d $f10, $f18, $f0 +/* 04B41C 8004A81C C6280020 */ lwc1 $f8, 0x20($s1) +/* 04B420 8004A820 00000000 */ nop +/* 04B424 8004A824 460041A1 */ cvt.d.s $f6, $f8 +/* 04B428 8004A828 46205120 */ cvt.s.d $f4, $f10 +/* 04B42C 8004A82C E624001C */ swc1 $f4, 0x1c($s1) +/* 04B430 8004A830 46203482 */ mul.d $f18, $f6, $f0 +/* 04B434 8004A834 C6240024 */ lwc1 $f4, 0x24($s1) +/* 04B438 8004A838 00000000 */ nop +/* 04B43C 8004A83C 46002221 */ cvt.d.s $f8, $f4 +/* 04B440 8004A840 46204182 */ mul.d $f6, $f8, $f0 +/* 04B444 8004A844 462092A0 */ cvt.s.d $f10, $f18 +/* 04B448 8004A848 E62A0020 */ swc1 $f10, 0x20($s1) +/* 04B44C 8004A84C 462034A0 */ cvt.s.d $f18, $f6 +/* 04B450 8004A850 E6320024 */ swc1 $f18, 0x24($s1) +.L8004A854: +/* 04B454 8004A854 821801DB */ lb $t8, 0x1db($s0) +/* 04B458 8004A858 00000000 */ nop +/* 04B45C 8004A85C 13000081 */ beqz $t8, .L8004AA64 +/* 04B460 8004A860 00000000 */ nop +/* 04B464 8004A864 921901F1 */ lbu $t9, 0x1f1($s0) +/* 04B468 8004A868 86040162 */ lh $a0, 0x162($s0) +/* 04B46C 8004A86C 17200002 */ bnez $t9, .L8004A878 +/* 04B470 8004A870 240B0001 */ li $t3, 1 +/* 04B474 8004A874 A20B01F1 */ sb $t3, 0x1f1($s0) +.L8004A878: +/* 04B478 8004A878 820C01E2 */ lb $t4, 0x1e2($s0) +/* 04B47C 8004A87C 240E0002 */ li $t6, 2 +/* 04B480 8004A880 15800005 */ bnez $t4, .L8004A898 +/* 04B484 8004A884 00000000 */ nop +/* 04B488 8004A888 920D01F1 */ lbu $t5, 0x1f1($s0) +/* 04B48C 8004A88C 24010002 */ li $at, 2 +/* 04B490 8004A890 15A10025 */ bne $t5, $at, .L8004A928 +/* 04B494 8004A894 8FAF00F8 */ lw $t7, 0xf8($sp) +.L8004A898: +/* 04B498 8004A898 A20E01F1 */ sb $t6, 0x1f1($s0) +/* 04B49C 8004A89C 8FA200F8 */ lw $v0, 0xf8($sp) +/* 04B4A0 8004A8A0 86180162 */ lh $t8, 0x162($s0) +/* 04B4A4 8004A8A4 86030164 */ lh $v1, 0x164($s0) +/* 04B4A8 8004A8A8 00027AC0 */ sll $t7, $v0, 0xb +/* 04B4AC 8004A8AC 030FC823 */ subu $t9, $t8, $t7 +/* 04B4B0 8004A8B0 01E35821 */ addu $t3, $t7, $v1 +/* 04B4B4 8004A8B4 A6190162 */ sh $t9, 0x162($s0) +/* 04B4B8 8004A8B8 01E01025 */ move $v0, $t7 +/* 04B4BC 8004A8BC 19600005 */ blez $t3, .L8004A8D4 +/* 04B4C0 8004A8C0 00604025 */ move $t0, $v1 +/* 04B4C4 8004A8C4 1D000004 */ bgtz $t0, .L8004A8D8 +/* 04B4C8 8004A8C8 00626021 */ addu $t4, $v1, $v0 +/* 04B4CC 8004A8CC 10000003 */ b .L8004A8DC +/* 04B4D0 8004A8D0 A6000164 */ sh $zero, 0x164($s0) +.L8004A8D4: +/* 04B4D4 8004A8D4 00626021 */ addu $t4, $v1, $v0 +.L8004A8D8: +/* 04B4D8 8004A8D8 A60C0164 */ sh $t4, 0x164($s0) +.L8004A8DC: +/* 04B4DC 8004A8DC C604002C */ lwc1 $f4, 0x2c($s0) +/* 04B4E0 8004A8E0 3C01C000 */ li $at, 0xC0000000 # -2.000000 +/* 04B4E4 8004A8E4 44815800 */ mtc1 $at, $f11 +/* 04B4E8 8004A8E8 44805000 */ mtc1 $zero, $f10 +/* 04B4EC 8004A8EC 46002221 */ cvt.d.s $f8, $f4 +/* 04B4F0 8004A8F0 4628503C */ c.lt.d $f10, $f8 +/* 04B4F4 8004A8F4 00000000 */ nop +/* 04B4F8 8004A8F8 45000007 */ bc1f .L8004A918 +/* 04B4FC 8004A8FC 00000000 */ nop +/* 04B500 8004A900 820D01E2 */ lb $t5, 0x1e2($s0) +/* 04B504 8004A904 00000000 */ nop +/* 04B508 8004A908 29A10003 */ slti $at, $t5, 3 +/* 04B50C 8004A90C 14200002 */ bnez $at, .L8004A918 +/* 04B510 8004A910 00000000 */ nop +/* 04B514 8004A914 A20001DB */ sb $zero, 0x1db($s0) +.L8004A918: +/* 04B518 8004A918 820301E2 */ lb $v1, 0x1e2($s0) +/* 04B51C 8004A91C 10000007 */ b .L8004A93C +/* 04B520 8004A920 00000000 */ nop +/* 04B524 8004A924 8FAF00F8 */ lw $t7, 0xf8($sp) +.L8004A928: +/* 04B528 8004A928 860E0164 */ lh $t6, 0x164($s0) +/* 04B52C 8004A92C 000FC2C0 */ sll $t8, $t7, 0xb +/* 04B530 8004A930 01D8C821 */ addu $t9, $t6, $t8 +/* 04B534 8004A934 820301E2 */ lb $v1, 0x1e2($s0) +/* 04B538 8004A938 A6190164 */ sh $t9, 0x164($s0) +.L8004A93C: +/* 04B53C 8004A93C 10600022 */ beqz $v1, .L8004A9C8 +/* 04B540 8004A940 28816001 */ slti $at, $a0, 0x6001 +/* 04B544 8004A944 14200006 */ bnez $at, .L8004A960 +/* 04B548 8004A948 2881A001 */ slti $at, $a0, -0x5fff +/* 04B54C 8004A94C 860B0162 */ lh $t3, 0x162($s0) +/* 04B550 8004A950 00000000 */ nop +/* 04B554 8004A954 29616001 */ slti $at, $t3, 0x6001 +/* 04B558 8004A958 1420000D */ bnez $at, .L8004A990 +/* 04B55C 8004A95C 2881A001 */ slti $at, $a0, -0x5fff +.L8004A960: +/* 04B560 8004A960 14200006 */ bnez $at, .L8004A97C +/* 04B564 8004A964 00000000 */ nop +/* 04B568 8004A968 860C0162 */ lh $t4, 0x162($s0) +/* 04B56C 8004A96C 00000000 */ nop +/* 04B570 8004A970 2981A001 */ slti $at, $t4, -0x5fff +/* 04B574 8004A974 14200006 */ bnez $at, .L8004A990 +/* 04B578 8004A978 00000000 */ nop +.L8004A97C: +/* 04B57C 8004A97C 18800012 */ blez $a0, .L8004A9C8 +/* 04B580 8004A980 00000000 */ nop +/* 04B584 8004A984 860D0162 */ lh $t5, 0x162($s0) +/* 04B588 8004A988 00000000 */ nop +/* 04B58C 8004A98C 1DA0000E */ bgtz $t5, .L8004A9C8 +.L8004A990: +/* 04B590 8004A990 02202025 */ move $a0, $s1 +/* 04B594 8004A994 2405000C */ li $a1, 12 +/* 04B598 8004A998 0C015C12 */ jal racer_play_sound +/* 04B59C 8004A99C E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B5A0 8004A9A0 860F0000 */ lh $t7, ($s0) +/* 04B5A4 8004A9A4 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B5A8 8004A9A8 2401FFFF */ li $at, -1 +/* 04B5AC 8004A9AC 11E10006 */ beq $t7, $at, .L8004A9C8 +/* 04B5B0 8004A9B0 3C0E8012 */ lui $t6, %hi(gCameraObject) # $t6, 0x8012 +/* 04B5B4 8004A9B4 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 04B5B8 8004A9B8 44813000 */ mtc1 $at, $f6 +/* 04B5BC 8004A9BC 8DCED508 */ lw $t6, %lo(gCameraObject)($t6) +/* 04B5C0 8004A9C0 00000000 */ nop +/* 04B5C4 8004A9C4 E5C60030 */ swc1 $f6, 0x30($t6) +.L8004A9C8: +/* 04B5C8 8004A9C8 3C188012 */ lui $t8, %hi(gCurrentRacerInput) # $t8, 0x8012 +/* 04B5CC 8004A9CC 8F18D528 */ lw $t8, %lo(gCurrentRacerInput)($t8) +/* 04B5D0 8004A9D0 3C01FFFF */ lui $at, (0xFFFF5FFF >> 16) # lui $at, 0xffff +/* 04B5D4 8004A9D4 34215FFF */ ori $at, (0xFFFF5FFF & 0xFFFF) # ori $at, $at, 0x5fff +/* 04B5D8 8004A9D8 0301C824 */ and $t9, $t8, $at +/* 04B5DC 8004A9DC 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 +/* 04B5E0 8004A9E0 AC39D528 */ sw $t9, %lo(gCurrentRacerInput)($at) +/* 04B5E4 8004A9E4 8FA400F8 */ lw $a0, 0xf8($sp) +/* 04B5E8 8004A9E8 820B01DB */ lb $t3, 0x1db($s0) +/* 04B5EC 8004A9EC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04B5F0 8004A9F0 01646023 */ subu $t4, $t3, $a0 +/* 04B5F4 8004A9F4 A20C01DB */ sb $t4, 0x1db($s0) +/* 04B5F8 8004A9F8 44819000 */ mtc1 $at, $f18 +/* 04B5FC 8004A9FC 820D01DB */ lb $t5, 0x1db($s0) +/* 04B600 8004AA00 A20001D3 */ sb $zero, 0x1d3($s0) +/* 04B604 8004AA04 1DA00003 */ bgtz $t5, .L8004AA14 +/* 04B608 8004AA08 E61200B8 */ swc1 $f18, 0xb8($s0) +/* 04B60C 8004AA0C A20001DB */ sb $zero, 0x1db($s0) +/* 04B610 8004AA10 A20001F1 */ sb $zero, 0x1f1($s0) +.L8004AA14: +/* 04B614 8004AA14 86230002 */ lh $v1, 2($s1) +/* 04B618 8004AA18 340ED800 */ li $t6, 55296 +/* 04B61C 8004AA1C 306FFFFF */ andi $t7, $v1, 0xffff +/* 04B620 8004AA20 01CF1023 */ subu $v0, $t6, $t7 +/* 04B624 8004AA24 34018001 */ li $at, 32769 +/* 04B628 8004AA28 0041082A */ slt $at, $v0, $at +/* 04B62C 8004AA2C 14200003 */ bnez $at, .L8004AA3C +/* 04B630 8004AA30 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 04B634 8004AA34 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 04B638 8004AA38 00411021 */ addu $v0, $v0, $at +.L8004AA3C: +/* 04B63C 8004AA3C 28418000 */ slti $at, $v0, -0x8000 +/* 04B640 8004AA40 10200002 */ beqz $at, .L8004AA4C +/* 04B644 8004AA44 3401FFFF */ li $at, 65535 +/* 04B648 8004AA48 00411021 */ addu $v0, $v0, $at +.L8004AA4C: +/* 04B64C 8004AA4C 00440019 */ multu $v0, $a0 +/* 04B650 8004AA50 0000C012 */ mflo $t8 +/* 04B654 8004AA54 0018C903 */ sra $t9, $t8, 4 +/* 04B658 8004AA58 00795821 */ addu $t3, $v1, $t9 +/* 04B65C 8004AA5C 10000233 */ b .L8004B32C +/* 04B660 8004AA60 A62B0002 */ sh $t3, 2($s1) +.L8004AA64: +/* 04B664 8004AA64 820201E0 */ lb $v0, 0x1e0($s0) +/* 04B668 8004AA68 24010001 */ li $at, 1 +/* 04B66C 8004AA6C 10410004 */ beq $v0, $at, .L8004AA80 +/* 04B670 8004AA70 00026080 */ sll $t4, $v0, 2 +/* 04B674 8004AA74 2401FFFF */ li $at, -1 +/* 04B678 8004AA78 14410030 */ bne $v0, $at, .L8004AB3C +/* 04B67C 8004AA7C 24010002 */ li $at, 2 +.L8004AA80: +/* 04B680 8004AA80 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 04B684 8004AA84 01826023 */ subu $t4, $t4, $v0 +/* 04B688 8004AA88 000C6240 */ sll $t4, $t4, 9 +/* 04B68C 8004AA8C 018D0019 */ multu $t4, $t5 +/* 04B690 8004AA90 860301A4 */ lh $v1, 0x1a4($s0) +/* 04B694 8004AA94 3C01800E */ lui $at, %hi(D_800E6508) # $at, 0x800e +/* 04B698 8004AA98 00604025 */ move $t0, $v1 +/* 04B69C 8004AA9C 00007012 */ mflo $t6 +/* 04B6A0 8004AAA0 006E7821 */ addu $t7, $v1, $t6 +/* 04B6A4 8004AAA4 A60F01A4 */ sh $t7, 0x1a4($s0) +/* 04B6A8 8004AAA8 C4246508 */ lwc1 $f4, %lo(D_800E6508)($at) +/* 04B6AC 8004AAAC 24010001 */ li $at, 1 +/* 04B6B0 8004AAB0 14410011 */ bne $v0, $at, .L8004AAF8 +/* 04B6B4 8004AAB4 E7A400C8 */ swc1 $f4, 0xc8($sp) +/* 04B6B8 8004AAB8 18600002 */ blez $v1, .L8004AAC4 +/* 04B6BC 8004AABC 24180001 */ li $t8, 1 +/* 04B6C0 8004AAC0 A21801D4 */ sb $t8, 0x1d4($s0) +.L8004AAC4: +/* 04B6C4 8004AAC4 05010219 */ bgez $t0, .L8004B32C +/* 04B6C8 8004AAC8 00000000 */ nop +/* 04B6CC 8004AACC 861901A4 */ lh $t9, 0x1a4($s0) +/* 04B6D0 8004AAD0 00000000 */ nop +/* 04B6D4 8004AAD4 07200215 */ bltz $t9, .L8004B32C +/* 04B6D8 8004AAD8 00000000 */ nop +/* 04B6DC 8004AADC 820B01D4 */ lb $t3, 0x1d4($s0) +/* 04B6E0 8004AAE0 00000000 */ nop +/* 04B6E4 8004AAE4 11600211 */ beqz $t3, .L8004B32C +/* 04B6E8 8004AAE8 00000000 */ nop +/* 04B6EC 8004AAEC A20001E0 */ sb $zero, 0x1e0($s0) +/* 04B6F0 8004AAF0 1000020E */ b .L8004B32C +/* 04B6F4 8004AAF4 A60001A4 */ sh $zero, 0x1a4($s0) +.L8004AAF8: +/* 04B6F8 8004AAF8 05010002 */ bgez $t0, .L8004AB04 +/* 04B6FC 8004AAFC 240C0001 */ li $t4, 1 +/* 04B700 8004AB00 A20C01D4 */ sb $t4, 0x1d4($s0) +.L8004AB04: +/* 04B704 8004AB04 19000209 */ blez $t0, .L8004B32C +/* 04B708 8004AB08 00000000 */ nop +/* 04B70C 8004AB0C 860D01A4 */ lh $t5, 0x1a4($s0) +/* 04B710 8004AB10 00000000 */ nop +/* 04B714 8004AB14 1DA00205 */ bgtz $t5, .L8004B32C +/* 04B718 8004AB18 00000000 */ nop +/* 04B71C 8004AB1C 820E01D4 */ lb $t6, 0x1d4($s0) +/* 04B720 8004AB20 00000000 */ nop +/* 04B724 8004AB24 11C00201 */ beqz $t6, .L8004B32C +/* 04B728 8004AB28 00000000 */ nop +/* 04B72C 8004AB2C A20001E0 */ sb $zero, 0x1e0($s0) +/* 04B730 8004AB30 100001FE */ b .L8004B32C +/* 04B734 8004AB34 A60001A4 */ sh $zero, 0x1a4($s0) +/* 04B738 8004AB38 24010002 */ li $at, 2 +.L8004AB3C: +/* 04B73C 8004AB3C 10410003 */ beq $v0, $at, .L8004AB4C +/* 04B740 8004AB40 2405FFFE */ li $a1, -2 +/* 04B744 8004AB44 14A2008B */ bne $a1, $v0, .L8004AD74 +/* 04B748 8004AB48 00000000 */ nop +.L8004AB4C: +/* 04B74C 8004AB4C 86230002 */ lh $v1, 2($s1) +/* 04B750 8004AB50 820F01D5 */ lb $t7, 0x1d5($s0) +/* 04B754 8004AB54 3C0D8012 */ lui $t5, %hi(gCurrentRacerInput) # $t5, 0x8012 +/* 04B758 8004AB58 15E00009 */ bnez $t7, .L8004AB80 +/* 04B75C 8004AB5C 00604025 */ move $t0, $v1 +/* 04B760 8004AB60 0002C080 */ sll $t8, $v0, 2 +/* 04B764 8004AB64 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04B768 8004AB68 0302C023 */ subu $t8, $t8, $v0 +/* 04B76C 8004AB6C 0018C1C0 */ sll $t8, $t8, 7 +/* 04B770 8004AB70 03190019 */ multu $t8, $t9 +/* 04B774 8004AB74 00005812 */ mflo $t3 +/* 04B778 8004AB78 006B6021 */ addu $t4, $v1, $t3 +/* 04B77C 8004AB7C A62C0002 */ sh $t4, 2($s1) +.L8004AB80: +/* 04B780 8004AB80 8DADD528 */ lw $t5, %lo(gCurrentRacerInput)($t5) +/* 04B784 8004AB84 00000000 */ nop +/* 04B788 8004AB88 31AE0010 */ andi $t6, $t5, 0x10 +/* 04B78C 8004AB8C 15C00002 */ bnez $t6, .L8004AB98 +/* 04B790 8004AB90 00000000 */ nop +/* 04B794 8004AB94 A20001D5 */ sb $zero, 0x1d5($s0) +.L8004AB98: +/* 04B798 8004AB98 820201D5 */ lb $v0, 0x1d5($s0) +/* 04B79C 8004AB9C 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 04B7A0 8004ABA0 18400003 */ blez $v0, .L8004ABB0 +/* 04B7A4 8004ABA4 004FC023 */ subu $t8, $v0, $t7 +/* 04B7A8 8004ABA8 10000002 */ b .L8004ABB4 +/* 04B7AC 8004ABAC A21801D5 */ sb $t8, 0x1d5($s0) +.L8004ABB0: +/* 04B7B0 8004ABB0 A20001D5 */ sb $zero, 0x1d5($s0) +.L8004ABB4: +/* 04B7B4 8004ABB4 860301A4 */ lh $v1, 0x1a4($s0) +/* 04B7B8 8004ABB8 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04B7BC 8004ABBC C60A002C */ lwc1 $f10, 0x2c($s0) +/* 04B7C0 8004ABC0 00790019 */ multu $v1, $t9 +/* 04B7C4 8004ABC4 C6080038 */ lwc1 $f8, 0x38($s0) +/* 04B7C8 8004ABC8 24010002 */ li $at, 2 +/* 04B7CC 8004ABCC 46085182 */ mul.s $f6, $f10, $f8 +/* 04B7D0 8004ABD0 00005812 */ mflo $t3 +/* 04B7D4 8004ABD4 000B6103 */ sra $t4, $t3, 4 +/* 04B7D8 8004ABD8 006C6823 */ subu $t5, $v1, $t4 +/* 04B7DC 8004ABDC A60D01A4 */ sh $t5, 0x1a4($s0) +/* 04B7E0 8004ABE0 E626001C */ swc1 $f6, 0x1c($s1) +/* 04B7E4 8004ABE4 C612002C */ lwc1 $f18, 0x2c($s0) +/* 04B7E8 8004ABE8 C604003C */ lwc1 $f4, 0x3c($s0) +/* 04B7EC 8004ABEC 00000000 */ nop +/* 04B7F0 8004ABF0 46049282 */ mul.s $f10, $f18, $f4 +/* 04B7F4 8004ABF4 E62A0020 */ swc1 $f10, 0x20($s1) +/* 04B7F8 8004ABF8 C6060040 */ lwc1 $f6, 0x40($s0) +/* 04B7FC 8004ABFC C608002C */ lwc1 $f8, 0x2c($s0) +/* 04B800 8004AC00 00000000 */ nop +/* 04B804 8004AC04 46064482 */ mul.s $f18, $f8, $f6 +/* 04B808 8004AC08 E6320024 */ swc1 $f18, 0x24($s1) +/* 04B80C 8004AC0C 820E01E0 */ lb $t6, 0x1e0($s0) +/* 04B810 8004AC10 00000000 */ nop +/* 04B814 8004AC14 15C1002C */ bne $t6, $at, .L8004ACC8 +/* 04B818 8004AC18 00000000 */ nop +/* 04B81C 8004AC1C 19000002 */ blez $t0, .L8004AC28 +/* 04B820 8004AC20 240F0001 */ li $t7, 1 +/* 04B824 8004AC24 A20F01D4 */ sb $t7, 0x1d4($s0) +.L8004AC28: +/* 04B828 8004AC28 05010019 */ bgez $t0, .L8004AC90 +/* 04B82C 8004AC2C 29014001 */ slti $at, $t0, 0x4001 +/* 04B830 8004AC30 86380002 */ lh $t8, 2($s1) +/* 04B834 8004AC34 00000000 */ nop +/* 04B838 8004AC38 07000015 */ bltz $t8, .L8004AC90 +/* 04B83C 8004AC3C 29014001 */ slti $at, $t0, 0x4001 +/* 04B840 8004AC40 821901D4 */ lb $t9, 0x1d4($s0) +/* 04B844 8004AC44 2404000A */ li $a0, 10 +/* 04B848 8004AC48 13200011 */ beqz $t9, .L8004AC90 +/* 04B84C 8004AC4C 29014001 */ slti $at, $t0, 0x4001 +/* 04B850 8004AC50 A20001E0 */ sb $zero, 0x1e0($s0) +/* 04B854 8004AC54 A6200002 */ sh $zero, 2($s1) +/* 04B858 8004AC58 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B85C 8004AC5C 0C00322D */ jal normalise_time +/* 04B860 8004AC60 AFA800B8 */ sw $t0, 0xb8($sp) +/* 04B864 8004AC64 920B020C */ lbu $t3, 0x20c($s0) +/* 04B868 8004AC68 8FA800B8 */ lw $t0, 0xb8($sp) +/* 04B86C 8004AC6C C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B870 8004AC70 A20201D3 */ sb $v0, 0x1d3($s0) +/* 04B874 8004AC74 11600005 */ beqz $t3, .L8004AC8C +/* 04B878 8004AC78 A2000203 */ sb $zero, 0x203($s0) +/* 04B87C 8004AC7C 820C0203 */ lb $t4, 0x203($s0) +/* 04B880 8004AC80 00000000 */ nop +/* 04B884 8004AC84 358D0004 */ ori $t5, $t4, 4 +/* 04B888 8004AC88 A20D0203 */ sb $t5, 0x203($s0) +.L8004AC8C: +/* 04B88C 8004AC8C 29014001 */ slti $at, $t0, 0x4001 +.L8004AC90: +/* 04B890 8004AC90 142001A6 */ bnez $at, .L8004B32C +/* 04B894 8004AC94 00000000 */ nop +/* 04B898 8004AC98 862E0002 */ lh $t6, 2($s1) +/* 04B89C 8004AC9C 3C0F8012 */ lui $t7, %hi(gCurrentRacerInput) # $t7, 0x8012 +/* 04B8A0 8004ACA0 29C1C000 */ slti $at, $t6, -0x4000 +/* 04B8A4 8004ACA4 102001A1 */ beqz $at, .L8004B32C +/* 04B8A8 8004ACA8 00000000 */ nop +/* 04B8AC 8004ACAC 8DEFD528 */ lw $t7, %lo(gCurrentRacerInput)($t7) +/* 04B8B0 8004ACB0 2419003C */ li $t9, 60 +/* 04B8B4 8004ACB4 31F80010 */ andi $t8, $t7, 0x10 +/* 04B8B8 8004ACB8 1300019C */ beqz $t8, .L8004B32C +/* 04B8BC 8004ACBC 00000000 */ nop +/* 04B8C0 8004ACC0 1000019A */ b .L8004B32C +/* 04B8C4 8004ACC4 A21901D5 */ sb $t9, 0x1d5($s0) +.L8004ACC8: +/* 04B8C8 8004ACC8 05010002 */ bgez $t0, .L8004ACD4 +/* 04B8CC 8004ACCC 240B0001 */ li $t3, 1 +/* 04B8D0 8004ACD0 A20B01D4 */ sb $t3, 0x1d4($s0) +.L8004ACD4: +/* 04B8D4 8004ACD4 19000019 */ blez $t0, .L8004AD3C +/* 04B8D8 8004ACD8 2901C000 */ slti $at, $t0, -0x4000 +/* 04B8DC 8004ACDC 862C0002 */ lh $t4, 2($s1) +/* 04B8E0 8004ACE0 00000000 */ nop +/* 04B8E4 8004ACE4 1D800015 */ bgtz $t4, .L8004AD3C +/* 04B8E8 8004ACE8 2901C000 */ slti $at, $t0, -0x4000 +/* 04B8EC 8004ACEC 820D01D4 */ lb $t5, 0x1d4($s0) +/* 04B8F0 8004ACF0 2404000A */ li $a0, 10 +/* 04B8F4 8004ACF4 11A00011 */ beqz $t5, .L8004AD3C +/* 04B8F8 8004ACF8 2901C000 */ slti $at, $t0, -0x4000 +/* 04B8FC 8004ACFC A20001E0 */ sb $zero, 0x1e0($s0) +/* 04B900 8004AD00 A6200002 */ sh $zero, 2($s1) +/* 04B904 8004AD04 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04B908 8004AD08 0C00322D */ jal normalise_time +/* 04B90C 8004AD0C AFA800B8 */ sw $t0, 0xb8($sp) +/* 04B910 8004AD10 920E020C */ lbu $t6, 0x20c($s0) +/* 04B914 8004AD14 8FA800B8 */ lw $t0, 0xb8($sp) +/* 04B918 8004AD18 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04B91C 8004AD1C A20201D3 */ sb $v0, 0x1d3($s0) +/* 04B920 8004AD20 11C00005 */ beqz $t6, .L8004AD38 +/* 04B924 8004AD24 A2000203 */ sb $zero, 0x203($s0) +/* 04B928 8004AD28 820F0203 */ lb $t7, 0x203($s0) +/* 04B92C 8004AD2C 00000000 */ nop +/* 04B930 8004AD30 35F80004 */ ori $t8, $t7, 4 +/* 04B934 8004AD34 A2180203 */ sb $t8, 0x203($s0) +.L8004AD38: +/* 04B938 8004AD38 2901C000 */ slti $at, $t0, -0x4000 +.L8004AD3C: +/* 04B93C 8004AD3C 1020017B */ beqz $at, .L8004B32C +/* 04B940 8004AD40 00000000 */ nop +/* 04B944 8004AD44 86390002 */ lh $t9, 2($s1) +/* 04B948 8004AD48 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 +/* 04B94C 8004AD4C 2B214001 */ slti $at, $t9, 0x4001 +/* 04B950 8004AD50 14200176 */ bnez $at, .L8004B32C +/* 04B954 8004AD54 00000000 */ nop +/* 04B958 8004AD58 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) +/* 04B95C 8004AD5C 240D003C */ li $t5, 60 +/* 04B960 8004AD60 316C0010 */ andi $t4, $t3, 0x10 +/* 04B964 8004AD64 11800171 */ beqz $t4, .L8004B32C +/* 04B968 8004AD68 00000000 */ nop +/* 04B96C 8004AD6C 1000016F */ b .L8004B32C +/* 04B970 8004AD70 A20D01D5 */ sb $t5, 0x1d5($s0) +.L8004AD74: +/* 04B974 8004AD74 820401E1 */ lb $a0, 0x1e1($s0) +/* 04B978 8004AD78 A3A000A1 */ sb $zero, 0xa1($sp) +/* 04B97C 8004AD7C 820301E2 */ lb $v1, 0x1e2($s0) +/* 04B980 8004AD80 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 +/* 04B984 8004AD84 1060000B */ beqz $v1, .L8004ADB4 +/* 04B988 8004AD88 2401FFEF */ li $at, -17 +/* 04B98C 8004AD8C 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) +/* 04B990 8004AD90 240F0001 */ li $t7, 1 +/* 04B994 8004AD94 304E0010 */ andi $t6, $v0, 0x10 +/* 04B998 8004AD98 11C00002 */ beqz $t6, .L8004ADA4 +/* 04B99C 8004AD9C 0041C024 */ and $t8, $v0, $at +/* 04B9A0 8004ADA0 A3AF00A1 */ sb $t7, 0xa1($sp) +.L8004ADA4: +/* 04B9A4 8004ADA4 3C018012 */ lui $at, %hi(gCurrentRacerInput) # $at, 0x8012 +/* 04B9A8 8004ADA8 AC38D528 */ sw $t8, %lo(gCurrentRacerInput)($at) +/* 04B9AC 8004ADAC 820301E2 */ lb $v1, 0x1e2($s0) +/* 04B9B0 8004ADB0 00000000 */ nop +.L8004ADB4: +/* 04B9B4 8004ADB4 28610002 */ slti $at, $v1, 2 +/* 04B9B8 8004ADB8 10200083 */ beqz $at, .L8004AFC8 +/* 04B9BC 8004ADBC 00000000 */ nop +/* 04B9C0 8004ADC0 86230002 */ lh $v1, 2($s1) +/* 04B9C4 8004ADC4 00804025 */ move $t0, $a0 +/* 04B9C8 8004ADC8 28613001 */ slti $at, $v1, 0x3001 +/* 04B9CC 8004ADCC 14200007 */ bnez $at, .L8004ADEC +/* 04B9D0 8004ADD0 00002025 */ move $a0, $zero +/* 04B9D4 8004ADD4 2464D000 */ addiu $a0, $v1, -0x3000 +/* 04B9D8 8004ADD8 28811001 */ slti $at, $a0, 0x1001 +/* 04B9DC 8004ADDC 1420000C */ bnez $at, .L8004AE10 +/* 04B9E0 8004ADE0 00000000 */ nop +/* 04B9E4 8004ADE4 1000000A */ b .L8004AE10 +/* 04B9E8 8004ADE8 24041000 */ li $a0, 4096 +.L8004ADEC: +/* 04B9EC 8004ADEC 2861D000 */ slti $at, $v1, -0x3000 +/* 04B9F0 8004ADF0 10200007 */ beqz $at, .L8004AE10 +/* 04B9F4 8004ADF4 00000000 */ nop +/* 04B9F8 8004ADF8 24643000 */ addiu $a0, $v1, 0x3000 +/* 04B9FC 8004ADFC 2881F000 */ slti $at, $a0, -0x1000 +/* 04BA00 8004AE00 10200003 */ beqz $at, .L8004AE10 +/* 04BA04 8004AE04 00042023 */ negu $a0, $a0 +/* 04BA08 8004AE08 2404F000 */ li $a0, -4096 +/* 04BA0C 8004AE0C 00042023 */ negu $a0, $a0 +.L8004AE10: +/* 04BA10 8004AE10 44842000 */ mtc1 $a0, $f4 +/* 04BA14 8004AE14 3C014580 */ li $at, 0x45800000 # 4096.000000 +/* 04BA18 8004AE18 468022A0 */ cvt.s.w $f10, $f4 +/* 04BA1C 8004AE1C 44814000 */ mtc1 $at, $f8 +/* 04BA20 8004AE20 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04BA24 8004AE24 46085183 */ div.s $f6, $f10, $f8 +/* 04BA28 8004AE28 44812800 */ mtc1 $at, $f5 +/* 04BA2C 8004AE2C 44802000 */ mtc1 $zero, $f4 +/* 04BA30 8004AE30 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 +/* 04BA34 8004AE34 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) +/* 04BA38 8004AE38 00000000 */ nop +/* 04BA3C 8004AE3C 316C0010 */ andi $t4, $t3, 0x10 +/* 04BA40 8004AE40 460034A1 */ cvt.d.s $f18, $f6 +/* 04BA44 8004AE44 44883000 */ mtc1 $t0, $f6 +/* 04BA48 8004AE48 46322281 */ sub.d $f10, $f4, $f18 +/* 04BA4C 8004AE4C 46803120 */ cvt.s.w $f4, $f6 +/* 04BA50 8004AE50 46205220 */ cvt.s.d $f8, $f10 +/* 04BA54 8004AE54 46082482 */ mul.s $f18, $f4, $f8 +/* 04BA58 8004AE58 4459F800 */ cfc1 $t9, $31 +/* 04BA5C 8004AE5C 00000000 */ nop +/* 04BA60 8004AE60 37210003 */ ori $at, $t9, 3 +/* 04BA64 8004AE64 38210002 */ xori $at, $at, 2 +/* 04BA68 8004AE68 44C1F800 */ ctc1 $at, $31 +/* 04BA6C 8004AE6C 00000000 */ nop +/* 04BA70 8004AE70 460092A4 */ cvt.w.s $f10, $f18 +/* 04BA74 8004AE74 44085000 */ mfc1 $t0, $f10 +/* 04BA78 8004AE78 44D9F800 */ ctc1 $t9, $31 +/* 04BA7C 8004AE7C 1180000D */ beqz $t4, .L8004AEB4 +/* 04BA80 8004AE80 8FAF00F8 */ lw $t7, 0xf8($sp) +/* 04BA84 8004AE84 8E2D0074 */ lw $t5, 0x74($s1) +/* 04BA88 8004AE88 00087900 */ sll $t7, $t0, 4 +/* 04BA8C 8004AE8C 35AE00C0 */ ori $t6, $t5, 0xc0 +/* 04BA90 8004AE90 AE2E0074 */ sw $t6, 0x74($s1) +/* 04BA94 8004AE94 8FB800F8 */ lw $t8, 0xf8($sp) +/* 04BA98 8004AE98 860C01A4 */ lh $t4, 0x1a4($s0) +/* 04BA9C 8004AE9C 01F80019 */ multu $t7, $t8 +/* 04BAA0 8004AEA0 0000C812 */ mflo $t9 +/* 04BAA4 8004AEA4 00195843 */ sra $t3, $t9, 1 +/* 04BAA8 8004AEA8 018B6823 */ subu $t5, $t4, $t3 +/* 04BAAC 8004AEAC A60D01A4 */ sh $t5, 0x1a4($s0) +/* 04BAB0 8004AEB0 8FAF00F8 */ lw $t7, 0xf8($sp) +.L8004AEB4: +/* 04BAB4 8004AEB4 860E01A4 */ lh $t6, 0x1a4($s0) +/* 04BAB8 8004AEB8 010F0019 */ multu $t0, $t7 +/* 04BABC 8004AEBC 0000C012 */ mflo $t8 +/* 04BAC0 8004AEC0 0018C880 */ sll $t9, $t8, 2 +/* 04BAC4 8004AEC4 0338C821 */ addu $t9, $t9, $t8 +/* 04BAC8 8004AEC8 0019C880 */ sll $t9, $t9, 2 +/* 04BACC 8004AECC 00196043 */ sra $t4, $t9, 1 +/* 04BAD0 8004AED0 01CC5823 */ subu $t3, $t6, $t4 +/* 04BAD4 8004AED4 A60B01A4 */ sh $t3, 0x1a4($s0) +/* 04BAD8 8004AED8 860301A4 */ lh $v1, 0x1a4($s0) +/* 04BADC 8004AEDC 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 04BAE0 8004AEE0 920E01F5 */ lbu $t6, 0x1f5($s0) +/* 04BAE4 8004AEE4 006D0019 */ multu $v1, $t5 +/* 04BAE8 8004AEE8 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 +/* 04BAEC 8004AEEC 00007812 */ mflo $t7 +/* 04BAF0 8004AEF0 000FC103 */ sra $t8, $t7, 4 +/* 04BAF4 8004AEF4 0078C823 */ subu $t9, $v1, $t8 +/* 04BAF8 8004AEF8 15C00056 */ bnez $t6, .L8004B054 +/* 04BAFC 8004AEFC A61901A4 */ sh $t9, 0x1a4($s0) +/* 04BB00 8004AF00 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) +/* 04BB04 8004AF04 2401FFFF */ li $at, -1 +/* 04BB08 8004AF08 11810025 */ beq $t4, $at, .L8004AFA0 +/* 04BB0C 8004AF0C 3C088012 */ lui $t0, %hi(gCurrentStickX) # $t0, 0x8012 +/* 04BB10 8004AF10 820B01D8 */ lb $t3, 0x1d8($s0) +/* 04BB14 8004AF14 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 +/* 04BB18 8004AF18 15600021 */ bnez $t3, .L8004AFA0 +/* 04BB1C 8004AF1C 00000000 */ nop +/* 04BB20 8004AF20 860801A4 */ lh $t0, 0x1a4($s0) +/* 04BB24 8004AF24 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) +/* 04BB28 8004AF28 00084023 */ negu $t0, $t0 +/* 04BB2C 8004AF2C 00086983 */ sra $t5, $t0, 6 +/* 04BB30 8004AF30 304F0010 */ andi $t7, $v0, 0x10 +/* 04BB34 8004AF34 11E00005 */ beqz $t7, .L8004AF4C +/* 04BB38 8004AF38 01A04025 */ move $t0, $t5 +/* 04BB3C 8004AF3C 30584000 */ andi $t8, $v0, 0x4000 +/* 04BB40 8004AF40 13000002 */ beqz $t8, .L8004AF4C +/* 04BB44 8004AF44 00000000 */ nop +/* 04BB48 8004AF48 000D4040 */ sll $t0, $t5, 1 +.L8004AF4C: +/* 04BB4C 8004AF4C 44883000 */ mtc1 $t0, $f6 +/* 04BB50 8004AF50 3C018012 */ lui $at, %hi(gCurrentRacerHandlingStat) # $at, 0x8012 +/* 04BB54 8004AF54 46803120 */ cvt.s.w $f4, $f6 +/* 04BB58 8004AF58 C428D570 */ lwc1 $f8, %lo(gCurrentRacerHandlingStat)($at) +/* 04BB5C 8004AF5C 8FAB00F8 */ lw $t3, 0xf8($sp) +/* 04BB60 8004AF60 46082482 */ mul.s $f18, $f4, $f8 +/* 04BB64 8004AF64 860C01A0 */ lh $t4, 0x1a0($s0) +/* 04BB68 8004AF68 444EF800 */ cfc1 $t6, $31 +/* 04BB6C 8004AF6C 00000000 */ nop +/* 04BB70 8004AF70 35C10003 */ ori $at, $t6, 3 +/* 04BB74 8004AF74 38210002 */ xori $at, $at, 2 +/* 04BB78 8004AF78 44C1F800 */ ctc1 $at, $31 +/* 04BB7C 8004AF7C 00000000 */ nop +/* 04BB80 8004AF80 460092A4 */ cvt.w.s $f10, $f18 +/* 04BB84 8004AF84 44085000 */ mfc1 $t0, $f10 +/* 04BB88 8004AF88 44CEF800 */ ctc1 $t6, $31 +/* 04BB8C 8004AF8C 010B0019 */ multu $t0, $t3 +/* 04BB90 8004AF90 00007812 */ mflo $t7 +/* 04BB94 8004AF94 018FC023 */ subu $t8, $t4, $t7 +/* 04BB98 8004AF98 1000002E */ b .L8004B054 +/* 04BB9C 8004AF9C A61801A0 */ sh $t8, 0x1a0($s0) +.L8004AFA0: +/* 04BBA0 8004AFA0 8D08D534 */ lw $t0, %lo(gCurrentStickX)($t0) +/* 04BBA4 8004AFA4 8FAB00F8 */ lw $t3, 0xf8($sp) +/* 04BBA8 8004AFA8 0008C880 */ sll $t9, $t0, 2 +/* 04BBAC 8004AFAC 032B0019 */ multu $t9, $t3 +/* 04BBB0 8004AFB0 860E01A0 */ lh $t6, 0x1a0($s0) +/* 04BBB4 8004AFB4 03204025 */ move $t0, $t9 +/* 04BBB8 8004AFB8 00006012 */ mflo $t4 +/* 04BBBC 8004AFBC 01CC7823 */ subu $t7, $t6, $t4 +/* 04BBC0 8004AFC0 10000024 */ b .L8004B054 +/* 04BBC4 8004AFC4 A60F01A0 */ sh $t7, 0x1a0($s0) +.L8004AFC8: +/* 04BBC8 8004AFC8 860301A4 */ lh $v1, 0x1a4($s0) +/* 04BBCC 8004AFCC 34018001 */ li $at, 32769 +/* 04BBD0 8004AFD0 3062FFFF */ andi $v0, $v1, 0xffff +/* 04BBD4 8004AFD4 00021023 */ negu $v0, $v0 +/* 04BBD8 8004AFD8 0041082A */ slt $at, $v0, $at +/* 04BBDC 8004AFDC 8FB800F8 */ lw $t8, 0xf8($sp) +/* 04BBE0 8004AFE0 14200004 */ bnez $at, .L8004AFF4 +/* 04BBE4 8004AFE4 00044080 */ sll $t0, $a0, 2 +/* 04BBE8 8004AFE8 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 04BBEC 8004AFEC 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 04BBF0 8004AFF0 00411021 */ addu $v0, $v0, $at +.L8004AFF4: +/* 04BBF4 8004AFF4 28418000 */ slti $at, $v0, -0x8000 +/* 04BBF8 8004AFF8 10200002 */ beqz $at, .L8004B004 +/* 04BBFC 8004AFFC 3401FFFF */ li $at, 65535 +/* 04BC00 8004B000 00411021 */ addu $v0, $v0, $at +.L8004B004: +/* 04BC04 8004B004 00580019 */ multu $v0, $t8 +/* 04BC08 8004B008 3C0E8012 */ lui $t6, %hi(gCurrentRacerInput) # $t6, 0x8012 +/* 04BC0C 8004B00C 0000C812 */ mflo $t9 +/* 04BC10 8004B010 00195903 */ sra $t3, $t9, 4 +/* 04BC14 8004B014 006B6821 */ addu $t5, $v1, $t3 +/* 04BC18 8004B018 A60D01A4 */ sh $t5, 0x1a4($s0) +/* 04BC1C 8004B01C 8DCED528 */ lw $t6, %lo(gCurrentRacerInput)($t6) +/* 04BC20 8004B020 8FB800F8 */ lw $t8, 0xf8($sp) +/* 04BC24 8004B024 31CC0010 */ andi $t4, $t6, 0x10 +/* 04BC28 8004B028 11800005 */ beqz $t4, .L8004B040 +/* 04BC2C 8004B02C 00000000 */ nop +/* 04BC30 8004B030 00044080 */ sll $t0, $a0, 2 +/* 04BC34 8004B034 01044023 */ subu $t0, $t0, $a0 +/* 04BC38 8004B038 10000001 */ b .L8004B040 +/* 04BC3C 8004B03C 00084040 */ sll $t0, $t0, 1 +.L8004B040: +/* 04BC40 8004B040 01180019 */ multu $t0, $t8 +/* 04BC44 8004B044 860F01A0 */ lh $t7, 0x1a0($s0) +/* 04BC48 8004B048 00005812 */ mflo $t3 +/* 04BC4C 8004B04C 01EB6823 */ subu $t5, $t7, $t3 +/* 04BC50 8004B050 A60D01A0 */ sh $t5, 0x1a0($s0) +.L8004B054: +/* 04BC54 8004B054 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 +/* 04BC58 8004B058 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) +/* 04BC5C 8004B05C 3C0F8012 */ lui $t7, %hi(gCurrentPlayerIndex) # $t7, 0x8012 +/* 04BC60 8004B060 304E0010 */ andi $t6, $v0, 0x10 +/* 04BC64 8004B064 11C00009 */ beqz $t6, .L8004B08C +/* 04BC68 8004B068 01C01025 */ move $v0, $t6 +/* 04BC6C 8004B06C 820C01E2 */ lb $t4, 0x1e2($s0) +/* 04BC70 8004B070 00000000 */ nop +/* 04BC74 8004B074 11800005 */ beqz $t4, .L8004B08C +/* 04BC78 8004B078 00000000 */ nop +/* 04BC7C 8004B07C 921801F5 */ lbu $t8, 0x1f5($s0) +/* 04BC80 8004B080 00000000 */ nop +/* 04BC84 8004B084 13000020 */ beqz $t8, .L8004B108 +/* 04BC88 8004B088 00000000 */ nop +.L8004B08C: +/* 04BC8C 8004B08C 44882000 */ mtc1 $t0, $f4 +/* 04BC90 8004B090 C606002C */ lwc1 $f6, 0x2c($s0) +/* 04BC94 8004B094 46802220 */ cvt.s.w $f8, $f4 +/* 04BC98 8004B098 3C01800E */ lui $at, %hi(D_800E6510 + 4) # $at, 0x800e +/* 04BC9C 8004B09C C4256510 */ lwc1 $f5, %lo(D_800E6510)($at) +/* 04BCA0 8004B0A0 46083482 */ mul.s $f18, $f6, $f8 +/* 04BCA4 8004B0A4 C4246514 */ lwc1 $f4, %lo(D_800E6510 + 4)($at) +/* 04BCA8 8004B0A8 C628001C */ lwc1 $f8, 0x1c($s1) +/* 04BCAC 8004B0AC 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 +/* 04BCB0 8004B0B0 460092A1 */ cvt.d.s $f10, $f18 +/* 04BCB4 8004B0B4 46245182 */ mul.d $f6, $f10, $f4 +/* 04BCB8 8004B0B8 C6120050 */ lwc1 $f18, 0x50($s0) +/* 04BCBC 8004B0BC 46203520 */ cvt.s.d $f20, $f6 +/* 04BCC0 8004B0C0 C6260020 */ lwc1 $f6, 0x20($s1) +/* 04BCC4 8004B0C4 46149282 */ mul.s $f10, $f18, $f20 +/* 04BCC8 8004B0C8 460A4101 */ sub.s $f4, $f8, $f10 +/* 04BCCC 8004B0CC E624001C */ swc1 $f4, 0x1c($s1) +/* 04BCD0 8004B0D0 C6120054 */ lwc1 $f18, 0x54($s0) +/* 04BCD4 8004B0D4 C6240024 */ lwc1 $f4, 0x24($s1) +/* 04BCD8 8004B0D8 46149202 */ mul.s $f8, $f18, $f20 +/* 04BCDC 8004B0DC 46083281 */ sub.s $f10, $f6, $f8 +/* 04BCE0 8004B0E0 E62A0020 */ swc1 $f10, 0x20($s1) +/* 04BCE4 8004B0E4 C6120058 */ lwc1 $f18, 0x58($s0) +/* 04BCE8 8004B0E8 00000000 */ nop +/* 04BCEC 8004B0EC 46149182 */ mul.s $f6, $f18, $f20 +/* 04BCF0 8004B0F0 46062201 */ sub.s $f8, $f4, $f6 +/* 04BCF4 8004B0F4 E6280024 */ swc1 $f8, 0x24($s1) +/* 04BCF8 8004B0F8 8C42D528 */ lw $v0, %lo(gCurrentRacerInput)($v0) +/* 04BCFC 8004B0FC 00000000 */ nop +/* 04BD00 8004B100 30590010 */ andi $t9, $v0, 0x10 +/* 04BD04 8004B104 03201025 */ move $v0, $t9 +.L8004B108: +/* 04BD08 8004B108 8DEFD55C */ lw $t7, %lo(gCurrentPlayerIndex)($t7) +/* 04BD0C 8004B10C 3C088012 */ lui $t0, %hi(gCurrentStickY) # $t0, 0x8012 +/* 04BD10 8004B110 8D08D538 */ lw $t0, %lo(gCurrentStickY)($t0) +/* 04BD14 8004B114 2401FFFF */ li $at, -1 +/* 04BD18 8004B118 11E10007 */ beq $t7, $at, .L8004B138 +/* 04BD1C 8004B11C 00000000 */ nop +/* 04BD20 8004B120 820B01D8 */ lb $t3, 0x1d8($s0) +/* 04BD24 8004B124 00000000 */ nop +/* 04BD28 8004B128 15600003 */ bnez $t3, .L8004B138 +/* 04BD2C 8004B12C 00000000 */ nop +/* 04BD30 8004B130 820801E8 */ lb $t0, 0x1e8($s0) +/* 04BD34 8004B134 00000000 */ nop +.L8004B138: +/* 04BD38 8004B138 C602002C */ lwc1 $f2, 0x2c($s0) +/* 04BD3C 8004B13C 3C014010 */ li $at, 0x40100000 # 2.250000 +/* 04BD40 8004B140 44815800 */ mtc1 $at, $f11 +/* 04BD44 8004B144 44805000 */ mtc1 $zero, $f10 +/* 04BD48 8004B148 46001087 */ neg.s $f2, $f2 +/* 04BD4C 8004B14C 46001021 */ cvt.d.s $f0, $f2 +/* 04BD50 8004B150 462A003C */ c.lt.d $f0, $f10 +/* 04BD54 8004B154 44809000 */ mtc1 $zero, $f18 +/* 04BD58 8004B158 45000004 */ bc1f .L8004B16C +/* 04BD5C 8004B15C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04BD60 8004B160 44811000 */ mtc1 $at, $f2 +/* 04BD64 8004B164 00000000 */ nop +/* 04BD68 8004B168 46001021 */ cvt.d.s $f0, $f2 +.L8004B16C: +/* 04BD6C 8004B16C 3C01402C */ li $at, 0x402C0000 # 2.687500 +/* 04BD70 8004B170 44819800 */ mtc1 $at, $f19 +/* 04BD74 8004B174 44802000 */ mtc1 $zero, $f4 +/* 04BD78 8004B178 4620903C */ c.lt.d $f18, $f0 +/* 04BD7C 8004B17C 8FAB00F8 */ lw $t3, 0xf8($sp) +/* 04BD80 8004B180 45000004 */ bc1f .L8004B194 +/* 04BD84 8004B184 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 04BD88 8004B188 44811000 */ mtc1 $at, $f2 +/* 04BD8C 8004B18C 00000000 */ nop +/* 04BD90 8004B190 46001021 */ cvt.d.s $f0, $f2 +.L8004B194: +/* 04BD94 8004B194 3C01401C */ li $at, 0x401C0000 # 2.437500 +/* 04BD98 8004B198 44812800 */ mtc1 $at, $f5 +/* 04BD9C 8004B19C 44884000 */ mtc1 $t0, $f8 +/* 04BDA0 8004B1A0 46240183 */ div.d $f6, $f0, $f4 +/* 04BDA4 8004B1A4 468042A0 */ cvt.s.w $f10, $f8 +/* 04BDA8 8004B1A8 8FAC00F8 */ lw $t4, 0xf8($sp) +/* 04BDAC 8004B1AC 462030A0 */ cvt.s.d $f2, $f6 +/* 04BDB0 8004B1B0 46025482 */ mul.s $f18, $f10, $f2 +/* 04BDB4 8004B1B4 444DF800 */ cfc1 $t5, $31 +/* 04BDB8 8004B1B8 00000000 */ nop +/* 04BDBC 8004B1BC 35A10003 */ ori $at, $t5, 3 +/* 04BDC0 8004B1C0 38210002 */ xori $at, $at, 2 +/* 04BDC4 8004B1C4 44C1F800 */ ctc1 $at, $31 +/* 04BDC8 8004B1C8 00000000 */ nop +/* 04BDCC 8004B1CC 46009124 */ cvt.w.s $f4, $f18 +/* 04BDD0 8004B1D0 44082000 */ mfc1 $t0, $f4 +/* 04BDD4 8004B1D4 44CDF800 */ ctc1 $t5, $31 +/* 04BDD8 8004B1D8 14400014 */ bnez $v0, .L8004B22C +/* 04BDDC 8004B1DC 00000000 */ nop +/* 04BDE0 8004B1E0 86230002 */ lh $v1, 2($s1) +/* 04BDE4 8004B1E4 00087043 */ sra $t6, $t0, 1 +/* 04BDE8 8004B1E8 006C0019 */ multu $v1, $t4 +/* 04BDEC 8004B1EC 000E5880 */ sll $t3, $t6, 2 +/* 04BDF0 8004B1F0 016E5821 */ addu $t3, $t3, $t6 +/* 04BDF4 8004B1F4 000B5880 */ sll $t3, $t3, 2 +/* 04BDF8 8004B1F8 016E5823 */ subu $t3, $t3, $t6 +/* 04BDFC 8004B1FC 0000C012 */ mflo $t8 +/* 04BE00 8004B200 0018C903 */ sra $t9, $t8, 4 +/* 04BE04 8004B204 00797823 */ subu $t7, $v1, $t9 +/* 04BE08 8004B208 A62F0002 */ sh $t7, 2($s1) +/* 04BE0C 8004B20C 8FAD00F8 */ lw $t5, 0xf8($sp) +/* 04BE10 8004B210 86380002 */ lh $t8, 2($s1) +/* 04BE14 8004B214 016D0019 */ multu $t3, $t5 +/* 04BE18 8004B218 00007012 */ mflo $t6 +/* 04BE1C 8004B21C 000E6043 */ sra $t4, $t6, 1 +/* 04BE20 8004B220 030CC823 */ subu $t9, $t8, $t4 +/* 04BE24 8004B224 10000012 */ b .L8004B270 +/* 04BE28 8004B228 A6390002 */ sh $t9, 2($s1) +.L8004B22C: +/* 04BE2C 8004B22C 86230002 */ lh $v1, 2($s1) +/* 04BE30 8004B230 00087843 */ sra $t7, $t0, 1 +/* 04BE34 8004B234 006B0019 */ multu $v1, $t3 +/* 04BE38 8004B238 000F6100 */ sll $t4, $t7, 4 +/* 04BE3C 8004B23C 018F6023 */ subu $t4, $t4, $t7 +/* 04BE40 8004B240 000C6040 */ sll $t4, $t4, 1 +/* 04BE44 8004B244 00006812 */ mflo $t5 +/* 04BE48 8004B248 000D7103 */ sra $t6, $t5, 4 +/* 04BE4C 8004B24C 006EC023 */ subu $t8, $v1, $t6 +/* 04BE50 8004B250 A6380002 */ sh $t8, 2($s1) +/* 04BE54 8004B254 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04BE58 8004B258 862D0002 */ lh $t5, 2($s1) +/* 04BE5C 8004B25C 01990019 */ multu $t4, $t9 +/* 04BE60 8004B260 00007812 */ mflo $t7 +/* 04BE64 8004B264 000F5843 */ sra $t3, $t7, 1 +/* 04BE68 8004B268 01AB7023 */ subu $t6, $t5, $t3 +/* 04BE6C 8004B26C A62E0002 */ sh $t6, 2($s1) +.L8004B270: +/* 04BE70 8004B270 821801EC */ lb $t8, 0x1ec($s0) +/* 04BE74 8004B274 00000000 */ nop +/* 04BE78 8004B278 1300002C */ beqz $t8, .L8004B32C +/* 04BE7C 8004B27C 00000000 */ nop +/* 04BE80 8004B280 820C01E2 */ lb $t4, 0x1e2($s0) +/* 04BE84 8004B284 A20001EC */ sb $zero, 0x1ec($s0) +/* 04BE88 8004B288 15800028 */ bnez $t4, .L8004B32C +/* 04BE8C 8004B28C 3C01C01A */ li $at, 0xC01A0000 # -2.406250 +/* 04BE90 8004B290 C606002C */ lwc1 $f6, 0x2c($s0) +/* 04BE94 8004B294 44815800 */ mtc1 $at, $f11 +/* 04BE98 8004B298 44805000 */ mtc1 $zero, $f10 +/* 04BE9C 8004B29C 46003221 */ cvt.d.s $f8, $f6 +/* 04BEA0 8004B2A0 462A403C */ c.lt.d $f8, $f10 +/* 04BEA4 8004B2A4 00000000 */ nop +/* 04BEA8 8004B2A8 45000020 */ bc1f .L8004B32C +/* 04BEAC 8004B2AC 00000000 */ nop +/* 04BEB0 8004B2B0 821901E5 */ lb $t9, 0x1e5($s0) +/* 04BEB4 8004B2B4 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 +/* 04BEB8 8004B2B8 1720001C */ bnez $t9, .L8004B32C +/* 04BEBC 8004B2BC 3C0B8012 */ lui $t3, %hi(gCurrentStickY) # $t3, 0x8012 +/* 04BEC0 8004B2C0 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) +/* 04BEC4 8004B2C4 240FFFFF */ li $t7, -1 +/* 04BEC8 8004B2C8 28410029 */ slti $at, $v0, 0x29 +/* 04BECC 8004B2CC 14200005 */ bnez $at, .L8004B2E4 +/* 04BED0 8004B2D0 240D0001 */ li $t5, 1 +/* 04BED4 8004B2D4 A20F01E0 */ sb $t7, 0x1e0($s0) +/* 04BED8 8004B2D8 3C028012 */ lui $v0, %hi(gCurrentStickX) # $v0, 0x8012 +/* 04BEDC 8004B2DC 8C42D534 */ lw $v0, %lo(gCurrentStickX)($v0) +/* 04BEE0 8004B2E0 00000000 */ nop +.L8004B2E4: +/* 04BEE4 8004B2E4 2841FFD8 */ slti $at, $v0, -0x28 +/* 04BEE8 8004B2E8 10200002 */ beqz $at, .L8004B2F4 +/* 04BEEC 8004B2EC 00000000 */ nop +/* 04BEF0 8004B2F0 A20D01E0 */ sb $t5, 0x1e0($s0) +.L8004B2F4: +/* 04BEF4 8004B2F4 8D6BD538 */ lw $t3, %lo(gCurrentStickY)($t3) +/* 04BEF8 8004B2F8 00000000 */ nop +/* 04BEFC 8004B2FC 29610029 */ slti $at, $t3, 0x29 +/* 04BF00 8004B300 14200003 */ bnez $at, .L8004B310 +/* 04BF04 8004B304 00000000 */ nop +/* 04BF08 8004B308 10000006 */ b .L8004B324 +/* 04BF0C 8004B30C A20501E0 */ sb $a1, 0x1e0($s0) +.L8004B310: +/* 04BF10 8004B310 820E01E0 */ lb $t6, 0x1e0($s0) +/* 04BF14 8004B314 24180002 */ li $t8, 2 +/* 04BF18 8004B318 15C00002 */ bnez $t6, .L8004B324 +/* 04BF1C 8004B31C 00000000 */ nop +/* 04BF20 8004B320 A21801E0 */ sb $t8, 0x1e0($s0) +.L8004B324: +/* 04BF24 8004B324 A20001D4 */ sb $zero, 0x1d4($s0) +/* 04BF28 8004B328 A20001D5 */ sb $zero, 0x1d5($s0) +.L8004B32C: +/* 04BF2C 8004B32C 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 +/* 04BF30 8004B330 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) +/* 04BF34 8004B334 2401FFFF */ li $at, -1 +/* 04BF38 8004B338 1181000F */ beq $t4, $at, .L8004B378 +/* 04BF3C 8004B33C 02202025 */ move $a0, $s1 +/* 04BF40 8004B340 3C01C080 */ li $at, 0xC0800000 # -4.000000 +/* 04BF44 8004B344 44812000 */ mtc1 $at, $f4 +/* 04BF48 8004B348 C612002C */ lwc1 $f18, 0x2c($s0) +/* 04BF4C 8004B34C 00000000 */ nop +/* 04BF50 8004B350 4604903C */ c.lt.s $f18, $f4 +/* 04BF54 8004B354 00000000 */ nop +/* 04BF58 8004B358 45000008 */ bc1f .L8004B37C +/* 04BF5C 8004B35C 02002825 */ move $a1, $s0 +/* 04BF60 8004B360 8E220074 */ lw $v0, 0x74($s1) +/* 04BF64 8004B364 240100C0 */ li $at, 192 +/* 04BF68 8004B368 305900C0 */ andi $t9, $v0, 0xc0 +/* 04BF6C 8004B36C 13210002 */ beq $t9, $at, .L8004B378 +/* 04BF70 8004B370 344F000C */ ori $t7, $v0, 0xc +/* 04BF74 8004B374 AE2F0074 */ sw $t7, 0x74($s1) +.L8004B378: +/* 04BF78 8004B378 02002825 */ move $a1, $s0 +.L8004B37C: +/* 04BF7C 8004B37C 0C015C88 */ jal handle_racer_top_speed +/* 04BF80 8004B380 E7AE00DC */ swc1 $f14, 0xdc($sp) +/* 04BF84 8004B384 C7AE00DC */ lwc1 $f14, 0xdc($sp) +/* 04BF88 8004B388 3C01800E */ lui $at, %hi(D_800E6518 + 4) # $at, 0x800e +/* 04BF8C 8004B38C 46007382 */ mul.s $f14, $f14, $f0 +/* 04BF90 8004B390 C4296518 */ lwc1 $f9, %lo(D_800E6518)($at) +/* 04BF94 8004B394 C428651C */ lwc1 $f8, %lo(D_800E6518 + 4)($at) +/* 04BF98 8004B398 820201D3 */ lb $v0, 0x1d3($s0) +/* 04BF9C 8004B39C 460071A1 */ cvt.d.s $f6, $f14 +/* 04BFA0 8004B3A0 46283282 */ mul.d $f10, $f6, $f8 +/* 04BFA4 8004B3A4 18400012 */ blez $v0, .L8004B3F0 +/* 04BFA8 8004B3A8 462053A0 */ cvt.s.d $f14, $f10 +/* 04BFAC 8004B3AC 3C0D8012 */ lui $t5, %hi(gRaceStartTimer) # $t5, 0x8012 +/* 04BFB0 8004B3B0 8DADD540 */ lw $t5, %lo(gRaceStartTimer)($t5) +/* 04BFB4 8004B3B4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04BFB8 8004B3B8 15A0000E */ bnez $t5, .L8004B3F4 +/* 04BFBC 8004B3BC 00000000 */ nop +/* 04BFC0 8004B3C0 44819000 */ mtc1 $at, $f18 +/* 04BFC4 8004B3C4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04BFC8 8004B3C8 E61200B4 */ swc1 $f18, 0xb4($s0) +/* 04BFCC 8004B3CC 8FAB00F8 */ lw $t3, 0xf8($sp) +/* 04BFD0 8004B3D0 44817000 */ mtc1 $at, $f14 +/* 04BFD4 8004B3D4 004B7023 */ subu $t6, $v0, $t3 +/* 04BFD8 8004B3D8 A20E01D3 */ sb $t6, 0x1d3($s0) +/* 04BFDC 8004B3DC 8E380074 */ lw $t8, 0x74($s1) +/* 04BFE0 8004B3E0 00000000 */ nop +/* 04BFE4 8004B3E4 370C00C0 */ ori $t4, $t8, 0xc0 +/* 04BFE8 8004B3E8 10000002 */ b .L8004B3F4 +/* 04BFEC 8004B3EC AE2C0074 */ sw $t4, 0x74($s1) +.L8004B3F0: +/* 04BFF0 8004B3F0 A20001D3 */ sb $zero, 0x1d3($s0) +.L8004B3F4: +/* 04BFF4 8004B3F4 921901F5 */ lbu $t9, 0x1f5($s0) +/* 04BFF8 8004B3F8 00000000 */ nop +/* 04BFFC 8004B3FC 17200128 */ bnez $t9, .L8004B8A0 +/* 04C000 8004B400 3C0F8012 */ lui $t7, %hi(gRaceStartTimer) # $t7, 0x8012 +/* 04C004 8004B404 8DEFD540 */ lw $t7, %lo(gRaceStartTimer)($t7) +/* 04C008 8004B408 00000000 */ nop +/* 04C00C 8004B40C 15E00124 */ bnez $t7, .L8004B8A0 +/* 04C010 8004B410 00000000 */ nop +/* 04C014 8004B414 820D01E2 */ lb $t5, 0x1e2($s0) +/* 04C018 8004B418 C7A400C8 */ lwc1 $f4, 0xc8($sp) +/* 04C01C 8004B41C 15A0000F */ bnez $t5, .L8004B45C +/* 04C020 8004B420 3C01800E */ lui $at, %hi(D_800E6520 + 4) # $at, 0x800e +/* 04C024 8004B424 C4296520 */ lwc1 $f9, %lo(D_800E6520)($at) +/* 04C028 8004B428 C4286524 */ lwc1 $f8, %lo(D_800E6520 + 4)($at) +/* 04C02C 8004B42C 460021A1 */ cvt.d.s $f6, $f4 +/* 04C030 8004B430 4628303C */ c.lt.d $f6, $f8 +/* 04C034 8004B434 00000000 */ nop +/* 04C038 8004B438 45000008 */ bc1f .L8004B45C +/* 04C03C 8004B43C 00000000 */ nop +/* 04C040 8004B440 820B01D6 */ lb $t3, 0x1d6($s0) +/* 04C044 8004B444 2401000A */ li $at, 10 +/* 04C048 8004B448 11610004 */ beq $t3, $at, .L8004B45C +/* 04C04C 8004B44C 3C01800E */ lui $at, %hi(D_800E6528) # $at, 0x800e +/* 04C050 8004B450 C4206528 */ lwc1 $f0, %lo(D_800E6528)($at) +/* 04C054 8004B454 00000000 */ nop +/* 04C058 8004B458 E7A000C8 */ swc1 $f0, 0xc8($sp) +.L8004B45C: +/* 04C05C 8004B45C C7A000C8 */ lwc1 $f0, 0xc8($sp) +/* 04C060 8004B460 C6120038 */ lwc1 $f18, 0x38($s0) +/* 04C064 8004B464 460E0002 */ mul.s $f0, $f0, $f14 +/* 04C068 8004B468 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 04C06C 8004B46C C6280020 */ lwc1 $f8, 0x20($s1) +/* 04C070 8004B470 3C188012 */ lui $t8, %hi(gCurrentRacerInput) # $t8, 0x8012 +/* 04C074 8004B474 46009102 */ mul.s $f4, $f18, $f0 +/* 04C078 8004B478 46045181 */ sub.s $f6, $f10, $f4 +/* 04C07C 8004B47C E626001C */ swc1 $f6, 0x1c($s1) +/* 04C080 8004B480 C612003C */ lwc1 $f18, 0x3c($s0) +/* 04C084 8004B484 C6260024 */ lwc1 $f6, 0x24($s1) +/* 04C088 8004B488 46009282 */ mul.s $f10, $f18, $f0 +/* 04C08C 8004B48C 460A4101 */ sub.s $f4, $f8, $f10 +/* 04C090 8004B490 E6240020 */ swc1 $f4, 0x20($s1) +/* 04C094 8004B494 C6120040 */ lwc1 $f18, 0x40($s0) +/* 04C098 8004B498 00000000 */ nop +/* 04C09C 8004B49C 46009202 */ mul.s $f8, $f18, $f0 +/* 04C0A0 8004B4A0 46083281 */ sub.s $f10, $f6, $f8 +/* 04C0A4 8004B4A4 E62A0024 */ swc1 $f10, 0x24($s1) +/* 04C0A8 8004B4A8 820301E2 */ lb $v1, 0x1e2($s0) +/* 04C0AC 8004B4AC 00000000 */ nop +/* 04C0B0 8004B4B0 28610003 */ slti $at, $v1, 3 +/* 04C0B4 8004B4B4 1020000E */ beqz $at, .L8004B4F0 +/* 04C0B8 8004B4B8 00000000 */ nop +/* 04C0BC 8004B4BC C602002C */ lwc1 $f2, 0x2c($s0) +/* 04C0C0 8004B4C0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 04C0C4 8004B4C4 44819800 */ mtc1 $at, $f19 +/* 04C0C8 8004B4C8 44809000 */ mtc1 $zero, $f18 +/* 04C0CC 8004B4CC 46001121 */ cvt.d.s $f4, $f2 +/* 04C0D0 8004B4D0 4632203C */ c.lt.d $f4, $f18 +/* 04C0D4 8004B4D4 00000000 */ nop +/* 04C0D8 8004B4D8 45010005 */ bc1t .L8004B4F0 +/* 04C0DC 8004B4DC 00000000 */ nop +/* 04C0E0 8004B4E0 820E01D6 */ lb $t6, 0x1d6($s0) +/* 04C0E4 8004B4E4 2401000A */ li $at, 10 +/* 04C0E8 8004B4E8 15C1001F */ bne $t6, $at, .L8004B568 +/* 04C0EC 8004B4EC 00000000 */ nop +.L8004B4F0: +/* 04C0F0 8004B4F0 14600006 */ bnez $v1, .L8004B50C +/* 04C0F4 8004B4F4 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04C0F8 8004B4F8 C7A000C4 */ lwc1 $f0, 0xc4($sp) +/* 04C0FC 8004B4FC 44813000 */ mtc1 $at, $f6 +/* 04C100 8004B500 00000000 */ nop +/* 04C104 8004B504 46060003 */ div.s $f0, $f0, $f6 +/* 04C108 8004B508 E7A000C4 */ swc1 $f0, 0xc4($sp) +.L8004B50C: +/* 04C10C 8004B50C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04C110 8004B510 44814000 */ mtc1 $at, $f8 +/* 04C114 8004B514 C7A000C4 */ lwc1 $f0, 0xc4($sp) +/* 04C118 8004B518 46087283 */ div.s $f10, $f14, $f8 +/* 04C11C 8004B51C C6120038 */ lwc1 $f18, 0x38($s0) +/* 04C120 8004B520 C624001C */ lwc1 $f4, 0x1c($s1) +/* 04C124 8004B524 460A0002 */ mul.s $f0, $f0, $f10 +/* 04C128 8004B528 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 04C12C 8004B52C 46009182 */ mul.s $f6, $f18, $f0 +/* 04C130 8004B530 46062200 */ add.s $f8, $f4, $f6 +/* 04C134 8004B534 E628001C */ swc1 $f8, 0x1c($s1) +/* 04C138 8004B538 C612003C */ lwc1 $f18, 0x3c($s0) +/* 04C13C 8004B53C C6280024 */ lwc1 $f8, 0x24($s1) +/* 04C140 8004B540 46009102 */ mul.s $f4, $f18, $f0 +/* 04C144 8004B544 46045180 */ add.s $f6, $f10, $f4 +/* 04C148 8004B548 E6260020 */ swc1 $f6, 0x20($s1) +/* 04C14C 8004B54C C6120040 */ lwc1 $f18, 0x40($s0) +/* 04C150 8004B550 00000000 */ nop +/* 04C154 8004B554 46009282 */ mul.s $f10, $f18, $f0 +/* 04C158 8004B558 460A4100 */ add.s $f4, $f8, $f10 +/* 04C15C 8004B55C E6240024 */ swc1 $f4, 0x24($s1) +/* 04C160 8004B560 C602002C */ lwc1 $f2, 0x2c($s0) +/* 04C164 8004B564 00000000 */ nop +.L8004B568: +/* 04C168 8004B568 44803000 */ mtc1 $zero, $f6 +/* 04C16C 8004B56C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04C170 8004B570 4606103C */ c.lt.s $f2, $f6 +/* 04C174 8004B574 46021302 */ mul.s $f12, $f2, $f2 +/* 04C178 8004B578 44819000 */ mtc1 $at, $f18 +/* 04C17C 8004B57C 45000002 */ bc1f .L8004B588 +/* 04C180 8004B580 00000000 */ nop +/* 04C184 8004B584 46006307 */ neg.s $f12, $f12 +.L8004B588: +/* 04C188 8004B588 4612603C */ c.lt.s $f12, $f18 +/* 04C18C 8004B58C C7A600D8 */ lwc1 $f6, 0xd8($sp) +/* 04C190 8004B590 4500000D */ bc1f .L8004B5C8 +/* 04C194 8004B594 00000000 */ nop +/* 04C198 8004B598 8F18D528 */ lw $t8, %lo(gCurrentRacerInput)($t8) +/* 04C19C 8004B59C C7A800D8 */ lwc1 $f8, 0xd8($sp) +/* 04C1A0 8004B5A0 330C8000 */ andi $t4, $t8, 0x8000 +/* 04C1A4 8004B5A4 15800008 */ bnez $t4, .L8004B5C8 +/* 04C1A8 8004B5A8 00000000 */ nop +/* 04C1AC 8004B5AC 46081282 */ mul.s $f10, $f2, $f8 +/* 04C1B0 8004B5B0 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 04C1B4 8004B5B4 44812000 */ mtc1 $at, $f4 +/* 04C1B8 8004B5B8 00000000 */ nop +/* 04C1BC 8004B5BC 46045502 */ mul.s $f20, $f10, $f4 +/* 04C1C0 8004B5C0 10000004 */ b .L8004B5D4 +/* 04C1C4 8004B5C4 C6080038 */ lwc1 $f8, 0x38($s0) +.L8004B5C8: +/* 04C1C8 8004B5C8 46066502 */ mul.s $f20, $f12, $f6 +/* 04C1CC 8004B5CC 00000000 */ nop +/* 04C1D0 8004B5D0 C6080038 */ lwc1 $f8, 0x38($s0) +.L8004B5D4: +/* 04C1D4 8004B5D4 C632001C */ lwc1 $f18, 0x1c($s1) +/* 04C1D8 8004B5D8 46144282 */ mul.s $f10, $f8, $f20 +/* 04C1DC 8004B5DC C6260020 */ lwc1 $f6, 0x20($s1) +/* 04C1E0 8004B5E0 460A9101 */ sub.s $f4, $f18, $f10 +/* 04C1E4 8004B5E4 E624001C */ swc1 $f4, 0x1c($s1) +/* 04C1E8 8004B5E8 C608003C */ lwc1 $f8, 0x3c($s0) +/* 04C1EC 8004B5EC C6240024 */ lwc1 $f4, 0x24($s1) +/* 04C1F0 8004B5F0 46144482 */ mul.s $f18, $f8, $f20 +/* 04C1F4 8004B5F4 46123281 */ sub.s $f10, $f6, $f18 +/* 04C1F8 8004B5F8 E62A0020 */ swc1 $f10, 0x20($s1) +/* 04C1FC 8004B5FC C6080040 */ lwc1 $f8, 0x40($s0) +/* 04C200 8004B600 00000000 */ nop +/* 04C204 8004B604 46144182 */ mul.s $f6, $f8, $f20 +/* 04C208 8004B608 46062481 */ sub.s $f18, $f4, $f6 +/* 04C20C 8004B60C 44802000 */ mtc1 $zero, $f4 +/* 04C210 8004B610 E6320024 */ swc1 $f18, 0x24($s1) +/* 04C214 8004B614 C6000030 */ lwc1 $f0, 0x30($s0) +/* 04C218 8004B618 C7A800D4 */ lwc1 $f8, 0xd4($sp) +/* 04C21C 8004B61C 46000282 */ mul.s $f10, $f0, $f0 +/* 04C220 8004B620 4604003C */ c.lt.s $f0, $f4 +/* 04C224 8004B624 C7A600D4 */ lwc1 $f6, 0xd4($sp) +/* 04C228 8004B628 46085502 */ mul.s $f20, $f10, $f8 +/* 04C22C 8004B62C 45000002 */ bc1f .L8004B638 +/* 04C230 8004B630 00000000 */ nop +/* 04C234 8004B634 4600A507 */ neg.s $f20, $f20 +.L8004B638: +/* 04C238 8004B638 46060482 */ mul.s $f18, $f0, $f6 +/* 04C23C 8004B63C 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04C240 8004B640 44815000 */ mtc1 $at, $f10 +/* 04C244 8004B644 C6060050 */ lwc1 $f6, 0x50($s0) +/* 04C248 8004B648 460A9202 */ mul.s $f8, $f18, $f10 +/* 04C24C 8004B64C C624001C */ lwc1 $f4, 0x1c($s1) +/* 04C250 8004B650 24010001 */ li $at, 1 +/* 04C254 8004B654 4608A500 */ add.s $f20, $f20, $f8 +/* 04C258 8004B658 C6280020 */ lwc1 $f8, 0x20($s1) +/* 04C25C 8004B65C 46143482 */ mul.s $f18, $f6, $f20 +/* 04C260 8004B660 46122281 */ sub.s $f10, $f4, $f18 +/* 04C264 8004B664 E62A001C */ swc1 $f10, 0x1c($s1) +/* 04C268 8004B668 C6060054 */ lwc1 $f6, 0x54($s0) +/* 04C26C 8004B66C C62A0024 */ lwc1 $f10, 0x24($s1) +/* 04C270 8004B670 46143102 */ mul.s $f4, $f6, $f20 +/* 04C274 8004B674 46044481 */ sub.s $f18, $f8, $f4 +/* 04C278 8004B678 E6320020 */ swc1 $f18, 0x20($s1) +/* 04C27C 8004B67C C6060058 */ lwc1 $f6, 0x58($s0) +/* 04C280 8004B680 00000000 */ nop +/* 04C284 8004B684 46143202 */ mul.s $f8, $f6, $f20 +/* 04C288 8004B688 46085101 */ sub.s $f4, $f10, $f8 +/* 04C28C 8004B68C E6240024 */ swc1 $f4, 0x24($s1) +/* 04C290 8004B690 820201E0 */ lb $v0, 0x1e0($s0) +/* 04C294 8004B694 00000000 */ nop +/* 04C298 8004B698 10410002 */ beq $v0, $at, .L8004B6A4 +/* 04C29C 8004B69C 2401FFFF */ li $at, -1 +/* 04C2A0 8004B6A0 1441004E */ bne $v0, $at, .L8004B7DC +.L8004B6A4: +/* 04C2A4 8004B6A4 3C01800E */ lui $at, %hi(D_800E6530 + 4) # $at, 0x800e +/* 04C2A8 8004B6A8 C612002C */ lwc1 $f18, 0x2c($s0) +/* 04C2AC 8004B6AC C42B6530 */ lwc1 $f11, %lo(D_800E6530)($at) +/* 04C2B0 8004B6B0 C42A6534 */ lwc1 $f10, %lo(D_800E6530 + 4)($at) +/* 04C2B4 8004B6B4 460091A1 */ cvt.d.s $f6, $f18 +/* 04C2B8 8004B6B8 462A3202 */ mul.d $f8, $f6, $f10 +/* 04C2BC 8004B6BC 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 +/* 04C2C0 8004B6C0 44812800 */ mtc1 $at, $f5 +/* 04C2C4 8004B6C4 44802000 */ mtc1 $zero, $f4 +/* 04C2C8 8004B6C8 860401A4 */ lh $a0, 0x1a4($s0) +/* 04C2CC 8004B6CC 46244482 */ mul.d $f18, $f8, $f4 +/* 04C2D0 8004B6D0 46209320 */ cvt.s.d $f12, $f18 +/* 04C2D4 8004B6D4 0C01C1FE */ jal coss_f +/* 04C2D8 8004B6D8 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C2DC 8004B6DC 821901E0 */ lb $t9, 0x1e0($s0) +/* 04C2E0 8004B6E0 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C2E4 8004B6E4 44995000 */ mtc1 $t9, $f10 +/* 04C2E8 8004B6E8 460C0182 */ mul.s $f6, $f0, $f12 +/* 04C2EC 8004B6EC 860301A4 */ lh $v1, 0x1a4($s0) +/* 04C2F0 8004B6F0 00000000 */ nop +/* 04C2F4 8004B6F4 28614001 */ slti $at, $v1, 0x4001 +/* 04C2F8 8004B6F8 46805220 */ cvt.s.w $f8, $f10 +/* 04C2FC 8004B6FC 46083502 */ mul.s $f20, $f6, $f8 +/* 04C300 8004B700 10200002 */ beqz $at, .L8004B70C +/* 04C304 8004B704 2861C000 */ slti $at, $v1, -0x4000 +/* 04C308 8004B708 10200005 */ beqz $at, .L8004B720 +.L8004B70C: +/* 04C30C 8004B70C 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04C310 8004B710 44812000 */ mtc1 $at, $f4 +/* 04C314 8004B714 00000000 */ nop +/* 04C318 8004B718 4604A502 */ mul.s $f20, $f20, $f4 +/* 04C31C 8004B71C 00000000 */ nop +.L8004B720: +/* 04C320 8004B720 C60A0050 */ lwc1 $f10, 0x50($s0) +/* 04C324 8004B724 C632001C */ lwc1 $f18, 0x1c($s1) +/* 04C328 8004B728 46145182 */ mul.s $f6, $f10, $f20 +/* 04C32C 8004B72C C6240020 */ lwc1 $f4, 0x20($s1) +/* 04C330 8004B730 46069201 */ sub.s $f8, $f18, $f6 +/* 04C334 8004B734 E628001C */ swc1 $f8, 0x1c($s1) +/* 04C338 8004B738 C60A0054 */ lwc1 $f10, 0x54($s0) +/* 04C33C 8004B73C C6280024 */ lwc1 $f8, 0x24($s1) +/* 04C340 8004B740 46145482 */ mul.s $f18, $f10, $f20 +/* 04C344 8004B744 46122181 */ sub.s $f6, $f4, $f18 +/* 04C348 8004B748 E6260020 */ swc1 $f6, 0x20($s1) +/* 04C34C 8004B74C C60A0058 */ lwc1 $f10, 0x58($s0) +/* 04C350 8004B750 00000000 */ nop +/* 04C354 8004B754 46145102 */ mul.s $f4, $f10, $f20 +/* 04C358 8004B758 46044481 */ sub.s $f18, $f8, $f4 +/* 04C35C 8004B75C E6320024 */ swc1 $f18, 0x24($s1) +/* 04C360 8004B760 860401A4 */ lh $a0, 0x1a4($s0) +/* 04C364 8004B764 0C01C1F1 */ jal sins_f +/* 04C368 8004B768 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C36C 8004B76C 820F01E0 */ lb $t7, 0x1e0($s0) +/* 04C370 8004B770 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C374 8004B774 448F5000 */ mtc1 $t7, $f10 +/* 04C378 8004B778 460C0182 */ mul.s $f6, $f0, $f12 +/* 04C37C 8004B77C 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 +/* 04C380 8004B780 44815800 */ mtc1 $at, $f11 +/* 04C384 8004B784 46805220 */ cvt.s.w $f8, $f10 +/* 04C388 8004B788 44805000 */ mtc1 $zero, $f10 +/* 04C38C 8004B78C 46083102 */ mul.s $f4, $f6, $f8 +/* 04C390 8004B790 C628001C */ lwc1 $f8, 0x1c($s1) +/* 04C394 8004B794 460024A1 */ cvt.d.s $f18, $f4 +/* 04C398 8004B798 462A9182 */ mul.d $f6, $f18, $f10 +/* 04C39C 8004B79C C6040044 */ lwc1 $f4, 0x44($s0) +/* 04C3A0 8004B7A0 46203520 */ cvt.s.d $f20, $f6 +/* 04C3A4 8004B7A4 C6260020 */ lwc1 $f6, 0x20($s1) +/* 04C3A8 8004B7A8 46142482 */ mul.s $f18, $f4, $f20 +/* 04C3AC 8004B7AC 46124281 */ sub.s $f10, $f8, $f18 +/* 04C3B0 8004B7B0 E62A001C */ swc1 $f10, 0x1c($s1) +/* 04C3B4 8004B7B4 C6040048 */ lwc1 $f4, 0x48($s0) +/* 04C3B8 8004B7B8 C62A0024 */ lwc1 $f10, 0x24($s1) +/* 04C3BC 8004B7BC 46142202 */ mul.s $f8, $f4, $f20 +/* 04C3C0 8004B7C0 46083481 */ sub.s $f18, $f6, $f8 +/* 04C3C4 8004B7C4 E6320020 */ swc1 $f18, 0x20($s1) +/* 04C3C8 8004B7C8 C604004C */ lwc1 $f4, 0x4c($s0) +/* 04C3CC 8004B7CC 00000000 */ nop +/* 04C3D0 8004B7D0 46142182 */ mul.s $f6, $f4, $f20 +/* 04C3D4 8004B7D4 46065201 */ sub.s $f8, $f10, $f6 +/* 04C3D8 8004B7D8 E6280024 */ swc1 $f8, 0x24($s1) +.L8004B7DC: +/* 04C3DC 8004B7DC C6020034 */ lwc1 $f2, 0x34($s0) +/* 04C3E0 8004B7E0 44805000 */ mtc1 $zero, $f10 +/* 04C3E4 8004B7E4 46021482 */ mul.s $f18, $f2, $f2 +/* 04C3E8 8004B7E8 C7A400D0 */ lwc1 $f4, 0xd0($sp) +/* 04C3EC 8004B7EC 460A103C */ c.lt.s $f2, $f10 +/* 04C3F0 8004B7F0 C7A600D0 */ lwc1 $f6, 0xd0($sp) +/* 04C3F4 8004B7F4 46049502 */ mul.s $f20, $f18, $f4 +/* 04C3F8 8004B7F8 45000002 */ bc1f .L8004B804 +/* 04C3FC 8004B7FC 00000000 */ nop +/* 04C400 8004B800 4600A507 */ neg.s $f20, $f20 +.L8004B804: +/* 04C404 8004B804 46061202 */ mul.s $f8, $f2, $f6 +/* 04C408 8004B808 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 04C40C 8004B80C 44819000 */ mtc1 $at, $f18 +/* 04C410 8004B810 C6060044 */ lwc1 $f6, 0x44($s0) +/* 04C414 8004B814 46124102 */ mul.s $f4, $f8, $f18 +/* 04C418 8004B818 C62A001C */ lwc1 $f10, 0x1c($s1) +/* 04C41C 8004B81C 3C01800E */ lui $at, %hi(D_800E6538) # $at, 0x800e +/* 04C420 8004B820 4604A500 */ add.s $f20, $f20, $f4 +/* 04C424 8004B824 C6240020 */ lwc1 $f4, 0x20($s1) +/* 04C428 8004B828 46143202 */ mul.s $f8, $f6, $f20 +/* 04C42C 8004B82C 46085481 */ sub.s $f18, $f10, $f8 +/* 04C430 8004B830 E632001C */ swc1 $f18, 0x1c($s1) +/* 04C434 8004B834 C6060048 */ lwc1 $f6, 0x48($s0) +/* 04C438 8004B838 C6320024 */ lwc1 $f18, 0x24($s1) +/* 04C43C 8004B83C 46143282 */ mul.s $f10, $f6, $f20 +/* 04C440 8004B840 460A2201 */ sub.s $f8, $f4, $f10 +/* 04C444 8004B844 E6280020 */ swc1 $f8, 0x20($s1) +/* 04C448 8004B848 C606004C */ lwc1 $f6, 0x4c($s0) +/* 04C44C 8004B84C 00000000 */ nop +/* 04C450 8004B850 46143102 */ mul.s $f4, $f6, $f20 +/* 04C454 8004B854 46049281 */ sub.s $f10, $f18, $f4 +/* 04C458 8004B858 E62A0024 */ swc1 $f10, 0x24($s1) +/* 04C45C 8004B85C C606002C */ lwc1 $f6, 0x2c($s0) +/* 04C460 8004B860 C424653C */ lwc1 $f4, %lo(D_800E6538 + 4)($at) +/* 04C464 8004B864 C4256538 */ lwc1 $f5, %lo(D_800E6538)($at) +/* 04C468 8004B868 460034A1 */ cvt.d.s $f18, $f6 +/* 04C46C 8004B86C 46249282 */ mul.d $f10, $f18, $f4 +/* 04C470 8004B870 C6080008 */ lwc1 $f8, 8($s0) +/* 04C474 8004B874 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 +/* 04C478 8004B878 46004021 */ cvt.d.s $f0, $f8 +/* 04C47C 8004B87C 44813800 */ mtc1 $at, $f7 +/* 04C480 8004B880 462A0200 */ add.d $f8, $f0, $f10 +/* 04C484 8004B884 44803000 */ mtc1 $zero, $f6 +/* 04C488 8004B888 00000000 */ nop +/* 04C48C 8004B88C 46264482 */ mul.d $f18, $f8, $f6 +/* 04C490 8004B890 46320101 */ sub.d $f4, $f0, $f18 +/* 04C494 8004B894 462022A0 */ cvt.s.d $f10, $f4 +/* 04C498 8004B898 E60A0008 */ swc1 $f10, 8($s0) +/* 04C49C 8004B89C E7AC00EC */ swc1 $f12, 0xec($sp) +.L8004B8A0: +/* 04C4A0 8004B8A0 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C4A4 8004B8A4 AE00010C */ sw $zero, 0x10c($s0) +/* 04C4A8 8004B8A8 3C0D8012 */ lui $t5, %hi(gCurrentCarSteerVel) # $t5, 0x8012 +/* 04C4AC 8004B8AC 8DADD554 */ lw $t5, %lo(gCurrentCarSteerVel)($t5) +/* 04C4B0 8004B8B0 860201A2 */ lh $v0, 0x1a2($s0) +/* 04C4B4 8004B8B4 860C01A0 */ lh $t4, 0x1a0($s0) +/* 04C4B8 8004B8B8 01A25823 */ subu $t3, $t5, $v0 +/* 04C4BC 8004B8BC 000B70C3 */ sra $t6, $t3, 3 +/* 04C4C0 8004B8C0 004EC021 */ addu $t8, $v0, $t6 +/* 04C4C4 8004B8C4 A61801A2 */ sh $t8, 0x1a2($s0) +/* 04C4C8 8004B8C8 861901A2 */ lh $t9, 0x1a2($s0) +/* 04C4CC 8004B8CC 3C0D8012 */ lui $t5, %hi(D_8011D558) # $t5, 0x8012 +/* 04C4D0 8004B8D0 01997821 */ addu $t7, $t4, $t9 +/* 04C4D4 8004B8D4 A62F0000 */ sh $t7, ($s1) +/* 04C4D8 8004B8D8 860301A6 */ lh $v1, 0x1a6($s0) +/* 04C4DC 8004B8DC 8DADD558 */ lw $t5, %lo(D_8011D558)($t5) +/* 04C4E0 8004B8E0 860C01A4 */ lh $t4, 0x1a4($s0) +/* 04C4E4 8004B8E4 01A35823 */ subu $t3, $t5, $v1 +/* 04C4E8 8004B8E8 000B70C3 */ sra $t6, $t3, 3 +/* 04C4EC 8004B8EC 006EC021 */ addu $t8, $v1, $t6 +/* 04C4F0 8004B8F0 A61801A6 */ sh $t8, 0x1a6($s0) +/* 04C4F4 8004B8F4 861901A6 */ lh $t9, 0x1a6($s0) +/* 04C4F8 8004B8F8 00000000 */ nop +/* 04C4FC 8004B8FC 01997821 */ addu $t7, $t4, $t9 +/* 04C500 8004B900 A62F0004 */ sh $t7, 4($s1) +/* 04C504 8004B904 820D0175 */ lb $t5, 0x175($s0) +/* 04C508 8004B908 00000000 */ nop +/* 04C50C 8004B90C 11A00007 */ beqz $t5, .L8004B92C +/* 04C510 8004B910 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 +/* 04C514 8004B914 C428D578 */ lwc1 $f8, %lo(D_8011D578)($at) +/* 04C518 8004B918 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 +/* 04C51C 8004B91C E628001C */ swc1 $f8, 0x1c($s1) +/* 04C520 8004B920 C426D57C */ lwc1 $f6, %lo(D_8011D57C)($at) +/* 04C524 8004B924 00000000 */ nop +/* 04C528 8004B928 E6260024 */ swc1 $f6, 0x24($s1) +.L8004B92C: +/* 04C52C 8004B92C 8E0B0148 */ lw $t3, 0x148($s0) +/* 04C530 8004B930 00000000 */ nop +/* 04C534 8004B934 15600061 */ bnez $t3, .L8004BABC +/* 04C538 8004B938 8FA600FC */ lw $a2, 0xfc($sp) +/* 04C53C 8004B93C 820E01D2 */ lb $t6, 0x1d2($s0) +/* 04C540 8004B940 C634001C */ lwc1 $f20, 0x1c($s1) +/* 04C544 8004B944 C62C0024 */ lwc1 $f12, 0x24($s1) +/* 04C548 8004B948 11C00010 */ beqz $t6, .L8004B98C +/* 04C54C 8004B94C 3C188012 */ lui $t8, %hi(D_8011D584) # $t8, 0x8012 +/* 04C550 8004B950 C604011C */ lwc1 $f4, 0x11c($s0) +/* 04C554 8004B954 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 04C558 8004B958 44811800 */ mtc1 $at, $f3 +/* 04C55C 8004B95C 44801000 */ mtc1 $zero, $f2 +/* 04C560 8004B960 460022A1 */ cvt.d.s $f10, $f4 +/* 04C564 8004B964 46225202 */ mul.d $f8, $f10, $f2 +/* 04C568 8004B968 C60A0120 */ lwc1 $f10, 0x120($s0) +/* 04C56C 8004B96C 4600A4A1 */ cvt.d.s $f18, $f20 +/* 04C570 8004B970 46006121 */ cvt.d.s $f4, $f12 +/* 04C574 8004B974 46289180 */ add.d $f6, $f18, $f8 +/* 04C578 8004B978 460054A1 */ cvt.d.s $f18, $f10 +/* 04C57C 8004B97C 46229202 */ mul.d $f8, $f18, $f2 +/* 04C580 8004B980 46203520 */ cvt.s.d $f20, $f6 +/* 04C584 8004B984 46282180 */ add.d $f6, $f4, $f8 +/* 04C588 8004B988 46203320 */ cvt.s.d $f12, $f6 +.L8004B98C: +/* 04C58C 8004B98C 8318D584 */ lb $t8, %lo(D_8011D584)($t8) +/* 04C590 8004B990 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 04C594 8004B994 44811800 */ mtc1 $at, $f3 +/* 04C598 8004B998 44801000 */ mtc1 $zero, $f2 +/* 04C59C 8004B99C 1300002A */ beqz $t8, .L8004BA48 +/* 04C5A0 8004B9A0 00000000 */ nop +/* 04C5A4 8004B9A4 4600A021 */ cvt.d.s $f0, $f20 +/* 04C5A8 8004B9A8 4620103C */ c.lt.d $f2, $f0 +/* 04C5AC 8004B9AC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 04C5B0 8004B9B0 45010007 */ bc1t .L8004B9D0 +/* 04C5B4 8004B9B4 00000000 */ nop +/* 04C5B8 8004B9B8 44815800 */ mtc1 $at, $f11 +/* 04C5BC 8004B9BC 44805000 */ mtc1 $zero, $f10 +/* 04C5C0 8004B9C0 00000000 */ nop +/* 04C5C4 8004B9C4 462A003C */ c.lt.d $f0, $f10 +/* 04C5C8 8004B9C8 00000000 */ nop +/* 04C5CC 8004B9CC 45000007 */ bc1f .L8004B9EC +.L8004B9D0: +/* 04C5D0 8004B9D0 3C01800E */ lui $at, %hi(D_800E6540 + 4) # $at, 0x800e +/* 04C5D4 8004B9D4 C4336540 */ lwc1 $f19, %lo(D_800E6540)($at) +/* 04C5D8 8004B9D8 C4326544 */ lwc1 $f18, %lo(D_800E6540 + 4)($at) +/* 04C5DC 8004B9DC 00000000 */ nop +/* 04C5E0 8004B9E0 46320102 */ mul.d $f4, $f0, $f18 +/* 04C5E4 8004B9E4 10000003 */ b .L8004B9F4 +/* 04C5E8 8004B9E8 46202520 */ cvt.s.d $f20, $f4 +.L8004B9EC: +/* 04C5EC 8004B9EC 4480A000 */ mtc1 $zero, $f20 +/* 04C5F0 8004B9F0 00000000 */ nop +.L8004B9F4: +/* 04C5F4 8004B9F4 46006021 */ cvt.d.s $f0, $f12 +/* 04C5F8 8004B9F8 4620103C */ c.lt.d $f2, $f0 +/* 04C5FC 8004B9FC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 04C600 8004BA00 45010007 */ bc1t .L8004BA20 +/* 04C604 8004BA04 00000000 */ nop +/* 04C608 8004BA08 44814800 */ mtc1 $at, $f9 +/* 04C60C 8004BA0C 44804000 */ mtc1 $zero, $f8 +/* 04C610 8004BA10 00000000 */ nop +/* 04C614 8004BA14 4628003C */ c.lt.d $f0, $f8 +/* 04C618 8004BA18 00000000 */ nop +/* 04C61C 8004BA1C 45000007 */ bc1f .L8004BA3C +.L8004BA20: +/* 04C620 8004BA20 3C01800E */ lui $at, %hi(D_800E6548 + 4) # $at, 0x800e +/* 04C624 8004BA24 C4276548 */ lwc1 $f7, %lo(D_800E6548)($at) +/* 04C628 8004BA28 C426654C */ lwc1 $f6, %lo(D_800E6548 + 4)($at) +/* 04C62C 8004BA2C 00000000 */ nop +/* 04C630 8004BA30 46260282 */ mul.d $f10, $f0, $f6 +/* 04C634 8004BA34 10000008 */ b .L8004BA58 +/* 04C638 8004BA38 46205320 */ cvt.s.d $f12, $f10 +.L8004BA3C: +/* 04C63C 8004BA3C 44806000 */ mtc1 $zero, $f12 +/* 04C640 8004BA40 10000006 */ b .L8004BA5C +/* 04C644 8004BA44 C7A000FC */ lwc1 $f0, 0xfc($sp) +.L8004BA48: +/* 04C648 8004BA48 C6120084 */ lwc1 $f18, 0x84($s0) +/* 04C64C 8004BA4C C6040088 */ lwc1 $f4, 0x88($s0) +/* 04C650 8004BA50 4612A500 */ add.s $f20, $f20, $f18 +/* 04C654 8004BA54 46046300 */ add.s $f12, $f12, $f4 +.L8004BA58: +/* 04C658 8004BA58 C7A000FC */ lwc1 $f0, 0xfc($sp) +.L8004BA5C: +/* 04C65C 8004BA5C C6260020 */ lwc1 $f6, 0x20($s1) +/* 04C660 8004BA60 4600A202 */ mul.s $f8, $f20, $f0 +/* 04C664 8004BA64 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C668 8004BA68 02202025 */ move $a0, $s1 +/* 04C66C 8004BA6C 46003282 */ mul.s $f10, $f6, $f0 +/* 04C670 8004BA70 44054000 */ mfc1 $a1, $f8 +/* 04C674 8004BA74 46006482 */ mul.s $f18, $f12, $f0 +/* 04C678 8004BA78 44065000 */ mfc1 $a2, $f10 +/* 04C67C 8004BA7C 44079000 */ mfc1 $a3, $f18 +/* 04C680 8004BA80 0C00455C */ jal func_80011570 +/* 04C684 8004BA84 00000000 */ nop +/* 04C688 8004BA88 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C68C 8004BA8C 10400006 */ beqz $v0, .L8004BAA8 +/* 04C690 8004BA90 3C0C8012 */ lui $t4, %hi(gCurrentPlayerIndex) # $t4, 0x8012 +/* 04C694 8004BA94 8D8CD55C */ lw $t4, %lo(gCurrentPlayerIndex)($t4) +/* 04C698 8004BA98 2401FFFF */ li $at, -1 +/* 04C69C 8004BA9C 11810002 */ beq $t4, $at, .L8004BAA8 +/* 04C6A0 8004BAA0 24190001 */ li $t9, 1 +/* 04C6A4 8004BAA4 A3B9005F */ sb $t9, 0x5f($sp) +.L8004BAA8: +/* 04C6A8 8004BAA8 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 04C6AC 8004BAAC 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 04C6B0 8004BAB0 1000000B */ b .L8004BAE0 +/* 04C6B4 8004BAB4 820801E2 */ lb $t0, 0x1e2($s0) +/* 04C6B8 8004BAB8 8FA600FC */ lw $a2, 0xfc($sp) +.L8004BABC: +/* 04C6BC 8004BABC 02202025 */ move $a0, $s1 +/* 04C6C0 8004BAC0 02002825 */ move $a1, $s0 +/* 04C6C4 8004BAC4 0C0141D5 */ jal func_80050754 +/* 04C6C8 8004BAC8 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C6CC 8004BACC 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 04C6D0 8004BAD0 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 04C6D4 8004BAD4 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C6D8 8004BAD8 00000000 */ nop +/* 04C6DC 8004BADC 820801E2 */ lb $t0, 0x1e2($s0) +.L8004BAE0: +/* 04C6E0 8004BAE0 2401FFFF */ li $at, -1 +/* 04C6E4 8004BAE4 14410017 */ bne $v0, $at, .L8004BB44 +/* 04C6E8 8004BAE8 8FA600F8 */ lw $a2, 0xf8($sp) +/* 04C6EC 8004BAEC 820F01D7 */ lb $t7, 0x1d7($s0) +/* 04C6F0 8004BAF0 2401000D */ li $at, 13 +/* 04C6F4 8004BAF4 15E10005 */ bne $t7, $at, .L8004BB0C +/* 04C6F8 8004BAF8 3C0D8012 */ lui $t5, %hi(gRaceStartTimer) # $t5, 0x8012 +/* 04C6FC 8004BAFC 8DADD540 */ lw $t5, %lo(gRaceStartTimer)($t5) +/* 04C700 8004BB00 00000000 */ nop +/* 04C704 8004BB04 11A0000B */ beqz $t5, .L8004BB34 +/* 04C708 8004BB08 00000000 */ nop +.L8004BB0C: +/* 04C70C 8004BB0C 8FA600F8 */ lw $a2, 0xf8($sp) +/* 04C710 8004BB10 02202025 */ move $a0, $s1 +/* 04C714 8004BB14 02002825 */ move $a1, $s0 +/* 04C718 8004BB18 AFA800B8 */ sw $t0, 0xb8($sp) +/* 04C71C 8004BB1C 0C0156A1 */ jal func_80055A84 +/* 04C720 8004BB20 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C724 8004BB24 8FA800B8 */ lw $t0, 0xb8($sp) +/* 04C728 8004BB28 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C72C 8004BB2C 1000000D */ b .L8004BB64 +/* 04C730 8004BB30 00000000 */ nop +.L8004BB34: +/* 04C734 8004BB34 A20001E2 */ sb $zero, 0x1e2($s0) +/* 04C738 8004BB38 1000000A */ b .L8004BB64 +/* 04C73C 8004BB3C A20001E3 */ sb $zero, 0x1e3($s0) +/* 04C740 8004BB40 8FA600F8 */ lw $a2, 0xf8($sp) +.L8004BB44: +/* 04C744 8004BB44 02202025 */ move $a0, $s1 +/* 04C748 8004BB48 02002825 */ move $a1, $s0 +/* 04C74C 8004BB4C AFA800B8 */ sw $t0, 0xb8($sp) +/* 04C750 8004BB50 0C0153F4 */ jal func_80054FD0 +/* 04C754 8004BB54 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C758 8004BB58 8FA800B8 */ lw $t0, 0xb8($sp) +/* 04C75C 8004BB5C C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C760 8004BB60 00000000 */ nop +.L8004BB64: +/* 04C764 8004BB64 15000015 */ bnez $t0, .L8004BBBC +/* 04C768 8004BB68 00000000 */ nop +/* 04C76C 8004BB6C 820B01E2 */ lb $t3, 0x1e2($s0) +/* 04C770 8004BB70 00000000 */ nop +/* 04C774 8004BB74 11600011 */ beqz $t3, .L8004BBBC +/* 04C778 8004BB78 00000000 */ nop +/* 04C77C 8004BB7C 820E01DB */ lb $t6, 0x1db($s0) +/* 04C780 8004BB80 02202025 */ move $a0, $s1 +/* 04C784 8004BB84 11C0000D */ beqz $t6, .L8004BBBC +/* 04C788 8004BB88 2405000C */ li $a1, 12 +/* 04C78C 8004BB8C 0C015C12 */ jal racer_play_sound +/* 04C790 8004BB90 E7AC00EC */ swc1 $f12, 0xec($sp) +/* 04C794 8004BB94 86180000 */ lh $t8, ($s0) +/* 04C798 8004BB98 C7AC00EC */ lwc1 $f12, 0xec($sp) +/* 04C79C 8004BB9C 2401FFFF */ li $at, -1 +/* 04C7A0 8004BBA0 13010006 */ beq $t8, $at, .L8004BBBC +/* 04C7A4 8004BBA4 3C0C8012 */ lui $t4, %hi(gCameraObject) # $t4, 0x8012 +/* 04C7A8 8004BBA8 3C0140C0 */ li $at, 0x40C00000 # 6.000000 +/* 04C7AC 8004BBAC 44812000 */ mtc1 $at, $f4 +/* 04C7B0 8004BBB0 8D8CD508 */ lw $t4, %lo(gCameraObject)($t4) +/* 04C7B4 8004BBB4 00000000 */ nop +/* 04C7B8 8004BBB8 E5840030 */ swc1 $f4, 0x30($t4) +.L8004BBBC: +/* 04C7BC 8004BBBC 820201D2 */ lb $v0, 0x1d2($s0) +/* 04C7C0 8004BBC0 3C0B8012 */ lui $t3, %hi(gRaceStartTimer) # $t3, 0x8012 +/* 04C7C4 8004BBC4 1040000B */ beqz $v0, .L8004BBF4 +/* 04C7C8 8004BBC8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 +/* 04C7CC 8004BBCC 8FB900F8 */ lw $t9, 0xf8($sp) +/* 04C7D0 8004BBD0 00000000 */ nop +/* 04C7D4 8004BBD4 00597823 */ subu $t7, $v0, $t9 +/* 04C7D8 8004BBD8 A20F01D2 */ sb $t7, 0x1d2($s0) +/* 04C7DC 8004BBDC 820D01D2 */ lb $t5, 0x1d2($s0) +/* 04C7E0 8004BBE0 00000000 */ nop +/* 04C7E4 8004BBE4 05A1001B */ bgez $t5, .L8004BC54 +/* 04C7E8 8004BBE8 00000000 */ nop +/* 04C7EC 8004BBEC 10000019 */ b .L8004BC54 +/* 04C7F0 8004BBF0 A20001D2 */ sb $zero, 0x1d2($s0) +.L8004BBF4: +/* 04C7F4 8004BBF4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04C7F8 8004BBF8 44814000 */ mtc1 $at, $f8 +/* 04C7FC 8004BBFC C7A600FC */ lwc1 $f6, 0xfc($sp) +/* 04C800 8004BC00 C62A000C */ lwc1 $f10, 0xc($s1) +/* 04C804 8004BC04 46064003 */ div.s $f0, $f8, $f6 +/* 04C808 8004BC08 C7B200E8 */ lwc1 $f18, 0xe8($sp) +/* 04C80C 8004BC0C 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012 +/* 04C810 8004BC10 C428D548 */ lwc1 $f8, %lo(D_8011D548)($at) +/* 04C814 8004BC14 46125101 */ sub.s $f4, $f10, $f18 +/* 04C818 8004BC18 C7B200E4 */ lwc1 $f18, 0xe4($sp) +/* 04C81C 8004BC1C 46082181 */ sub.s $f6, $f4, $f8 +/* 04C820 8004BC20 C62A0010 */ lwc1 $f10, 0x10($s1) +/* 04C824 8004BC24 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012 +/* 04C828 8004BC28 46003502 */ mul.s $f20, $f6, $f0 +/* 04C82C 8004BC2C 46125101 */ sub.s $f4, $f10, $f18 +/* 04C830 8004BC30 C6260014 */ lwc1 $f6, 0x14($s1) +/* 04C834 8004BC34 46002202 */ mul.s $f8, $f4, $f0 +/* 04C838 8004BC38 E6280020 */ swc1 $f8, 0x20($s1) +/* 04C83C 8004BC3C C7AA00E0 */ lwc1 $f10, 0xe0($sp) +/* 04C840 8004BC40 C424D54C */ lwc1 $f4, %lo(D_8011D54C)($at) +/* 04C844 8004BC44 460A3481 */ sub.s $f18, $f6, $f10 +/* 04C848 8004BC48 46049201 */ sub.s $f8, $f18, $f4 +/* 04C84C 8004BC4C 46004302 */ mul.s $f12, $f8, $f0 +/* 04C850 8004BC50 00000000 */ nop +.L8004BC54: +/* 04C854 8004BC54 8D6BD540 */ lw $t3, %lo(gRaceStartTimer)($t3) +/* 04C858 8004BC58 24010064 */ li $at, 100 +/* 04C85C 8004BC5C 15610005 */ bne $t3, $at, .L8004BC74 +/* 04C860 8004BC60 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 +/* 04C864 8004BC64 3C01C0A0 */ li $at, 0xC0A00000 # -5.000000 +/* 04C868 8004BC68 44813000 */ mtc1 $at, $f6 +/* 04C86C 8004BC6C 00000000 */ nop +/* 04C870 8004BC70 E6260020 */ swc1 $f6, 0x20($s1) +.L8004BC74: +/* 04C874 8004BC74 862E0000 */ lh $t6, ($s1) +/* 04C878 8004BC78 E634001C */ swc1 $f20, 0x1c($s1) +/* 04C87C 8004BC7C E62C0024 */ swc1 $f12, 0x24($s1) +/* 04C880 8004BC80 000EC023 */ negu $t8, $t6 +/* 04C884 8004BC84 A4B80000 */ sh $t8, ($a1) +/* 04C888 8004BC88 862C0002 */ lh $t4, 2($s1) +/* 04C88C 8004BC8C 44800000 */ mtc1 $zero, $f0 +/* 04C890 8004BC90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04C894 8004BC94 44815000 */ mtc1 $at, $f10 +/* 04C898 8004BC98 000CC823 */ negu $t9, $t4 +/* 04C89C 8004BC9C A4B90002 */ sh $t9, 2($a1) +/* 04C8A0 8004BCA0 A4A00004 */ sh $zero, 4($a1) +/* 04C8A4 8004BCA4 27A40060 */ addiu $a0, $sp, 0x60 +/* 04C8A8 8004BCA8 E4A0000C */ swc1 $f0, 0xc($a1) +/* 04C8AC 8004BCAC E4A00010 */ swc1 $f0, 0x10($a1) +/* 04C8B0 8004BCB0 E4A00014 */ swc1 $f0, 0x14($a1) +/* 04C8B4 8004BCB4 0C01BF9D */ jal object_transform_to_matrix_2 +/* 04C8B8 8004BCB8 E4AA0008 */ swc1 $f10, 8($a1) +/* 04C8BC 8004BCBC 8E25001C */ lw $a1, 0x1c($s1) +/* 04C8C0 8004BCC0 8E260020 */ lw $a2, 0x20($s1) +/* 04C8C4 8004BCC4 8E270024 */ lw $a3, 0x24($s1) +/* 04C8C8 8004BCC8 260F0030 */ addiu $t7, $s0, 0x30 +/* 04C8CC 8004BCCC 260D0034 */ addiu $t5, $s0, 0x34 +/* 04C8D0 8004BCD0 260B002C */ addiu $t3, $s0, 0x2c +/* 04C8D4 8004BCD4 AFAB0018 */ sw $t3, 0x18($sp) +/* 04C8D8 8004BCD8 AFAD0014 */ sw $t5, 0x14($sp) +/* 04C8DC 8004BCDC AFAF0010 */ sw $t7, 0x10($sp) +/* 04C8E0 8004BCE0 0C01BD93 */ jal guMtxXFMF +/* 04C8E4 8004BCE4 27A40060 */ addiu $a0, $sp, 0x60 +/* 04C8E8 8004BCE8 8E230060 */ lw $v1, 0x60($s1) +/* 04C8EC 8004BCEC 00000000 */ nop +/* 04C8F0 8004BCF0 10600013 */ beqz $v1, .L8004BD40 +/* 04C8F4 8004BCF4 00000000 */ nop +/* 04C8F8 8004BCF8 8C6E0000 */ lw $t6, ($v1) +/* 04C8FC 8004BCFC 00000000 */ nop +/* 04C900 8004BD00 29C10003 */ slti $at, $t6, 3 +/* 04C904 8004BD04 1420000E */ bnez $at, .L8004BD40 +/* 04C908 8004BD08 00000000 */ nop +/* 04C90C 8004BD0C 8C62000C */ lw $v0, 0xc($v1) +/* 04C910 8004BD10 24184000 */ li $t8, 16384 +/* 04C914 8004BD14 804C003A */ lb $t4, 0x3a($v0) +/* 04C918 8004BD18 8C4F0040 */ lw $t7, 0x40($v0) +/* 04C91C 8004BD1C 25990001 */ addiu $t9, $t4, 1 +/* 04C920 8004BD20 A059003A */ sb $t9, 0x3a($v0) +/* 04C924 8004BD24 A4580000 */ sh $t8, ($v0) +/* 04C928 8004BD28 804B003A */ lb $t3, 0x3a($v0) +/* 04C92C 8004BD2C 81ED0055 */ lb $t5, 0x55($t7) +/* 04C930 8004BD30 00000000 */ nop +/* 04C934 8004BD34 15AB0002 */ bne $t5, $t3, .L8004BD40 +/* 04C938 8004BD38 00000000 */ nop +/* 04C93C 8004BD3C A040003A */ sb $zero, 0x3a($v0) +.L8004BD40: +/* 04C940 8004BD40 8E230060 */ lw $v1, 0x60($s1) +/* 04C944 8004BD44 00000000 */ nop +/* 04C948 8004BD48 1060005F */ beqz $v1, .L8004BEC8 +/* 04C94C 8004BD4C 00000000 */ nop +/* 04C950 8004BD50 8C6E0000 */ lw $t6, ($v1) +/* 04C954 8004BD54 00000000 */ nop +/* 04C958 8004BD58 29C10003 */ slti $at, $t6, 3 +/* 04C95C 8004BD5C 1420005A */ bnez $at, .L8004BEC8 +/* 04C960 8004BD60 00000000 */ nop +/* 04C964 8004BD64 821801E2 */ lb $t8, 0x1e2($s0) +/* 04C968 8004BD68 83AC00A2 */ lb $t4, 0xa2($sp) +/* 04C96C 8004BD6C 17000003 */ bnez $t8, .L8004BD7C +/* 04C970 8004BD70 00000000 */ nop +/* 04C974 8004BD74 11800030 */ beqz $t4, .L8004BE38 +/* 04C978 8004BD78 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +.L8004BD7C: +/* 04C97C 8004BD7C 8C620004 */ lw $v0, 4($v1) +/* 04C980 8004BD80 44809000 */ mtc1 $zero, $f18 +/* 04C984 8004BD84 C4400010 */ lwc1 $f0, 0x10($v0) +/* 04C988 8004BD88 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04C98C 8004BD8C 4600903C */ c.lt.s $f18, $f0 +/* 04C990 8004BD90 00000000 */ nop +/* 04C994 8004BD94 45000008 */ bc1f .L8004BDB8 +/* 04C998 8004BD98 00000000 */ nop +/* 04C99C 8004BD9C 44814800 */ mtc1 $at, $f9 +/* 04C9A0 8004BDA0 44804000 */ mtc1 $zero, $f8 +/* 04C9A4 8004BDA4 46000121 */ cvt.d.s $f4, $f0 +/* 04C9A8 8004BDA8 46282181 */ sub.d $f6, $f4, $f8 +/* 04C9AC 8004BDAC 462032A0 */ cvt.s.d $f10, $f6 +/* 04C9B0 8004BDB0 10000004 */ b .L8004BDC4 +/* 04C9B4 8004BDB4 E44A0010 */ swc1 $f10, 0x10($v0) +.L8004BDB8: +/* 04C9B8 8004BDB8 44809000 */ mtc1 $zero, $f18 +/* 04C9BC 8004BDBC 00000000 */ nop +/* 04C9C0 8004BDC0 E4520010 */ swc1 $f18, 0x10($v0) +.L8004BDC4: +/* 04C9C4 8004BDC4 84590006 */ lh $t9, 6($v0) +/* 04C9C8 8004BDC8 44802000 */ mtc1 $zero, $f4 +/* 04C9CC 8004BDCC 332FBFFF */ andi $t7, $t9, 0xbfff +/* 04C9D0 8004BDD0 A44F0006 */ sh $t7, 6($v0) +/* 04C9D4 8004BDD4 8E2D0060 */ lw $t5, 0x60($s1) +/* 04C9D8 8004BDD8 2403BFFF */ li $v1, -16385 +/* 04C9DC 8004BDDC 8DA20008 */ lw $v0, 8($t5) +/* 04C9E0 8004BDE0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 04C9E4 8004BDE4 C4400010 */ lwc1 $f0, 0x10($v0) +/* 04C9E8 8004BDE8 00000000 */ nop +/* 04C9EC 8004BDEC 4600203C */ c.lt.s $f4, $f0 +/* 04C9F0 8004BDF0 00000000 */ nop +/* 04C9F4 8004BDF4 45000008 */ bc1f .L8004BE18 +/* 04C9F8 8004BDF8 00000000 */ nop +/* 04C9FC 8004BDFC 44813800 */ mtc1 $at, $f7 +/* 04CA00 8004BE00 44803000 */ mtc1 $zero, $f6 +/* 04CA04 8004BE04 46000221 */ cvt.d.s $f8, $f0 +/* 04CA08 8004BE08 46264281 */ sub.d $f10, $f8, $f6 +/* 04CA0C 8004BE0C 462054A0 */ cvt.s.d $f18, $f10 +/* 04CA10 8004BE10 10000004 */ b .L8004BE24 +/* 04CA14 8004BE14 E4520010 */ swc1 $f18, 0x10($v0) +.L8004BE18: +/* 04CA18 8004BE18 44802000 */ mtc1 $zero, $f4 +/* 04CA1C 8004BE1C 00000000 */ nop +/* 04CA20 8004BE20 E4440010 */ swc1 $f4, 0x10($v0) +.L8004BE24: +/* 04CA24 8004BE24 844B0006 */ lh $t3, 6($v0) +/* 04CA28 8004BE28 00000000 */ nop +/* 04CA2C 8004BE2C 01637024 */ and $t6, $t3, $v1 +/* 04CA30 8004BE30 10000025 */ b .L8004BEC8 +/* 04CA34 8004BE34 A44E0006 */ sh $t6, 6($v0) +.L8004BE38: +/* 04CA38 8004BE38 8C620004 */ lw $v0, 4($v1) +/* 04CA3C 8004BE3C 44814000 */ mtc1 $at, $f8 +/* 04CA40 8004BE40 C4400010 */ lwc1 $f0, 0x10($v0) +/* 04CA44 8004BE44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04CA48 8004BE48 4608003C */ c.lt.s $f0, $f8 +/* 04CA4C 8004BE4C 00000000 */ nop +/* 04CA50 8004BE50 45000006 */ bc1f .L8004BE6C +/* 04CA54 8004BE54 00000000 */ nop +/* 04CA58 8004BE58 44813000 */ mtc1 $at, $f6 +/* 04CA5C 8004BE5C 00000000 */ nop +/* 04CA60 8004BE60 46060280 */ add.s $f10, $f0, $f6 +/* 04CA64 8004BE64 10000005 */ b .L8004BE7C +/* 04CA68 8004BE68 E44A0010 */ swc1 $f10, 0x10($v0) +.L8004BE6C: +/* 04CA6C 8004BE6C 84580006 */ lh $t8, 6($v0) +/* 04CA70 8004BE70 00000000 */ nop +/* 04CA74 8004BE74 370C4000 */ ori $t4, $t8, 0x4000 +/* 04CA78 8004BE78 A44C0006 */ sh $t4, 6($v0) +.L8004BE7C: +/* 04CA7C 8004BE7C 8E390060 */ lw $t9, 0x60($s1) +/* 04CA80 8004BE80 3C0141A0 */ li $at, 0x41A00000 # 20.000000 +/* 04CA84 8004BE84 8F220008 */ lw $v0, 8($t9) +/* 04CA88 8004BE88 44819000 */ mtc1 $at, $f18 +/* 04CA8C 8004BE8C C4400010 */ lwc1 $f0, 0x10($v0) +/* 04CA90 8004BE90 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 04CA94 8004BE94 4612003C */ c.lt.s $f0, $f18 +/* 04CA98 8004BE98 00000000 */ nop +/* 04CA9C 8004BE9C 45000006 */ bc1f .L8004BEB8 +/* 04CAA0 8004BEA0 00000000 */ nop +/* 04CAA4 8004BEA4 44812000 */ mtc1 $at, $f4 +/* 04CAA8 8004BEA8 00000000 */ nop +/* 04CAAC 8004BEAC 46040200 */ add.s $f8, $f0, $f4 +/* 04CAB0 8004BEB0 10000005 */ b .L8004BEC8 +/* 04CAB4 8004BEB4 E4480010 */ swc1 $f8, 0x10($v0) +.L8004BEB8: +/* 04CAB8 8004BEB8 844F0006 */ lh $t7, 6($v0) +/* 04CABC 8004BEBC 00000000 */ nop +/* 04CAC0 8004BEC0 35ED4000 */ ori $t5, $t7, 0x4000 +/* 04CAC4 8004BEC4 A44D0006 */ sh $t5, 6($v0) +.L8004BEC8: +/* 04CAC8 8004BEC8 3C0B8012 */ lui $t3, %hi(gCurrentPlayerIndex) # $t3, 0x8012 +/* 04CACC 8004BECC 8D6BD55C */ lw $t3, %lo(gCurrentPlayerIndex)($t3) +/* 04CAD0 8004BED0 2401FFFF */ li $at, -1 +/* 04CAD4 8004BED4 11610046 */ beq $t3, $at, .L8004BFF0 +/* 04CAD8 8004BED8 00000000 */ nop +/* 04CADC 8004BEDC 820E01D3 */ lb $t6, 0x1d3($s0) +/* 04CAE0 8004BEE0 3C18800E */ lui $t8, %hi(gNumViewports) # $t8, 0x800e +/* 04CAE4 8004BEE4 15C00042 */ bnez $t6, .L8004BFF0 +/* 04CAE8 8004BEE8 00000000 */ nop +/* 04CAEC 8004BEEC 8F18CB98 */ lw $t8, %lo(gNumViewports)($t8) +/* 04CAF0 8004BEF0 00000000 */ nop +/* 04CAF4 8004BEF4 2B010002 */ slti $at, $t8, 2 +/* 04CAF8 8004BEF8 1020003D */ beqz $at, .L8004BFF0 +/* 04CAFC 8004BEFC 00000000 */ nop +/* 04CB00 8004BF00 0C0078A7 */ jal get_misc_asset +/* 04CB04 8004BF04 24040014 */ li $a0, 20 +/* 04CB08 8004BF08 82080203 */ lb $t0, 0x203($s0) +/* 04CB0C 8004BF0C 820C0002 */ lb $t4, 2($s0) +/* 04CB10 8004BF10 310F0004 */ andi $t7, $t0, 4 +/* 04CB14 8004BF14 000F6883 */ sra $t5, $t7, 2 +/* 04CB18 8004BF18 25A80009 */ addiu $t0, $t5, 9 +/* 04CB1C 8004BF1C 2901000A */ slti $at, $t0, 0xa +/* 04CB20 8004BF20 000CC9C0 */ sll $t9, $t4, 7 +/* 04CB24 8004BF24 14200012 */ bnez $at, .L8004BF70 +/* 04CB28 8004BF28 03221821 */ addu $v1, $t9, $v0 +/* 04CB2C 8004BF2C 906B0070 */ lbu $t3, 0x70($v1) +/* 04CB30 8004BF30 24180001 */ li $t8, 1 +/* 04CB34 8004BF34 1D600009 */ bgtz $t3, .L8004BF5C +/* 04CB38 8004BF38 00000000 */ nop +/* 04CB3C 8004BF3C C46A0074 */ lwc1 $f10, 0x74($v1) +/* 04CB40 8004BF40 44803800 */ mtc1 $zero, $f7 +/* 04CB44 8004BF44 44803000 */ mtc1 $zero, $f6 +/* 04CB48 8004BF48 460054A1 */ cvt.d.s $f18, $f10 +/* 04CB4C 8004BF4C 4632303C */ c.lt.d $f6, $f18 +/* 04CB50 8004BF50 00000000 */ nop +/* 04CB54 8004BF54 45000026 */ bc1f .L8004BFF0 +/* 04CB58 8004BF58 00000000 */ nop +.L8004BF5C: +/* 04CB5C 8004BF5C 8E2E0074 */ lw $t6, 0x74($s1) +/* 04CB60 8004BF60 01186004 */ sllv $t4, $t8, $t0 +/* 04CB64 8004BF64 01CCC825 */ or $t9, $t6, $t4 +/* 04CB68 8004BF68 10000021 */ b .L8004BFF0 +/* 04CB6C 8004BF6C AE390074 */ sw $t9, 0x74($s1) +.L8004BF70: +/* 04CB70 8004BF70 90620070 */ lbu $v0, 0x70($v1) +/* 04CB74 8004BF74 24010002 */ li $at, 2 +/* 04CB78 8004BF78 14410010 */ bne $v0, $at, .L8004BFBC +/* 04CB7C 8004BF7C 28410002 */ slti $at, $v0, 2 +/* 04CB80 8004BF80 C4640074 */ lwc1 $f4, 0x74($v1) +/* 04CB84 8004BF84 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 04CB88 8004BF88 44815800 */ mtc1 $at, $f11 +/* 04CB8C 8004BF8C 44805000 */ mtc1 $zero, $f10 +/* 04CB90 8004BF90 46002221 */ cvt.d.s $f8, $f4 +/* 04CB94 8004BF94 462A403C */ c.lt.d $f8, $f10 +/* 04CB98 8004BF98 240D0001 */ li $t5, 1 +/* 04CB9C 8004BF9C 45000007 */ bc1f .L8004BFBC +/* 04CBA0 8004BFA0 28410002 */ slti $at, $v0, 2 +/* 04CBA4 8004BFA4 8E2F0074 */ lw $t7, 0x74($s1) +/* 04CBA8 8004BFA8 010D5804 */ sllv $t3, $t5, $t0 +/* 04CBAC 8004BFAC 01EBC025 */ or $t8, $t7, $t3 +/* 04CBB0 8004BFB0 1000000F */ b .L8004BFF0 +/* 04CBB4 8004BFB4 AE380074 */ sw $t8, 0x74($s1) +/* 04CBB8 8004BFB8 28410002 */ slti $at, $v0, 2 +.L8004BFBC: +/* 04CBBC 8004BFBC 1020000C */ beqz $at, .L8004BFF0 +/* 04CBC0 8004BFC0 00000000 */ nop +/* 04CBC4 8004BFC4 44803000 */ mtc1 $zero, $f6 +/* 04CBC8 8004BFC8 C4720074 */ lwc1 $f18, 0x74($v1) +/* 04CBCC 8004BFCC 240C0001 */ li $t4, 1 +/* 04CBD0 8004BFD0 4612303C */ c.lt.s $f6, $f18 +/* 04CBD4 8004BFD4 00000000 */ nop +/* 04CBD8 8004BFD8 45000005 */ bc1f .L8004BFF0 +/* 04CBDC 8004BFDC 00000000 */ nop +/* 04CBE0 8004BFE0 8E2E0074 */ lw $t6, 0x74($s1) +/* 04CBE4 8004BFE4 010CC804 */ sllv $t9, $t4, $t0 +/* 04CBE8 8004BFE8 01D96825 */ or $t5, $t6, $t9 +/* 04CBEC 8004BFEC AE2D0074 */ sw $t5, 0x74($s1) +.L8004BFF0: +/* 04CBF0 8004BFF0 3C0F8012 */ lui $t7, %hi(gCurrentPlayerIndex) # $t7, 0x8012 +/* 04CBF4 8004BFF4 8DEFD55C */ lw $t7, %lo(gCurrentPlayerIndex)($t7) +/* 04CBF8 8004BFF8 2401FFFF */ li $at, -1 +/* 04CBFC 8004BFFC 15E10002 */ bne $t7, $at, .L8004C008 +/* 04CC00 8004C000 00000000 */ nop +/* 04CC04 8004C004 AE200074 */ sw $zero, 0x74($s1) +.L8004C008: +/* 04CC08 8004C008 820B0201 */ lb $t3, 0x201($s0) +/* 04CC0C 8004C00C 00000000 */ nop +/* 04CC10 8004C010 15600002 */ bnez $t3, .L8004C01C +/* 04CC14 8004C014 00000000 */ nop +/* 04CC18 8004C018 AE200074 */ sw $zero, 0x74($s1) +.L8004C01C: +/* 04CC1C 8004C01C 821801D7 */ lb $t8, 0x1d7($s0) +/* 04CC20 8004C020 8FA500F8 */ lw $a1, 0xf8($sp) +/* 04CC24 8004C024 2B010005 */ slti $at, $t8, 5 +/* 04CC28 8004C028 10200004 */ beqz $at, .L8004C03C +/* 04CC2C 8004C02C 83AC00A1 */ lb $t4, 0xa1($sp) +/* 04CC30 8004C030 0C02BDC5 */ jal func_800AF714 +/* 04CC34 8004C034 02202025 */ move $a0, $s1 +/* 04CC38 8004C038 83AC00A1 */ lb $t4, 0xa1($sp) +.L8004C03C: +/* 04CC3C 8004C03C 02202025 */ move $a0, $s1 +/* 04CC40 8004C040 11800007 */ beqz $t4, .L8004C060 +/* 04CC44 8004C044 02002825 */ move $a1, $s0 +/* 04CC48 8004C048 3C028012 */ lui $v0, %hi(gCurrentRacerInput) # $v0, 0x8012 +/* 04CC4C 8004C04C 2442D528 */ addiu $v0, %lo(gCurrentRacerInput) # addiu $v0, $v0, -0x2ad8 +/* 04CC50 8004C050 8C4E0000 */ lw $t6, ($v0) +/* 04CC54 8004C054 00000000 */ nop +/* 04CC58 8004C058 35D90010 */ ori $t9, $t6, 0x10 +/* 04CC5C 8004C05C AC590000 */ sw $t9, ($v0) +.L8004C060: +/* 04CC60 8004C060 8FA700FC */ lw $a3, 0xfc($sp) +/* 04CC64 8004C064 0C01602D */ jal func_800580B4 +/* 04CC68 8004C068 24060001 */ li $a2, 1 +/* 04CC6C 8004C06C 83AD005F */ lb $t5, 0x5f($sp) +/* 04CC70 8004C070 02202025 */ move $a0, $s1 +/* 04CC74 8004C074 11A00004 */ beqz $t5, .L8004C088 +/* 04CC78 8004C078 8FBF0034 */ lw $ra, 0x34($sp) +/* 04CC7C 8004C07C 0C008C34 */ jal func_800230D0 +/* 04CC80 8004C080 02002825 */ move $a1, $s0 +/* 04CC84 8004C084 8FBF0034 */ lw $ra, 0x34($sp) +.L8004C088: +/* 04CC88 8004C088 C7B50020 */ lwc1 $f21, 0x20($sp) +/* 04CC8C 8004C08C C7B40024 */ lwc1 $f20, 0x24($sp) +/* 04CC90 8004C090 8FB0002C */ lw $s0, 0x2c($sp) +/* 04CC94 8004C094 8FB10030 */ lw $s1, 0x30($sp) +/* 04CC98 8004C098 03E00008 */ jr $ra +/* 04CC9C 8004C09C 27BD00F8 */ addiu $sp, $sp, 0xf8 + diff --git a/asm/non_matchings/racer/func_8004F7F4.s b/asm/non_matchings/racer/func_8004F7F4.s index 46ce336c..7dc90009 100644 --- a/asm/non_matchings/racer/func_8004F7F4.s +++ b/asm/non_matchings/racer/func_8004F7F4.s @@ -1,1075 +1,1075 @@ -.late_rodata -glabel D_800E6600 -.double 0.065 -glabel D_800E6608 -.double 0.3 -glabel D_800E6610 -.double 0.1 -glabel D_800E6618 -.double 0.3 -glabel D_800E6620 -.double 0.1 -glabel D_800E6628 -.double 0.004 -glabel D_800E6630 -.double 0.65 - -.text -glabel func_8004F7F4 -/* 0503F4 8004F7F4 27BDFF40 */ addiu $sp, $sp, -0xc0 -/* 0503F8 8004F7F8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0503FC 8004F7FC AFB10028 */ sw $s1, 0x28($sp) -/* 050400 8004F800 AFB00024 */ sw $s0, 0x24($sp) -/* 050404 8004F804 AFA400C0 */ sw $a0, 0xc0($sp) -/* 050408 8004F808 AFA500C4 */ sw $a1, 0xc4($sp) -/* 05040C 8004F80C A3A00053 */ sb $zero, 0x53($sp) -/* 050410 8004F810 80EE01D2 */ lb $t6, 0x1d2($a3) -/* 050414 8004F814 00E08025 */ move $s0, $a3 -/* 050418 8004F818 11C00008 */ beqz $t6, .L8004F83C -/* 05041C 8004F81C 00C08825 */ move $s1, $a2 -/* 050420 8004F820 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 -/* 050424 8004F824 2484D528 */ addiu $a0, %lo(gCurrentRacerInput) # addiu $a0, $a0, -0x2ad8 -/* 050428 8004F828 8C8F0000 */ lw $t7, ($a0) -/* 05042C 8004F82C 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* 050430 8004F830 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* 050434 8004F834 01E1C024 */ and $t8, $t7, $at -/* 050438 8004F838 AC980000 */ sw $t8, ($a0) -.L8004F83C: -/* 05043C 8004F83C 3C198012 */ lui $t9, %hi(gCurrentPlayerIndex) # $t9, 0x8012 -/* 050440 8004F840 8F39D55C */ lw $t9, %lo(gCurrentPlayerIndex)($t9) -/* 050444 8004F844 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 -/* 050448 8004F848 2401FFFF */ li $at, -1 -/* 05044C 8004F84C 13210005 */ beq $t9, $at, .L8004F864 -/* 050450 8004F850 2484D528 */ addiu $a0, %lo(gCurrentRacerInput) # addiu $a0, $a0, -0x2ad8 -/* 050454 8004F854 820801D8 */ lb $t0, 0x1d8($s0) -/* 050458 8004F858 00003025 */ move $a2, $zero -/* 05045C 8004F85C 11000008 */ beqz $t0, .L8004F880 -/* 050460 8004F860 00003825 */ move $a3, $zero -.L8004F864: -/* 050464 8004F864 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050468 8004F868 8FA700C4 */ lw $a3, 0xc4($sp) -/* 05046C 8004F86C 02202025 */ move $a0, $s1 -/* 050470 8004F870 0C015044 */ jal func_80054110 -/* 050474 8004F874 02002825 */ move $a1, $s0 -/* 050478 8004F878 100003B2 */ b .L80050744 -/* 05047C 8004F87C 8FBF002C */ lw $ra, 0x2c($sp) -.L8004F880: -/* 050480 8004F880 820901D4 */ lb $t1, 0x1d4($s0) -/* 050484 8004F884 3C038012 */ lui $v1, %hi(gCurrentButtonsPressed) # $v1, 0x8012 -/* 050488 8004F888 1120000D */ beqz $t1, .L8004F8C0 -/* 05048C 8004F88C 2463D52C */ addiu $v1, %lo(gCurrentButtonsPressed) # addiu $v1, $v1, -0x2ad4 -/* 050490 8004F890 8C6A0000 */ lw $t2, ($v1) -/* 050494 8004F894 2401DFEF */ li $at, -8209 -/* 050498 8004F898 01415824 */ and $t3, $t2, $at -/* 05049C 8004F89C AC6B0000 */ sw $t3, ($v1) -/* 0504A0 8004F8A0 820201D4 */ lb $v0, 0x1d4($s0) -/* 0504A4 8004F8A4 00000000 */ nop -/* 0504A8 8004F8A8 18400004 */ blez $v0, .L8004F8BC -/* 0504AC 8004F8AC 244D0004 */ addiu $t5, $v0, 4 -/* 0504B0 8004F8B0 244CFFFC */ addiu $t4, $v0, -4 -/* 0504B4 8004F8B4 10000002 */ b .L8004F8C0 -/* 0504B8 8004F8B8 A20C01D4 */ sb $t4, 0x1d4($s0) -.L8004F8BC: -/* 0504BC 8004F8BC A20D01D4 */ sb $t5, 0x1d4($s0) -.L8004F8C0: -/* 0504C0 8004F8C0 8C8E0000 */ lw $t6, ($a0) -/* 0504C4 8004F8C4 00001825 */ move $v1, $zero -/* 0504C8 8004F8C8 31CF4000 */ andi $t7, $t6, 0x4000 -/* 0504CC 8004F8CC 11E0000D */ beqz $t7, .L8004F904 -/* 0504D0 8004F8D0 02002025 */ move $a0, $s0 -/* 0504D4 8004F8D4 820201E6 */ lb $v0, 0x1e6($s0) -/* 0504D8 8004F8D8 00000000 */ nop -/* 0504DC 8004F8DC 10400009 */ beqz $v0, .L8004F904 -/* 0504E0 8004F8E0 00000000 */ nop -/* 0504E4 8004F8E4 000218C0 */ sll $v1, $v0, 3 -/* 0504E8 8004F8E8 00621823 */ subu $v1, $v1, $v0 -/* 0504EC 8004F8EC 000318C0 */ sll $v1, $v1, 3 -/* 0504F0 8004F8F0 00621821 */ addu $v1, $v1, $v0 -/* 0504F4 8004F8F4 000318C0 */ sll $v1, $v1, 3 -/* 0504F8 8004F8F8 00621823 */ subu $v1, $v1, $v0 -/* 0504FC 8004F8FC 10000001 */ b .L8004F904 -/* 050500 8004F900 000318C0 */ sll $v1, $v1, 3 -.L8004F904: -/* 050504 8004F904 921801FE */ lbu $t8, 0x1fe($s0) -/* 050508 8004F908 00000000 */ nop -/* 05050C 8004F90C 17000006 */ bnez $t8, .L8004F928 -/* 050510 8004F910 8FA500C0 */ lw $a1, 0xc0($sp) -/* 050514 8004F914 8E390074 */ lw $t9, 0x74($s1) -/* 050518 8004F918 00000000 */ nop -/* 05051C 8004F91C 37280400 */ ori $t0, $t9, 0x400 -/* 050520 8004F920 AE280074 */ sw $t0, 0x74($s1) -/* 050524 8004F924 8FA500C0 */ lw $a1, 0xc0($sp) -.L8004F928: -/* 050528 8004F928 0C014214 */ jal apply_vehicle_rotation_offset -/* 05052C 8004F92C AFA30010 */ sw $v1, 0x10($sp) -/* 050530 8004F930 8FA600C4 */ lw $a2, 0xc4($sp) -/* 050534 8004F934 02202025 */ move $a0, $s1 -/* 050538 8004F938 0C014DD4 */ jal func_80053750 -/* 05053C 8004F93C 02002825 */ move $a1, $s0 -/* 050540 8004F940 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050544 8004F944 02202025 */ move $a0, $s1 -/* 050548 8004F948 0C014871 */ jal func_800521C4 -/* 05054C 8004F94C 02002825 */ move $a1, $s0 -/* 050550 8004F950 3C018012 */ lui $at, %hi(D_8011D550) # $at, 0x8012 -/* 050554 8004F954 A420D550 */ sh $zero, %lo(D_8011D550)($at) -/* 050558 8004F958 3C018012 */ lui $at, %hi(gCurrentCarSteerVel) # $at, 0x8012 -/* 05055C 8004F95C AC20D554 */ sw $zero, %lo(gCurrentCarSteerVel)($at) -/* 050560 8004F960 3C018012 */ lui $at, %hi(D_8011D558) # $at, 0x8012 -/* 050564 8004F964 AC20D558 */ sw $zero, %lo(D_8011D558)($at) -/* 050568 8004F968 C624000C */ lwc1 $f4, 0xc($s1) -/* 05056C 8004F96C 00000000 */ nop -/* 050570 8004F970 E7A400A8 */ swc1 $f4, 0xa8($sp) -/* 050574 8004F974 C6260010 */ lwc1 $f6, 0x10($s1) -/* 050578 8004F978 00000000 */ nop -/* 05057C 8004F97C E7A600A4 */ swc1 $f6, 0xa4($sp) -/* 050580 8004F980 C6280014 */ lwc1 $f8, 0x14($s1) -/* 050584 8004F984 00000000 */ nop -/* 050588 8004F988 E7A800A0 */ swc1 $f8, 0xa0($sp) -/* 05058C 8004F98C 820201E6 */ lb $v0, 0x1e6($s0) -/* 050590 8004F990 00000000 */ nop -/* 050594 8004F994 10400068 */ beqz $v0, .L8004FB38 -/* 050598 8004F998 00000000 */ nop -/* 05059C 8004F99C 04410013 */ bgez $v0, .L8004F9EC -/* 0505A0 8004F9A0 3C068012 */ lui $a2, %hi(gCurrentStickX) # $a2, 0x8012 -/* 0505A4 8004F9A4 24C6D534 */ addiu $a2, %lo(gCurrentStickX) # addiu $a2, $a2, -0x2acc -/* 0505A8 8004F9A8 8CC90000 */ lw $t1, ($a2) -/* 0505AC 8004F9AC 8FAB00C0 */ lw $t3, 0xc0($sp) -/* 0505B0 8004F9B0 2921001A */ slti $at, $t1, 0x1a -/* 0505B4 8004F9B4 1420000D */ bnez $at, .L8004F9EC -/* 0505B8 8004F9B8 00000000 */ nop -/* 0505BC 8004F9BC 860A016E */ lh $t2, 0x16e($s0) -/* 0505C0 8004F9C0 00000000 */ nop -/* 0505C4 8004F9C4 014B6021 */ addu $t4, $t2, $t3 -/* 0505C8 8004F9C8 A60C016E */ sh $t4, 0x16e($s0) -/* 0505CC 8004F9CC 8602016E */ lh $v0, 0x16e($s0) -/* 0505D0 8004F9D0 00000000 */ nop -/* 0505D4 8004F9D4 0441001C */ bgez $v0, .L8004FA48 -/* 0505D8 8004F9D8 00000000 */ nop -/* 0505DC 8004F9DC A600016E */ sh $zero, 0x16e($s0) -/* 0505E0 8004F9E0 8602016E */ lh $v0, 0x16e($s0) -/* 0505E4 8004F9E4 10000019 */ b .L8004FA4C -/* 0505E8 8004F9E8 44825000 */ mtc1 $v0, $f10 -.L8004F9EC: -/* 0505EC 8004F9EC 3C068012 */ lui $a2, %hi(gCurrentStickX) # $a2, 0x8012 -/* 0505F0 8004F9F0 18400012 */ blez $v0, .L8004FA3C -/* 0505F4 8004F9F4 24C6D534 */ addiu $a2, %lo(gCurrentStickX) # addiu $a2, $a2, -0x2acc -/* 0505F8 8004F9F8 8CCD0000 */ lw $t5, ($a2) -/* 0505FC 8004F9FC 8FAF00C0 */ lw $t7, 0xc0($sp) -/* 050600 8004FA00 29A1FFE7 */ slti $at, $t5, -0x19 -/* 050604 8004FA04 1020000D */ beqz $at, .L8004FA3C -/* 050608 8004FA08 00000000 */ nop -/* 05060C 8004FA0C 860E016E */ lh $t6, 0x16e($s0) -/* 050610 8004FA10 00000000 */ nop -/* 050614 8004FA14 01CFC023 */ subu $t8, $t6, $t7 -/* 050618 8004FA18 A618016E */ sh $t8, 0x16e($s0) -/* 05061C 8004FA1C 8602016E */ lh $v0, 0x16e($s0) -/* 050620 8004FA20 00000000 */ nop -/* 050624 8004FA24 18400008 */ blez $v0, .L8004FA48 -/* 050628 8004FA28 00000000 */ nop -/* 05062C 8004FA2C A600016E */ sh $zero, 0x16e($s0) -/* 050630 8004FA30 8602016E */ lh $v0, 0x16e($s0) -/* 050634 8004FA34 10000005 */ b .L8004FA4C -/* 050638 8004FA38 44825000 */ mtc1 $v0, $f10 -.L8004FA3C: -/* 05063C 8004FA3C A600016E */ sh $zero, 0x16e($s0) -/* 050640 8004FA40 8602016E */ lh $v0, 0x16e($s0) -/* 050644 8004FA44 00000000 */ nop -.L8004FA48: -/* 050648 8004FA48 44825000 */ mtc1 $v0, $f10 -.L8004FA4C: -/* 05064C 8004FA4C 44802000 */ mtc1 $zero, $f4 -/* 050650 8004FA50 46805420 */ cvt.s.w $f16, $f10 -/* 050654 8004FA54 3C0142A0 */ li $at, 0x42A00000 # 80.000000 -/* 050658 8004FA58 44814000 */ mtc1 $at, $f8 -/* 05065C 8004FA5C E7B000B8 */ swc1 $f16, 0xb8($sp) -/* 050660 8004FA60 C7B200B8 */ lwc1 $f18, 0xb8($sp) -/* 050664 8004FA64 02202025 */ move $a0, $s1 -/* 050668 8004FA68 4604903C */ c.lt.s $f18, $f4 -/* 05066C 8004FA6C 00000000 */ nop -/* 050670 8004FA70 45000003 */ bc1f .L8004FA80 -/* 050674 8004FA74 00000000 */ nop -/* 050678 8004FA78 46009187 */ neg.s $f6, $f18 -/* 05067C 8004FA7C E7A600B8 */ swc1 $f6, 0xb8($sp) -.L8004FA80: -/* 050680 8004FA80 C7AA00B8 */ lwc1 $f10, 0xb8($sp) -/* 050684 8004FA84 00000000 */ nop -/* 050688 8004FA88 460A403C */ c.lt.s $f8, $f10 -/* 05068C 8004FA8C 00000000 */ nop -/* 050690 8004FA90 45000009 */ bc1f .L8004FAB8 -/* 050694 8004FA94 00000000 */ nop -/* 050698 8004FA98 0C015C12 */ jal racer_play_sound -/* 05069C 8004FA9C 2405001C */ li $a1, 28 -/* 0506A0 8004FAA0 821901E6 */ lb $t9, 0x1e6($s0) -/* 0506A4 8004FAA4 3C068012 */ lui $a2, %hi(gCurrentStickX) # $a2, 0x8012 -/* 0506A8 8004FAA8 00194023 */ negu $t0, $t9 -/* 0506AC 8004FAAC 24C6D534 */ addiu $a2, %lo(gCurrentStickX) # addiu $a2, $a2, -0x2acc -/* 0506B0 8004FAB0 A20801DB */ sb $t0, 0x1db($s0) -/* 0506B4 8004FAB4 A20001E6 */ sb $zero, 0x1e6($s0) -.L8004FAB8: -/* 0506B8 8004FAB8 8CC30000 */ lw $v1, ($a2) -/* 0506BC 8004FABC 00000000 */ nop -/* 0506C0 8004FAC0 28610033 */ slti $at, $v1, 0x33 -/* 0506C4 8004FAC4 14200004 */ bnez $at, .L8004FAD8 -/* 0506C8 8004FAC8 2861FFCE */ slti $at, $v1, -0x32 -/* 0506CC 8004FACC 24030032 */ li $v1, 50 -/* 0506D0 8004FAD0 ACC30000 */ sw $v1, ($a2) -/* 0506D4 8004FAD4 2861FFCE */ slti $at, $v1, -0x32 -.L8004FAD8: -/* 0506D8 8004FAD8 10200003 */ beqz $at, .L8004FAE8 -/* 0506DC 8004FADC 00000000 */ nop -/* 0506E0 8004FAE0 2403FFCE */ li $v1, -50 -/* 0506E4 8004FAE4 ACC30000 */ sw $v1, ($a2) -.L8004FAE8: -/* 0506E8 8004FAE8 18600005 */ blez $v1, .L8004FB00 -/* 0506EC 8004FAEC 00000000 */ nop -/* 0506F0 8004FAF0 820B01E6 */ lb $t3, 0x1e6($s0) -/* 0506F4 8004FAF4 00000000 */ nop -/* 0506F8 8004FAF8 1D600006 */ bgtz $t3, .L8004FB14 -/* 0506FC 8004FAFC 00036083 */ sra $t4, $v1, 2 -.L8004FB00: -/* 050700 8004FB00 820201E6 */ lb $v0, 0x1e6($s0) -/* 050704 8004FB04 04610007 */ bgez $v1, .L8004FB24 -/* 050708 8004FB08 00026900 */ sll $t5, $v0, 4 -/* 05070C 8004FB0C 04410004 */ bgez $v0, .L8004FB20 -/* 050710 8004FB10 00036083 */ sra $t4, $v1, 2 -.L8004FB14: -/* 050714 8004FB14 ACCC0000 */ sw $t4, ($a2) -/* 050718 8004FB18 820201E6 */ lb $v0, 0x1e6($s0) -/* 05071C 8004FB1C 01801825 */ move $v1, $t4 -.L8004FB20: -/* 050720 8004FB20 00026900 */ sll $t5, $v0, 4 -.L8004FB24: -/* 050724 8004FB24 01A26823 */ subu $t5, $t5, $v0 -/* 050728 8004FB28 000D6880 */ sll $t5, $t5, 2 -/* 05072C 8004FB2C 006D7021 */ addu $t6, $v1, $t5 -/* 050730 8004FB30 10000002 */ b .L8004FB3C -/* 050734 8004FB34 ACCE0000 */ sw $t6, ($a2) -.L8004FB38: -/* 050738 8004FB38 A600016E */ sh $zero, 0x16e($s0) -.L8004FB3C: -/* 05073C 8004FB3C 8FA600C4 */ lw $a2, 0xc4($sp) -/* 050740 8004FB40 02002025 */ move $a0, $s0 -/* 050744 8004FB44 0C015E6C */ jal handle_base_steering -/* 050748 8004FB48 00002825 */ move $a1, $zero -/* 05074C 8004FB4C 02202025 */ move $a0, $s1 -/* 050750 8004FB50 0C015D7B */ jal func_800575EC -/* 050754 8004FB54 02002825 */ move $a1, $s0 -/* 050758 8004FB58 02202025 */ move $a0, $s1 -/* 05075C 8004FB5C 0C014D71 */ jal func_800535C4 -/* 050760 8004FB60 02002825 */ move $a1, $s0 -/* 050764 8004FB64 0C014D99 */ jal handle_car_velocity_control -/* 050768 8004FB68 02002025 */ move $a0, $s0 -/* 05076C 8004FB6C 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050770 8004FB70 02202025 */ move $a0, $s1 -/* 050774 8004FB74 0C0157B0 */ jal func_80055EC0 -/* 050778 8004FB78 02002825 */ move $a1, $s0 -/* 05077C 8004FB7C 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050780 8004FB80 02202025 */ move $a0, $s1 -/* 050784 8004FB84 0C014FA7 */ jal racer_attack_handler -/* 050788 8004FB88 02002825 */ move $a1, $s0 -/* 05078C 8004FB8C 820F01DB */ lb $t7, 0x1db($s0) -/* 050790 8004FB90 00000000 */ nop -/* 050794 8004FB94 11E00008 */ beqz $t7, .L8004FBB8 -/* 050798 8004FB98 00000000 */ nop -/* 05079C 8004FB9C 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0507A0 8004FBA0 8FA700C4 */ lw $a3, 0xc4($sp) -/* 0507A4 8004FBA4 02202025 */ move $a0, $s1 -/* 0507A8 8004FBA8 0C014AD9 */ jal racer_spinout_car -/* 0507AC 8004FBAC 02002825 */ move $a1, $s0 -/* 0507B0 8004FBB0 10000010 */ b .L8004FBF4 -/* 0507B4 8004FBB4 8E02001C */ lw $v0, 0x1c($s0) -.L8004FBB8: -/* 0507B8 8004FBB8 821801E2 */ lb $t8, 0x1e2($s0) -/* 0507BC 8004FBBC 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0507C0 8004FBC0 1B000008 */ blez $t8, .L8004FBE4 -/* 0507C4 8004FBC4 02202025 */ move $a0, $s1 -/* 0507C8 8004FBC8 8FA600C0 */ lw $a2, 0xc0($sp) -/* 0507CC 8004FBCC 8FA700C4 */ lw $a3, 0xc4($sp) -/* 0507D0 8004FBD0 02202025 */ move $a0, $s1 -/* 0507D4 8004FBD4 0C01428A */ jal func_80050A28 -/* 0507D8 8004FBD8 02002825 */ move $a1, $s0 -/* 0507DC 8004FBDC 10000005 */ b .L8004FBF4 -/* 0507E0 8004FBE0 8E02001C */ lw $v0, 0x1c($s0) -.L8004FBE4: -/* 0507E4 8004FBE4 8FA700C4 */ lw $a3, 0xc4($sp) -/* 0507E8 8004FBE8 0C014B5F */ jal func_80052D7C -/* 0507EC 8004FBEC 02002825 */ move $a1, $s0 -/* 0507F0 8004FBF0 8E02001C */ lw $v0, 0x1c($s0) -.L8004FBF4: -/* 0507F4 8004FBF4 00000000 */ nop -/* 0507F8 8004FBF8 10400004 */ beqz $v0, .L8004FC0C -/* 0507FC 8004FBFC 00000000 */ nop -/* 050800 8004FC00 0C001223 */ jal func_8000488C -/* 050804 8004FC04 00402025 */ move $a0, $v0 -/* 050808 8004FC08 AE00001C */ sw $zero, 0x1c($s0) -.L8004FC0C: -/* 05080C 8004FC0C C60000C0 */ lwc1 $f0, 0xc0($s0) -/* 050810 8004FC10 44808000 */ mtc1 $zero, $f16 -/* 050814 8004FC14 00000000 */ nop -/* 050818 8004FC18 46008032 */ c.eq.s $f16, $f0 -/* 05081C 8004FC1C 00000000 */ nop -/* 050820 8004FC20 45010018 */ bc1t .L8004FC84 -/* 050824 8004FC24 00000000 */ nop -/* 050828 8004FC28 821901D7 */ lb $t9, 0x1d7($s0) -/* 05082C 8004FC2C 2401000B */ li $at, 11 -/* 050830 8004FC30 13210014 */ beq $t9, $at, .L8004FC84 -/* 050834 8004FC34 3C014024 */ li $at, 0x40240000 # 2.562500 -/* 050838 8004FC38 44819800 */ mtc1 $at, $f19 -/* 05083C 8004FC3C 44809000 */ mtc1 $zero, $f18 -/* 050840 8004FC40 46000121 */ cvt.d.s $f4, $f0 -/* 050844 8004FC44 46322181 */ sub.d $f6, $f4, $f18 -/* 050848 8004FC48 3C01800E */ lui $at, %hi(D_800E6600 + 4) # $at, 0x800e -/* 05084C 8004FC4C 46203220 */ cvt.s.d $f8, $f6 -/* 050850 8004FC50 C4316600 */ lwc1 $f17, %lo(D_800E6600)($at) -/* 050854 8004FC54 C4306604 */ lwc1 $f16, %lo(D_800E6600 + 4)($at) -/* 050858 8004FC58 460042A1 */ cvt.d.s $f10, $f8 -/* 05085C 8004FC5C 46305102 */ mul.d $f4, $f10, $f16 -/* 050860 8004FC60 C7B200C4 */ lwc1 $f18, 0xc4($sp) -/* 050864 8004FC64 E7A800B8 */ swc1 $f8, 0xb8($sp) -/* 050868 8004FC68 460091A1 */ cvt.d.s $f6, $f18 -/* 05086C 8004FC6C C62A0020 */ lwc1 $f10, 0x20($s1) -/* 050870 8004FC70 46262202 */ mul.d $f8, $f4, $f6 -/* 050874 8004FC74 46005421 */ cvt.d.s $f16, $f10 -/* 050878 8004FC78 46288480 */ add.d $f18, $f16, $f8 -/* 05087C 8004FC7C 46209120 */ cvt.s.d $f4, $f18 -/* 050880 8004FC80 E6240020 */ swc1 $f4, 0x20($s1) -.L8004FC84: -/* 050884 8004FC84 0C01AF6C */ jal get_current_level_header -/* 050888 8004FC88 00000000 */ nop -/* 05088C 8004FC8C C60A00C0 */ lwc1 $f10, 0xc0($s0) -/* 050890 8004FC90 44803800 */ mtc1 $zero, $f7 -/* 050894 8004FC94 44803000 */ mtc1 $zero, $f6 -/* 050898 8004FC98 46005421 */ cvt.d.s $f16, $f10 -/* 05089C 8004FC9C 46303032 */ c.eq.d $f6, $f16 -/* 0508A0 8004FCA0 00000000 */ nop -/* 0508A4 8004FCA4 45010004 */ bc1t .L8004FCB8 -/* 0508A8 8004FCA8 00000000 */ nop -/* 0508AC 8004FCAC 80480002 */ lb $t0, 2($v0) -/* 0508B0 8004FCB0 00000000 */ nop -/* 0508B4 8004FCB4 15000005 */ bnez $t0, .L8004FCCC -.L8004FCB8: -/* 0508B8 8004FCB8 3C098012 */ lui $t1, %hi(gCurrentSurfaceType) # $t1, 0x8012 -/* 0508BC 8004FCBC 8129D581 */ lb $t1, %lo(gCurrentSurfaceType)($t1) -/* 0508C0 8004FCC0 2401000A */ li $at, 10 -/* 0508C4 8004FCC4 1521004F */ bne $t1, $at, .L8004FE04 -/* 0508C8 8004FCC8 00000000 */ nop -.L8004FCCC: -/* 0508CC 8004FCCC 920A01F0 */ lbu $t2, 0x1f0($s0) -/* 0508D0 8004FCD0 02202025 */ move $a0, $s1 -/* 0508D4 8004FCD4 1140000A */ beqz $t2, .L8004FD00 -/* 0508D8 8004FCD8 02002825 */ move $a1, $s0 -/* 0508DC 8004FCDC 3C01800E */ lui $at, %hi(D_800E6608 + 4) # $at, 0x800e -/* 0508E0 8004FCE0 C60800A8 */ lwc1 $f8, 0xa8($s0) -/* 0508E4 8004FCE4 C4256608 */ lwc1 $f5, %lo(D_800E6608)($at) -/* 0508E8 8004FCE8 C424660C */ lwc1 $f4, %lo(D_800E6608 + 4)($at) -/* 0508EC 8004FCEC 460044A1 */ cvt.d.s $f18, $f8 -/* 0508F0 8004FCF0 46249281 */ sub.d $f10, $f18, $f4 -/* 0508F4 8004FCF4 462051A0 */ cvt.s.d $f6, $f10 -/* 0508F8 8004FCF8 10000009 */ b .L8004FD20 -/* 0508FC 8004FCFC E60600A8 */ swc1 $f6, 0xa8($s0) -.L8004FD00: -/* 050900 8004FD00 3C01800E */ lui $at, %hi(D_800E6610 + 4) # $at, 0x800e -/* 050904 8004FD04 C61000A8 */ lwc1 $f16, 0xa8($s0) -/* 050908 8004FD08 C4336610 */ lwc1 $f19, %lo(D_800E6610)($at) -/* 05090C 8004FD0C C4326614 */ lwc1 $f18, %lo(D_800E6610 + 4)($at) -/* 050910 8004FD10 46008221 */ cvt.d.s $f8, $f16 -/* 050914 8004FD14 46324101 */ sub.d $f4, $f8, $f18 -/* 050918 8004FD18 462022A0 */ cvt.s.d $f10, $f4 -/* 05091C 8004FD1C E60A00A8 */ swc1 $f10, 0xa8($s0) -.L8004FD20: -/* 050920 8004FD20 27AB00B4 */ addiu $t3, $sp, 0xb4 -/* 050924 8004FD24 AFAB0010 */ sw $t3, 0x10($sp) -/* 050928 8004FD28 27A600B8 */ addiu $a2, $sp, 0xb8 -/* 05092C 8004FD2C 0C016420 */ jal func_80059080 -/* 050930 8004FD30 27A700B0 */ addiu $a3, $sp, 0xb0 -/* 050934 8004FD34 920C01F0 */ lbu $t4, 0x1f0($s0) -# Used to access D_800E6620 and D_800E6620 + 4. -/* 050938 8004FD38 3C01800E */ lui $at, %hi(D_800E6620) # $at, 0x800e -/* 05093C 8004FD3C 1180000A */ beqz $t4, .L8004FD68 -/* 050940 8004FD40 00000000 */ nop -# Used to access D_800E6618 and D_800E6618 + 4. -/* 050944 8004FD44 3C01800E */ lui $at, %hi(D_800E6618) # $at, 0x800e -/* 050948 8004FD48 C60600A8 */ lwc1 $f6, 0xa8($s0) -/* 05094C 8004FD4C C4296618 */ lwc1 $f9, %lo(D_800E6618)($at) -/* 050950 8004FD50 C428661C */ lwc1 $f8, %lo(D_800E6618 + 4)($at) -/* 050954 8004FD54 46003421 */ cvt.d.s $f16, $f6 -/* 050958 8004FD58 46288480 */ add.d $f18, $f16, $f8 -/* 05095C 8004FD5C 46209120 */ cvt.s.d $f4, $f18 -/* 050960 8004FD60 10000008 */ b .L8004FD84 -/* 050964 8004FD64 E60400A8 */ swc1 $f4, 0xa8($s0) -.L8004FD68: -/* 050968 8004FD68 C60A00A8 */ lwc1 $f10, 0xa8($s0) -/* 05096C 8004FD6C C4316620 */ lwc1 $f17, %lo(D_800E6620)($at) -/* 050970 8004FD70 C4306624 */ lwc1 $f16, %lo(D_800E6620 + 4)($at) -/* 050974 8004FD74 460051A1 */ cvt.d.s $f6, $f10 -/* 050978 8004FD78 46303200 */ add.d $f8, $f6, $f16 -/* 05097C 8004FD7C 462044A0 */ cvt.s.d $f18, $f8 -/* 050980 8004FD80 E61200A8 */ swc1 $f18, 0xa8($s0) -.L8004FD84: -/* 050984 8004FD84 C7A400B8 */ lwc1 $f4, 0xb8($sp) -/* 050988 8004FD88 C62A000C */ lwc1 $f10, 0xc($s1) -/* 05098C 8004FD8C C7B000B4 */ lwc1 $f16, 0xb4($sp) -/* 050990 8004FD90 460A2181 */ sub.s $f6, $f4, $f10 -/* 050994 8004FD94 E7A600B8 */ swc1 $f6, 0xb8($sp) -/* 050998 8004FD98 C6280014 */ lwc1 $f8, 0x14($s1) -/* 05099C 8004FD9C 46063102 */ mul.s $f4, $f6, $f6 -/* 0509A0 8004FDA0 46088481 */ sub.s $f18, $f16, $f8 -/* 0509A4 8004FDA4 E7B200B4 */ swc1 $f18, 0xb4($sp) -/* 0509A8 8004FDA8 46129282 */ mul.s $f10, $f18, $f18 -/* 0509AC 8004FDAC 0C0326B4 */ jal sqrtf -/* 0509B0 8004FDB0 460A2300 */ add.s $f12, $f4, $f10 -/* 0509B4 8004FDB4 C7B000B8 */ lwc1 $f16, 0xb8($sp) -/* 0509B8 8004FDB8 C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* 0509BC 8004FDBC 46008203 */ div.s $f8, $f16, $f0 -/* 0509C0 8004FDC0 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0509C4 8004FDC4 44811000 */ mtc1 $at, $f2 -/* 0509C8 8004FDC8 E7A000B0 */ swc1 $f0, 0xb0($sp) -/* 0509CC 8004FDCC 3C014118 */ li $at, 0x41180000 # 9.500000 -/* 0509D0 8004FDD0 240D0001 */ li $t5, 1 -/* 0509D4 8004FDD4 46003483 */ div.s $f18, $f6, $f0 -/* 0509D8 8004FDD8 46024102 */ mul.s $f4, $f8, $f2 -/* 0509DC 8004FDDC E7A800B8 */ swc1 $f8, 0xb8($sp) -/* 0509E0 8004FDE0 44813000 */ mtc1 $at, $f6 -/* 0509E4 8004FDE4 E7B200B4 */ swc1 $f18, 0xb4($sp) -/* 0509E8 8004FDE8 E624001C */ swc1 $f4, 0x1c($s1) -/* 0509EC 8004FDEC C7AA00B4 */ lwc1 $f10, 0xb4($sp) -/* 0509F0 8004FDF0 E6260020 */ swc1 $f6, 0x20($s1) -/* 0509F4 8004FDF4 46025402 */ mul.s $f16, $f10, $f2 -/* 0509F8 8004FDF8 E6300024 */ swc1 $f16, 0x24($s1) -/* 0509FC 8004FDFC 10000007 */ b .L8004FE1C -/* 050A00 8004FE00 A20D01F0 */ sb $t5, 0x1f0($s0) -.L8004FE04: -/* 050A04 8004FE04 820E01E2 */ lb $t6, 0x1e2($s0) -/* 050A08 8004FE08 00000000 */ nop -/* 050A0C 8004FE0C 29C10003 */ slti $at, $t6, 3 -/* 050A10 8004FE10 14200002 */ bnez $at, .L8004FE1C -/* 050A14 8004FE14 00000000 */ nop -/* 050A18 8004FE18 A20001F0 */ sb $zero, 0x1f0($s0) -.L8004FE1C: -/* 050A1C 8004FE1C 8E0F0148 */ lw $t7, 0x148($s0) -/* 050A20 8004FE20 00000000 */ nop -/* 050A24 8004FE24 15E00005 */ bnez $t7, .L8004FE3C -/* 050A28 8004FE28 00000000 */ nop -/* 050A2C 8004FE2C 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050A30 8004FE30 02202025 */ move $a0, $s1 -/* 050A34 8004FE34 0C014943 */ jal func_8005250C -/* 050A38 8004FE38 02002825 */ move $a1, $s0 -.L8004FE3C: -/* 050A3C 8004FE3C 860501A2 */ lh $a1, 0x1a2($s0) -/* 050A40 8004FE40 3C188012 */ lui $t8, %hi(gCurrentCarSteerVel) # $t8, 0x8012 -/* 050A44 8004FE44 8F18D554 */ lw $t8, %lo(gCurrentCarSteerVel)($t8) -/* 050A48 8004FE48 30B9FFFF */ andi $t9, $a1, 0xffff -/* 050A4C 8004FE4C 34018001 */ li $at, 32769 -/* 050A50 8004FE50 03191823 */ subu $v1, $t8, $t9 -/* 050A54 8004FE54 0061082A */ slt $at, $v1, $at -/* 050A58 8004FE58 8FA900C0 */ lw $t1, 0xc0($sp) -/* 050A5C 8004FE5C 14200003 */ bnez $at, .L8004FE6C -/* 050A60 8004FE60 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 050A64 8004FE64 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 050A68 8004FE68 00611821 */ addu $v1, $v1, $at -.L8004FE6C: -/* 050A6C 8004FE6C 28618000 */ slti $at, $v1, -0x8000 -/* 050A70 8004FE70 10200002 */ beqz $at, .L8004FE7C -/* 050A74 8004FE74 3401FFFF */ li $at, 65535 -/* 050A78 8004FE78 00611821 */ addu $v1, $v1, $at -.L8004FE7C: -/* 050A7C 8004FE7C 00034083 */ sra $t0, $v1, 2 -/* 050A80 8004FE80 290102EF */ slti $at, $t0, 0x2ef -/* 050A84 8004FE84 14200002 */ bnez $at, .L8004FE90 -/* 050A88 8004FE88 01001825 */ move $v1, $t0 -/* 050A8C 8004FE8C 240302EE */ li $v1, 750 -.L8004FE90: -/* 050A90 8004FE90 2861FD12 */ slti $at, $v1, -0x2ee -/* 050A94 8004FE94 10200002 */ beqz $at, .L8004FEA0 -/* 050A98 8004FE98 00000000 */ nop -/* 050A9C 8004FE9C 2403FD12 */ li $v1, -750 -.L8004FEA0: -/* 050AA0 8004FEA0 00690019 */ multu $v1, $t1 -/* 050AA4 8004FEA4 860C01A0 */ lh $t4, 0x1a0($s0) -/* 050AA8 8004FEA8 3C0F8012 */ lui $t7, %hi(D_8011D558) # $t7, 0x8012 -/* 050AAC 8004FEAC 3C048012 */ lui $a0, %hi(D_8011D550) # $a0, 0x8012 -/* 050AB0 8004FEB0 00005012 */ mflo $t2 -/* 050AB4 8004FEB4 00AA5821 */ addu $t3, $a1, $t2 -/* 050AB8 8004FEB8 A60B01A2 */ sh $t3, 0x1a2($s0) -/* 050ABC 8004FEBC 860D01A2 */ lh $t5, 0x1a2($s0) -/* 050AC0 8004FEC0 00000000 */ nop -/* 050AC4 8004FEC4 018D7021 */ addu $t6, $t4, $t5 -/* 050AC8 8004FEC8 A62E0000 */ sh $t6, ($s1) -/* 050ACC 8004FECC 860201A6 */ lh $v0, 0x1a6($s0) -/* 050AD0 8004FED0 8DEFD558 */ lw $t7, %lo(D_8011D558)($t7) -/* 050AD4 8004FED4 8FB900C0 */ lw $t9, 0xc0($sp) -/* 050AD8 8004FED8 01E2C023 */ subu $t8, $t7, $v0 -/* 050ADC 8004FEDC 03190019 */ multu $t8, $t9 -/* 050AE0 8004FEE0 860B01A4 */ lh $t3, 0x1a4($s0) -/* 050AE4 8004FEE4 00004012 */ mflo $t0 -/* 050AE8 8004FEE8 00084903 */ sra $t1, $t0, 4 -/* 050AEC 8004FEEC 00495021 */ addu $t2, $v0, $t1 -/* 050AF0 8004FEF0 A60A01A6 */ sh $t2, 0x1a6($s0) -/* 050AF4 8004FEF4 860C01A6 */ lh $t4, 0x1a6($s0) -/* 050AF8 8004FEF8 00000000 */ nop -/* 050AFC 8004FEFC 016C6821 */ addu $t5, $t3, $t4 -/* 050B00 8004FF00 A62D0004 */ sh $t5, 4($s1) -/* 050B04 8004FF04 9484D550 */ lhu $a0, %lo(D_8011D550)($a0) -/* 050B08 8004FF08 00000000 */ nop -/* 050B0C 8004FF0C 10800024 */ beqz $a0, .L8004FFA0 -/* 050B10 8004FF10 3C0E8012 */ lui $t6, %hi(gCurrentPlayerIndex) # $t6, 0x8012 -/* 050B14 8004FF14 8DCED55C */ lw $t6, %lo(gCurrentPlayerIndex)($t6) -/* 050B18 8004FF18 2401FFFF */ li $at, -1 -/* 050B1C 8004FF1C 11C1000F */ beq $t6, $at, .L8004FF5C -/* 050B20 8004FF20 2401010C */ li $at, 268 -/* 050B24 8004FF24 1081000D */ beq $a0, $at, .L8004FF5C -/* 050B28 8004FF28 260F021C */ addiu $t7, $s0, 0x21c -/* 050B2C 8004FF2C 8E25000C */ lw $a1, 0xc($s1) -/* 050B30 8004FF30 8E260010 */ lw $a2, 0x10($s1) -/* 050B34 8004FF34 8E270014 */ lw $a3, 0x14($s1) -/* 050B38 8004FF38 0C0007AA */ jal play_sound_spatial -/* 050B3C 8004FF3C AFAF0010 */ sw $t7, 0x10($sp) -/* 050B40 8004FF40 3C048012 */ lui $a0, %hi(D_8011D550) # $a0, 0x8012 -/* 050B44 8004FF44 3C068012 */ lui $a2, %hi(D_8011D553) # $a2, 0x8012 -/* 050B48 8004FF48 90C6D553 */ lbu $a2, %lo(D_8011D553)($a2) -/* 050B4C 8004FF4C 9484D550 */ lhu $a0, %lo(D_8011D550)($a0) -/* 050B50 8004FF50 8E05021C */ lw $a1, 0x21c($s0) -/* 050B54 8004FF54 0C0007EE */ jal func_80001FB8 -/* 050B58 8004FF58 00000000 */ nop -.L8004FF5C: -/* 050B5C 8004FF5C 3C188012 */ lui $t8, %hi(D_8011D552) # $t8, 0x8012 -/* 050B60 8004FF60 9718D552 */ lhu $t8, %lo(D_8011D552)($t8) -/* 050B64 8004FF64 3C01800E */ lui $at, %hi(D_800E6628 + 4) # $at, 0x800e -/* 050B68 8004FF68 2719FFD8 */ addiu $t9, $t8, -0x28 -/* 050B6C 8004FF6C 44999000 */ mtc1 $t9, $f18 -/* 050B70 8004FF70 C42B6628 */ lwc1 $f11, %lo(D_800E6628)($at) -/* 050B74 8004FF74 46809220 */ cvt.s.w $f8, $f18 -/* 050B78 8004FF78 C42A662C */ lwc1 $f10, %lo(D_800E6628 + 4)($at) -/* 050B7C 8004FF7C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 050B80 8004FF80 46004121 */ cvt.d.s $f4, $f8 -/* 050B84 8004FF84 462A2402 */ mul.d $f16, $f4, $f10 -/* 050B88 8004FF88 44813800 */ mtc1 $at, $f7 -/* 050B8C 8004FF8C 44803000 */ mtc1 $zero, $f6 -/* 050B90 8004FF90 A20001E0 */ sb $zero, 0x1e0($s0) -/* 050B94 8004FF94 46303481 */ sub.d $f18, $f6, $f16 -/* 050B98 8004FF98 46209220 */ cvt.s.d $f8, $f18 -/* 050B9C 8004FF9C E6080090 */ swc1 $f8, 0x90($s0) -.L8004FFA0: -/* 050BA0 8004FFA0 920801F0 */ lbu $t0, 0x1f0($s0) -/* 050BA4 8004FFA4 00000000 */ nop -/* 050BA8 8004FFA8 1500001D */ bnez $t0, .L80050020 -/* 050BAC 8004FFAC 00000000 */ nop -/* 050BB0 8004FFB0 860901A0 */ lh $t1, 0x1a0($s0) -/* 050BB4 8004FFB4 8E0A010C */ lw $t2, 0x10c($s0) -/* 050BB8 8004FFB8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 -/* 050BBC 8004FFBC 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 -/* 050BC0 8004FFC0 44800000 */ mtc1 $zero, $f0 -/* 050BC4 8004FFC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 050BC8 8004FFC8 44812000 */ mtc1 $at, $f4 -/* 050BCC 8004FFCC 012A5821 */ addu $t3, $t1, $t2 -/* 050BD0 8004FFD0 A4AB0000 */ sh $t3, ($a1) -/* 050BD4 8004FFD4 A4A00002 */ sh $zero, 2($a1) -/* 050BD8 8004FFD8 A4A00004 */ sh $zero, 4($a1) -/* 050BDC 8004FFDC 27A40060 */ addiu $a0, $sp, 0x60 -/* 050BE0 8004FFE0 E4A0000C */ swc1 $f0, 0xc($a1) -/* 050BE4 8004FFE4 E4A00010 */ swc1 $f0, 0x10($a1) -/* 050BE8 8004FFE8 E4A00014 */ swc1 $f0, 0x14($a1) -/* 050BEC 8004FFEC 0C01BF9D */ jal object_transform_to_matrix_2 -/* 050BF0 8004FFF0 E4A40008 */ swc1 $f4, 8($a1) -/* 050BF4 8004FFF4 8E050030 */ lw $a1, 0x30($s0) -/* 050BF8 8004FFF8 8E07002C */ lw $a3, 0x2c($s0) -/* 050BFC 8004FFFC 262C001C */ addiu $t4, $s1, 0x1c -/* 050C00 80050000 27AD00BC */ addiu $t5, $sp, 0xbc -/* 050C04 80050004 262E0024 */ addiu $t6, $s1, 0x24 -/* 050C08 80050008 AFAE0018 */ sw $t6, 0x18($sp) -/* 050C0C 8005000C AFAD0014 */ sw $t5, 0x14($sp) -/* 050C10 80050010 AFAC0010 */ sw $t4, 0x10($sp) -/* 050C14 80050014 27A40060 */ addiu $a0, $sp, 0x60 -/* 050C18 80050018 0C01BD93 */ jal guMtxXFMF -/* 050C1C 8005001C 24060000 */ li $a2, 0 -.L80050020: -/* 050C20 80050020 820F0175 */ lb $t7, 0x175($s0) -/* 050C24 80050024 00000000 */ nop -/* 050C28 80050028 11E00007 */ beqz $t7, .L80050048 -/* 050C2C 8005002C 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 -/* 050C30 80050030 C42AD578 */ lwc1 $f10, %lo(D_8011D578)($at) -/* 050C34 80050034 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 -/* 050C38 80050038 E62A001C */ swc1 $f10, 0x1c($s1) -/* 050C3C 8005003C C426D57C */ lwc1 $f6, %lo(D_8011D57C)($at) -/* 050C40 80050040 00000000 */ nop -/* 050C44 80050044 E6260024 */ swc1 $f6, 0x24($s1) -.L80050048: -/* 050C48 80050048 8E180148 */ lw $t8, 0x148($s0) -/* 050C4C 8005004C 8FA600C4 */ lw $a2, 0xc4($sp) -/* 050C50 80050050 17000072 */ bnez $t8, .L8005021C -/* 050C54 80050054 02202025 */ move $a0, $s1 -/* 050C58 80050058 C630001C */ lwc1 $f16, 0x1c($s1) -/* 050C5C 8005005C 3C088012 */ lui $t0, %hi(D_8011D584) # $t0, 0x8012 -/* 050C60 80050060 E7B000B8 */ swc1 $f16, 0xb8($sp) -/* 050C64 80050064 C6320024 */ lwc1 $f18, 0x24($s1) -/* 050C68 80050068 C7A800B8 */ lwc1 $f8, 0xb8($sp) -/* 050C6C 8005006C E7B200B4 */ swc1 $f18, 0xb4($sp) -/* 050C70 80050070 821901D2 */ lb $t9, 0x1d2($s0) -/* 050C74 80050074 3C01800E */ lui $at, %hi(D_800E6630 + 4) # $at, 0x800e -/* 050C78 80050078 13200009 */ beqz $t9, .L800500A0 -/* 050C7C 8005007C 00000000 */ nop -/* 050C80 80050080 C604011C */ lwc1 $f4, 0x11c($s0) -/* 050C84 80050084 C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* 050C88 80050088 46044280 */ add.s $f10, $f8, $f4 -/* 050C8C 8005008C E7AA00B8 */ swc1 $f10, 0xb8($sp) -/* 050C90 80050090 C6100120 */ lwc1 $f16, 0x120($s0) -/* 050C94 80050094 00000000 */ nop -/* 050C98 80050098 46103480 */ add.s $f18, $f6, $f16 -/* 050C9C 8005009C E7B200B4 */ swc1 $f18, 0xb4($sp) -.L800500A0: -/* 050CA0 800500A0 8108D584 */ lb $t0, %lo(D_8011D584)($t0) -/* 050CA4 800500A4 C7A800B8 */ lwc1 $f8, 0xb8($sp) -/* 050CA8 800500A8 1100003C */ beqz $t0, .L8005019C -/* 050CAC 800500AC 00000000 */ nop -/* 050CB0 800500B0 C7A800B8 */ lwc1 $f8, 0xb8($sp) -/* 050CB4 800500B4 C4236630 */ lwc1 $f3, %lo(D_800E6630)($at) -/* 050CB8 800500B8 C4226634 */ lwc1 $f2, %lo(D_800E6630 + 4)($at) -/* 050CBC 800500BC 46004121 */ cvt.d.s $f4, $f8 -/* 050CC0 800500C0 46222282 */ mul.d $f10, $f4, $f2 -/* 050CC4 800500C4 C7B000B4 */ lwc1 $f16, 0xb4($sp) -/* 050CC8 800500C8 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 050CCC 800500CC 460084A1 */ cvt.d.s $f18, $f16 -/* 050CD0 800500D0 46229202 */ mul.d $f8, $f18, $f2 -/* 050CD4 800500D4 462051A0 */ cvt.s.d $f6, $f10 -/* 050CD8 800500D8 44813800 */ mtc1 $at, $f7 -/* 050CDC 800500DC E7A600B8 */ swc1 $f6, 0xb8($sp) -/* 050CE0 800500E0 44803000 */ mtc1 $zero, $f6 -/* 050CE4 800500E4 46204120 */ cvt.s.d $f4, $f8 -/* 050CE8 800500E8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 050CEC 800500EC E7A400B4 */ swc1 $f4, 0xb4($sp) -/* 050CF0 800500F0 C60A002C */ lwc1 $f10, 0x2c($s0) -/* 050CF4 800500F4 00000000 */ nop -/* 050CF8 800500F8 46005021 */ cvt.d.s $f0, $f10 -/* 050CFC 800500FC 4626003C */ c.lt.d $f0, $f6 -/* 050D00 80050100 44805000 */ mtc1 $zero, $f10 -/* 050D04 80050104 45010008 */ bc1t .L80050128 -/* 050D08 80050108 00000000 */ nop -/* 050D0C 8005010C 44816800 */ mtc1 $at, $f13 -/* 050D10 80050110 44806000 */ mtc1 $zero, $f12 -/* 050D14 80050114 00000000 */ nop -/* 050D18 80050118 4620603C */ c.lt.d $f12, $f0 -/* 050D1C 8005011C 00000000 */ nop -/* 050D20 80050120 45000008 */ bc1f .L80050144 -/* 050D24 80050124 00000000 */ nop -.L80050128: -/* 050D28 80050128 46220402 */ mul.d $f16, $f0, $f2 -/* 050D2C 8005012C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 050D30 80050130 44816800 */ mtc1 $at, $f13 -/* 050D34 80050134 44806000 */ mtc1 $zero, $f12 -/* 050D38 80050138 462084A0 */ cvt.s.d $f18, $f16 -/* 050D3C 8005013C 10000004 */ b .L80050150 -/* 050D40 80050140 E612002C */ swc1 $f18, 0x2c($s0) -.L80050144: -/* 050D44 80050144 44804000 */ mtc1 $zero, $f8 -/* 050D48 80050148 00000000 */ nop -/* 050D4C 8005014C E608002C */ swc1 $f8, 0x2c($s0) -.L80050150: -/* 050D50 80050150 C6040030 */ lwc1 $f4, 0x30($s0) -/* 050D54 80050154 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 050D58 80050158 44815800 */ mtc1 $at, $f11 -/* 050D5C 8005015C 46002021 */ cvt.d.s $f0, $f4 -/* 050D60 80050160 462A003C */ c.lt.d $f0, $f10 -/* 050D64 80050164 00000000 */ nop -/* 050D68 80050168 45010005 */ bc1t .L80050180 -/* 050D6C 8005016C 00000000 */ nop -/* 050D70 80050170 4620603C */ c.lt.d $f12, $f0 -/* 050D74 80050174 00000000 */ nop -/* 050D78 80050178 45000005 */ bc1f .L80050190 -/* 050D7C 8005017C 00000000 */ nop -.L80050180: -/* 050D80 80050180 46220182 */ mul.d $f6, $f0, $f2 -/* 050D84 80050184 46203420 */ cvt.s.d $f16, $f6 -/* 050D88 80050188 1000000C */ b .L800501BC -/* 050D8C 8005018C E6100030 */ swc1 $f16, 0x30($s0) -.L80050190: -/* 050D90 80050190 44809000 */ mtc1 $zero, $f18 -/* 050D94 80050194 10000009 */ b .L800501BC -/* 050D98 80050198 E6120030 */ swc1 $f18, 0x30($s0) -.L8005019C: -/* 050D9C 8005019C C6040084 */ lwc1 $f4, 0x84($s0) -/* 050DA0 800501A0 C7A600B4 */ lwc1 $f6, 0xb4($sp) -/* 050DA4 800501A4 46044280 */ add.s $f10, $f8, $f4 -/* 050DA8 800501A8 E7AA00B8 */ swc1 $f10, 0xb8($sp) -/* 050DAC 800501AC C6100088 */ lwc1 $f16, 0x88($s0) -/* 050DB0 800501B0 00000000 */ nop -/* 050DB4 800501B4 46103480 */ add.s $f18, $f6, $f16 -/* 050DB8 800501B8 E7B200B4 */ swc1 $f18, 0xb4($sp) -.L800501BC: -/* 050DBC 800501BC C7A000C4 */ lwc1 $f0, 0xc4($sp) -/* 050DC0 800501C0 C7A800B8 */ lwc1 $f8, 0xb8($sp) -/* 050DC4 800501C4 C62A0020 */ lwc1 $f10, 0x20($s1) -/* 050DC8 800501C8 46004102 */ mul.s $f4, $f8, $f0 -/* 050DCC 800501CC C7B000B4 */ lwc1 $f16, 0xb4($sp) -/* 050DD0 800501D0 02202025 */ move $a0, $s1 -/* 050DD4 800501D4 46005182 */ mul.s $f6, $f10, $f0 -/* 050DD8 800501D8 44052000 */ mfc1 $a1, $f4 -/* 050DDC 800501DC 46008482 */ mul.s $f18, $f16, $f0 -/* 050DE0 800501E0 44063000 */ mfc1 $a2, $f6 -/* 050DE4 800501E4 44079000 */ mfc1 $a3, $f18 -/* 050DE8 800501E8 0C00455C */ jal func_80011570 -/* 050DEC 800501EC 00000000 */ nop -/* 050DF0 800501F0 10400006 */ beqz $v0, .L8005020C -/* 050DF4 800501F4 3C098012 */ lui $t1, %hi(gCurrentPlayerIndex) # $t1, 0x8012 -/* 050DF8 800501F8 8D29D55C */ lw $t1, %lo(gCurrentPlayerIndex)($t1) -/* 050DFC 800501FC 2401FFFF */ li $at, -1 -/* 050E00 80050200 11210002 */ beq $t1, $at, .L8005020C -/* 050E04 80050204 240A0001 */ li $t2, 1 -/* 050E08 80050208 A3AA0053 */ sb $t2, 0x53($sp) -.L8005020C: -/* 050E0C 8005020C 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 050E10 80050210 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 050E14 80050214 10000007 */ b .L80050234 -/* 050E18 80050218 2401FFFF */ li $at, -1 -.L8005021C: -/* 050E1C 8005021C 0C0141D5 */ jal func_80050754 -/* 050E20 80050220 02002825 */ move $a1, $s0 -/* 050E24 80050224 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 -/* 050E28 80050228 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) -/* 050E2C 8005022C 00000000 */ nop -/* 050E30 80050230 2401FFFF */ li $at, -1 -.L80050234: -/* 050E34 80050234 14410007 */ bne $v0, $at, .L80050254 -/* 050E38 80050238 02202025 */ move $a0, $s1 -/* 050E3C 8005023C 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050E40 80050240 02202025 */ move $a0, $s1 -/* 050E44 80050244 0C0156A1 */ jal func_80055A84 -/* 050E48 80050248 02002825 */ move $a1, $s0 -/* 050E4C 8005024C 10000005 */ b .L80050264 -/* 050E50 80050250 3C013F80 */ lui $at, 0x3f80 -.L80050254: -/* 050E54 80050254 8FA600C0 */ lw $a2, 0xc0($sp) -/* 050E58 80050258 0C0153F4 */ jal func_80054FD0 -/* 050E5C 8005025C 02002825 */ move $a1, $s0 -/* 050E60 80050260 3C013F80 */ li $at, 0x3F800000 # 1.000000 -.L80050264: -/* 050E64 80050264 44814000 */ mtc1 $at, $f8 -/* 050E68 80050268 C7A400C4 */ lwc1 $f4, 0xc4($sp) -/* 050E6C 8005026C C7B000A8 */ lwc1 $f16, 0xa8($sp) -/* 050E70 80050270 46044283 */ div.s $f10, $f8, $f4 -/* 050E74 80050274 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012 -/* 050E78 80050278 C428D548 */ lwc1 $f8, %lo(D_8011D548)($at) -/* 050E7C 8005027C 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012 -/* 050E80 80050280 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 -/* 050E84 80050284 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 -/* 050E88 80050288 44800000 */ mtc1 $zero, $f0 -/* 050E8C 8005028C 27A40060 */ addiu $a0, $sp, 0x60 -/* 050E90 80050290 E7AA00BC */ swc1 $f10, 0xbc($sp) -/* 050E94 80050294 C626000C */ lwc1 $f6, 0xc($s1) -/* 050E98 80050298 00000000 */ nop -/* 050E9C 8005029C 46103481 */ sub.s $f18, $f6, $f16 -/* 050EA0 800502A0 C6100084 */ lwc1 $f16, 0x84($s0) -/* 050EA4 800502A4 46089101 */ sub.s $f4, $f18, $f8 -/* 050EA8 800502A8 460A2182 */ mul.s $f6, $f4, $f10 -/* 050EAC 800502AC C7A400A4 */ lwc1 $f4, 0xa4($sp) -/* 050EB0 800502B0 46103481 */ sub.s $f18, $f6, $f16 -/* 050EB4 800502B4 E7B200B8 */ swc1 $f18, 0xb8($sp) -/* 050EB8 800502B8 C6280010 */ lwc1 $f8, 0x10($s1) -/* 050EBC 800502BC C6320014 */ lwc1 $f18, 0x14($s1) -/* 050EC0 800502C0 46044181 */ sub.s $f6, $f8, $f4 -/* 050EC4 800502C4 460A3402 */ mul.s $f16, $f6, $f10 -/* 050EC8 800502C8 E6300020 */ swc1 $f16, 0x20($s1) -/* 050ECC 800502CC C7A800A0 */ lwc1 $f8, 0xa0($sp) -/* 050ED0 800502D0 C426D54C */ lwc1 $f6, %lo(D_8011D54C)($at) -/* 050ED4 800502D4 46089101 */ sub.s $f4, $f18, $f8 -/* 050ED8 800502D8 C7B000BC */ lwc1 $f16, 0xbc($sp) -/* 050EDC 800502DC 46062281 */ sub.s $f10, $f4, $f6 -/* 050EE0 800502E0 C6080088 */ lwc1 $f8, 0x88($s0) -/* 050EE4 800502E4 46105482 */ mul.s $f18, $f10, $f16 -/* 050EE8 800502E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 050EEC 800502EC 44813000 */ mtc1 $at, $f6 -/* 050EF0 800502F0 46089101 */ sub.s $f4, $f18, $f8 -/* 050EF4 800502F4 E7A400B4 */ swc1 $f4, 0xb4($sp) -/* 050EF8 800502F8 8E0C010C */ lw $t4, 0x10c($s0) -/* 050EFC 800502FC 860B01A0 */ lh $t3, 0x1a0($s0) -/* 050F00 80050300 00000000 */ nop -/* 050F04 80050304 016C6821 */ addu $t5, $t3, $t4 -/* 050F08 80050308 000D7023 */ negu $t6, $t5 -/* 050F0C 8005030C A4AE0000 */ sh $t6, ($a1) -/* 050F10 80050310 862F0002 */ lh $t7, 2($s1) -/* 050F14 80050314 00000000 */ nop -/* 050F18 80050318 000FC023 */ negu $t8, $t7 -/* 050F1C 8005031C A4B80002 */ sh $t8, 2($a1) -/* 050F20 80050320 86390004 */ lh $t9, 4($s1) -/* 050F24 80050324 E4A0000C */ swc1 $f0, 0xc($a1) -/* 050F28 80050328 00194023 */ negu $t0, $t9 -/* 050F2C 8005032C A4A80004 */ sh $t0, 4($a1) -/* 050F30 80050330 E4A00010 */ swc1 $f0, 0x10($a1) -/* 050F34 80050334 E4A00014 */ swc1 $f0, 0x14($a1) -/* 050F38 80050338 0C01BF9D */ jal object_transform_to_matrix_2 -/* 050F3C 8005033C E4A60008 */ swc1 $f6, 8($a1) -/* 050F40 80050340 8FA500B8 */ lw $a1, 0xb8($sp) -/* 050F44 80050344 8FA700B4 */ lw $a3, 0xb4($sp) -/* 050F48 80050348 27A900AC */ addiu $t1, $sp, 0xac -/* 050F4C 8005034C 27AA00BC */ addiu $t2, $sp, 0xbc -/* 050F50 80050350 27AB00B0 */ addiu $t3, $sp, 0xb0 -/* 050F54 80050354 AFAB0018 */ sw $t3, 0x18($sp) -/* 050F58 80050358 AFAA0014 */ sw $t2, 0x14($sp) -/* 050F5C 8005035C AFA90010 */ sw $t1, 0x10($sp) -/* 050F60 80050360 27A40060 */ addiu $a0, $sp, 0x60 -/* 050F64 80050364 0C01BD93 */ jal guMtxXFMF -/* 050F68 80050368 24060000 */ li $a2, 0 -/* 050F6C 8005036C 820201D2 */ lb $v0, 0x1d2($s0) -/* 050F70 80050370 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 050F74 80050374 44816800 */ mtc1 $at, $f13 -/* 050F78 80050378 44806000 */ mtc1 $zero, $f12 -/* 050F7C 8005037C 1040000B */ beqz $v0, .L800503AC -/* 050F80 80050380 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 050F84 80050384 8FAC00C0 */ lw $t4, 0xc0($sp) -/* 050F88 80050388 00000000 */ nop -/* 050F8C 8005038C 004C6823 */ subu $t5, $v0, $t4 -/* 050F90 80050390 A20D01D2 */ sb $t5, 0x1d2($s0) -/* 050F94 80050394 820E01D2 */ lb $t6, 0x1d2($s0) -/* 050F98 80050398 00000000 */ nop -/* 050F9C 8005039C 05C10046 */ bgez $t6, .L800504B8 -/* 050FA0 800503A0 00000000 */ nop -/* 050FA4 800503A4 10000044 */ b .L800504B8 -/* 050FA8 800503A8 A20001D2 */ sb $zero, 0x1d2($s0) -.L800503AC: -/* 050FAC 800503AC C60A002C */ lwc1 $f10, 0x2c($s0) -/* 050FB0 800503B0 C7B000B0 */ lwc1 $f16, 0xb0($sp) -/* 050FB4 800503B4 44812800 */ mtc1 $at, $f5 -/* 050FB8 800503B8 46105481 */ sub.s $f18, $f10, $f16 -/* 050FBC 800503BC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 -/* 050FC0 800503C0 E7B200BC */ swc1 $f18, 0xbc($sp) -/* 050FC4 800503C4 C7A800BC */ lwc1 $f8, 0xbc($sp) -/* 050FC8 800503C8 00000000 */ nop -/* 050FCC 800503CC 46004021 */ cvt.d.s $f0, $f8 -/* 050FD0 800503D0 4620603C */ c.lt.d $f12, $f0 -/* 050FD4 800503D4 00000000 */ nop -/* 050FD8 800503D8 4500000A */ bc1f .L80050404 -/* 050FDC 800503DC 00000000 */ nop -/* 050FE0 800503E0 C604002C */ lwc1 $f4, 0x2c($s0) -/* 050FE4 800503E4 462C0281 */ sub.d $f10, $f0, $f12 -/* 050FE8 800503E8 460021A1 */ cvt.d.s $f6, $f4 -/* 050FEC 800503EC 462A3401 */ sub.d $f16, $f6, $f10 -/* 050FF0 800503F0 462084A0 */ cvt.s.d $f18, $f16 -/* 050FF4 800503F4 E612002C */ swc1 $f18, 0x2c($s0) -/* 050FF8 800503F8 C7A800BC */ lwc1 $f8, 0xbc($sp) -/* 050FFC 800503FC 00000000 */ nop -/* 051000 80050400 46004021 */ cvt.d.s $f0, $f8 -.L80050404: -/* 051004 80050404 44802000 */ mtc1 $zero, $f4 -/* 051008 80050408 00000000 */ nop -/* 05100C 8005040C 4624003C */ c.lt.d $f0, $f4 -/* 051010 80050410 00000000 */ nop -/* 051014 80050414 45000007 */ bc1f .L80050434 -/* 051018 80050418 00000000 */ nop -/* 05101C 8005041C C606002C */ lwc1 $f6, 0x2c($s0) -/* 051020 80050420 462C0400 */ add.d $f16, $f0, $f12 -/* 051024 80050424 460032A1 */ cvt.d.s $f10, $f6 -/* 051028 80050428 46305481 */ sub.d $f18, $f10, $f16 -/* 05102C 8005042C 46209220 */ cvt.s.d $f8, $f18 -/* 051030 80050430 E608002C */ swc1 $f8, 0x2c($s0) -.L80050434: -/* 051034 80050434 C6040030 */ lwc1 $f4, 0x30($s0) -/* 051038 80050438 C7A600AC */ lwc1 $f6, 0xac($sp) -/* 05103C 8005043C 44819800 */ mtc1 $at, $f19 -/* 051040 80050440 46062281 */ sub.s $f10, $f4, $f6 -/* 051044 80050444 E7AA00BC */ swc1 $f10, 0xbc($sp) -/* 051048 80050448 C7B000BC */ lwc1 $f16, 0xbc($sp) -/* 05104C 8005044C 00000000 */ nop -/* 051050 80050450 46008021 */ cvt.d.s $f0, $f16 -/* 051054 80050454 4620603C */ c.lt.d $f12, $f0 -/* 051058 80050458 00000000 */ nop -/* 05105C 8005045C 4500000A */ bc1f .L80050488 -/* 051060 80050460 00000000 */ nop -/* 051064 80050464 C6120030 */ lwc1 $f18, 0x30($s0) -/* 051068 80050468 462C0101 */ sub.d $f4, $f0, $f12 -/* 05106C 8005046C 46009221 */ cvt.d.s $f8, $f18 -/* 051070 80050470 46244181 */ sub.d $f6, $f8, $f4 -/* 051074 80050474 462032A0 */ cvt.s.d $f10, $f6 -/* 051078 80050478 E60A0030 */ swc1 $f10, 0x30($s0) -/* 05107C 8005047C C7B000BC */ lwc1 $f16, 0xbc($sp) -/* 051080 80050480 00000000 */ nop -/* 051084 80050484 46008021 */ cvt.d.s $f0, $f16 -.L80050488: -/* 051088 80050488 44809000 */ mtc1 $zero, $f18 -/* 05108C 8005048C 00000000 */ nop -/* 051090 80050490 4632003C */ c.lt.d $f0, $f18 -/* 051094 80050494 00000000 */ nop -/* 051098 80050498 45000007 */ bc1f .L800504B8 -/* 05109C 8005049C 00000000 */ nop -/* 0510A0 800504A0 C6080030 */ lwc1 $f8, 0x30($s0) -/* 0510A4 800504A4 462C0180 */ add.d $f6, $f0, $f12 -/* 0510A8 800504A8 46004121 */ cvt.d.s $f4, $f8 -/* 0510AC 800504AC 46262281 */ sub.d $f10, $f4, $f6 -/* 0510B0 800504B0 46205420 */ cvt.s.d $f16, $f10 -/* 0510B4 800504B4 E6100030 */ swc1 $f16, 0x30($s0) -.L800504B8: -/* 0510B8 800504B8 820F01D3 */ lb $t7, 0x1d3($s0) -/* 0510BC 800504BC 3C18800E */ lui $t8, %hi(gNumViewports) # $t8, 0x800e -/* 0510C0 800504C0 15E00043 */ bnez $t7, .L800505D0 -/* 0510C4 800504C4 00000000 */ nop -/* 0510C8 800504C8 8F18CB98 */ lw $t8, %lo(gNumViewports)($t8) -/* 0510CC 800504CC 00000000 */ nop -/* 0510D0 800504D0 2B010002 */ slti $at, $t8, 2 -/* 0510D4 800504D4 1020003E */ beqz $at, .L800505D0 -/* 0510D8 800504D8 00000000 */ nop -/* 0510DC 800504DC 0C0078A7 */ jal get_misc_asset -/* 0510E0 800504E0 24040014 */ li $a0, 20 -/* 0510E4 800504E4 82030203 */ lb $v1, 0x203($s0) -/* 0510E8 800504E8 82190002 */ lb $t9, 2($s0) -/* 0510EC 800504EC 30690004 */ andi $t1, $v1, 4 -/* 0510F0 800504F0 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 0510F4 800504F4 00095083 */ sra $t2, $t1, 2 -/* 0510F8 800504F8 44816800 */ mtc1 $at, $f13 -/* 0510FC 800504FC 25430010 */ addiu $v1, $t2, 0x10 -/* 051100 80050500 44806000 */ mtc1 $zero, $f12 -/* 051104 80050504 28610011 */ slti $at, $v1, 0x11 -/* 051108 80050508 001941C0 */ sll $t0, $t9, 7 -/* 05110C 8005050C 14200012 */ bnez $at, .L80050558 -/* 051110 80050510 01022021 */ addu $a0, $t0, $v0 -/* 051114 80050514 908B0070 */ lbu $t3, 0x70($a0) -/* 051118 80050518 240D0001 */ li $t5, 1 -/* 05111C 8005051C 1D600009 */ bgtz $t3, .L80050544 -/* 051120 80050520 00000000 */ nop -/* 051124 80050524 C4880074 */ lwc1 $f8, 0x74($a0) -/* 051128 80050528 44809800 */ mtc1 $zero, $f19 -/* 05112C 8005052C 44809000 */ mtc1 $zero, $f18 -/* 051130 80050530 46004121 */ cvt.d.s $f4, $f8 -/* 051134 80050534 4624903C */ c.lt.d $f18, $f4 -/* 051138 80050538 00000000 */ nop -/* 05113C 8005053C 45000024 */ bc1f .L800505D0 -/* 051140 80050540 00000000 */ nop -.L80050544: -/* 051144 80050544 8E2C0074 */ lw $t4, 0x74($s1) -/* 051148 80050548 006D7004 */ sllv $t6, $t5, $v1 -/* 05114C 8005054C 018E7825 */ or $t7, $t4, $t6 -/* 051150 80050550 1000001F */ b .L800505D0 -/* 051154 80050554 AE2F0074 */ sw $t7, 0x74($s1) -.L80050558: -/* 051158 80050558 90820070 */ lbu $v0, 0x70($a0) -/* 05115C 8005055C 24010002 */ li $at, 2 -/* 051160 80050560 1441000E */ bne $v0, $at, .L8005059C -/* 051164 80050564 28410002 */ slti $at, $v0, 2 -/* 051168 80050568 C4860074 */ lwc1 $f6, 0x74($a0) -/* 05116C 8005056C 24190001 */ li $t9, 1 -/* 051170 80050570 460032A1 */ cvt.d.s $f10, $f6 -/* 051174 80050574 462C503C */ c.lt.d $f10, $f12 -/* 051178 80050578 00000000 */ nop -/* 05117C 8005057C 45000007 */ bc1f .L8005059C -/* 051180 80050580 28410002 */ slti $at, $v0, 2 -/* 051184 80050584 8E380074 */ lw $t8, 0x74($s1) -/* 051188 80050588 00794004 */ sllv $t0, $t9, $v1 -/* 05118C 8005058C 03084825 */ or $t1, $t8, $t0 -/* 051190 80050590 1000000F */ b .L800505D0 -/* 051194 80050594 AE290074 */ sw $t1, 0x74($s1) -/* 051198 80050598 28410002 */ slti $at, $v0, 2 -.L8005059C: -/* 05119C 8005059C 1020000C */ beqz $at, .L800505D0 -/* 0511A0 800505A0 00000000 */ nop -/* 0511A4 800505A4 44808000 */ mtc1 $zero, $f16 -/* 0511A8 800505A8 C4880074 */ lwc1 $f8, 0x74($a0) -/* 0511AC 800505AC 240B0001 */ li $t3, 1 -/* 0511B0 800505B0 4608803C */ c.lt.s $f16, $f8 -/* 0511B4 800505B4 00000000 */ nop -/* 0511B8 800505B8 45000005 */ bc1f .L800505D0 -/* 0511BC 800505BC 00000000 */ nop -/* 0511C0 800505C0 8E2A0074 */ lw $t2, 0x74($s1) -/* 0511C4 800505C4 006B6804 */ sllv $t5, $t3, $v1 -/* 0511C8 800505C8 014D6025 */ or $t4, $t2, $t5 -/* 0511CC 800505CC AE2C0074 */ sw $t4, 0x74($s1) -.L800505D0: -/* 0511D0 800505D0 3C0E8012 */ lui $t6, %hi(gCurrentPlayerIndex) # $t6, 0x8012 -/* 0511D4 800505D4 8DCED55C */ lw $t6, %lo(gCurrentPlayerIndex)($t6) -/* 0511D8 800505D8 2401FFFF */ li $at, -1 -/* 0511DC 800505DC 11C10030 */ beq $t6, $at, .L800506A0 -/* 0511E0 800505E0 3C0F800E */ lui $t7, %hi(gNumViewports) # $t7, 0x800e -/* 0511E4 800505E4 8DEFCB98 */ lw $t7, %lo(gNumViewports)($t7) -/* 0511E8 800505E8 00000000 */ nop -/* 0511EC 800505EC 29E10002 */ slti $at, $t7, 2 -/* 0511F0 800505F0 1020002B */ beqz $at, .L800506A0 -/* 0511F4 800505F4 3C014160 */ li $at, 0x41600000 # 14.000000 -/* 0511F8 800505F8 44819000 */ mtc1 $at, $f18 -/* 0511FC 800505FC C60000C0 */ lwc1 $f0, 0xc0($s0) -/* 051200 80050600 00002025 */ move $a0, $zero -/* 051204 80050604 4600903C */ c.lt.s $f18, $f0 -/* 051208 80050608 3C0140C0 */ lui $at, 0x40c0 -/* 05120C 8005060C 4500000A */ bc1f .L80050638 -/* 051210 80050610 00000000 */ nop -/* 051214 80050614 0C01BE53 */ jal get_random_number_from_range -/* 051218 80050618 24050001 */ li $a1, 1 -/* 05121C 8005061C 10400020 */ beqz $v0, .L800506A0 -/* 051220 80050620 00000000 */ nop -/* 051224 80050624 8E390074 */ lw $t9, 0x74($s1) -/* 051228 80050628 3C010030 */ li $at, 0x00300000 # 0.000000 -/* 05122C 8005062C 0321C025 */ or $t8, $t9, $at -/* 051230 80050630 1000001B */ b .L800506A0 -/* 051234 80050634 AE380074 */ sw $t8, 0x74($s1) -.L80050638: -/* 051238 80050638 44812000 */ mtc1 $at, $f4 -/* 05123C 8005063C 3C01C008 */ li $at, 0xC0080000 # -2.125000 -/* 051240 80050640 4604003C */ c.lt.s $f0, $f4 -/* 051244 80050644 00000000 */ nop -/* 051248 80050648 45000015 */ bc1f .L800506A0 -/* 05124C 8005064C 00000000 */ nop -/* 051250 80050650 C606002C */ lwc1 $f6, 0x2c($s0) -/* 051254 80050654 44815800 */ mtc1 $at, $f11 -/* 051258 80050658 44805000 */ mtc1 $zero, $f10 -/* 05125C 8005065C 46003021 */ cvt.d.s $f0, $f6 -/* 051260 80050660 4620503C */ c.lt.d $f10, $f0 -/* 051264 80050664 00000000 */ nop -/* 051268 80050668 4500000D */ bc1f .L800506A0 -/* 05126C 8005066C 00000000 */ nop -/* 051270 80050670 462C003C */ c.lt.d $f0, $f12 -/* 051274 80050674 00002025 */ move $a0, $zero -/* 051278 80050678 45000009 */ bc1f .L800506A0 -/* 05127C 8005067C 00000000 */ nop -/* 051280 80050680 0C01BE53 */ jal get_random_number_from_range -/* 051284 80050684 24050001 */ li $a1, 1 -/* 051288 80050688 10400005 */ beqz $v0, .L800506A0 -/* 05128C 8005068C 00000000 */ nop -/* 051290 80050690 8E280074 */ lw $t0, 0x74($s1) -/* 051294 80050694 3C01000C */ lui $at, 0xc -/* 051298 80050698 01014825 */ or $t1, $t0, $at -/* 05129C 8005069C AE290074 */ sw $t1, 0x74($s1) -.L800506A0: -/* 0512A0 800506A0 820B01D6 */ lb $t3, 0x1d6($s0) -/* 0512A4 800506A4 8FA500C0 */ lw $a1, 0xc0($sp) -/* 0512A8 800506A8 29610005 */ slti $at, $t3, 5 -/* 0512AC 800506AC 10200004 */ beqz $at, .L800506C0 -/* 0512B0 800506B0 8FA700C4 */ lw $a3, 0xc4($sp) -/* 0512B4 800506B4 0C02BDC5 */ jal func_800AF714 -/* 0512B8 800506B8 02202025 */ move $a0, $s1 -/* 0512BC 800506BC 8FA700C4 */ lw $a3, 0xc4($sp) -.L800506C0: -/* 0512C0 800506C0 02202025 */ move $a0, $s1 -/* 0512C4 800506C4 02002825 */ move $a1, $s0 -/* 0512C8 800506C8 0C01602D */ jal func_800580B4 -/* 0512CC 800506CC 00003025 */ move $a2, $zero -/* 0512D0 800506D0 3C0A800E */ lui $t2, %hi(gNumViewports) # $t2, 0x800e -/* 0512D4 800506D4 8D4ACB98 */ lw $t2, %lo(gNumViewports)($t2) -/* 0512D8 800506D8 24010001 */ li $at, 1 -/* 0512DC 800506DC 15410013 */ bne $t2, $at, .L8005072C -/* 0512E0 800506E0 83AC0053 */ lb $t4, 0x53($sp) -/* 0512E4 800506E4 C608002C */ lwc1 $f8, 0x2c($s0) -/* 0512E8 800506E8 3C01C008 */ li $at, 0xC0080000 # -2.125000 -/* 0512EC 800506EC 44818800 */ mtc1 $at, $f17 -/* 0512F0 800506F0 44808000 */ mtc1 $zero, $f16 -/* 0512F4 800506F4 460044A1 */ cvt.d.s $f18, $f8 -/* 0512F8 800506F8 4632803C */ c.lt.d $f16, $f18 -/* 0512FC 800506FC 00000000 */ nop -/* 051300 80050700 4500000A */ bc1f .L8005072C -/* 051304 80050704 83AC0053 */ lb $t4, 0x53($sp) -/* 051308 80050708 0C01BAA4 */ jal get_settings -/* 05130C 8005070C 00000000 */ nop -/* 051310 80050710 904D0049 */ lbu $t5, 0x49($v0) -/* 051314 80050714 24010025 */ li $at, 37 -/* 051318 80050718 11A10004 */ beq $t5, $at, .L8005072C -/* 05131C 8005071C 83AC0053 */ lb $t4, 0x53($sp) -/* 051320 80050720 0C00A3E8 */ jal func_80028FA0 -/* 051324 80050724 24040001 */ li $a0, 1 -/* 051328 80050728 83AC0053 */ lb $t4, 0x53($sp) -.L8005072C: -/* 05132C 8005072C 02202025 */ move $a0, $s1 -/* 051330 80050730 11800004 */ beqz $t4, .L80050744 -/* 051334 80050734 8FBF002C */ lw $ra, 0x2c($sp) -/* 051338 80050738 0C008C34 */ jal func_800230D0 -/* 05133C 8005073C 02002825 */ move $a1, $s0 -/* 051340 80050740 8FBF002C */ lw $ra, 0x2c($sp) -.L80050744: -/* 051344 80050744 8FB00024 */ lw $s0, 0x24($sp) -/* 051348 80050748 8FB10028 */ lw $s1, 0x28($sp) -/* 05134C 8005074C 03E00008 */ jr $ra -/* 051350 80050750 27BD00C0 */ addiu $sp, $sp, 0xc0 - +.late_rodata +glabel D_800E6600 +.double 0.065 +glabel D_800E6608 +.double 0.3 +glabel D_800E6610 +.double 0.1 +glabel D_800E6618 +.double 0.3 +glabel D_800E6620 +.double 0.1 +glabel D_800E6628 +.double 0.004 +glabel D_800E6630 +.double 0.65 + +.text +glabel func_8004F7F4 +/* 0503F4 8004F7F4 27BDFF40 */ addiu $sp, $sp, -0xc0 +/* 0503F8 8004F7F8 AFBF002C */ sw $ra, 0x2c($sp) +/* 0503FC 8004F7FC AFB10028 */ sw $s1, 0x28($sp) +/* 050400 8004F800 AFB00024 */ sw $s0, 0x24($sp) +/* 050404 8004F804 AFA400C0 */ sw $a0, 0xc0($sp) +/* 050408 8004F808 AFA500C4 */ sw $a1, 0xc4($sp) +/* 05040C 8004F80C A3A00053 */ sb $zero, 0x53($sp) +/* 050410 8004F810 80EE01D2 */ lb $t6, 0x1d2($a3) +/* 050414 8004F814 00E08025 */ move $s0, $a3 +/* 050418 8004F818 11C00008 */ beqz $t6, .L8004F83C +/* 05041C 8004F81C 00C08825 */ move $s1, $a2 +/* 050420 8004F820 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 +/* 050424 8004F824 2484D528 */ addiu $a0, %lo(gCurrentRacerInput) # addiu $a0, $a0, -0x2ad8 +/* 050428 8004F828 8C8F0000 */ lw $t7, ($a0) +/* 05042C 8004F82C 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff +/* 050430 8004F830 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff +/* 050434 8004F834 01E1C024 */ and $t8, $t7, $at +/* 050438 8004F838 AC980000 */ sw $t8, ($a0) +.L8004F83C: +/* 05043C 8004F83C 3C198012 */ lui $t9, %hi(gCurrentPlayerIndex) # $t9, 0x8012 +/* 050440 8004F840 8F39D55C */ lw $t9, %lo(gCurrentPlayerIndex)($t9) +/* 050444 8004F844 3C048012 */ lui $a0, %hi(gCurrentRacerInput) # $a0, 0x8012 +/* 050448 8004F848 2401FFFF */ li $at, -1 +/* 05044C 8004F84C 13210005 */ beq $t9, $at, .L8004F864 +/* 050450 8004F850 2484D528 */ addiu $a0, %lo(gCurrentRacerInput) # addiu $a0, $a0, -0x2ad8 +/* 050454 8004F854 820801D8 */ lb $t0, 0x1d8($s0) +/* 050458 8004F858 00003025 */ move $a2, $zero +/* 05045C 8004F85C 11000008 */ beqz $t0, .L8004F880 +/* 050460 8004F860 00003825 */ move $a3, $zero +.L8004F864: +/* 050464 8004F864 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050468 8004F868 8FA700C4 */ lw $a3, 0xc4($sp) +/* 05046C 8004F86C 02202025 */ move $a0, $s1 +/* 050470 8004F870 0C015044 */ jal func_80054110 +/* 050474 8004F874 02002825 */ move $a1, $s0 +/* 050478 8004F878 100003B2 */ b .L80050744 +/* 05047C 8004F87C 8FBF002C */ lw $ra, 0x2c($sp) +.L8004F880: +/* 050480 8004F880 820901D4 */ lb $t1, 0x1d4($s0) +/* 050484 8004F884 3C038012 */ lui $v1, %hi(gCurrentButtonsPressed) # $v1, 0x8012 +/* 050488 8004F888 1120000D */ beqz $t1, .L8004F8C0 +/* 05048C 8004F88C 2463D52C */ addiu $v1, %lo(gCurrentButtonsPressed) # addiu $v1, $v1, -0x2ad4 +/* 050490 8004F890 8C6A0000 */ lw $t2, ($v1) +/* 050494 8004F894 2401DFEF */ li $at, -8209 +/* 050498 8004F898 01415824 */ and $t3, $t2, $at +/* 05049C 8004F89C AC6B0000 */ sw $t3, ($v1) +/* 0504A0 8004F8A0 820201D4 */ lb $v0, 0x1d4($s0) +/* 0504A4 8004F8A4 00000000 */ nop +/* 0504A8 8004F8A8 18400004 */ blez $v0, .L8004F8BC +/* 0504AC 8004F8AC 244D0004 */ addiu $t5, $v0, 4 +/* 0504B0 8004F8B0 244CFFFC */ addiu $t4, $v0, -4 +/* 0504B4 8004F8B4 10000002 */ b .L8004F8C0 +/* 0504B8 8004F8B8 A20C01D4 */ sb $t4, 0x1d4($s0) +.L8004F8BC: +/* 0504BC 8004F8BC A20D01D4 */ sb $t5, 0x1d4($s0) +.L8004F8C0: +/* 0504C0 8004F8C0 8C8E0000 */ lw $t6, ($a0) +/* 0504C4 8004F8C4 00001825 */ move $v1, $zero +/* 0504C8 8004F8C8 31CF4000 */ andi $t7, $t6, 0x4000 +/* 0504CC 8004F8CC 11E0000D */ beqz $t7, .L8004F904 +/* 0504D0 8004F8D0 02002025 */ move $a0, $s0 +/* 0504D4 8004F8D4 820201E6 */ lb $v0, 0x1e6($s0) +/* 0504D8 8004F8D8 00000000 */ nop +/* 0504DC 8004F8DC 10400009 */ beqz $v0, .L8004F904 +/* 0504E0 8004F8E0 00000000 */ nop +/* 0504E4 8004F8E4 000218C0 */ sll $v1, $v0, 3 +/* 0504E8 8004F8E8 00621823 */ subu $v1, $v1, $v0 +/* 0504EC 8004F8EC 000318C0 */ sll $v1, $v1, 3 +/* 0504F0 8004F8F0 00621821 */ addu $v1, $v1, $v0 +/* 0504F4 8004F8F4 000318C0 */ sll $v1, $v1, 3 +/* 0504F8 8004F8F8 00621823 */ subu $v1, $v1, $v0 +/* 0504FC 8004F8FC 10000001 */ b .L8004F904 +/* 050500 8004F900 000318C0 */ sll $v1, $v1, 3 +.L8004F904: +/* 050504 8004F904 921801FE */ lbu $t8, 0x1fe($s0) +/* 050508 8004F908 00000000 */ nop +/* 05050C 8004F90C 17000006 */ bnez $t8, .L8004F928 +/* 050510 8004F910 8FA500C0 */ lw $a1, 0xc0($sp) +/* 050514 8004F914 8E390074 */ lw $t9, 0x74($s1) +/* 050518 8004F918 00000000 */ nop +/* 05051C 8004F91C 37280400 */ ori $t0, $t9, 0x400 +/* 050520 8004F920 AE280074 */ sw $t0, 0x74($s1) +/* 050524 8004F924 8FA500C0 */ lw $a1, 0xc0($sp) +.L8004F928: +/* 050528 8004F928 0C014214 */ jal apply_vehicle_rotation_offset +/* 05052C 8004F92C AFA30010 */ sw $v1, 0x10($sp) +/* 050530 8004F930 8FA600C4 */ lw $a2, 0xc4($sp) +/* 050534 8004F934 02202025 */ move $a0, $s1 +/* 050538 8004F938 0C014DD4 */ jal func_80053750 +/* 05053C 8004F93C 02002825 */ move $a1, $s0 +/* 050540 8004F940 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050544 8004F944 02202025 */ move $a0, $s1 +/* 050548 8004F948 0C014871 */ jal func_800521C4 +/* 05054C 8004F94C 02002825 */ move $a1, $s0 +/* 050550 8004F950 3C018012 */ lui $at, %hi(D_8011D550) # $at, 0x8012 +/* 050554 8004F954 A420D550 */ sh $zero, %lo(D_8011D550)($at) +/* 050558 8004F958 3C018012 */ lui $at, %hi(gCurrentCarSteerVel) # $at, 0x8012 +/* 05055C 8004F95C AC20D554 */ sw $zero, %lo(gCurrentCarSteerVel)($at) +/* 050560 8004F960 3C018012 */ lui $at, %hi(D_8011D558) # $at, 0x8012 +/* 050564 8004F964 AC20D558 */ sw $zero, %lo(D_8011D558)($at) +/* 050568 8004F968 C624000C */ lwc1 $f4, 0xc($s1) +/* 05056C 8004F96C 00000000 */ nop +/* 050570 8004F970 E7A400A8 */ swc1 $f4, 0xa8($sp) +/* 050574 8004F974 C6260010 */ lwc1 $f6, 0x10($s1) +/* 050578 8004F978 00000000 */ nop +/* 05057C 8004F97C E7A600A4 */ swc1 $f6, 0xa4($sp) +/* 050580 8004F980 C6280014 */ lwc1 $f8, 0x14($s1) +/* 050584 8004F984 00000000 */ nop +/* 050588 8004F988 E7A800A0 */ swc1 $f8, 0xa0($sp) +/* 05058C 8004F98C 820201E6 */ lb $v0, 0x1e6($s0) +/* 050590 8004F990 00000000 */ nop +/* 050594 8004F994 10400068 */ beqz $v0, .L8004FB38 +/* 050598 8004F998 00000000 */ nop +/* 05059C 8004F99C 04410013 */ bgez $v0, .L8004F9EC +/* 0505A0 8004F9A0 3C068012 */ lui $a2, %hi(gCurrentStickX) # $a2, 0x8012 +/* 0505A4 8004F9A4 24C6D534 */ addiu $a2, %lo(gCurrentStickX) # addiu $a2, $a2, -0x2acc +/* 0505A8 8004F9A8 8CC90000 */ lw $t1, ($a2) +/* 0505AC 8004F9AC 8FAB00C0 */ lw $t3, 0xc0($sp) +/* 0505B0 8004F9B0 2921001A */ slti $at, $t1, 0x1a +/* 0505B4 8004F9B4 1420000D */ bnez $at, .L8004F9EC +/* 0505B8 8004F9B8 00000000 */ nop +/* 0505BC 8004F9BC 860A016E */ lh $t2, 0x16e($s0) +/* 0505C0 8004F9C0 00000000 */ nop +/* 0505C4 8004F9C4 014B6021 */ addu $t4, $t2, $t3 +/* 0505C8 8004F9C8 A60C016E */ sh $t4, 0x16e($s0) +/* 0505CC 8004F9CC 8602016E */ lh $v0, 0x16e($s0) +/* 0505D0 8004F9D0 00000000 */ nop +/* 0505D4 8004F9D4 0441001C */ bgez $v0, .L8004FA48 +/* 0505D8 8004F9D8 00000000 */ nop +/* 0505DC 8004F9DC A600016E */ sh $zero, 0x16e($s0) +/* 0505E0 8004F9E0 8602016E */ lh $v0, 0x16e($s0) +/* 0505E4 8004F9E4 10000019 */ b .L8004FA4C +/* 0505E8 8004F9E8 44825000 */ mtc1 $v0, $f10 +.L8004F9EC: +/* 0505EC 8004F9EC 3C068012 */ lui $a2, %hi(gCurrentStickX) # $a2, 0x8012 +/* 0505F0 8004F9F0 18400012 */ blez $v0, .L8004FA3C +/* 0505F4 8004F9F4 24C6D534 */ addiu $a2, %lo(gCurrentStickX) # addiu $a2, $a2, -0x2acc +/* 0505F8 8004F9F8 8CCD0000 */ lw $t5, ($a2) +/* 0505FC 8004F9FC 8FAF00C0 */ lw $t7, 0xc0($sp) +/* 050600 8004FA00 29A1FFE7 */ slti $at, $t5, -0x19 +/* 050604 8004FA04 1020000D */ beqz $at, .L8004FA3C +/* 050608 8004FA08 00000000 */ nop +/* 05060C 8004FA0C 860E016E */ lh $t6, 0x16e($s0) +/* 050610 8004FA10 00000000 */ nop +/* 050614 8004FA14 01CFC023 */ subu $t8, $t6, $t7 +/* 050618 8004FA18 A618016E */ sh $t8, 0x16e($s0) +/* 05061C 8004FA1C 8602016E */ lh $v0, 0x16e($s0) +/* 050620 8004FA20 00000000 */ nop +/* 050624 8004FA24 18400008 */ blez $v0, .L8004FA48 +/* 050628 8004FA28 00000000 */ nop +/* 05062C 8004FA2C A600016E */ sh $zero, 0x16e($s0) +/* 050630 8004FA30 8602016E */ lh $v0, 0x16e($s0) +/* 050634 8004FA34 10000005 */ b .L8004FA4C +/* 050638 8004FA38 44825000 */ mtc1 $v0, $f10 +.L8004FA3C: +/* 05063C 8004FA3C A600016E */ sh $zero, 0x16e($s0) +/* 050640 8004FA40 8602016E */ lh $v0, 0x16e($s0) +/* 050644 8004FA44 00000000 */ nop +.L8004FA48: +/* 050648 8004FA48 44825000 */ mtc1 $v0, $f10 +.L8004FA4C: +/* 05064C 8004FA4C 44802000 */ mtc1 $zero, $f4 +/* 050650 8004FA50 46805420 */ cvt.s.w $f16, $f10 +/* 050654 8004FA54 3C0142A0 */ li $at, 0x42A00000 # 80.000000 +/* 050658 8004FA58 44814000 */ mtc1 $at, $f8 +/* 05065C 8004FA5C E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 050660 8004FA60 C7B200B8 */ lwc1 $f18, 0xb8($sp) +/* 050664 8004FA64 02202025 */ move $a0, $s1 +/* 050668 8004FA68 4604903C */ c.lt.s $f18, $f4 +/* 05066C 8004FA6C 00000000 */ nop +/* 050670 8004FA70 45000003 */ bc1f .L8004FA80 +/* 050674 8004FA74 00000000 */ nop +/* 050678 8004FA78 46009187 */ neg.s $f6, $f18 +/* 05067C 8004FA7C E7A600B8 */ swc1 $f6, 0xb8($sp) +.L8004FA80: +/* 050680 8004FA80 C7AA00B8 */ lwc1 $f10, 0xb8($sp) +/* 050684 8004FA84 00000000 */ nop +/* 050688 8004FA88 460A403C */ c.lt.s $f8, $f10 +/* 05068C 8004FA8C 00000000 */ nop +/* 050690 8004FA90 45000009 */ bc1f .L8004FAB8 +/* 050694 8004FA94 00000000 */ nop +/* 050698 8004FA98 0C015C12 */ jal racer_play_sound +/* 05069C 8004FA9C 2405001C */ li $a1, 28 +/* 0506A0 8004FAA0 821901E6 */ lb $t9, 0x1e6($s0) +/* 0506A4 8004FAA4 3C068012 */ lui $a2, %hi(gCurrentStickX) # $a2, 0x8012 +/* 0506A8 8004FAA8 00194023 */ negu $t0, $t9 +/* 0506AC 8004FAAC 24C6D534 */ addiu $a2, %lo(gCurrentStickX) # addiu $a2, $a2, -0x2acc +/* 0506B0 8004FAB0 A20801DB */ sb $t0, 0x1db($s0) +/* 0506B4 8004FAB4 A20001E6 */ sb $zero, 0x1e6($s0) +.L8004FAB8: +/* 0506B8 8004FAB8 8CC30000 */ lw $v1, ($a2) +/* 0506BC 8004FABC 00000000 */ nop +/* 0506C0 8004FAC0 28610033 */ slti $at, $v1, 0x33 +/* 0506C4 8004FAC4 14200004 */ bnez $at, .L8004FAD8 +/* 0506C8 8004FAC8 2861FFCE */ slti $at, $v1, -0x32 +/* 0506CC 8004FACC 24030032 */ li $v1, 50 +/* 0506D0 8004FAD0 ACC30000 */ sw $v1, ($a2) +/* 0506D4 8004FAD4 2861FFCE */ slti $at, $v1, -0x32 +.L8004FAD8: +/* 0506D8 8004FAD8 10200003 */ beqz $at, .L8004FAE8 +/* 0506DC 8004FADC 00000000 */ nop +/* 0506E0 8004FAE0 2403FFCE */ li $v1, -50 +/* 0506E4 8004FAE4 ACC30000 */ sw $v1, ($a2) +.L8004FAE8: +/* 0506E8 8004FAE8 18600005 */ blez $v1, .L8004FB00 +/* 0506EC 8004FAEC 00000000 */ nop +/* 0506F0 8004FAF0 820B01E6 */ lb $t3, 0x1e6($s0) +/* 0506F4 8004FAF4 00000000 */ nop +/* 0506F8 8004FAF8 1D600006 */ bgtz $t3, .L8004FB14 +/* 0506FC 8004FAFC 00036083 */ sra $t4, $v1, 2 +.L8004FB00: +/* 050700 8004FB00 820201E6 */ lb $v0, 0x1e6($s0) +/* 050704 8004FB04 04610007 */ bgez $v1, .L8004FB24 +/* 050708 8004FB08 00026900 */ sll $t5, $v0, 4 +/* 05070C 8004FB0C 04410004 */ bgez $v0, .L8004FB20 +/* 050710 8004FB10 00036083 */ sra $t4, $v1, 2 +.L8004FB14: +/* 050714 8004FB14 ACCC0000 */ sw $t4, ($a2) +/* 050718 8004FB18 820201E6 */ lb $v0, 0x1e6($s0) +/* 05071C 8004FB1C 01801825 */ move $v1, $t4 +.L8004FB20: +/* 050720 8004FB20 00026900 */ sll $t5, $v0, 4 +.L8004FB24: +/* 050724 8004FB24 01A26823 */ subu $t5, $t5, $v0 +/* 050728 8004FB28 000D6880 */ sll $t5, $t5, 2 +/* 05072C 8004FB2C 006D7021 */ addu $t6, $v1, $t5 +/* 050730 8004FB30 10000002 */ b .L8004FB3C +/* 050734 8004FB34 ACCE0000 */ sw $t6, ($a2) +.L8004FB38: +/* 050738 8004FB38 A600016E */ sh $zero, 0x16e($s0) +.L8004FB3C: +/* 05073C 8004FB3C 8FA600C4 */ lw $a2, 0xc4($sp) +/* 050740 8004FB40 02002025 */ move $a0, $s0 +/* 050744 8004FB44 0C015E6C */ jal handle_base_steering +/* 050748 8004FB48 00002825 */ move $a1, $zero +/* 05074C 8004FB4C 02202025 */ move $a0, $s1 +/* 050750 8004FB50 0C015D7B */ jal func_800575EC +/* 050754 8004FB54 02002825 */ move $a1, $s0 +/* 050758 8004FB58 02202025 */ move $a0, $s1 +/* 05075C 8004FB5C 0C014D71 */ jal func_800535C4 +/* 050760 8004FB60 02002825 */ move $a1, $s0 +/* 050764 8004FB64 0C014D99 */ jal handle_car_velocity_control +/* 050768 8004FB68 02002025 */ move $a0, $s0 +/* 05076C 8004FB6C 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050770 8004FB70 02202025 */ move $a0, $s1 +/* 050774 8004FB74 0C0157B0 */ jal handle_racer_items +/* 050778 8004FB78 02002825 */ move $a1, $s0 +/* 05077C 8004FB7C 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050780 8004FB80 02202025 */ move $a0, $s1 +/* 050784 8004FB84 0C014FA7 */ jal racer_attack_handler +/* 050788 8004FB88 02002825 */ move $a1, $s0 +/* 05078C 8004FB8C 820F01DB */ lb $t7, 0x1db($s0) +/* 050790 8004FB90 00000000 */ nop +/* 050794 8004FB94 11E00008 */ beqz $t7, .L8004FBB8 +/* 050798 8004FB98 00000000 */ nop +/* 05079C 8004FB9C 8FA600C0 */ lw $a2, 0xc0($sp) +/* 0507A0 8004FBA0 8FA700C4 */ lw $a3, 0xc4($sp) +/* 0507A4 8004FBA4 02202025 */ move $a0, $s1 +/* 0507A8 8004FBA8 0C014AD9 */ jal racer_spinout_car +/* 0507AC 8004FBAC 02002825 */ move $a1, $s0 +/* 0507B0 8004FBB0 10000010 */ b .L8004FBF4 +/* 0507B4 8004FBB4 8E02001C */ lw $v0, 0x1c($s0) +.L8004FBB8: +/* 0507B8 8004FBB8 821801E2 */ lb $t8, 0x1e2($s0) +/* 0507BC 8004FBBC 8FA600C0 */ lw $a2, 0xc0($sp) +/* 0507C0 8004FBC0 1B000008 */ blez $t8, .L8004FBE4 +/* 0507C4 8004FBC4 02202025 */ move $a0, $s1 +/* 0507C8 8004FBC8 8FA600C0 */ lw $a2, 0xc0($sp) +/* 0507CC 8004FBCC 8FA700C4 */ lw $a3, 0xc4($sp) +/* 0507D0 8004FBD0 02202025 */ move $a0, $s1 +/* 0507D4 8004FBD4 0C01428A */ jal func_80050A28 +/* 0507D8 8004FBD8 02002825 */ move $a1, $s0 +/* 0507DC 8004FBDC 10000005 */ b .L8004FBF4 +/* 0507E0 8004FBE0 8E02001C */ lw $v0, 0x1c($s0) +.L8004FBE4: +/* 0507E4 8004FBE4 8FA700C4 */ lw $a3, 0xc4($sp) +/* 0507E8 8004FBE8 0C014B5F */ jal func_80052D7C +/* 0507EC 8004FBEC 02002825 */ move $a1, $s0 +/* 0507F0 8004FBF0 8E02001C */ lw $v0, 0x1c($s0) +.L8004FBF4: +/* 0507F4 8004FBF4 00000000 */ nop +/* 0507F8 8004FBF8 10400004 */ beqz $v0, .L8004FC0C +/* 0507FC 8004FBFC 00000000 */ nop +/* 050800 8004FC00 0C001223 */ jal func_8000488C +/* 050804 8004FC04 00402025 */ move $a0, $v0 +/* 050808 8004FC08 AE00001C */ sw $zero, 0x1c($s0) +.L8004FC0C: +/* 05080C 8004FC0C C60000C0 */ lwc1 $f0, 0xc0($s0) +/* 050810 8004FC10 44808000 */ mtc1 $zero, $f16 +/* 050814 8004FC14 00000000 */ nop +/* 050818 8004FC18 46008032 */ c.eq.s $f16, $f0 +/* 05081C 8004FC1C 00000000 */ nop +/* 050820 8004FC20 45010018 */ bc1t .L8004FC84 +/* 050824 8004FC24 00000000 */ nop +/* 050828 8004FC28 821901D7 */ lb $t9, 0x1d7($s0) +/* 05082C 8004FC2C 2401000B */ li $at, 11 +/* 050830 8004FC30 13210014 */ beq $t9, $at, .L8004FC84 +/* 050834 8004FC34 3C014024 */ li $at, 0x40240000 # 2.562500 +/* 050838 8004FC38 44819800 */ mtc1 $at, $f19 +/* 05083C 8004FC3C 44809000 */ mtc1 $zero, $f18 +/* 050840 8004FC40 46000121 */ cvt.d.s $f4, $f0 +/* 050844 8004FC44 46322181 */ sub.d $f6, $f4, $f18 +/* 050848 8004FC48 3C01800E */ lui $at, %hi(D_800E6600 + 4) # $at, 0x800e +/* 05084C 8004FC4C 46203220 */ cvt.s.d $f8, $f6 +/* 050850 8004FC50 C4316600 */ lwc1 $f17, %lo(D_800E6600)($at) +/* 050854 8004FC54 C4306604 */ lwc1 $f16, %lo(D_800E6600 + 4)($at) +/* 050858 8004FC58 460042A1 */ cvt.d.s $f10, $f8 +/* 05085C 8004FC5C 46305102 */ mul.d $f4, $f10, $f16 +/* 050860 8004FC60 C7B200C4 */ lwc1 $f18, 0xc4($sp) +/* 050864 8004FC64 E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 050868 8004FC68 460091A1 */ cvt.d.s $f6, $f18 +/* 05086C 8004FC6C C62A0020 */ lwc1 $f10, 0x20($s1) +/* 050870 8004FC70 46262202 */ mul.d $f8, $f4, $f6 +/* 050874 8004FC74 46005421 */ cvt.d.s $f16, $f10 +/* 050878 8004FC78 46288480 */ add.d $f18, $f16, $f8 +/* 05087C 8004FC7C 46209120 */ cvt.s.d $f4, $f18 +/* 050880 8004FC80 E6240020 */ swc1 $f4, 0x20($s1) +.L8004FC84: +/* 050884 8004FC84 0C01AF6C */ jal get_current_level_header +/* 050888 8004FC88 00000000 */ nop +/* 05088C 8004FC8C C60A00C0 */ lwc1 $f10, 0xc0($s0) +/* 050890 8004FC90 44803800 */ mtc1 $zero, $f7 +/* 050894 8004FC94 44803000 */ mtc1 $zero, $f6 +/* 050898 8004FC98 46005421 */ cvt.d.s $f16, $f10 +/* 05089C 8004FC9C 46303032 */ c.eq.d $f6, $f16 +/* 0508A0 8004FCA0 00000000 */ nop +/* 0508A4 8004FCA4 45010004 */ bc1t .L8004FCB8 +/* 0508A8 8004FCA8 00000000 */ nop +/* 0508AC 8004FCAC 80480002 */ lb $t0, 2($v0) +/* 0508B0 8004FCB0 00000000 */ nop +/* 0508B4 8004FCB4 15000005 */ bnez $t0, .L8004FCCC +.L8004FCB8: +/* 0508B8 8004FCB8 3C098012 */ lui $t1, %hi(gCurrentSurfaceType) # $t1, 0x8012 +/* 0508BC 8004FCBC 8129D581 */ lb $t1, %lo(gCurrentSurfaceType)($t1) +/* 0508C0 8004FCC0 2401000A */ li $at, 10 +/* 0508C4 8004FCC4 1521004F */ bne $t1, $at, .L8004FE04 +/* 0508C8 8004FCC8 00000000 */ nop +.L8004FCCC: +/* 0508CC 8004FCCC 920A01F0 */ lbu $t2, 0x1f0($s0) +/* 0508D0 8004FCD0 02202025 */ move $a0, $s1 +/* 0508D4 8004FCD4 1140000A */ beqz $t2, .L8004FD00 +/* 0508D8 8004FCD8 02002825 */ move $a1, $s0 +/* 0508DC 8004FCDC 3C01800E */ lui $at, %hi(D_800E6608 + 4) # $at, 0x800e +/* 0508E0 8004FCE0 C60800A8 */ lwc1 $f8, 0xa8($s0) +/* 0508E4 8004FCE4 C4256608 */ lwc1 $f5, %lo(D_800E6608)($at) +/* 0508E8 8004FCE8 C424660C */ lwc1 $f4, %lo(D_800E6608 + 4)($at) +/* 0508EC 8004FCEC 460044A1 */ cvt.d.s $f18, $f8 +/* 0508F0 8004FCF0 46249281 */ sub.d $f10, $f18, $f4 +/* 0508F4 8004FCF4 462051A0 */ cvt.s.d $f6, $f10 +/* 0508F8 8004FCF8 10000009 */ b .L8004FD20 +/* 0508FC 8004FCFC E60600A8 */ swc1 $f6, 0xa8($s0) +.L8004FD00: +/* 050900 8004FD00 3C01800E */ lui $at, %hi(D_800E6610 + 4) # $at, 0x800e +/* 050904 8004FD04 C61000A8 */ lwc1 $f16, 0xa8($s0) +/* 050908 8004FD08 C4336610 */ lwc1 $f19, %lo(D_800E6610)($at) +/* 05090C 8004FD0C C4326614 */ lwc1 $f18, %lo(D_800E6610 + 4)($at) +/* 050910 8004FD10 46008221 */ cvt.d.s $f8, $f16 +/* 050914 8004FD14 46324101 */ sub.d $f4, $f8, $f18 +/* 050918 8004FD18 462022A0 */ cvt.s.d $f10, $f4 +/* 05091C 8004FD1C E60A00A8 */ swc1 $f10, 0xa8($s0) +.L8004FD20: +/* 050920 8004FD20 27AB00B4 */ addiu $t3, $sp, 0xb4 +/* 050924 8004FD24 AFAB0010 */ sw $t3, 0x10($sp) +/* 050928 8004FD28 27A600B8 */ addiu $a2, $sp, 0xb8 +/* 05092C 8004FD2C 0C016420 */ jal func_80059080 +/* 050930 8004FD30 27A700B0 */ addiu $a3, $sp, 0xb0 +/* 050934 8004FD34 920C01F0 */ lbu $t4, 0x1f0($s0) +# Used to access D_800E6620 and D_800E6620 + 4. +/* 050938 8004FD38 3C01800E */ lui $at, %hi(D_800E6620) # $at, 0x800e +/* 05093C 8004FD3C 1180000A */ beqz $t4, .L8004FD68 +/* 050940 8004FD40 00000000 */ nop +# Used to access D_800E6618 and D_800E6618 + 4. +/* 050944 8004FD44 3C01800E */ lui $at, %hi(D_800E6618) # $at, 0x800e +/* 050948 8004FD48 C60600A8 */ lwc1 $f6, 0xa8($s0) +/* 05094C 8004FD4C C4296618 */ lwc1 $f9, %lo(D_800E6618)($at) +/* 050950 8004FD50 C428661C */ lwc1 $f8, %lo(D_800E6618 + 4)($at) +/* 050954 8004FD54 46003421 */ cvt.d.s $f16, $f6 +/* 050958 8004FD58 46288480 */ add.d $f18, $f16, $f8 +/* 05095C 8004FD5C 46209120 */ cvt.s.d $f4, $f18 +/* 050960 8004FD60 10000008 */ b .L8004FD84 +/* 050964 8004FD64 E60400A8 */ swc1 $f4, 0xa8($s0) +.L8004FD68: +/* 050968 8004FD68 C60A00A8 */ lwc1 $f10, 0xa8($s0) +/* 05096C 8004FD6C C4316620 */ lwc1 $f17, %lo(D_800E6620)($at) +/* 050970 8004FD70 C4306624 */ lwc1 $f16, %lo(D_800E6620 + 4)($at) +/* 050974 8004FD74 460051A1 */ cvt.d.s $f6, $f10 +/* 050978 8004FD78 46303200 */ add.d $f8, $f6, $f16 +/* 05097C 8004FD7C 462044A0 */ cvt.s.d $f18, $f8 +/* 050980 8004FD80 E61200A8 */ swc1 $f18, 0xa8($s0) +.L8004FD84: +/* 050984 8004FD84 C7A400B8 */ lwc1 $f4, 0xb8($sp) +/* 050988 8004FD88 C62A000C */ lwc1 $f10, 0xc($s1) +/* 05098C 8004FD8C C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 050990 8004FD90 460A2181 */ sub.s $f6, $f4, $f10 +/* 050994 8004FD94 E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 050998 8004FD98 C6280014 */ lwc1 $f8, 0x14($s1) +/* 05099C 8004FD9C 46063102 */ mul.s $f4, $f6, $f6 +/* 0509A0 8004FDA0 46088481 */ sub.s $f18, $f16, $f8 +/* 0509A4 8004FDA4 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 0509A8 8004FDA8 46129282 */ mul.s $f10, $f18, $f18 +/* 0509AC 8004FDAC 0C0326B4 */ jal sqrtf +/* 0509B0 8004FDB0 460A2300 */ add.s $f12, $f4, $f10 +/* 0509B4 8004FDB4 C7B000B8 */ lwc1 $f16, 0xb8($sp) +/* 0509B8 8004FDB8 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 0509BC 8004FDBC 46008203 */ div.s $f8, $f16, $f0 +/* 0509C0 8004FDC0 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0509C4 8004FDC4 44811000 */ mtc1 $at, $f2 +/* 0509C8 8004FDC8 E7A000B0 */ swc1 $f0, 0xb0($sp) +/* 0509CC 8004FDCC 3C014118 */ li $at, 0x41180000 # 9.500000 +/* 0509D0 8004FDD0 240D0001 */ li $t5, 1 +/* 0509D4 8004FDD4 46003483 */ div.s $f18, $f6, $f0 +/* 0509D8 8004FDD8 46024102 */ mul.s $f4, $f8, $f2 +/* 0509DC 8004FDDC E7A800B8 */ swc1 $f8, 0xb8($sp) +/* 0509E0 8004FDE0 44813000 */ mtc1 $at, $f6 +/* 0509E4 8004FDE4 E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 0509E8 8004FDE8 E624001C */ swc1 $f4, 0x1c($s1) +/* 0509EC 8004FDEC C7AA00B4 */ lwc1 $f10, 0xb4($sp) +/* 0509F0 8004FDF0 E6260020 */ swc1 $f6, 0x20($s1) +/* 0509F4 8004FDF4 46025402 */ mul.s $f16, $f10, $f2 +/* 0509F8 8004FDF8 E6300024 */ swc1 $f16, 0x24($s1) +/* 0509FC 8004FDFC 10000007 */ b .L8004FE1C +/* 050A00 8004FE00 A20D01F0 */ sb $t5, 0x1f0($s0) +.L8004FE04: +/* 050A04 8004FE04 820E01E2 */ lb $t6, 0x1e2($s0) +/* 050A08 8004FE08 00000000 */ nop +/* 050A0C 8004FE0C 29C10003 */ slti $at, $t6, 3 +/* 050A10 8004FE10 14200002 */ bnez $at, .L8004FE1C +/* 050A14 8004FE14 00000000 */ nop +/* 050A18 8004FE18 A20001F0 */ sb $zero, 0x1f0($s0) +.L8004FE1C: +/* 050A1C 8004FE1C 8E0F0148 */ lw $t7, 0x148($s0) +/* 050A20 8004FE20 00000000 */ nop +/* 050A24 8004FE24 15E00005 */ bnez $t7, .L8004FE3C +/* 050A28 8004FE28 00000000 */ nop +/* 050A2C 8004FE2C 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050A30 8004FE30 02202025 */ move $a0, $s1 +/* 050A34 8004FE34 0C014943 */ jal func_8005250C +/* 050A38 8004FE38 02002825 */ move $a1, $s0 +.L8004FE3C: +/* 050A3C 8004FE3C 860501A2 */ lh $a1, 0x1a2($s0) +/* 050A40 8004FE40 3C188012 */ lui $t8, %hi(gCurrentCarSteerVel) # $t8, 0x8012 +/* 050A44 8004FE44 8F18D554 */ lw $t8, %lo(gCurrentCarSteerVel)($t8) +/* 050A48 8004FE48 30B9FFFF */ andi $t9, $a1, 0xffff +/* 050A4C 8004FE4C 34018001 */ li $at, 32769 +/* 050A50 8004FE50 03191823 */ subu $v1, $t8, $t9 +/* 050A54 8004FE54 0061082A */ slt $at, $v1, $at +/* 050A58 8004FE58 8FA900C0 */ lw $t1, 0xc0($sp) +/* 050A5C 8004FE5C 14200003 */ bnez $at, .L8004FE6C +/* 050A60 8004FE60 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff +/* 050A64 8004FE64 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 +/* 050A68 8004FE68 00611821 */ addu $v1, $v1, $at +.L8004FE6C: +/* 050A6C 8004FE6C 28618000 */ slti $at, $v1, -0x8000 +/* 050A70 8004FE70 10200002 */ beqz $at, .L8004FE7C +/* 050A74 8004FE74 3401FFFF */ li $at, 65535 +/* 050A78 8004FE78 00611821 */ addu $v1, $v1, $at +.L8004FE7C: +/* 050A7C 8004FE7C 00034083 */ sra $t0, $v1, 2 +/* 050A80 8004FE80 290102EF */ slti $at, $t0, 0x2ef +/* 050A84 8004FE84 14200002 */ bnez $at, .L8004FE90 +/* 050A88 8004FE88 01001825 */ move $v1, $t0 +/* 050A8C 8004FE8C 240302EE */ li $v1, 750 +.L8004FE90: +/* 050A90 8004FE90 2861FD12 */ slti $at, $v1, -0x2ee +/* 050A94 8004FE94 10200002 */ beqz $at, .L8004FEA0 +/* 050A98 8004FE98 00000000 */ nop +/* 050A9C 8004FE9C 2403FD12 */ li $v1, -750 +.L8004FEA0: +/* 050AA0 8004FEA0 00690019 */ multu $v1, $t1 +/* 050AA4 8004FEA4 860C01A0 */ lh $t4, 0x1a0($s0) +/* 050AA8 8004FEA8 3C0F8012 */ lui $t7, %hi(D_8011D558) # $t7, 0x8012 +/* 050AAC 8004FEAC 3C048012 */ lui $a0, %hi(D_8011D550) # $a0, 0x8012 +/* 050AB0 8004FEB0 00005012 */ mflo $t2 +/* 050AB4 8004FEB4 00AA5821 */ addu $t3, $a1, $t2 +/* 050AB8 8004FEB8 A60B01A2 */ sh $t3, 0x1a2($s0) +/* 050ABC 8004FEBC 860D01A2 */ lh $t5, 0x1a2($s0) +/* 050AC0 8004FEC0 00000000 */ nop +/* 050AC4 8004FEC4 018D7021 */ addu $t6, $t4, $t5 +/* 050AC8 8004FEC8 A62E0000 */ sh $t6, ($s1) +/* 050ACC 8004FECC 860201A6 */ lh $v0, 0x1a6($s0) +/* 050AD0 8004FED0 8DEFD558 */ lw $t7, %lo(D_8011D558)($t7) +/* 050AD4 8004FED4 8FB900C0 */ lw $t9, 0xc0($sp) +/* 050AD8 8004FED8 01E2C023 */ subu $t8, $t7, $v0 +/* 050ADC 8004FEDC 03190019 */ multu $t8, $t9 +/* 050AE0 8004FEE0 860B01A4 */ lh $t3, 0x1a4($s0) +/* 050AE4 8004FEE4 00004012 */ mflo $t0 +/* 050AE8 8004FEE8 00084903 */ sra $t1, $t0, 4 +/* 050AEC 8004FEEC 00495021 */ addu $t2, $v0, $t1 +/* 050AF0 8004FEF0 A60A01A6 */ sh $t2, 0x1a6($s0) +/* 050AF4 8004FEF4 860C01A6 */ lh $t4, 0x1a6($s0) +/* 050AF8 8004FEF8 00000000 */ nop +/* 050AFC 8004FEFC 016C6821 */ addu $t5, $t3, $t4 +/* 050B00 8004FF00 A62D0004 */ sh $t5, 4($s1) +/* 050B04 8004FF04 9484D550 */ lhu $a0, %lo(D_8011D550)($a0) +/* 050B08 8004FF08 00000000 */ nop +/* 050B0C 8004FF0C 10800024 */ beqz $a0, .L8004FFA0 +/* 050B10 8004FF10 3C0E8012 */ lui $t6, %hi(gCurrentPlayerIndex) # $t6, 0x8012 +/* 050B14 8004FF14 8DCED55C */ lw $t6, %lo(gCurrentPlayerIndex)($t6) +/* 050B18 8004FF18 2401FFFF */ li $at, -1 +/* 050B1C 8004FF1C 11C1000F */ beq $t6, $at, .L8004FF5C +/* 050B20 8004FF20 2401010C */ li $at, 268 +/* 050B24 8004FF24 1081000D */ beq $a0, $at, .L8004FF5C +/* 050B28 8004FF28 260F021C */ addiu $t7, $s0, 0x21c +/* 050B2C 8004FF2C 8E25000C */ lw $a1, 0xc($s1) +/* 050B30 8004FF30 8E260010 */ lw $a2, 0x10($s1) +/* 050B34 8004FF34 8E270014 */ lw $a3, 0x14($s1) +/* 050B38 8004FF38 0C0007AA */ jal play_sound_spatial +/* 050B3C 8004FF3C AFAF0010 */ sw $t7, 0x10($sp) +/* 050B40 8004FF40 3C048012 */ lui $a0, %hi(D_8011D550) # $a0, 0x8012 +/* 050B44 8004FF44 3C068012 */ lui $a2, %hi(D_8011D553) # $a2, 0x8012 +/* 050B48 8004FF48 90C6D553 */ lbu $a2, %lo(D_8011D553)($a2) +/* 050B4C 8004FF4C 9484D550 */ lhu $a0, %lo(D_8011D550)($a0) +/* 050B50 8004FF50 8E05021C */ lw $a1, 0x21c($s0) +/* 050B54 8004FF54 0C0007EE */ jal func_80001FB8 +/* 050B58 8004FF58 00000000 */ nop +.L8004FF5C: +/* 050B5C 8004FF5C 3C188012 */ lui $t8, %hi(D_8011D552) # $t8, 0x8012 +/* 050B60 8004FF60 9718D552 */ lhu $t8, %lo(D_8011D552)($t8) +/* 050B64 8004FF64 3C01800E */ lui $at, %hi(D_800E6628 + 4) # $at, 0x800e +/* 050B68 8004FF68 2719FFD8 */ addiu $t9, $t8, -0x28 +/* 050B6C 8004FF6C 44999000 */ mtc1 $t9, $f18 +/* 050B70 8004FF70 C42B6628 */ lwc1 $f11, %lo(D_800E6628)($at) +/* 050B74 8004FF74 46809220 */ cvt.s.w $f8, $f18 +/* 050B78 8004FF78 C42A662C */ lwc1 $f10, %lo(D_800E6628 + 4)($at) +/* 050B7C 8004FF7C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 050B80 8004FF80 46004121 */ cvt.d.s $f4, $f8 +/* 050B84 8004FF84 462A2402 */ mul.d $f16, $f4, $f10 +/* 050B88 8004FF88 44813800 */ mtc1 $at, $f7 +/* 050B8C 8004FF8C 44803000 */ mtc1 $zero, $f6 +/* 050B90 8004FF90 A20001E0 */ sb $zero, 0x1e0($s0) +/* 050B94 8004FF94 46303481 */ sub.d $f18, $f6, $f16 +/* 050B98 8004FF98 46209220 */ cvt.s.d $f8, $f18 +/* 050B9C 8004FF9C E6080090 */ swc1 $f8, 0x90($s0) +.L8004FFA0: +/* 050BA0 8004FFA0 920801F0 */ lbu $t0, 0x1f0($s0) +/* 050BA4 8004FFA4 00000000 */ nop +/* 050BA8 8004FFA8 1500001D */ bnez $t0, .L80050020 +/* 050BAC 8004FFAC 00000000 */ nop +/* 050BB0 8004FFB0 860901A0 */ lh $t1, 0x1a0($s0) +/* 050BB4 8004FFB4 8E0A010C */ lw $t2, 0x10c($s0) +/* 050BB8 8004FFB8 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 +/* 050BBC 8004FFBC 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 +/* 050BC0 8004FFC0 44800000 */ mtc1 $zero, $f0 +/* 050BC4 8004FFC4 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 050BC8 8004FFC8 44812000 */ mtc1 $at, $f4 +/* 050BCC 8004FFCC 012A5821 */ addu $t3, $t1, $t2 +/* 050BD0 8004FFD0 A4AB0000 */ sh $t3, ($a1) +/* 050BD4 8004FFD4 A4A00002 */ sh $zero, 2($a1) +/* 050BD8 8004FFD8 A4A00004 */ sh $zero, 4($a1) +/* 050BDC 8004FFDC 27A40060 */ addiu $a0, $sp, 0x60 +/* 050BE0 8004FFE0 E4A0000C */ swc1 $f0, 0xc($a1) +/* 050BE4 8004FFE4 E4A00010 */ swc1 $f0, 0x10($a1) +/* 050BE8 8004FFE8 E4A00014 */ swc1 $f0, 0x14($a1) +/* 050BEC 8004FFEC 0C01BF9D */ jal object_transform_to_matrix_2 +/* 050BF0 8004FFF0 E4A40008 */ swc1 $f4, 8($a1) +/* 050BF4 8004FFF4 8E050030 */ lw $a1, 0x30($s0) +/* 050BF8 8004FFF8 8E07002C */ lw $a3, 0x2c($s0) +/* 050BFC 8004FFFC 262C001C */ addiu $t4, $s1, 0x1c +/* 050C00 80050000 27AD00BC */ addiu $t5, $sp, 0xbc +/* 050C04 80050004 262E0024 */ addiu $t6, $s1, 0x24 +/* 050C08 80050008 AFAE0018 */ sw $t6, 0x18($sp) +/* 050C0C 8005000C AFAD0014 */ sw $t5, 0x14($sp) +/* 050C10 80050010 AFAC0010 */ sw $t4, 0x10($sp) +/* 050C14 80050014 27A40060 */ addiu $a0, $sp, 0x60 +/* 050C18 80050018 0C01BD93 */ jal guMtxXFMF +/* 050C1C 8005001C 24060000 */ li $a2, 0 +.L80050020: +/* 050C20 80050020 820F0175 */ lb $t7, 0x175($s0) +/* 050C24 80050024 00000000 */ nop +/* 050C28 80050028 11E00007 */ beqz $t7, .L80050048 +/* 050C2C 8005002C 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 +/* 050C30 80050030 C42AD578 */ lwc1 $f10, %lo(D_8011D578)($at) +/* 050C34 80050034 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 +/* 050C38 80050038 E62A001C */ swc1 $f10, 0x1c($s1) +/* 050C3C 8005003C C426D57C */ lwc1 $f6, %lo(D_8011D57C)($at) +/* 050C40 80050040 00000000 */ nop +/* 050C44 80050044 E6260024 */ swc1 $f6, 0x24($s1) +.L80050048: +/* 050C48 80050048 8E180148 */ lw $t8, 0x148($s0) +/* 050C4C 8005004C 8FA600C4 */ lw $a2, 0xc4($sp) +/* 050C50 80050050 17000072 */ bnez $t8, .L8005021C +/* 050C54 80050054 02202025 */ move $a0, $s1 +/* 050C58 80050058 C630001C */ lwc1 $f16, 0x1c($s1) +/* 050C5C 8005005C 3C088012 */ lui $t0, %hi(D_8011D584) # $t0, 0x8012 +/* 050C60 80050060 E7B000B8 */ swc1 $f16, 0xb8($sp) +/* 050C64 80050064 C6320024 */ lwc1 $f18, 0x24($s1) +/* 050C68 80050068 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 050C6C 8005006C E7B200B4 */ swc1 $f18, 0xb4($sp) +/* 050C70 80050070 821901D2 */ lb $t9, 0x1d2($s0) +/* 050C74 80050074 3C01800E */ lui $at, %hi(D_800E6630 + 4) # $at, 0x800e +/* 050C78 80050078 13200009 */ beqz $t9, .L800500A0 +/* 050C7C 8005007C 00000000 */ nop +/* 050C80 80050080 C604011C */ lwc1 $f4, 0x11c($s0) +/* 050C84 80050084 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 050C88 80050088 46044280 */ add.s $f10, $f8, $f4 +/* 050C8C 8005008C E7AA00B8 */ swc1 $f10, 0xb8($sp) +/* 050C90 80050090 C6100120 */ lwc1 $f16, 0x120($s0) +/* 050C94 80050094 00000000 */ nop +/* 050C98 80050098 46103480 */ add.s $f18, $f6, $f16 +/* 050C9C 8005009C E7B200B4 */ swc1 $f18, 0xb4($sp) +.L800500A0: +/* 050CA0 800500A0 8108D584 */ lb $t0, %lo(D_8011D584)($t0) +/* 050CA4 800500A4 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 050CA8 800500A8 1100003C */ beqz $t0, .L8005019C +/* 050CAC 800500AC 00000000 */ nop +/* 050CB0 800500B0 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 050CB4 800500B4 C4236630 */ lwc1 $f3, %lo(D_800E6630)($at) +/* 050CB8 800500B8 C4226634 */ lwc1 $f2, %lo(D_800E6630 + 4)($at) +/* 050CBC 800500BC 46004121 */ cvt.d.s $f4, $f8 +/* 050CC0 800500C0 46222282 */ mul.d $f10, $f4, $f2 +/* 050CC4 800500C4 C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 050CC8 800500C8 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 050CCC 800500CC 460084A1 */ cvt.d.s $f18, $f16 +/* 050CD0 800500D0 46229202 */ mul.d $f8, $f18, $f2 +/* 050CD4 800500D4 462051A0 */ cvt.s.d $f6, $f10 +/* 050CD8 800500D8 44813800 */ mtc1 $at, $f7 +/* 050CDC 800500DC E7A600B8 */ swc1 $f6, 0xb8($sp) +/* 050CE0 800500E0 44803000 */ mtc1 $zero, $f6 +/* 050CE4 800500E4 46204120 */ cvt.s.d $f4, $f8 +/* 050CE8 800500E8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 050CEC 800500EC E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 050CF0 800500F0 C60A002C */ lwc1 $f10, 0x2c($s0) +/* 050CF4 800500F4 00000000 */ nop +/* 050CF8 800500F8 46005021 */ cvt.d.s $f0, $f10 +/* 050CFC 800500FC 4626003C */ c.lt.d $f0, $f6 +/* 050D00 80050100 44805000 */ mtc1 $zero, $f10 +/* 050D04 80050104 45010008 */ bc1t .L80050128 +/* 050D08 80050108 00000000 */ nop +/* 050D0C 8005010C 44816800 */ mtc1 $at, $f13 +/* 050D10 80050110 44806000 */ mtc1 $zero, $f12 +/* 050D14 80050114 00000000 */ nop +/* 050D18 80050118 4620603C */ c.lt.d $f12, $f0 +/* 050D1C 8005011C 00000000 */ nop +/* 050D20 80050120 45000008 */ bc1f .L80050144 +/* 050D24 80050124 00000000 */ nop +.L80050128: +/* 050D28 80050128 46220402 */ mul.d $f16, $f0, $f2 +/* 050D2C 8005012C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 050D30 80050130 44816800 */ mtc1 $at, $f13 +/* 050D34 80050134 44806000 */ mtc1 $zero, $f12 +/* 050D38 80050138 462084A0 */ cvt.s.d $f18, $f16 +/* 050D3C 8005013C 10000004 */ b .L80050150 +/* 050D40 80050140 E612002C */ swc1 $f18, 0x2c($s0) +.L80050144: +/* 050D44 80050144 44804000 */ mtc1 $zero, $f8 +/* 050D48 80050148 00000000 */ nop +/* 050D4C 8005014C E608002C */ swc1 $f8, 0x2c($s0) +.L80050150: +/* 050D50 80050150 C6040030 */ lwc1 $f4, 0x30($s0) +/* 050D54 80050154 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 050D58 80050158 44815800 */ mtc1 $at, $f11 +/* 050D5C 8005015C 46002021 */ cvt.d.s $f0, $f4 +/* 050D60 80050160 462A003C */ c.lt.d $f0, $f10 +/* 050D64 80050164 00000000 */ nop +/* 050D68 80050168 45010005 */ bc1t .L80050180 +/* 050D6C 8005016C 00000000 */ nop +/* 050D70 80050170 4620603C */ c.lt.d $f12, $f0 +/* 050D74 80050174 00000000 */ nop +/* 050D78 80050178 45000005 */ bc1f .L80050190 +/* 050D7C 8005017C 00000000 */ nop +.L80050180: +/* 050D80 80050180 46220182 */ mul.d $f6, $f0, $f2 +/* 050D84 80050184 46203420 */ cvt.s.d $f16, $f6 +/* 050D88 80050188 1000000C */ b .L800501BC +/* 050D8C 8005018C E6100030 */ swc1 $f16, 0x30($s0) +.L80050190: +/* 050D90 80050190 44809000 */ mtc1 $zero, $f18 +/* 050D94 80050194 10000009 */ b .L800501BC +/* 050D98 80050198 E6120030 */ swc1 $f18, 0x30($s0) +.L8005019C: +/* 050D9C 8005019C C6040084 */ lwc1 $f4, 0x84($s0) +/* 050DA0 800501A0 C7A600B4 */ lwc1 $f6, 0xb4($sp) +/* 050DA4 800501A4 46044280 */ add.s $f10, $f8, $f4 +/* 050DA8 800501A8 E7AA00B8 */ swc1 $f10, 0xb8($sp) +/* 050DAC 800501AC C6100088 */ lwc1 $f16, 0x88($s0) +/* 050DB0 800501B0 00000000 */ nop +/* 050DB4 800501B4 46103480 */ add.s $f18, $f6, $f16 +/* 050DB8 800501B8 E7B200B4 */ swc1 $f18, 0xb4($sp) +.L800501BC: +/* 050DBC 800501BC C7A000C4 */ lwc1 $f0, 0xc4($sp) +/* 050DC0 800501C0 C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 050DC4 800501C4 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 050DC8 800501C8 46004102 */ mul.s $f4, $f8, $f0 +/* 050DCC 800501CC C7B000B4 */ lwc1 $f16, 0xb4($sp) +/* 050DD0 800501D0 02202025 */ move $a0, $s1 +/* 050DD4 800501D4 46005182 */ mul.s $f6, $f10, $f0 +/* 050DD8 800501D8 44052000 */ mfc1 $a1, $f4 +/* 050DDC 800501DC 46008482 */ mul.s $f18, $f16, $f0 +/* 050DE0 800501E0 44063000 */ mfc1 $a2, $f6 +/* 050DE4 800501E4 44079000 */ mfc1 $a3, $f18 +/* 050DE8 800501E8 0C00455C */ jal func_80011570 +/* 050DEC 800501EC 00000000 */ nop +/* 050DF0 800501F0 10400006 */ beqz $v0, .L8005020C +/* 050DF4 800501F4 3C098012 */ lui $t1, %hi(gCurrentPlayerIndex) # $t1, 0x8012 +/* 050DF8 800501F8 8D29D55C */ lw $t1, %lo(gCurrentPlayerIndex)($t1) +/* 050DFC 800501FC 2401FFFF */ li $at, -1 +/* 050E00 80050200 11210002 */ beq $t1, $at, .L8005020C +/* 050E04 80050204 240A0001 */ li $t2, 1 +/* 050E08 80050208 A3AA0053 */ sb $t2, 0x53($sp) +.L8005020C: +/* 050E0C 8005020C 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 050E10 80050210 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 050E14 80050214 10000007 */ b .L80050234 +/* 050E18 80050218 2401FFFF */ li $at, -1 +.L8005021C: +/* 050E1C 8005021C 0C0141D5 */ jal func_80050754 +/* 050E20 80050220 02002825 */ move $a1, $s0 +/* 050E24 80050224 3C028012 */ lui $v0, %hi(gCurrentPlayerIndex) # $v0, 0x8012 +/* 050E28 80050228 8C42D55C */ lw $v0, %lo(gCurrentPlayerIndex)($v0) +/* 050E2C 8005022C 00000000 */ nop +/* 050E30 80050230 2401FFFF */ li $at, -1 +.L80050234: +/* 050E34 80050234 14410007 */ bne $v0, $at, .L80050254 +/* 050E38 80050238 02202025 */ move $a0, $s1 +/* 050E3C 8005023C 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050E40 80050240 02202025 */ move $a0, $s1 +/* 050E44 80050244 0C0156A1 */ jal func_80055A84 +/* 050E48 80050248 02002825 */ move $a1, $s0 +/* 050E4C 8005024C 10000005 */ b .L80050264 +/* 050E50 80050250 3C013F80 */ lui $at, 0x3f80 +.L80050254: +/* 050E54 80050254 8FA600C0 */ lw $a2, 0xc0($sp) +/* 050E58 80050258 0C0153F4 */ jal func_80054FD0 +/* 050E5C 8005025C 02002825 */ move $a1, $s0 +/* 050E60 80050260 3C013F80 */ li $at, 0x3F800000 # 1.000000 +.L80050264: +/* 050E64 80050264 44814000 */ mtc1 $at, $f8 +/* 050E68 80050268 C7A400C4 */ lwc1 $f4, 0xc4($sp) +/* 050E6C 8005026C C7B000A8 */ lwc1 $f16, 0xa8($sp) +/* 050E70 80050270 46044283 */ div.s $f10, $f8, $f4 +/* 050E74 80050274 3C018012 */ lui $at, %hi(D_8011D548) # $at, 0x8012 +/* 050E78 80050278 C428D548 */ lwc1 $f8, %lo(D_8011D548)($at) +/* 050E7C 8005027C 3C018012 */ lui $at, %hi(D_8011D54C) # $at, 0x8012 +/* 050E80 80050280 3C058012 */ lui $a1, %hi(D_8011D510) # $a1, 0x8012 +/* 050E84 80050284 24A5D510 */ addiu $a1, %lo(D_8011D510) # addiu $a1, $a1, -0x2af0 +/* 050E88 80050288 44800000 */ mtc1 $zero, $f0 +/* 050E8C 8005028C 27A40060 */ addiu $a0, $sp, 0x60 +/* 050E90 80050290 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 050E94 80050294 C626000C */ lwc1 $f6, 0xc($s1) +/* 050E98 80050298 00000000 */ nop +/* 050E9C 8005029C 46103481 */ sub.s $f18, $f6, $f16 +/* 050EA0 800502A0 C6100084 */ lwc1 $f16, 0x84($s0) +/* 050EA4 800502A4 46089101 */ sub.s $f4, $f18, $f8 +/* 050EA8 800502A8 460A2182 */ mul.s $f6, $f4, $f10 +/* 050EAC 800502AC C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 050EB0 800502B0 46103481 */ sub.s $f18, $f6, $f16 +/* 050EB4 800502B4 E7B200B8 */ swc1 $f18, 0xb8($sp) +/* 050EB8 800502B8 C6280010 */ lwc1 $f8, 0x10($s1) +/* 050EBC 800502BC C6320014 */ lwc1 $f18, 0x14($s1) +/* 050EC0 800502C0 46044181 */ sub.s $f6, $f8, $f4 +/* 050EC4 800502C4 460A3402 */ mul.s $f16, $f6, $f10 +/* 050EC8 800502C8 E6300020 */ swc1 $f16, 0x20($s1) +/* 050ECC 800502CC C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 050ED0 800502D0 C426D54C */ lwc1 $f6, %lo(D_8011D54C)($at) +/* 050ED4 800502D4 46089101 */ sub.s $f4, $f18, $f8 +/* 050ED8 800502D8 C7B000BC */ lwc1 $f16, 0xbc($sp) +/* 050EDC 800502DC 46062281 */ sub.s $f10, $f4, $f6 +/* 050EE0 800502E0 C6080088 */ lwc1 $f8, 0x88($s0) +/* 050EE4 800502E4 46105482 */ mul.s $f18, $f10, $f16 +/* 050EE8 800502E8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 050EEC 800502EC 44813000 */ mtc1 $at, $f6 +/* 050EF0 800502F0 46089101 */ sub.s $f4, $f18, $f8 +/* 050EF4 800502F4 E7A400B4 */ swc1 $f4, 0xb4($sp) +/* 050EF8 800502F8 8E0C010C */ lw $t4, 0x10c($s0) +/* 050EFC 800502FC 860B01A0 */ lh $t3, 0x1a0($s0) +/* 050F00 80050300 00000000 */ nop +/* 050F04 80050304 016C6821 */ addu $t5, $t3, $t4 +/* 050F08 80050308 000D7023 */ negu $t6, $t5 +/* 050F0C 8005030C A4AE0000 */ sh $t6, ($a1) +/* 050F10 80050310 862F0002 */ lh $t7, 2($s1) +/* 050F14 80050314 00000000 */ nop +/* 050F18 80050318 000FC023 */ negu $t8, $t7 +/* 050F1C 8005031C A4B80002 */ sh $t8, 2($a1) +/* 050F20 80050320 86390004 */ lh $t9, 4($s1) +/* 050F24 80050324 E4A0000C */ swc1 $f0, 0xc($a1) +/* 050F28 80050328 00194023 */ negu $t0, $t9 +/* 050F2C 8005032C A4A80004 */ sh $t0, 4($a1) +/* 050F30 80050330 E4A00010 */ swc1 $f0, 0x10($a1) +/* 050F34 80050334 E4A00014 */ swc1 $f0, 0x14($a1) +/* 050F38 80050338 0C01BF9D */ jal object_transform_to_matrix_2 +/* 050F3C 8005033C E4A60008 */ swc1 $f6, 8($a1) +/* 050F40 80050340 8FA500B8 */ lw $a1, 0xb8($sp) +/* 050F44 80050344 8FA700B4 */ lw $a3, 0xb4($sp) +/* 050F48 80050348 27A900AC */ addiu $t1, $sp, 0xac +/* 050F4C 8005034C 27AA00BC */ addiu $t2, $sp, 0xbc +/* 050F50 80050350 27AB00B0 */ addiu $t3, $sp, 0xb0 +/* 050F54 80050354 AFAB0018 */ sw $t3, 0x18($sp) +/* 050F58 80050358 AFAA0014 */ sw $t2, 0x14($sp) +/* 050F5C 8005035C AFA90010 */ sw $t1, 0x10($sp) +/* 050F60 80050360 27A40060 */ addiu $a0, $sp, 0x60 +/* 050F64 80050364 0C01BD93 */ jal guMtxXFMF +/* 050F68 80050368 24060000 */ li $a2, 0 +/* 050F6C 8005036C 820201D2 */ lb $v0, 0x1d2($s0) +/* 050F70 80050370 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 050F74 80050374 44816800 */ mtc1 $at, $f13 +/* 050F78 80050378 44806000 */ mtc1 $zero, $f12 +/* 050F7C 8005037C 1040000B */ beqz $v0, .L800503AC +/* 050F80 80050380 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 050F84 80050384 8FAC00C0 */ lw $t4, 0xc0($sp) +/* 050F88 80050388 00000000 */ nop +/* 050F8C 8005038C 004C6823 */ subu $t5, $v0, $t4 +/* 050F90 80050390 A20D01D2 */ sb $t5, 0x1d2($s0) +/* 050F94 80050394 820E01D2 */ lb $t6, 0x1d2($s0) +/* 050F98 80050398 00000000 */ nop +/* 050F9C 8005039C 05C10046 */ bgez $t6, .L800504B8 +/* 050FA0 800503A0 00000000 */ nop +/* 050FA4 800503A4 10000044 */ b .L800504B8 +/* 050FA8 800503A8 A20001D2 */ sb $zero, 0x1d2($s0) +.L800503AC: +/* 050FAC 800503AC C60A002C */ lwc1 $f10, 0x2c($s0) +/* 050FB0 800503B0 C7B000B0 */ lwc1 $f16, 0xb0($sp) +/* 050FB4 800503B4 44812800 */ mtc1 $at, $f5 +/* 050FB8 800503B8 46105481 */ sub.s $f18, $f10, $f16 +/* 050FBC 800503BC 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000 +/* 050FC0 800503C0 E7B200BC */ swc1 $f18, 0xbc($sp) +/* 050FC4 800503C4 C7A800BC */ lwc1 $f8, 0xbc($sp) +/* 050FC8 800503C8 00000000 */ nop +/* 050FCC 800503CC 46004021 */ cvt.d.s $f0, $f8 +/* 050FD0 800503D0 4620603C */ c.lt.d $f12, $f0 +/* 050FD4 800503D4 00000000 */ nop +/* 050FD8 800503D8 4500000A */ bc1f .L80050404 +/* 050FDC 800503DC 00000000 */ nop +/* 050FE0 800503E0 C604002C */ lwc1 $f4, 0x2c($s0) +/* 050FE4 800503E4 462C0281 */ sub.d $f10, $f0, $f12 +/* 050FE8 800503E8 460021A1 */ cvt.d.s $f6, $f4 +/* 050FEC 800503EC 462A3401 */ sub.d $f16, $f6, $f10 +/* 050FF0 800503F0 462084A0 */ cvt.s.d $f18, $f16 +/* 050FF4 800503F4 E612002C */ swc1 $f18, 0x2c($s0) +/* 050FF8 800503F8 C7A800BC */ lwc1 $f8, 0xbc($sp) +/* 050FFC 800503FC 00000000 */ nop +/* 051000 80050400 46004021 */ cvt.d.s $f0, $f8 +.L80050404: +/* 051004 80050404 44802000 */ mtc1 $zero, $f4 +/* 051008 80050408 00000000 */ nop +/* 05100C 8005040C 4624003C */ c.lt.d $f0, $f4 +/* 051010 80050410 00000000 */ nop +/* 051014 80050414 45000007 */ bc1f .L80050434 +/* 051018 80050418 00000000 */ nop +/* 05101C 8005041C C606002C */ lwc1 $f6, 0x2c($s0) +/* 051020 80050420 462C0400 */ add.d $f16, $f0, $f12 +/* 051024 80050424 460032A1 */ cvt.d.s $f10, $f6 +/* 051028 80050428 46305481 */ sub.d $f18, $f10, $f16 +/* 05102C 8005042C 46209220 */ cvt.s.d $f8, $f18 +/* 051030 80050430 E608002C */ swc1 $f8, 0x2c($s0) +.L80050434: +/* 051034 80050434 C6040030 */ lwc1 $f4, 0x30($s0) +/* 051038 80050438 C7A600AC */ lwc1 $f6, 0xac($sp) +/* 05103C 8005043C 44819800 */ mtc1 $at, $f19 +/* 051040 80050440 46062281 */ sub.s $f10, $f4, $f6 +/* 051044 80050444 E7AA00BC */ swc1 $f10, 0xbc($sp) +/* 051048 80050448 C7B000BC */ lwc1 $f16, 0xbc($sp) +/* 05104C 8005044C 00000000 */ nop +/* 051050 80050450 46008021 */ cvt.d.s $f0, $f16 +/* 051054 80050454 4620603C */ c.lt.d $f12, $f0 +/* 051058 80050458 00000000 */ nop +/* 05105C 8005045C 4500000A */ bc1f .L80050488 +/* 051060 80050460 00000000 */ nop +/* 051064 80050464 C6120030 */ lwc1 $f18, 0x30($s0) +/* 051068 80050468 462C0101 */ sub.d $f4, $f0, $f12 +/* 05106C 8005046C 46009221 */ cvt.d.s $f8, $f18 +/* 051070 80050470 46244181 */ sub.d $f6, $f8, $f4 +/* 051074 80050474 462032A0 */ cvt.s.d $f10, $f6 +/* 051078 80050478 E60A0030 */ swc1 $f10, 0x30($s0) +/* 05107C 8005047C C7B000BC */ lwc1 $f16, 0xbc($sp) +/* 051080 80050480 00000000 */ nop +/* 051084 80050484 46008021 */ cvt.d.s $f0, $f16 +.L80050488: +/* 051088 80050488 44809000 */ mtc1 $zero, $f18 +/* 05108C 8005048C 00000000 */ nop +/* 051090 80050490 4632003C */ c.lt.d $f0, $f18 +/* 051094 80050494 00000000 */ nop +/* 051098 80050498 45000007 */ bc1f .L800504B8 +/* 05109C 8005049C 00000000 */ nop +/* 0510A0 800504A0 C6080030 */ lwc1 $f8, 0x30($s0) +/* 0510A4 800504A4 462C0180 */ add.d $f6, $f0, $f12 +/* 0510A8 800504A8 46004121 */ cvt.d.s $f4, $f8 +/* 0510AC 800504AC 46262281 */ sub.d $f10, $f4, $f6 +/* 0510B0 800504B0 46205420 */ cvt.s.d $f16, $f10 +/* 0510B4 800504B4 E6100030 */ swc1 $f16, 0x30($s0) +.L800504B8: +/* 0510B8 800504B8 820F01D3 */ lb $t7, 0x1d3($s0) +/* 0510BC 800504BC 3C18800E */ lui $t8, %hi(gNumViewports) # $t8, 0x800e +/* 0510C0 800504C0 15E00043 */ bnez $t7, .L800505D0 +/* 0510C4 800504C4 00000000 */ nop +/* 0510C8 800504C8 8F18CB98 */ lw $t8, %lo(gNumViewports)($t8) +/* 0510CC 800504CC 00000000 */ nop +/* 0510D0 800504D0 2B010002 */ slti $at, $t8, 2 +/* 0510D4 800504D4 1020003E */ beqz $at, .L800505D0 +/* 0510D8 800504D8 00000000 */ nop +/* 0510DC 800504DC 0C0078A7 */ jal get_misc_asset +/* 0510E0 800504E0 24040014 */ li $a0, 20 +/* 0510E4 800504E4 82030203 */ lb $v1, 0x203($s0) +/* 0510E8 800504E8 82190002 */ lb $t9, 2($s0) +/* 0510EC 800504EC 30690004 */ andi $t1, $v1, 4 +/* 0510F0 800504F0 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 0510F4 800504F4 00095083 */ sra $t2, $t1, 2 +/* 0510F8 800504F8 44816800 */ mtc1 $at, $f13 +/* 0510FC 800504FC 25430010 */ addiu $v1, $t2, 0x10 +/* 051100 80050500 44806000 */ mtc1 $zero, $f12 +/* 051104 80050504 28610011 */ slti $at, $v1, 0x11 +/* 051108 80050508 001941C0 */ sll $t0, $t9, 7 +/* 05110C 8005050C 14200012 */ bnez $at, .L80050558 +/* 051110 80050510 01022021 */ addu $a0, $t0, $v0 +/* 051114 80050514 908B0070 */ lbu $t3, 0x70($a0) +/* 051118 80050518 240D0001 */ li $t5, 1 +/* 05111C 8005051C 1D600009 */ bgtz $t3, .L80050544 +/* 051120 80050520 00000000 */ nop +/* 051124 80050524 C4880074 */ lwc1 $f8, 0x74($a0) +/* 051128 80050528 44809800 */ mtc1 $zero, $f19 +/* 05112C 8005052C 44809000 */ mtc1 $zero, $f18 +/* 051130 80050530 46004121 */ cvt.d.s $f4, $f8 +/* 051134 80050534 4624903C */ c.lt.d $f18, $f4 +/* 051138 80050538 00000000 */ nop +/* 05113C 8005053C 45000024 */ bc1f .L800505D0 +/* 051140 80050540 00000000 */ nop +.L80050544: +/* 051144 80050544 8E2C0074 */ lw $t4, 0x74($s1) +/* 051148 80050548 006D7004 */ sllv $t6, $t5, $v1 +/* 05114C 8005054C 018E7825 */ or $t7, $t4, $t6 +/* 051150 80050550 1000001F */ b .L800505D0 +/* 051154 80050554 AE2F0074 */ sw $t7, 0x74($s1) +.L80050558: +/* 051158 80050558 90820070 */ lbu $v0, 0x70($a0) +/* 05115C 8005055C 24010002 */ li $at, 2 +/* 051160 80050560 1441000E */ bne $v0, $at, .L8005059C +/* 051164 80050564 28410002 */ slti $at, $v0, 2 +/* 051168 80050568 C4860074 */ lwc1 $f6, 0x74($a0) +/* 05116C 8005056C 24190001 */ li $t9, 1 +/* 051170 80050570 460032A1 */ cvt.d.s $f10, $f6 +/* 051174 80050574 462C503C */ c.lt.d $f10, $f12 +/* 051178 80050578 00000000 */ nop +/* 05117C 8005057C 45000007 */ bc1f .L8005059C +/* 051180 80050580 28410002 */ slti $at, $v0, 2 +/* 051184 80050584 8E380074 */ lw $t8, 0x74($s1) +/* 051188 80050588 00794004 */ sllv $t0, $t9, $v1 +/* 05118C 8005058C 03084825 */ or $t1, $t8, $t0 +/* 051190 80050590 1000000F */ b .L800505D0 +/* 051194 80050594 AE290074 */ sw $t1, 0x74($s1) +/* 051198 80050598 28410002 */ slti $at, $v0, 2 +.L8005059C: +/* 05119C 8005059C 1020000C */ beqz $at, .L800505D0 +/* 0511A0 800505A0 00000000 */ nop +/* 0511A4 800505A4 44808000 */ mtc1 $zero, $f16 +/* 0511A8 800505A8 C4880074 */ lwc1 $f8, 0x74($a0) +/* 0511AC 800505AC 240B0001 */ li $t3, 1 +/* 0511B0 800505B0 4608803C */ c.lt.s $f16, $f8 +/* 0511B4 800505B4 00000000 */ nop +/* 0511B8 800505B8 45000005 */ bc1f .L800505D0 +/* 0511BC 800505BC 00000000 */ nop +/* 0511C0 800505C0 8E2A0074 */ lw $t2, 0x74($s1) +/* 0511C4 800505C4 006B6804 */ sllv $t5, $t3, $v1 +/* 0511C8 800505C8 014D6025 */ or $t4, $t2, $t5 +/* 0511CC 800505CC AE2C0074 */ sw $t4, 0x74($s1) +.L800505D0: +/* 0511D0 800505D0 3C0E8012 */ lui $t6, %hi(gCurrentPlayerIndex) # $t6, 0x8012 +/* 0511D4 800505D4 8DCED55C */ lw $t6, %lo(gCurrentPlayerIndex)($t6) +/* 0511D8 800505D8 2401FFFF */ li $at, -1 +/* 0511DC 800505DC 11C10030 */ beq $t6, $at, .L800506A0 +/* 0511E0 800505E0 3C0F800E */ lui $t7, %hi(gNumViewports) # $t7, 0x800e +/* 0511E4 800505E4 8DEFCB98 */ lw $t7, %lo(gNumViewports)($t7) +/* 0511E8 800505E8 00000000 */ nop +/* 0511EC 800505EC 29E10002 */ slti $at, $t7, 2 +/* 0511F0 800505F0 1020002B */ beqz $at, .L800506A0 +/* 0511F4 800505F4 3C014160 */ li $at, 0x41600000 # 14.000000 +/* 0511F8 800505F8 44819000 */ mtc1 $at, $f18 +/* 0511FC 800505FC C60000C0 */ lwc1 $f0, 0xc0($s0) +/* 051200 80050600 00002025 */ move $a0, $zero +/* 051204 80050604 4600903C */ c.lt.s $f18, $f0 +/* 051208 80050608 3C0140C0 */ lui $at, 0x40c0 +/* 05120C 8005060C 4500000A */ bc1f .L80050638 +/* 051210 80050610 00000000 */ nop +/* 051214 80050614 0C01BE53 */ jal get_random_number_from_range +/* 051218 80050618 24050001 */ li $a1, 1 +/* 05121C 8005061C 10400020 */ beqz $v0, .L800506A0 +/* 051220 80050620 00000000 */ nop +/* 051224 80050624 8E390074 */ lw $t9, 0x74($s1) +/* 051228 80050628 3C010030 */ li $at, 0x00300000 # 0.000000 +/* 05122C 8005062C 0321C025 */ or $t8, $t9, $at +/* 051230 80050630 1000001B */ b .L800506A0 +/* 051234 80050634 AE380074 */ sw $t8, 0x74($s1) +.L80050638: +/* 051238 80050638 44812000 */ mtc1 $at, $f4 +/* 05123C 8005063C 3C01C008 */ li $at, 0xC0080000 # -2.125000 +/* 051240 80050640 4604003C */ c.lt.s $f0, $f4 +/* 051244 80050644 00000000 */ nop +/* 051248 80050648 45000015 */ bc1f .L800506A0 +/* 05124C 8005064C 00000000 */ nop +/* 051250 80050650 C606002C */ lwc1 $f6, 0x2c($s0) +/* 051254 80050654 44815800 */ mtc1 $at, $f11 +/* 051258 80050658 44805000 */ mtc1 $zero, $f10 +/* 05125C 8005065C 46003021 */ cvt.d.s $f0, $f6 +/* 051260 80050660 4620503C */ c.lt.d $f10, $f0 +/* 051264 80050664 00000000 */ nop +/* 051268 80050668 4500000D */ bc1f .L800506A0 +/* 05126C 8005066C 00000000 */ nop +/* 051270 80050670 462C003C */ c.lt.d $f0, $f12 +/* 051274 80050674 00002025 */ move $a0, $zero +/* 051278 80050678 45000009 */ bc1f .L800506A0 +/* 05127C 8005067C 00000000 */ nop +/* 051280 80050680 0C01BE53 */ jal get_random_number_from_range +/* 051284 80050684 24050001 */ li $a1, 1 +/* 051288 80050688 10400005 */ beqz $v0, .L800506A0 +/* 05128C 8005068C 00000000 */ nop +/* 051290 80050690 8E280074 */ lw $t0, 0x74($s1) +/* 051294 80050694 3C01000C */ lui $at, 0xc +/* 051298 80050698 01014825 */ or $t1, $t0, $at +/* 05129C 8005069C AE290074 */ sw $t1, 0x74($s1) +.L800506A0: +/* 0512A0 800506A0 820B01D6 */ lb $t3, 0x1d6($s0) +/* 0512A4 800506A4 8FA500C0 */ lw $a1, 0xc0($sp) +/* 0512A8 800506A8 29610005 */ slti $at, $t3, 5 +/* 0512AC 800506AC 10200004 */ beqz $at, .L800506C0 +/* 0512B0 800506B0 8FA700C4 */ lw $a3, 0xc4($sp) +/* 0512B4 800506B4 0C02BDC5 */ jal func_800AF714 +/* 0512B8 800506B8 02202025 */ move $a0, $s1 +/* 0512BC 800506BC 8FA700C4 */ lw $a3, 0xc4($sp) +.L800506C0: +/* 0512C0 800506C0 02202025 */ move $a0, $s1 +/* 0512C4 800506C4 02002825 */ move $a1, $s0 +/* 0512C8 800506C8 0C01602D */ jal func_800580B4 +/* 0512CC 800506CC 00003025 */ move $a2, $zero +/* 0512D0 800506D0 3C0A800E */ lui $t2, %hi(gNumViewports) # $t2, 0x800e +/* 0512D4 800506D4 8D4ACB98 */ lw $t2, %lo(gNumViewports)($t2) +/* 0512D8 800506D8 24010001 */ li $at, 1 +/* 0512DC 800506DC 15410013 */ bne $t2, $at, .L8005072C +/* 0512E0 800506E0 83AC0053 */ lb $t4, 0x53($sp) +/* 0512E4 800506E4 C608002C */ lwc1 $f8, 0x2c($s0) +/* 0512E8 800506E8 3C01C008 */ li $at, 0xC0080000 # -2.125000 +/* 0512EC 800506EC 44818800 */ mtc1 $at, $f17 +/* 0512F0 800506F0 44808000 */ mtc1 $zero, $f16 +/* 0512F4 800506F4 460044A1 */ cvt.d.s $f18, $f8 +/* 0512F8 800506F8 4632803C */ c.lt.d $f16, $f18 +/* 0512FC 800506FC 00000000 */ nop +/* 051300 80050700 4500000A */ bc1f .L8005072C +/* 051304 80050704 83AC0053 */ lb $t4, 0x53($sp) +/* 051308 80050708 0C01BAA4 */ jal get_settings +/* 05130C 8005070C 00000000 */ nop +/* 051310 80050710 904D0049 */ lbu $t5, 0x49($v0) +/* 051314 80050714 24010025 */ li $at, 37 +/* 051318 80050718 11A10004 */ beq $t5, $at, .L8005072C +/* 05131C 8005071C 83AC0053 */ lb $t4, 0x53($sp) +/* 051320 80050720 0C00A3E8 */ jal func_80028FA0 +/* 051324 80050724 24040001 */ li $a0, 1 +/* 051328 80050728 83AC0053 */ lb $t4, 0x53($sp) +.L8005072C: +/* 05132C 8005072C 02202025 */ move $a0, $s1 +/* 051330 80050730 11800004 */ beqz $t4, .L80050744 +/* 051334 80050734 8FBF002C */ lw $ra, 0x2c($sp) +/* 051338 80050738 0C008C34 */ jal func_800230D0 +/* 05133C 8005073C 02002825 */ move $a1, $s0 +/* 051340 80050740 8FBF002C */ lw $ra, 0x2c($sp) +.L80050744: +/* 051344 80050744 8FB00024 */ lw $s0, 0x24($sp) +/* 051348 80050748 8FB10028 */ lw $s1, 0x28($sp) +/* 05134C 8005074C 03E00008 */ jr $ra +/* 051350 80050750 27BD00C0 */ addiu $sp, $sp, 0xc0 + diff --git a/asm/non_matchings/racer/func_80055EC0.s b/asm/non_matchings/racer/func_80055EC0.s deleted file mode 100644 index 184e7da8..00000000 --- a/asm/non_matchings/racer/func_80055EC0.s +++ /dev/null @@ -1,742 +0,0 @@ -.late_rodata -glabel D_800E6848 -.double 0.7 -glabel D_800E6850 -.float 1500.0 -glabel jpt_800E6854 -.word L8005635C, L80056370, L80056380, L8005639C, L800563EC, L80056508, L8005655C, L80056508, L800563EC, L80056620, L800563CC, L80056380, L800565C0, L800565E0, L80056600, L800563EC -glabel jpt_800E6894 -.word L80056828, L80056834, L80056840, L8005684C, L80056884, L80056884, L80056884, L80056884, L80056884, L80056884, L80056874, L80056880 - -.text -glabel func_80055EC0 -/* 056AC0 80055EC0 27BDFF78 */ addiu $sp, $sp, -0x88 -/* 056AC4 80055EC4 AFBF0024 */ sw $ra, 0x24($sp) -/* 056AC8 80055EC8 AFB00020 */ sw $s0, 0x20($sp) -/* 056ACC 80055ECC AFA60090 */ sw $a2, 0x90($sp) -/* 056AD0 80055ED0 A7A0003A */ sh $zero, 0x3a($sp) -/* 056AD4 80055ED4 8CA20144 */ lw $v0, 0x144($a1) -/* 056AD8 80055ED8 00A08025 */ move $s0, $a1 -/* 056ADC 80055EDC 10400073 */ beqz $v0, .L800560AC -/* 056AE0 80055EE0 00803825 */ move $a3, $a0 -/* 056AE4 80055EE4 3C058012 */ lui $a1, %hi(gCurrentButtonsPressed) # $a1, 0x8012 -/* 056AE8 80055EE8 24A5D52C */ addiu $a1, %lo(gCurrentButtonsPressed) # addiu $a1, $a1, -0x2ad4 -/* 056AEC 80055EEC 8CAE0000 */ lw $t6, ($a1) -/* 056AF0 80055EF0 00401825 */ move $v1, $v0 -/* 056AF4 80055EF4 31CF2000 */ andi $t7, $t6, 0x2000 # Z_TRIG -/* 056AF8 80055EF8 15E00009 */ bnez $t7, .L80055F20 -/* 056AFC 80055EFC 00000000 */ nop -/* 056B00 80055F00 821801D8 */ lb $t8, 0x1d8($s0) -/* 056B04 80055F04 00000000 */ nop -/* 056B08 80055F08 17000005 */ bnez $t8, .L80055F20 -/* 056B0C 80055F0C 00000000 */ nop -/* 056B10 80055F10 82190187 */ lb $t9, 0x187($s0) -/* 056B14 80055F14 00000000 */ nop -/* 056B18 80055F18 13200282 */ beqz $t9, .L80056924 -/* 056B1C 80055F1C 8FBF0024 */ lw $ra, 0x24($sp) -.L80055F20: -/* 056B20 80055F20 80EC003A */ lb $t4, 0x3a($a3) -/* 056B24 80055F24 8CEB0068 */ lw $t3, 0x68($a3) -/* 056B28 80055F28 000C6880 */ sll $t5, $t4, 2 -/* 056B2C 80055F2C 016D7021 */ addu $t6, $t3, $t5 -/* 056B30 80055F30 44806000 */ mtc1 $zero, $f12 -/* 056B34 80055F34 8DC20000 */ lw $v0, ($t6) -/* 056B38 80055F38 46006086 */ mov.s $f2, $f12 -/* 056B3C 80055F3C 10400022 */ beqz $v0, .L80055FC8 -/* 056B40 80055F40 00000000 */ nop -/* 056B44 80055F44 8CEF0040 */ lw $t7, 0x40($a3) -/* 056B48 80055F48 8C450000 */ lw $a1, ($v0) -/* 056B4C 80055F4C 81E40058 */ lb $a0, 0x58($t7) -/* 056B50 80055F50 00000000 */ nop -/* 056B54 80055F54 0480001C */ bltz $a0, .L80055FC8 -/* 056B58 80055F58 00000000 */ nop -/* 056B5C 80055F5C 84B80018 */ lh $t8, 0x18($a1) -/* 056B60 80055F60 00000000 */ nop -/* 056B64 80055F64 0098082A */ slt $at, $a0, $t8 -/* 056B68 80055F68 10200017 */ beqz $at, .L80055FC8 -/* 056B6C 80055F6C 00000000 */ nop -/* 056B70 80055F70 8CE60044 */ lw $a2, 0x44($a3) -/* 056B74 80055F74 00000000 */ nop -/* 056B78 80055F78 10C00013 */ beqz $a2, .L80055FC8 -/* 056B7C 80055F7C 00000000 */ nop -/* 056B80 80055F80 8CB90014 */ lw $t9, 0x14($a1) -/* 056B84 80055F84 00046040 */ sll $t4, $a0, 1 -/* 056B88 80055F88 032C5821 */ addu $t3, $t9, $t4 -/* 056B8C 80055F8C 856D0000 */ lh $t5, ($t3) -/* 056B90 80055F90 C4E00008 */ lwc1 $f0, 8($a3) -/* 056B94 80055F94 000D7080 */ sll $t6, $t5, 2 -/* 056B98 80055F98 01CD7021 */ addu $t6, $t6, $t5 -/* 056B9C 80055F9C 000E7040 */ sll $t6, $t6, 1 -/* 056BA0 80055FA0 00CE1021 */ addu $v0, $a2, $t6 -/* 056BA4 80055FA4 844F0002 */ lh $t7, 2($v0) -/* 056BA8 80055FA8 84580004 */ lh $t8, 4($v0) -/* 056BAC 80055FAC 448F2000 */ mtc1 $t7, $f4 -/* 056BB0 80055FB0 44983000 */ mtc1 $t8, $f6 -/* 056BB4 80055FB4 468020A0 */ cvt.s.w $f2, $f4 -/* 056BB8 80055FB8 46001082 */ mul.s $f2, $f2, $f0 -/* 056BBC 80055FBC 46803320 */ cvt.s.w $f12, $f6 -/* 056BC0 80055FC0 46006302 */ mul.s $f12, $f12, $f0 -/* 056BC4 80055FC4 00000000 */ nop -.L80055FC8: -/* 056BC8 80055FC8 C60A0038 */ lwc1 $f10, 0x38($s0) -/* 056BCC 80055FCC C6040044 */ lwc1 $f4, 0x44($s0) -/* 056BD0 80055FD0 460C5402 */ mul.s $f16, $f10, $f12 -/* 056BD4 80055FD4 C4E8000C */ lwc1 $f8, 0xc($a3) -/* 056BD8 80055FD8 3C01800E */ lui $at, %hi(D_800E6848) # $at, 0x800e -/* 056BDC 80055FDC 8C620064 */ lw $v0, 0x64($v1) -/* 056BE0 80055FE0 46022182 */ mul.s $f6, $f4, $f2 -/* 056BE4 80055FE4 46104480 */ add.s $f18, $f8, $f16 -/* 056BE8 80055FE8 240C0002 */ li $t4, 2 -/* 056BEC 80055FEC 240B0001 */ li $t3, 1 -/* 056BF0 80055FF0 46069280 */ add.s $f10, $f18, $f6 -/* 056BF4 80055FF4 E46A000C */ swc1 $f10, 0xc($v1) -/* 056BF8 80055FF8 C610003C */ lwc1 $f16, 0x3c($s0) -/* 056BFC 80055FFC C6060048 */ lwc1 $f6, 0x48($s0) -/* 056C00 80056000 460C8102 */ mul.s $f4, $f16, $f12 -/* 056C04 80056004 C4E80010 */ lwc1 $f8, 0x10($a3) -/* 056C08 80056008 46023282 */ mul.s $f10, $f6, $f2 -/* 056C0C 8005600C 46044480 */ add.s $f18, $f8, $f4 -/* 056C10 80056010 460A9400 */ add.s $f16, $f18, $f10 -/* 056C14 80056014 E4700010 */ swc1 $f16, 0x10($v1) -/* 056C18 80056018 C6040040 */ lwc1 $f4, 0x40($s0) -/* 056C1C 8005601C C60A004C */ lwc1 $f10, 0x4c($s0) -/* 056C20 80056020 460C2182 */ mul.s $f6, $f4, $f12 -/* 056C24 80056024 C4E80014 */ lwc1 $f8, 0x14($a3) -/* 056C28 80056028 46025402 */ mul.s $f16, $f10, $f2 -/* 056C2C 8005602C 46064480 */ add.s $f18, $f8, $f6 -/* 056C30 80056030 46109100 */ add.s $f4, $f18, $f16 -/* 056C34 80056034 E4640014 */ swc1 $f4, 0x14($v1) -/* 056C38 80056038 84F9002E */ lh $t9, 0x2e($a3) -/* 056C3C 8005603C 00000000 */ nop -/* 056C40 80056040 A479002E */ sh $t9, 0x2e($v1) -/* 056C44 80056044 C4E8001C */ lwc1 $f8, 0x1c($a3) -/* 056C48 80056048 C420684C */ lwc1 $f0, %lo(D_800E6848 + 4)($at) -/* 056C4C 8005604C C4216848 */ lwc1 $f1, %lo(D_800E6848)($at) -/* 056C50 80056050 460041A1 */ cvt.d.s $f6, $f8 -/* 056C54 80056054 46203282 */ mul.d $f10, $f6, $f0 -/* 056C58 80056058 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 056C5C 8005605C 44814800 */ mtc1 $at, $f9 -/* 056C60 80056060 44804000 */ mtc1 $zero, $f8 -/* 056C64 80056064 462054A0 */ cvt.s.d $f18, $f10 -/* 056C68 80056068 E472001C */ swc1 $f18, 0x1c($v1) -/* 056C6C 8005606C C4F00020 */ lwc1 $f16, 0x20($a3) -/* 056C70 80056070 00000000 */ nop -/* 056C74 80056074 46008121 */ cvt.d.s $f4, $f16 -/* 056C78 80056078 46282181 */ sub.d $f6, $f4, $f8 -/* 056C7C 8005607C 462032A0 */ cvt.s.d $f10, $f6 -/* 056C80 80056080 E46A0020 */ swc1 $f10, 0x20($v1) -/* 056C84 80056084 C4F20024 */ lwc1 $f18, 0x24($a3) -/* 056C88 80056088 00000000 */ nop -/* 056C8C 8005608C 46009421 */ cvt.d.s $f16, $f18 -/* 056C90 80056090 46208102 */ mul.d $f4, $f16, $f0 -/* 056C94 80056094 46202220 */ cvt.s.d $f8, $f4 -/* 056C98 80056098 E4680024 */ swc1 $f8, 0x24($v1) -/* 056C9C 8005609C A04C000B */ sb $t4, 0xb($v0) -/* 056CA0 800560A0 AE000144 */ sw $zero, 0x144($s0) -/* 056CA4 800560A4 1000021E */ b .L80056920 -/* 056CA8 800560A8 A20B0211 */ sb $t3, 0x211($s0) -.L800560AC: -/* 056CAC 800560AC 3C058012 */ lui $a1, %hi(gCurrentButtonsPressed) # $a1, 0x8012 -/* 056CB0 800560B0 24A5D52C */ addiu $a1, %lo(gCurrentButtonsPressed) # addiu $a1, $a1, -0x2ad4 -/* 056CB4 800560B4 8CAD0000 */ lw $t5, ($a1) -/* 056CB8 800560B8 3C018012 */ lui $at, %hi(gCurrentButtonsReleased) # $at, 0x8012 -/* 056CBC 800560BC 31AE2000 */ andi $t6, $t5, 0x2000 -/* 056CC0 800560C0 11C00002 */ beqz $t6, .L800560CC -/* 056CC4 800560C4 2404000C */ li $a0, 12 -/* 056CC8 800560C8 A2000211 */ sb $zero, 0x211($s0) -.L800560CC: -/* 056CCC 800560CC 820F0211 */ lb $t7, 0x211($s0) -/* 056CD0 800560D0 00000000 */ nop -/* 056CD4 800560D4 11E00006 */ beqz $t7, .L800560F0 -/* 056CD8 800560D8 00000000 */ nop -/* 056CDC 800560DC AC20D530 */ sw $zero, %lo(gCurrentButtonsReleased)($at) -/* 056CE0 800560E0 8CB80000 */ lw $t8, ($a1) -/* 056CE4 800560E4 2401DFFF */ li $at, -8193 -/* 056CE8 800560E8 0301C824 */ and $t9, $t8, $at -/* 056CEC 800560EC ACB90000 */ sw $t9, ($a1) -.L800560F0: -/* 056CF0 800560F0 820C0175 */ lb $t4, 0x175($s0) -/* 056CF4 800560F4 00000000 */ nop -/* 056CF8 800560F8 15800002 */ bnez $t4, .L80056104 -/* 056CFC 800560FC 00000000 */ nop -/* 056D00 80056100 AE000140 */ sw $zero, 0x140($s0) -.L80056104: -/* 056D04 80056104 820B0172 */ lb $t3, 0x172($s0) -/* 056D08 80056108 2401FFFF */ li $at, -1 -/* 056D0C 8005610C 15610002 */ bne $t3, $at, .L80056118 -/* 056D10 80056110 00000000 */ nop -/* 056D14 80056114 A2000173 */ sb $zero, 0x173($s0) -.L80056118: -/* 056D18 80056118 820D0173 */ lb $t5, 0x173($s0) -/* 056D1C 8005611C 00000000 */ nop -/* 056D20 80056120 1DA0000A */ bgtz $t5, .L8005614C -/* 056D24 80056124 00000000 */ nop -/* 056D28 80056128 8CAE0000 */ lw $t6, ($a1) -/* 056D2C 8005612C 00E02025 */ move $a0, $a3 -/* 056D30 80056130 31CF2000 */ andi $t7, $t6, 0x2000 -/* 056D34 80056134 11E001FB */ beqz $t7, .L80056924 -/* 056D38 80056138 8FBF0024 */ lw $ra, 0x24($sp) -/* 056D3C 8005613C 0C015A4C */ jal play_char_horn_sound -/* 056D40 80056140 02002825 */ move $a1, $s0 -/* 056D44 80056144 100001F7 */ b .L80056924 -/* 056D48 80056148 8FBF0024 */ lw $ra, 0x24($sp) -.L8005614C: -/* 056D4C 8005614C 0C0078A7 */ jal get_misc_asset -/* 056D50 80056150 AFA70088 */ sw $a3, 0x88($sp) -/* 056D54 80056154 82180172 */ lb $t8, 0x172($s0) -/* 056D58 80056158 820C0174 */ lb $t4, 0x174($s0) -/* 056D5C 8005615C 0018C880 */ sll $t9, $t8, 2 -/* 056D60 80056160 0338C821 */ addu $t9, $t9, $t8 -/* 056D64 80056164 0019C840 */ sll $t9, $t9, 1 -/* 056D68 80056168 000C5840 */ sll $t3, $t4, 1 -/* 056D6C 8005616C 032B6821 */ addu $t5, $t9, $t3 -/* 056D70 80056170 01A27021 */ addu $t6, $t5, $v0 -/* 056D74 80056174 81C80000 */ lb $t0, ($t6) -/* 056D78 80056178 3C058012 */ lui $a1, %hi(gCurrentButtonsPressed) # $a1, 0x8012 -/* 056D7C 8005617C 2401FFFF */ li $at, -1 -/* 056D80 80056180 15010003 */ bne $t0, $at, .L80056190 -/* 056D84 80056184 24A5D52C */ addiu $a1, %lo(gCurrentButtonsPressed) # addiu $a1, $a1, -0x2ad4 -/* 056D88 80056188 100001E5 */ b .L80056920 -/* 056D8C 8005618C A2000173 */ sb $zero, 0x173($s0) -.L80056190: -/* 056D90 80056190 8CAF0000 */ lw $t7, ($a1) -/* 056D94 80056194 00003825 */ move $a3, $zero -/* 056D98 80056198 31F82000 */ andi $t8, $t7, 0x2000 -/* 056D9C 8005619C 13000008 */ beqz $t8, .L800561C0 -/* 056DA0 800561A0 2404013E */ li $a0, 318 -/* 056DA4 800561A4 86050000 */ lh $a1, ($s0) -/* 056DA8 800561A8 AFA8007C */ sw $t0, 0x7c($sp) -/* 056DAC 800561AC 0C029D3B */ jal func_800A74EC -/* 056DB0 800561B0 AFA00068 */ sw $zero, 0x68($sp) -/* 056DB4 800561B4 8FA70068 */ lw $a3, 0x68($sp) -/* 056DB8 800561B8 8FA8007C */ lw $t0, 0x7c($sp) -/* 056DBC 800561BC 00000000 */ nop -.L800561C0: -/* 056DC0 800561C0 820C0195 */ lb $t4, 0x195($s0) -/* 056DC4 800561C4 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012 -/* 056DC8 800561C8 11800006 */ beqz $t4, .L800561E4 -/* 056DCC 800561CC 00000000 */ nop -/* 056DD0 800561D0 82190175 */ lb $t9, 0x175($s0) -/* 056DD4 800561D4 00000000 */ nop -/* 056DD8 800561D8 172001D2 */ bnez $t9, .L80056924 -/* 056DDC 800561DC 8FBF0024 */ lw $ra, 0x24($sp) -/* 056DE0 800561E0 A2000195 */ sb $zero, 0x195($s0) -.L800561E4: -/* 056DE4 800561E4 8D6BD528 */ lw $t3, %lo(gCurrentRacerInput)($t3) -/* 056DE8 800561E8 3C038012 */ lui $v1, %hi(gCurrentButtonsReleased) # $v1, 0x8012 -/* 056DEC 800561EC 316D2000 */ andi $t5, $t3, 0x2000 -/* 056DF0 800561F0 15A00006 */ bnez $t5, .L8005620C -/* 056DF4 800561F4 00000000 */ nop -/* 056DF8 800561F8 8C63D530 */ lw $v1, %lo(gCurrentButtonsReleased)($v1) -/* 056DFC 800561FC 00000000 */ nop -/* 056E00 80056200 306E2000 */ andi $t6, $v1, 0x2000 -/* 056E04 80056204 11C00045 */ beqz $t6, .L8005631C -/* 056E08 80056208 01C01825 */ move $v1, $t6 -.L8005620C: -/* 056E0C 8005620C 1100000E */ beqz $t0, .L80056248 -/* 056E10 80056210 02002825 */ move $a1, $s0 -/* 056E14 80056214 24010005 */ li $at, 5 -/* 056E18 80056218 1101001A */ beq $t0, $at, .L80056284 -/* 056E1C 8005621C 02002825 */ move $a1, $s0 -/* 056E20 80056220 24010006 */ li $at, 6 -/* 056E24 80056224 11010017 */ beq $t0, $at, .L80056284 -/* 056E28 80056228 24010007 */ li $at, 7 -/* 056E2C 8005622C 11010015 */ beq $t0, $at, .L80056284 -/* 056E30 80056230 3C038012 */ lui $v1, %hi(gCurrentButtonsReleased) # $v1, 0x8012 -/* 056E34 80056234 8C63D530 */ lw $v1, %lo(gCurrentButtonsReleased)($v1) -/* 056E38 80056238 00000000 */ nop -/* 056E3C 8005623C 306F2000 */ andi $t7, $v1, 0x2000 -/* 056E40 80056240 10000036 */ b .L8005631C -/* 056E44 80056244 01E01825 */ move $v1, $t7 -.L80056248: -/* 056E48 80056248 8FA40088 */ lw $a0, 0x88($sp) -/* 056E4C 8005624C 27A60064 */ addiu $a2, $sp, 0x64 -/* 056E50 80056250 AFA70068 */ sw $a3, 0x68($sp) -/* 056E54 80056254 0C015A63 */ jal func_8005698C -/* 056E58 80056258 AFA8007C */ sw $t0, 0x7c($sp) -/* 056E5C 8005625C 8FA70068 */ lw $a3, 0x68($sp) -/* 056E60 80056260 8FA8007C */ lw $t0, 0x7c($sp) -/* 056E64 80056264 A2000175 */ sb $zero, 0x175($s0) -/* 056E68 80056268 AE020140 */ sw $v0, 0x140($s0) -/* 056E6C 8005626C 3C038012 */ lui $v1, %hi(gCurrentButtonsReleased) # $v1, 0x8012 -/* 056E70 80056270 8C63D530 */ lw $v1, %lo(gCurrentButtonsReleased)($v1) -/* 056E74 80056274 AFA2006C */ sw $v0, 0x6c($sp) -/* 056E78 80056278 30782000 */ andi $t8, $v1, 0x2000 -/* 056E7C 8005627C 10000027 */ b .L8005631C -/* 056E80 80056280 03001825 */ move $v1, $t8 -.L80056284: -/* 056E84 80056284 8FA40088 */ lw $a0, 0x88($sp) -/* 056E88 80056288 27A60064 */ addiu $a2, $sp, 0x64 -/* 056E8C 8005628C AFA70068 */ sw $a3, 0x68($sp) -/* 056E90 80056290 0C015A63 */ jal func_8005698C -/* 056E94 80056294 AFA8007C */ sw $t0, 0x7c($sp) -/* 056E98 80056298 8FA8007C */ lw $t0, 0x7c($sp) -/* 056E9C 8005629C 8FA70068 */ lw $a3, 0x68($sp) -/* 056EA0 800562A0 24010005 */ li $at, 5 -/* 056EA4 800562A4 00405025 */ move $t2, $v0 -/* 056EA8 800562A8 15010005 */ bne $t0, $at, .L800562C0 -/* 056EAC 800562AC A2000175 */ sb $zero, 0x175($s0) -/* 056EB0 800562B0 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 056EB4 800562B4 44810000 */ mtc1 $at, $f0 -/* 056EB8 800562B8 10000005 */ b .L800562D0 -/* 056EBC 800562BC C7A60064 */ lwc1 $f6, 0x64($sp) -.L800562C0: -/* 056EC0 800562C0 3C01800E */ lui $at, %hi(D_800E6850) # $at, 0x800e -/* 056EC4 800562C4 C4206850 */ lwc1 $f0, %lo(D_800E6850)($at) -/* 056EC8 800562C8 00000000 */ nop -/* 056ECC 800562CC C7A60064 */ lwc1 $f6, 0x64($sp) -.L800562D0: -/* 056ED0 800562D0 24010006 */ li $at, 6 -/* 056ED4 800562D4 4600303C */ c.lt.s $f6, $f0 -/* 056ED8 800562D8 3C038012 */ lui $v1, %hi(gCurrentButtonsReleased) # $v1, 0x8012 -/* 056EDC 800562DC 45000009 */ bc1f .L80056304 -/* 056EE0 800562E0 00000000 */ nop -/* 056EE4 800562E4 15010005 */ bne $t0, $at, .L800562FC -/* 056EE8 800562E8 00000000 */ nop -/* 056EEC 800562EC 10400003 */ beqz $v0, .L800562FC -/* 056EF0 800562F0 00000000 */ nop -/* 056EF4 800562F4 8C470064 */ lw $a3, 0x64($v0) -/* 056EF8 800562F8 00000000 */ nop -.L800562FC: -/* 056EFC 800562FC 10000003 */ b .L8005630C -/* 056F00 80056300 AE020140 */ sw $v0, 0x140($s0) -.L80056304: -/* 056F04 80056304 AE000140 */ sw $zero, 0x140($s0) -/* 056F08 80056308 00005025 */ move $t2, $zero -.L8005630C: -/* 056F0C 8005630C 8C63D530 */ lw $v1, %lo(gCurrentButtonsReleased)($v1) -/* 056F10 80056310 AFAA006C */ sw $t2, 0x6c($sp) -/* 056F14 80056314 306C2000 */ andi $t4, $v1, 0x2000 -/* 056F18 80056318 01801825 */ move $v1, $t4 -.L8005631C: -/* 056F1C 8005631C 8FAA006C */ lw $t2, 0x6c($sp) -/* 056F20 80056320 1060017F */ beqz $v1, .L80056920 -/* 056F24 80056324 2402001D */ li $v0, 29 -/* 056F28 80056328 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 056F2C 8005632C 44810000 */ mtc1 $at, $f0 -/* 056F30 80056330 2D010010 */ sltiu $at, $t0, 0x10 -/* 056F34 80056334 AFA80030 */ sw $t0, 0x30($sp) -/* 056F38 80056338 102000B9 */ beqz $at, .L80056620 -/* 056F3C 8005633C 0100C825 */ move $t9, $t0 -/* 056F40 80056340 0019C880 */ sll $t9, $t9, 2 -/* 056F44 80056344 3C01800E */ lui $at, %hi(jpt_800E6854) # $at, 0x800e -/* 056F48 80056348 00390821 */ addu $at, $at, $t9 -/* 056F4C 8005634C 8C396854 */ lw $t9, %lo(jpt_800E6854)($at) -/* 056F50 80056350 00000000 */ nop -/* 056F54 80056354 03200008 */ jr $t9 -/* 056F58 80056358 00000000 */ nop -glabel L8005635C -/* 056F5C 8005635C 3C01C120 */ li $at, 0xC1200000 # -10.000000 -/* 056F60 80056360 44815000 */ mtc1 $at, $f10 -/* 056F64 80056364 240200E5 */ li $v0, 229 -/* 056F68 80056368 100000B0 */ b .L8005662C -/* 056F6C 8005636C E7AA0064 */ swc1 $f10, 0x64($sp) -glabel L80056370 -/* 056F70 80056370 3C01C120 */ li $at, 0xC1200000 # -10.000000 -/* 056F74 80056374 44819000 */ mtc1 $at, $f18 -/* 056F78 80056378 100000AC */ b .L8005662C -/* 056F7C 8005637C E7B20064 */ swc1 $f18, 0x64($sp) -glabel L80056380 -/* 056F80 80056380 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 056F84 80056384 44818000 */ mtc1 $at, $f16 -/* 056F88 80056388 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 056F8C 8005638C 44810000 */ mtc1 $at, $f0 -/* 056F90 80056390 2402000E */ li $v0, 14 -/* 056F94 80056394 100000A5 */ b .L8005662C -/* 056F98 80056398 E7B00064 */ swc1 $f16, 0x64($sp) -glabel L8005639C -/* 056F9C 8005639C 820B01D6 */ lb $t3, 0x1d6($s0) -/* 056FA0 800563A0 24010002 */ li $at, 2 -/* 056FA4 800563A4 11610003 */ beq $t3, $at, .L800563B4 -/* 056FA8 800563A8 240200EB */ li $v0, 235 -/* 056FAC 800563AC 10000001 */ b .L800563B4 -/* 056FB0 800563B0 24020082 */ li $v0, 130 -.L800563B4: -/* 056FB4 800563B4 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 056FB8 800563B8 44812000 */ mtc1 $at, $f4 -/* 056FBC 800563BC 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 056FC0 800563C0 44810000 */ mtc1 $at, $f0 -/* 056FC4 800563C4 10000099 */ b .L8005662C -/* 056FC8 800563C8 E7A40064 */ swc1 $f4, 0x64($sp) -glabel L800563CC -/* 056FCC 800563CC 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 056FD0 800563D0 44814000 */ mtc1 $at, $f8 -/* 056FD4 800563D4 3C01C000 */ li $at, 0xC0000000 # -2.000000 -/* 056FD8 800563D8 44810000 */ mtc1 $at, $f0 -/* 056FDC 800563DC 2402002E */ li $v0, 46 -/* 056FE0 800563E0 00005025 */ move $t2, $zero -/* 056FE4 800563E4 10000091 */ b .L8005662C -/* 056FE8 800563E8 E7A80064 */ swc1 $f8, 0x64($sp) -glabel L800563EC -/* 056FEC 800563EC 24010008 */ li $at, 8 -/* 056FF0 800563F0 11010009 */ beq $t0, $at, .L80056418 -/* 056FF4 800563F4 2401000F */ li $at, 15 -/* 056FF8 800563F8 1501000D */ bne $t0, $at, .L80056430 -/* 056FFC 800563FC 00000000 */ nop -/* 057000 80056400 0C00322D */ jal normalise_time -/* 057004 80056404 2404004B */ li $a0, 75 -/* 057008 80056408 240D0002 */ li $t5, 2 -/* 05700C 8005640C A20D0203 */ sb $t5, 0x203($s0) -/* 057010 80056410 1000000B */ b .L80056440 -/* 057014 80056414 A20201D3 */ sb $v0, 0x1d3($s0) -.L80056418: -/* 057018 80056418 0C00322D */ jal normalise_time -/* 05701C 8005641C 24040037 */ li $a0, 55 -/* 057020 80056420 240E0001 */ li $t6, 1 -/* 057024 80056424 A20E0203 */ sb $t6, 0x203($s0) -/* 057028 80056428 10000005 */ b .L80056440 -/* 05702C 8005642C A20201D3 */ sb $v0, 0x1d3($s0) -.L80056430: -/* 057030 80056430 0C00322D */ jal normalise_time -/* 057034 80056434 24040023 */ li $a0, 35 -/* 057038 80056438 A20201D3 */ sb $v0, 0x1d3($s0) -/* 05703C 8005643C A2000203 */ sb $zero, 0x203($s0) -.L80056440: -/* 057040 80056440 920F020C */ lbu $t7, 0x20c($s0) -/* 057044 80056444 00000000 */ nop -/* 057048 80056448 11E00006 */ beqz $t7, .L80056464 -/* 05704C 8005644C 8FB90030 */ lw $t9, 0x30($sp) -/* 057050 80056450 82180203 */ lb $t8, 0x203($s0) -/* 057054 80056454 00000000 */ nop -/* 057058 80056458 370C0004 */ ori $t4, $t8, 4 -/* 05705C 8005645C A20C0203 */ sb $t4, 0x203($s0) -/* 057060 80056460 8FB90030 */ lw $t9, 0x30($sp) -.L80056464: -/* 057064 80056464 2401000F */ li $at, 15 -/* 057068 80056468 1721000B */ bne $t9, $at, .L80056498 -/* 05706C 8005646C 8FA40088 */ lw $a0, 0x88($sp) -/* 057070 80056470 8FA40088 */ lw $a0, 0x88($sp) -/* 057074 80056474 0C015C12 */ jal racer_play_sound -/* 057078 80056478 24050232 */ li $a1, 562 -/* 05707C 8005647C 8FA40088 */ lw $a0, 0x88($sp) -/* 057080 80056480 24050233 */ li $a1, 563 -/* 057084 80056484 0C015C29 */ jal func_800570A4 -/* 057088 80056488 2406001E */ li $a2, 30 -/* 05708C 8005648C 10000005 */ b .L800564A4 -/* 057090 80056490 820B0173 */ lb $t3, 0x173($s0) -/* 057094 80056494 8FA40088 */ lw $a0, 0x88($sp) -.L80056498: -/* 057098 80056498 0C015C12 */ jal racer_play_sound -/* 05709C 8005649C 24050021 */ li $a1, 33 -/* 0570A0 800564A0 820B0173 */ lb $t3, 0x173($s0) -.L800564A4: -/* 0570A4 800564A4 24010004 */ li $at, 4 -/* 0570A8 800564A8 256DFFFF */ addiu $t5, $t3, -1 -/* 0570AC 800564AC A20D0173 */ sb $t5, 0x173($s0) -/* 0570B0 800564B0 8FAE0030 */ lw $t6, 0x30($sp) -/* 0570B4 800564B4 00000000 */ nop -/* 0570B8 800564B8 15C1000A */ bne $t6, $at, .L800564E4 -/* 0570BC 800564BC 00000000 */ nop -/* 0570C0 800564C0 820F01D8 */ lb $t7, 0x1d8($s0) -/* 0570C4 800564C4 00000000 */ nop -/* 0570C8 800564C8 15E00116 */ bnez $t7, .L80056924 -/* 0570CC 800564CC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0570D0 800564D0 86040000 */ lh $a0, ($s0) -/* 0570D4 800564D4 0C01C8D2 */ jal func_80072348 -/* 0570D8 800564D8 24050006 */ li $a1, 6 -/* 0570DC 800564DC 10000111 */ b .L80056924 -/* 0570E0 800564E0 8FBF0024 */ lw $ra, 0x24($sp) -.L800564E4: -/* 0570E4 800564E4 821801D8 */ lb $t8, 0x1d8($s0) -/* 0570E8 800564E8 00000000 */ nop -/* 0570EC 800564EC 1700010D */ bnez $t8, .L80056924 -/* 0570F0 800564F0 8FBF0024 */ lw $ra, 0x24($sp) -/* 0570F4 800564F4 86040000 */ lh $a0, ($s0) -/* 0570F8 800564F8 0C01C8D2 */ jal func_80072348 -/* 0570FC 800564FC 24050008 */ li $a1, 8 -/* 057100 80056500 10000108 */ b .L80056924 -/* 057104 80056504 8FBF0024 */ lw $ra, 0x24($sp) -glabel L80056508 -/* 057108 80056508 820C0173 */ lb $t4, 0x173($s0) -/* 05710C 8005650C 860B0000 */ lh $t3, ($s0) -/* 057110 80056510 2401FFFF */ li $at, -1 -/* 057114 80056514 2599FFFF */ addiu $t9, $t4, -1 -/* 057118 80056518 11610101 */ beq $t3, $at, .L80056920 -/* 05711C 8005651C A2190173 */ sb $t9, 0x173($s0) -/* 057120 80056520 11400005 */ beqz $t2, .L80056538 -/* 057124 80056524 240D005A */ li $t5, 90 -/* 057128 80056528 250EFFFB */ addiu $t6, $t0, -5 -/* 05712C 8005652C 000E7843 */ sra $t7, $t6, 1 -/* 057130 80056530 A20D0175 */ sb $t5, 0x175($s0) -/* 057134 80056534 A20F0184 */ sb $t7, 0x184($s0) -.L80056538: -/* 057138 80056538 821801D8 */ lb $t8, 0x1d8($s0) -/* 05713C 8005653C 00000000 */ nop -/* 057140 80056540 170000F8 */ bnez $t8, .L80056924 -/* 057144 80056544 8FBF0024 */ lw $ra, 0x24($sp) -/* 057148 80056548 86040000 */ lh $a0, ($s0) -/* 05714C 8005654C 0C01C8D2 */ jal func_80072348 -/* 057150 80056550 2405000F */ li $a1, 15 -/* 057154 80056554 100000F3 */ b .L80056924 -/* 057158 80056558 8FBF0024 */ lw $ra, 0x24($sp) -glabel L8005655C -/* 05715C 8005655C 820C0173 */ lb $t4, 0x173($s0) -/* 057160 80056560 860B0000 */ lh $t3, ($s0) -/* 057164 80056564 2401FFFF */ li $at, -1 -/* 057168 80056568 2599FFFF */ addiu $t9, $t4, -1 -/* 05716C 8005656C A2190173 */ sb $t9, 0x173($s0) -/* 057170 80056570 116100EB */ beq $t3, $at, .L80056920 -/* 057174 80056574 AE000140 */ sw $zero, 0x140($s0) -/* 057178 80056578 10E00008 */ beqz $a3, .L8005659C -/* 05717C 8005657C 240D0001 */ li $t5, 1 -/* 057180 80056580 240E0078 */ li $t6, 120 -/* 057184 80056584 A0ED0195 */ sb $t5, 0x195($a3) -/* 057188 80056588 A0EE0175 */ sb $t6, 0x175($a3) -/* 05718C 8005658C 8FAF0088 */ lw $t7, 0x88($sp) -/* 057190 80056590 24180002 */ li $t8, 2 -/* 057194 80056594 A0F80184 */ sb $t8, 0x184($a3) -/* 057198 80056598 ACEF0140 */ sw $t7, 0x140($a3) -.L8005659C: -/* 05719C 8005659C 820C01D8 */ lb $t4, 0x1d8($s0) -/* 0571A0 800565A0 00000000 */ nop -/* 0571A4 800565A4 158000DF */ bnez $t4, .L80056924 -/* 0571A8 800565A8 8FBF0024 */ lw $ra, 0x24($sp) -/* 0571AC 800565AC 86040000 */ lh $a0, ($s0) -/* 0571B0 800565B0 0C01C8D2 */ jal func_80072348 -/* 0571B4 800565B4 2405000F */ li $a1, 15 -/* 0571B8 800565B8 100000DA */ b .L80056924 -/* 0571BC 800565BC 8FBF0024 */ lw $ra, 0x24($sp) -glabel L800565C0 -/* 0571C0 800565C0 820D0173 */ lb $t5, 0x173($s0) -/* 0571C4 800565C4 24190001 */ li $t9, 1 -/* 0571C8 800565C8 240B012C */ li $t3, 300 -/* 0571CC 800565CC 25AEFFFF */ addiu $t6, $t5, -1 -/* 0571D0 800565D0 A2190189 */ sb $t9, 0x189($s0) -/* 0571D4 800565D4 A60B018E */ sh $t3, 0x18e($s0) -/* 0571D8 800565D8 100000D1 */ b .L80056920 -/* 0571DC 800565DC A20E0173 */ sb $t6, 0x173($s0) -glabel L800565E0 -/* 0571E0 800565E0 82180173 */ lb $t8, 0x173($s0) -/* 0571E4 800565E4 240F0002 */ li $t7, 2 -/* 0571E8 800565E8 24190258 */ li $t9, 600 -/* 0571EC 800565EC 270CFFFF */ addiu $t4, $t8, -1 -/* 0571F0 800565F0 A20F0189 */ sb $t7, 0x189($s0) -/* 0571F4 800565F4 A20C0173 */ sb $t4, 0x173($s0) -/* 0571F8 800565F8 100000C9 */ b .L80056920 -/* 0571FC 800565FC A619018E */ sh $t9, 0x18e($s0) -glabel L80056600 -/* 057200 80056600 820E0173 */ lb $t6, 0x173($s0) -/* 057204 80056604 240B0003 */ li $t3, 3 -/* 057208 80056608 240D0384 */ li $t5, 900 -/* 05720C 8005660C 25CFFFFF */ addiu $t7, $t6, -1 -/* 057210 80056610 A20B0189 */ sb $t3, 0x189($s0) -/* 057214 80056614 A60D018E */ sh $t5, 0x18e($s0) -/* 057218 80056618 100000C1 */ b .L80056920 -/* 05721C 8005661C A20F0173 */ sb $t7, 0x173($s0) -.L80056620: -glabel L80056620 -/* 057220 80056620 44803000 */ mtc1 $zero, $f6 -/* 057224 80056624 00000000 */ nop -/* 057228 80056628 E7A60064 */ swc1 $f6, 0x64($sp) -.L8005662C: -/* 05722C 8005662C 8FA40088 */ lw $a0, 0x88($sp) -/* 057230 80056630 24050162 */ li $a1, 354 -/* 057234 80056634 24060008 */ li $a2, 8 -/* 057238 80056638 24070081 */ li $a3, 129 -/* 05723C 8005663C AFA20074 */ sw $v0, 0x74($sp) -/* 057240 80056640 AFA8007C */ sw $t0, 0x7c($sp) -/* 057244 80056644 AFAA006C */ sw $t2, 0x6c($sp) -/* 057248 80056648 0C015C2E */ jal play_random_character_voice -/* 05724C 8005664C E7A00058 */ swc1 $f0, 0x58($sp) -/* 057250 80056650 C60A0038 */ lwc1 $f10, 0x38($s0) -/* 057254 80056654 C7B20064 */ lwc1 $f18, 0x64($sp) -/* 057258 80056658 8FA30088 */ lw $v1, 0x88($sp) -/* 05725C 8005665C 46125402 */ mul.s $f16, $f10, $f18 -/* 057260 80056660 C464000C */ lwc1 $f4, 0xc($v1) -/* 057264 80056664 8FA20074 */ lw $v0, 0x74($sp) -/* 057268 80056668 240F0008 */ li $t7, 8 -/* 05726C 8005666C 46102200 */ add.s $f8, $f4, $f16 -/* 057270 80056670 27A40080 */ addiu $a0, $sp, 0x80 -/* 057274 80056674 4458F800 */ cfc1 $t8, $31 -/* 057278 80056678 24050001 */ li $a1, 1 -/* 05727C 8005667C 37010003 */ ori $at, $t8, 3 -/* 057280 80056680 38210002 */ xori $at, $at, 2 -/* 057284 80056684 44C1F800 */ ctc1 $at, $31 -/* 057288 80056688 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 05728C 8005668C 460041A4 */ cvt.w.s $f6, $f8 -/* 057290 80056690 440C3000 */ mfc1 $t4, $f6 -/* 057294 80056694 44D8F800 */ ctc1 $t8, $31 -/* 057298 80056698 A7AC0082 */ sh $t4, 0x82($sp) -/* 05729C 8005669C C60A003C */ lwc1 $f10, 0x3c($s0) -/* 0572A0 800566A0 C4700010 */ lwc1 $f16, 0x10($v1) -/* 0572A4 800566A4 46125102 */ mul.s $f4, $f10, $f18 -/* 0572A8 800566A8 C60A0048 */ lwc1 $f10, 0x48($s0) -/* 0572AC 800566AC 44813000 */ mtc1 $at, $f6 -/* 0572B0 800566B0 46048200 */ add.s $f8, $f16, $f4 -/* 0572B4 800566B4 460A3402 */ mul.s $f16, $f6, $f10 -/* 0572B8 800566B8 46104100 */ add.s $f4, $f8, $f16 -/* 0572BC 800566BC 4459F800 */ cfc1 $t9, $31 -/* 0572C0 800566C0 00000000 */ nop -/* 0572C4 800566C4 37210003 */ ori $at, $t9, 3 -/* 0572C8 800566C8 38210002 */ xori $at, $at, 2 -/* 0572CC 800566CC 44C1F800 */ ctc1 $at, $31 -/* 0572D0 800566D0 00000000 */ nop -/* 0572D4 800566D4 460021A4 */ cvt.w.s $f6, $f4 -/* 0572D8 800566D8 440B3000 */ mfc1 $t3, $f6 -/* 0572DC 800566DC 44D9F800 */ ctc1 $t9, $31 -/* 0572E0 800566E0 A7AB0084 */ sh $t3, 0x84($sp) -/* 0572E4 800566E4 C60A0040 */ lwc1 $f10, 0x40($s0) -/* 0572E8 800566E8 C4700014 */ lwc1 $f16, 0x14($v1) -/* 0572EC 800566EC 46125202 */ mul.s $f8, $f10, $f18 -/* 0572F0 800566F0 A3AF0081 */ sb $t7, 0x81($sp) -/* 0572F4 800566F4 A3A20080 */ sb $v0, 0x80($sp) -/* 0572F8 800566F8 46088100 */ add.s $f4, $f16, $f8 -/* 0572FC 800566FC 444DF800 */ cfc1 $t5, $31 -/* 057300 80056700 00000000 */ nop -/* 057304 80056704 35A10003 */ ori $at, $t5, 3 -/* 057308 80056708 38210002 */ xori $at, $at, 2 -/* 05730C 8005670C 44C1F800 */ ctc1 $at, $31 -/* 057310 80056710 00000000 */ nop -/* 057314 80056714 460021A4 */ cvt.w.s $f6, $f4 -/* 057318 80056718 440E3000 */ mfc1 $t6, $f6 -/* 05731C 8005671C 44CDF800 */ ctc1 $t5, $31 -/* 057320 80056720 0C003A95 */ jal spawn_object -/* 057324 80056724 A7AE0086 */ sh $t6, 0x86($sp) -/* 057328 80056728 8FA8007C */ lw $t0, 0x7c($sp) -/* 05732C 8005672C 8FAA006C */ lw $t2, 0x6c($sp) -/* 057330 80056730 C7A00058 */ lwc1 $f0, 0x58($sp) -/* 057334 80056734 10400073 */ beqz $v0, .L80056904 -/* 057338 80056738 00000000 */ nop -/* 05733C 8005673C 8FA90088 */ lw $t1, 0x88($sp) -/* 057340 80056740 AC40003C */ sw $zero, 0x3c($v0) -/* 057344 80056744 C6120038 */ lwc1 $f18, 0x38($s0) -/* 057348 80056748 C52A001C */ lwc1 $f10, 0x1c($t1) -/* 05734C 8005674C 46009402 */ mul.s $f16, $f18, $f0 -/* 057350 80056750 24010001 */ li $at, 1 -/* 057354 80056754 46105201 */ sub.s $f8, $f10, $f16 -/* 057358 80056758 E448001C */ swc1 $f8, 0x1c($v0) -/* 05735C 8005675C C606003C */ lwc1 $f6, 0x3c($s0) -/* 057360 80056760 C5240020 */ lwc1 $f4, 0x20($t1) -/* 057364 80056764 46003482 */ mul.s $f18, $f6, $f0 -/* 057368 80056768 46122281 */ sub.s $f10, $f4, $f18 -/* 05736C 8005676C E44A0020 */ swc1 $f10, 0x20($v0) -/* 057370 80056770 C6080040 */ lwc1 $f8, 0x40($s0) -/* 057374 80056774 C5300024 */ lwc1 $f16, 0x24($t1) -/* 057378 80056778 46004182 */ mul.s $f6, $f8, $f0 -/* 05737C 8005677C 46068101 */ sub.s $f4, $f16, $f6 -/* 057380 80056780 E4440024 */ swc1 $f4, 0x24($v0) -/* 057384 80056784 85380000 */ lh $t8, ($t1) -/* 057388 80056788 00000000 */ nop -/* 05738C 8005678C A4580000 */ sh $t8, ($v0) -/* 057390 80056790 852C0002 */ lh $t4, 2($t1) -/* 057394 80056794 00000000 */ nop -/* 057398 80056798 A44C0002 */ sh $t4, 2($v0) -/* 05739C 8005679C 821901D6 */ lb $t9, 0x1d6($s0) -/* 0573A0 800567A0 00000000 */ nop -/* 0573A4 800567A4 1721000D */ bne $t9, $at, .L800567DC -/* 0573A8 800567A8 00000000 */ nop -/* 0573AC 800567AC 820B01E5 */ lb $t3, 0x1e5($s0) -/* 0573B0 800567B0 00000000 */ nop -/* 0573B4 800567B4 11600009 */ beqz $t3, .L800567DC -/* 0573B8 800567B8 00000000 */ nop -/* 0573BC 800567BC 84430002 */ lh $v1, 2($v0) -/* 0573C0 800567C0 00000000 */ nop -/* 0573C4 800567C4 2861FC01 */ slti $at, $v1, -0x3ff -/* 0573C8 800567C8 14200004 */ bnez $at, .L800567DC -/* 0573CC 800567CC 28610400 */ slti $at, $v1, 0x400 -/* 0573D0 800567D0 10200002 */ beqz $at, .L800567DC -/* 0573D4 800567D4 00000000 */ nop -/* 0573D8 800567D8 A4400002 */ sh $zero, 2($v0) -.L800567DC: -/* 0573DC 800567DC 8C430064 */ lw $v1, 0x64($v0) -/* 0573E0 800567E0 310E00FF */ andi $t6, $t0, 0xff -/* 0573E4 800567E4 AC690004 */ sw $t1, 4($v1) -/* 0573E8 800567E8 AC6A0000 */ sw $t2, ($v1) -/* 0573EC 800567EC 820D0192 */ lb $t5, 0x192($s0) -/* 0573F0 800567F0 2DC1000C */ sltiu $at, $t6, 0xc -/* 0573F4 800567F4 A06D0019 */ sb $t5, 0x19($v1) -/* 0573F8 800567F8 C612002C */ lwc1 $f18, 0x2c($s0) -/* 0573FC 800567FC A0680018 */ sb $t0, 0x18($v1) -/* 057400 80056800 46009281 */ sub.s $f10, $f18, $f0 -/* 057404 80056804 1020001F */ beqz $at, .L80056884 -/* 057408 80056808 E46A0010 */ swc1 $f10, 0x10($v1) -/* 05740C 8005680C 000E7080 */ sll $t6, $t6, 2 -/* 057410 80056810 3C01800E */ lui $at, %hi(jpt_800E6894) # $at, 0x800e -/* 057414 80056814 002E0821 */ addu $at, $at, $t6 -/* 057418 80056818 8C2E6894 */ lw $t6, %lo(jpt_800E6894)($at) -/* 05741C 8005681C 00000000 */ nop -/* 057420 80056820 01C00008 */ jr $t6 -/* 057424 80056824 00000000 */ nop -glabel L80056828 -/* 057428 80056828 240F0134 */ li $t7, 308 -/* 05742C 8005682C 10000015 */ b .L80056884 -/* 057430 80056830 A7AF003A */ sh $t7, 0x3a($sp) -glabel L80056834 -/* 057434 80056834 24180135 */ li $t8, 309 -/* 057438 80056838 10000012 */ b .L80056884 -/* 05743C 8005683C A7B8003A */ sh $t8, 0x3a($sp) -glabel L80056840 -/* 057440 80056840 240C000F */ li $t4, 15 -/* 057444 80056844 1000000F */ b .L80056884 -/* 057448 80056848 A7AC003A */ sh $t4, 0x3a($sp) -glabel L8005684C -/* 05744C 8005684C 821901D6 */ lb $t9, 0x1d6($s0) -/* 057450 80056850 24010002 */ li $at, 2 -/* 057454 80056854 13210005 */ beq $t9, $at, .L8005686C -/* 057458 80056858 240D0151 */ li $t5, 337 -/* 05745C 8005685C 44804000 */ mtc1 $zero, $f8 -/* 057460 80056860 8C4B0050 */ lw $t3, 0x50($v0) -/* 057464 80056864 00000000 */ nop -/* 057468 80056868 E5680000 */ swc1 $f8, ($t3) -.L8005686C: -/* 05746C 8005686C 10000005 */ b .L80056884 -/* 057470 80056870 A7AD003A */ sh $t5, 0x3a($sp) -glabel L80056874 -/* 057474 80056874 240E000F */ li $t6, 15 -/* 057478 80056878 10000002 */ b .L80056884 -/* 05747C 8005687C A7AE003A */ sh $t6, 0x3a($sp) -glabel L80056880 -/* 057480 80056880 A4400018 */ sh $zero, 0x18($v0) -.L80056884: -glabel L80056884 -/* 057484 80056884 97AF003A */ lhu $t7, 0x3a($sp) -/* 057488 80056888 00000000 */ nop -/* 05748C 8005688C 11E0001D */ beqz $t7, .L80056904 -/* 057490 80056890 00000000 */ nop -/* 057494 80056894 86180000 */ lh $t8, ($s0) -/* 057498 80056898 2401FFFF */ li $at, -1 -/* 05749C 8005689C 1701000A */ bne $t8, $at, .L800568C8 -/* 0574A0 800568A0 01E02025 */ move $a0, $t7 -/* 0574A4 800568A4 8D25000C */ lw $a1, 0xc($t1) -/* 0574A8 800568A8 8D260010 */ lw $a2, 0x10($t1) -/* 0574AC 800568AC 8D270014 */ lw $a3, 0x14($t1) -/* 0574B0 800568B0 240C0004 */ li $t4, 4 -/* 0574B4 800568B4 AFAC0010 */ sw $t4, 0x10($sp) -/* 0574B8 800568B8 0C002556 */ jal func_80009558 -/* 0574BC 800568BC AFA00014 */ sw $zero, 0x14($sp) -/* 0574C0 800568C0 10000011 */ b .L80056908 -/* 0574C4 800568C4 82020173 */ lb $v0, 0x173($s0) -.L800568C8: -/* 0574C8 800568C8 8E040218 */ lw $a0, 0x218($s0) -/* 0574CC 800568CC 00000000 */ nop -/* 0574D0 800568D0 10800005 */ beqz $a0, .L800568E8 -/* 0574D4 800568D4 00000000 */ nop -/* 0574D8 800568D8 0C001223 */ jal func_8000488C -/* 0574DC 800568DC 00000000 */ nop -/* 0574E0 800568E0 8FA90088 */ lw $t1, 0x88($sp) -/* 0574E4 800568E4 00000000 */ nop -.L800568E8: -/* 0574E8 800568E8 97A4003A */ lhu $a0, 0x3a($sp) -/* 0574EC 800568EC 8D25000C */ lw $a1, 0xc($t1) -/* 0574F0 800568F0 8D260010 */ lw $a2, 0x10($t1) -/* 0574F4 800568F4 8D270014 */ lw $a3, 0x14($t1) -/* 0574F8 800568F8 26190218 */ addiu $t9, $s0, 0x218 -/* 0574FC 800568FC 0C0007AA */ jal play_sound_spatial -/* 057500 80056900 AFB90010 */ sw $t9, 0x10($sp) -.L80056904: -/* 057504 80056904 82020173 */ lb $v0, 0x173($s0) -.L80056908: -/* 057508 80056908 00000000 */ nop -/* 05750C 8005690C 18400003 */ blez $v0, .L8005691C -/* 057510 80056910 244BFFFF */ addiu $t3, $v0, -1 -/* 057514 80056914 10000002 */ b .L80056920 -/* 057518 80056918 A20B0173 */ sb $t3, 0x173($s0) -.L8005691C: -/* 05751C 8005691C A2000173 */ sb $zero, 0x173($s0) -.L80056920: -/* 057520 80056920 8FBF0024 */ lw $ra, 0x24($sp) -.L80056924: -/* 057524 80056924 8FB00020 */ lw $s0, 0x20($sp) -/* 057528 80056928 03E00008 */ jr $ra -/* 05752C 8005692C 27BD0088 */ addiu $sp, $sp, 0x88 - diff --git a/asm/non_matchings/racer/func_80056E2C.s b/asm/non_matchings/racer/func_80056E2C.s deleted file mode 100644 index 59d36e2f..00000000 --- a/asm/non_matchings/racer/func_80056E2C.s +++ /dev/null @@ -1,149 +0,0 @@ -glabel func_80056E2C -/* 057A2C 80056E2C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 057A30 80056E30 AFBF0014 */ sw $ra, 0x14($sp) -/* 057A34 80056E34 80AE0175 */ lb $t6, 0x175($a1) -/* 057A38 80056E38 00A03825 */ move $a3, $a1 -/* 057A3C 80056E3C 01C67823 */ subu $t7, $t6, $a2 -/* 057A40 80056E40 A0AF0175 */ sb $t7, 0x175($a1) -/* 057A44 80056E44 80B80175 */ lb $t8, 0x175($a1) -/* 057A48 80056E48 00000000 */ nop -/* 057A4C 80056E4C 07010003 */ bgez $t8, .L80056E5C -/* 057A50 80056E50 00000000 */ nop -/* 057A54 80056E54 10000078 */ b .L80057038 -/* 057A58 80056E58 A0A00175 */ sb $zero, 0x175($a1) -.L80056E5C: -/* 057A5C 80056E5C 8CE20140 */ lw $v0, 0x140($a3) -/* 057A60 80056E60 00000000 */ nop -/* 057A64 80056E64 14400003 */ bnez $v0, .L80056E74 -/* 057A68 80056E68 00000000 */ nop -/* 057A6C 80056E6C 10000072 */ b .L80057038 -/* 057A70 80056E70 A0E00175 */ sb $zero, 0x175($a3) -.L80056E74: -/* 057A74 80056E74 C444000C */ lwc1 $f4, 0xc($v0) -/* 057A78 80056E78 C486000C */ lwc1 $f6, 0xc($a0) -/* 057A7C 80056E7C C4480014 */ lwc1 $f8, 0x14($v0) -/* 057A80 80056E80 46062381 */ sub.s $f14, $f4, $f6 -/* 057A84 80056E84 C48A0014 */ lwc1 $f10, 0x14($a0) -/* 057A88 80056E88 460E7482 */ mul.s $f18, $f14, $f14 -/* 057A8C 80056E8C 460A4401 */ sub.s $f16, $f8, $f10 -/* 057A90 80056E90 E7AE0024 */ swc1 $f14, 0x24($sp) -/* 057A94 80056E94 E7B00020 */ swc1 $f16, 0x20($sp) -/* 057A98 80056E98 46108102 */ mul.s $f4, $f16, $f16 -/* 057A9C 80056E9C AFA7002C */ sw $a3, 0x2c($sp) -/* 057AA0 80056EA0 0C0326B4 */ jal sqrtf -/* 057AA4 80056EA4 46049300 */ add.s $f12, $f18, $f4 -/* 057AA8 80056EA8 3C014316 */ li $at, 0x43160000 # 150.000000 -/* 057AAC 80056EAC 44813000 */ mtc1 $at, $f6 -/* 057AB0 80056EB0 8FA7002C */ lw $a3, 0x2c($sp) -/* 057AB4 80056EB4 4600303C */ c.lt.s $f6, $f0 -/* 057AB8 80056EB8 C7AE0024 */ lwc1 $f14, 0x24($sp) -/* 057ABC 80056EBC C7B00020 */ lwc1 $f16, 0x20($sp) -/* 057AC0 80056EC0 45000028 */ bc1f .L80056F64 -/* 057AC4 80056EC4 46000086 */ mov.s $f2, $f0 -/* 057AC8 80056EC8 3C0144FA */ li $at, 0x44FA0000 # 2000.000000 -/* 057ACC 80056ECC 44814000 */ mtc1 $at, $f8 -/* 057AD0 80056ED0 00000000 */ nop -/* 057AD4 80056ED4 4608003C */ c.lt.s $f0, $f8 -/* 057AD8 80056ED8 00000000 */ nop -/* 057ADC 80056EDC 45000021 */ bc1f .L80056F64 -/* 057AE0 80056EE0 00000000 */ nop -/* 057AE4 80056EE4 84F90000 */ lh $t9, ($a3) -/* 057AE8 80056EE8 2401FFFF */ li $at, -1 -/* 057AEC 80056EEC 13210002 */ beq $t9, $at, .L80056EF8 -/* 057AF0 80056EF0 24080003 */ li $t0, 3 -/* 057AF4 80056EF4 A0E801D3 */ sb $t0, 0x1d3($a3) -.L80056EF8: -/* 057AF8 80056EF8 90E9020C */ lbu $t1, 0x20c($a3) -/* 057AFC 80056EFC A0E00203 */ sb $zero, 0x203($a3) -/* 057B00 80056F00 11200005 */ beqz $t1, .L80056F18 -/* 057B04 80056F04 00000000 */ nop -/* 057B08 80056F08 80EA0203 */ lb $t2, 0x203($a3) -/* 057B0C 80056F0C 00000000 */ nop -/* 057B10 80056F10 354B0004 */ ori $t3, $t2, 4 -/* 057B14 80056F14 A0EB0203 */ sb $t3, 0x203($a3) -.L80056F18: -/* 057B18 80056F18 8CEC0178 */ lw $t4, 0x178($a3) -/* 057B1C 80056F1C 00000000 */ nop -/* 057B20 80056F20 15800012 */ bnez $t4, .L80056F6C -/* 057B24 80056F24 00000000 */ nop -/* 057B28 80056F28 80ED01D8 */ lb $t5, 0x1d8($a3) -/* 057B2C 80056F2C 2404013A */ li $a0, 314 -/* 057B30 80056F30 15A0000E */ bnez $t5, .L80056F6C -/* 057B34 80056F34 24E50178 */ addiu $a1, $a3, 0x178 -/* 057B38 80056F38 AFA7002C */ sw $a3, 0x2c($sp) -/* 057B3C 80056F3C E7A2001C */ swc1 $f2, 0x1c($sp) -/* 057B40 80056F40 E7AE0024 */ swc1 $f14, 0x24($sp) -/* 057B44 80056F44 0C000741 */ jal play_sound_global -/* 057B48 80056F48 E7B00020 */ swc1 $f16, 0x20($sp) -/* 057B4C 80056F4C 8FA7002C */ lw $a3, 0x2c($sp) -/* 057B50 80056F50 C7A2001C */ lwc1 $f2, 0x1c($sp) -/* 057B54 80056F54 C7AE0024 */ lwc1 $f14, 0x24($sp) -/* 057B58 80056F58 C7B00020 */ lwc1 $f16, 0x20($sp) -/* 057B5C 80056F5C 10000004 */ b .L80056F70 -/* 057B60 80056F60 8CEE0140 */ lw $t6, 0x140($a3) -.L80056F64: -/* 057B64 80056F64 10000034 */ b .L80057038 -/* 057B68 80056F68 A0E00175 */ sb $zero, 0x175($a3) -.L80056F6C: -/* 057B6C 80056F6C 8CEE0140 */ lw $t6, 0x140($a3) -.L80056F70: -/* 057B70 80056F70 46027383 */ div.s $f14, $f14, $f2 -/* 057B74 80056F74 8DC20064 */ lw $v0, 0x64($t6) -/* 057B78 80056F78 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 057B7C 80056F7C 44815800 */ mtc1 $at, $f11 -/* 057B80 80056F80 44805000 */ mtc1 $zero, $f10 -/* 057B84 80056F84 44809000 */ mtc1 $zero, $f18 -/* 057B88 80056F88 46028403 */ div.s $f16, $f16, $f2 -/* 057B8C 80056F8C C442002C */ lwc1 $f2, 0x2c($v0) -/* 057B90 80056F90 00000000 */ nop -/* 057B94 80056F94 46001087 */ neg.s $f2, $f2 -/* 057B98 80056F98 46001021 */ cvt.d.s $f0, $f2 -/* 057B9C 80056F9C 462A003C */ c.lt.d $f0, $f10 -/* 057BA0 80056FA0 00000000 */ nop -/* 057BA4 80056FA4 45000009 */ bc1f .L80056FCC -/* 057BA8 80056FA8 3C014034 */ lui $at, 0x4034 -/* 057BAC 80056FAC 80EF0195 */ lb $t7, 0x195($a3) -/* 057BB0 80056FB0 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 057BB4 80056FB4 15E00004 */ bnez $t7, .L80056FC8 -/* 057BB8 80056FB8 00000000 */ nop -/* 057BBC 80056FBC 44811000 */ mtc1 $at, $f2 -/* 057BC0 80056FC0 00000000 */ nop -/* 057BC4 80056FC4 46001021 */ cvt.d.s $f0, $f2 -.L80056FC8: -/* 057BC8 80056FC8 3C014034 */ li $at, 0x40340000 # 2.812500 -.L80056FCC: -/* 057BCC 80056FCC 44819800 */ mtc1 $at, $f19 -/* 057BD0 80056FD0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 057BD4 80056FD4 4620903C */ c.lt.d $f18, $f0 -/* 057BD8 80056FD8 00000000 */ nop -/* 057BDC 80056FDC 45000003 */ bc1f .L80056FEC -/* 057BE0 80056FE0 00000000 */ nop -/* 057BE4 80056FE4 44811000 */ mtc1 $at, $f2 -/* 057BE8 80056FE8 00000000 */ nop -.L80056FEC: -/* 057BEC 80056FEC 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 057BF0 80056FF0 44812000 */ mtc1 $at, $f4 -/* 057BF4 80056FF4 3C018012 */ lui $at, %hi(D_8011D578) # $at, 0x8012 -/* 057BF8 80056FF8 46041000 */ add.s $f0, $f2, $f4 -/* 057BFC 80056FFC 460E0182 */ mul.s $f6, $f0, $f14 -/* 057C00 80057000 00000000 */ nop -/* 057C04 80057004 46100202 */ mul.s $f8, $f0, $f16 -/* 057C08 80057008 E426D578 */ swc1 $f6, %lo(D_8011D578)($at) -/* 057C0C 8005700C 3C018012 */ lui $at, %hi(D_8011D57C) # $at, 0x8012 -/* 057C10 80057010 E428D57C */ swc1 $f8, %lo(D_8011D57C)($at) -/* 057C14 80057014 8458018E */ lh $t8, 0x18e($v0) -/* 057C18 80057018 00000000 */ nop -/* 057C1C 8005701C 13000006 */ beqz $t8, .L80057038 -/* 057C20 80057020 00000000 */ nop -/* 057C24 80057024 80F90195 */ lb $t9, 0x195($a3) -/* 057C28 80057028 00000000 */ nop -/* 057C2C 8005702C 17200003 */ bnez $t9, .L8005703C -/* 057C30 80057030 8FBF0014 */ lw $ra, 0x14($sp) -/* 057C34 80057034 A0E00175 */ sb $zero, 0x175($a3) -.L80057038: -/* 057C38 80057038 8FBF0014 */ lw $ra, 0x14($sp) -.L8005703C: -/* 057C3C 8005703C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 057C40 80057040 03E00008 */ jr $ra -/* 057C44 80057044 00000000 */ nop - diff --git a/asm/non_matchings/racer/func_8005B818.s b/asm/non_matchings/racer/func_8005B818.s index 49777b48..d3a1271c 100644 --- a/asm/non_matchings/racer/func_8005B818.s +++ b/asm/non_matchings/racer/func_8005B818.s @@ -625,7 +625,7 @@ glabel func_8005B818 /* 05CD08 8005C108 02202825 */ move $a1, $s1 /* 05CD0C 8005C10C 8FA60130 */ lw $a2, 0x130($sp) /* 05CD10 8005C110 02602025 */ move $a0, $s3 -/* 05CD14 8005C114 0C0157B0 */ jal func_80055EC0 +/* 05CD14 8005C114 0C0157B0 */ jal handle_racer_items /* 05CD18 8005C118 02202825 */ move $a1, $s1 /* 05CD1C 8005C11C A22001E5 */ sb $zero, 0x1e5($s1) /* 05CD20 8005C120 C664000C */ lwc1 $f4, 0xc($s3) diff --git a/asm/non_matchings/unknown_0255E0/func_80027568.s b/asm/non_matchings/unknown_0255E0/func_80027568.s index d34196df..784b7724 100644 --- a/asm/non_matchings/unknown_0255E0/func_80027568.s +++ b/asm/non_matchings/unknown_0255E0/func_80027568.s @@ -47,7 +47,7 @@ glabel func_80027568 /* 0281F8 800275F8 100000AC */ b .L800278AC /* 0281FC 800275FC 00001025 */ move $v0, $zero .L80027600: -/* 028200 80027600 0C019888 */ jal get_object_render_stack_pos +/* 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) diff --git a/asm/non_matchings/unknown_0255E0/func_80028CD0.s b/asm/non_matchings/unknown_0255E0/func_80028CD0.s deleted file mode 100644 index a38a2f3a..00000000 --- a/asm/non_matchings/unknown_0255E0/func_80028CD0.s +++ /dev/null @@ -1,188 +0,0 @@ -glabel func_80028CD0 -/* 0298D0 80028CD0 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0298D4 80028CD4 AFBF001C */ sw $ra, 0x1c($sp) -/* 0298D8 80028CD8 0C01A748 */ jal func_80069D20 -/* 0298DC 80028CDC AFA40048 */ sw $a0, 0x48($sp) -/* 0298E0 80028CE0 3C018012 */ lui $at, %hi(D_8011B0B0) # $at, 0x8012 -/* 0298E4 80028CE4 0C019888 */ jal get_object_render_stack_pos -/* 0298E8 80028CE8 AC22B0B0 */ sw $v0, %lo(D_8011B0B0)($at) -/* 0298EC 80028CEC 0C00C406 */ jal func_80031018 -/* 0298F0 80028CF0 AFA2003C */ sw $v0, 0x3c($sp) -/* 0298F4 80028CF4 3C028012 */ lui $v0, %hi(D_8011D468) # $v0, 0x8012 -/* 0298F8 80028CF8 2442D468 */ addiu $v0, %lo(D_8011D468) # addiu $v0, $v0, -0x2b98 -/* 0298FC 80028CFC 8C580008 */ lw $t8, 8($v0) -/* 029900 80028D00 8C4E0000 */ lw $t6, ($v0) -/* 029904 80028D04 44988000 */ mtc1 $t8, $f16 -/* 029908 80028D08 448E2000 */ mtc1 $t6, $f4 -/* 02990C 80028D0C 468084A0 */ cvt.s.w $f18, $f16 -/* 029910 80028D10 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 029914 80028D14 44810000 */ mtc1 $at, $f0 -/* 029918 80028D18 468021A0 */ cvt.s.w $f6, $f4 -/* 02991C 80028D1C 8C4F0004 */ lw $t7, 4($v0) -/* 029920 80028D20 46009103 */ div.s $f4, $f18, $f0 -/* 029924 80028D24 448F4000 */ mtc1 $t7, $f8 -/* 029928 80028D28 00000000 */ nop -/* 02992C 80028D2C 468042A0 */ cvt.s.w $f10, $f8 -/* 029930 80028D30 44062000 */ mfc1 $a2, $f4 -/* 029934 80028D34 46005383 */ div.s $f14, $f10, $f0 -/* 029938 80028D38 0C007578 */ jal set_and_normalize_D_8011AFE8 -/* 02993C 80028D3C 46003303 */ div.s $f12, $f6, $f0 -/* 029940 80028D40 3C038012 */ lui $v1, %hi(D_8011B0B0) # $v1, 0x8012 -/* 029944 80028D44 8C63B0B0 */ lw $v1, %lo(D_8011B0B0)($v1) -/* 029948 80028D48 8FA7003C */ lw $a3, 0x3c($sp) -/* 02994C 80028D4C 84620034 */ lh $v0, 0x34($v1) -/* 029950 80028D50 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e -/* 029954 80028D54 0440000E */ bltz $v0, .L80028D90 -/* 029958 80028D58 3C0E8012 */ lui $t6, %hi(D_8011D384) # $t6, 0x8012 -/* 02995C 80028D5C 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0) -/* 029960 80028D60 00025100 */ sll $t2, $v0, 4 -/* 029964 80028D64 8499001A */ lh $t9, 0x1a($a0) -/* 029968 80028D68 01425021 */ addu $t2, $t2, $v0 -/* 02996C 80028D6C 0059082A */ slt $at, $v0, $t9 -/* 029970 80028D70 10200007 */ beqz $at, .L80028D90 -/* 029974 80028D74 000A5080 */ sll $t2, $t2, 2 -/* 029978 80028D78 8C890004 */ lw $t1, 4($a0) -/* 02997C 80028D7C 3C018012 */ lui $at, %hi(D_8011B0D4) # $at, 0x8012 -/* 029980 80028D80 012A5821 */ addu $t3, $t1, $t2 -/* 029984 80028D84 856C0028 */ lh $t4, 0x28($t3) -/* 029988 80028D88 10000004 */ b .L80028D9C -/* 02998C 80028D8C AC2CB0D4 */ sw $t4, %lo(D_8011B0D4)($at) -.L80028D90: -/* 029990 80028D90 240DFFFF */ li $t5, -1 -/* 029994 80028D94 3C018012 */ lui $at, %hi(D_8011B0D4) # $at, 0x8012 -/* 029998 80028D98 AC2DB0D4 */ sw $t5, %lo(D_8011B0D4)($at) -.L80028D9C: -/* 02999C 80028D9C C466000C */ lwc1 $f6, 0xc($v1) -/* 0299A0 80028DA0 3C018012 */ lui $at, %hi(D_8011D314) # $at, 0x8012 -/* 0299A4 80028DA4 E426D314 */ swc1 $f6, %lo(D_8011D314)($at) -/* 0299A8 80028DA8 C4680010 */ lwc1 $f8, 0x10($v1) -/* 0299AC 80028DAC 3C018012 */ lui $at, %hi(D_8011D318) # $at, 0x8012 -/* 0299B0 80028DB0 E428D318 */ swc1 $f8, %lo(D_8011D318)($at) -/* 0299B4 80028DB4 C46A0014 */ lwc1 $f10, 0x14($v1) -/* 0299B8 80028DB8 8DCED384 */ lw $t6, %lo(D_8011D384)($t6) -/* 0299BC 80028DBC 3C018012 */ lui $at, %hi(D_8011D31C) # $at, 0x8012 -/* 0299C0 80028DC0 11C0006E */ beqz $t6, .L80028F7C -/* 0299C4 80028DC4 E42AD31C */ swc1 $f10, %lo(D_8011D31C)($at) -/* 0299C8 80028DC8 0C02E2E3 */ jal func_800B8B8C -/* 0299CC 80028DCC AFA7003C */ sw $a3, 0x3c($sp) -/* 0299D0 80028DD0 0C006E9D */ jal get_racer_objects -/* 0299D4 80028DD4 27A40040 */ addiu $a0, $sp, 0x40 -/* 0299D8 80028DD8 3C0F8012 */ lui $t7, %hi(D_8011B0B0) # $t7, 0x8012 -/* 0299DC 80028DDC 8DEFB0B0 */ lw $t7, %lo(D_8011B0B0)($t7) -/* 0299E0 80028DE0 8FA7003C */ lw $a3, 0x3c($sp) -/* 0299E4 80028DE4 85F80036 */ lh $t8, 0x36($t7) -/* 0299E8 80028DE8 24010007 */ li $at, 7 -/* 0299EC 80028DEC 1301003F */ beq $t8, $at, .L80028EEC -/* 0299F0 80028DF0 00000000 */ nop -/* 0299F4 80028DF4 8FB90040 */ lw $t9, 0x40($sp) -/* 0299F8 80028DF8 00000000 */ nop -/* 0299FC 80028DFC 1B20003B */ blez $t9, .L80028EEC -/* 029A00 80028E00 00000000 */ nop -/* 029A04 80028E04 AFA20038 */ sw $v0, 0x38($sp) -/* 029A08 80028E08 0C019944 */ jal check_if_showing_cutscene_camera -/* 029A0C 80028E0C AFA7003C */ sw $a3, 0x3c($sp) -/* 029A10 80028E10 8FA40038 */ lw $a0, 0x38($sp) -/* 029A14 80028E14 8FA7003C */ lw $a3, 0x3c($sp) -/* 029A18 80028E18 14400034 */ bnez $v0, .L80028EEC -/* 029A1C 80028E1C 2483FFFC */ addiu $v1, $a0, -4 -/* 029A20 80028E20 8FA50040 */ lw $a1, 0x40($sp) -/* 029A24 80028E24 2402FFFF */ li $v0, -1 -/* 029A28 80028E28 24A5FFFF */ addiu $a1, $a1, -1 -.L80028E2C: -/* 029A2C 80028E2C 8C690004 */ lw $t1, 4($v1) -/* 029A30 80028E30 24420001 */ addiu $v0, $v0, 1 -/* 029A34 80028E34 0045082A */ slt $at, $v0, $a1 -/* 029A38 80028E38 8D240064 */ lw $a0, 0x64($t1) -/* 029A3C 80028E3C 10200005 */ beqz $at, .L80028E54 -/* 029A40 80028E40 24630004 */ addiu $v1, $v1, 4 -/* 029A44 80028E44 848A0000 */ lh $t2, ($a0) -/* 029A48 80028E48 00000000 */ nop -/* 029A4C 80028E4C 14EAFFF7 */ bne $a3, $t2, .L80028E2C -/* 029A50 80028E50 00000000 */ nop -.L80028E54: -/* 029A54 80028E54 0C019888 */ jal get_object_render_stack_pos -/* 029A58 80028E58 AFA30028 */ sw $v1, 0x28($sp) -/* 029A5C 80028E5C 8FA30028 */ lw $v1, 0x28($sp) -/* 029A60 80028E60 444BF800 */ cfc1 $t3, $31 -/* 029A64 80028E64 8C680000 */ lw $t0, ($v1) -/* 029A68 80028E68 35610003 */ ori $at, $t3, 3 -/* 029A6C 80028E6C 38210002 */ xori $at, $at, 2 -/* 029A70 80028E70 44C1F800 */ ctc1 $at, $31 -/* 029A74 80028E74 C510000C */ lwc1 $f16, 0xc($t0) -/* 029A78 80028E78 C5040010 */ lwc1 $f4, 0x10($t0) -/* 029A7C 80028E7C 460084A4 */ cvt.w.s $f18, $f16 -/* 029A80 80028E80 C5080014 */ lwc1 $f8, 0x14($t0) -/* 029A84 80028E84 44CBF800 */ ctc1 $t3, $31 -/* 029A88 80028E88 8FAE0048 */ lw $t6, 0x48($sp) -/* 029A8C 80028E8C 44049000 */ mfc1 $a0, $f18 -/* 029A90 80028E90 444CF800 */ cfc1 $t4, $31 -/* 029A94 80028E94 00403825 */ move $a3, $v0 -/* 029A98 80028E98 35810003 */ ori $at, $t4, 3 -/* 029A9C 80028E9C 38210002 */ xori $at, $at, 2 -/* 029AA0 80028EA0 44C1F800 */ ctc1 $at, $31 -/* 029AA4 80028EA4 AFAE0010 */ sw $t6, 0x10($sp) -/* 029AA8 80028EA8 460021A4 */ cvt.w.s $f6, $f4 -/* 029AAC 80028EAC 44CCF800 */ ctc1 $t4, $31 -/* 029AB0 80028EB0 44053000 */ mfc1 $a1, $f6 -/* 029AB4 80028EB4 00000000 */ nop -/* 029AB8 80028EB8 444DF800 */ cfc1 $t5, $31 -/* 029ABC 80028EBC 00000000 */ nop -/* 029AC0 80028EC0 35A10003 */ ori $at, $t5, 3 -/* 029AC4 80028EC4 38210002 */ xori $at, $at, 2 -/* 029AC8 80028EC8 44C1F800 */ ctc1 $at, $31 -/* 029ACC 80028ECC 00000000 */ nop -/* 029AD0 80028ED0 460042A4 */ cvt.w.s $f10, $f8 -/* 029AD4 80028ED4 44065000 */ mfc1 $a2, $f10 -/* 029AD8 80028ED8 44CDF800 */ ctc1 $t5, $31 -/* 029ADC 80028EDC 0C02E301 */ jal func_800B8C04 -/* 029AE0 80028EE0 00000000 */ nop -/* 029AE4 80028EE4 10000025 */ b .L80028F7C -/* 029AE8 80028EE8 00000000 */ nop -.L80028EEC: -/* 029AEC 80028EEC 0C019888 */ jal get_object_render_stack_pos -/* 029AF0 80028EF0 00000000 */ nop -/* 029AF4 80028EF4 444FF800 */ cfc1 $t7, $31 -/* 029AF8 80028EF8 3C038012 */ lui $v1, %hi(D_8011B0B0) # $v1, 0x8012 -/* 029AFC 80028EFC 8C63B0B0 */ lw $v1, %lo(D_8011B0B0)($v1) -/* 029B00 80028F00 35E10003 */ ori $at, $t7, 3 -/* 029B04 80028F04 38210002 */ xori $at, $at, 2 -/* 029B08 80028F08 44C1F800 */ ctc1 $at, $31 -/* 029B0C 80028F0C C470000C */ lwc1 $f16, 0xc($v1) -/* 029B10 80028F10 C4640010 */ lwc1 $f4, 0x10($v1) -/* 029B14 80028F14 460084A4 */ cvt.w.s $f18, $f16 -/* 029B18 80028F18 C4680014 */ lwc1 $f8, 0x14($v1) -/* 029B1C 80028F1C 44CFF800 */ ctc1 $t7, $31 -/* 029B20 80028F20 8FA90048 */ lw $t1, 0x48($sp) -/* 029B24 80028F24 44049000 */ mfc1 $a0, $f18 -/* 029B28 80028F28 4458F800 */ cfc1 $t8, $31 -/* 029B2C 80028F2C 00403825 */ move $a3, $v0 -/* 029B30 80028F30 37010003 */ ori $at, $t8, 3 -/* 029B34 80028F34 38210002 */ xori $at, $at, 2 -/* 029B38 80028F38 44C1F800 */ ctc1 $at, $31 -/* 029B3C 80028F3C AFA90010 */ sw $t1, 0x10($sp) -/* 029B40 80028F40 460021A4 */ cvt.w.s $f6, $f4 -/* 029B44 80028F44 44D8F800 */ ctc1 $t8, $31 -/* 029B48 80028F48 44053000 */ mfc1 $a1, $f6 -/* 029B4C 80028F4C 00000000 */ nop -/* 029B50 80028F50 4459F800 */ cfc1 $t9, $31 -/* 029B54 80028F54 00000000 */ nop -/* 029B58 80028F58 37210003 */ ori $at, $t9, 3 -/* 029B5C 80028F5C 38210002 */ xori $at, $at, 2 -/* 029B60 80028F60 44C1F800 */ ctc1 $at, $31 -/* 029B64 80028F64 00000000 */ nop -/* 029B68 80028F68 460042A4 */ cvt.w.s $f10, $f8 -/* 029B6C 80028F6C 44065000 */ mfc1 $a2, $f10 -/* 029B70 80028F70 44D9F800 */ ctc1 $t9, $31 -/* 029B74 80028F74 0C02E301 */ jal func_800B8C04 -/* 029B78 80028F78 00000000 */ nop -.L80028F7C: -/* 029B7C 80028F7C 0C01AF6C */ jal get_current_level_header -/* 029B80 80028F80 00000000 */ nop -/* 029B84 80028F84 240A0001 */ li $t2, 1 -/* 029B88 80028F88 0C00A3EB */ jal render_level_geometry_and_objects -/* 029B8C 80028F8C A04A0003 */ sb $t2, 3($v0) -/* 029B90 80028F90 8FBF001C */ lw $ra, 0x1c($sp) -/* 029B94 80028F94 27BD0048 */ addiu $sp, $sp, 0x48 -/* 029B98 80028F98 03E00008 */ jr $ra -/* 029B9C 80028F9C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_8003FC44.s b/asm/non_matchings/unknown_032760/func_8003FC44.s deleted file mode 100644 index d3e2321a..00000000 --- a/asm/non_matchings/unknown_032760/func_8003FC44.s +++ /dev/null @@ -1,77 +0,0 @@ -glabel func_8003FC44 -/* 040844 8003FC44 444EF800 */ cfc1 $t6, $31 -/* 040848 8003FC48 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 04084C 8003FC4C 35C10003 */ ori $at, $t6, 3 -/* 040850 8003FC50 E7AC0030 */ swc1 $f12, 0x30($sp) -/* 040854 8003FC54 38210002 */ xori $at, $at, 2 -/* 040858 8003FC58 44C1F800 */ ctc1 $at, $31 -/* 04085C 8003FC5C C7A40030 */ lwc1 $f4, 0x30($sp) -/* 040860 8003FC60 E7AE0034 */ swc1 $f14, 0x34($sp) -/* 040864 8003FC64 460021A4 */ cvt.w.s $f6, $f4 -/* 040868 8003FC68 C7A80034 */ lwc1 $f8, 0x34($sp) -/* 04086C 8003FC6C 44CEF800 */ ctc1 $t6, $31 -/* 040870 8003FC70 AFA60038 */ sw $a2, 0x38($sp) -/* 040874 8003FC74 C7B00038 */ lwc1 $f16, 0x38($sp) -/* 040878 8003FC78 4458F800 */ cfc1 $t8, $31 -/* 04087C 8003FC7C 440F3000 */ mfc1 $t7, $f6 -/* 040880 8003FC80 37010003 */ ori $at, $t8, 3 -/* 040884 8003FC84 38210002 */ xori $at, $at, 2 -/* 040888 8003FC88 44C1F800 */ ctc1 $at, $31 -/* 04088C 8003FC8C 8FAE0048 */ lw $t6, 0x48($sp) -/* 040890 8003FC90 460042A4 */ cvt.w.s $f10, $f8 -/* 040894 8003FC94 AFBF001C */ sw $ra, 0x1c($sp) -/* 040898 8003FC98 44D8F800 */ ctc1 $t8, $31 -/* 04089C 8003FC9C 44095000 */ mfc1 $t1, $f10 -/* 0408A0 8003FCA0 240D000A */ li $t5, 10 -/* 0408A4 8003FCA4 444BF800 */ cfc1 $t3, $31 -/* 0408A8 8003FCA8 252A0024 */ addiu $t2, $t1, 0x24 -/* 0408AC 8003FCAC 35610003 */ ori $at, $t3, 3 -/* 0408B0 8003FCB0 38210002 */ xori $at, $at, 2 -/* 0408B4 8003FCB4 44C1F800 */ ctc1 $at, $31 -/* 0408B8 8003FCB8 A7AA0028 */ sh $t2, 0x28($sp) -/* 0408BC 8003FCBC 460084A4 */ cvt.w.s $f18, $f16 -/* 0408C0 8003FCC0 A3AD0025 */ sb $t5, 0x25($sp) -/* 0408C4 8003FCC4 440C9000 */ mfc1 $t4, $f18 -/* 0408C8 8003FCC8 44CBF800 */ ctc1 $t3, $31 -/* 0408CC 8003FCCC A3A70024 */ sb $a3, 0x24($sp) -/* 0408D0 8003FCD0 27A40024 */ addiu $a0, $sp, 0x24 -/* 0408D4 8003FCD4 24050001 */ li $a1, 1 -/* 0408D8 8003FCD8 A7AF0026 */ sh $t7, 0x26($sp) -/* 0408DC 8003FCDC A3AE002C */ sb $t6, 0x2c($sp) -/* 0408E0 8003FCE0 0C003A95 */ jal spawn_object -/* 0408E4 8003FCE4 A7AC002A */ sh $t4, 0x2a($sp) -/* 0408E8 8003FCE8 10400011 */ beqz $v0, .L8003FD30 -/* 0408EC 8003FCEC 3C01400C */ li $at, 0x400C0000 # 2.187500 -/* 0408F0 8003FCF0 44800000 */ mtc1 $zero, $f0 -/* 0408F4 8003FCF4 C4440008 */ lwc1 $f4, 8($v0) -/* 0408F8 8003FCF8 44814800 */ mtc1 $at, $f9 -/* 0408FC 8003FCFC 44804000 */ mtc1 $zero, $f8 -/* 040900 8003FD00 460021A1 */ cvt.d.s $f6, $f4 -/* 040904 8003FD04 46283282 */ mul.d $f10, $f6, $f8 -/* 040908 8003FD08 AC40003C */ sw $zero, 0x3c($v0) -/* 04090C 8003FD0C E440001C */ swc1 $f0, 0x1c($v0) -/* 040910 8003FD10 E4400020 */ swc1 $f0, 0x20($v0) -/* 040914 8003FD14 E4400024 */ swc1 $f0, 0x24($v0) -/* 040918 8003FD18 C7B00044 */ lwc1 $f16, 0x44($sp) -/* 04091C 8003FD1C 00000000 */ nop -/* 040920 8003FD20 460084A1 */ cvt.d.s $f18, $f16 -/* 040924 8003FD24 46325102 */ mul.d $f4, $f10, $f18 -/* 040928 8003FD28 462021A0 */ cvt.s.d $f6, $f4 -/* 04092C 8003FD2C E4460008 */ swc1 $f6, 8($v0) -.L8003FD30: -/* 040930 8003FD30 8FA20040 */ lw $v0, 0x40($sp) -/* 040934 8003FD34 8FA50030 */ lw $a1, 0x30($sp) -/* 040938 8003FD38 10400007 */ beqz $v0, .L8003FD58 -/* 04093C 8003FD3C 3044FFFF */ andi $a0, $v0, 0xffff -/* 040940 8003FD40 8FA60034 */ lw $a2, 0x34($sp) -/* 040944 8003FD44 8FA70038 */ lw $a3, 0x38($sp) -/* 040948 8003FD48 240F0004 */ li $t7, 4 -/* 04094C 8003FD4C AFAF0010 */ sw $t7, 0x10($sp) -/* 040950 8003FD50 0C002556 */ jal func_80009558 -/* 040954 8003FD54 AFA00014 */ sw $zero, 0x14($sp) -.L8003FD58: -/* 040958 8003FD58 8FBF001C */ lw $ra, 0x1c($sp) -/* 04095C 8003FD5C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 040960 8003FD60 03E00008 */ jr $ra -/* 040964 8003FD64 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/obj_loop_bombexplosion.s b/asm/non_matchings/unknown_032760/obj_loop_bombexplosion.s deleted file mode 100644 index bf70385d..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_bombexplosion.s +++ /dev/null @@ -1,97 +0,0 @@ -glabel obj_loop_bombexplosion -/* 0397F4 80038BF4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0397F8 80038BF8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0397FC 80038BFC AFB00028 */ sw $s0, 0x28($sp) -/* 039800 80038C00 8C8E0078 */ lw $t6, 0x78($a0) -/* 039804 80038C04 8C88007C */ lw $t0, 0x7c($a0) -/* 039808 80038C08 01C51021 */ addu $v0, $t6, $a1 -/* 03980C 80038C0C 2841000B */ slti $at, $v0, 0xb -/* 039810 80038C10 00081A03 */ sra $v1, $t0, 8 -/* 039814 80038C14 00808025 */ move $s0, $a0 -/* 039818 80038C18 AC820078 */ sw $v0, 0x78($a0) -/* 03981C 80038C1C 14200012 */ bnez $at, .L80038C68 -/* 039820 80038C20 307800FF */ andi $t8, $v1, 0xff -/* 039824 80038C24 13000010 */ beqz $t8, .L80038C68 -/* 039828 80038C28 0018CA00 */ sll $t9, $t8, 8 -/* 03982C 80038C2C 01194826 */ xor $t1, $t0, $t9 -/* 039830 80038C30 C48C000C */ lwc1 $f12, 0xc($a0) -/* 039834 80038C34 C48E0010 */ lwc1 $f14, 0x10($a0) -/* 039838 80038C38 8C860014 */ lw $a2, 0x14($a0) -/* 03983C 80038C3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 039840 80038C40 44812000 */ mtc1 $at, $f4 -/* 039844 80038C44 AC89007C */ sw $t1, 0x7c($a0) -/* 039848 80038C48 270AFFFF */ addiu $t2, $t8, -1 -/* 03984C 80038C4C AFAA0018 */ sw $t2, 0x18($sp) -/* 039850 80038C50 AFA00010 */ sw $zero, 0x10($sp) -/* 039854 80038C54 2407002C */ li $a3, 44 -/* 039858 80038C58 0C00FF11 */ jal func_8003FC44 -/* 03985C 80038C5C E7A40014 */ swc1 $f4, 0x14($sp) -/* 039860 80038C60 8E020078 */ lw $v0, 0x78($s0) -/* 039864 80038C64 00000000 */ nop -.L80038C68: -/* 039868 80038C68 28410014 */ slti $at, $v0, 0x14 -/* 03986C 80038C6C 10200013 */ beqz $at, .L80038CBC -/* 039870 80038C70 28410028 */ slti $at, $v0, 0x28 -/* 039874 80038C74 44823000 */ mtc1 $v0, $f6 -/* 039878 80038C78 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 03987C 80038C7C 46803220 */ cvt.s.w $f8, $f6 -/* 039880 80038C80 44815000 */ mtc1 $at, $f10 -/* 039884 80038C84 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 039888 80038C88 460A4403 */ div.s $f16, $f8, $f10 -/* 03988C 80038C8C 44819000 */ mtc1 $at, $f18 -/* 039890 80038C90 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 039894 80038C94 44813000 */ mtc1 $at, $f6 -/* 039898 80038C98 8E0B007C */ lw $t3, 0x7c($s0) -/* 03989C 80038C9C 00000000 */ nop -/* 0398A0 80038CA0 356C00FF */ ori $t4, $t3, 0xff -/* 0398A4 80038CA4 AE0C007C */ sw $t4, 0x7c($s0) -/* 0398A8 80038CA8 46128102 */ mul.s $f4, $f16, $f18 -/* 0398AC 80038CAC 46062200 */ add.s $f8, $f4, $f6 -/* 0398B0 80038CB0 10000019 */ b .L80038D18 -/* 0398B4 80038CB4 E6080008 */ swc1 $f8, 8($s0) -/* 0398B8 80038CB8 28410028 */ slti $at, $v0, 0x28 -.L80038CBC: -/* 0398BC 80038CBC 10200014 */ beqz $at, .L80038D10 -/* 0398C0 80038CC0 244DFFEC */ addiu $t5, $v0, -0x14 -/* 0398C4 80038CC4 448D5000 */ mtc1 $t5, $f10 -/* 0398C8 80038CC8 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 0398CC 80038CCC 46805420 */ cvt.s.w $f16, $f10 -/* 0398D0 80038CD0 44819000 */ mtc1 $at, $f18 -/* 0398D4 80038CD4 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 0398D8 80038CD8 46128103 */ div.s $f4, $f16, $f18 -/* 0398DC 80038CDC 44813000 */ mtc1 $at, $f6 -/* 0398E0 80038CE0 3C014128 */ li $at, 0x41280000 # 10.500000 -/* 0398E4 80038CE4 00027080 */ sll $t6, $v0, 2 -/* 0398E8 80038CE8 44815000 */ mtc1 $at, $f10 -/* 0398EC 80038CEC 01C27023 */ subu $t6, $t6, $v0 -/* 0398F0 80038CF0 000E7080 */ sll $t6, $t6, 2 -/* 0398F4 80038CF4 240F01EF */ li $t7, 495 -/* 0398F8 80038CF8 01EEC023 */ subu $t8, $t7, $t6 -/* 0398FC 80038CFC AE18007C */ sw $t8, 0x7c($s0) -/* 039900 80038D00 46062202 */ mul.s $f8, $f4, $f6 -/* 039904 80038D04 460A4400 */ add.s $f16, $f8, $f10 -/* 039908 80038D08 10000003 */ b .L80038D18 -/* 03990C 80038D0C E6100008 */ swc1 $f16, 8($s0) -.L80038D10: -/* 039910 80038D10 0C003FEE */ jal gParticlePtrList_addObject -/* 039914 80038D14 02002025 */ move $a0, $s0 -.L80038D18: -/* 039918 80038D18 8E190074 */ lw $t9, 0x74($s0) -/* 03991C 80038D1C 00000000 */ nop -/* 039920 80038D20 1320000A */ beqz $t9, .L80038D4C -/* 039924 80038D24 8FBF002C */ lw $ra, 0x2c($sp) -/* 039928 80038D28 0C0270F2 */ jal get_number_of_active_players -/* 03992C 80038D2C 00000000 */ nop -/* 039930 80038D30 28410002 */ slti $at, $v0, 2 -/* 039934 80038D34 10200004 */ beqz $at, .L80038D48 -/* 039938 80038D38 02002025 */ move $a0, $s0 -/* 03993C 80038D3C 0C02BF0F */ jal func_800AFC3C -/* 039940 80038D40 24050002 */ li $a1, 2 -/* 039944 80038D44 AE000074 */ sw $zero, 0x74($s0) -.L80038D48: -/* 039948 80038D48 8FBF002C */ lw $ra, 0x2c($sp) -.L80038D4C: -/* 03994C 80038D4C 8FB00028 */ lw $s0, 0x28($sp) -/* 039950 80038D50 03E00008 */ jr $ra -/* 039954 80038D54 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_collectegg.s b/asm/non_matchings/unknown_032760/obj_loop_collectegg.s deleted file mode 100644 index d9f6be4c..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_collectegg.s +++ /dev/null @@ -1,278 +0,0 @@ -.late_rodata -glabel D_800E6010 -.double 1.2 -glabel D_800E6018 -.double 0.98 -glabel D_800E6020 -.double 0.95 - -.text -glabel obj_loop_collectegg -/* 035E60 80035260 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 035E64 80035264 44852000 */ mtc1 $a1, $f4 -/* 035E68 80035268 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 035E6C 8003526C 468020A0 */ cvt.s.w $f2, $f4 -/* 035E70 80035270 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 035E74 80035274 AFBF0024 */ sw $ra, 0x24($sp) -/* 035E78 80035278 AFB10020 */ sw $s1, 0x20($sp) -/* 035E7C 8003527C AFB0001C */ sw $s0, 0x1c($sp) -/* 035E80 80035280 8C910064 */ lw $s1, 0x64($a0) -/* 035E84 80035284 00808025 */ move $s0, $a0 -/* 035E88 80035288 15C00007 */ bnez $t6, .L800352A8 -/* 035E8C 8003528C 46001006 */ mov.s $f0, $f2 -/* 035E90 80035290 3C01800E */ lui $at, %hi(D_800E6010 + 4) # $at, 0x800e -/* 035E94 80035294 C4296010 */ lwc1 $f9, %lo(D_800E6010)($at) -/* 035E98 80035298 C4286014 */ lwc1 $f8, %lo(D_800E6010 + 4)($at) -/* 035E9C 8003529C 460011A1 */ cvt.d.s $f6, $f2 -/* 035EA0 800352A0 46283282 */ mul.d $f10, $f6, $f8 -/* 035EA4 800352A4 46205020 */ cvt.s.d $f0, $f10 -.L800352A8: -/* 035EA8 800352A8 8222000B */ lb $v0, 0xb($s1) -/* 035EAC 800352AC 24010002 */ li $at, 2 -/* 035EB0 800352B0 1040000A */ beqz $v0, .L800352DC -/* 035EB4 800352B4 02002025 */ move $a0, $s0 -/* 035EB8 800352B8 1041000C */ beq $v0, $at, .L800352EC -/* 035EBC 800352BC 24040001 */ li $a0, 1 -/* 035EC0 800352C0 24010003 */ li $at, 3 -/* 035EC4 800352C4 1041009D */ beq $v0, $at, .L8003553C -/* 035EC8 800352C8 24010004 */ li $at, 4 -/* 035ECC 800352CC 104100C9 */ beq $v0, $at, .L800355F4 -/* 035ED0 800352D0 00000000 */ nop -/* 035ED4 800352D4 100000D6 */ b .L80035630 -/* 035ED8 800352D8 8FBF0024 */ lw $ra, 0x24($sp) -.L800352DC: -/* 035EDC 800352DC 0C00D810 */ jal func_80036040 -/* 035EE0 800352E0 02202825 */ move $a1, $s1 -/* 035EE4 800352E4 100000D2 */ b .L80035630 -/* 035EE8 800352E8 8FBF0024 */ lw $ra, 0x24($sp) -.L800352EC: -/* 035EEC 800352EC C612001C */ lwc1 $f18, 0x1c($s0) -/* 035EF0 800352F0 860F0006 */ lh $t7, 6($s0) -/* 035EF4 800352F4 46009102 */ mul.s $f4, $f18, $f0 -/* 035EF8 800352F8 C610000C */ lwc1 $f16, 0xc($s0) -/* 035EFC 800352FC 31F8BFFF */ andi $t8, $t7, 0xbfff -/* 035F00 80035300 A6180006 */ sh $t8, 6($s0) -/* 035F04 80035304 46048180 */ add.s $f6, $f16, $f4 -/* 035F08 80035308 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 035F0C 8003530C E7A60040 */ swc1 $f6, 0x40($sp) -/* 035F10 80035310 C60A0020 */ lwc1 $f10, 0x20($s0) -/* 035F14 80035314 C6080010 */ lwc1 $f8, 0x10($s0) -/* 035F18 80035318 46005482 */ mul.s $f18, $f10, $f0 -/* 035F1C 8003531C 2605000C */ addiu $a1, $s0, 0xc -/* 035F20 80035320 27A60040 */ addiu $a2, $sp, 0x40 -/* 035F24 80035324 2407FFFF */ li $a3, -1 -/* 035F28 80035328 46124400 */ add.s $f16, $f8, $f18 -/* 035F2C 8003532C 44819000 */ mtc1 $at, $f18 -/* 035F30 80035330 E7B00044 */ swc1 $f16, 0x44($sp) -/* 035F34 80035334 C6060024 */ lwc1 $f6, 0x24($s0) -/* 035F38 80035338 C6040014 */ lwc1 $f4, 0x14($s0) -/* 035F3C 8003533C 46003282 */ mul.s $f10, $f6, $f0 -/* 035F40 80035340 E7A00038 */ swc1 $f0, 0x38($sp) -/* 035F44 80035344 AFA50028 */ sw $a1, 0x28($sp) -/* 035F48 80035348 E7B2003C */ swc1 $f18, 0x3c($sp) -/* 035F4C 8003534C 460A2200 */ add.s $f8, $f4, $f10 -/* 035F50 80035350 0C00C44C */ jal func_80031130 -/* 035F54 80035354 E7A80048 */ swc1 $f8, 0x48($sp) -/* 035F58 80035358 8FA40028 */ lw $a0, 0x28($sp) -/* 035F5C 8003535C 24190001 */ li $t9, 1 -/* 035F60 80035360 27A80034 */ addiu $t0, $sp, 0x34 -/* 035F64 80035364 AFA00034 */ sw $zero, 0x34($sp) -/* 035F68 80035368 A3A00033 */ sb $zero, 0x33($sp) -/* 035F6C 8003536C AFA80014 */ sw $t0, 0x14($sp) -/* 035F70 80035370 AFB90010 */ sw $t9, 0x10($sp) -/* 035F74 80035374 27A50040 */ addiu $a1, $sp, 0x40 -/* 035F78 80035378 27A6003C */ addiu $a2, $sp, 0x3c -/* 035F7C 8003537C 0C00C580 */ jal func_80031600 -/* 035F80 80035380 27A70033 */ addiu $a3, $sp, 0x33 -/* 035F84 80035384 C7B00040 */ lwc1 $f16, 0x40($sp) -/* 035F88 80035388 C606000C */ lwc1 $f6, 0xc($s0) -/* 035F8C 8003538C C7A00038 */ lwc1 $f0, 0x38($sp) -/* 035F90 80035390 46068101 */ sub.s $f4, $f16, $f6 -/* 035F94 80035394 3C01800E */ lui $at, %hi(D_800E6018 + 4) # $at, 0x800e -/* 035F98 80035398 46002283 */ div.s $f10, $f4, $f0 -/* 035F9C 8003539C C4236018 */ lwc1 $f3, %lo(D_800E6018)($at) -/* 035FA0 800353A0 C422601C */ lwc1 $f2, %lo(D_800E6018 + 4)($at) -/* 035FA4 800353A4 C6120010 */ lwc1 $f18, 0x10($s0) -/* 035FA8 800353A8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 035FAC 800353AC E60A001C */ swc1 $f10, 0x1c($s0) -/* 035FB0 800353B0 C7A80044 */ lwc1 $f8, 0x44($sp) -/* 035FB4 800353B4 C60A0014 */ lwc1 $f10, 0x14($s0) -/* 035FB8 800353B8 46124401 */ sub.s $f16, $f8, $f18 -/* 035FBC 800353BC 00000000 */ nop -/* 035FC0 800353C0 46008183 */ div.s $f6, $f16, $f0 -/* 035FC4 800353C4 E6060020 */ swc1 $f6, 0x20($s0) -/* 035FC8 800353C8 C7A40048 */ lwc1 $f4, 0x48($sp) -/* 035FCC 800353CC 00000000 */ nop -/* 035FD0 800353D0 460A2201 */ sub.s $f8, $f4, $f10 -/* 035FD4 800353D4 C60A0020 */ lwc1 $f10, 0x20($s0) -/* 035FD8 800353D8 46004483 */ div.s $f18, $f8, $f0 -/* 035FDC 800353DC 44819800 */ mtc1 $at, $f19 -/* 035FE0 800353E0 46005221 */ cvt.d.s $f8, $f10 -/* 035FE4 800353E4 3C01800E */ lui $at, %hi(D_800E6020) # $at, 0x800e -/* 035FE8 800353E8 E6120024 */ swc1 $f18, 0x24($s0) -/* 035FEC 800353EC C7B00040 */ lwc1 $f16, 0x40($sp) -/* 035FF0 800353F0 44809000 */ mtc1 $zero, $f18 -/* 035FF4 800353F4 E610000C */ swc1 $f16, 0xc($s0) -/* 035FF8 800353F8 C7A60044 */ lwc1 $f6, 0x44($sp) -/* 035FFC 800353FC 46324401 */ sub.d $f16, $f8, $f18 -/* 036000 80035400 E6060010 */ swc1 $f6, 0x10($s0) -/* 036004 80035404 C7A40048 */ lwc1 $f4, 0x48($sp) -/* 036008 80035408 462081A0 */ cvt.s.d $f6, $f16 -/* 03600C 8003540C E6040014 */ swc1 $f4, 0x14($s0) -/* 036010 80035410 C604001C */ lwc1 $f4, 0x1c($s0) -/* 036014 80035414 C6100024 */ lwc1 $f16, 0x24($s0) -/* 036018 80035418 460022A1 */ cvt.d.s $f10, $f4 -/* 03601C 8003541C 46225202 */ mul.d $f8, $f10, $f2 -/* 036020 80035420 E6060020 */ swc1 $f6, 0x20($s0) -/* 036024 80035424 460081A1 */ cvt.d.s $f6, $f16 -/* 036028 80035428 46223102 */ mul.d $f4, $f6, $f2 -/* 03602C 8003542C 462044A0 */ cvt.s.d $f18, $f8 -/* 036030 80035430 C6080020 */ lwc1 $f8, 0x20($s0) -/* 036034 80035434 E612001C */ swc1 $f18, 0x1c($s0) -/* 036038 80035438 462022A0 */ cvt.s.d $f10, $f4 -/* 03603C 8003543C E60A0024 */ swc1 $f10, 0x24($s0) -/* 036040 80035440 C4306024 */ lwc1 $f16, %lo(D_800E6020 + 4)($at) -/* 036044 80035444 C4316020 */ lwc1 $f17, %lo(D_800E6020)($at) -/* 036048 80035448 460044A1 */ cvt.d.s $f18, $f8 -/* 03604C 8003544C 46309182 */ mul.d $f6, $f18, $f16 -/* 036050 80035450 3C01C4FA */ li $at, 0xC4FA0000 # -2000.000000 -/* 036054 80035454 44814000 */ mtc1 $at, $f8 -/* 036058 80035458 C60A0010 */ lwc1 $f10, 0x10($s0) -/* 03605C 8003545C 00000000 */ nop -/* 036060 80035460 4608503C */ c.lt.s $f10, $f8 -/* 036064 80035464 46203120 */ cvt.s.d $f4, $f6 -/* 036068 80035468 45010009 */ bc1t .L80035490 -/* 03606C 8003546C E6040020 */ swc1 $f4, 0x20($s0) -/* 036070 80035470 8FA90034 */ lw $t1, 0x34($sp) -/* 036074 80035474 83AA0033 */ lb $t2, 0x33($sp) -/* 036078 80035478 1120000C */ beqz $t1, .L800354AC -/* 03607C 8003547C 29410005 */ slti $at, $t2, 5 -/* 036080 80035480 14200003 */ bnez $at, .L80035490 -/* 036084 80035484 2941000A */ slti $at, $t2, 0xa -/* 036088 80035488 14200009 */ bnez $at, .L800354B0 -/* 03608C 8003548C 8FAB0034 */ lw $t3, 0x34($sp) -.L80035490: -/* 036090 80035490 8E220004 */ lw $v0, 4($s1) -/* 036094 80035494 00000000 */ nop -/* 036098 80035498 10400002 */ beqz $v0, .L800354A4 -/* 03609C 8003549C 00000000 */ nop -/* 0360A0 800354A0 AC400078 */ sw $zero, 0x78($v0) -.L800354A4: -/* 0360A4 800354A4 0C003FEE */ jal gParticlePtrList_addObject -/* 0360A8 800354A8 02002025 */ move $a0, $s0 -.L800354AC: -/* 0360AC 800354AC 8FAB0034 */ lw $t3, 0x34($sp) -.L800354B0: -/* 0360B0 800354B0 83AC0033 */ lb $t4, 0x33($sp) -/* 0360B4 800354B4 11600007 */ beqz $t3, .L800354D4 -/* 0360B8 800354B8 24010005 */ li $at, 5 -/* 0360BC 800354BC 15810006 */ bne $t4, $at, .L800354D8 -/* 0360C0 800354C0 8FAD0034 */ lw $t5, 0x34($sp) -/* 0360C4 800354C4 44800000 */ mtc1 $zero, $f0 -/* 0360C8 800354C8 A220000B */ sb $zero, 0xb($s1) -/* 0360CC 800354CC E600001C */ swc1 $f0, 0x1c($s0) -/* 0360D0 800354D0 E6000024 */ swc1 $f0, 0x24($s0) -.L800354D4: -/* 0360D4 800354D4 8FAD0034 */ lw $t5, 0x34($sp) -.L800354D8: -/* 0360D8 800354D8 83AE0033 */ lb $t6, 0x33($sp) -/* 0360DC 800354DC 11A00053 */ beqz $t5, .L8003562C -/* 0360E0 800354E0 29C10006 */ slti $at, $t6, 6 -/* 0360E4 800354E4 14200051 */ bnez $at, .L8003562C -/* 0360E8 800354E8 29C1000A */ slti $at, $t6, 0xa -/* 0360EC 800354EC 1020004F */ beqz $at, .L8003562C -/* 0360F0 800354F0 25CFFFFA */ addiu $t7, $t6, -6 -/* 0360F4 800354F4 A22F000A */ sb $t7, 0xa($s1) -/* 0360F8 800354F8 24180003 */ li $t8, 3 -/* 0360FC 800354FC 8224000A */ lb $a0, 0xa($s1) -/* 036100 80035500 0C006EB2 */ jal get_racer_object -/* 036104 80035504 A238000B */ sb $t8, 0xb($s1) -/* 036108 80035508 44800000 */ mtc1 $zero, $f0 -/* 03610C 8003550C 10400007 */ beqz $v0, .L8003552C -/* 036110 80035510 24090258 */ li $t1, 600 -/* 036114 80035514 8C460064 */ lw $a2, 0x64($v0) -/* 036118 80035518 00000000 */ nop -/* 03611C 8003551C 80D901CF */ lb $t9, 0x1cf($a2) -/* 036120 80035520 00000000 */ nop -/* 036124 80035524 27280001 */ addiu $t0, $t9, 1 -/* 036128 80035528 A0C801CF */ sb $t0, 0x1cf($a2) -.L8003552C: -/* 03612C 8003552C A6290008 */ sh $t1, 8($s1) -/* 036130 80035530 E600001C */ swc1 $f0, 0x1c($s0) -/* 036134 80035534 1000003D */ b .L8003562C -/* 036138 80035538 E6000024 */ swc1 $f0, 0x24($s0) -.L8003553C: -/* 03613C 8003553C 862A0008 */ lh $t2, 8($s1) -/* 036140 80035540 8224000A */ lb $a0, 0xa($s1) -/* 036144 80035544 01455823 */ subu $t3, $t2, $a1 -/* 036148 80035548 0C006EB2 */ jal get_racer_object -/* 03614C 8003554C A62B0008 */ sh $t3, 8($s1) -/* 036150 80035550 10400004 */ beqz $v0, .L80035564 -/* 036154 80035554 00403825 */ move $a3, $v0 -/* 036158 80035558 8C460064 */ lw $a2, 0x64($v0) -/* 03615C 8003555C 00000000 */ nop -/* 036160 80035560 AFA6004C */ sw $a2, 0x4c($sp) -.L80035564: -/* 036164 80035564 86230008 */ lh $v1, 8($s1) -/* 036168 80035568 8FA6004C */ lw $a2, 0x4c($sp) -/* 03616C 8003556C 1C60000C */ bgtz $v1, .L800355A0 -/* 036170 80035570 240E0004 */ li $t6, 4 -/* 036174 80035574 10400005 */ beqz $v0, .L8003558C -/* 036178 80035578 00000000 */ nop -/* 03617C 8003557C 80CC0193 */ lb $t4, 0x193($a2) -/* 036180 80035580 00000000 */ nop -/* 036184 80035584 258D0001 */ addiu $t5, $t4, 1 -/* 036188 80035588 A0CD0193 */ sb $t5, 0x193($a2) -.L8003558C: -/* 03618C 8003558C 8E2F0004 */ lw $t7, 4($s1) -/* 036190 80035590 A22E000B */ sb $t6, 0xb($s1) -/* 036194 80035594 ADE00078 */ sw $zero, 0x78($t7) -/* 036198 80035598 86230008 */ lh $v1, 8($s1) -/* 03619C 8003559C 00000000 */ nop -.L800355A0: -/* 0361A0 800355A0 2861021C */ slti $at, $v1, 0x21c -/* 0361A4 800355A4 10200008 */ beqz $at, .L800355C8 -/* 0361A8 800355A8 02002025 */ move $a0, $s0 -/* 0361AC 800355AC 02202825 */ move $a1, $s1 -/* 0361B0 800355B0 AFA6004C */ sw $a2, 0x4c($sp) -/* 0361B4 800355B4 0C00D810 */ jal func_80036040 -/* 0361B8 800355B8 AFA70050 */ sw $a3, 0x50($sp) -/* 0361BC 800355BC 8FA6004C */ lw $a2, 0x4c($sp) -/* 0361C0 800355C0 8FA70050 */ lw $a3, 0x50($sp) -/* 0361C4 800355C4 00000000 */ nop -.L800355C8: -/* 0361C8 800355C8 10E00019 */ beqz $a3, .L80035630 -/* 0361CC 800355CC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0361D0 800355D0 8238000B */ lb $t8, 0xb($s1) -/* 0361D4 800355D4 24010003 */ li $at, 3 -/* 0361D8 800355D8 13010015 */ beq $t8, $at, .L80035630 -/* 0361DC 800355DC 8FBF0024 */ lw $ra, 0x24($sp) -/* 0361E0 800355E0 80D901CF */ lb $t9, 0x1cf($a2) -/* 0361E4 800355E4 00000000 */ nop -/* 0361E8 800355E8 2728FFFF */ addiu $t0, $t9, -1 -/* 0361EC 800355EC 1000000F */ b .L8003562C -/* 0361F0 800355F0 A0C801CF */ sb $t0, 0x1cf($a2) -.L800355F4: -/* 0361F4 800355F4 8224000A */ lb $a0, 0xa($s1) -/* 0361F8 800355F8 0C006EB2 */ jal get_racer_object -/* 0361FC 800355FC 00000000 */ nop -/* 036200 80035600 10400009 */ beqz $v0, .L80035628 -/* 036204 80035604 240B0080 */ li $t3, 128 -/* 036208 80035608 8C460064 */ lw $a2, 0x64($v0) -/* 03620C 8003560C 240A0001 */ li $t2, 1 -/* 036210 80035610 80C90193 */ lb $t1, 0x193($a2) -/* 036214 80035614 00000000 */ nop -/* 036218 80035618 29210003 */ slti $at, $t1, 3 -/* 03621C 8003561C 14200002 */ bnez $at, .L80035628 -/* 036220 80035620 00000000 */ nop -/* 036224 80035624 A0CA01D8 */ sb $t2, 0x1d8($a2) -.L80035628: -/* 036228 80035628 A60B0018 */ sh $t3, 0x18($s0) -.L8003562C: -/* 03622C 8003562C 8FBF0024 */ lw $ra, 0x24($sp) -.L80035630: -/* 036230 80035630 8FB0001C */ lw $s0, 0x1c($sp) -/* 036234 80035634 8FB10020 */ lw $s1, 0x20($sp) -/* 036238 80035638 03E00008 */ jr $ra -/* 03623C 8003563C 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_flycoin.s b/asm/non_matchings/unknown_032760/obj_loop_flycoin.s deleted file mode 100644 index 593e8024..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_flycoin.s +++ /dev/null @@ -1,88 +0,0 @@ -.late_rodata -glabel D_800E6188 -.double 1.2 - -.text -glabel obj_loop_flycoin -/* 03DEB8 8003D2B8 44852000 */ mtc1 $a1, $f4 -/* 03DEBC 8003D2BC 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 -/* 03DEC0 8003D2C0 468020A0 */ cvt.s.w $f2, $f4 -/* 03DEC4 8003D2C4 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 03DEC8 8003D2C8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 03DECC 8003D2CC AFB00018 */ sw $s0, 0x18($sp) -/* 03DED0 8003D2D0 00808025 */ move $s0, $a0 -/* 03DED4 8003D2D4 AFBF001C */ sw $ra, 0x1c($sp) -/* 03DED8 8003D2D8 AFA5002C */ sw $a1, 0x2c($sp) -/* 03DEDC 8003D2DC 15E00007 */ bnez $t7, .L8003D2FC -/* 03DEE0 8003D2E0 46001006 */ mov.s $f0, $f2 -/* 03DEE4 8003D2E4 3C01800E */ lui $at, %hi(D_800E6188 + 4) # $at, 0x800e -/* 03DEE8 8003D2E8 C4296188 */ lwc1 $f9, %lo(D_800E6188)($at) -/* 03DEEC 8003D2EC C428618C */ lwc1 $f8, %lo(D_800E6188 + 4)($at) -/* 03DEF0 8003D2F0 460011A1 */ cvt.d.s $f6, $f2 -/* 03DEF4 8003D2F4 46283282 */ mul.d $f10, $f6, $f8 -/* 03DEF8 8003D2F8 46205020 */ cvt.s.d $f0, $f10 -.L8003D2FC: -/* 03DEFC 8003D2FC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 03DF00 8003D300 44818800 */ mtc1 $at, $f17 -/* 03DF04 8003D304 44808000 */ mtc1 $zero, $f16 -/* 03DF08 8003D308 460004A1 */ cvt.d.s $f18, $f0 -/* 03DF0C 8003D30C 46328102 */ mul.d $f4, $f16, $f18 -/* 03DF10 8003D310 C6060020 */ lwc1 $f6, 0x20($s0) -/* 03DF14 8003D314 C612001C */ lwc1 $f18, 0x1c($s0) -/* 03DF18 8003D318 46003221 */ cvt.d.s $f8, $f6 -/* 03DF1C 8003D31C 02002025 */ move $a0, $s0 -/* 03DF20 8003D320 46244281 */ sub.d $f10, $f8, $f4 -/* 03DF24 8003D324 46205420 */ cvt.s.d $f16, $f10 -/* 03DF28 8003D328 C60A0024 */ lwc1 $f10, 0x24($s0) -/* 03DF2C 8003D32C 46009182 */ mul.s $f6, $f18, $f0 -/* 03DF30 8003D330 E6100020 */ swc1 $f16, 0x20($s0) -/* 03DF34 8003D334 C6080020 */ lwc1 $f8, 0x20($s0) -/* 03DF38 8003D338 00000000 */ nop -/* 03DF3C 8003D33C 46004102 */ mul.s $f4, $f8, $f0 -/* 03DF40 8003D340 44053000 */ mfc1 $a1, $f6 -/* 03DF44 8003D344 46005402 */ mul.s $f16, $f10, $f0 -/* 03DF48 8003D348 44062000 */ mfc1 $a2, $f4 -/* 03DF4C 8003D34C 44078000 */ mfc1 $a3, $f16 -/* 03DF50 8003D350 0C00455C */ jal func_80011570 -/* 03DF54 8003D354 00000000 */ nop -/* 03DF58 8003D358 8E180078 */ lw $t8, 0x78($s0) -/* 03DF5C 8003D35C 8FB9002C */ lw $t9, 0x2c($sp) -/* 03DF60 8003D360 02002025 */ move $a0, $s0 -/* 03DF64 8003D364 03194023 */ subu $t0, $t8, $t9 -/* 03DF68 8003D368 1D000017 */ bgtz $t0, .L8003D3C8 -/* 03DF6C 8003D36C AE080078 */ sw $t0, 0x78($s0) -/* 03DF70 8003D370 8E02007C */ lw $v0, 0x7c($s0) -/* 03DF74 8003D374 240D0001 */ li $t5, 1 -/* 03DF78 8003D378 804A0193 */ lb $t2, 0x193($v0) -/* 03DF7C 8003D37C 00000000 */ nop -/* 03DF80 8003D380 254B0001 */ addiu $t3, $t2, 1 -/* 03DF84 8003D384 A04B0193 */ sb $t3, 0x193($v0) -/* 03DF88 8003D388 804C0193 */ lb $t4, 0x193($v0) -/* 03DF8C 8003D38C 00000000 */ nop -/* 03DF90 8003D390 2981000A */ slti $at, $t4, 0xa -/* 03DF94 8003D394 14200002 */ bnez $at, .L8003D3A0 -/* 03DF98 8003D398 00000000 */ nop -/* 03DF9C 8003D39C A04D01D8 */ sb $t5, 0x1d8($v0) -.L8003D3A0: -/* 03DFA0 8003D3A0 0C003FEE */ jal gParticlePtrList_addObject -/* 03DFA4 8003D3A4 AFA20020 */ sw $v0, 0x20($sp) -/* 03DFA8 8003D3A8 8FA20020 */ lw $v0, 0x20($sp) -/* 03DFAC 8003D3AC 2401FFFF */ li $at, -1 -/* 03DFB0 8003D3B0 844E0000 */ lh $t6, ($v0) -/* 03DFB4 8003D3B4 24040022 */ li $a0, 34 -/* 03DFB8 8003D3B8 11C10004 */ beq $t6, $at, .L8003D3CC -/* 03DFBC 8003D3BC 8FB8002C */ lw $t8, 0x2c($sp) -/* 03DFC0 8003D3C0 0C000741 */ jal play_sound_global -/* 03DFC4 8003D3C4 00002825 */ move $a1, $zero -.L8003D3C8: -/* 03DFC8 8003D3C8 8FB8002C */ lw $t8, 0x2c($sp) -.L8003D3CC: -/* 03DFCC 8003D3CC 860F0018 */ lh $t7, 0x18($s0) -/* 03DFD0 8003D3D0 0018C8C0 */ sll $t9, $t8, 3 -/* 03DFD4 8003D3D4 01F94021 */ addu $t0, $t7, $t9 -/* 03DFD8 8003D3D8 A6080018 */ sh $t0, 0x18($s0) -/* 03DFDC 8003D3DC 8FBF001C */ lw $ra, 0x1c($sp) -/* 03DFE0 8003D3E0 8FB00018 */ lw $s0, 0x18($sp) -/* 03DFE4 8003D3E4 03E00008 */ jr $ra -/* 03DFE8 8003D3E8 27BD0028 */ addiu $sp, $sp, 0x28 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_silvercoin.s b/asm/non_matchings/unknown_032760/obj_loop_silvercoin.s deleted file mode 100644 index ae0c3d0e..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_silvercoin.s +++ /dev/null @@ -1,95 +0,0 @@ -glabel obj_loop_silvercoin -/* 03E914 8003DD14 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 03E918 8003DD18 AFBF0014 */ sw $ra, 0x14($sp) -/* 03E91C 8003DD1C AFA50024 */ sw $a1, 0x24($sp) -/* 03E920 8003DD20 0C01B067 */ jal func_8006C19C -/* 03E924 8003DD24 AFA40020 */ sw $a0, 0x20($sp) -/* 03E928 8003DD28 8FA60020 */ lw $a2, 0x20($sp) -/* 03E92C 8003DD2C 8FA70024 */ lw $a3, 0x24($sp) -/* 03E930 8003DD30 10400005 */ beqz $v0, .L8003DD48 -/* 03E934 8003DD34 00000000 */ nop -/* 03E938 8003DD38 8CC50078 */ lw $a1, 0x78($a2) -/* 03E93C 8003DD3C 24010003 */ li $at, 3 -/* 03E940 8003DD40 14A10007 */ bne $a1, $at, .L8003DD60 -/* 03E944 8003DD44 00000000 */ nop -.L8003DD48: -/* 03E948 8003DD48 1440003D */ bnez $v0, .L8003DE40 -/* 03E94C 8003DD4C 00000000 */ nop -/* 03E950 8003DD50 8CC50078 */ lw $a1, 0x78($a2) -/* 03E954 8003DD54 00000000 */ nop -/* 03E958 8003DD58 14A00039 */ bnez $a1, .L8003DE40 -/* 03E95C 8003DD5C 00000000 */ nop -.L8003DD60: -/* 03E960 8003DD60 8CC2004C */ lw $v0, 0x4c($a2) -/* 03E964 8003DD64 00000000 */ nop -/* 03E968 8003DD68 904E0013 */ lbu $t6, 0x13($v0) -/* 03E96C 8003DD6C 00000000 */ nop -/* 03E970 8003DD70 29C10050 */ slti $at, $t6, 0x50 -/* 03E974 8003DD74 1020002E */ beqz $at, .L8003DE30 -/* 03E978 8003DD78 00000000 */ nop -/* 03E97C 8003DD7C 8C430000 */ lw $v1, ($v0) -/* 03E980 8003DD80 00000000 */ nop -/* 03E984 8003DD84 1060002A */ beqz $v1, .L8003DE30 -/* 03E988 8003DD88 00000000 */ nop -/* 03E98C 8003DD8C 8C6F0040 */ lw $t7, 0x40($v1) -/* 03E990 8003DD90 24010001 */ li $at, 1 -/* 03E994 8003DD94 81F80054 */ lb $t8, 0x54($t7) -/* 03E998 8003DD98 00000000 */ nop -/* 03E99C 8003DD9C 17010024 */ bne $t8, $at, .L8003DE30 -/* 03E9A0 8003DDA0 00000000 */ nop -/* 03E9A4 8003DDA4 8C620064 */ lw $v0, 0x64($v1) -/* 03E9A8 8003DDA8 2401FFFF */ li $at, -1 -/* 03E9AC 8003DDAC 84440000 */ lh $a0, ($v0) -/* 03E9B0 8003DDB0 00000000 */ nop -/* 03E9B4 8003DDB4 1081001E */ beq $a0, $at, .L8003DE30 -/* 03E9B8 8003DDB8 00000000 */ nop -/* 03E9BC 8003DDBC 805901D8 */ lb $t9, 0x1d8($v0) -/* 03E9C0 8003DDC0 24080001 */ li $t0, 1 -/* 03E9C4 8003DDC4 1720001A */ bnez $t9, .L8003DE30 -/* 03E9C8 8003DDC8 00881804 */ sllv $v1, $t0, $a0 -/* 03E9CC 8003DDCC 00A34824 */ and $t1, $a1, $v1 -/* 03E9D0 8003DDD0 15200017 */ bnez $t1, .L8003DE30 -/* 03E9D4 8003DDD4 00A35025 */ or $t2, $a1, $v1 -/* 03E9D8 8003DDD8 240B0010 */ li $t3, 16 -/* 03E9DC 8003DDDC ACCA0078 */ sw $t2, 0x78($a2) -/* 03E9E0 8003DDE0 ACCB007C */ sw $t3, 0x7c($a2) -/* 03E9E4 8003DDE4 844D0000 */ lh $t5, ($v0) -/* 03E9E8 8003DDE8 84CC0006 */ lh $t4, 6($a2) -/* 03E9EC 8003DDEC 240E0200 */ li $t6, 512 -/* 03E9F0 8003DDF0 01AE7804 */ sllv $t7, $t6, $t5 -/* 03E9F4 8003DDF4 018FC025 */ or $t8, $t4, $t7 -/* 03E9F8 8003DDF8 A4D80006 */ sh $t8, 6($a2) -/* 03E9FC 8003DDFC 80440202 */ lb $a0, 0x202($v0) -/* 03EA00 8003DE00 AFA60020 */ sw $a2, 0x20($sp) -/* 03EA04 8003DE04 2484002B */ addiu $a0, $a0, 0x2b -/* 03EA08 8003DE08 309900FF */ andi $t9, $a0, 0xff -/* 03EA0C 8003DE0C 03202025 */ move $a0, $t9 -/* 03EA10 8003DE10 0C0006F0 */ jal play_sequence -/* 03EA14 8003DE14 AFA20018 */ sw $v0, 0x18($sp) -/* 03EA18 8003DE18 8FA20018 */ lw $v0, 0x18($sp) -/* 03EA1C 8003DE1C 8FA60020 */ lw $a2, 0x20($sp) -/* 03EA20 8003DE20 80480202 */ lb $t0, 0x202($v0) -/* 03EA24 8003DE24 8FA70024 */ lw $a3, 0x24($sp) -/* 03EA28 8003DE28 25090001 */ addiu $t1, $t0, 1 -/* 03EA2C 8003DE2C A0490202 */ sb $t1, 0x202($v0) -.L8003DE30: -/* 03EA30 8003DE30 84CA0018 */ lh $t2, 0x18($a2) -/* 03EA34 8003DE34 000758C0 */ sll $t3, $a3, 3 -/* 03EA38 8003DE38 014B7021 */ addu $t6, $t2, $t3 -/* 03EA3C 8003DE3C A4CE0018 */ sh $t6, 0x18($a2) -.L8003DE40: -/* 03EA40 8003DE40 8CC2007C */ lw $v0, 0x7c($a2) -/* 03EA44 8003DE44 240C0001 */ li $t4, 1 -/* 03EA48 8003DE48 18400006 */ blez $v0, .L8003DE64 -/* 03EA4C 8003DE4C 00476823 */ subu $t5, $v0, $a3 -/* 03EA50 8003DE50 ACCD007C */ sw $t5, 0x7c($a2) -/* 03EA54 8003DE54 ACCC0074 */ sw $t4, 0x74($a2) -/* 03EA58 8003DE58 00C02025 */ move $a0, $a2 -/* 03EA5C 8003DE5C 0C02BF0F */ jal func_800AFC3C -/* 03EA60 8003DE60 00E02825 */ move $a1, $a3 -.L8003DE64: -/* 03EA64 8003DE64 8FBF0014 */ lw $ra, 0x14($sp) -/* 03EA68 8003DE68 27BD0020 */ addiu $sp, $sp, 0x20 -/* 03EA6C 8003DE6C 03E00008 */ jr $ra -/* 03EA70 8003DE70 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/obj_loop_trophycab.s b/asm/non_matchings/unknown_032760/obj_loop_trophycab.s deleted file mode 100644 index d1ab0d92..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_trophycab.s +++ /dev/null @@ -1,252 +0,0 @@ -.late_rodata -glabel D_800E6004 -.float 0.612 -glabel D_800E6008 -.float 0.552 - -.text -glabel obj_loop_trophycab -/* 035A9C 80034E9C 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 035AA0 80034EA0 AFBF001C */ sw $ra, 0x1c($sp) -/* 035AA4 80034EA4 AFB00018 */ sw $s0, 0x18($sp) -/* 035AA8 80034EA8 00808025 */ move $s0, $a0 -/* 035AAC 80034EAC 0C01BAA4 */ jal get_settings -/* 035AB0 80034EB0 AFA5005C */ sw $a1, 0x5c($sp) -/* 035AB4 80034EB4 0C01AF6C */ jal get_current_level_header -/* 035AB8 80034EB8 AFA20054 */ sw $v0, 0x54($sp) -/* 035ABC 80034EBC 8E0E0064 */ lw $t6, 0x64($s0) -/* 035AC0 80034EC0 8FA30054 */ lw $v1, 0x54($sp) -/* 035AC4 80034EC4 AFAE0050 */ sw $t6, 0x50($sp) -/* 035AC8 80034EC8 8E0F007C */ lw $t7, 0x7c($s0) -/* 035ACC 80034ECC 00000000 */ nop -/* 035AD0 80034ED0 15E00029 */ bnez $t7, .L80034F78 -/* 035AD4 80034ED4 00000000 */ nop -/* 035AD8 80034ED8 8044004C */ lb $a0, 0x4c($v0) -/* 035ADC 80034EDC 24010007 */ li $at, 7 -/* 035AE0 80034EE0 10810025 */ beq $a0, $at, .L80034F78 -/* 035AE4 80034EE4 24010006 */ li $at, 6 -/* 035AE8 80034EE8 10810023 */ beq $a0, $at, .L80034F78 -/* 035AEC 80034EEC 24180001 */ li $t8, 1 -/* 035AF0 80034EF0 AE18007C */ sw $t8, 0x7c($s0) -/* 035AF4 80034EF4 90680048 */ lbu $t0, 0x48($v1) -/* 035AF8 80034EF8 9479000E */ lhu $t9, 0xe($v1) -/* 035AFC 80034EFC 2509FFFF */ addiu $t1, $t0, -1 -/* 035B00 80034F00 00095040 */ sll $t2, $t1, 1 -/* 035B04 80034F04 01595807 */ srav $t3, $t9, $t2 -/* 035B08 80034F08 316C0003 */ andi $t4, $t3, 3 -/* 035B0C 80034F0C 1180001A */ beqz $t4, .L80034F78 -/* 035B10 80034F10 240D0080 */ li $t5, 128 -/* 035B14 80034F14 A3AD0044 */ sb $t5, 0x44($sp) -/* 035B18 80034F18 8E0E003C */ lw $t6, 0x3c($s0) -/* 035B1C 80034F1C 240A0008 */ li $t2, 8 -/* 035B20 80034F20 85CF0002 */ lh $t7, 2($t6) -/* 035B24 80034F24 27A40044 */ addiu $a0, $sp, 0x44 -/* 035B28 80034F28 A7AF0046 */ sh $t7, 0x46($sp) -/* 035B2C 80034F2C 8E18003C */ lw $t8, 0x3c($s0) -/* 035B30 80034F30 24050001 */ li $a1, 1 -/* 035B34 80034F34 87080004 */ lh $t0, 4($t8) -/* 035B38 80034F38 00000000 */ nop -/* 035B3C 80034F3C A7A80048 */ sh $t0, 0x48($sp) -/* 035B40 80034F40 8E09003C */ lw $t1, 0x3c($s0) -/* 035B44 80034F44 00000000 */ nop -/* 035B48 80034F48 85390006 */ lh $t9, 6($t1) -/* 035B4C 80034F4C A3AA0045 */ sb $t2, 0x45($sp) -/* 035B50 80034F50 AFA30054 */ sw $v1, 0x54($sp) -/* 035B54 80034F54 0C003A95 */ jal spawn_object -/* 035B58 80034F58 A7B9004A */ sh $t9, 0x4a($sp) -/* 035B5C 80034F5C 8FA30054 */ lw $v1, 0x54($sp) -/* 035B60 80034F60 10400005 */ beqz $v0, .L80034F78 -/* 035B64 80034F64 00000000 */ nop -/* 035B68 80034F68 AC40003C */ sw $zero, 0x3c($v0) -/* 035B6C 80034F6C 860B0000 */ lh $t3, ($s0) -/* 035B70 80034F70 00000000 */ nop -/* 035B74 80034F74 A44B0000 */ sh $t3, ($v0) -.L80034F78: -/* 035B78 80034F78 3C01800E */ lui $at, %hi(D_800E6004) # $at, 0x800e -/* 035B7C 80034F7C C4246004 */ lwc1 $f4, %lo(D_800E6004)($at) -/* 035B80 80034F80 8E0C0054 */ lw $t4, 0x54($s0) -/* 035B84 80034F84 44803000 */ mtc1 $zero, $f6 -/* 035B88 80034F88 E584002C */ swc1 $f4, 0x2c($t4) -/* 035B8C 80034F8C 8E0D0054 */ lw $t5, 0x54($s0) -/* 035B90 80034F90 00002025 */ move $a0, $zero -/* 035B94 80034F94 E5A60028 */ swc1 $f6, 0x28($t5) -/* 035B98 80034F98 0C006EB2 */ jal get_racer_object -/* 035B9C 80034F9C AFA30054 */ sw $v1, 0x54($sp) -/* 035BA0 80034FA0 8FA30054 */ lw $v1, 0x54($sp) -/* 035BA4 80034FA4 1040009E */ beqz $v0, .L80035220 -/* 035BA8 80034FA8 8FBF001C */ lw $ra, 0x1c($sp) -/* 035BAC 80034FAC C608000C */ lwc1 $f8, 0xc($s0) -/* 035BB0 80034FB0 C44A000C */ lwc1 $f10, 0xc($v0) -/* 035BB4 80034FB4 C6100014 */ lwc1 $f16, 0x14($s0) -/* 035BB8 80034FB8 460A4001 */ sub.s $f0, $f8, $f10 -/* 035BBC 80034FBC C4520014 */ lwc1 $f18, 0x14($v0) -/* 035BC0 80034FC0 46000102 */ mul.s $f4, $f0, $f0 -/* 035BC4 80034FC4 46128081 */ sub.s $f2, $f16, $f18 -/* 035BC8 80034FC8 AFA30054 */ sw $v1, 0x54($sp) -/* 035BCC 80034FCC 46021182 */ mul.s $f6, $f2, $f2 -/* 035BD0 80034FD0 0C0326B4 */ jal sqrtf -/* 035BD4 80034FD4 46062300 */ add.s $f12, $f4, $f6 -/* 035BD8 80034FD8 8FA30054 */ lw $v1, 0x54($sp) -/* 035BDC 80034FDC 240C0001 */ li $t4, 1 -/* 035BE0 80034FE0 90640048 */ lbu $a0, 0x48($v1) -/* 035BE4 80034FE4 8C6F0000 */ lw $t7, ($v1) -/* 035BE8 80034FE8 0004C040 */ sll $t8, $a0, 1 -/* 035BEC 80034FEC 01F84021 */ addu $t0, $t7, $t8 -/* 035BF0 80034FF0 85090000 */ lh $t1, ($t0) -/* 035BF4 80034FF4 9462000C */ lhu $v0, 0xc($v1) -/* 035BF8 80034FF8 29390008 */ slti $t9, $t1, 8 -/* 035BFC 80034FFC 3B390001 */ xori $t9, $t9, 1 -/* 035C00 80035000 AFB90028 */ sw $t9, 0x28($sp) -/* 035C04 80035004 13200006 */ beqz $t9, .L80035020 -/* 035C08 80035008 344E0800 */ ori $t6, $v0, 0x800 -/* 035C0C 8003500C 248B0006 */ addiu $t3, $a0, 6 -/* 035C10 80035010 016C6804 */ sllv $t5, $t4, $t3 -/* 035C14 80035014 01AE7024 */ and $t6, $t5, $t6 -/* 035C18 80035018 000E782B */ sltu $t7, $zero, $t6 -/* 035C1C 8003501C AFAF0028 */ sw $t7, 0x28($sp) -.L80035020: -/* 035C20 80035020 8E180078 */ lw $t8, 0x78($s0) -/* 035C24 80035024 00000000 */ nop -/* 035C28 80035028 17000027 */ bnez $t8, .L800350C8 -/* 035C2C 8003502C 8FA30050 */ lw $v1, 0x50($sp) -/* 035C30 80035030 0C030D00 */ jal func_800C3400 -/* 035C34 80035034 00000000 */ nop -/* 035C38 80035038 14400023 */ bnez $v0, .L800350C8 -/* 035C3C 8003503C 8FA30050 */ lw $v1, 0x50($sp) -/* 035C40 80035040 8E08005C */ lw $t0, 0x5c($s0) -/* 035C44 80035044 8FA30050 */ lw $v1, 0x50($sp) -/* 035C48 80035048 8D090100 */ lw $t1, 0x100($t0) -/* 035C4C 8003504C 00000000 */ nop -/* 035C50 80035050 1120001C */ beqz $t1, .L800350C4 -/* 035C54 80035054 00000000 */ nop -/* 035C58 80035058 84790004 */ lh $t9, 4($v1) -/* 035C5C 8003505C 8FAA0028 */ lw $t2, 0x28($sp) -/* 035C60 80035060 17200019 */ bnez $t9, .L800350C8 -/* 035C64 80035064 8FA30050 */ lw $v1, 0x50($sp) -/* 035C68 80035068 11400009 */ beqz $t2, .L80035090 -/* 035C6C 8003506C 240C0001 */ li $t4, 1 -/* 035C70 80035070 AE0C0078 */ sw $t4, 0x78($s0) -/* 035C74 80035074 2404012F */ li $a0, 303 -/* 035C78 80035078 0C000741 */ jal play_sound_global -/* 035C7C 8003507C 00002825 */ move $a1, $zero -/* 035C80 80035080 0C028E1C */ jal func_800A3870 -/* 035C84 80035084 00000000 */ nop -/* 035C88 80035088 1000000F */ b .L800350C8 -/* 035C8C 8003508C 8FA30050 */ lw $v1, 0x50($sp) -.L80035090: -/* 035C90 80035090 0C030C7B */ jal func_800C31EC -/* 035C94 80035094 24040004 */ li $a0, 4 -/* 035C98 80035098 8FAD0050 */ lw $t5, 0x50($sp) -/* 035C9C 8003509C 240B00B4 */ li $t3, 180 -/* 035CA0 800350A0 240E008C */ li $t6, 140 -/* 035CA4 800350A4 24040010 */ li $a0, 16 -/* 035CA8 800350A8 A5AB0004 */ sh $t3, 4($t5) -/* 035CAC 800350AC 0C00030E */ jal set_sndfx_player_voice_limit -/* 035CB0 800350B0 ADAE0000 */ sw $t6, ($t5) -/* 035CB4 800350B4 0C000326 */ jal set_music_fade_timer -/* 035CB8 800350B8 2404FFF8 */ li $a0, -8 -/* 035CBC 800350BC 0C0006F0 */ jal play_sequence -/* 035CC0 800350C0 24040011 */ li $a0, 17 -.L800350C4: -/* 035CC4 800350C4 8FA30050 */ lw $v1, 0x50($sp) -.L800350C8: -/* 035CC8 800350C8 00000000 */ nop -/* 035CCC 800350CC 8C6F0000 */ lw $t7, ($v1) -/* 035CD0 800350D0 00000000 */ nop -/* 035CD4 800350D4 11E00013 */ beqz $t7, .L80035124 -/* 035CD8 800350D8 00000000 */ nop -/* 035CDC 800350DC 0C000702 */ jal func_80001C08 -/* 035CE0 800350E0 00000000 */ nop -/* 035CE4 800350E4 1440000F */ bnez $v0, .L80035124 -/* 035CE8 800350E8 00000000 */ nop -/* 035CEC 800350EC 8FB80050 */ lw $t8, 0x50($sp) -/* 035CF0 800350F0 8FA8005C */ lw $t0, 0x5c($sp) -/* 035CF4 800350F4 8F020000 */ lw $v0, ($t8) -/* 035CF8 800350F8 8FB90050 */ lw $t9, 0x50($sp) -/* 035CFC 800350FC 0102082A */ slt $at, $t0, $v0 -/* 035D00 80035100 10200004 */ beqz $at, .L80035114 -/* 035D04 80035104 24040008 */ li $a0, 8 -/* 035D08 80035108 00484823 */ subu $t1, $v0, $t0 -/* 035D0C 8003510C 10000005 */ b .L80035124 -/* 035D10 80035110 AF090000 */ sw $t1, ($t8) -.L80035114: -/* 035D14 80035114 0C000326 */ jal set_music_fade_timer -/* 035D18 80035118 AF200000 */ sw $zero, ($t9) -/* 035D1C 8003511C 0C00030E */ jal set_sndfx_player_voice_limit -/* 035D20 80035120 24040006 */ li $a0, 6 -.L80035124: -/* 035D24 80035124 8E0A005C */ lw $t2, 0x5c($s0) -/* 035D28 80035128 8FA30050 */ lw $v1, 0x50($sp) -/* 035D2C 8003512C 8D4C0100 */ lw $t4, 0x100($t2) -/* 035D30 80035130 00000000 */ nop -/* 035D34 80035134 15800008 */ bnez $t4, .L80035158 -/* 035D38 80035138 240B00B4 */ li $t3, 180 -/* 035D3C 8003513C 0C030D00 */ jal func_800C3400 -/* 035D40 80035140 00000000 */ nop -/* 035D44 80035144 10400006 */ beqz $v0, .L80035160 -/* 035D48 80035148 8FA30050 */ lw $v1, 0x50($sp) -/* 035D4C 8003514C 8FA30050 */ lw $v1, 0x50($sp) -/* 035D50 80035150 00000000 */ nop -/* 035D54 80035154 240B00B4 */ li $t3, 180 -.L80035158: -/* 035D58 80035158 A46B0004 */ sh $t3, 4($v1) -/* 035D5C 8003515C 8FA30050 */ lw $v1, 0x50($sp) -.L80035160: -/* 035D60 80035160 8FAE005C */ lw $t6, 0x5c($sp) -/* 035D64 80035164 84620004 */ lh $v0, 4($v1) -/* 035D68 80035168 00000000 */ nop -/* 035D6C 8003516C 18400003 */ blez $v0, .L8003517C -/* 035D70 80035170 004E6823 */ subu $t5, $v0, $t6 -/* 035D74 80035174 10000002 */ b .L80035180 -/* 035D78 80035178 A46D0004 */ sh $t5, 4($v1) -.L8003517C: -/* 035D7C 8003517C A4600004 */ sh $zero, 4($v1) -.L80035180: -/* 035D80 80035180 8E0F0078 */ lw $t7, 0x78($s0) -/* 035D84 80035184 24010001 */ li $at, 1 -/* 035D88 80035188 15E10019 */ bne $t7, $at, .L800351F0 -/* 035D8C 8003518C 00000000 */ nop -/* 035D90 80035190 0C02AC6B */ jal func_800AB1AC -/* 035D94 80035194 24040003 */ li $a0, 3 -/* 035D98 80035198 0C02AC75 */ jal func_800AB1D4 -/* 035D9C 8003519C 00002025 */ move $a0, $zero -/* 035DA0 800351A0 0C0273FB */ jal func_8009CFEC -/* 035DA4 800351A4 24040004 */ li $a0, 4 -/* 035DA8 800351A8 1040000F */ beqz $v0, .L800351E8 -/* 035DAC 800351AC 24040004 */ li $a0, 4 -/* 035DB0 800351B0 AE000078 */ sw $zero, 0x78($s0) -/* 035DB4 800351B4 0C0273DA */ jal func_8009CF68 -/* 035DB8 800351B8 AFA20034 */ sw $v0, 0x34($sp) -/* 035DBC 800351BC 8FA30034 */ lw $v1, 0x34($sp) -/* 035DC0 800351C0 24010001 */ li $at, 1 -/* 035DC4 800351C4 14610006 */ bne $v1, $at, .L800351E0 -/* 035DC8 800351C8 00000000 */ nop -/* 035DCC 800351CC 0C01BC95 */ jal func_8006F254 -/* 035DD0 800351D0 00000000 */ nop -/* 035DD4 800351D4 24080002 */ li $t0, 2 -/* 035DD8 800351D8 10000003 */ b .L800351E8 -/* 035DDC 800351DC AE080078 */ sw $t0, 0x78($s0) -.L800351E0: -/* 035DE0 800351E0 0C02AC75 */ jal func_800AB1D4 -/* 035DE4 800351E4 24040001 */ li $a0, 1 -.L800351E8: -/* 035DE8 800351E8 0C0168EC */ jal func_8005A3B0 -/* 035DEC 800351EC 00000000 */ nop -.L800351F0: -/* 035DF0 800351F0 8E09005C */ lw $t1, 0x5c($s0) -/* 035DF4 800351F4 3C01800E */ lui $at, %hi(D_800E6008) # $at, 0x800e -/* 035DF8 800351F8 AD200100 */ sw $zero, 0x100($t1) -/* 035DFC 800351FC 8FB80028 */ lw $t8, 0x28($sp) -/* 035E00 80035200 00000000 */ nop -/* 035E04 80035204 13000006 */ beqz $t8, .L80035220 -/* 035E08 80035208 8FBF001C */ lw $ra, 0x1c($sp) -/* 035E0C 8003520C C4286008 */ lwc1 $f8, %lo(D_800E6008)($at) -/* 035E10 80035210 8E190054 */ lw $t9, 0x54($s0) -/* 035E14 80035214 00000000 */ nop -/* 035E18 80035218 E7280028 */ swc1 $f8, 0x28($t9) -/* 035E1C 8003521C 8FBF001C */ lw $ra, 0x1c($sp) -.L80035220: -/* 035E20 80035220 8FB00018 */ lw $s0, 0x18($sp) -/* 035E24 80035224 03E00008 */ jr $ra -/* 035E28 80035228 27BD0058 */ addiu $sp, $sp, 0x58 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_ttdoor.s b/asm/non_matchings/unknown_032760/obj_loop_ttdoor.s deleted file mode 100644 index c9cd12e1..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_ttdoor.s +++ /dev/null @@ -1,236 +0,0 @@ -glabel obj_loop_ttdoor -/* 03CEE4 8003C2E4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 03CEE8 8003C2E8 AFBF0024 */ sw $ra, 0x24($sp) -/* 03CEEC 8003C2EC AFB10020 */ sw $s1, 0x20($sp) -/* 03CEF0 8003C2F0 AFB0001C */ sw $s0, 0x1c($sp) -/* 03CEF4 8003C2F4 AFA50034 */ sw $a1, 0x34($sp) -/* 03CEF8 8003C2F8 8C900064 */ lw $s0, 0x64($a0) -/* 03CEFC 8003C2FC 0C01BAA4 */ jal get_settings -/* 03CF00 8003C300 00808825 */ move $s1, $a0 -/* 03CF04 8003C304 AFA2002C */ sw $v0, 0x2c($sp) -/* 03CF08 8003C308 920E000F */ lbu $t6, 0xf($s0) -/* 03CF0C 8003C30C 00000000 */ nop -/* 03CF10 8003C310 15C00007 */ bnez $t6, .L8003C330 -/* 03CF14 8003C314 00000000 */ nop -/* 03CF18 8003C318 904F0016 */ lbu $t7, 0x16($v0) -/* 03CF1C 8003C31C 3C18800E */ lui $t8, %hi(D_800DCA94) # $t8, 0x800e -/* 03CF20 8003C320 030FC021 */ addu $t8, $t8, $t7 -/* 03CF24 8003C324 8318CA94 */ lb $t8, %lo(D_800DCA94)($t8) -/* 03CF28 8003C328 10000007 */ b .L8003C348 -/* 03CF2C 8003C32C A238003A */ sb $t8, 0x3a($s1) -.L8003C330: -/* 03CF30 8003C330 90590016 */ lbu $t9, 0x16($v0) -/* 03CF34 8003C334 3C08800E */ lui $t0, %hi(D_800DCA9C) # $t0, 0x800e -/* 03CF38 8003C338 01194021 */ addu $t0, $t0, $t9 -/* 03CF3C 8003C33C 8108CA9C */ lb $t0, %lo(D_800DCA9C)($t0) -/* 03CF40 8003C340 00000000 */ nop -/* 03CF44 8003C344 A228003A */ sb $t0, 0x3a($s1) -.L8003C348: -/* 03CF48 8003C348 8E23004C */ lw $v1, 0x4c($s1) -/* 03CF4C 8003C34C 920A0012 */ lbu $t2, 0x12($s0) -/* 03CF50 8003C350 90690013 */ lbu $t1, 0x13($v1) -/* 03CF54 8003C354 00000000 */ nop -/* 03CF58 8003C358 012A082A */ slt $at, $t1, $t2 -/* 03CF5C 8003C35C 10200043 */ beqz $at, .L8003C46C -/* 03CF60 8003C360 00000000 */ nop -/* 03CF64 8003C364 904B0016 */ lbu $t3, 0x16($v0) -/* 03CF68 8003C368 00000000 */ nop -/* 03CF6C 8003C36C 29610004 */ slti $at, $t3, 4 -/* 03CF70 8003C370 14200008 */ bnez $at, .L8003C394 -/* 03CF74 8003C374 00000000 */ nop -/* 03CF78 8003C378 8C4C0000 */ lw $t4, ($v0) -/* 03CF7C 8003C37C 00000000 */ nop -/* 03CF80 8003C380 858D0000 */ lh $t5, ($t4) -/* 03CF84 8003C384 00000000 */ nop -/* 03CF88 8003C388 29A1002F */ slti $at, $t5, 0x2f -/* 03CF8C 8003C38C 10200037 */ beqz $at, .L8003C46C -/* 03CF90 8003C390 00000000 */ nop -.L8003C394: -/* 03CF94 8003C394 8C620000 */ lw $v0, ($v1) -/* 03CF98 8003C398 00000000 */ nop -/* 03CF9C 8003C39C 10400033 */ beqz $v0, .L8003C46C -/* 03CFA0 8003C3A0 00000000 */ nop -/* 03CFA4 8003C3A4 8C4E0040 */ lw $t6, 0x40($v0) -/* 03CFA8 8003C3A8 24010001 */ li $at, 1 -/* 03CFAC 8003C3AC 81CF0054 */ lb $t7, 0x54($t6) -/* 03CFB0 8003C3B0 00000000 */ nop -/* 03CFB4 8003C3B4 15E1002D */ bne $t7, $at, .L8003C46C -/* 03CFB8 8003C3B8 00000000 */ nop -/* 03CFBC 8003C3BC 8C430064 */ lw $v1, 0x64($v0) -/* 03CFC0 8003C3C0 2404FFFF */ li $a0, -1 -/* 03CFC4 8003C3C4 84780000 */ lh $t8, ($v1) -/* 03CFC8 8003C3C8 00000000 */ nop -/* 03CFCC 8003C3CC 10980022 */ beq $a0, $t8, .L8003C458 -/* 03CFD0 8003C3D0 00000000 */ nop -/* 03CFD4 8003C3D4 8E39005C */ lw $t9, 0x5c($s1) -/* 03CFD8 8003C3D8 00000000 */ nop -/* 03CFDC 8003C3DC 8F280100 */ lw $t0, 0x100($t9) -/* 03CFE0 8003C3E0 00000000 */ nop -/* 03CFE4 8003C3E4 1448001C */ bne $v0, $t0, .L8003C458 -/* 03CFE8 8003C3E8 00000000 */ nop -/* 03CFEC 8003C3EC 82090013 */ lb $t1, 0x13($s0) -/* 03CFF0 8003C3F0 00000000 */ nop -/* 03CFF4 8003C3F4 10890017 */ beq $a0, $t1, .L8003C454 -/* 03CFF8 8003C3F8 240D012C */ li $t5, 300 -/* 03CFFC 8003C3FC 0C030D00 */ jal func_800C3400 -/* 03D000 8003C400 00000000 */ nop -/* 03D004 8003C404 14400013 */ bnez $v0, .L8003C454 -/* 03D008 8003C408 240D012C */ li $t5, 300 -/* 03D00C 8003C40C 860A000C */ lh $t2, 0xc($s0) -/* 03D010 8003C410 00000000 */ nop -/* 03D014 8003C414 1540000F */ bnez $t2, .L8003C454 -/* 03D018 8003C418 240D012C */ li $t5, 300 -/* 03D01C 8003C41C 0C000326 */ jal set_music_fade_timer -/* 03D020 8003C420 2404FFF8 */ li $a0, -8 -/* 03D024 8003C424 240B008C */ li $t3, 140 -/* 03D028 8003C428 AE0B0008 */ sw $t3, 8($s0) -/* 03D02C 8003C42C 0C00030E */ jal set_sndfx_player_voice_limit -/* 03D030 8003C430 24040010 */ li $a0, 16 -/* 03D034 8003C434 0C0006F0 */ jal play_sequence -/* 03D038 8003C438 24040011 */ li $a0, 17 -/* 03D03C 8003C43C 82040013 */ lb $a0, 0x13($s0) -/* 03D040 8003C440 00000000 */ nop -/* 03D044 8003C444 308C00FF */ andi $t4, $a0, 0xff -/* 03D048 8003C448 0C030C7B */ jal func_800C31EC -/* 03D04C 8003C44C 01802025 */ move $a0, $t4 -/* 03D050 8003C450 240D012C */ li $t5, 300 -.L8003C454: -/* 03D054 8003C454 A60D000C */ sh $t5, 0xc($s0) -.L8003C458: -/* 03D058 8003C458 0C030D00 */ jal func_800C3400 -/* 03D05C 8003C45C 00000000 */ nop -/* 03D060 8003C460 10400002 */ beqz $v0, .L8003C46C -/* 03D064 8003C464 240E012C */ li $t6, 300 -/* 03D068 8003C468 A60E000C */ sh $t6, 0xc($s0) -.L8003C46C: -/* 03D06C 8003C46C 8E0F0008 */ lw $t7, 8($s0) -/* 03D070 8003C470 00000000 */ nop -/* 03D074 8003C474 11E00011 */ beqz $t7, .L8003C4BC -/* 03D078 8003C478 00000000 */ nop -/* 03D07C 8003C47C 0C000702 */ jal func_80001C08 -/* 03D080 8003C480 00000000 */ nop -/* 03D084 8003C484 1440000D */ bnez $v0, .L8003C4BC -/* 03D088 8003C488 00000000 */ nop -/* 03D08C 8003C48C 8FA30034 */ lw $v1, 0x34($sp) -/* 03D090 8003C490 8E020008 */ lw $v0, 8($s0) -/* 03D094 8003C494 24040008 */ li $a0, 8 -/* 03D098 8003C498 0062082A */ slt $at, $v1, $v0 -/* 03D09C 8003C49C 10200003 */ beqz $at, .L8003C4AC -/* 03D0A0 8003C4A0 0043C023 */ subu $t8, $v0, $v1 -/* 03D0A4 8003C4A4 10000005 */ b .L8003C4BC -/* 03D0A8 8003C4A8 AE180008 */ sw $t8, 8($s0) -.L8003C4AC: -/* 03D0AC 8003C4AC 0C000326 */ jal set_music_fade_timer -/* 03D0B0 8003C4B0 AE000008 */ sw $zero, 8($s0) -/* 03D0B4 8003C4B4 0C00030E */ jal set_sndfx_player_voice_limit -/* 03D0B8 8003C4B8 24040006 */ li $a0, 6 -.L8003C4BC: -/* 03D0BC 8003C4BC 8602000C */ lh $v0, 0xc($s0) -/* 03D0C0 8003C4C0 8FA30034 */ lw $v1, 0x34($sp) -/* 03D0C4 8003C4C4 18400003 */ blez $v0, .L8003C4D4 -/* 03D0C8 8003C4C8 0043C823 */ subu $t9, $v0, $v1 -/* 03D0CC 8003C4CC 10000002 */ b .L8003C4D8 -/* 03D0D0 8003C4D0 A619000C */ sh $t9, 0xc($s0) -.L8003C4D4: -/* 03D0D4 8003C4D4 A600000C */ sh $zero, 0xc($s0) -.L8003C4D8: -/* 03D0D8 8003C4D8 8FA8002C */ lw $t0, 0x2c($sp) -/* 03D0DC 8003C4DC 24040001 */ li $a0, 1 -/* 03D0E0 8003C4E0 91090016 */ lbu $t1, 0x16($t0) -/* 03D0E4 8003C4E4 00000000 */ nop -/* 03D0E8 8003C4E8 29210004 */ slti $at, $t1, 4 -/* 03D0EC 8003C4EC 14200016 */ bnez $at, .L8003C548 -/* 03D0F0 8003C4F0 00000000 */ nop -/* 03D0F4 8003C4F4 8E2A004C */ lw $t2, 0x4c($s1) -/* 03D0F8 8003C4F8 920C0012 */ lbu $t4, 0x12($s0) -/* 03D0FC 8003C4FC 914B0013 */ lbu $t3, 0x13($t2) -/* 03D100 8003C500 00000000 */ nop -/* 03D104 8003C504 016C082A */ slt $at, $t3, $t4 -/* 03D108 8003C508 1020000F */ beqz $at, .L8003C548 -/* 03D10C 8003C50C 00000000 */ nop -/* 03D110 8003C510 8D0D0000 */ lw $t5, ($t0) -/* 03D114 8003C514 00000000 */ nop -/* 03D118 8003C518 85AE0000 */ lh $t6, ($t5) -/* 03D11C 8003C51C 00000000 */ nop -/* 03D120 8003C520 29C1002F */ slti $at, $t6, 0x2f -/* 03D124 8003C524 14200008 */ bnez $at, .L8003C548 -/* 03D128 8003C528 00000000 */ nop -/* 03D12C 8003C52C 86230000 */ lh $v1, ($s1) -/* 03D130 8003C530 8E2F007C */ lw $t7, 0x7c($s1) -/* 03D134 8003C534 00000000 */ nop -/* 03D138 8003C538 006F1023 */ subu $v0, $v1, $t7 -/* 03D13C 8003C53C 0002C400 */ sll $t8, $v0, 0x10 -/* 03D140 8003C540 10000007 */ b .L8003C560 -/* 03D144 8003C544 00181403 */ sra $v0, $t8, 0x10 -.L8003C548: -/* 03D148 8003C548 86230000 */ lh $v1, ($s1) -/* 03D14C 8003C54C 8E290078 */ lw $t1, 0x78($s1) -/* 03D150 8003C550 00000000 */ nop -/* 03D154 8003C554 00691023 */ subu $v0, $v1, $t1 -/* 03D158 8003C558 00025400 */ sll $t2, $v0, 0x10 -/* 03D15C 8003C55C 000A1403 */ sra $v0, $t2, 0x10 -.L8003C560: -/* 03D160 8003C560 000260C3 */ sra $t4, $v0, 3 -/* 03D164 8003C564 000C4400 */ sll $t0, $t4, 0x10 -/* 03D168 8003C568 00081403 */ sra $v0, $t0, 0x10 -/* 03D16C 8003C56C 28410201 */ slti $at, $v0, 0x201 -/* 03D170 8003C570 14200003 */ bnez $at, .L8003C580 -/* 03D174 8003C574 2841FE00 */ slti $at, $v0, -0x200 -/* 03D178 8003C578 24020200 */ li $v0, 512 -/* 03D17C 8003C57C 2841FE00 */ slti $at, $v0, -0x200 -.L8003C580: -/* 03D180 8003C580 10200003 */ beqz $at, .L8003C590 -/* 03D184 8003C584 00627023 */ subu $t6, $v1, $v0 -/* 03D188 8003C588 2402FE00 */ li $v0, -512 -/* 03D18C 8003C58C 00627023 */ subu $t6, $v1, $v0 -.L8003C590: -/* 03D190 8003C590 14400002 */ bnez $v0, .L8003C59C -/* 03D194 8003C594 A62E0000 */ sh $t6, ($s1) -/* 03D198 8003C598 00002025 */ move $a0, $zero -.L8003C59C: -/* 03D19C 8003C59C 1080000E */ beqz $a0, .L8003C5D8 -/* 03D1A0 8003C5A0 00000000 */ nop -/* 03D1A4 8003C5A4 8E0F0004 */ lw $t7, 4($s0) -/* 03D1A8 8003C5A8 24040222 */ li $a0, 546 -/* 03D1AC 8003C5AC 15E00011 */ bnez $t7, .L8003C5F4 -/* 03D1B0 8003C5B0 24180001 */ li $t8, 1 -/* 03D1B4 8003C5B4 8E25000C */ lw $a1, 0xc($s1) -/* 03D1B8 8003C5B8 8E260010 */ lw $a2, 0x10($s1) -/* 03D1BC 8003C5BC 8E270014 */ lw $a3, 0x14($s1) -/* 03D1C0 8003C5C0 26190004 */ addiu $t9, $s0, 4 -/* 03D1C4 8003C5C4 AFB90014 */ sw $t9, 0x14($sp) -/* 03D1C8 8003C5C8 0C002556 */ jal func_80009558 -/* 03D1CC 8003C5CC AFB80010 */ sw $t8, 0x10($sp) -/* 03D1D0 8003C5D0 10000009 */ b .L8003C5F8 -/* 03D1D4 8003C5D4 8E2A004C */ lw $t2, 0x4c($s1) -.L8003C5D8: -/* 03D1D8 8003C5D8 8E020004 */ lw $v0, 4($s0) -/* 03D1DC 8003C5DC 00000000 */ nop -/* 03D1E0 8003C5E0 10400004 */ beqz $v0, .L8003C5F4 -/* 03D1E4 8003C5E4 00000000 */ nop -/* 03D1E8 8003C5E8 0C0025BE */ jal func_800096F8 -/* 03D1EC 8003C5EC 00402025 */ move $a0, $v0 -/* 03D1F0 8003C5F0 AE000004 */ sw $zero, 4($s0) -.L8003C5F4: -/* 03D1F4 8003C5F4 8E2A004C */ lw $t2, 0x4c($s1) -.L8003C5F8: -/* 03D1F8 8003C5F8 240900FF */ li $t1, 255 -/* 03D1FC 8003C5FC A1490013 */ sb $t1, 0x13($t2) -/* 03D200 8003C600 8E2B004C */ lw $t3, 0x4c($s1) -/* 03D204 8003C604 00000000 */ nop -/* 03D208 8003C608 AD600000 */ sw $zero, ($t3) -/* 03D20C 8003C60C 8E23004C */ lw $v1, 0x4c($s1) -/* 03D210 8003C610 00000000 */ nop -/* 03D214 8003C614 846C0014 */ lh $t4, 0x14($v1) -/* 03D218 8003C618 00000000 */ nop -/* 03D21C 8003C61C 3188FFF7 */ andi $t0, $t4, 0xfff7 -/* 03D220 8003C620 A4680014 */ sh $t0, 0x14($v1) -/* 03D224 8003C624 8E2D005C */ lw $t5, 0x5c($s1) -/* 03D228 8003C628 00000000 */ nop -/* 03D22C 8003C62C ADA00100 */ sw $zero, 0x100($t5) -/* 03D230 8003C630 8FBF0024 */ lw $ra, 0x24($sp) -/* 03D234 8003C634 8FB10020 */ lw $s1, 0x20($sp) -/* 03D238 8003C638 8FB0001C */ lw $s0, 0x1c($sp) -/* 03D23C 8003C63C 03E00008 */ jr $ra -/* 03D240 8003C640 27BD0030 */ addiu $sp, $sp, 0x30 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_weather.s b/asm/non_matchings/unknown_032760/obj_loop_weather.s deleted file mode 100644 index 6e47a6e6..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_weather.s +++ /dev/null @@ -1,73 +0,0 @@ -glabel obj_loop_weather -/* 041420 80040820 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 041424 80040824 AFBF001C */ sw $ra, 0x1c($sp) -/* 041428 80040828 AFA40058 */ sw $a0, 0x58($sp) -/* 04142C 8004082C 0C019888 */ jal get_object_render_stack_pos -/* 041430 80040830 AFA5005C */ sw $a1, 0x5c($sp) -/* 041434 80040834 27A40050 */ addiu $a0, $sp, 0x50 -/* 041438 80040838 0C006E9D */ jal get_racer_objects -/* 04143C 8004083C AFA20054 */ sw $v0, 0x54($sp) -/* 041440 80040840 8FA50050 */ lw $a1, 0x50($sp) -/* 041444 80040844 8FA60054 */ lw $a2, 0x54($sp) -/* 041448 80040848 8FA80058 */ lw $t0, 0x58($sp) -/* 04144C 8004084C 10A00033 */ beqz $a1, .L8004091C -/* 041450 80040850 24A4FFFF */ addiu $a0, $a1, -1 -/* 041454 80040854 00047080 */ sll $t6, $a0, 2 -/* 041458 80040858 01C23821 */ addu $a3, $t6, $v0 -/* 04145C 8004085C 2443FFFC */ addiu $v1, $v0, -4 -.L80040860: -/* 041460 80040860 8C640004 */ lw $a0, 4($v1) -/* 041464 80040864 24630004 */ addiu $v1, $v1, 4 -/* 041468 80040868 0067082B */ sltu $at, $v1, $a3 -/* 04146C 8004086C 8C850064 */ lw $a1, 0x64($a0) -/* 041470 80040870 10200005 */ beqz $at, .L80040888 -/* 041474 80040874 00000000 */ nop -/* 041478 80040878 84AF0000 */ lh $t7, ($a1) -/* 04147C 8004087C 00000000 */ nop -/* 041480 80040880 14CFFFF7 */ bne $a2, $t7, .L80040860 -/* 041484 80040884 00000000 */ nop -.L80040888: -/* 041488 80040888 C504000C */ lwc1 $f4, 0xc($t0) -/* 04148C 8004088C C486000C */ lwc1 $f6, 0xc($a0) -/* 041490 80040890 C5080014 */ lwc1 $f8, 0x14($t0) -/* 041494 80040894 46062001 */ sub.s $f0, $f4, $f6 -/* 041498 80040898 C48A0014 */ lwc1 $f10, 0x14($a0) -/* 04149C 8004089C 46000402 */ mul.s $f16, $f0, $f0 -/* 0414A0 800408A0 460A4081 */ sub.s $f2, $f8, $f10 -/* 0414A4 800408A4 C50C0078 */ lwc1 $f12, 0x78($t0) -/* 0414A8 800408A8 8D03003C */ lw $v1, 0x3c($t0) -/* 0414AC 800408AC 46021482 */ mul.s $f18, $f2, $f2 -/* 0414B0 800408B0 46128100 */ add.s $f4, $f16, $f18 -/* 0414B4 800408B4 460C203E */ c.le.s $f4, $f12 -/* 0414B8 800408B8 00000000 */ nop -/* 0414BC 800408BC 45000018 */ bc1f .L80040920 -/* 0414C0 800408C0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0414C4 800408C4 906A0010 */ lbu $t2, 0x10($v1) -/* 0414C8 800408C8 24020101 */ li $v0, 257 -/* 0414CC 800408CC 01420019 */ multu $t2, $v0 -/* 0414D0 800408D0 906B0011 */ lbu $t3, 0x11($v1) -/* 0414D4 800408D4 8464000A */ lh $a0, 0xa($v1) -/* 0414D8 800408D8 8465000C */ lh $a1, 0xc($v1) -/* 0414DC 800408DC 8466000E */ lh $a2, 0xe($v1) -/* 0414E0 800408E0 0004C200 */ sll $t8, $a0, 8 -/* 0414E4 800408E4 0005CA00 */ sll $t9, $a1, 8 -/* 0414E8 800408E8 00064A00 */ sll $t1, $a2, 8 -/* 0414EC 800408EC 01203025 */ move $a2, $t1 -/* 0414F0 800408F0 03202825 */ move $a1, $t9 -/* 0414F4 800408F4 03002025 */ move $a0, $t8 -/* 0414F8 800408F8 00003812 */ mflo $a3 -/* 0414FC 800408FC 00000000 */ nop -/* 041500 80040900 00000000 */ nop -/* 041504 80040904 01620019 */ multu $t3, $v0 -/* 041508 80040908 00006012 */ mflo $t4 -/* 04150C 8004090C AFAC0010 */ sw $t4, 0x10($sp) -/* 041510 80040910 846D0012 */ lh $t5, 0x12($v1) -/* 041514 80040914 0C02AF17 */ jal func_800ABC5C -/* 041518 80040918 AFAD0014 */ sw $t5, 0x14($sp) -.L8004091C: -/* 04151C 8004091C 8FBF001C */ lw $ra, 0x1c($sp) -.L80040920: -/* 041520 80040920 27BD0058 */ addiu $sp, $sp, 0x58 -/* 041524 80040924 03E00008 */ jr $ra -/* 041528 80040928 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s b/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s deleted file mode 100644 index 9dd98d02..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_wizpigship.s +++ /dev/null @@ -1,232 +0,0 @@ -glabel obj_loop_wizpigship -/* 038978 80037D78 27BDFED8 */ addiu $sp, $sp, -0x128 -/* 03897C 80037D7C AFB00038 */ sw $s0, 0x38($sp) -/* 038980 80037D80 00808025 */ move $s0, $a0 -/* 038984 80037D84 AFBF005C */ sw $ra, 0x5c($sp) -/* 038988 80037D88 AFB1003C */ sw $s1, 0x3c($sp) -/* 03898C 80037D8C 00A08825 */ move $s1, $a1 -/* 038990 80037D90 AFBE0058 */ sw $fp, 0x58($sp) -/* 038994 80037D94 AFB70054 */ sw $s7, 0x54($sp) -/* 038998 80037D98 AFB60050 */ sw $s6, 0x50($sp) -/* 03899C 80037D9C AFB5004C */ sw $s5, 0x4c($sp) -/* 0389A0 80037DA0 AFB40048 */ sw $s4, 0x48($sp) -/* 0389A4 80037DA4 AFB30044 */ sw $s3, 0x44($sp) -/* 0389A8 80037DA8 AFB20040 */ sw $s2, 0x40($sp) -/* 0389AC 80037DAC E7B70030 */ swc1 $f23, 0x30($sp) -/* 0389B0 80037DB0 E7B60034 */ swc1 $f22, 0x34($sp) -/* 0389B4 80037DB4 E7B50028 */ swc1 $f21, 0x28($sp) -/* 0389B8 80037DB8 E7B4002C */ swc1 $f20, 0x2c($sp) -/* 0389BC 80037DBC 0C007D18 */ jal func_8001F460 -/* 0389C0 80037DC0 02003025 */ move $a2, $s0 -/* 0389C4 80037DC4 8E0E0068 */ lw $t6, 0x68($s0) -/* 0389C8 80037DC8 00000000 */ nop -/* 0389CC 80037DCC 8DC30000 */ lw $v1, ($t6) -/* 0389D0 80037DD0 00000000 */ nop -/* 0389D4 80037DD4 106000B9 */ beqz $v1, .L800380BC -/* 0389D8 80037DD8 8FBF005C */ lw $ra, 0x5c($sp) -/* 0389DC 80037DDC 8E02007C */ lw $v0, 0x7c($s0) -/* 0389E0 80037DE0 8C730000 */ lw $s3, ($v1) -/* 0389E4 80037DE4 18400003 */ blez $v0, .L80037DF4 -/* 0389E8 80037DE8 00517823 */ subu $t7, $v0, $s1 -/* 0389EC 80037DEC 10000002 */ b .L80037DF8 -/* 0389F0 80037DF0 AE0F007C */ sw $t7, 0x7c($s0) -.L80037DF4: -/* 0389F4 80037DF4 AE00007C */ sw $zero, 0x7c($s0) -.L80037DF8: -/* 0389F8 80037DF8 8E180060 */ lw $t8, 0x60($s0) -/* 0389FC 80037DFC 00000000 */ nop -/* 038A00 80037E00 130000AE */ beqz $t8, .L800380BC -/* 038A04 80037E04 8FBF005C */ lw $ra, 0x5c($sp) -/* 038A08 80037E08 8E19007C */ lw $t9, 0x7c($s0) -/* 038A0C 80037E0C 00000000 */ nop -/* 038A10 80037E10 172000AA */ bnez $t9, .L800380BC -/* 038A14 80037E14 8FBF005C */ lw $ra, 0x5c($sp) -/* 038A18 80037E18 8E090074 */ lw $t1, 0x74($s0) -/* 038A1C 80037E1C 240B0014 */ li $t3, 20 -/* 038A20 80037E20 312A0001 */ andi $t2, $t1, 1 -/* 038A24 80037E24 114000A4 */ beqz $t2, .L800380B8 -/* 038A28 80037E28 27A400CC */ addiu $a0, $sp, 0xcc -/* 038A2C 80037E2C AE0B007C */ sw $t3, 0x7c($s0) -/* 038A30 80037E30 0C01BF0C */ jal object_transform_to_matrix -/* 038A34 80037E34 02002825 */ move $a1, $s0 -/* 038A38 80037E38 4480A000 */ mtc1 $zero, $f20 -/* 038A3C 80037E3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 038A40 80037E40 44812000 */ mtc1 $at, $f4 -/* 038A44 80037E44 E7B40078 */ swc1 $f20, 0x78($sp) -/* 038A48 80037E48 E7B4007C */ swc1 $f20, 0x7c($sp) -/* 038A4C 80037E4C E7B40080 */ swc1 $f20, 0x80($sp) -/* 038A50 80037E50 E7A40074 */ swc1 $f4, 0x74($sp) -/* 038A54 80037E54 860C0000 */ lh $t4, ($s0) -/* 038A58 80037E58 27B4008C */ addiu $s4, $sp, 0x8c -/* 038A5C 80037E5C A7AC006C */ sh $t4, 0x6c($sp) -/* 038A60 80037E60 860D0002 */ lh $t5, 2($s0) -/* 038A64 80037E64 A7A00070 */ sh $zero, 0x70($sp) -/* 038A68 80037E68 02802025 */ move $a0, $s4 -/* 038A6C 80037E6C 27A5006C */ addiu $a1, $sp, 0x6c -/* 038A70 80037E70 0C01BF0C */ jal object_transform_to_matrix -/* 038A74 80037E74 A7AD006E */ sh $t5, 0x6e($sp) -/* 038A78 80037E78 8E020060 */ lw $v0, 0x60($s0) -/* 038A7C 80037E7C 00008825 */ move $s1, $zero -/* 038A80 80037E80 8C4E0000 */ lw $t6, ($v0) -/* 038A84 80037E84 3C01C1F0 */ li $at, 0xC1F00000 # -30.000000 -/* 038A88 80037E88 19C0008B */ blez $t6, .L800380B8 -/* 038A8C 80037E8C 27BE0084 */ addiu $fp, $sp, 0x84 -/* 038A90 80037E90 4481B000 */ mtc1 $at, $f22 -/* 038A94 80037E94 27B70114 */ addiu $s7, $sp, 0x114 -/* 038A98 80037E98 27B60118 */ addiu $s6, $sp, 0x118 -/* 038A9C 80037E9C 27B5011C */ addiu $s5, $sp, 0x11c -/* 038AA0 80037EA0 2412000A */ li $s2, 10 -.L80037EA4: -/* 038AA4 80037EA4 8C4F002C */ lw $t7, 0x2c($v0) -/* 038AA8 80037EA8 00000000 */ nop -/* 038AAC 80037EAC 01F1C021 */ addu $t8, $t7, $s1 -/* 038AB0 80037EB0 83030000 */ lb $v1, ($t8) -/* 038AB4 80037EB4 00000000 */ nop -/* 038AB8 80037EB8 04600078 */ bltz $v1, .L8003809C -/* 038ABC 80037EBC 00000000 */ nop -/* 038AC0 80037EC0 86790018 */ lh $t9, 0x18($s3) -/* 038AC4 80037EC4 00000000 */ nop -/* 038AC8 80037EC8 0079082A */ slt $at, $v1, $t9 -/* 038ACC 80037ECC 10200073 */ beqz $at, .L8003809C -/* 038AD0 80037ED0 00000000 */ nop -/* 038AD4 80037ED4 8E080044 */ lw $t0, 0x44($s0) -/* 038AD8 80037ED8 00000000 */ nop -/* 038ADC 80037EDC 1100006F */ beqz $t0, .L8003809C -/* 038AE0 80037EE0 00000000 */ nop -/* 038AE4 80037EE4 8E690014 */ lw $t1, 0x14($s3) -/* 038AE8 80037EE8 00031040 */ sll $v0, $v1, 1 -/* 038AEC 80037EEC 01225021 */ addu $t2, $t1, $v0 -/* 038AF0 80037EF0 854B0000 */ lh $t3, ($t2) -/* 038AF4 80037EF4 27A400CC */ addiu $a0, $sp, 0xcc -/* 038AF8 80037EF8 01720019 */ multu $t3, $s2 -/* 038AFC 80037EFC 00006012 */ mflo $t4 -/* 038B00 80037F00 010C6821 */ addu $t5, $t0, $t4 -/* 038B04 80037F04 85AE0000 */ lh $t6, ($t5) -/* 038B08 80037F08 00000000 */ nop -/* 038B0C 80037F0C 448E3000 */ mtc1 $t6, $f6 -/* 038B10 80037F10 00000000 */ nop -/* 038B14 80037F14 46803220 */ cvt.s.w $f8, $f6 -/* 038B18 80037F18 E7A8011C */ swc1 $f8, 0x11c($sp) -/* 038B1C 80037F1C 8E780014 */ lw $t8, 0x14($s3) -/* 038B20 80037F20 8E0F0044 */ lw $t7, 0x44($s0) -/* 038B24 80037F24 0302C821 */ addu $t9, $t8, $v0 -/* 038B28 80037F28 87290000 */ lh $t1, ($t9) -/* 038B2C 80037F2C 8FA5011C */ lw $a1, 0x11c($sp) -/* 038B30 80037F30 01320019 */ multu $t1, $s2 -/* 038B34 80037F34 00005012 */ mflo $t2 -/* 038B38 80037F38 01EA5821 */ addu $t3, $t7, $t2 -/* 038B3C 80037F3C 856C0002 */ lh $t4, 2($t3) -/* 038B40 80037F40 00000000 */ nop -/* 038B44 80037F44 448C5000 */ mtc1 $t4, $f10 -/* 038B48 80037F48 00000000 */ nop -/* 038B4C 80037F4C 46805420 */ cvt.s.w $f16, $f10 -/* 038B50 80037F50 E7B00118 */ swc1 $f16, 0x118($sp) -/* 038B54 80037F54 8E6E0014 */ lw $t6, 0x14($s3) -/* 038B58 80037F58 8E0D0044 */ lw $t5, 0x44($s0) -/* 038B5C 80037F5C 01C2C021 */ addu $t8, $t6, $v0 -/* 038B60 80037F60 87190000 */ lh $t9, ($t8) -/* 038B64 80037F64 8FA60118 */ lw $a2, 0x118($sp) -/* 038B68 80037F68 03320019 */ multu $t9, $s2 -/* 038B6C 80037F6C 00004812 */ mflo $t1 -/* 038B70 80037F70 01A97821 */ addu $t7, $t5, $t1 -/* 038B74 80037F74 85EA0004 */ lh $t2, 4($t7) -/* 038B78 80037F78 AFB70018 */ sw $s7, 0x18($sp) -/* 038B7C 80037F7C 448A9000 */ mtc1 $t2, $f18 -/* 038B80 80037F80 AFB60014 */ sw $s6, 0x14($sp) -/* 038B84 80037F84 46809120 */ cvt.s.w $f4, $f18 -/* 038B88 80037F88 AFB50010 */ sw $s5, 0x10($sp) -/* 038B8C 80037F8C E7A40114 */ swc1 $f4, 0x114($sp) -/* 038B90 80037F90 8FA70114 */ lw $a3, 0x114($sp) -/* 038B94 80037F94 0C01BD93 */ jal guMtxXFMF -/* 038B98 80037F98 00000000 */ nop -/* 038B9C 80037F9C 444BF800 */ cfc1 $t3, $31 -/* 038BA0 80037FA0 C7A6011C */ lwc1 $f6, 0x11c($sp) -/* 038BA4 80037FA4 35610003 */ ori $at, $t3, 3 -/* 038BA8 80037FA8 38210002 */ xori $at, $at, 2 -/* 038BAC 80037FAC 44C1F800 */ ctc1 $at, $31 -/* 038BB0 80037FB0 C7AA0118 */ lwc1 $f10, 0x118($sp) -/* 038BB4 80037FB4 46003224 */ cvt.w.s $f8, $f6 -/* 038BB8 80037FB8 C7B20114 */ lwc1 $f18, 0x114($sp) -/* 038BBC 80037FBC 44CBF800 */ ctc1 $t3, $31 -/* 038BC0 80037FC0 440C4000 */ mfc1 $t4, $f8 -/* 038BC4 80037FC4 24090008 */ li $t1, 8 -/* 038BC8 80037FC8 444EF800 */ cfc1 $t6, $31 -/* 038BCC 80037FCC 240F00C6 */ li $t7, 198 -/* 038BD0 80037FD0 35C10003 */ ori $at, $t6, 3 -/* 038BD4 80037FD4 38210002 */ xori $at, $at, 2 -/* 038BD8 80037FD8 44C1F800 */ ctc1 $at, $31 -/* 038BDC 80037FDC A3A90085 */ sb $t1, 0x85($sp) -/* 038BE0 80037FE0 46005424 */ cvt.w.s $f16, $f10 -/* 038BE4 80037FE4 A3AF0084 */ sb $t7, 0x84($sp) -/* 038BE8 80037FE8 44CEF800 */ ctc1 $t6, $31 -/* 038BEC 80037FEC 44188000 */ mfc1 $t8, $f16 -/* 038BF0 80037FF0 03C02025 */ move $a0, $fp -/* 038BF4 80037FF4 4459F800 */ cfc1 $t9, $31 -/* 038BF8 80037FF8 24050001 */ li $a1, 1 -/* 038BFC 80037FFC 37210003 */ ori $at, $t9, 3 -/* 038C00 80038000 38210002 */ xori $at, $at, 2 -/* 038C04 80038004 44C1F800 */ ctc1 $at, $31 -/* 038C08 80038008 A7AC0086 */ sh $t4, 0x86($sp) -/* 038C0C 8003800C 46009124 */ cvt.w.s $f4, $f18 -/* 038C10 80038010 A7B80088 */ sh $t8, 0x88($sp) -/* 038C14 80038014 440D2000 */ mfc1 $t5, $f4 -/* 038C18 80038018 44D9F800 */ ctc1 $t9, $31 -/* 038C1C 8003801C 0C003A95 */ jal spawn_object -/* 038C20 80038020 A7AD008A */ sh $t5, 0x8a($sp) -/* 038C24 80038024 1040001D */ beqz $v0, .L8003809C -/* 038C28 80038028 34018000 */ li $at, 32768 -/* 038C2C 8003802C AC40003C */ sw $zero, 0x3c($v0) -/* 038C30 80038030 860A0000 */ lh $t2, ($s0) -/* 038C34 80038034 2418003C */ li $t8, 60 -/* 038C38 80038038 01415821 */ addu $t3, $t2, $at -/* 038C3C 8003803C A44B0000 */ sh $t3, ($v0) -/* 038C40 80038040 860C0002 */ lh $t4, 2($s0) -/* 038C44 80038044 AC580078 */ sw $t8, 0x78($v0) -/* 038C48 80038048 000C7023 */ negu $t6, $t4 -/* 038C4C 8003804C A44E0002 */ sh $t6, 2($v0) -/* 038C50 80038050 4405A000 */ mfc1 $a1, $f20 -/* 038C54 80038054 4406A000 */ mfc1 $a2, $f20 -/* 038C58 80038058 4407B000 */ mfc1 $a3, $f22 -/* 038C5C 8003805C 2459001C */ addiu $t9, $v0, 0x1c -/* 038C60 80038060 244D0020 */ addiu $t5, $v0, 0x20 -/* 038C64 80038064 24490024 */ addiu $t1, $v0, 0x24 -/* 038C68 80038068 AFA90018 */ sw $t1, 0x18($sp) -/* 038C6C 8003806C AFAD0014 */ sw $t5, 0x14($sp) -/* 038C70 80038070 AFB90010 */ sw $t9, 0x10($sp) -/* 038C74 80038074 0C01BD93 */ jal guMtxXFMF -/* 038C78 80038078 02802025 */ move $a0, $s4 -/* 038C7C 8003807C 8E05000C */ lw $a1, 0xc($s0) -/* 038C80 80038080 8E060010 */ lw $a2, 0x10($s0) -/* 038C84 80038084 8E070014 */ lw $a3, 0x14($s0) -/* 038C88 80038088 240F0004 */ li $t7, 4 -/* 038C8C 8003808C AFAF0010 */ sw $t7, 0x10($sp) -/* 038C90 80038090 AFA00014 */ sw $zero, 0x14($sp) -/* 038C94 80038094 0C002556 */ jal func_80009558 -/* 038C98 80038098 24040133 */ li $a0, 307 -.L8003809C: -/* 038C9C 8003809C 8E020060 */ lw $v0, 0x60($s0) -/* 038CA0 800380A0 26310001 */ addiu $s1, $s1, 1 -/* 038CA4 800380A4 8C4A0000 */ lw $t2, ($v0) -/* 038CA8 800380A8 00000000 */ nop -/* 038CAC 800380AC 022A082A */ slt $at, $s1, $t2 -/* 038CB0 800380B0 1420FF7C */ bnez $at, .L80037EA4 -/* 038CB4 800380B4 00000000 */ nop -.L800380B8: -/* 038CB8 800380B8 8FBF005C */ lw $ra, 0x5c($sp) -.L800380BC: -/* 038CBC 800380BC C7B50028 */ lwc1 $f21, 0x28($sp) -/* 038CC0 800380C0 C7B4002C */ lwc1 $f20, 0x2c($sp) -/* 038CC4 800380C4 C7B70030 */ lwc1 $f23, 0x30($sp) -/* 038CC8 800380C8 C7B60034 */ lwc1 $f22, 0x34($sp) -/* 038CCC 800380CC 8FB00038 */ lw $s0, 0x38($sp) -/* 038CD0 800380D0 8FB1003C */ lw $s1, 0x3c($sp) -/* 038CD4 800380D4 8FB20040 */ lw $s2, 0x40($sp) -/* 038CD8 800380D8 8FB30044 */ lw $s3, 0x44($sp) -/* 038CDC 800380DC 8FB40048 */ lw $s4, 0x48($sp) -/* 038CE0 800380E0 8FB5004C */ lw $s5, 0x4c($sp) -/* 038CE4 800380E4 8FB60050 */ lw $s6, 0x50($sp) -/* 038CE8 800380E8 8FB70054 */ lw $s7, 0x54($sp) -/* 038CEC 800380EC 8FBE0058 */ lw $fp, 0x58($sp) -/* 038CF0 800380F0 03E00008 */ jr $ra -/* 038CF4 800380F4 27BD0128 */ addiu $sp, $sp, 0x128 - diff --git a/include/level_object_entries.h b/include/level_object_entries.h index ec9a4ec8..95295e49 100644 --- a/include/level_object_entries.h +++ b/include/level_object_entries.h @@ -596,6 +596,12 @@ typedef struct LevelObjectEntry80011AD0 { u8 unkD; } LevelObjectEntry80011AD0; +typedef struct LevelObjectEntry8003FC44 { + LevelObjectEntryCommon common; + s8 unk9; + s8 unkA; +} LevelObjectEntry8003FC44; + typedef struct LevelObjectEntry { union { LevelObjectEntry_Racer racer; diff --git a/include/sound_ids.h b/include/sound_ids.h index 8e3de590..9a85fa73 100644 --- a/include/sound_ids.h +++ b/include/sound_ids.h @@ -12,7 +12,7 @@ // Anything I've labelled as UNK, without a comment, is something I didn't get an audible sound from. enum SoundID { -/* 0x0000 */ SOUND_UNK00, +/* 0x0000 */ SOUND_NONE, /* 0x0001 */ SOUND_CAR_SLIDE, /* 0x0002 */ SOUND_CAR_SLIDE2, // Not sure what this is for. I thought it was for the brakes originally, but there's clearly a brake /* 0x0003 */ SOUND_INTRO_PLANE, @@ -558,7 +558,7 @@ enum SoundID { /* 0x021F */ SOUND_VOICE_DIDDY_NEGATIVE8, /* 0x0220 */ SOUND_VOICE_BLUEY_REMATCH4, // "If you can beat me again..." /* 0x0221 */ SOUND_VOICE_BLUEY_TROPHY2, // "Goodbye kid" -/* 0x0222 */ SOUND_UNK_222, // I'm guessing rolling snowballs +/* 0x0222 */ SOUND_DOOR_OPEN, /* 0x0223 */ SOUND_UNK_223, // The sound of hitting something /* 0x0224 */ SOUND_UNK_224, // Same /* 0x0225 */ SOUND_VOICE_TRICKY_OW, diff --git a/include/structs.h b/include/structs.h index 599f6f49..b329bfb9 100644 --- a/include/structs.h +++ b/include/structs.h @@ -469,10 +469,11 @@ typedef struct ObjectModel { /* 0x08 */ Triangle* triangles; /* 0x0C */ s32* unkC; /* 0x10 */ s32* unk10; - /* 0x14 */ u8 unk14[0x4]; - /* 0x18 */ s32 unk18; - /* 0x1A */ s8 unk1A; + /* 0x14 */ s16 *unk14; + /* 0x18 */ s16 unk18; + /* 0x1A */ s16 unk1A; /* 0x1C */ s8 unk1C; + /* 0x1D */ s8 unk1D; /* 0x1E */ s8 unk1E; /* 0x1F */ s8 unk1F; /* 0x20 */ u8 pad20[2]; @@ -688,6 +689,10 @@ typedef struct Object_54 { u8 unk18; u8 unk19; u8 unk1A; + u8 unk1B; + u8 pad1C[12]; + f32 unk28; + f32 unk2C; } Object_54; typedef struct Object_58_4 { @@ -711,9 +716,9 @@ typedef struct Object_5C { typedef struct Object_60 { s32 unk0; - void *unk4; // Object* pointer + s32 *unk4; // Object* pointer u8 unk8[0x24]; - s32 *unk2C; + s8 *unk2C; } Object_60; struct Object; @@ -759,9 +764,14 @@ typedef struct Object_WeaponBalloon { } Object_WeaponBalloon; typedef struct Object_Weapon { - /* 0x00 */ void *unk0; - /* 0x00 */ u8 pad4[0x14]; - /* 0x18 */ u8 unk18; + /* 0x00 */ struct Object *target; + /* 0x04 */ struct Object *owner; + /* 0x08 */ s32 unk8; + /* 0x0C */ s32 unkC; + /* 0x10 */ f32 forwardVel; + /* 0x14 */ s32 unk14; + /* 0x18 */ u8 weaponID; + /* 0x19 */ u8 checkpoint; } Object_Weapon; typedef struct Object_Butterfly { @@ -789,6 +799,14 @@ typedef struct Object_EggCreator { /* 0x4 */ struct Object *unk4; } Object_EggCreator; +typedef struct Object_CollectEgg { + /* 0x0 */ u8 pad0[4]; + /* 0x4 */ struct Object *unk4; + /* 0x8 */ s16 unk8; + /* 0xA */ s8 unkA; + /* 0xB */ s8 unkB; +} Object_CollectEgg; + typedef struct Object_UnkId58 { /* 0x000 */ u8 pad0[0x1D6]; /* 0x1D6 */ s8 unk1D6; @@ -803,7 +821,7 @@ typedef struct Object_CharacterFlag { /* 0x14 */ s32 unk14; /* 0x18 */ s32 unk18; /* 0x1C */ s32 unk1C; - /* 0x20 */ s16 *unk20; + /* 0x20 */ u16 *unk20; /* 0x24 */ u8 *unk24; } Object_CharacterFlag; @@ -833,13 +851,14 @@ typedef struct Object_InfoPoint { typedef struct Object_TTDoor { /* 0x00 */ f32 unk0; - /* 0x04 */ u8 pad4[4]; + /* 0x04 */ s32 *soundMask; /* 0x08 */ s32 unk8; - /* 0x0C */ u8 padC[3]; - /* 0x0F */ s8 unkF; + /* 0x0C */ s16 unkC; + /* 0x0C */ s8 unkE; + /* 0x0F */ u8 unkF; /* 0x10 */ u8 pad10[2]; /* 0x12 */ u8 unk12; - /* 0x13 */ u8 unk13; + /* 0x13 */ s8 unk13; } Object_TTDoor; typedef struct Object_WorldKey { @@ -996,7 +1015,7 @@ typedef struct Object_Racer { /* 0x134 */ s32 unk134; /* 0x138 */ s32 unk138; /* 0x13C */ s32 unk13C; - /* 0x140 */ struct Object *unk140; + /* 0x140 */ struct Object *magnetTargetObj; /* 0x144 */ struct Object *held_obj; /* 0x148 */ struct Object *unk148; /* 0x14C */ struct Object *unk14C; @@ -1016,9 +1035,9 @@ typedef struct Object_Racer { /* 0x172 */ s8 balloon_type; /* 0x173 */ s8 balloon_quantity; /* 0x174 */ s8 balloon_level; - /* 0x175 */ s8 unk175; + /* 0x175 */ s8 magnetTimer; /* 0x176 */ s16 unk176; - /* 0x178 */ u8 *unk178; + /* 0x178 */ void *magnetSoundMask; /* 0x17C */ s32 shieldSoundMask; /* 0x180 */ s32 unk180; // Soundmask for banana pickup, whether that's the only use I do not yet know. /* 0x184 */ s8 unk184; @@ -1131,7 +1150,7 @@ typedef struct Object_Racer { /* 0x215 */ s8 unk215; /* 0x216 */ u8 unk216; /* 0x217 */ u8 unk217; - /* 0x218 */ s32 unk218; + /* 0x218 */ void *unk218; /* 0x21C */ s32 unk21C; /* 0x220 */ s32 unk220; } Object_Racer; @@ -1237,6 +1256,8 @@ typedef struct Object_PosArrow { typedef struct Object_Banana { /* 0x0 */ u8 pad0[4]; /* 0x4 */ struct Object *spawner; + /* 0x8 */ s8 unk8; + /* 0x9 */ s8 unk9; } Object_Banana; typedef struct Object_FogChanger { @@ -1307,6 +1328,7 @@ typedef struct Object_64 { Object_Butterfly butterfly; Object_EffectBox effect_box; Object_EggCreator egg_creator; + Object_CollectEgg egg; Object_UnkId58 unkid58; Object_CharacterFlag character_flag; Object_Snowball snowball; @@ -1425,7 +1447,7 @@ typedef struct ObjectSegment { /* Size: 0x0630 bytes */ typedef struct Object { /* 0x0000 */ ObjectSegment segment; - /* 0x0044 */ s32 *unk44; + /* 0x0044 */ Vertex *unk44; /* 0x0048 */ s16 behaviorId; /* 0x004A */ s16 unk4A; /* 0x004C */ Object_4C *unk4C; //player + 0x318 diff --git a/src/audio.h b/src/audio.h index 7b29c989..4c2a69e9 100644 --- a/src/audio.h +++ b/src/audio.h @@ -137,6 +137,6 @@ void play_sound_global(u16 soundID, s32* soundMask); //Non matching. void func_8000232C(ALSeqPlayer *seqp, void *ptr, u8 *arg2, ALCSeq *seq); //Non Matching f32 audio_get_chr_select_anim_frac(void); void func_80009B7C(s32 *arg0, f32 x, f32 y, f32 z); // Non Matching -void func_8000974C(s32, f32, f32, f32, s32, s32, s32, s32, s32, s32, s32, s32); +void func_8000974C(s32, f32, f32, f32, s32, s32, s32, s32, s32, s32, s32, s32 *); #endif diff --git a/src/camera.c b/src/camera.c index c78fccc7..7371ea3d 100644 --- a/src/camera.c +++ b/src/camera.c @@ -240,7 +240,11 @@ s32 get_viewport_count(void) { return gNumberOfViewports; } -s32 get_object_render_stack_pos(void) { +/** + * Return the index of the active view. + * 0-3 is players 1-4, and 4-7 is the same, but with 4 added on for cutscenes. +*/ +s32 get_current_viewport(void) { return gActiveCameraID; } diff --git a/src/camera.h b/src/camera.h index 20b54a46..ff0b5e0b 100644 --- a/src/camera.h +++ b/src/camera.h @@ -117,7 +117,7 @@ void update_camera_fov(f32 camFieldOfView); UNUSED void calculate_camera_perspective(void); Matrix *func_80066204(void); s32 get_viewport_count(void); -s32 get_object_render_stack_pos(void); +s32 get_current_viewport(void); void func_80066230(Gfx **dlist, Matrix **arg1); f32 get_distance_to_active_camera(f32 xPos, f32 yPos, f32 zPos); void func_800663DC(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5); diff --git a/src/game_ui.c b/src/game_ui.c index dfcbe334..b2b6c68b 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -304,7 +304,7 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 s32 sp2C; Object_64* racer; - D_80126D08 = get_object_render_stack_pos(); + D_80126D08 = get_current_viewport(); if (D_8012718A) { arg3 = get_racer_object_by_port(1 - D_80126D08); } diff --git a/src/object_functions.c b/src/object_functions.c index 50f0160d..3fee5640 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -25,6 +25,7 @@ #include "unknown_003260.h" #include "objects.h" #include "math_util.h" +#include "game_text.h" /************ .data ************/ @@ -159,7 +160,7 @@ void obj_loop_scenery(Object *obj, s32 speed) { s32 temp_v0; if (obj->unk4C != NULL) { - obj78 = &obj->unk78; + obj78 = (Object78_80033DD0 *) &obj->unk78; if (obj->unk7C.half.upper > 0) { obj78->unk4 -= speed; } @@ -264,16 +265,16 @@ void obj_loop_fireball_octoweapon(Object *obj, s32 speed) { obj->segment.trans.x_rotation -= speed << 9; } func_80011570(obj, obj->segment.x_velocity * sp7C, obj->segment.y_velocity * sp7C, obj->segment.z_velocity * sp7C); - if (obj->unk4A == 298 && func_8002AD08(obj->segment.trans.y_position, &sp4C, 0)) { + if (obj->unk4A == 298 && func_8002AD08(obj->segment.trans.y_position, sp4C, 0)) { obj->segment.trans.y_position = sp4C[0]; } } obj->segment.unk18 += speed * 10; - obj64 = obj->unk64; + obj64 = (Object80033F60_64 *) obj->unk64; obj4C = obj->unk4C; obj4C_obj = (Object*)obj4C->unk0; // This should be a0, not v1! if ((obj4C_obj != NULL) && (obj4C->unk13 < 60) && (obj4C_obj->segment.header->behaviorId == 1)) { - obj4C_obj64 = obj4C_obj->unk64; + obj4C_obj64 = (Object80033F60_4C_64 *) obj4C_obj->unk64; if (obj4C_obj64->unk0 != -1) { if (obj->behaviorId == 108) { obj4C_obj64->unk187 = 1; @@ -283,8 +284,8 @@ void obj_loop_fireball_octoweapon(Object *obj, s32 speed) { } else if (obj->unk7C.word > 0) { obj4C_obj64->unk204 = 60; obj->unk7C.word = -60; - obj->unk78 = obj4C_obj; - play_sound_global(SOUND_BUBBLE_RISE, &obj64->unk1C); + obj->unk78 = (s32) obj4C_obj; + play_sound_global(SOUND_BUBBLE_RISE, obj64->unk1C); } } } @@ -442,7 +443,7 @@ void obj_init_effectbox(UNUSED Object *obj, UNUSED LevelObjectEntry_EffectBox *e #ifdef NON_MATCHING // Has regalloc issues -void obj_loop_effectbox(Object *obj, s32 speed) { +void obj_loop_effectbox(Object *obj, UNUSED s32 speed) { Object **objList; Object_EffectBox *curObj64; s32 numberOfObjects; @@ -498,164 +499,115 @@ void obj_init_trophycab(Object *obj, LevelObjectEntry_TrophyCab *entry) { obj->segment.trans.y_rotation = entry->rotation << 6 << 4; // Not sure about the values here. } -#ifdef NON_EQUIVALENT - -void play_sound_global(u16, s32 *); -void play_sound_global(u16, s32 *); -u32 func_80001C08(void); -void play_sound_global(u16, s32 *); -Object *spawn_object(void *, s32); -void func_8005A3B0(void); -void func_8006F254(void); -void func_8009CF68(s32 arg0); -s32 func_8009CFEC(u32 arg0); -void func_800A3870(void); -void func_800AB1AC(s32 arg0); -void func_800AB1D4(u8 arg0); -void func_800C31EC(s32); -s32 func_800C3400(void); -LevelHeader *get_current_level_header(void); -Settings *get_settings(void); -void set_music_fade_timer(s32 time); -void set_sndfx_player_voice_limit(u8 voiceLimit); - -typedef struct Object_54_80034E9C { - u8 pad0[0x28]; - f32 unk28; - f32 unk2C; -} Object_54_80034E9C; - -// Has regalloc & stack issues. - -void obj_loop_trophycab(Object *obj, s32 speed) { - s32 sp34; - s32 isTrophyRaceAvaliable; - s32 raceType; - LevelObjectEntryCommon sp44; - Settings *settings; - LevelHeader *curLevelHeader; - Object_TrophyCabinet *obj64; - Object *trophyObj; - Object *playerObj; - f32 xDiff; - f32 zDiff; - s32 new_var2; +/** + * Trophy Cabinet loop behaviour. + * Displays the dialogue when ran into. + * Has unused behaviour that presumably would've handled activating the dialogue from here. +*/ +void obj_loop_trophycab(Object *obj, s32 updateRate) { + Settings* settings; + Object_TrophyCabinet *gfxData; + f32 dist; + LevelObjectEntryCommon newObject; + LevelHeader* header; + Object* tempObj; + f32 diffX; + s32 dialogueID; + f32 diffZ; + UNUSED s32 pad2; + s32 worldBalloons; + s32 bossFlags; settings = get_settings(); - curLevelHeader = get_current_level_header(); - obj64 = &obj->unk64->trophy_cabinet; - - // Show trophy inside the cabinet + header = get_current_level_header(); + gfxData = (Object_TrophyCabinet *)obj->unk64; if (obj->unk7C.word == 0) { - raceType = curLevelHeader->race_type; - if ((raceType != 7) && (raceType != 6)) { // Make sure the current level is not a cutscene. + if (header->race_type != RACETYPE_CUTSCENE_2 && header->race_type != RACETYPE_CUTSCENE_1) { obj->unk7C.word = 1; if ((settings->trophies >> (((settings->worldId - 1) ^ 0) * 2)) & 3) { - sp44.objectID = 128; - sp44.x = obj->segment.unk3C_a.level_entry->trophyCabinet.common.x; - sp44.y = obj->segment.unk3C_a.level_entry->trophyCabinet.common.y; - sp44.z = obj->segment.unk3C_a.level_entry->trophyCabinet.common.z; - sp44.size = 8; - trophyObj = spawn_object(&sp44, 1); - if (trophyObj) { - trophyObj->segment.unk3C_a.level_entry = NULL; - trophyObj->segment.trans.y_rotation = obj->segment.trans.y_rotation; + newObject.objectID = 0x80; + newObject.x = obj->segment.unk3C_a.level_entry->animation.common.x; + newObject.y = obj->segment.unk3C_a.level_entry->animation.common.y; + newObject.z = obj->segment.unk3C_a.level_entry->animation.common.z; + newObject.size = 8; + tempObj = spawn_object(&newObject, 1); + if (tempObj != NULL) { + tempObj->segment.unk3C_a.level_entry = NULL; + tempObj->segment.trans.y_rotation = obj->segment.trans.y_rotation; } } } } - - ((Object_54_80034E9C *) obj->unk54)->unk2C = 0.612f; - ((Object_54_80034E9C *) obj->unk54)->unk28 = 0.0f; - - playerObj = get_racer_object(0); - if (playerObj) { - xDiff = obj->segment.trans.x_position - playerObj->segment.trans.x_position; - zDiff = playerObj->segment.trans.z_position - obj->segment.trans.z_position; - sqrtf((xDiff * xDiff) + (zDiff * zDiff)); // Distance on X & Z axes. Not used? - - new_var2 = settings->bosses; - - /** - * Future Fun Land doesn't have a boss rematch, so this OR is needed so that - * trophy race becomes avaliable after all the balloons have been collected. - */ - new_var2 |= 0x800; - - // Check if all the balloons have been collected. - isTrophyRaceAvaliable = (settings->balloonsPtr[settings->worldId] < 8) ^ 1; - if (isTrophyRaceAvaliable) { - // Check if the boss rematch has been beaten. - isTrophyRaceAvaliable = ((1 << (settings->worldId + 6)) & new_var2) != 0; + obj->unk54->unk2C = 0.612f; + obj->unk54->unk28 = 0.0f; + tempObj = get_racer_object(PLAYER_ONE); + if (tempObj != NULL) { + diffX = obj->segment.trans.x_position - tempObj->segment.trans.x_position; + diffZ = obj->segment.trans.z_position - tempObj->segment.trans.z_position; + dist = sqrtf((diffX * diffX) + (diffZ * diffZ)); // unused + bossFlags = settings->bosses; + bossFlags |= 0x800; + worldBalloons = (settings->balloonsPtr[settings->worldId] >= 8); + if (worldBalloons) { + worldBalloons = ((1 << (settings->worldId + 6)) & bossFlags) != 0; } - - // Hit detection between cabinet & player? - if ((((obj->unk78 == 0) && (!func_800C3400())) && obj->unk5C->unk100) && (obj64->unk4 == 0)) { - // A hit has been detected at this point. - if (isTrophyRaceAvaliable) { - obj->unk78 = 1; - play_sound_global(SOUND_VOICE_TT_TROPHY_RACE, NULL); - func_800A3870(); - } - else - { - func_800C31EC(4); - obj64->unk4 = 180; - obj64->unk0 = 140; - set_sndfx_player_voice_limit(16); - set_music_fade_timer(-8); - play_sequence(SEQUENCE_NO_TROPHY_FOR_YOU); + if (obj->unk78 == NULL && func_800C3400() == FALSE) { + if (obj->unk5C->unk100 != NULL) { + if (gfxData->unk4 == 0) { + if (worldBalloons) { + obj->unk78 = 1; + play_sound_global(SOUND_VOICE_TT_TROPHY_RACE, NULL); + func_800A3870(); + } else { + func_800C31EC(4); + gfxData->unk4 = 180; + gfxData->unk0 = 140; + set_sndfx_player_voice_limit(16); + set_music_fade_timer(-8); + play_sequence(SEQUENCE_NO_TROPHY_FOR_YOU); + } + } } } - if ((obj64->unk0 != 0) && (func_80001C08() == 0)) { - if (speed < obj64->unk0) { - obj64->unk0 -= speed; - } - else - { - obj64->unk0 = 0; + if (gfxData->unk0 && func_80001C08() == 0) { + if (updateRate < gfxData->unk0) { + gfxData->unk0 -= updateRate; + } else { + gfxData->unk0 = 0; set_music_fade_timer(8); set_sndfx_player_voice_limit(6); } } - if (obj->unk5C->unk100 || func_800C3400()) { - obj64->unk4 = 180; + if (obj->unk5C->unk100 != NULL || func_800C3400()) { + gfxData->unk4 = 180; } - if (obj64->unk4 > 0) { - obj64->unk4 -= speed; - } - else - { - obj64->unk4 = 0; + if (gfxData->unk4 > 0) { + gfxData->unk4 -= updateRate; + } else { + gfxData->unk4 = 0; } if (obj->unk78 == 1) { func_800AB1AC(3); - func_800AB1D4(0); - sp34 = func_8009CFEC(4); - if (sp34 != 0) { - obj->unk78 = 0; + func_800AB1D4(0U); + dialogueID = func_8009CFEC(4); + if (dialogueID) { + obj->unk78 = NULL; func_8009CF68(4); - if (sp34 == 1) { + if (dialogueID == 1) { func_8006F254(); obj->unk78 = 2; - } - else - { + } else { func_800AB1D4(1); } } func_8005A3B0(); } obj->unk5C->unk100 = NULL; - if (isTrophyRaceAvaliable) { - // Changes lighting/color of the cabinet? - ((Object_54_80034E9C *) obj->unk54)->unk28 = 0.552f; + if (worldBalloons) { + obj->unk54->unk28 = 0.552f; } } } -#else -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_trophycab.s") -#endif void obj_init_collectegg(Object *obj, UNUSED LevelObjectEntry_CollectEgg *entry) { obj->unk4C->unk14 = 2; @@ -664,7 +616,101 @@ void obj_init_collectegg(Object *obj, UNUSED LevelObjectEntry_CollectEgg *entry) obj->unk4C->unk12 = 0; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_collectegg.s") +void obj_loop_collectegg(Object *obj, s32 updateRate) { + Object_CollectEgg *egg; + Object *racerObj; + Object_Racer *racer; + f32 sp40[3]; + f32 sp3C; + f32 speed; + s32 sp34; + s8 sp33; + + egg = (Object_CollectEgg *) obj->unk64; + speed = updateRate; + if (osTvType == TV_TYPE_PAL) { + speed *= 1.2; + } + switch (egg->unkB) { + case 0: + func_80036040(obj, (Object_64 *) egg); + break; + case 2: + obj->segment.trans.unk6 &= 0xBFFF; + sp40[0] = obj->segment.trans.x_position + (obj->segment.x_velocity * speed); + sp40[1] = obj->segment.trans.y_position + (obj->segment.y_velocity * speed); + sp40[2] = obj->segment.trans.z_position + (obj->segment.z_velocity * speed); + sp3C = 9.0f; + func_80031130(1, &obj->segment.trans.x_position, sp40, -1); + sp34 = 0; + sp33 = 0; + func_80031600(&obj->segment.trans.x_position, sp40, &sp3C, &sp33, 1, &sp34); + obj->segment.x_velocity = (sp40[0] - obj->segment.trans.x_position) / speed; + obj->segment.y_velocity = (sp40[1] - obj->segment.trans.y_position) / speed; + obj->segment.z_velocity = (sp40[2] - obj->segment.trans.z_position) / speed; + obj->segment.trans.x_position = sp40[0]; + obj->segment.trans.y_position = sp40[1]; + obj->segment.trans.z_position = sp40[2]; + obj->segment.y_velocity -= 0.5; + obj->segment.x_velocity *= 0.98; + obj->segment.z_velocity *= 0.98; + obj->segment.y_velocity *= 0.95; + if (obj->segment.trans.y_position < -2000.0f || (sp34 != 0 && (sp33 < 5 || sp33 >= 10))) { + if (egg->unk4 != NULL) { + egg->unk4->unk78 = 0; + } + gParticlePtrList_addObject(obj); + } + if (sp34 != 0 && sp33 == 5) { + egg->unkB = 0; + obj->segment.x_velocity = 0.0f; + obj->segment.z_velocity = 0.0f; + } + if (sp34 != 0 && sp33 >= 6 && sp33 < 10) { + egg->unkA = sp33 - 6; + egg->unkB = 3; + racerObj = get_racer_object(egg->unkA); + if (racerObj != NULL) { + racer = (Object_Racer *) racerObj->unk64; + racer->unk1CF += 1; + } + egg->unk8 = 600; + obj->segment.x_velocity = 0.0f; + obj->segment.z_velocity = 0.0f; + } + break; + case 3: + egg->unk8 -= updateRate; + racerObj = get_racer_object(egg->unkA); + if (racerObj != NULL) { + racer = (Object_Racer *) racerObj->unk64; + } + if (egg->unk8 <= 0) { + if (racerObj != NULL) { + racer->lap += 1; + } + egg->unkB = 4; + egg->unk4->unk78 = 0; + } + if (egg->unk8 < 540) { + func_80036040(obj, (Object_64 *) egg); + } + if (racerObj != NULL && egg->unkB != 3) { + racer->unk1CF -= 1; + } + break; + case 4: + racerObj = get_racer_object(egg->unkA); + if (racerObj != NULL) { + racer = (Object_Racer *) racerObj->unk64; + if (racer->lap >= 3) { + racer->raceFinished = TRUE; + } + } + obj->segment.unk18 = 0x80; + break; + } +} void obj_init_eggcreator(UNUSED Object *obj, UNUSED LevelObjectEntry_EggCreator *entry) { } @@ -683,7 +729,7 @@ void obj_loop_eggcreator(Object *obj, UNUSED s32 speed) { if (someObj != NULL) { Object_EggCreator *someObj64 = &someObj->unk64->egg_creator; someObj64->unk4 = obj; - obj->unk78 = someObj; + obj->unk78 = (s32) someObj; someObj->segment.unk3C_a.level_entry = NULL; } } @@ -857,9 +903,9 @@ void obj_loop_groundzipper(Object *obj, UNUSED s32 speed) { } } -void obj_init_unknown58(Object *obj, LevelObjectEntry_Unknown58 *entry) { +void obj_init_unknown58(Object *obj, UNUSED LevelObjectEntry_Unknown58 *entry) { obj->unk78 = 0; - obj->unk7C.word = obj->segment.header; + obj->unk7C.word = (s32) obj->segment.header; } void obj_loop_unknown58(Object *obj, s32 speed) { @@ -919,7 +965,7 @@ void obj_loop_characterflag(Object *obj, UNUSED s32 speed) { obj->unk7C.word = 0; } obj64->unk20 = D_800DC980; - obj64->unk24 = obj->unk68[obj->unk7C.word]; + obj64->unk24 = (u8 *) obj->unk68[obj->unk7C.word]; temp_t4 = (obj64->unk24[0] - 1) << 0x15; temp_t5 = (obj64->unk24[1] - 1) << 5; obj64->unk0 = 0x40000103; @@ -1126,7 +1172,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_animator.s") void obj_init_animation(Object *obj, LevelObjectEntry_Animation *entry, s32 arg2) { Object_Animation* obj64; - Object* sp24; s8 tempOrderIndex; f32 scalef; @@ -1180,7 +1225,7 @@ void obj_init_animation(Object *obj, LevelObjectEntry_Animation *entry, s32 arg2 if (obj->unk64 != 0) { func_8001EFA4(obj, obj64); if (entry->order != 0 || obj64->unk4A != entry->objectIdToSpawn) { - gParticlePtrList_addObject(obj64); + gParticlePtrList_addObject((Object *) obj64); obj->unk64 = NULL; } } @@ -1198,7 +1243,7 @@ void obj_loop_dooropener(Object *obj, s32 speed) { s32 phi_a0; unk80037D08_arg0_64 *sp18; - sp18 = obj->unk64; + sp18 = (unk80037D08_arg0_64 *) obj->unk64; phi_a0 = 1 - func_8001F460(obj, speed, obj); if (sp18->unk2A > 0) { phi_a0 = 0; @@ -1212,17 +1257,87 @@ void obj_init_overridepos(UNUSED Object *obj, UNUSED LevelObjectEntry_OverridePo UNUSED void func_80037D60(UNUSED s32 arg0, UNUSED s32 arg1) { } +/** + * Wizpig ship initilisation. + * Does nothing. +*/ void obj_init_wizpigship(UNUSED Object *obj, UNUSED LevelObjectEntry_WizpigShip *entry) { } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_wizpigship.s") +/** + * Wizpig ship loop behaviour. + * Periodically shoots laserbeams in front of it. +*/ +void obj_loop_wizpigship(Object *wizShipObj, s32 updateRate) { + s32 i; + s32 index; + f32 posX; + f32 posY; + f32 posZ; + Object *newObj; + ObjectModel *wizShipModel; + Matrix shipMtx; + Matrix laserMtx; + LevelObjectEntryCommon newObject; + ObjectTransform trans; + + func_8001F460(wizShipObj, updateRate, wizShipObj); + if ((*wizShipObj->unk68) != NULL) { + wizShipModel = (*wizShipObj->unk68)->objModel; + if (wizShipObj->unk7C.word > 0) { + wizShipObj->unk7C.word -= updateRate; + } else { + wizShipObj->unk7C.word = 0; + } + if ((wizShipObj->unk60 != NULL) && (wizShipObj->unk7C.word == 0)) { + if (wizShipObj->unk74 & 1) { + wizShipObj->unk7C.word = 0x14; + object_transform_to_matrix(shipMtx, &wizShipObj->segment.trans); + trans.x_position = 0.0f; + trans.y_position = 0.0f; + trans.z_position = 0.0f; + trans.scale = 1.0f; + trans.y_rotation = wizShipObj->segment.trans.y_rotation; + trans.x_rotation = wizShipObj->segment.trans.x_rotation; + trans.z_rotation = 0; + object_transform_to_matrix(laserMtx, &trans); + + for (i = 0; i < wizShipObj->unk60->unk0; i++) { + index = wizShipObj->unk60->unk2C[i]; + if ((index >= 0) && (index < wizShipModel->unk18)) { + if (wizShipObj->unk44 != NULL) { + posX = wizShipObj->unk44[wizShipModel->unk14[index]].x; + posY = wizShipObj->unk44[wizShipModel->unk14[index]].y; + posZ = wizShipObj->unk44[wizShipModel->unk14[index]].z; + guMtxXFMF(shipMtx, posX, posY, posZ, &posX, &posY, &posZ); + newObject.x = posX; + newObject.y = posY; + newObject.z = posZ; + newObject.size = 8; + newObject.objectID = 0xC6; + newObj = spawn_object(&newObject, 1); + if (newObj != NULL) { + newObj->segment.unk3C_a.level_entry = NULL; + newObj->segment.trans.y_rotation = wizShipObj->segment.trans.y_rotation + 0x8000; + newObj->segment.trans.x_rotation = -wizShipObj->segment.trans.x_rotation; + newObj->unk78 = 0x3C; + guMtxXFMF(laserMtx, 0.0f, 0.0f, -30.0f, &newObj->segment.x_velocity, &newObj->segment.y_velocity, &newObj->segment.z_velocity); + func_80009558(SOUND_LASER_GUN, wizShipObj->segment.trans.x_position, wizShipObj->segment.trans.y_position, wizShipObj->segment.trans.z_position, 4, NULL); + } + } + } + } + } + } + } +} void obj_loop_vehicleanim(Object *obj, s32 speed) { Object_60_800380F8 *obj60; Object *someObj; func_8001F460(obj, speed, obj); - obj60 = obj->unk60; + obj60 = (Object_60_800380F8 *) obj->unk60; if (obj60 != NULL) { if (obj60->unk0 > 0) { someObj = obj60->unk0 == 3 ? obj60->unkC : obj60->unk4; @@ -1427,7 +1542,34 @@ void obj_init_bombexplosion(Object *obj, LevelObjectEntry_BombExplosion *entry) obj->unk74 = 1; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_bombexplosion.s") +void obj_loop_bombexplosion(Object *obj, s32 updateRate) { + s32 temp_t8; + + obj->unk78 += updateRate; + temp_t8 = (obj->unk7C.word >> 8) & 0xFF; + if (obj->unk78 > 10 && temp_t8 != 0) { + obj->unk7C.word ^= (temp_t8 << 8); + func_8003FC44(obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 44, 0, 1.0f, temp_t8 - 1); + } + if (obj->unk78 < 20) { + obj->segment.trans.scale = ((obj->unk78 / 20.0f) * 10.0f) + 0.5f; + obj->unk7C.word |= 0xFF; + } else if (obj->unk78 < 0x28) { + obj->segment.trans.scale = (((obj->unk78 - 20) / 20.0f) * 5.0f) + 10.5f; + obj->unk7C.word = 0x1EF - (obj->unk78 * 0xC); + } else { + gParticlePtrList_addObject(obj); + } + + if (obj->unk74 != 0) { + if (get_number_of_active_players() < THREE_PLAYERS) { + func_800AFC3C(obj, 2); + obj->unk74 = 0; + } + } +} + + void obj_init_teleport(Object *obj, UNUSED LevelObjectEntry_Teleport *entry) { obj->unk4C->unk14 = 2; @@ -1532,7 +1674,6 @@ void obj_loop_cameracontrol(UNUSED Object *obj, UNUSED s32 speed) { } void obj_init_setuppoint(Object *obj, LevelObjectEntry_SetupPoint *entry) { - s32 temp; obj->unk78 = entry->unk8; obj->unk7C.word = entry->unk9; obj->segment.trans.y_rotation = entry->unkA << 6 << 4; // Not sure about the values here. @@ -1804,7 +1945,7 @@ void obj_loop_goldenballoon(Object *obj, s32 speed) { settings->balloonsPtr[0]++; } settings->courseFlagsPtr[settings->courseId] |= flag; - if (&obj->segment){ } + if (&obj->segment){ } // Fakematch play_sound_spatial(SOUND_COLLECT_BALLOON, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); obj->unk7C.word = 16; obj->unk74 = 2; @@ -1876,7 +2017,6 @@ void obj_init_door(Object *obj, LevelObjectEntry_Door *entry) { GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_door.s") void obj_init_ttdoor(Object *obj, LevelObjectEntry_TTDoor *entry) { - f32 temp_f0; Object_TTDoor *obj64; f32 phi_f0; @@ -1905,7 +2045,92 @@ void obj_init_ttdoor(Object *obj, LevelObjectEntry_TTDoor *entry) { } } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_ttdoor.s") +/** + * T.T Door loop behaviour. + * Checks if the player has complete the T.T amulet and has all 47 balloons. + * If so, it will open, otherwise it opens dialogue telling the player to get them. +*/ +void obj_loop_ttdoor(Object *obj, s32 updateRate) { + Settings *settings; + Object_TTDoor *ttDoor; + Object *racerObj; + Object_Racer *racer; + s16 angle; + s32 openDoor; + + ttDoor = (Object_TTDoor *) obj->unk64; + settings = get_settings(); + if (ttDoor->unkF == 0) { + obj->segment.unk3A = D_800DCA94[settings->ttAmulet]; + } else { + obj->segment.unk3A = D_800DCA9C[settings->ttAmulet]; + } + if (obj->unk4C->unk13 < ttDoor->unk12 && (settings->ttAmulet < 4 || *settings->balloonsPtr < 47)) { + racerObj = obj->unk4C->unk0; + if (racerObj != NULL && racerObj->segment.header->behaviorId == BHV_RACER) { + racer = (Object_Racer *) racerObj->unk64; + if (racer->playerIndex != PLAYER_COMPUTER && racerObj == obj->unk5C->unk100) { + if (ttDoor->unk13 != -1 && func_800C3400() == 0 && ttDoor->unkC == 0) { + set_music_fade_timer(-8); + ttDoor->unk8 = 140; + set_sndfx_player_voice_limit(16); + play_sequence(SEQUENCE_NO_TROPHY_FOR_YOU); + func_800C31EC(ttDoor->unk13 & 0xFF); + } + ttDoor->unkC = 300; + } + if (func_800C3400() != 0) { + ttDoor->unkC = 300; + } + } + } + if (ttDoor->unk8 && func_80001C08() == 0) { + if (updateRate < ttDoor->unk8) { + ttDoor->unk8 -= updateRate; + } else { + ttDoor->unk8 = 0.0f; + set_music_fade_timer(8); + set_sndfx_player_voice_limit(6); + } + } + if (ttDoor->unkC > 0) { + ttDoor->unkC -= updateRate; + } else { + ttDoor->unkC = 0; + } + openDoor = TRUE; + if (settings->ttAmulet >= 4 && obj->unk4C->unk13 < ttDoor->unk12 && *settings->balloonsPtr >= 47) { + angle = obj->segment.trans.y_rotation - obj->unk7C.word; + } else { + angle = obj->segment.trans.y_rotation - obj->unk78; + } + angle >>= 3; + if (angle > 0x200) { + angle = 0x200; + } + if (angle < -0x200) { + angle = -0x200; + } + obj->segment.trans.y_rotation -= angle; + if (angle == 0) { + openDoor = FALSE; + } + if (openDoor) { + if (ttDoor->soundMask == NULL) { + func_80009558(SOUND_DOOR_OPEN, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 1, &ttDoor->soundMask); + } + } else { + if (ttDoor->soundMask) { + func_800096F8((s32) ttDoor->soundMask); + ttDoor->soundMask = NULL; + } + } + obj->unk4C->unk13 = 0xFF; + obj->unk4C->unk0 = NULL; + obj->unk4C->unk14 &= 0xFFF7; + obj->unk5C->unk100 = NULL; +} + void obj_init_trigger(Object *obj, LevelObjectEntry_Trigger *entry) { f32 phi_f0; @@ -2022,7 +2247,31 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_treasuresucker.s") void obj_init_flycoin(UNUSED Object *obj, UNUSED LevelObjectEntry_FlyCoin *entry) { } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_flycoin.s") +// Smokey's castle banana pickups. +void obj_loop_flycoin(Object *obj, s32 updateRate) { + f32 updateRateF; + Object_Racer *racerObj; + + updateRateF = updateRate; + if (osTvType == TV_TYPE_PAL) { + updateRateF *= 1.2; + } + obj->segment.y_velocity -= 0.5 * updateRateF; + func_80011570(obj, obj->segment.x_velocity * updateRateF, obj->segment.y_velocity * updateRateF, obj->segment.z_velocity * updateRateF); + obj->unk78 -= updateRate; + if (obj->unk78 <= 0) { + racerObj = (Object_Racer *) obj->unk7C.word; + racerObj->lap++; + if (racerObj->lap >= 10) { + racerObj->raceFinished = TRUE; + } + gParticlePtrList_addObject(obj); + if (racerObj->playerIndex != PLAYER_COMPUTER) { + play_sound_global(SOUND_SELECT, NULL); + } + } + obj->segment.unk18 += updateRate * 8; +} void obj_init_bananacreator(Object *obj, UNUSED LevelObjectEntry_BananaCreator *entry) { obj->segment.unk18 = 100; @@ -2108,7 +2357,39 @@ void obj_init_silvercoin(Object *obj, UNUSED LevelObjectEntry_SilverCoin *entry) } } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_silvercoin.s") +void obj_loop_silvercoin(Object *obj, s32 updateRate) { + Object_4C* silverCoin4C; + Object_Racer* racer; + Object *racerObj; + s32 temp; + + temp = func_8006C19C(); + if ((temp && obj->unk78 != 3) || (!temp && obj->unk78 == 0)) { + silverCoin4C = obj->unk4C; + if (silverCoin4C->unk13 < 80) { + racerObj = (Object *) silverCoin4C->unk0; + if (racerObj != NULL && racerObj->segment.header->behaviorId == BHV_RACER) { + racer = (Object_Racer *) racerObj->unk64; + if (racer->playerIndex != -1) { + if (racer->raceFinished == FALSE && !(obj->unk78 & (1 << racer->playerIndex))) { + obj->unk78 |= (1 << racer->playerIndex); + obj->unk7C.word = 0x10; + obj->segment.trans.unk6 |= 0x200 << racer->playerIndex; + play_sequence(racer->unk202 + 0x2B); + racer->unk202++; + } + } + } + } + obj->segment.unk18 += 8 * updateRate; + } + if (obj->unk7C.word > 0) { + obj->unk7C.word -= updateRate; + obj->unk74 = 1; + func_800AFC3C(obj, updateRate); + } +} + void obj_init_worldkey(Object *obj, LevelObjectEntry_WorldKey *entry) { Settings *settings; @@ -2227,7 +2508,7 @@ void obj_init_weapon(Object *obj, UNUSED LevelObjectEntry_Weapon *entry) { void obj_loop_weapon(Object *obj, s32 speed) { Object_Weapon *obj64 = &obj->unk64->weapon; - switch (obj64->unk18) { + switch (obj64->weaponID) { case 0: case 1: func_8003E694(obj, speed); @@ -2257,33 +2538,28 @@ void func_8003F0DC(void) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003F0F8.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003F2E8.s") -#ifdef NON_EQUIVALENT -// Regalloc issues -void func_8003FC44(f32 arg0, f32 arg1, f32 arg2, s32 arg3, s32 arg4, f32 arg5, s32 arg6) { - Object *someObj; - unk8003FC44 sp24; +void func_8003FC44(f32 x, f32 y, f32 z, s32 objectID, s32 arg4, f32 scale, s32 arg6) { + LevelObjectEntry8003FC44 spawnObj; + Object *newObj; - sp24.unk4 = (s32)arg1 + 0x24; - sp24.unk1 = 0xA; - sp24.unk2 = arg0; - sp24.unk0 = arg3; - sp24.unk7 = arg6; - sp24.unk6 = arg2; - someObj = spawn_object(&sp24, 1); - if (someObj != NULL) { - someObj->segment.trans.scale *= 3.5 * arg5; - someObj->segment.unk3C_a.level_entry = NULL; - someObj->segment.x_velocity = 0.0f; - someObj->segment.y_velocity = 0.0f; - someObj->segment.z_velocity = 0.0f; + spawnObj.common.x = x; + spawnObj.common.y = (s16) y + 36; + spawnObj.common.z = z; + spawnObj.common.size = 10; + spawnObj.common.objectID = objectID; + spawnObj.unk9 = arg6; + newObj = spawn_object(&spawnObj, 1); + if (newObj != NULL) { + newObj->segment.unk3C_a.level_entry = NULL; + newObj->segment.x_velocity = 0.0f; + newObj->segment.y_velocity = 0.0f; + newObj->segment.z_velocity = 0.0f; + newObj->segment.trans.scale = newObj->segment.trans.scale * 3.5 * scale; } if (arg4 != 0) { - func_80009558(arg4, arg0, arg1, arg2, 4, 0); + func_80009558(arg4, x, y, z, 4, NULL); } } -#else -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003FC44.s") -#endif void obj_init_audio(Object *obj, LevelObjectEntry_Audio *entry) { Object_Audio *obj64; @@ -2409,47 +2685,45 @@ void obj_init_weather(Object *obj, LevelObjectEntry_Weather *entry) { obj->unk78f = temp; } - -#ifdef NON_EQUIVALENT -void func_800ABC5C(s32, s32, s32, s32, s32, s32); /* extern */ - -// Has stack & regalloc issues. -void obj_loop_weather(Object *obj, s32 speed) { - s32 sp54; - s32 numberOfObjects; - Object_Racer *curObj64; - Object **objects; - Object **lastObj; - Object *curObj; - LevelObjectEntry_Weather *level_entry; - f32 temp_f0; - f32 new_var; - f32 temp_f2; - s32 i; - s32 temp[3]; - sp54 = get_object_render_stack_pos(); - objects = get_racer_objects(&numberOfObjects); - if (numberOfObjects != 0) { - lastObj = &objects[numberOfObjects - 1]; - objects--; - do { - curObj = objects[1]; - curObj64 = &curObj->unk64->racer; - } while (((++objects) < lastObj) && (sp54 != curObj64->playerIndex)); - temp_f0 = obj->segment.trans.x_position - curObj->segment.trans.x_position; - temp_f2 = obj->segment.trans.z_position - curObj->segment.trans.z_position; - new_var = obj->unk78f; - level_entry = &obj->segment.unk3C_a.level_entry->weather; - if (((temp_f0 * temp_f0) + (temp_f2 * temp_f2)) <= (new_var * 1.0f)){ - func_800ABC5C(level_entry->unkA * 256, level_entry->unkC * 256, level_entry->unkE * 256, level_entry->unk10 * 257, level_entry->unk11 * 257, (s32) level_entry->unk12); - } +/** + * Weather updater loop behaviour. + * When passed through by the player, it will update the current weather settings. + * Can be used to stop, start or change the intensity of the current weather. +*/ +void obj_loop_weather(Object *obj, UNUSED s32 speed) { + s32 currViewport; + s32 numberOfObjects; + Object_Racer *curObj64; + Object **objects; + Object *curObj; + LevelObjectEntry_Weather *entry; + f32 diffX; + f32 diffZ; + s32 cur; + s32 last; + f32 dist; + + currViewport = get_current_viewport(); + objects = get_racer_objects(&numberOfObjects); + cur = -1; + if (numberOfObjects != 0) { + last = numberOfObjects - 1; + do { + curObj = objects[cur + 1]; + curObj64 = (Object_Racer *) curObj->unk64; + } while (++cur < last && currViewport != curObj64->playerIndex); + + diffX = obj->segment.trans.x_position - curObj->segment.trans.x_position; + diffZ = obj->segment.trans.z_position - curObj->segment.trans.z_position; + dist = obj->unk78f; + entry = (LevelObjectEntry_Weather *)obj->segment.unk3C_a.level_entry; + if (((diffX * diffX) + (diffZ * diffZ)) <= dist){ + if (((!obj->segment.unk3C_a.level_entry) && (!obj->segment.unk3C_a.level_entry)) && (!obj->segment.unk3C_a.level_entry)){} // Fakematch + func_800ABC5C(entry->unkA * 256, entry->unkC * 256, entry->unkE * 256, entry->unk10 * 257, entry->unk11 * 257, entry->unk12); } + } } -#else -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_weather.s") -#endif - void obj_init_lensflare(Object *obj, UNUSED LevelObjectEntry_LensFlare *entry) { func_800AC8A8(obj); } @@ -2461,7 +2735,7 @@ void obj_init_lensflareswitch(Object *obj, LevelObjectEntry_LensFlareSwitch *ent } void obj_init_wavegenerator(Object *obj, UNUSED LevelObjectEntry_WaveGenerator *entry, UNUSED s32 arg2) { - func_800BF524(obj); //waves.c + func_800BF524(obj); } #ifdef NON_EQUIVALENT @@ -2579,14 +2853,14 @@ void obj_init_midifadepoint(Object *obj, LevelObjectEntry_MidiFadePoint *entry) } void obj_init_midichset(Object *obj, LevelObjectEntry_Midichset *entry) { - unk80042014_arg0_64 *temp = obj->unk64; + unk80042014_arg0_64 *temp = (unk80042014_arg0_64 *) obj->unk64; temp->unk0 = entry->unk8; temp->unk2 = entry->unkA; temp->unk3 = entry->unkB; } void obj_init_bubbler(Object *obj, LevelObjectEntry_Bubbler *entry) { - func_800AF134(obj->unk6C, entry->unk9, entry->unk8, 0, 0, 0); + func_800AF134((unk800B2260 *) obj->unk6C, entry->unk9, entry->unk8, 0, 0, 0); obj->unk78 = entry->unkA; } @@ -2602,7 +2876,7 @@ void obj_loop_bubbler(Object *obj, s32 speed) { } void obj_init_boost(Object *obj, LevelObjectEntry_Boost *entry) { - obj->unk64 = (s32)get_misc_asset(MISC_ASSET_UNK14) + (entry->unk8[0] << 7); + obj->unk64 = (s32) get_misc_asset(MISC_ASSET_UNK14) + (entry->unk8[0] << 7); obj->segment.unk3C_a.level_entry = NULL; } diff --git a/src/object_functions.h b/src/object_functions.h index bc33cc95..6d9632f6 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -336,6 +336,13 @@ void obj_init_frog(Object *obj, LevelObjectEntry_Frog *entry); void obj_loop_pigrocketeer(Object *obj, s32 speed); void obj_init_levelname(Object *obj, LevelObjectEntry_LevelName *entry); void obj_loop_wizghosts(Object *obj, s32 speed); +void obj_loop_ttdoor(Object *obj, s32 updateRate); +void obj_loop_trophycab(Object *obj, s32 updateRate); +void obj_loop_wizpigship(Object* wizShipObj, s32 updateRate); +void obj_loop_silvercoin(Object *obj, s32 updateRate); +void obj_loop_bombexplosion(Object *obj, s32 updateRate); +void obj_loop_flycoin(Object *obj, s32 updateRate); +void func_8003FC44(f32 x, f32 y, f32 z, s32 objectID, s32 arg4, f32 scale, s32 arg6); //Non Matching void obj_loop_lavaspurt(Object *obj, s32 speed); @@ -355,7 +362,8 @@ void func_8001EFA4(Object*, Object_Animation*); void func_8001F23C(Object *obj, LevelObjectEntry_Animation *entry); s32 func_8001F3EC(s32); s32 func_80021600(s32); - -void func_8003FC44(f32, f32, f32, s32, s32, f32, s32); +void func_80036040(Object*, Object_64*); +void func_8003E694(Object *, s32 updateRate); +void func_8003F2E8(Object *, s32 updateRate); #endif diff --git a/src/objects.c b/src/objects.c index 057cf412..8bab2f55 100644 --- a/src/objects.c +++ b/src/objects.c @@ -614,15 +614,15 @@ s8 check_if_silver_coin_race() { return gIsSilverCoinRace; } -void func_8000E1EC(Object *object, s32 arg1) { - D_8011AD40 = object; +void func_8000E1EC(Object *obj, s32 vehicleID) { + D_8011AD40 = obj; D_8011AD44 = 4; - gOverworldVehicle = arg1; - D_8011AD46 = object->segment.trans.x_position; - D_8011AD48 = object->segment.trans.y_position; - D_8011AD4A = object->segment.trans.z_position; - D_8011AD4C = object->segment.trans.y_rotation; - gParticlePtrList_addObject(object); + gOverworldVehicle = vehicleID; + D_8011AD46 = obj->segment.trans.x_position; + D_8011AD48 = obj->segment.trans.y_position; + D_8011AD4A = obj->segment.trans.z_position; + D_8011AD4C = obj->segment.trans.y_rotation; + gParticlePtrList_addObject(obj); gNumRacers = 0; } @@ -644,7 +644,7 @@ void func_8000E2B4(void) { sp2C.unkE = 0; sp2C.common.size = 0x10; if (gOverworldVehicle < 5) { - object_id = ((s16*) D_800DC7A8)[settings->racers[0].character + gOverworldVehicle * 10]; + object_id = ((s16 *) D_800DC7A8)[settings->racers[0].character + gOverworldVehicle * 10]; } else { object_id = D_800DC7B8[gOverworldVehicle + 37]; } @@ -1176,7 +1176,7 @@ void render_3d_billboard(Object *obj) { } // 5 = OilSlick, SmokeCloud, Bomb, BubbleWeapon - if(var_a0 != NULL || !(obj->behaviorId != BHV_WEAPON || obj->unk64->weapon.unk18 != 10)) { + if(var_a0 != NULL || !(obj->behaviorId != BHV_WEAPON || obj->unk64->weapon.weaponID != WEAOON_BUBBLE_TRAP)) { sp60.trans.z_rotation = 0; sp60.trans.x_rotation = 0; sp60.trans.y_rotation = 0; @@ -1187,7 +1187,7 @@ void render_3d_billboard(Object *obj) { sp60.unk18 = obj->segment.unk18; sp60.unk1A = 32; if (var_a0 == NULL) { - var_a0 = (Object *) obj->unk64->weapon.unk0; + var_a0 = (Object *) obj->unk64->weapon.target; if (var_a0 == NULL) { var_a0 = obj; } @@ -1856,11 +1856,11 @@ s16 func_8001C418(f32 yPos) { return out; } -s32 func_8001C48C(s32 arg0) { +s32 func_8001C48C(Object *obj) { s32 i; for(i = 0; i < 128; i++) { if ((*D_8011AF04)[i] == 0) { - (*D_8011AF04)[i] = arg0; + (*D_8011AF04)[i] = obj; return i; } } diff --git a/src/objects.h b/src/objects.h index 052c017f..6b067ae5 100644 --- a/src/objects.h +++ b/src/objects.h @@ -363,7 +363,7 @@ void func_8000E194(void); void func_8000E1B8(void); s8 find_non_car_racers(void); s8 check_if_silver_coin_race(); -void func_8000E1EC(Object *object, s32 arg1); +void func_8000E1EC(Object *obj, s32 vehicleID); void set_time_trial_enabled(s32 arg0); u8 is_time_trial_enabled(); u8 func_8000E4D8(void); @@ -465,6 +465,7 @@ void render_3d_billboard(Object *obj); void func_80011960(Object *obj, Vertex *verts, u32 numVertices, Triangle *triangles, u32 numTriangles, TextureHeader *tex, u32 arg6, u32 arg7, f32 arg8); void func_8000B290(void); void func_80016BC4(unk8000FD34*); +s32 func_8001C48C(Object *obj); //Non Matching void calc_dynamic_lighting_for_object_1(Object *, ObjectModel *, s16, Object *, f32, f32); diff --git a/src/racer.c b/src/racer.c index 4dce5ab1..1079c852 100644 --- a/src/racer.c +++ b/src/racer.c @@ -77,8 +77,10 @@ s32 D_800DCC34[19] = { }; s32 D_800DCC80[13] = { - 0, 26, 27, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + SOUND_NONE, SOUND_UNK_1A, SOUND_UNK_1B, SOUND_NONE, + SOUND_NONE, SOUND_NONE, SOUND_NONE, SOUND_NONE, + SOUND_NONE, SOUND_NONE, SOUND_NONE, SOUND_NONE, + SOUND_NONE }; // Unused? @@ -120,12 +122,23 @@ s8 D_800DCDA8[8] = { 1, 1, 1, 2, 3, 2, 3, 2, }; -// Unused? -s16 D_800DCDB0[16] = { - 0x02FE, 0x03FE, 0x02FC, 0x02FB, - 0x02FB, 0x02FE, 0x02FD, 0x02FE, - 0x03FD, 0x05FC, 0x04FE, 0x02FE, - 0x02FA, 0x02FE, 0x08F8, 0x03FD, +s8 D_800DCDB0[16][2] = { + 0x02,0xFE, + 0x03, 0xFE, + 0x02, 0xFC, + 0x02, 0xFB, + 0x02, 0xFB, + 0x02, 0xFE, + 0x02, 0xFD, + 0x02, 0xFE, + 0x03, 0xFD, + 0x05, 0xFC, + 0x04, 0xFE, + 0x02, 0xFE, + 0x02, 0xFA, + 0x02, 0xFE, + 0x08, 0xF8, + 0x03, 0xFD, }; // Checksum count for obj_loop_goldenballoon @@ -1065,8 +1078,8 @@ void obj_init_racer(Object *obj, LevelObjectEntry_CharacterFlag *racer) { tempRacer->unk1E7 = tempRacer->playerIndex * 5; tempRacer->checkpoint_distance = 1.0f; tempRacer->unk1FD = 0; - tempRacer->unk178 = 0; - tempRacer->shieldSoundMask = 0; + tempRacer->magnetSoundMask = NULL; + tempRacer->shieldSoundMask = NULL; tempRacer->unk180 = 0; tempRacer->unk218 = 0; tempRacer->unk220 = 0; @@ -1337,8 +1350,8 @@ void update_player_racer(Object* obj, s32 updateRate) { } else { tempRacer->unk18A = 0; } - if (tempRacer->unk175) { - func_80056E2C(obj, tempRacer, updateRate); + if (tempRacer->magnetTimer) { + racer_activate_magnet(obj, tempRacer, updateRate); } // Zero out input before the race has begun. if (gRaceStartTimer && (header->race_type == RACETYPE_DEFAULT || @@ -1432,10 +1445,10 @@ void update_player_racer(Object* obj, s32 updateRate) { func_8005F310(updateRate, delta, obj, tempRacer, &gCurrentRacerInput, &gCurrentButtonsPressed, &gRaceStartTimer); break; } - if (tempRacer->unk175 == 0) { - if (tempRacer->unk178) { - func_8000488C(tempRacer->unk178); - tempRacer->unk178 = 0; + if (tempRacer->magnetTimer == 0) { + if (tempRacer->magnetSoundMask) { + func_8000488C(tempRacer->magnetSoundMask); + tempRacer->magnetSoundMask = 0; } } temp_v0_17 = header->playerIndex; @@ -2386,7 +2399,7 @@ void func_80054110(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR handle_base_steering(racer, 0, updateRateF); handle_car_velocity_control(racer); func_800575EC(obj, racer); - func_80055EC0(obj, racer, updateRate); + handle_racer_items(obj, racer, updateRate); racer_attack_handler(obj, racer, updateRate); if (racer->spinout_timer) { racer_spinout_car(obj, racer, updateRate, updateRateF); // Sbinalla @@ -2451,7 +2464,7 @@ void func_80054110(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR object_transform_to_matrix_2(&mtx, &D_8011D510); guMtxXFMF(mtx, racer->lateral_velocity, 0.0f, racer->velocity, &obj->segment.x_velocity, &tempVel, &obj->segment.z_velocity); } - if (racer->unk175) { + if (racer->magnetTimer) { obj->segment.x_velocity = D_8011D578; obj->segment.z_velocity = D_8011D57C; } @@ -2764,7 +2777,311 @@ void func_80055A84(Object *obj, Object_Racer *racer, s32 updateRate) { } } -GLOBAL_ASM("asm/non_matchings/racer/func_80055EC0.s") +/** + * Handles the input and activation of any weapons the player is carrying. + * Also handles the egg object from Fire Mountain, which takes precedent, even if the player is holding a weapon. + */ +void handle_racer_items(Object *obj, Object_Racer *racer, UNUSED s32 updateRate) { + LevelObjectEntryCommon newObject; + s32 weaponID; + Object *spawnedObj; + s32 objID; + Object *heldObj; + Object *intendedTarget; + Object_64 *magnetTarget; + f32 sp64; + ObjectModel *temp_a1; + Object_64 *objData; + f32 velocity; + f32 distance; + f32 var_f2; + f32 var_f12; + s32 pad; + s8 *miscAsset; + Vertex *heldObjData; + s32 playerIndex; + u16 soundID = 0; + + if (racer->held_obj != NULL) { + heldObj = racer->held_obj; + if (gCurrentButtonsPressed & Z_TRIG || racer->raceFinished || racer->attackType) { + var_f2 = 0; + var_f12 = 0; + if (obj->unk68[obj->segment.unk3A] != NULL) { + temp_a1 = obj->unk68[obj->segment.unk3A]->objModel; + if (obj->segment.header->unk58 > -1 && obj->segment.header->unk58 < temp_a1->unk18) { + if (obj->unk44 != NULL) { + heldObjData = obj->unk44; + heldObjData += temp_a1->unk14[obj->segment.header->unk58]; + var_f2 = heldObjData->y; + var_f2 *= obj->segment.trans.scale; + var_f12 = heldObjData->z; + var_f12 *= obj->segment.trans.scale; + } + } + } + heldObj->segment.trans.x_position = obj->segment.trans.x_position + (racer->ox1 * var_f12) + (racer->ox2 * var_f2); + heldObj->segment.trans.y_position = obj->segment.trans.y_position + (racer->oy1 * var_f12) + (racer->oy2 * var_f2); + heldObj->segment.trans.z_position = obj->segment.trans.z_position + (racer->oz1 * var_f12) + (racer->oz2 * var_f2); + heldObj->segment.unk2C.half.lower = obj->segment.unk2C.half.lower; + heldObj->segment.x_velocity = obj->segment.x_velocity * 0.7; + heldObj->segment.y_velocity = obj->segment.y_velocity - 2.0; + heldObj->segment.z_velocity = obj->segment.z_velocity * 0.7; + heldObjData = (Object_64 *) &heldObj->unk64->egg; + ((Object_64 *)heldObjData)->egg.unkB = 2; + racer->held_obj = NULL; + racer->unk211 = 1; + } + } else { + if (gCurrentButtonsPressed & Z_TRIG) { + racer->unk211 = 0; + } + if (racer->unk211) { + gCurrentButtonsReleased = 0; + gCurrentButtonsPressed &= ~Z_TRIG; + } + if (racer->magnetTimer == 0) { + racer->magnetTargetObj = NULL; + } + if (racer->balloon_type == -1) { + racer->balloon_quantity = 0; + } + if (racer->balloon_quantity <= 0) { + if (gCurrentButtonsPressed & Z_TRIG) { + play_char_horn_sound(obj, racer); + } + } else { + miscAsset = (s8 *) get_misc_asset(MISC_ASSET_UNK0C); + weaponID = miscAsset[(racer->balloon_type * 10) + (racer->balloon_level * 2)]; + if (miscAsset[(racer->balloon_type * 10) + (racer->balloon_level * 2)] == WEAPON_NONE) { + racer->balloon_quantity = 0; + return; + } + magnetTarget = NULL; + if (gCurrentButtonsPressed & Z_TRIG) { + func_800A74EC(318, racer->playerIndex); + } + if (racer->unk195) { + if (racer->magnetTimer == 0) { + racer->unk195 = 0; + } else { + return; + } + } + if ((gCurrentRacerInput & Z_TRIG) || gCurrentButtonsReleased & Z_TRIG) { + switch (weaponID) { + case WEAPON_ROCKET_HOMING: + intendedTarget = func_8005698C(obj, racer, &sp64); \ + racer->magnetTimer = 0; + racer->magnetTargetObj = intendedTarget; + break; + case WEAPON_MAGNET_LEVEL_1: + case WEAPON_MAGNET_LEVEL_3: + case WEAPON_MAGNET_LEVEL_2: + intendedTarget = func_8005698C(obj, racer, &sp64); + racer->magnetTimer = 0; + if (weaponID == WEAPON_MAGNET_LEVEL_1) { + distance = 1000.0f; + } else { + distance = 1500.0f; + } + if (sp64 < distance) { + if (weaponID == WEAPON_MAGNET_LEVEL_3 && intendedTarget != NULL) { + magnetTarget = intendedTarget->unk64; + } + racer->magnetTargetObj = intendedTarget; + } else { + racer->magnetTargetObj = NULL; + intendedTarget = NULL; + } + break; + } + } + objID = 29; + if (gCurrentButtonsReleased & Z_TRIG) { + velocity = 30.0f; + switch (weaponID) { + case WEAPON_ROCKET_HOMING: + sp64 = -10.0f; + objID = 229; + break; + case WEAPON_ROCKET: + sp64 = -10.0f; + break; + case WEAPON_TRIPMINE: + case WEAPON_UNK_11: + sp64 = 10.0f; + velocity = -2.0f; + objID = 14; + break; + case WEAPON_OIL_SLICK: + if (racer->unk1D6 != 2) { + objID = 130; + } else { + objID = 235; + } + sp64 = 10.0f; + velocity = -2.0f; + break; + case WEAOON_BUBBLE_TRAP: + sp64 = 10.0f; + velocity = -2.0f; + objID = 46; + intendedTarget = NULL; + break; + case WEAPON_NITRO_LEVEL_1: + case WEAPON_NITRO_LEVEL_2: + case WEAPON_NITRO_LEVEL_3: + switch(weaponID) { + case WEAPON_NITRO_LEVEL_3: + // IDO demands this to be on 1 line. + racer->boostTimer = normalise_time(75); \ + racer->boostType = BOOST_LARGE; + break; + case WEAPON_NITRO_LEVEL_2: + // Ditto + racer->boostTimer = normalise_time(55); \ + racer->boostType = BOOST_MEDIUM; + break; + default: + // :( + racer->boostTimer = normalise_time(35); \ + racer->boostType = BOOST_SMALL; + break; + } + if (racer->throttleReleased) { + racer->boostType |= EMPOWER_BOOST; + } + if (weaponID == WEAPON_NITRO_LEVEL_3) { + racer_play_sound(obj, SOUND_NITRO_LEVEL3_CHARGE); + func_800570A4(obj, 0x233, 0x1E); + } else { + racer_play_sound(obj, SOUND_NITRO_BOOST); + } + racer->balloon_quantity -= 1; + if (weaponID == WEAPON_NITRO_LEVEL_1) { + if (racer->raceFinished == FALSE) { + func_80072348(racer->playerIndex, 6); + } + } else if (racer->raceFinished == FALSE) { + func_80072348(racer->playerIndex, 8); + } + return; + case WEAPON_MAGNET_LEVEL_1: + case WEAPON_MAGNET_LEVEL_2: + racer->balloon_quantity -= 1; + if (racer->playerIndex != PLAYER_COMPUTER) { + if (intendedTarget != NULL) { + racer->magnetTimer = 90; + racer->unk184 = (weaponID - 5) >> 1; + } + if (racer->raceFinished == FALSE) { + func_80072348(racer->playerIndex, 15); + } + } + return; + case WEAPON_MAGNET_LEVEL_3: + racer->balloon_quantity -= 1; + racer->magnetTargetObj = NULL; + if (racer->playerIndex != PLAYER_COMPUTER) { + if (magnetTarget != NULL) { + magnetTarget->racer.unk195 = 1; + magnetTarget->racer.magnetTimer = 120; + magnetTarget->racer.magnetTargetObj = obj; + magnetTarget->racer.unk184 = 2; + } + if (racer->raceFinished == FALSE) { + func_80072348(racer->playerIndex, 15); + } + } + return; + case WEAPON_SHIELD_LEVEL_1: + racer->shieldType = SHIELD_LEVEL1; + racer->shieldTimer = 300; + racer->balloon_quantity -= 1; + return; + case WEAPON_SHIELD_LEVEL_2: + racer->shieldType = SHIELD_LEVEL2; + racer->balloon_quantity -= 1; + racer->shieldTimer = 600; + return; + case WEAPON_SHIELD_LEVEL_3: + racer->shieldType = SHIELD_LEVEL3; + racer->shieldTimer = 900; + racer->balloon_quantity -= 1; + return; + default: + sp64 = 0; + break; + } + play_random_character_voice(obj, SOUND_VOICE_CHARACTER_POSITIVE, 8, 129); + newObject.x = obj->segment.trans.x_position + (racer->ox1 * sp64); + newObject.y = obj->segment.trans.y_position + (racer->oy1 * sp64) + (10.0f * racer->oy2); + newObject.z = obj->segment.trans.z_position + (racer->oz1 * sp64); + newObject.size = 8; + newObject.objectID = objID; + spawnedObj = spawn_object(&newObject, 1); + if (spawnedObj != NULL) { + spawnedObj->segment.unk3C_a.level_entry = NULL; + spawnedObj->segment.x_velocity = obj->segment.x_velocity - (racer->ox1 * velocity); + spawnedObj->segment.y_velocity = obj->segment.y_velocity - (racer->oy1 * velocity); + spawnedObj->segment.z_velocity = obj->segment.z_velocity - (racer->oz1 * velocity); + spawnedObj->segment.trans.y_rotation = obj->segment.trans.y_rotation; + spawnedObj->segment.trans.x_rotation = obj->segment.trans.x_rotation; + if (racer->unk1D6 == 1 && racer->unk1E5) { + if (spawnedObj->segment.trans.x_rotation > -0x400 && spawnedObj->segment.trans.x_rotation < 0x400) { + spawnedObj->segment.trans.x_rotation = 0; + } + } + objData = spawnedObj->unk64; + objData->weapon.owner = obj; + objData->weapon.target = intendedTarget; + objData->weapon.checkpoint = racer->checkpoint; + objData->weapon.forwardVel = (racer->velocity - velocity); + objData->weapon.weaponID = weaponID; + switch (objData->weapon.weaponID) { + case WEAPON_ROCKET_HOMING: + soundID = SOUND_NYOOM2; + break; + case WEAPON_ROCKET: + soundID = SOUND_NYOOM3; + break; + case WEAPON_TRIPMINE: + soundID = SOUND_PLOP; + break; + case WEAPON_OIL_SLICK: + if (racer->unk1D6 != 2) { + spawnedObj->unk50->unk0 = 0; + } + soundID = SOUND_SPLOINK2; + break; + case WEAOON_BUBBLE_TRAP: + soundID = SOUND_PLOP; + break; + case WEAPON_UNK_11: + spawnedObj->segment.unk18 = 0; + break; + } + if (soundID != SOUND_NONE) { + if (racer->playerIndex == PLAYER_COMPUTER) { + func_80009558(soundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 4, NULL); + } else { + if (racer->unk218) { + func_8000488C(racer->unk218); + } + play_sound_spatial(soundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, (s32** ) &racer->unk218); + } + } + } + if (racer->balloon_quantity > 0) { + racer->balloon_quantity = racer->balloon_quantity - 1; + } else { + racer->balloon_quantity = 0; + } + } + } + } +} void play_char_horn_sound(Object *obj, Object_Racer *racer) { if (get_filtered_cheats() & CHEAT_HORN_CHEAT) { @@ -2777,7 +3094,61 @@ void play_char_horn_sound(Object *obj, Object_Racer *racer) { } GLOBAL_ASM("asm/non_matchings/racer/func_8005698C.s") -GLOBAL_ASM("asm/non_matchings/racer/func_80056E2C.s") + +/** + * When active, takes the magnet target, calculates the distance then sets the player's velocity + * and movement direction towards the target until they either get close, or the timer runs out. + * Shields will also cancel out the magnet. +*/ +void racer_activate_magnet(Object *obj, Object_Racer *racer, s32 updateRate) { + f32 diffX; + f32 diffZ; + f32 vel; + Object_64 *magnetTarget; + + racer->magnetTimer -= updateRate; + if (racer->magnetTimer < 0) { + racer->magnetTimer = 0; + return; + } + if (racer->magnetTargetObj == NULL) { + racer->magnetTimer = 0; + return; + } + diffX = racer->magnetTargetObj->segment.trans.x_position - obj->segment.trans.x_position; + diffZ = racer->magnetTargetObj->segment.trans.z_position - obj->segment.trans.z_position; + vel = sqrtf((diffX * diffX) + (diffZ * diffZ)); + if (vel > 150.0f && vel < 2000.0f) { + if (racer->playerIndex != PLAYER_COMPUTER) { + racer->boostTimer = 3; + } + racer->boostType = BOOST_NONE; + if (racer->throttleReleased) { + racer->boostType |= 4; + } + if (racer->magnetSoundMask == NULL && racer->raceFinished == FALSE) { + play_sound_global(SOUND_MAGNET_HUM, (void *) &racer->magnetSoundMask); + } + } else { + racer->magnetTimer = 0; + return; + } + diffX /= vel; + diffZ /= vel; + magnetTarget = racer->magnetTargetObj->unk64; + vel = -magnetTarget->racer.velocity; + if (vel < 8.0 && racer->unk195 == 0) { + vel = 8.0f; + } + if (vel > 20.0) { + vel = 20.0f; + } + D_8011D578 = (vel + 5.0f) * (diffX); + D_8011D57C = (vel + 5.0f) * (diffZ); + if (magnetTarget->racer.shieldTimer != 0 && racer->unk195 == 0) { + racer->magnetTimer = 0; + } +} /** * Play a spatial sound, emitting from the position of the racer object. @@ -2960,7 +3331,67 @@ void func_800575EC(Object *obj, Object_Racer *racer) { guMtxXFMF(mf, 1.0f, 0.0f, 0.0f, &racer->ox3, &racer->oy3, &racer->oz3); } -GLOBAL_ASM("asm/non_matchings/racer/drop_bananas.s") +/** + * Racers struck by most weapons will drop up to 2 bananas on the ground. + * During challenge mode, no bananas are spawned, though the number still drops. +*/ +void drop_bananas(Object *obj, Object_Racer *racer, s32 number) { + LevelObjectEntryCommon newObject; + Object_Banana *temp; + s32 i; + s16 angle[3]; + s16 pos[3]; + Object* bananaObj; + f32 variance; + + if (!(get_filtered_cheats() & CHEAT_START_WITH_10_BANANAS)) { + racer->unk188 = 0; + if (racer->bananas < number) { + number = racer->bananas; + } + if (number > 0 && number < 3) { + angle[0] = racer->x_rotation_vel; + angle[1] = obj->segment.trans.x_rotation; + angle[2] = racer->unk1A0; + pos[0] = 0; + pos[1] = 8; + pos[2] = 12; + s16_vec3_apply_object_rotation((ObjectTransform* ) angle, pos); + newObject.x = pos[0] + (s32) obj->segment.trans.x_position; + newObject.y = pos[1] + (s32) obj->segment.trans.y_position; + newObject.z = pos[2] + (s32) obj->segment.trans.z_position; + newObject.size = 8; + newObject.objectID = BHV_OVERRIDE_POS; + i = number; + do { + if (get_current_level_race_type() != RACETYPE_CHALLENGE) { + bananaObj = spawn_object(&newObject, 1); + if (bananaObj != NULL) { + bananaObj->segment.unk3C_a.level_entry = NULL; + temp = (Object_Banana *)bananaObj->unk64; + temp->unk9 = racer->unk1D6; + bananaObj->segment.x_velocity = racer->ox1 * 2; + bananaObj->segment.y_velocity = (0.0f - racer->oy1) + 5.0; + bananaObj->segment.z_velocity = racer->oz1 * 2; + if (i == 2) { + variance = -0.5f; + if (number == 1) { + variance = 0.5f; + } + bananaObj->segment.x_velocity -= (racer->ox3 - racer->ox1) * variance; + bananaObj->segment.y_velocity -= racer->oy3 * variance; + bananaObj->segment.z_velocity -= (racer->oz3 - racer->oz1) * variance; + } + bananaObj->unk78 = 1; + } + } + number--; + racer->bananas--; + } while(number > 0); + } + } +} + /** * Generate the steer velocity by taking the current steer velocity and getting the difference between the stick tilt. @@ -3757,8 +4188,8 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR if ((obj->segment.y_velocity < 4.0) && ((racer->unk1E2 >= 3) || (racer->buoyancy != 0.0))) { racer->unk1F1 = 0; } - if (racer->unk175 != 0) { - func_80056E2C(obj, racer, updateRate); + if (racer->magnetTimer != 0) { + racer_activate_magnet(obj, racer, updateRate); } if (racer->unk1D6 != 1) { racer->unk1E5 = 0; @@ -3848,10 +4279,10 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR func_800050D0(obj, gCurrentButtonsPressed, gCurrentRacerInput, updateRate); } } - if (racer->unk175 == 0) { - if (racer->unk178 != NULL) { - func_8000488C(racer->unk178); - racer->unk178 = NULL; + if (racer->magnetTimer == 0) { + if (racer->magnetSoundMask != NULL) { + func_8000488C(racer->magnetSoundMask); + racer->magnetSoundMask = NULL; } } func_80018CE0(obj, xPos, yPos, zPos, updateRate); @@ -3882,13 +4313,13 @@ void func_8005A6F0(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR } if (racer->shieldTimer > 0) { if (racer->shieldTimer > 60) { - if (racer->shieldSoundMask != 0) { + if (racer->shieldSoundMask) { update_spatial_audio_position(racer->shieldSoundMask, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position); } else if (racer->unk118 != 0) { func_80009558(SOUND_SHIELD, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 1, &racer->shieldSoundMask); } } else { - if (racer->shieldSoundMask != 0) { + if (racer->shieldSoundMask) { func_800096F8(racer->shieldSoundMask); racer->shieldSoundMask = 0; } @@ -4135,7 +4566,7 @@ void func_8005B818(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR obj->segment.z_velocity = var_f28 / updateRateF; } func_80042D20(obj, racer, updateRate); - func_80055EC0(obj, racer, updateRate); + handle_racer_items(obj, racer, updateRate); racer->unk1E5 = 0; obj->unk4C->x_position = obj->segment.trans.x_position; obj->unk4C->y_position = obj->segment.trans.y_position; diff --git a/src/racer.h b/src/racer.h index 785c3164..bbe50edf 100644 --- a/src/racer.h +++ b/src/racer.h @@ -42,7 +42,8 @@ typedef enum BoostType { BOOST_MEDIUM, BOOST_LARGE, BOOST_UNK3, - BOOST_SMALL_FAST, + EMPOWER_BOOST, + BOOST_SMALL_FAST = 4, BOOST_MEDIUM_FAST, BOOST_LARGE_FAST } BoostType; @@ -72,6 +73,26 @@ typedef enum ShieldType { SHIELD_LEVEL3 } ShieldType; +typedef enum WeaponType { + WEAPON_NONE = -1, + WEAPON_ROCKET_HOMING, + WEAPON_ROCKET, + WEAPON_TRIPMINE, + WEAPON_OIL_SLICK, + WEAPON_NITRO_LEVEL_1, + WEAPON_MAGNET_LEVEL_1, + WEAPON_MAGNET_LEVEL_3, + WEAPON_MAGNET_LEVEL_2, + WEAPON_NITRO_LEVEL_2, + WEAPON_UNK_09, + WEAOON_BUBBLE_TRAP, + WEAPON_UNK_11, + WEAPON_SHIELD_LEVEL_1, + WEAPON_SHIELD_LEVEL_2, + WEAPON_SHIELD_LEVEL_3, + WEAPON_NITRO_LEVEL_3 +} WeaponType; + typedef struct ObjectCamera { /* 0x0014 */ ObjectTransform trans; /* 0x0018 */ f32 unk18; @@ -150,7 +171,7 @@ extern f32 D_800DCBE8[19]; // Unused? Not sure if this is actually an array or just some random data. extern s32 D_800DCC34[19]; -extern s32 D_800DCC80[13]; +extern s32 D_800DCC80[]; extern s16 D_800DCCB4[12]; @@ -169,9 +190,6 @@ extern s8 D_800DCDA0[8]; extern s8 D_800DCDA8[8]; -// Unused? -extern s16 D_800DCDB0[16]; - extern s32 gObjLoopGoldenBalloonChecksum; extern s16 D_800DCDD4[4]; @@ -260,12 +278,12 @@ void func_8005250C(Object* obj, Object_Racer* racer, s32 updateRate); void func_8005492C(Object* obj, Object_Racer* racer, s32 updateRate, f32 updateRateF); f32 func_800494E0(Object* obj1, Object_Racer* racer, f32 *pos, s8 arg3, s32 updateRate, s32 arg5, f32 arg6); void func_8005A6F0(Object* obj, Object_Racer* racer, s32 updateRate, f32 updateRateF); -void func_80042D20(Object *, Object_Racer *, s32); +void func_80042D20(Object *obj, Object_Racer *racer, s32 updateRate); +void handle_racer_items(Object *obj, Object_Racer *racer, s32 updateRate); +void drop_bananas(Object *obj, Object_Racer *racer, s32 number); //Non Matching void set_ghost_position_and_rotation(Object *obj); -void drop_bananas(Object *obj, Object_Racer *racer, s32 numBananas); -void func_80055EC0(Object *obj, Object_Racer *racer, s32); void func_80054FD0(Object *obj, Object_Racer *racer, s32); void func_80053750(Object *obj, Object_Racer *racer, f32); void func_80052D7C(Object *obj, Object_Racer *racer, s32, f32); @@ -279,8 +297,8 @@ void func_8004CC20(s32 updateRate, f32 updateRateF, Object* obj, Object_Racer* r void func_8004447C(Object *obj, Object_Racer *racer, s32 updateRate); void func_800452A0(Object *obj, Object_Racer *racer, s32 updateRate); void func_80045C48(Object *obj, Object_Racer *racer, s32 updateRate); -void func_80056E2C(Object *obj, Object_Racer *racer, s32 updateRate); -Object* func_8005698C(Object_Racer* racer, Object* obj, f32* arg2); +void racer_activate_magnet(Object *obj, Object_Racer *racer, s32 updateRate); +Object* func_8005698C(Object* racer, Object_Racer* obj, f32* dist); void func_8005B818(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateRateF); #endif diff --git a/src/unknown_008C40.h b/src/unknown_008C40.h index 58bc1abb..f2797d97 100644 --- a/src/unknown_008C40.h +++ b/src/unknown_008C40.h @@ -38,7 +38,7 @@ void func_800096F8(s32); //void update_spatial_audio_position(Vec3f *arg0, f32 arg1, f32 arg2, f32 arg3); s32 func_800092A8(f32 inX, f32 inY, f32 inZ, floatXYZVals *floatXYZ, f32 *outX, f32 *outY, f32 *outZ); -void func_80009558(u16, f32 x, f32 y, f32 z, s32, s32 *); // Non Matching +void func_80009558(u16, f32 x, f32 y, f32 z, s32, void *); // Non Matching void func_80009968(f32, f32, f32, u8, u8, s32); // Non Matching void update_spatial_audio_position(s32, f32, f32, f32); //Not accurate, the real one is above but it breaks update_player_racer void func_8000A2E8(s32); // Non Matching diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index 66e8a8a3..25bc2a80 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -632,7 +632,7 @@ void func_80028CD0(s32 updateRate) { Object_Racer *racer; D_8011B0B0 = func_80069D20(); - sp3C = get_object_render_stack_pos(); + 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->segment.unk34_a.levelSegmentIndex; @@ -653,9 +653,9 @@ void func_80028CD0(s32 updateRate) { i++; racer = &racers[i]->unk64->racer; } while((i < (numRacers - 1)) && (sp3C != (racer->playerIndex))); - func_800B8C04(racers[i]->segment.trans.x_position, racers[i]->segment.trans.y_position, racers[i]->segment.trans.z_position, get_object_render_stack_pos(), updateRate); + 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->segment.trans.x_position, (s32) D_8011B0B0->segment.trans.y_position, (s32) D_8011B0B0->segment.trans.z_position, get_object_render_stack_pos(), updateRate); + func_800B8C04((s32) D_8011B0B0->segment.trans.x_position, (s32) D_8011B0B0->segment.trans.y_position, (s32) D_8011B0B0->segment.trans.z_position, get_current_viewport(), updateRate); } } get_current_level_header()->unk3 = 1; @@ -714,7 +714,7 @@ void render_level_geometry_and_objects(void) { reset_render_settings(&gSceneCurrDisplayList); func_80015348(sp160, sp16C - 1); - sp158 = 0x200 << (get_object_render_stack_pos() & 1); + sp158 = 0x200 << (get_current_viewport() & 1); for (i = sp160; i < sp16C; i++) { obj = get_object(i); @@ -771,7 +771,7 @@ void render_level_geometry_and_objects(void) { } if (D_8011D384 != 0) { - func_800BA8E4(&gSceneCurrDisplayList, &gSceneCurrMatrix, get_object_render_stack_pos()); + func_800BA8E4(&gSceneCurrDisplayList, &gSceneCurrMatrix, get_current_viewport()); } reset_render_settings(&gSceneCurrDisplayList); @@ -815,7 +815,7 @@ skip: } if (D_800DC924 && func_80027568()) { - func_8002581C(segmentIds, numberOfSegments, get_object_render_stack_pos()); + func_8002581C(segmentIds, numberOfSegments, get_current_viewport()); } D_8011B0FC = 0; } diff --git a/src/unknown_0255E0.h b/src/unknown_0255E0.h index 1a0ed870..eed44319 100644 --- a/src/unknown_0255E0.h +++ b/src/unknown_0255E0.h @@ -124,6 +124,7 @@ 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); //Non Matching diff --git a/src/unknown_032760.h b/src/unknown_032760.h index de781165..a68e0be8 100644 --- a/src/unknown_032760.h +++ b/src/unknown_032760.h @@ -95,6 +95,7 @@ void func_80032BAC(unk800DC950 *arg0); s32 func_80032C6C(void); f32 func_80033A14(unk800DC950 *arg0); f32 func_80033C08(unk800DC950 *arg0); +Object_64 *func_80031CAC(Object *, LevelObjectEntry_RgbaLight *entry); //Non Matching void func_80031BB8(s32 count); diff --git a/src/unknown_05CEF0.c b/src/unknown_05CEF0.c index ad482e9e..dbc42bee 100644 --- a/src/unknown_05CEF0.c +++ b/src/unknown_05CEF0.c @@ -32,8 +32,8 @@ u16 D_800DCDE0[16] = { SOUND_VOICE_CONKER_YEHAHA, SOUND_VOICE_TIMBER_WOW, SOUND_WHOOSH2, - SOUND_UNK00, - SOUND_UNK00 + SOUND_NONE, + SOUND_NONE }; /*******************************/ diff --git a/src/waves.h b/src/waves.h index e8fae386..99e940c7 100644 --- a/src/waves.h +++ b/src/waves.h @@ -21,5 +21,7 @@ f32 func_800BEEB4(Object_64 *); // Non Matching void func_800BBE08(void); // Non Matching void func_800BBF78(s32 arg0); // Non Matching f32 func_800BB2F4(s32, f32, f32, f32*); +void func_800B8C04(s32, s32, s32, s32, s32); +void func_800BF524(Object *); #endif diff --git a/src/weather.h b/src/weather.h index 92904317..94346d6c 100644 --- a/src/weather.h +++ b/src/weather.h @@ -97,6 +97,7 @@ void render_rain_overlay(unk800E2C2C*, s32); void process_weather(Gfx **currDisplayList, Matrix **currHudMat, VertexList **currHudVerts, TriangleList **currHudTris, s32 updateRate); void render_falling_snow(void); void free_weather_memory(void); +void func_800ABC5C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5); s32 coss(s16); s32 sins(s16); @@ -104,5 +105,6 @@ void func_800AB1F0(void); s32 func_800AC0C8(s32, unk80127BF8 *); void f32_matrix_dot(Matrix *arg0, Matrix *arg1, Matrix *arg2); void func_800AC21C(void); +void func_800AC8A8(Object *); #endif