diff --git a/asm/non_matchings/code_80057C60/func_80067604.s b/asm/non_matchings/code_80057C60/func_80067604.s deleted file mode 100644 index a23f8a134..000000000 --- a/asm/non_matchings/code_80057C60/func_80067604.s +++ /dev/null @@ -1,220 +0,0 @@ -glabel func_80067604 -/* 068204 80067604 27BDFF68 */ addiu $sp, $sp, -0x98 -/* 068208 80067608 AFA600A0 */ sw $a2, 0xa0($sp) -/* 06820C 8006760C 00067400 */ sll $t6, $a2, 0x10 -/* 068210 80067610 000E3403 */ sra $a2, $t6, 0x10 -/* 068214 80067614 000678C0 */ sll $t7, $a2, 3 -/* 068218 80067618 01E67821 */ addu $t7, $t7, $a2 -/* 06821C 8006761C 0007C600 */ sll $t8, $a3, 0x18 -/* 068220 80067620 000F78C0 */ sll $t7, $t7, 3 -/* 068224 80067624 0018CE03 */ sra $t9, $t8, 0x18 -/* 068228 80067628 AFBF0024 */ sw $ra, 0x24($sp) -/* 06822C 8006762C AFA40098 */ sw $a0, 0x98($sp) -/* 068230 80067630 AFA5009C */ sw $a1, 0x9c($sp) -/* 068234 80067634 AFA700A4 */ sw $a3, 0xa4($sp) -/* 068238 80067638 008F1021 */ addu $v0, $a0, $t7 -/* 06823C 8006763C 84580AE4 */ lh $t8, 0xae4($v0) -/* 068240 80067640 24010001 */ li $at, 1 -/* 068244 80067644 00807025 */ move $t6, $a0 -/* 068248 80067648 570100C3 */ bnel $t8, $at, .L80067958 -/* 06824C 8006764C 8FBF0024 */ lw $ra, 0x24($sp) -/* 068250 80067650 C4440AC8 */ lwc1 $f4, 0xac8($v0) -/* 068254 80067654 0019C840 */ sll $t9, $t9, 1 -/* 068258 80067658 00997821 */ addu $t7, $a0, $t9 -/* 06825C 8006765C E7A4008C */ swc1 $f4, 0x8c($sp) -/* 068260 80067660 C4460ACC */ lwc1 $f6, 0xacc($v0) -/* 068264 80067664 27A4008C */ addiu $a0, $sp, 0x8c -/* 068268 80067668 27A50084 */ addiu $a1, $sp, 0x84 -/* 06826C 8006766C E7A60090 */ swc1 $f6, 0x90($sp) -/* 068270 80067670 C4480AD0 */ lwc1 $f8, 0xad0($v0) -/* 068274 80067674 A7A00084 */ sh $zero, 0x84($sp) -/* 068278 80067678 E7A80094 */ swc1 $f8, 0x94($sp) -/* 06827C 8006767C 85F80048 */ lh $t8, 0x48($t7) -/* 068280 80067680 A7A00088 */ sh $zero, 0x88($sp) -/* 068284 80067684 A7B80086 */ sh $t8, 0x86($sp) -/* 068288 80067688 C5D00224 */ lwc1 $f16, 0x224($t6) -/* 06828C 8006768C C44A0AD4 */ lwc1 $f10, 0xad4($v0) -/* 068290 80067690 AFA20028 */ sw $v0, 0x28($sp) -/* 068294 80067694 46105482 */ mul.s $f18, $f10, $f16 -/* 068298 80067698 44069000 */ mfc1 $a2, $f18 -/* 06829C 8006769C 0C0194B5 */ jal func_800652D4 -/* 0682A0 800676A0 00000000 */ nop -/* 0682A4 800676A4 8FA20028 */ lw $v0, 0x28($sp) -/* 0682A8 800676A8 24010001 */ li $at, 1 -/* 0682AC 800676AC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015 -/* 0682B0 800676B0 94590AD8 */ lhu $t9, 0xad8($v0) -/* 0682B4 800676B4 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298 -/* 0682B8 800676B8 3C180600 */ lui $t8, 0x600 -/* 0682BC 800676BC 17210053 */ bne $t9, $at, .L8006780C -/* 0682C0 800676C0 3C0F0D01 */ lui $t7, 0xd01 -/* 0682C4 800676C4 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015 -/* 0682C8 800676C8 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298 -/* 0682CC 800676CC 8C620000 */ lw $v0, ($v1) -/* 0682D0 800676D0 3C0E0D01 */ lui $t6, %hi(D_0D008DB8) # $t6, 0xd01 -/* 0682D4 800676D4 25CE8DB8 */ addiu $t6, %lo(D_0D008DB8) # addiu $t6, $t6, -0x7248 -/* 0682D8 800676D8 244F0008 */ addiu $t7, $v0, 8 -/* 0682DC 800676DC AC6F0000 */ sw $t7, ($v1) -/* 0682E0 800676E0 3C180600 */ lui $t8, 0x600 -/* 0682E4 800676E4 AC580000 */ sw $t8, ($v0) -/* 0682E8 800676E8 AC4E0004 */ sw $t6, 4($v0) -/* 0682EC 800676EC 8C620000 */ lw $v0, ($v1) -/* 0682F0 800676F0 3C180D03 */ lui $t8, %hi(D_0D02AC58) # $t8, 0xd03 -/* 0682F4 800676F4 2718AC58 */ addiu $t8, %lo(D_0D02AC58) # addiu $t8, $t8, -0x53a8 -/* 0682F8 800676F8 24590008 */ addiu $t9, $v0, 8 -/* 0682FC 800676FC AC790000 */ sw $t9, ($v1) -/* 068300 80067700 3C0FFD90 */ lui $t7, 0xfd90 -/* 068304 80067704 AC4F0000 */ sw $t7, ($v0) -/* 068308 80067708 AC580004 */ sw $t8, 4($v0) -/* 06830C 8006770C 8C620000 */ lw $v0, ($v1) -/* 068310 80067710 3C0F0700 */ lui $t7, 0x700 -/* 068314 80067714 3C19F590 */ lui $t9, 0xf590 -/* 068318 80067718 244E0008 */ addiu $t6, $v0, 8 -/* 06831C 8006771C AC6E0000 */ sw $t6, ($v1) -/* 068320 80067720 AC4F0004 */ sw $t7, 4($v0) -/* 068324 80067724 AC590000 */ sw $t9, ($v0) -/* 068328 80067728 8C620000 */ lw $v0, ($v1) -/* 06832C 8006772C 3C0EE600 */ lui $t6, 0xe600 -/* 068330 80067730 3C0FF300 */ lui $t7, 0xf300 -/* 068334 80067734 24580008 */ addiu $t8, $v0, 8 -/* 068338 80067738 AC780000 */ sw $t8, ($v1) -/* 06833C 8006773C AC400004 */ sw $zero, 4($v0) -/* 068340 80067740 AC4E0000 */ sw $t6, ($v0) -/* 068344 80067744 8C620000 */ lw $v0, ($v1) -/* 068348 80067748 3C18071F */ lui $t8, (0x071FF200 >> 16) # lui $t8, 0x71f -/* 06834C 8006774C 3718F200 */ ori $t8, (0x071FF200 & 0xFFFF) # ori $t8, $t8, 0xf200 -/* 068350 80067750 24590008 */ addiu $t9, $v0, 8 -/* 068354 80067754 AC790000 */ sw $t9, ($v1) -/* 068358 80067758 AC580004 */ sw $t8, 4($v0) -/* 06835C 8006775C AC4F0000 */ sw $t7, ($v0) -/* 068360 80067760 8C620000 */ lw $v0, ($v1) -/* 068364 80067764 3C19E700 */ lui $t9, 0xe700 -/* 068368 80067768 3C18F588 */ lui $t8, (0xF5880800 >> 16) # lui $t8, 0xf588 -/* 06836C 8006776C 244E0008 */ addiu $t6, $v0, 8 -/* 068370 80067770 AC6E0000 */ sw $t6, ($v1) -/* 068374 80067774 AC400004 */ sw $zero, 4($v0) -/* 068378 80067778 AC590000 */ sw $t9, ($v0) -/* 06837C 8006777C 8C620000 */ lw $v0, ($v1) -/* 068380 80067780 37180800 */ ori $t8, (0xF5880800 & 0xFFFF) # ori $t8, $t8, 0x800 -/* 068384 80067784 3C19F200 */ lui $t9, 0xf200 -/* 068388 80067788 244F0008 */ addiu $t7, $v0, 8 -/* 06838C 8006778C AC6F0000 */ sw $t7, ($v1) -/* 068390 80067790 AC400004 */ sw $zero, 4($v0) -/* 068394 80067794 AC580000 */ sw $t8, ($v0) -/* 068398 80067798 8C620000 */ lw $v0, ($v1) -/* 06839C 8006779C 3C180007 */ lui $t8, (0x0007C07C >> 16) # lui $t8, 7 -/* 0683A0 800677A0 3718C07C */ ori $t8, (0x0007C07C & 0xFFFF) # ori $t8, $t8, 0xc07c -/* 0683A4 800677A4 244E0008 */ addiu $t6, $v0, 8 -/* 0683A8 800677A8 AC6E0000 */ sw $t6, ($v1) -/* 0683AC 800677AC AFA20054 */ sw $v0, 0x54($sp) -/* 0683B0 800677B0 AC590000 */ sw $t9, ($v0) -/* 0683B4 800677B4 AC580004 */ sw $t8, 4($v0) -/* 0683B8 800677B8 24190060 */ li $t9, 96 -/* 0683BC 800677BC 240E005F */ li $t6, 95 -/* 0683C0 800677C0 AFAE0010 */ sw $t6, 0x10($sp) -/* 0683C4 800677C4 AFB90018 */ sw $t9, 0x18($sp) -/* 0683C8 800677C8 AFA00014 */ sw $zero, 0x14($sp) -/* 0683CC 800677CC 240400FF */ li $a0, 255 -/* 0683D0 800677D0 240500FF */ li $a1, 255 -/* 0683D4 800677D4 240600DF */ li $a2, 223 -/* 0683D8 800677D8 0C012DCB */ jal func_8004B72C -/* 0683DC 800677DC 240700FF */ li $a3, 255 -/* 0683E0 800677E0 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015 -/* 0683E4 800677E4 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298 -/* 0683E8 800677E8 8C620000 */ lw $v0, ($v1) -/* 0683EC 800677EC 3C0E0D01 */ lui $t6, %hi(D_0D008E70) # $t6, 0xd01 -/* 0683F0 800677F0 25CE8E70 */ addiu $t6, %lo(D_0D008E70) # addiu $t6, $t6, -0x7190 -/* 0683F4 800677F4 24580008 */ addiu $t8, $v0, 8 -/* 0683F8 800677F8 AC780000 */ sw $t8, ($v1) -/* 0683FC 800677FC 3C0F0600 */ lui $t7, %hi(D_05FF8DB8) # $t7, 0x600 -/* 068400 80067800 AC4F0000 */ sw $t7, ($v0) -/* 068404 80067804 1000004E */ b .L80067940 -/* 068408 80067808 AC4E0004 */ sw $t6, 4($v0) -.L8006780C: -/* 06840C 8006780C 8C620000 */ lw $v0, ($v1) -/* 068410 80067810 25EF8DB8 */ addiu $t7, %lo(D_05FF8DB8) # addiu $t7, $t7, -0x7248 -/* 068414 80067814 240400FF */ li $a0, 255 -/* 068418 80067818 24590008 */ addiu $t9, $v0, 8 -/* 06841C 8006781C AC790000 */ sw $t9, ($v1) -/* 068420 80067820 AC4F0004 */ sw $t7, 4($v0) -/* 068424 80067824 AC580000 */ sw $t8, ($v0) -/* 068428 80067828 8C620000 */ lw $v0, ($v1) -/* 06842C 8006782C 3C180D03 */ lui $t8, %hi(D_0D02AC58) # $t8, 0xd03 -/* 068430 80067830 2718AC58 */ addiu $t8, %lo(D_0D02AC58) # addiu $t8, $t8, -0x53a8 -/* 068434 80067834 244E0008 */ addiu $t6, $v0, 8 -/* 068438 80067838 AC6E0000 */ sw $t6, ($v1) -/* 06843C 8006783C 3C19FD90 */ lui $t9, 0xfd90 -/* 068440 80067840 AC590000 */ sw $t9, ($v0) -/* 068444 80067844 AC580004 */ sw $t8, 4($v0) -/* 068448 80067848 8C620000 */ lw $v0, ($v1) -/* 06844C 8006784C 3C190700 */ lui $t9, 0x700 -/* 068450 80067850 3C0EF590 */ lui $t6, 0xf590 -/* 068454 80067854 244F0008 */ addiu $t7, $v0, 8 -/* 068458 80067858 AC6F0000 */ sw $t7, ($v1) -/* 06845C 8006785C AC590004 */ sw $t9, 4($v0) -/* 068460 80067860 AC4E0000 */ sw $t6, ($v0) -/* 068464 80067864 8C620000 */ lw $v0, ($v1) -/* 068468 80067868 3C0FE600 */ lui $t7, 0xe600 -/* 06846C 8006786C 3C19F300 */ lui $t9, 0xf300 -/* 068470 80067870 24580008 */ addiu $t8, $v0, 8 -/* 068474 80067874 AC780000 */ sw $t8, ($v1) -/* 068478 80067878 AC400004 */ sw $zero, 4($v0) -/* 06847C 8006787C AC4F0000 */ sw $t7, ($v0) -/* 068480 80067880 8C620000 */ lw $v0, ($v1) -/* 068484 80067884 3C18071F */ lui $t8, (0x071FF200 >> 16) # lui $t8, 0x71f -/* 068488 80067888 3718F200 */ ori $t8, (0x071FF200 & 0xFFFF) # ori $t8, $t8, 0xf200 -/* 06848C 8006788C 244E0008 */ addiu $t6, $v0, 8 -/* 068490 80067890 AC6E0000 */ sw $t6, ($v1) -/* 068494 80067894 AC580004 */ sw $t8, 4($v0) -/* 068498 80067898 AC590000 */ sw $t9, ($v0) -/* 06849C 8006789C 8C620000 */ lw $v0, ($v1) -/* 0684A0 800678A0 3C0EE700 */ lui $t6, 0xe700 -/* 0684A4 800678A4 3C18F588 */ lui $t8, (0xF5880800 >> 16) # lui $t8, 0xf588 -/* 0684A8 800678A8 244F0008 */ addiu $t7, $v0, 8 -/* 0684AC 800678AC AC6F0000 */ sw $t7, ($v1) -/* 0684B0 800678B0 AC400004 */ sw $zero, 4($v0) -/* 0684B4 800678B4 AC4E0000 */ sw $t6, ($v0) -/* 0684B8 800678B8 8C620000 */ lw $v0, ($v1) -/* 0684BC 800678BC 37180800 */ ori $t8, (0xF5880800 & 0xFFFF) # ori $t8, $t8, 0x800 -/* 0684C0 800678C0 3C0EF200 */ lui $t6, 0xf200 -/* 0684C4 800678C4 24590008 */ addiu $t9, $v0, 8 -/* 0684C8 800678C8 AC790000 */ sw $t9, ($v1) -/* 0684CC 800678CC AC400004 */ sw $zero, 4($v0) -/* 0684D0 800678D0 AC580000 */ sw $t8, ($v0) -/* 0684D4 800678D4 8C620000 */ lw $v0, ($v1) -/* 0684D8 800678D8 3C180007 */ lui $t8, (0x0007C07C >> 16) # lui $t8, 7 -/* 0684DC 800678DC 3718C07C */ ori $t8, (0x0007C07C & 0xFFFF) # ori $t8, $t8, 0xc07c -/* 0684E0 800678E0 244F0008 */ addiu $t7, $v0, 8 -/* 0684E4 800678E4 AC6F0000 */ sw $t7, ($v1) -/* 0684E8 800678E8 AFA20030 */ sw $v0, 0x30($sp) -/* 0684EC 800678EC AC4E0000 */ sw $t6, ($v0) -/* 0684F0 800678F0 AC580004 */ sw $t8, 4($v0) -/* 0684F4 800678F4 240E0060 */ li $t6, 96 -/* 0684F8 800678F8 240F005F */ li $t7, 95 -/* 0684FC 800678FC AFAF0010 */ sw $t7, 0x10($sp) -/* 068500 80067900 AFAE0018 */ sw $t6, 0x18($sp) -/* 068504 80067904 AFA00014 */ sw $zero, 0x14($sp) -/* 068508 80067908 240500FF */ li $a1, 255 -/* 06850C 8006790C 240600DF */ li $a2, 223 -/* 068510 80067910 0C012DCB */ jal func_8004B72C -/* 068514 80067914 240700FF */ li $a3, 255 -/* 068518 80067918 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015 -/* 06851C 8006791C 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298 -/* 068520 80067920 8C620000 */ lw $v0, ($v1) -/* 068524 80067924 3C0F0D01 */ lui $t7, %hi(D_0D008E48) # $t7, 0xd01 -/* 068528 80067928 25EF8E48 */ addiu $t7, %lo(D_0D008E48) # addiu $t7, $t7, -0x71b8 -/* 06852C 8006792C 24580008 */ addiu $t8, $v0, 8 -/* 068530 80067930 AC780000 */ sw $t8, ($v1) -/* 068534 80067934 3C190600 */ lui $t9, 0x600 -/* 068538 80067938 AC590000 */ sw $t9, ($v0) -/* 06853C 8006793C AC4F0004 */ sw $t7, 4($v0) -.L80067940: -/* 068540 80067940 3C028016 */ lui $v0, %hi(gMatrixEffectCount) # $v0, 0x8016 -/* 068544 80067944 24424AF0 */ addiu $v0, %lo(gMatrixEffectCount) # addiu $v0, $v0, 0x4af0 -/* 068548 80067948 844E0000 */ lh $t6, ($v0) -/* 06854C 8006794C 25D80001 */ addiu $t8, $t6, 1 -/* 068550 80067950 A4580000 */ sh $t8, ($v0) -/* 068554 80067954 8FBF0024 */ lw $ra, 0x24($sp) -.L80067958: -/* 068558 80067958 27BD0098 */ addiu $sp, $sp, 0x98 -/* 06855C 8006795C 03E00008 */ jr $ra -/* 068560 80067960 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_8009F5E0.s b/asm/non_matchings/code_80091750/func_8009F5E0.s index dd6835d13..31e51e6a6 100644 --- a/asm/non_matchings/code_80091750/func_8009F5E0.s +++ b/asm/non_matchings/code_80091750/func_8009F5E0.s @@ -1207,13 +1207,13 @@ glabel L800A0578 /* 0A1188 800A0588 3C013F80 */ li $at, 0x3F800000 # 1.000000 /* 0A118C 800A058C 44814000 */ mtc1 $at, $f8 /* 0A1190 800A0590 C62A0024 */ lwc1 $f10, 0x24($s1) -/* 0A1194 800A0594 3C06800E */ lui $a2, %hi(D_800E7500) +/* 0A1194 800A0594 3C06800E */ lui $a2, %hi(gCupNames) /* 0A1198 800A0598 000FC080 */ sll $t8, $t7, 2 /* 0A119C 800A059C 00D83021 */ addu $a2, $a2, $t8 /* 0A11A0 800A05A0 8E24000C */ lw $a0, 0xc($s1) /* 0A11A4 800A05A4 8E250010 */ lw $a1, 0x10($s1) /* 0A11A8 800A05A8 8E27001C */ lw $a3, 0x1c($s1) -/* 0A11AC 800A05AC 8CC67500 */ lw $a2, %lo(D_800E7500)($a2) +/* 0A11AC 800A05AC 8CC67500 */ lw $a2, %lo(gCupNames)($a2) /* 0A11B0 800A05B0 E7A80014 */ swc1 $f8, 0x14($sp) /* 0A11B4 800A05B4 0C024DAE */ jal func_800936B8 /* 0A11B8 800A05B8 E7AA0010 */ swc1 $f10, 0x10($sp) diff --git a/asm/non_matchings/code_80091750/func_800A5084.s b/asm/non_matchings/code_80091750/func_800A5084.s index 3a806038d..353093ea8 100644 --- a/asm/non_matchings/code_80091750/func_800A5084.s +++ b/asm/non_matchings/code_80091750/func_800A5084.s @@ -55,9 +55,9 @@ glabel func_800A5084 /* 0A5D50 800A5150 0018C940 */ sll $t9, $t8, 5 /* 0A5D54 800A5154 82580000 */ lb $t8, ($s2) /* 0A5D58 800A5158 000B60C0 */ sll $t4, $t3, 3 -/* 0A5D5C 800A515C 3C14800E */ lui $s4, %hi(D_800E7500) # $s4, 0x800e +/* 0A5D5C 800A515C 3C14800E */ lui $s4, %hi(gCupNames) # $s4, 0x800e /* 0A5D60 800A5160 032C6821 */ addu $t5, $t9, $t4 -/* 0A5D64 800A5164 26947500 */ addiu $s4, %lo(D_800E7500) # addiu $s4, $s4, 0x7500 +/* 0A5D64 800A5164 26947500 */ addiu $s4, %lo(gCupNames) # addiu $s4, $s4, 0x7500 /* 0A5D68 800A5168 3C0F800F */ lui $t7, %hi(D_800E85C0) # $t7, 0x800f /* 0A5D6C 800A516C 00185880 */ sll $t3, $t8, 2 /* 0A5D70 800A5170 25EF85C0 */ addiu $t7, %lo(D_800E85C0) # addiu $t7, $t7, -0x7a40 diff --git a/asm/non_matchings/hud_renderer/func_80056BF0.s b/asm/non_matchings/hud_renderer/func_80056BF0.s deleted file mode 100644 index 30de05d84..000000000 --- a/asm/non_matchings/hud_renderer/func_80056BF0.s +++ /dev/null @@ -1,146 +0,0 @@ -glabel func_80056BF0 -/* 0577F0 80056BF0 27BDFF58 */ addiu $sp, $sp, -0xa8 -/* 0577F4 80056BF4 AFB00030 */ sw $s0, 0x30($sp) -/* 0577F8 80056BF8 00808025 */ move $s0, $a0 -/* 0577FC 80056BFC 00107880 */ sll $t7, $s0, 2 -/* 057800 80056C00 01F07821 */ addu $t7, $t7, $s0 -/* 057804 80056C04 000F7880 */ sll $t7, $t7, 2 -/* 057808 80056C08 01F07821 */ addu $t7, $t7, $s0 -/* 05780C 80056C0C 3C188016 */ lui $t8, %hi(gBombKarts) # $t8, 0x8016 -/* 057810 80056C10 27183DE8 */ addiu $t8, %lo(gBombKarts) # addiu $t8, $t8, 0x3de8 -/* 057814 80056C14 000F7880 */ sll $t7, $t7, 2 -/* 057818 80056C18 3C048018 */ lui $a0, %hi(D_80183E40) # $a0, 0x8018 -/* 05781C 80056C1C 01F8C821 */ addu $t9, $t7, $t8 -/* 057820 80056C20 24843E40 */ addiu $a0, %lo(D_80183E40) # addiu $a0, $a0, 0x3e40 -/* 057824 80056C24 AFBF0034 */ sw $ra, 0x34($sp) -/* 057828 80056C28 272B0054 */ addiu $t3, $t9, 0x54 -/* 05782C 80056C2C 27AE0040 */ addiu $t6, $sp, 0x40 -.L80056C30: -/* 057830 80056C30 8F210000 */ lw $at, ($t9) -/* 057834 80056C34 2739000C */ addiu $t9, $t9, 0xc -/* 057838 80056C38 25CE000C */ addiu $t6, $t6, 0xc -/* 05783C 80056C3C ADC1FFF4 */ sw $at, -0xc($t6) -/* 057840 80056C40 8F21FFF8 */ lw $at, -8($t9) -/* 057844 80056C44 ADC1FFF8 */ sw $at, -8($t6) -/* 057848 80056C48 8F21FFFC */ lw $at, -4($t9) -/* 05784C 80056C4C 172BFFF8 */ bne $t9, $t3, .L80056C30 -/* 057850 80056C50 ADC1FFFC */ sw $at, -4($t6) -/* 057854 80056C54 24010006 */ li $at, 6 -/* 057858 80056C58 3C028016 */ lui $v0, %hi(D_801655CC) # $v0, 0x8016 -/* 05785C 80056C5C 8C4255CC */ lw $v0, %lo(D_801655CC)($v0) -/* 057860 80056C60 C7A60044 */ lwc1 $f6, 0x44($sp) -/* 057864 80056C64 44805000 */ mtc1 $zero, $f10 -/* 057868 80056C68 0041001B */ divu $zero, $v0, $at -/* 05786C 80056C6C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 057870 80056C70 44815800 */ mtc1 $at, $f11 -/* 057874 80056C74 46003221 */ cvt.d.s $f8, $f6 -/* 057878 80056C78 00006010 */ mfhi $t4 -/* 05787C 80056C7C 462A4400 */ add.d $f16, $f8, $f10 -/* 057880 80056C80 3C03800E */ lui $v1, %hi(D_800E471C) -/* 057884 80056C84 C7A40040 */ lwc1 $f4, 0x40($sp) -/* 057888 80056C88 006C1821 */ addu $v1, $v1, $t4 -/* 05788C 80056C8C 9063471C */ lbu $v1, %lo(D_800E471C)($v1) -/* 057890 80056C90 462084A0 */ cvt.s.d $f18, $f16 -/* 057894 80056C94 3C0F0D03 */ lui $t7, %hi(D_0D029858) # $t7, 0xd03 -/* 057898 80056C98 E4840000 */ swc1 $f4, ($a0) -/* 05789C 80056C9C C7A40048 */ lwc1 $f4, 0x48($sp) -/* 0578A0 80056CA0 25EF9858 */ addiu $t7, %lo(D_0D029858) # addiu $t7, $t7, -0x67a8 -/* 0578A4 80056CA4 3C0A0D00 */ lui $t2, %hi(D_0D005AE0) # $t2, 0xd00 -/* 0578A8 80056CA8 00036A80 */ sll $t5, $v1, 0xa -/* 0578AC 80056CAC 01AFC021 */ addu $t8, $t5, $t7 -/* 0578B0 80056CB0 254A5AE0 */ addiu $t2, %lo(D_0D005AE0) # addiu $t2, $t2, 0x5ae0 -/* 0578B4 80056CB4 3C058018 */ lui $a1, %hi(D_80183E80) # $a1, 0x8018 -/* 0578B8 80056CB8 3C070D03 */ lui $a3, %hi(D_0D02A858) # $a3, 0xd03 -/* 0578BC 80056CBC 24090020 */ li $t1, 32 -/* 0578C0 80056CC0 240B0020 */ li $t3, 32 -/* 0578C4 80056CC4 24190020 */ li $t9, 32 -/* 0578C8 80056CC8 240E0020 */ li $t6, 32 -/* 0578CC 80056CCC E4920004 */ swc1 $f18, 4($a0) -/* 0578D0 80056CD0 AFAE0024 */ sw $t6, 0x24($sp) -/* 0578D4 80056CD4 AFB90020 */ sw $t9, 0x20($sp) -/* 0578D8 80056CD8 AFAB001C */ sw $t3, 0x1c($sp) -/* 0578DC 80056CDC AFA90018 */ sw $t1, 0x18($sp) -/* 0578E0 80056CE0 24E7A858 */ addiu $a3, %lo(D_0D02A858) # addiu $a3, $a3, -0x57a8 -/* 0578E4 80056CE4 24A53E80 */ addiu $a1, %lo(D_80183E80) # addiu $a1, $a1, 0x3e80 -/* 0578E8 80056CE8 AFAA0014 */ sw $t2, 0x14($sp) -/* 0578EC 80056CEC AFB80010 */ sw $t8, 0x10($sp) -/* 0578F0 80056CF0 3C063E80 */ lui $a2, 0x3e80 -/* 0578F4 80056CF4 0C01202D */ jal func_800480B4 -/* 0578F8 80056CF8 E4840008 */ swc1 $f4, 8($a0) -/* 0578FC 80056CFC 3C088015 */ lui $t0, %hi(gDisplayListHead) # $t0, 0x8015 -/* 057900 80056D00 25080298 */ addiu $t0, %lo(gDisplayListHead) # addiu $t0, $t0, 0x298 -/* 057904 80056D04 8D030000 */ lw $v1, ($t0) -/* 057908 80056D08 3C108019 */ lui $s0, %hi(D_8018D400) # $s0, 0x8019 -/* 05790C 80056D0C 8E10D400 */ lw $s0, %lo(D_8018D400)($s0) -/* 057910 80056D10 3C0F0D00 */ lui $t7, %hi(D_0D007B00) # $t7, 0xd00 -/* 057914 80056D14 246C0008 */ addiu $t4, $v1, 8 -/* 057918 80056D18 AD0C0000 */ sw $t4, ($t0) -/* 05791C 80056D1C 25EF7B00 */ addiu $t7, %lo(D_0D007B00) # addiu $t7, $t7, 0x7b00 -/* 057920 80056D20 3C0D0600 */ lui $t5, 0x600 -/* 057924 80056D24 00002025 */ move $a0, $zero -/* 057928 80056D28 00002825 */ move $a1, $zero -/* 05792C 80056D2C 00003025 */ move $a2, $zero -/* 057930 80056D30 240700FF */ li $a3, 255 -/* 057934 80056D34 AC6D0000 */ sw $t5, ($v1) -/* 057938 80056D38 0C012D05 */ jal func_8004B414 -/* 05793C 80056D3C AC6F0004 */ sw $t7, 4($v1) -/* 057940 80056D40 C7A60044 */ lwc1 $f6, 0x44($sp) -/* 057944 80056D44 3C014014 */ li $at, 0x40140000 # 2.312500 -/* 057948 80056D48 44815800 */ mtc1 $at, $f11 -/* 05794C 80056D4C 44805000 */ mtc1 $zero, $f10 -/* 057950 80056D50 46003221 */ cvt.d.s $f8, $f6 -/* 057954 80056D54 3C018018 */ lui $at, %hi(D_80183E44) # $at, 0x8018 -/* 057958 80056D58 462A4400 */ add.d $f16, $f8, $f10 -/* 05795C 80056D5C 240600FF */ li $a2, 255 -/* 057960 80056D60 462084A0 */ cvt.s.d $f18, $f16 -/* 057964 80056D64 E4323E44 */ swc1 $f18, %lo(D_80183E44)($at) -/* 057968 80056D68 3C018018 */ lui $at, %hi(D_80183E84) # $at, 0x8018 -/* 05796C 80056D6C A4203E84 */ sh $zero, %lo(D_80183E84)($at) -/* 057970 80056D70 24010003 */ li $at, 3 -/* 057974 80056D74 0201001A */ div $zero, $s0, $at -/* 057978 80056D78 00002010 */ mfhi $a0 -/* 05797C 80056D7C 06010004 */ bgez $s0, .L80056D90 -/* 057980 80056D80 32050003 */ andi $a1, $s0, 3 -/* 057984 80056D84 10A00002 */ beqz $a1, .L80056D90 -/* 057988 80056D88 00000000 */ nop -/* 05798C 80056D8C 24A5FFFC */ addiu $a1, $a1, -4 -.L80056D90: -/* 057990 80056D90 0C0158B9 */ jal func_800562E4 -/* 057994 80056D94 00000000 */ nop -/* 057998 80056D98 24186000 */ li $t8, 24576 -/* 05799C 80056D9C 3C018018 */ lui $at, %hi(D_80183E84) # $at, 0x8018 -/* 0579A0 80056DA0 26020001 */ addiu $v0, $s0, 1 -/* 0579A4 80056DA4 A4383E84 */ sh $t8, %lo(D_80183E84)($at) -/* 0579A8 80056DA8 24010003 */ li $at, 3 -/* 0579AC 80056DAC 0041001A */ div $zero, $v0, $at -/* 0579B0 80056DB0 00002010 */ mfhi $a0 -/* 0579B4 80056DB4 240600FF */ li $a2, 255 -/* 0579B8 80056DB8 04410004 */ bgez $v0, .L80056DCC -/* 0579BC 80056DBC 30450003 */ andi $a1, $v0, 3 -/* 0579C0 80056DC0 10A00002 */ beqz $a1, .L80056DCC -/* 0579C4 80056DC4 00000000 */ nop -/* 0579C8 80056DC8 24A5FFFC */ addiu $a1, $a1, -4 -.L80056DCC: -/* 0579CC 80056DCC 0C0158B9 */ jal func_800562E4 -/* 0579D0 80056DD0 00000000 */ nop -/* 0579D4 80056DD4 340AA000 */ li $t2, 40960 -/* 0579D8 80056DD8 3C018018 */ lui $at, %hi(D_80183E84) # $at, 0x8018 -/* 0579DC 80056DDC 26020002 */ addiu $v0, $s0, 2 -/* 0579E0 80056DE0 A42A3E84 */ sh $t2, %lo(D_80183E84)($at) -/* 0579E4 80056DE4 24010003 */ li $at, 3 -/* 0579E8 80056DE8 0041001A */ div $zero, $v0, $at -/* 0579EC 80056DEC 00002010 */ mfhi $a0 -/* 0579F0 80056DF0 240600FF */ li $a2, 255 -/* 0579F4 80056DF4 04410004 */ bgez $v0, .L80056E08 -/* 0579F8 80056DF8 30450003 */ andi $a1, $v0, 3 -/* 0579FC 80056DFC 10A00002 */ beqz $a1, .L80056E08 -/* 057A00 80056E00 00000000 */ nop -/* 057A04 80056E04 24A5FFFC */ addiu $a1, $a1, -4 -.L80056E08: -/* 057A08 80056E08 0C0158B9 */ jal func_800562E4 -/* 057A0C 80056E0C 00000000 */ nop -/* 057A10 80056E10 8FBF0034 */ lw $ra, 0x34($sp) -/* 057A14 80056E14 8FB00030 */ lw $s0, 0x30($sp) -/* 057A18 80056E18 27BD00A8 */ addiu $sp, $sp, 0xa8 -/* 057A1C 80056E1C 03E00008 */ jr $ra -/* 057A20 80056E20 00000000 */ nop diff --git a/ctx_includes.c b/ctx_includes.c index 678e4fe60..746a865f0 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -1,11 +1,5 @@ #include "courses/all_course_data.h" #include "courses/all_course_packed.h" -#include "include/libc/math.h" -#include "include/libc/stdarg.h" -#include "include/libc/stddef.h" -#include "include/libc/stdio.h" -#include "include/libc/stdlib.h" -#include "include/libc/string.h" #include "include/actor_types.h" #include "include/bomb_kart.h" #include "include/common_structs.h" @@ -14,19 +8,16 @@ #include "include/defines.h" #include "include/functions.h" #include "include/global.h" +#include "include/hardcoded_segments.h" #include "include/kart_attributes.h" +#include "include/libc/math.h" +#include "include/libc/stdarg.h" +#include "include/libc/stddef.h" +#include "include/libc/stdio.h" +#include "include/libc/stdlib.h" +#include "include/libc/string.h" #include "include/macros.h" #include "include/objects.h" -#include "include/save_data.h" -#include "include/segments.h" -#include "include/hardcoded_segments.h" -#include "include/sounds.h" -#include "include/trig_tables.h" -#include "include/types.h" -#include "include/ultra64.h" -#include "include/variables.h" -#include "include/vehicles.h" -#include "include/waypoints.h" #include "include/PR/abi.h" #include "include/PR/gbi.h" #include "include/PR/gs2dex.h" @@ -55,6 +46,57 @@ #include "include/PR/sptask.h" #include "include/PR/ucode.h" #include "include/PR/ultratypes.h" +#include "include/save_data.h" +#include "include/segments.h" +#include "include/sounds.h" +#include "include/trig_tables.h" +#include "include/types.h" +#include "include/ultra64.h" +#include "include/variables.h" +#include "include/vehicles.h" +#include "include/waypoints.h" +#include "src/audio/data.h" +#include "src/audio/effects.h" +#include "src/audio/external.h" +#include "src/audio/heap.h" +#include "src/audio/internal.h" +#include "src/audio/load.h" +#include "src/audio/playback.h" +#include "src/audio/port_eu.h" +#include "src/audio/seqplayer.h" +#include "src/audio/synthesis.h" +#include "src/camera.h" +#include "src/camera_junk.h" +#include "src/code_800029B0.h" +#include "src/code_80004740.h" +#include "src/code_80005FD0.h" +#include "src/code_8001F980.h" +#include "src/code_8003DC40.h" +#include "src/code_80057C60.h" +#include "src/code_8006E9C0.h" +#include "src/code_80071F00.h" +#include "src/code_80086E70.h" +#include "src/code_8008C1D0.h" +#include "src/code_80091440.h" +#include "src/code_80091750.h" +#include "src/code_800AF9B0.h" +#include "src/code_800B45E0.h" +#include "src/common_textures.h" +#include "src/data_800E45C0.h" +#include "src/data_800E8700.h" +#include "src/data_segment2.h" +#include "src/ending/ceremony_and_credits.h" +#include "src/ending/code_80280000.h" +#include "src/ending/code_80281780.h" +#include "src/ending/code_80281C40.h" +#include "src/ending/credits.h" +#include "src/ending/podium_ceremony_actors.h" +#include "src/framebuffers.h" +#include "src/hud_renderer.h" +#include "src/kart_dma.h" +#include "src/main.h" +#include "src/math_util_2.h" +#include "src/menus.h" #include "src/os/bstring.h" #include "src/os/controller.h" #include "src/os/hardware.h" @@ -66,56 +108,16 @@ #include "src/os/osint.h" #include "src/os/piint.h" #include "src/os/printf.h" -#include "src/audio/data.h" -#include "src/audio/effects.h" -#include "src/audio/external.h" -#include "src/audio/heap.h" -#include "src/audio/internal.h" -#include "src/audio/load.h" -#include "src/audio/playback.h" -#include "src/audio/port_eu.h" -#include "src/audio/seqplayer.h" -#include "src/audio/synthesis.h" +#include "src/player_controller.h" +#include "src/profiler.h" #include "src/racing/actors.h" #include "src/racing/actors_extended.h" -#include "src/camera.h" -#include "src/camera_junk.h" -#include "src/ending/ceremony_and_credits.h" -#include "src/common_textures.h" -#include "src/ending/credits.h" -#include "src/data_segment2.h" -#include "src/framebuffers.h" -#include "src/kart_dma.h" -#include "src/main.h" +#include "src/racing/collision.h" #include "src/racing/math_util.h" -#include "src/math_util_2.h" #include "src/racing/memory.h" -#include "src/menus.h" -#include "src/ending/podium_ceremony_actors.h" -#include "src/profiler.h" #include "src/racing/race_logic.h" #include "src/racing/render_courses.h" #include "src/racing/skybox_and_splitscreen.h" #include "src/spawn_players.h" #include "src/staff_ghosts.h" #include "src/textures.h" -#include "src/code_800029B0.h" -#include "src/code_80004740.h" -#include "src/code_80005FD0.h" -#include "src/code_8001F980.h" -#include "src/player_controller.h" -#include "src/code_8003DC40.h" -#include "src/hud_renderer.h" -#include "src/code_80057C60.h" -#include "src/code_8006E9C0.h" -#include "src/code_80071F00.h" -#include "src/code_80086E70.h" -#include "src/code_8008C1D0.h" -#include "src/code_80091440.h" -#include "src/code_80091750.h" -#include "src/code_800AF9B0.h" -#include "src/code_800B45E0.h" -#include "src/ending/code_80280000.h" -#include "src/ending/code_80281780.h" -#include "src/ending/code_80281C40.h" -#include "src/racing/collision.h" diff --git a/include/functions.h b/include/functions.h index 6c5c2f597..0ea4f7b91 100644 --- a/include/functions.h +++ b/include/functions.h @@ -8,10 +8,4 @@ void mio0decode(u8* arg0, u8* arg1); // Unused mio0decode function. void func_80040030(u8* arg0, u8* arg1); -void func_8000F628(void); -void func_8006B7E4(Player* player, s8 arg1); -void func_8005D290(void); - - - #endif diff --git a/include/variables.h b/include/variables.h index 47d7e7502..fbf8b180c 100644 --- a/include/variables.h +++ b/include/variables.h @@ -6,30 +6,16 @@ #include "common_structs.h" extern s8 gCharacterIdByGPOverallRank[8]; // D_8018D9D0 -extern f32 gCourseCompletionPercentByPlayerId[8]; // D_801644D0 -extern f32 gCourseCompletionPercentByRank[8]; // D_80162FD8 -extern char *gCupNames[]; // D_800E7500 extern s16 gCurrentCourseId; // D_800DC5A0 -extern s8 gGPPointsByCharacterId[8]; // D_8018D9C8 extern s16 gGPCurrentRacePlayerIdByRank[8]; // D_80164360 -extern s8 gHumanPlayerCount; - -extern s32 gIsMirrorMode; // D_800DC604 - extern f32 gLapCompletionPercentByPlayerId[8]; // D_801644A8 extern s32 gLapCountByPlayerId[8]; // D_80164390 -extern s32 gMenuSelection; // D_800E86A0 - -// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order -extern const u8 gPerCupIndexByCourseId[]; // D_800EFD50 extern s32 gPlayerIsThrottleActive[]; // D_801653E0 extern s32 gGPCurrentRaceRankByPlayerId[]; // D_801643B8 -extern char *gSoundModeNames[NUM_SOUND_MODES]; // D_800E7710 - extern struct_8018CA70_entry D_8018CA70[]; extern Mtx D_80183D60[]; @@ -38,17 +24,6 @@ extern struct_D_8018CE10 D_8018CE10[]; extern Vec3f D_80165070[]; -extern Vp D_802B8880[]; - -extern Gfx D_0D0077A0[]; - -extern u16 gIsGamePaused; - -extern u16 D_80162DD8; -extern s32 D_80162DE0; -extern s32 D_80162DE4; -extern s32 D_80162DE8; - extern f32 D_80164510[]; extern s32 D_80164A28; extern s16 gMatrixEffectCount; diff --git a/src/camera.c b/src/camera.c index 0549976cb..3e0142df9 100644 --- a/src/camera.c +++ b/src/camera.c @@ -29,7 +29,6 @@ Camera *camera4 = &cameras[3]; // s32 D_80164A2C; // f32 D_8016524C; <- could maybe, maybe be part of spawn_players' bss stuff? -void func_80014DE4(s32); extern f32 D_80164498[]; extern s16 D_80164678[]; extern f32 D_801649D8[]; // f32[4] diff --git a/src/code_800029B0.h b/src/code_800029B0.h index e5e3946b2..a3849c98c 100644 --- a/src/code_800029B0.h +++ b/src/code_800029B0.h @@ -17,6 +17,7 @@ extern struct UnkStruct_800DC5EC *D_800DC5EC; extern struct UnkStruct_800DC5EC *D_800DC5F0; extern struct UnkStruct_800DC5EC *D_800DC5F4; extern struct UnkStruct_800DC5EC *D_800DC5F8; +extern u16 gIsGamePaused; extern mk64_surface_map_ram *gSurfaceMap; extern u16 *D_8015F584; @@ -78,6 +79,8 @@ extern u8 *gNmiUnknown4; extern u8 *gNmiUnknown5; extern u8 *gNmiUnknown6; +extern s32 gIsMirrorMode; // D_800DC604 + extern Vec3f D_8015F8D0; extern s32 D_8015F8DC; diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index c6693f8e1..31aa2b267 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -36,7 +36,6 @@ s16 code_80005FD0_pad[2]; uintptr_t *D_80162EB8[20]; - // Strings, presented by google translate! // Note that these are EUC-JP encoded, see: // https://en.wikipedia.org/wiki/Extended_Unix_Code#EUC-JP diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 7901ac986..3a0b1842d 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -120,6 +120,7 @@ void func_8000F0E0(void); void func_8000F124(void); void func_8000F2BC(TrackWaypoint*, size_t); void func_8000F2DC(void); +void func_8000F628(void); void func_80010218(s32); f32 func_80010480(s32, u16); @@ -167,6 +168,7 @@ void func_80014C78(void); void func_80014CC0(s32, Player*); void func_80014D08(s32); void func_80014D30(s32, s32); +void func_80014DE4(s32); f32 func_80014EE4(f32, s32); void func_800151A4(Camera*, s32); @@ -234,6 +236,7 @@ extern Collision D_80162E70; extern s16 D_80162EB0; extern s16 D_80162FCC; extern f32 D_80162FA0[]; +extern f32 gCourseCompletionPercentByRank[8]; // D_80162FD8 extern s16 D_80164378[]; extern s32 D_801643E0[]; @@ -242,6 +245,7 @@ extern s32 D_801643E0[]; extern s32 D_80164408[]; extern s32 D_8016448C; extern f32 D_80164498[]; +extern f32 gCourseCompletionPercentByPlayerId[8]; // D_801644D0 extern f32 D_801645F8[]; extern s32 D_80164608[]; extern f32 D_80164618[]; diff --git a/src/code_80057C60.c b/src/code_80057C60.c index a930afaec..a37282983 100644 --- a/src/code_80057C60.c +++ b/src/code_80057C60.c @@ -18,6 +18,7 @@ #include "code_80071F00.h" #include "code_80086E70.h" #include "code_8008C1D0.h" +#include "src/data/data_800E8700.h" #include "skybox_and_splitscreen.h" #include "common_textures.h" #include "audio/external.h" @@ -4782,218 +4783,60 @@ void func_80065AB0(Player *player, s8 arg1, s16 arg2, s8 arg3) { GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80065AB0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-09-2023 -extern ? D_05FF8DB8; -extern ? D_800E47DC; -extern ? D_800E480C; -extern ? D_800E8C00; +#ifdef NON_MATCHING +//https://decomp.me/scratch/KEz08 +// Something is very wrong with the handling of prim/evn colors, but I can't figuer out what. +void func_80065F0C(Player *player, s8 arg1, s16 arg2, s8 arg3) { + Vec3f spDC; + Vec3s spD4; + s16 primRed; + s16 primGreen; + s16 primBlue; + s16 primAlpha; + u8 envRed; + s16 envGreen; + s16 envBlue; -void func_80065F0C(Player *player, s32 arg1, s16 arg2, s8 arg3) { - f32 spE4; - f32 spE0; - f32 spDC; - s16 spD8; - s16 spD6; - s16 spD4; - s16 spCC; - s16 spCA; - s16 spC8; - s16 spC6; - void *sp44; - Gfx *temp_s0; - Gfx *temp_s0_10; - Gfx *temp_s0_11; - Gfx *temp_s0_12; - Gfx *temp_s0_13; - Gfx *temp_s0_14; - Gfx *temp_s0_15; - Gfx *temp_s0_16; - Gfx *temp_s0_17; - Gfx *temp_s0_18; - Gfx *temp_s0_19; - Gfx *temp_s0_20; - Gfx *temp_s0_21; - Gfx *temp_s0_22; - Gfx *temp_s0_23; - Gfx *temp_s0_24; - Gfx *temp_s0_25; - Gfx *temp_s0_26; - Gfx *temp_s0_27; - Gfx *temp_s0_28; - Gfx *temp_s0_29; - Gfx *temp_s0_2; - Gfx *temp_s0_30; - Gfx *temp_s0_31; - Gfx *temp_s0_3; - Gfx *temp_s0_4; - Gfx *temp_s0_5; - Gfx *temp_s0_6; - Gfx *temp_s0_7; - Gfx *temp_s0_8; - Gfx *temp_s0_9; - s16 temp_a0; - s16 temp_ra; - s16 temp_s2; - s16 temp_s3; - s32 temp_a2; - s32 temp_t6; - s32 temp_v1; - void *temp_v0; - - temp_v0 = player + (arg2 * 0x48); - if ((temp_v0->unk544 == 1) && (temp_v0->unk546 != 0)) { - spDC = temp_v0->unk528; - spE0 = temp_v0->unk52C; - spD4 = 0; - spE4 = temp_v0->unk530; - spD8 = 0; - spD6 = player->unk_048[arg3]; - sp44 = temp_v0; - func_800652D4(&spDC, &spD4, temp_v0->unk534 * player->size); - if ((s32) sp44->unk53C != 8) { - temp_a0 = sp44->unk562; - temp_t6 = sp44->unk560 * 4; - temp_v1 = *(&D_800E47DC + temp_t6); - temp_ra = ((temp_v1 >> 0x10) & 0xFF) - temp_a0; - temp_a2 = *(&D_800E480C + temp_t6); - temp_s2 = ((temp_v1 >> 8) & 0xFF) - temp_a0; - temp_s3 = (temp_v1 & 0xFF) - temp_a0; - spCA = ((temp_a2 >> 0x10) & 0xFF) - temp_a0; - spC8 = ((temp_a2 >> 8) & 0xFF) - temp_a0; - spC6 = (temp_a2 & 0xFF) - temp_a0; - spCC = sp44->unk566; - if (sp44->unk568 == 0) { - temp_s0 = gDisplayListHead; - gDisplayListHead = temp_s0 + 8; - temp_s0->words.w1 = (u32) D_0D008DB8; - temp_s0->words.w0 = 0x06000000; - temp_s0_2 = gDisplayListHead; - gDisplayListHead = temp_s0_2 + 8; - temp_s0_2->words.w0 = 0xFD900000; - temp_s0_2->words.w1 = (u32) D_8018D494; - temp_s0_3 = gDisplayListHead; - gDisplayListHead = temp_s0_3 + 8; - temp_s0_3->words.w1 = 0x07000000; - temp_s0_3->words.w0 = 0xF5900000; - temp_s0_4 = gDisplayListHead; - gDisplayListHead = temp_s0_4 + 8; - temp_s0_4->words.w1 = 0; - temp_s0_4->words.w0 = 0xE6000000; - temp_s0_5 = gDisplayListHead; - gDisplayListHead = temp_s0_5 + 8; - temp_s0_5->words.w1 = 0x071FF200; - temp_s0_5->words.w0 = 0xF3000000; - temp_s0_6 = gDisplayListHead; - gDisplayListHead = temp_s0_6 + 8; - temp_s0_6->words.w1 = 0; - temp_s0_6->words.w0 = 0xE7000000; - temp_s0_7 = gDisplayListHead; - gDisplayListHead = temp_s0_7 + 8; - temp_s0_7->words.w1 = 0; - temp_s0_7->words.w0 = 0xF5880800; - temp_s0_8 = gDisplayListHead; - gDisplayListHead = temp_s0_8 + 8; - temp_s0_8->words.w1 = 0x0007C07C; - temp_s0_8->words.w0 = 0xF2000000; - func_8004B72C((s32) temp_ra, (s32) temp_s2, (s32) temp_s3, (s32) spCA, (s32) spC8, (s32) spC6, (s32) spCC); - temp_s0_9 = gDisplayListHead; - gDisplayListHead = temp_s0_9 + 8; - temp_s0_9->words.w0 = (u32) &D_05FF8DB8; - temp_s0_9->words.w1 = (u32) D_0D008E48; + if ((player->unk_258[10 + arg2].unk_01C == 1) && (player->unk_258[10 + arg2].unk_01E != 0)) { + spDC[0] = player->unk_258[10 + arg2].unk_000[0]; + spDC[1] = player->unk_258[10 + arg2].unk_000[1]; + spDC[2] = player->unk_258[10 + arg2].unk_000[2]; + spD4[0] = 0; + spD4[1] = player->unk_048[arg3]; + spD4[2] = 0; + func_800652D4(&spDC, &spD4, player->unk_258[10 + arg2].unk_00C * player->size); + if ((s32)player->unk_258[10 + arg2].unk_014 != 8) { + primRed = ((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x10) & 0xFF) - player->unk_258[10 + arg2].unk_03A; + primGreen = ((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x08) & 0xFF) - player->unk_258[10 + arg2].unk_03A; + primBlue = ((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x00) & 0xFF) - player->unk_258[10 + arg2].unk_03A; + envRed = ((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x10) & 0xFF) - player->unk_258[10 + arg2].unk_03A; + envGreen = ((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x08) & 0xFF) - player->unk_258[10 + arg2].unk_03A; + envBlue = ((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x00) & 0xFF) - player->unk_258[10 + arg2].unk_03A; + primAlpha = player->unk_258[10 + arg2].unk_03E; + if (player->unk_258[10 + arg2].unk_040 == 0) { + gSPDisplayList(gDisplayListHead++, D_0D008DB8); + gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, 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); + func_8004B72C(primRed, primGreen, primBlue, envRed, envGreen, envBlue, primAlpha); + gSPDisplayList(gDisplayListHead++, D_0D008E48); } else { - temp_s0_10 = gDisplayListHead; - gDisplayListHead = temp_s0_10 + 8; - temp_s0_10->words.w1 = 0x0D010000; - temp_s0_10->words.w0 = 0x06000000; - temp_s0_11 = gDisplayListHead; - gDisplayListHead = temp_s0_11 + 8; - temp_s0_11->words.w0 = 0xFD900000; - temp_s0_11->words.w1 = (u32) D_8018D494; - temp_s0_12 = gDisplayListHead; - gDisplayListHead = temp_s0_12 + 8; - temp_s0_12->words.w1 = 0x07000000; - temp_s0_12->words.w0 = 0xF5900000; - temp_s0_13 = gDisplayListHead; - gDisplayListHead = temp_s0_13 + 8; - temp_s0_13->words.w1 = 0; - temp_s0_13->words.w0 = 0xE6000000; - temp_s0_14 = gDisplayListHead; - gDisplayListHead = temp_s0_14 + 8; - temp_s0_14->words.w1 = 0x071FF200; - temp_s0_14->words.w0 = 0xF3000000; - temp_s0_15 = gDisplayListHead; - gDisplayListHead = temp_s0_15 + 8; - temp_s0_15->words.w1 = 0; - temp_s0_15->words.w0 = 0xE7000000; - temp_s0_16 = gDisplayListHead; - gDisplayListHead = temp_s0_16 + 8; - temp_s0_16->words.w1 = 0; - temp_s0_16->words.w0 = 0xF5880800; - temp_s0_17 = gDisplayListHead; - gDisplayListHead = temp_s0_17 + 8; - temp_s0_17->words.w1 = 0x0007C07C; - temp_s0_17->words.w0 = 0xF2000000; - func_8004B72C((s32) temp_ra, (s32) temp_s2, (s32) temp_s3, (s32) spCA, (s32) spC8, (s32) spC6, (s32) spCC); - temp_s0_18 = gDisplayListHead; - gDisplayListHead = temp_s0_18 + 8; - temp_s0_18->words.w1 = 3; - temp_s0_18->words.w0 = 0xB9000002; - temp_s0_19 = gDisplayListHead; - gDisplayListHead = temp_s0_19 + 8; - temp_s0_19->words.w0 = 0x06000000; - temp_s0_19->words.w1 = (u32) D_0D008E48; + gSPDisplayList(gDisplayListHead++, D_0D008DB8); + gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, 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); + func_8004B72C(primRed, primGreen, primBlue, envRed, envGreen, envBlue, primAlpha); + gDPSetAlphaCompare(gDisplayListHead++, G_AC_DITHER); + gSPDisplayList(gDisplayListHead++, D_0D008E48); } } else { - temp_s0_20 = gDisplayListHead; - gDisplayListHead = temp_s0_20 + 8; - temp_s0_20->words.w1 = (u32) D_0D008C90; - temp_s0_20->words.w0 = 0x06000000; - temp_s0_21 = gDisplayListHead; - gDisplayListHead = temp_s0_21 + 8; - temp_s0_21->words.w1 = 0; - temp_s0_21->words.w0 = 0xBA000E02; - temp_s0_22 = gDisplayListHead; - gDisplayListHead = temp_s0_22 + 8; - temp_s0_22->words.w0 = 0xFD100000; - temp_s0_22->words.w1 = (u32) D_8018D498; - temp_s0_23 = gDisplayListHead; - gDisplayListHead = temp_s0_23 + 8; - temp_s0_23->words.w1 = 0x07080200; - temp_s0_23->words.w0 = 0xF5100000; - temp_s0_24 = gDisplayListHead; - gDisplayListHead = temp_s0_24 + 8; - temp_s0_24->words.w1 = 0; - temp_s0_24->words.w0 = 0xE6000000; - temp_s0_25 = gDisplayListHead; - gDisplayListHead = temp_s0_25 + 8; - temp_s0_25->words.w1 = 0x077FF100; - temp_s0_25->words.w0 = 0xF3000000; - temp_s0_26 = gDisplayListHead; - gDisplayListHead = temp_s0_26 + 8; - temp_s0_26->words.w1 = 0; - temp_s0_26->words.w0 = 0xE7000000; - temp_s0_27 = gDisplayListHead; - gDisplayListHead = temp_s0_27 + 8; - temp_s0_27->words.w0 = 0xF5101000; - temp_s0_27->words.w1 = 0x00080200; - temp_s0_28 = gDisplayListHead; - gDisplayListHead = temp_s0_28 + 8; - temp_s0_28->words.w0 = 0xF2000000; - temp_s0_28->words.w1 = 0x0007C0FC; - func_8004B35C((s32) sp44->unk560, (s32) sp44->unk562, (s32) sp44->unk564, 0x000000FF); - temp_s0_29 = gDisplayListHead; - gDisplayListHead = temp_s0_29 + 8; - temp_s0_29->words.w0 = 0xB900031D; - temp_s0_29->words.w1 = 0x00553078; - temp_s0_30 = gDisplayListHead; - gDisplayListHead = temp_s0_30 + 8; - temp_s0_30->words.w1 = (u32) &D_800E8C00; - temp_s0_30->words.w0 = 0x0400103F; - temp_s0_31 = gDisplayListHead; - gDisplayListHead = temp_s0_31 + 8; - temp_s0_31->words.w0 = 0x06000000; - temp_s0_31->words.w1 = (u32) D_0D008DA0; + primRed = player->unk_258[10 + arg2].unk_038; + primGreen = player->unk_258[10 + arg2].unk_03A; + primBlue = player->unk_258[10 + arg2].unk_03C; + gSPDisplayList(gDisplayListHead++, D_0D008C90); + gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); + gDPLoadTextureBlock(gDisplayListHead++, D_8018D498, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + func_8004B35C(primRed, primGreen, primBlue, 0x000000FF); + gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2); + gSPVertex(gDisplayListHead++, D_800E8C00, 4, 0); + gSPDisplayList(gDisplayListHead++, D_0D008DA0); + } gMatrixEffectCount += 1; } @@ -5173,8 +5016,6 @@ void func_80067280(Player *player, s8 arg1, s16 arg2, s8 arg3) { } } -#ifdef NON_MATCHING - void func_80067604(Player *player, s8 arg1, s16 arg2, s8 arg3) { Vec3f sp8C; Vec3s sp84; @@ -5192,15 +5033,9 @@ void func_80067604(Player *player, s8 arg1, s16 arg2, s8 arg3) { gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_0D02AC58, G_IM_FMT_I, 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); func_8004B72C(0x000000FF, 0x000000FF, 0x000000DF, 0x000000FF, 0x0000005F, 0, 0x00000060); - // temp_v0_10 = gDisplayListHead; - // gDisplayListHead = temp_v0_10 + 8; - // temp_v0_10->words.w0 = (u32) &D_05FF8DB8; - // temp_v0_10->words.w1 = (u32) D_0D008E70; - // I have no idea what's going on here. - // D_05FF8DB8 is clearly a fake variable, but there's not Gfx command - // that matches w0 = 05FF8DB8, w1 = 0D008E70 + gSPDisplayList(gDisplayListHead++, D_0D008E70); } else { - gSPDisplayList(gDisplayListHead++, 0x0D010000); + gSPDisplayList(gDisplayListHead++, D_0D008DB8); gDPLoadTextureBlock(gDisplayListHead++, D_0D02AC58, G_IM_FMT_I, 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); func_8004B72C(0x000000FF, 0x000000FF, 0x000000DF, 0x000000FF, 0x0000005F, 0, 0x00000060); gSPDisplayList(gDisplayListHead++, D_0D008E48); @@ -5208,9 +5043,6 @@ void func_80067604(Player *player, s8 arg1, s16 arg2, s8 arg3) { gMatrixEffectCount += 1; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80067604.s") -#endif // data/data_code_80071F00_2.s extern u8 D_800E52D0[]; @@ -5625,7 +5457,7 @@ void func_8006A280(Player *player, s8 arg1, s16 arg2, s8 arg3) { } #ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-14-2023 extern ? D_8018D4D0; extern ? D_8018D530; extern ? D_8018D590; @@ -5640,7 +5472,6 @@ extern ? D_8018D800; extern ? D_8018D830; extern ? D_8018D860; extern ? D_8018D890; -extern ? gPlayerBalloonStatus; void func_8006A50C(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4, s16 arg5) { f32 sp44; @@ -5654,7 +5485,7 @@ void func_8006A50C(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4, s16 arg u16 *temp_t0; temp_v0 = arg4 * 2; - temp_t0 = (arg3 * 6) + temp_v0 + &gPlayerBalloonStatus; + temp_t0 = (arg3 * 6) + temp_v0 + gPlayerBalloonStatus; *temp_t0 = 0; temp_v1 = arg4 * 4; *(&D_8018D650 + ((arg3 * 0xC) + temp_v1)) = 0.1f; @@ -5682,7 +5513,7 @@ GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006A50C.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-14-2023 extern ? D_8018D4D0; extern ? D_8018D530; extern ? D_8018D590; @@ -5698,7 +5529,6 @@ extern ? D_8018D830; extern ? D_8018D860; extern ? D_8018D890; extern ? D_8018D8D0; -extern ? gPlayerBalloonStatus; static ? D_800E4914; /* unable to generate initializer */ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) { @@ -5726,7 +5556,6 @@ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) { f32 var_f12; f64 var_f0; f64 var_f0_2; - s16 *temp_a0; s16 *temp_a2; s16 *temp_v0; s16 *var_a1; @@ -5747,7 +5576,7 @@ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) { sp80.unk1C = (s32) D_800E4914.unk1C; var_f12 = player->unk_094; var_t0 = arg4 * 2; - temp_t7 = (arg3 * 6) + var_t0 + &gPlayerBalloonStatus; + temp_t7 = (arg3 * 6) + var_t0 + gPlayerBalloonStatus; sp58 = temp_t7; temp_t1 = arg4 * 4; sp6C = (-(var_f12 / 18.0f) * 216.0f) / 10.0f; @@ -5856,10 +5685,8 @@ void func_8006A7C0(Player *player, f32 arg1, f32 arg2, s8 arg3, s8 arg4) { temp_v1_3 = (arg3 * 6) + sp5C + &D_8018D8D0; *temp_v0_2 = (f32) ((f64) *temp_v0_2 + 0.2); *temp_v1_3 = (s16) (*temp_v1_3 + 1); - temp_a0 = (arg3 * 6) + sp5C + &D_8018D890; sp60 = temp_v1_3; - sp5C = sp5C; - move_s16_towards(temp_a0, 0, 0.1f); + move_s16_towards((arg3 * 6) + sp5C + &D_8018D890, 0, 0.1f); move_s16_towards((arg3 * 6) + sp5C + &D_8018D860, 0, 0.1f); if (*temp_v1_3 >= 0x78) { func_8006B974((s32) player, arg3, arg4); @@ -5870,20 +5697,18 @@ GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006A7C0.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit b7eac665cffd02361f73cec283ef16d0a35a0e5b -extern u32 D_8018D4BC; -extern s32 D_8018D4C0; +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-14-2023 extern ? D_8018D4D0; extern ? D_8018D530; extern ? D_8018D590; extern ? D_8018D7D0; extern ? D_8018D860; extern ? D_8018D890; +static ? gBalloonVertexPlane1; /* unable to generate initializer */ +static ? gBalloonVertexPlane2; /* unable to generate initializer */ +static ? D_800E52D0; /* unable to generate initializer */ static ? D_800E4934; /* unable to generate initializer */ static ? D_800E4954; /* unable to generate initializer */ -static ? gBalloonVertexPlane1; /* unable to generate initializer */ -static ? gBalloonVertexPlane2; /* unable to generate initializer */ -static ? D_800E52D0; /* unable to generate initializer */ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { f32 sp13C; @@ -5982,7 +5807,7 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { temp_v0_2 = &cameras[arg3]; temp_f20 = player->pos[0] - temp_v0_2->pos[0]; temp_f0 = player->pos[2] - temp_v0_2->pos[2]; - if (gActiveScreenMode != SCREEN_MODE_3P_4P_SPLITSCREEN) { + if (gActiveScreenMode != 3) { sp11C = temp_t1; var_f20 = sqrtf((temp_f20 * temp_f20) + (temp_f0 * temp_f0)) / 300.0f; } else { @@ -6037,8 +5862,6 @@ void func_8006AFD0(Player *player, s16 arg1, s8 arg2, s8 arg3) { GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006AFD0.s") #endif -extern void func_8006A50C(Player*, f32, f32, s8, s8, s16); - void func_8006B7E4(Player* player, s8 arg1) { func_8006A50C(player, 0.0f, 0.0f, arg1, (s8) 0, (s16) 0); func_8006A50C(player, 1.5f, 2.0f, arg1, (s8) 1, (s16) 0x1C70); @@ -6547,21 +6370,6 @@ void func_8006D194(Player *player, s8 arg1, s8 arg2) { GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8006D194.s") #endif -void func_8006538C(Player *, s8, s16, s8); /* extern */ -void func_80065AB0(Player *, s8, s16, s8); /* extern */ -void func_80065F0C(Player *, s8, s16, s8); /* extern */ -void func_800664E0(Player *, s8, s16, s8); /* extern */ -void func_80066BAC(Player *, s8, s16, s8); /* extern */ -void func_80067280(Player *, s8, s16, s8); /* extern */ -void func_80067604(Player *, s8, s16, s8); /* extern */ -void func_800691B8(Player *, s8, s16, s8); /* extern */ -void func_80069444(Player *, s8, s16, s8); /* extern */ -void func_800696CC(Player *, s8, s16, s8, f32); /* extern */ -void func_80069938(Player *, s8, s16, s8); /* extern */ -void func_80069BA8(Player *, s8, s16, s8); /* extern */ -void func_80069DB8(Player *, s8, s16, s8); /* extern */ -void func_8006A01C(Player *, s8, s16, s8); /* extern */ - void func_8006D474(Player *player, s8 arg1, s8 arg2) { s16 var_s2; if ((player->unk_002 & (8 << (arg2 * 4))) == (8 << (arg2 * 4))) { diff --git a/src/code_80057C60.h b/src/code_80057C60.h index afc0af65b..223d28b25 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -90,6 +90,7 @@ void func_8005D0FC(s32); void func_8005D18C(void); void func_8005D1F4(s32); +void func_8005D290(void); void func_8005D6C0(Player*); void func_8005D794(Player*, UnkPlayerStruct258*, f32, f32, f32, s8, s8); s32 func_8005D7D8(UnkPlayerStruct258*, s8, f32); @@ -166,11 +167,15 @@ void func_800651F4(Player*, s16, s8, s8); void func_800652D4(Vec3f, Vec3s, f32); void func_8006538C(Player*, s8, s16, s8); void func_800658A0(Player*, s8, s16, s8); +void func_80065AB0(Player*, s8, s16, s8); +void func_80065F0C(Player*, s8, s16, s8); void func_800664E0(Player*, s8, s16, s8); void func_80066998(Player*, s8, s16, s8); +void func_80066BAC(Player*, s8, s16, s8); void func_80067280(Player*, s8, s16, s8); +void func_80067604(Player*, s8, s16, s8); void func_80067964(Player*, s8, f32, s8, s8); void func_80067D3C(Player*, s8, u8*, s8, f32, s32); @@ -189,10 +194,11 @@ void func_80069DB8(Player*, s8, s16, s8); void func_8006A01C(Player*, s8, s16, s8); void func_8006A280(Player*, s8, s16, s8); -void func_8006A280(Player*, s8, s16, s8); +void func_8006A50C(Player*, f32, f32, s8, s8, s16); void func_8006A7C0(Player*, f32, f32, s8, s8); void func_8006AFD0(Player*, s16, s8, s8); +void func_8006B7E4(Player*, s8); void func_8006B87C(Player*, s8); void func_8006B8B4(Player*, s8); void func_8006B974(s32, s8, s8); @@ -223,7 +229,11 @@ void func_8006E848(Player*, s8, s8); void func_8006E8C4(Player*, s8, s8); void func_8006E940(Player*, s8, s8); - +extern s16 D_800E4730[]; +extern u8 **D_800E4770[]; +extern u8 **D_800E47A0[]; +extern s32 D_800E47DC[]; +extern s32 D_800E480C[]; extern s8 D_801657B2; extern s8 D_801657C8; @@ -346,20 +356,4 @@ extern s32 D_8018D2BC; extern u8 *D_8018D480; extern u8 *D_8018D484; -// data/data_800E8700.c -extern Vtx D_800E8740[]; -extern Vtx D_800E8780[]; -extern Vtx D_800E87C0[]; -extern Vtx D_800E8800[]; -extern Vtx D_800E8840[]; -extern Vtx D_800E8880[]; -extern Vtx D_800E88C0[]; -extern Vtx D_800E8A00[]; -extern Vtx D_800E8A40[]; -extern Vtx D_800E8B00[]; -extern Vtx D_800E8B40[]; -extern Vtx D_800E8B80[]; -extern Vtx D_800E8BC0[]; -extern Vtx D_800E8900[][4]; - #endif diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 1ab724a7d..f99f4a1f1 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -13,6 +13,7 @@ #include "objects.h" #include "waypoints.h" #include "variables.h" +#include "code_800029B0.h" #include "code_80005FD0.h" #include "code_80057C60.h" #include "code_80086E70.h" diff --git a/src/code_80091750.c b/src/code_80091750.c index 5828e2c11..480eb0288 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -23,6 +23,7 @@ #include "math_util.h" #include "save_data.h" #include "podium_ceremony_actors.h" +#include "skybox_and_splitscreen.h" // TODO: Move gGfxPool out of main.h // Unfortunately that's not a small effort due to weird import structure in this project #include "main.h" @@ -349,7 +350,7 @@ const s16 gGlyphDisplayWidth[] = { 0x000f, 0x000f, 0x000f, 0x000f, }; -char *D_800E7500[] = { +char *gCupNames[] = { "mushroom cup", "flower cup", "star cup", @@ -532,7 +533,7 @@ char *gDebugSoundModeNames[] = { "monaural", }; -char *gSoundModeNames[] = { +char *gSoundModeNames[NUM_SOUND_MODES] = { "STEREO", "HEADPHONE", "", @@ -8213,7 +8214,7 @@ block_58: return; case 0x96: /* switch 6 */ set_text_color(4); - func_800936B8(arg0->column, arg0->row, D_800E7500[D_800DC540], arg0->unk1C, arg0->unk24, 1.0f); + func_800936B8(arg0->column, arg0->row, gCupNames[D_800DC540], arg0->unk1C, arg0->unk24, 1.0f); return; case 0x97: /* switch 6 */ set_text_color(5); @@ -9241,8 +9242,8 @@ void func_800A2EB8(struct_8018D9E0_entry *arg0) { func_800A32B4(0xBE - arg0->column, arg0->row + (0x10 * var_s2) + 0x5A, sp70[var_s2], var_s2); } set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); - temp_s0 = (s32) (((f32) (get_string_width(D_800E7500[gCupSelection]) + 8) * 0.6f) / 2); - draw_text((-(s32) (((f32) (get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xF5, arg0->row + 0xE1, D_800E7500[D_800DC540], 0, 0.6f, 0.6f); + temp_s0 = (s32) (((f32) (get_string_width(gCupNames[gCupSelection]) + 8) * 0.6f) / 2); + draw_text((-(s32) (((f32) (get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xF5, arg0->row + 0xE1, gCupNames[D_800DC540], 0, 0.6f, 0.6f); draw_text((temp_s0 - arg0->column) + 0xF5, arg0->row + 0xE1, D_800E76CC[D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]], 0, 0.6f, 0.6f); } @@ -9354,8 +9355,8 @@ void func_800A34A8(struct_8018D9E0_entry *arg0) { } } set_text_color(5); - temp_s0_3 = ((get_string_width(D_800E7500[gCupSelection]) + 8) * 0.6f) / 2; - draw_text((-(s32) (((get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xE6, arg0->row + 0xE1, D_800E7500[D_800DC540], 0, 0.6f, 0.6f); + temp_s0_3 = ((get_string_width(gCupNames[gCupSelection]) + 8) * 0.6f) / 2; + draw_text((-(s32) (((get_string_width(D_800E76CC[gCCSelection]) + 8) * 0.6f) / 2) - arg0->column) + 0xE6, arg0->row + 0xE1, gCupNames[D_800DC540], 0, 0.6f, 0.6f); draw_text((temp_s0_3 - arg0->column) + 0xE6, arg0->row + 0xE1, D_800E76CC[D_800E86B0[gPlayerCount - 1][D_800E86AC[gPlayerCount - 1]]], 0, 0.6f, 0.6f); } } @@ -9861,10 +9862,10 @@ void func_800A5084(struct_8018D9E0_entry *arg0) { temp_t4 = temp_v0->screenHeight / 2; gDisplayListHead = draw_box(gDisplayListHead, temp_v1 - temp_t3, temp_t0 - temp_t4, temp_v1 + temp_t3, temp_t0 + temp_t4, 0, 0, 0, 140); temp_s3 = &D_800E85C0[gScreenModeSelection][gIsGamePaused - 1]; - temp_s0 = ((get_string_width(D_800E7500[gCupSelection]) * one) + 10.0f) / 2; + temp_s0 = ((get_string_width(gCupNames[gCupSelection]) * one) + 10.0f) / 2; temp_s1 = ((get_string_width(D_800E76CC[gCCSelection]) * one) + 10.0f) / 2; set_text_color(TEXT_YELLOW); - draw_text(160 - temp_s1, temp_s3->row - 50, D_800E7500[gCupSelection], 0, 1.0f, 1.0f); + draw_text(160 - temp_s1, temp_s3->row - 50, gCupNames[gCupSelection], 0, 1.0f, 1.0f); set_text_color(TEXT_YELLOW); draw_text(160 + temp_s0, temp_s3->row - 50, D_800E76CC[gCCSelection], 0, 1.0f, 1.0f); set_text_color(TEXT_YELLOW); @@ -10121,7 +10122,7 @@ void func_800A6034(struct_8018D9E0_entry *arg0) { if (D_801657E8 != TRUE) { gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, arg0->unk1C); - text = D_800E7500[D_800DC540]; + text = gCupNames[D_800DC540]; set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2); func_80093754(arg0->column + 0x41, arg0->row + 0xA0, text, 0, 0.85f, 1.0f); text = D_800E7524[gCurrentCourseId]; @@ -10472,11 +10473,11 @@ void func_800A7258(struct_8018D9E0_entry *arg0) { // Podium scene, top line void func_800A72FC(struct_8018D9E0_entry *arg0) { UNUSED s32 pad; - s32 cupNameLength = (((f32) get_string_width(D_800E7500[gCupSelection]) * 1) + 10) / 2; + s32 cupNameLength = (((f32) get_string_width(gCupNames[gCupSelection]) * 1) + 10) / 2; s32 ccNameLength = (((f32) get_string_width(D_800E76CC[gCCSelection]) * 1) + 10) / 2; set_text_color(TEXT_YELLOW); - draw_text(arg0->column - ccNameLength, arg0->row, D_800E7500[gCupSelection], 0, 1, 1); + draw_text(arg0->column - ccNameLength, arg0->row, gCupNames[gCupSelection], 0, 1, 1); set_text_color(TEXT_YELLOW); draw_text(arg0->column + cupNameLength, arg0->row, D_800E76DC[gCCSelection], 0, 1, 1); } @@ -12739,7 +12740,7 @@ void func_800ABCF4(struct_8018D9E0_entry *arg0) { case 0: arg0->column = 0; arg0->unk4 = 1; - arg0->unk20 = (get_string_width(D_800E7500[D_800DC540]) / 2) + 0xA0; + arg0->unk20 = (get_string_width(gCupNames[D_800DC540]) / 2) + 0xA0; /* fallthrough */ case 1: func_800A9208(arg0, arg0->unk20); diff --git a/src/code_80091750.h b/src/code_80091750.h index a66322a01..abcaa3cd9 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -350,6 +350,7 @@ extern u8 *D_8018D9BC; extern s32 D_80165754; extern intptr_t D_8018D9B0; +extern s8 gGPPointsByCharacterId[8]; // D_8018D9C8 extern s8 D_8018D9D8; extern s8 D_8018D9D9; extern struct_8018D9E0_entry D_8018D9E0[D_8018D9E0_SIZE]; // D_8018D9E0 @@ -412,12 +413,13 @@ extern RGBA16 D_800E74A8[]; extern RGBA16 D_800E74D0[]; extern RGBA16 D_800E74E8[]; extern const s16 gGlyphDisplayWidth[]; -extern char *D_800E7500[]; +extern char *gCupNames[]; extern char *D_800E7524[]; extern char *D_800E7574[]; extern char *D_800E75C4[]; extern char *gDebugCourseNames[]; -extern const u8 gPerCupIndexByCourseId[]; +// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order +extern const u8 gPerCupIndexByCourseId[]; // D_800EFD50 extern const s8 D_800EFD64[]; extern u8 gCupSelectionByCourseId[]; extern char *D_800E7678[]; @@ -427,7 +429,7 @@ extern char *D_800E76CC[]; extern char *D_800E76DC[]; extern char *gDebugScreenModeNames[]; extern char *gDebugSoundModeNames[]; -extern char *gSoundModeNames[]; +extern char *gSoundModeNames[]; // D_800E7710 extern char *D_800E7720[]; extern char *D_800E7728[]; extern char *D_800E7730; diff --git a/src/data/data_800E45C0.c b/src/data/data_800E45C0.c index 14c2fda1f..91f925ecb 100644 --- a/src/data/data_800E45C0.c +++ b/src/data/data_800E45C0.c @@ -1,4 +1,5 @@ #include +#include "data_800E45C0.h" // Lights Lights1 D_800E45C0 = gdSPDefLights1( diff --git a/src/data/data_800E45C0.h b/src/data/data_800E45C0.h new file mode 100644 index 000000000..d28fc0dbe --- /dev/null +++ b/src/data/data_800E45C0.h @@ -0,0 +1,20 @@ +#ifndef DATA_800E45C0_H +#define DATA_800E45C0_H + +extern Lights1 D_800E45C0; +extern Lights1 D_800E45D8; +extern Lights1 D_800E45F0; +extern Lights1 D_800E4608; +extern Lights1 D_800E4620; +extern Lights1 D_800E4638; +extern Lights1 D_800E4650; +extern Lights1 D_800E4668; +extern Lights1 D_800E4680; +extern Lights1 D_800E4698; +extern Lights1 D_800E46B0; +extern Lights1 D_800E46C8; +extern Lights1 D_800E46E0; +extern u32 D_800E46F8[]; +extern u8 D_800E471C[]; + +#endif diff --git a/src/data/data_800E8700.c b/src/data/data_800E8700.c index c55584483..5460d6e0c 100644 --- a/src/data/data_800E8700.c +++ b/src/data/data_800E8700.c @@ -1,4 +1,5 @@ #include +#include "data_800E8700.h" Vtx D_800E8700[] = { {{{ 8, 8, 0}, 0, {960, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}}, diff --git a/src/data/data_800E8700.h b/src/data/data_800E8700.h new file mode 100644 index 000000000..64423b97f --- /dev/null +++ b/src/data/data_800E8700.h @@ -0,0 +1,29 @@ +#ifndef DATA_800E8700_H +#define DATA_800E8700_H + +#include + +extern Vtx D_800E8700[]; +extern Vtx D_800E8740[]; +extern Vtx D_800E8780[]; +extern Vtx D_800E87C0[]; +extern Vtx D_800E8800[]; +extern Vtx D_800E8840[]; +extern Vtx D_800E8880[]; +extern Vtx D_800E88C0[]; +extern Vtx D_800E8900[][4]; +extern Vtx D_800E8A00[]; +extern Vtx D_800E8A40[]; +extern Vtx D_800E8A80[]; +extern Vtx D_800E8AC0[]; +extern Vtx D_800E8B00[]; +extern Vtx D_800E8B40[]; +extern Vtx D_800E8B80[]; +extern Vtx D_800E8BC0[]; +extern Vtx D_800E8C00[]; +extern Vtx D_800E8C40[]; +extern Vtx D_800E8CC0[]; +extern Gfx D_800E8D40[]; +extern Gfx D_800E8DD0[]; + +#endif diff --git a/src/ending/ceremony_and_credits.c b/src/ending/ceremony_and_credits.c index 3988a8b07..942cdd8a0 100644 --- a/src/ending/ceremony_and_credits.c +++ b/src/ending/ceremony_and_credits.c @@ -11,6 +11,7 @@ #include "variables.h" #include "math_util.h" #include "ceremony_and_credits.h" +#include "code_800029B0.h" #include "code_80280000.h" #include "objects.h" #include "main.h" diff --git a/src/hud_renderer.c b/src/hud_renderer.c index 22324a236..cb76b6bfd 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -26,6 +26,7 @@ #include "collision.h" #include "main.h" #include "code_80086E70.h" +#include "src/data/data_800E45C0.h" #include "courses/all_course_data.h" #include @@ -4647,7 +4648,7 @@ void func_800541BC(s32 cameraId) { s32 i; camera = &camera1[cameraId]; - gSPDisplayList(gDisplayListHead++, D_0D007AE0) + gSPDisplayList(gDisplayListHead++, D_0D007AE0); func_8004477C(D_0D029458, 32, 32); func_8004B72C(255, 255, 255, 255, 255, 255, 255); D_80183E80[0] = 0; @@ -5443,46 +5444,34 @@ void func_80056AC0(s32 cameraId) { } } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-17-2023 -? func_800562E4(s32, s32, ?); /* extern */ -extern u32 D_801655CC; -extern f32 D_80183E44; -extern s16 D_80183E84; -extern s32 D_8018D400; -static ? D_800E471C; /* unable to generate initializer */ - void func_80056BF0(s32 bombIndex) { - BombKart sp40; - Gfx *temp_v1; + s32 stackPadding; + u8 thing; s32 temp_s0; s32 temp_v0; - s32 temp_v0_2; + u8 *bombFrame; + BombKart sp40 = gBombKarts[bombIndex]; - M2C_MEMCPY_ALIGNED(&sp40, &gBombKarts[bombIndex], 0x54); - D_80183E40->unk0 = (bitwise f32) sp40; - D_80183E40->unk4 = (f32) ((f64) sp40.bombPos[1] + 1.0); - D_80183E40->unk8 = sp40.bombPos[2]; - func_800480B4(D_80183E40, D_80183E80, 0.25f, (u8 *) D_0D02A858, (*(&D_800E471C + ((u32) D_801655CC % 6U)) << 0xA) + D_0D029858, D_0D005AE0, 0x00000020, 0x00000020, 0x00000020, 0x00000020); - temp_v1 = gDisplayListHead; + temp_v0 = D_801655CC % 6U; + thing = D_800E471C[temp_v0]; + bombFrame = D_0D029858[thing]; + D_80183E40[0] = sp40.bombPos[0]; + D_80183E40[1] = sp40.bombPos[1] + 1.0; + D_80183E40[2] = sp40.bombPos[2]; + func_800480B4(D_80183E40, D_80183E80, 0.25f, D_0D02A858, bombFrame, D_0D005AE0, 0x20, 0x20, 0x20, 0x20); temp_s0 = D_8018D400; - gDisplayListHead = temp_v1 + 8; - temp_v1->words.w0 = 0x06000000; - temp_v1->words.w1 = (u32) D_0D007B00; - func_8004B414(0, 0, 0, 0x000000FF); - D_80183E44 = (f32) ((f64) sp40.bombPos[1] + 5.0); - D_80183E84 = 0; - func_800562E4(temp_s0 % 3, temp_s0 % 4, 0xFF); + gSPDisplayList(gDisplayListHead++, D_0D007B00); + func_8004B414(0, 0, 0, 0xFF); + D_80183E40[1] = sp40.bombPos[1] + 5.0; + D_80183E80[2] = 0; + func_800562E4((s32) temp_s0 % 3, temp_s0 % 4, 0xFFU); temp_v0 = temp_s0 + 1; - D_80183E84 = 0x6000; - func_800562E4(temp_v0 % 3, temp_v0 % 4, 0xFF); - temp_v0_2 = temp_s0 + 2; - D_80183E84 = 0xA000; - func_800562E4(temp_v0_2 % 3, temp_v0_2 % 4, 0xFF); + D_80183E80[2] = 0x6000; + func_800562E4(temp_v0 % 3, temp_v0 % 4, 0xFFU); + temp_v0 = temp_s0 + 2; + D_80183E80[2] = 0xA000; + func_800562E4(temp_v0 % 3, temp_v0 % 4, 0xFFU); } -#else -GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80056BF0.s") -#endif void func_80056E24(s32 bombIndex, Vec3f arg1) { s32 stackPadding[2]; diff --git a/src/hud_renderer.h b/src/hud_renderer.h index 56e661824..f479c23d3 100644 --- a/src/hud_renderer.h +++ b/src/hud_renderer.h @@ -375,6 +375,7 @@ void func_80055FA0(s32, s32); void func_80056160(s32); void func_80056188(s32); +void func_800562E4(s32, s32, s32); void func_800563DC(s32, s32, s32); void func_800568A0(s32, s32); void func_8005669C(s32, s32, s32); @@ -421,6 +422,7 @@ extern s32 D_8016586C; extern s32 D_80165878; extern s32 D_8016589C; extern u16 D_801656C0; +extern s32 D_801655CC; extern u16 D_801656D0; extern u16 D_801656E0; @@ -439,6 +441,8 @@ extern s32 D_8018D3E4; // some red extern s32 D_8018D3E8; // some green extern s32 D_8018D3EC; // some blue +extern s32 D_8018D400; + extern struct UnkStruct_800DC5EC *D_800DC5F0; // Probably aren't really part of this file, but don't have a better place to put them diff --git a/src/menus.h b/src/menus.h index 3c5ca0907..a80ea1fff 100644 --- a/src/menus.h +++ b/src/menus.h @@ -75,7 +75,7 @@ extern s8 gCupCourseSelection; extern s8 D_8018EE0C; extern struct_8018EE10_entry D_8018EE10[]; -extern s32 gMenuSelection; +extern s32 gMenuSelection; // D_800E86A0 extern s32 D_800E86A4; extern s8 gCharacterSelections[]; diff --git a/src/racing/skybox_and_splitscreen.h b/src/racing/skybox_and_splitscreen.h index 0c4dedf22..065ec96d3 100644 --- a/src/racing/skybox_and_splitscreen.h +++ b/src/racing/skybox_and_splitscreen.h @@ -1,6 +1,8 @@ #ifndef SKYBOX_AND_SPLITSCREEN_H #define SKYBOX_AND_SPLITSCREEN_H +#include + #define G_CLEAR_ALL_MODES 0xFFFFFFFF /* Function Prototypes */ @@ -52,6 +54,8 @@ void copy_framebuffer(s32, s32, s32, s32, u16*, u16*); void func_802A7728(void); void func_802A7940(void); +extern Vp D_802B8880[]; + extern struct UnkStruct_800DC5EC *D_800DC5EC; extern struct UnkStruct_800DC5EC *D_800DC5F0; extern struct UnkStruct_800DC5EC *D_800DC5F4; diff --git a/src/spawn_players.c b/src/spawn_players.c index 6d16716e2..a7bc9a198 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -16,6 +16,7 @@ #include "render_courses.h" #include "staff_ghosts.h" #include "code_80005FD0.h" +#include "code_8001F980.h" #include "podium_ceremony_actors.h" #include "main.h" #include "menus.h" diff --git a/src/staff_ghosts.h b/src/staff_ghosts.h index a6a3065fc..3ff61cda6 100644 --- a/src/staff_ghosts.h +++ b/src/staff_ghosts.h @@ -33,6 +33,9 @@ extern u16 D_80162DD4; extern u16 D_80162DD6; extern u16 D_80162DD8; extern s32 D_80162E00; +extern s32 D_80162DE0; +extern s32 D_80162DE4; +extern s32 D_80162DE8; extern s32 D_80162DF0; extern s32 D_80162DF8;