From f5d8147d4bbe44c64903c9e6627b9a5dd7d2eb26 Mon Sep 17 00:00:00 2001 From: MegaMech Date: Wed, 1 May 2024 19:19:02 -0600 Subject: [PATCH] Update Attempts and cleanup synthesis_process_notes (#633) * Update code_80005FD0.c --- .../code_80005FD0/func_800074D4.s | 498 ------------------ .../code_80005FD0/func_80007D04.s | 181 ------- src/audio/data.c | 6 +- src/audio/data.h | 2 +- src/audio/synthesis.c | 146 +---- src/audio/synthesis.h | 2 +- src/code_80005FD0.c | 161 +++--- 7 files changed, 101 insertions(+), 895 deletions(-) delete mode 100644 asm/non_matchings/code_80005FD0/func_800074D4.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80007D04.s diff --git a/asm/non_matchings/code_80005FD0/func_800074D4.s b/asm/non_matchings/code_80005FD0/func_800074D4.s deleted file mode 100644 index 748d3493e..000000000 --- a/asm/non_matchings/code_80005FD0/func_800074D4.s +++ /dev/null @@ -1,498 +0,0 @@ -glabel func_800074D4 -/* 0080D4 800074D4 27BDFF70 */ addiu $sp, $sp, -0x90 -/* 0080D8 800074D8 3C048016 */ lui $a0, %hi(gCourseCompletionPercentByRank) # $a0, 0x8016 -/* 0080DC 800074DC 44800000 */ mtc1 $zero, $f0 -/* 0080E0 800074E0 AFB1000C */ sw $s1, 0xc($sp) -/* 0080E4 800074E4 AFB00008 */ sw $s0, 8($sp) -/* 0080E8 800074E8 240A0008 */ li $t2, 8 -/* 0080EC 800074EC 24842FD8 */ addiu $a0, %lo(gCourseCompletionPercentByRank) # addiu $a0, $a0, 0x2fd8 -/* 0080F0 800074F0 24070001 */ li $a3, 1 -/* 0080F4 800074F4 24020009 */ li $v0, 9 -.L800074F8: -/* 0080F8 800074F8 24E70001 */ addiu $a3, $a3, 1 -/* 0080FC 800074FC 00E2082A */ slt $at, $a3, $v0 -/* 008100 80007500 E4800000 */ swc1 $f0, ($a0) -/* 008104 80007504 1420FFFC */ bnez $at, .L800074F8 -/* 008108 80007508 24840004 */ addiu $a0, $a0, 4 -/* 00810C 8000750C 00001025 */ move $v0, $zero -/* 008110 80007510 10000025 */ b .L800075A8 -/* 008114 80007514 00004025 */ move $t0, $zero -/* 008118 80007518 000070C0 */ sll $t6, $zero, 3 -/* 00811C 8000751C 01C07023 */ subu $t6, $t6, $zero -/* 008120 80007520 000E7100 */ sll $t6, $t6, 4 -/* 008124 80007524 01C07023 */ subu $t6, $t6, $zero -/* 008128 80007528 000E7080 */ sll $t6, $t6, 2 -/* 00812C 8000752C 01C07023 */ subu $t6, $t6, $zero -/* 008130 80007530 3C0F800F */ lui $t7, %hi(gPlayers) # $t7, 0x800f -/* 008134 80007534 25EF6990 */ addiu $t7, %lo(gPlayers) # addiu $t7, $t7, 0x6990 -/* 008138 80007538 000E70C0 */ sll $t6, $t6, 3 -/* 00813C 8000753C 3C0C8016 */ lui $t4, %hi(gCourseCompletionPercentByRank) # $t4, 0x8016 -/* 008140 80007540 3C098016 */ lui $t1, %hi(gTimePlayerLastTouchedFinishLine) # $t1, 0x8016 -/* 008144 80007544 2529F898 */ addiu $t1, %lo(gTimePlayerLastTouchedFinishLine) # addiu $t1, $t1, -0x768 -/* 008148 80007548 258C2FD8 */ addiu $t4, %lo(gCourseCompletionPercentByRank) # addiu $t4, $t4, 0x2fd8 -/* 00814C 8000754C 01CF2021 */ addu $a0, $t6, $t7 -/* 008150 80007550 00002825 */ move $a1, $zero -/* 008154 80007554 24070001 */ li $a3, 1 -/* 008158 80007558 27A60068 */ addiu $a2, $sp, 0x68 -.L8000755C: -/* 00815C 8000755C 94980000 */ lhu $t8, ($a0) -/* 008160 80007560 00021880 */ sll $v1, $v0, 2 -/* 008164 80007564 00C37021 */ addu $t6, $a2, $v1 -/* 008168 80007568 33190800 */ andi $t9, $t8, 0x800 -/* 00816C 8000756C 13200009 */ beqz $t9, .L80007594 -/* 008170 80007570 24840DD8 */ addiu $a0, $a0, 0xdd8 -/* 008174 80007574 00087880 */ sll $t7, $t0, 2 -/* 008178 80007578 012FC021 */ addu $t8, $t1, $t7 -/* 00817C 8000757C ADC80000 */ sw $t0, ($t6) -/* 008180 80007580 C7040000 */ lwc1 $f4, ($t8) -/* 008184 80007584 0183C821 */ addu $t9, $t4, $v1 -/* 008188 80007588 24420001 */ addiu $v0, $v0, 1 -/* 00818C 8000758C 46002187 */ neg.s $f6, $f4 -/* 008190 80007590 E7260000 */ swc1 $f6, ($t9) -.L80007594: -/* 008194 80007594 00E04025 */ move $t0, $a3 -/* 008198 80007598 14A7FFF0 */ bne $a1, $a3, .L8000755C -/* 00819C 8000759C 24E70001 */ addiu $a3, $a3, 1 -/* 0081A0 800075A0 240B0008 */ li $t3, 8 -/* 0081A4 800075A4 110B0049 */ beq $t0, $t3, .L800076CC -.L800075A8: -/* 0081A8 800075A8 000870C0 */ sll $t6, $t0, 3 -/* 0081AC 800075AC 01C87023 */ subu $t6, $t6, $t0 -/* 0081B0 800075B0 000E7100 */ sll $t6, $t6, 4 -/* 0081B4 800075B4 01C87023 */ subu $t6, $t6, $t0 -/* 0081B8 800075B8 000E7080 */ sll $t6, $t6, 2 -/* 0081BC 800075BC 01C87023 */ subu $t6, $t6, $t0 -/* 0081C0 800075C0 3C0F800F */ lui $t7, %hi(gPlayers) # $t7, 0x800f -/* 0081C4 800075C4 25EF6990 */ addiu $t7, %lo(gPlayers) # addiu $t7, $t7, 0x6990 -/* 0081C8 800075C8 000E70C0 */ sll $t6, $t6, 3 -/* 0081CC 800075CC 3C098016 */ lui $t1, %hi(gTimePlayerLastTouchedFinishLine) # $t1, 0x8016 -/* 0081D0 800075D0 3C0C8016 */ lui $t4, %hi(gCourseCompletionPercentByRank) # $t4, 0x8016 -/* 0081D4 800075D4 258C2FD8 */ addiu $t4, %lo(gCourseCompletionPercentByRank) # addiu $t4, $t4, 0x2fd8 -/* 0081D8 800075D8 2529F898 */ addiu $t1, %lo(gTimePlayerLastTouchedFinishLine) # addiu $t1, $t1, -0x768 -/* 0081DC 800075DC 01CF2021 */ addu $a0, $t6, $t7 -/* 0081E0 800075E0 27A60068 */ addiu $a2, $sp, 0x68 -.L800075E4: -/* 0081E4 800075E4 94980000 */ lhu $t8, ($a0) -/* 0081E8 800075E8 00021880 */ sll $v1, $v0, 2 -/* 0081EC 800075EC 00C37021 */ addu $t6, $a2, $v1 -/* 0081F0 800075F0 33190800 */ andi $t9, $t8, 0x800 -/* 0081F4 800075F4 13200008 */ beqz $t9, .L80007618 -/* 0081F8 800075F8 00087880 */ sll $t7, $t0, 2 -/* 0081FC 800075FC ADC80000 */ sw $t0, ($t6) -/* 008200 80007600 012FC021 */ addu $t8, $t1, $t7 -/* 008204 80007604 C7080000 */ lwc1 $f8, ($t8) -/* 008208 80007608 0183C821 */ addu $t9, $t4, $v1 -/* 00820C 8000760C 24420001 */ addiu $v0, $v0, 1 -/* 008210 80007610 46004287 */ neg.s $f10, $f8 -/* 008214 80007614 E72A0000 */ swc1 $f10, ($t9) -.L80007618: -/* 008218 80007618 948E0DD8 */ lhu $t6, 0xdd8($a0) -/* 00821C 8000761C 00021880 */ sll $v1, $v0, 2 -/* 008220 80007620 00C3C821 */ addu $t9, $a2, $v1 -/* 008224 80007624 31CF0800 */ andi $t7, $t6, 0x800 -/* 008228 80007628 11E00009 */ beqz $t7, .L80007650 -/* 00822C 8000762C 25180001 */ addiu $t8, $t0, 1 -/* 008230 80007630 00087080 */ sll $t6, $t0, 2 -/* 008234 80007634 012E7821 */ addu $t7, $t1, $t6 -/* 008238 80007638 AF380000 */ sw $t8, ($t9) -/* 00823C 8000763C C5F00004 */ lwc1 $f16, 4($t7) -/* 008240 80007640 0183C021 */ addu $t8, $t4, $v1 -/* 008244 80007644 24420001 */ addiu $v0, $v0, 1 -/* 008248 80007648 46008487 */ neg.s $f18, $f16 -/* 00824C 8000764C E7120000 */ swc1 $f18, ($t8) -.L80007650: -/* 008250 80007650 94991BB0 */ lhu $t9, 0x1bb0($a0) -/* 008254 80007654 00021880 */ sll $v1, $v0, 2 -/* 008258 80007658 00C3C021 */ addu $t8, $a2, $v1 -/* 00825C 8000765C 332E0800 */ andi $t6, $t9, 0x800 -/* 008260 80007660 11C00009 */ beqz $t6, .L80007688 -/* 008264 80007664 250F0002 */ addiu $t7, $t0, 2 -/* 008268 80007668 0008C880 */ sll $t9, $t0, 2 -/* 00826C 8000766C 01397021 */ addu $t6, $t1, $t9 -/* 008270 80007670 AF0F0000 */ sw $t7, ($t8) -/* 008274 80007674 C5C40008 */ lwc1 $f4, 8($t6) -/* 008278 80007678 01837821 */ addu $t7, $t4, $v1 -/* 00827C 8000767C 24420001 */ addiu $v0, $v0, 1 -/* 008280 80007680 46002187 */ neg.s $f6, $f4 -/* 008284 80007684 E5E60000 */ swc1 $f6, ($t7) -.L80007688: -/* 008288 80007688 94982988 */ lhu $t8, 0x2988($a0) -/* 00828C 8000768C 00021880 */ sll $v1, $v0, 2 -/* 008290 80007690 00C37821 */ addu $t7, $a2, $v1 -/* 008294 80007694 33190800 */ andi $t9, $t8, 0x800 -/* 008298 80007698 13200009 */ beqz $t9, .L800076C0 -/* 00829C 8000769C 250E0003 */ addiu $t6, $t0, 3 -/* 0082A0 800076A0 0008C080 */ sll $t8, $t0, 2 -/* 0082A4 800076A4 0138C821 */ addu $t9, $t1, $t8 -/* 0082A8 800076A8 ADEE0000 */ sw $t6, ($t7) -/* 0082AC 800076AC C728000C */ lwc1 $f8, 0xc($t9) -/* 0082B0 800076B0 01837021 */ addu $t6, $t4, $v1 -/* 0082B4 800076B4 24420001 */ addiu $v0, $v0, 1 -/* 0082B8 800076B8 46004287 */ neg.s $f10, $f8 -/* 0082BC 800076BC E5CA0000 */ swc1 $f10, ($t6) -.L800076C0: -/* 0082C0 800076C0 25080004 */ addiu $t0, $t0, 4 -/* 0082C4 800076C4 150AFFC7 */ bne $t0, $t2, .L800075E4 -/* 0082C8 800076C8 24843760 */ addiu $a0, $a0, 0x3760 -.L800076CC: -/* 0082CC 800076CC 3C0C8016 */ lui $t4, %hi(gCourseCompletionPercentByRank) # $t4, 0x8016 -/* 0082D0 800076D0 258C2FD8 */ addiu $t4, %lo(gCourseCompletionPercentByRank) # addiu $t4, $t4, 0x2fd8 -/* 0082D4 800076D4 00004025 */ move $t0, $zero -/* 0082D8 800076D8 27A60068 */ addiu $a2, $sp, 0x68 -/* 0082DC 800076DC 240B0008 */ li $t3, 8 -/* 0082E0 800076E0 10000020 */ b .L80007764 -/* 0082E4 800076E4 00404825 */ move $t1, $v0 -/* 0082E8 800076E8 000078C0 */ sll $t7, $zero, 3 -/* 0082EC 800076EC 01E07823 */ subu $t7, $t7, $zero -/* 0082F0 800076F0 000F7900 */ sll $t7, $t7, 4 -/* 0082F4 800076F4 01E07823 */ subu $t7, $t7, $zero -/* 0082F8 800076F8 000F7880 */ sll $t7, $t7, 2 -/* 0082FC 800076FC 01E07823 */ subu $t7, $t7, $zero -/* 008300 80007700 3C18800F */ lui $t8, %hi(gPlayers) # $t8, 0x800f -/* 008304 80007704 27186990 */ addiu $t8, %lo(gPlayers) # addiu $t8, $t8, 0x6990 -/* 008308 80007708 000F78C0 */ sll $t7, $t7, 3 -/* 00830C 8000770C 3C0D8016 */ lui $t5, %hi(gCourseCompletionPercentByPlayerId) # $t5, 0x8016 -/* 008310 80007710 25AD44D0 */ addiu $t5, %lo(gCourseCompletionPercentByPlayerId) # addiu $t5, $t5, 0x44d0 -/* 008314 80007714 01F82021 */ addu $a0, $t7, $t8 -/* 008318 80007718 00002825 */ move $a1, $zero -/* 00831C 8000771C 24070001 */ li $a3, 1 -.L80007720: -/* 008320 80007720 94990000 */ lhu $t9, ($a0) -/* 008324 80007724 00021880 */ sll $v1, $v0, 2 -/* 008328 80007728 00C37821 */ addu $t7, $a2, $v1 -/* 00832C 8000772C 332E0800 */ andi $t6, $t9, 0x800 -/* 008330 80007730 15C00008 */ bnez $t6, .L80007754 -/* 008334 80007734 24840DD8 */ addiu $a0, $a0, 0xdd8 -/* 008338 80007738 0008C080 */ sll $t8, $t0, 2 -/* 00833C 8000773C 01B8C821 */ addu $t9, $t5, $t8 -/* 008340 80007740 ADE80000 */ sw $t0, ($t7) -/* 008344 80007744 C7300000 */ lwc1 $f16, ($t9) -/* 008348 80007748 01837021 */ addu $t6, $t4, $v1 -/* 00834C 8000774C 24420001 */ addiu $v0, $v0, 1 -/* 008350 80007750 E5D00000 */ swc1 $f16, ($t6) -.L80007754: -/* 008354 80007754 00E04025 */ move $t0, $a3 -/* 008358 80007758 14A7FFF1 */ bne $a1, $a3, .L80007720 -/* 00835C 8000775C 24E70001 */ addiu $a3, $a3, 1 -/* 008360 80007760 110B0042 */ beq $t0, $t3, .L8000786C -.L80007764: -/* 008364 80007764 000878C0 */ sll $t7, $t0, 3 -/* 008368 80007768 01E87823 */ subu $t7, $t7, $t0 -/* 00836C 8000776C 000F7900 */ sll $t7, $t7, 4 -/* 008370 80007770 01E87823 */ subu $t7, $t7, $t0 -/* 008374 80007774 000F7880 */ sll $t7, $t7, 2 -/* 008378 80007778 01E87823 */ subu $t7, $t7, $t0 -/* 00837C 8000777C 3C18800F */ lui $t8, %hi(gPlayers) # $t8, 0x800f -/* 008380 80007780 27186990 */ addiu $t8, %lo(gPlayers) # addiu $t8, $t8, 0x6990 -/* 008384 80007784 000F78C0 */ sll $t7, $t7, 3 -/* 008388 80007788 3C0D8016 */ lui $t5, %hi(gCourseCompletionPercentByPlayerId) # $t5, 0x8016 -/* 00838C 8000778C 25AD44D0 */ addiu $t5, %lo(gCourseCompletionPercentByPlayerId) # addiu $t5, $t5, 0x44d0 -/* 008390 80007790 01F82021 */ addu $a0, $t7, $t8 -.L80007794: -/* 008394 80007794 94990000 */ lhu $t9, ($a0) -/* 008398 80007798 00021880 */ sll $v1, $v0, 2 -/* 00839C 8000779C 00C37821 */ addu $t7, $a2, $v1 -/* 0083A0 800077A0 332E0800 */ andi $t6, $t9, 0x800 -/* 0083A4 800077A4 15C00007 */ bnez $t6, .L800077C4 -/* 0083A8 800077A8 0008C080 */ sll $t8, $t0, 2 -/* 0083AC 800077AC ADE80000 */ sw $t0, ($t7) -/* 0083B0 800077B0 01B8C821 */ addu $t9, $t5, $t8 -/* 0083B4 800077B4 C7320000 */ lwc1 $f18, ($t9) -/* 0083B8 800077B8 01837021 */ addu $t6, $t4, $v1 -/* 0083BC 800077BC 24420001 */ addiu $v0, $v0, 1 -/* 0083C0 800077C0 E5D20000 */ swc1 $f18, ($t6) -.L800077C4: -/* 0083C4 800077C4 948F0DD8 */ lhu $t7, 0xdd8($a0) -/* 0083C8 800077C8 00021880 */ sll $v1, $v0, 2 -/* 0083CC 800077CC 00C37021 */ addu $t6, $a2, $v1 -/* 0083D0 800077D0 31F80800 */ andi $t8, $t7, 0x800 -/* 0083D4 800077D4 17000008 */ bnez $t8, .L800077F8 -/* 0083D8 800077D8 25190001 */ addiu $t9, $t0, 1 -/* 0083DC 800077DC 00087880 */ sll $t7, $t0, 2 -/* 0083E0 800077E0 01AFC021 */ addu $t8, $t5, $t7 -/* 0083E4 800077E4 ADD90000 */ sw $t9, ($t6) -/* 0083E8 800077E8 C7040004 */ lwc1 $f4, 4($t8) -/* 0083EC 800077EC 0183C821 */ addu $t9, $t4, $v1 -/* 0083F0 800077F0 24420001 */ addiu $v0, $v0, 1 -/* 0083F4 800077F4 E7240000 */ swc1 $f4, ($t9) -.L800077F8: -/* 0083F8 800077F8 948E1BB0 */ lhu $t6, 0x1bb0($a0) -/* 0083FC 800077FC 00021880 */ sll $v1, $v0, 2 -/* 008400 80007800 00C3C821 */ addu $t9, $a2, $v1 -/* 008404 80007804 31CF0800 */ andi $t7, $t6, 0x800 -/* 008408 80007808 15E00008 */ bnez $t7, .L8000782C -/* 00840C 8000780C 25180002 */ addiu $t8, $t0, 2 -/* 008410 80007810 00087080 */ sll $t6, $t0, 2 -/* 008414 80007814 01AE7821 */ addu $t7, $t5, $t6 -/* 008418 80007818 AF380000 */ sw $t8, ($t9) -/* 00841C 8000781C C5E60008 */ lwc1 $f6, 8($t7) -/* 008420 80007820 0183C021 */ addu $t8, $t4, $v1 -/* 008424 80007824 24420001 */ addiu $v0, $v0, 1 -/* 008428 80007828 E7060000 */ swc1 $f6, ($t8) -.L8000782C: -/* 00842C 8000782C 94992988 */ lhu $t9, 0x2988($a0) -/* 008430 80007830 00021880 */ sll $v1, $v0, 2 -/* 008434 80007834 00C3C021 */ addu $t8, $a2, $v1 -/* 008438 80007838 332E0800 */ andi $t6, $t9, 0x800 -/* 00843C 8000783C 15C00008 */ bnez $t6, .L80007860 -/* 008440 80007840 250F0003 */ addiu $t7, $t0, 3 -/* 008444 80007844 0008C880 */ sll $t9, $t0, 2 -/* 008448 80007848 01B97021 */ addu $t6, $t5, $t9 -/* 00844C 8000784C AF0F0000 */ sw $t7, ($t8) -/* 008450 80007850 C5C8000C */ lwc1 $f8, 0xc($t6) -/* 008454 80007854 01837821 */ addu $t7, $t4, $v1 -/* 008458 80007858 24420001 */ addiu $v0, $v0, 1 -/* 00845C 8000785C E5E80000 */ swc1 $f8, ($t7) -.L80007860: -/* 008460 80007860 25080004 */ addiu $t0, $t0, 4 -/* 008464 80007864 150AFFCB */ bne $t0, $t2, .L80007794 -/* 008468 80007868 24843760 */ addiu $a0, $a0, 0x3760 -.L8000786C: -/* 00846C 8000786C 252DFFFF */ addiu $t5, $t1, -1 -/* 008470 80007870 19A00047 */ blez $t5, .L80007990 -/* 008474 80007874 00004025 */ move $t0, $zero -/* 008478 80007878 24070001 */ li $a3, 1 -.L8000787C: -/* 00847C 8000787C 00E9082A */ slt $at, $a3, $t1 -/* 008480 80007880 10200040 */ beqz $at, .L80007984 -/* 008484 80007884 00E01025 */ move $v0, $a3 -/* 008488 80007888 3C188016 */ lui $t8, %hi(gCourseCompletionPercentByRank) # $t8, 0x8016 -/* 00848C 8000788C 01276023 */ subu $t4, $t1, $a3 -/* 008490 80007890 31830001 */ andi $v1, $t4, 1 -/* 008494 80007894 27182FD8 */ addiu $t8, %lo(gCourseCompletionPercentByRank) # addiu $t8, $t8, 0x2fd8 -/* 008498 80007898 00082880 */ sll $a1, $t0, 2 -/* 00849C 8000789C 10600013 */ beqz $v1, .L800078EC -/* 0084A0 800078A0 00B82021 */ addu $a0, $a1, $t8 -/* 0084A4 800078A4 00071880 */ sll $v1, $a3, 2 -/* 0084A8 800078A8 00786021 */ addu $t4, $v1, $t8 -/* 0084AC 800078AC C5820000 */ lwc1 $f2, ($t4) -/* 0084B0 800078B0 C4800000 */ lwc1 $f0, ($a0) -/* 0084B4 800078B4 00C34021 */ addu $t0, $a2, $v1 -/* 0084B8 800078B8 00C51021 */ addu $v0, $a2, $a1 -/* 0084BC 800078BC 4602003C */ c.lt.s $f0, $f2 -/* 0084C0 800078C0 00000000 */ nop -/* 0084C4 800078C4 45020008 */ bc1fl .L800078E8 -/* 0084C8 800078C8 24E20001 */ addiu $v0, $a3, 1 -/* 0084CC 800078CC 8D190000 */ lw $t9, ($t0) -/* 0084D0 800078D0 8C500000 */ lw $s0, ($v0) -/* 0084D4 800078D4 E4820000 */ swc1 $f2, ($a0) -/* 0084D8 800078D8 AC590000 */ sw $t9, ($v0) -/* 0084DC 800078DC E5800000 */ swc1 $f0, ($t4) -/* 0084E0 800078E0 AD100000 */ sw $s0, ($t0) -/* 0084E4 800078E4 24E20001 */ addiu $v0, $a3, 1 -.L800078E8: -/* 0084E8 800078E8 10490026 */ beq $v0, $t1, .L80007984 -.L800078EC: -/* 0084EC 800078EC 3C0E8016 */ lui $t6, %hi(gCourseCompletionPercentByRank) # $t6, 0x8016 -/* 0084F0 800078F0 25CE2FD8 */ addiu $t6, %lo(gCourseCompletionPercentByRank) # addiu $t6, $t6, 0x2fd8 -/* 0084F4 800078F4 00021880 */ sll $v1, $v0, 2 -/* 0084F8 800078F8 00097880 */ sll $t7, $t1, 2 -/* 0084FC 800078FC 01EE8821 */ addu $s1, $t7, $t6 -/* 008500 80007900 006E6021 */ addu $t4, $v1, $t6 -.L80007904: -/* 008504 80007904 C4800000 */ lwc1 $f0, ($a0) -/* 008508 80007908 C5820000 */ lwc1 $f2, ($t4) -/* 00850C 8000790C 00C51021 */ addu $v0, $a2, $a1 -/* 008510 80007910 00C34021 */ addu $t0, $a2, $v1 -/* 008514 80007914 4602003C */ c.lt.s $f0, $f2 -/* 008518 80007918 00000000 */ nop -/* 00851C 8000791C 4502000A */ bc1fl .L80007948 -/* 008520 80007920 C5820004 */ lwc1 $f2, 4($t4) -/* 008524 80007924 8D180000 */ lw $t8, ($t0) -/* 008528 80007928 8C500000 */ lw $s0, ($v0) -/* 00852C 8000792C 46000306 */ mov.s $f12, $f0 -/* 008530 80007930 E4820000 */ swc1 $f2, ($a0) -/* 008534 80007934 E58C0000 */ swc1 $f12, ($t4) -/* 008538 80007938 AC580000 */ sw $t8, ($v0) -/* 00853C 8000793C C4800000 */ lwc1 $f0, ($a0) -/* 008540 80007940 AD100000 */ sw $s0, ($t0) -/* 008544 80007944 C5820004 */ lwc1 $f2, 4($t4) -.L80007948: -/* 008548 80007948 00C51021 */ addu $v0, $a2, $a1 -/* 00854C 8000794C 00C34021 */ addu $t0, $a2, $v1 -/* 008550 80007950 4602003C */ c.lt.s $f0, $f2 -/* 008554 80007954 00000000 */ nop -/* 008558 80007958 45020008 */ bc1fl .L8000797C -/* 00855C 8000795C 258C0008 */ addiu $t4, $t4, 8 -/* 008560 80007960 8D190004 */ lw $t9, 4($t0) -/* 008564 80007964 8C500000 */ lw $s0, ($v0) -/* 008568 80007968 E4820000 */ swc1 $f2, ($a0) -/* 00856C 8000796C AC590000 */ sw $t9, ($v0) -/* 008570 80007970 E5800004 */ swc1 $f0, 4($t4) -/* 008574 80007974 AD100004 */ sw $s0, 4($t0) -/* 008578 80007978 258C0008 */ addiu $t4, $t4, 8 -.L8000797C: -/* 00857C 8000797C 1591FFE1 */ bne $t4, $s1, .L80007904 -/* 008580 80007980 24630008 */ addiu $v1, $v1, 8 -.L80007984: -/* 008584 80007984 00E04025 */ move $t0, $a3 -/* 008588 80007988 14EDFFBC */ bne $a3, $t5, .L8000787C -/* 00858C 8000798C 24E70001 */ addiu $a3, $a3, 1 -.L80007990: -/* 008590 80007990 29A10006 */ slti $at, $t5, 6 -/* 008594 80007994 10200049 */ beqz $at, .L80007ABC -/* 008598 80007998 01204025 */ move $t0, $t1 -/* 00859C 8000799C 25270001 */ addiu $a3, $t1, 1 -/* 0085A0 800079A0 2549FFFF */ addiu $t1, $t2, -1 -.L800079A4: -/* 0085A4 800079A4 28E10008 */ slti $at, $a3, 8 -/* 0085A8 800079A8 10200041 */ beqz $at, .L80007AB0 -/* 0085AC 800079AC 00E01025 */ move $v0, $a3 -/* 0085B0 800079B0 240E0008 */ li $t6, 8 -/* 0085B4 800079B4 01C76023 */ subu $t4, $t6, $a3 -/* 0085B8 800079B8 3C0F8016 */ lui $t7, %hi(gCourseCompletionPercentByRank) # $t7, 0x8016 -/* 0085BC 800079BC 25EF2FD8 */ addiu $t7, %lo(gCourseCompletionPercentByRank) # addiu $t7, $t7, 0x2fd8 -/* 0085C0 800079C0 31830001 */ andi $v1, $t4, 1 -/* 0085C4 800079C4 00082880 */ sll $a1, $t0, 2 -/* 0085C8 800079C8 10600013 */ beqz $v1, .L80007A18 -/* 0085CC 800079CC 00AF2021 */ addu $a0, $a1, $t7 -/* 0085D0 800079D0 00071880 */ sll $v1, $a3, 2 -/* 0085D4 800079D4 006F6021 */ addu $t4, $v1, $t7 -/* 0085D8 800079D8 C5820000 */ lwc1 $f2, ($t4) -/* 0085DC 800079DC C4800000 */ lwc1 $f0, ($a0) -/* 0085E0 800079E0 00C34021 */ addu $t0, $a2, $v1 -/* 0085E4 800079E4 00C51021 */ addu $v0, $a2, $a1 -/* 0085E8 800079E8 4602003C */ c.lt.s $f0, $f2 -/* 0085EC 800079EC 00000000 */ nop -/* 0085F0 800079F0 45020008 */ bc1fl .L80007A14 -/* 0085F4 800079F4 24E20001 */ addiu $v0, $a3, 1 -/* 0085F8 800079F8 8D180000 */ lw $t8, ($t0) -/* 0085FC 800079FC 8C500000 */ lw $s0, ($v0) -/* 008600 80007A00 E4820000 */ swc1 $f2, ($a0) -/* 008604 80007A04 AC580000 */ sw $t8, ($v0) -/* 008608 80007A08 E5800000 */ swc1 $f0, ($t4) -/* 00860C 80007A0C AD100000 */ sw $s0, ($t0) -/* 008610 80007A10 24E20001 */ addiu $v0, $a3, 1 -.L80007A14: -/* 008614 80007A14 104B0026 */ beq $v0, $t3, .L80007AB0 -.L80007A18: -/* 008618 80007A18 3C198016 */ lui $t9, %hi(gCourseCompletionPercentByRank) # $t9, 0x8016 -/* 00861C 80007A1C 27392FD8 */ addiu $t9, %lo(gCourseCompletionPercentByRank) # addiu $t9, $t9, 0x2fd8 -/* 008620 80007A20 00021880 */ sll $v1, $v0, 2 -/* 008624 80007A24 000A7080 */ sll $t6, $t2, 2 -/* 008628 80007A28 01D96821 */ addu $t5, $t6, $t9 -/* 00862C 80007A2C 00796021 */ addu $t4, $v1, $t9 -.L80007A30: -/* 008630 80007A30 C4800000 */ lwc1 $f0, ($a0) -/* 008634 80007A34 C5820000 */ lwc1 $f2, ($t4) -/* 008638 80007A38 00C51021 */ addu $v0, $a2, $a1 -/* 00863C 80007A3C 00C34021 */ addu $t0, $a2, $v1 -/* 008640 80007A40 4602003C */ c.lt.s $f0, $f2 -/* 008644 80007A44 00000000 */ nop -/* 008648 80007A48 4502000A */ bc1fl .L80007A74 -/* 00864C 80007A4C C5820004 */ lwc1 $f2, 4($t4) -/* 008650 80007A50 8D0F0000 */ lw $t7, ($t0) -/* 008654 80007A54 8C500000 */ lw $s0, ($v0) -/* 008658 80007A58 46000306 */ mov.s $f12, $f0 -/* 00865C 80007A5C E4820000 */ swc1 $f2, ($a0) -/* 008660 80007A60 E58C0000 */ swc1 $f12, ($t4) -/* 008664 80007A64 AC4F0000 */ sw $t7, ($v0) -/* 008668 80007A68 C4800000 */ lwc1 $f0, ($a0) -/* 00866C 80007A6C AD100000 */ sw $s0, ($t0) -/* 008670 80007A70 C5820004 */ lwc1 $f2, 4($t4) -.L80007A74: -/* 008674 80007A74 00C51021 */ addu $v0, $a2, $a1 -/* 008678 80007A78 00C34021 */ addu $t0, $a2, $v1 -/* 00867C 80007A7C 4602003C */ c.lt.s $f0, $f2 -/* 008680 80007A80 00000000 */ nop -/* 008684 80007A84 45020008 */ bc1fl .L80007AA8 -/* 008688 80007A88 258C0008 */ addiu $t4, $t4, 8 -/* 00868C 80007A8C 8D180004 */ lw $t8, 4($t0) -/* 008690 80007A90 8C500000 */ lw $s0, ($v0) -/* 008694 80007A94 E4820000 */ swc1 $f2, ($a0) -/* 008698 80007A98 AC580000 */ sw $t8, ($v0) -/* 00869C 80007A9C E5800004 */ swc1 $f0, 4($t4) -/* 0086A0 80007AA0 AD100004 */ sw $s0, 4($t0) -/* 0086A4 80007AA4 258C0008 */ addiu $t4, $t4, 8 -.L80007AA8: -/* 0086A8 80007AA8 158DFFE1 */ bne $t4, $t5, .L80007A30 -/* 0086AC 80007AAC 24630008 */ addiu $v1, $v1, 8 -.L80007AB0: -/* 0086B0 80007AB0 00E04025 */ move $t0, $a3 -/* 0086B4 80007AB4 14E9FFBB */ bne $a3, $t1, .L800079A4 -/* 0086B8 80007AB8 24E70001 */ addiu $a3, $a3, 1 -.L80007ABC: -/* 0086BC 80007ABC 3C028016 */ lui $v0, %hi(D_801643E0) # $v0, 0x8016 -/* 0086C0 80007AC0 3C038016 */ lui $v1, %hi(gGPCurrentRaceRankByPlayerId) # $v1, 0x8016 -/* 0086C4 80007AC4 3C048016 */ lui $a0, %hi(gGPCurrentRaceRankByPlayerId + 0x20) # $a0, 0x8016 -/* 0086C8 80007AC8 248443D8 */ addiu $a0, %lo(gGPCurrentRaceRankByPlayerId + 0x20) # addiu $a0, $a0, 0x43d8 -/* 0086CC 80007ACC 246343B8 */ addiu $v1, %lo(gGPCurrentRaceRankByPlayerId) # addiu $v1, $v1, 0x43b8 -/* 0086D0 80007AD0 244243E0 */ addiu $v0, %lo(D_801643E0) # addiu $v0, $v0, 0x43e0 -/* 0086D4 80007AD4 24070001 */ li $a3, 1 -.L80007AD8: -/* 0086D8 80007AD8 8C6E0000 */ lw $t6, ($v1) -/* 0086DC 80007ADC 24630004 */ addiu $v1, $v1, 4 -/* 0086E0 80007AE0 0064082B */ sltu $at, $v1, $a0 -/* 0086E4 80007AE4 24E70001 */ addiu $a3, $a3, 1 -/* 0086E8 80007AE8 24420004 */ addiu $v0, $v0, 4 -/* 0086EC 80007AEC 1420FFFA */ bnez $at, .L80007AD8 -/* 0086F0 80007AF0 AC4EFFFC */ sw $t6, -4($v0) -/* 0086F4 80007AF4 10000017 */ b .L80007B54 -/* 0086F8 80007AF8 00004025 */ move $t0, $zero -/* 0086FC 80007AFC 3C0E8016 */ lui $t6, %hi(gGPCurrentRacePlayerIdByRank) # $t6, 0x8016 -/* 008700 80007B00 25CE4360 */ addiu $t6, %lo(gGPCurrentRacePlayerIdByRank) # addiu $t6, $t6, 0x4360 -/* 008704 80007B04 0000C880 */ sll $t9, $zero, 2 -/* 008708 80007B08 27AF0068 */ addiu $t7, $sp, 0x68 -/* 00870C 80007B0C 0000C040 */ sll $t8, $zero, 1 -/* 008710 80007B10 3C0C8016 */ lui $t4, %hi(gGPCurrentRaceRankByPlayerId) # $t4, 0x8016 -/* 008714 80007B14 258C43B8 */ addiu $t4, %lo(gGPCurrentRaceRankByPlayerId) # addiu $t4, $t4, 0x43b8 -/* 008718 80007B18 030E2021 */ addu $a0, $t8, $t6 -/* 00871C 80007B1C 032F1021 */ addu $v0, $t9, $t7 -/* 008720 80007B20 00002825 */ move $a1, $zero -/* 008724 80007B24 24070001 */ li $a3, 1 -.L80007B28: -/* 008728 80007B28 8C430000 */ lw $v1, ($v0) -/* 00872C 80007B2C 24420004 */ addiu $v0, $v0, 4 -/* 008730 80007B30 24840002 */ addiu $a0, $a0, 2 -/* 008734 80007B34 0003C880 */ sll $t9, $v1, 2 -/* 008738 80007B38 01997821 */ addu $t7, $t4, $t9 -/* 00873C 80007B3C ADE80000 */ sw $t0, ($t7) -/* 008740 80007B40 00E04025 */ move $t0, $a3 -/* 008744 80007B44 A483FFFE */ sh $v1, -2($a0) -/* 008748 80007B48 14A7FFF7 */ bne $a1, $a3, .L80007B28 -/* 00874C 80007B4C 24E70001 */ addiu $a3, $a3, 1 -/* 008750 80007B50 110B0025 */ beq $t0, $t3, .L80007BE8 -.L80007B54: -/* 008754 80007B54 3C0F8016 */ lui $t7, %hi(gGPCurrentRacePlayerIdByRank) # $t7, 0x8016 -/* 008758 80007B58 25EF4360 */ addiu $t7, %lo(gGPCurrentRacePlayerIdByRank) # addiu $t7, $t7, 0x4360 -/* 00875C 80007B5C 3C0C8016 */ lui $t4, %hi(gGPCurrentRaceRankByPlayerId) # $t4, 0x8016 -/* 008760 80007B60 0008C080 */ sll $t8, $t0, 2 -/* 008764 80007B64 27AE0068 */ addiu $t6, $sp, 0x68 -/* 008768 80007B68 0008C840 */ sll $t9, $t0, 1 -/* 00876C 80007B6C 032F2021 */ addu $a0, $t9, $t7 -/* 008770 80007B70 030E1021 */ addu $v0, $t8, $t6 -/* 008774 80007B74 258C43B8 */ addiu $t4, %lo(gGPCurrentRaceRankByPlayerId) # addiu $t4, $t4, 0x43b8 -/* 008778 80007B78 25070001 */ addiu $a3, $t0, 1 -.L80007B7C: -/* 00877C 80007B7C 8C430000 */ lw $v1, ($v0) -/* 008780 80007B80 24420010 */ addiu $v0, $v0, 0x10 -/* 008784 80007B84 24840008 */ addiu $a0, $a0, 8 -/* 008788 80007B88 0003C080 */ sll $t8, $v1, 2 -/* 00878C 80007B8C 01987021 */ addu $t6, $t4, $t8 -/* 008790 80007B90 ADC80000 */ sw $t0, ($t6) -/* 008794 80007B94 8C45FFF4 */ lw $a1, -0xc($v0) -/* 008798 80007B98 25180002 */ addiu $t8, $t0, 2 -/* 00879C 80007B9C A483FFF8 */ sh $v1, -8($a0) -/* 0087A0 80007BA0 0005C880 */ sll $t9, $a1, 2 -/* 0087A4 80007BA4 01997821 */ addu $t7, $t4, $t9 -/* 0087A8 80007BA8 ADE70000 */ sw $a3, ($t7) -/* 0087AC 80007BAC 8C46FFF8 */ lw $a2, -8($v0) -/* 0087B0 80007BB0 250F0003 */ addiu $t7, $t0, 3 -/* 0087B4 80007BB4 25080004 */ addiu $t0, $t0, 4 -/* 0087B8 80007BB8 00067080 */ sll $t6, $a2, 2 -/* 0087BC 80007BBC 018EC821 */ addu $t9, $t4, $t6 -/* 0087C0 80007BC0 AF380000 */ sw $t8, ($t9) -/* 0087C4 80007BC4 8C49FFFC */ lw $t1, -4($v0) -/* 0087C8 80007BC8 24E70004 */ addiu $a3, $a3, 4 -/* 0087CC 80007BCC A485FFFA */ sh $a1, -6($a0) -/* 0087D0 80007BD0 00097080 */ sll $t6, $t1, 2 -/* 0087D4 80007BD4 018EC021 */ addu $t8, $t4, $t6 -/* 0087D8 80007BD8 AF0F0000 */ sw $t7, ($t8) -/* 0087DC 80007BDC A486FFFC */ sh $a2, -4($a0) -/* 0087E0 80007BE0 150AFFE6 */ bne $t0, $t2, .L80007B7C -/* 0087E4 80007BE4 A489FFFE */ sh $t1, -2($a0) -.L80007BE8: -/* 0087E8 80007BE8 8FB00008 */ lw $s0, 8($sp) -/* 0087EC 80007BEC 8FB1000C */ lw $s1, 0xc($sp) -/* 0087F0 80007BF0 03E00008 */ jr $ra -/* 0087F4 80007BF4 27BD0090 */ addiu $sp, $sp, 0x90 diff --git a/asm/non_matchings/code_80005FD0/func_80007D04.s b/asm/non_matchings/code_80005FD0/func_80007D04.s deleted file mode 100644 index 005324184..000000000 --- a/asm/non_matchings/code_80005FD0/func_80007D04.s +++ /dev/null @@ -1,181 +0,0 @@ -glabel func_80007D04 -/* 008904 80007D04 3C0B8016 */ lui $t3, %hi(gGPCurrentRaceRankByPlayerId) # $t3, 0x8016 -/* 008908 80007D08 256B43B8 */ addiu $t3, %lo(gGPCurrentRaceRankByPlayerId) # addiu $t3, $t3, 0x43b8 -/* 00890C 80007D0C 3C038016 */ lui $v1, %hi(D_80163478) # $v1, 0x8016 -/* 008910 80007D10 00041080 */ sll $v0, $a0, 2 -/* 008914 80007D14 84633478 */ lh $v1, %lo(D_80163478)($v1) -/* 008918 80007D18 0162C821 */ addu $t9, $t3, $v0 -/* 00891C 80007D1C 8F2C0000 */ lw $t4, ($t9) -/* 008920 80007D20 3C088016 */ lui $t0, %hi(D_80164450) # $t0, 0x8016 -/* 008924 80007D24 25084450 */ addiu $t0, %lo(D_80164450) # addiu $t0, $t0, 0x4450 -/* 008928 80007D28 00037080 */ sll $t6, $v1, 2 -/* 00892C 80007D2C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 008930 80007D30 010E7821 */ addu $t7, $t0, $t6 -/* 008934 80007D34 0102C021 */ addu $t8, $t0, $v0 -/* 008938 80007D38 29810002 */ slti $at, $t4, 2 -/* 00893C 80007D3C AFBF0014 */ sw $ra, 0x14($sp) -/* 008940 80007D40 00803825 */ move $a3, $a0 -/* 008944 80007D44 00A03025 */ move $a2, $a1 -/* 008948 80007D48 85E90002 */ lh $t1, 2($t7) -/* 00894C 80007D4C 10200019 */ beqz $at, .L80007DB4 -/* 008950 80007D50 870A0002 */ lh $t2, 2($t8) -/* 008954 80007D54 016E6821 */ addu $t5, $t3, $t6 -/* 008958 80007D58 01497023 */ subu $t6, $t2, $t1 -/* 00895C 80007D5C 000E7C00 */ sll $t7, $t6, 0x10 -/* 008960 80007D60 000FC403 */ sra $t8, $t7, 0x10 -/* 008964 80007D64 2B010191 */ slti $at, $t8, 0x191 -/* 008968 80007D68 14200020 */ bnez $at, .L80007DEC -/* 00896C 80007D6C 85A20002 */ lh $v0, 2($t5) -/* 008970 80007D70 28410006 */ slti $at, $v0, 6 -/* 008974 80007D74 1420001D */ bnez $at, .L80007DEC -/* 008978 80007D78 00A02025 */ move $a0, $a1 -/* 00897C 80007D7C 8CB900BC */ lw $t9, 0xbc($a1) -/* 008980 80007D80 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 008984 80007D84 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 008988 80007D88 03216024 */ and $t4, $t9, $at -/* 00898C 80007D8C ACAC00BC */ sw $t4, 0xbc($a1) -/* 008990 80007D90 0C00C3F2 */ jal player_speed -/* 008994 80007D94 AFA70030 */ sw $a3, 0x30($sp) -/* 008998 80007D98 8FA70030 */ lw $a3, 0x30($sp) -/* 00899C 80007D9C 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 -/* 0089A0 80007DA0 240D0004 */ li $t5, 4 -/* 0089A4 80007DA4 00077040 */ sll $t6, $a3, 1 -/* 0089A8 80007DA8 002E0821 */ addu $at, $at, $t6 -/* 0089AC 80007DAC 10000079 */ b .L80007F94 -/* 0089B0 80007DB0 A42D34C0 */ sh $t5, %lo(D_801634C0)($at) # 0x34c0($at) -.L80007DB4: -/* 0089B4 80007DB4 8CCF00BC */ lw $t7, 0xbc($a2) -/* 0089B8 80007DB8 3C010020 */ lui $at, 0x20 -/* 0089BC 80007DBC 00C02025 */ move $a0, $a2 -/* 0089C0 80007DC0 01E1C025 */ or $t8, $t7, $at -/* 0089C4 80007DC4 ACD800BC */ sw $t8, 0xbc($a2) -/* 0089C8 80007DC8 0C00C3F2 */ jal player_speed -/* 0089CC 80007DCC AFA70030 */ sw $a3, 0x30($sp) -/* 0089D0 80007DD0 8FA70030 */ lw $a3, 0x30($sp) -/* 0089D4 80007DD4 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 -/* 0089D8 80007DD8 24050003 */ li $a1, 3 -/* 0089DC 80007DDC 0007C840 */ sll $t9, $a3, 1 -/* 0089E0 80007DE0 00390821 */ addu $at, $at, $t9 -/* 0089E4 80007DE4 1000006B */ b .L80007F94 -/* 0089E8 80007DE8 A42534C0 */ sh $a1, %lo(D_801634C0)($at) # 0x34c0($at) -.L80007DEC: -/* 0089EC 80007DEC 3C03800E */ lui $v1, %hi(gCCSelection) -/* 0089F0 80007DF0 8C63C548 */ lw $v1, %lo(gCCSelection)($v1) -/* 0089F4 80007DF4 24050003 */ li $a1, 3 -/* 0089F8 80007DF8 24010001 */ li $at, 1 -/* 0089FC 80007DFC 1060000A */ beqz $v1, .L80007E28 -/* 008A00 80007E00 3C0C8016 */ lui $t4, %hi(D_80163344) # $t4, 0x8016 -/* 008A04 80007E04 1061000E */ beq $v1, $at, .L80007E40 -/* 008A08 80007E08 3C0D8016 */ lui $t5, %hi(D_80163344) # $t5, 0x8016 -/* 008A0C 80007E0C 24010002 */ li $at, 2 -/* 008A10 80007E10 10610011 */ beq $v1, $at, .L80007E58 -/* 008A14 80007E14 3C0E8016 */ lui $t6, %hi(D_80163344) # $t6, 0x8016 -/* 008A18 80007E18 10650015 */ beq $v1, $a1, .L80007E70 -/* 008A1C 80007E1C 3C0F8016 */ lui $t7, %hi(D_80163344) # $t7, 0x8016 -/* 008A20 80007E20 10000018 */ b .L80007E84 -/* 008A24 80007E24 00001025 */ move $v0, $zero -.L80007E28: -/* 008A28 80007E28 958C3344 */ lhu $t4, %lo(D_80163344)($t4) -/* 008A2C 80007E2C 00001025 */ move $v0, $zero -/* 008A30 80007E30 54EC0015 */ bnel $a3, $t4, .L80007E88 -/* 008A34 80007E34 0149082A */ slt $at, $t2, $t1 -/* 008A38 80007E38 10000012 */ b .L80007E84 -/* 008A3C 80007E3C 24020014 */ li $v0, 20 -.L80007E40: -/* 008A40 80007E40 95AD3344 */ lhu $t5, %lo(D_80163344)($t5) -/* 008A44 80007E44 24020008 */ li $v0, 8 -/* 008A48 80007E48 54ED000F */ bnel $a3, $t5, .L80007E88 -/* 008A4C 80007E4C 0149082A */ slt $at, $t2, $t1 -/* 008A50 80007E50 1000000C */ b .L80007E84 -/* 008A54 80007E54 24020018 */ li $v0, 24 -.L80007E58: -/* 008A58 80007E58 95CE3344 */ lhu $t6, %lo(D_80163344)($t6) -/* 008A5C 80007E5C 24020012 */ li $v0, 18 -/* 008A60 80007E60 54EE0009 */ bnel $a3, $t6, .L80007E88 -/* 008A64 80007E64 0149082A */ slt $at, $t2, $t1 -/* 008A68 80007E68 10000006 */ b .L80007E84 -/* 008A6C 80007E6C 24020024 */ li $v0, 36 -.L80007E70: -/* 008A70 80007E70 95EF3344 */ lhu $t7, %lo(D_80163344)($t7) -/* 008A74 80007E74 24020008 */ li $v0, 8 -/* 008A78 80007E78 54EF0003 */ bnel $a3, $t7, .L80007E88 -/* 008A7C 80007E7C 0149082A */ slt $at, $t2, $t1 -/* 008A80 80007E80 24020018 */ li $v0, 24 -.L80007E84: -/* 008A84 80007E84 0149082A */ slt $at, $t2, $t1 -.L80007E88: -/* 008A88 80007E88 1020000F */ beqz $at, .L80007EC8 -/* 008A8C 80007E8C 01227021 */ addu $t6, $t1, $v0 -/* 008A90 80007E90 8CD800BC */ lw $t8, 0xbc($a2) -/* 008A94 80007E94 3C010020 */ lui $at, 0x20 -/* 008A98 80007E98 00C02025 */ move $a0, $a2 -/* 008A9C 80007E9C 0301C825 */ or $t9, $t8, $at -/* 008AA0 80007EA0 ACD900BC */ sw $t9, 0xbc($a2) -/* 008AA4 80007EA4 0C00C3F2 */ jal player_speed -/* 008AA8 80007EA8 AFA70030 */ sw $a3, 0x30($sp) -/* 008AAC 80007EAC 8FA70030 */ lw $a3, 0x30($sp) -/* 008AB0 80007EB0 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 -/* 008AB4 80007EB4 240C0001 */ li $t4, 1 -/* 008AB8 80007EB8 00076840 */ sll $t5, $a3, 1 -/* 008ABC 80007EBC 002D0821 */ addu $at, $at, $t5 -/* 008AC0 80007EC0 10000034 */ b .L80007F94 -/* 008AC4 80007EC4 A42C34C0 */ sh $t4, %lo(D_801634C0)($at) # 0x34c0($at) -.L80007EC8: -/* 008AC8 80007EC8 25CF0032 */ addiu $t7, $t6, 0x32 -/* 008ACC 80007ECC 014F082A */ slt $at, $t2, $t7 -/* 008AD0 80007ED0 10200010 */ beqz $at, .L80007F14 -/* 008AD4 80007ED4 00071040 */ sll $v0, $a3, 1 -/* 008AD8 80007ED8 8CD800BC */ lw $t8, 0xbc($a2) -/* 008ADC 80007EDC 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 008AE0 80007EE0 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 008AE4 80007EE4 0301C824 */ and $t9, $t8, $at -/* 008AE8 80007EE8 ACD900BC */ sw $t9, 0xbc($a2) -/* 008AEC 80007EEC AFA70030 */ sw $a3, 0x30($sp) -/* 008AF0 80007EF0 0C00C3F2 */ jal player_speed -/* 008AF4 80007EF4 00C02025 */ move $a0, $a2 -/* 008AF8 80007EF8 8FA70030 */ lw $a3, 0x30($sp) -/* 008AFC 80007EFC 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 -/* 008B00 80007F00 24050003 */ li $a1, 3 -/* 008B04 80007F04 00076040 */ sll $t4, $a3, 1 -/* 008B08 80007F08 002C0821 */ addu $at, $at, $t4 -/* 008B0C 80007F0C 10000021 */ b .L80007F94 -/* 008B10 80007F10 A42534C0 */ sh $a1, %lo(D_801634C0)($at) # 0x34c0($at) -.L80007F14: -/* 008B14 80007F14 3C0D8016 */ lui $t5, %hi(D_801631E0) # 0x8016 -/* 008B18 80007F18 01A26821 */ addu $t5, $t5, $v0 -/* 008B1C 80007F1C 95AD31E0 */ lhu $t5, %lo(D_801631E0)($t5) # 0x31e0($t5) -/* 008B20 80007F20 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 008B24 80007F24 00C02025 */ move $a0, $a2 -/* 008B28 80007F28 15A0000E */ bnez $t5, .L80007F64 -/* 008B2C 80007F2C 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 008B30 80007F30 8CCE00BC */ lw $t6, 0xbc($a2) -/* 008B34 80007F34 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf -/* 008B38 80007F38 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* 008B3C 80007F3C 01C17824 */ and $t7, $t6, $at -/* 008B40 80007F40 ACCF00BC */ sw $t7, 0xbc($a2) -/* 008B44 80007F44 0C00C3F2 */ jal player_speed -/* 008B48 80007F48 AFA2001C */ sw $v0, 0x1c($sp) -/* 008B4C 80007F4C 8FA2001C */ lw $v0, 0x1c($sp) -/* 008B50 80007F50 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 -/* 008B54 80007F54 24180002 */ li $t8, 2 -/* 008B58 80007F58 00220821 */ addu $at, $at, $v0 -/* 008B5C 80007F5C 1000000D */ b .L80007F94 -/* 008B60 80007F60 A43834C0 */ sh $t8, %lo(D_801634C0)($at) # 0x34c0($at) -.L80007F64: -/* 008B64 80007F64 8CD900BC */ lw $t9, 0xbc($a2) -/* 008B68 80007F68 00C02025 */ move $a0, $a2 -/* 008B6C 80007F6C 3C053F80 */ lui $a1, 0x3f80 -/* 008B70 80007F70 03216024 */ and $t4, $t9, $at -/* 008B74 80007F74 ACCC00BC */ sw $t4, 0xbc($a2) -/* 008B78 80007F78 0C00C7D2 */ jal func_80031F48 -/* 008B7C 80007F7C AFA2001C */ sw $v0, 0x1c($sp) -/* 008B80 80007F80 8FA2001C */ lw $v0, 0x1c($sp) -/* 008B84 80007F84 3C018016 */ lui $at, %hi(D_801634C0) # 0x8016 -/* 008B88 80007F88 240DFFFF */ li $t5, -1 -/* 008B8C 80007F8C 00220821 */ addu $at, $at, $v0 -/* 008B90 80007F90 A42D34C0 */ sh $t5, %lo(D_801634C0)($at) # 0x34c0($at) -.L80007F94: -/* 008B94 80007F94 8FBF0014 */ lw $ra, 0x14($sp) -/* 008B98 80007F98 27BD0030 */ addiu $sp, $sp, 0x30 -/* 008B9C 80007F9C 03E00008 */ jr $ra -/* 008BA0 80007FA0 00000000 */ nop diff --git a/src/audio/data.c b/src/audio/data.c index f1cb322ad..5efa7734a 100644 --- a/src/audio/data.c +++ b/src/audio/data.c @@ -354,9 +354,9 @@ u16 gHeadsetPanQuantization[0x10] = { 0x40, 0x40, 0x30, 0x30, 0x20, 0x20, 0x10, 0, 0, 0, }; -s32 gUnknownData_800F6290[32] = { //maybe envelope of some kind? - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 500, 0, 0, 0, 500, 0, 0, 0, 500, 0, 0, 0, 500, 0, 0, +s16 gUnknownData_800F6290[64] = { // maybe envelope of some kind? + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 500, 0, 0, 0, 0, }; // Linearly interpolated between diff --git a/src/audio/data.h b/src/audio/data.h index 801137152..563352ce0 100644 --- a/src/audio/data.h +++ b/src/audio/data.h @@ -34,7 +34,7 @@ extern u32 fill2; extern struct NoteSubEu gZeroNoteSub; extern struct NoteSubEu gDefaultNoteSub; extern u16 gHeadsetPanQuantization[0x10]; -extern s32 gUnknownData_800F6290[32]; +extern s16 gUnknownData_800F6290[]; extern f32 gHeadsetPanVolume[128]; extern f32 gStereoPanVolume[128]; extern f32 gDefaultPanVolume[128]; diff --git a/src/audio/synthesis.c b/src/audio/synthesis.c index b688bb061..c6e3e5360 100644 --- a/src/audio/synthesis.c +++ b/src/audio/synthesis.c @@ -326,8 +326,8 @@ Acmd *synthesis_do_one_audio_update(s16 *aiBuf, s32 bufLen, Acmd *acmd, s32 upda #ifdef NON_MATCHING //generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-01-2023 -u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s16 *aiBuf, s32 inBuf, u64 *cmd, s32 updateIndex) { - s32 pad[4]; +Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, UNUSED s16 *aiBuf, s32 inBuf, Acmd *cmd, s32 updateIndex) { + UNUSED s32 pad[4]; struct AudioBankSample *audioBookSample; s16 *curLoadedBook; struct AdpcmLoop *loopInfo; @@ -338,7 +338,7 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N s32 nSamplesToLoad; s32 spFC; - s32 pad2[2]; + UNUSED s32 pad2[2]; s32 loopInfo_2; u8 *sampleAddr; @@ -350,9 +350,8 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N s32 endPos; s32 nSamplesToProcess; - s32 pad3; + UNUSED s32 pad3; - //u32 spE4; s32 s3; s32 leftRight; s32 s4; @@ -362,16 +361,15 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N u32 var_t2; u8 *var_a0_2; - //s32 spD8; s32 s5Aligned; s32 temp_t6; s32 nParts; s32 curPart; s32 aligned; - s32 pad4; + UNUSED s32 pad4; s32 resampledTempLen; /* compiler-managed */ u16 noteSamplesDmemAddrBeforeResampling; - s32 pad6[1]; + UNUSED s32 pad6[1]; struct Note *note; u16 addr; @@ -387,9 +385,6 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N synthesisState->curVolRight = 0; synthesisState->prevHeadsetPanRight = 0; synthesisState->prevHeadsetPanLeft = 0; - //synthesisState->reverbVol = noteSubEu->reverbVol; - ////synthesisState->unk5 = 0; - //note->noteSubEu.finished = 0; } resamplingRateFixedPoint = noteSubEu->resamplingRateFixedPoint; @@ -398,7 +393,6 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N nSamplesToLoad = (samplesLenFixedPoint >> 0x10); synthesisState->samplePosFrac = samplesLenFixedPoint & 0xFFFF; // m2c didn't have & 0xFFFF -//var_a0 = noteSubEu->unk0; if (noteSubEu->isSyntheticWave) { cmd = load_wave_samples(cmd, noteSubEu, synthesisState, nSamplesToLoad); @@ -406,24 +400,14 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N synthesisState->samplePosInt += nSamplesToLoad; } else { audioBookSample = noteSubEu->sound.audioBankSound->sample; - //sp130 = audioBookSample; loopInfo = audioBookSample->loop; - //sp12C = loopInfo; endPos = loopInfo->end; sampleAddr = audioBookSample->sampleAddr; // book? resampledTempLen = 0; - //if (nParts > 0) { - // nSamplesToLoad = samplesLenFixedPoint >> 0x10; - // sp114 = flags; - // var_s2_2 = cmd; -//loop_6: + for (curPart = 0; curPart < nParts; curPart++) { nAdpcmSamplesProcessed = 0; s4 = 0; - - - //temp_a1 = audioBookSample->unkC; - //temp_a2_2 = temp_a1 + 8; if (nParts == 1) { samplesLenAdjusted = nSamplesToLoad; @@ -435,27 +419,22 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N // sm64 also has if (audioBookSample->codec == CODEC_A) { if (curLoadedBook != (*audioBookSample->book).book) { u32 nEntries; - //temp_v0_3 = var_s2_2; - // var_s2_2 += 8; - //temp_v0_3->unk0 = ((temp_a1->unk0 * 16 * temp_a1->unk4) & 0xFFFFFF) | 0x0B000000; - //temp_v0_3->unk4 = (s32) ((((u32) (noteSubEu->unk0 << 0xB) >> 0x1D) * 2) + temp_a2_2 + 0x80000000); - //var_a0 = noteSubEu->unk0; curLoadedBook = audioBookSample->book->book; // or just one book? nEntries = 16 * audioBookSample->book->order * audioBookSample->book->npredictors; aLoadADPCM(cmd++, nEntries, VIRTUAL_TO_PHYSICAL2(noteSubEu->bookOffset+curLoadedBook)); // noteSubEu here unsure but seems better? } if (noteSubEu->bookOffset != 0) { - curLoadedBook = &gUnknownData_800F6290; // type? + curLoadedBook = &gUnknownData_800F6290[0]; } while (nAdpcmSamplesProcessed != samplesLenAdjusted) { -//loop_15: + s32 samplesRemaining; s32 s1; noteFinished = FALSE; restart = FALSE; - //temp_a2_3 = synthesisState->samplePosInt; + s3 = synthesisState->samplePosInt & 0xF; samplesRemaining = endPos - synthesisState->samplePosInt; nSamplesToProcess = samplesLenAdjusted - nAdpcmSamplesProcessed; @@ -464,11 +443,10 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N } a1 = 16 - s3; - //var_s5 = a1; + if (nSamplesToProcess < samplesRemaining) { loopInfo_2 = ((nSamplesToProcess - a1) + 0xF) / 16; s1 = loopInfo_2 * 16; - //var_t0 = loopInfo_2; var_s6 = (a1 + s1) - nSamplesToProcess; } else { s1 = samplesRemaining - a1; @@ -488,86 +466,48 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N if (loopInfo_2 != 0) { temp_t6 = ((synthesisState->samplePosInt - s3) + 16) / 16; // diff from sm64 sh if (audioBookSample->loaded == 0x81) { // sm64 has audioBookSample->medium - //var_s0 = ((loopInfo_2 * 9) + 0x1F) & ~0xF; var_a0_2 = (temp_t6 * 9) + sampleAddr; } else { - //spD8 = nSamplesToProcess; - //sp11C = noteFinished; - //sp118 = restart; - //spE4 = samplesLenAdjusted; - //temp_a1_3 += ((loopInfo_2 * 9) + 0x1F) & ~0xF; - //var_s0 = temp_a1_3; var_a0_2 = dma_sample_data((uintptr_t) (temp_t6 * 9) + sampleAddr, ALIGN(((loopInfo_2 * 9) + 16), 4), flags, &synthesisState->sampleDmaIndex); // unsure flags? } - //var_t1 = 0x540 - var_s0; + var_t2 = ((uintptr_t)var_a0_2 & 0xF); - - //var_s2_2->unk4 = (s32) ((var_a0_2 - var_t2) + 0x80000000); aligned = ALIGN(((loopInfo_2 * 9) + 16), 4); addr = (0x540 - aligned) & 0xFFFF; // DMEM_ADDR_COMPRESSED_ADPCM_DATA - //var_s2_2->unk0 = (((var_s0 >> 4) & 0xFF) << 16) | 0x14000000 | ((0x540 - var_s0) & 0xFFFF); - // var_s2_2 += 8; - //aLoadBuffer(cmd++, ALIGN(((loopInfo_2 * 9) + 16), 4), addr, VIRTUAL_TO_PHYSICAL2(var_a0_2 - var_t2)); + aLoadBuffer(cmd++, VIRTUAL_TO_PHYSICAL2(var_a0_2 - var_t2), addr, aligned); } else { s1 = 0; // ? var_t2 = 0; - //addr = 0x540 - (((loopInfo_2 * 9) + 16)); } - //temp_v0_4 = var_s2_2; + if (synthesisState->restart != FALSE) { aSetLoop(cmd++, VIRTUAL_TO_PHYSICAL2(audioBookSample->loop->state)); - //temp_v0_4->unk0 = 0x0F000000; - //var_s2_2 += 8; - //temp_v0_4->unk4 = (s32) (audioBookSample->unk8 + 0x80000010); + flags = A_LOOP; synthesisState->restart = FALSE; } nSamplesInThisIteration = (s1 + a1) - var_s6; s5Aligned = ALIGN(s4 + 16, 4); if (nAdpcmSamplesProcessed == 0) { - //var_a2 = s1 * 2; - //var_s2_2->unk4 = (s32) ((var_a2 & 0xFFFF) | 0x01A00000); - ///var_s2_2->unk0 = ((var_t1 + var_t2) & 0xFFFF) | 0x08000000; - //temp_s2 = var_s2_2 + 8; - //temp_s2->unk0 = (s32) (((sp114 & 0xFF) << 0x10) | 0x01000000); - //temp_s2->unk4 = (s32) VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState); - //var_s2_2 = temp_s2 + 8; - //spFC = s3 * 2; + aligned = ALIGN(((loopInfo_2 * 9) + 16), 4); addr = (0x540 - aligned) & 0xFFFF; aSetBuffer(cmd++, 0, addr + var_t2, 0x1A0, s1 * 2); // unsure // s1 or s3 here? aADPCMdec(cmd++, flags, VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState)); spFC = s3 * 2; - //nSamplesInThisIteration = (s1 + a1) - var_s6; + } else { - // temp_t8 = (s4 + 0x1F) & ~0xF; - // var_s2_2->unk0 = ((var_t1 + var_t2) & 0xFFFF) | 0x08000000; - // var_a2 = s1 * 2; - // var_s2_2->unk4 = (s32) (((temp_t8 + 0x1A0) << 0x10) | (var_a2 & 0xFFFF)); - // temp_s2_2 = var_s2_2 + 8; - // temp_s2_2->unk0 = (s32) (((sp114 & 0xFF) << 0x10) | 0x01000000); - // temp_s2_2->unk4 = (s32) VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState); - // temp_s2_3 = temp_s2_2 + 8; - // temp_s2_3->unk0 = (s32) (((temp_t8 + (s3 * 2) + 0x1A0) & 0xFFFFFF) | 0x0A000000); - // temp_s2_3->unk4 = (s32) (((s4 + 0x1A0) << 0x10) | ((nSamplesInThisIteration * 2) & 0xFFFF)); - // var_s2_2 = temp_s2_3 + 8; + aligned = ALIGN(((loopInfo_2 * 9) + 16), 4); addr = (0x540 - aligned) & 0xFFFF; aSetBuffer(cmd++, 0, addr + var_t2, 0x1A0 + s5Aligned, s1 * 2); // unsure - - // The real macro here. Decompme requires the below to work. - //aS8Dec(cmd++, flags, VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState)); + aADPCMdec(cmd++, flags, VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState)); - // {\ - // Acmd *_a = (Acmd *) (cmd++);\ - // _a->words.w0 = _SHIFTL(23, 24, 8) | _SHIFTL(flags, 16, 8);\ - // _a->words.w1 = (uintptr_t) VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState);\ - // }; - //nSamplesInThisIteration = (s1 + a1) - var_s6; + aDMEMMove(cmd++, 0x1A0 + s5Aligned + (s3 * 2), 0x1A0 + s4, nSamplesInThisIteration * 2); } @@ -593,22 +533,8 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N if (noteFinished) { aClearBuffer(cmd++, 0x1A0 + s4, (samplesLenAdjusted - nAdpcmSamplesProcessed) * 2); - //var_s2_2->unk0 = ((s4 + 0x1A0) & 0xFFFFFF) | 0x02000000; - //var_s2_2->unk4 = (s32) ((samplesLenAdjusted - nAdpcmSamplesProcessed) * 2); - //var_s2_2 += 8; noteSubEu->finished = 1; // sm64 says = 1 note->noteSubEu.finished = 1; - //note->noteSubEu.enabled = 0; - //note->noteSubEu.samplePosInt = 0; - - //note->noteSubEu.stereoHeadsetEffects = note->noteSubEu.stereoHeadsetEffects | 0x20;// |= 0x20; - //note->noteSubEu.stereoHeadsetEffects = ~(1 << 6); - /* mips to c - arg1->unk0 = (s8) ((u8) arg1->unk0 | 0x20); - sp8C->unkB0 = (u8) (sp8C->unkB0 | 0x20); - sp8C->unkB0 = (u8) (sp8C->unkB0 & 0xFF7F); - */ - //spE4 = samplesLenAdjusted; func_800B6FB4(updateIndex, noteIndex); } else { @@ -618,9 +544,6 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N } else { synthesisState->samplePosInt += nSamplesToProcess; } - // if (nAdpcmSamplesProcessed != samplesLenAdjusted) { - // goto loop_15; - // } } } @@ -629,25 +552,8 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N noteSamplesDmemAddrBeforeResampling = 0x1A0 + spFC; break; case 2: - //temp_v0_5 = var_s2_2; switch(curPart) { case 0: - // temp_v0_6 = var_s2_2; - // var_s2_2 += 8; - // temp_v0_6->unk0 = ((((s32) var_t5 / 2) + 7) & 0xFFF8) | 0x11000000; - // temp_v0_6->unk4 = (s32) (((spFC + 0x1A0) << 0x10) | 0x20); - // spA0 = var_t5; - // sp9E = 0x20; - // var_a0 = arg1->unk0; - // temp_t7_3 = (u32) (var_a0 * 4) >> 0x1F; - // var_v1_2 = temp_t7_3; - // if (temp_t7_3 != 0) { - // var_s2_2->unk4 = (s32) (var_t5 + 0x10); - // var_s2_2->unk0 = ((var_t5 + 0x20) & 0xFFFFFF) | 0x02000000; - // var_a0 = arg1->unk0; - // var_s2_2 += 8; - // var_v1_2 = (u32) (var_a0 * 4) >> 0x1F; - // } aDownsampleHalf(cmd++, ALIGN(samplesLenAdjusted / 2, 3), 0x1A0 + spFC, DMEM_ADDR_RESAMPLED); resampledTempLen = samplesLenAdjusted; noteSamplesDmemAddrBeforeResampling = DMEM_ADDR_RESAMPLED; @@ -656,11 +562,6 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N } break; case 1: - //var_s2_2 += 8; - // temp_v0_5->unk0 = ((((s32) var_t5 / 2) + 7) & 0xFFF8) | 0x11000000; - // temp_v0_5->unk4 = (s32) (((spFC + 0x1A0) << 0x10) | ((spA0 + 0x20) & 0xFFFF)); - // var_a0 = arg1->unk0; - // var_t6 = (u32) (var_a0 * 4) >> 0x1F; aDownsampleHalf(cmd++, ALIGN(samplesLenAdjusted / 2, 3), DMEM_ADDR_RESAMPLED2 + spFC, resampledTempLen + DMEM_ADDR_RESAMPLED); break; @@ -677,10 +578,7 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N flags = A_INIT; noteSubEu->needsInit = FALSE; } - //temp_a2_4 = inBuf * 2; - // flags = flags; - //sp114 = flags; - //flags = flags | sp54; + cmd = final_resample(cmd, synthesisState, inBuf * 2, resamplingRateFixedPoint, noteSamplesDmemAddrBeforeResampling, flags); if ((noteSubEu->headsetPanRight) || (synthesisState->prevHeadsetPanRight)) { @@ -691,7 +589,7 @@ u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct N leftRight = 0; } cmd = func_800B86A0(cmd, noteSubEu, synthesisState, inBuf, 0, leftRight, flags); - //var_s2 = temp_v0_8; + if (noteSubEu->usesHeadsetPanEffects) { //synthesisState->restart = 1; cmd = note_apply_headset_pan_effects(cmd, noteSubEu, synthesisState, inBuf * 2, flags, leftRight); diff --git a/src/audio/synthesis.h b/src/audio/synthesis.h index 9d8de57a9..a1854442b 100644 --- a/src/audio/synthesis.h +++ b/src/audio/synthesis.h @@ -103,7 +103,7 @@ Acmd *synthesis_execute(Acmd*, s32*, s16*, s32); Acmd *synthesis_resample_and_mix_reverb(Acmd*, s32, s16, s16); Acmd *synthesis_save_reverb_samples(Acmd*, s16, s16); Acmd *synthesis_do_one_audio_update(s16*, s32, Acmd*, s32); -u64 *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s16 *aiBuf, s32 inBuf, u64 *cmd, s32 updateIndex); +Acmd *synthesis_process_note(s32 noteIndex, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s16 *aiBuf, s32 inBuf, Acmd *cmd, s32 updateIndex); Acmd *load_wave_samples(Acmd *acmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s32 nSamplesToLoad); Acmd *final_resample(Acmd *acmd, struct NoteSynthesisState *synthesisState, s32 count, u16 pitch, u16 dmemIn, u32 flags); Acmd *func_800B86A0(Acmd *cmd, struct NoteSubEu *note, struct NoteSynthesisState *synthesisState, s32 nSamples, u16 inBuf, s32 headsetPanSettings, u32 flags); diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 7fe95d63f..060832135 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -830,86 +830,73 @@ void func_800070F4(void) { } } -#ifdef NON_MATCHING -// https://decomp.me/scratch/AqmzN -// Decently close overall but there's a huge amount of register mismatches -// Permuter has not had much luck finding solutions. -// Replacing `temp_s0` for `var_v0` is a pretty good start, but the permuter -// is unable to find any improvements after that :( - void func_800074D4(void) { - Player *var_a0_2; f32 temp_a0; + s32 temp; s32 sp68[8]; - UNUSED s32 temp_s0; + UNUSED s32 pad; s32 temp_t1; - s32 var_a3; - s32 var_a3_2; - s32 var_v0; - s32 this_loops_upper_bound_is_brough_to_you_by_the_number_eight = NUM_PLAYERS; - - for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; ) { - gCourseCompletionPercentByRank[var_a3++] = 0.0f; + s32 i; + s32 j; + s32 this_loops_upper_bound_is_brough_to_you_by_the_number = 8; + + for (i = 0; i < this_loops_upper_bound_is_brough_to_you_by_the_number;) { + gCourseCompletionPercentByRank[i++] = 0.0f; } - var_v0 = 0; - for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; var_a3++) { - var_a0_2 = &gPlayers[var_a3]; - if (var_a0_2->type & 0x800) { - sp68[var_v0] = var_a3; - gCourseCompletionPercentByRank[var_v0] = -gTimePlayerLastTouchedFinishLine[var_a3]; - var_v0++; + + for (j = 0, i = 0; i < this_loops_upper_bound_is_brough_to_you_by_the_number; i++) { + if (gPlayers[i].type & 0x800) { + sp68[j] = i; + gCourseCompletionPercentByRank[j] = -gTimePlayerLastTouchedFinishLine[i]; + j++; } } - temp_t1 = var_v0; - for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; var_a3++) { - var_a0_2 = &gPlayers[var_a3]; - if (!(var_a0_2->type & 0x800)) { - sp68[var_v0] = var_a3; - gCourseCompletionPercentByRank[var_v0] = gCourseCompletionPercentByPlayerId[var_a3]; - var_v0++; + temp_t1 = j; + for (i = 0; i < this_loops_upper_bound_is_brough_to_you_by_the_number; i++) { + if (!(gPlayers[i].type & 0x800)) { + sp68[j] = i; + gCourseCompletionPercentByRank[j] = gCourseCompletionPercentByPlayerId[i]; + j++; } } - - for (var_a3 = 0; var_a3 < temp_t1 - 1; var_a3++) { - for (var_a3_2 = var_a3 + 1; var_a3_2 < temp_t1; var_a3_2++) { - if (gCourseCompletionPercentByRank[var_a3] < gCourseCompletionPercentByRank[var_a3_2]) { - var_v0 = sp68[var_a3]; - sp68[var_a3] = sp68[var_a3_2]; - sp68[var_a3_2] = var_v0; - temp_a0 = gCourseCompletionPercentByRank[var_a3]; - gCourseCompletionPercentByRank[var_a3] = gCourseCompletionPercentByRank[var_a3_2]; - gCourseCompletionPercentByRank[var_a3_2] = temp_a0; + + for (i = 0; i < (temp_t1 - 1); i++) { + for (j = i + 1; j < temp_t1; j++) { + if (gCourseCompletionPercentByRank[i] < gCourseCompletionPercentByRank[j]) { + temp = sp68[i]; + sp68[i] = sp68[j]; + sp68[j] = temp; + temp_a0 = gCourseCompletionPercentByRank[i]; + gCourseCompletionPercentByRank[i] = gCourseCompletionPercentByRank[j]; + gCourseCompletionPercentByRank[j] = temp_a0; + } + } + } + + for (i = temp_t1; i < (this_loops_upper_bound_is_brough_to_you_by_the_number - 1); i++) { + for (j = i + 1; j < this_loops_upper_bound_is_brough_to_you_by_the_number; j++) { + if (gCourseCompletionPercentByRank[i] < gCourseCompletionPercentByRank[j]) { + temp = sp68[i]; + sp68[i] = sp68[j]; + sp68[j] = temp; + temp_a0 = gCourseCompletionPercentByRank[i]; + gCourseCompletionPercentByRank[i] = gCourseCompletionPercentByRank[j]; + gCourseCompletionPercentByRank[j] = temp_a0; } } } - for (var_a3 = temp_t1; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight - 1; var_a3++) { - for (var_a3_2 = var_a3 + 1; var_a3_2 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; var_a3_2++) { - if (gCourseCompletionPercentByRank[var_a3] < gCourseCompletionPercentByRank[var_a3_2]) { - var_v0 = sp68[var_a3]; - sp68[var_a3] = sp68[var_a3_2]; - sp68[var_a3_2] = var_v0; - temp_a0 = gCourseCompletionPercentByRank[var_a3]; - gCourseCompletionPercentByRank[var_a3] = gCourseCompletionPercentByRank[var_a3_2]; - gCourseCompletionPercentByRank[var_a3_2] = temp_a0; - } - } + for (i = 0; i < 8; i++) { + D_801643E0[i] = gGPCurrentRaceRankByPlayerId[i]; } - for (var_a3 = 0; var_a3 < NUM_PLAYERS; var_a3++) { - D_801643E0[var_a3] = gGPCurrentRaceRankByPlayerId[var_a3]; - } - - for (var_a3 = 0; var_a3 < this_loops_upper_bound_is_brough_to_you_by_the_number_eight; var_a3++) { - gGPCurrentRaceRankByPlayerId[sp68[var_a3]] = var_a3; - gGPCurrentRacePlayerIdByRank[var_a3] = sp68[var_a3]; + for (i = 0; i < this_loops_upper_bound_is_brough_to_you_by_the_number; i++) { + gGPCurrentRaceRankByPlayerId[sp68[i]] = i; + gGPCurrentRacePlayerIdByRank[i] = sp68[i]; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800074D4.s") -#endif s32 func_80007BF8(u16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { s32 var_v1; @@ -927,13 +914,11 @@ s32 func_80007BF8(u16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { return var_v1; } -#ifdef NON_MATCHING // Likely func equiv -// https://decomp.me/scratch/Te4u1 - -void func_80007D04(s32 playerId, Player *player) { +void func_80007D04(s32 playerId, Player* player) { s16 temp_t1; s16 temp_t2; s32 var_v0; + temp_t1 = D_80164450[D_80163478]; temp_t2 = D_80164450[playerId]; @@ -954,33 +939,40 @@ void func_80007D04(s32 playerId, Player *player) { return; } - // Something wrong here. Maybe needs - // var_v0 = 0; + switch (gCCSelection) { // WTF, FAKE ? + case 3: + break; + } + switch (gCCSelection) { - case CC_50: + case 0: var_v0 = 0; if (playerId == D_80163344[0]) { var_v0 = 0x14; } break; + case 1: var_v0 = 8; if (playerId == D_80163344[0]) { var_v0 = 0x18; } break; + case 2: var_v0 = 0x12; if (playerId == D_80163344[0]) { var_v0 = 0x24; } break; + case 3: var_v0 = 8; if (playerId == D_80163344[0]) { var_v0 = 0x18; } break; + default: var_v0 = 0; break; @@ -990,7 +982,6 @@ void func_80007D04(s32 playerId, Player *player) { player->effects |= 0x200000; player_speed(player); D_801634C0[playerId] = 1; - } else if (temp_t2 < (temp_t1 + var_v0 + 0x32)) { player->effects &= ~0x200000; player_speed(player); @@ -1006,10 +997,6 @@ void func_80007D04(s32 playerId, Player *player) { } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80007D04.s") -#endif - void func_80007FA4(s32 arg0, Player *player, f32 arg2) { f32 temp_f0; f32 temp_f12; @@ -5912,32 +5899,32 @@ void func_80017054(Camera *camera, UNUSED Player *player, UNUSED s32 index, s32 // https://decomp.me/scratch/Ck7hV // Really crazy diff, permuter only able to find fakematches for improvements (and they're big improvements) // There's something really, really wrong with the empty `if` statement -void func_80017054(Camera *camera, Player *player, s32 index, s32 cameraId) { - s32 stackPadding0; - s32 stackPadding1; +void func_80017054(Camera *camera, UNUSED Player *player, UNUSED s32 index, s32 cameraId) { + UNUSED s32 stackPadding0; + UNUSED s32 stackPadding1; f32 spAC; f32 spA8; f32 spA4; - s32 stackPadding2; - s32 stackPadding3; + UNUSED s32 stackPadding2; + UNUSED s32 stackPadding3; f32 sp98; f32 sp94; f32 sp90; f32 sp8C; f32 sp88; f32 sp84; - f32 stackPadding4; - f32 stackPadding5; - f32 stackPadding6; - s32 stackPadding7; - s32 stackPadding8; + UNUSED f32 stackPadding4; + UNUSED f32 stackPadding5; + UNUSED f32 stackPadding6; + UNUSED s32 stackPadding7; + UNUSED s32 stackPadding8; s16 sp6E; s16 sp6C; - s32 stackPadding9; - s32 stackPaddingA; - s32 stackPaddingB; + UNUSED s32 stackPadding9; + UNUSED s32 stackPaddingA; + UNUSED s32 stackPaddingB; s32 pathIndex; - s32 stackPaddingC; + UNUSED s32 stackPaddingC; s32 sp58; s16 sp56; s32 playerId;