diff --git a/asm/non_matchings/code_80091750/func_800A6154.s b/asm/non_matchings/code_80091750/func_800A6154.s deleted file mode 100644 index 59debcf5b..000000000 --- a/asm/non_matchings/code_80091750/func_800A6154.s +++ /dev/null @@ -1,149 +0,0 @@ -glabel func_800A6154 -/* 0A6D54 800A6154 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 0A6D58 800A6158 AFBF004C */ sw $ra, 0x4c($sp) -/* 0A6D5C 800A615C AFB50048 */ sw $s5, 0x48($sp) -/* 0A6D60 800A6160 AFB40044 */ sw $s4, 0x44($sp) -/* 0A6D64 800A6164 AFB30040 */ sw $s3, 0x40($sp) -/* 0A6D68 800A6168 AFB2003C */ sw $s2, 0x3c($sp) -/* 0A6D6C 800A616C AFB10038 */ sw $s1, 0x38($sp) -/* 0A6D70 800A6170 AFB00034 */ sw $s0, 0x34($sp) -/* 0A6D74 800A6174 F7B40028 */ sdc1 $f20, 0x28($sp) -/* 0A6D78 800A6178 8C8E0004 */ lw $t6, 4($a0) -/* 0A6D7C 800A617C 3C158015 */ lui $s5, %hi(gDisplayListHead) # $s5, 0x8015 -/* 0A6D80 800A6180 0080A025 */ move $s4, $a0 -/* 0A6D84 800A6184 15C00031 */ bnez $t6, .L800A624C -/* 0A6D88 800A6188 26B50298 */ addiu $s5, %lo(gDisplayListHead) # addiu $s5, $s5, 0x298 -/* 0A6D8C 800A618C 240F00EF */ li $t7, 239 -/* 0A6D90 800A6190 AFAF0010 */ sw $t7, 0x10($sp) -/* 0A6D94 800A6194 AFA00014 */ sw $zero, 0x14($sp) -/* 0A6D98 800A6198 AFA00018 */ sw $zero, 0x18($sp) -/* 0A6D9C 800A619C AFA0001C */ sw $zero, 0x1c($sp) -/* 0A6DA0 800A61A0 8E98001C */ lw $t8, 0x1c($s4) -/* 0A6DA4 800A61A4 3C158015 */ lui $s5, %hi(gDisplayListHead) # $s5, 0x8015 -/* 0A6DA8 800A61A8 26B50298 */ addiu $s5, %lo(gDisplayListHead) # addiu $s5, $s5, 0x298 -/* 0A6DAC 800A61AC 8EA40000 */ lw $a0, ($s5) -/* 0A6DB0 800A61B0 00002825 */ move $a1, $zero -/* 0A6DB4 800A61B4 00003025 */ move $a2, $zero -/* 0A6DB8 800A61B8 2407013F */ li $a3, 319 -/* 0A6DBC 800A61BC 0C02637E */ jal draw_box -/* 0A6DC0 800A61C0 AFB80020 */ sw $t8, 0x20($sp) -/* 0A6DC4 800A61C4 AEA20000 */ sw $v0, ($s5) -/* 0A6DC8 800A61C8 0C024C36 */ jal set_text_color -/* 0A6DCC 800A61CC 24040003 */ li $a0, 3 -/* 0A6DD0 800A61D0 8EA20000 */ lw $v0, ($s5) -/* 0A6DD4 800A61D4 3C08FA00 */ lui $t0, 0xfa00 -/* 0A6DD8 800A61D8 24010064 */ li $at, 100 -/* 0A6DDC 800A61DC 24590008 */ addiu $t9, $v0, 8 -/* 0A6DE0 800A61E0 AEB90000 */ sw $t9, ($s5) -/* 0A6DE4 800A61E4 AC480000 */ sw $t0, ($v0) -/* 0A6DE8 800A61E8 8E89001C */ lw $t1, 0x1c($s4) -/* 0A6DEC 800A61EC 3C12800E */ lui $s2, %hi(D_800E775C) # $s2, 0x800e -/* 0A6DF0 800A61F0 2652775C */ addiu $s2, %lo(D_800E775C) # addiu $s2, $s2, 0x775c -/* 0A6DF4 800A61F4 00095200 */ sll $t2, $t1, 8 -/* 0A6DF8 800A61F8 01495023 */ subu $t2, $t2, $t1 -/* 0A6DFC 800A61FC 0141001A */ div $zero, $t2, $at -/* 0A6E00 800A6200 00005812 */ mflo $t3 -/* 0A6E04 800A6204 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A6E08 800A6208 316C00FF */ andi $t4, $t3, 0xff -/* 0A6E0C 800A620C 4481A000 */ mtc1 $at, $f20 -/* 0A6E10 800A6210 24100096 */ li $s0, 150 -/* 0A6E14 800A6214 241100BE */ li $s1, 190 -/* 0A6E18 800A6218 AC4C0004 */ sw $t4, 4($v0) -.L800A621C: -/* 0A6E1C 800A621C 2404008C */ li $a0, 140 -/* 0A6E20 800A6220 02002825 */ move $a1, $s0 -/* 0A6E24 800A6224 8E460004 */ lw $a2, 4($s2) -/* 0A6E28 800A6228 00003825 */ move $a3, $zero -/* 0A6E2C 800A622C E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A6E30 800A6230 0C024CD6 */ jal func_80093358 -/* 0A6E34 800A6234 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0A6E38 800A6238 26100014 */ addiu $s0, $s0, 0x14 -/* 0A6E3C 800A623C 1611FFF7 */ bne $s0, $s1, .L800A621C -/* 0A6E40 800A6240 2652000C */ addiu $s2, $s2, 0xc -/* 0A6E44 800A6244 10000026 */ b .L800A62E0 -/* 0A6E48 800A6248 8E8F0004 */ lw $t7, 4($s4) -.L800A624C: -/* 0A6E4C 800A624C 240D00EF */ li $t5, 239 -/* 0A6E50 800A6250 240E0064 */ li $t6, 100 -/* 0A6E54 800A6254 AFAE0020 */ sw $t6, 0x20($sp) -/* 0A6E58 800A6258 AFAD0010 */ sw $t5, 0x10($sp) -/* 0A6E5C 800A625C 8EA40000 */ lw $a0, ($s5) -/* 0A6E60 800A6260 00002825 */ move $a1, $zero -/* 0A6E64 800A6264 00003025 */ move $a2, $zero -/* 0A6E68 800A6268 2407013F */ li $a3, 319 -/* 0A6E6C 800A626C AFA00014 */ sw $zero, 0x14($sp) -/* 0A6E70 800A6270 AFA00018 */ sw $zero, 0x18($sp) -/* 0A6E74 800A6274 0C02637E */ jal draw_box -/* 0A6E78 800A6278 AFA0001C */ sw $zero, 0x1c($sp) -/* 0A6E7C 800A627C 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A6E80 800A6280 3C12800E */ lui $s2, %hi(D_800E775C) # $s2, 0x800e -/* 0A6E84 800A6284 4481A000 */ mtc1 $at, $f20 -/* 0A6E88 800A6288 AEA20000 */ sw $v0, ($s5) -/* 0A6E8C 800A628C 2652775C */ addiu $s2, %lo(D_800E775C) # addiu $s2, $s2, 0x775c -/* 0A6E90 800A6290 00008825 */ move $s1, $zero -/* 0A6E94 800A6294 24100096 */ li $s0, 150 -/* 0A6E98 800A6298 24130002 */ li $s3, 2 -.L800A629C: -/* 0A6E9C 800A629C 8E840004 */ lw $a0, 4($s4) -/* 0A6EA0 800A62A0 02202825 */ move $a1, $s1 -/* 0A6EA4 800A62A4 24060003 */ li $a2, 3 -/* 0A6EA8 800A62A8 0C024870 */ jal func_800921C0 -/* 0A6EAC 800A62AC 2484FFF5 */ addiu $a0, $a0, -0xb -/* 0A6EB0 800A62B0 2404008C */ li $a0, 140 -/* 0A6EB4 800A62B4 02002825 */ move $a1, $s0 -/* 0A6EB8 800A62B8 8E460004 */ lw $a2, 4($s2) -/* 0A6EBC 800A62BC 00003825 */ move $a3, $zero -/* 0A6EC0 800A62C0 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A6EC4 800A62C4 0C024CC9 */ jal func_80093324 -/* 0A6EC8 800A62C8 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0A6ECC 800A62CC 26310001 */ addiu $s1, $s1, 1 -/* 0A6ED0 800A62D0 2652000C */ addiu $s2, $s2, 0xc -/* 0A6ED4 800A62D4 1633FFF1 */ bne $s1, $s3, .L800A629C -/* 0A6ED8 800A62D8 26100014 */ addiu $s0, $s0, 0x14 -/* 0A6EDC 800A62DC 8E8F0004 */ lw $t7, 4($s4) -.L800A62E0: -/* 0A6EE0 800A62E0 24180084 */ li $t8, 132 -/* 0A6EE4 800A62E4 29E1000B */ slti $at, $t7, 0xb -/* 0A6EE8 800A62E8 5420000C */ bnel $at, $zero, .L800A631C -/* 0A6EEC 800A62EC 8E820020 */ lw $v0, 0x20($s4) -/* 0A6EF0 800A62F0 A7B8006C */ sh $t8, 0x6c($sp) -/* 0A6EF4 800A62F4 8E990004 */ lw $t9, 4($s4) -/* 0A6EF8 800A62F8 02802025 */ move $a0, $s4 -/* 0A6EFC 800A62FC 27A5006C */ addiu $a1, $sp, 0x6c -/* 0A6F00 800A6300 00194080 */ sll $t0, $t9, 2 -/* 0A6F04 800A6304 01194021 */ addu $t0, $t0, $t9 -/* 0A6F08 800A6308 00084080 */ sll $t0, $t0, 2 -/* 0A6F0C 800A630C 2509FFB2 */ addiu $t1, $t0, -0x4e -/* 0A6F10 800A6310 0C0299AA */ jal func_800A66A8 -/* 0A6F14 800A6314 A7A9006E */ sh $t1, 0x6e($sp) -/* 0A6F18 800A6318 8E820020 */ lw $v0, 0x20($s4) -.L800A631C: -/* 0A6F1C 800A631C 00002825 */ move $a1, $zero -/* 0A6F20 800A6320 00003025 */ move $a2, $zero -/* 0A6F24 800A6324 1840000F */ blez $v0, .L800A6364 -/* 0A6F28 800A6328 2407013F */ li $a3, 319 -/* 0A6F2C 800A632C 8EA40000 */ lw $a0, ($s5) -/* 0A6F30 800A6330 0C0263F2 */ jal func_80098FC8 -/* 0A6F34 800A6334 AFA20010 */ sw $v0, 0x10($sp) -/* 0A6F38 800A6338 AEA20000 */ sw $v0, ($s5) -/* 0A6F3C 800A633C 8E8A0020 */ lw $t2, 0x20($s4) -/* 0A6F40 800A6340 240B00EF */ li $t3, 239 -/* 0A6F44 800A6344 240C00EF */ li $t4, 239 -/* 0A6F48 800A6348 AFAC0010 */ sw $t4, 0x10($sp) -/* 0A6F4C 800A634C 00402025 */ move $a0, $v0 -/* 0A6F50 800A6350 00002825 */ move $a1, $zero -/* 0A6F54 800A6354 2407013F */ li $a3, 319 -/* 0A6F58 800A6358 0C0263F2 */ jal func_80098FC8 -/* 0A6F5C 800A635C 016A3023 */ subu $a2, $t3, $t2 -/* 0A6F60 800A6360 AEA20000 */ sw $v0, ($s5) -.L800A6364: -/* 0A6F64 800A6364 8FBF004C */ lw $ra, 0x4c($sp) -/* 0A6F68 800A6368 D7B40028 */ ldc1 $f20, 0x28($sp) -/* 0A6F6C 800A636C 8FB00034 */ lw $s0, 0x34($sp) -/* 0A6F70 800A6370 8FB10038 */ lw $s1, 0x38($sp) -/* 0A6F74 800A6374 8FB2003C */ lw $s2, 0x3c($sp) -/* 0A6F78 800A6378 8FB30040 */ lw $s3, 0x40($sp) -/* 0A6F7C 800A637C 8FB40044 */ lw $s4, 0x44($sp) -/* 0A6F80 800A6380 8FB50048 */ lw $s5, 0x48($sp) -/* 0A6F84 800A6384 03E00008 */ jr $ra -/* 0A6F88 800A6388 27BD0080 */ addiu $sp, $sp, 0x80 diff --git a/asm/non_matchings/code_80091750/func_800A638C.s b/asm/non_matchings/code_80091750/func_800A638C.s deleted file mode 100644 index d70a9e4ff..000000000 --- a/asm/non_matchings/code_80091750/func_800A638C.s +++ /dev/null @@ -1,221 +0,0 @@ -.section .late_rodata - -glabel D_800F1F10 -.float 0.8 - -.section .text - -glabel func_800A638C -/* 0A6F8C 800A638C 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 0A6F90 800A6390 AFBF0044 */ sw $ra, 0x44($sp) -/* 0A6F94 800A6394 AFB30040 */ sw $s3, 0x40($sp) -/* 0A6F98 800A6398 AFB2003C */ sw $s2, 0x3c($sp) -/* 0A6F9C 800A639C AFB10038 */ sw $s1, 0x38($sp) -/* 0A6FA0 800A63A0 AFB00034 */ sw $s0, 0x34($sp) -/* 0A6FA4 800A63A4 F7B40028 */ sdc1 $f20, 0x28($sp) -/* 0A6FA8 800A63A8 8C8E0004 */ lw $t6, 4($a0) -/* 0A6FAC 800A63AC 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015 -/* 0A6FB0 800A63B0 00809825 */ move $s3, $a0 -/* 0A6FB4 800A63B4 15C0003E */ bnez $t6, .L800A64B0 -/* 0A6FB8 800A63B8 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298 -/* 0A6FBC 800A63BC 240F00EF */ li $t7, 239 -/* 0A6FC0 800A63C0 AFAF0010 */ sw $t7, 0x10($sp) -/* 0A6FC4 800A63C4 AFA00014 */ sw $zero, 0x14($sp) -/* 0A6FC8 800A63C8 AFA00018 */ sw $zero, 0x18($sp) -/* 0A6FCC 800A63CC AFA0001C */ sw $zero, 0x1c($sp) -/* 0A6FD0 800A63D0 8E78001C */ lw $t8, 0x1c($s3) -/* 0A6FD4 800A63D4 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015 -/* 0A6FD8 800A63D8 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298 -/* 0A6FDC 800A63DC 8E040000 */ lw $a0, ($s0) -/* 0A6FE0 800A63E0 00002825 */ move $a1, $zero -/* 0A6FE4 800A63E4 00003025 */ move $a2, $zero -/* 0A6FE8 800A63E8 2407013F */ li $a3, 319 -/* 0A6FEC 800A63EC 0C02637E */ jal draw_box -/* 0A6FF0 800A63F0 AFB80020 */ sw $t8, 0x20($sp) -/* 0A6FF4 800A63F4 AE020000 */ sw $v0, ($s0) -/* 0A6FF8 800A63F8 0C024C36 */ jal set_text_color -/* 0A6FFC 800A63FC 24040005 */ li $a0, 5 -/* 0A7000 800A6400 8E020000 */ lw $v0, ($s0) -/* 0A7004 800A6404 3C08FA00 */ lui $t0, 0xfa00 -/* 0A7008 800A6408 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A700C 800A640C 24590008 */ addiu $t9, $v0, 8 -/* 0A7010 800A6410 AE190000 */ sw $t9, ($s0) -/* 0A7014 800A6414 AC480000 */ sw $t0, ($v0) -/* 0A7018 800A6418 8E69001C */ lw $t1, 0x1c($s3) -/* 0A701C 800A641C 44810000 */ mtc1 $at, $f0 -/* 0A7020 800A6420 24010064 */ li $at, 100 -/* 0A7024 800A6424 00095200 */ sll $t2, $t1, 8 -/* 0A7028 800A6428 01495023 */ subu $t2, $t2, $t1 -/* 0A702C 800A642C 0141001A */ div $zero, $t2, $at -/* 0A7030 800A6430 00005812 */ mflo $t3 -/* 0A7034 800A6434 316C00FF */ andi $t4, $t3, 0xff -/* 0A7038 800A6438 3C0D800E */ lui $t5, %hi(gModeSelection) # $t5, 0x800e -/* 0A703C 800A643C AC4C0004 */ sw $t4, 4($v0) -/* 0A7040 800A6440 8DADC53C */ lw $t5, %lo(gModeSelection)($t5) -/* 0A7044 800A6444 24110003 */ li $s1, 3 -/* 0A7048 800A6448 8E650010 */ lw $a1, 0x10($s3) -/* 0A704C 800A644C 01B1001A */ div $zero, $t5, $s1 -/* 0A7050 800A6450 00007012 */ mflo $t6 -/* 0A7054 800A6454 000E7880 */ sll $t7, $t6, 2 -/* 0A7058 800A6458 3C06800E */ lui $a2, %hi(D_800E7778) -/* 0A705C 800A645C 00CF3021 */ addu $a2, $a2, $t7 -/* 0A7060 800A6460 8CC67778 */ lw $a2, %lo(D_800E7778)($a2) -/* 0A7064 800A6464 240400A0 */ li $a0, 160 -/* 0A7068 800A6468 00003825 */ move $a3, $zero -/* 0A706C 800A646C 00401825 */ move $v1, $v0 -/* 0A7070 800A6470 E7A00014 */ swc1 $f0, 0x14($sp) -/* 0A7074 800A6474 E7A00010 */ swc1 $f0, 0x10($sp) -/* 0A7078 800A6478 24A5001E */ addiu $a1, $a1, 0x1e -/* 0A707C 800A647C 16200002 */ bnez $s1, .L800A6488 -/* 0A7080 800A6480 00000000 */ nop -/* 0A7084 800A6484 0007000D */ break 7 -.L800A6488: -/* 0A7088 800A6488 2401FFFF */ li $at, -1 -/* 0A708C 800A648C 16210004 */ bne $s1, $at, .L800A64A0 -/* 0A7090 800A6490 3C018000 */ lui $at, 0x8000 -/* 0A7094 800A6494 15A10002 */ bne $t5, $at, .L800A64A0 -/* 0A7098 800A6498 00000000 */ nop -/* 0A709C 800A649C 0006000D */ break 6 -.L800A64A0: -/* 0A70A0 800A64A0 0C024DD5 */ jal func_80093754 -/* 0A70A4 800A64A4 00000000 */ nop -/* 0A70A8 800A64A8 1000002D */ b .L800A6560 -/* 0A70AC 800A64AC 8E640004 */ lw $a0, 4($s3) -.L800A64B0: -/* 0A70B0 800A64B0 241800EF */ li $t8, 239 -/* 0A70B4 800A64B4 24190064 */ li $t9, 100 -/* 0A70B8 800A64B8 AFB90020 */ sw $t9, 0x20($sp) -/* 0A70BC 800A64BC AFB80010 */ sw $t8, 0x10($sp) -/* 0A70C0 800A64C0 8E040000 */ lw $a0, ($s0) -/* 0A70C4 800A64C4 00002825 */ move $a1, $zero -/* 0A70C8 800A64C8 00003025 */ move $a2, $zero -/* 0A70CC 800A64CC 2407013F */ li $a3, 319 -/* 0A70D0 800A64D0 AFA00014 */ sw $zero, 0x14($sp) -/* 0A70D4 800A64D4 AFA00018 */ sw $zero, 0x18($sp) -/* 0A70D8 800A64D8 0C02637E */ jal draw_box -/* 0A70DC 800A64DC AFA0001C */ sw $zero, 0x1c($sp) -/* 0A70E0 800A64E0 AE020000 */ sw $v0, ($s0) -/* 0A70E4 800A64E4 0C024C36 */ jal set_text_color -/* 0A70E8 800A64E8 24040005 */ li $a0, 5 -/* 0A70EC 800A64EC 3C08800E */ lui $t0, %hi(gModeSelection) # $t0, 0x800e -/* 0A70F0 800A64F0 8D08C53C */ lw $t0, %lo(gModeSelection)($t0) -/* 0A70F4 800A64F4 24110003 */ li $s1, 3 -/* 0A70F8 800A64F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0A70FC 800A64FC 0111001A */ div $zero, $t0, $s1 -/* 0A7100 800A6500 44810000 */ mtc1 $at, $f0 -/* 0A7104 800A6504 00004812 */ mflo $t1 -/* 0A7108 800A6508 8E650010 */ lw $a1, 0x10($s3) -/* 0A710C 800A650C 00095080 */ sll $t2, $t1, 2 -/* 0A7110 800A6510 3C06800E */ lui $a2, %hi(D_800E7778) -/* 0A7114 800A6514 00CA3021 */ addu $a2, $a2, $t2 -/* 0A7118 800A6518 8CC67778 */ lw $a2, %lo(D_800E7778)($a2) -/* 0A711C 800A651C 240400A0 */ li $a0, 160 -/* 0A7120 800A6520 00003825 */ move $a3, $zero -/* 0A7124 800A6524 E7A00014 */ swc1 $f0, 0x14($sp) -/* 0A7128 800A6528 E7A00010 */ swc1 $f0, 0x10($sp) -/* 0A712C 800A652C 24A5001E */ addiu $a1, $a1, 0x1e -/* 0A7130 800A6530 16200002 */ bnez $s1, .L800A653C -/* 0A7134 800A6534 00000000 */ nop -/* 0A7138 800A6538 0007000D */ break 7 -.L800A653C: -/* 0A713C 800A653C 2401FFFF */ li $at, -1 -/* 0A7140 800A6540 16210004 */ bne $s1, $at, .L800A6554 -/* 0A7144 800A6544 3C018000 */ lui $at, 0x8000 -/* 0A7148 800A6548 15010002 */ bne $t0, $at, .L800A6554 -/* 0A714C 800A654C 00000000 */ nop -/* 0A7150 800A6550 0006000D */ break 6 -.L800A6554: -/* 0A7154 800A6554 0C024DBB */ jal draw_text -/* 0A7158 800A6558 00000000 */ nop -/* 0A715C 800A655C 8E640004 */ lw $a0, 4($s3) -.L800A6560: -/* 0A7160 800A6560 24010001 */ li $at, 1 -/* 0A7164 800A6564 3C0CFA00 */ lui $t4, 0xfa00 -/* 0A7168 800A6568 10800007 */ beqz $a0, .L800A6588 -/* 0A716C 800A656C 00000000 */ nop -/* 0A7170 800A6570 10810005 */ beq $a0, $at, .L800A6588 -/* 0A7174 800A6574 24010002 */ li $at, 2 -/* 0A7178 800A6578 50810006 */ beql $a0, $at, .L800A6594 -/* 0A717C 800A657C 8E65001C */ lw $a1, 0x1c($s3) -/* 0A7180 800A6580 10000004 */ b .L800A6594 -/* 0A7184 800A6584 240500FF */ li $a1, 255 -.L800A6588: -/* 0A7188 800A6588 10000002 */ b .L800A6594 -/* 0A718C 800A658C 00002825 */ move $a1, $zero -/* 0A7190 800A6590 8E65001C */ lw $a1, 0x1c($s3) -.L800A6594: -/* 0A7194 800A6594 8E020000 */ lw $v0, ($s0) -/* 0A7198 800A6598 30AD00FF */ andi $t5, $a1, 0xff -/* 0A719C 800A659C 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 -/* 0A71A0 800A65A0 244B0008 */ addiu $t3, $v0, 8 -/* 0A71A4 800A65A4 AE0B0000 */ sw $t3, ($s0) -/* 0A71A8 800A65A8 AC4D0004 */ sw $t5, 4($v0) -/* 0A71AC 800A65AC AC4C0000 */ sw $t4, ($v0) -/* 0A71B0 800A65B0 8084EDF3 */ lb $a0, %lo(D_8018EDF3)($a0) -/* 0A71B4 800A65B4 24010002 */ li $at, 2 -/* 0A71B8 800A65B8 10810007 */ beq $a0, $at, .L800A65D8 -/* 0A71BC 800A65BC 00000000 */ nop -/* 0A71C0 800A65C0 10910009 */ beq $a0, $s1, .L800A65E8 -/* 0A71C4 800A65C4 24010004 */ li $at, 4 -/* 0A71C8 800A65C8 1081000B */ beq $a0, $at, .L800A65F8 -/* 0A71CC 800A65CC 00000000 */ nop -/* 0A71D0 800A65D0 1000000C */ b .L800A6604 -/* 0A71D4 800A65D4 8E6E0004 */ lw $t6, 4($s3) -.L800A65D8: -/* 0A71D8 800A65D8 0C029A72 */ jal func_800A69C8 -/* 0A71DC 800A65DC 02602025 */ move $a0, $s3 -/* 0A71E0 800A65E0 10000008 */ b .L800A6604 -/* 0A71E4 800A65E4 8E6E0004 */ lw $t6, 4($s3) -.L800A65E8: -/* 0A71E8 800A65E8 0C029AFB */ jal func_800A6BEC -/* 0A71EC 800A65EC 02602025 */ move $a0, $s3 -/* 0A71F0 800A65F0 10000004 */ b .L800A6604 -/* 0A71F4 800A65F4 8E6E0004 */ lw $t6, 4($s3) -.L800A65F8: -/* 0A71F8 800A65F8 0C029B30 */ jal func_800A6CC0 -/* 0A71FC 800A65FC 02602025 */ move $a0, $s3 -/* 0A7200 800A6600 8E6E0004 */ lw $t6, 4($s3) -.L800A6604: -/* 0A7204 800A6604 00008025 */ move $s0, $zero -/* 0A7208 800A6608 241100AE */ li $s1, 174 -/* 0A720C 800A660C 29C1000A */ slti $at, $t6, 0xa -/* 0A7210 800A6610 1420001D */ bnez $at, .L800A6688 -/* 0A7214 800A6614 3C12800E */ lui $s2, %hi(D_800E775C) # $s2, 0x800e -/* 0A7218 800A6618 3C01800F */ lui $at, %hi(D_800F1F10) # $at, 0x800f -/* 0A721C 800A661C C4341F10 */ lwc1 $f20, %lo(D_800F1F10)($at) -/* 0A7220 800A6620 2652775C */ addiu $s2, %lo(D_800E775C) # addiu $s2, $s2, 0x775c -.L800A6624: -/* 0A7224 800A6624 8E640004 */ lw $a0, 4($s3) -/* 0A7228 800A6628 02002825 */ move $a1, $s0 -/* 0A722C 800A662C 24060001 */ li $a2, 1 -/* 0A7230 800A6630 0C024870 */ jal func_800921C0 -/* 0A7234 800A6634 2484FFF6 */ addiu $a0, $a0, -0xa -/* 0A7238 800A6638 24040069 */ li $a0, 105 -/* 0A723C 800A663C 02202825 */ move $a1, $s1 -/* 0A7240 800A6640 8E460004 */ lw $a2, 4($s2) -/* 0A7244 800A6644 00003825 */ move $a3, $zero -/* 0A7248 800A6648 E7B40010 */ swc1 $f20, 0x10($sp) -/* 0A724C 800A664C 0C024CC9 */ jal func_80093324 -/* 0A7250 800A6650 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0A7254 800A6654 26100001 */ addiu $s0, $s0, 1 -/* 0A7258 800A6658 24010004 */ li $at, 4 -/* 0A725C 800A665C 2631000F */ addiu $s1, $s1, 0xf -/* 0A7260 800A6660 1601FFF0 */ bne $s0, $at, .L800A6624 -/* 0A7264 800A6664 26520004 */ addiu $s2, $s2, 4 -/* 0A7268 800A6668 8E6F0004 */ lw $t7, 4($s3) -/* 0A726C 800A666C 3C08800E */ lui $t0, %hi(D_800E7360) # $t0, 0x800e -/* 0A7270 800A6670 25087360 */ addiu $t0, %lo(D_800E7360) # addiu $t0, $t0, 0x7360 -/* 0A7274 800A6674 000FC0C0 */ sll $t8, $t7, 3 -/* 0A7278 800A6678 2719FFB0 */ addiu $t9, $t8, -0x50 -/* 0A727C 800A667C 03282821 */ addu $a1, $t9, $t0 -/* 0A7280 800A6680 0C0299AA */ jal func_800A66A8 -/* 0A7284 800A6684 02602025 */ move $a0, $s3 -.L800A6688: -/* 0A7288 800A6688 8FBF0044 */ lw $ra, 0x44($sp) -/* 0A728C 800A668C D7B40028 */ ldc1 $f20, 0x28($sp) -/* 0A7290 800A6690 8FB00034 */ lw $s0, 0x34($sp) -/* 0A7294 800A6694 8FB10038 */ lw $s1, 0x38($sp) -/* 0A7298 800A6698 8FB2003C */ lw $s2, 0x3c($sp) -/* 0A729C 800A669C 8FB30040 */ lw $s3, 0x40($sp) -/* 0A72A0 800A66A0 03E00008 */ jr $ra -/* 0A72A4 800A66A4 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/non_matchings/code_80091750/func_800A6BEC.s b/asm/non_matchings/code_80091750/func_800A6BEC.s deleted file mode 100644 index 19430e8b5..000000000 --- a/asm/non_matchings/code_80091750/func_800A6BEC.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel func_800A6BEC -/* 0A77EC 800A6BEC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0A77F0 800A6BF0 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0A77F4 800A6BF4 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) -/* 0A77F8 800A6BF8 AFB00014 */ sw $s0, 0x14($sp) -/* 0A77FC 800A6BFC AFBF002C */ sw $ra, 0x2c($sp) -/* 0A7800 800A6C00 AFB50028 */ sw $s5, 0x28($sp) -/* 0A7804 800A6C04 AFB40024 */ sw $s4, 0x24($sp) -/* 0A7808 800A6C08 AFB30020 */ sw $s3, 0x20($sp) -/* 0A780C 800A6C0C AFB2001C */ sw $s2, 0x1c($sp) -/* 0A7810 800A6C10 AFB10018 */ sw $s1, 0x18($sp) -/* 0A7814 800A6C14 AFA40030 */ sw $a0, 0x30($sp) -/* 0A7818 800A6C18 18600020 */ blez $v1, .L800A6C9C -/* 0A781C 800A6C1C 00008025 */ move $s0, $zero -/* 0A7820 800A6C20 3C158016 */ lui $s5, %hi(gNmiUnknown2) # $s5, 0x8016 -/* 0A7824 800A6C24 3C148016 */ lui $s4, %hi(gNmiUnknown5) # $s4, 0x8016 -/* 0A7828 800A6C28 3C11800E */ lui $s1, %hi(gModeSelection) # $s1, 0x800e -/* 0A782C 800A6C2C 2631C53C */ addiu $s1, %lo(gModeSelection) # addiu $s1, $s1, -0x3ac4 -/* 0A7830 800A6C30 2694F8C8 */ addiu $s4, %lo(gNmiUnknown5) # addiu $s4, $s4, -0x738 -/* 0A7834 800A6C34 26B5F8BC */ addiu $s5, %lo(gNmiUnknown2) # addiu $s5, $s5, -0x744 -/* 0A7838 800A6C38 24130003 */ li $s3, 3 -/* 0A783C 800A6C3C 24120002 */ li $s2, 2 -/* 0A7840 800A6C40 8E220000 */ lw $v0, ($s1) -.L800A6C44: -/* 0A7844 800A6C44 02602025 */ move $a0, $s3 -/* 0A7848 800A6C48 02002825 */ move $a1, $s0 -/* 0A784C 800A6C4C 10520005 */ beq $v0, $s2, .L800A6C64 -/* 0A7850 800A6C50 00000000 */ nop -/* 0A7854 800A6C54 10530008 */ beq $v0, $s3, .L800A6C78 -/* 0A7858 800A6C58 02602025 */ move $a0, $s3 -/* 0A785C 800A6C5C 1000000C */ b .L800A6C90 -/* 0A7860 800A6C60 26100001 */ addiu $s0, $s0, 1 -.L800A6C64: -/* 0A7864 800A6C64 0C029BA5 */ jal func_800A6E94 -/* 0A7868 800A6C68 8EA60000 */ lw $a2, ($s5) -/* 0A786C 800A6C6C 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0A7870 800A6C70 10000006 */ b .L800A6C8C -/* 0A7874 800A6C74 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) -.L800A6C78: -/* 0A7878 800A6C78 02002825 */ move $a1, $s0 -/* 0A787C 800A6C7C 0C029B65 */ jal func_800A6D94 -/* 0A7880 800A6C80 8E860000 */ lw $a2, ($s4) -/* 0A7884 800A6C84 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0A7888 800A6C88 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) -.L800A6C8C: -/* 0A788C 800A6C8C 26100001 */ addiu $s0, $s0, 1 -.L800A6C90: -/* 0A7890 800A6C90 0203082A */ slt $at, $s0, $v1 -/* 0A7894 800A6C94 5420FFEB */ bnel $at, $zero, .L800A6C44 -/* 0A7898 800A6C98 8E220000 */ lw $v0, ($s1) -.L800A6C9C: -/* 0A789C 800A6C9C 8FBF002C */ lw $ra, 0x2c($sp) -/* 0A78A0 800A6CA0 8FB00014 */ lw $s0, 0x14($sp) -/* 0A78A4 800A6CA4 8FB10018 */ lw $s1, 0x18($sp) -/* 0A78A8 800A6CA8 8FB2001C */ lw $s2, 0x1c($sp) -/* 0A78AC 800A6CAC 8FB30020 */ lw $s3, 0x20($sp) -/* 0A78B0 800A6CB0 8FB40024 */ lw $s4, 0x24($sp) -/* 0A78B4 800A6CB4 8FB50028 */ lw $s5, 0x28($sp) -/* 0A78B8 800A6CB8 03E00008 */ jr $ra -/* 0A78BC 800A6CBC 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80091750/func_800A6CC0.s b/asm/non_matchings/code_80091750/func_800A6CC0.s deleted file mode 100644 index c594e666e..000000000 --- a/asm/non_matchings/code_80091750/func_800A6CC0.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel func_800A6CC0 -/* 0A78C0 800A6CC0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0A78C4 800A6CC4 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0A78C8 800A6CC8 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) -/* 0A78CC 800A6CCC AFB00014 */ sw $s0, 0x14($sp) -/* 0A78D0 800A6CD0 AFBF002C */ sw $ra, 0x2c($sp) -/* 0A78D4 800A6CD4 AFB50028 */ sw $s5, 0x28($sp) -/* 0A78D8 800A6CD8 AFB40024 */ sw $s4, 0x24($sp) -/* 0A78DC 800A6CDC AFB30020 */ sw $s3, 0x20($sp) -/* 0A78E0 800A6CE0 AFB2001C */ sw $s2, 0x1c($sp) -/* 0A78E4 800A6CE4 AFB10018 */ sw $s1, 0x18($sp) -/* 0A78E8 800A6CE8 AFA40030 */ sw $a0, 0x30($sp) -/* 0A78EC 800A6CEC 18600020 */ blez $v1, .L800A6D70 -/* 0A78F0 800A6CF0 00008025 */ move $s0, $zero -/* 0A78F4 800A6CF4 3C158016 */ lui $s5, %hi(gNmiUnknown3) # $s5, 0x8016 -/* 0A78F8 800A6CF8 3C148016 */ lui $s4, %hi(gNmiUnknown6) # $s4, 0x8016 -/* 0A78FC 800A6CFC 3C11800E */ lui $s1, %hi(gModeSelection) # $s1, 0x800e -/* 0A7900 800A6D00 2631C53C */ addiu $s1, %lo(gModeSelection) # addiu $s1, $s1, -0x3ac4 -/* 0A7904 800A6D04 2694F8CC */ addiu $s4, %lo(gNmiUnknown6) # addiu $s4, $s4, -0x734 -/* 0A7908 800A6D08 26B5F8C0 */ addiu $s5, %lo(gNmiUnknown3) # addiu $s5, $s5, -0x740 -/* 0A790C 800A6D0C 24130003 */ li $s3, 3 -/* 0A7910 800A6D10 24120002 */ li $s2, 2 -/* 0A7914 800A6D14 8E220000 */ lw $v0, ($s1) -.L800A6D18: -/* 0A7918 800A6D18 24040004 */ li $a0, 4 -/* 0A791C 800A6D1C 02002825 */ move $a1, $s0 -/* 0A7920 800A6D20 10520005 */ beq $v0, $s2, .L800A6D38 -/* 0A7924 800A6D24 00000000 */ nop -/* 0A7928 800A6D28 10530008 */ beq $v0, $s3, .L800A6D4C -/* 0A792C 800A6D2C 24040004 */ li $a0, 4 -/* 0A7930 800A6D30 1000000C */ b .L800A6D64 -/* 0A7934 800A6D34 26100001 */ addiu $s0, $s0, 1 -.L800A6D38: -/* 0A7938 800A6D38 0C029BA5 */ jal func_800A6E94 -/* 0A793C 800A6D3C 8EA60000 */ lw $a2, ($s5) -/* 0A7940 800A6D40 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0A7944 800A6D44 10000006 */ b .L800A6D60 -/* 0A7948 800A6D48 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) -.L800A6D4C: -/* 0A794C 800A6D4C 02002825 */ move $a1, $s0 -/* 0A7950 800A6D50 0C029B65 */ jal func_800A6D94 -/* 0A7954 800A6D54 8E860000 */ lw $a2, ($s4) -/* 0A7958 800A6D58 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0A795C 800A6D5C 8063EDF3 */ lb $v1, %lo(D_8018EDF3)($v1) -.L800A6D60: -/* 0A7960 800A6D60 26100001 */ addiu $s0, $s0, 1 -.L800A6D64: -/* 0A7964 800A6D64 0203082A */ slt $at, $s0, $v1 -/* 0A7968 800A6D68 5420FFEB */ bnel $at, $zero, .L800A6D18 -/* 0A796C 800A6D6C 8E220000 */ lw $v0, ($s1) -.L800A6D70: -/* 0A7970 800A6D70 8FBF002C */ lw $ra, 0x2c($sp) -/* 0A7974 800A6D74 8FB00014 */ lw $s0, 0x14($sp) -/* 0A7978 800A6D78 8FB10018 */ lw $s1, 0x18($sp) -/* 0A797C 800A6D7C 8FB2001C */ lw $s2, 0x1c($sp) -/* 0A7980 800A6D80 8FB30020 */ lw $s3, 0x20($sp) -/* 0A7984 800A6D84 8FB40024 */ lw $s4, 0x24($sp) -/* 0A7988 800A6D88 8FB50028 */ lw $s5, 0x28($sp) -/* 0A798C 800A6D8C 03E00008 */ jr $ra -/* 0A7990 800A6D90 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80091750/func_800AAE68.s b/asm/non_matchings/code_80091750/func_800AAE68.s deleted file mode 100644 index 945bce121..000000000 --- a/asm/non_matchings/code_80091750/func_800AAE68.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_800AAE68 -/* 0ABA68 800AAE68 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 -/* 0ABA6C 800AAE6C 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0ABA70 800AAE70 3C038019 */ lui $v1, %hi(D_8018D9E0) # $v1, 0x8019 -/* 0ABA74 800AAE74 3C048019 */ lui $a0, %hi(D_8018DEE0) # $a0, 0x8019 -/* 0ABA78 800AAE78 2463D9E0 */ addiu $v1, %lo(D_8018D9E0) # addiu $v1, $v1, -0x2620 -/* 0ABA7C 800AAE7C 2484DEE0 */ addiu $a0, %lo(D_8018DEE0) # addiu $a0, $a0, -0x2120 -/* 0ABA80 800AAE80 2442FFFF */ addiu $v0, $v0, -1 -/* 0ABA84 800AAE84 8C6F0000 */ lw $t7, ($v1) -.L800AAE88: -/* 0ABA88 800AAE88 244E000B */ addiu $t6, $v0, 0xb -/* 0ABA8C 800AAE8C 11CF0007 */ beq $t6, $t7, .L800AAEAC -/* 0ABA90 800AAE90 00000000 */ nop -/* 0ABA94 800AAE94 24630028 */ addiu $v1, $v1, 0x28 -/* 0ABA98 800AAE98 0083082B */ sltu $at, $a0, $v1 -/* 0ABA9C 800AAE9C 5020FFFA */ beql $at, $zero, .L800AAE88 -/* 0ABAA0 800AAEA0 8C6F0000 */ lw $t7, ($v1) -.L800AAEA4: -/* 0ABAA4 800AAEA4 1000FFFF */ b .L800AAEA4 -/* 0ABAA8 800AAEA8 00000000 */ nop -.L800AAEAC: -/* 0ABAAC 800AAEAC 03E00008 */ jr $ra -/* 0ABAB0 800AAEB0 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/code_80091750/func_800AAEB4.s b/asm/non_matchings/code_80091750/func_800AAEB4.s deleted file mode 100644 index 0dbc947e8..000000000 --- a/asm/non_matchings/code_80091750/func_800AAEB4.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel func_800AAEB4 -/* 0ABAB4 800AAEB4 3C038019 */ lui $v1, %hi(D_8018D9E0) # $v1, 0x8019 -/* 0ABAB8 800AAEB8 3C028019 */ lui $v0, %hi(D_8018DEE0) # $v0, 0x8019 -/* 0ABABC 800AAEBC 2463D9E0 */ addiu $v1, %lo(D_8018D9E0) # addiu $v1, $v1, -0x2620 -/* 0ABAC0 800AAEC0 2442DEE0 */ addiu $v0, %lo(D_8018DEE0) # addiu $v0, $v0, -0x2120 -/* 0ABAC4 800AAEC4 8C6F0000 */ lw $t7, ($v1) -.L800AAEC8: -/* 0ABAC8 800AAEC8 248E002B */ addiu $t6, $a0, 0x2b -/* 0ABACC 800AAECC 11CF0007 */ beq $t6, $t7, .L800AAEEC -/* 0ABAD0 800AAED0 00000000 */ nop -/* 0ABAD4 800AAED4 24630028 */ addiu $v1, $v1, 0x28 -/* 0ABAD8 800AAED8 0043082B */ sltu $at, $v0, $v1 -/* 0ABADC 800AAEDC 5020FFFA */ beql $at, $zero, .L800AAEC8 -/* 0ABAE0 800AAEE0 8C6F0000 */ lw $t7, ($v1) -.L800AAEE4: -/* 0ABAE4 800AAEE4 1000FFFF */ b .L800AAEE4 -/* 0ABAE8 800AAEE8 00000000 */ nop -.L800AAEEC: -/* 0ABAEC 800AAEEC 03E00008 */ jr $ra -/* 0ABAF0 800AAEF0 00601025 */ move $v0, $v1 diff --git a/include/variables.h b/include/variables.h index 37108e64b..dc14970ec 100644 --- a/include/variables.h +++ b/include/variables.h @@ -101,7 +101,6 @@ extern u16 D_80150112; extern u16 D_8015F890; -extern u16 D_80162DD4[]; extern u16 D_80162DD8; extern s32 D_80162DE0; extern s32 D_80162DE4; diff --git a/src/code_80091750.c b/src/code_80091750.c index 6603d4140..efb817ccf 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -21,6 +21,7 @@ #include "staff_ghosts.h" #include "common_textures.h" #include "math_util.h" +#include "save_data.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" @@ -605,17 +606,15 @@ char *D_800E7840[] = { "erase", }; -char *D_800E7848[][3] = { - { - "THE BEST RECORDS AND BEST", - "LAP FOR THIS COURSE WILL BE", - "ERASED. IS THIS OK?", - }, - { - "GHOST DATA FOR THIS", - "COURSE WILL BE ERASED.", - "IS THIS OK?", - }, +// Why oh why is this array flat? It should be D_800E7848[][3] +char *D_800E7848[] = { + "THE BEST RECORDS AND BEST", + "LAP FOR THIS COURSE WILL BE", + "ERASED. IS THIS OK?", + + "GHOST DATA FOR THIS", + "COURSE WILL BE ERASED.", + "IS THIS OK?", }; char *D_800E7860[] = { @@ -669,21 +668,23 @@ char *D_800E7890[][4] = { }, }; -char *D_800E78D0[][4] = { +char *D_800E78D0[][3] = { { "NO GHOST DATA ", "IN CONTROLLER 2 ", "N64 CONTROLLER PAK", - "NO MARIO KART 64 DATA ", }, { + "NO MARIO KART 64 DATA ", "PRESENT IN CONTROLLER 2 ", "N64 CONTROLLER PAK", - "CONTROLLER 2 ", - "DOES NOT HAVE ", }, { + "CONTROLLER 2 ", + "DOES NOT HAVE ", "N64 CONTROLLER PAK SET", + }, + { "UNABLE TO READ DATA ", "FROM CONTROLLER 2 ", "N64 CONTROLLER PAK", @@ -7755,25 +7756,13 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/add_8018D9E0_entry.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-03-2023 Gfx *func_800959CC(Gfx *, s32, s32, s32, s32); /* extern */ Gfx *func_80096CD8(Gfx *, ?, ?, ?, s32); /* extern */ ? func_800A0B80(struct_8018D9E0_entry *); /* extern */ -? func_800A0EB8(struct_8018D9E0_entry *, s32); /* extern */ -? func_800A0FA4(struct_8018D9E0_entry *, s32); /* extern */ -? func_800A10CC(struct_8018D9E0_entry *); /* extern */ ? func_800A1780(struct_8018D9E0_entry *); /* extern */ -? func_800A1BE0(struct_8018D9E0_entry *); /* extern */ -? func_800A1DE0(struct_8018D9E0_entry *); /* extern */ ? func_800A1FB0(struct_8018D9E0_entry *); /* extern */ -? func_800A3E60(struct_8018D9E0_entry *); /* extern */ -? func_800A5738(struct_8018D9E0_entry *); /* extern */ -? func_800A6154(struct_8018D9E0_entry *); /* extern */ ? func_800A638C(struct_8018D9E0_entry *); /* extern */ -? func_800A8270(s32, struct_8018D9E0_entry *); /* extern */ -? func_800A8564(struct_8018D9E0_entry *); /* extern */ -? func_800A874C(struct_8018D9E0_entry *); /* extern */ -? func_800A8CA4(struct_8018D9E0_entry *); /* extern */ extern s8 D_802874F6; s16 gCurrentCourseId; /* unable to generate initializer */ @@ -7871,7 +7860,7 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x32, 0x00, 0xFF); gDisplayListHead = func_8009B9D0(gDisplayListHead, &D_02001630); gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x32, 0x32, 0x00, 0xFF); - gDisplayListHead = func_8009B9D0(gDisplayListHead, &D_02001658); + gDisplayListHead = func_8009B9D0(gDisplayListHead, D_02001658); return; case 0xD6: /* switch 6 */ func_8009A76C(arg0->type, arg0->type, arg0->type, -1); @@ -7881,7 +7870,7 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) { return; case 0xD8: /* switch 6 */ case 0xD9: /* switch 6 */ - func_800A0EB8(arg0, var_t0 - 0xD8); + func_800A0EB8((s32) arg0, var_t0 - 0xD8); return; case 0x1: /* switch 6 */ gDisplayListHead = func_8009BA74(gDisplayListHead, D_800E7D4C[func_800B555C()], arg0->type, arg0->type); @@ -8754,26 +8743,22 @@ void func_800A1A20(struct_8018D9E0_entry *arg0) { func_800A474C(TIME_TRIAL_1LAP_RECORD, 0x96, arg0->row + 0xE1); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ - +#ifdef NON_MATCHING +// s3 and s4 are getting mixed up, not sure what's causing that void func_800A1BE0(struct_8018D9E0_entry *arg0) { - s16 sp7A; - s16 sp78; - Gfx *temp_v1; + s32 stackPadding0; + s32 stackPadding1; + s32 stackPadding2; + s32 stackPadding3; + Unk_D_800E70A0 sp78; s32 var_s0; s32 var_s1; s32 var_s2; - s32 var_s4; - s8 **var_s3; - u8 *temp_s6; + s32 thing; + CourseTimeTrialRecords *temp_s6; - temp_s6 = &gSaveData.allCourseTimeTrialRecords.cupRecords[gTimeTrialDataCourseIndex / 4].courseRecords[gTimeTrialDataCourseIndex % 4].records[0]; - var_s3 = D_800E7834; - var_s0 = 0; - var_s4 = 0x0000003F; - do { + temp_s6 = &gSaveData.allCourseTimeTrialRecords.cupRecords[gTimeTrialDataCourseIndex / 4].courseRecords[gTimeTrialDataCourseIndex % 4]; + for (var_s0 = 0; var_s0 < 3; var_s0++) { var_s1 = 0; if (var_s0 == gCourseRecordsMenuSelection) { var_s2 = 5; @@ -8781,79 +8766,63 @@ void func_800A1BE0(struct_8018D9E0_entry *arg0) { var_s2 = 1; switch (var_s0) { /* irregular */ case 1: - if (temp_s6->unk12 == 0) { -block_9: + if (temp_s6->unknownBytes[0] == 0) { var_s1 = 1; } break; case 2: if (func_800B639C((s32) gTimeTrialDataCourseIndex) < 0) { - goto block_9; + var_s1 = 1; } break; } } if (var_s1 != 0) { set_text_color(0); - temp_v1 = gDisplayListHead; - gDisplayListHead = temp_v1 + 8; - temp_v1->words.w1 = 0x00000096; - temp_v1->words.w0 = 0xFA000000; - func_80093358(0x00000025, var_s4, *var_s3, 0, 0.6f, 0.6f); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0x96); + func_80093358(0x00000025, 0x3F + (0xD * var_s0), D_800E7834[var_s0], 0, 0.6f, 0.6f); } else { set_text_color(var_s2); - func_80093324(0x00000025, var_s4, *var_s3, 0, 0.6f, 0.6f); + func_80093324(0x00000025, 0x3F + (0xD * var_s0), D_800E7834[var_s0], 0, 0.6f, 0.6f); } - var_s0 += 1; - var_s3 += 4; - var_s4 += 0xD; - } while (var_s0 != 3); - sp78 = 0x001F; - sp7A = (gCourseRecordsMenuSelection * 0xD) + 0x3A; - func_800A66A8(arg0, &sp78); + } + sp78.column = 0x001F; + sp78.row = (gCourseRecordsMenuSelection * 0xD) + 0x3A; + func_800A66A8(arg0, (Unk_D_800E70A0 *) &sp78); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1BE0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ - +#ifdef NON_MATCHING +// The loading of 0x3C is happning at the wrong time and +// s0/s1 are getting swapped. I really hate this register allocation bullshit void func_800A1DE0(struct_8018D9E0_entry *arg0) { - s16 sp5A; - s16 sp58; + s32 stackPadding0; + s32 stackPadding1; + s32 stackPadding2; + s32 stackPadding3; + Unk_D_800E70A0 sp58; + s32 stackPadding4; s32 var_a0; s32 var_s0; s32 var_s1; - s32 var_s1_2; - s32 var_s2; - s8 **var_s0_2; set_text_color(1); - var_s1 = 0; - var_s0 = 0x0000003C; - do { - func_80093324(0x0000001B, var_s0, (D_800E7848[gCourseRecordsMenuSelection] + var_s1)->unk-C, 0, 0.65f, 0.65f); - var_s0 += 0xD; - var_s1 += 4; - } while (var_s0 < 0x63); - var_s0_2 = D_800E7840; - var_s2 = 0; - var_s1_2 = 0x0000006E; - do { - var_a0 = 1; - if (var_s2 == D_8018EDF9) { + for (var_s0 = 0x3C, var_s1 = 0; var_s0 < 0x63; var_s1++, var_s0 += 0xD) { + func_80093324(0x0000001B, var_s0, D_800E7848[((gCourseRecordsMenuSelection - 1) * 3) + var_s1], 0, 0.65f, 0.65f); + } + for (var_s1 = 0, var_s0 = 0x6E; var_s1 < 2; var_s1++, var_s0 += 0xD) { + if (var_s1 == D_8018EDF9) { var_a0 = 5; + } else { + var_a0 = 1; } set_text_color(var_a0); - func_80093324(0x00000043, var_s1_2, *var_s0_2, 0, 0.65f, 0.65f); - var_s2 += 1; - var_s0_2 += 4; - var_s1_2 += 0xD; - } while (var_s2 != 2); - sp58 = 0x003B; - sp5A = (D_8018EDF9 * 0xD) + 0x66; + func_80093324(0x00000043, var_s0, D_800E7840[var_s1], 0, 0.65f, 0.65f); + } + sp58.column = 0x003B; + sp58.row = (D_8018EDF9 * 0xD) + 0x66; func_800A66A8(arg0, &sp58); } #else @@ -8871,18 +8840,13 @@ void func_800A1F30(struct_8018D9E0_entry *unused) { } #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ - +//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-02-2023 void func_800A1FB0(struct_8018D9E0_entry *arg0) { - s16 spE2; - s16 spE0; + Unk_D_800E70A0 spE0; /* compiler-managed */ s8 spB9; s8 spB8; - s8 spA9; - s8 spA8; - s8 sp99; - s8 sp98; + s8 spA8[3]; + s8 sp98[3]; s32 sp88; s8 **sp84; s8 **sp78; @@ -8939,127 +8903,84 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) { struct_8018EE10_entry *var_v1_4; gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x00000140, 0x000000F0, 0, 0, 0, 0x00000064); - var_v1 = D_8018EDEC; - switch (var_v1) { /* switch 1 */ + switch (D_8018EDEC) { /* switch 1 */ case 0x15: /* switch 1 */ case 0x16: /* switch 1 */ case 0x17: /* switch 1 */ case 0x18: /* switch 1 */ - var_s1 = D_800E7868; - var_s2 = 0; - var_a0 = var_v1 - 0x15; - var_s0 = 0x00000055; - do { - func_80092224(var_a0, var_s2, 3); - func_80093324(0x00000032, var_s0, *var_s1, 0, 0.9f, 1.0f); + for (var_s2 = 0, var_s0 = 0x55; var_s2 < 4; var_s2++, var_s0 += 0x23) { + func_80092224(D_8018EDEC - 0x15, var_s2, 3); + func_80093324(0x00000032, var_s0, D_800E7868[var_s2], 0, 0.9f, 1.0f); var_s1 += 4; - var_a0 = D_8018EDEC - 0x15; - if (var_s2 == var_a0) { - spE0 = 0x0032; - spE2 = (s16) var_s0; + if (var_s2 == (D_8018EDEC - 0x15)) { + spE0.column = 0x0032; + spE0.row = var_s0; } - var_s2 += 1; - var_s0 += 0x23; - } while (var_s2 != 4); + } set_text_color(1); draw_text(0x000000E6, 0x00000078, gSoundModeNames[gSoundMode], 0, 1.0f, 1.0f); -block_98: - var_v1 = D_8018EDEC; break; case 0x1E: /* switch 1 */ case 0x1F: /* switch 1 */ set_text_color(3); - var_s1_2 = D_800E7878; - var_s0_2 = 0x00000055; - do { - func_80093324(0x00000028, var_s0_2, *var_s1_2, 0, 1.0f, 1.0f); - var_s1_2 += 4; - var_s0_2 += 0x14; - } while ((u32) var_s1_2 < (u32) D_800E7884); - var_s1_3 = D_800E7840; - var_s2_2 = 0; - var_s0_3 = 0x00000096; - var_a0_2 = D_8018EDEC - 0x1E; - do { - func_80092224(var_a0_2, var_s2_2, 1); - func_80093324(0x00000084, var_s0_3, *var_s1_3, 0, 1.0f, 1.0f); - var_v1 = D_8018EDEC; - var_s1_3 += 4; - var_a0_2 = var_v1 - 0x1E; - if (var_s2_2 == var_a0_2) { - spE0 = 0x0084; - spE2 = (s16) var_s0_3; + for (var_s2 = 0, var_s0 = 0x55; var_s2 < 3; var_s2++, var_s0 += 0x14) { + func_80093324(0x00000028, var_s0, D_800E7878[var_s2], 0, 1.0f, 1.0f); + } + for (var_s2 = 0, var_s0 = 0x96; var_s2 < 2; var_s2++, var_s0 += 0x19) { + func_80092224(D_8018EDEC - 0x1E, var_s2_2, 1); + func_80093324(0x00000084, var_s0, D_800E7840[var_s2], 0, 1.0f, 1.0f); + if (var_s2_2 == (D_8018EDEC - 0x1E)) { + spE0.column = 0x0084; + spE0.row = var_s0; } - var_s2_2 += 1; - var_s0_3 += 0x19; - } while (var_s2_2 != 2); + } break; case 0x20: /* switch 1 */ set_text_color(3); - var_s1_4 = D_800E7884; - var_s0_4 = 0x00000055; - do { - func_80093324(0x00000032, var_s0_4, *var_s1_4, 0, 1.0f, 1.0f); - var_s1_4 += 4; - var_s0_4 += 0x14; - } while (var_s1_4 != D_800E7890); - goto block_98; + for (var_s2 = 0, var_s0 = 0x55; var_s2 < 2; var_s2++, var_s0 += 0x14) { + func_80093324(0x00000032, var_s0, D_800E7884[var_s2], 0, 1.0f, 1.0f); + } + break; case 0x2A: /* switch 1 */ case 0x2B: /* switch 1 */ case 0x2C: /* switch 1 */ case 0x2D: /* switch 1 */ set_text_color(2); - var_s1_5 = ((D_8018EDEC - 0x2A) * 0xC) + D_800E78D0; - var_s0_5 = 0x00000055; - do { - func_80093324(0x00000032, var_s0_5, *var_s1_5, 0, 0.9f, 0.9f); - var_s0_5 += 0x14; - var_s1_5 += 4; - } while (var_s0_5 != 0x00000091); - goto block_98; + for (var_s2 = 0, var_s0 = 0x55; var_s0 < 0x91; var_s2++, var_s0 += 0x14) { + func_80093324(0x00000032, var_s0, D_800E78D0[D_8018EDEC - 0x2A][var_s2], 0, 0.9f, 0.9f); + } + break; case 0x34: /* switch 1 */ case 0x35: /* switch 1 */ case 0x36: /* switch 1 */ case 0x37: /* switch 1 */ set_text_color(2); - var_s1_6 = D_800E7890[D_8018EDEC - 0x34]; - var_s0_6 = 0x00000055; - do { - func_80093324(0x00000023, var_s0_6, *var_s1_6, 0, 0.8f, 0.8f); - var_s0_6 += 0x14; - var_s1_6 += 4; - } while (var_s0_6 != 0x000000A5); - goto block_98; + for (var_s2 = 0, var_s0 = 0x55; var_s0 < 0xA5; var_s2++, var_s0 += 0x14) { + func_80093324(0x00000023, var_s0, D_800E7890[D_8018EDEC - 0x34][var_s2], 0, 0.8f, 0.8f); + } + break; case 0x41: /* switch 1 */ case 0x42: /* switch 1 */ set_text_color(2); - var_s1_7 = D_800E7900[D_8018EDEC - 0x41]; - var_s0_7 = 0x00000055; - do { - func_80093324(0x00000041, var_s0_7, *var_s1_7, 0, 0.9f, 0.9f); - var_s0_7 += 0x14; - var_s1_7 += 4; - } while (var_s0_7 != 0x00000091); - goto block_98; + for (var_s2 = 0, var_s0 = 0x55; var_s0 < 0x91; var_s2++, var_s0 += 0x14) { + func_80093324(0x00000041, var_s0, D_800E7900[D_8018EDEC - 0x41][var_s2], 0, 0.9f, 0.9f); + } + break; case 0x46: /* switch 1 */ case 0x47: /* switch 1 */ set_text_color(3); - var_s1_8 = D_800E7A48; - var_s0_8 = 0x00000055; - do { - func_80093324(0x00000050, var_s0_8, *var_s1_8, 0, 1.0f, 1.0f); - var_s1_8 += 4; - var_s0_8 += 0x14; - } while (var_s1_8 != D_800E7A54); - goto block_98; + for (var_s2 = 0, var_s0 = 0x55; var_s2 < 3; var_s2++, var_s0 += 0x14) { + func_80093324(0x00000050, var_s0, D_800E7A48[var_s2], 0, 1.0f, 1.0f); + } + break; case 0x28: /* switch 1 */ case 0x29: /* switch 1 */ case 0x32: /* switch 1 */ case 0x33: /* switch 1 */ var_s5 = 0x00000028; - if ((var_v1 != 0x28) && (var_v1 != 0x29)) { + if ((D_8018EDEC != 0x28) && (D_8018EDEC != 0x29)) { var_s5 = 0x00000032; - if ((var_v1 != 0x32) && (var_s4 = spC0, (var_v1 != 0x33))) { + if ((D_8018EDEC != 0x32) && (var_s4 = spC0, (D_8018EDEC != 0x33))) { var_s5 = spC4; } else { var_s4 = 1; @@ -9077,38 +8998,30 @@ block_98: do { set_text_color(3); draw_text(sp88, 0x0000007D, *sp84, 0, 0.75f, 0.75f); - var_s0_9 = 0; - var_s2_3 = 0x0096; -loop_38: - if (var_s3 != sp78) { - func_800921C0(D_8018EDEC - var_s5, var_s0_9, 1); - if (var_s0_9 == (D_8018EDEC - var_s5)) { - spE0 = var_s6; - spE2 = var_s2_3; + for (var_s2 = 0, var_s0 = 0x96; var_s2 < 2; var_s2++, var_s0 += 0x1E) { + if (var_s3 != sp78) { + func_800921C0(D_8018EDEC - var_s5, var_s2, 1); + if (var_s2 == (D_8018EDEC - var_s5)) { + spE0.column = var_s6; + spE0.row = var_s0; + } + } else if ((var_s4 != 0) && (var_s2 == arg0->unk20)) { + set_text_color((s32) gGlobalTimer % 3); + } else { + set_text_color(1); + } + convert_number_to_ascii(var_s2 + 1, &spB8); + func_80093324((s32) var_s6, (s32) var_s0, &spB9, 0, 0.6f, 0.6f); + if (var_s3 == 0x0000002A) { + var_v1_2 = &D_8018EE10[var_s2]; + } else { + var_v1_2 = &D_8018D9C0[var_s2]; + } + if (var_v1_2->ghostDataSaved == 0) { + func_80093324(var_s3, (s32) var_s0, D_800E7A44, 0, 0.5f, 0.5f); + } else { + func_80093324(var_s3, (s32) var_s0, D_800E75C4[gCupCourseOrder[var_v1_2->courseIndex / 4][var_v1_2->courseIndex % 4]], 0, 0.5f, 0.5f); } - } else if ((var_s4 != 0) && (var_s0_9 == arg0->unk20)) { - set_text_color((s32) gGlobalTimer % 3); - } else { - set_text_color(1); - } - temp_s1 = var_s0_9 + 1; - convert_number_to_ascii(temp_s1, &spB8); - func_80093324((s32) var_s6, (s32) var_s2_3, &spB9, 0, 0.6f, 0.6f); - if (var_s3 == 0x0000002A) { - var_v1_2 = &D_8018EE10[var_s0_9]; - } else { - var_v1_2 = &D_8018D9C0[var_s0_9]; - } - if (var_v1_2->ghostDataSaved == 0) { - func_80093324(var_s3, (s32) var_s2_3, D_800E7A44, 0, 0.5f, 0.5f); - } else { - temp_v0 = var_v1_2->courseIndex; - func_80093324(var_s3, (s32) var_s2_3, D_800E75C4[*(gCupCourseOrder + (((temp_v0 / 4) * 8) + ((temp_v0 % 4) * 2)))], 0, 0.5f, 0.5f); - } - var_s0_9 = temp_s1; - var_s2_3 += 0x1E; - if (temp_s1 != 2) { - goto loop_38; } var_s3 += 0x89; sp84 += 4; @@ -9119,13 +9032,9 @@ loop_38: case 0x38: /* switch 1 */ case 0x39: /* switch 1 */ set_text_color(2); - var_s0_10 = D_800E7928; - var_s1_9 = 0x0000004D; - do { - draw_text(0x000000A0, var_s1_9, *var_s0_10, 0, 0.8f, 0.8f); - var_s0_10 += 4; - var_s1_9 += 0x14; - } while ((u32) var_s0_10 < (u32) D_800E7930); + for (var_s2 = 0, var_s0 = 0x4D; var_s2 < 2; var_s2++, var_s0 += 0x14) { + func_80093324(0x000000A0, var_s0, D_800E7928[var_s2], 0, 0.8f, 0.8f); + } sp88 = 0x0000005C; sp84 = D_800E7918; var_s6_2 = 0x00000020; @@ -9133,65 +9042,50 @@ loop_38: do { set_text_color(3); draw_text(sp88, 0x0000007D, *sp84, 0, 0.75f, 0.75f); - var_s0_11 = 0; - var_s2_4 = 0x00000096; -loop_58: - if (var_s3_2 == 0x0000002A) { - if (var_s0_11 == arg0->unk1C) { + for (var_s2 = 0, var_s0 = 0x96; var_s2 < 2; var_s2++, var_s0 += 0x1E) { + if (var_s3_2 == 0x0000002A) { + if (var_s2 == arg0->unk1C) { + set_text_color((s32) gGlobalTimer % 3); + } else { + set_text_color(1); + } + } else if (var_s2 == arg0->unk20) { set_text_color((s32) gGlobalTimer % 3); } else { set_text_color(1); } - } else if (var_s0_11 == arg0->unk20) { - set_text_color((s32) gGlobalTimer % 3); - } else { - set_text_color(1); - } - temp_s1_2 = var_s0_11 + 1; - convert_number_to_ascii(temp_s1_2, &spA8); - func_80093324(var_s6_2, var_s2_4, &spA9, 0, 0.6f, 0.6f); - if (var_s3_2 == 0x0000002A) { - var_v1_3 = &D_8018EE10[var_s0_11]; - } else { - var_v1_3 = &D_8018D9C0[var_s0_11]; - } - if (var_v1_3->ghostDataSaved == 0) { - func_80093324(var_s3_2, var_s2_4, D_800E7A44, 0, 0.5f, 0.5f); - } else { - temp_v0_2 = var_v1_3->courseIndex; - func_80093324(var_s3_2, var_s2_4, D_800E75C4[*(gCupCourseOrder + (((temp_v0_2 / 4) * 8) + ((temp_v0_2 % 4) * 2)))], 0, 0.5f, 0.5f); - } - var_s0_11 = temp_s1_2; - var_s2_4 += 0x1E; - if (temp_s1_2 != 2) { - goto loop_58; + convert_number_to_ascii(var_s2 + 1, spA8); + func_80093324(var_s6_2, var_s0, &spA8[1], 0, 0.6f, 0.6f); + if (var_s3_2 == 0x0000002A) { + var_v1_3 = &D_8018EE10[var_s2]; + } else { + var_v1_3 = &D_8018D9C0[var_s2]; + } + if (var_v1_3->ghostDataSaved == 0) { + func_80093324(var_s3_2, var_s0, D_800E7A44, 0, 0.5f, 0.5f); + } else { + func_80093324(var_s3_2, var_s0, D_800E75C4[gCupCourseOrder[var_v1_3->courseIndex / 4][var_v1_3->courseIndex % 4]], 0, 0.5f, 0.5f); + } } var_s3_2 += 0x89; sp84 += 4; sp88 += 0x82; var_s6_2 += 0x89; } while (var_s3_2 < 0x13C); - var_s3_3 = D_800E7930; - var_s2_5 = 0; - var_s1_10 = 0x006E; - do { - temp_a0 = D_8018EDEC - 0x38; - if (var_s2_5 == temp_a0) { - spE0 = var_s1_10; - spE2 = 0x00D2; + for (var_s2 = 0, var_s0 = 0x6E; var_s2 < 2; var_s2++, var_s0 += 0x32) { + if (var_s2 == (D_8018EDEC - 0x38)) { + spE0.column = var_s0; + spE0.row = 0x00D2; } - func_800921C0(temp_a0, var_s0_11, 3); - func_80093324((s32) var_s1_10, 0x000000D2, *var_s3_3, 0, 0.75f, 0.75f); - var_s2_5 += 1; - var_s1_10 += 0x32; - var_s3_3 += 4; - } while (var_s2_5 != 2); - goto block_98; + func_800921C0((D_8018EDEC - 0x38), var_s0_11, 3); + func_80093324(var_s0, 0x000000D2, D_800E7930[var_s2], 0, 0.75f, 0.75f); + } + break; case 0x3A: /* switch 1 */ case 0x3B: /* switch 1 */ case 0x3C: /* switch 1 */ set_text_color(2); - temp_v0_3 = &D_800E7938[(s32) (var_v1 - 0x3A) / 2]; + temp_v0_3 = &D_800E7938[(D_8018EDEC - 0x3A) / 2]; sp78 = temp_v0_3; draw_text(0x000000A0, 0x00000055, *temp_v0_3, 0, 1.0f, 1.0f); sp88 = 0x0000005C; @@ -9201,66 +9095,58 @@ loop_58: do { set_text_color(3); draw_text(sp88, 0x0000007D, *sp84, 0, 0.75f, 0.75f); - var_s0_12 = 0; - var_s2_6 = 0x00000096; -loop_80: - if (var_s3_4 == 0x0000002A) { - if (var_s0_12 == arg0->unk1C) { - if (sp78 == D_800E7938) { - set_text_color(2); + for (var_s2 = 0, var_s0 = 0x96; var_s2 < 2; var_s2++, var_s0 += 0x1E) { + if (var_s3_4 == 0x0000002A) { + if (var_s2 == arg0->unk1C) { + if (sp78 == D_800E7938) { + set_text_color(2); + } else { + set_text_color(gGlobalTimer % 3); + } } else { - set_text_color((s32) gGlobalTimer % 3); + set_text_color(1); } + } else if (var_s2 == arg0->unk20) { + set_text_color(2); } else { set_text_color(1); } - } else if (var_s0_12 == arg0->unk20) { - set_text_color(2); - } else { - set_text_color(1); - } - temp_s1_3 = var_s0_12 + 1; - convert_number_to_ascii(temp_s1_3, &sp98); - func_80093324(var_s6_3, var_s2_6, &sp99, 0, 0.6f, 0.6f); - if (var_s3_4 == 0x0000002A) { - var_v1_4 = &D_8018EE10[var_s0_12]; - } else { - var_v1_4 = &D_8018D9C0[var_s0_12]; - } - if (var_v1_4->ghostDataSaved == 0) { - func_80093324(var_s3_4, var_s2_6, D_800E7A44, 0, 0.5f, 0.5f); - } else { - temp_v0_4 = var_v1_4->courseIndex; - func_80093324(var_s3_4, var_s2_6, D_800E75C4[*(gCupCourseOrder + (((temp_v0_4 / 4) * 8) + ((temp_v0_4 % 4) * 2)))], 0, 0.5f, 0.5f); - } - var_s0_12 = temp_s1_3; - var_s2_6 += 0x1E; - if (temp_s1_3 != 2) { - goto loop_80; + convert_number_to_ascii(var_s2 + 1, sp98); + func_80093324(var_s6_3, var_s0, &sp98[1], 0, 0.6f, 0.6f); + if (var_s3_4 == 0x0000002A) { + var_v1_4 = &D_8018EE10[var_s2]; + } else { + var_v1_4 = &D_8018D9C0[var_s2]; + } + if (var_v1_4->ghostDataSaved == 0) { + func_80093324(var_s3_4, var_s0, D_800E7A44, 0, 0.5f, 0.5f); + } else { + func_80093324(var_s3_4, var_s0, D_800E75C4[gCupCourseOrder[var_v1_4->courseIndex / 4][var_v1_4->courseIndex % 4]], 0, 0.5f, 0.5f); + } } var_s3_4 += 0x89; sp84 += 4; sp88 += 0x82; var_s6_3 += 0x89; } while (var_s3_4 != 0x0000013C); - goto block_98; + break; } - switch (var_v1) { /* switch 2 */ + switch (D_8018EDEC) { /* switch 2 */ case 0x28: /* switch 2 */ case 0x29: /* switch 2 */ case 0x32: /* switch 2 */ case 0x33: /* switch 2 */ case 0x38: /* switch 2 */ case 0x39: /* switch 2 */ - spE0 -= 5; - spE2 -= 6; + spE0.column -= 5; + spE0.row -= 6; break; default: /* switch 2 */ - spE0 -= 0xA; - spE2 -= 8; + spE0.column -= 0xA; + spE0.row -= 8; break; } - func_800A66A8(arg0, &spE0); + func_800A66A8(arg0, (Unk_D_800E70A0 *) &spE0); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1FB0.s") @@ -9535,64 +9421,32 @@ void func_800A3C84(struct_8018D9E0_entry *arg0) { func_800A474C(TIME_TRIAL_1LAP_RECORD, 0xAA - arg0->column, arg0->row + 0xE1); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ +#ifdef NON_MATCHING +// https://decomp.me/scratch/8x4EF +// Yet more register allocation bullshit. Lots of fake matching too void func_800A3E60(struct_8018D9E0_entry *arg0) { - s16 sp86; - s16 sp84; - s32 sp6C; - s8 sp61; - s8 sp60; - s32 sp54; - s8 **sp50; - ? *var_v0_5; - Gfx *temp_v1_2; - s32 temp_a0; - s32 temp_v0; - s32 temp_v1; + s32 stackPadding0; + Unk_D_800E70A0 sp84; + s32 stackPadding1; + s32 stackPadding2; + s32 stackPadding3; + s32 stackPadding4; s32 var_s0; - s32 var_s0_10; - s32 var_s0_3; - s32 var_s0_5; - s32 var_s0_6; - s32 var_s0_8; - s32 var_s0_9; - s32 var_s1; - s32 var_s1_2; - s32 var_s1_3; - s32 var_s1_4; - s32 var_s2; - s32 var_s2_2; - s32 var_s2_4; s32 var_v1; - s8 **var_s0_2; - s8 **var_s0_4; - s8 **var_s0_7; - s8 **var_s2_5; - s8 **var_v0; - s8 **var_v0_2; - s8 **var_v0_3; - s8 **var_v0_4; - s8 temp_v0_2; - struct_8018EE10_entry *var_s2_3; + s32 var_s1; + Unk_D_800E70A0 *var_v0_5; + char sp60[3]; - temp_v0 = arg0->unk4; - if ((temp_v0 != 0) && (temp_v0 != 0x0000001F)) { + if ((arg0->unk4 != 0) && (arg0->unk4 != 0x0000001F)) { set_text_color(4); - draw_text(arg0->column + 0x55, 0x19 - arg0->row, D_800E7574[*(gCupCourseOrder + ((gCupSelection * 8) + (gCupCourseSelection * 2)))], 0, 0.6f, 0.6f); + draw_text(arg0->column + 0x55, 0x19 - arg0->row, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f); set_text_color(3); draw_text(arg0->column + 0x55, 0x28 - arg0->row, D_800E7730, 0, 0.75f, 0.75f); - var_s1 = 0; - var_s0 = 0; - do { + for (var_s1 = 0, var_s0 = 0; var_s1 < 4; var_s1++, var_s0 += 0xF) { func_800A4550(var_s1, arg0->column + 0x26, (var_s0 - arg0->row) + 0x37); - var_s1 += 1; - var_s0 += 0xF; - } while (var_s1 < 4); - temp_v1 = arg0->unk4; - switch (temp_v1) { /* switch 1 */ + } + switch (arg0->unk4) { /* switch 1 */ case 1: /* switch 1 */ case 5: /* switch 1 */ case 6: /* switch 1 */ @@ -9601,39 +9455,29 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) { case 9: /* switch 1 */ case 10: /* switch 1 */ case 30: /* switch 1 */ - var_s0_2 = D_800E775C; - var_s1_2 = 0; - var_s2 = 0; - do { - sp6C = 0; - func_800921C0(arg0->unk4 - 5, var_s1_2, 1); - var_v1 = sp6C; - switch (var_s1_2) { /* switch 3; irregular */ + for (var_s1 = 0; var_s1 < 6; var_s1++) { + var_v1 = 0; + func_800921C0(arg0->unk4 - 5, var_s1, 1); + switch (var_s1) { /* switch 3; irregular */ case 4: /* switch 3 */ if (D_80162DF8 == 1) { var_v1 = 1; } break; case 5: /* switch 3 */ - if (*D_80162DD4 != 0) { + if (D_80162DD4 != 0) { var_v1 = 2; } break; } if (var_v1 != 0) { set_text_color(0); - temp_v1_2 = gDisplayListHead; - gDisplayListHead = temp_v1_2 + 8; - temp_v1_2->words.w1 = 0x00000096; - temp_v1_2->words.w0 = 0xFA000000; - func_80093358(0xB2 - arg0->column, arg0->row + var_s2 + 0x93, var_s0_2->unk4, 0, 0.75f, 0.75f); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0x96); + func_80093358(0xB2 - arg0->column, arg0->row + (0xD * var_s1) + 0x93, D_800E775C[var_s1 + 1], 0, 0.75f, 0.75f); } else { - func_80093324(0xB2 - arg0->column, arg0->row + var_s2 + 0x93, var_s0_2->unk4, 0, 0.75f, 0.75f); + func_80093324(0xB2 - arg0->column, arg0->row + (0xD * var_s1) + 0x93, D_800E775C[var_s1 + 1], 0, 0.75f, 0.75f); } - var_s1_2 += 1; - var_s2 += 0xD; - var_s0_2 += 4; - } while (var_s1_2 != 6); + } break; case 11: /* switch 1 */ case 12: /* switch 1 */ @@ -9642,98 +9486,58 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) { case 15: /* switch 1 */ case 16: /* switch 1 */ set_text_color(3); - var_v0 = D_800E798C[arg0->unk4 - 0xB]; - var_s0_3 = 0x0000008C; - do { - sp50 = var_v0; - func_80093324(0x000000A2, var_s0_3, *var_v0, 0, 0.6f, 0.6f); - var_s0_3 += 0xD; - var_v0 += 4; - } while (var_s0_3 != 0x000000E7); + arg0->unk4 = arg0->unk4; + var_v1 = arg0->unk4 - 11; + for (var_s1 = 0, var_s0 = 0x8C; var_s0 < 0xE7; var_s1++, var_s0 += 0xD) { + func_80093324(0x000000A2, var_s0, D_800E798C[var_v1][var_s1], 0, 0.6f, 0.6f); + } break; case 17: /* switch 1 */ case 18: /* switch 1 */ set_text_color(1); - var_s0_4 = D_800E7A3C; - var_s2_2 = 0; - do { - func_80093324(0x000000A5, arg0->row + var_s2_2 + 0x8C, *var_s0_4, 0, 0.7f, 0.7f); - var_s0_4 += 4; - var_s2_2 += 0xD; - } while ((u32) var_s0_4 < (u32) &D_800E7A44); - var_s2_3 = D_8018EE10; - var_s1_3 = 0; - var_s0_5 = 0x000000AA; - do { - func_800921C0(arg0->unk4 - 0x11, var_s1_3, 1); - temp_a0 = var_s1_3 + 1; - sp54 = temp_a0; - convert_number_to_ascii(temp_a0, &sp60); - func_80093324(0xB1 - arg0->column, var_s0_5, &sp61, 0, 0.6f, 0.6f); - if (var_s2_3->ghostDataSaved == 0) { - func_80093324(0xBB - arg0->column, var_s0_5, D_800E7A44, 0, 0.45f, 0.45f); + for (var_s1 = 0; var_s1 < 2; var_s1++) { + func_80093324(0x000000A5, arg0->row + (0xD * var_s1) + 0x8C, D_800E7A3C[var_s1], 0, 0.7f, 0.7f); + } + for (var_s1 = 0; var_s1 < 2; var_s1++) { + func_800921C0(arg0->unk4 - 0x11, var_s1, 1); + convert_number_to_ascii(var_s1 + 1, sp60); + func_80093324(0xB1 - arg0->column, 0xAA + (0x1E * var_s1), &sp60[1], 0, 0.6f, 0.6f); + if (D_8018EE10[var_s1].ghostDataSaved == 0) { + func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E7A44, 0, 0.45f, 0.45f); } else { - temp_v0_2 = var_s2_3->courseIndex; - func_80093324(0xBB - arg0->column, var_s0_5, D_800E75C4[*(gCupCourseOrder + (((temp_v0_2 / 4) * 8) + ((temp_v0_2 % 4) * 2)))], 0, 0.45f, 0.45f); + func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E75C4[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.45f, 0.45f); } - var_s1_3 = sp54; - var_s0_5 += 0x1E; - var_s2_3 += 0x80; - } while (var_s1_3 != 2); + } break; case 19: /* switch 1 */ set_text_color(3); - var_v0_2 = D_800E7A48; - var_s0_6 = 0x00000093; - do { - sp50 = var_v0_2; - func_80093324(0x000000AA, var_s0_6, *var_v0_2, 0, 0.8f, 0.8f); - var_s0_6 += 0xD; - var_v0_2 += 4; - } while (var_v0_2 != D_800E7A54); + for (var_s1 = 0, var_s0 = 0x93; var_s1 < 3; var_s1++, var_s0 += 0xD) { + func_80093324(0x000000AA, var_s0, D_800E7A48[var_s1], 0, 0.8f, 0.8f); + } break; case 20: /* switch 1 */ case 21: /* switch 1 */ + if (var_s1 && var_s1) {} set_text_color(3); - var_s0_7 = D_800E7A60; - var_s2_4 = 0; - do { - func_80093324(0x000000A3, arg0->row + var_s2_4 + 0x8C, *var_s0_7, 0, 0.67f, 0.67f); - var_s0_7 += 4; - var_s2_4 += 0xD; - } while ((u32) var_s0_7 < (u32) D_800E7A6C); - var_s2_5 = D_800E7A6C; - var_s1_4 = 0; - var_s0_8 = 0x000000B9; - do { - func_800921C0(arg0->unk4 - 0x14, var_s1_4, 1); - func_80093324(0xC8 - arg0->column, var_s0_8, *var_s2_5, 0, 0.75f, 0.75f); - var_s1_4 += 1; - var_s0_8 += 0xF; - var_s2_5 += 4; - } while (var_s1_4 != 2); + for (var_s1 = 0; var_s1 < 3; var_s1++) { + func_80093324(0x000000A3, arg0->row + (0xD * var_s1) + 0x8C, D_800E7A60[var_s1], 0, 0.67f, 0.67f); + } + for (var_s1 = 0; var_s1 < 2; var_s1++) { + func_800921C0(arg0->unk4 - 0x14, var_s1, 1); + func_80093324(0xC8 - arg0->column, 0xB9 + (0xF * var_s1), D_800E7A6C[var_s1], 0, 0.75f, 0.75f); + } break; case 25: /* switch 1 */ set_text_color(3); - var_v0_3 = D_800E7A74; - var_s0_9 = 0x00000093; - do { - sp50 = var_v0_3; - func_80093324(0x000000A3, var_s0_9, *var_v0_3, 0, 0.67f, 0.67f); - var_s0_9 += 0xD; - var_v0_3 += 4; - } while (var_v0_3 != D_800E7A80); + for (var_s1 = 0, var_s0 = 0x93; var_s1 < 3; var_s1++, var_s0 += 0xD) { + func_80093324(0x000000A3, var_s0, D_800E7A74[var_s1], 0, 0.67f, 0.67f); + } break; case 26: /* switch 1 */ set_text_color(3); - var_v0_4 = D_800E7A80; - var_s0_10 = 0x00000093; - do { - sp50 = var_v0_4; - func_80093324(0x000000AA, var_s0_10, *var_v0_4, 0, 0.75f, 0.75f); - var_s0_10 += 0xD; - var_v0_4 += 4; - } while (var_v0_4 != D_800E7A88); + for (var_s1 = 0, var_s0 = 0x93; var_s1 < 2; var_s1++, var_s0 += 0xD) { + func_80093324(0x000000AA, var_s0, D_800E7A80[var_s1], 0, 0.75f, 0.75f); + } break; } switch (arg0->unk4) { /* switch 2 */ @@ -9743,24 +9547,25 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) { case 8: /* switch 2 */ case 9: /* switch 2 */ case 10: /* switch 2 */ - var_v0_5 = &D_800E7390[arg0->unk4].unk-28; -block_50: - sp84 = var_v0_5->unk0 - arg0->column; - sp86 = var_v0_5->unk2 + arg0->row; - func_800A66A8(arg0, &sp84); + var_v0_5 = &D_800E7390[arg0->unk4 - 5]; break; case 17: /* switch 2 */ case 18: /* switch 2 */ - var_v0_5 = &D_800E73C0[arg0->unk4].unk-88; - goto block_50; + var_v0_5 = &D_800E73C0[arg0->unk4 - 17]; + break; case 20: /* switch 2 */ case 21: /* switch 2 */ - var_v0_5 = &D_800E73D0[arg0->unk4].unk-A0; - goto block_50; + var_v0_5 = &D_800E73D0[arg0->unk4 - 20]; + break; case 30: /* switch 2 */ - var_v0_5 = &D_800E7390[arg0->unk1C].unk-28; - goto block_50; + var_v0_5 = &D_800E7390[arg0->unk1C - 5]; + break; + default: + return; } + sp84.column = var_v0_5->column - arg0->column; + sp84.row = var_v0_5->row + arg0->row; + func_800A66A8(arg0, &sp84); } } #else @@ -9821,21 +9626,11 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A4550.s") #endif #ifdef NON_MATCHING +// https://decomp.me/scratch/mWCHC // The majority of th diff is from the handling of `textColor`. There is something super fucky there. // The permuter found a decent improvement with making `textColor` a `volatile` variable but that // seems wrong for several reasons - -extern char *D_800E76A8[9]; -extern char *D_800E7744[6];// = { D_800EFF20, D_800EFF28, D_800EFF30, D_800EFF38, D_800EFF40, " " }; -extern char D_800EFE0C[9];// = "ーーーー"; // NOT hyphes, those are EUC-JP dashes -// The s/n/r/t characters here ARE NOT ASCII, they are EUC-JP characters -extern char D_800EFF20[5];// = "1 s"; -extern char D_800EFF28[5];// = "2 n"; -extern char D_800EFF30[5];// = "3 r"; -extern char D_800EFF38[5];// = "4 t"; -extern char D_800EFF40[5];// = "5 t"; - void func_800A474C(s32 recordType, s32 column, s32 row) { s32 stackPadding0; u32 timeRecord; @@ -10098,54 +9893,40 @@ void func_800A5360(struct_8018D9E0_entry *arg0) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A5360.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ - +#ifdef NON_MATCHING +// Pretty big diff honestly. Something about the way gModeSelection +// is handled is causing the diff, although fixing that causes other issues :( void func_800A54EC(void) { - s16 sp52; - s16 sp50; - struct_8018D9E0_entry *sp48; - s32 sp40; - Gfx *temp_v1; - Gfx *temp_v1_2; + Unk_D_800E70A0 sp50; + Unk_D_800E70A0 *huh; Unk_D_800E70A0 *var_v1; - s32 temp_t2; + struct_8018D9E0_entry *sp48; if (gIsGamePaused != 0) { - temp_t2 = gModeSelection; - sp40 = temp_t2; - temp_v1 = gDisplayListHead; sp48 = find_8018D9E0_entry(0x000000C7); - gDisplayListHead = temp_v1 + 8; - temp_v1->words.w1 = (s32) D_802B8880 & 0x1FFFFFFF; - temp_v1->words.w0 = 0x03800010; - sp40 = temp_t2; - guOrtho(&gGfxPool->mtxPool[D_80164AF0] + 0xFAC0, 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f); - temp_v1_2 = gDisplayListHead; - gDisplayListHead = temp_v1_2 + 8; - temp_v1_2->words.w0 = 0x01030040; - temp_v1_2->words.w1 = (s32) (&gGfxPool->mtxPool[D_80164AF0] + 0xFAC0) & 0x1FFFFFFF; + gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(D_802B8880)); + guOrtho(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB], 0.0f, 319.0f, 239.0f, 0.0f, -100.0f, 100.0f, 1.0f); + gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPool[D_80164AF0 + 0x3EB]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); D_80164AF0 += 1; - switch (temp_t2) { /* irregular */ + switch (gModeSelection) { /* irregular */ default: - var_v1 = sp4C; + var_v1 = huh; // This is digusting and dumb and broken break; - case TIME_TRIALS: - var_v1 = D_800E8538; + case 1: + var_v1 = &D_800E8538[0]; break; - case VERSUS: - var_v1 = ((gScreenModeSelection << 5) + (gIsGamePaused * 8)) - 8 + D_800E8540; + case 2: + var_v1 = &D_800E8540[gScreenModeSelection][gIsGamePaused - 1]; break; - case GRAND_PRIX: - var_v1 = ((gScreenModeSelection << 5) + (gIsGamePaused * 8)) - 8 + D_800E85C0; + case 0: + var_v1 = &D_800E85C0[gScreenModeSelection][gIsGamePaused - 1]; break; - case BATTLE: - var_v1 = ((gScreenModeSelection << 5) + (gIsGamePaused * 8)) - 8 + D_800E8600; + case 3: + var_v1 = &D_800E8600[gScreenModeSelection][gIsGamePaused - 1]; break; } - sp50 = var_v1->column - 8; - sp52 = (var_v1->row + ((sp48->unk4 - D_800F0B50[temp_t2]) * 0xD)) - 8; + sp50.column = var_v1->column - 8; + sp50.row = (var_v1->row + ((sp48->unk4 - D_800F0B50[gModeSelection]) * 0xD)) - 8; func_800A66A8(sp48, &sp50); } } @@ -10153,74 +9934,45 @@ void func_800A54EC(void) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A54EC.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ - +#ifdef NON_MATCHING +// https://decomp.me/scratch/esKnl +// Register allocation junk void func_800A5738(struct_8018D9E0_entry *arg0) { - s16 sp9A; - s16 sp98; - s8 sp84; - s8 sp5D; - s8 sp5C; - s32 sp54; - s8 **sp50; - ? *var_v0_9; - Gfx *temp_v0; + Unk_D_800E70A0 sp98; + s32 stackPadding0; + s32 stackPadding1; + s32 stackPadding2; + s32 stackPadding3; + char sp84[3]; + s32 stackPadding4; + Unk_D_800E70A0 *var_v0_9; s32 temp_a0; - s32 temp_a0_2; - s32 temp_a0_3; - s32 temp_v1; - s32 temp_v1_2; s32 var_s0; - s32 var_s0_2; - s32 var_s0_3; - s32 var_s0_4; - s32 var_s0_5; - s32 var_s0_6; - s32 var_s0_7; - s32 var_s0_8; - s32 var_s0_9; s32 var_s1; - s32 var_s1_2; - s32 var_s1_3; - s32 var_s1_4; s32 var_s2; - s8 **var_v0; - s8 **var_v0_2; - s8 **var_v0_3; - s8 **var_v0_4; - s8 **var_v0_5; - s8 **var_v0_6; - s8 **var_v0_7; - s8 **var_v0_8; - s8 temp_v0_2; - struct_8018EE10_entry *var_s2_2; + s32 temp_v0; + s32 zero = 0; + char sp5C[3]; - temp_v1 = arg0->unk4; - if (temp_v1 == 0) { - if ((arg0->unk1C >= 0x1E) && (((s32) ((s32) gGlobalTimer / 16) % 2) != 0)) { - gDisplayListHead = draw_box(gDisplayListHead, 0x000000C0, 0x00000021, (s32) ((f32) get_string_width(D_800E775C->unk14) * 0.8f) + 0xC6, 0x00000032, 0, 0, 0, 0x00000096); + if (arg0->unk4 == 0) { + if ((arg0->unk1C >= 0x1E) && ((gGlobalTimer / 16) % 2)) { + gDisplayListHead = draw_box(gDisplayListHead, 0x000000C0, 0x00000021, (s32) (get_string_width(D_800E775C[5]) * 0.8f) + 0xC6, 0x00000032, 0, 0, 0, 0x00000096); set_text_color(1); - func_80093324(0x000000BF, 0x00000030, D_800E775C->unk14, 0, 0.8f, 0.8f); + func_80093324(0x000000BF, 0x00000030, D_800E775C[5], 0, 0.8f, 0.8f); } } else { - if (temp_v1 == 1) { + if (arg0->unk4 == 1) { var_s1 = arg0->unk1C; - var_s2 = (s32) (var_s1 * 0xFF) / 140; + var_s2 = (s32) (arg0->unk1C * 0xFF) / 140; } else { var_s1 = 0x0000008C; var_s2 = 0x000000FF; } - temp_v0 = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, var_s1); - gDisplayListHead = temp_v0; - gDisplayListHead = temp_v0 + 8; - temp_v0->words.w1 = var_s2 & 0xFF; - temp_v0->words.w0 = 0xFA000000; + gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, var_s1); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_s2); set_text_color(3); - func_80093754(0x000000A0, 0x00000050, D_800E7574[*(gCupCourseOrder + ((gCupSelection * 8) + (gCupCourseSelection * 2)))], 0, 1.0f, 1.0f); - temp_v1_2 = arg0->unk4; - switch (temp_v1_2) { /* switch 1 */ + func_80093754(0x000000A0, 0x00000050, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f); + switch (arg0->unk4) { /* switch 1 */ case 1: /* switch 1 */ case 11: /* switch 1 */ case 12: /* switch 1 */ @@ -10229,37 +9981,32 @@ void func_800A5738(struct_8018D9E0_entry *arg0) { case 15: /* switch 1 */ case 16: /* switch 1 */ set_text_color(2); - func_80093754(0x0000009D, 0x00000060, D_800E7728->unk0, 0, 0.8f, 0.8f); - temp_a0 = func_800B4E24(0) & 0xFFFFF; - get_time_record_minutes(temp_a0, &sp84); - text_draw(0x0000007F, 0x0000006D, &sp84, 0, 0.8f, 0.8f); + func_80093754(0x0000009D, 0x00000060, D_800E7728[0], 0, 0.8f, 0.8f); + temp_a0 = func_800B4E24(0); + temp_a0 &= 0xFFFFF; + get_time_record_minutes(temp_a0, sp84); + text_draw(0x0000007F, 0x0000006D, sp84, 0, 0.8f, 0.8f); func_80093358(0x0000008E, 0x0000006D, "'", 0, 0.8f, 0.8f); - get_time_record_seconds(temp_a0, &sp84); - text_draw(0x00000098, 0x0000006D, &sp84, 0, 0.8f, 0.8f); + get_time_record_seconds(temp_a0, sp84); + text_draw(0x00000098, 0x0000006D, sp84, 0, 0.8f, 0.8f); func_80093358(0x000000A7, 0x0000006D, "\"", 0, 0.8f, 0.8f); - get_time_record_centiseconds(temp_a0, &sp84); - text_draw(0x000000B3, 0x0000006D, &sp84, 0, 0.8f, 0.8f); - func_80093754(0x0000009D, 0x0000007C, D_800E7728->unk4, 0, 0.8f, 0.8f); - temp_a0_2 = func_800B4F2C() & 0xFFFFF; - get_time_record_minutes(temp_a0_2, &sp84); - text_draw(0x0000007F, 0x00000089, &sp84, 0, 0.8f, 0.8f); + get_time_record_centiseconds(temp_a0, sp84); + text_draw(0x000000B3, 0x0000006D, sp84, 0, 0.8f, 0.8f); + func_80093754(0x0000009D, 0x0000007C, D_800E7728[1], 0, 0.8f, 0.8f); + temp_a0 = func_800B4F2C(); + temp_a0 &= 0xFFFFF; + get_time_record_minutes(temp_a0, sp84); + text_draw(0x0000007F, 0x00000089, sp84, 0, 0.8f, 0.8f); func_80093358(0x0000008E, 0x00000089, "'", 0, 0.8f, 0.8f); - get_time_record_seconds(temp_a0_2, &sp84); - text_draw(0x00000098, 0x00000089, &sp84, 0, 0.8f, 0.8f); + get_time_record_seconds(temp_a0, sp84); + text_draw(0x00000098, 0x00000089, sp84, 0, 0.8f, 0.8f); func_80093358(0x000000A7, 0x00000089, "\"", 0, 0.8f, 0.8f); - get_time_record_centiseconds(temp_a0_2, &sp84); - text_draw(0x000000B3, 0x00000089, &sp84, 0, 0.8f, 0.8f); - var_v0 = D_800E775C; - var_s1_2 = 0; - var_s0 = 0; - do { - sp50 = var_v0; - func_800921C0(arg0->unk4 - 0xB, var_s1_2, 1); - func_80093358((s32) D_800E8538->column, D_800E8538->row + var_s0, var_v0->unk4, 0, 0.75f, 0.75f); - var_s1_2 += 1; - var_s0 += 0xD; - var_v0 += 4; - } while (var_s1_2 != 6); + get_time_record_centiseconds(temp_a0, sp84); + text_draw(0x000000B3, 0x00000089, sp84, 0, 0.8f, 0.8f); + for (var_s1 = 0; var_s1 < 6; var_s1++) { + func_800921C0(arg0->unk4 - 0xB, var_s1, 1); + func_80093358((s32) D_800E8538[zero].column, D_800E8538[zero].row + (0xD * var_s1), D_800E775C[var_s1 + 1], 0, 0.75f, 0.75f); + } break; case 21: /* switch 1 */ case 22: /* switch 1 */ @@ -10268,101 +10015,56 @@ void func_800A5738(struct_8018D9E0_entry *arg0) { case 25: /* switch 1 */ case 26: /* switch 1 */ set_text_color(3); - var_v0_2 = D_800E798C[arg0->unk4 - 0x15]; - var_s0_2 = 0x0000006E; - do { - sp50 = var_v0_2; - func_80093324(0x0000004D, var_s0_2, *var_v0_2, 0, 0.8f, 0.8f); - var_s0_2 += 0xD; - var_v0_2 += 4; - } while (var_s0_2 != 0x000000C9); + temp_v0 = arg0->unk4 - 0x15; + for (var_s1 = 0, var_s0 = 0x6E; var_s0 < 0xC9; var_s1++, var_s0 += 0xD) { + func_80093324(0x0000004D, var_s0, D_800E798C[temp_v0][var_s1], 0, 0.8f, 0.8f); + } break; case 30: /* switch 1 */ case 31: /* switch 1 */ set_text_color(1); - var_v0_3 = D_800E7A3C; - var_s0_3 = 0; - do { - sp50 = var_v0_3; - func_80093324(0x0000005A, arg0->row + var_s0_3 + 0x6E, *var_v0_3, 0, 0.8f, 0.8f); - var_s0_3 += 0xD; - var_v0_3 += 4; - } while ((u32) var_v0_3 < (u32) &D_800E7A44); - var_s2_2 = D_8018EE10; - var_s1_3 = 0; - var_s0_4 = 0x00000096; - do { - func_800921C0(arg0->unk4 - 0x1E, var_s1_3, 1); - temp_a0_3 = var_s1_3 + 1; - sp54 = temp_a0_3; - convert_number_to_ascii(temp_a0_3, &sp5C); - func_80093324(0x5A - arg0->column, var_s0_4, &sp5D, 0, 0.75f, 0.75f); - if (var_s2_2->ghostDataSaved == 0) { - func_80093324(0x69 - arg0->column, var_s0_4, D_800E7A44, 0, 0.75f, 0.75f); + for (var_s1 = 0; var_s1 < 2; var_s1++) { + func_80093324(0x0000005A, arg0->row + (0xD * var_s1) + 0x6E, D_800E7A3C[var_s1], 0, 0.8f, 0.8f); + } + for (var_s1 = 0; var_s1 < 2; var_s1++) { + func_800921C0(arg0->unk4 - 0x1E, var_s1, 1); + convert_number_to_ascii(var_s1 + 1, sp5C); + func_80093324(0x5A - arg0->column, (0x96 + (0x14 * var_s1)), &sp5C[1], 0, 0.75f, 0.75f); + if (D_8018EE10[var_s1].ghostDataSaved == 0) { + func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E7A44, 0, 0.75f, 0.75f); } else { - temp_v0_2 = var_s2_2->courseIndex; - func_80093324(0x69 - arg0->column, var_s0_4, D_800E75C4[*(gCupCourseOrder + (((temp_v0_2 / 4) * 8) + ((temp_v0_2 % 4) * 2)))], 0, 0.75f, 0.75f); + func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E75C4[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.75f, 0.75f); } - var_s1_3 = sp54; - var_s0_4 += 0x14; - var_s2_2 += 0x80; - } while (var_s1_3 != 2); + } break; case 32: /* switch 1 */ set_text_color(3); - var_v0_4 = D_800E7A48; - var_s0_5 = 0x0000006E; - do { - sp50 = var_v0_4; - func_80093324(0x00000064, var_s0_5, *var_v0_4, 0, 0.8f, 0.8f); - var_s0_5 += 0xD; - var_v0_4 += 4; - } while (var_v0_4 != D_800E7A54); + for (var_s1 = 0, var_s0 = 0x6E; var_s1 < 3; var_s1++, var_s0 += 0xD) { + func_80093324(0x00000064, var_s0, D_800E7A48[var_s1], 0, 0.8f, 0.8f); + } break; case 35: /* switch 1 */ case 36: /* switch 1 */ set_text_color(3); - var_v0_5 = D_800E7A60; - var_s0_6 = 0; - do { - sp50 = var_v0_5; - func_80093324(0x00000055, arg0->row + var_s0_6 + 0x6E, *var_v0_5, 0, 0.8f, 0.8f); - var_s0_6 += 0xD; - var_v0_5 += 4; - } while ((u32) var_v0_5 < (u32) D_800E7A6C); - var_v0_6 = D_800E7A6C; - var_s1_4 = 0; - var_s0_7 = 0x0000009B; - do { - sp50 = var_v0_6; - func_800921C0(arg0->unk4 - 0x23, var_s1_4, 1); - func_80093324(0x7D - arg0->column, var_s0_7, *var_v0_6, 0, 0.8f, 0.8f); - var_s1_4 += 1; - var_s0_7 += 0xF; - var_v0_6 += 4; - } while (var_s1_4 != 2); + for (var_s1 = 0; var_s1 < 3; var_s1++) { + func_80093324(0x00000055, arg0->row + (0xD * var_s1) + 0x6E, D_800E7A60[var_s1], 0, 0.8f, 0.8f); + } + for (var_s1 = 0, var_s0 = 0x9B; var_s1 < 2; var_s1++, var_s0 += 0xF) { + func_800921C0(arg0->unk4 - 0x23, var_s1, 1); + func_80093324(0x7D - arg0->column, var_s0, D_800E7A6C[var_s1], 0, 0.8f, 0.8f); + } break; case 40: /* switch 1 */ set_text_color(3); - var_v0_7 = D_800E7A74; - var_s0_8 = 0x0000006E; - do { - sp50 = var_v0_7; - func_80093324(0x00000055, var_s0_8, *var_v0_7, 0, 0.8f, 0.8f); - var_s0_8 += 0xD; - var_v0_7 += 4; - } while (var_v0_7 != D_800E7A80); + for (var_s1 = 0, var_s0 = 0x6E; var_s1 < 3; var_s1++, var_s0 += 0xD) { + func_80093324(0x00000055, var_s0, D_800E7A74[var_s1], 0, 0.8f, 0.8f); + } break; case 41: /* switch 1 */ set_text_color(3); - var_v0_8 = D_800E7A80; - var_s0_9 = 0x0000006E; - do { - sp50 = var_v0_8; - func_80093324(0x0000005D, var_s0_9, *var_v0_8, 0, 0.8f, 0.8f); - var_s0_9 += 0xD; - var_v0_8 += 4; - } while (var_v0_8 != D_800E7A88); + for (var_s1 = 0, var_s0 = 0x6E; var_s1 < 2; var_s1++, var_s0 += 0xD) { + func_80093324(0x0000005D, var_s0, D_800E7A80[var_s1], 0, 0.8f, 0.8f); + } break; } switch (arg0->unk4) { /* switch 2 */ @@ -10372,21 +10074,22 @@ void func_800A5738(struct_8018D9E0_entry *arg0) { case 14: /* switch 2 */ case 15: /* switch 2 */ case 16: /* switch 2 */ - var_v0_9 = &D_800E73E0[arg0->unk4].unk-58; -block_42: - sp98 = var_v0_9->unk0; - sp9A = var_v0_9->unk2; - func_800A66A8(arg0, &sp98); + var_v0_9 = &D_800E73E0[arg0->unk4 - 11]; break; case 30: /* switch 2 */ case 31: /* switch 2 */ - var_v0_9 = &D_800E7410[arg0->unk4].unk-F0; - goto block_42; + var_v0_9 = &D_800E7410[arg0->unk4 - 30]; + break; case 35: /* switch 2 */ case 36: /* switch 2 */ - var_v0_9 = &D_800E7420[arg0->unk4].unk-118; - goto block_42; + var_v0_9 = &D_800E7420[arg0->unk4 - 35]; + break; + default: + return; } + sp98.column = var_v0_9->column; + sp98.row = var_v0_9->row; + func_800A66A8(arg0, &sp98); } } #else @@ -10407,74 +10110,41 @@ void func_800A6034(struct_8018D9E0_entry *arg0) { } } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, s16 *); /* extern */ - void func_800A6154(struct_8018D9E0_entry *arg0) { - s16 sp6E; - s16 sp6C; - Gfx *temp_v0; - Gfx *temp_v0_3; - s32 temp_v0_2; + s32 stackPadding0; + s32 stackPadding1; + s32 stackPadding2; + Unk_D_800E70A0 sp6C; + s32 stackPadding3; s32 var_s0; - s32 var_s0_2; s32 var_s1; - s8 **var_s2; - s8 **var_s2_2; if (arg0->unk4 == 0) { gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, arg0->unk1C); set_text_color(3); - temp_v0 = gDisplayListHead; - gDisplayListHead = temp_v0 + 8; - temp_v0->words.w0 = 0xFA000000; - var_s2 = D_800E775C; - var_s0 = 0x00000096; - temp_v0->words.w1 = ((s32) (arg0->unk1C * 0xFF) / 100) & 0xFF; - do { - func_80093358(0x0000008C, var_s0, var_s2->unk4, 0, 1.0f, 1.0f); - var_s0 += 0x14; - var_s2 += 0xC; - } while (var_s0 != 0x000000BE); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, (arg0->unk1C * 0xFF) / 100); + for (var_s1 = 0, var_s0 = 0x96; var_s0 < 0xBE; var_s1++, var_s0 += 0x14) { + func_80093358(0x0000008C, var_s0, D_800E775C[(var_s1 * 3) + 1], 0, 1.0f, 1.0f); + } } else { gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x00000064); - var_s2_2 = D_800E775C; - var_s1 = 0; - var_s0_2 = 0x00000096; - do { + for (var_s1 = 0, var_s0 = 0x96; var_s1 < 2; var_s1++, var_s0 += 0x14) { func_800921C0(arg0->unk4 - 0xB, var_s1, 3); - func_80093324(0x0000008C, var_s0_2, var_s2_2->unk4, 0, 1.0f, 1.0f); - var_s1 += 1; - var_s2_2 += 0xC; - var_s0_2 += 0x14; - } while (var_s1 != 2); + func_80093324(0x0000008C, var_s0, D_800E775C[(var_s1 * 3) + 1], 0, 1.0f, 1.0f); + } } if (arg0->unk4 >= 0xB) { - sp6C = 0x0084; - sp6E = (arg0->unk4 * 0x14) - 0x4E; + sp6C.column = 0x0084; + sp6C.row = (arg0->unk4 * 0x14) - 0x4E; func_800A66A8(arg0, &sp6C); } - temp_v0_2 = arg0->unk20; - if (temp_v0_2 > 0) { - temp_v0_3 = func_80098FC8(gDisplayListHead, 0, 0, 0x0000013F, temp_v0_2); - gDisplayListHead = temp_v0_3; - gDisplayListHead = func_80098FC8(temp_v0_3, 0, 0xEF - arg0->unk20, 0x0000013F, 0x000000EF); + if (arg0->unk20 > 0) { + gDisplayListHead = func_80098FC8(gDisplayListHead, 0, 0, 0x0000013F, arg0->unk20); + gDisplayListHead = func_80098FC8(gDisplayListHead, 0, 0xEF - arg0->unk20, 0x0000013F, 0x000000EF); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A6154.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A66A8(struct_8018D9E0_entry *, ? *); /* extern */ -? func_800A6BEC(struct_8018D9E0_entry *, s32); /* extern */ -? func_800A6CC0(struct_8018D9E0_entry *, s32); /* extern */ void func_800A638C(struct_8018D9E0_entry *arg0) { - Gfx *temp_v0; - Gfx *temp_v0_2; s32 temp_a0; s32 var_a1; s32 var_s0; @@ -10484,18 +10154,14 @@ void func_800A638C(struct_8018D9E0_entry *arg0) { if (arg0->unk4 == 0) { gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, arg0->unk1C); set_text_color(5); - temp_v0 = gDisplayListHead; - gDisplayListHead = temp_v0 + 8; - temp_v0->words.w0 = 0xFA000000; - temp_v0->words.w1 = ((s32) (arg0->unk1C * 0xFF) / 100) & 0xFF; - func_80093754(0x000000A0, arg0->row + 0x1E, D_800E7778[(s32) gModeSelection / 3], 0, 1.0f, 1.0f); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, (arg0->unk1C * 0xFF) / 100); + func_80093754(0x000000A0, arg0->row + 0x1E, D_800E7778[gModeSelection / 3], 0, 1.0f, 1.0f); } else { gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x00000064); set_text_color(5); - draw_text(0x000000A0, arg0->row + 0x1E, D_800E7778[(s32) gModeSelection / 3], 0, 1.0f, 1.0f); + draw_text(0x000000A0, arg0->row + 0x1E, D_800E7778[gModeSelection / 3], 0, 1.0f, 1.0f); } - temp_a0 = arg0->unk4; - switch (temp_a0) { /* irregular */ + switch (arg0->unk4) { /* irregular */ default: var_a1 = 0x000000FF; break; @@ -10507,40 +10173,28 @@ void func_800A638C(struct_8018D9E0_entry *arg0) { var_a1 = arg0->unk1C; break; } - temp_v0_2 = gDisplayListHead; - gDisplayListHead = temp_v0_2 + 8; - temp_v0_2->words.w1 = var_a1 & 0xFF; - temp_v0_2->words.w0 = 0xFA000000; - if (D_8018EDF3 != 2) { - if (D_8018EDF3 != 3) { - if (D_8018EDF3 != 4) { - - } else { - func_800A6CC0(arg0, var_a1); - } - } else { - func_800A6BEC(arg0, var_a1); - } - } else { - func_800A69C8((s32) arg0); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_a1); + switch (D_8018EDF3) { + case 2: + func_800A69C8(arg0); + break; + case 3: + func_800A6BEC(arg0); + break; + case 4: + func_800A6CC0(arg0); + break; + default: + break; } - var_s0 = 0; - var_s1 = 0x000000AE; - if (arg0->unk4 >= 0xA) { - var_s2 = D_800E775C; - do { - func_800921C0(arg0->unk4 - 0xA, var_s0, 1); - func_80093324(0x00000069, var_s1, var_s2->unk4, 0, 0.8f, 0.8f); - var_s0 += 1; - var_s1 += 0xF; - var_s2 += 4; - } while (var_s0 != 4); - func_800A66A8(arg0, &D_800E7360[arg0->unk4].unk-50); + if (arg0->unk4 >= 10) { + for (var_s1 = 0; var_s1 < 4; var_s1++) { + func_800921C0(arg0->unk4 - 0xA, var_s1, 1); + func_80093324(0x00000069, 0xAE + (0xF * var_s1), D_800E775C[var_s1 + 1], 0, 0.8f, 0.8f); + } + func_800A66A8(arg0, &D_800E7360[arg0->unk4 - 10]); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A638C.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 @@ -10624,7 +10278,7 @@ void func_800A66A8(struct_8018D9E0_entry *arg0, s16 *arg1) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A66A8.s") #endif -void func_800A69C8(s32 arg0) { +void func_800A69C8(struct_8018D9E0_entry *arg0) { Unk_D_800E70A0 *thing; s32 stackPadding1; s32 var_s0; @@ -10665,71 +10319,41 @@ void func_800A69C8(s32 arg0) { text_draw(0x0000009E, D_800E7300[0][0].row + 0x6D, "ー", 0, 1.0f, 1.0f); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A6D94(s32, s32, u8 *); /* extern */ - -void func_800A6BEC(s32 arg0) { +void func_800A6BEC(struct_8018D9E0_entry *arg0) { s32 var_s0; - s8 var_v1; - var_v1 = D_8018EDF3; - var_s0 = 0; - if (var_v1 > 0) { - do { - switch (gModeSelection) { /* irregular */ - case 2: - func_800A6E94(3, var_s0, gNmiUnknown2); -block_7: - var_v1 = D_8018EDF3; - break; - case 3: - func_800A6D94(3, var_s0, gNmiUnknown5); - goto block_7; - } - var_s0 += 1; - } while (var_s0 < var_v1); + for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + switch (gModeSelection) { /* irregular */ + case 2: + func_800A6E94(3, var_s0, gNmiUnknown2); + break; + case 3: + func_800A6D94(3, var_s0, gNmiUnknown5); + break; + } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A6BEC.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? func_800A6D94(?, s32, u8 *); /* extern */ - -void func_800A6CC0(s32 arg0) { +void func_800A6CC0(struct_8018D9E0_entry *arg0) { s32 var_s0; - s8 var_v1; - var_v1 = D_8018EDF3; - var_s0 = 0; - if (var_v1 > 0) { - do { - switch (gModeSelection) { /* irregular */ - case 2: - func_800A6E94(4, var_s0, gNmiUnknown3); -block_7: - var_v1 = D_8018EDF3; - break; - case 3: - func_800A6D94(4, var_s0, gNmiUnknown6); - goto block_7; - } - var_s0 += 1; - } while (var_s0 < var_v1); + for (var_s0 = 0; var_s0 < D_8018EDF3; var_s0++) { + switch (gModeSelection) { /* irregular */ + case 2: + func_800A6E94(4, var_s0, gNmiUnknown3); + break; + case 3: + func_800A6D94(4, var_s0, gNmiUnknown6); + break; + } } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A6CC0.s") -#endif #ifdef NON_MATCHING -// https://decomp.me/scratch/iMK3a +// https://decomp.me/scratch/LHe6K // More register allocation nonsense // Also, the way the 0.75f gets loaded for the `text_draw` call is screwy -void func_800A6D94(u32 arg0, s32 arg1, u8 *arg2) { +void func_800A6D94(s32 arg0, s32 arg1, u8 *arg2) { s32 stackPadding0; s32 stackPadding1; s8 sp30[5]; @@ -13786,7 +13410,7 @@ void func_800AD2E8(struct_8018D9E0_entry *arg0) { if ((D_80162DF8 == 1) && (arg0->unk4 == 9)) { arg0->unk4++; } - if ((arg0->unk4 == 0x0000000A) && (D_80162DD4[0] != 0)) { + if ((arg0->unk4 == 0x0000000A) && (D_80162DD4 != 0)) { arg0->unk4 -= 2; } else { play_sound2(0x49008000); diff --git a/src/code_80091750.h b/src/code_80091750.h index 16f147a1d..002124a36 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -204,6 +204,8 @@ void func_800A1500(struct_8018D9E0_entry*); void func_800A15EC(struct_8018D9E0_entry*); void func_800A1924(struct_8018D9E0_entry*); void func_800A1A20(struct_8018D9E0_entry*); +void func_800A1BE0(struct_8018D9E0_entry*); +void func_800A1DE0(struct_8018D9E0_entry*); void func_800A1F30(struct_8018D9E0_entry*); void func_800A2D1C(struct_8018D9E0_entry*); void func_800A2EB8(struct_8018D9E0_entry*); @@ -212,6 +214,7 @@ void func_800A34A8(struct_8018D9E0_entry*); void func_800A3A10(s8*); void func_800A3ADC(struct_8018D9E0_entry*, s32, s32, s32, s32, s8*); void func_800A3C84(struct_8018D9E0_entry*); +void func_800A3E60(struct_8018D9E0_entry*); void func_800A4550(s32, s32, s32); void func_800A474C(s32, s32, s32); void func_800A4A24(struct_8018D9E0_entry*); @@ -221,9 +224,15 @@ void func_800A4EF8(struct_8018D9E0_entry*); void func_800A5084(struct_8018D9E0_entry*); void func_800A5360(struct_8018D9E0_entry*); void func_800A54EC(void); +void func_800A5738(struct_8018D9E0_entry*); void func_800A6034(struct_8018D9E0_entry*); -void func_800A69C8(s32); -void func_800A6D94(u32, s32, u8*); +void func_800A6154(struct_8018D9E0_entry*); +void func_800A638C(struct_8018D9E0_entry*); +void func_800A66A8(struct_8018D9E0_entry*, Unk_D_800E70A0*); +void func_800A69C8(struct_8018D9E0_entry*); +void func_800A6BEC(struct_8018D9E0_entry*); +void func_800A6CC0(struct_8018D9E0_entry*); +void func_800A6D94(s32, s32, u8*); void func_800A6E94(s32, s32, u8*); void func_800A70E8(struct_8018D9E0_entry*); void func_800A7258(struct_8018D9E0_entry*); @@ -434,13 +443,13 @@ extern char D_800E77D8[]; extern char *D_800E77E4[]; extern char *D_800E7834[]; extern char *D_800E7840[]; -extern char *D_800E7848[][3]; +extern char *D_800E7848[]; extern char *D_800E7860[]; extern char *D_800E7868[]; extern char *D_800E7878[]; extern char *D_800E7884[]; extern char *D_800E7890[][4]; -extern char *D_800E78D0[][4]; +extern char *D_800E78D0[][3]; extern char *D_800E7900[][3]; extern char *D_800E7918[]; extern char *D_800E7920[]; diff --git a/src/code_800B45E0.c b/src/code_800B45E0.c index cbbcbc7db..010f47696 100644 --- a/src/code_800B45E0.c +++ b/src/code_800B45E0.c @@ -1010,7 +1010,7 @@ s32 func_800B64EC(s32 arg0) { ++phi_s1; if ((++temp_s0) == 0x3C) { func_8000522C(); - D_80162DD4[0] = 0; + D_80162DD4 = 0; D_80162DE0 = (s32) D_8018EE10[arg0].characterId; D_80162DFC = D_8018EE10[arg0].unk_00; break; diff --git a/src/menus.c b/src/menus.c index a05071e7c..b9482d4ba 100644 --- a/src/menus.c +++ b/src/menus.c @@ -1807,7 +1807,7 @@ void func_800B3F74(s32 menuSelection) { gDebugGotoScene = DEBUG_GOTO_RACING; D_8018EDFB = 0; D_8016556E = 0; - *D_80162DD4 = 1; + D_80162DD4 = 1; D_80162DD8 = 1; D_80162E00 = 0; D_80162DC8 = 1; diff --git a/src/race_logic.c b/src/race_logic.c index 9ef0d08a0..2d4fd7ded 100644 --- a/src/race_logic.c +++ b/src/race_logic.c @@ -81,7 +81,6 @@ extern s32 gScreenModeSelection; extern s32 D_8018D2AC; extern s32 gActiveScreenMode; extern s16 gCurrentCourseId; -extern u16 D_80162DD4[]; extern u16 D_8015F890; extern u32 D_800DC5AC; extern u16 gEnableDebugMode; diff --git a/src/spawn_players.c b/src/spawn_players.c index 5e3915f0f..28848c5e6 100644 --- a/src/spawn_players.c +++ b/src/spawn_players.c @@ -12,6 +12,7 @@ #include "collision.h" #include "render_courses.h" #include "spawn_players.h" +#include "staff_ghosts.h" #include "code_80005FD0.h" // arg4 is height? Or something like that? @@ -491,12 +492,12 @@ void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) { spawn_player(gPlayerThree, 2, arg0[1], arg1[1], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU); } else if (D_8015F890 != 1) { spawn_player(gPlayerOneCopy, 0, arg0[0], arg1[0], arg2, 32768.0f, gCharacterSelections[0], PLAYER_EXISTS | PLAYER_START_SEQUENCE | PLAYER_HUMAN); - if (D_80162DD4[0] == 0) { + if (D_80162DD4 == 0) { spawn_player(gPlayerTwo, 1, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE0, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB); } else { spawn_player(gPlayerTwo, 1, arg0[0], arg1[0], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU); } - if (D_80162DD4[1] == 0) { + if (D_80162DD6 == 0) { spawn_player(gPlayerThree, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB); } else { spawn_player(gPlayerThree, 2, arg0[1], arg1[1], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU); @@ -508,7 +509,7 @@ void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) { } else { spawn_player(gPlayerTwo, 1, arg0[0], arg1[0], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU); } - if (D_80162DD4[1] == 0) { + if (D_80162DD6 == 0) { spawn_player(gPlayerThree, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, PLAYER_EXISTS | PLAYER_HUMAN | PLAYER_START_SEQUENCE | PLAYER_INVISIBLE_OR_BOMB); } else { spawn_player(gPlayerThree, 2, arg0[1], arg1[1], arg2, 32768.0f, gCharacterSelections[0], PLAYER_START_SEQUENCE | PLAYER_CPU); diff --git a/src/staff_ghosts.h b/src/staff_ghosts.h index bd288cd79..a6a3065fc 100644 --- a/src/staff_ghosts.h +++ b/src/staff_ghosts.h @@ -29,6 +29,9 @@ extern s32 func_80040174(void *, s32, s32); extern s32 D_80162DC8; extern s32 D_80162DCC; +extern u16 D_80162DD4; +extern u16 D_80162DD6; +extern u16 D_80162DD8; extern s32 D_80162E00; extern s32 D_80162DF0; extern s32 D_80162DF8;