mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-03 05:02:59 -04:00
632512ada9
* fixed float issue brought over from zeldaret * Import trig_tables.inc.c * Delete game_data_802BA370.s * Import two funcs from sm64 into code_80004740.c
97 lines
4.7 KiB
ArmAsm
97 lines
4.7 KiB
ArmAsm
glabel func_800151A4
|
|
/* 015DA4 800151A4 27BDFFB8 */ addiu $sp, $sp, -0x48
|
|
/* 015DA8 800151A8 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 015DAC 800151AC 3C118016 */ lui $s1, %hi(D_801646C0) # 0x8016
|
|
/* 015DB0 800151B0 00057040 */ sll $t6, $a1, 1
|
|
/* 015DB4 800151B4 022E8821 */ addu $s1, $s1, $t6
|
|
/* 015DB8 800151B8 963146C0 */ lhu $s1, %lo(D_801646C0)($s1) # 0x46c0($s1)
|
|
/* 015DBC 800151BC AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 015DC0 800151C0 00808025 */ move $s0, $a0
|
|
/* 015DC4 800151C4 16200008 */ bnez $s1, .L800151E8
|
|
/* 015DC8 800151C8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 015DCC 800151CC 44800000 */ mtc1 $zero, $f0
|
|
/* 015DD0 800151D0 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
|
/* 015DD4 800151D4 44812000 */ mtc1 $at, $f4
|
|
/* 015DD8 800151D8 E4800018 */ swc1 $f0, 0x18($a0)
|
|
/* 015DDC 800151DC E4800020 */ swc1 $f0, 0x20($a0)
|
|
/* 015DE0 800151E0 10000045 */ b .L800152F8
|
|
/* 015DE4 800151E4 E484001C */ swc1 $f4, 0x1c($a0)
|
|
.L800151E8:
|
|
/* 015DE8 800151E8 C606000C */ lwc1 $f6, 0xc($s0)
|
|
/* 015DEC 800151EC C6080000 */ lwc1 $f8, ($s0)
|
|
/* 015DF0 800151F0 C60A0010 */ lwc1 $f10, 0x10($s0)
|
|
/* 015DF4 800151F4 C6120004 */ lwc1 $f18, 4($s0)
|
|
/* 015DF8 800151F8 46083081 */ sub.s $f2, $f6, $f8
|
|
/* 015DFC 800151FC C6060008 */ lwc1 $f6, 8($s0)
|
|
/* 015E00 80015200 C6040014 */ lwc1 $f4, 0x14($s0)
|
|
/* 015E04 80015204 46125381 */ sub.s $f14, $f10, $f18
|
|
/* 015E08 80015208 46021202 */ mul.s $f8, $f2, $f2
|
|
/* 015E0C 8001520C E7A20038 */ swc1 $f2, 0x38($sp)
|
|
/* 015E10 80015210 46062401 */ sub.s $f16, $f4, $f6
|
|
/* 015E14 80015214 460E7282 */ mul.s $f10, $f14, $f14
|
|
/* 015E18 80015218 E7AE0034 */ swc1 $f14, 0x34($sp)
|
|
/* 015E1C 8001521C 46108102 */ mul.s $f4, $f16, $f16
|
|
/* 015E20 80015220 E7B00030 */ swc1 $f16, 0x30($sp)
|
|
/* 015E24 80015224 460A4480 */ add.s $f18, $f8, $f10
|
|
/* 015E28 80015228 0C033850 */ jal sqrtf
|
|
/* 015E2C 8001522C 46049300 */ add.s $f12, $f18, $f4
|
|
/* 015E30 80015230 C7A20038 */ lwc1 $f2, 0x38($sp)
|
|
/* 015E34 80015234 C7AE0034 */ lwc1 $f14, 0x34($sp)
|
|
/* 015E38 80015238 C7B00030 */ lwc1 $f16, 0x30($sp)
|
|
/* 015E3C 8001523C 46001183 */ div.s $f6, $f2, $f0
|
|
/* 015E40 80015240 3224FFFF */ andi $a0, $s1, 0xffff
|
|
/* 015E44 80015244 46007203 */ div.s $f8, $f14, $f0
|
|
/* 015E48 80015248 E7A60044 */ swc1 $f6, 0x44($sp)
|
|
/* 015E4C 8001524C 46008283 */ div.s $f10, $f16, $f0
|
|
/* 015E50 80015250 E7A80040 */ swc1 $f8, 0x40($sp)
|
|
/* 015E54 80015254 0C0AE00E */ jal coss
|
|
/* 015E58 80015258 E7AA003C */ swc1 $f10, 0x3c($sp)
|
|
/* 015E5C 8001525C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
|
/* 015E60 80015260 44819800 */ mtc1 $at, $f19
|
|
/* 015E64 80015264 44809000 */ mtc1 $zero, $f18
|
|
/* 015E68 80015268 46000121 */ cvt.d.s $f4, $f0
|
|
/* 015E6C 8001526C 3224FFFF */ andi $a0, $s1, 0xffff
|
|
/* 015E70 80015270 46249181 */ sub.d $f6, $f18, $f4
|
|
/* 015E74 80015274 46203220 */ cvt.s.d $f8, $f6
|
|
/* 015E78 80015278 0C0AE006 */ jal sins
|
|
/* 015E7C 8001527C E7A80028 */ swc1 $f8, 0x28($sp)
|
|
/* 015E80 80015280 C7AA0028 */ lwc1 $f10, 0x28($sp)
|
|
/* 015E84 80015284 C7B20044 */ lwc1 $f18, 0x44($sp)
|
|
/* 015E88 80015288 C7A60040 */ lwc1 $f6, 0x40($sp)
|
|
/* 015E8C 8001528C 3224FFFF */ andi $a0, $s1, 0xffff
|
|
/* 015E90 80015290 46125102 */ mul.s $f4, $f10, $f18
|
|
/* 015E94 80015294 C7AA003C */ lwc1 $f10, 0x3c($sp)
|
|
/* 015E98 80015298 46062202 */ mul.s $f8, $f4, $f6
|
|
/* 015E9C 8001529C 00000000 */ nop
|
|
/* 015EA0 800152A0 460A0482 */ mul.s $f18, $f0, $f10
|
|
/* 015EA4 800152A4 46124101 */ sub.s $f4, $f8, $f18
|
|
/* 015EA8 800152A8 0C0AE00E */ jal coss
|
|
/* 015EAC 800152AC E6040018 */ swc1 $f4, 0x18($s0)
|
|
/* 015EB0 800152B0 C7A60028 */ lwc1 $f6, 0x28($sp)
|
|
/* 015EB4 800152B4 C7AA0040 */ lwc1 $f10, 0x40($sp)
|
|
/* 015EB8 800152B8 3224FFFF */ andi $a0, $s1, 0xffff
|
|
/* 015EBC 800152BC 460A3082 */ mul.s $f2, $f6, $f10
|
|
/* 015EC0 800152C0 00000000 */ nop
|
|
/* 015EC4 800152C4 460A1202 */ mul.s $f8, $f2, $f10
|
|
/* 015EC8 800152C8 46080480 */ add.s $f18, $f0, $f8
|
|
/* 015ECC 800152CC E612001C */ swc1 $f18, 0x1c($s0)
|
|
/* 015ED0 800152D0 0C0AE006 */ jal sins
|
|
/* 015ED4 800152D4 E7A20020 */ swc1 $f2, 0x20($sp)
|
|
/* 015ED8 800152D8 C7A40044 */ lwc1 $f4, 0x44($sp)
|
|
/* 015EDC 800152DC C7A20020 */ lwc1 $f2, 0x20($sp)
|
|
/* 015EE0 800152E0 C7AA003C */ lwc1 $f10, 0x3c($sp)
|
|
/* 015EE4 800152E4 46040182 */ mul.s $f6, $f0, $f4
|
|
/* 015EE8 800152E8 00000000 */ nop
|
|
/* 015EEC 800152EC 460A1202 */ mul.s $f8, $f2, $f10
|
|
/* 015EF0 800152F0 46083480 */ add.s $f18, $f6, $f8
|
|
/* 015EF4 800152F4 E6120020 */ swc1 $f18, 0x20($s0)
|
|
.L800152F8:
|
|
/* 015EF8 800152F8 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 015EFC 800152FC 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 015F00 80015300 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 015F04 80015304 03E00008 */ jr $ra
|
|
/* 015F08 80015308 27BD0048 */ addiu $sp, $sp, 0x48
|
|
|
|
/* 015F0C 8001530C 03E00008 */ jr $ra
|
|
/* 015F10 80015310 00000000 */ nop
|