diff --git a/asm/non_matchings/camera/func_8001D53C.s b/asm/non_matchings/camera/func_8001D53C.s deleted file mode 100644 index 94d4ca990..000000000 --- a/asm/non_matchings/camera/func_8001D53C.s +++ /dev/null @@ -1,156 +0,0 @@ -glabel func_8001D53C -/* 01E13C 8001D53C 27BDFF68 */ addiu $sp, $sp, -0x98 -/* 01E140 8001D540 AFBF0034 */ sw $ra, 0x34($sp) -/* 01E144 8001D544 AFB20030 */ sw $s2, 0x30($sp) -/* 01E148 8001D548 AFB1002C */ sw $s1, 0x2c($sp) -/* 01E14C 8001D54C AFB00028 */ sw $s0, 0x28($sp) -/* 01E150 8001D550 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 01E154 8001D554 AFA700A4 */ sw $a3, 0xa4($sp) -/* 01E158 8001D558 94820222 */ lhu $v0, 0x222($a0) -/* 01E15C 8001D55C 00A08025 */ move $s0, $a1 -/* 01E160 8001D560 00808825 */ move $s1, $a0 -/* 01E164 8001D564 14400009 */ bnez $v0, .L8001D58C -/* 01E168 8001D568 00C09025 */ move $s2, $a2 -/* 01E16C 8001D56C 4480A000 */ mtc1 $zero, $f20 -/* 01E170 8001D570 C4A400A0 */ lwc1 $f4, 0xa0($a1) -/* 01E174 8001D574 4604A032 */ c.eq.s $f20, $f4 -/* 01E178 8001D578 00000000 */ nop -/* 01E17C 8001D57C 45020004 */ bc1fl .L8001D590 -/* 01E180 8001D580 4480A000 */ mtc1 $zero, $f20 -/* 01E184 8001D584 E4B400A0 */ swc1 $f20, 0xa0($a1) -/* 01E188 8001D588 94820222 */ lhu $v0, 0x222($a0) -.L8001D58C: -/* 01E18C 8001D58C 4480A000 */ mtc1 $zero, $f20 -.L8001D590: -/* 01E190 8001D590 24010004 */ li $at, 4 -/* 01E194 8001D594 10410008 */ beq $v0, $at, .L8001D5B8 -/* 01E198 8001D598 260400A0 */ addiu $a0, $s0, 0xa0 -/* 01E19C 8001D59C 3C063D75 */ lui $a2, (0x3D75C28F >> 16) # lui $a2, 0x3d75 -/* 01E1A0 8001D5A0 34C6C28F */ ori $a2, (0x3D75C28F & 0xFFFF) # ori $a2, $a2, 0xc28f -/* 01E1A4 8001D5A4 260400A0 */ addiu $a0, $s0, 0xa0 -/* 01E1A8 8001D5A8 0C008973 */ jal move_f32_towards -/* 01E1AC 8001D5AC 3C0541A0 */ lui $a1, 0x41a0 -/* 01E1B0 8001D5B0 10000006 */ b .L8001D5CC -/* 01E1B4 8001D5B4 87A200B6 */ lh $v0, 0xb6($sp) -.L8001D5B8: -/* 01E1B8 8001D5B8 4405A000 */ mfc1 $a1, $f20 -/* 01E1BC 8001D5BC 3C063D75 */ lui $a2, (0x3D75C28F >> 16) # lui $a2, 0x3d75 -/* 01E1C0 8001D5C0 0C008973 */ jal move_f32_towards -/* 01E1C4 8001D5C4 34C6C28F */ ori $a2, (0x3D75C28F & 0xFFFF) # ori $a2, $a2, 0xc28f -/* 01E1C8 8001D5C8 87A200B6 */ lh $v0, 0xb6($sp) -.L8001D5CC: -/* 01E1CC 8001D5CC 3C018016 */ lui $at, %hi(D_801652A0) -/* 01E1D0 8001D5D0 4405A000 */ mfc1 $a1, $f20 -/* 01E1D4 8001D5D4 00027080 */ sll $t6, $v0, 2 -/* 01E1D8 8001D5D8 002E0821 */ addu $at, $at, $t6 -/* 01E1DC 8001D5DC C42652A0 */ lwc1 $f6, %lo(D_801652A0)($at) -/* 01E1E0 8001D5E0 4407A000 */ mfc1 $a3, $f20 -/* 01E1E4 8001D5E4 27A40074 */ addiu $a0, $sp, 0x74 -/* 01E1E8 8001D5E8 E7A6003C */ swc1 $f6, 0x3c($sp) -/* 01E1EC 8001D5EC C6080030 */ lwc1 $f8, 0x30($s0) -/* 01E1F0 8001D5F0 3C063F80 */ lui $a2, 0x3f80 -/* 01E1F4 8001D5F4 E7A80068 */ swc1 $f8, 0x68($sp) -/* 01E1F8 8001D5F8 C60A0034 */ lwc1 $f10, 0x34($s0) -/* 01E1FC 8001D5FC E7AA006C */ swc1 $f10, 0x6c($sp) -/* 01E200 8001D600 C6100038 */ lwc1 $f16, 0x38($s0) -/* 01E204 8001D604 E7B00070 */ swc1 $f16, 0x70($sp) -/* 01E208 8001D608 C612003C */ lwc1 $f18, 0x3c($s0) -/* 01E20C 8001D60C E7B2005C */ swc1 $f18, 0x5c($sp) -/* 01E210 8001D610 C60600A0 */ lwc1 $f6, 0xa0($s0) -/* 01E214 8001D614 C6040040 */ lwc1 $f4, 0x40($s0) -/* 01E218 8001D618 46062200 */ add.s $f8, $f4, $f6 -/* 01E21C 8001D61C E7A80060 */ swc1 $f8, 0x60($sp) -/* 01E220 8001D620 C60A0044 */ lwc1 $f10, 0x44($s0) -/* 01E224 8001D624 E7AA0064 */ swc1 $f10, 0x64($sp) -/* 01E228 8001D628 C610000C */ lwc1 $f16, 0xc($s0) -/* 01E22C 8001D62C E6500000 */ swc1 $f16, ($s2) -/* 01E230 8001D630 C6120010 */ lwc1 $f18, 0x10($s0) -/* 01E234 8001D634 E6520004 */ swc1 $f18, 4($s2) -/* 01E238 8001D638 C6040014 */ lwc1 $f4, 0x14($s0) -/* 01E23C 8001D63C E6440008 */ swc1 $f4, 8($s2) -/* 01E240 8001D640 87AF00B2 */ lh $t7, 0xb2($sp) -/* 01E244 8001D644 AFAE0038 */ sw $t6, 0x38($sp) -/* 01E248 8001D648 0C0AD950 */ jal func_802B6540 -/* 01E24C 8001D64C AFAF0010 */ sw $t7, 0x10($sp) -/* 01E250 8001D650 27A4005C */ addiu $a0, $sp, 0x5c -/* 01E254 8001D654 0C0AD8EE */ jal func_802B63B8 -/* 01E258 8001D658 27A50074 */ addiu $a1, $sp, 0x74 -/* 01E25C 8001D65C C7A6005C */ lwc1 $f6, 0x5c($sp) -/* 01E260 8001D660 C6280014 */ lwc1 $f8, 0x14($s1) -/* 01E264 8001D664 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* 01E268 8001D668 C630001C */ lwc1 $f16, 0x1c($s1) -/* 01E26C 8001D66C 46083080 */ add.s $f2, $f6, $f8 -/* 01E270 8001D670 C608000C */ lwc1 $f8, 0xc($s0) -/* 01E274 8001D674 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 01E278 8001D678 46105300 */ add.s $f12, $f10, $f16 -/* 01E27C 8001D67C 44817000 */ mtc1 $at, $f14 -/* 01E280 8001D680 C7B20060 */ lwc1 $f18, 0x60($sp) -/* 01E284 8001D684 46081281 */ sub.s $f10, $f2, $f8 -/* 01E288 8001D688 C6240018 */ lwc1 $f4, 0x18($s1) -/* 01E28C 8001D68C C6460000 */ lwc1 $f6, ($s2) -/* 01E290 8001D690 27A40068 */ addiu $a0, $sp, 0x68 -/* 01E294 8001D694 460E5402 */ mul.s $f16, $f10, $f14 -/* 01E298 8001D698 46049000 */ add.s $f0, $f18, $f4 -/* 01E29C 8001D69C C6440008 */ lwc1 $f4, 8($s2) -/* 01E2A0 8001D6A0 27A50074 */ addiu $a1, $sp, 0x74 -/* 01E2A4 8001D6A4 46103480 */ add.s $f18, $f6, $f16 -/* 01E2A8 8001D6A8 E6520000 */ swc1 $f18, ($s2) -/* 01E2AC 8001D6AC C6080014 */ lwc1 $f8, 0x14($s0) -/* 01E2B0 8001D6B0 C6520004 */ lwc1 $f18, 4($s2) -/* 01E2B4 8001D6B4 46086281 */ sub.s $f10, $f12, $f8 -/* 01E2B8 8001D6B8 460E5182 */ mul.s $f6, $f10, $f14 -/* 01E2BC 8001D6BC 46062400 */ add.s $f16, $f4, $f6 -/* 01E2C0 8001D6C0 E6500008 */ swc1 $f16, 8($s2) -/* 01E2C4 8001D6C4 C6080010 */ lwc1 $f8, 0x10($s0) -/* 01E2C8 8001D6C8 46080281 */ sub.s $f10, $f0, $f8 -/* 01E2CC 8001D6CC 460E5102 */ mul.s $f4, $f10, $f14 -/* 01E2D0 8001D6D0 46049180 */ add.s $f6, $f18, $f4 -/* 01E2D4 8001D6D4 0C0AD8EE */ jal func_802B63B8 -/* 01E2D8 8001D6D8 E6460004 */ swc1 $f6, 4($s2) -/* 01E2DC 8001D6DC C7B00068 */ lwc1 $f16, 0x68($sp) -/* 01E2E0 8001D6E0 C6280014 */ lwc1 $f8, 0x14($s1) -/* 01E2E4 8001D6E4 C7AA0070 */ lwc1 $f10, 0x70($sp) -/* 01E2E8 8001D6E8 C632001C */ lwc1 $f18, 0x1c($s1) -/* 01E2EC 8001D6EC C6240074 */ lwc1 $f4, 0x74($s1) -/* 01E2F0 8001D6F0 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 -/* 01E2F4 8001D6F4 46088080 */ add.s $f2, $f16, $f8 -/* 01E2F8 8001D6F8 44808000 */ mtc1 $zero, $f16 -/* 01E2FC 8001D6FC 44818800 */ mtc1 $at, $f17 -/* 01E300 8001D700 460021A1 */ cvt.d.s $f6, $f4 -/* 01E304 8001D704 46125300 */ add.s $f12, $f10, $f18 -/* 01E308 8001D708 C7AA006C */ lwc1 $f10, 0x6c($sp) -/* 01E30C 8001D70C 863800CA */ lh $t8, 0xca($s1) -/* 01E310 8001D710 46303200 */ add.d $f8, $f6, $f16 -/* 01E314 8001D714 24010001 */ li $at, 1 -/* 01E318 8001D718 33190001 */ andi $t9, $t8, 1 -/* 01E31C 8001D71C 460054A1 */ cvt.d.s $f18, $f10 -/* 01E320 8001D720 C7A6003C */ lwc1 $f6, 0x3c($sp) -/* 01E324 8001D724 46289100 */ add.d $f4, $f18, $f8 -/* 01E328 8001D728 8FA800A4 */ lw $t0, 0xa4($sp) -/* 01E32C 8001D72C 17210006 */ bne $t9, $at, .L8001D748 -/* 01E330 8001D730 46202020 */ cvt.s.d $f0, $f4 -/* 01E334 8001D734 3C014120 */ li $at, 0x41200000 # 10.000000 -/* 01E338 8001D738 44818000 */ mtc1 $at, $f16 -/* 01E33C 8001D73C 00000000 */ nop -/* 01E340 8001D740 46103480 */ add.s $f18, $f6, $f16 -/* 01E344 8001D744 46125000 */ add.s $f0, $f10, $f18 -.L8001D748: -/* 01E348 8001D748 8FA20038 */ lw $v0, 0x38($sp) -/* 01E34C 8001D74C E5020000 */ swc1 $f2, ($t0) -/* 01E350 8001D750 8FA900A8 */ lw $t1, 0xa8($sp) -/* 01E354 8001D754 3C018016 */ lui $at, %hi(D_80164A90) -/* 01E358 8001D758 00220821 */ addu $at, $at, $v0 -/* 01E35C 8001D75C E5200000 */ swc1 $f0, ($t1) -/* 01E360 8001D760 8FAA00AC */ lw $t2, 0xac($sp) -/* 01E364 8001D764 E54C0000 */ swc1 $f12, ($t2) -/* 01E368 8001D768 E4344A90 */ swc1 $f20, %lo(D_80164A90)($at) -/* 01E36C 8001D76C 3C018016 */ lui $at, %hi(D_80164AA0) -/* 01E370 8001D770 8FBF0034 */ lw $ra, 0x34($sp) -/* 01E374 8001D774 00220821 */ addu $at, $at, $v0 -/* 01E378 8001D778 E4344AA0 */ swc1 $f20, %lo(D_80164AA0)($at) -/* 01E37C 8001D77C D7B40020 */ ldc1 $f20, 0x20($sp) -/* 01E380 8001D780 8FB20030 */ lw $s2, 0x30($sp) -/* 01E384 8001D784 8FB1002C */ lw $s1, 0x2c($sp) -/* 01E388 8001D788 8FB00028 */ lw $s0, 0x28($sp) -/* 01E38C 8001D78C 03E00008 */ jr $ra -/* 01E390 8001D790 27BD0098 */ addiu $sp, $sp, 0x98 diff --git a/asm/non_matchings/camera/func_8001E8E8.s b/asm/non_matchings/camera/func_8001E8E8.s deleted file mode 100644 index d036be66f..000000000 --- a/asm/non_matchings/camera/func_8001E8E8.s +++ /dev/null @@ -1,74 +0,0 @@ -glabel func_8001E8E8 -/* 01F4E8 8001E8E8 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* 01F4EC 8001E8EC AFBF002C */ sw $ra, 0x2c($sp) -/* 01F4F0 8001E8F0 AFB00028 */ sw $s0, 0x28($sp) -/* 01F4F4 8001E8F4 AFA500AC */ sw $a1, 0xac($sp) -/* 01F4F8 8001E8F8 AFA600B0 */ sw $a2, 0xb0($sp) -/* 01F4FC 8001E8FC A48000B0 */ sh $zero, 0xb0($a0) -/* 01F500 8001E900 8FAE00AC */ lw $t6, 0xac($sp) -/* 01F504 8001E904 00808025 */ move $s0, $a0 -/* 01F508 8001E908 27B90078 */ addiu $t9, $sp, 0x78 -/* 01F50C 8001E90C 85CF002E */ lh $t7, 0x2e($t6) -/* 01F510 8001E910 27A80074 */ addiu $t0, $sp, 0x74 -/* 01F514 8001E914 02002825 */ move $a1, $s0 -/* 01F518 8001E918 A48F002C */ sh $t7, 0x2c($a0) -/* 01F51C 8001E91C 8FA400AC */ lw $a0, 0xac($sp) -/* 01F520 8001E920 AFA80014 */ sw $t0, 0x14($sp) -/* 01F524 8001E924 AFB90010 */ sw $t9, 0x10($sp) -/* 01F528 8001E928 83AA00B3 */ lb $t2, 0xb3($sp) -/* 01F52C 8001E92C 8489002E */ lh $t1, 0x2e($a0) -/* 01F530 8001E930 27A6005C */ addiu $a2, $sp, 0x5c -/* 01F534 8001E934 27A7007C */ addiu $a3, $sp, 0x7c -/* 01F538 8001E938 AFAA001C */ sw $t2, 0x1c($sp) -/* 01F53C 8001E93C 0C00754F */ jal func_8001D53C -/* 01F540 8001E940 AFA90018 */ sw $t1, 0x18($sp) -/* 01F544 8001E944 C7A40074 */ lwc1 $f4, 0x74($sp) -/* 01F548 8001E948 26040054 */ addiu $a0, $s0, 0x54 -/* 01F54C 8001E94C 3C0540A0 */ lui $a1, 0x40a0 -/* 01F550 8001E950 8FA6007C */ lw $a2, 0x7c($sp) -/* 01F554 8001E954 8FA70078 */ lw $a3, 0x78($sp) -/* 01F558 8001E958 0C0AB772 */ jal func_802ADDC8 -/* 01F55C 8001E95C E7A40010 */ swc1 $f4, 0x10($sp) -/* 01F560 8001E960 C7A6005C */ lwc1 $f6, 0x5c($sp) -/* 01F564 8001E964 E606000C */ swc1 $f6, 0xc($s0) -/* 01F568 8001E968 C7A80060 */ lwc1 $f8, 0x60($sp) -/* 01F56C 8001E96C C606000C */ lwc1 $f6, 0xc($s0) -/* 01F570 8001E970 E6080010 */ swc1 $f8, 0x10($s0) -/* 01F574 8001E974 C7AA0064 */ lwc1 $f10, 0x64($sp) -/* 01F578 8001E978 E60A0014 */ swc1 $f10, 0x14($s0) -/* 01F57C 8001E97C C7B0007C */ lwc1 $f16, 0x7c($sp) -/* 01F580 8001E980 C60A0010 */ lwc1 $f10, 0x10($s0) -/* 01F584 8001E984 E6100000 */ swc1 $f16, ($s0) -/* 01F588 8001E988 C7B20078 */ lwc1 $f18, 0x78($sp) -/* 01F58C 8001E98C C6080000 */ lwc1 $f8, ($s0) -/* 01F590 8001E990 E6120004 */ swc1 $f18, 4($s0) -/* 01F594 8001E994 C6100004 */ lwc1 $f16, 4($s0) -/* 01F598 8001E998 C7A40074 */ lwc1 $f4, 0x74($sp) -/* 01F59C 8001E99C 46083301 */ sub.s $f12, $f6, $f8 -/* 01F5A0 8001E9A0 E6040008 */ swc1 $f4, 8($s0) -/* 01F5A4 8001E9A4 46105481 */ sub.s $f18, $f10, $f16 -/* 01F5A8 8001E9A8 E7B20088 */ swc1 $f18, 0x88($sp) -/* 01F5AC 8001E9AC C6060008 */ lwc1 $f6, 8($s0) -/* 01F5B0 8001E9B0 C6040014 */ lwc1 $f4, 0x14($s0) -/* 01F5B4 8001E9B4 E7AC008C */ swc1 $f12, 0x8c($sp) -/* 01F5B8 8001E9B8 46062381 */ sub.s $f14, $f4, $f6 -/* 01F5BC 8001E9BC 0C0ADE0C */ jal atan2s -/* 01F5C0 8001E9C0 E7AE0084 */ swc1 $f14, 0x84($sp) -/* 01F5C4 8001E9C4 C7A0008C */ lwc1 $f0, 0x8c($sp) -/* 01F5C8 8001E9C8 C7AE0084 */ lwc1 $f14, 0x84($sp) -/* 01F5CC 8001E9CC A6020026 */ sh $v0, 0x26($s0) -/* 01F5D0 8001E9D0 46000202 */ mul.s $f8, $f0, $f0 -/* 01F5D4 8001E9D4 00000000 */ nop -/* 01F5D8 8001E9D8 460E7282 */ mul.s $f10, $f14, $f14 -/* 01F5DC 8001E9DC 0C033850 */ jal sqrtf -/* 01F5E0 8001E9E0 460A4300 */ add.s $f12, $f8, $f10 -/* 01F5E4 8001E9E4 46000306 */ mov.s $f12, $f0 -/* 01F5E8 8001E9E8 0C0ADE0C */ jal atan2s -/* 01F5EC 8001E9EC C7AE0088 */ lwc1 $f14, 0x88($sp) -/* 01F5F0 8001E9F0 A6020024 */ sh $v0, 0x24($s0) -/* 01F5F4 8001E9F4 A6000028 */ sh $zero, 0x28($s0) -/* 01F5F8 8001E9F8 8FBF002C */ lw $ra, 0x2c($sp) -/* 01F5FC 8001E9FC 8FB00028 */ lw $s0, 0x28($sp) -/* 01F600 8001EA00 27BD00A8 */ addiu $sp, $sp, 0xa8 -/* 01F604 8001EA04 03E00008 */ jr $ra -/* 01F608 8001EA08 00000000 */ nop diff --git a/asm/non_matchings/code_80057C60/func_80060B14.s b/asm/non_matchings/code_80057C60/func_80060B14.s deleted file mode 100644 index e011441cc..000000000 --- a/asm/non_matchings/code_80057C60/func_80060B14.s +++ /dev/null @@ -1,52 +0,0 @@ -glabel func_80060B14 -/* 061714 80060B14 3C02800E */ lui $v0, %hi(gCurrentCourseId) # $v0, 0x800e -/* 061718 80060B18 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0) -/* 06171C 80060B1C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 061720 80060B20 00057400 */ sll $t6, $a1, 0x10 -/* 061724 80060B24 000E7C03 */ sra $t7, $t6, 0x10 -/* 061728 80060B28 AFA50024 */ sw $a1, 0x24($sp) -/* 06172C 80060B2C AFA7002C */ sw $a3, 0x2c($sp) -/* 061730 80060B30 0007C600 */ sll $t8, $a3, 0x18 -/* 061734 80060B34 24010010 */ li $at, 16 -/* 061738 80060B38 00183E03 */ sra $a3, $t8, 0x18 -/* 06173C 80060B3C 01E02825 */ move $a1, $t7 -/* 061740 80060B40 1041001E */ beq $v0, $at, .L80060BBC -/* 061744 80060B44 AFBF001C */ sw $ra, 0x1c($sp) -/* 061748 80060B48 2401000D */ li $at, 13 -/* 06174C 80060B4C 5041001C */ beql $v0, $at, .L80060BC0 -/* 061750 80060B50 8FBF001C */ lw $ra, 0x1c($sp) -/* 061754 80060B54 15E0000F */ bnez $t7, .L80060B94 -/* 061758 80060B58 000640C0 */ sll $t0, $a2, 3 -/* 06175C 80060B5C 01064021 */ addu $t0, $t0, $a2 -/* 061760 80060B60 000840C0 */ sll $t0, $t0, 3 -/* 061764 80060B64 00881021 */ addu $v0, $a0, $t0 -/* 061768 80060B68 84490276 */ lh $t1, 0x276($v0) -/* 06176C 80060B6C 83AB0033 */ lb $t3, 0x33($sp) -/* 061770 80060B70 1D200004 */ bgtz $t1, .L80060B84 -/* 061774 80060B74 00000000 */ nop -/* 061778 80060B78 844A0274 */ lh $t2, 0x274($v0) -/* 06177C 80060B7C 55400006 */ bnel $t2, $zero, .L80060B98 -/* 061780 80060B80 000660C0 */ sll $t4, $a2, 3 -.L80060B84: -/* 061784 80060B84 0C018238 */ jal func_800608E0 -/* 061788 80060B88 AFAB0010 */ sw $t3, 0x10($sp) -/* 06178C 80060B8C 1000000C */ b .L80060BC0 -/* 061790 80060B90 8FBF001C */ lw $ra, 0x1c($sp) -.L80060B94: -/* 061794 80060B94 000660C0 */ sll $t4, $a2, 3 -.L80060B98: -/* 061798 80060B98 01866021 */ addu $t4, $t4, $a2 -/* 06179C 80060B9C 000C60C0 */ sll $t4, $t4, 3 -/* 0617A0 80060BA0 008C6821 */ addu $t5, $a0, $t4 -/* 0617A4 80060BA4 85AE0276 */ lh $t6, 0x276($t5) -/* 0617A8 80060BA8 83AF0033 */ lb $t7, 0x33($sp) -/* 0617AC 80060BAC 59C00004 */ blezl $t6, .L80060BC0 -/* 0617B0 80060BB0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0617B4 80060BB4 0C018238 */ jal func_800608E0 -/* 0617B8 80060BB8 AFAF0010 */ sw $t7, 0x10($sp) -.L80060BBC: -/* 0617BC 80060BBC 8FBF001C */ lw $ra, 0x1c($sp) -.L80060BC0: -/* 0617C0 80060BC0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0617C4 80060BC4 03E00008 */ jr $ra -/* 0617C8 80060BC8 00000000 */ nop diff --git a/asm/non_matchings/code_80057C60/func_8006B8B4.s b/asm/non_matchings/code_80057C60/func_8006B8B4.s deleted file mode 100644 index 2190c42f6..000000000 --- a/asm/non_matchings/code_80057C60/func_8006B8B4.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_8006B8B4 -/* 06C4B4 8006B8B4 00053600 */ sll $a2, $a1, 0x18 -/* 06C4B8 8006B8B8 00067603 */ sra $t6, $a2, 0x18 -/* 06C4BC 8006B8BC 3C188019 */ lui $t8, %hi(gPlayerBalloonCount) # $t8, 0x8019 -/* 06C4C0 8006B8C0 2718D8C0 */ addiu $t8, %lo(gPlayerBalloonCount) # addiu $t8, $t8, -0x2740 -/* 06C4C4 8006B8C4 000E7840 */ sll $t7, $t6, 1 -/* 06C4C8 8006B8C8 01F81821 */ addu $v1, $t7, $t8 -/* 06C4CC 8006B8CC 84670000 */ lh $a3, ($v1) -/* 06C4D0 8006B8D0 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 06C4D4 8006B8D4 AFBF0014 */ sw $ra, 0x14($sp) -/* 06C4D8 8006B8D8 AFA40020 */ sw $a0, 0x20($sp) -/* 06C4DC 8006B8DC AFA50024 */ sw $a1, 0x24($sp) -/* 06C4E0 8006B8E0 04E00020 */ bltz $a3, .L8006B964 -/* 06C4E4 8006B8E4 01C03025 */ move $a2, $t6 -/* 06C4E8 8006B8E8 000EC880 */ sll $t9, $t6, 2 -/* 06C4EC 8006B8EC 032EC823 */ subu $t9, $t9, $t6 -/* 06C4F0 8006B8F0 0019C840 */ sll $t9, $t9, 1 -/* 06C4F4 8006B8F4 00074040 */ sll $t0, $a3, 1 -/* 06C4F8 8006B8F8 3C0A8019 */ lui $t2, %hi(gPlayerBalloonStatus) # $t2, 0x8019 -/* 06C4FC 8006B8FC 254AD5F0 */ addiu $t2, %lo(gPlayerBalloonStatus) # addiu $t2, $t2, -0x2a10 -/* 06C500 8006B900 03284821 */ addu $t1, $t9, $t0 -/* 06C504 8006B904 012A1021 */ addu $v0, $t1, $t2 -/* 06C508 8006B908 944B0000 */ lhu $t3, ($v0) -/* 06C50C 8006B90C 24EFFFFF */ addiu $t7, $a3, -1 -/* 06C510 8006B910 3C051900 */ lui $a1, (0x19009051 >> 16) # lui $a1, 0x1900 -/* 06C514 8006B914 316DFFFE */ andi $t5, $t3, 0xfffe -/* 06C518 8006B918 A44D0000 */ sh $t5, ($v0) -/* 06C51C 8006B91C 35AE0002 */ ori $t6, $t5, 2 -/* 06C520 8006B920 A44E0000 */ sh $t6, ($v0) -/* 06C524 8006B924 A46F0000 */ sh $t7, ($v1) -/* 06C528 8006B928 34A59051 */ ori $a1, (0x19009051 & 0xFFFF) # ori $a1, $a1, 0x9051 -/* 06C52C 8006B92C 30C400FF */ andi $a0, $a2, 0xff -/* 06C530 8006B930 AFA3001C */ sw $v1, 0x1c($sp) -/* 06C534 8006B934 0C032418 */ jal func_800C9060 -/* 06C538 8006B938 A3A60027 */ sb $a2, 0x27($sp) -/* 06C53C 8006B93C 8FA3001C */ lw $v1, 0x1c($sp) -/* 06C540 8006B940 83A60027 */ lb $a2, 0x27($sp) -/* 06C544 8006B944 8FA40020 */ lw $a0, 0x20($sp) -/* 06C548 8006B948 84780000 */ lh $t8, ($v1) -/* 06C54C 8006B94C 00062E00 */ sll $a1, $a2, 0x18 -/* 06C550 8006B950 0005CE03 */ sra $t9, $a1, 0x18 -/* 06C554 8006B954 07030004 */ bgezl $t8, .L8006B968 -/* 06C558 8006B958 8FBF0014 */ lw $ra, 0x14($sp) -/* 06C55C 8006B95C 0C023F53 */ jal func_8008FD4C -/* 06C560 8006B960 03202825 */ move $a1, $t9 -.L8006B964: -/* 06C564 8006B964 8FBF0014 */ lw $ra, 0x14($sp) -.L8006B968: -/* 06C568 8006B968 27BD0020 */ addiu $sp, $sp, 0x20 -/* 06C56C 8006B96C 03E00008 */ jr $ra -/* 06C570 8006B970 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_80071FBC.s b/asm/non_matchings/code_80071F00/func_80071FBC.s deleted file mode 100644 index 6f413205e..000000000 --- a/asm/non_matchings/code_80071F00/func_80071FBC.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_80071FBC -/* 072BBC 80071FBC 3C0E8016 */ lui $t6, %hi(D_80165CE2) # $t6, 0x8016 -/* 072BC0 80071FC0 81CE5CE2 */ lb $t6, %lo(D_80165CE2)($t6) -/* 072BC4 80071FC4 00001825 */ move $v1, $zero -/* 072BC8 80071FC8 3C0F8016 */ lui $t7, %hi(D_80165DC2) # $t7, 0x8016 -/* 072BCC 80071FCC 11C00002 */ beqz $t6, .L80071FD8 -/* 072BD0 80071FD0 3C048016 */ lui $a0, %hi(D_80165DD8) # $a0, 0x8016 -/* 072BD4 80071FD4 24030001 */ li $v1, 1 -.L80071FD8: -/* 072BD8 80071FD8 81EF5DC2 */ lb $t7, %lo(D_80165DC2)($t7) -/* 072BDC 80071FDC 3C028018 */ lui $v0, %hi(D_80183D58) # $v0, 0x8018 -/* 072BE0 80071FE0 24423D58 */ addiu $v0, %lo(D_80183D58) # addiu $v0, $v0, 0x3d58 -/* 072BE4 80071FE4 11E00002 */ beqz $t7, .L80071FF0 -/* 072BE8 80071FE8 24845DD8 */ addiu $a0, %lo(D_80165DD8) # addiu $a0, $a0, 0x5dd8 -/* 072BEC 80071FEC 24630001 */ addiu $v1, $v1, 1 -.L80071FF0: -/* 072BF0 80071FF0 809800CA */ lb $t8, 0xca($a0) -.L80071FF4: -/* 072BF4 80071FF4 53000003 */ beql $t8, $zero, .L80072004 -/* 072BF8 80071FF8 809901AA */ lb $t9, 0x1aa($a0) -/* 072BFC 80071FFC 24630001 */ addiu $v1, $v1, 1 -/* 072C00 80072000 809901AA */ lb $t9, 0x1aa($a0) -.L80072004: -/* 072C04 80072004 53200003 */ beql $t9, $zero, .L80072014 -/* 072C08 80072008 8088028A */ lb $t0, 0x28a($a0) -/* 072C0C 8007200C 24630001 */ addiu $v1, $v1, 1 -/* 072C10 80072010 8088028A */ lb $t0, 0x28a($a0) -.L80072014: -/* 072C14 80072014 51000003 */ beql $t0, $zero, .L80072024 -/* 072C18 80072018 8089036A */ lb $t1, 0x36a($a0) -/* 072C1C 8007201C 24630001 */ addiu $v1, $v1, 1 -/* 072C20 80072020 8089036A */ lb $t1, 0x36a($a0) -.L80072024: -/* 072C24 80072024 24840380 */ addiu $a0, $a0, 0x380 -/* 072C28 80072028 11200002 */ beqz $t1, .L80072034 -/* 072C2C 8007202C 00000000 */ nop -/* 072C30 80072030 24630001 */ addiu $v1, $v1, 1 -.L80072034: -/* 072C34 80072034 5482FFEF */ bnel $a0, $v0, .L80071FF4 -/* 072C38 80072038 809800CA */ lb $t8, 0xca($a0) -/* 072C3C 8007203C 03E00008 */ jr $ra -/* 072C40 80072040 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80071F00/func_8007A66C.s b/asm/non_matchings/code_80071F00/func_8007A66C.s deleted file mode 100644 index 3437be4ac..000000000 --- a/asm/non_matchings/code_80071F00/func_8007A66C.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel func_8007A66C -/* 07B26C 8007A66C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 07B270 8007A670 AFBF001C */ sw $ra, 0x1c($sp) -/* 07B274 8007A674 AFB00018 */ sw $s0, 0x18($sp) -/* 07B278 8007A678 AFA40030 */ sw $a0, 0x30($sp) -/* 07B27C 8007A67C AFA50034 */ sw $a1, 0x34($sp) -/* 07B280 8007A680 84CE0026 */ lh $t6, 0x26($a2) -/* 07B284 8007A684 340F8000 */ li $t7, 32768 -/* 07B288 8007A688 01EE8023 */ subu $s0, $t7, $t6 -/* 07B28C 8007A68C 3218FFFF */ andi $t8, $s0, 0xffff -/* 07B290 8007A690 03008025 */ move $s0, $t8 -/* 07B294 8007A694 0C0AE00E */ jal coss -/* 07B298 8007A698 3304FFFF */ andi $a0, $t8, 0xffff -/* 07B29C 8007A69C E7A00024 */ swc1 $f0, 0x24($sp) -/* 07B2A0 8007A6A0 0C0AE006 */ jal sins -/* 07B2A4 8007A6A4 3204FFFF */ andi $a0, $s0, 0xffff -/* 07B2A8 8007A6A8 8FB90030 */ lw $t9, 0x30($sp) -/* 07B2AC 8007A6AC 3C098016 */ lui $t1, %hi(D_80165C18) # $t1, 0x8016 -/* 07B2B0 8007A6B0 25295C18 */ addiu $t1, %lo(D_80165C18) # addiu $t1, $t1, 0x5c18 -/* 07B2B4 8007A6B4 001940C0 */ sll $t0, $t9, 3 -/* 07B2B8 8007A6B8 01194023 */ subu $t0, $t0, $t9 -/* 07B2BC 8007A6BC 00084140 */ sll $t0, $t0, 5 -/* 07B2C0 8007A6C0 01091021 */ addu $v0, $t0, $t1 -/* 07B2C4 8007A6C4 C4440010 */ lwc1 $f4, 0x10($v0) -/* 07B2C8 8007A6C8 C4460028 */ lwc1 $f6, 0x28($v0) -/* 07B2CC 8007A6CC C7AA0024 */ lwc1 $f10, 0x24($sp) -/* 07B2D0 8007A6D0 8FA30034 */ lw $v1, 0x34($sp) -/* 07B2D4 8007A6D4 46062200 */ add.s $f8, $f4, $f6 -/* 07B2D8 8007A6D8 C4460030 */ lwc1 $f6, 0x30($v0) -/* 07B2DC 8007A6DC C4720014 */ lwc1 $f18, 0x14($v1) -/* 07B2E0 8007A6E0 3204FFFF */ andi $a0, $s0, 0xffff -/* 07B2E4 8007A6E4 46085402 */ mul.s $f16, $f10, $f8 -/* 07B2E8 8007A6E8 C44A0018 */ lwc1 $f10, 0x18($v0) -/* 07B2EC 8007A6EC 460A3200 */ add.s $f8, $f6, $f10 -/* 07B2F0 8007A6F0 C44A0014 */ lwc1 $f10, 0x14($v0) -/* 07B2F4 8007A6F4 46109100 */ add.s $f4, $f18, $f16 -/* 07B2F8 8007A6F8 46004482 */ mul.s $f18, $f8, $f0 -/* 07B2FC 8007A6FC 46122401 */ sub.s $f16, $f4, $f18 -/* 07B300 8007A700 C444002C */ lwc1 $f4, 0x2c($v0) -/* 07B304 8007A704 E4500004 */ swc1 $f16, 4($v0) -/* 07B308 8007A708 C4660074 */ lwc1 $f6, 0x74($v1) -/* 07B30C 8007A70C AFA20020 */ sw $v0, 0x20($sp) -/* 07B310 8007A710 460A3200 */ add.s $f8, $f6, $f10 -/* 07B314 8007A714 46082480 */ add.s $f18, $f4, $f8 -/* 07B318 8007A718 0C0AE006 */ jal sins -/* 07B31C 8007A71C E4520008 */ swc1 $f18, 8($v0) -/* 07B320 8007A720 E7A00024 */ swc1 $f0, 0x24($sp) -/* 07B324 8007A724 0C0AE00E */ jal coss -/* 07B328 8007A728 3204FFFF */ andi $a0, $s0, 0xffff -/* 07B32C 8007A72C 8FA20020 */ lw $v0, 0x20($sp) -/* 07B330 8007A730 8FAA0034 */ lw $t2, 0x34($sp) -/* 07B334 8007A734 8FBF001C */ lw $ra, 0x1c($sp) -/* 07B338 8007A738 C4500030 */ lwc1 $f16, 0x30($v0) -/* 07B33C 8007A73C C4460018 */ lwc1 $f6, 0x18($v0) -/* 07B340 8007A740 C4480010 */ lwc1 $f8, 0x10($v0) -/* 07B344 8007A744 C4520028 */ lwc1 $f18, 0x28($v0) -/* 07B348 8007A748 46068280 */ add.s $f10, $f16, $f6 -/* 07B34C 8007A74C C7A60024 */ lwc1 $f6, 0x24($sp) -/* 07B350 8007A750 8FB00018 */ lw $s0, 0x18($sp) -/* 07B354 8007A754 46124400 */ add.s $f16, $f8, $f18 -/* 07B358 8007A758 46005102 */ mul.s $f4, $f10, $f0 -/* 07B35C 8007A75C C548001C */ lwc1 $f8, 0x1c($t2) -/* 07B360 8007A760 27BD0030 */ addiu $sp, $sp, 0x30 -/* 07B364 8007A764 46103282 */ mul.s $f10, $f6, $f16 -/* 07B368 8007A768 460A4480 */ add.s $f18, $f8, $f10 -/* 07B36C 8007A76C 46122180 */ add.s $f6, $f4, $f18 -/* 07B370 8007A770 03E00008 */ jr $ra -/* 07B374 8007A774 E446000C */ swc1 $f6, 0xc($v0) diff --git a/asm/non_matchings/code_80071F00/func_8007A778.s b/asm/non_matchings/code_80071F00/func_8007A778.s deleted file mode 100644 index 1c1f3c09b..000000000 --- a/asm/non_matchings/code_80071F00/func_8007A778.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel func_8007A778 -/* 07B378 8007A778 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 07B37C 8007A77C AFBF001C */ sw $ra, 0x1c($sp) -/* 07B380 8007A780 AFB00018 */ sw $s0, 0x18($sp) -/* 07B384 8007A784 AFA40030 */ sw $a0, 0x30($sp) -/* 07B388 8007A788 AFA50034 */ sw $a1, 0x34($sp) -/* 07B38C 8007A78C 84CE0026 */ lh $t6, 0x26($a2) -/* 07B390 8007A790 340F8000 */ li $t7, 32768 -/* 07B394 8007A794 01EE8023 */ subu $s0, $t7, $t6 -/* 07B398 8007A798 3218FFFF */ andi $t8, $s0, 0xffff -/* 07B39C 8007A79C 03008025 */ move $s0, $t8 -/* 07B3A0 8007A7A0 0C0AE00E */ jal coss -/* 07B3A4 8007A7A4 3304FFFF */ andi $a0, $t8, 0xffff -/* 07B3A8 8007A7A8 E7A00024 */ swc1 $f0, 0x24($sp) -/* 07B3AC 8007A7AC 0C0AE006 */ jal sins -/* 07B3B0 8007A7B0 3204FFFF */ andi $a0, $s0, 0xffff -/* 07B3B4 8007A7B4 8FB90030 */ lw $t9, 0x30($sp) -/* 07B3B8 8007A7B8 3C098016 */ lui $t1, %hi(D_80165C18) # $t1, 0x8016 -/* 07B3BC 8007A7BC 25295C18 */ addiu $t1, %lo(D_80165C18) # addiu $t1, $t1, 0x5c18 -/* 07B3C0 8007A7C0 001940C0 */ sll $t0, $t9, 3 -/* 07B3C4 8007A7C4 01194023 */ subu $t0, $t0, $t9 -/* 07B3C8 8007A7C8 00084140 */ sll $t0, $t0, 5 -/* 07B3CC 8007A7CC 01091021 */ addu $v0, $t0, $t1 -/* 07B3D0 8007A7D0 C4440010 */ lwc1 $f4, 0x10($v0) -/* 07B3D4 8007A7D4 C4460028 */ lwc1 $f6, 0x28($v0) -/* 07B3D8 8007A7D8 C7AA0024 */ lwc1 $f10, 0x24($sp) -/* 07B3DC 8007A7DC 8FA30034 */ lw $v1, 0x34($sp) -/* 07B3E0 8007A7E0 46062200 */ add.s $f8, $f4, $f6 -/* 07B3E4 8007A7E4 C4460030 */ lwc1 $f6, 0x30($v0) -/* 07B3E8 8007A7E8 C4720014 */ lwc1 $f18, 0x14($v1) -/* 07B3EC 8007A7EC 3204FFFF */ andi $a0, $s0, 0xffff -/* 07B3F0 8007A7F0 46085402 */ mul.s $f16, $f10, $f8 -/* 07B3F4 8007A7F4 C44A0018 */ lwc1 $f10, 0x18($v0) -/* 07B3F8 8007A7F8 460A3200 */ add.s $f8, $f6, $f10 -/* 07B3FC 8007A7FC C44A0014 */ lwc1 $f10, 0x14($v0) -/* 07B400 8007A800 46109100 */ add.s $f4, $f18, $f16 -/* 07B404 8007A804 46004482 */ mul.s $f18, $f8, $f0 -/* 07B408 8007A808 46122401 */ sub.s $f16, $f4, $f18 -/* 07B40C 8007A80C C444002C */ lwc1 $f4, 0x2c($v0) -/* 07B410 8007A810 E4500004 */ swc1 $f16, 4($v0) -/* 07B414 8007A814 C4660018 */ lwc1 $f6, 0x18($v1) -/* 07B418 8007A818 AFA20020 */ sw $v0, 0x20($sp) -/* 07B41C 8007A81C 460A3200 */ add.s $f8, $f6, $f10 -/* 07B420 8007A820 46082480 */ add.s $f18, $f4, $f8 -/* 07B424 8007A824 0C0AE006 */ jal sins -/* 07B428 8007A828 E4520008 */ swc1 $f18, 8($v0) -/* 07B42C 8007A82C E7A00024 */ swc1 $f0, 0x24($sp) -/* 07B430 8007A830 0C0AE00E */ jal coss -/* 07B434 8007A834 3204FFFF */ andi $a0, $s0, 0xffff -/* 07B438 8007A838 8FA20020 */ lw $v0, 0x20($sp) -/* 07B43C 8007A83C 8FAA0034 */ lw $t2, 0x34($sp) -/* 07B440 8007A840 8FBF001C */ lw $ra, 0x1c($sp) -/* 07B444 8007A844 C4500030 */ lwc1 $f16, 0x30($v0) -/* 07B448 8007A848 C4460018 */ lwc1 $f6, 0x18($v0) -/* 07B44C 8007A84C C4480010 */ lwc1 $f8, 0x10($v0) -/* 07B450 8007A850 C4520028 */ lwc1 $f18, 0x28($v0) -/* 07B454 8007A854 46068280 */ add.s $f10, $f16, $f6 -/* 07B458 8007A858 C7A60024 */ lwc1 $f6, 0x24($sp) -/* 07B45C 8007A85C 8FB00018 */ lw $s0, 0x18($sp) -/* 07B460 8007A860 46124400 */ add.s $f16, $f8, $f18 -/* 07B464 8007A864 46005102 */ mul.s $f4, $f10, $f0 -/* 07B468 8007A868 C548001C */ lwc1 $f8, 0x1c($t2) -/* 07B46C 8007A86C 27BD0030 */ addiu $sp, $sp, 0x30 -/* 07B470 8007A870 46103282 */ mul.s $f10, $f6, $f16 -/* 07B474 8007A874 460A4480 */ add.s $f18, $f8, $f10 -/* 07B478 8007A878 46122180 */ add.s $f6, $f4, $f18 -/* 07B47C 8007A87C 03E00008 */ jr $ra -/* 07B480 8007A880 E446000C */ swc1 $f6, 0xc($v0) diff --git a/asm/non_matchings/code_80071F00/func_8007A88C.s b/asm/non_matchings/code_80071F00/func_8007A88C.s deleted file mode 100644 index d88662aee..000000000 --- a/asm/non_matchings/code_80071F00/func_8007A88C.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_8007A88C -/* 07B48C 8007A88C 00047080 */ sll $t6, $a0, 2 -/* 07B490 8007A890 3C028018 */ lui $v0, %hi(D_80183DB8) # 0x8018 -/* 07B494 8007A894 004E1021 */ addu $v0, $v0, $t6 -/* 07B498 8007A898 8C423DB8 */ lw $v0, %lo(D_80183DB8)($v0) # 0x3db8($v0) -/* 07B49C 8007A89C 000478C0 */ sll $t7, $a0, 3 -/* 07B4A0 8007A8A0 01E47823 */ subu $t7, $t7, $a0 -/* 07B4A4 8007A8A4 0002C8C0 */ sll $t9, $v0, 3 -/* 07B4A8 8007A8A8 0322C823 */ subu $t9, $t9, $v0 -/* 07B4AC 8007A8AC 000F7900 */ sll $t7, $t7, 4 -/* 07B4B0 8007A8B0 0019C940 */ sll $t9, $t9, 5 -/* 07B4B4 8007A8B4 3C088016 */ lui $t0, %hi(D_80165CBE) # 0x8016 -/* 07B4B8 8007A8B8 01E47823 */ subu $t7, $t7, $a0 -/* 07B4BC 8007A8BC 01194021 */ addu $t0, $t0, $t9 -/* 07B4C0 8007A8C0 85085CBE */ lh $t0, %lo(D_80165CBE)($t0) # 0x5cbe($t0) -/* 07B4C4 8007A8C4 000F7880 */ sll $t7, $t7, 2 -/* 07B4C8 8007A8C8 3C18800E */ lui $t8, %hi(gPlayerOne) # $t8, 0x800e -/* 07B4CC 8007A8CC 8F18C4DC */ lw $t8, %lo(gPlayerOne)($t8) -/* 07B4D0 8007A8D0 01E47823 */ subu $t7, $t7, $a0 -/* 07B4D4 8007A8D4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 07B4D8 8007A8D8 000F78C0 */ sll $t7, $t7, 3 -/* 07B4DC 8007A8DC AFBF0014 */ sw $ra, 0x14($sp) -/* 07B4E0 8007A8E0 15000007 */ bnez $t0, .L8007A900 -/* 07B4E4 8007A8E4 01F81821 */ addu $v1, $t7, $t8 -/* 07B4E8 8007A8E8 8C6900BC */ lw $t1, 0xbc($v1) -/* 07B4EC 8007A8EC 00095240 */ sll $t2, $t1, 9 -/* 07B4F0 8007A8F0 05430004 */ bgezl $t2, .L8007A904 -/* 07B4F4 8007A8F4 8FBF0014 */ lw $ra, 0x14($sp) -/* 07B4F8 8007A8F8 0C01E439 */ jal func_800790E4 -/* 07B4FC 8007A8FC 00000000 */ nop -.L8007A900: -/* 07B500 8007A900 8FBF0014 */ lw $ra, 0x14($sp) -.L8007A904: -/* 07B504 8007A904 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07B508 8007A908 03E00008 */ jr $ra -/* 07B50C 8007A90C 00000000 */ nop diff --git a/asm/non_matchings/code_80071F00/func_8007F544.s b/asm/non_matchings/code_80071F00/func_8007F544.s deleted file mode 100644 index e27fb3130..000000000 --- a/asm/non_matchings/code_80071F00/func_8007F544.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_8007F544 -/* 080144 8007F544 000470C0 */ sll $t6, $a0, 3 -/* 080148 8007F548 01C47023 */ subu $t6, $t6, $a0 -/* 08014C 8007F54C 000E7140 */ sll $t6, $t6, 5 -/* 080150 8007F550 3C028016 */ lui $v0, %hi(D_80165CF5) # 0x8016 -/* 080154 8007F554 004E1021 */ addu $v0, $v0, $t6 -/* 080158 8007F558 90425CF5 */ lbu $v0, %lo(D_80165CF5)($v0) # 0x5cf5($v0) -/* 08015C 8007F55C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 080160 8007F560 24010001 */ li $at, 1 -/* 080164 8007F564 10410006 */ beq $v0, $at, .L8007F580 -/* 080168 8007F568 AFBF0014 */ sw $ra, 0x14($sp) -/* 08016C 8007F56C 24010002 */ li $at, 2 -/* 080170 8007F570 10410007 */ beq $v0, $at, .L8007F590 -/* 080174 8007F574 00000000 */ nop -/* 080178 8007F578 10000008 */ b .L8007F59C -/* 08017C 8007F57C 8FBF0014 */ lw $ra, 0x14($sp) -.L8007F580: -/* 080180 8007F580 0C01FBEF */ jal func_8007EFBC -/* 080184 8007F584 00000000 */ nop -/* 080188 8007F588 10000004 */ b .L8007F59C -/* 08018C 8007F58C 8FBF0014 */ lw $ra, 0x14($sp) -.L8007F590: -/* 080190 8007F590 0C01FCA0 */ jal func_8007F280 -/* 080194 8007F594 00000000 */ nop -/* 080198 8007F598 8FBF0014 */ lw $ra, 0x14($sp) -.L8007F59C: -/* 08019C 8007F59C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0801A0 8007F5A0 03E00008 */ jr $ra -/* 0801A4 8007F5A4 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_800ABEAC.s b/asm/non_matchings/code_80091750/func_800ABEAC.s deleted file mode 100644 index f847159fb..000000000 --- a/asm/non_matchings/code_80091750/func_800ABEAC.s +++ /dev/null @@ -1,56 +0,0 @@ -glabel func_800ABEAC -/* 0ACAAC 800ABEAC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0ACAB0 800ABEB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0ACAB4 800ABEB4 0C02AFDA */ jal func_800ABF68 -/* 0ACAB8 800ABEB8 AFA40018 */ sw $a0, 0x18($sp) -/* 0ACABC 800ABEBC 3C028016 */ lui $v0, %hi(D_80164A28) # $v0, 0x8016 -/* 0ACAC0 800ABEC0 8C424A28 */ lw $v0, %lo(D_80164A28)($v0) -/* 0ACAC4 800ABEC4 24030001 */ li $v1, 1 -/* 0ACAC8 800ABEC8 8FA40018 */ lw $a0, 0x18($sp) -/* 0ACACC 800ABECC 10430005 */ beq $v0, $v1, .L800ABEE4 -/* 0ACAD0 800ABED0 24010002 */ li $at, 2 -/* 0ACAD4 800ABED4 10410005 */ beq $v0, $at, .L800ABEEC -/* 0ACAD8 800ABED8 3C0F800E */ lui $t7, %hi(gModeSelection) # $t7, 0x800e -/* 0ACADC 800ABEDC 1000000B */ b .L800ABF0C -/* 0ACAE0 800ABEE0 3C18800E */ lui $t8, %hi(gPlayerCountSelection1) # $t8, 0x800e -.L800ABEE4: -/* 0ACAE4 800ABEE4 1000001C */ b .L800ABF58 -/* 0ACAE8 800ABEE8 A0830015 */ sb $v1, 0x15($a0) -.L800ABEEC: -/* 0ACAEC 800ABEEC 8C820010 */ lw $v0, 0x10($a0) -/* 0ACAF0 800ABEF0 28410104 */ slti $at, $v0, 0x104 -/* 0ACAF4 800ABEF4 10200003 */ beqz $at, .L800ABF04 -/* 0ACAF8 800ABEF8 244E0002 */ addiu $t6, $v0, 2 -/* 0ACAFC 800ABEFC 10000016 */ b .L800ABF58 -/* 0ACB00 800ABF00 AC8E0010 */ sw $t6, 0x10($a0) -.L800ABF04: -/* 0ACB04 800ABF04 10000014 */ b .L800ABF58 -/* 0ACB08 800ABF08 AC800000 */ sw $zero, ($a0) -.L800ABF0C: -/* 0ACB0C 800ABF0C 8DEFC53C */ lw $t7, %lo(gModeSelection)($t7) -/* 0ACB10 800ABF10 15E00008 */ bnez $t7, .L800ABF34 -/* 0ACB14 800ABF14 00000000 */ nop -/* 0ACB18 800ABF18 8F18C538 */ lw $t8, %lo(gPlayerCountSelection1)($t8) -/* 0ACB1C 800ABF1C 3C198019 */ lui $t9, %hi(D_8018EE08) # $t9, 0x8019 -/* 0ACB20 800ABF20 14780004 */ bne $v1, $t8, .L800ABF34 -/* 0ACB24 800ABF24 00000000 */ nop -/* 0ACB28 800ABF28 8339EE08 */ lb $t9, %lo(D_8018EE08)($t9) -/* 0ACB2C 800ABF2C 53200004 */ beql $t9, $zero, .L800ABF40 -/* 0ACB30 800ABF30 8C820010 */ lw $v0, 0x10($a0) -.L800ABF34: -/* 0ACB34 800ABF34 10000008 */ b .L800ABF58 -/* 0ACB38 800ABF38 AC800000 */ sw $zero, ($a0) -/* 0ACB3C 800ABF3C 8C820010 */ lw $v0, 0x10($a0) -.L800ABF40: -/* 0ACB40 800ABF40 28410104 */ slti $at, $v0, 0x104 -/* 0ACB44 800ABF44 10200003 */ beqz $at, .L800ABF54 -/* 0ACB48 800ABF48 24480002 */ addiu $t0, $v0, 2 -/* 0ACB4C 800ABF4C 10000002 */ b .L800ABF58 -/* 0ACB50 800ABF50 AC880010 */ sw $t0, 0x10($a0) -.L800ABF54: -/* 0ACB54 800ABF54 AC800000 */ sw $zero, ($a0) -.L800ABF58: -/* 0ACB58 800ABF58 8FBF0014 */ lw $ra, 0x14($sp) -/* 0ACB5C 800ABF5C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0ACB60 800ABF60 03E00008 */ jr $ra -/* 0ACB64 800ABF64 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_800AEDBC.s b/asm/non_matchings/code_80091750/func_800AEDBC.s deleted file mode 100644 index ae85f4a59..000000000 --- a/asm/non_matchings/code_80091750/func_800AEDBC.s +++ /dev/null @@ -1,58 +0,0 @@ -glabel func_800AEDBC -/* 0AF9BC 800AEDBC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0AF9C0 800AEDC0 3C038019 */ lui $v1, %hi(gTimeTrialDataCourseIndex) # $v1, 0x8019 -/* 0AF9C4 800AEDC4 2463EDF7 */ addiu $v1, %lo(gTimeTrialDataCourseIndex) # addiu $v1, $v1, -0x1209 -/* 0AF9C8 800AEDC8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0AF9CC 800AEDCC 8C8E001C */ lw $t6, 0x1c($a0) -/* 0AF9D0 800AEDD0 80620000 */ lb $v0, ($v1) -/* 0AF9D4 800AEDD4 00803825 */ move $a3, $a0 -/* 0AF9D8 800AEDD8 504E002A */ beql $v0, $t6, .L800AEE84 -/* 0AF9DC 800AEDDC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0AF9E0 800AEDE0 AC82001C */ sw $v0, 0x1c($a0) -/* 0AF9E4 800AEDE4 80620000 */ lb $v0, ($v1) -/* 0AF9E8 800AEDE8 3C0A800F */ lui $t2, %hi(gCupCourseOrder) -/* 0AF9EC 800AEDEC 3C04800E */ lui $a0, %hi(D_800E7E34) -/* 0AF9F0 800AEDF0 04410003 */ bgez $v0, .L800AEE00 -/* 0AF9F4 800AEDF4 00027883 */ sra $t7, $v0, 2 -/* 0AF9F8 800AEDF8 24410003 */ addiu $at, $v0, 3 -/* 0AF9FC 800AEDFC 00017883 */ sra $t7, $at, 2 -.L800AEE00: -/* 0AFA00 800AEE00 000FC0C0 */ sll $t8, $t7, 3 -/* 0AFA04 800AEE04 04410004 */ bgez $v0, .L800AEE18 -/* 0AFA08 800AEE08 30590003 */ andi $t9, $v0, 3 -/* 0AFA0C 800AEE0C 13200002 */ beqz $t9, .L800AEE18 -/* 0AFA10 800AEE10 00000000 */ nop -/* 0AFA14 800AEE14 2739FFFC */ addiu $t9, $t9, -4 -.L800AEE18: -/* 0AFA18 800AEE18 00194040 */ sll $t0, $t9, 1 -/* 0AFA1C 800AEE1C 03084821 */ addu $t1, $t8, $t0 -/* 0AFA20 800AEE20 01495021 */ addu $t2, $t2, $t1 -/* 0AFA24 800AEE24 854A2BB4 */ lh $t2, %lo(gCupCourseOrder)($t2) -/* 0AFA28 800AEE28 AFA70018 */ sw $a3, 0x18($sp) -/* 0AFA2C 800AEE2C 000A5880 */ sll $t3, $t2, 2 -/* 0AFA30 800AEE30 008B2021 */ addu $a0, $a0, $t3 -/* 0AFA34 800AEE34 0C026455 */ jal segmented_to_virtual_dupe_2 -/* 0AFA38 800AEE38 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0) -/* 0AFA3C 800AEE3C 8FA70018 */ lw $a3, 0x18($sp) -/* 0AFA40 800AEE40 00002825 */ move $a1, $zero -/* 0AFA44 800AEE44 00403025 */ move $a2, $v0 -/* 0AFA48 800AEE48 0C026965 */ jal func_8009A594 -/* 0AFA4C 800AEE4C 8CE40018 */ lw $a0, 0x18($a3) -/* 0AFA50 800AEE50 0C02D6E5 */ jal func_800B5B94 -/* 0AFA54 800AEE54 00000000 */ nop -/* 0AFA58 800AEE58 14400005 */ bnez $v0, .L800AEE70 -/* 0AFA5C 800AEE5C 00000000 */ nop -/* 0AFA60 800AEE60 0C02D9C2 */ jal func_800B6708 -/* 0AFA64 800AEE64 00000000 */ nop -/* 0AFA68 800AEE68 10000006 */ b .L800AEE84 -/* 0AFA6C 800AEE6C 8FBF0014 */ lw $ra, 0x14($sp) -.L800AEE70: -/* 0AFA70 800AEE70 3C028019 */ lui $v0, %hi(D_8018EE10) # $v0, 0x8019 -/* 0AFA74 800AEE74 2442EE10 */ addiu $v0, %lo(D_8018EE10) # addiu $v0, $v0, -0x11f0 -/* 0AFA78 800AEE78 A0400004 */ sb $zero, 4($v0) -/* 0AFA7C 800AEE7C A0400084 */ sb $zero, 0x84($v0) -/* 0AFA80 800AEE80 8FBF0014 */ lw $ra, 0x14($sp) -.L800AEE84: -/* 0AFA84 800AEE84 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0AFA88 800AEE88 03E00008 */ jr $ra -/* 0AFA8C 800AEE8C 00000000 */ nop diff --git a/asm/non_matchings/math_util/func_802B5350.s b/asm/non_matchings/math_util/func_802B5350.s deleted file mode 100644 index d91a70819..000000000 --- a/asm/non_matchings/math_util/func_802B5350.s +++ /dev/null @@ -1,21 +0,0 @@ -glabel func_802B5350 -/* 11E960 802B5350 00803025 */ move $a2, $a0 -/* 11E964 802B5354 24040004 */ li $a0, 4 -/* 11E968 802B5358 00001025 */ move $v0, $zero -/* 11E96C 802B535C 00A01825 */ move $v1, $a1 -.L802B5360: -/* 11E970 802B5360 C4C40000 */ lwc1 $f4, ($a2) -/* 11E974 802B5364 24420001 */ addiu $v0, $v0, 1 -/* 11E978 802B5368 24630010 */ addiu $v1, $v1, 0x10 -/* 11E97C 802B536C E464FFF0 */ swc1 $f4, -0x10($v1) -/* 11E980 802B5370 C4C60004 */ lwc1 $f6, 4($a2) -/* 11E984 802B5374 24C60010 */ addiu $a2, $a2, 0x10 -/* 11E988 802B5378 E466FFF4 */ swc1 $f6, -0xc($v1) -/* 11E98C 802B537C C4C8FFF8 */ lwc1 $f8, -8($a2) -/* 11E990 802B5380 E468FFF8 */ swc1 $f8, -8($v1) -/* 11E994 802B5384 C4CAFFFC */ lwc1 $f10, -4($a2) -/* 11E998 802B5388 1444FFF5 */ bne $v0, $a0, .L802B5360 -/* 11E99C 802B538C E46AFFFC */ swc1 $f10, -4($v1) -/* 11E9A0 802B5390 03E00008 */ jr $ra -/* 11E9A4 802B5394 00000000 */ nop - diff --git a/asm/non_matchings/race_logic/func_8028F588.s b/asm/non_matchings/race_logic/func_8028F588.s deleted file mode 100644 index 47d28cd8c..000000000 --- a/asm/non_matchings/race_logic/func_8028F588.s +++ /dev/null @@ -1,234 +0,0 @@ -glabel func_8028F588 -/* 0F8B98 8028F588 3C02800E */ lui $v0, %hi(gActiveScreenMode) # $v0, 0x800e -/* 0F8B9C 8028F58C 8C42C52C */ lw $v0, %lo(gActiveScreenMode)($v0) -/* 0F8BA0 8028F590 3C03802C */ lui $v1, %hi(D_802BA034) # $v1, 0x802c -/* 0F8BA4 8028F594 2463A034 */ addiu $v1, %lo(D_802BA034) # addiu $v1, $v1, -0x5fcc -/* 0F8BA8 8028F598 1040000A */ beqz $v0, .L8028F5C4 -/* 0F8BAC 8028F59C 3C0143A0 */ lui $at, 0x43a0 -/* 0F8BB0 8028F5A0 24010001 */ li $at, 1 -/* 0F8BB4 8028F5A4 10410056 */ beq $v0, $at, .L8028F700 -/* 0F8BB8 8028F5A8 24010002 */ li $at, 2 -/* 0F8BBC 8028F5AC 10410023 */ beq $v0, $at, .L8028F63C -/* 0F8BC0 8028F5B0 24010003 */ li $at, 3 -/* 0F8BC4 8028F5B4 10410083 */ beq $v0, $at, .L8028F7C4 -/* 0F8BC8 8028F5B8 00000000 */ nop -/* 0F8BCC 8028F5BC 03E00008 */ jr $ra -/* 0F8BD0 8028F5C0 00000000 */ nop - -.L8028F5C4: -/* 0F8BD4 8028F5C4 44812000 */ mtc1 $at, $f4 -/* 0F8BD8 8028F5C8 C4660000 */ lwc1 $f6, ($v1) -/* 0F8BDC 8028F5CC 3C04800E */ lui $a0, %hi(D_800DC5EC) # $a0, 0x800e -/* 0F8BE0 8028F5D0 2484C5EC */ addiu $a0, %lo(D_800DC5EC) # addiu $a0, $a0, -0x3a14 -/* 0F8BE4 8028F5D4 46062202 */ mul.s $f8, $f4, $f6 -/* 0F8BE8 8028F5D8 4600428D */ trunc.w.s $f10, $f8 -/* 0F8BEC 8028F5DC 44025000 */ mfc1 $v0, $f10 -/* 0F8BF0 8028F5E0 00000000 */ nop -/* 0F8BF4 8028F5E4 00027C00 */ sll $t7, $v0, 0x10 -/* 0F8BF8 8028F5E8 000F1403 */ sra $v0, $t7, 0x10 -/* 0F8BFC 8028F5EC 04430003 */ bgezl $v0, .L8028F5FC -/* 0F8C00 8028F5F0 8C990000 */ lw $t9, ($a0) -/* 0F8C04 8028F5F4 24020001 */ li $v0, 1 -/* 0F8C08 8028F5F8 8C990000 */ lw $t9, ($a0) -.L8028F5FC: -/* 0F8C0C 8028F5FC 3C014370 */ li $at, 0x43700000 # 240.000000 -/* 0F8C10 8028F600 44818000 */ mtc1 $at, $f16 -/* 0F8C14 8028F604 A722002C */ sh $v0, 0x2c($t9) -/* 0F8C18 8028F608 C4720000 */ lwc1 $f18, ($v1) -/* 0F8C1C 8028F60C 46128102 */ mul.s $f4, $f16, $f18 -/* 0F8C20 8028F610 4600218D */ trunc.w.s $f6, $f4 -/* 0F8C24 8028F614 44023000 */ mfc1 $v0, $f6 -/* 0F8C28 8028F618 00000000 */ nop -/* 0F8C2C 8028F61C 00024C00 */ sll $t1, $v0, 0x10 -/* 0F8C30 8028F620 00091403 */ sra $v0, $t1, 0x10 -/* 0F8C34 8028F624 04430003 */ bgezl $v0, .L8028F634 -/* 0F8C38 8028F628 8C8B0000 */ lw $t3, ($a0) -/* 0F8C3C 8028F62C 24020001 */ li $v0, 1 -/* 0F8C40 8028F630 8C8B0000 */ lw $t3, ($a0) -.L8028F634: -/* 0F8C44 8028F634 03E00008 */ jr $ra -/* 0F8C48 8028F638 A562002E */ sh $v0, 0x2e($t3) - -.L8028F63C: -/* 0F8C4C 8028F63C 3C03802C */ lui $v1, %hi(D_802BA034) # $v1, 0x802c -/* 0F8C50 8028F640 2463A034 */ addiu $v1, %lo(D_802BA034) # addiu $v1, $v1, -0x5fcc -/* 0F8C54 8028F644 3C014320 */ li $at, 0x43200000 # 160.000000 -/* 0F8C58 8028F648 44814000 */ mtc1 $at, $f8 -/* 0F8C5C 8028F64C C46A0000 */ lwc1 $f10, ($v1) -/* 0F8C60 8028F650 3C04800E */ lui $a0, %hi(D_800DC5EC) # $a0, 0x800e -/* 0F8C64 8028F654 2484C5EC */ addiu $a0, %lo(D_800DC5EC) # addiu $a0, $a0, -0x3a14 -/* 0F8C68 8028F658 460A4402 */ mul.s $f16, $f8, $f10 -/* 0F8C6C 8028F65C 4600848D */ trunc.w.s $f18, $f16 -/* 0F8C70 8028F660 44029000 */ mfc1 $v0, $f18 -/* 0F8C74 8028F664 00000000 */ nop -/* 0F8C78 8028F668 00026C00 */ sll $t5, $v0, 0x10 -/* 0F8C7C 8028F66C 000D1403 */ sra $v0, $t5, 0x10 -/* 0F8C80 8028F670 5C400004 */ bgtzl $v0, .L8028F684 -/* 0F8C84 8028F674 28410140 */ slti $at, $v0, 0x140 -/* 0F8C88 8028F678 10000005 */ b .L8028F690 -/* 0F8C8C 8028F67C 24020001 */ li $v0, 1 -/* 0F8C90 8028F680 28410140 */ slti $at, $v0, 0x140 -.L8028F684: -/* 0F8C94 8028F684 54200003 */ bnel $at, $zero, .L8028F694 -/* 0F8C98 8028F688 8C8F0000 */ lw $t7, ($a0) -/* 0F8C9C 8028F68C 2402013C */ li $v0, 316 -.L8028F690: -/* 0F8CA0 8028F690 8C8F0000 */ lw $t7, ($a0) -.L8028F694: -/* 0F8CA4 8028F694 3C05800E */ lui $a1, %hi(D_800DC5F0) # $a1, 0x800e -/* 0F8CA8 8028F698 24A5C5F0 */ addiu $a1, %lo(D_800DC5F0) # addiu $a1, $a1, -0x3a10 -/* 0F8CAC 8028F69C A5E2002C */ sh $v0, 0x2c($t7) -/* 0F8CB0 8028F6A0 8CB80000 */ lw $t8, ($a1) -/* 0F8CB4 8028F6A4 3C014370 */ li $at, 0x43700000 # 240.000000 -/* 0F8CB8 8028F6A8 44812000 */ mtc1 $at, $f4 -/* 0F8CBC 8028F6AC A702002C */ sh $v0, 0x2c($t8) -/* 0F8CC0 8028F6B0 C4660000 */ lwc1 $f6, ($v1) -/* 0F8CC4 8028F6B4 46062202 */ mul.s $f8, $f4, $f6 -/* 0F8CC8 8028F6B8 4600428D */ trunc.w.s $f10, $f8 -/* 0F8CCC 8028F6BC 44025000 */ mfc1 $v0, $f10 -/* 0F8CD0 8028F6C0 00000000 */ nop -/* 0F8CD4 8028F6C4 00024400 */ sll $t0, $v0, 0x10 -/* 0F8CD8 8028F6C8 00081403 */ sra $v0, $t0, 0x10 -/* 0F8CDC 8028F6CC 5C400004 */ bgtzl $v0, .L8028F6E0 -/* 0F8CE0 8028F6D0 284101E0 */ slti $at, $v0, 0x1e0 -/* 0F8CE4 8028F6D4 10000005 */ b .L8028F6EC -/* 0F8CE8 8028F6D8 24020001 */ li $v0, 1 -/* 0F8CEC 8028F6DC 284101E0 */ slti $at, $v0, 0x1e0 -.L8028F6E0: -/* 0F8CF0 8028F6E0 54200003 */ bnel $at, $zero, .L8028F6F0 -/* 0F8CF4 8028F6E4 8C8A0000 */ lw $t2, ($a0) -/* 0F8CF8 8028F6E8 240201DC */ li $v0, 476 -.L8028F6EC: -/* 0F8CFC 8028F6EC 8C8A0000 */ lw $t2, ($a0) -.L8028F6F0: -/* 0F8D00 8028F6F0 A542002E */ sh $v0, 0x2e($t2) -/* 0F8D04 8028F6F4 8CAB0000 */ lw $t3, ($a1) -/* 0F8D08 8028F6F8 03E00008 */ jr $ra -/* 0F8D0C 8028F6FC A562002E */ sh $v0, 0x2e($t3) - -.L8028F700: -/* 0F8D10 8028F700 3C03802C */ lui $v1, %hi(D_802BA034) # $v1, 0x802c -/* 0F8D14 8028F704 2463A034 */ addiu $v1, %lo(D_802BA034) # addiu $v1, $v1, -0x5fcc -/* 0F8D18 8028F708 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 0F8D1C 8028F70C 44818000 */ mtc1 $at, $f16 -/* 0F8D20 8028F710 C4720000 */ lwc1 $f18, ($v1) -/* 0F8D24 8028F714 3C04800E */ lui $a0, %hi(D_800DC5EC) # $a0, 0x800e -/* 0F8D28 8028F718 2484C5EC */ addiu $a0, %lo(D_800DC5EC) # addiu $a0, $a0, -0x3a14 -/* 0F8D2C 8028F71C 46128102 */ mul.s $f4, $f16, $f18 -/* 0F8D30 8028F720 4600218D */ trunc.w.s $f6, $f4 -/* 0F8D34 8028F724 44023000 */ mfc1 $v0, $f6 -/* 0F8D38 8028F728 00000000 */ nop -/* 0F8D3C 8028F72C 00026C00 */ sll $t5, $v0, 0x10 -/* 0F8D40 8028F730 000D1403 */ sra $v0, $t5, 0x10 -/* 0F8D44 8028F734 5C400004 */ bgtzl $v0, .L8028F748 -/* 0F8D48 8028F738 28410280 */ slti $at, $v0, 0x280 -/* 0F8D4C 8028F73C 10000005 */ b .L8028F754 -/* 0F8D50 8028F740 24020001 */ li $v0, 1 -/* 0F8D54 8028F744 28410280 */ slti $at, $v0, 0x280 -.L8028F748: -/* 0F8D58 8028F748 54200003 */ bnel $at, $zero, .L8028F758 -/* 0F8D5C 8028F74C 8C8F0000 */ lw $t7, ($a0) -/* 0F8D60 8028F750 2402027C */ li $v0, 636 -.L8028F754: -/* 0F8D64 8028F754 8C8F0000 */ lw $t7, ($a0) -.L8028F758: -/* 0F8D68 8028F758 3C05800E */ lui $a1, %hi(D_800DC5F0) # $a1, 0x800e -/* 0F8D6C 8028F75C 24A5C5F0 */ addiu $a1, %lo(D_800DC5F0) # addiu $a1, $a1, -0x3a10 -/* 0F8D70 8028F760 A5E2002C */ sh $v0, 0x2c($t7) -/* 0F8D74 8028F764 8CB80000 */ lw $t8, ($a1) -/* 0F8D78 8028F768 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 0F8D7C 8028F76C 44814000 */ mtc1 $at, $f8 -/* 0F8D80 8028F770 A702002C */ sh $v0, 0x2c($t8) -/* 0F8D84 8028F774 C46A0000 */ lwc1 $f10, ($v1) -/* 0F8D88 8028F778 460A4402 */ mul.s $f16, $f8, $f10 -/* 0F8D8C 8028F77C 4600848D */ trunc.w.s $f18, $f16 -/* 0F8D90 8028F780 44029000 */ mfc1 $v0, $f18 -/* 0F8D94 8028F784 00000000 */ nop -/* 0F8D98 8028F788 00024400 */ sll $t0, $v0, 0x10 -/* 0F8D9C 8028F78C 00081403 */ sra $v0, $t0, 0x10 -/* 0F8DA0 8028F790 5C400004 */ bgtzl $v0, .L8028F7A4 -/* 0F8DA4 8028F794 284100F0 */ slti $at, $v0, 0xf0 -/* 0F8DA8 8028F798 10000005 */ b .L8028F7B0 -/* 0F8DAC 8028F79C 24020001 */ li $v0, 1 -/* 0F8DB0 8028F7A0 284100F0 */ slti $at, $v0, 0xf0 -.L8028F7A4: -/* 0F8DB4 8028F7A4 54200003 */ bnel $at, $zero, .L8028F7B4 -/* 0F8DB8 8028F7A8 8C8A0000 */ lw $t2, ($a0) -/* 0F8DBC 8028F7AC 240200EC */ li $v0, 236 -.L8028F7B0: -/* 0F8DC0 8028F7B0 8C8A0000 */ lw $t2, ($a0) -.L8028F7B4: -/* 0F8DC4 8028F7B4 A542002E */ sh $v0, 0x2e($t2) -/* 0F8DC8 8028F7B8 8CAB0000 */ lw $t3, ($a1) -/* 0F8DCC 8028F7BC 03E00008 */ jr $ra -/* 0F8DD0 8028F7C0 A562002E */ sh $v0, 0x2e($t3) - -.L8028F7C4: -/* 0F8DD4 8028F7C4 3C03802C */ lui $v1, %hi(D_802BA034) # $v1, 0x802c -/* 0F8DD8 8028F7C8 2463A034 */ addiu $v1, %lo(D_802BA034) # addiu $v1, $v1, -0x5fcc -/* 0F8DDC 8028F7CC 3C014320 */ li $at, 0x43200000 # 160.000000 -/* 0F8DE0 8028F7D0 44812000 */ mtc1 $at, $f4 -/* 0F8DE4 8028F7D4 C4660000 */ lwc1 $f6, ($v1) -/* 0F8DE8 8028F7D8 3C04800E */ lui $a0, %hi(D_800DC5EC) # $a0, 0x800e -/* 0F8DEC 8028F7DC 2484C5EC */ addiu $a0, %lo(D_800DC5EC) # addiu $a0, $a0, -0x3a14 -/* 0F8DF0 8028F7E0 46062202 */ mul.s $f8, $f4, $f6 -/* 0F8DF4 8028F7E4 4600428D */ trunc.w.s $f10, $f8 -/* 0F8DF8 8028F7E8 44025000 */ mfc1 $v0, $f10 -/* 0F8DFC 8028F7EC 00000000 */ nop -/* 0F8E00 8028F7F0 00026C00 */ sll $t5, $v0, 0x10 -/* 0F8E04 8028F7F4 000D1403 */ sra $v0, $t5, 0x10 -/* 0F8E08 8028F7F8 5C400004 */ bgtzl $v0, .L8028F80C -/* 0F8E0C 8028F7FC 28410140 */ slti $at, $v0, 0x140 -/* 0F8E10 8028F800 10000005 */ b .L8028F818 -/* 0F8E14 8028F804 24020001 */ li $v0, 1 -/* 0F8E18 8028F808 28410140 */ slti $at, $v0, 0x140 -.L8028F80C: -/* 0F8E1C 8028F80C 54200003 */ bnel $at, $zero, .L8028F81C -/* 0F8E20 8028F810 8C8F0000 */ lw $t7, ($a0) -/* 0F8E24 8028F814 2402013C */ li $v0, 316 -.L8028F818: -/* 0F8E28 8028F818 8C8F0000 */ lw $t7, ($a0) -.L8028F81C: -/* 0F8E2C 8028F81C 3C05800E */ lui $a1, %hi(D_800DC5F0) # $a1, 0x800e -/* 0F8E30 8028F820 24A5C5F0 */ addiu $a1, %lo(D_800DC5F0) # addiu $a1, $a1, -0x3a10 -/* 0F8E34 8028F824 A5E2002C */ sh $v0, 0x2c($t7) -/* 0F8E38 8028F828 8CB80000 */ lw $t8, ($a1) -/* 0F8E3C 8028F82C 3C06800E */ lui $a2, %hi(D_800DC5F4) # $a2, 0x800e -/* 0F8E40 8028F830 24C6C5F4 */ addiu $a2, %lo(D_800DC5F4) # addiu $a2, $a2, -0x3a0c -/* 0F8E44 8028F834 A702002C */ sh $v0, 0x2c($t8) -/* 0F8E48 8028F838 8CD90000 */ lw $t9, ($a2) -/* 0F8E4C 8028F83C 3C07800E */ lui $a3, %hi(D_800DC5F8) # $a3, 0x800e -/* 0F8E50 8028F840 24E7C5F8 */ addiu $a3, %lo(D_800DC5F8) # addiu $a3, $a3, -0x3a08 -/* 0F8E54 8028F844 A722002C */ sh $v0, 0x2c($t9) -/* 0F8E58 8028F848 8CE80000 */ lw $t0, ($a3) -/* 0F8E5C 8028F84C 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 0F8E60 8028F850 44818000 */ mtc1 $at, $f16 -/* 0F8E64 8028F854 A502002C */ sh $v0, 0x2c($t0) -/* 0F8E68 8028F858 C4720000 */ lwc1 $f18, ($v1) -/* 0F8E6C 8028F85C 46128102 */ mul.s $f4, $f16, $f18 -/* 0F8E70 8028F860 4600218D */ trunc.w.s $f6, $f4 -/* 0F8E74 8028F864 44023000 */ mfc1 $v0, $f6 -/* 0F8E78 8028F868 00000000 */ nop -/* 0F8E7C 8028F86C 00025400 */ sll $t2, $v0, 0x10 -/* 0F8E80 8028F870 000A1403 */ sra $v0, $t2, 0x10 -/* 0F8E84 8028F874 5C400004 */ bgtzl $v0, .L8028F888 -/* 0F8E88 8028F878 284100F0 */ slti $at, $v0, 0xf0 -/* 0F8E8C 8028F87C 10000005 */ b .L8028F894 -/* 0F8E90 8028F880 24020001 */ li $v0, 1 -/* 0F8E94 8028F884 284100F0 */ slti $at, $v0, 0xf0 -.L8028F888: -/* 0F8E98 8028F888 54200003 */ bnel $at, $zero, .L8028F898 -/* 0F8E9C 8028F88C 8C8C0000 */ lw $t4, ($a0) -/* 0F8EA0 8028F890 240200EC */ li $v0, 236 -.L8028F894: -/* 0F8EA4 8028F894 8C8C0000 */ lw $t4, ($a0) -.L8028F898: -/* 0F8EA8 8028F898 A582002E */ sh $v0, 0x2e($t4) -/* 0F8EAC 8028F89C 8CAD0000 */ lw $t5, ($a1) -/* 0F8EB0 8028F8A0 A5A2002E */ sh $v0, 0x2e($t5) -/* 0F8EB4 8028F8A4 8CCE0000 */ lw $t6, ($a2) -/* 0F8EB8 8028F8A8 A5C2002E */ sh $v0, 0x2e($t6) -/* 0F8EBC 8028F8AC 8CEF0000 */ lw $t7, ($a3) -/* 0F8EC0 8028F8B0 A5E2002E */ sh $v0, 0x2e($t7) -/* 0F8EC4 8028F8B4 03E00008 */ jr $ra -/* 0F8EC8 8028F8B8 00000000 */ nop diff --git a/data/data_121DA0_2_2.s b/data/data_121DA0_2_2.s index f41e42a47..2e5ec0d03 100644 --- a/data/data_121DA0_2_2.s +++ b/data/data_121DA0_2_2.s @@ -8,6 +8,7 @@ glabel D_802B9BB0 .float 30000.0 +# begin func_802A4D18 glabel D_802B9BB4 .float 6800.0 @@ -47,6 +48,7 @@ glabel D_802B9C24 glabel D_802B9C28 .float 1.3333333730697632 +#end func_802A4D18 .word 0 diff --git a/src/camera.c b/src/camera.c index 9818fbdeb..7ea44085c 100644 --- a/src/camera.c +++ b/src/camera.c @@ -487,21 +487,18 @@ void func_8001CCEC(Player *player, Camera *camera, f32 *arg2, f32 *arg3, f32 *ar GLOBAL_ASM("asm/non_matchings/camera/func_8001CCEC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -extern ? D_80164A90; -extern ? D_80164AA0; - -void func_8001D53C(Player *player, Camera *camera, f32 *arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 arg6, s16 arg7) { - f32 sp70; - f32 sp6C; - f32 sp68; - f32 sp64; - f32 sp60; - f32 sp5C; - f32 sp3C; - s32 sp38; - f32 var_f0; +void func_8001D53C(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 arg6, s16 arg7) { + Mat3 sp74; + Vec3f sp68; + Vec3f sp5C; + f32 stackPadding0; + f32 stackPadding1; + f32 stackPadding2; + f32 stackPadding3; + f32 stackPadding4; + f32 stackPadding5; + f32 stackPadding6; + f32 thing; if (((u16) player->unk_222 == 0) && (camera->unk_A0 == 0.0f)) { camera->unk_A0 = 0.0f; @@ -511,36 +508,37 @@ void func_8001D53C(Player *player, Camera *camera, f32 *arg2, f32 *arg3, f32 *ar } else { move_f32_towards(&camera->unk_A0, 0.0f, 0.06f); } - sp3C = D_801652A0[arg7]; - sp68 = camera->unk_30[0]; - sp6C = camera->unk_30[1]; - sp70 = camera->unk_30[2]; - sp5C = camera->unk_3C[0]; - sp60 = camera->unk_3C[1] + camera->unk_A0; - sp64 = camera->unk_3C[2]; - arg2->unk0 = camera->lookAt[0]; - arg2->unk4 = (f32) camera->lookAt[1]; - arg2->unk8 = (f32) camera->lookAt[2]; - sp38 = arg7 * 4; - func_802B6540((f32 (*)[3]) &sp74[0], 0.0f, 1.0f, 0.0f, (s16) (s32) arg6); - func_802B63B8(&sp5C, (f32 (*)[3]) &sp74[0]); - arg2->unk0 += ((sp5C + player->pos[0]) - camera->lookAt[0]) * 1.0f; - arg2->unk8 = (f32) (arg2->unk8 + (((sp64 + player->pos[2]) - camera->lookAt[2]) * 1.0f)); - arg2->unk4 = (f32) (arg2->unk4 + (((sp60 + player->pos[1]) - camera->lookAt[1]) * 1.0f)); - func_802B63B8(&sp68, (f32 (*)[3]) &sp74[0]); - var_f0 = (f32) ((f64) sp6C + ((f64) player->unk_074 + 1.5)); + thing = D_801652A0[arg7]; + sp68[0] = camera->unk_30[0]; + sp68[1] = camera->unk_30[1]; + sp68[2] = camera->unk_30[2]; + sp5C[0] = camera->unk_3C[0]; + sp5C[1] = camera->unk_3C[1] + camera->unk_A0; + sp5C[2] = camera->unk_3C[2]; + arg2[0] = camera->lookAt[0]; + arg2[1] = camera->lookAt[1]; + arg2[2] = camera->lookAt[2]; + func_802B6540(sp74, 0.0f, 1.0f, 0.0f, arg6); + func_802B63B8(sp5C, sp74); + stackPadding0 = player->pos[0] + sp5C[0]; + stackPadding2 = player->pos[2] + sp5C[2]; + stackPadding1 = player->pos[1] + sp5C[1]; + arg2[0] += (stackPadding0 - camera->lookAt[0]) * 1; + arg2[2] += (stackPadding2 - camera->lookAt[2]) * 1; + arg2[1] += (stackPadding1 - camera->lookAt[1]) * 1; + func_802B63B8(sp68, sp74); + stackPadding0 = player->pos[0] + sp68[0]; + stackPadding2 = player->pos[2] + sp68[2]; + stackPadding1 = sp68[1] + (player->unk_074 + 1.5); if ((player->unk_0CA & 1) == 1) { - var_f0 = sp6C + (sp3C + 10.0f); + stackPadding1 = sp68[1] + (thing + 10.0f); } - *arg3 = sp68 + player->pos[0]; - *arg4 = var_f0; - *arg5 = sp70 + player->pos[2]; - *(&D_80164A90 + sp38) = 0.0f; - *(&D_80164AA0 + sp38) = 0.0f; + *arg3 = stackPadding0; + *arg4 = stackPadding1; + *arg5 = stackPadding2; + D_80164A90[arg7] = 0.0f; + D_80164AA0[arg7] = 0.0f; } -#else -GLOBAL_ASM("asm/non_matchings/camera/func_8001D53C.s") -#endif void func_8001D794(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *arg4, f32 *arg5, s16 arg6) { Mat3 sp6C; @@ -928,43 +926,36 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) { GLOBAL_ASM("asm/non_matchings/camera/func_8001E45C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8001D53C(Player *, Camera *, f32 *, f32 *, f32 *, f32 *, s32, s32); /* extern */ - void func_8001E8E8(Camera *camera, Player *player, s8 arg2) { - f32 sp8C; + f32 stackPadding0[6]; + f32 temp_f12; f32 sp88; - f32 sp84; + f32 temp_f14; + f32 stackPadding1; f32 sp7C; f32 sp78; f32 sp74; - f32 sp5C; - f32 temp_f12; - f32 temp_f14; + Vec3f stackPadding2; + Vec3f sp5C; + f32 stackPadding3[10]; camera->unk_B0 = 0; - camera->unk2C = (s16) player->unk_02C[1]; - func_8001D53C(player, camera, &sp5C, &sp7C, &sp78, &sp74, (s32) player->unk_02C[1], (s32) arg2); + camera->unk_2C = player->unk_02C[1]; + func_8001D53C(player, camera, sp5C, &sp7C, &sp78, &sp74, (s16) (s32) player->unk_02C[1], (s16) (s32) arg2); func_802ADDC8(&camera->unk_54, 5.0f, sp7C, sp78, sp74); - camera->lookAt[0] = sp5C; - camera->lookAt[1] = sp60; - camera->lookAt[2] = sp64; + camera->lookAt[0] = sp5C[0]; + camera->lookAt[1] = sp5C[1]; + camera->lookAt[2] = sp5C[2]; camera->pos[0] = sp7C; camera->pos[1] = sp78; - temp_f12 = camera->lookAt[0] - camera->pos[0]; camera->pos[2] = sp74; + temp_f12 = camera->lookAt[0] - camera->pos[0]; sp88 = camera->lookAt[1] - camera->pos[1]; - sp8C = temp_f12; temp_f14 = camera->lookAt[2] - camera->pos[2]; - sp84 = temp_f14; camera->rot[1] = atan2s(temp_f12, temp_f14); - camera->rot[0] = atan2s(sqrtf((sp8C * sp8C) + (temp_f14 * temp_f14)), sp88); + camera->rot[0] = atan2s(sqrtf((temp_f12 * temp_f12) + (temp_f14 * temp_f14)), sp88); camera->rot[2] = 0; } -#else -GLOBAL_ASM("asm/non_matchings/camera/func_8001E8E8.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -1068,36 +1059,29 @@ GLOBAL_ASM("asm/non_matchings/camera/func_8001EA0C.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_80019ED0(); /* extern */ -void func_8001A0A4(s16 *, Camera *, Player *, s8, s32); /* extern */ -void func_8001A0DC(s16 *, Camera *, Player *, s8, s32); /* extern */ -void func_8001A588(u16 *, Camera *, Player *, s8, s32); /* extern */ -void func_8001E0C4(Camera *, Player *, s8); /* extern */ -void func_8001E45C(Camera *, Player *, s8); /* extern */ -void func_8001E8E8(Camera *, Player *, s8); /* extern */ -void func_8001EA0C(Camera *, Player *, s8); /* extern */ -void func_8001F87C(s32); /* extern */ -extern u16 D_80152300; +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +? func_80019ED0(); /* extern */ +? func_8001A588(u16 *, Camera *, Player *, s8, s32); /* extern */ +? func_8001E45C(Camera *, Player *, s8); /* extern */ +? func_8001EA0C(Camera *, Player *, s8); /* extern */ extern u16 D_8015F894; extern s8 D_80164A88; extern s8 D_80164A89; void func_8001EE98(Player *player, Camera *camera, s8 arg2) { s32 sp34; - s16 *sp2C; - s16 *temp_a0; - s16 *temp_a0_2; - s16 *temp_a0_3; - s16 *temp_a0_4; - s16 *temp_a0_5; - s16 *temp_a0_6; + u16 *sp2C; + s16 temp_v0_2; s16 temp_v0_3; - s16 temp_v0_4; - s32 temp_v0; s32 var_s0; + u16 *temp_a0; + u16 *temp_a0_2; + u16 *temp_a0_3; + u16 *temp_a0_4; + u16 *temp_a0_5; + u16 *temp_a0_6; u16 *temp_a0_7; - u16 temp_v0_2; + u16 temp_v0; if (camera == camera1) { sp34 = 0; @@ -1112,86 +1096,86 @@ void func_8001EE98(Player *player, Camera *camera, s8 arg2) { if (camera == camera4) { var_s0 = 3; } - switch (gModeSelection) { /* irregular */ - case GRAND_PRIX: + switch (gModeSelection) { /* irregular */ + case 0: if (((player->unk_000 & 0x800) == 0x800) || (D_800DC51C == 1)) { - *(&D_80152300 + (var_s0 * 2)) = 3; + D_80152300[var_s0] = 3; } else if (D_800DC5FC == 1) { - func_8001A0A4((var_s0 * 2) + &D_80152300, camera, player, arg2, var_s0); + func_8001A0A4((s32) &D_80152300[var_s0], (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - func_8001A0DC((var_s0 * 2) + &D_80152300, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) &D_80152300[var_s0], camera, player, arg2, var_s0); } break; - case BATTLE: + case 3: if ((D_800DC51C == (u16) 1) || ((D_8015F894 == 2) && (D_80164A89 == 1))) { if (D_80164A88 == 0) { func_80019ED0(); } D_80164A88 = 1; - D_80152300.unk0 = 3; - D_80152300.unk2 = 3; - D_80152300.unk4 = 3; - D_80152300.unk6 = 3; + D_80152300->unk0 = 3; + D_80152300->unk2 = 3U; + D_80152300->unk4 = 3U; + D_80152300->unk6 = 3U; } else { D_80164A88 = 0; if (D_800DC5FC == (u16) 1) { - temp_a0 = (var_s0 * 2) + &D_80152300; + temp_a0 = &D_80152300[var_s0]; sp2C = temp_a0; - func_8001A0A4(temp_a0, camera, player, arg2, var_s0); + func_8001A0A4((s32) temp_a0, (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - temp_a0_2 = (var_s0 * 2) + &D_80152300; + temp_a0_2 = &D_80152300[var_s0]; sp2C = temp_a0_2; - func_8001A0DC(temp_a0_2, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) temp_a0_2, camera, player, arg2, var_s0); } *sp2C = 9; } break; - case TIME_TRIALS: + case 1: if (((gPlayerOne->unk_000 & 0x800) == 0x800) || (D_800DC51C == (u16) 1)) { - D_80152300.unk0 = 3; - *(&D_80152300 + 2) = 3; - *(&D_80152300 + 4) = 3; - *(&D_80152300 + 6) = 3; + D_80152300->unk0 = 3; + *(D_80152300 + 2) = 3; + *(D_80152300 + 4) = 3; + *(D_80152300 + 6) = 3; } else { if (D_800DC5FC == (u16) 1) { - temp_a0_3 = (var_s0 * 2) + &D_80152300; + temp_a0_3 = &D_80152300[var_s0]; sp2C = temp_a0_3; - func_8001A0A4(temp_a0_3, camera, player, arg2, var_s0); + func_8001A0A4((s32) temp_a0_3, (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - temp_a0_4 = (var_s0 * 2) + &D_80152300; + temp_a0_4 = &D_80152300[var_s0]; sp2C = temp_a0_4; - func_8001A0DC(temp_a0_4, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) temp_a0_4, camera, player, arg2, var_s0); } *sp2C = 1; } break; - case VERSUS: + case 2: if (((player->unk_000 & 0x800) == 0x800) || (D_800DC51C == (u16) 1) || (D_8015F894 == 2)) { - *(&D_80152300 + (var_s0 * 2)) = 3; + D_80152300[var_s0] = 3; } else { if (D_800DC5FC == (u16) 1) { - temp_a0_5 = (var_s0 * 2) + &D_80152300; + temp_a0_5 = &D_80152300[var_s0]; sp2C = temp_a0_5; - func_8001A0A4(temp_a0_5, camera, player, arg2, var_s0); + func_8001A0A4((s32) temp_a0_5, (s32) camera, (s32) player, (s32) arg2, var_s0); } else { - temp_a0_6 = (var_s0 * 2) + &D_80152300; + temp_a0_6 = &D_80152300[var_s0]; sp2C = temp_a0_6; - func_8001A0DC(temp_a0_6, camera, player, arg2, var_s0); + func_8001A0DC((s16 *) temp_a0_6, camera, player, arg2, var_s0); } *sp2C = 1; } break; } if (D_800DC5FC == 0) { - temp_a0_7 = (var_s0 * 2) + &D_80152300; - temp_v0_2 = *temp_a0_7; - switch (temp_v0_2) { /* switch 1; irregular */ + temp_a0_7 = &D_80152300[var_s0]; + temp_v0 = *temp_a0_7; + switch (temp_v0) { /* switch 1; irregular */ case 3: /* switch 1 */ func_8001A588(temp_a0_7, camera, player, arg2, var_s0); return; case 1: /* switch 1 */ - temp_v0_3 = player->unk_0CA; - if (((temp_v0_3 & 1) == 1) || ((temp_v0_3 & 2) == 2)) { + temp_v0_2 = player->unk_0CA; + if (((temp_v0_2 & 1) == 1) || ((temp_v0_2 & 2) == 2)) { func_8001E8E8(camera, player, arg2); return; } @@ -1202,8 +1186,8 @@ void func_8001EE98(Player *player, Camera *camera, s8 arg2) { func_8001F87C(var_s0); return; case 9: /* switch 1 */ - temp_v0_4 = player->unk_0CA; - if (((temp_v0_4 & 1) == 1) || ((temp_v0_4 & 2) == 2)) { + temp_v0_3 = player->unk_0CA; + if (((temp_v0_3 & 1) == 1) || ((temp_v0_3 & 2) == 2)) { func_8001E8E8(camera, player, arg2); return; } diff --git a/src/camera.h b/src/camera.h index 9be28ab6f..c198f5753 100644 --- a/src/camera.h +++ b/src/camera.h @@ -97,12 +97,16 @@ typedef struct { void func_8001CA10(Camera*); void func_8001CA24(Player*, f32); void func_8001CA78(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16, s8); +void func_8001D53C(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16, s16); void func_8001D794(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16); void func_8001E0C4(Camera*, Player*, s8); +void func_8001E8E8(Camera*, Player*, s8); void func_8001F87C(s32); extern s32 D_80164A2C; extern f32 D_80164A30; +extern f32 D_80164A90[]; +extern f32 D_80164AA0[]; extern Camera cameras[]; extern Camera *camera1; diff --git a/src/code_800029B0.h b/src/code_800029B0.h index 95bec18fe..34156a3f2 100644 --- a/src/code_800029B0.h +++ b/src/code_800029B0.h @@ -13,4 +13,9 @@ void func_80003040(); void func_800C8F44(u16 arg0); +extern struct UnkStruct_800DC5EC *D_800DC5EC; +extern struct UnkStruct_800DC5EC *D_800DC5F0; +extern struct UnkStruct_800DC5EC *D_800DC5F4; +extern struct UnkStruct_800DC5EC *D_800DC5F8; + #endif diff --git a/src/code_80057C60.c b/src/code_80057C60.c index fac29f79e..2e938833a 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -16,6 +16,7 @@ #include "code_8008C1D0.h" #include "skybox_and_splitscreen.h" #include "common_textures.h" +#include "audio/external.h" // UI Code? void func_80057C60(void) { @@ -4049,7 +4050,7 @@ GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005F90C.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f void func_80060504(Player *player, s16 arg1, s32 arg2, s32 arg3) { f32 sp50; f32 sp4C; @@ -4134,71 +4135,49 @@ block_19: GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80060504.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -s16 gCurrentCourseId; /* unable to generate initializer */ - -void func_800608E0(Player *player, s16 arg1, s32 arg2, s8 arg3) { - f32 sp54; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +extern f64 D_800EE580;// = 0.1 +void func_800608E0(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) { + f32 var_f0; f32 sp50; f32 sp4C; f32 sp48; - UnkPlayerStruct258 *temp_s2; - f32 temp_f12; - f32 temp_f2; - f32 var_f0; - temp_f2 = D_801652A0[arg3]; - temp_f12 = temp_f2 - player->pos[1]; - var_f0 = 8.0f - temp_f12; + var_f0 = 8.0f - (D_801652A0[arg3] - player->pos[1]); if ((f64) var_f0 <= 0.0) { var_f0 = 0.0f; } - sp4C = temp_f12 - 3.0f; + sp4C = (D_801652A0[arg3] - player->pos[1]) - 3.0f; if ((player->unk_0DE & 1) && (gCurrentCourseId != 6)) { var_f0 = 2.5f; - sp4C = (f32) ((f64) (temp_f2 - player->pos[1]) + 0.1); + sp4C = (f32) ((f64) (D_801652A0[arg3] - player->pos[1]) + 0.1); } - temp_s2 = &player->unk_258[arg1]; - sp54 = var_f0; - func_8005D794(player, temp_s2, 0.0f, 0.0f, 0.0f, (s8) 0, (s8) 0); - func_8005D7D8(temp_s2, 3, var_f0); + func_8005D794(player, &player->unk_258[arg1], 0.0f, 0.0f, 0.0f, (s8) 0, (s8) 0); + func_8005D7D8(&player->unk_258[arg1], 3, var_f0); if ((gCurrentCourseId == 2) || (gCurrentCourseId == 0x0013)) { - func_8005D800(temp_s2, 0, 0x00AF); + func_8005D800(&player->unk_258[arg1], 0, 0x00AF); } else { - func_8005D800(temp_s2, 0x00FFFFFF, 0x00CF); + func_8005D800(&player->unk_258[arg1], 0x00FFFFFF, 0x00CF); } - func_80062B18(&sp50, &sp4C, &sp48, 0.0f, sp4C, (((f32) -player->unk_258[arg1].unk_01E * (player->unk_094 / 18.0f) * 216.0f) / 10.0f) + -4.0f, (u16) (s32) -player->unk_258[arg1].unk_020, (u16) (player->unk_206 * -2)); + func_80062B18(&sp50, &sp4C, &sp48, 0.0f, sp4C, ((-player->unk_258[arg1].unk_01E * (player->unk_094 / 18.0f) * 216.0f) / 10.0f) + -4.0f, -player->unk_258[arg1].unk_020, -player->unk_206 * 2); player->unk_258[arg1].unk_000[0] = player->pos[0] + sp50; - player->unk_258[arg1].unk_000[1] = player->pos[1] + sp4C; player->unk_258[arg1].unk_000[2] = player->pos[2] + sp48; + player->unk_258[arg1].unk_000[1] = player->pos[1] + sp4C; } #else GLOBAL_ASM("asm/non_matchings/code_80057C60/func_800608E0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -? func_800608E0(s16, s8, s32); /* extern */ -s16 gCurrentCourseId; /* unable to generate initializer */ - void func_80060B14(Player *player, s16 arg1, s32 arg2, s8 arg3, s8 arg4) { - s16 temp_v0; - - temp_v0 = gCurrentCourseId; - if ((temp_v0 != 0x0010) && (temp_v0 != 0x000D)) { + if ((gCurrentCourseId != 0x0010) && (gCurrentCourseId != 0x000D)) { if ((arg1 == 0) && ((player->unk_258[arg2].unk_01E > 0) || (player->unk_258[arg2].unk_01C == 0))) { - func_800608E0(arg1, arg3, (s32) arg4); - return; - } - if (player->unk_258[arg2].unk_01E > 0) { - func_800608E0(arg1, arg3, (s32) arg4); + func_800608E0(player, arg1, arg2, arg3, arg4); + } else if (player->unk_258[arg2].unk_01E > 0) { + func_800608E0(player, arg1, arg2, arg3, arg4); } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80060B14.s") -#endif #ifdef NEEDS_RODATA // data_0DD0A0_3_0.s @@ -9165,36 +9144,17 @@ void func_8006B87C(UNUSED Player *player, s8 playerIndex) { gPlayerBalloonStatus[playerIndex][2] = BALLOON_STATUS_GONE; } -#ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b void func_8006B8B4(Player *player, s8 playerIndex) { - s16 *sp1C; - s16 *temp_v1; - s16 temp_a3; - u16 *temp_v0; - u16 temp_t5; - u8 temp_a0; - - temp_v1 = &gPlayerBalloonCount[playerIndex]; - temp_a3 = *temp_v1; - if (temp_a3 >= 0) { - temp_v0 = (playerIndex * 6) + (temp_a3 * 2) + gPlayerBalloonStatus; - temp_t5 = *temp_v0 & 0xFFFE; - *temp_v0 = temp_t5; - *temp_v0 = temp_t5 | 2; - *temp_v1 = temp_a3 - 1; - temp_a0 = playerIndex & 0xFF; - sp1C = temp_v1; - playerIndex = playerIndex; - func_800C9060(temp_a0, 0x19009051U); - if (*temp_v1 < 0) { + if (gPlayerBalloonCount[playerIndex] >= 0) { + gPlayerBalloonStatus[playerIndex][gPlayerBalloonCount[playerIndex]] &= ~1; + gPlayerBalloonStatus[playerIndex][gPlayerBalloonCount[playerIndex]] |= 2; + gPlayerBalloonCount[playerIndex]--; + func_800C9060(playerIndex, 0x19009051U); + if (gPlayerBalloonCount[playerIndex] < 0) { func_8008FD4C(player, playerIndex); } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006B8B4.s") -#endif void func_8006B974(UNUSED s32 arg0, s8 playerIndex, s8 balloonIndex) { if (gPlayerBalloonCount[playerIndex] >= 0) { @@ -9444,70 +9404,31 @@ void func_8006BB34(struct UnkStruct_8028088C *arg0, f32 arg1, s16 arg2, s16 arg3 GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006BB34.s") #endif -#ifdef MIPS_TO_C -UNUSED void func_8006C0C8(void *arg0, ? arg1, s32 arg2, s16 arg3) { - f32 sp54; - f32 sp50; - f32 sp4C; - s16 sp48; - s16 sp46; - s16 sp44; - void *sp1C; - void *temp_v0; - void *temp_v0_2; - void *temp_v0_3; - void *temp_v0_4; - void *temp_v0_5; - void *temp_v0_6; - void *temp_v0_7; - void *temp_v0_8; - void *temp_v0_9; +#ifdef NON_MATCHING +// identical to code_80280650/func_80280B50 +void func_8006C0C8(f32 *arg0, f32 arg1, s32 rgb, s16 alpha) { + Vec3f sp4C; + Vec3s sp44; + s16 red; + s16 green; + s16 blue; - sp4C = arg0->unk0; - sp50 = arg0->unk4; - sp44 = 0; - sp54 = arg0->unk8; - sp48 = 0; - sp46 = camera1->unk26; - func_800652D4(arg1, &sp4C, &sp44, arg1); - temp_v0 = gDisplayListHead; - gDisplayListHead = temp_v0 + 8; - temp_v0->unk0 = 0x06000000; - temp_v0->unk4 = &D_0D008DB8; - temp_v0_2 = gDisplayListHead; - gDisplayListHead = temp_v0_2 + 8; - temp_v0_2->unk0 = 0xFD700000; - temp_v0_2->unk4 = (s32) D_8018D48C; - temp_v0_3 = gDisplayListHead; - gDisplayListHead = temp_v0_3 + 8; - temp_v0_3->unk4 = 0x07000000; - temp_v0_3->unk0 = 0xF5700000; - temp_v0_4 = gDisplayListHead; - gDisplayListHead = temp_v0_4 + 8; - temp_v0_4->unk4 = 0; - temp_v0_4->unk0 = 0xE6000000; - temp_v0_5 = gDisplayListHead; - gDisplayListHead = temp_v0_5 + 8; - temp_v0_5->unk4 = 0x071FF200; - temp_v0_5->unk0 = 0xF3000000; - temp_v0_6 = gDisplayListHead; - gDisplayListHead = temp_v0_6 + 8; - temp_v0_6->unk4 = 0; - temp_v0_6->unk0 = 0xE7000000; - temp_v0_7 = gDisplayListHead; - gDisplayListHead = temp_v0_7 + 8; - temp_v0_7->unk4 = 0; - temp_v0_7->unk0 = 0xF5680800; - temp_v0_8 = gDisplayListHead; - gDisplayListHead = temp_v0_8 + 8; - sp1C = temp_v0_8; - temp_v0_8->unk4 = 0x7C07C; - temp_v0_8->unk0 = 0xF2000000; - func_8004B35C((s16) ((arg2 >> 0x10) & 0xFF), (s16) ((arg2 >> 8) & 0xFF), (s16) (arg2 & 0xFF), arg3); - temp_v0_9 = gDisplayListHead; - gDisplayListHead = temp_v0_9 + 8; - temp_v0_9->unk0 = 0x06000000; - temp_v0_9->unk4 = &D_0D008E48; + sp4C[0] = arg0[0]; + sp4C[1] = arg0[1]; + sp4C[2] = arg0[2]; + sp44[0] = 0; + sp44[1] = camera1->rot[1]; + sp44[2] = 0; + func_800652D4(sp4C, sp44, arg1); + gSPDisplayList(gDisplayListHead++, D_0D008DB8); + gDPLoadTextureBlock(gDisplayListHead++, D_8018D48C, G_IM_FMT_IA, G_IM_SIZ_8b, 32, 32, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + // The exact order of operations for red/green/blue is slightly wrong... + red = (rgb >> 0x10) & 0xFF; + green = (rgb >> 0x08) & 0xFF; + blue = (rgb >> 0x00) & 0xFF; + func_8004B35C(red, green, blue, alpha); + gSPDisplayList(gDisplayListHead++, D_0D008E48); D_80164AF0 += 1; } #else diff --git a/src/code_80057C60.h b/src/code_80057C60.h index eb6c209af..241c772d6 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -96,6 +96,8 @@ void func_8005DA30(Player*, s16, s32, s8, s8); void func_8005DAD0(); void func_8005DAD8(UnkPlayerStruct258*, s16, s16, s16); +void func_800608E0(Player*, s16, s32, s8, s8); +void func_80060B14(Player*, s16, s32, s8, s8); void func_80060BCC(Player*, s16, s32, s32); void func_80060F50(Player*, s16, s8, s8); diff --git a/src/code_80071F00.c b/src/code_80071F00.c index f3c8c6350..50db05d66 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -6,6 +6,7 @@ #include "math_util.h" #include "math_util_2.h" #include "objects.h" +#include "waypoints.h" #include "variables.h" #include "code_80057C60.h" #include "code_80071F00.h" @@ -42,47 +43,16 @@ void func_80071F6C(s32 *arg0) { *arg0 = -1; } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s8 D_80165CE2; -extern s8 D_80165DC2; -extern ? D_80165DD8; -extern ? D_80183D58; - s32 func_80071FBC(void) { - ? *var_a0; - s32 var_v1; - s8 temp_t1; - - var_v1 = 0; - if (D_80165CE2 != 0) { - var_v1 = 1; + s32 objectIndex; + s32 someCount = 0; + for (objectIndex = 0; objectIndex < OBJECT_LIST_SIZE; objectIndex++) { + if (D_80165C18[objectIndex].unk_0CA != 0) { + someCount++; + } } - var_a0 = &D_80165DD8; - if (D_80165DC2 != 0) { - var_v1 += 1; - } - do { - if (var_a0->unkCA != 0) { - var_v1 += 1; - } - if (var_a0->unk1AA != 0) { - var_v1 += 1; - } - if (var_a0->unk28A != 0) { - var_v1 += 1; - } - temp_t1 = var_a0->unk36A; - var_a0 += 0x380; - if (temp_t1 != 0) { - var_v1 += 1; - } - } while (var_a0 != &D_80183D58); - return var_v1; + return someCount; } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80071FBC.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc @@ -4473,69 +4443,43 @@ void func_8007A4D4(s32 objectIndex, s32 playerId) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A4D4.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_8007A66C(s32 objectIndex, Player *player, Camera *camera) { - f32 sp24; - struct_80165C18_entry *sp20; - s32 temp_t8; - struct_80165C18_entry *temp_v0; + u16 temp_t8; - temp_t8 = (0x8000 - camera->rot[1]) & 0xFFFF; - sp24 = coss(temp_t8 & 0xFFFF); - temp_v0 = &D_80165C18[objectIndex]; - temp_v0->unk_004[0] = (player->pos[0] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))) - ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * sins(temp_t8 & 0xFFFF)); - sp20 = temp_v0; - temp_v0->unk_004[1] = temp_v0->unk_028[1] + (player->unk_074 + temp_v0->unk_010[1]); - sp24 = sins(temp_t8 & 0xFFFF); - temp_v0->unk_004[2] = ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * coss(temp_t8 & 0xFFFF)) + (player->pos[2] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))); + temp_t8 = 0x8000 - camera->rot[1]; + D_80165C18[objectIndex].unk_004[0] = (player->pos[0] + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) - (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); + D_80165C18[objectIndex].unk_004[1] = player->unk_074 + D_80165C18[objectIndex].unk_010[1] + D_80165C18[objectIndex].unk_028[1]; + D_80165C18[objectIndex].unk_004[2] = (player->pos[2] + (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A66C.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc void func_8007A778(s32 objectIndex, Player *player, Camera *camera) { - f32 sp24; - struct_80165C18_entry *sp20; - s32 temp_t8; - struct_80165C18_entry *temp_v0; + u16 temp_t8; - temp_t8 = (0x8000 - camera->rot[1]) & 0xFFFF; - sp24 = coss(temp_t8 & 0xFFFF); - temp_v0 = &D_80165C18[objectIndex]; - temp_v0->unk_004[0] = (player->pos[0] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))) - ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * sins(temp_t8 & 0xFFFF)); - sp20 = temp_v0; - temp_v0->unk_004[1] = temp_v0->unk_028[1] + (player->pos[1] + temp_v0->unk_010[1]); - sp24 = sins(temp_t8 & 0xFFFF); - temp_v0->unk_004[2] = ((temp_v0->unk_028[2] + temp_v0->unk_010[2]) * coss(temp_t8 & 0xFFFF)) + (player->pos[2] + (sp24 * (temp_v0->unk_010[0] + temp_v0->unk_028[0]))); + temp_t8 = 0x8000 - camera->rot[1]; + D_80165C18[objectIndex].unk_004[0] = (player->pos[0] + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) - (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); + D_80165C18[objectIndex].unk_004[1] = player->pos[1] + D_80165C18[objectIndex].unk_010[1] + D_80165C18[objectIndex].unk_028[1]; + D_80165C18[objectIndex].unk_004[2] = (player->pos[2] + (sins(temp_t8) * (D_80165C18[objectIndex].unk_010[0] + D_80165C18[objectIndex].unk_028[0]))) + (coss(temp_t8) * (D_80165C18[objectIndex].unk_010[2] + D_80165C18[objectIndex].unk_028[2])); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A778.s") -#endif UNUSED void func_8007A884(void) { } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern ? D_80165CBE; -extern s32 D_80183DB8; - void func_8007A88C(s32 playerId) { - if ((*(&D_80165CBE + (*(&D_80183DB8 + (playerId * 4)) * 0xE0)) == 0) && (gPlayerOne[playerId].unk_0BC & 0x400000)) { + s32 objectIndex; + Player *player; + + objectIndex = D_80183DB8[playerId]; + player = &gPlayerOne[playerId]; + + if ((D_80165C18[objectIndex].unk_0A6 == 0) && (player->unk_0BC & 0x400000)) { func_800790E4(playerId); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007A88C.s") -#endif void func_8007A910(s32 arg0) { if (D_801657B4 == 0) { - func_8007A88C(); + func_8007A88C(arg0); } func_80079860(arg0); } @@ -5301,23 +5245,18 @@ void func_8007BBBC(s32 objectIndex) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007BBBC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern ? D_80165CBE; -extern f32 D_8018D01C; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +extern f64 D_800EEE08;// -1650.0; void func_8007BD04(s32 playerId) { - s32 sp1C; - s32 temp_t6; - u16 temp_v0; + s32 objectIndex; - temp_t6 = *D_80183F28; - sp1C = temp_t6; - if (*(&D_80165CBE + (temp_t6 * 0xE0)) == 0) { - temp_v0 = gNearestWaypointByPlayerId[playerId]; - if (((s32) temp_v0 >= 0xA0) && ((s32) temp_v0 < 0xAB)) { - func_8008B7D4(temp_t6, (f32) ((f64) D_8018D01C * -1650.0), -200.0f, -1650.0f); - func_800723A4(sp1C, 1); + objectIndex = D_80183F28[0]; + if (D_80165C18[objectIndex].unk_0A6 == 0) { + if (((s32) gNearestWaypointByPlayerId[playerId] >= 0xA0) && ((s32) gNearestWaypointByPlayerId[playerId] < 0xAB)) { + func_8008B7D4(objectIndex, D_8018D01C * -1650.0, -200.0f, -1650.0f); + func_800723A4(objectIndex, 1); } } } @@ -5585,7 +5524,7 @@ UNUSED void func_8007C49C(void) { } #ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f void func_8007C4A4(s32 objectIndex) { struct_80165C18_entry *sp20; s32 sp1C; @@ -5710,51 +5649,56 @@ GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007C684.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800723A4(s32, ?); // extern -void func_800C9060(s32, ?); // extern -extern s32 D_800E5D9C; -extern ? D_800E5DB0; -extern struct_80165C18_entry D_80165C18; -extern s32 D_8018BFA8; +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f extern s16 D_8018CFF0; extern s16 D_8018D048; +static ? D_800E5988; /* unable to generate initializer */ +static ? D_800E5A44; /* unable to generate initializer */ +static ? D_800E5B08; /* unable to generate initializer */ +static ? D_800E5BD4; /* unable to generate initializer */ +static ? D_800E5C90; /* unable to generate initializer */ +static s32 D_800E5D9C[5] = { + (s32) &D_800E5988, + (s32) &D_800E5A44, + (s32) &D_800E5B08, + (s32) &D_800E5BD4, + (s32) &D_800E5C90, +}; +static ? D_800E5DB0; /* unable to generate initializer */ void func_8007C7B4(s32 arg0, s8 arg1) { s32 *sp40; s16 temp_s1_2; s16 temp_s4; s16 temp_s5; - s32 *temp_s2; - s32 *temp_s3; + s32 *var_s2; + s32 *var_s3; s32 temp_s1; - void *temp_s0; - s32 *phi_s3; - s32 *phi_s2; + s32 temp_v1; + struct_80165C18_entry *temp_s0; - temp_s3 = (arg0 * 4) + &D_8018BFA8; - sp40 = temp_s3; - phi_s3 = temp_s3; - phi_s2 = &D_800E5D9C; + var_s3 = &D_8018BFA8[arg0]; + var_s2 = D_800E5D9C; + sp40 = var_s3; do { - temp_s1 = *phi_s3; + temp_s1 = *var_s3; func_800723A4(temp_s1, 1); - temp_s0 = &D_80165C18 + (temp_s1 * 0xE0); - temp_s0->unkD1 = arg1; - temp_s1_2 = random_int(0x3C) - 0x1E; - temp_s4 = random_int(0x14) - 0xA; - temp_s5 = random_int(0x50) - 0x28; - random_int(0x1000); - temp_s2 = phi_s2 + 4; - temp_s0->unk10 = temp_s1_2; - temp_s0->unk80 = *phi_s2; - temp_s0->unk14 = temp_s4; - temp_s0->unk18 = temp_s5; - phi_s3 += 4; - phi_s2 = temp_s2; - } while (temp_s2 != &D_800E5DB0); - func_800C9060(arg1 & 0xFF, 0x1900705A); - if (sp40 == &D_8018BFA8) { + temp_s0 = &D_80165C18[temp_s1]; + temp_s0->unk_0D1 = arg1; + temp_s1_2 = random_int(0x003CU) - 0x1E; + temp_s4 = random_int(0x0014U) - 0xA; + temp_s5 = random_int(0x0050U) - 0x28; + random_int(0x1000U); + temp_v1 = *var_s2; + var_s2 += 4; + var_s3 += 4; + temp_s0->unk_010[0] = (f32) temp_s1_2; + temp_s0->unk_080 = temp_v1; + temp_s0->unk_010[1] = (f32) temp_s4; + temp_s0->unk_010[2] = (f32) temp_s5; + } while (var_s2 != &D_800E5DB0); + func_800C9060(arg1 & 0xFF, 0x1900705AU); + if (sp40 == D_8018BFA8) { D_8018CFF0 = 1; return; } @@ -6126,96 +6070,45 @@ loop_5: GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D070.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern f32 D_8018D01C; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +extern f64 D_800EEEE8;// = -1775.0; +extern f64 D_800EEEF0;// = 130.0; +extern f64 D_800EEEF8;// = -2500.0; +extern f64 D_800EEF00;// = 220.0; +extern f64 D_800EEF08;// = -2100.0; +extern f64 D_800EEF10;// = -290.0; void func_8007D360(s32 objectIndex, s32 arg1) { - f32 var_f6; - f64 var_f10; - f64 var_f16; - f64 var_f16_2; - f64 var_f16_3; - f64 var_f16_4; - f64 var_f18; - f64 var_f8; - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v0_3; - s32 temp_v0_4; - s32 temp_v0_5; - s32 temp_v0_6; - s32 temp_v0_7; - struct_80165C18_entry *temp_s0; - struct_80165C18_entry *temp_s0_2; - if (arg1 == 1) { - temp_v0 = random_int(0x001EU); - temp_s0 = &D_80165C18[objectIndex]; - var_f8 = (f64) temp_v0; - if (temp_v0 < 0) { - var_f8 += 4294967296.0; - } - temp_s0->unk_010[0] = (f32) ((-1775.0 - var_f8) * (f64) D_8018D01C); - temp_v0_2 = random_int(0x0019U); - var_f18 = (f64) temp_v0_2; - if (temp_v0_2 < 0) { - var_f18 += 4294967296.0; - } - temp_s0->unk_010[1] = (f32) (var_f18 + 25.0); - temp_v0_3 = random_int(0x001EU); - var_f16 = (f64) temp_v0_3; - if (temp_v0_3 < 0) { - var_f16 += 4294967296.0; - } - temp_s0->unk_010[2] = (f32) (var_f16 + 130.0); - temp_s0->unk_01C[1] = 0.0f; - temp_s0->unk_01C[0] = (f32) ((f64) D_8018D01C * -2500.0); - temp_v0_4 = random_int(0x0096U); - var_f16_2 = (f64) temp_v0_4; - if (temp_v0_4 < 0) { - var_f16_2 += 4294967296.0; - } - temp_s0->unk_0BE[0] = 0xDC00; - temp_s0->unkC6 = 0x0800; - temp_s0->unk_01C[2] = (f32) (220.0 - var_f16_2); + D_80165C18[objectIndex].unk_010[0] = (f32) ((-1775.0 - random_int(0x001EU)) * (f64) D_8018D01C); + D_80165C18[objectIndex].unk_010[1] = (f32) (random_int(0x0019U) + 25.0); + D_80165C18[objectIndex].unk_010[2] = (f32) (random_int(0x001EU) + 130.0); + D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -2500.0); + D_80165C18[objectIndex].unk_01C[1] = 0.0f; + D_80165C18[objectIndex].unk_01C[2] = (f32) (220.0 - random_int(0x0096U)); + D_80165C18[objectIndex].unk_0BE[0] = 0xDC00; + D_80165C18[objectIndex].unk_0C6 = 0x0800; } - temp_s0_2 = &D_80165C18[objectIndex]; if (arg1 == 2) { - temp_s0_2->unk_010[0] = (f32) (-0x55B - random_int(0x001EU)) * D_8018D01C; - temp_s0_2->unk_010[1] = (f32) (random_int(0x0019U) + 0xF); - temp_s0_2->unk_010[2] = (f32) (random_int(0x001EU) - 0xE8); - temp_s0_2->unk_01C[1] = 0.0f; - temp_s0_2->unk_01C[0] = (f32) ((f64) D_8018D01C * -2100.0); - temp_v0_5 = random_int(0x00C8U); - var_f16_3 = (f64) temp_v0_5; - if (temp_v0_5 < 0) { - var_f16_3 += 4294967296.0; - } - temp_s0_2->unk_0BE[0] = 0; - temp_s0_2->unkC6 = 0; - temp_s0_2->unk_01C[2] = (f32) (var_f16_3 + -290.0); + D_80165C18[objectIndex].unk_010[0] = (f32) (-0x55B - random_int(0x001EU)) * D_8018D01C; + D_80165C18[objectIndex].unk_010[1] = (f32) (random_int(0x0019U) + 0xF); + D_80165C18[objectIndex].unk_010[2] = (f32) (random_int(0x001EU) - 0xE8); + D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -2100.0); + D_80165C18[objectIndex].unk_01C[1] = 0.0f; + D_80165C18[objectIndex].unk_01C[2] = (f32) (random_int(0x00C8U) + -290.0); + D_80165C18[objectIndex].unk_0BE[0] = 0; + D_80165C18[objectIndex].unk_0C6 = 0; } - temp_s0_2->unk_0BE[1] = func_80041770(temp_s0_2->unk_010[0], temp_s0_2->unk_01C[0], temp_s0_2->unk_010[2], temp_s0_2->unk_01C[2]); - temp_s0_2->unk_0BE[2] = 0; + D_80165C18[objectIndex].unk_0BE[1] = func_80041770(D_80165C18[objectIndex].unk_010[0], D_80165C18[objectIndex].unk_01C[0], D_80165C18[objectIndex].unk_010[2], D_80165C18[objectIndex].unk_01C[2]); + D_80165C18[objectIndex].unk_0BE[2] = 0; func_8008B80C(objectIndex, 0.0f, 0.0f, 0.0f); - temp_s0_2->unk_0B0 = 0; + D_80165C18[objectIndex].unk_0B0 = 0; if (gCCSelection < 2) { - temp_v0_6 = random_int(4U); - var_f10 = (f64) temp_v0_6; - if (temp_v0_6 < 0) { - var_f10 += 4294967296.0; - } - var_f6 = (f32) (var_f10 + 4.0); + D_80165C18[objectIndex].unk_034 = (random_int(4U) + 4.0); } else { - temp_v0_7 = random_int(4U); - var_f16_4 = (f64) temp_v0_7; - if (temp_v0_7 < 0) { - var_f16_4 += 4294967296.0; - } - var_f6 = (f32) (var_f16_4 + 5.0); + D_80165C18[objectIndex].unk_034 = (random_int(4U) + 5.0); } - temp_s0_2->unk_034 = var_f6; } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007D360.s") @@ -6712,23 +6605,18 @@ void func_8007E1F4(s32 objectIndex) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007E1F4.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern f32 D_8018D01C; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +extern f32 D_800EEF68;// -1371.0f; void func_8007E358(s32 objectIndex) { - struct_80165C18_entry *sp1C; - struct_80165C18_entry *temp_v0; - - temp_v0 = &D_80165C18[objectIndex]; - temp_v0->unk_004[0] = -1371.0f * D_8018D01C; - sp1C = temp_v0; - temp_v0->unk_004[1] = 31.0f; - temp_v0->unk_004[2] = -217.0f; + D_80165C18[objectIndex].unk_004[0] = -1371.0f * D_8018D01C; + D_80165C18[objectIndex].unk_004[1] = 31.0f; + D_80165C18[objectIndex].unk_004[2] = -217.0f; func_8008B8F0(objectIndex, 0.0f, 0.0f, 0.0f); - temp_v0->unk_0A4 = 0; - temp_v0->unk_04C = 0; - temp_v0->unk_084[7] = 0; + D_80165C18[objectIndex].unk_0A4 = 0; + D_80165C18[objectIndex].unk_04C = 0; + D_80165C18[objectIndex].unk_084[7] = 0; func_80072488(objectIndex); } #else @@ -7139,228 +7027,182 @@ void func_8007EE5C(s32 objectIndex) { GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007EE5C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern f32 D_8018D01C; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +// jpt_800EEFD0 void func_8007EFBC(s32 objectIndex) { - struct_80165C18_entry *sp24; - struct_80165C18_entry *temp_v1; - u16 temp_t8; - - temp_v1 = &D_80165C18[objectIndex]; - temp_t8 = (u16) temp_v1->unk_0AE; - switch (temp_t8) { + switch (D_80165C18[objectIndex].unk_0AE) { case 1: - sp24 = temp_v1; - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0800U, 0x00008000) != 0) { - temp_v1->unk1C = (f32) ((f64) D_8018D01C * 200.0); + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0800U, 0x00008000) != 0) { + D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * 200.0); func_80086FD4(objectIndex); - return; } - default: - return; + break; case 2: - if (f32_step_towards(temp_v1->unk_028, temp_v1->unk1C, 4.0f) != 0) { + if (f32_step_towards(D_80165C18[objectIndex].unk_028, D_80165C18[objectIndex].unk_01C[0], 4.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 3: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); - return; } break; case 5: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); - return; } break; case 6: - if (f32_step_down_towards(&temp_v1->unk_028[2], -100.0f, 2.0f) != 0) { + if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[2], -100.0f, 2.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 7: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00004000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00004000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); - return; } break; case 9: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00010000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { func_80086FD4(objectIndex); - return; } break; case 10: - if (f32_step_towards(temp_v1->unk_028, 0.0f, 4.0f) != 0) { + if (f32_step_towards(D_80165C18[objectIndex].unk_028, 0.0f, 4.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 11: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00010000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); - return; } break; case 13: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00014000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00014000) != 0) { func_80086FD4(objectIndex); - return; } break; case 14: - if (f32_step_up_towards(&temp_v1->unk_028[2], 0.0f, 2.0f) != 0) { + if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, 2.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 15: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); - return; } break; case 17: func_8008701C(objectIndex, 1); break; + case 0: + default: + break; } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007EFBC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern f32 D_8018D01C; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +// jpt_800EF018 void func_8007F280(s32 objectIndex) { - struct_80165C18_entry *sp24; - struct_80165C18_entry *temp_v1; - u16 temp_t8; - - temp_v1 = &D_80165C18[objectIndex]; - temp_t8 = (u16) temp_v1->unk_0AE; - switch (temp_t8) { + switch (D_80165C18[objectIndex].unk_0AE) { case 1: - sp24 = temp_v1; - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00010000) != 0) { - temp_v1->unk1C = (f32) ((f64) D_8018D01C * -200.0); + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { + D_80165C18[objectIndex].unk_01C[0] = (f32) ((f64) D_8018D01C * -200.0); func_80086FD4(objectIndex); - return; } - default: - return; + break; case 2: - if (f32_step_towards(temp_v1->unk_028, temp_v1->unk1C, 4.0f) != 0) { + if (f32_step_towards(D_80165C18[objectIndex].unk_028, D_80165C18[objectIndex].unk_01C[0], 4.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 3: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00010000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00010000) != 0) { func_800726CC(objectIndex, 3); func_80086FD4(objectIndex); - return; } break; case 5: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00004000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00004000) != 0) { func_80086FD4(objectIndex); - return; } break; case 6: - if (f32_step_up_towards(&temp_v1->unk_028[2], 100.0f, 2.0f) != 0) { + if (f32_step_up_towards(&D_80165C18[objectIndex].unk_028[2], 100.0f, 2.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 7: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); - return; } break; case 9: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_80086FD4(objectIndex); - return; } break; case 10: - if (f32_step_towards(temp_v1->unk_028, 0.0f, 4.0f) != 0) { + if (f32_step_towards(D_80165C18[objectIndex].unk_028, 0.0f, 4.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 11: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00008000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00008000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); - return; } break; case 13: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x0000C000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x0000C000) != 0) { func_80086FD4(objectIndex); - return; } break; case 14: - if (f32_step_down_towards(&temp_v1->unk_028[2], 0.0f, 2.0f) != 0) { + if (f32_step_down_towards(&D_80165C18[objectIndex].unk_028[2], 0.0f, 2.0f) != 0) { func_80086FD4(objectIndex); - return; } break; case 15: - if (func_80073E18(objectIndex, (u16 *) &temp_v1->unk_0B2[1], 0x0400U, 0x00014000) != 0) { + if (func_80073E18(objectIndex, (u16 *) &D_80165C18[objectIndex].unk_0B2[1], 0x0400U, 0x00014000) != 0) { func_80086FD4(objectIndex); func_800726CC(objectIndex, 3); - return; } break; case 17: func_8008701C(objectIndex, 1); break; + case 0: + default: + break; } } #else GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F280.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_8007EFBC(); // extern -void func_8007F280(); // extern -extern ? D_80165CF5; - -void func_8007F544(s32 arg0) { - u8 temp_v0; - - temp_v0 = *(&D_80165CF5 + (arg0 * 0xE0)); - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - func_8007F280(); - return; +void func_8007F544(s32 objectIndex) { + switch (D_80165C18[objectIndex].unk_0DD) { /* irregular */ + case 1: + func_8007EFBC(objectIndex); + break; + case 2: + func_8007F280(objectIndex); + break; } - func_8007EFBC(); } -#else -GLOBAL_ASM("asm/non_matchings/code_80071F00/func_8007F544.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc diff --git a/src/code_80071F00.h b/src/code_80071F00.h index 394629583..8c3eae82e 100644 --- a/src/code_80071F00.h +++ b/src/code_80071F00.h @@ -6,8 +6,11 @@ s32 find_unused_obj_index(s32*); void func_80071F6C(s32*); +s32 func_80071FBC(); s32 func_80072044(s32*, s32*, s32); void func_80072100(s32*); +void func_80072120(s32*, s32); +void func_80072180(); void func_800721C0(s32, s32); void func_800721E8(s32, s32); void func_80072214(s32, s32); @@ -145,7 +148,10 @@ void func_800790B4(s32); void func_800790E4(s32); void func_8007993C(s32, Player*); void func_80079A5C(s32, Player*); +void func_8007A66C(s32, Player*, Camera*); +void func_8007A778(s32, Player*, Camera*); void func_8007A884(); +void func_8007A88C(s32); void func_8007A910(s32); void func_8007A948(s32); void func_8007AA44(s32); @@ -154,17 +160,23 @@ u8 gen_random_item(s16, s16); u8 func_8007AF40(s32, s16); u8 func_8007AF78(s32, s16); void func_8007BB9C(); +void func_8007BD04(s32); void func_8007BDA8(); void func_8007C2F8(s32); void func_8007C340(); void func_8007C49C(); +void func_8007D360(s32, s32); s32 func_8007D804(s32); void func_8007D8AC(s32); void func_8007D8D4(s32, s32); void func_8007DA4C(s32); void func_8007DA74(s32); void func_8007DAF8(s32, s32); +void func_8007E358(s32); s32 func_8007E50C(s32, Player*, Camera*); +void func_8007EFBC(s32); +void func_8007F280(s32); +void func_8007F544(s32); void func_8007F660(s32, s32, s32); void func_8007F6C4(s32, s32); void func_8007FEA4(s32); @@ -220,6 +232,7 @@ extern s32 D_80183E5C; extern s32 D_8018C1B0; extern s32 D_8018C3F0; extern s32 D_8018C630; +extern f32 D_8018D01C; extern s32 D_8018D140; extern s32 D_8018D224; extern s32* D_8018D490; diff --git a/src/code_80091750.c b/src/code_80091750.c index 8690447c9..8f92c7930 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -599,15 +599,12 @@ void func_8009265C(void) { add_8018D9E0_entry(0x12B, 0, 0, 2); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -extern u16 D_800DC5E4; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +// jpt_800F0CD8 void func_80092688(void) { - u16 temp_t6; - - temp_t6 = D_800DC5E4; - switch (temp_t6) { + switch (D_800DC5E4) { case 0: add_8018D9E0_entry(0x1CE, 0, 0, 2); return; @@ -825,27 +822,29 @@ s32 func_80092DF8(s8 *arg) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f s32 func_80092E1C(s8 *arg0) { s32 temp_t6; temp_t6 = (*arg0 + 0x80) & 0xFF; if ((temp_t6 >= 0x21) && (temp_t6 < 0x2B)) { if ((temp_t6 % 2) != 0) { - return ((temp_t6 - 0x21) / 2) + 0x7B; + return ((s32) (temp_t6 - 0x21) / 2) + 0x7B; } - return ((temp_t6 - 0x21) / 2) + 0x30; + return ((s32) (temp_t6 - 0x21) / 2) + 0x30; } if ((temp_t6 >= 0x2B) && (temp_t6 < 0x6E)) { return temp_t6 + 0xA; } - if (temp_t6 != 0x6F) { - if ((temp_t6 != 0x72) && (temp_t6 != 0x73)) { - return -2; - } + switch (temp_t6) { /* irregular */ + default: + return -2; + case 0x6F: + return 0x00000078; + case 0x72: + case 0x73: return temp_t6 + 7; } - return 0x78; } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_80092E1C.s") @@ -14451,28 +14450,17 @@ block_13: GLOBAL_ASM("asm/non_matchings/code_80091750/func_800ABC38.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -s8 *D_800E7500[9] = { - "mushroom cup", - "flower cup", - "star cup", - "special cup", - "battle", - "mushroom cup", - "flower cup", - "star cup", - "special cup", -}; +#ifdef NEEDS_RODATA +// data/data_0DD0A0_3_0.s +extern char *D_800E7500[9];// = { "mushroom cup", "flower cup", "star cup", "special cup", "battle", "mushroom cup", "flower cup", "star cup", "special cup", }; +extern f64 D_800F2630;// = 0.05; +extern f64 D_800F2638;// = 0.0085; +extern f64 D_800F2640;// = 0.4; void func_800ABCF4(struct_8018D9E0_entry *arg0) { f64 temp_f0; - s32 temp_t1; - s32 temp_t1_2; - s32 temp_v0; - temp_v0 = arg0->unk4; - switch (temp_v0) { /* irregular */ + switch (arg0->unk4) { /* irregular */ case 0: arg0->column = 0; arg0->unk4 = 1; @@ -14480,26 +14468,23 @@ void func_800ABCF4(struct_8018D9E0_entry *arg0) { /* fallthrough */ case 1: func_800A9208(arg0, arg0->unk20); - temp_t1 = (s32) (arg0->unk20 - arg0->column) / 4; - arg0->unk1C = temp_t1; - if (temp_t1 >= 9) { + arg0->unk1C = (s32) (arg0->unk20 - arg0->column) / 4; + if (arg0->unk1C >= 9) { arg0->unk1C = 8; } arg0->unk24 = (f32) (((f64) arg0->unk1C * 0.05) + 1.0); if (arg0->column >= (arg0->unk20 - 0x14)) { arg0->unk4 = 2; arg0->D_8018DEE0_index = 0; - return; } - return; + break; case 2: func_800A9208(arg0, arg0->unk20); - temp_t1_2 = arg0->D_8018DEE0_index + 1; - temp_f0 = (f64) (temp_t1_2 - 0xA); arg0->unk1C = (s32) (arg0->unk20 - arg0->column) / 4; - arg0->D_8018DEE0_index = temp_t1_2; + arg0->D_8018DEE0_index++; + temp_f0 = (f64) (arg0->D_8018DEE0_index - 0xA); arg0->unk24 = (f32) ((temp_f0 * 0.0085 * temp_f0) + 0.4); - if ((temp_t1_2 >= 9) && ((f64) arg0->unk24 > 1.0)) { + if ((arg0->D_8018DEE0_index >= 9) && ((f64) arg0->unk24 > 1.0)) { arg0->unk24 = 1.0f; } break; @@ -14509,46 +14494,34 @@ void func_800ABCF4(struct_8018D9E0_entry *arg0) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_800ABCF4.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -void func_800ABF68(); /* extern */ -extern s8 D_8018EE08; - void func_800ABEAC(struct_8018D9E0_entry *arg0) { - s32 temp_v0; - s32 temp_v0_2; - s32 temp_v0_3; - - func_800ABF68(); - temp_v0 = D_80164A28; - switch (temp_v0) { /* irregular */ + // Why? + s32 one = 1; + func_800ABF68(arg0); + switch (D_80164A28) { case 1: - arg0->visible = 1; - return; + arg0->visible = one; + break; case 2: - temp_v0_2 = arg0->row; - if (temp_v0_2 < 0x104) { - arg0->row = temp_v0_2 + 2; - return; + if (arg0->row < 0x104) { + arg0->row += 2; + } else { + arg0->type = 0; } -block_13: - arg0->type = 0; - return; + break; default: - if ((gModeSelection != GRAND_PRIX) || (gPlayerCountSelection1 != 1U) || (D_8018EE08 != 0)) { - goto block_13; + if ((gModeSelection != 0) || (gPlayerCountSelection1 != one) || (D_8018EE08 != 0)) { + arg0->type = 0; + } else { + if (arg0->row < 0x104) { + arg0->row += 2; + } else { + arg0->type = 0; + } } - temp_v0_3 = arg0->row; - if (temp_v0_3 < 0x104) { - arg0->row = temp_v0_3 + 2; - return; - } - goto block_13; + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800ABEAC.s") -#endif #ifdef NEEDS_RODATA // data_0DD0A0_3_0.s @@ -16221,56 +16194,18 @@ void func_800AEC54(struct_8018D9E0_entry *arg0) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AEC54.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -s32 func_800B5B94(); /* extern */ -void func_800B6708(); /* extern */ -extern struct_8018EE10_entry D_8018EE10; -MkAnimation *D_800E7E34[0x14] = { - D_02001E64, - D_02001E74, - D_02001E84, - D_02001E94, - D_02001EA4, - D_02001EB4, - D_02001EC4, - D_02001ED4, - D_02001EE4, - D_02001EF4, - D_02001F04, - D_02001F14, - D_02001F24, - D_02001F34, - D_02001F44, - D_02001F54, - D_02001F64, - D_02001F74, - D_02001F84, - D_02001F94, -}; /* const */ -s16 gCupCourseOrder[5][4]; /* unable to generate initializer; const */ - void func_800AEDBC(struct_8018D9E0_entry *arg0) { - s8 temp_v0; - s8 temp_v0_2; - - temp_v0 = gTimeTrialDataCourseIndex; - if (temp_v0 != arg0->unk1C) { - arg0->unk1C = (s32) temp_v0; - temp_v0_2 = gTimeTrialDataCourseIndex; - arg0 = arg0; - func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7E34[*(gCupCourseOrder + ((((s32) temp_v0_2 / 4) * 8) + (((s32) temp_v0_2 % 4) * 2)))])); + if (arg0->unk1C != gTimeTrialDataCourseIndex) { + arg0->unk1C = (s32) gTimeTrialDataCourseIndex; + func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe_2(D_800E7E34[gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]])); if (func_800B5B94() == 0) { func_800B6708(); - return; + } else { + D_8018EE10[0].ghostDataSaved = 0; + D_8018EE10[1].ghostDataSaved = 0; } - D_8018EE10.unk4 = 0; - D_8018EE10.unk84 = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AEDBC.s") -#endif void func_800AEE90(struct_8018D9E0_entry *arg0) { if (D_8018EDEC != 0xB) { diff --git a/src/code_80091750.h b/src/code_80091750.h index a3695ecd6..1c401646c 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -67,6 +67,7 @@ void func_800925CC(); void func_80092604(); void func_80092630(); void func_8009265C(); +void func_80092688(); void func_80092C80(); s32 char_to_glyph_index(char*); s32 func_80092DF8(s8 *); @@ -207,12 +208,15 @@ void func_800AB020(struct_8018D9E0_entry*); void func_800AB098(struct_8018D9E0_entry*); void func_800AB260(struct_8018D9E0_entry*); void func_800AB290(struct_8018D9E0_entry*); +void func_800ABCF4(struct_8018D9E0_entry*); +void func_800ABEAC(struct_8018D9E0_entry*); void func_800ABF68(struct_8018D9E0_entry*); void func_800AC128(struct_8018D9E0_entry*); void func_800AC324(struct_8018D9E0_entry*); void func_800AC978(struct_8018D9E0_entry*); void func_800AD1A4(struct_8018D9E0_entry*); void func_800AEC54(struct_8018D9E0_entry*); +void func_800AEDBC(struct_8018D9E0_entry*); void func_800AEE90(struct_8018D9E0_entry*); void func_800AEEBC(struct_8018D9E0_entry*); void func_800AEEE8(struct_8018D9E0_entry*); @@ -220,9 +224,6 @@ void func_800AF480(struct_8018D9E0_entry*); void func_800AF4DC(struct_8018D9E0_entry*); void func_800AF740(struct_8018D9E0_entry*); -// code_80057C60.c -void func_80057CE4(); - /* File specific defines */ #define D_8018D9E0_SIZE 0x20 @@ -315,4 +316,7 @@ extern u8 _textures_0bSegmentRomStart[]; extern s32 D_8018E7A8; // maybe? extern s8 D_8018E7B0; // maybe? +// This is tracking which credit "state" we're in, decides which credits are shown (and probably other stuff) +extern u16 D_800DC5E4; + #endif diff --git a/src/math_util.c b/src/math_util.c index f2e96682c..93b2ff347 100644 --- a/src/math_util.c +++ b/src/math_util.c @@ -133,31 +133,16 @@ UNUSED void *sm64_vec3f_set(Vec3f dest, f32 x, f32 y, f32 z) { return &dest; } -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_802B5350(f32 (*arg0)[4], f32 (*arg1)[4]) { - f32 (*var_a2)[4]; - f32 (*var_v1)[4]; - f32 temp_f6; - s32 var_v0; +void func_802B5350(Mat4 arg0, Mat4 arg1) { + s32 row; + s32 column; - var_a2 = arg0; - var_v0 = 0; - var_v1 = arg1; - do { - var_v0 += 1; - var_v1 += 0x10; - var_v1->unk-10 = (f32) var_a2[0][0]; - temp_f6 = var_a2[0][1]; - var_a2 += 0x10; - var_v1->unk-C = temp_f6; - var_v1->unk-8 = (f32) var_a2->unk-8; - var_v1->unk-4 = (f32) var_a2->unk-4; - } while (var_v0 != 4); + for (row = 0; row < 4; row++) { + for (column = 0; column < 4; column++) { + arg1[row][column] = arg0[row][column]; + } + } } -#else -GLOBAL_ASM("asm/non_matchings/math_util/func_802B5350.s") -#endif // mtxf_copy void func_802B5398(s32 *dest, s32 *src, s32 arg2) { diff --git a/src/math_util.h b/src/math_util.h index b4578cf2e..6f1fb086a 100644 --- a/src/math_util.h +++ b/src/math_util.h @@ -24,6 +24,7 @@ void vec3s_set(Vec3s, s16, s16, s16); void *vec3f_copy(Vec3f, Vec3f); void vec3s_copy(Vec3s, Vec3s); void *sm64_vec3f_set(Vec3f, f32, f32, f32); +void func_802B5350(Mat4, Mat4); void func_802B5398(s32*, s32*, s32); void mtxf_identity(Mat4); void func_802B5450(Mat4, Mat4, Vec3f); diff --git a/src/memory.c b/src/memory.c index f64fdef07..f735db9c2 100644 --- a/src/memory.c +++ b/src/memory.c @@ -580,85 +580,76 @@ void func_802A8F14(Gfx *arg0, u8 arg1, u8 arg2) { Gfx D_802B8D58[] = {gsDPTileSync()}; #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -static Gfx D_802B8D58; /* unable to generate initializer */ - - - -void func_802A8F80(s32 arg0, s32 arg1, s8 arg2) { - s32 sp58; +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A8F80(Gfx *displayList, s32 arg1, s8 arg2) { + u32 sp58; s32 sp48; s32 sp44; s32 sp40; - s32 temp_a1; s32 temp_t5; - s32 temp_t8; s32 temp_t9; + s32 var_v0; + s32 var_v1; u8 temp_a0; u8 temp_a0_2; - s32 phi_v1; - s32 phi_v0; - sp58.unk0 = D_802B8D58.unk0; - sp58.unk4 = D_802B8D58.unk4; - phi_v0 = 0; - phi_v0 = 0; + sp58.unk0 = D_802B8D58->words.w0; + var_v0 = 0; + sp58.unk4 = (u32) D_802B8D58->words.w1; switch (arg2) { case 26: - sp44 = 0x20; + var_v1 = 0x00000020; + sp44 = 0x00000020; sp40 = 0; - phi_v1 = 0x20; block_9: - sp48 = phi_v1; + sp48 = var_v1; break; case 44: - sp44 = 0x20; + var_v1 = 0x00000020; + sp44 = 0x00000020; sp40 = 0; - phi_v1 = 0x20; - phi_v0 = 0x100; + var_v0 = 0x100; goto block_9; case 27: - sp44 = 0x20; + var_v1 = 0x00000040; + sp44 = 0x00000020; sp40 = 0; - phi_v1 = 0x40; goto block_9; case 28: - sp44 = 0x40; + var_v1 = 0x00000020; + sp44 = 0x00000040; sp40 = 0; - phi_v1 = 0x20; goto block_9; case 29: - sp44 = 0x20; + var_v1 = 0x00000020; + sp44 = 0x00000020; sp40 = 3; - phi_v1 = 0x20; goto block_9; case 30: - sp44 = 0x20; + var_v1 = 0x00000040; + sp44 = 0x00000020; sp40 = 3; - phi_v1 = 0x40; goto block_9; case 31: - sp44 = 0x40; + var_v1 = 0x00000020; + sp44 = 0x00000040; sp40 = 3; - phi_v1 = 0x20; goto block_9; } - temp_a1 = D_802BA274; - temp_a0 = *(temp_a1 + arg1); - temp_t9 = temp_a1 + 1; + temp_a0 = *(D_802BA274 + arg1); + temp_t9 = D_802BA274 + 1; D_802BA274 = temp_t9; temp_a0_2 = *(temp_t9 + arg1); D_802BA274 = temp_t9 + 1; - *(arg0 + (D_802BA270 * 8)) = sp58; - (arg0 + (D_802BA270 * 8))->unk4 = sp5C; + displayList[D_802BA270].words.w0 = sp58; + displayList[D_802BA270].words.w1 = sp5C; D_802BA270 += 1; - *(arg0 + (D_802BA270 * 8)) = (sp40 << 0x15) | 0xF5000000 | 0x100000 | ((((sp48 * 2) + 7) >> 3) << 9) | phi_v0; - (arg0 + (D_802BA270 * 8))->unk4 = ((temp_a0_2 & 0xF) << 0x12) | (((temp_a0_2 & 0xF0) >> 4) << 0xE) | ((temp_a0 & 0xF) << 8) | (((temp_a0 & 0xF0) >> 4) * 0x10); + displayList[D_802BA270].words.w0 = (sp40 << 0x15) | 0xF5000000 | 0x100000 | (((s32) ((sp48 * 2) + 7) >> 3) << 9) | var_v0; + displayList[D_802BA270].words.w1 = ((temp_a0_2 & 0xF) << 0x12) | (((u32) (temp_a0_2 & 0xF0) >> 4) << 0xE) | ((temp_a0 & 0xF) << 8) | (((u32) (temp_a0 & 0xF0) >> 4) * 0x10); temp_t5 = D_802BA270 + 1; - temp_t8 = temp_t5 * 8; D_802BA270 = temp_t5; - *(arg0 + temp_t8) = 0xF2000000; - (arg0 + (D_802BA270 * 8))->unk4 = ((sp48 - 1) << 0xE) | ((sp44 - 1) * 4); + displayList[temp_t5].words.w0 = 0xF2000000; + displayList[D_802BA270].words.w1 = ((sp48 - 1) << 0xE) | ((sp44 - 1) * 4); D_802BA270 += 1; } #else @@ -669,111 +660,106 @@ Gfx D_802B8D60[] = { gsDPTileSync() }; Gfx D_802B8D68[] = { gsDPLoadSync() }; #ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -static Gfx D_802B8D60; /* unable to generate initializer */ -static Gfx D_802B8D68; /* unable to generate initializer */ - -void func_802A91E4(s32 arg0, s32 arg1, s8 arg2) { - s32 sp48; - s32 sp40; +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A91E4(Gfx *displayList, s32 arg1, s8 arg2) { + u32 sp48; + u32 sp40; s32 sp2C; s32 sp28; s32 sp24; - s32 temp_t1; s32 temp_t6; s32 temp_t6_2; s32 temp_t8; s32 temp_t9; s32 temp_t9_2; - s32 temp_v1; + s32 var_v0; + u32 temp_t1; u32 temp_t2; u32 temp_t6_3; + u32 var_a2; + u32 var_v0_2; + u32 var_v1; u8 temp_a2; u8 temp_a3; - s32 phi_v0; - u32 phi_v0_2; - u32 phi_a2; - u32 phi_v1; - sp48.unk0 = D_802B8D60.unk0; - sp48.unk4 = D_802B8D60.unk4; - sp40.unk0 = D_802B8D68.unk0; - sp40.unk4 = D_802B8D68.unk4; + sp48.unk0 = D_802B8D60->words.w0; + sp48.unk4 = (u32) D_802B8D60->words.w1; + sp40.unk0 = D_802B8D68->words.w0; + sp40.unk4 = (u32) D_802B8D68->words.w1; switch (arg2) { case 32: - sp28 = 0x20; + var_v0 = 0x00000020; + sp28 = 0x00000020; sp24 = 0; - phi_v0 = 0x20; block_8: - sp2C = phi_v0; + sp2C = var_v0; break; case 33: - sp28 = 0x20; + var_v0 = 0x00000040; + sp28 = 0x00000020; sp24 = 0; - phi_v0 = 0x40; goto block_8; case 34: - sp28 = 0x40; + var_v0 = 0x00000020; + sp28 = 0x00000040; sp24 = 0; - phi_v0 = 0x20; goto block_8; case 35: - sp28 = 0x20; + var_v0 = 0x00000020; + sp28 = 0x00000020; sp24 = 3; - phi_v0 = 0x20; goto block_8; case 36: - sp28 = 0x20; + var_v0 = 0x00000040; + sp28 = 0x00000020; sp24 = 3; - phi_v0 = 0x40; goto block_8; case 37: - sp28 = 0x40; + var_v0 = 0x00000020; + sp28 = 0x00000040; sp24 = 3; - phi_v0 = 0x20; goto block_8; } - temp_v1 = D_802BA274; - temp_a2 = *(arg1 + temp_v1); - temp_t9 = temp_v1 + 1; + temp_a2 = *(arg1 + D_802BA274); + temp_t9 = D_802BA274 + 1; D_802BA274 = temp_t9; temp_t8 = temp_t9 + 1; D_802BA274 = temp_t8; temp_a3 = *(temp_t8 + arg1); D_802BA274 = temp_t8 + 1; temp_t6 = sp24 << 0x15; - *(arg0 + (D_802BA270 * 8)) = temp_t6 | 0xFD000000 | 0x100000; - (arg0 + (D_802BA270 * 8))->unk4 = (temp_a2 << 0xB) + 0x5000000; + displayList[D_802BA270].words.w0 = temp_t6 | 0xFD000000 | 0x100000; + displayList[D_802BA270].words.w1 = (temp_a2 << 0xB) + 0x05000000; temp_t9_2 = D_802BA270 + 1; D_802BA270 = temp_t9_2; - *(arg0 + (temp_t9_2 * 8)) = sp48; - (arg0 + (D_802BA270 * 8))->unk4 = sp4C; + displayList[temp_t9_2].words.w0 = sp48; + var_v1 = 0x7FF; + displayList[D_802BA270].words.w1 = sp4C; D_802BA270 += 1; - *(arg0 + (D_802BA270 * 8)) = temp_t6 | 0xF5000000 | 0x100000 | (temp_a3 & 0xF); - temp_t1 = ((temp_a3 & 0xF0) >> 4) << 0x18; - (arg0 + (D_802BA270 * 8))->unk4 = temp_t1; + displayList[D_802BA270].words.w0 = temp_t6 | 0xF5000000 | 0x100000 | (temp_a3 & 0xF); + temp_t1 = ((u32) (temp_a3 & 0xF0) >> 4) << 0x18; + displayList[D_802BA270].words.w1 = temp_t1; temp_t6_2 = D_802BA270 + 1; D_802BA270 = temp_t6_2; - *(arg0 + (temp_t6_2 * 8)) = sp40; - (arg0 + (D_802BA270 * 8))->unk4 = sp44; - temp_t6_3 = (sp2C * 2) >> 3; + displayList[temp_t6_2].words.w0 = sp40; + displayList[D_802BA270].words.w1 = sp44; + temp_t6_3 = (u32) (sp2C * 2) >> 3; D_802BA270 += 1; temp_t2 = (sp2C * sp28) - 1; - phi_v1 = 0x7FF; - if (temp_t2 < 0x7FF) { - phi_v1 = temp_t2; + if (temp_t2 < 0x7FFU) { + var_v1 = temp_t2; } if (temp_t6_3 == 0) { - phi_v0_2 = 1; + var_v0_2 = 1; } else { - phi_v0_2 = temp_t6_3; + var_v0_2 = temp_t6_3; } - phi_a2 = temp_t6_3; + var_a2 = temp_t6_3; if (temp_t6_3 == 0) { - phi_a2 = 1; + var_a2 = 1; } - *(arg0 + (D_802BA270 * 8)) = 0xF3000000; - (arg0 + (D_802BA270 * 8))->unk4 = ((phi_v0_2 + 0x7FF) / phi_a2) | temp_t1 | (phi_v1 << 0xC); + displayList[D_802BA270].words.w0 = 0xF3000000; + displayList[D_802BA270].words.w1 = ((u32) (var_v0_2 + 0x7FF) / var_a2) | temp_t1 | (var_v1 << 0xC); D_802BA270 += 1; } #else @@ -796,220 +782,183 @@ void func_802A9544(Gfx *arg0, u8 arg1, u8 arg2) { } #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s32 D_802BA270; -extern s32 D_802BA274; - -void func_802A95B0(s32 arg0, s32 arg1, ? arg2) { +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A95B0(Gfx *displayList, u8 *arg1, s32 arg2) { s32 temp_t5; s32 temp_t7; s32 temp_t7_2; - s32 temp_v1; u8 temp_v0; - temp_v1 = D_802BA274; - temp_t7 = temp_v1 + 1; - temp_v0 = *(temp_v1 + arg1); + temp_t7 = D_802BA274 + 1; + temp_v0 = arg1[D_802BA274]; D_802BA274 = temp_t7; temp_t5 = temp_t7 + 1; D_802BA274 = temp_t5; temp_t7_2 = temp_t5 + 1; D_802BA274 = temp_t7_2; D_802BA274 = temp_t7_2 + 1; - *(arg0 + (D_802BA270 * 8)) = ((*(temp_t7_2 + arg1) & 0x3F) << 0x11) | 0x4000000 | (((*(temp_t5 + arg1) & 0x3F) * 0x410) - 1); - (arg0 + (D_802BA270 * 8))->unk4 = (((*(temp_t7 + arg1) << 8) | temp_v0) * 0x10) + 0x4000000; - D_802BA270 = D_802BA270 + 1; + displayList[D_802BA270].words.w0 = ((arg1[temp_t7_2] & 0x3F) << 0x11) | 0x04000000 | (((arg1[temp_t5] & 0x3F) * 0x410) - 1); + displayList[D_802BA270].words.w1 = (((arg1[temp_t7] << 8) | temp_v0) * 0x10) + 0x04000000; + D_802BA270 += 1; } #else GLOBAL_ASM("asm/non_matchings/memory/func_802A95B0.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s32 D_802BA270; -extern s32 D_802BA274; - -void func_802A9674(s32 arg0, s32 arg1, s8 arg2) { +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A9674(Gfx *displayList, u8 *arg1, s8 arg2) { s32 temp_t9; - s32 temp_v1; u8 temp_v0; - temp_v1 = D_802BA274; - temp_t9 = temp_v1 + 1; - temp_v0 = *(temp_v1 + arg1); + temp_t9 = D_802BA274 + 1; + temp_v0 = arg1[D_802BA274]; D_802BA274 = temp_t9; D_802BA274 = temp_t9 + 1; - *(arg0 + (D_802BA270 * 8)) = (((arg2 - 0x32) * 0x410) - 1) | 0x4000000; - (arg0 + (D_802BA270 * 8))->unk4 = (((*(temp_t9 + arg1) << 8) | temp_v0) * 0x10) + 0x4000000; - D_802BA270 = D_802BA270 + 1; + displayList[D_802BA270].words.w0 = (((arg2 - 0x32) * 0x410) - 1) | 0x04000000; + displayList[D_802BA270].words.w1 = (((arg1[temp_t9] << 8) | temp_v0) * 0x10) + 0x04000000; + D_802BA270 += 1; } #else GLOBAL_ASM("asm/non_matchings/memory/func_802A9674.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s32 D_802BA270; -extern s32 D_802BA274; - -void func_802A9714(s32 arg0, s32 arg1, ? arg2) { +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A9714(Gfx *displayList, u8 *arg1, s32 arg2) { s32 temp_t7; - s32 temp_v1; - s32 temp_v1_2; + s32 var_a0; + s32 var_a2; + s32 var_a3; u8 temp_v0; u8 temp_v0_2; u8 temp_v0_3; - s32 phi_a3; - s32 phi_a2; - s32 phi_a0; - temp_v1 = D_802BA274; - temp_v0 = *(temp_v1 + arg1); - temp_t7 = temp_v1 + 1; + temp_v0 = arg1[D_802BA274]; + temp_t7 = D_802BA274 + 1; D_802BA274 = temp_t7; - phi_a3 = temp_v0 & 0x1F; - phi_a0 = temp_v0 & 0x1F; + var_a0 = temp_v0 & 0x1F; + var_a3 = temp_v0 & 0x1F; if (gIsMirrorMode != 0) { - temp_v0_2 = *(temp_t7 + arg1); + temp_v0_2 = arg1[temp_t7]; D_802BA274 = temp_t7 + 1; - phi_a3 = (temp_v0_2 >> 2) & 0x1F; - phi_a2 = ((temp_v0 >> 5) & 7) | ((temp_v0_2 & 3) * 8); + var_a2 = ((temp_v0 >> 5) & 7) | ((temp_v0_2 & 3) * 8); + var_a3 = (temp_v0_2 >> 2) & 0x1F; } else { - temp_v1_2 = D_802BA274; - temp_v0_3 = *(temp_v1_2 + arg1); - D_802BA274 = temp_v1_2 + 1; - phi_a2 = ((temp_v0 >> 5) & 7) | ((temp_v0_3 & 3) * 8); - phi_a0 = (temp_v0_3 >> 2) & 0x1F; + temp_v0_3 = arg1[D_802BA274]; + D_802BA274 += 1; + var_a2 = ((temp_v0 >> 5) & 7) | ((temp_v0_3 & 3) * 8); + var_a0 = (temp_v0_3 >> 2) & 0x1F; } - *(arg0 + (D_802BA270 * 8)) = 0xBF000000; - (arg0 + (D_802BA270 * 8))->unk4 = (phi_a3 << 0x11) | (phi_a2 << 9) | (phi_a0 * 2); - D_802BA270 = D_802BA270 + 1; + displayList[D_802BA270].words.w0 = 0xBF000000; + displayList[D_802BA270].words.w1 = (var_a3 << 0x11) | (var_a2 << 9) | (var_a0 * 2); + D_802BA270 += 1; } #else GLOBAL_ASM("asm/non_matchings/memory/func_802A9714.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s32 D_802BA270; -extern s32 D_802BA274; - -void func_802A980C(s32 arg0, s32 arg1, ? arg2) { - s32 temp_a2; +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A980C(Gfx *displayList, u8 *arg1, s32 arg2) { s32 temp_t7; s32 temp_t8; s32 temp_t9; s32 temp_t9_2; - s32 temp_v1; - s32 temp_v1_2; - s32 temp_v1_3; - s32 temp_v1_4; + s32 var_a0; + s32 var_a2; + s32 var_a3; + s32 var_t0; + s32 var_t1; + s32 var_t2; u8 temp_v0; u8 temp_v0_2; u8 temp_v0_3; u8 temp_v0_4; u8 temp_v0_5; u8 temp_v0_6; - s32 phi_t0; - s32 phi_a3; - s32 phi_a0; - s32 phi_t2; - s32 phi_t1; - s32 phi_a2; - temp_v1 = D_802BA274; - temp_v0 = *(temp_v1 + arg1); - temp_t7 = temp_v1 + 1; + temp_v0 = arg1[D_802BA274]; + temp_t7 = D_802BA274 + 1; D_802BA274 = temp_t7; - temp_a2 = gIsMirrorMode; - phi_t0 = temp_v0 & 0x1F; - phi_a0 = temp_v0 & 0x1F; - if (temp_a2 != 0) { - temp_v0_2 = *(temp_t7 + arg1); + var_a0 = temp_v0 & 0x1F; + var_t0 = temp_v0 & 0x1F; + if (gIsMirrorMode != 0) { + temp_v0_2 = arg1[temp_t7]; D_802BA274 = temp_t7 + 1; - phi_t0 = (temp_v0_2 >> 2) & 0x1F; - phi_a3 = ((temp_v0 >> 5) & 7) | ((temp_v0_2 & 3) * 8); + var_a3 = ((temp_v0 >> 5) & 7) | ((temp_v0_2 & 3) * 8); + var_t0 = (temp_v0_2 >> 2) & 0x1F; } else { - temp_v1_2 = D_802BA274; - temp_v0_3 = *(temp_v1_2 + arg1); - D_802BA274 = temp_v1_2 + 1; - phi_a3 = ((temp_v0 >> 5) & 7) | ((temp_v0_3 & 3) * 8); - phi_a0 = (temp_v0_3 >> 2) & 0x1F; + temp_v0_3 = arg1[D_802BA274]; + D_802BA274 += 1; + var_a3 = ((temp_v0 >> 5) & 7) | ((temp_v0_3 & 3) * 8); + var_a0 = (temp_v0_3 >> 2) & 0x1F; } - temp_v1_3 = D_802BA274; - temp_v0_4 = *(temp_v1_3 + arg1); - temp_t9 = temp_v1_3 + 1; + temp_v0_4 = arg1[D_802BA274]; + temp_t9 = D_802BA274 + 1; D_802BA274 = temp_t9; - if (temp_a2 != 0) { - temp_v0_5 = *(temp_t9 + arg1); + if (gIsMirrorMode != 0) { + var_a2 = temp_v0_4 & 0x1F; + temp_v0_5 = arg1[temp_t9]; D_802BA274 = temp_t9 + 1; - phi_t2 = (temp_v0_5 >> 2) & 0x1F; - phi_t1 = ((temp_v0_4 >> 5) & 7) | ((temp_v0_5 & 3) * 8); - phi_a2 = temp_v0_4 & 0x1F; + var_t1 = ((temp_v0_4 >> 5) & 7) | ((temp_v0_5 & 3) * 8); + var_t2 = (temp_v0_5 >> 2) & 0x1F; } else { - temp_v1_4 = D_802BA274; - temp_v0_6 = *(temp_v1_4 + arg1); + var_t2 = temp_v0_4 & 0x1F; + temp_v0_6 = arg1[D_802BA274]; temp_t8 = (temp_v0_6 & 3) * 8; temp_t9_2 = (temp_v0_6 >> 2) & 0x1F; - D_802BA274 = temp_v1_4 + 1; - phi_t2 = temp_v0_4 & 0x1F; - phi_t1 = ((temp_v0_4 >> 5) & 7) | temp_t8; - phi_a2 = temp_t9_2; + D_802BA274 += 1; + var_t1 = ((temp_v0_4 >> 5) & 7) | temp_t8; + var_a2 = temp_t9_2; } - *(arg0 + (D_802BA270 * 8)) = (phi_t0 << 0x11) | 0xB1000000 | (phi_a3 << 9) | (phi_a0 * 2); - (arg0 + (D_802BA270 * 8))->unk4 = (phi_t2 << 0x11) | (phi_t1 << 9) | (phi_a2 * 2); - D_802BA270 = D_802BA270 + 1; + displayList[D_802BA270].words.w0 = (var_t0 << 0x11) | 0xB1000000 | (var_a3 << 9) | (var_a0 * 2); + displayList[D_802BA270].words.w1 = (var_t2 << 0x11) | (var_t1 << 9) | (var_a2 * 2); + D_802BA270 += 1; } #else GLOBAL_ASM("asm/non_matchings/memory/func_802A980C.s") #endif #ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern s32 D_802BA270; -extern s32 D_802BA274; - -void func_802A99A4(s32 arg0, s32 arg1, ? arg2) { +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +void func_802A99A4(Gfx *displayList, u8 *arg1, s32 arg2) { s32 temp_t3; s32 temp_t6; s32 temp_t7; - s32 temp_v1; - s32 temp_v1_2; + s32 var_a0; + s32 var_a2; + s32 var_a3; + s32 var_t0; u8 temp_v0; u8 temp_v0_2; u8 temp_v0_3; - s32 phi_a0; - s32 phi_t0; - s32 phi_a3; - s32 phi_a2; - temp_v1 = D_802BA274; - temp_v0 = *(temp_v1 + arg1); - temp_t7 = temp_v1 + 1; + temp_v0 = arg1[D_802BA274]; + temp_t7 = D_802BA274 + 1; D_802BA274 = temp_t7; - phi_a0 = temp_v0 & 0x1F; - phi_t0 = temp_v0 & 0x1F; + var_a0 = temp_v0 & 0x1F; + var_t0 = temp_v0 & 0x1F; if (gIsMirrorMode != 0) { - temp_v0_2 = *(temp_t7 + arg1); + temp_v0_2 = arg1[temp_t7]; temp_t3 = temp_t7 + 1; D_802BA274 = temp_t3; + var_a2 = ((temp_v0 >> 5) & 7) | ((temp_v0_2 & 3) * 8); + var_a3 = (temp_v0_2 >> 2) & 0x1F; D_802BA274 = temp_t3 + 1; - phi_t0 = ((temp_v0_2 >> 7) & 1) | ((*(temp_t3 + arg1) & 0xF) * 2); - phi_a3 = (temp_v0_2 >> 2) & 0x1F; - phi_a2 = ((temp_v0 >> 5) & 7) | ((temp_v0_2 & 3) * 8); + var_t0 = ((temp_v0_2 >> 7) & 1) | ((arg1[temp_t3] & 0xF) * 2); } else { - temp_v1_2 = D_802BA274; - temp_v0_3 = *(temp_v1_2 + arg1); - temp_t6 = temp_v1_2 + 1; + temp_v0_3 = arg1[D_802BA274]; + temp_t6 = D_802BA274 + 1; D_802BA274 = temp_t6; + var_a3 = ((temp_v0 >> 5) & 7) | ((temp_v0_3 & 3) * 8); + var_a2 = (temp_v0_3 >> 2) & 0x1F; D_802BA274 = temp_t6 + 1; - phi_a0 = ((temp_v0_3 >> 7) & 1) | ((*(temp_t6 + arg1) & 0xF) * 2); - phi_a3 = ((temp_v0 >> 5) & 7) | ((temp_v0_3 & 3) * 8); - phi_a2 = (temp_v0_3 >> 2) & 0x1F; + var_a0 = ((temp_v0_3 >> 7) & 1) | ((arg1[temp_t6] & 0xF) * 2); } - *(arg0 + (D_802BA270 * 8)) = 0xB5000000; - (arg0 + (D_802BA270 * 8))->unk4 = (phi_a0 << 0x19) | (phi_t0 << 0x11) | (phi_a3 << 9) | (phi_a2 * 2); - D_802BA270 = D_802BA270 + 1; + displayList[D_802BA270].words.w0 = 0xB5000000; + displayList[D_802BA270].words.w1 = (var_a0 << 0x19) | (var_t0 << 0x11) | (var_a3 << 9) | (var_a2 * 2); + D_802BA270 += 1; } #else GLOBAL_ASM("asm/non_matchings/memory/func_802A99A4.s") @@ -2124,7 +2073,7 @@ f32 func_802ABEAC(UnkActorInner *arg0, Vec3f arg1) { } #ifdef MIPS_TO_C -//generated by m2c commit b04a67bbeb29101ca8f4ea8a24a81fe594677b33 +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f void process_shell_collision(f32 *arg0, f32 arg1, f32 *velocity, f32 arg3) { f32 sp40; f32 sp3C; @@ -2137,7 +2086,6 @@ void process_shell_collision(f32 *arg0, f32 arg1, f32 *velocity, f32 arg3) { f32 temp_f0; f32 temp_f0_2; f32 temp_f10; - f32 temp_f10_2; f32 temp_f12; f32 temp_f12_2; f32 temp_f14; @@ -2148,7 +2096,6 @@ void process_shell_collision(f32 *arg0, f32 arg1, f32 *velocity, f32 arg3) { f32 temp_f2; f32 temp_f2_2; f32 temp_f6; - f32 temp_f8; f64 temp_f16; temp_f2 = velocity->unk0; @@ -2176,11 +2123,9 @@ void process_shell_collision(f32 *arg0, f32 arg1, f32 *velocity, f32 arg3) { temp_f12_2 = sp3C - spC; temp_f14_2 = sp38 - temp_f6; temp_f16_3 = (1.0f / sqrtf((temp_f2_2 * temp_f2_2) + (temp_f12_2 * temp_f12_2) + (temp_f14_2 * temp_f14_2))) * sp24; - temp_f10_2 = temp_f12_2 * temp_f16_3; - temp_f8 = temp_f14_2 * temp_f16_3; velocity->unk0 = temp_f2_2 * temp_f16_3; - velocity->unk4 = temp_f10_2; - velocity->unk8 = temp_f8; + velocity->unk4 = (f32) (temp_f12_2 * temp_f16_3); + velocity->unk8 = (f32) (temp_f14_2 * temp_f16_3); } #else GLOBAL_ASM("asm/non_matchings/memory/process_shell_collision.s") diff --git a/src/race_logic.c b/src/race_logic.c index d3a8f64e7..425dcbb4a 100644 --- a/src/race_logic.c +++ b/src/race_logic.c @@ -753,101 +753,82 @@ void func_8028F4E8(void) { } } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern void *D_800DC5EC; -extern void *D_800DC5F0; -extern void *D_800DC5F4; -extern void *D_800DC5F8; -extern f32 D_802BA034; - void func_8028F588(void) { - s16 var_v0; - s16 var_v0_2; - s16 var_v0_3; - s16 var_v0_4; - s16 var_v0_5; - s16 var_v0_6; - s16 var_v0_7; - s16 var_v0_8; - s32 temp_v0; + s16 screenWidth; - switch (gActiveScreenMode) { /* irregular */ + switch (gActiveScreenMode) { /* irregular */ case SCREEN_MODE_1P: - var_v0 = (s16) (s32) (320.0f * D_802BA034); - if (var_v0 < 0) { - var_v0 = 1; + screenWidth = (s16) (s32) (320.0f * D_802BA034); + if (screenWidth < 0) { + screenWidth = 1; } - D_800DC5EC->unk2C = var_v0; - var_v0_2 = (s16) (s32) (240.0f * D_802BA034); - if (var_v0_2 < 0) { - var_v0_2 = 1; + D_800DC5EC->screenWidth = screenWidth; + screenWidth = (s16) (s32) (240.0f * D_802BA034); + if (screenWidth < 0) { + screenWidth = 1; } - D_800DC5EC->unk2E = var_v0_2; - return; + D_800DC5EC->screenHeight = screenWidth; + break; case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - var_v0_3 = (s16) (s32) (160.0f * D_802BA034); - if (var_v0_3 <= 0) { - var_v0_3 = 1; - } else if (var_v0_3 >= 0x140) { - var_v0_3 = 0x013C; + screenWidth = (s16) (s32) (160.0f * D_802BA034); + if (screenWidth <= 0) { + screenWidth = 1; + } else if (screenWidth >= 0x140) { + screenWidth = 0x013C; } - D_800DC5EC->unk2C = var_v0_3; - D_800DC5F0->unk2C = var_v0_3; - var_v0_4 = (s16) (s32) (240.0f * D_802BA034); - if (var_v0_4 <= 0) { - var_v0_4 = 1; - } else if (var_v0_4 >= 0x1E0) { - var_v0_4 = 0x01DC; + D_800DC5EC->screenWidth = screenWidth; + D_800DC5F0->screenWidth = screenWidth; + screenWidth = (s16) (s32) (240.0f * D_802BA034); + if (screenWidth <= 0) { + screenWidth = 1; + } else if (screenWidth >= 0x1E0) { + screenWidth = 0x01DC; } - D_800DC5EC->unk2E = var_v0_4; - D_800DC5F0->unk2E = var_v0_4; - return; + D_800DC5EC->screenHeight = screenWidth; + D_800DC5F0->screenHeight = screenWidth; + break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: - var_v0_5 = (s16) (s32) (320.0f * D_802BA034); - if (var_v0_5 <= 0) { - var_v0_5 = 1; - } else if (var_v0_5 >= 0x280) { - var_v0_5 = 0x027C; + screenWidth = (s16) (s32) (320.0f * D_802BA034); + if (screenWidth <= 0) { + screenWidth = 1; + } else if (screenWidth >= 0x280) { + screenWidth = 0x027C; } - D_800DC5EC->unk2C = var_v0_5; - D_800DC5F0->unk2C = var_v0_5; - var_v0_6 = (s16) (s32) (120.0f * D_802BA034); - if (var_v0_6 <= 0) { - var_v0_6 = 1; - } else if (var_v0_6 >= 0xF0) { - var_v0_6 = 0x00EC; + D_800DC5EC->screenWidth = screenWidth; + D_800DC5F0->screenWidth = screenWidth; + screenWidth = (s16) (s32) (120.0f * D_802BA034); + if (screenWidth <= 0) { + screenWidth = 1; + } else if (screenWidth >= 0xF0) { + screenWidth = 0x00EC; } - D_800DC5EC->unk2E = var_v0_6; - D_800DC5F0->unk2E = var_v0_6; - return; + D_800DC5EC->screenHeight = screenWidth; + D_800DC5F0->screenHeight = screenWidth; + break; case SCREEN_MODE_3P_4P_SPLITSCREEN: - var_v0_7 = (s16) (s32) (160.0f * D_802BA034); - if (var_v0_7 <= 0) { - var_v0_7 = 1; - } else if (var_v0_7 >= 0x140) { - var_v0_7 = 0x013C; + screenWidth = (s16) (s32) (160.0f * D_802BA034); + if (screenWidth <= 0) { + screenWidth = 1; + } else if (screenWidth >= 0x140) { + screenWidth = 0x013C; } - D_800DC5EC->unk2C = var_v0_7; - D_800DC5F0->unk2C = var_v0_7; - D_800DC5F4->unk2C = var_v0_7; - D_800DC5F8->unk2C = var_v0_7; - var_v0_8 = (s16) (s32) (120.0f * D_802BA034); - if (var_v0_8 <= 0) { - var_v0_8 = 1; - } else if (var_v0_8 >= 0xF0) { - var_v0_8 = 0x00EC; + D_800DC5EC->screenWidth = screenWidth; + D_800DC5F0->screenWidth = screenWidth; + D_800DC5F4->screenWidth = screenWidth; + D_800DC5F8->screenWidth = screenWidth; + screenWidth = (s16) (s32) (120.0f * D_802BA034); + if (screenWidth <= 0) { + screenWidth = 1; + } else if (screenWidth >= 0xF0) { + screenWidth = 0x00EC; } - D_800DC5EC->unk2E = var_v0_8; - D_800DC5F0->unk2E = var_v0_8; - D_800DC5F4->unk2E = var_v0_8; - D_800DC5F8->unk2E = var_v0_8; - return; + D_800DC5EC->screenHeight = screenWidth; + D_800DC5F0->screenHeight = screenWidth; + D_800DC5F4->screenHeight = screenWidth; + D_800DC5F8->screenHeight = screenWidth; + break; } } -#else -GLOBAL_ASM("asm/non_matchings/race_logic/func_8028F588.s") -#endif void func_8028F8BC(void) { D_802BA034 = (f32) (D_802BA034 - 0.017f); @@ -866,19 +847,12 @@ void func_8028F914(void) { } #ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -void func_800029B0(); /* extern */ -void func_80005AE8(Player *); /* extern */ -void func_800C9F90(?); /* extern */ -void play_sound2(?); /* extern */ +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +? func_800C9F90(?); /* extern */ extern s32 D_80162DF0; -extern void *gControllerOne; static u16 D_800DC5A8; /* unable to generate initializer */ void func_8028F970(void) { - Player *temp_a0; - Player *temp_a0_2; - Player *temp_a0_3; Player *var_s3; s32 var_s2; struct Controller *temp_s0; @@ -886,7 +860,6 @@ void func_8028F970(void) { u16 temp_v0; u16 temp_v0_2; u16 temp_v0_3; - void *temp_a1; if (D_8015F890 == 0) { var_s3 = gPlayers; @@ -895,37 +868,34 @@ loop_2: temp_v0 = var_s3->unk_000; if ((temp_v0 & 0x4000) && !(temp_v0 & 0x1000)) { temp_s0 = &gControllers[var_s2]; - if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { + if (gActiveScreenMode != 3) { temp_v0_2 = temp_s0->buttonPressed; - if ((temp_v0_2 & 0x20) && !(temp_s0->button & 0x10)) { + if ((temp_v0_2 & L_TRIG) && !(temp_s0->button & R_TRIG)) { temp_s0->buttonPressed = temp_v0_2 & 0xFFDF; temp_t7 = D_800DC5A8 + 1; D_800DC5A8 = temp_t7; if ((temp_t7 & 0xFFFF) >= 3) { D_800DC5A8 = 0; } - play_sound2(SOUND_ACTION_PING); + play_sound2(0x4900801C); func_800029B0(); } } - if ((temp_s0->buttonPressed & 0x1000) && (temp_v0_3 = temp_s0->button, ((temp_v0_3 & 0x10) == 0)) && !(temp_v0_3 & 0x20)) { + if ((temp_s0->buttonPressed & START_BUTTON) && (temp_v0_3 = temp_s0->button, ((temp_v0_3 & R_TRIG) == 0)) && !(temp_v0_3 & L_TRIG)) { func_8028DF00(); D_800DC5FC = ((s32) (temp_s0 - gControllerOne) >> 4) + 1; temp_s0->buttonPressed = 0; func_800C9F90(1); D_80162DF0 = 1; - if (gModeSelection == TIME_TRIALS) { - temp_a0 = gPlayerOne; - if (temp_a0->unk_000 & 0x8100) { - func_80005AE8(temp_a0); + if (gModeSelection == 1) { + if (gPlayerOne->unk_000 & 0x8100) { + func_80005AE8(gPlayerOne); } - temp_a0_2 = gPlayerTwo; - if (temp_a0_2->unk_000 & 0x8100) { - func_80005AE8(temp_a0_2); + if (gPlayerTwo->unk_000 & 0x8100) { + func_80005AE8(gPlayerTwo); } - temp_a0_3 = gPlayerThree; - if (temp_a0_3->unk_000 & 0x8100) { - func_80005AE8(temp_a0_3); + if (gPlayerThree->unk_000 & 0x8100) { + func_80005AE8(gPlayerThree); } } } else { @@ -937,15 +907,14 @@ block_20: var_s3 += 0xDD8; if (var_s2 == 4) { if ((gEnableDebugMode != 0) && (gModeSelection != BATTLE)) { - temp_a1 = gControllerOne; - if (temp_a1->unk6 & 0x800) { + if (gControllerOne->buttonPressed & U_JPAD) { gLapCountByPlayerId->unk0 = 2; } - if (temp_a1->unk6 & 0x100) { + if (gControllerOne->buttonPressed & R_JPAD) { gLapCountByPlayerId->unk0 = 2; gLapCountByPlayerId->unk4 = 2; } - if (temp_a1->unk6 & 0x400) { + if (gControllerOne->buttonPressed & D_JPAD) { gLapCountByPlayerId->unk0 = 2; gLapCountByPlayerId->unk4 = 2; gLapCountByPlayerId->unk8 = 2; diff --git a/src/race_logic.h b/src/race_logic.h index 21c99917c..f620cca99 100644 --- a/src/race_logic.h +++ b/src/race_logic.h @@ -21,6 +21,7 @@ void func_8028F3E8(); void update_race_position_data(); void func_8028F474(); void func_8028F4E8(); +void func_8028F588(); void func_8028F8BC(); void func_8028F914(); void func_8028F970(); diff --git a/src/render_courses.c b/src/render_courses.c index 6bd033862..4df9542a5 100644 --- a/src/render_courses.c +++ b/src/render_courses.c @@ -64,7 +64,6 @@ void func_80290CAC(uintptr_t arg0) { } extern u16 D_80152300[]; -s16 func_802ABD40(u16); void load_surface_map(s32 arg0, struct UnkStruct_800DC5EC *arg1) { Player *temp_t1 = arg1->player; diff --git a/src/skybox_and_splitscreen.c b/src/skybox_and_splitscreen.c index 30291fabb..0ded88bd2 100644 --- a/src/skybox_and_splitscreen.c +++ b/src/skybox_and_splitscreen.c @@ -515,88 +515,92 @@ void func_802A4A0C(Vtx *arg0, struct UnkStruct_800DC5EC *arg1, s32 arg2, s32 arg GLOBAL_ASM("asm/non_matchings/skybox/func_802A4A0C.s") #endif -#ifdef MIPS_TO_C -extern s32 gScreenModeSelection; -void func_802A4D18(void) { - f32 phi_f10; +#ifdef NEEDS_RODATA +//generated by m2c commit 9841ff34ca242f5f14b2eab2b54a7a65ac47d80f +// data/data_ +// jtbl_802B9BB8 +extern f32 D_802B9BB4;// = 6800.0f; +extern f32 D_802B9C04;// = 2700.0f; +extern f32 D_802B9C08;// = 1500.0f; +extern f32 D_802B9C0C;// = 5000.0f; +extern f32 D_802B9C10;// = 4500.0f; +extern f32 D_802B9C14;// = 7000.0f; +extern f32 D_802B9C18;// = 6800.0f; +extern f32 D_802B9C1C;// = 1.3333334f; +extern f32 D_802B9C20;// = 0.6666667f; +extern f32 D_802B9C24;// = 2.6666667f; +extern f32 D_802B9C28;// = 1.3333334f; - if (gGamestate != RACING) { - D_8015014C = 6800.0f; // D_802B9BB4 +void func_802A4D18(void) { + f32 var_f10; + + if (gGamestate != 4) { + D_8015014C = 6800.0f; D_80150150 = 3.0f; } else { - //if (gCurrentCourseId < COURSE_BIG_DONUT) { - switch (gCurrentCourseId) { - case 2: - case 3: - case 13: - case 15: - case 16: - D_8015014C = 2700.0f; // D_802B9C04 - phi_f10 = 2.0f; - goto block_11; - case 1: - case 17: - D_8015014C = 1500.0f; // D_802B9C08 - D_80150150 = 2.0f; - break; - case 6: - D_8015014C = 5000.0f; // D_802B9C0C - D_80150150 = 1.0f; - break; - case 14: - D_8015014C = 4800.0f; - phi_f10 = 10.0f; - goto block_11; - case 0: - case 4: - case 5: - case 7: - case 8: - case 9: - case 10: - case 12: - case 18: - D_8015014C = 4500.0f; // D_802B9C10 - D_80150150 = 9.0f; - break; - case 11: - D_8015014C = 7000.0f; // D_802B9C14; - D_80150150 = 10.0f; - break; - //} endofswitch - //} else { - default: - D_8015014C = 6800.0f; // D_802B9C18 - phi_f10 = 3.0f; - - D_80150150 = phi_f10; + switch (gCurrentCourseId) { + case COURSE_BOWSER_CASTLE: + case COURSE_BANSHEE_BOARDWALK: + case COURSE_RAINBOW_ROAD: + case COURSE_BLOCK_FORT: + case COURSE_SKYSCRAPER: + D_8015014C = 2700.0f; + D_80150150 = 2.0f; + break; + case COURSE_CHOCO_MOUNTAIN: + case COURSE_DOUBLE_DECK: + D_8015014C = 1500.0f; + D_80150150 = 2.0f; + break; + case COURSE_KOOPA_BEACH: + D_8015014C = 5000.0f; + D_80150150 = 1.0f; + break; + case COURSE_WARIO_STADIUM: + D_8015014C = 4800.0f; + D_80150150 = 10.0f; + break; + case COURSE_MARIO_RACEWAY: + case COURSE_YOSHI_VALLEY: + case COURSE_FRAPPE_SNOWLAND: + case COURSE_ROYAL_RACEWAY: + case COURSE_LUIGI_RACEWAY: + case COURSE_MOO_MOO_FARM: + case COURSE_TOADS_TURNPIKE: + case COURSE_SHERBET_LAND: + case COURSE_DK_JUNGLE: + D_8015014C = 4500.0f; + D_80150150 = 9.0f; + break; + case COURSE_KALAMARI_DESERT: + D_8015014C = 7000.0f; + D_80150150 = 10.0f; + break; + default: + D_8015014C = 6800.0f; + D_80150150 = 3.0f; + break; } } - - switch(gScreenModeSelection) { - case SCREEN_MODE_1P: - D_80150148 = 1.3333333730697632f; // D_802B9C1C - break; - case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: - D_80150148 = (f32) 2.6666667461395264f; // D_802B9C24 - break; - case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - D_80150148 = 0.6666666865348816f; // D_802B9C20 - break; - case SCREEN_MODE_3P_4P_SPLITSCREEN: - D_80150148 = 1.3333333730697632f; // D_802B9C28 - break; + switch (gScreenModeSelection) { /* switch 1; irregular */ + case SCREEN_MODE_1P: /* switch 1 */ + D_80150148 = 1.333333f; + return; + case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: /* switch 1 */ + D_80150148 = 2.666666f; + return; + case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: /* switch 1 */ + D_80150148 = 0.666666f; + return; + case SCREEN_MODE_3P_4P_SPLITSCREEN: /* switch 1 */ + D_80150148 = 1.333333f; + return; } } - #else GLOBAL_ASM("asm/non_matchings/skybox/func_802A4D18.s") #endif -//extern f32 D_80150134; -//extern f32 D_80150138; -//extern f32 D_8015013C; - void func_802A4EF4(void) { switch(gActiveScreenMode) { case SCREEN_MODE_1P: diff --git a/src/skybox_and_splitscreen.h b/src/skybox_and_splitscreen.h index 8cd0a20ca..7506ca6a0 100644 --- a/src/skybox_and_splitscreen.h +++ b/src/skybox_and_splitscreen.h @@ -25,6 +25,7 @@ void select_framebuffer(); void func_802A4300(); void func_802A450C(Vtx*); void func_802A487C(Vtx*, s32, s32, s32, s32); +void func_802A4D18(); void func_802A4EF4(); void func_802A5004(); void func_802A50EC(); @@ -77,8 +78,8 @@ extern struct GfxPool *gGfxPool; extern f32 D_80150130[]; extern u16 D_800DC5B4; extern f32 D_80150148; -extern f32 D_80150150; extern f32 D_8015014C; +extern f32 D_80150150; extern u16 D_800DC5C8;