diff --git a/asm/bss_8018EDC0.s b/asm/bss_8018EDC0.s deleted file mode 100644 index 20bf258cd..000000000 --- a/asm/bss_8018EDC0.s +++ /dev/null @@ -1,249 +0,0 @@ -.include "macros.inc" - -.section .bss - -glabel D_8018EDC0 -.skip 4 - -glabel D_8018EDC4 -.skip 4 - -glabel D_8018EDC8 -.skip 4 - -glabel D_8018EDCC -.skip 4 - -glabel D_8018EDD0 -.skip 4 - -glabel D_8018EDD4 -.skip 4 - -glabel D_8018EDD8 -.skip 4 - -glabel D_8018EDDC -.skip 4 - -glabel D_8018EDE0 -.skip 4 - -glabel gCharacterGridSelections # 0x8018EDE4 -.skip 1 - -glabel D_8018EDE5 -.skip 1 - -glabel D_8018EDE6 -.skip 1 - -glabel D_8018EDE7 -.skip 1 - -glabel D_8018EDE8 -.skip 1 - -glabel D_8018EDE9 -.skip 1 - -glabel D_8018EDEA -.skip 1 - -glabel D_8018EDEB -.skip 1 - -glabel D_8018EDEC -.skip 1 - -glabel gMainMenuSelectionDepth -.skip 1 - -glabel D_8018EDEE -.skip 1 - -glabel gDebugMenuSelection -.skip 1 - -glabel gControllerPakMenuSelection # 0x8018EDF0 -.skip 1 - -glabel D_8018EDF1 -.skip 1 - -glabel gSoundMode -.skip 1 - -glabel D_8018EDF3 -.skip 1 - -glabel D_8018EDF4 -.skip 1 - -glabel D_8018EDF5 -.skip 1 - -glabel D_8018EDF6 -.skip 1 - -glabel gTimeTrialDataCourseIndex -.skip 1 - -glabel gCourseRecordsMenuSelection -.skip 1 - -glabel D_8018EDF9 -.skip 1 - -glabel gDebugGotoScene -.skip 1 - -glabel D_8018EDFB -.skip 1 - -glabel D_8018EDFC -.skip 4 - -glabel gMenuTimingCounter -.skip 4 - -glabel D_8018EE04 -.skip 4 - -glabel D_8018EE08 -.skip 1 - -glabel gCupSelection # 0x8018EE09 -.skip 1 - -glabel D_8018EE0A -.skip 1 - -glabel gCupCourseSelection # 0x8018EE0B -.skip 1 - -glabel D_8018EE0C -.skip 4 - -glabel D_8018EE10 -.skip 4 - -glabel D_8018EE14 -.skip 1 - -glabel D_8018EE15 -.skip 1 - -glabel D_8018EE16 -.skip 126 - -glabel D_8018EE94 -.skip 1 - -glabel D_8018EE95 -.skip 123 - -glabel D_8018EF10 -.skip 8 - -glabel D_8018EF18 -.skip 192 - -glabel D_8018EFD8 -.skip 3000 - -glabel D_8018FB90 -.skip 1 - -glabel D_8018FB91 -.skip 7 - -glabel D_8018FB98 -.skip 16 - -glabel D_8018FBA8 -.skip 48 - -glabel D_8018FBD8 -.skip 48 - -glabel D_8018FC08 -.skip 8 - -glabel D_8018FC10 -.skip 16 - -glabel D_8018FC20 -.skip 6144 - -glabel D_80191420 -.skip 36 - -glabel D_80191444 -.skip 5724 - -glabel D_80192AA0 -.skip 8 - -glabel D_80192AA8 -.skip 8 - -glabel D_80192AB0 -.skip 8 - -glabel D_80192AB8 -.skip 384 - -glabel D_80192C38 -.skip 4 - -glabel D_80192C3C -.skip 12 - -glabel D_80192C48 -.skip 96 - -glabel D_80192CA8 -.skip 30 - -glabel D_80192CC6 -.skip 10 - -glabel D_80192CD0 -.skip 1024 - -glabel D_801930D0 -.skip 584 - -glabel D_80193318 -.skip 1192 - -glabel D_801937C0 -.skip 24 - -glabel D_801937D8 -.skip 24 - -glabel D_801937F0 -.skip 24 - -glabel D_80193808 -.skip 24 - -glabel D_80193820 -.skip 2048 - -glabel D_80194020 -.skip 8 - -glabel D_80194028 -.skip 16 - -glabel D_80194038 -.skip 4 - -glabel D_8019403C -.skip 4 - -glabel D_80194040 -.skip 16 diff --git a/asm/bss_main_audio.s b/asm/bss_main_audio.s new file mode 100644 index 000000000..294a18e14 --- /dev/null +++ b/asm/bss_main_audio.s @@ -0,0 +1,108 @@ +.include "macros.inc" + +.section .bss + +glabel D_8018EF10 +.skip 8 + +glabel D_8018EF18 +.skip 192 + +glabel D_8018EFD8 +.skip 3000 + +glabel D_8018FB90 +.skip 1 + +glabel D_8018FB91 +.skip 7 + +glabel D_8018FB98 +.skip 16 + +glabel D_8018FBA8 +.skip 48 + +glabel D_8018FBD8 +.skip 48 + +glabel D_8018FC08 +.skip 8 + +glabel D_8018FC10 +.skip 16 + +glabel D_8018FC20 +.skip 6144 + +glabel D_80191420 +.skip 36 + +glabel D_80191444 +.skip 5724 + +glabel D_80192AA0 +.skip 8 + +glabel D_80192AA8 +.skip 8 + +glabel D_80192AB0 +.skip 8 + +glabel D_80192AB8 +.skip 384 + +glabel D_80192C38 +.skip 4 + +glabel D_80192C3C +.skip 12 + +glabel D_80192C48 +.skip 96 + +glabel D_80192CA8 +.skip 30 + +glabel D_80192CC6 +.skip 10 + +glabel D_80192CD0 +.skip 1024 + +glabel D_801930D0 +.skip 584 + +glabel D_80193318 +.skip 1192 + +glabel D_801937C0 +.skip 24 + +glabel D_801937D8 +.skip 24 + +glabel D_801937F0 +.skip 24 + +glabel D_80193808 +.skip 24 + +glabel D_80193820 +.skip 2048 + +glabel D_80194020 +.skip 8 + +glabel D_80194028 +.skip 16 + +glabel D_80194038 +.skip 4 + +glabel D_8019403C +.skip 4 + +glabel D_80194040 +.skip 16 diff --git a/asm/non_matchings/code_80091750/func_8009E280.s b/asm/non_matchings/code_80091750/func_8009E280.s deleted file mode 100644 index b44e6f8a9..000000000 --- a/asm/non_matchings/code_80091750/func_8009E280.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_8009E280 -/* 09EE80 8009E280 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09EE84 8009E284 AFBF0014 */ sw $ra, 0x14($sp) -/* 09EE88 8009E288 0C0277F8 */ jal func_8009DFE0 -/* 09EE8C 8009E28C 2404000A */ li $a0, 10 -/* 09EE90 8009E290 8FBF0014 */ lw $ra, 0x14($sp) -/* 09EE94 8009E294 240E0004 */ li $t6, 4 -/* 09EE98 8009E298 3C018019 */ lui $at, %hi(D_8018EDE0) # $at, 0x8019 -/* 09EE9C 8009E29C AC2EEDE0 */ sw $t6, %lo(D_8018EDE0)($at) -/* 09EEA0 8009E2A0 03E00008 */ jr $ra -/* 09EEA4 8009E2A4 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/code_80091750/func_8009F5E0.s b/asm/non_matchings/code_80091750/func_8009F5E0.s index fb672395a..5ad235b88 100644 --- a/asm/non_matchings/code_80091750/func_8009F5E0.s +++ b/asm/non_matchings/code_80091750/func_8009F5E0.s @@ -597,10 +597,10 @@ glabel L8009FD90 glabel L8009FE9C /* 0A0A9C 8009FE9C 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0A0AA0 8009FEA0 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f -/* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi(gGameModeSubMenuRowSelectionForNumPlayers) # 0x800f +/* 0A0AA4 8009FEA4 3C03800F */ lui $v1, %hi((D_800E86AC - 1)) # 0x800f +/* 0A0AA8 8009FEA8 3C06800F */ lui $a2, %hi((D_800E86B0 - 3)) # 0x800f /* 0A0AAC 8009FEAC 00621821 */ addu $v1, $v1, $v0 -/* 0A0AB0 8009FEB0 806386AB */ lb $v1, %lo(gGameModeRowSelectionForNumPlayers)($v1) # -0x7955($v1) +/* 0A0AB0 8009FEB0 806386AB */ lb $v1, %lo((D_800E86AC - 1))($v1) # -0x7955($v1) /* 0A0AB4 8009FEB4 00026880 */ sll $t5, $v0, 2 /* 0A0AB8 8009FEB8 00025880 */ sll $t3, $v0, 2 /* 0A0ABC 8009FEBC 01A26823 */ subu $t5, $t5, $v0 @@ -614,7 +614,7 @@ glabel L8009FE9C /* 0A0ADC 8009FEDC 00CC3021 */ addu $a2, $a2, $t4 /* 0A0AE0 8009FEE0 00AF2821 */ addu $a1, $a1, $t7 /* 0A0AE4 8009FEE4 2F010008 */ sltiu $at, $t8, 8 -/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo(gGameModeSubMenuRowSelectionForNumPlayers)($a2) # -0x7953($a2) +/* 0A0AE8 8009FEE8 80C686AD */ lb $a2, %lo((D_800E86B0 - 3))($a2) # -0x7953($a2) /* 0A0AEC 8009FEEC 10200037 */ beqz $at, .L8009FFCC /* 0A0AF0 8009FEF0 8CA52B70 */ lw $a1, %lo(gGameModeFromNumPlayersAndRowSelection)($a1) # 0x2b70($a1) /* 0A0AF4 8009FEF4 0018C080 */ sll $t8, $t8, 2 diff --git a/asm/non_matchings/code_80091750/func_800A2EB8.s b/asm/non_matchings/code_80091750/func_800A2EB8.s index 11579d96e..083b30c86 100644 --- a/asm/non_matchings/code_80091750/func_800A2EB8.s +++ b/asm/non_matchings/code_80091750/func_800A2EB8.s @@ -228,15 +228,15 @@ glabel func_800A2EB8 /* 0A3E1C 800A321C 0C024DBB */ jal draw_text /* 0A3E20 800A3220 248400F5 */ addiu $a0, $a0, 0xf5 /* 0A3E24 800A3224 82E20000 */ lb $v0, ($s7) -/* 0A3E28 800A3228 3C0F800F */ lui $t7, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f -/* 0A3E2C 800A322C 3C19800F */ lui $t9, %hi(gGameModeSubMenuRowSelectionForNumPlayers) # 0x800f +/* 0A3E28 800A3228 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f +/* 0A3E2C 800A322C 3C19800F */ lui $t9, %hi((D_800E86B0 - 3)) # 0x800f /* 0A3E30 800A3230 01E27821 */ addu $t7, $t7, $v0 -/* 0A3E34 800A3234 81EF86AB */ lb $t7, %lo(gGameModeRowSelectionForNumPlayers)($t7) # -0x7955($t7) +/* 0A3E34 800A3234 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) /* 0A3E38 800A3238 00027080 */ sll $t6, $v0, 2 /* 0A3E3C 800A323C 01C27023 */ subu $t6, $t6, $v0 /* 0A3E40 800A3240 01CFC021 */ addu $t8, $t6, $t7 /* 0A3E44 800A3244 0338C821 */ addu $t9, $t9, $t8 -/* 0A3E48 800A3248 833986AD */ lb $t9, %lo(gGameModeSubMenuRowSelectionForNumPlayers)($t9) # -0x7953($t9) +/* 0A3E48 800A3248 833986AD */ lb $t9, %lo((D_800E86B0 - 3))($t9) # -0x7953($t9) /* 0A3E4C 800A324C 8E8D000C */ lw $t5, 0xc($s4) /* 0A3E50 800A3250 3C01800F */ lui $at, %hi(D_800F1CA0) # $at, 0x800f /* 0A3E54 800A3254 C4201CA0 */ lwc1 $f0, %lo(D_800F1CA0)($at) diff --git a/asm/non_matchings/code_80091750/func_800A34A8.s b/asm/non_matchings/code_80091750/func_800A34A8.s index 937de761c..4f6276c9f 100644 --- a/asm/non_matchings/code_80091750/func_800A34A8.s +++ b/asm/non_matchings/code_80091750/func_800A34A8.s @@ -333,15 +333,15 @@ glabel func_800A34A8 /* 0A4578 800A3978 248400E6 */ addiu $a0, $a0, 0xe6 /* 0A457C 800A397C 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0A4580 800A3980 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0A4584 800A3984 3C09800F */ lui $t1, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f -/* 0A4588 800A3988 3C0A800F */ lui $t2, %hi(gGameModeSubMenuRowSelectionForNumPlayers) # 0x800f +/* 0A4584 800A3984 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f +/* 0A4588 800A3988 3C0A800F */ lui $t2, %hi((D_800E86B0 - 3)) # 0x800f /* 0A458C 800A398C 01224821 */ addu $t1, $t1, $v0 -/* 0A4590 800A3990 812986AB */ lb $t1, %lo(gGameModeRowSelectionForNumPlayers)($t1) # -0x7955($t1) +/* 0A4590 800A3990 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1) /* 0A4594 800A3994 0002C880 */ sll $t9, $v0, 2 /* 0A4598 800A3998 0322C823 */ subu $t9, $t9, $v0 /* 0A459C 800A399C 03295821 */ addu $t3, $t9, $t1 /* 0A45A0 800A39A0 014B5021 */ addu $t2, $t2, $t3 -/* 0A45A4 800A39A4 814A86AD */ lb $t2, %lo(gGameModeSubMenuRowSelectionForNumPlayers)($t2) # -0x7953($t2) +/* 0A45A4 800A39A4 814A86AD */ lb $t2, %lo((D_800E86B0 - 3))($t2) # -0x7953($t2) /* 0A45A8 800A39A8 8E68000C */ lw $t0, 0xc($s3) /* 0A45AC 800A39AC 3C01800F */ lui $at, %hi(D_800F1CC0) # $at, 0x800f /* 0A45B0 800A39B0 C4201CC0 */ lwc1 $f0, %lo(D_800F1CC0)($at) diff --git a/asm/non_matchings/code_80091750/func_800A97BC.s b/asm/non_matchings/code_80091750/func_800A97BC.s index 9e9ed1b5d..b77388c45 100644 --- a/asm/non_matchings/code_80091750/func_800A97BC.s +++ b/asm/non_matchings/code_80091750/func_800A97BC.s @@ -21,16 +21,16 @@ glabel func_800A97BC /* 0AA400 800A9800 AC8F0010 */ sw $t7, 0x10($a0) /* 0AA404 800A9804 AC990010 */ sw $t9, 0x10($a0) /* 0AA408 800A9808 A0A00000 */ sb $zero, ($a1) -/* 0AA40C 800A980C 3C04800F */ lui $a0, %hi(D_800E86CB) # $a0, 0x800f -/* 0AA410 800A9810 3C09800F */ lui $t1, %hi(D_800E86CC) # $t1, 0x800f -/* 0AA414 800A9814 3C08800F */ lui $t0, %hi(D_800E86C8) # $t0, 0x800f -/* 0AA418 800A9818 3C07800F */ lui $a3, %hi(D_800E86C9) # $a3, 0x800f -/* 0AA41C 800A981C 3C06800F */ lui $a2, %hi(D_800E86CA) # $a2, 0x800f -/* 0AA420 800A9820 24C686CA */ addiu $a2, %lo(D_800E86CA) # addiu $a2, $a2, -0x7936 -/* 0AA424 800A9824 24E786C9 */ addiu $a3, %lo(D_800E86C9) # addiu $a3, $a3, -0x7937 -/* 0AA428 800A9828 250886C8 */ addiu $t0, %lo(D_800E86C8) # addiu $t0, $t0, -0x7938 -/* 0AA42C 800A982C 252986CC */ addiu $t1, %lo(D_800E86CC) # addiu $t1, $t1, -0x7934 -/* 0AA430 800A9830 248486CB */ addiu $a0, %lo(D_800E86CB) # addiu $a0, $a0, -0x7935 +/* 0AA40C 800A980C 3C04800F */ lui $a0, %hi(((D_800E86C4 + 2) + 5)) # $a0, 0x800f +/* 0AA410 800A9810 3C09800F */ lui $t1, %hi(((D_800E86C4 + 2) + 6)) # $t1, 0x800f +/* 0AA414 800A9814 3C08800F */ lui $t0, %hi(((D_800E86C4 + 2) + 2)) # $t0, 0x800f +/* 0AA418 800A9818 3C07800F */ lui $a3, %hi(((D_800E86C4 + 2) + 3)) # $a3, 0x800f +/* 0AA41C 800A981C 3C06800F */ lui $a2, %hi(((D_800E86C4 + 2) + 4)) # $a2, 0x800f +/* 0AA420 800A9820 24C686CA */ addiu $a2, %lo(((D_800E86C4 + 2) + 4)) # addiu $a2, $a2, -0x7936 +/* 0AA424 800A9824 24E786C9 */ addiu $a3, %lo(((D_800E86C4 + 2) + 3)) # addiu $a3, $a3, -0x7937 +/* 0AA428 800A9828 250886C8 */ addiu $t0, %lo(((D_800E86C4 + 2) + 2)) # addiu $t0, $t0, -0x7938 +/* 0AA42C 800A982C 252986CC */ addiu $t1, %lo(((D_800E86C4 + 2) + 6)) # addiu $t1, $t1, -0x7934 +/* 0AA430 800A9830 248486CB */ addiu $a0, %lo(((D_800E86C4 + 2) + 5)) # addiu $a0, $a0, -0x7935 /* 0AA434 800A9834 24050010 */ li $a1, 16 /* 0AA438 800A9838 246386C4 */ addiu $v1, %lo(D_800E86C4) # addiu $v1, $v1, -0x793c /* 0AA43C 800A983C 0064082B */ sltu $at, $v1, $a0 @@ -119,24 +119,24 @@ glabel func_800A97BC /* 0AA540 800A9940 8C8B0010 */ lw $t3, 0x10($a0) .L800A9944: /* 0AA544 800A9944 240E0069 */ li $t6, 105 -/* 0AA548 800A9948 3C03800F */ lui $v1, %hi(D_800E86CC) # $v1, 0x800f +/* 0AA548 800A9948 3C03800F */ lui $v1, %hi(((D_800E86C4 + 2) + 6)) # $v1, 0x800f /* 0AA54C 800A994C 256C0002 */ addiu $t4, $t3, 2 /* 0AA550 800A9950 29810073 */ slti $at, $t4, 0x73 /* 0AA554 800A9954 1420004E */ bnez $at, .L800A9A90 /* 0AA558 800A9958 AC8C0010 */ sw $t4, 0x10($a0) /* 0AA55C 800A995C AC8E0010 */ sw $t6, 0x10($a0) /* 0AA560 800A9960 A0A00000 */ sb $zero, ($a1) -/* 0AA564 800A9964 3C05800F */ lui $a1, %hi(D_800E86C7) # $a1, 0x800f -/* 0AA568 800A9968 3C04800F */ lui $a0, %hi(D_800E86C6) # $a0, 0x800f +/* 0AA564 800A9964 3C05800F */ lui $a1, %hi(((D_800E86C4 + 2) + 1)) # $a1, 0x800f +/* 0AA568 800A9968 3C04800F */ lui $a0, %hi((D_800E86C4 + 2)) # $a0, 0x800f /* 0AA56C 800A996C 3C09800F */ lui $t1, %hi(D_800E86C4) # $t1, 0x800f -/* 0AA570 800A9970 3C08800F */ lui $t0, %hi(D_800E86C9) # $t0, 0x800f -/* 0AA574 800A9974 3C07800F */ lui $a3, %hi(D_800E86C8) # $a3, 0x800f -/* 0AA578 800A9978 24E786C8 */ addiu $a3, %lo(D_800E86C8) # addiu $a3, $a3, -0x7938 -/* 0AA57C 800A997C 250886C9 */ addiu $t0, %lo(D_800E86C9) # addiu $t0, $t0, -0x7937 +/* 0AA570 800A9970 3C08800F */ lui $t0, %hi(((D_800E86C4 + 2) + 3)) # $t0, 0x800f +/* 0AA574 800A9974 3C07800F */ lui $a3, %hi(((D_800E86C4 + 2) + 2)) # $a3, 0x800f +/* 0AA578 800A9978 24E786C8 */ addiu $a3, %lo(((D_800E86C4 + 2) + 2)) # addiu $a3, $a3, -0x7938 +/* 0AA57C 800A997C 250886C9 */ addiu $t0, %lo(((D_800E86C4 + 2) + 3)) # addiu $t0, $t0, -0x7937 /* 0AA580 800A9980 252986C4 */ addiu $t1, %lo(D_800E86C4) # addiu $t1, $t1, -0x793c -/* 0AA584 800A9984 248486C6 */ addiu $a0, %lo(D_800E86C6) # addiu $a0, $a0, -0x793a -/* 0AA588 800A9988 24A586C7 */ addiu $a1, %lo(D_800E86C7) # addiu $a1, $a1, -0x7939 -/* 0AA58C 800A998C 246386CC */ addiu $v1, %lo(D_800E86CC) # addiu $v1, $v1, -0x7934 +/* 0AA584 800A9984 248486C6 */ addiu $a0, %lo((D_800E86C4 + 2)) # addiu $a0, $a0, -0x793a +/* 0AA588 800A9988 24A586C7 */ addiu $a1, %lo(((D_800E86C4 + 2) + 1)) # addiu $a1, $a1, -0x7939 +/* 0AA58C 800A998C 246386CC */ addiu $v1, %lo(((D_800E86C4 + 2) + 6)) # addiu $v1, $v1, -0x7934 /* 0AA590 800A9990 0064082B */ sltu $at, $v1, $a0 .L800A9994: /* 0AA594 800A9994 54200005 */ bnel $at, $zero, .L800A99AC diff --git a/asm/non_matchings/code_80091750/func_800A9E58.s b/asm/non_matchings/code_80091750/func_800A9E58.s index 4932efa4e..50529e1e3 100644 --- a/asm/non_matchings/code_80091750/func_800A9E58.s +++ b/asm/non_matchings/code_80091750/func_800A9E58.s @@ -36,10 +36,10 @@ glabel L800A9EBC .L800A9ED4: /* 0AAAD4 800A9ED4 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0AAAD8 800A9ED8 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0AAADC 800A9EDC 3C06800F */ lui $a2, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0AAADC 800A9EDC 3C06800F */ lui $a2, %hi((D_800E86AC - 1)) # 0x800f /* 0AAAE0 800A9EE0 8C830004 */ lw $v1, 4($a0) /* 0AAAE4 800A9EE4 00C23021 */ addu $a2, $a2, $v0 -/* 0AAAE8 800A9EE8 80C686AB */ lb $a2, %lo(gGameModeRowSelectionForNumPlayers)($a2) # -0x7955($a2) +/* 0AAAE8 800A9EE8 80C686AB */ lb $a2, %lo((D_800E86AC - 1))($a2) # -0x7955($a2) /* 0AAAEC 800A9EEC 00025080 */ sll $t2, $v0, 2 # playerCount * 4 /* 0AAAF0 800A9EF0 01425023 */ subu $t2, $t2, $v0 # playerCount * 3 /* 0AAAF4 800A9EF4 000A5080 */ sll $t2, $t2, 2 # playerCount * 12 @@ -87,13 +87,13 @@ glabel L800A9F7C /* 0AAB8C 800A9F8C 8FA40030 */ lw $a0, 0x30($sp) /* 0AAB90 800A9F90 8C58000C */ lw $t8, 0xc($v0) /* 0AAB94 800A9F94 3C198019 */ lui $t9, %hi(D_8018EDF3) # $t9, 0x8019 -/* 0AAB98 800A9F98 3C09800F */ lui $t1, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0AAB98 800A9F98 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f /* 0AAB9C 800A9F9C AC98000C */ sw $t8, 0xc($a0) /* 0AABA0 800A9FA0 8339EDF3 */ lb $t9, %lo(D_8018EDF3)($t9) /* 0AABA4 800A9FA4 8C4B0010 */ lw $t3, 0x10($v0) /* 0AABA8 800A9FA8 240E0001 */ li $t6, 1 /* 0AABAC 800A9FAC 01394821 */ addu $t1, $t1, $t9 -/* 0AABB0 800A9FB0 812986AB */ lb $t1, %lo(gGameModeRowSelectionForNumPlayers)($t1) # -0x7955($t1) +/* 0AABB0 800A9FB0 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1) /* 0AABB4 800A9FB4 AC80001C */ sw $zero, 0x1c($a0) /* 0AABB8 800A9FB8 AC8E0004 */ sw $t6, 4($a0) /* 0AABBC 800A9FBC 000950C0 */ sll $t2, $t1, 3 @@ -119,14 +119,14 @@ glabel L800A9FD8 /* 0AAC08 800AA008 846E0000 */ lh $t6, ($v1) /* 0AAC0C 800AA00C 8C4D000C */ lw $t5, 0xc($v0) /* 0AAC10 800AA010 3C198019 */ lui $t9, %hi(D_8018EDF3) # $t9, 0x8019 -/* 0AAC14 800AA014 3C09800F */ lui $t1, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0AAC14 800AA014 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f /* 0AAC18 800AA018 01AE7821 */ addu $t7, $t5, $t6 /* 0AAC1C 800AA01C AC8F000C */ sw $t7, 0xc($a0) /* 0AAC20 800AA020 8339EDF3 */ lb $t9, %lo(D_8018EDF3)($t9) /* 0AAC24 800AA024 8C4A0010 */ lw $t2, 0x10($v0) /* 0AAC28 800AA028 846C0002 */ lh $t4, 2($v1) /* 0AAC2C 800AA02C 01394821 */ addu $t1, $t1, $t9 -/* 0AAC30 800AA030 812986AB */ lb $t1, %lo(gGameModeRowSelectionForNumPlayers)($t1) # -0x7955($t1) +/* 0AAC30 800AA030 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1) /* 0AAC34 800AA034 0009C0C0 */ sll $t8, $t1, 3 /* 0AAC38 800AA038 0309C021 */ addu $t8, $t8, $t1 /* 0AAC3C 800AA03C 0018C040 */ sll $t8, $t8, 1 @@ -256,14 +256,14 @@ glabel L800AA198 /* 0AAE04 800AA204 030A2821 */ addu $a1, $t8, $t2 /* 0AAE08 800AA208 AC85000C */ sw $a1, 0xc($a0) /* 0AAE0C 800AA20C 8C4C0010 */ lw $t4, 0x10($v0) -/* 0AAE10 800AA210 3C0F800F */ lui $t7, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0AAE10 800AA210 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0AAE14 800AA214 018D5821 */ addu $t3, $t4, $t5 /* 0AAE18 800AA218 AC8B0010 */ sw $t3, 0x10($a0) /* 0AAE1C 800AA21C 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6) /* 0AAE20 800AA220 8C580010 */ lw $t8, 0x10($v0) /* 0AAE24 800AA224 84690002 */ lh $t1, 2($v1) /* 0AAE28 800AA228 01EE7821 */ addu $t7, $t7, $t6 -/* 0AAE2C 800AA22C 81EF86AB */ lb $t7, %lo(gGameModeRowSelectionForNumPlayers)($t7) # -0x7955($t7) +/* 0AAE2C 800AA22C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) /* 0AAE30 800AA230 AFA2002C */ sw $v0, 0x2c($sp) /* 0AAE34 800AA234 000FC8C0 */ sll $t9, $t7, 3 /* 0AAE38 800AA238 032FC821 */ addu $t9, $t9, $t7 diff --git a/asm/non_matchings/code_80091750/func_800AA2EC.s b/asm/non_matchings/code_80091750/func_800AA2EC.s index 7c7d51678..8e7d42f28 100644 --- a/asm/non_matchings/code_80091750/func_800AA2EC.s +++ b/asm/non_matchings/code_80091750/func_800AA2EC.s @@ -26,10 +26,10 @@ glabel L800AA334 /* 0AAF44 800AA344 8FBF001C */ lw $ra, 0x1c($sp) /* 0AAF48 800AA348 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) /* 0AAF4C 800AA34C 24010001 */ li $at, 1 -/* 0AAF50 800AA350 3C0B800F */ lui $t3, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0AAF50 800AA350 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f /* 0AAF54 800AA354 14410098 */ bne $v0, $at, .L800AA5B8 /* 0AAF58 800AA358 01625821 */ addu $t3, $t3, $v0 -/* 0AAF5C 800AA35C 816B86AB */ lb $t3, %lo(gGameModeRowSelectionForNumPlayers)($t3) # -0x7955($t3) +/* 0AAF5C 800AA35C 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) /* 0AAF60 800AA360 24010001 */ li $at, 1 /* 0AAF64 800AA364 3C03800F */ lui $v1, %hi(D_800E86F8) # $v1, 0x800f /* 0AAF68 800AA368 15610093 */ bne $t3, $at, .L800AA5B8 diff --git a/asm/non_matchings/menus/func_800B0350.s b/asm/non_matchings/menus/func_800B0350.s deleted file mode 100644 index 4f0738951..000000000 --- a/asm/non_matchings/menus/func_800B0350.s +++ /dev/null @@ -1,149 +0,0 @@ -.section .late_rodata -glabel jpt_800F2C20 -.word L800B04B8, L800B04D0, L800B04E8, L800B0500 -.word L800B0510, L800B043C, L800B0454, L800B046C -.word L800B0484, L800B049C, L800B04B8, L800B04D0 -.word L800B04E8, L800B0500 - -.section .text -glabel func_800B0350 -/* 0B0F50 800B0350 3C0E800F */ lui $t6, %hi(D_800E86A4) # $t6, 0x800f -/* 0B0F54 800B0354 8DCE86A4 */ lw $t6, %lo(D_800E86A4)($t6) -/* 0B0F58 800B0358 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0B0F5C 800B035C AFBF0024 */ sw $ra, 0x24($sp) -/* 0B0F60 800B0360 AFB20020 */ sw $s2, 0x20($sp) -/* 0B0F64 800B0364 AFB1001C */ sw $s1, 0x1c($sp) -/* 0B0F68 800B0368 15C0006E */ bnez $t6, .L800B0524 -/* 0B0F6C 800B036C AFB00018 */ sw $s0, 0x18($sp) -/* 0B0F70 800B0370 3C12800F */ lui $s2, %hi(gMenuSelection) # $s2, 0x800f -/* 0B0F74 800B0374 3C11800F */ lui $s1, %hi(gControllers) # $s1, 0x800f -/* 0B0F78 800B0378 26316910 */ addiu $s1, %lo(gControllers) # addiu $s1, $s1, 0x6910 -/* 0B0F7C 800B037C 265286A0 */ addiu $s2, %lo(gMenuSelection) # addiu $s2, $s2, -0x7960 -/* 0B0F80 800B0380 00008025 */ move $s0, $zero -.L800B0384: -/* 0B0F84 800B0384 0C02D148 */ jal func_800B4520 -/* 0B0F88 800B0388 00000000 */ nop -/* 0B0F8C 800B038C 1440001F */ bnez $v0, .L800B040C -/* 0B0F90 800B0390 3C0F800E */ lui $t7, %hi(gEnableDebugMode) # $t7, 0x800e -/* 0B0F94 800B0394 95EFC520 */ lhu $t7, %lo(gEnableDebugMode)($t7) -/* 0B0F98 800B0398 0010C100 */ sll $t8, $s0, 4 -/* 0B0F9C 800B039C 0238C821 */ addu $t9, $s1, $t8 -/* 0B0FA0 800B03A0 11E0001A */ beqz $t7, .L800B040C -/* 0B0FA4 800B03A4 00000000 */ nop -/* 0B0FA8 800B03A8 97280006 */ lhu $t0, 6($t9) -/* 0B0FAC 800B03AC 31091000 */ andi $t1, $t0, 0x1000 -/* 0B0FB0 800B03B0 11200016 */ beqz $t1, .L800B040C -/* 0B0FB4 800B03B4 00000000 */ nop -/* 0B0FB8 800B03B8 8E420000 */ lw $v0, ($s2) -/* 0B0FBC 800B03BC 2401000B */ li $at, 11 -/* 0B0FC0 800B03C0 10410007 */ beq $v0, $at, .L800B03E0 -/* 0B0FC4 800B03C4 2401000C */ li $at, 12 -/* 0B0FC8 800B03C8 10410005 */ beq $v0, $at, .L800B03E0 -/* 0B0FCC 800B03CC 2401000D */ li $at, 13 -/* 0B0FD0 800B03D0 54410008 */ bnel $v0, $at, .L800B03F4 -/* 0B0FD4 800B03D4 24010009 */ li $at, 9 -/* 0B0FD8 800B03D8 0C0328CC */ jal func_800CA330 -/* 0B0FDC 800B03DC 24040019 */ li $a0, 25 -.L800B03E0: -/* 0B0FE0 800B03E0 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900 -/* 0B0FE4 800B03E4 0C032384 */ jal play_sound2 -/* 0B0FE8 800B03E8 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016 -/* 0B0FEC 800B03EC 8E420000 */ lw $v0, ($s2) -/* 0B0FF0 800B03F0 24010009 */ li $at, 9 -.L800B03F4: -/* 0B0FF4 800B03F4 10410005 */ beq $v0, $at, .L800B040C -/* 0B0FF8 800B03F8 2401000A */ li $at, 10 -/* 0B0FFC 800B03FC 10410003 */ beq $v0, $at, .L800B040C -/* 0B1000 800B0400 00000000 */ nop -/* 0B1004 800B0404 0C027870 */ jal func_8009E1C0 -/* 0B1008 800B0408 00000000 */ nop -.L800B040C: -/* 0B100C 800B040C 3C04800F */ lui $a0, %hi(D_800E86E4) # $a0, 0x800f -/* 0B1010 800B0410 0C03324C */ jal osViSetSpecialFeatures -/* 0B1014 800B0414 8C8486E4 */ lw $a0, %lo(D_800E86E4)($a0) -/* 0B1018 800B0418 8E4A0000 */ lw $t2, ($s2) -/* 0B101C 800B041C 2D41000E */ sltiu $at, $t2, 0xe -/* 0B1020 800B0420 1020003B */ beqz $at, .L800B0510 -/* 0B1024 800B0424 000A5080 */ sll $t2, $t2, 2 -/* 0B1028 800B0428 3C01800F */ lui $at, %hi(jpt_800F2C20) -/* 0B102C 800B042C 002A0821 */ addu $at, $at, $t2 -/* 0B1030 800B0430 8C2A2C20 */ lw $t2, %lo(jpt_800F2C20)($at) -/* 0B1034 800B0434 01400008 */ jr $t2 -/* 0B1038 800B0438 00000000 */ nop -glabel L800B043C -/* 0B103C 800B043C 00105900 */ sll $t3, $s0, 4 -/* 0B1040 800B0440 022B2021 */ addu $a0, $s1, $t3 -/* 0B1044 800B0444 0C02C14F */ jal func_800B053C -/* 0B1048 800B0448 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B104C 800B044C 10000031 */ b .L800B0514 -/* 0B1050 800B0450 26100001 */ addiu $s0, $s0, 1 -glabel L800B0454 -/* 0B1054 800B0454 00106100 */ sll $t4, $s0, 4 -/* 0B1058 800B0458 022C2021 */ addu $a0, $s1, $t4 -/* 0B105C 800B045C 0C02C4EC */ jal func_800B13B0 -/* 0B1060 800B0460 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B1064 800B0464 1000002B */ b .L800B0514 -/* 0B1068 800B0468 26100001 */ addiu $s0, $s0, 1 -glabel L800B046C -/* 0B106C 800B046C 00106900 */ sll $t5, $s0, 4 -/* 0B1070 800B0470 022D2021 */ addu $a0, $s1, $t5 -/* 0B1074 800B0474 0C02C56B */ jal func_800B15AC -/* 0B1078 800B0478 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B107C 800B047C 10000025 */ b .L800B0514 -/* 0B1080 800B0480 26100001 */ addiu $s0, $s0, 1 -glabel L800B0484 -/* 0B1084 800B0484 00107100 */ sll $t6, $s0, 4 -/* 0B1088 800B0488 022E2021 */ addu $a0, $s1, $t6 -/* 0B108C 800B048C 0C02C710 */ jal func_800B1C40 -/* 0B1090 800B0490 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B1094 800B0494 1000001F */ b .L800B0514 -/* 0B1098 800B0498 26100001 */ addiu $s0, $s0, 1 -glabel L800B049C -/* 0B109C 800B049C 1600001C */ bnez $s0, .L800B0510 -/* 0B10A0 800B04A0 00107900 */ sll $t7, $s0, 4 -/* 0B10A4 800B04A4 022F2021 */ addu $a0, $s1, $t7 -/* 0B10A8 800B04A8 0C02C724 */ jal func_800B1C90 -/* 0B10AC 800B04AC 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B10B0 800B04B0 10000018 */ b .L800B0514 -/* 0B10B4 800B04B4 26100001 */ addiu $s0, $s0, 1 -glabel L800B04B8 -/* 0B10B8 800B04B8 0010C100 */ sll $t8, $s0, 4 -/* 0B10BC 800B04BC 02382021 */ addu $a0, $s1, $t8 -/* 0B10C0 800B04C0 0C02C83D */ jal func_800B20F4 -/* 0B10C4 800B04C4 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B10C8 800B04C8 10000012 */ b .L800B0514 -/* 0B10CC 800B04CC 26100001 */ addiu $s0, $s0, 1 -glabel L800B04D0 -/* 0B10D0 800B04D0 0010C900 */ sll $t9, $s0, 4 -/* 0B10D4 800B04D4 02392021 */ addu $a0, $s1, $t9 -/* 0B10D8 800B04D8 0C02CA76 */ jal func_800B29D8 -/* 0B10DC 800B04DC 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B10E0 800B04E0 1000000C */ b .L800B0514 -/* 0B10E4 800B04E4 26100001 */ addiu $s0, $s0, 1 -glabel L800B04E8 -/* 0B10E8 800B04E8 00104100 */ sll $t0, $s0, 4 -/* 0B10EC 800B04EC 02282021 */ addu $a0, $s1, $t0 -/* 0B10F0 800B04F0 0C02CD55 */ jal func_800B3554 -/* 0B10F4 800B04F4 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B10F8 800B04F8 10000006 */ b .L800B0514 -/* 0B10FC 800B04FC 26100001 */ addiu $s0, $s0, 1 -glabel L800B0500 -/* 0B1100 800B0500 00104900 */ sll $t1, $s0, 4 -/* 0B1104 800B0504 02292021 */ addu $a0, $s1, $t1 -/* 0B1108 800B0508 0C02CED6 */ jal func_800B3B58 -/* 0B110C 800B050C 3205FFFF */ andi $a1, $s0, 0xffff -.L800B0510: -glabel L800B0510 -/* 0B1110 800B0510 26100001 */ addiu $s0, $s0, 1 -.L800B0514: -/* 0B1114 800B0514 320AFFFF */ andi $t2, $s0, 0xffff -/* 0B1118 800B0518 29410004 */ slti $at, $t2, 4 -/* 0B111C 800B051C 1420FF99 */ bnez $at, .L800B0384 -/* 0B1120 800B0520 01408025 */ move $s0, $t2 -.L800B0524: -/* 0B1124 800B0524 8FBF0024 */ lw $ra, 0x24($sp) -/* 0B1128 800B0528 8FB00018 */ lw $s0, 0x18($sp) -/* 0B112C 800B052C 8FB1001C */ lw $s1, 0x1c($sp) -/* 0B1130 800B0530 8FB20020 */ lw $s2, 0x20($sp) -/* 0B1134 800B0534 03E00008 */ jr $ra -/* 0B1138 800B0538 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/menus/func_800B053C.s b/asm/non_matchings/menus/func_800B053C.s index 968cea447..7c383d13c 100644 --- a/asm/non_matchings/menus/func_800B053C.s +++ b/asm/non_matchings/menus/func_800B053C.s @@ -95,7 +95,7 @@ glabel func_800B053C /* 0B11D4 800B05D4 8C2D2C58 */ lw $t5, %lo(jpt_800F2C58)($at) # 0x2c58($at) /* 0B11D8 800B05D8 01A00008 */ jr $t5 /* 0B11DC 800B05DC 00000000 */ nop -glabel L800B05E0 +glabel L800B05E0 #0x15,16,17,18 /* 0B11E0 800B05E0 30CE0400 */ andi $t6, $a2, 0x400 /* 0B11E4 800B05E4 AFA0002C */ sw $zero, 0x2c($sp) /* 0B11E8 800B05E8 11C00020 */ beqz $t6, .L800B066C @@ -239,7 +239,7 @@ glabel L800B05E0 /* 0B13F8 800B07F8 240D001E */ li $t5, 30 /* 0B13FC 800B07FC 100002E9 */ b .L800B13A4 /* 0B1400 800B0800 8FBF001C */ lw $ra, 0x1c($sp) -.L800B0804: +.L800B0804: # case 22 switch 2 /* 0B1404 800B0804 90620000 */ lbu $v0, ($v1) /* 0B1408 800B0808 240F0003 */ li $t7, 3 /* 0B140C 800B080C 28410003 */ slti $at, $v0, 3 @@ -287,7 +287,7 @@ glabel L800B05E0 /* 0B149C 800B089C 34848029 */ ori $a0, (0x49008029 & 0xFFFF) # ori $a0, $a0, 0x8029 /* 0B14A0 800B08A0 100002C0 */ b .L800B13A4 /* 0B14A4 800B08A4 8FBF001C */ lw $ra, 0x1c($sp) -.L800B08A8: +.L800B08A8: # case 23 switch 2 /* 0B14A8 800B08A8 0C02D769 */ jal func_800B5DA4 /* 0B14AC 800B08AC AFA80038 */ sw $t0, 0x38($sp) /* 0B14B0 800B08B0 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 @@ -304,7 +304,7 @@ glabel L800B05E0 /* 0B14DC 800B08DC 240C002D */ li $t4, 45 /* 0B14E0 800B08E0 10000072 */ b .L800B0AAC /* 0B14E4 800B08E4 3C044900 */ lui $a0, 0x4900 -.L800B08E8: +.L800B08E8: # case -1 switch 3 /* 0B14E8 800B08E8 2418002B */ li $t8, 43 /* 0B14EC 800B08EC 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 /* 0B14F0 800B08F0 A1380000 */ sb $t8, ($t1) @@ -312,7 +312,7 @@ glabel L800B05E0 /* 0B14F8 800B08F8 3484FF07 */ ori $a0, (0x4900FF07 & 0xFFFF) # ori $a0, $a0, 0xff07 /* 0B14FC 800B08FC 100002A9 */ b .L800B13A4 /* 0B1500 800B0900 8FBF001C */ lw $ra, 0x1c($sp) -.L800B0904: +.L800B0904: # case 0 switch 3 /* 0B1504 800B0904 0C02D9E6 */ jal func_800B6798 /* 0B1508 800B0908 AFA80038 */ sw $t0, 0x38($sp) /* 0B150C 800B090C 0C02D6E5 */ jal func_800B5B94 @@ -330,7 +330,7 @@ glabel L800B05E0 /* 0B153C 800B093C 8C392D38 */ lw $t9, %lo(jpt_800F2D38)($at) /* 0B1540 800B0940 03200008 */ jr $t9 /* 0B1544 800B0944 00000000 */ nop -glabel L800B0948 +glabel L800B0948 # case -1 switch 5 /* 0B1548 800B0948 240A0046 */ li $t2, 70 /* 0B154C 800B094C A12A0000 */ sb $t2, ($t1) /* 0B1550 800B0950 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 @@ -340,13 +340,13 @@ glabel L800B0948 /* 0B1560 800B0960 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 /* 0B1564 800B0964 1000001D */ b .L800B09DC /* 0B1568 800B0968 2529EDEC */ addiu $t1, %lo(D_8018EDEC) # addiu $t1, $t1, -0x1214 -glabel L800B096C +glabel L800B096C # case 0 switch 5 /* 0B156C 800B096C 0C02D9C2 */ jal func_800B6708 /* 0B1570 800B0970 00000000 */ nop /* 0B1574 800B0974 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 /* 0B1578 800B0978 10000018 */ b .L800B09DC /* 0B157C 800B097C 2529EDEC */ addiu $t1, %lo(D_8018EDEC) # addiu $t1, $t1, -0x1214 -glabel L800B0980 +glabel L800B0980 # case 1 switch 5 /* 0B1580 800B0980 240B0034 */ li $t3, 52 /* 0B1584 800B0984 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 /* 0B1588 800B0988 A12B0000 */ sb $t3, ($t1) @@ -355,7 +355,7 @@ glabel L800B0980 /* 0B1594 800B0994 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 /* 0B1598 800B0998 10000010 */ b .L800B09DC /* 0B159C 800B099C 2529EDEC */ addiu $t1, %lo(D_8018EDEC) # addiu $t1, $t1, -0x1214 -glabel L800B09A0 +glabel L800B09A0 # case 4 switch 5 /* 0B15A0 800B09A0 240C0037 */ li $t4, 55 /* 0B15A4 800B09A4 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 /* 0B15A8 800B09A8 A12C0000 */ sb $t4, ($t1) @@ -365,7 +365,7 @@ glabel L800B09A0 /* 0B15B8 800B09B8 10000008 */ b .L800B09DC /* 0B15BC 800B09BC 2529EDEC */ addiu $t1, %lo(D_8018EDEC) # addiu $t1, $t1, -0x1214 .L800B09C0: -glabel L800B09C0 +glabel L800B09C0 # default switch 5 /* 0B15C0 800B09C0 240D0035 */ li $t5, 53 /* 0B15C4 800B09C4 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 /* 0B15C8 800B09C8 A12D0000 */ sb $t5, ($t1) @@ -373,7 +373,7 @@ glabel L800B09C0 /* 0B15D0 800B09D0 3484FF07 */ ori $a0, (0x4900FF07 & 0xFFFF) # ori $a0, $a0, 0xff07 /* 0B15D4 800B09D4 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 /* 0B15D8 800B09D8 2529EDEC */ addiu $t1, %lo(D_8018EDEC) # addiu $t1, $t1, -0x1214 -.L800B09DC: +.L800B09DC: #end switch 5 /* 0B15DC 800B09DC 8FAE002C */ lw $t6, 0x2c($sp) /* 0B15E0 800B09E0 2401FFFF */ li $at, -1 /* 0B15E4 800B09E4 8FAF0030 */ lw $t7, 0x30($sp) @@ -422,29 +422,29 @@ glabel L800B09C0 /* 0B1684 800B0A84 A12A0000 */ sb $t2, ($t1) /* 0B1688 800B0A88 10000246 */ b .L800B13A4 /* 0B168C 800B0A8C 8FBF001C */ lw $ra, 0x1c($sp) -.L800B0A90: +.L800B0A90: # case 1 switch 3 /* 0B1690 800B0A90 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 /* 0B1694 800B0A94 A12B0000 */ sb $t3, ($t1) /* 0B1698 800B0A98 0C032384 */ jal play_sound2 /* 0B169C 800B0A9C 3484FF07 */ ori $a0, (0x4900FF07 & 0xFFFF) # ori $a0, $a0, 0xff07 /* 0B16A0 800B0AA0 10000240 */ b .L800B13A4 /* 0B16A4 800B0AA4 8FBF001C */ lw $ra, 0x1c($sp) -.L800B0AA8: +.L800B0AA8: # case 2 switch 3 /* 0B16A8 800B0AA8 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 -.L800B0AAC: +.L800B0AAC: # default/end switch 3 /* 0B16AC 800B0AAC A12C0000 */ sb $t4, ($t1) /* 0B16B0 800B0AB0 0C032384 */ jal play_sound2 /* 0B16B4 800B0AB4 3484FF07 */ ori $a0, (0x4900FF07 & 0xFFFF) # ori $a0, $a0, 0xff07 /* 0B16B8 800B0AB8 1000023A */ b .L800B13A4 /* 0B16BC 800B0ABC 8FBF001C */ lw $ra, 0x1c($sp) -.L800B0AC0: +.L800B0AC0: # case 24 switch 2 /* 0B16C0 800B0AC0 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 /* 0B16C4 800B0AC4 A12D0000 */ sb $t5, ($t1) /* 0B16C8 800B0AC8 0C032384 */ jal play_sound2 /* 0B16CC 800B0ACC 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 /* 0B16D0 800B0AD0 10000234 */ b .L800B13A4 /* 0B16D4 800B0AD4 8FBF001C */ lw $ra, 0x1c($sp) -.L800B0AD8: +.L800B0AD8: # case 21 switch 2 /* 0B16D8 800B0AD8 0C0278A0 */ jal func_8009E280 /* 0B16DC 800B0ADC 00000000 */ nop /* 0B16E0 800B0AE0 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 @@ -452,7 +452,7 @@ glabel L800B09C0 /* 0B16E8 800B0AE8 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B16EC 800B0AEC 1000022D */ b .L800B13A4 /* 0B16F0 800B0AF0 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B0AF4 +glabel L800B0AF4 # case 0x1E,1F switch 1 /* 0B16F4 800B0AF4 30CE0400 */ andi $t6, $a2, 0x400 /* 0B16F8 800B0AF8 11C0001E */ beqz $t6, .L800B0B74 /* 0B16FC 800B0AFC 00C02825 */ move $a1, $a2 @@ -560,7 +560,7 @@ glabel L800B0AF4 /* 0B187C 800B0C7C 3484801D */ ori $a0, (0x4900801D & 0xFFFF) # ori $a0, $a0, 0x801d /* 0B1880 800B0C80 100001C8 */ b .L800B13A4 /* 0B1884 800B0C84 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B0C88 +glabel L800B0C88 # case 0x20 switch 1 /* 0B1888 800B0C88 30D9D000 */ andi $t9, $a2, 0xd000 /* 0B188C 800B0C8C 132001C4 */ beqz $t9, .L800B13A0 /* 0B1890 800B0C90 240A0018 */ li $t2, 24 @@ -570,7 +570,7 @@ glabel L800B0C88 /* 0B18A0 800B0CA0 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B18A4 800B0CA4 100001BF */ b .L800B13A4 /* 0B18A8 800B0CA8 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B0CAC +glabel L800B0CAC # case 0x28, 29 switch 1 /* 0B18AC 800B0CAC 30CB0400 */ andi $t3, $a2, 0x400 /* 0B18B0 800B0CB0 11600021 */ beqz $t3, .L800B0D38 /* 0B18B4 800B0CB4 00C02825 */ move $a1, $a2 @@ -660,19 +660,19 @@ glabel L800B0CAC /* 0B19F4 800B0DF4 1300016A */ beqz $t8, .L800B13A0 /* 0B19F8 800B0DF8 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 /* 0B19FC 800B0DFC 812F0000 */ lb $t7, ($t1) -/* 0B1A00 800B0E00 3C188019 */ lui $t8, %hi(D_8018EE95) # $t8, 0x8019 +/* 0B1A00 800B0E00 3C188019 */ lui $t8, %hi((D_8018EE10 + 0x85)) # $t8, 0x8019 /* 0B1A04 800B0E04 240B0032 */ li $t3, 50 /* 0B1A08 800B0E08 25F9FFD8 */ addiu $t9, $t7, -0x28 /* 0B1A0C 800B0E0C AD190020 */ sw $t9, 0x20($t0) /* 0B1A10 800B0E10 8FAA0030 */ lw $t2, 0x30($sp) /* 0B1A14 800B0E14 001961C0 */ sll $t4, $t9, 7 -/* 0B1A18 800B0E18 8318EE95 */ lb $t8, %lo(D_8018EE95)($t8) +/* 0B1A18 800B0E18 8318EE95 */ lb $t8, %lo((D_8018EE10 + 0x85))($t8) /* 0B1A1C 800B0E1C 014C6821 */ addu $t5, $t2, $t4 /* 0B1A20 800B0E20 81AE0005 */ lb $t6, 5($t5) -/* 0B1A24 800B0E24 3C0F8019 */ lui $t7, %hi(D_8018EE94) # $t7, 0x8019 +/* 0B1A24 800B0E24 3C0F8019 */ lui $t7, %hi((D_8018EE10 + 0x84)) # $t7, 0x8019 /* 0B1A28 800B0E28 55D80008 */ bnel $t6, $t8, .L800B0E4C /* 0B1A2C 800B0E2C A12B0000 */ sb $t3, ($t1) -/* 0B1A30 800B0E30 91EFEE94 */ lbu $t7, %lo(D_8018EE94)($t7) +/* 0B1A30 800B0E30 91EFEE94 */ lbu $t7, %lo((D_8018EE10 + 0x84))($t7) /* 0B1A34 800B0E34 24190033 */ li $t9, 51 /* 0B1A38 800B0E38 51E00004 */ beql $t7, $zero, .L800B0E4C /* 0B1A3C 800B0E3C A12B0000 */ sb $t3, ($t1) @@ -684,7 +684,7 @@ glabel L800B0CAC /* 0B1A50 800B0E50 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 /* 0B1A54 800B0E54 10000153 */ b .L800B13A4 /* 0B1A58 800B0E58 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B0E5C +glabel L800B0E5C # case 0x32, 33 switch 1 /* 0B1A5C 800B0E5C 8C580020 */ lw $t8, 0x20($v0) /* 0B1A60 800B0E60 8FAE0030 */ lw $t6, 0x30($sp) /* 0B1A64 800B0E64 246AFFCE */ addiu $t2, $v1, -0x32 @@ -785,13 +785,13 @@ glabel L800B0E5C /* 0B1BCC 800B0FCC 130000F4 */ beqz $t8, .L800B13A0 /* 0B1BD0 800B0FD0 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 /* 0B1BD4 800B0FD4 812E0000 */ lb $t6, ($t1) -/* 0B1BD8 800B0FD8 3C0A8019 */ lui $t2, %hi(D_8018EE14) # 0x8019 +/* 0B1BD8 800B0FD8 3C0A8019 */ lui $t2, %hi((D_8018EE10 + 4)) # 0x8019 /* 0B1BDC 800B0FDC 240C0038 */ li $t4, 56 /* 0B1BE0 800B0FE0 25CFFFCE */ addiu $t7, $t6, -0x32 /* 0B1BE4 800B0FE4 000F59C0 */ sll $t3, $t7, 7 /* 0B1BE8 800B0FE8 AD0F001C */ sw $t7, 0x1c($t0) /* 0B1BEC 800B0FEC 014B5021 */ addu $t2, $t2, $t3 -/* 0B1BF0 800B0FF0 914AEE14 */ lbu $t2, %lo(D_8018EE14)($t2) # -0x11ec($t2) +/* 0B1BF0 800B0FF0 914AEE14 */ lbu $t2, %lo((D_8018EE10 + 4))($t2) # -0x11ec($t2) /* 0B1BF4 800B0FF4 240D003A */ li $t5, 58 /* 0B1BF8 800B0FF8 51400004 */ beql $t2, $zero, .L800B100C /* 0B1BFC 800B0FFC A12D0000 */ sb $t5, ($t1) @@ -805,7 +805,7 @@ glabel L800B0E5C /* 0B1C14 800B1014 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 /* 0B1C18 800B1018 100000E2 */ b .L800B13A4 /* 0B1C1C 800B101C 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1020 +glabel L800B1020 # case 0x2A +++ switch 1 /* 0B1C20 800B1020 30D8D000 */ andi $t8, $a2, 0xd000 /* 0B1C24 800B1024 130000DE */ beqz $t8, .L800B13A0 /* 0B1C28 800B1028 240E0017 */ li $t6, 23 @@ -815,7 +815,7 @@ glabel L800B1020 /* 0B1C38 800B1038 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B1C3C 800B103C 100000D9 */ b .L800B13A4 /* 0B1C40 800B1040 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1044 +glabel L800B1044 # case 0x38, 39 switch 1 /* 0B1C44 800B1044 30CF0100 */ andi $t7, $a2, 0x100 /* 0B1C48 800B1048 11E0001E */ beqz $t7, .L800B10C4 /* 0B1C4C 800B104C 00C02825 */ move $a1, $a2 @@ -918,7 +918,7 @@ glabel L800B1044 /* 0B1DBC 800B11BC 8FA80038 */ lw $t0, 0x38($sp) /* 0B1DC0 800B11C0 10000077 */ b .L800B13A0 /* 0B1DC4 800B11C4 AD000004 */ sw $zero, 4($t0) -glabel L800B11C8 +glabel L800B11C8 # case 0x3a /* 0B1DC8 800B11C8 97AD0046 */ lhu $t5, 0x46($sp) /* 0B1DCC 800B11CC 2419003B */ li $t9, 59 /* 0B1DD0 800B11D0 55A00005 */ bnel $t5, $zero, .L800B11E8 @@ -933,7 +933,7 @@ glabel L800B11C8 /* 0B1DF0 800B11F0 8FBF001C */ lw $ra, 0x1c($sp) /* 0B1DF4 800B11F4 1000006A */ b .L800B13A0 /* 0B1DF8 800B11F8 A1390000 */ sb $t9, ($t1) -glabel L800B11FC +glabel L800B11FC # 0x3B /* 0B1DFC 800B11FC 0C02D769 */ jal func_800B5DA4 /* 0B1E00 800B1200 AFA80038 */ sw $t0, 0x38($sp) /* 0B1E04 800B1204 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 @@ -1001,15 +1001,15 @@ glabel L800B11FC /* 0B1EEC 800B12EC 000E79C0 */ sll $t7, $t6, 7 /* 0B1EF0 800B12F0 01F95821 */ addu $t3, $t7, $t9 /* 0B1EF4 800B12F4 816A0005 */ lb $t2, 5($t3) -/* 0B1EF8 800B12F8 3C018019 */ lui $at, %hi(D_8018EE15) # 0x8019 +/* 0B1EF8 800B12F8 3C018019 */ lui $at, %hi((D_8018EE10 + 5)) # 0x8019 /* 0B1EFC 800B12FC 000C69C0 */ sll $t5, $t4, 7 /* 0B1F00 800B1300 002D0821 */ addu $at, $at, $t5 -/* 0B1F04 800B1304 A02AEE15 */ sb $t2, %lo(D_8018EE15)($at) # -0x11eb($at) +/* 0B1F04 800B1304 A02AEE15 */ sb $t2, %lo((D_8018EE10 + 5))($at) # -0x11eb($at) /* 0B1F08 800B1308 0C02D822 */ jal func_800B6088 /* 0B1F0C 800B130C 8D04001C */ lw $a0, 0x1c($t0) /* 0B1F10 800B1310 10000024 */ b .L800B13A4 /* 0B1F14 800B1314 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1318 +glabel L800B1318 # 0x46 /* 0B1F18 800B1318 97B80046 */ lhu $t8, 0x46($sp) /* 0B1F1C 800B131C 240B0047 */ li $t3, 71 /* 0B1F20 800B1320 57000005 */ bnel $t8, $zero, .L800B1338 @@ -1024,7 +1024,7 @@ glabel L800B1318 /* 0B1F40 800B1340 8FBF001C */ lw $ra, 0x1c($sp) /* 0B1F44 800B1344 10000016 */ b .L800B13A0 /* 0B1F48 800B1348 A12B0000 */ sb $t3, ($t1) -glabel L800B134C +glabel L800B134C # 0x47 /* 0B1F4C 800B134C 0C02DA9A */ jal func_800B6A68 /* 0B1F50 800B1350 00000000 */ nop /* 0B1F54 800B1354 3C098019 */ lui $t1, %hi(D_8018EDEC) # $t1, 0x8019 diff --git a/asm/non_matchings/menus/func_800B15AC.s b/asm/non_matchings/menus/func_800B15AC.s deleted file mode 100644 index 4af248e1c..000000000 --- a/asm/non_matchings/menus/func_800B15AC.s +++ /dev/null @@ -1,473 +0,0 @@ -.section .late_rodata -glabel D_800F2D90 -.double 4.2 - -glabel D_800F2D98 -.double 4.2 - -glabel D_800F2DA0 -.double 4.2 - -glabel D_800F2DA8 -.double 4.2 - -glabel D_800F2DB0 -.double 4.2 - -.section .text -glabel func_800B15AC -/* 0B21AC 800B15AC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0B21B0 800B15B0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B21B4 800B15B4 AFA50034 */ sw $a1, 0x34($sp) -/* 0B21B8 800B15B8 948F000C */ lhu $t7, 0xc($a0) -/* 0B21BC 800B15BC 948E0006 */ lhu $t6, 6($a0) -/* 0B21C0 800B15C0 3C19800E */ lui $t9, %hi(gEnableDebugMode) # $t9, 0x800e -/* 0B21C4 800B15C4 9739C520 */ lhu $t9, %lo(gEnableDebugMode)($t9) -/* 0B21C8 800B15C8 01CF1825 */ or $v1, $t6, $t7 -/* 0B21CC 800B15CC 3078FFFF */ andi $t8, $v1, 0xffff -/* 0B21D0 800B15D0 17200007 */ bnez $t9, .L800B15F0 -/* 0B21D4 800B15D4 03001825 */ move $v1, $t8 -/* 0B21D8 800B15D8 330A1000 */ andi $t2, $t8, 0x1000 -/* 0B21DC 800B15DC 11400004 */ beqz $t2, .L800B15F0 -/* 0B21E0 800B15E0 00000000 */ nop -/* 0B21E4 800B15E4 37038000 */ ori $v1, $t8, 0x8000 -/* 0B21E8 800B15E8 306BFFFF */ andi $t3, $v1, 0xffff -/* 0B21EC 800B15EC 01601825 */ move $v1, $t3 -.L800B15F0: -/* 0B21F0 800B15F0 0C02D148 */ jal func_800B4520 -/* 0B21F4 800B15F4 A7A3002E */ sh $v1, 0x2e($sp) -/* 0B21F8 800B15F8 1440018D */ bnez $v0, .L800B1C30 -/* 0B21FC 800B15FC 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B2200 800B1600 3C028019 */ lui $v0, %hi(D_8018EDEC) # $v0, 0x8019 -/* 0B2204 800B1604 8042EDEC */ lb $v0, %lo(D_8018EDEC)($v0) -/* 0B2208 800B1608 2405000B */ li $a1, 11 -/* 0B220C 800B160C 2401000C */ li $at, 12 -/* 0B2210 800B1610 10450008 */ beq $v0, $a1, .L800B1634 -/* 0B2214 800B1614 306C0200 */ andi $t4, $v1, 0x200 -/* 0B2218 800B1618 104100F0 */ beq $v0, $at, .L800B19DC -/* 0B221C 800B161C 240400E9 */ li $a0, 233 -/* 0B2220 800B1620 2401000D */ li $at, 13 -/* 0B2224 800B1624 1041017F */ beq $v0, $at, .L800B1C24 -/* 0B2228 800B1628 306FD000 */ andi $t7, $v1, 0xd000 -/* 0B222C 800B162C 10000181 */ b .L800B1C34 -/* 0B2230 800B1630 8FBF0014 */ lw $ra, 0x14($sp) -.L800B1634: -/* 0B2234 800B1634 1180000C */ beqz $t4, .L800B1668 -/* 0B2238 800B1638 00603825 */ move $a3, $v1 -/* 0B223C 800B163C 3C028019 */ lui $v0, %hi(gTimeTrialDataCourseIndex) # $v0, 0x8019 -/* 0B2240 800B1640 2442EDF7 */ addiu $v0, %lo(gTimeTrialDataCourseIndex) # addiu $v0, $v0, -0x1209 -/* 0B2244 800B1644 80450000 */ lb $a1, ($v0) -/* 0B2248 800B1648 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B224C 800B164C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2250 800B1650 18A00005 */ blez $a1, .L800B1668 -/* 0B2254 800B1654 24ADFFFF */ addiu $t5, $a1, -1 -/* 0B2258 800B1658 A04D0000 */ sb $t5, ($v0) -/* 0B225C 800B165C 0C032384 */ jal play_sound2 -/* 0B2260 800B1660 AFA30018 */ sw $v1, 0x18($sp) -/* 0B2264 800B1664 8FA70018 */ lw $a3, 0x18($sp) -.L800B1668: -/* 0B2268 800B1668 3C028019 */ lui $v0, %hi(gTimeTrialDataCourseIndex) # $v0, 0x8019 -/* 0B226C 800B166C 30EE0100 */ andi $t6, $a3, 0x100 -/* 0B2270 800B1670 11C0000B */ beqz $t6, .L800B16A0 -/* 0B2274 800B1674 2442EDF7 */ addiu $v0, %lo(gTimeTrialDataCourseIndex) # addiu $v0, $v0, -0x1209 -/* 0B2278 800B1678 80450000 */ lb $a1, ($v0) -/* 0B227C 800B167C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2280 800B1680 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2284 800B1684 28A1000F */ slti $at, $a1, 0xf -/* 0B2288 800B1688 10200005 */ beqz $at, .L800B16A0 -/* 0B228C 800B168C 24AF0001 */ addiu $t7, $a1, 1 -/* 0B2290 800B1690 A04F0000 */ sb $t7, ($v0) -/* 0B2294 800B1694 0C032384 */ jal play_sound2 -/* 0B2298 800B1698 AFA70018 */ sw $a3, 0x18($sp) -/* 0B229C 800B169C 8FA70018 */ lw $a3, 0x18($sp) -.L800B16A0: -/* 0B22A0 800B16A0 240400E8 */ li $a0, 232 -/* 0B22A4 800B16A4 0C02ABBD */ jal find_8018D9E0_entry_dupe -/* 0B22A8 800B16A8 AFA70018 */ sw $a3, 0x18($sp) -/* 0B22AC 800B16AC 3C058019 */ lui $a1, %hi(gTimeTrialDataCourseIndex) # $a1, 0x8019 -/* 0B22B0 800B16B0 80A5EDF7 */ lb $a1, %lo(gTimeTrialDataCourseIndex)($a1) -/* 0B22B4 800B16B4 3C038019 */ lui $v1, %hi(gCourseRecordsMenuSelection) # $v1, 0x8019 -/* 0B22B8 800B16B8 2463EDF8 */ addiu $v1, %lo(gCourseRecordsMenuSelection) # addiu $v1, $v1, -0x1208 -/* 0B22BC 800B16BC 806E0000 */ lb $t6, ($v1) -/* 0B22C0 800B16C0 3C0D8019 */ lui $t5, %hi(D_8018EB90) # $t5, 0x8019 -/* 0B22C4 800B16C4 25ADEB90 */ addiu $t5, %lo(D_8018EB90) # addiu $t5, $t5, -0x1470 -/* 0B22C8 800B16C8 8FA70018 */ lw $a3, 0x18($sp) -/* 0B22CC 800B16CC 00403025 */ move $a2, $v0 -/* 0B22D0 800B16D0 04A10003 */ bgez $a1, .L800B16E0 -/* 0B22D4 800B16D4 0005C083 */ sra $t8, $a1, 2 -/* 0B22D8 800B16D8 24A10003 */ addiu $at, $a1, 3 -/* 0B22DC 800B16DC 0001C083 */ sra $t8, $at, 2 -.L800B16E0: -/* 0B22E0 800B16E0 0018C880 */ sll $t9, $t8, 2 -/* 0B22E4 800B16E4 0338C823 */ subu $t9, $t9, $t8 -/* 0B22E8 800B16E8 0019C940 */ sll $t9, $t9, 5 -/* 0B22EC 800B16EC 04A10004 */ bgez $a1, .L800B1700 -/* 0B22F0 800B16F0 30AA0003 */ andi $t2, $a1, 3 -/* 0B22F4 800B16F4 11400002 */ beqz $t2, .L800B1700 -/* 0B22F8 800B16F8 00000000 */ nop -/* 0B22FC 800B16FC 254AFFFC */ addiu $t2, $t2, -4 -.L800B1700: -/* 0B2300 800B1700 000A5880 */ sll $t3, $t2, 2 -/* 0B2304 800B1704 016A5823 */ subu $t3, $t3, $t2 -/* 0B2308 800B1708 000B58C0 */ sll $t3, $t3, 3 -/* 0B230C 800B170C 032B6021 */ addu $t4, $t9, $t3 -/* 0B2310 800B1710 24010002 */ li $at, 2 -/* 0B2314 800B1714 15C1000F */ bne $t6, $at, .L800B1754 -/* 0B2318 800B1718 018D4021 */ addu $t0, $t4, $t5 -/* 0B231C 800B171C 00A02025 */ move $a0, $a1 -/* 0B2320 800B1720 AFA60028 */ sw $a2, 0x28($sp) -/* 0B2324 800B1724 AFA70018 */ sw $a3, 0x18($sp) -/* 0B2328 800B1728 0C02D8E7 */ jal func_800B639C -/* 0B232C 800B172C AFA80024 */ sw $t0, 0x24($sp) -/* 0B2330 800B1730 3C038019 */ lui $v1, %hi(gCourseRecordsMenuSelection) # $v1, 0x8019 -/* 0B2334 800B1734 2463EDF8 */ addiu $v1, %lo(gCourseRecordsMenuSelection) # addiu $v1, $v1, -0x1208 -/* 0B2338 800B1738 8FA60028 */ lw $a2, 0x28($sp) -/* 0B233C 800B173C 8FA70018 */ lw $a3, 0x18($sp) -/* 0B2340 800B1740 04410004 */ bgez $v0, .L800B1754 -/* 0B2344 800B1744 8FA80024 */ lw $t0, 0x24($sp) -/* 0B2348 800B1748 806F0000 */ lb $t7, ($v1) -/* 0B234C 800B174C 25F8FFFF */ addiu $t8, $t7, -1 -/* 0B2350 800B1750 A0780000 */ sb $t8, ($v1) -.L800B1754: -/* 0B2354 800B1754 80620000 */ lb $v0, ($v1) -/* 0B2358 800B1758 24090001 */ li $t1, 1 -/* 0B235C 800B175C 30EB0800 */ andi $t3, $a3, 0x800 -/* 0B2360 800B1760 15220006 */ bne $t1, $v0, .L800B177C -/* 0B2364 800B1764 00000000 */ nop -/* 0B2368 800B1768 910A0012 */ lbu $t2, 0x12($t0) -/* 0B236C 800B176C 2459FFFF */ addiu $t9, $v0, -1 -/* 0B2370 800B1770 15400002 */ bnez $t2, .L800B177C -/* 0B2374 800B1774 00000000 */ nop -/* 0B2378 800B1778 A0790000 */ sb $t9, ($v1) -.L800B177C: -/* 0B237C 800B177C 51600029 */ beql $t3, $zero, .L800B1824 -/* 0B2380 800B1780 30F80400 */ andi $t8, $a3, 0x400 -/* 0B2384 800B1784 80620000 */ lb $v0, ($v1) -/* 0B2388 800B1788 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B238C 800B178C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2390 800B1790 18400023 */ blez $v0, .L800B1820 -/* 0B2394 800B1794 244CFFFF */ addiu $t4, $v0, -1 -/* 0B2398 800B1798 A06C0000 */ sb $t4, ($v1) -/* 0B239C 800B179C 80620000 */ lb $v0, ($v1) -/* 0B23A0 800B17A0 55220007 */ bnel $t1, $v0, .L800B17C0 -/* 0B23A4 800B17A4 AFA60028 */ sw $a2, 0x28($sp) -/* 0B23A8 800B17A8 910D0012 */ lbu $t5, 0x12($t0) -/* 0B23AC 800B17AC 244EFFFF */ addiu $t6, $v0, -1 -/* 0B23B0 800B17B0 55A00003 */ bnel $t5, $zero, .L800B17C0 -/* 0B23B4 800B17B4 AFA60028 */ sw $a2, 0x28($sp) -/* 0B23B8 800B17B8 A06E0000 */ sb $t6, ($v1) -/* 0B23BC 800B17BC AFA60028 */ sw $a2, 0x28($sp) -.L800B17C0: -/* 0B23C0 800B17C0 AFA70018 */ sw $a3, 0x18($sp) -/* 0B23C4 800B17C4 0C032384 */ jal play_sound2 -/* 0B23C8 800B17C8 AFA80024 */ sw $t0, 0x24($sp) -/* 0B23CC 800B17CC 8FA60028 */ lw $a2, 0x28($sp) -/* 0B23D0 800B17D0 3C01800F */ lui $at, %hi(D_800F2D90) -/* 0B23D4 800B17D4 D4262D90 */ ldc1 $f6, %lo(D_800F2D90)($at) -/* 0B23D8 800B17D8 C4C40024 */ lwc1 $f4, 0x24($a2) -/* 0B23DC 800B17DC 3C038019 */ lui $v1, %hi(gCourseRecordsMenuSelection) # $v1, 0x8019 -/* 0B23E0 800B17E0 2463EDF8 */ addiu $v1, %lo(gCourseRecordsMenuSelection) # addiu $v1, $v1, -0x1208 -/* 0B23E4 800B17E4 46002021 */ cvt.d.s $f0, $f4 -/* 0B23E8 800B17E8 8FA70018 */ lw $a3, 0x18($sp) -/* 0B23EC 800B17EC 4626003C */ c.lt.d $f0, $f6 -/* 0B23F0 800B17F0 8FA80024 */ lw $t0, 0x24($sp) -/* 0B23F4 800B17F4 24090001 */ li $t1, 1 -/* 0B23F8 800B17F8 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 0B23FC 800B17FC 45000007 */ bc1f .L800B181C -/* 0B2400 800B1800 240FFFFF */ li $t7, -1 -/* 0B2404 800B1804 44814800 */ mtc1 $at, $f9 -/* 0B2408 800B1808 44804000 */ mtc1 $zero, $f8 -/* 0B240C 800B180C 00000000 */ nop -/* 0B2410 800B1810 46280280 */ add.d $f10, $f0, $f8 -/* 0B2414 800B1814 46205420 */ cvt.s.d $f16, $f10 -/* 0B2418 800B1818 E4D00024 */ swc1 $f16, 0x24($a2) -.L800B181C: -/* 0B241C 800B181C ACCF0008 */ sw $t7, 8($a2) -.L800B1820: -/* 0B2420 800B1820 30F80400 */ andi $t8, $a3, 0x400 -.L800B1824: -/* 0B2424 800B1824 53000040 */ beql $t8, $zero, .L800B1928 -/* 0B2428 800B1828 30ED4000 */ andi $t5, $a3, 0x4000 -/* 0B242C 800B182C 80620000 */ lb $v0, ($v1) -/* 0B2430 800B1830 28410002 */ slti $at, $v0, 2 -/* 0B2434 800B1834 1020003B */ beqz $at, .L800B1924 -/* 0B2438 800B1838 244A0001 */ addiu $t2, $v0, 1 -/* 0B243C 800B183C A06A0000 */ sb $t2, ($v1) -/* 0B2440 800B1840 80620000 */ lb $v0, ($v1) -/* 0B2444 800B1844 24010002 */ li $at, 2 -/* 0B2448 800B1848 3C048019 */ lui $a0, %hi(gTimeTrialDataCourseIndex) -/* 0B244C 800B184C 15220007 */ bne $t1, $v0, .L800B186C -/* 0B2450 800B1850 00000000 */ nop -/* 0B2454 800B1854 91190012 */ lbu $t9, 0x12($t0) -/* 0B2458 800B1858 244B0001 */ addiu $t3, $v0, 1 -/* 0B245C 800B185C 17200003 */ bnez $t9, .L800B186C -/* 0B2460 800B1860 00000000 */ nop -/* 0B2464 800B1864 A06B0000 */ sb $t3, ($v1) -/* 0B2468 800B1868 80620000 */ lb $v0, ($v1) -.L800B186C: -/* 0B246C 800B186C 54410015 */ bnel $v0, $at, .L800B18C4 -/* 0B2470 800B1870 3C044900 */ lui $a0, (0x49008000 >> 16) # $a0, 0x4900 -/* 0B2474 800B1874 8084EDF7 */ lb $a0, %lo(gTimeTrialDataCourseIndex)($a0) -/* 0B2478 800B1878 AFA60028 */ sw $a2, 0x28($sp) -/* 0B247C 800B187C AFA70018 */ sw $a3, 0x18($sp) -/* 0B2480 800B1880 0C02D8E7 */ jal func_800B639C -/* 0B2484 800B1884 AFA80024 */ sw $t0, 0x24($sp) -/* 0B2488 800B1888 3C038019 */ lui $v1, %hi(gCourseRecordsMenuSelection) # $v1, 0x8019 -/* 0B248C 800B188C 2463EDF8 */ addiu $v1, %lo(gCourseRecordsMenuSelection) # addiu $v1, $v1, -0x1208 -/* 0B2490 800B1890 8FA60028 */ lw $a2, 0x28($sp) -/* 0B2494 800B1894 8FA70018 */ lw $a3, 0x18($sp) -/* 0B2498 800B1898 8FA80024 */ lw $t0, 0x24($sp) -/* 0B249C 800B189C 04410008 */ bgez $v0, .L800B18C0 -/* 0B24A0 800B18A0 24090001 */ li $t1, 1 -/* 0B24A4 800B18A4 910C0012 */ lbu $t4, 0x12($t0) -/* 0B24A8 800B18A8 15800003 */ bnez $t4, .L800B18B8 -/* 0B24AC 800B18AC 00000000 */ nop -/* 0B24B0 800B18B0 1000001C */ b .L800B1924 -/* 0B24B4 800B18B4 A0600000 */ sb $zero, ($v1) -.L800B18B8: -/* 0B24B8 800B18B8 1000001A */ b .L800B1924 -/* 0B24BC 800B18BC A0690000 */ sb $t1, ($v1) -.L800B18C0: -/* 0B24C0 800B18C0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -.L800B18C4: -/* 0B24C4 800B18C4 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B24C8 800B18C8 AFA60028 */ sw $a2, 0x28($sp) -/* 0B24CC 800B18CC 0C032384 */ jal play_sound2 -/* 0B24D0 800B18D0 AFA70018 */ sw $a3, 0x18($sp) -/* 0B24D4 800B18D4 8FA60028 */ lw $a2, 0x28($sp) -/* 0B24D8 800B18D8 3C01800F */ lui $at, %hi(D_800F2D98) -/* 0B24DC 800B18DC D4242D98 */ ldc1 $f4, %lo(D_800F2D98)($at) -/* 0B24E0 800B18E0 C4D20024 */ lwc1 $f18, 0x24($a2) -/* 0B24E4 800B18E4 3C038019 */ lui $v1, %hi(gCourseRecordsMenuSelection) # $v1, 0x8019 -/* 0B24E8 800B18E8 2463EDF8 */ addiu $v1, %lo(gCourseRecordsMenuSelection) # addiu $v1, $v1, -0x1208 -/* 0B24EC 800B18EC 46009021 */ cvt.d.s $f0, $f18 -/* 0B24F0 800B18F0 8FA70018 */ lw $a3, 0x18($sp) -/* 0B24F4 800B18F4 4624003C */ c.lt.d $f0, $f4 -/* 0B24F8 800B18F8 24090001 */ li $t1, 1 -/* 0B24FC 800B18FC 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 0B2500 800B1900 45020008 */ bc1fl .L800B1924 -/* 0B2504 800B1904 ACC90008 */ sw $t1, 8($a2) -/* 0B2508 800B1908 44813800 */ mtc1 $at, $f7 -/* 0B250C 800B190C 44803000 */ mtc1 $zero, $f6 -/* 0B2510 800B1910 00000000 */ nop -/* 0B2514 800B1914 46260200 */ add.d $f8, $f0, $f6 -/* 0B2518 800B1918 462042A0 */ cvt.s.d $f10, $f8 -/* 0B251C 800B191C E4CA0024 */ swc1 $f10, 0x24($a2) -/* 0B2520 800B1920 ACC90008 */ sw $t1, 8($a2) -.L800B1924: -/* 0B2524 800B1924 30ED4000 */ andi $t5, $a3, 0x4000 -.L800B1928: -/* 0B2528 800B1928 11A00008 */ beqz $t5, .L800B194C -/* 0B252C 800B192C 30EE8000 */ andi $t6, $a3, 0x8000 -/* 0B2530 800B1930 0C027882 */ jal func_8009E208 -/* 0B2534 800B1934 00000000 */ nop -/* 0B2538 800B1938 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B253C 800B193C 0C032384 */ jal play_sound2 -/* 0B2540 800B1940 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B2544 800B1944 100000BB */ b .L800B1C34 -/* 0B2548 800B1948 8FBF0014 */ lw $ra, 0x14($sp) -.L800B194C: -/* 0B254C 800B194C 51C000B9 */ beql $t6, $zero, .L800B1C34 -/* 0B2550 800B1950 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B2554 800B1954 C4D00024 */ lwc1 $f16, 0x24($a2) -/* 0B2558 800B1958 3C01800F */ lui $at, %hi(D_800F2DA0) -/* 0B255C 800B195C D4322DA0 */ ldc1 $f18, %lo(D_800F2DA0)($at) -/* 0B2560 800B1960 46008021 */ cvt.d.s $f0, $f16 -/* 0B2564 800B1964 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B2568 800B1968 4632003C */ c.lt.d $f0, $f18 -/* 0B256C 800B196C 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 0B2570 800B1970 2418000C */ li $t8, 12 -/* 0B2574 800B1974 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B2578 800B1978 45020008 */ bc1fl .L800B199C -/* 0B257C 800B197C 806F0000 */ lb $t7, ($v1) -/* 0B2580 800B1980 44812800 */ mtc1 $at, $f5 -/* 0B2584 800B1984 44802000 */ mtc1 $zero, $f4 -/* 0B2588 800B1988 00000000 */ nop -/* 0B258C 800B198C 46240180 */ add.d $f6, $f0, $f4 -/* 0B2590 800B1990 46203220 */ cvt.s.d $f8, $f6 -/* 0B2594 800B1994 E4C80024 */ swc1 $f8, 0x24($a2) -/* 0B2598 800B1998 806F0000 */ lb $t7, ($v1) -.L800B199C: -/* 0B259C 800B199C 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B25A0 800B19A0 15E00008 */ bnez $t7, .L800B19C4 -/* 0B25A4 800B19A4 00000000 */ nop -/* 0B25A8 800B19A8 0C027882 */ jal func_8009E208 -/* 0B25AC 800B19AC 00000000 */ nop -/* 0B25B0 800B19B0 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B25B4 800B19B4 0C032384 */ jal play_sound2 -/* 0B25B8 800B19B8 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B25BC 800B19BC 1000009D */ b .L800B1C34 -/* 0B25C0 800B19C0 8FBF0014 */ lw $ra, 0x14($sp) -.L800B19C4: -/* 0B25C4 800B19C4 A038EDEC */ sb $t8, %lo(D_8018EDEC)($at) -/* 0B25C8 800B19C8 3C018019 */ lui $at, %hi(D_8018EDF9) # $at, 0x8019 -/* 0B25CC 800B19CC 0C032384 */ jal play_sound2 -/* 0B25D0 800B19D0 A020EDF9 */ sb $zero, %lo(D_8018EDF9)($at) -/* 0B25D4 800B19D4 10000097 */ b .L800B1C34 -/* 0B25D8 800B19D8 8FBF0014 */ lw $ra, 0x14($sp) -.L800B19DC: -/* 0B25DC 800B19DC 00603825 */ move $a3, $v1 -/* 0B25E0 800B19E0 0C02ABBD */ jal find_8018D9E0_entry_dupe -/* 0B25E4 800B19E4 AFA30018 */ sw $v1, 0x18($sp) -/* 0B25E8 800B19E8 8FA70018 */ lw $a3, 0x18($sp) -/* 0B25EC 800B19EC 3C038019 */ lui $v1, %hi(D_8018EDF9) # $v1, 0x8019 -/* 0B25F0 800B19F0 00403025 */ move $a2, $v0 -/* 0B25F4 800B19F4 30EA0800 */ andi $t2, $a3, 0x800 -/* 0B25F8 800B19F8 1140001D */ beqz $t2, .L800B1A70 -/* 0B25FC 800B19FC 2463EDF9 */ addiu $v1, %lo(D_8018EDF9) # addiu $v1, $v1, -0x1207 -/* 0B2600 800B1A00 80620000 */ lb $v0, ($v1) -/* 0B2604 800B1A04 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2608 800B1A08 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B260C 800B1A0C 18400018 */ blez $v0, .L800B1A70 -/* 0B2610 800B1A10 2459FFFF */ addiu $t9, $v0, -1 -/* 0B2614 800B1A14 A0790000 */ sb $t9, ($v1) -/* 0B2618 800B1A18 AFA60028 */ sw $a2, 0x28($sp) -/* 0B261C 800B1A1C 0C032384 */ jal play_sound2 -/* 0B2620 800B1A20 AFA70018 */ sw $a3, 0x18($sp) -/* 0B2624 800B1A24 8FA60028 */ lw $a2, 0x28($sp) -/* 0B2628 800B1A28 3C01800F */ lui $at, %hi(D_800F2DA8) -/* 0B262C 800B1A2C D4302DA8 */ ldc1 $f16, %lo(D_800F2DA8)($at) -/* 0B2630 800B1A30 C4CA0024 */ lwc1 $f10, 0x24($a2) -/* 0B2634 800B1A34 8FA70018 */ lw $a3, 0x18($sp) -/* 0B2638 800B1A38 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 0B263C 800B1A3C 46005021 */ cvt.d.s $f0, $f10 -/* 0B2640 800B1A40 240BFFFF */ li $t3, -1 -/* 0B2644 800B1A44 4630003C */ c.lt.d $f0, $f16 -/* 0B2648 800B1A48 00000000 */ nop -/* 0B264C 800B1A4C 45020008 */ bc1fl .L800B1A70 -/* 0B2650 800B1A50 ACCB0008 */ sw $t3, 8($a2) -/* 0B2654 800B1A54 44819800 */ mtc1 $at, $f19 -/* 0B2658 800B1A58 44809000 */ mtc1 $zero, $f18 -/* 0B265C 800B1A5C 00000000 */ nop -/* 0B2660 800B1A60 46320100 */ add.d $f4, $f0, $f18 -/* 0B2664 800B1A64 462021A0 */ cvt.s.d $f6, $f4 -/* 0B2668 800B1A68 E4C60024 */ swc1 $f6, 0x24($a2) -/* 0B266C 800B1A6C ACCB0008 */ sw $t3, 8($a2) -.L800B1A70: -/* 0B2670 800B1A70 3C038019 */ lui $v1, %hi(D_8018EDF9) # $v1, 0x8019 -/* 0B2674 800B1A74 30EC0400 */ andi $t4, $a3, 0x400 -/* 0B2678 800B1A78 1180001E */ beqz $t4, .L800B1AF4 -/* 0B267C 800B1A7C 2463EDF9 */ addiu $v1, %lo(D_8018EDF9) # addiu $v1, $v1, -0x1207 -/* 0B2680 800B1A80 80620000 */ lb $v0, ($v1) -/* 0B2684 800B1A84 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2688 800B1A88 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B268C 800B1A8C 1C400019 */ bgtz $v0, .L800B1AF4 -/* 0B2690 800B1A90 244D0001 */ addiu $t5, $v0, 1 -/* 0B2694 800B1A94 A06D0000 */ sb $t5, ($v1) -/* 0B2698 800B1A98 AFA60028 */ sw $a2, 0x28($sp) -/* 0B269C 800B1A9C 0C032384 */ jal play_sound2 -/* 0B26A0 800B1AA0 AFA70018 */ sw $a3, 0x18($sp) -/* 0B26A4 800B1AA4 8FA60028 */ lw $a2, 0x28($sp) -/* 0B26A8 800B1AA8 3C01800F */ lui $at, %hi(D_800F2DB0) -/* 0B26AC 800B1AAC D42A2DB0 */ ldc1 $f10, %lo(D_800F2DB0)($at) -/* 0B26B0 800B1AB0 C4C80024 */ lwc1 $f8, 0x24($a2) -/* 0B26B4 800B1AB4 3C038019 */ lui $v1, %hi(D_8018EDF9) # $v1, 0x8019 -/* 0B26B8 800B1AB8 8FA70018 */ lw $a3, 0x18($sp) -/* 0B26BC 800B1ABC 46004021 */ cvt.d.s $f0, $f8 -/* 0B26C0 800B1AC0 3C014010 */ li $at, 0x40100000 # 2.250000 -/* 0B26C4 800B1AC4 462A003C */ c.lt.d $f0, $f10 -/* 0B26C8 800B1AC8 24090001 */ li $t1, 1 -/* 0B26CC 800B1ACC 2463EDF9 */ addiu $v1, %lo(D_8018EDF9) # addiu $v1, $v1, -0x1207 -/* 0B26D0 800B1AD0 45020008 */ bc1fl .L800B1AF4 -/* 0B26D4 800B1AD4 ACC90008 */ sw $t1, 8($a2) -/* 0B26D8 800B1AD8 44818800 */ mtc1 $at, $f17 -/* 0B26DC 800B1ADC 44808000 */ mtc1 $zero, $f16 -/* 0B26E0 800B1AE0 00000000 */ nop -/* 0B26E4 800B1AE4 46300480 */ add.d $f18, $f0, $f16 -/* 0B26E8 800B1AE8 46209120 */ cvt.s.d $f4, $f18 -/* 0B26EC 800B1AEC E4C40024 */ swc1 $f4, 0x24($a2) -/* 0B26F0 800B1AF0 ACC90008 */ sw $t1, 8($a2) -.L800B1AF4: -/* 0B26F4 800B1AF4 30EE4000 */ andi $t6, $a3, 0x4000 -/* 0B26F8 800B1AF8 11C00009 */ beqz $t6, .L800B1B20 -/* 0B26FC 800B1AFC 24090001 */ li $t1, 1 -/* 0B2700 800B1B00 240F000B */ li $t7, 11 -/* 0B2704 800B1B04 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B2708 800B1B08 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B270C 800B1B0C A02FEDEC */ sb $t7, %lo(D_8018EDEC)($at) -/* 0B2710 800B1B10 0C032384 */ jal play_sound2 -/* 0B2714 800B1B14 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B2718 800B1B18 10000046 */ b .L800B1C34 -/* 0B271C 800B1B1C 8FBF0014 */ lw $ra, 0x14($sp) -.L800B1B20: -/* 0B2720 800B1B20 30F88000 */ andi $t8, $a3, 0x8000 -/* 0B2724 800B1B24 53000043 */ beql $t8, $zero, .L800B1C34 -/* 0B2728 800B1B28 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B272C 800B1B2C 806A0000 */ lb $t2, ($v1) -/* 0B2730 800B1B30 3C038019 */ lui $v1, %hi(gCourseRecordsMenuSelection) # $v1, 0x8019 -/* 0B2734 800B1B34 2463EDF8 */ addiu $v1, %lo(gCourseRecordsMenuSelection) # addiu $v1, $v1, -0x1208 -/* 0B2738 800B1B38 11400034 */ beqz $t2, .L800B1C0C -/* 0B273C 800B1B3C 3C044900 */ lui $a0, (0x49008002 >> 16) -/* 0B2740 800B1B40 80620000 */ lb $v0, ($v1) -/* 0B2744 800B1B44 00002825 */ move $a1, $zero -/* 0B2748 800B1B48 24010002 */ li $at, 2 -/* 0B274C 800B1B4C 10490005 */ beq $v0, $t1, .L800B1B64 -/* 0B2750 800B1B50 3C048019 */ lui $a0, %hi(gTimeTrialDataCourseIndex) -/* 0B2754 800B1B54 1041000D */ beq $v0, $at, .L800B1B8C -/* 0B2758 800B1B58 3C048019 */ lui $a0, %hi(gTimeTrialDataCourseIndex) # $a0, 0x8019 -/* 0B275C 800B1B5C 10000026 */ b .L800B1BF8 -/* 0B2760 800B1B60 24AC0001 */ addiu $t4, $a1, 1 -.L800B1B64: -/* 0B2764 800B1B64 0C02D1CA */ jal func_800B4728 -/* 0B2768 800B1B68 8084EDF7 */ lb $a0, %lo(gTimeTrialDataCourseIndex)($a0) -/* 0B276C 800B1B6C 3C048019 */ lui $a0, %hi(gTimeTrialDataCourseIndex) # $a0, 0x8019 -/* 0B2770 800B1B70 0C02D567 */ jal func_800B559C -/* 0B2774 800B1B74 8084EDF7 */ lb $a0, %lo(gTimeTrialDataCourseIndex)($a0) -/* 0B2778 800B1B78 3C044900 */ lui $a0, (0x4900801D >> 16) # $a0, 0x4900 -/* 0B277C 800B1B7C 0C032384 */ jal play_sound2 -/* 0B2780 800B1B80 3484801D */ ori $a0, (0x4900801D & 0xFFFF) # ori $a0, $a0, 0x801d -/* 0B2784 800B1B84 1000001B */ b .L800B1BF4 -/* 0B2788 800B1B88 2405FFFF */ li $a1, -1 -.L800B1B8C: -/* 0B278C 800B1B8C 0C02D8E7 */ jal func_800B639C -/* 0B2790 800B1B90 8084EDF7 */ lb $a0, %lo(gTimeTrialDataCourseIndex)($a0) -/* 0B2794 800B1B94 04400017 */ bltz $v0, .L800B1BF4 -/* 0B2798 800B1B98 00402825 */ move $a1, $v0 -/* 0B279C 800B1B9C 00402025 */ move $a0, $v0 -/* 0B27A0 800B1BA0 0C02DA6F */ jal func_800B69BC -/* 0B27A4 800B1BA4 AFA20020 */ sw $v0, 0x20($sp) -/* 0B27A8 800B1BA8 1040000A */ beqz $v0, .L800B1BD4 -/* 0B27AC 800B1BAC 8FA50020 */ lw $a1, 0x20($sp) -/* 0B27B0 800B1BB0 2419000D */ li $t9, 13 -/* 0B27B4 800B1BB4 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B27B8 800B1BB8 3C044900 */ lui $a0, (0x4900FF07 >> 16) # lui $a0, 0x4900 -/* 0B27BC 800B1BBC A039EDEC */ sb $t9, %lo(D_8018EDEC)($at) -/* 0B27C0 800B1BC0 3484FF07 */ ori $a0, (0x4900FF07 & 0xFFFF) # ori $a0, $a0, 0xff07 -/* 0B27C4 800B1BC4 0C032384 */ jal play_sound2 -/* 0B27C8 800B1BC8 AFA50020 */ sw $a1, 0x20($sp) -/* 0B27CC 800B1BCC 10000009 */ b .L800B1BF4 -/* 0B27D0 800B1BD0 8FA50020 */ lw $a1, 0x20($sp) -.L800B1BD4: -/* 0B27D4 800B1BD4 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B27D8 800B1BD8 3484801D */ ori $a0, (0x4900801D & 0xFFFF) # ori $a0, $a0, 0x801d -/* 0B27DC 800B1BDC 0C032384 */ jal play_sound2 -/* 0B27E0 800B1BE0 AFA50020 */ sw $a1, 0x20($sp) -/* 0B27E4 800B1BE4 240B000B */ li $t3, 11 -/* 0B27E8 800B1BE8 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B27EC 800B1BEC 8FA50020 */ lw $a1, 0x20($sp) -/* 0B27F0 800B1BF0 A02BEDEC */ sb $t3, %lo(D_8018EDEC)($at) -.L800B1BF4: -/* 0B27F4 800B1BF4 24AC0001 */ addiu $t4, $a1, 1 -.L800B1BF8: -/* 0B27F8 800B1BF8 1580000D */ bnez $t4, .L800B1C30 -/* 0B27FC 800B1BFC 240D000B */ li $t5, 11 -/* 0B2800 800B1C00 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B2804 800B1C04 1000000A */ b .L800B1C30 -/* 0B2808 800B1C08 A02DEDEC */ sb $t5, %lo(D_8018EDEC)($at) -.L800B1C0C: -/* 0B280C 800B1C0C 0C032384 */ jal play_sound2 -/* 0B2810 800B1C10 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B2814 800B1C14 240E000B */ li $t6, 11 -/* 0B2818 800B1C18 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B281C 800B1C1C 10000004 */ b .L800B1C30 -/* 0B2820 800B1C20 A02EEDEC */ sb $t6, %lo(D_8018EDEC)($at) -.L800B1C24: -/* 0B2824 800B1C24 11E00002 */ beqz $t7, .L800B1C30 -/* 0B2828 800B1C28 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B282C 800B1C2C A025EDEC */ sb $a1, %lo(D_8018EDEC)($at) -.L800B1C30: -/* 0B2830 800B1C30 8FBF0014 */ lw $ra, 0x14($sp) -.L800B1C34: -/* 0B2834 800B1C34 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0B2838 800B1C38 03E00008 */ jr $ra -/* 0B283C 800B1C3C 00000000 */ nop diff --git a/asm/non_matchings/menus/func_800B1C90.s b/asm/non_matchings/menus/func_800B1C90.s deleted file mode 100644 index 6fc018b28..000000000 --- a/asm/non_matchings/menus/func_800B1C90.s +++ /dev/null @@ -1,312 +0,0 @@ -.section .late_rodata -glabel jpt_800F2DB8 -.word L800B1CE8, L800B1D34, L800B1F78, L800B1F2C -.word L800B1D84, L800B1FE8, L800B1FF4, L800B20D4 -.word L800B20D4, L800B20D4 - -.section .text -glabel func_800B1C90 -/* 0B2890 800B1C90 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0B2894 800B1C94 AFBF001C */ sw $ra, 0x1c($sp) -/* 0B2898 800B1C98 AFA5003C */ sw $a1, 0x3c($sp) -/* 0B289C 800B1C9C 948F000C */ lhu $t7, 0xc($a0) -/* 0B28A0 800B1CA0 948E0006 */ lhu $t6, 6($a0) -/* 0B28A4 800B1CA4 01CFC025 */ or $t8, $t6, $t7 -/* 0B28A8 800B1CA8 0C02D148 */ jal func_800B4520 -/* 0B28AC 800B1CAC A7B80036 */ sh $t8, 0x36($sp) -/* 0B28B0 800B1CB0 1440010C */ bnez $v0, .L800B20E4 -/* 0B28B4 800B1CB4 97A30036 */ lhu $v1, 0x36($sp) -/* 0B28B8 800B1CB8 3C098019 */ lui $t1, %hi(gControllerPakMenuSelection) # $t1, 0x8019 -/* 0B28BC 800B1CBC 2529EDF0 */ addiu $t1, %lo(gControllerPakMenuSelection) # addiu $t1, $t1, -0x1210 -/* 0B28C0 800B1CC0 81390000 */ lb $t9, ($t1) -/* 0B28C4 800B1CC4 272AFFFF */ addiu $t2, $t9, -1 -/* 0B28C8 800B1CC8 2D41000A */ sltiu $at, $t2, 0xa -/* 0B28CC 800B1CCC 10200105 */ beqz $at, .L800B20E4 -/* 0B28D0 800B1CD0 000A5080 */ sll $t2, $t2, 2 -/* 0B28D4 800B1CD4 3C01800F */ lui $at, %hi(jpt_800F2DB8) -/* 0B28D8 800B1CD8 002A0821 */ addu $at, $at, $t2 -/* 0B28DC 800B1CDC 8C2A2DB8 */ lw $t2, %lo(jpt_800F2DB8)($at) -/* 0B28E0 800B1CE0 01400008 */ jr $t2 -/* 0B28E4 800B1CE4 00000000 */ nop -glabel L800B1CE8 -/* 0B28E8 800B1CE8 306B9000 */ andi $t3, $v1, 0x9000 -/* 0B28EC 800B1CEC 11600008 */ beqz $t3, .L800B1D10 -/* 0B28F0 800B1CF0 00601025 */ move $v0, $v1 -/* 0B28F4 800B1CF4 240C0005 */ li $t4, 5 -/* 0B28F8 800B1CF8 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B28FC 800B1CFC A12C0000 */ sb $t4, ($t1) -/* 0B2900 800B1D00 0C032384 */ jal play_sound2 -/* 0B2904 800B1D04 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B2908 800B1D08 100000F7 */ b .L800B20E8 -/* 0B290C 800B1D0C 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1D10: -/* 0B2910 800B1D10 304D0300 */ andi $t5, $v0, 0x300 -/* 0B2914 800B1D14 11A000F3 */ beqz $t5, .L800B20E4 -/* 0B2918 800B1D18 240E0002 */ li $t6, 2 -/* 0B291C 800B1D1C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2920 800B1D20 A12E0000 */ sb $t6, ($t1) -/* 0B2924 800B1D24 0C032384 */ jal play_sound2 -/* 0B2928 800B1D28 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B292C 800B1D2C 100000EE */ b .L800B20E8 -/* 0B2930 800B1D30 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1D34 -/* 0B2934 800B1D34 306F9000 */ andi $t7, $v1, 0x9000 -/* 0B2938 800B1D38 11E00009 */ beqz $t7, .L800B1D60 -/* 0B293C 800B1D3C 00601025 */ move $v0, $v1 -/* 0B2940 800B1D40 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B2944 800B1D44 0C032384 */ jal play_sound2 -/* 0B2948 800B1D48 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B294C 800B1D4C 0C027870 */ jal func_8009E1C0 -/* 0B2950 800B1D50 00000000 */ nop -/* 0B2954 800B1D54 3C01800F */ lui $at, %hi(D_800E86F8) # $at, 0x800f -/* 0B2958 800B1D58 100000E2 */ b .L800B20E4 -/* 0B295C 800B1D5C A02086F8 */ sb $zero, %lo(D_800E86F8)($at) -.L800B1D60: -/* 0B2960 800B1D60 30580300 */ andi $t8, $v0, 0x300 -/* 0B2964 800B1D64 130000DF */ beqz $t8, .L800B20E4 -/* 0B2968 800B1D68 24190001 */ li $t9, 1 -/* 0B296C 800B1D6C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2970 800B1D70 A1390000 */ sb $t9, ($t1) -/* 0B2974 800B1D74 0C032384 */ jal play_sound2 -/* 0B2978 800B1D78 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B297C 800B1D7C 100000DA */ b .L800B20E8 -/* 0B2980 800B1D80 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1D84 -/* 0B2984 800B1D84 306A9000 */ andi $t2, $v1, 0x9000 -/* 0B2988 800B1D88 11400015 */ beqz $t2, .L800B1DE0 -/* 0B298C 800B1D8C 00601025 */ move $v0, $v1 -/* 0B2990 800B1D90 3C02800F */ lui $v0, %hi(gControllerPakSelectedTableRow) # $v0, 0x800f -/* 0B2994 800B1D94 244286C0 */ addiu $v0, %lo(gControllerPakSelectedTableRow) # addiu $v0, $v0, -0x7940 -/* 0B2998 800B1D98 804B0000 */ lb $t3, ($v0) -/* 0B299C 800B1D9C 3C08800F */ lui $t0, %hi(D_800E86C6) # 0x800f -/* 0B29A0 800B1DA0 3C0D8019 */ lui $t5, %hi(D_8018EB38) # 0x8019 -/* 0B29A4 800B1DA4 010B4021 */ addu $t0, $t0, $t3 -/* 0B29A8 800B1DA8 810886C6 */ lb $t0, %lo(D_800E86C6)($t0) # -0x793a($t0) -/* 0B29AC 800B1DAC 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B29B0 800B1DB0 240E0004 */ li $t6, 4 -/* 0B29B4 800B1DB4 2508FFFF */ addiu $t0, $t0, -1 -/* 0B29B8 800B1DB8 00086080 */ sll $t4, $t0, 2 -/* 0B29BC 800B1DBC 01AC6821 */ addu $t5, $t5, $t4 -/* 0B29C0 800B1DC0 8DADEB38 */ lw $t5, %lo(D_8018EB38)($t5) # -0x14c8($t5) -/* 0B29C4 800B1DC4 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B29C8 800B1DC8 55A000C7 */ bnel $t5, $zero, .L800B20E8 -/* 0B29CC 800B1DCC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B29D0 800B1DD0 0C032384 */ jal play_sound2 -/* 0B29D4 800B1DD4 A12E0000 */ sb $t6, ($t1) -/* 0B29D8 800B1DD8 100000C3 */ b .L800B20E8 -/* 0B29DC 800B1DDC 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1DE0: -/* 0B29E0 800B1DE0 304F4000 */ andi $t7, $v0, 0x4000 -/* 0B29E4 800B1DE4 11E0000C */ beqz $t7, .L800B1E18 -/* 0B29E8 800B1DE8 304A0800 */ andi $t2, $v0, 0x800 -/* 0B29EC 800B1DEC 3C03800F */ lui $v1, %hi(D_800E86D0) # $v1, 0x800f -/* 0B29F0 800B1DF0 246386D0 */ addiu $v1, %lo(D_800E86D0) # addiu $v1, $v1, -0x7930 -/* 0B29F4 800B1DF4 80780000 */ lb $t8, ($v1) -/* 0B29F8 800B1DF8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B29FC 800B1DFC 24190001 */ li $t9, 1 -/* 0B2A00 800B1E00 170000B8 */ bnez $t8, .L800B20E4 -/* 0B2A04 800B1E04 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B2A08 800B1E08 0C032384 */ jal play_sound2 -/* 0B2A0C 800B1E0C A1390000 */ sb $t9, ($t1) -/* 0B2A10 800B1E10 100000B5 */ b .L800B20E8 -/* 0B2A14 800B1E14 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1E18: -/* 0B2A18 800B1E18 11400020 */ beqz $t2, .L800B1E9C -/* 0B2A1C 800B1E1C 3C03800F */ lui $v1, %hi(D_800E86D0) # $v1, 0x800f -/* 0B2A20 800B1E20 246386D0 */ addiu $v1, %lo(D_800E86D0) # addiu $v1, $v1, -0x7930 -/* 0B2A24 800B1E24 806B0000 */ lb $t3, ($v1) -/* 0B2A28 800B1E28 3C02800F */ lui $v0, %hi(gControllerPakSelectedTableRow) # $v0, 0x800f -/* 0B2A2C 800B1E2C 244286C0 */ addiu $v0, %lo(gControllerPakSelectedTableRow) # addiu $v0, $v0, -0x7940 -/* 0B2A30 800B1E30 556000AD */ bnel $t3, $zero, .L800B20E8 -/* 0B2A34 800B1E34 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B2A38 800B1E38 804C0000 */ lb $t4, ($v0) -/* 0B2A3C 800B1E3C 3C044900 */ lui $a0, 0x4900 -/* 0B2A40 800B1E40 258DFFFF */ addiu $t5, $t4, -1 -/* 0B2A44 800B1E44 A04D0000 */ sb $t5, ($v0) -/* 0B2A48 800B1E48 804E0000 */ lb $t6, ($v0) -/* 0B2A4C 800B1E4C 05C1000F */ bgez $t6, .L800B1E8C -/* 0B2A50 800B1E50 00000000 */ nop -/* 0B2A54 800B1E54 A0400000 */ sb $zero, ($v0) -/* 0B2A58 800B1E58 804F0000 */ lb $t7, ($v0) -/* 0B2A5C 800B1E5C 3C18800F */ lui $t8, %hi(D_800E86C6) # 0x800f -/* 0B2A60 800B1E60 24010001 */ li $at, 1 -/* 0B2A64 800B1E64 030FC021 */ addu $t8, $t8, $t7 -/* 0B2A68 800B1E68 831886C6 */ lb $t8, %lo(D_800E86C6)($t8) # -0x793a($t8) -/* 0B2A6C 800B1E6C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2A70 800B1E70 24190002 */ li $t9, 2 -/* 0B2A74 800B1E74 1301009B */ beq $t8, $at, .L800B20E4 -/* 0B2A78 800B1E78 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2A7C 800B1E7C 0C032384 */ jal play_sound2 -/* 0B2A80 800B1E80 A0790000 */ sb $t9, ($v1) -/* 0B2A84 800B1E84 10000098 */ b .L800B20E8 -/* 0B2A88 800B1E88 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1E8C: -/* 0B2A8C 800B1E8C 0C032384 */ jal play_sound2 -/* 0B2A90 800B1E90 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2A94 800B1E94 10000094 */ b .L800B20E8 -/* 0B2A98 800B1E98 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1E9C: -/* 0B2A9C 800B1E9C 304A0400 */ andi $t2, $v0, 0x400 -/* 0B2AA0 800B1EA0 11400090 */ beqz $t2, .L800B20E4 -/* 0B2AA4 800B1EA4 3C03800F */ lui $v1, %hi(D_800E86D0) # $v1, 0x800f -/* 0B2AA8 800B1EA8 246386D0 */ addiu $v1, %lo(D_800E86D0) # addiu $v1, $v1, -0x7930 -/* 0B2AAC 800B1EAC 806B0000 */ lb $t3, ($v1) -/* 0B2AB0 800B1EB0 3C02800F */ lui $v0, %hi(gControllerPakSelectedTableRow) # $v0, 0x800f -/* 0B2AB4 800B1EB4 244286C0 */ addiu $v0, %lo(gControllerPakSelectedTableRow) # addiu $v0, $v0, -0x7940 -/* 0B2AB8 800B1EB8 5560008B */ bnel $t3, $zero, .L800B20E8 -/* 0B2ABC 800B1EBC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B2AC0 800B1EC0 804C0000 */ lb $t4, ($v0) -/* 0B2AC4 800B1EC4 240F0004 */ li $t7, 4 -/* 0B2AC8 800B1EC8 3C044900 */ lui $a0, 0x4900 -/* 0B2ACC 800B1ECC 258D0001 */ addiu $t5, $t4, 1 -/* 0B2AD0 800B1ED0 A04D0000 */ sb $t5, ($v0) -/* 0B2AD4 800B1ED4 804E0000 */ lb $t6, ($v0) -/* 0B2AD8 800B1ED8 29C10005 */ slti $at, $t6, 5 -/* 0B2ADC 800B1EDC 1420000F */ bnez $at, .L800B1F1C -/* 0B2AE0 800B1EE0 00000000 */ nop -/* 0B2AE4 800B1EE4 A04F0000 */ sb $t7, ($v0) -/* 0B2AE8 800B1EE8 80580000 */ lb $t8, ($v0) -/* 0B2AEC 800B1EEC 3C19800F */ lui $t9, %hi(D_800E86C6) # 0x800f -/* 0B2AF0 800B1EF0 24010010 */ li $at, 16 -/* 0B2AF4 800B1EF4 0338C821 */ addu $t9, $t9, $t8 -/* 0B2AF8 800B1EF8 833986C6 */ lb $t9, %lo(D_800E86C6)($t9) # -0x793a($t9) -/* 0B2AFC 800B1EFC 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2B00 800B1F00 240A0001 */ li $t2, 1 -/* 0B2B04 800B1F04 13210077 */ beq $t9, $at, .L800B20E4 -/* 0B2B08 800B1F08 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2B0C 800B1F0C 0C032384 */ jal play_sound2 -/* 0B2B10 800B1F10 A06A0000 */ sb $t2, ($v1) -/* 0B2B14 800B1F14 10000074 */ b .L800B20E8 -/* 0B2B18 800B1F18 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1F1C: -/* 0B2B1C 800B1F1C 0C032384 */ jal play_sound2 -/* 0B2B20 800B1F20 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2B24 800B1F24 10000070 */ b .L800B20E8 -/* 0B2B28 800B1F28 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1F2C -/* 0B2B2C 800B1F2C 306BD000 */ andi $t3, $v1, 0xd000 -/* 0B2B30 800B1F30 11600008 */ beqz $t3, .L800B1F54 -/* 0B2B34 800B1F34 00601025 */ move $v0, $v1 -/* 0B2B38 800B1F38 240C0005 */ li $t4, 5 -/* 0B2B3C 800B1F3C 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B2B40 800B1F40 A12C0000 */ sb $t4, ($t1) -/* 0B2B44 800B1F44 0C032384 */ jal play_sound2 -/* 0B2B48 800B1F48 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B2B4C 800B1F4C 10000066 */ b .L800B20E8 -/* 0B2B50 800B1F50 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1F54: -/* 0B2B54 800B1F54 304D0300 */ andi $t5, $v0, 0x300 -/* 0B2B58 800B1F58 11A00062 */ beqz $t5, .L800B20E4 -/* 0B2B5C 800B1F5C 240E0003 */ li $t6, 3 -/* 0B2B60 800B1F60 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2B64 800B1F64 A12E0000 */ sb $t6, ($t1) -/* 0B2B68 800B1F68 0C032384 */ jal play_sound2 -/* 0B2B6C 800B1F6C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2B70 800B1F70 1000005D */ b .L800B20E8 -/* 0B2B74 800B1F74 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1F78 -/* 0B2B78 800B1F78 306F9000 */ andi $t7, $v1, 0x9000 -/* 0B2B7C 800B1F7C 11E00008 */ beqz $t7, .L800B1FA0 -/* 0B2B80 800B1F80 00601025 */ move $v0, $v1 -/* 0B2B84 800B1F84 24180006 */ li $t8, 6 -/* 0B2B88 800B1F88 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B2B8C 800B1F8C A1380000 */ sb $t8, ($t1) -/* 0B2B90 800B1F90 0C032384 */ jal play_sound2 -/* 0B2B94 800B1F94 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B2B98 800B1F98 10000053 */ b .L800B20E8 -/* 0B2B9C 800B1F9C 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1FA0: -/* 0B2BA0 800B1FA0 30594000 */ andi $t9, $v0, 0x4000 -/* 0B2BA4 800B1FA4 13200008 */ beqz $t9, .L800B1FC8 -/* 0B2BA8 800B1FA8 304B0300 */ andi $t3, $v0, 0x300 -/* 0B2BAC 800B1FAC 240A0005 */ li $t2, 5 -/* 0B2BB0 800B1FB0 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900 -/* 0B2BB4 800B1FB4 A12A0000 */ sb $t2, ($t1) -/* 0B2BB8 800B1FB8 0C032384 */ jal play_sound2 -/* 0B2BBC 800B1FBC 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 -/* 0B2BC0 800B1FC0 10000049 */ b .L800B20E8 -/* 0B2BC4 800B1FC4 8FBF001C */ lw $ra, 0x1c($sp) -.L800B1FC8: -/* 0B2BC8 800B1FC8 11600046 */ beqz $t3, .L800B20E4 -/* 0B2BCC 800B1FCC 240C0004 */ li $t4, 4 -/* 0B2BD0 800B1FD0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2BD4 800B1FD4 A12C0000 */ sb $t4, ($t1) -/* 0B2BD8 800B1FD8 0C032384 */ jal play_sound2 -/* 0B2BDC 800B1FDC 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2BE0 800B1FE0 10000041 */ b .L800B20E8 -/* 0B2BE4 800B1FE4 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800B1FE8 -/* 0B2BE8 800B1FE8 240D0007 */ li $t5, 7 -/* 0B2BEC 800B1FEC 1000003D */ b .L800B20E4 -/* 0B2BF0 800B1FF0 A12D0000 */ sb $t5, ($t1) -glabel L800B1FF4 -/* 0B2BF4 800B1FF4 3C02800F */ lui $v0, %hi(gControllerPakSelectedTableRow) # $v0, 0x800f -/* 0B2BF8 800B1FF8 244286C0 */ addiu $v0, %lo(gControllerPakSelectedTableRow) # addiu $v0, $v0, -0x7940 -/* 0B2BFC 800B1FFC 804E0000 */ lb $t6, ($v0) -/* 0B2C00 800B2000 3C08800F */ lui $t0, %hi(D_800E86C6) # 0x800f -/* 0B2C04 800B2004 3C188019 */ lui $t8, %hi(D_8018E938) # $t8, 0x8019 -/* 0B2C08 800B2008 010E4021 */ addu $t0, $t0, $t6 -/* 0B2C0C 800B200C 810886C6 */ lb $t0, %lo(D_800E86C6)($t0) # -0x793a($t0) -/* 0B2C10 800B2010 2718E938 */ addiu $t8, %lo(D_8018E938) # addiu $t8, $t8, -0x16c8 -/* 0B2C14 800B2014 3C048019 */ lui $a0, %hi(D_8018E868) # $a0, 0x8019 -/* 0B2C18 800B2018 2508FFFF */ addiu $t0, $t0, -1 -/* 0B2C1C 800B201C 00087940 */ sll $t7, $t0, 5 -/* 0B2C20 800B2020 01F81821 */ addu $v1, $t7, $t8 -/* 0B2C24 800B2024 2479000A */ addiu $t9, $v1, 0xa -/* 0B2C28 800B2028 AFB90010 */ sw $t9, 0x10($sp) -/* 0B2C2C 800B202C 94650008 */ lhu $a1, 8($v1) -/* 0B2C30 800B2030 8C660004 */ lw $a2, 4($v1) -/* 0B2C34 800B2034 2467000E */ addiu $a3, $v1, 0xe -/* 0B2C38 800B2038 AFA30020 */ sw $v1, 0x20($sp) -/* 0B2C3C 800B203C AFA8002C */ sw $t0, 0x2c($sp) -/* 0B2C40 800B2040 0C033E90 */ jal osPfsDeleteFile -/* 0B2C44 800B2044 2484E868 */ addiu $a0, %lo(D_8018E868) # addiu $a0, $a0, -0x1798 -/* 0B2C48 800B2048 3C098019 */ lui $t1, %hi(gControllerPakMenuSelection) # $t1, 0x8019 -/* 0B2C4C 800B204C 2529EDF0 */ addiu $t1, %lo(gControllerPakMenuSelection) # addiu $t1, $t1, -0x1210 -/* 0B2C50 800B2050 8FA30020 */ lw $v1, 0x20($sp) -/* 0B2C54 800B2054 1040000A */ beqz $v0, .L800B2080 -/* 0B2C58 800B2058 8FA8002C */ lw $t0, 0x2c($sp) -/* 0B2C5C 800B205C 24010001 */ li $at, 1 -/* 0B2C60 800B2060 10410018 */ beq $v0, $at, .L800B20C4 -/* 0B2C64 800B2064 240C0009 */ li $t4, 9 -/* 0B2C68 800B2068 24010002 */ li $at, 2 -/* 0B2C6C 800B206C 10410017 */ beq $v0, $at, .L800B20CC -/* 0B2C70 800B2070 240E000A */ li $t6, 10 -/* 0B2C74 800B2074 240A0008 */ li $t2, 8 -/* 0B2C78 800B2078 1000001A */ b .L800B20E4 -/* 0B2C7C 800B207C A12A0000 */ sb $t2, ($t1) -.L800B2080: -/* 0B2C80 800B2080 00086080 */ sll $t4, $t0, 2 -/* 0B2C84 800B2084 3C018019 */ lui $at, %hi(D_8018EB38) # 0x8019 -/* 0B2C88 800B2088 002C0821 */ addu $at, $at, $t4 -/* 0B2C8C 800B208C 240BFFFF */ li $t3, -1 -/* 0B2C90 800B2090 AC2BEB38 */ sw $t3, %lo(D_8018EB38)($at) # -0x14c8($at) -/* 0B2C94 800B2094 8C6E0000 */ lw $t6, ($v1) -/* 0B2C98 800B2098 3C0D8019 */ lui $t5, %hi(gControllerPakNumPagesFree) # $t5, 0x8019 -/* 0B2C9C 800B209C 8DADEB80 */ lw $t5, %lo(gControllerPakNumPagesFree)($t5) -/* 0B2CA0 800B20A0 25CF00FF */ addiu $t7, $t6, 0xff -/* 0B2CA4 800B20A4 000FC202 */ srl $t8, $t7, 8 -/* 0B2CA8 800B20A8 331900FF */ andi $t9, $t8, 0xff -/* 0B2CAC 800B20AC 3C018019 */ lui $at, %hi(gControllerPakNumPagesFree) # $at, 0x8019 -/* 0B2CB0 800B20B0 01B95021 */ addu $t2, $t5, $t9 -/* 0B2CB4 800B20B4 AC2AEB80 */ sw $t2, %lo(gControllerPakNumPagesFree)($at) -/* 0B2CB8 800B20B8 240B0005 */ li $t3, 5 -/* 0B2CBC 800B20BC 10000009 */ b .L800B20E4 -/* 0B2CC0 800B20C0 A12B0000 */ sb $t3, ($t1) -.L800B20C4: -/* 0B2CC4 800B20C4 10000007 */ b .L800B20E4 -/* 0B2CC8 800B20C8 A12C0000 */ sb $t4, ($t1) -.L800B20CC: -/* 0B2CCC 800B20CC 10000005 */ b .L800B20E4 -/* 0B2CD0 800B20D0 A12E0000 */ sb $t6, ($t1) -glabel L800B20D4 -/* 0B2CD4 800B20D4 306F9000 */ andi $t7, $v1, 0x9000 -/* 0B2CD8 800B20D8 11E00002 */ beqz $t7, .L800B20E4 -/* 0B2CDC 800B20DC 24180005 */ li $t8, 5 -/* 0B2CE0 800B20E0 A1380000 */ sb $t8, ($t1) -.L800B20E4: -/* 0B2CE4 800B20E4 8FBF001C */ lw $ra, 0x1c($sp) -.L800B20E8: -/* 0B2CE8 800B20E8 27BD0038 */ addiu $sp, $sp, 0x38 -/* 0B2CEC 800B20EC 03E00008 */ jr $ra -/* 0B2CF0 800B20F0 00000000 */ nop diff --git a/asm/non_matchings/menus/func_800B20F4.s b/asm/non_matchings/menus/func_800B20F4.s deleted file mode 100644 index 3c87222bb..000000000 --- a/asm/non_matchings/menus/func_800B20F4.s +++ /dev/null @@ -1,564 +0,0 @@ -.section .late_rodata -glabel jpt_800F2DE0 -.word L800B2178, L800B21CC -.word L800B2240, L800B231C, L800B2414, L800B24DC -.word L800B2604 - -.section .text -glabel func_800B20F4 -/* 0B2CF4 800B20F4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0B2CF8 800B20F8 240E0001 */ li $t6, 1 -/* 0B2CFC 800B20FC AFBF001C */ sw $ra, 0x1c($sp) -/* 0B2D00 800B2100 AFB00018 */ sw $s0, 0x18($sp) -/* 0B2D04 800B2104 AFA50034 */ sw $a1, 0x34($sp) -/* 0B2D08 800B2108 AFAE0028 */ sw $t6, 0x28($sp) -/* 0B2D0C 800B210C 9498000C */ lhu $t8, 0xc($a0) -/* 0B2D10 800B2110 948F0006 */ lhu $t7, 6($a0) -/* 0B2D14 800B2114 30B0FFFF */ andi $s0, $a1, 0xffff -/* 0B2D18 800B2118 AFA40030 */ sw $a0, 0x30($sp) -/* 0B2D1C 800B211C 01F8C825 */ or $t9, $t7, $t8 -/* 0B2D20 800B2120 0C02D148 */ jal func_800B4520 -/* 0B2D24 800B2124 A7B9002E */ sh $t9, 0x2e($sp) -/* 0B2D28 800B2128 144001E2 */ bnez $v0, .L800B28B4 -/* 0B2D2C 800B212C 3C0A8019 */ lui $t2, %hi(gDebugMenuSelection) # $t2, 0x8019 -/* 0B2D30 800B2130 16000005 */ bnez $s0, .L800B2148 -/* 0B2D34 800B2134 3C028019 */ lui $v0, %hi(D_8018EE04) # $v0, 0x8019 -/* 0B2D38 800B2138 2442EE04 */ addiu $v0, %lo(D_8018EE04) # addiu $v0, $v0, -0x11fc -/* 0B2D3C 800B213C 8C480000 */ lw $t0, ($v0) -/* 0B2D40 800B2140 25090001 */ addiu $t1, $t0, 1 -/* 0B2D44 800B2144 AC490000 */ sw $t1, ($v0) -.L800B2148: -/* 0B2D48 800B2148 814AEDEF */ lb $t2, %lo(gDebugMenuSelection)($t2) -/* 0B2D4C 800B214C 3C028019 */ lui $v0, %hi(D_8018EE04) # $v0, 0x8019 -/* 0B2D50 800B2150 2442EE04 */ addiu $v0, %lo(D_8018EE04) # addiu $v0, $v0, -0x11fc -/* 0B2D54 800B2154 254BFFFF */ addiu $t3, $t2, -1 -/* 0B2D58 800B2158 2D610007 */ sltiu $at, $t3, 7 -/* 0B2D5C 800B215C 10200182 */ beqz $at, .L800B2768 -/* 0B2D60 800B2160 000B5880 */ sll $t3, $t3, 2 -/* 0B2D64 800B2164 3C01800F */ lui $at, %hi(jpt_800F2DE0) # 0x800f -/* 0B2D68 800B2168 002B0821 */ addu $at, $at, $t3 -/* 0B2D6C 800B216C 8C2B2DE0 */ lw $t3, %lo(jpt_800F2DE0)($at) # 0x2de0($at) -/* 0B2D70 800B2170 01600008 */ jr $t3 -/* 0B2D74 800B2174 00000000 */ nop -glabel L800B2178 -/* 0B2D78 800B2178 8C4C0000 */ lw $t4, ($v0) -/* 0B2D7C 800B217C 97AD002E */ lhu $t5, 0x2e($sp) -/* 0B2D80 800B2180 AFA00028 */ sw $zero, 0x28($sp) -/* 0B2D84 800B2184 2981002E */ slti $at, $t4, 0x2e -/* 0B2D88 800B2188 1420000D */ bnez $at, .L800B21C0 -/* 0B2D8C 800B218C 31AE9000 */ andi $t6, $t5, 0x9000 -/* 0B2D90 800B2190 11C0000B */ beqz $t6, .L800B21C0 -/* 0B2D94 800B2194 00000000 */ nop -/* 0B2D98 800B2198 0C027870 */ jal func_8009E1C0 -/* 0B2D9C 800B219C 00000000 */ nop -/* 0B2DA0 800B21A0 0C0328CC */ jal func_800CA330 -/* 0B2DA4 800B21A4 24040019 */ li $a0, 25 -/* 0B2DA8 800B21A8 3C044900 */ lui $a0, (0x4900801A >> 16) # lui $a0, 0x4900 -/* 0B2DAC 800B21AC 0C032384 */ jal play_sound2 -/* 0B2DB0 800B21B0 3484801A */ ori $a0, (0x4900801A & 0xFFFF) # ori $a0, $a0, 0x801a -/* 0B2DB4 800B21B4 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B2DB8 800B21B8 1000016D */ b .L800B2770 -/* 0B2DBC 800B21BC 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -.L800B21C0: -/* 0B2DC0 800B21C0 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B2DC4 800B21C4 1000016A */ b .L800B2770 -/* 0B2DC8 800B21C8 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -glabel L800B21CC -/* 0B2DCC 800B21CC 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B2DD0 800B21D0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2DD4 800B21D4 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2DD8 800B21D8 306F0300 */ andi $t7, $v1, 0x300 -/* 0B2DDC 800B21DC 51E0000E */ beql $t7, $zero, .L800B2218 -/* 0B2DE0 800B21E0 30680400 */ andi $t0, $v1, 0x400 -/* 0B2DE4 800B21E4 0C032384 */ jal play_sound2 -/* 0B2DE8 800B21E8 AFA30024 */ sw $v1, 0x24($sp) -/* 0B2DEC 800B21EC 3C02800E */ lui $v0, %hi(gEnableDebugMode) # $v0, 0x800e -/* 0B2DF0 800B21F0 2442C520 */ addiu $v0, %lo(gEnableDebugMode) # addiu $v0, $v0, -0x3ae0 -/* 0B2DF4 800B21F4 94580000 */ lhu $t8, ($v0) -/* 0B2DF8 800B21F8 8FA30024 */ lw $v1, 0x24($sp) -/* 0B2DFC 800B21FC 24190001 */ li $t9, 1 -/* 0B2E00 800B2200 53000004 */ beql $t8, $zero, .L800B2214 -/* 0B2E04 800B2204 A4590000 */ sh $t9, ($v0) -/* 0B2E08 800B2208 10000002 */ b .L800B2214 -/* 0B2E0C 800B220C A4400000 */ sh $zero, ($v0) -/* 0B2E10 800B2210 A4590000 */ sh $t9, ($v0) -.L800B2214: -/* 0B2E14 800B2214 30680400 */ andi $t0, $v1, 0x400 -.L800B2218: -/* 0B2E18 800B2218 11000006 */ beqz $t0, .L800B2234 -/* 0B2E1C 800B221C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2E20 800B2220 0C032384 */ jal play_sound2 -/* 0B2E24 800B2224 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2E28 800B2228 24090003 */ li $t1, 3 -/* 0B2E2C 800B222C 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B2E30 800B2230 A029EDEF */ sb $t1, %lo(gDebugMenuSelection)($at) -.L800B2234: -/* 0B2E34 800B2234 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B2E38 800B2238 1000014D */ b .L800B2770 -/* 0B2E3C 800B223C 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -glabel L800B2240 -/* 0B2E40 800B2240 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B2E44 800B2244 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2E48 800B2248 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2E4C 800B224C 306A0100 */ andi $t2, $v1, 0x100 -/* 0B2E50 800B2250 1140000D */ beqz $t2, .L800B2288 -/* 0B2E54 800B2254 00000000 */ nop -/* 0B2E58 800B2258 0C032384 */ jal play_sound2 -/* 0B2E5C 800B225C AFA30024 */ sw $v1, 0x24($sp) -/* 0B2E60 800B2260 3C10800E */ lui $s0, %hi(gCurrentCourseId) # $s0, 0x800e -/* 0B2E64 800B2264 2610C5A0 */ addiu $s0, %lo(gCurrentCourseId) # addiu $s0, $s0, -0x3a60 -/* 0B2E68 800B2268 86020000 */ lh $v0, ($s0) -/* 0B2E6C 800B226C 8FA30024 */ lw $v1, 0x24($sp) -/* 0B2E70 800B2270 28410013 */ slti $at, $v0, 0x13 -/* 0B2E74 800B2274 10200003 */ beqz $at, .L800B2284 -/* 0B2E78 800B2278 244B0001 */ addiu $t3, $v0, 1 -/* 0B2E7C 800B227C 10000002 */ b .L800B2288 -/* 0B2E80 800B2280 A60B0000 */ sh $t3, ($s0) -.L800B2284: -/* 0B2E84 800B2284 A6000000 */ sh $zero, ($s0) -.L800B2288: -/* 0B2E88 800B2288 3C10800E */ lui $s0, %hi(gCurrentCourseId) # $s0, 0x800e -/* 0B2E8C 800B228C 306C0200 */ andi $t4, $v1, 0x200 -/* 0B2E90 800B2290 1180000D */ beqz $t4, .L800B22C8 -/* 0B2E94 800B2294 2610C5A0 */ addiu $s0, %lo(gCurrentCourseId) # addiu $s0, $s0, -0x3a60 -/* 0B2E98 800B2298 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2E9C 800B229C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2EA0 800B22A0 0C032384 */ jal play_sound2 -/* 0B2EA4 800B22A4 AFA30024 */ sw $v1, 0x24($sp) -/* 0B2EA8 800B22A8 86020000 */ lh $v0, ($s0) -/* 0B2EAC 800B22AC 8FA30024 */ lw $v1, 0x24($sp) -/* 0B2EB0 800B22B0 240E0013 */ li $t6, 19 -/* 0B2EB4 800B22B4 18400003 */ blez $v0, .L800B22C4 -/* 0B2EB8 800B22B8 244DFFFF */ addiu $t5, $v0, -1 -/* 0B2EBC 800B22BC 10000002 */ b .L800B22C8 -/* 0B2EC0 800B22C0 A60D0000 */ sh $t5, ($s0) -.L800B22C4: -/* 0B2EC4 800B22C4 A60E0000 */ sh $t6, ($s0) -.L800B22C8: -/* 0B2EC8 800B22C8 306F0800 */ andi $t7, $v1, 0x800 -/* 0B2ECC 800B22CC 11E00008 */ beqz $t7, .L800B22F0 -/* 0B2ED0 800B22D0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2ED4 800B22D4 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2ED8 800B22D8 0C032384 */ jal play_sound2 -/* 0B2EDC 800B22DC AFA30024 */ sw $v1, 0x24($sp) -/* 0B2EE0 800B22E0 24180002 */ li $t8, 2 -/* 0B2EE4 800B22E4 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B2EE8 800B22E8 8FA30024 */ lw $v1, 0x24($sp) -/* 0B2EEC 800B22EC A038EDEF */ sb $t8, %lo(gDebugMenuSelection)($at) -.L800B22F0: -/* 0B2EF0 800B22F0 30790400 */ andi $t9, $v1, 0x400 -/* 0B2EF4 800B22F4 13200006 */ beqz $t9, .L800B2310 -/* 0B2EF8 800B22F8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2EFC 800B22FC 0C032384 */ jal play_sound2 -/* 0B2F00 800B2300 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2F04 800B2304 24080004 */ li $t0, 4 -/* 0B2F08 800B2308 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B2F0C 800B230C A028EDEF */ sb $t0, %lo(gDebugMenuSelection)($at) -.L800B2310: -/* 0B2F10 800B2310 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B2F14 800B2314 10000116 */ b .L800B2770 -/* 0B2F18 800B2318 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -glabel L800B231C -/* 0B2F1C 800B231C 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B2F20 800B2320 3C108019 */ lui $s0, %hi(D_8018EDF1) # $s0, 0x8019 -/* 0B2F24 800B2324 2610EDF1 */ addiu $s0, %lo(D_8018EDF1) # addiu $s0, $s0, -0x120f -/* 0B2F28 800B2328 30690100 */ andi $t1, $v1, 0x100 -/* 0B2F2C 800B232C 11200011 */ beqz $t1, .L800B2374 -/* 0B2F30 800B2330 00000000 */ nop -/* 0B2F34 800B2334 82020000 */ lb $v0, ($s0) -/* 0B2F38 800B2338 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2F3C 800B233C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2F40 800B2340 28410004 */ slti $at, $v0, 4 -/* 0B2F44 800B2344 1020000B */ beqz $at, .L800B2374 -/* 0B2F48 800B2348 244A0001 */ addiu $t2, $v0, 1 -/* 0B2F4C 800B234C A20A0000 */ sb $t2, ($s0) -/* 0B2F50 800B2350 0C032384 */ jal play_sound2 -/* 0B2F54 800B2354 AFA30024 */ sw $v1, 0x24($sp) -/* 0B2F58 800B2358 820B0000 */ lb $t3, ($s0) -/* 0B2F5C 800B235C 3C0C800F */ lui $t4, %hi(D_800F2B50) # 0x800f -/* 0B2F60 800B2360 3C01800E */ lui $at, %hi(gScreenModeSelection) # $at, 0x800e -/* 0B2F64 800B2364 018B6021 */ addu $t4, $t4, $t3 -/* 0B2F68 800B2368 818C2B50 */ lb $t4, %lo(D_800F2B50)($t4) # 0x2b50($t4) -/* 0B2F6C 800B236C 8FA30024 */ lw $v1, 0x24($sp) -/* 0B2F70 800B2370 AC2CC530 */ sw $t4, %lo(gScreenModeSelection)($at) -.L800B2374: -/* 0B2F74 800B2374 3C108019 */ lui $s0, %hi(D_8018EDF1) # $s0, 0x8019 -/* 0B2F78 800B2378 306D0200 */ andi $t5, $v1, 0x200 -/* 0B2F7C 800B237C 11A00010 */ beqz $t5, .L800B23C0 -/* 0B2F80 800B2380 2610EDF1 */ addiu $s0, %lo(D_8018EDF1) # addiu $s0, $s0, -0x120f -/* 0B2F84 800B2384 82020000 */ lb $v0, ($s0) -/* 0B2F88 800B2388 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2F8C 800B238C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2F90 800B2390 1840000B */ blez $v0, .L800B23C0 -/* 0B2F94 800B2394 244EFFFF */ addiu $t6, $v0, -1 -/* 0B2F98 800B2398 A20E0000 */ sb $t6, ($s0) -/* 0B2F9C 800B239C 0C032384 */ jal play_sound2 -/* 0B2FA0 800B23A0 AFA30024 */ sw $v1, 0x24($sp) -/* 0B2FA4 800B23A4 820F0000 */ lb $t7, ($s0) -/* 0B2FA8 800B23A8 3C18800F */ lui $t8, %hi(D_800F2B50) # 0x800f -/* 0B2FAC 800B23AC 3C01800E */ lui $at, %hi(gScreenModeSelection) # $at, 0x800e -/* 0B2FB0 800B23B0 030FC021 */ addu $t8, $t8, $t7 -/* 0B2FB4 800B23B4 83182B50 */ lb $t8, %lo(D_800F2B50)($t8) # 0x2b50($t8) -/* 0B2FB8 800B23B8 8FA30024 */ lw $v1, 0x24($sp) -/* 0B2FBC 800B23BC AC38C530 */ sw $t8, %lo(gScreenModeSelection)($at) -.L800B23C0: -/* 0B2FC0 800B23C0 30790800 */ andi $t9, $v1, 0x800 -/* 0B2FC4 800B23C4 13200008 */ beqz $t9, .L800B23E8 -/* 0B2FC8 800B23C8 24080003 */ li $t0, 3 -/* 0B2FCC 800B23CC 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B2FD0 800B23D0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2FD4 800B23D4 A028EDEF */ sb $t0, %lo(gDebugMenuSelection)($at) -/* 0B2FD8 800B23D8 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B2FDC 800B23DC 0C032384 */ jal play_sound2 -/* 0B2FE0 800B23E0 AFA30024 */ sw $v1, 0x24($sp) -/* 0B2FE4 800B23E4 8FA30024 */ lw $v1, 0x24($sp) -.L800B23E8: -/* 0B2FE8 800B23E8 30690400 */ andi $t1, $v1, 0x400 -/* 0B2FEC 800B23EC 11200006 */ beqz $t1, .L800B2408 -/* 0B2FF0 800B23F0 240A0005 */ li $t2, 5 -/* 0B2FF4 800B23F4 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B2FF8 800B23F8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B2FFC 800B23FC A02AEDEF */ sb $t2, %lo(gDebugMenuSelection)($at) -/* 0B3000 800B2400 0C032384 */ jal play_sound2 -/* 0B3004 800B2404 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -.L800B2408: -/* 0B3008 800B2408 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B300C 800B240C 100000D8 */ b .L800B2770 -/* 0B3010 800B2410 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -glabel L800B2414 -/* 0B3014 800B2414 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B3018 800B2418 3C10800F */ lui $s0, %hi(gCharacterSelections) # $s0, 0x800f -/* 0B301C 800B241C 261086A8 */ addiu $s0, %lo(gCharacterSelections) # addiu $s0, $s0, -0x7958 -/* 0B3020 800B2420 306B0100 */ andi $t3, $v1, 0x100 -/* 0B3024 800B2424 1160000B */ beqz $t3, .L800B2454 -/* 0B3028 800B2428 00000000 */ nop -/* 0B302C 800B242C 82020000 */ lb $v0, ($s0) -/* 0B3030 800B2430 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B3034 800B2434 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B3038 800B2438 28410007 */ slti $at, $v0, 7 -/* 0B303C 800B243C 10200005 */ beqz $at, .L800B2454 -/* 0B3040 800B2440 244C0001 */ addiu $t4, $v0, 1 -/* 0B3044 800B2444 A20C0000 */ sb $t4, ($s0) -/* 0B3048 800B2448 0C032384 */ jal play_sound2 -/* 0B304C 800B244C AFA30024 */ sw $v1, 0x24($sp) -/* 0B3050 800B2450 8FA30024 */ lw $v1, 0x24($sp) -.L800B2454: -/* 0B3054 800B2454 3C10800F */ lui $s0, %hi(gCharacterSelections) # $s0, 0x800f -/* 0B3058 800B2458 306D0200 */ andi $t5, $v1, 0x200 -/* 0B305C 800B245C 11A0000A */ beqz $t5, .L800B2488 -/* 0B3060 800B2460 261086A8 */ addiu $s0, %lo(gCharacterSelections) # addiu $s0, $s0, -0x7958 -/* 0B3064 800B2464 82020000 */ lb $v0, ($s0) -/* 0B3068 800B2468 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B306C 800B246C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B3070 800B2470 18400005 */ blez $v0, .L800B2488 -/* 0B3074 800B2474 244EFFFF */ addiu $t6, $v0, -1 -/* 0B3078 800B2478 A20E0000 */ sb $t6, ($s0) -/* 0B307C 800B247C 0C032384 */ jal play_sound2 -/* 0B3080 800B2480 AFA30024 */ sw $v1, 0x24($sp) -/* 0B3084 800B2484 8FA30024 */ lw $v1, 0x24($sp) -.L800B2488: -/* 0B3088 800B2488 306F0800 */ andi $t7, $v1, 0x800 -/* 0B308C 800B248C 11E00008 */ beqz $t7, .L800B24B0 -/* 0B3090 800B2490 24180004 */ li $t8, 4 -/* 0B3094 800B2494 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B3098 800B2498 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B309C 800B249C A038EDEF */ sb $t8, %lo(gDebugMenuSelection)($at) -/* 0B30A0 800B24A0 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B30A4 800B24A4 0C032384 */ jal play_sound2 -/* 0B30A8 800B24A8 AFA30024 */ sw $v1, 0x24($sp) -/* 0B30AC 800B24AC 8FA30024 */ lw $v1, 0x24($sp) -.L800B24B0: -/* 0B30B0 800B24B0 30790400 */ andi $t9, $v1, 0x400 -/* 0B30B4 800B24B4 13200006 */ beqz $t9, .L800B24D0 -/* 0B30B8 800B24B8 24080006 */ li $t0, 6 -/* 0B30BC 800B24BC 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B30C0 800B24C0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B30C4 800B24C4 A028EDEF */ sb $t0, %lo(gDebugMenuSelection)($at) -/* 0B30C8 800B24C8 0C032384 */ jal play_sound2 -/* 0B30CC 800B24CC 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -.L800B24D0: -/* 0B30D0 800B24D0 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B30D4 800B24D4 100000A6 */ b .L800B2770 -/* 0B30D8 800B24D8 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -glabel L800B24DC -/* 0B30DC 800B24DC 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B30E0 800B24E0 3C108019 */ lui $s0, %hi(gSoundMode) # $s0, 0x8019 -/* 0B30E4 800B24E4 2610EDF2 */ addiu $s0, %lo(gSoundMode) # addiu $s0, $s0, -0x120e -/* 0B30E8 800B24E8 30690100 */ andi $t1, $v1, 0x100 -/* 0B30EC 800B24EC 11200018 */ beqz $t1, .L800B2550 -/* 0B30F0 800B24F0 00000000 */ nop -/* 0B30F4 800B24F4 92020000 */ lbu $v0, ($s0) -/* 0B30F8 800B24F8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B30FC 800B24FC 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B3100 800B2500 28410003 */ slti $at, $v0, 3 -/* 0B3104 800B2504 10200012 */ beqz $at, .L800B2550 -/* 0B3108 800B2508 244A0001 */ addiu $t2, $v0, 1 -/* 0B310C 800B250C 314B00FF */ andi $t3, $t2, 0xff -/* 0B3110 800B2510 24010002 */ li $at, 2 -/* 0B3114 800B2514 15610003 */ bne $t3, $at, .L800B2524 -/* 0B3118 800B2518 A20A0000 */ sb $t2, ($s0) -/* 0B311C 800B251C 240C0003 */ li $t4, 3 -/* 0B3120 800B2520 A20C0000 */ sb $t4, ($s0) -.L800B2524: -/* 0B3124 800B2524 0C032384 */ jal play_sound2 -/* 0B3128 800B2528 AFA30024 */ sw $v1, 0x24($sp) -/* 0B312C 800B252C 0C02D12F */ jal func_800B44BC -/* 0B3130 800B2530 00000000 */ nop -/* 0B3134 800B2534 920D0000 */ lbu $t5, ($s0) -/* 0B3138 800B2538 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019 -/* 0B313C 800B253C 0C02D19C */ jal write_save_data_grand_prix_points_and_sound_mode -/* 0B3140 800B2540 A02DED14 */ sb $t5, %lo(gSaveDataSoundMode)($at) -/* 0B3144 800B2544 0C02D652 */ jal update_save_data_backup -/* 0B3148 800B2548 00000000 */ nop -/* 0B314C 800B254C 8FA30024 */ lw $v1, 0x24($sp) -.L800B2550: -/* 0B3150 800B2550 3C108019 */ lui $s0, %hi(gSoundMode) # $s0, 0x8019 -/* 0B3154 800B2554 306E0200 */ andi $t6, $v1, 0x200 -/* 0B3158 800B2558 11C00015 */ beqz $t6, .L800B25B0 -/* 0B315C 800B255C 2610EDF2 */ addiu $s0, %lo(gSoundMode) # addiu $s0, $s0, -0x120e -/* 0B3160 800B2560 92020000 */ lbu $v0, ($s0) -/* 0B3164 800B2564 24010002 */ li $at, 2 -/* 0B3168 800B2568 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B316C 800B256C 18400010 */ blez $v0, .L800B25B0 -/* 0B3170 800B2570 244FFFFF */ addiu $t7, $v0, -1 -/* 0B3174 800B2574 31F800FF */ andi $t8, $t7, 0xff -/* 0B3178 800B2578 17010003 */ bne $t8, $at, .L800B2588 -/* 0B317C 800B257C A20F0000 */ sb $t7, ($s0) -/* 0B3180 800B2580 24190001 */ li $t9, 1 -/* 0B3184 800B2584 A2190000 */ sb $t9, ($s0) -.L800B2588: -/* 0B3188 800B2588 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B318C 800B258C 0C032384 */ jal play_sound2 -/* 0B3190 800B2590 AFA30024 */ sw $v1, 0x24($sp) -/* 0B3194 800B2594 0C02D12F */ jal func_800B44BC -/* 0B3198 800B2598 00000000 */ nop -/* 0B319C 800B259C 92080000 */ lbu $t0, ($s0) -/* 0B31A0 800B25A0 3C018019 */ lui $at, %hi(gSaveDataSoundMode) # $at, 0x8019 -/* 0B31A4 800B25A4 0C02D19C */ jal write_save_data_grand_prix_points_and_sound_mode -/* 0B31A8 800B25A8 A028ED14 */ sb $t0, %lo(gSaveDataSoundMode)($at) -/* 0B31AC 800B25AC 8FA30024 */ lw $v1, 0x24($sp) -.L800B25B0: -/* 0B31B0 800B25B0 30690800 */ andi $t1, $v1, 0x800 -/* 0B31B4 800B25B4 11200008 */ beqz $t1, .L800B25D8 -/* 0B31B8 800B25B8 240A0005 */ li $t2, 5 -/* 0B31BC 800B25BC 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B31C0 800B25C0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B31C4 800B25C4 A02AEDEF */ sb $t2, %lo(gDebugMenuSelection)($at) -/* 0B31C8 800B25C8 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B31CC 800B25CC 0C032384 */ jal play_sound2 -/* 0B31D0 800B25D0 AFA30024 */ sw $v1, 0x24($sp) -/* 0B31D4 800B25D4 8FA30024 */ lw $v1, 0x24($sp) -.L800B25D8: -/* 0B31D8 800B25D8 306B0400 */ andi $t3, $v1, 0x400 -/* 0B31DC 800B25DC 11600006 */ beqz $t3, .L800B25F8 -/* 0B31E0 800B25E0 240C0007 */ li $t4, 7 -/* 0B31E4 800B25E4 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B31E8 800B25E8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B31EC 800B25EC A02CEDEF */ sb $t4, %lo(gDebugMenuSelection)($at) -/* 0B31F0 800B25F0 0C032384 */ jal play_sound2 -/* 0B31F4 800B25F4 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -.L800B25F8: -/* 0B31F8 800B25F8 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B31FC 800B25FC 1000005C */ b .L800B2770 -/* 0B3200 800B2600 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -glabel L800B2604 -/* 0B3204 800B2604 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B3208 800B2608 240E0006 */ li $t6, 6 -/* 0B320C 800B260C 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B3210 800B2610 306D0800 */ andi $t5, $v1, 0x800 -/* 0B3214 800B2614 11A00006 */ beqz $t5, .L800B2630 -/* 0B3218 800B2618 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900 -/* 0B321C 800B261C A02EEDEF */ sb $t6, %lo(gDebugMenuSelection)($at) -/* 0B3220 800B2620 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000 -/* 0B3224 800B2624 0C032384 */ jal play_sound2 -/* 0B3228 800B2628 AFA30024 */ sw $v1, 0x24($sp) -/* 0B322C 800B262C 8FA30024 */ lw $v1, 0x24($sp) -.L800B2630: -/* 0B3230 800B2630 306F4000 */ andi $t7, $v1, 0x4000 -/* 0B3234 800B2634 11E00010 */ beqz $t7, .L800B2678 -/* 0B3238 800B2638 30790020 */ andi $t9, $v1, 0x20 -/* 0B323C 800B263C 00008025 */ move $s0, $zero -/* 0B3240 800B2640 00002825 */ move $a1, $zero -.L800B2644: -/* 0B3244 800B2644 0C02D501 */ jal func_800B5404 -/* 0B3248 800B2648 00002025 */ move $a0, $zero -/* 0B324C 800B264C 26100001 */ addiu $s0, $s0, 1 -/* 0B3250 800B2650 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B3254 800B2654 28A10010 */ slti $at, $a1, 0x10 -/* 0B3258 800B2658 1420FFFA */ bnez $at, .L800B2644 -/* 0B325C 800B265C 00A08025 */ move $s0, $a1 -/* 0B3260 800B2660 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B3264 800B2664 0C032384 */ jal play_sound2 -/* 0B3268 800B2668 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B326C 800B266C 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B3270 800B2670 1000003F */ b .L800B2770 -/* 0B3274 800B2674 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -.L800B2678: -/* 0B3278 800B2678 13200016 */ beqz $t9, .L800B26D4 -/* 0B327C 800B267C 30690200 */ andi $t1, $v1, 0x200 -/* 0B3280 800B2680 0C02D208 */ jal reset_save_data_grand_prix_points_and_sound_mode -/* 0B3284 800B2684 00000000 */ nop -/* 0B3288 800B2688 00008025 */ move $s0, $zero -/* 0B328C 800B268C 00002825 */ move $a1, $zero -.L800B2690: -/* 0B3290 800B2690 04A10003 */ bgez $a1, .L800B26A0 -/* 0B3294 800B2694 00052083 */ sra $a0, $a1, 2 -/* 0B3298 800B2698 24A10003 */ addiu $at, $a1, 3 -/* 0B329C 800B269C 00012083 */ sra $a0, $at, 2 -.L800B26A0: -/* 0B32A0 800B26A0 0C02D501 */ jal func_800B5404 -/* 0B32A4 800B26A4 00000000 */ nop -/* 0B32A8 800B26A8 26100001 */ addiu $s0, $s0, 1 -/* 0B32AC 800B26AC 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B32B0 800B26B0 28A10010 */ slti $at, $a1, 0x10 -/* 0B32B4 800B26B4 1420FFF6 */ bnez $at, .L800B2690 -/* 0B32B8 800B26B8 00A08025 */ move $s0, $a1 -/* 0B32BC 800B26BC 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B32C0 800B26C0 0C032384 */ jal play_sound2 -/* 0B32C4 800B26C4 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B32C8 800B26C8 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B32CC 800B26CC 10000028 */ b .L800B2770 -/* 0B32D0 800B26D0 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -.L800B26D4: -/* 0B32D4 800B26D4 11200022 */ beqz $t1, .L800B2760 -/* 0B32D8 800B26D8 3C028019 */ lui $v0, %hi(D_8018EDF1) # 0x8019 -/* 0B32DC 800B26DC 0C02D208 */ jal reset_save_data_grand_prix_points_and_sound_mode -/* 0B32E0 800B26E0 00000000 */ nop -/* 0B32E4 800B26E4 00008025 */ move $s0, $zero -/* 0B32E8 800B26E8 00002825 */ move $a1, $zero -.L800B26EC: -/* 0B32EC 800B26EC 04A10004 */ bgez $a1, .L800B2700 -/* 0B32F0 800B26F0 30AA0003 */ andi $t2, $a1, 3 -/* 0B32F4 800B26F4 11400002 */ beqz $t2, .L800B2700 -/* 0B32F8 800B26F8 00000000 */ nop -/* 0B32FC 800B26FC 254AFFFC */ addiu $t2, $t2, -4 -.L800B2700: -/* 0B3300 800B2700 24010002 */ li $at, 2 -/* 0B3304 800B2704 15410005 */ bne $t2, $at, .L800B271C -/* 0B3308 800B2708 00000000 */ nop -/* 0B330C 800B270C 0C02D501 */ jal func_800B5404 -/* 0B3310 800B2710 00002025 */ move $a0, $zero -/* 0B3314 800B2714 10000008 */ b .L800B2738 -/* 0B3318 800B2718 26100001 */ addiu $s0, $s0, 1 -.L800B271C: -/* 0B331C 800B271C 04A10003 */ bgez $a1, .L800B272C -/* 0B3320 800B2720 00052083 */ sra $a0, $a1, 2 -/* 0B3324 800B2724 24A10003 */ addiu $at, $a1, 3 -/* 0B3328 800B2728 00012083 */ sra $a0, $at, 2 -.L800B272C: -/* 0B332C 800B272C 0C02D501 */ jal func_800B5404 -/* 0B3330 800B2730 00000000 */ nop -/* 0B3334 800B2734 26100001 */ addiu $s0, $s0, 1 -.L800B2738: -/* 0B3338 800B2738 3205FFFF */ andi $a1, $s0, 0xffff -/* 0B333C 800B273C 28A10010 */ slti $at, $a1, 0x10 -/* 0B3340 800B2740 1420FFEA */ bnez $at, .L800B26EC -/* 0B3344 800B2744 00A08025 */ move $s0, $a1 -/* 0B3348 800B2748 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B334C 800B274C 0C032384 */ jal play_sound2 -/* 0B3350 800B2750 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -/* 0B3354 800B2754 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B3358 800B2758 10000005 */ b .L800B2770 -/* 0B335C 800B275C 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -.L800B2760: -/* 0B3360 800B2760 10000003 */ b .L800B2770 -/* 0B3364 800B2764 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -.L800B2768: -/* 0B3368 800B2768 3C028019 */ lui $v0, %hi(D_8018EDF1) # $v0, 0x8019 -/* 0B336C 800B276C 8042EDF1 */ lb $v0, %lo(D_8018EDF1)($v0) -.L800B2770: -/* 0B3370 800B2770 3C0C800F */ lui $t4, %hi(D_800F2B58) # 0x800f -/* 0B3374 800B2774 01826021 */ addu $t4, $t4, $v0 -/* 0B3378 800B2778 818C2B58 */ lb $t4, %lo(D_800F2B58)($t4) # 0x2b58($t4) -/* 0B337C 800B277C 3C038019 */ lui $v1, %hi(D_8018EDF3) # $v1, 0x8019 -/* 0B3380 800B2780 2463EDF3 */ addiu $v1, %lo(D_8018EDF3) # addiu $v1, $v1, -0x120d -/* 0B3384 800B2784 8FAE0028 */ lw $t6, 0x28($sp) -/* 0B3388 800B2788 A06C0000 */ sb $t4, ($v1) -/* 0B338C 800B278C 806D0000 */ lb $t5, ($v1) -/* 0B3390 800B2790 3C01800E */ lui $at, %hi(gPlayerCountSelection1) # $at, 0x800e -/* 0B3394 800B2794 11C00047 */ beqz $t6, .L800B28B4 -/* 0B3398 800B2798 AC2DC538 */ sw $t5, %lo(gPlayerCountSelection1)($at) -/* 0B339C 800B279C 97A3002E */ lhu $v1, 0x2e($sp) -/* 0B33A0 800B27A0 306F9000 */ andi $t7, $v1, 0x9000 -/* 0B33A4 800B27A4 51E00026 */ beql $t7, $zero, .L800B2840 -/* 0B33A8 800B27A8 306F4000 */ andi $t7, $v1, 0x4000 -/* 0B33AC 800B27AC 0C027870 */ jal func_8009E1C0 -/* 0B33B0 800B27B0 AFA30024 */ sw $v1, 0x24($sp) -/* 0B33B4 800B27B4 0C0328CC */ jal func_800CA330 -/* 0B33B8 800B27B8 24040019 */ li $a0, 25 -/* 0B33BC 800B27BC 8FA20030 */ lw $v0, 0x30($sp) -/* 0B33C0 800B27C0 24180040 */ li $t8, 64 -/* 0B33C4 800B27C4 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B33C8 800B27C8 A038EDEF */ sb $t8, %lo(gDebugMenuSelection)($at) -/* 0B33CC 800B27CC 94590004 */ lhu $t9, 4($v0) -/* 0B33D0 800B27D0 8FA30024 */ lw $v1, 0x24($sp) -/* 0B33D4 800B27D4 3C01800E */ lui $at, %hi(D_800DC51C) # 0x800e -/* 0B33D8 800B27D8 33280020 */ andi $t0, $t9, 0x20 -/* 0B33DC 800B27DC 11000005 */ beqz $t0, .L800B27F4 -/* 0B33E0 800B27E0 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900 -/* 0B33E4 800B27E4 24090001 */ li $t1, 1 -/* 0B33E8 800B27E8 3C01800E */ lui $at, %hi(D_800DC51C) # $at, 0x800e -/* 0B33EC 800B27EC 10000002 */ b .L800B27F8 -/* 0B33F0 800B27F0 A429C51C */ sh $t1, %lo(D_800DC51C)($at) -.L800B27F4: -/* 0B33F4 800B27F4 A420C51C */ sh $zero, %lo(D_800DC51C)($at) -.L800B27F8: -/* 0B33F8 800B27F8 944A0004 */ lhu $t2, 4($v0) -/* 0B33FC 800B27FC 306C8000 */ andi $t4, $v1, 0x8000 -/* 0B3400 800B2800 314B2000 */ andi $t3, $t2, 0x2000 -/* 0B3404 800B2804 11600009 */ beqz $t3, .L800B282C -/* 0B3408 800B2808 00000000 */ nop -/* 0B340C 800B280C 11800005 */ beqz $t4, .L800B2824 -/* 0B3410 800B2810 240E0003 */ li $t6, 3 -/* 0B3414 800B2814 240D0001 */ li $t5, 1 -/* 0B3418 800B2818 3C018019 */ lui $at, %hi(gDebugGotoScene) # $at, 0x8019 -/* 0B341C 800B281C 10000003 */ b .L800B282C -/* 0B3420 800B2820 A02DEDFA */ sb $t5, %lo(gDebugGotoScene)($at) -.L800B2824: -/* 0B3424 800B2824 3C018019 */ lui $at, %hi(gDebugGotoScene) # $at, 0x8019 -/* 0B3428 800B2828 A02EEDFA */ sb $t6, %lo(gDebugGotoScene)($at) -.L800B282C: -/* 0B342C 800B282C 0C032384 */ jal play_sound2 -/* 0B3430 800B2830 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016 -/* 0B3434 800B2834 10000020 */ b .L800B28B8 -/* 0B3438 800B2838 8FBF001C */ lw $ra, 0x1c($sp) -/* 0B343C 800B283C 306F4000 */ andi $t7, $v1, 0x4000 -.L800B2840: -/* 0B3440 800B2840 11E00014 */ beqz $t7, .L800B2894 -/* 0B3444 800B2844 8FB80030 */ lw $t8, 0x30($sp) -/* 0B3448 800B2848 97190004 */ lhu $t9, 4($t8) -/* 0B344C 800B284C 33282000 */ andi $t0, $t9, 0x2000 -/* 0B3450 800B2850 51000011 */ beql $t0, $zero, .L800B2898 -/* 0B3454 800B2854 306B0010 */ andi $t3, $v1, 0x10 -/* 0B3458 800B2858 0C027870 */ jal func_8009E1C0 -/* 0B345C 800B285C 00000000 */ nop -/* 0B3460 800B2860 0C0328CC */ jal func_800CA330 -/* 0B3464 800B2864 24040019 */ li $a0, 25 -/* 0B3468 800B2868 24090040 */ li $t1, 64 -/* 0B346C 800B286C 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B3470 800B2870 A029EDEF */ sb $t1, %lo(gDebugMenuSelection)($at) -/* 0B3474 800B2874 3C018019 */ lui $at, %hi(gDebugGotoScene) # $at, 0x8019 -/* 0B3478 800B2878 240A0002 */ li $t2, 2 -/* 0B347C 800B287C 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900 -/* 0B3480 800B2880 A02AEDFA */ sb $t2, %lo(gDebugGotoScene)($at) -/* 0B3484 800B2884 0C032384 */ jal play_sound2 -/* 0B3488 800B2888 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016 -/* 0B348C 800B288C 1000000A */ b .L800B28B8 -/* 0B3490 800B2890 8FBF001C */ lw $ra, 0x1c($sp) -.L800B2894: -/* 0B3494 800B2894 306B0010 */ andi $t3, $v1, 0x10 -.L800B2898: -/* 0B3498 800B2898 11600006 */ beqz $t3, .L800B28B4 -/* 0B349C 800B289C 240C0001 */ li $t4, 1 -/* 0B34A0 800B28A0 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B34A4 800B28A4 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900 -/* 0B34A8 800B28A8 A02CEDEF */ sb $t4, %lo(gDebugMenuSelection)($at) -/* 0B34AC 800B28AC 0C032384 */ jal play_sound2 -/* 0B34B0 800B28B0 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 -.L800B28B4: -/* 0B34B4 800B28B4 8FBF001C */ lw $ra, 0x1c($sp) -.L800B28B8: -/* 0B34B8 800B28B8 8FB00018 */ lw $s0, 0x18($sp) -/* 0B34BC 800B28BC 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0B34C0 800B28C0 03E00008 */ jr $ra -/* 0B34C4 800B28C4 00000000 */ nop diff --git a/asm/non_matchings/menus/func_800B29D8.s b/asm/non_matchings/menus/func_800B29D8.s index 0567935da..4f6119039 100644 --- a/asm/non_matchings/menus/func_800B29D8.s +++ b/asm/non_matchings/menus/func_800B29D8.s @@ -46,13 +46,13 @@ glabel func_800B29D8 /* 0B3660 800B2A60 8C2C2DFC */ lw $t4, %lo(jpt_800F2DFC)($at) # 0x2dfc($at) /* 0B3664 800B2A64 01800008 */ jr $t4 /* 0B3668 800B2A68 00000000 */ nop -glabel L800B2A6C +glabel L800B2A6C # case 0 /* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(D_8018EDF3) # $t5, 0x8019 /* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(D_8018EDF3)($t5) -/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B3678 800B2A78 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B367C 800B2A7C 01ED7821 */ addu $t7, $t7, $t5 -/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo(gGameModeRowSelectionForNumPlayers)($t7) # -0x7955($t7) +/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) /* 0B3684 800B2A84 000D7080 */ sll $t6, $t5, 2 /* 0B3688 800B2A88 01CD7023 */ subu $t6, $t6, $t5 /* 0B368C 800B2A8C 000E7080 */ sll $t6, $t6, 2 @@ -61,7 +61,7 @@ glabel L800B2A6C /* 0B3698 800B2A98 00791821 */ addu $v1, $v1, $t9 /* 0B369C 800B2A9C 1000028C */ b .L800B34D0 /* 0B36A0 800B2AA0 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) -glabel L800B2AA4 +glabel L800B2AA4 # case 3 /* 0B36A4 800B2AA4 30690100 */ andi $t1, $v1, 0x100 /* 0B36A8 800B2AA8 11200010 */ beqz $t1, .L800B2AEC /* 0B36AC 800B2AAC 00603025 */ move $a2, $v1 @@ -144,10 +144,10 @@ glabel L800B2AA4 /* 0B37C4 800B2BC4 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 /* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) -/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f /* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B37D8 800B2BD8 030FC021 */ addu $t8, $t8, $t7 -/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo(gGameModeRowSelectionForNumPlayers)($t8) # -0x7955($t8) +/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8) /* 0B37E0 800B2BE0 000F7080 */ sll $t6, $t7, 2 /* 0B37E4 800B2BE4 01CF7023 */ subu $t6, $t6, $t7 /* 0B37E8 800B2BE8 000E7080 */ sll $t6, $t6, 2 @@ -167,10 +167,10 @@ glabel L800B2AA4 /* 0B381C 800B2C1C 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001 /* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(D_8018EDF3) # $t4, 0x8019 /* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(D_8018EDF3)($t4) -/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3830 800B2C30 01EC7821 */ addu $t7, $t7, $t4 -/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo(gGameModeRowSelectionForNumPlayers)($t7) # -0x7955($t7) +/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) /* 0B3838 800B2C38 000C6880 */ sll $t5, $t4, 2 /* 0B383C 800B2C3C 01AC6823 */ subu $t5, $t5, $t4 /* 0B3840 800B2C40 000D6880 */ sll $t5, $t5, 2 @@ -189,10 +189,10 @@ glabel L800B2AA4 /* 0B3870 800B2C70 34849010 */ ori $a0, (0x49009010 & 0xFFFF) # ori $a0, $a0, 0x9010 /* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(D_8018EDF3) # $t1, 0x8019 /* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(D_8018EDF3)($t1) -/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f /* 0B3880 800B2C80 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3884 800B2C84 01695821 */ addu $t3, $t3, $t1 -/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo(gGameModeRowSelectionForNumPlayers)($t3) # -0x7955($t3) +/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) /* 0B388C 800B2C8C 00095080 */ sll $t2, $t1, 2 /* 0B3890 800B2C90 01495023 */ subu $t2, $t2, $t1 /* 0B3894 800B2C94 000A5080 */ sll $t2, $t2, 2 @@ -212,10 +212,10 @@ glabel L800B2AA4 /* 0B38C8 800B2CC8 34849011 */ ori $a0, (0x49009011 & 0xFFFF) # ori $a0, $a0, 0x9011 /* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019 /* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6) -/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((D_800E86AC - 1)) # 0x800f /* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B38DC 800B2CDC 012E4821 */ addu $t1, $t1, $t6 -/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo(gGameModeRowSelectionForNumPlayers)($t1) # -0x7955($t1) +/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((D_800E86AC - 1))($t1) # -0x7955($t1) /* 0B38E4 800B2CE4 000EC880 */ sll $t9, $t6, 2 /* 0B38E8 800B2CE8 032EC823 */ subu $t9, $t9, $t6 /* 0B38EC 800B2CEC 0019C880 */ sll $t9, $t9, 2 @@ -225,9 +225,9 @@ glabel L800B2AA4 /* 0B38FC 800B2CFC 100001F4 */ b .L800B34D0 /* 0B3900 800B2D00 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B2D04: -/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B3908 800B2D08 01E27821 */ addu $t7, $t7, $v0 -/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo(gGameModeRowSelectionForNumPlayers)($t7) # -0x7955($t7) +/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) /* 0B3910 800B2D10 01826023 */ subu $t4, $t4, $v0 /* 0B3914 800B2D14 000C6080 */ sll $t4, $t4, 2 /* 0B3918 800B2D18 000F6880 */ sll $t5, $t7, 2 @@ -236,7 +236,7 @@ glabel L800B2AA4 /* 0B3924 800B2D24 00781821 */ addu $v1, $v1, $t8 /* 0B3928 800B2D28 100001E9 */ b .L800B34D0 /* 0B392C 800B2D2C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) -glabel L800B2D30 +glabel L800B2D30 # case 4 /* 0B3930 800B2D30 306E0400 */ andi $t6, $v1, 0x400 /* 0B3934 800B2D34 11C00017 */ beqz $t6, .L800B2D94 /* 0B3938 800B2D38 00603025 */ move $a2, $v1 @@ -295,10 +295,10 @@ glabel L800B2D30 /* 0B3A00 800B2E00 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(D_8018EDF3) # $t6, 0x8019 /* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(D_8018EDF3)($t6) -/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f /* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3A14 800B2E14 032EC821 */ addu $t9, $t9, $t6 -/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo(gGameModeRowSelectionForNumPlayers)($t9) # -0x7955($t9) +/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9) /* 0B3A1C 800B2E1C 000E4880 */ sll $t1, $t6, 2 /* 0B3A20 800B2E20 012E4823 */ subu $t1, $t1, $t6 /* 0B3A24 800B2E24 00094880 */ sll $t1, $t1, 2 @@ -309,11 +309,11 @@ glabel L800B2D30 /* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B2E3C: /* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3A44 800B2E44 30CF8000 */ andi $t7, $a2, 0x8000 /* 0B3A48 800B2E48 00822021 */ addu $a0, $a0, $v0 /* 0B3A4C 800B2E4C 11E0003F */ beqz $t7, .L800B2F4C -/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo(gGameModeRowSelectionForNumPlayers)($a0) # -0x7955($a0) +/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) /* 0B3A54 800B2E54 00026080 */ sll $t4, $v0, 2 /* 0B3A58 800B2E58 01826023 */ subu $t4, $t4, $v0 /* 0B3A5C 800B2E5C 000C6080 */ sll $t4, $t4, 2 @@ -338,7 +338,7 @@ glabel L800B2D30 /* 0B3AA8 800B2EA8 240E0006 */ li $t6, 6 /* 0B3AAC 800B2EAC 10000015 */ b .L800B2F04 /* 0B3AB0 800B2EB0 A10E0000 */ sb $t6, ($t0) -.L800B2EB4: +.L800B2EB4: # case 0 /* 0B3AB4 800B2EB4 0C032384 */ jal play_sound2 /* 0B3AB8 800B2EB8 A1190000 */ sb $t9, ($t0) /* 0B3ABC 800B2EBC 10000011 */ b .L800B2F04 @@ -367,10 +367,10 @@ glabel L800B2D30 /* 0B3B08 800B2F08 00000000 */ nop /* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 /* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) -/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f /* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3B1C 800B2F1C 01AF6821 */ addu $t5, $t5, $t7 -/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo(gGameModeRowSelectionForNumPlayers)($t5) # -0x7955($t5) +/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5) /* 0B3B24 800B2F24 000F6080 */ sll $t4, $t7, 2 /* 0B3B28 800B2F28 018F6023 */ subu $t4, $t4, $t7 /* 0B3B2C 800B2F2C 000C6080 */ sll $t4, $t4, 2 @@ -391,7 +391,7 @@ glabel L800B2D30 /* 0B3B64 800B2F64 006B1821 */ addu $v1, $v1, $t3 /* 0B3B68 800B2F68 10000159 */ b .L800B34D0 /* 0B3B6C 800B2F6C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) -glabel L800B2F70 +glabel L800B2F70 # case 5, 8 /* 0B3B70 800B2F70 14A00023 */ bnez $a1, .L800B3000 /* 0B3B74 800B2F74 00603025 */ move $a2, $v1 /* 0B3B78 800B2F78 3C0A8019 */ lui $t2, %hi(gMenuTimingCounter) # $t2, 0x8019 @@ -409,10 +409,10 @@ glabel L800B2F70 /* 0B3BA8 800B2FA8 00000000 */ nop .L800B2FAC: /* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f /* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3BB8 800B2FB8 0302C021 */ addu $t8, $t8, $v0 -/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo(gGameModeRowSelectionForNumPlayers)($t8) # -0x7955($t8) +/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8) /* 0B3BC0 800B2FC0 00026080 */ sll $t4, $v0, 2 /* 0B3BC4 800B2FC4 01826023 */ subu $t4, $t4, $v0 /* 0B3BC8 800B2FC8 000C6080 */ sll $t4, $t4, 2 @@ -433,10 +433,10 @@ glabel L800B2F70 .L800B3000: /* 0B3C00 800B3000 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0B3C04 800B3004 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f /* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(D_800E86B0) # $t7, 0x800f /* 0B3C10 800B3010 01625821 */ addu $t3, $t3, $v0 -/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo(gGameModeRowSelectionForNumPlayers)($t3) # -0x7955($t3) +/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) /* 0B3C18 800B3018 00024880 */ sll $t1, $v0, 2 /* 0B3C1C 800B301C 01224823 */ subu $t1, $t1, $v0 /* 0B3C20 800B3020 25EF86B0 */ addiu $t7, %lo(D_800E86B0) # addiu $t7, $t7, -0x7950 @@ -471,10 +471,10 @@ glabel L800B2F70 /* 0B3C90 800B3090 8FA6001C */ lw $a2, 0x1c($sp) /* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((D_800F2B60 + 0xD)) # 0x800f /* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0 -/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo(gGameModeRowSelectionForNumPlayers)($a0) # -0x7955($a0) +/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) /* 0B3CAC 800B30AC 00027080 */ sll $t6, $v0, 2 /* 0B3CB0 800B30B0 01C27023 */ subu $t6, $t6, $v0 /* 0B3CB4 800B30B4 01C4C821 */ addu $t9, $t6, $a0 @@ -488,10 +488,10 @@ glabel L800B2F70 .L800B30D4: /* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f /* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((D_800F2B60 + 1)) # 0x800f /* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0 -/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo(gGameModeRowSelectionForNumPlayers)($a0) # -0x7955($a0) +/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) /* 0B3CEC 800B30EC 00025880 */ sll $t3, $v0, 2 /* 0B3CF0 800B30F0 01625823 */ subu $t3, $t3, $v0 /* 0B3CF4 800B30F4 01645021 */ addu $t2, $t3, $a0 @@ -521,10 +521,10 @@ glabel L800B2F70 .L800B3150: /* 0B3D50 800B3150 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0B3D54 800B3154 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f -/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi(gGameModeSubMenuRowSelectionForNumPlayers) # 0x800f +/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((D_800E86AC - 1)) # 0x800f +/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((D_800E86B0 - 3)) # 0x800f /* 0B3D60 800B3160 00822021 */ addu $a0, $a0, $v0 -/* 0B3D64 800B3164 808486AB */ lb $a0, %lo(gGameModeRowSelectionForNumPlayers)($a0) # -0x7955($a0) +/* 0B3D64 800B3164 808486AB */ lb $a0, %lo((D_800E86AC - 1))($a0) # -0x7955($a0) /* 0B3D68 800B3168 00024880 */ sll $t1, $v0, 2 /* 0B3D6C 800B316C 01224823 */ subu $t1, $t1, $v0 /* 0B3D70 800B3170 01245821 */ addu $t3, $t1, $a0 @@ -533,7 +533,7 @@ glabel L800B2F70 /* 0B3D7C 800B317C 30CA4000 */ andi $t2, $a2, 0x4000 /* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelectionDepth) # addiu $t0, $t0, -0x1213 /* 0B3D84 800B3184 11400015 */ beqz $t2, .L800B31DC -/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo(gGameModeSubMenuRowSelectionForNumPlayers)($a1) # -0x7953($a1) +/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((D_800E86B0 - 3))($a1) # -0x7953($a1) /* 0B3D8C 800B318C 240F0004 */ li $t7, 4 /* 0B3D90 800B3190 0C02D12B */ jal func_800B44AC /* 0B3D94 800B3194 A10F0000 */ sb $t7, ($t0) @@ -542,10 +542,10 @@ glabel L800B2F70 /* 0B3DA0 800B31A0 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(D_8018EDF3) # $t5, 0x8019 /* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(D_8018EDF3)($t5) -/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f /* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3DB4 800B31B4 018D6021 */ addu $t4, $t4, $t5 -/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo(gGameModeRowSelectionForNumPlayers)($t4) # -0x7955($t4) +/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4) /* 0B3DBC 800B31BC 000DC080 */ sll $t8, $t5, 2 /* 0B3DC0 800B31C0 030DC023 */ subu $t8, $t8, $t5 /* 0B3DC4 800B31C4 0018C080 */ sll $t8, $t8, 2 @@ -565,9 +565,9 @@ glabel L800B2F70 /* 0B3DF8 800B31F8 24070001 */ li $a3, 1 /* 0B3DFC 800B31FC 8FA50028 */ lw $a1, 0x28($sp) /* 0B3E00 800B3200 14E2000E */ bne $a3, $v0, .L800B323C -/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi((D_800E86AC - 1)) # 0x800f /* 0B3E08 800B3208 01625821 */ addu $t3, $t3, $v0 -/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo(gGameModeRowSelectionForNumPlayers)($t3) # -0x7955($t3) +/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo((D_800E86AC - 1))($t3) # -0x7955($t3) /* 0B3E10 800B3210 54EB000B */ bnel $a3, $t3, .L800B3240 /* 0B3E14 800B3214 240A0006 */ li $t2, 6 /* 0B3E18 800B3218 54A70009 */ bnel $a1, $a3, .L800B3240 @@ -592,10 +592,10 @@ glabel L800B2F70 .L800B325C: /* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 /* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) -/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((D_800E86AC - 1)) # 0x800f /* 0B3E68 800B3268 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3E6C 800B326C 018F6021 */ addu $t4, $t4, $t7 -/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo(gGameModeRowSelectionForNumPlayers)($t4) # -0x7955($t4) +/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((D_800E86AC - 1))($t4) # -0x7955($t4) /* 0B3E74 800B3274 000F6880 */ sll $t5, $t7, 2 /* 0B3E78 800B3278 01AF6823 */ subu $t5, $t5, $t7 /* 0B3E7C 800B327C 000D6880 */ sll $t5, $t5, 2 @@ -613,7 +613,7 @@ glabel L800B2F70 /* 0B3EA8 800B32A8 006B1821 */ addu $v1, $v1, $t3 /* 0B3EAC 800B32AC 10000088 */ b .L800B34D0 /* 0B3EB0 800B32B0 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) -glabel L800B32B4 +glabel L800B32B4 # case 6, 7 /* 0B3EB4 800B32B4 14A00014 */ bnez $a1, .L800B3308 /* 0B3EB8 800B32B8 00603025 */ move $a2, $v1 /* 0B3EBC 800B32BC 3C0A8019 */ lui $t2, %hi(gMenuTimingCounter) # $t2, 0x8019 @@ -643,10 +643,10 @@ glabel L800B32B4 /* 0B3F10 800B3310 30D98000 */ andi $t9, $a2, 0x8000 /* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(D_8018EDF3) # $v0, 0x8019 /* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(D_8018EDF3)($v0) -/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((D_800E86AC - 1)) # 0x800f /* 0B3F20 800B3320 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3F24 800B3324 01C27021 */ addu $t6, $t6, $v0 -/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo(gGameModeRowSelectionForNumPlayers)($t6) # -0x7955($t6) +/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((D_800E86AC - 1))($t6) # -0x7955($t6) /* 0B3F2C 800B332C 0002C080 */ sll $t8, $v0, 2 /* 0B3F30 800B3330 0302C023 */ subu $t8, $t8, $v0 /* 0B3F34 800B3334 0018C080 */ sll $t8, $t8, 2 @@ -679,10 +679,10 @@ glabel L800B32B4 /* 0B3F94 800B3394 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002 /* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(D_8018EDF3) # $t7, 0x8019 /* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(D_8018EDF3)($t7) -/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((D_800E86AC - 1)) # 0x800f /* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B3FA8 800B33A8 01AF6821 */ addu $t5, $t5, $t7 -/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo(gGameModeRowSelectionForNumPlayers)($t5) # -0x7955($t5) +/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((D_800E86AC - 1))($t5) # -0x7955($t5) /* 0B3FB0 800B33B0 000F6080 */ sll $t4, $t7, 2 /* 0B3FB4 800B33B4 018F6023 */ subu $t4, $t4, $t7 /* 0B3FB8 800B33B8 000C6080 */ sll $t4, $t4, 2 @@ -705,10 +705,10 @@ glabel L800B32B4 /* 0B3FF8 800B33F8 00000000 */ nop /* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(D_8018EDF3) # $t1, 0x8019 /* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(D_8018EDF3)($t1) -/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((D_800E86AC - 1)) # 0x800f /* 0B4008 800B3408 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B400C 800B340C 01495021 */ addu $t2, $t2, $t1 -/* 0B4010 800B3410 814A86AB */ lb $t2, %lo(gGameModeRowSelectionForNumPlayers)($t2) # -0x7955($t2) +/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((D_800E86AC - 1))($t2) # -0x7955($t2) /* 0B4014 800B3414 00095880 */ sll $t3, $t1, 2 /* 0B4018 800B3418 01695823 */ subu $t3, $t3, $t1 /* 0B401C 800B341C 000B5880 */ sll $t3, $t3, 2 @@ -719,10 +719,10 @@ glabel L800B32B4 /* 0B4030 800B3430 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) .L800B3434: /* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(D_8018EDF3)($t4) -/* 0B4038 800B3438 3C18800F */ lui $t8, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((D_800E86AC - 1)) # 0x800f /* 0B403C 800B343C 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B4040 800B3440 030CC021 */ addu $t8, $t8, $t4 -/* 0B4044 800B3444 831886AB */ lb $t8, %lo(gGameModeRowSelectionForNumPlayers)($t8) # -0x7955($t8) +/* 0B4044 800B3444 831886AB */ lb $t8, %lo((D_800E86AC - 1))($t8) # -0x7955($t8) /* 0B4048 800B3448 000C7080 */ sll $t6, $t4, 2 /* 0B404C 800B344C 01CC7023 */ subu $t6, $t6, $t4 /* 0B4050 800B3450 000E7080 */ sll $t6, $t6, 2 @@ -731,13 +731,13 @@ glabel L800B32B4 /* 0B405C 800B345C 00691821 */ addu $v1, $v1, $t1 /* 0B4060 800B3460 1000001B */ b .L800B34D0 /* 0B4064 800B3464 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) -glabel L800B3468 +glabel L800B3468 # case 1, 2 /* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(D_8018EDF3) # $t2, 0x8019 /* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(D_8018EDF3)($t2) -/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((D_800E86AC - 1)) # 0x800f /* 0B4074 800B3474 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B4078 800B3478 01EA7821 */ addu $t7, $t7, $t2 -/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo(gGameModeRowSelectionForNumPlayers)($t7) # -0x7955($t7) +/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((D_800E86AC - 1))($t7) # -0x7955($t7) /* 0B4080 800B3480 000A5880 */ sll $t3, $t2, 2 /* 0B4084 800B3484 016A5823 */ subu $t3, $t3, $t2 /* 0B4088 800B3488 000B5880 */ sll $t3, $t3, 2 @@ -746,12 +746,12 @@ glabel L800B3468 /* 0B4094 800B3494 006C1821 */ addu $v1, $v1, $t4 /* 0B4098 800B3498 1000000D */ b .L800B34D0 /* 0B409C 800B349C 8C632B70 */ lw $v1, %lo(gGameModeFromNumPlayersAndRowSelection)($v1) # 0x2b70($v1) -.L800B34A0: +.L800B34A0: # default /* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(D_8018EDF3)($t8) # -0x120d($t8) -/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi(gGameModeRowSelectionForNumPlayers) # 0x800f +/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((D_800E86AC - 1)) # 0x800f /* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi(gGameModeFromNumPlayersAndRowSelection) # 0x800f /* 0B40AC 800B34AC 0338C821 */ addu $t9, $t9, $t8 -/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo(gGameModeRowSelectionForNumPlayers)($t9) # -0x7955($t9) +/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((D_800E86AC - 1))($t9) # -0x7955($t9) /* 0B40B4 800B34B4 00187080 */ sll $t6, $t8, 2 /* 0B40B8 800B34B8 01D87023 */ subu $t6, $t6, $t8 /* 0B40BC 800B34BC 000E7080 */ sll $t6, $t6, 2 diff --git a/asm/non_matchings/menus/func_800B3554.s b/asm/non_matchings/menus/func_800B3554.s index 8cc23bb33..a00cee842 100644 --- a/asm/non_matchings/menus/func_800B3554.s +++ b/asm/non_matchings/menus/func_800B3554.s @@ -37,7 +37,7 @@ glabel func_800B3554 /* 0B41DC 800B35DC 006A1821 */ addu $v1, $v1, $t2 /* 0B41E0 800B35E0 10000150 */ b .L800B3B24 /* 0B41E4 800B35E4 8063EDE4 */ lb $v1, %lo(gCharacterGridSelections)($v1) # -0x121c($v1) -.L800B35E8: +.L800B35E8: # case 1 /* 0B41E8 800B35E8 3C108019 */ lui $s0, %hi(gCharacterGridSelections) # $s0, 0x8019 /* 0B41EC 800B35EC 2610EDE4 */ addiu $s0, %lo(gCharacterGridSelections) # addiu $s0, $s0, -0x121c /* 0B41F0 800B35F0 020B6021 */ addu $t4, $s0, $t3 @@ -166,7 +166,7 @@ glabel func_800B3554 /* 0B43B0 800B37B0 24700005 */ addiu $s0, $v1, 5 /* 0B43B4 800B37B4 0010CE00 */ sll $t9, $s0, 0x18 /* 0B43B8 800B37B8 00192603 */ sra $a0, $t9, 0x18 -/* 0B43BC 800B37BC 0C02CD3A */ jal func_800B34E8 +/* 0B43BC 800B37BC 0C02CD3A */ jal is_character_spot_free /* 0B43C0 800B37C0 00808025 */ move $s0, $a0 /* 0B43C4 800B37C4 104000DF */ beqz $v0, .L800B3B44 /* 0B43C8 800B37C8 8FA90028 */ lw $t1, 0x28($sp) @@ -192,7 +192,7 @@ glabel func_800B3554 /* 0B4410 800B3810 24700003 */ addiu $s0, $v1, 3 /* 0B4414 800B3814 00105E00 */ sll $t3, $s0, 0x18 /* 0B4418 800B3818 000B2603 */ sra $a0, $t3, 0x18 -/* 0B441C 800B381C 0C02CD3A */ jal func_800B34E8 +/* 0B441C 800B381C 0C02CD3A */ jal is_character_spot_free /* 0B4420 800B3820 00808025 */ move $s0, $a0 /* 0B4424 800B3824 104000C7 */ beqz $v0, .L800B3B44 /* 0B4428 800B3828 8FAD0028 */ lw $t5, 0x28($sp) @@ -217,7 +217,7 @@ glabel func_800B3554 /* 0B446C 800B386C 2470FFFD */ addiu $s0, $v1, -3 /* 0B4470 800B3870 00107E00 */ sll $t7, $s0, 0x18 /* 0B4474 800B3874 000F2603 */ sra $a0, $t7, 0x18 -/* 0B4478 800B3878 0C02CD3A */ jal func_800B34E8 +/* 0B4478 800B3878 0C02CD3A */ jal is_character_spot_free /* 0B447C 800B387C 00808025 */ move $s0, $a0 /* 0B4480 800B3880 104000B0 */ beqz $v0, .L800B3B44 /* 0B4484 800B3884 8FB90028 */ lw $t9, 0x28($sp) @@ -242,7 +242,7 @@ glabel func_800B3554 /* 0B44C8 800B38C8 2470FFFB */ addiu $s0, $v1, -5 /* 0B44CC 800B38CC 00104E00 */ sll $t1, $s0, 0x18 /* 0B44D0 800B38D0 00092603 */ sra $a0, $t1, 0x18 -/* 0B44D4 800B38D4 0C02CD3A */ jal func_800B34E8 +/* 0B44D4 800B38D4 0C02CD3A */ jal is_character_spot_free /* 0B44D8 800B38D8 00808025 */ move $s0, $a0 /* 0B44DC 800B38DC 10400099 */ beqz $v0, .L800B3B44 /* 0B44E0 800B38E0 8FAB0028 */ lw $t3, 0x28($sp) @@ -262,7 +262,7 @@ glabel func_800B3554 /* 0B4514 800B3914 00106600 */ sll $t4, $s0, 0x18 /* 0B4518 800B3918 000C8603 */ sra $s0, $t4, 0x18 .L800B391C: -/* 0B451C 800B391C 0C02CD3A */ jal func_800B34E8 +/* 0B451C 800B391C 0C02CD3A */ jal is_character_spot_free /* 0B4520 800B3920 02002025 */ move $a0, $s0 /* 0B4524 800B3924 10400008 */ beqz $v0, .L800B3948 /* 0B4528 800B3928 24010005 */ li $at, 5 @@ -297,7 +297,7 @@ glabel func_800B3554 /* 0B4594 800B3994 0010CE00 */ sll $t9, $s0, 0x18 /* 0B4598 800B3998 00198603 */ sra $s0, $t9, 0x18 .L800B399C: -/* 0B459C 800B399C 0C02CD3A */ jal func_800B34E8 +/* 0B459C 800B399C 0C02CD3A */ jal is_character_spot_free /* 0B45A0 800B39A0 02002025 */ move $a0, $s0 /* 0B45A4 800B39A4 10400008 */ beqz $v0, .L800B39C8 /* 0B45A8 800B39A8 24010004 */ li $at, 4 @@ -338,7 +338,7 @@ glabel func_800B3554 /* 0B4628 800B3A28 00107E00 */ sll $t7, $s0, 0x18 /* 0B462C 800B3A2C 000F8603 */ sra $s0, $t7, 0x18 .L800B3A30: -/* 0B4630 800B3A30 0C02CD3A */ jal func_800B34E8 +/* 0B4630 800B3A30 0C02CD3A */ jal is_character_spot_free /* 0B4634 800B3A34 02002025 */ move $a0, $s0 /* 0B4638 800B3A38 10400005 */ beqz $v0, .L800B3A50 /* 0B463C 800B3A3C 8FB90028 */ lw $t9, 0x28($sp) @@ -350,7 +350,7 @@ glabel func_800B3554 /* 0B4650 800B3A50 8FA80028 */ lw $t0, 0x28($sp) /* 0B4654 800B3A54 10000033 */ b .L800B3B24 /* 0B4658 800B3A58 81030000 */ lb $v1, ($t0) -.L800B3A5C: +.L800B3A5C: # case 2, 3 /* 0B465C 800B3A5C 15200011 */ bnez $t1, .L800B3AA4 /* 0B4660 800B3A60 00603025 */ move $a2, $v1 /* 0B4664 800B3A64 3C038019 */ lui $v1, %hi(gMenuTimingCounter) # $v1, 0x8019 diff --git a/asm/non_matchings/menus/func_800B3F74.s b/asm/non_matchings/menus/func_800B3F74.s deleted file mode 100644 index d4c86fd48..000000000 --- a/asm/non_matchings/menus/func_800B3F74.s +++ /dev/null @@ -1,382 +0,0 @@ -.section .late_rodata -glabel jpt_800F2E20 -.word L800B4070, L800B4100 -.word L800B4230, L800B43B0, L800B4494, L800B4014 -.word L800B4024, L800B4030, L800B4040, L800B4054 -.word L800B4070, L800B4100, L800B4230, L800B43B0 - -.section .text -glabel func_800B3F74 -/* 0B4B74 800B3F74 24030001 */ li $v1, 1 -/* 0B4B78 800B3F78 3C018019 */ lui $at, %hi(gDebugMenuSelection) # $at, 0x8019 -/* 0B4B7C 800B3F7C A023EDEF */ sb $v1, %lo(gDebugMenuSelection)($at) -/* 0B4B80 800B3F80 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019 -/* 0B4B84 800B3F84 AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at) -/* 0B4B88 800B3F88 3C018019 */ lui $at, %hi(D_8018EE04) # $at, 0x8019 -/* 0B4B8C 800B3F8C AC20EE04 */ sw $zero, %lo(D_8018EE04)($at) -/* 0B4B90 800B3F90 3C018019 */ lui $at, %hi(D_8018EE08) # $at, 0x8019 -/* 0B4B94 800B3F94 A020EE08 */ sb $zero, %lo(D_8018EE08)($at) -/* 0B4B98 800B3F98 3C018016 */ lui $at, %hi(D_8015F890) # $at, 0x8016 -/* 0B4B9C 800B3F9C A420F890 */ sh $zero, %lo(D_8015F890)($at) -/* 0B4BA0 800B3FA0 3C018016 */ lui $at, %hi(D_8015F892) # $at, 0x8016 -/* 0B4BA4 800B3FA4 A420F892 */ sh $zero, %lo(D_8015F892)($at) -/* 0B4BA8 800B3FA8 3C018019 */ lui $at, %hi(gDebugGotoScene) # $at, 0x8019 -/* 0B4BAC 800B3FAC A020EDFA */ sb $zero, %lo(gDebugGotoScene)($at) -/* 0B4BB0 800B3FB0 3C018019 */ lui $at, %hi(D_8018EDFB) # $at, 0x8019 -/* 0B4BB4 800B3FB4 A020EDFB */ sb $zero, %lo(D_8018EDFB)($at) -/* 0B4BB8 800B3FB8 3C018016 */ lui $at, %hi(D_8016556E) # $at, 0x8016 -/* 0B4BBC 800B3FBC A420556E */ sh $zero, %lo(D_8016556E)($at) -/* 0B4BC0 800B3FC0 24020001 */ li $v0, 1 -/* 0B4BC4 800B3FC4 3C018016 */ lui $at, %hi(D_80162DD4) # $at, 0x8016 -/* 0B4BC8 800B3FC8 A4222DD4 */ sh $v0, %lo(D_80162DD4)($at) -/* 0B4BCC 800B3FCC 3C018016 */ lui $at, %hi(D_80162DD8) # $at, 0x8016 -/* 0B4BD0 800B3FD0 A4222DD8 */ sh $v0, %lo(D_80162DD8)($at) -/* 0B4BD4 800B3FD4 3C018016 */ lui $at, %hi(D_80162E00) # $at, 0x8016 -/* 0B4BD8 800B3FD8 AC202E00 */ sw $zero, %lo(D_80162E00)($at) -/* 0B4BDC 800B3FDC 3C018016 */ lui $at, %hi(D_80162DC8) # $at, 0x8016 -/* 0B4BE0 800B3FE0 AC232DC8 */ sw $v1, %lo(D_80162DC8)($at) -/* 0B4BE4 800B3FE4 3C018016 */ lui $at, %hi(D_80162DCC) # $at, 0x8016 -/* 0B4BE8 800B3FE8 AC202DCC */ sw $zero, %lo(D_80162DCC)($at) -/* 0B4BEC 800B3FEC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0B4BF0 800B3FF0 2C81000E */ sltiu $at, $a0, 0xe -/* 0B4BF4 800B3FF4 10200127 */ beqz $at, .L800B4494 -/* 0B4BF8 800B3FF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B4BFC 800B3FFC 00047080 */ sll $t6, $a0, 2 -/* 0B4C00 800B4000 3C01800F */ lui $at, %hi(jpt_800F2E20) # 0x800f -/* 0B4C04 800B4004 002E0821 */ addu $at, $at, $t6 -/* 0B4C08 800B4008 8C2E2E20 */ lw $t6, %lo(jpt_800F2E20)($at) # 0x2e20($at) -/* 0B4C0C 800B400C 01C00008 */ jr $t6 -/* 0B4C10 800B4010 00000000 */ nop -glabel L800B4014 -/* 0B4C14 800B4014 240F0015 */ li $t7, 21 -/* 0B4C18 800B4018 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B4C1C 800B401C 1000011D */ b .L800B4494 -/* 0B4C20 800B4020 A02FEDEC */ sb $t7, %lo(D_8018EDEC)($at) -glabel L800B4024 -/* 0B4C24 800B4024 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B4C28 800B4028 1000011A */ b .L800B4494 -/* 0B4C2C 800B402C A023EDEC */ sb $v1, %lo(D_8018EDEC)($at) -glabel L800B4030 -/* 0B4C30 800B4030 2418000B */ li $t8, 11 -/* 0B4C34 800B4034 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B4C38 800B4038 10000116 */ b .L800B4494 -/* 0B4C3C 800B403C A038EDEC */ sb $t8, %lo(D_8018EDEC)($at) -glabel L800B4040 -/* 0B4C40 800B4040 00002025 */ move $a0, $zero -/* 0B4C44 800B4044 0C032802 */ jal func_800CA008 -/* 0B4C48 800B4048 00002825 */ move $a1, $zero -/* 0B4C4C 800B404C 10000111 */ b .L800B4494 -/* 0B4C50 800B4050 00000000 */ nop -glabel L800B4054 -/* 0B4C54 800B4054 3C018019 */ lui $at, %hi(gControllerPakMenuSelection) # $at, 0x8019 -/* 0B4C58 800B4058 A023EDF0 */ sb $v1, %lo(gControllerPakMenuSelection)($at) -/* 0B4C5C 800B405C 00002025 */ move $a0, $zero -/* 0B4C60 800B4060 0C032802 */ jal func_800CA008 -/* 0B4C64 800B4064 00002825 */ move $a1, $zero -/* 0B4C68 800B4068 1000010A */ b .L800B4494 -/* 0B4C6C 800B406C 00000000 */ nop -glabel L800B4070 -/* 0B4C70 800B4070 3C01800E */ lui $at, %hi(gIsMirrorMode) # $at, 0x800e -/* 0B4C74 800B4074 AC20C604 */ sw $zero, %lo(gIsMirrorMode)($at) -/* 0B4C78 800B4078 3C01800E */ lui $at, %hi(gEnableDebugMode) # $at, 0x800e -/* 0B4C7C 800B407C 3C028019 */ lui $v0, %hi(gCupSelection) # $v0, 0x8019 -/* 0B4C80 800B4080 A420C520 */ sh $zero, %lo(gEnableDebugMode)($at) -/* 0B4C84 800B4084 2442EE09 */ addiu $v0, %lo(gCupSelection) # addiu $v0, $v0, -0x11f7 -/* 0B4C88 800B4088 A0400000 */ sb $zero, ($v0) -/* 0B4C8C 800B408C 3C018019 */ lui $at, %hi(gCupCourseSelection) # $at, 0x8019 -/* 0B4C90 800B4090 A020EE0B */ sb $zero, %lo(gCupCourseSelection)($at) -/* 0B4C94 800B4094 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 -/* 0B4C98 800B4098 3C018019 */ lui $at, %hi(gTimeTrialDataCourseIndex) # $at, 0x8019 -/* 0B4C9C 800B409C 2484EDF3 */ addiu $a0, %lo(D_8018EDF3) # addiu $a0, $a0, -0x120d -/* 0B4CA0 800B40A0 A020EDF7 */ sb $zero, %lo(gTimeTrialDataCourseIndex)($at) -/* 0B4CA4 800B40A4 80870000 */ lb $a3, ($a0) -/* 0B4CA8 800B40A8 24080004 */ li $t0, 4 -/* 0B4CAC 800B40AC 3C19800F */ lui $t9, %hi((D_800F2BDC + 3)) # 0x800f -/* 0B4CB0 800B40B0 1CE00003 */ bgtz $a3, .L800B40C0 -/* 0B4CB4 800B40B4 00002825 */ move $a1, $zero -/* 0B4CB8 800B40B8 A0830000 */ sb $v1, ($a0) -/* 0B4CBC 800B40BC 80870000 */ lb $a3, ($a0) -.L800B40C0: -/* 0B4CC0 800B40C0 28E10005 */ slti $at, $a3, 5 -/* 0B4CC4 800B40C4 54200004 */ bnel $at, $zero, .L800B40D8 -/* 0B4CC8 800B40C8 0327C821 */ addu $t9, $t9, $a3 -/* 0B4CCC 800B40CC A0880000 */ sb $t0, ($a0) -/* 0B4CD0 800B40D0 80870000 */ lb $a3, ($a0) -/* 0B4CD4 800B40D4 0327C821 */ addu $t9, $t9, $a3 -.L800B40D8: -/* 0B4CD8 800B40D8 83392BDF */ lb $t9, %lo((D_800F2BDC + 3))($t9) # 0x2bdf($t9) -/* 0B4CDC 800B40DC 3C018019 */ lui $at, %hi(D_8018EDF1) # $at, 0x8019 -/* 0B4CE0 800B40E0 00002025 */ move $a0, $zero -/* 0B4CE4 800B40E4 0C032802 */ jal func_800CA008 -/* 0B4CE8 800B40E8 A039EDF1 */ sb $t9, %lo(D_8018EDF1)($at) -/* 0B4CEC 800B40EC 0C0323AB */ jal func_800C8EAC -/* 0B4CF0 800B40F0 24040001 */ li $a0, 1 -/* 0B4CF4 800B40F4 3C018019 */ lui $at, %hi(D_8018EDFC) # $at, 0x8019 -/* 0B4CF8 800B40F8 100000E6 */ b .L800B4494 -/* 0B4CFC 800B40FC A020EDFC */ sb $zero, %lo(D_8018EDFC)($at) -glabel L800B4100 -/* 0B4D00 800B4100 3C01800E */ lui $at, %hi(gEnableDebugMode) # $at, 0x800e -/* 0B4D04 800B4104 A420C520 */ sh $zero, %lo(gEnableDebugMode)($at) -/* 0B4D08 800B4108 3C01800E */ lui $at, %hi(gIsMirrorMode) # $at, 0x800e -/* 0B4D0C 800B410C AC20C604 */ sw $zero, %lo(gIsMirrorMode)($at) -/* 0B4D10 800B4110 3C018019 */ lui $at, %hi(D_8018EDFC) # $at, 0x8019 -/* 0B4D14 800B4114 0C02D7CC */ jal func_800B5F30 -/* 0B4D18 800B4118 A020EDFC */ sb $zero, %lo(D_8018EDFC)($at) -/* 0B4D1C 800B411C 0C003C38 */ jal func_8000F0E0 -/* 0B4D20 800B4120 00000000 */ nop -/* 0B4D24 800B4124 3C09800E */ lui $t1, %hi(D_800DC50C) # $t1, 0x800e -/* 0B4D28 800B4128 8D29C50C */ lw $t1, %lo(D_800DC50C)($t1) -/* 0B4D2C 800B412C 24030001 */ li $v1, 1 -/* 0B4D30 800B4130 00002025 */ move $a0, $zero -/* 0B4D34 800B4134 1120000C */ beqz $t1, .L800B4168 -/* 0B4D38 800B4138 00000000 */ nop -/* 0B4D3C 800B413C 0C032802 */ jal func_800CA008 -/* 0B4D40 800B4140 00002825 */ move $a1, $zero -/* 0B4D44 800B4144 0C032CB1 */ jal func_800CB2C4 -/* 0B4D48 800B4148 00000000 */ nop -/* 0B4D4C 800B414C 3C01800E */ lui $at, %hi(D_800DC50C) # $at, 0x800e -/* 0B4D50 800B4150 AC20C50C */ sw $zero, %lo(D_800DC50C)($at) -/* 0B4D54 800B4154 3C01800E */ lui $at, %hi(D_800DC524) # $at, 0x800e -/* 0B4D58 800B4158 AC20C524 */ sw $zero, %lo(D_800DC524)($at) -/* 0B4D5C 800B415C 0C0323AB */ jal func_800C8EAC -/* 0B4D60 800B4160 24040002 */ li $a0, 2 -/* 0B4D64 800B4164 24030001 */ li $v1, 1 -.L800B4168: -/* 0B4D68 800B4168 3C028019 */ lui $v0, %hi(D_8018EDE0) # $v0, 0x8019 -/* 0B4D6C 800B416C 8C42EDE0 */ lw $v0, %lo(D_8018EDE0)($v0) -/* 0B4D70 800B4170 3C058019 */ lui $a1, %hi(gMainMenuSelectionDepth) # $a1, 0x8019 -/* 0B4D74 800B4174 24A5EDED */ addiu $a1, %lo(gMainMenuSelectionDepth) # addiu $a1, $a1, -0x1213 -/* 0B4D78 800B4178 1040000B */ beqz $v0, .L800B41A8 -/* 0B4D7C 800B417C 24060003 */ li $a2, 3 -/* 0B4D80 800B4180 10430019 */ beq $v0, $v1, .L800B41E8 -/* 0B4D84 800B4184 3C058019 */ lui $a1, %hi(gMainMenuSelectionDepth) # 0x8019 -/* 0B4D88 800B4188 24060003 */ li $a2, 3 -/* 0B4D8C 800B418C 1046001A */ beq $v0, $a2, .L800B41F8 -/* 0B4D90 800B4190 3C058019 */ lui $a1, %hi(gMainMenuSelectionDepth) # 0x8019 -/* 0B4D94 800B4194 24080004 */ li $t0, 4 -/* 0B4D98 800B4198 10480022 */ beq $v0, $t0, .L800B4224 -/* 0B4D9C 800B419C 3C058019 */ lui $a1, %hi(gMainMenuSelectionDepth) # 0x8019 -/* 0B4DA0 800B41A0 100000BC */ b .L800B4494 -/* 0B4DA4 800B41A4 00000000 */ nop -.L800B41A8: -/* 0B4DA8 800B41A8 A0A60000 */ sb $a2, ($a1) -/* 0B4DAC 800B41AC 0C0323AB */ jal func_800C8EAC -/* 0B4DB0 800B41B0 24040002 */ li $a0, 2 -/* 0B4DB4 800B41B4 3C05800E */ lui $a1, %hi(gScreenModeSelection) # $a1, 0x800e -/* 0B4DB8 800B41B8 24A5C530 */ addiu $a1, %lo(gScreenModeSelection) # addiu $a1, $a1, -0x3ad0 -/* 0B4DBC 800B41BC 8CA20000 */ lw $v0, ($a1) -/* 0B4DC0 800B41C0 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 -/* 0B4DC4 800B41C4 2484EDF3 */ addiu $a0, %lo(D_8018EDF3) # addiu $a0, $a0, -0x120d -/* 0B4DC8 800B41C8 24030001 */ li $v1, 1 -/* 0B4DCC 800B41CC 28410004 */ slti $at, $v0, 4 -/* 0B4DD0 800B41D0 10200003 */ beqz $at, .L800B41E0 -/* 0B4DD4 800B41D4 A0830000 */ sb $v1, ($a0) -/* 0B4DD8 800B41D8 044100AE */ bgez $v0, .L800B4494 -/* 0B4DDC 800B41DC 00000000 */ nop -.L800B41E0: -/* 0B4DE0 800B41E0 100000AC */ b .L800B4494 -/* 0B4DE4 800B41E4 ACA00000 */ sw $zero, ($a1) -.L800B41E8: -/* 0B4DE8 800B41E8 24A5EDED */ addiu $a1, $a1, %lo(gMainMenuSelectionDepth) # -0x1213 -/* 0B4DEC 800B41EC 240A0007 */ li $t2, 7 -/* 0B4DF0 800B41F0 100000A8 */ b .L800B4494 -/* 0B4DF4 800B41F4 A0AA0000 */ sb $t2, ($a1) -.L800B41F8: -/* 0B4DF8 800B41F8 24A5EDED */ addiu $a1, $a1, %lo(gMainMenuSelectionDepth) # -0x1213 -/* 0B4DFC 800B41FC 80A20000 */ lb $v0, ($a1) -/* 0B4E00 800B4200 24010002 */ li $at, 2 -/* 0B4E04 800B4204 10430005 */ beq $v0, $v1, .L800B421C -/* 0B4E08 800B4208 00000000 */ nop -/* 0B4E0C 800B420C 10410003 */ beq $v0, $at, .L800B421C -/* 0B4E10 800B4210 240B0008 */ li $t3, 8 -/* 0B4E14 800B4214 1000009F */ b .L800B4494 -/* 0B4E18 800B4218 A0AB0000 */ sb $t3, ($a1) -.L800B421C: -/* 0B4E1C 800B421C 1000009D */ b .L800B4494 -/* 0B4E20 800B4220 A0A60000 */ sb $a2, ($a1) -.L800B4224: -/* 0B4E24 800B4224 24A5EDED */ addiu $a1, $a1, %lo(gMainMenuSelectionDepth) # -0x1213 -/* 0B4E28 800B4228 1000009A */ b .L800B4494 -/* 0B4E2C 800B422C A0A60000 */ sb $a2, ($a1) -glabel L800B4230 -/* 0B4E30 800B4230 3C028019 */ lui $v0, %hi(D_8018EDE0) # $v0, 0x8019 -/* 0B4E34 800B4234 8C42EDE0 */ lw $v0, %lo(D_8018EDE0)($v0) -/* 0B4E38 800B4238 3C0C800E */ lui $t4, %hi(D_800DC50C) # $t4, 0x800e -/* 0B4E3C 800B423C 10400005 */ beqz $v0, .L800B4254 -/* 0B4E40 800B4240 00000000 */ nop -/* 0B4E44 800B4244 10430035 */ beq $v0, $v1, .L800B431C -/* 0B4E48 800B4248 24060003 */ li $a2, 3 -/* 0B4E4C 800B424C 10000091 */ b .L800B4494 -/* 0B4E50 800B4250 00000000 */ nop -.L800B4254: -/* 0B4E54 800B4254 8D8CC50C */ lw $t4, %lo(D_800DC50C)($t4) -/* 0B4E58 800B4258 3C018019 */ lui $at, %hi(D_8018EDEE) # $at, 0x8019 -/* 0B4E5C 800B425C A023EDEE */ sb $v1, %lo(D_8018EDEE)($at) -/* 0B4E60 800B4260 1580001E */ bnez $t4, .L800B42DC -/* 0B4E64 800B4264 00002025 */ move $a0, $zero -/* 0B4E68 800B4268 3C078019 */ lui $a3, %hi(D_8018EDF3) # $a3, 0x8019 -/* 0B4E6C 800B426C 3C028019 */ lui $v0, %hi(gCharacterGridSelections) # $v0, 0x8019 -/* 0B4E70 800B4270 3C058019 */ lui $a1, %hi(D_8018EDE8) # $a1, 0x8019 -/* 0B4E74 800B4274 3C06800F */ lui $a2, %hi(gCharacterSelections) # $a2, 0x800f -/* 0B4E78 800B4278 24C686A8 */ addiu $a2, %lo(gCharacterSelections) # addiu $a2, $a2, -0x7958 -/* 0B4E7C 800B427C 24A5EDE8 */ addiu $a1, %lo(D_8018EDE8) # addiu $a1, $a1, -0x1218 -/* 0B4E80 800B4280 2442EDE4 */ addiu $v0, %lo(gCharacterGridSelections) # addiu $v0, $v0, -0x121c -/* 0B4E84 800B4284 80E7EDF3 */ lb $a3, %lo(D_8018EDF3)($a3) -/* 0B4E88 800B4288 00001825 */ move $v1, $zero -/* 0B4E8C 800B428C 24080004 */ li $t0, 4 -.L800B4290: -/* 0B4E90 800B4290 0067082A */ slt $at, $v1, $a3 -/* 0B4E94 800B4294 10200004 */ beqz $at, .L800B42A8 -/* 0B4E98 800B4298 24640001 */ addiu $a0, $v1, 1 -/* 0B4E9C 800B429C 24640001 */ addiu $a0, $v1, 1 -/* 0B4EA0 800B42A0 10000002 */ b .L800B42AC -/* 0B4EA4 800B42A4 A0440000 */ sb $a0, ($v0) -.L800B42A8: -/* 0B4EA8 800B42A8 A0400000 */ sb $zero, ($v0) -.L800B42AC: -/* 0B4EAC 800B42AC A0C30000 */ sb $v1, ($a2) -/* 0B4EB0 800B42B0 00801825 */ move $v1, $a0 -/* 0B4EB4 800B42B4 24420001 */ addiu $v0, $v0, 1 -/* 0B4EB8 800B42B8 24A50001 */ addiu $a1, $a1, 1 -/* 0B4EBC 800B42BC 24C60001 */ addiu $a2, $a2, 1 -/* 0B4EC0 800B42C0 1488FFF3 */ bne $a0, $t0, .L800B4290 -/* 0B4EC4 800B42C4 A0A0FFFF */ sb $zero, -1($a1) -/* 0B4EC8 800B42C8 3C044900 */ lui $a0, (0x49009012 >> 16) # lui $a0, 0x4900 -/* 0B4ECC 800B42CC 0C032384 */ jal play_sound2 -/* 0B4ED0 800B42D0 34849012 */ ori $a0, (0x49009012 & 0xFFFF) # ori $a0, $a0, 0x9012 -/* 0B4ED4 800B42D4 1000006F */ b .L800B4494 -/* 0B4ED8 800B42D8 00000000 */ nop -.L800B42DC: -/* 0B4EDC 800B42DC 0C032802 */ jal func_800CA008 -/* 0B4EE0 800B42E0 00002825 */ move $a1, $zero -/* 0B4EE4 800B42E4 0C032CB1 */ jal func_800CB2C4 -/* 0B4EE8 800B42E8 00000000 */ nop -/* 0B4EEC 800B42EC 3C01800E */ lui $at, %hi(D_800DC50C) # $at, 0x800e -/* 0B4EF0 800B42F0 AC20C50C */ sw $zero, %lo(D_800DC50C)($at) -/* 0B4EF4 800B42F4 3C01800E */ lui $at, %hi(D_800DC524) # $at, 0x800e -/* 0B4EF8 800B42F8 AC20C524 */ sw $zero, %lo(D_800DC524)($at) -/* 0B4EFC 800B42FC 0C0323AB */ jal func_800C8EAC -/* 0B4F00 800B4300 24040002 */ li $a0, 2 -/* 0B4F04 800B4304 3C018019 */ lui $at, %hi(D_8018EDE8) # $at, 0x8019 -/* 0B4F08 800B4308 A020EDE9 */ sb $zero, %lo(D_8018EDE8+0x1)($at) -/* 0B4F0C 800B430C A020EDEA */ sb $zero, %lo(D_8018EDE8+0x2)($at) -/* 0B4F10 800B4310 A020EDEB */ sb $zero, %lo(D_8018EDE8+0x3)($at) -/* 0B4F14 800B4314 1000005F */ b .L800B4494 -/* 0B4F18 800B4318 A020EDE8 */ sb $zero, %lo(D_8018EDE8)($at) -.L800B431C: -/* 0B4F1C 800B431C 3C018019 */ lui $at, %hi(D_8018EDEE) # $at, 0x8019 -/* 0B4F20 800B4320 3C048019 */ lui $a0, %hi(D_8018EDF3) # $a0, 0x8019 -/* 0B4F24 800B4324 A026EDEE */ sb $a2, %lo(D_8018EDEE)($at) -/* 0B4F28 800B4328 2484EDF3 */ addiu $a0, %lo(D_8018EDF3) # addiu $a0, $a0, -0x120d -/* 0B4F2C 800B432C 80870000 */ lb $a3, ($a0) -/* 0B4F30 800B4330 240D0001 */ li $t5, 1 -/* 0B4F34 800B4334 3C018019 */ lui $at, %hi(D_8018EDE8) # 0x8019 -/* 0B4F38 800B4338 18E00004 */ blez $a3, .L800B434C -/* 0B4F3C 800B433C 24EEFFFF */ addiu $t6, $a3, -1 -/* 0B4F40 800B4340 3C018019 */ lui $at, %hi(D_8018EDE8) # $at, 0x8019 -/* 0B4F44 800B4344 10000002 */ b .L800B4350 -/* 0B4F48 800B4348 A02DEDE8 */ sb $t5, %lo(D_8018EDE8)($at) -.L800B434C: -/* 0B4F4C 800B434C A020EDE8 */ sb $zero, %lo(D_8018EDE8)($at) -.L800B4350: -/* 0B4F50 800B4350 19C00005 */ blez $t6, .L800B4368 -/* 0B4F54 800B4354 24F8FFFE */ addiu $t8, $a3, -2 -/* 0B4F58 800B4358 240F0001 */ li $t7, 1 -/* 0B4F5C 800B435C 3C018019 */ lui $at, %hi(D_8018EDE9) # $at, 0x8019 -/* 0B4F60 800B4360 10000003 */ b .L800B4370 -/* 0B4F64 800B4364 A02FEDE9 */ sb $t7, %lo(D_8018EDE9)($at) -.L800B4368: -/* 0B4F68 800B4368 3C018019 */ lui $at, %hi(D_8018EDE9) # $at, 0x8019 -/* 0B4F6C 800B436C A020EDE9 */ sb $zero, %lo(D_8018EDE9)($at) -.L800B4370: -/* 0B4F70 800B4370 1B000005 */ blez $t8, .L800B4388 -/* 0B4F74 800B4374 24E9FFFD */ addiu $t1, $a3, -3 -/* 0B4F78 800B4378 24190001 */ li $t9, 1 -/* 0B4F7C 800B437C 3C018019 */ lui $at, %hi(D_8018EDEA) # $at, 0x8019 -/* 0B4F80 800B4380 10000003 */ b .L800B4390 -/* 0B4F84 800B4384 A039EDEA */ sb $t9, %lo(D_8018EDEA)($at) -.L800B4388: -/* 0B4F88 800B4388 3C018019 */ lui $at, %hi(D_8018EDEA) # $at, 0x8019 -/* 0B4F8C 800B438C A020EDEA */ sb $zero, %lo(D_8018EDEA)($at) -.L800B4390: -/* 0B4F90 800B4390 19200005 */ blez $t1, .L800B43A8 -/* 0B4F94 800B4394 3C018019 */ lui $at, %hi(D_8018EDEB) # 0x8019 -/* 0B4F98 800B4398 240A0001 */ li $t2, 1 -/* 0B4F9C 800B439C 3C018019 */ lui $at, %hi(D_8018EDEB) # $at, 0x8019 -/* 0B4FA0 800B43A0 1000003C */ b .L800B4494 -/* 0B4FA4 800B43A4 A02AEDEB */ sb $t2, %lo(D_8018EDEB)($at) -.L800B43A8: -/* 0B4FA8 800B43A8 1000003A */ b .L800B4494 -/* 0B4FAC 800B43AC A020EDEB */ sb $zero, %lo(D_8018EDEB)($at) -glabel L800B43B0 -/* 0B4FB0 800B43B0 3C0B800E */ lui $t3, %hi(gModeSelection) # $t3, 0x800e -/* 0B4FB4 800B43B4 8D6BC53C */ lw $t3, %lo(gModeSelection)($t3) -/* 0B4FB8 800B43B8 24060003 */ li $a2, 3 -/* 0B4FBC 800B43BC 3C028019 */ lui $v0, %hi(gCupSelection) # 0x8019 -/* 0B4FC0 800B43C0 14CB000A */ bne $a2, $t3, .L800B43EC -/* 0B4FC4 800B43C4 3C0D800E */ lui $t5, %hi(D_800DC50C) # $t5, 0x800e -/* 0B4FC8 800B43C8 3C028019 */ lui $v0, %hi(gCupSelection) # $v0, 0x8019 -/* 0B4FCC 800B43CC 2442EE09 */ addiu $v0, %lo(gCupSelection) # addiu $v0, $v0, -0x11f7 -/* 0B4FD0 800B43D0 24080004 */ li $t0, 4 -/* 0B4FD4 800B43D4 A0480000 */ sb $t0, ($v0) -/* 0B4FD8 800B43D8 3C01800E */ lui $at, %hi(D_800DC540) # $at, 0x800e -/* 0B4FDC 800B43DC AC28C540 */ sw $t0, %lo(D_800DC540)($at) -/* 0B4FE0 800B43E0 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B4FE4 800B43E4 10000009 */ b .L800B440C -/* 0B4FE8 800B43E8 A028EDEC */ sb $t0, %lo(D_8018EDEC)($at) -.L800B43EC: -/* 0B4FEC 800B43EC 2442EE09 */ addiu $v0, $v0, %lo(gCupSelection) # -0x11f7 -/* 0B4FF0 800B43F0 804C0000 */ lb $t4, ($v0) -/* 0B4FF4 800B43F4 24080004 */ li $t0, 4 -/* 0B4FF8 800B43F8 3C018019 */ lui $at, %hi(D_8018EDEC) # $at, 0x8019 -/* 0B4FFC 800B43FC 150C0002 */ bne $t0, $t4, .L800B4408 -/* 0B5000 800B4400 00000000 */ nop -/* 0B5004 800B4404 A0400000 */ sb $zero, ($v0) -.L800B4408: -/* 0B5008 800B4408 A023EDEC */ sb $v1, %lo(D_8018EDEC)($at) -.L800B440C: -/* 0B500C 800B440C 8DADC50C */ lw $t5, %lo(D_800DC50C)($t5) -/* 0B5010 800B4410 00002025 */ move $a0, $zero -/* 0B5014 800B4414 51A0000C */ beql $t5, $zero, .L800B4448 -/* 0B5018 800B4418 3C044900 */ lui $a0, 0x4900 -/* 0B501C 800B441C 0C032802 */ jal func_800CA008 -/* 0B5020 800B4420 00002825 */ move $a1, $zero -/* 0B5024 800B4424 0C032CB1 */ jal func_800CB2C4 -/* 0B5028 800B4428 00000000 */ nop -/* 0B502C 800B442C 3C01800E */ lui $at, %hi(D_800DC50C) # $at, 0x800e -/* 0B5030 800B4430 AC20C50C */ sw $zero, %lo(D_800DC50C)($at) -/* 0B5034 800B4434 3C01800E */ lui $at, %hi(D_800DC524) # $at, 0x800e -/* 0B5038 800B4438 AC20C524 */ sw $zero, %lo(D_800DC524)($at) -/* 0B503C 800B443C 0C0323AB */ jal func_800C8EAC -/* 0B5040 800B4440 24040002 */ li $a0, 2 -/* 0B5044 800B4444 3C044900 */ lui $a0, (0x49009013 >> 16) # lui $a0, 0x4900 -.L800B4448: -/* 0B5048 800B4448 0C032384 */ jal play_sound2 -/* 0B504C 800B444C 34849013 */ ori $a0, (0x49009013 & 0xFFFF) # ori $a0, $a0, 0x9013 -/* 0B5050 800B4450 3C0E800E */ lui $t6, %hi(gModeSelection) # $t6, 0x800e -/* 0B5054 800B4454 8DCEC53C */ lw $t6, %lo(gModeSelection)($t6) -/* 0B5058 800B4458 3C018019 */ lui $at, %hi(D_8018EE0A) # $at, 0x8019 -/* 0B505C 800B445C A020EE0A */ sb $zero, %lo(D_8018EE0A)($at) -/* 0B5060 800B4460 15C00003 */ bnez $t6, .L800B4470 -/* 0B5064 800B4464 3C028019 */ lui $v0, %hi(gGPPointsByCharacterId) # $v0, 0x8019 -/* 0B5068 800B4468 3C018019 */ lui $at, %hi(gCupCourseSelection) # $at, 0x8019 -/* 0B506C 800B446C A020EE0B */ sb $zero, %lo(gCupCourseSelection)($at) -.L800B4470: -/* 0B5070 800B4470 3C038019 */ lui $v1, %hi(gCharacterIdByGPOverallRank) # $v1, 0x8019 -/* 0B5074 800B4474 2463D9D0 */ addiu $v1, %lo(gCharacterIdByGPOverallRank) # addiu $v1, $v1, -0x2630 -/* 0B5078 800B4478 2442D9C8 */ addiu $v0, %lo(gGPPointsByCharacterId) # addiu $v0, $v0, -0x2638 -.L800B447C: -/* 0B507C 800B447C 24420004 */ addiu $v0, $v0, 4 -/* 0B5080 800B4480 A040FFFD */ sb $zero, -3($v0) -/* 0B5084 800B4484 A040FFFE */ sb $zero, -2($v0) -/* 0B5088 800B4488 A040FFFF */ sb $zero, -1($v0) -/* 0B508C 800B448C 1443FFFB */ bne $v0, $v1, .L800B447C -/* 0B5090 800B4490 A040FFFC */ sb $zero, -4($v0) -.L800B4494: -glabel L800B4494 -/* 0B5094 800B4494 0C02D12B */ jal func_800B44AC -/* 0B5098 800B4498 00000000 */ nop -/* 0B509C 800B449C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B50A0 800B44A0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0B50A4 800B44A4 03E00008 */ jr $ra -/* 0B50A8 800B44A8 00000000 */ nop diff --git a/asm/non_matchings/menus/func_800B44BC.s b/asm/non_matchings/menus/func_800B44BC.s deleted file mode 100644 index d7b1d482d..000000000 --- a/asm/non_matchings/menus/func_800B44BC.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_800B44BC -/* 0B50BC 800B44BC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 0B50C0 800B44C0 3C0E800F */ lui $t6, %hi(D_800F2BE4) # $t6, 0x800f -/* 0B50C4 800B44C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B50C8 800B44C8 25CE2BE4 */ addiu $t6, %lo(D_800F2BE4) # addiu $t6, $t6, 0x2be4 -/* 0B50CC 800B44CC 8DC10000 */ lw $at, ($t6) -/* 0B50D0 800B44D0 27A50020 */ addiu $a1, $sp, 0x20 -/* 0B50D4 800B44D4 3C038019 */ lui $v1, %hi(gSoundMode) # $v1, 0x8019 -/* 0B50D8 800B44D8 ACA10000 */ sw $at, ($a1) -/* 0B50DC 800B44DC 9063EDF2 */ lbu $v1, %lo(gSoundMode)($v1) -/* 0B50E0 800B44E0 24010001 */ li $at, 1 -/* 0B50E4 800B44E4 10600004 */ beqz $v1, .L800B44F8 -/* 0B50E8 800B44E8 00601025 */ move $v0, $v1 -/* 0B50EC 800B44EC 10410002 */ beq $v0, $at, .L800B44F8 -/* 0B50F0 800B44F0 24010003 */ li $at, 3 -/* 0B50F4 800B44F4 14410006 */ bne $v0, $at, .L800B4510 -.L800B44F8: -/* 0B50F8 800B44F8 00A34021 */ addu $t0, $a1, $v1 -/* 0B50FC 800B44FC 91040000 */ lbu $a0, ($t0) -/* 0B5100 800B4500 3C01E000 */ lui $at, 0xe000 -/* 0B5104 800B4504 00814825 */ or $t1, $a0, $at -/* 0B5108 800B4508 0C030D12 */ jal func_800C3448 -/* 0B510C 800B450C 01202025 */ move $a0, $t1 -.L800B4510: -/* 0B5110 800B4510 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B5114 800B4514 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0B5118 800B4518 03E00008 */ jr $ra -/* 0B511C 800B451C 00000000 */ nop diff --git a/asm/non_matchings/menus/func_800B4560.s b/asm/non_matchings/menus/func_800B4560.s deleted file mode 100644 index 8b2d9cd74..000000000 --- a/asm/non_matchings/menus/func_800B4560.s +++ /dev/null @@ -1,47 +0,0 @@ -.section .rodata -glabel D_800F2BE8 -.asciiz "ghost_kart=%d," -.balign 4 - -glabel D_800F2BF8 -.asciiz "pak1_ghost_kart=%d," -.balign 4 - -glabel D_800F2C0C -.asciiz "pak2_ghost_kart=%d\n" -.balign 4 - -.section .text -glabel func_800B4560 -/* 0B5160 800B4560 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0B5164 800B4564 3C0E8019 */ lui $t6, %hi(D_8018D9C0) # $t6, 0x8019 -/* 0B5168 800B4568 8DCED9C0 */ lw $t6, %lo(D_8018D9C0)($t6) -/* 0B516C 800B456C AFA40020 */ sw $a0, 0x20($sp) -/* 0B5170 800B4570 AFA50024 */ sw $a1, 0x24($sp) -/* 0B5174 800B4574 AFBF0014 */ sw $ra, 0x14($sp) -/* 0B5178 800B4578 3C058016 */ lui $a1, %hi(D_80162DE0) # $a1, 0x8016 -/* 0B517C 800B457C 3C04800F */ lui $a0, %hi(D_800F2BE8) # $a0, 0x800f -/* 0B5180 800B4580 24842BE8 */ addiu $a0, %lo(D_800F2BE8) # addiu $a0, $a0, 0x2be8 -/* 0B5184 800B4584 8CA52DE0 */ lw $a1, %lo(D_80162DE0)($a1) -/* 0B5188 800B4588 0C033DDD */ jal rmonPrintf -/* 0B518C 800B458C AFAE0018 */ sw $t6, 0x18($sp) -/* 0B5190 800B4590 8FAF0020 */ lw $t7, 0x20($sp) -/* 0B5194 800B4594 3C058019 */ lui $a1, %hi(D_8018EE16) # 0x8019 -/* 0B5198 800B4598 3C04800F */ lui $a0, %hi(D_800F2BF8) # $a0, 0x800f -/* 0B519C 800B459C 000FC1C0 */ sll $t8, $t7, 7 -/* 0B51A0 800B45A0 00B82821 */ addu $a1, $a1, $t8 -/* 0B51A4 800B45A4 90A5EE16 */ lbu $a1, %lo(D_8018EE16)($a1) # -0x11ea($a1) -/* 0B51A8 800B45A8 0C033DDD */ jal rmonPrintf -/* 0B51AC 800B45AC 24842BF8 */ addiu $a0, %lo(D_800F2BF8) # addiu $a0, $a0, 0x2bf8 -/* 0B51B0 800B45B0 8FB90024 */ lw $t9, 0x24($sp) -/* 0B51B4 800B45B4 8FA90018 */ lw $t1, 0x18($sp) -/* 0B51B8 800B45B8 3C04800F */ lui $a0, %hi(D_800F2C0C) # $a0, 0x800f -/* 0B51BC 800B45BC 001941C0 */ sll $t0, $t9, 7 -/* 0B51C0 800B45C0 01095021 */ addu $t2, $t0, $t1 -/* 0B51C4 800B45C4 91450006 */ lbu $a1, 6($t2) -/* 0B51C8 800B45C8 0C033DDD */ jal rmonPrintf -/* 0B51CC 800B45CC 24842C0C */ addiu $a0, %lo(D_800F2C0C) # addiu $a0, $a0, 0x2c0c -/* 0B51D0 800B45D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0B51D4 800B45D4 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0B51D8 800B45D8 03E00008 */ jr $ra -/* 0B51DC 800B45DC 00000000 */ nop diff --git a/asm/non_matchings/menus/func_800B65F4.s b/asm/non_matchings/menus/func_800B65F4.s index 7084f4a46..452c93142 100644 --- a/asm/non_matchings/menus/func_800B65F4.s +++ b/asm/non_matchings/menus/func_800B65F4.s @@ -61,9 +61,9 @@ glabel func_800B65F4 /* 0B72D0 800B66D0 000C69C0 */ sll $t5, $t4, 7 /* 0B72D4 800B66D4 AC2A2DFC */ sw $t2, %lo(D_80162DFC)($at) /* 0B72D8 800B66D8 826B0005 */ lb $t3, 5($s3) -/* 0B72DC 800B66DC 3C018019 */ lui $at, %hi(D_8018EE15) # 0x8019 +/* 0B72DC 800B66DC 3C018019 */ lui $at, %hi((D_8018EE10 + 5)) # 0x8019 /* 0B72E0 800B66E0 002D0821 */ addu $at, $at, $t5 -/* 0B72E4 800B66E4 A02BEE15 */ sb $t3, %lo(D_8018EE15)($at) # -0x11eb($at) +/* 0B72E4 800B66E4 A02BEE15 */ sb $t3, %lo((D_8018EE10 + 5))($at) # -0x11eb($at) .L800B66E8: /* 0B72E8 800B66E8 8FA20034 */ lw $v0, 0x34($sp) .L800B66EC: diff --git a/data/data_0DD0A0_2_0.s b/data/data_0DD0A0_2_0.s index 6f877ccc3..67fa59c90 100644 --- a/data/data_0DD0A0_2_0.s +++ b/data/data_0DD0A0_2_0.s @@ -1838,429 +1838,3 @@ glabel D_800E8600 .word 0x00280064, 0x00000000, 0x00b20064, 0x00000000 .word 0x00280028, 0x00000000, 0x00b20028, 0x00000000 .word 0x002800a0, 0x00000000, 0x00b200a0, 0x00000000 - -glabel D_800E8680 # Title screen flag colour -.word 0x1f1f1f00, 0x1f1f1f00 # light reflection colour - -glabel D_800E8688 -.word 0xffffff00 # white checkard pattern colour -.word 0xffffff00 # unknown likely brightness -.word 0x28281400 # light brightness (stops) -.word 0x00000000, 0x00000000, 0x00000000 - -glabel gMenuSelection # menu counter -.word 0x00000008 - -glabel D_800E86A4 # on change menu? -.word 0x00000000 - -glabel gCharacterSelections -.byte 0x00 -glabel D_800E86A9 -.byte 0x01 -glabel D_800E86AA -.byte 0x02 -glabel gGameModeRowSelectionForNumPlayers -.byte 0x03 - -glabel D_800E86AC -.byte 0x00 - -glabel gGameModeSubMenuRowSelectionForNumPlayers -.byte 0x00, 0x00, 0x00 - -glabel D_800E86B0 -.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - -glabel gNextDemoId -.byte 0x00, 0x00, 0x00, 0x00 - -glabel gControllerPakSelectedTableRow -.byte 0x00, 0x00, 0x00, 0x00 - -glabel D_800E86C4 -.byte 0x00 -glabel D_800E86C5 -.byte 0x00 -glabel D_800E86C6 -.byte 0x01 -glabel D_800E86C7 -.byte 0x02 - -glabel D_800E86C8 -.byte 0x03 -glabel D_800E86C9 -.byte 0x04 -glabel D_800E86CA -.byte 0x05 -glabel D_800E86CB -.byte 0x06 - -glabel D_800E86CC -.byte 0x00, 0x00, 0x00, 0x00 - -glabel D_800E86D0 -.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x01 - -glabel D_800E86E4 -.word 0x00000042, 0x00000000, 0x00000000 - -glabel D_800E86F0 -.hword 0x3031 # '01' -> u16 company_code param to osPfsFindFile() -.hword 0x0000 - -glabel D_800E86F4 -.word 0x4e4b544a # 'NKTJ' -> u32 game_code param to osPfsFindFile() - -glabel D_800E86F8 -.byte 0x00, 0x00, 0x00, 0x00 - -glabel D_800E86FC -.byte 0x00, 0x00, 0x00, 0x00 - -glabel D_800E8700 -vertex 8, 8, 0, 960, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 8, -8, 0, 960, 960, 0xFF, 0xFF, 0xFF, 0xFF -vertex -8, -8, 0, 0, 960, 0xFF, 0xFF, 0xFF, 0xFF -vertex -8, 8, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8740 -vertex 1, 2, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 2, -2, 0, 0, 960, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, -2, 0, 960, 960, 0xFF, 0xFF, 0xFF, 0xFF -vertex -1, 2, 0, 960, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8780 -vertex 2, 4, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 2, 0, 0, 4032, 4032, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 0, 0, 0, 4032, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E87C0 -vertex 2, 2, 0, 1984, 0, 0x00, 0x00, 0x7F, 0xFF -vertex 2, -2, 0, 1984, 1984, 0x00, 0x00, 0x7F, 0xFF -vertex -2, -2, 0, 0, 1984, 0x00, 0x00, 0x7F, 0xFF -vertex -2, 2, 0, 0, 0, 0x00, 0x00, 0x7F, 0xFF - -glabel D_800E8800 -vertex 0, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 0, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -4, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -4, 4, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8840 -vertex 4, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 4, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex 0, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex 0, 4, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8880 -vertex 2, 2, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 2, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 2, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E88C0 -vertex 2, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 2, -2, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, -2, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 0, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8900 -vertex 2, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 2, 0, 0, 0, 4032, 0x00, 0xFF, 0xFF, 0x70 -vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x00, 0x70 -vertex 0, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 0, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x00, 0x70 -vertex -2, 0, 0, 1984, 4032, 0x00, 0xFF, 0xFF, 0x70 -vertex -2, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 2, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 2, 0, 0, 1984, 4032, 0x00, 0xFF, 0xFF, 0x70 -vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x00, 0x70 -vertex 0, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 0, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 -vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x00, 0x70 -vertex -2, 0, 0, 0, 4032, 0x00, 0xFF, 0xFF, 0x70 -vertex -2, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 - -glabel D_800E8A00 -vertex 2, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 -vertex 2, 0, 0, 0, 4032, 0xF0, 0x00, 0x00, 0x60 -vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x14, 0x60 -vertex 0, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 - -glabel D_800E8A40 -vertex 0, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 -vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x14, 0x60 -vertex -2, 0, 0, 1984, 4032, 0xF0, 0x00, 0x00, 0x60 -vertex -2, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 -vertex 2, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 -vertex 2, 0, 0, 1984, 4032, 0xF0, 0x00, 0x00, 0x60 -vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x14, 0x60 -vertex 0, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 -vertex 0, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 -vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x14, 0x60 -vertex -2, 0, 0, 0, 4032, 0xF0, 0x00, 0x00, 0x60 -vertex -2, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 - -glabel D_800E8B00 -vertex 1, 12, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xF0 -vertex 2, 0, 0, 0, 4032, 0xFF, 0xFF, 0xFF, 0xF0 -vertex -2, 0, 0, 1984, 4032, 0xFF, 0xFF, 0xFF, 0xF0 -vertex -1, 12, 0, 1984, 0, 0xFF, 0xFF, 0xFF, 0xF0 - -glabel D_800E8B40 -vertex 2, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 2, -1, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, -1, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 1, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8B80 -vertex 4, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 4, -1, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex 0, -1, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex 0, 1, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8BC0 -vertex 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 0, -1, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -4, -1, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF -vertex -4, 1, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8C00 -vertex 2, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF -vertex 2, 0, 0, 0, 4032, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 0, 0, 1984, 4032, 0xFF, 0xFF, 0xFF, 0xFF -vertex -2, 4, 0, 1984, 0, 0xFF, 0xFF, 0xFF, 0xFF - -glabel D_800E8C40 -vertex 9, 18, -9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 -vertex 9, 0, -9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 0, -9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 18, -9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 -vertex 9, 18, 9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 -vertex 9, 0, 9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 0, 9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 18, 9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 - -glabel D_800E8CC0 -vertex 9, 70, -9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 -vertex 9, 0, -9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 0, -9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 70, -9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 -vertex 9, 70, 9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 -vertex 9, 0, 9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 0, 9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B -vertex -9, 70, 9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 - -glabel D_800E8D40 # TODO f3d -.word 0xb6000000, 0x00020000, 0xb9000002, 0x00000000 -.word 0xb900031d, 0x005049d8, 0xfcffffff, 0xfffe793c -.word 0x0400207f, D_800E8C40, 0xbf000000, 0x00000204 -.word 0xbf000000, 0x00000406, 0xbf000000, 0x00080e0c -.word 0xbf000000, 0x00080c0a, 0xbf000000, 0x0000080a -.word 0xbf000000, 0x00000a02, 0xbf000000, 0x00060e08 -.word 0xbf000000, 0x00000608, 0xbf000000, 0x000e060c -.word 0xbf000000, 0x0006040c, 0xbf000000, 0x00020a0c -.word 0xbf000000, 0x0004020c, 0xb8000000, 0x00000000 - -glabel D_800E8DD0 # TODO f3d -.word 0xb6000000, 0x00020000, 0xb9000002, 0x00000000 -.word 0xb900031d, 0x005049d8, 0xfcffffff, 0xfffe793c -.word 0x0400207f, D_800E8CC0, 0xbf000000, 0x00000204 -.word 0xbf000000, 0x00000406, 0xbf000000, 0x00080e0c -.word 0xbf000000, 0x00080c0a, 0xbf000000, 0x0000080a -.word 0xbf000000, 0x00000a02, 0xbf000000, 0x00060e08 -.word 0xbf000000, 0x00000608, 0xbf000000, 0x000e060c -.word 0xbf000000, 0x0006040c, 0xbf000000, 0x00020a0c -.word 0xbf000000, 0x0004020c, 0xb8000000, 0x00000000 - -glabel D_800E8E60 -.asciiz "Terminate-Canceled Channel %d,Phase %d\n" -.balign 4 - -glabel D_800E8E88 -.asciiz "Copy %d\n" -.balign 4 - -glabel D_800E8E94 -.asciiz "%d->%d\n" -.balign 4 - -glabel D_800E8E9C -.asciiz "pitch %x: delaybytes %d : olddelay %d\n" -.balign 4 - -glabel D_800E8EC4 -.asciiz "cont %x: delaybytes %d : olddelay %d\n" -.balign 4 - -.balign 0x10 - -glabel D_800E8EF0 -.asciiz "Warning:Kill Note %x \n" -.balign 4 - -glabel D_800E8F08 -.asciiz "Kill Voice %d (ID %d) %d\n" -.balign 4 - -glabel D_800E8F24 -.asciiz "Warning: Running Sequence's data disappear!\n" -.balign 4 - -glabel D_800E8F54 -.asciiz "Audio:Memory:Heap OverFlow : Not Allocate %d!\n" -.balign 4 - -glabel D_800E8F84 -.asciiz "Audio:Memory:DataHeap Not Allocate \n" -.balign 4 - -glabel D_800E8FAC -.asciiz "StayHeap Not Allocate %d\n" -.balign 4 - -glabel D_800E8FC8 -.asciiz "AutoHeap Not Allocate %d\n" -.balign 4 - -glabel D_800E8FE4 -.asciiz "Status ID0 : %d ID1 : %d\n" -.balign 4 - -glabel D_800E9000 -.asciiz "id 0 is Stopping\n" -.balign 4 - -glabel D_800E9014 -.asciiz "id 0 is Stop\n" -.balign 4 - -glabel D_800E9024 -.asciiz "id 1 is Stopping\n" -.balign 4 - -glabel D_800E9038 -.asciiz "id 1 is Stop\n" -.balign 4 - -glabel D_800E9048 -.asciiz "WARNING: NO FREE AUTOSEQ AREA.\n" -.balign 4 - -glabel D_800E9068 -.asciiz "WARNING: NO STOP AUTO AREA.\n" -.balign 4 - -glabel D_800E9088 -.asciiz " AND TRY FORCE TO STOP SIDE \n" -.balign 4 - -glabel D_800E90B0 -.asciiz "Check ID0 (seq ID %d) Useing ...\n" -.balign 4 - -glabel D_800E90D4 -.asciiz "Check ID1 (seq ID %d) Useing ...\n" -.balign 4 - -glabel D_800E90F8 -.asciiz "No Free Seq area.\n" -.balign 4 - -glabel D_800E910C -.asciiz "CH %d: ID %d\n" -.balign 4 - -glabel D_800E911C -.asciiz "TWO SIDES ARE LOADING... ALLOC CANCELED.\n" -.balign 4 - -glabel D_800E9148 -.asciiz "WARNING: Before Area Overlaid After." -.balign 4 - -glabel D_800E9170 -.asciiz "WARNING: After Area Overlaid Before." -.balign 4 - -glabel D_800E9198 -.asciiz "MEMORY:SzHeapAlloc ERROR: sza->side %d\n" -.balign 4 - -glabel D_800E91C0 -.asciiz "Audio:MEMORY:SzHeap Overflow error. (%d bytes)\n" -.balign 4 - -glabel D_800E91F0 -.asciiz "Auto Heap Unhit for ID %d\n" -.balign 4 - -glabel D_800E920C -.asciiz "Heap Reconstruct Start %x\n" -.balign 4 - -glabel D_800E9228 -.asciiz "AHPBASE %x\n" -.balign 4 - -glabel D_800E9234 -.asciiz "AHPCUR %x\n" -.balign 4 - -glabel D_800E9240 -.asciiz "HeapTop %x\n" -.balign 4 - -glabel D_800E924C -.asciiz "SynoutRate %d / %d \n" -.balign 4 - -glabel D_800E9264 -.asciiz "FXSIZE %d\n" -.balign 4 - -glabel D_800E9270 -.asciiz "FXCOMP %d\n" -.balign 4 - -glabel D_800E927C -.asciiz "FXDOWN %d\n" -.balign 4 - -glabel D_800E9288 -.asciiz "WaveCacheLen: %d\n" -.balign 4 - -glabel D_800E929C -.asciiz "SpecChange Finished\n" -.balign 4 - -glabel D_800E92B4 -.asciiz "Fbank Seq %x\n" -.balign 4 - -glabel D_800E92C4 -.asciiz "Already Load Type %d,ID %d\n" -.balign 4 - -glabel D_800E92E0 -.asciiz "Warning:Emem Over,not alloc %d\n" -.balign 4 - -glabel D_800E9300 -.asciiz "Write %d\n" -.balign 4 - -.balign 0x10 - -#glabel D_800E9310 -#.asciiz "Romcopy %x -> %x ,size %x\n" -#.balign 4 - -#glabel D_800E932C -#.asciiz "Romcopyend\n" -#.balign 4 diff --git a/data/data_800E8700.s b/data/data_800E8700.s new file mode 100644 index 000000000..740f2c1d3 --- /dev/null +++ b/data/data_800E8700.s @@ -0,0 +1,163 @@ +.include "macros.inc" + +.section .data + +glabel D_800E8700 +vertex 8, 8, 0, 960, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 8, -8, 0, 960, 960, 0xFF, 0xFF, 0xFF, 0xFF +vertex -8, -8, 0, 0, 960, 0xFF, 0xFF, 0xFF, 0xFF +vertex -8, 8, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8740 +vertex 1, 2, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 2, -2, 0, 0, 960, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, -2, 0, 960, 960, 0xFF, 0xFF, 0xFF, 0xFF +vertex -1, 2, 0, 960, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8780 +vertex 2, 4, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 2, 0, 0, 4032, 4032, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 0, 0, 0, 4032, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E87C0 +vertex 2, 2, 0, 1984, 0, 0x00, 0x00, 0x7F, 0xFF +vertex 2, -2, 0, 1984, 1984, 0x00, 0x00, 0x7F, 0xFF +vertex -2, -2, 0, 0, 1984, 0x00, 0x00, 0x7F, 0xFF +vertex -2, 2, 0, 0, 0, 0x00, 0x00, 0x7F, 0xFF + +glabel D_800E8800 +vertex 0, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 0, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -4, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -4, 4, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8840 +vertex 4, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 4, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex 0, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex 0, 4, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8880 +vertex 2, 2, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 2, 0, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 0, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 2, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E88C0 +vertex 2, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 2, -2, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, -2, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 0, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8900 +vertex 2, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 2, 0, 0, 0, 4032, 0x00, 0xFF, 0xFF, 0x70 +vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x00, 0x70 +vertex 0, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 0, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x00, 0x70 +vertex -2, 0, 0, 1984, 4032, 0x00, 0xFF, 0xFF, 0x70 +vertex -2, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 2, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 2, 0, 0, 1984, 4032, 0x00, 0xFF, 0xFF, 0x70 +vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x00, 0x70 +vertex 0, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 0, 4, 0, 1984, 0, 0x00, 0xFF, 0xFF, 0x70 +vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x00, 0x70 +vertex -2, 0, 0, 0, 4032, 0x00, 0xFF, 0xFF, 0x70 +vertex -2, 4, 0, 0, 0, 0x00, 0xFF, 0xFF, 0x70 + +glabel D_800E8A00 +vertex 2, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 +vertex 2, 0, 0, 0, 4032, 0xF0, 0x00, 0x00, 0x60 +vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x14, 0x60 +vertex 0, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 + +glabel D_800E8A40 +vertex 0, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 +vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x14, 0x60 +vertex -2, 0, 0, 1984, 4032, 0xF0, 0x00, 0x00, 0x60 +vertex -2, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 +vertex 2, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 +vertex 2, 0, 0, 1984, 4032, 0xF0, 0x00, 0x00, 0x60 +vertex 0, 0, 0, 0, 4032, 0xFF, 0xFF, 0x14, 0x60 +vertex 0, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 +vertex 0, 4, 0, 1984, 0, 0xF0, 0x00, 0x00, 0x60 +vertex 0, 0, 0, 1984, 4032, 0xFF, 0xFF, 0x14, 0x60 +vertex -2, 0, 0, 0, 4032, 0xF0, 0x00, 0x00, 0x60 +vertex -2, 4, 0, 0, 0, 0xF0, 0x00, 0x00, 0x60 + +glabel D_800E8B00 +vertex 1, 12, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xF0 +vertex 2, 0, 0, 0, 4032, 0xFF, 0xFF, 0xFF, 0xF0 +vertex -2, 0, 0, 1984, 4032, 0xFF, 0xFF, 0xFF, 0xF0 +vertex -1, 12, 0, 1984, 0, 0xFF, 0xFF, 0xFF, 0xF0 + +glabel D_800E8B40 +vertex 2, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 2, -1, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, -1, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 1, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8B80 +vertex 4, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 4, -1, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex 0, -1, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex 0, 1, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8BC0 +vertex 0, 1, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 0, -1, 0, 0, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -4, -1, 0, 4032, 1984, 0xFF, 0xFF, 0xFF, 0xFF +vertex -4, 1, 0, 4032, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8C00 +vertex 2, 4, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF +vertex 2, 0, 0, 0, 4032, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 0, 0, 1984, 4032, 0xFF, 0xFF, 0xFF, 0xFF +vertex -2, 4, 0, 1984, 0, 0xFF, 0xFF, 0xFF, 0xFF + +glabel D_800E8C40 +vertex 9, 18, -9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 +vertex 9, 0, -9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 0, -9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 18, -9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 +vertex 9, 18, 9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 +vertex 9, 0, 9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 0, 9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 18, 9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 + +glabel D_800E8CC0 +vertex 9, 70, -9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 +vertex 9, 0, -9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 0, -9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 70, -9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 +vertex 9, 70, 9, 0, 990, 0xFF, 0xFF, 0xFF, 0x37 +vertex 9, 0, 9, 0, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 0, 9, 990, 0, 0xFF, 0xFF, 0xFF, 0x9B +vertex -9, 70, 9, 990, 990, 0xFF, 0xFF, 0xFF, 0x37 + +glabel D_800E8D40 # TODO f3d +.word 0xb6000000, 0x00020000, 0xb9000002, 0x00000000 +.word 0xb900031d, 0x005049d8, 0xfcffffff, 0xfffe793c +.word 0x0400207f, D_800E8C40, 0xbf000000, 0x00000204 +.word 0xbf000000, 0x00000406, 0xbf000000, 0x00080e0c +.word 0xbf000000, 0x00080c0a, 0xbf000000, 0x0000080a +.word 0xbf000000, 0x00000a02, 0xbf000000, 0x00060e08 +.word 0xbf000000, 0x00000608, 0xbf000000, 0x000e060c +.word 0xbf000000, 0x0006040c, 0xbf000000, 0x00020a0c +.word 0xbf000000, 0x0004020c, 0xb8000000, 0x00000000 + +glabel D_800E8DD0 # TODO f3d +.word 0xb6000000, 0x00020000, 0xb9000002, 0x00000000 +.word 0xb900031d, 0x005049d8, 0xfcffffff, 0xfffe793c +.word 0x0400207f, D_800E8CC0, 0xbf000000, 0x00000204 +.word 0xbf000000, 0x00000406, 0xbf000000, 0x00080e0c +.word 0xbf000000, 0x00080c0a, 0xbf000000, 0x0000080a +.word 0xbf000000, 0x00000a02, 0xbf000000, 0x00060e08 +.word 0xbf000000, 0x00000608, 0xbf000000, 0x000e060c +.word 0xbf000000, 0x0006040c, 0xbf000000, 0x00020a0c +.word 0xbf000000, 0x0004020c, 0xb8000000, 0x00000000 + +.balign 16 diff --git a/data/data_audio.s b/data/data_audio.s new file mode 100644 index 000000000..f6974ee57 --- /dev/null +++ b/data/data_audio.s @@ -0,0 +1,191 @@ +.include "macros.inc" + +.section .data + +glabel D_800E8E60 +.asciiz "Terminate-Canceled Channel %d,Phase %d\n" +.balign 4 + +glabel D_800E8E88 +.asciiz "Copy %d\n" +.balign 4 + +glabel D_800E8E94 +.asciiz "%d->%d\n" +.balign 4 + +glabel D_800E8E9C +.asciiz "pitch %x: delaybytes %d : olddelay %d\n" +.balign 4 + +glabel D_800E8EC4 +.asciiz "cont %x: delaybytes %d : olddelay %d\n" +.balign 4 + +.balign 0x10 + +glabel D_800E8EF0 +.asciiz "Warning:Kill Note %x \n" +.balign 4 + +glabel D_800E8F08 +.asciiz "Kill Voice %d (ID %d) %d\n" +.balign 4 + +glabel D_800E8F24 +.asciiz "Warning: Running Sequence's data disappear!\n" +.balign 4 + +glabel D_800E8F54 +.asciiz "Audio:Memory:Heap OverFlow : Not Allocate %d!\n" +.balign 4 + +glabel D_800E8F84 +.asciiz "Audio:Memory:DataHeap Not Allocate \n" +.balign 4 + +glabel D_800E8FAC +.asciiz "StayHeap Not Allocate %d\n" +.balign 4 + +glabel D_800E8FC8 +.asciiz "AutoHeap Not Allocate %d\n" +.balign 4 + +glabel D_800E8FE4 +.asciiz "Status ID0 : %d ID1 : %d\n" +.balign 4 + +glabel D_800E9000 +.asciiz "id 0 is Stopping\n" +.balign 4 + +glabel D_800E9014 +.asciiz "id 0 is Stop\n" +.balign 4 + +glabel D_800E9024 +.asciiz "id 1 is Stopping\n" +.balign 4 + +glabel D_800E9038 +.asciiz "id 1 is Stop\n" +.balign 4 + +glabel D_800E9048 +.asciiz "WARNING: NO FREE AUTOSEQ AREA.\n" +.balign 4 + +glabel D_800E9068 +.asciiz "WARNING: NO STOP AUTO AREA.\n" +.balign 4 + +glabel D_800E9088 +.asciiz " AND TRY FORCE TO STOP SIDE \n" +.balign 4 + +glabel D_800E90B0 +.asciiz "Check ID0 (seq ID %d) Useing ...\n" +.balign 4 + +glabel D_800E90D4 +.asciiz "Check ID1 (seq ID %d) Useing ...\n" +.balign 4 + +glabel D_800E90F8 +.asciiz "No Free Seq area.\n" +.balign 4 + +glabel D_800E910C +.asciiz "CH %d: ID %d\n" +.balign 4 + +glabel D_800E911C +.asciiz "TWO SIDES ARE LOADING... ALLOC CANCELED.\n" +.balign 4 + +glabel D_800E9148 +.asciiz "WARNING: Before Area Overlaid After." +.balign 4 + +glabel D_800E9170 +.asciiz "WARNING: After Area Overlaid Before." +.balign 4 + +glabel D_800E9198 +.asciiz "MEMORY:SzHeapAlloc ERROR: sza->side %d\n" +.balign 4 + +glabel D_800E91C0 +.asciiz "Audio:MEMORY:SzHeap Overflow error. (%d bytes)\n" +.balign 4 + +glabel D_800E91F0 +.asciiz "Auto Heap Unhit for ID %d\n" +.balign 4 + +glabel D_800E920C +.asciiz "Heap Reconstruct Start %x\n" +.balign 4 + +glabel D_800E9228 +.asciiz "AHPBASE %x\n" +.balign 4 + +glabel D_800E9234 +.asciiz "AHPCUR %x\n" +.balign 4 + +glabel D_800E9240 +.asciiz "HeapTop %x\n" +.balign 4 + +glabel D_800E924C +.asciiz "SynoutRate %d / %d \n" +.balign 4 + +glabel D_800E9264 +.asciiz "FXSIZE %d\n" +.balign 4 + +glabel D_800E9270 +.asciiz "FXCOMP %d\n" +.balign 4 + +glabel D_800E927C +.asciiz "FXDOWN %d\n" +.balign 4 + +glabel D_800E9288 +.asciiz "WaveCacheLen: %d\n" +.balign 4 + +glabel D_800E929C +.asciiz "SpecChange Finished\n" +.balign 4 + +glabel D_800E92B4 +.asciiz "Fbank Seq %x\n" +.balign 4 + +glabel D_800E92C4 +.asciiz "Already Load Type %d,ID %d\n" +.balign 4 + +glabel D_800E92E0 +.asciiz "Warning:Emem Over,not alloc %d\n" +.balign 4 + +glabel D_800E9300 +.asciiz "Write %d\n" +.balign 4 + +.balign 0x10 + +#glabel D_800E9310 +#.asciiz "Romcopy %x -> %x ,size %x\n" +#.balign 4 + +#glabel D_800E932C +#.asciiz "Romcopyend\n" +#.balign 4 diff --git a/include/variables.h b/include/variables.h index 1807bd044..329a95923 100644 --- a/include/variables.h +++ b/include/variables.h @@ -52,7 +52,7 @@ extern s32 gMenuSelection; // D_800E86A0 extern s32 gModeSelection; // D_800DC53C // Indicates the ID of the next title screen demo that will be played -extern u8 gNextDemoId; // D_800E86BC +extern s8 gNextDemoId; // D_800E86BC // Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order extern u8 gPerCupIndexByCourseId[NUM_COURSES]; // D_800EFD50 diff --git a/mk64.ld b/mk64.ld index fb46da980..46d7c6ca4 100644 --- a/mk64.ld +++ b/mk64.ld @@ -232,6 +232,11 @@ SECTIONS BUILD_DIR/data/data_0DD0A0_2.o(.data); BUILD_DIR/src/spawn_players.o(.data); BUILD_DIR/data/data_0DD0A0_2_0.o(.data); + BUILD_DIR/src/code_800AF9B0.o(.data); + BUILD_DIR/src/menus.o(.data); + BUILD_DIR/src/code_800B45E0.o(.data); + BUILD_DIR/data/data_800E8700.o(.data); + BUILD_DIR/data/data_audio.o(.data); BUILD_DIR/src/audio/load.o(.rodata*); BUILD_DIR/data/data_0DD0A0_2_1_0.o(.rodata); BUILD_DIR/src/os/osInitialize.o(.data*); @@ -287,7 +292,8 @@ SECTIONS BUILD_DIR/src/camera.o(.bss); BUILD_DIR/asm/bss_8001C4D0.o(.bss); BUILD_DIR/src/code_800AF9B0.o(.bss); - BUILD_DIR/asm/bss_8018EDC0.o(.bss); + BUILD_DIR/src/menus.o(.bss); + BUILD_DIR/asm/bss_main_audio.o(.bss); BUILD_DIR/src/os/osCreateViManager.o(.bss); BUILD_DIR/src/os/osCreatePiManager.o(.bss); BUILD_DIR/src/os/osSetEventMesg.o(.bss); diff --git a/src/audio/external.h b/src/audio/external.h index 7adcfa842..3a4512575 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -4,6 +4,8 @@ #include "common_structs.h" void play_sound2(s32); +void func_800C8EAC(u16); +void func_800CA008(u8, u8); void func_800CA0A0(); void func_800CA0B8(); void func_800CA0CC(); @@ -11,6 +13,8 @@ void func_800CA270(); void func_800CA330(s32); void func_800CA388(s32); void func_800CB134(); +void func_800CB2C4(void); +void func_800C90F4(u8, uintptr_t); extern s8 D_800EA0F4; extern s8 D_800EA108; diff --git a/src/code_800029B0.c b/src/code_800029B0.c index 851ee8a43..45b49f6b7 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -34,7 +34,7 @@ extern s8 D_8018EDF3; extern s8 gCupSelection; -extern u32 gScreenModeSelection; +extern s32 gScreenModeSelection; extern u32 D_8015F730; extern u32 D_8015F734; extern u32 gPrevLoadedAddress; diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 5e28a2bd9..e1cc26261 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -4,7 +4,6 @@ #include "common_structs.h" /* Function Prototypes */ - s16 func_80005FD0(Vec3f, Vec3f); s32 func_80006018(f32, f32, f32, f32, f32, f32, f32, f32); void func_80006114(Vec3f, Vec3f, s16); @@ -30,6 +29,8 @@ s16 func_8000CD24(f32, f32, f32, s16, Player*, s32, s32); s16 func_8000D24C(f32, f32, f32, s32*); s16 func_8000D2B4(f32, f32, f32, s16, s32); s16 func_8000D33C(f32, f32, f32, s16, s32); +void func_8000F0E0(void); +void func_8000F124(void); void func_80010218(s32); f32 func_80010480(s32, u16); void func_800107C4(s32); @@ -40,7 +41,7 @@ f32 func_80010FA0(f32, f32, f32, s32); s32 process_path_data(struct TrackWayPoint*, struct TrackWayPoint*); f32 func_80013C74(s16, s16); f32 func_800145A8(s16, f32, s16); -void func_8001968C(); +void func_8001968C(void); /* This is where I'd put my static data, if I had any */ // Might belong in menus.h? diff --git a/src/code_80057C60.h b/src/code_80057C60.h index c971e3254..36aba2a7d 100644 --- a/src/code_80057C60.h +++ b/src/code_80057C60.h @@ -215,7 +215,7 @@ void func_802A3730(struct UnkStruct_800DC5EC*); extern u16 gPlayerBalloonStatus[8][3]; // D_8018D5F0 extern s16 gPlayerBalloonCount[]; // D_8018D8C0 -extern u32 gScreenModeSelection; // D_800DC530 +extern s32 gScreenModeSelection; // D_800DC530 extern struct UnkStruct_800DC5EC *D_800DC5EC; extern struct UnkStruct_800DC5EC *D_800DC5F0; diff --git a/src/code_80091750.c b/src/code_80091750.c index e2653b7d8..650306c9d 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -6951,18 +6951,13 @@ void func_8009E258(void) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009E258.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_8009DFE0(?); // extern -extern s32 D_8018EDE0; +void func_8009DFE0(s32); +extern s32 D_8018EDE0; //bss void func_8009E280(void) { - func_8009DFE0(0xA); + func_8009DFE0(10); D_8018EDE0 = 4; } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009E280.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -13402,13 +13397,13 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A9710.s") #ifdef MIPS_TO_C //generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda static ? D_800E86C4; /* unable to generate initializer; const */ -static ? D_800E86C6; /* unable to generate initializer; const */ -static ? D_800E86C7; /* unable to generate initializer; const */ -static ? D_800E86C8; /* unable to generate initializer; const */ -static ? D_800E86C9; /* unable to generate initializer; const */ -static ? D_800E86CA; /* unable to generate initializer; const */ -static ? D_800E86CB; /* unable to generate initializer; const */ -static ? D_800E86CC; /* unable to generate initializer; const */ +static ? (D_800E86C4 + 2); /* unable to generate initializer; const */ +static ? ((D_800E86C4 + 2) + 1); /* unable to generate initializer; const */ +static ? ((D_800E86C4 + 2) + 2); /* unable to generate initializer; const */ +static ? ((D_800E86C4 + 2) + 3); /* unable to generate initializer; const */ +static ? ((D_800E86C4 + 2) + 4); /* unable to generate initializer; const */ +static ? ((D_800E86C4 + 2) + 5); /* unable to generate initializer; const */ +static ? ((D_800E86C4 + 2) + 6); /* unable to generate initializer; const */ s8 D_800E86D0[0x14] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; /* const */ void func_800A97BC(struct_8018D9E0_entry *arg0) { @@ -13439,9 +13434,9 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { if (temp_t4 >= 0x73) { arg0->row = 0x69; *D_800E86D0 = 0; - phi_v1 = (u32) &D_800E86CC; + phi_v1 = (u32) &((D_800E86C4 + 2) + 6); do { - if (phi_v1 >= (u32) &D_800E86C6) { + if (phi_v1 >= (u32) &(D_800E86C4 + 2)) { phi_v1->unk0 = (s8) phi_v1->unk-1; } else { temp_v0_2 = phi_v1->unk1; @@ -13451,7 +13446,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { phi_v1->unk0 = (s8) (temp_v0_2 - 1); } } - if (phi_v1 >= (u32) &D_800E86C7) { + if (phi_v1 >= (u32) &((D_800E86C4 + 2) + 1)) { phi_v1->unk-1 = (s8) phi_v1->unk-2; } else { temp_v0_3 = phi_v1->unk0; @@ -13461,7 +13456,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { phi_v1->unk-1 = (s8) (temp_v0_3 - 1); } } - if (phi_v1 >= (u32) &D_800E86C8) { + if (phi_v1 >= (u32) &((D_800E86C4 + 2) + 2)) { phi_v1->unk-2 = (s8) phi_v1->unk-3; } else { temp_v0_4 = phi_v1->unk-1; @@ -13471,7 +13466,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { phi_v1->unk-2 = (s8) (temp_v0_4 - 1); } } - if (phi_v1 >= (u32) &D_800E86C9) { + if (phi_v1 >= (u32) &((D_800E86C4 + 2) + 3)) { phi_v1->unk-3 = (s8) phi_v1->unk-4; } else { temp_v0_5 = phi_v1->unk-2; @@ -13495,7 +13490,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { *D_800E86D0 = 0; phi_v1_2 = (u32) &D_800E86C4; do { - if (phi_v1_2 < (u32) &D_800E86CB) { + if (phi_v1_2 < (u32) &((D_800E86C4 + 2) + 5)) { phi_v1_2->unk0 = (s8) phi_v1_2->unk1; } else { temp_v0_6 = phi_v1_2->unk-1; @@ -13505,7 +13500,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { phi_v1_2->unk0 = (s8) (temp_v0_6 + 1); } } - if (phi_v1_2 < (u32) &D_800E86CA) { + if (phi_v1_2 < (u32) &((D_800E86C4 + 2) + 4)) { phi_v1_2->unk1 = (s8) phi_v1_2->unk2; } else { temp_v0_7 = phi_v1_2->unk0; @@ -13515,7 +13510,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { phi_v1_2->unk1 = (s8) (temp_v0_7 + 1); } } - if (phi_v1_2 < (u32) &D_800E86C9) { + if (phi_v1_2 < (u32) &((D_800E86C4 + 2) + 3)) { phi_v1_2->unk2 = (s8) phi_v1_2->unk3; } else { temp_v0_8 = phi_v1_2->unk1; @@ -13525,7 +13520,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { phi_v1_2->unk2 = (s8) (temp_v0_8 + 1); } } - if (phi_v1_2 < (u32) &D_800E86C8) { + if (phi_v1_2 < (u32) &((D_800E86C4 + 2) + 2)) { phi_v1_2->unk3 = (s8) phi_v1_2->unk4; } else { temp_v0_9 = phi_v1_2->unk2; @@ -13537,7 +13532,7 @@ void func_800A97BC(struct_8018D9E0_entry *arg0) { } temp_v1_2 = phi_v1_2 + 4; phi_v1_2 = temp_v1_2; - } while (temp_v1_2 != &D_800E86CC); + } while (temp_v1_2 != &((D_800E86C4 + 2) + 6)); D_800E86C4.unk8 = 0; D_800E86C4.unk0 = (s8) D_800E86C4.unk8; } diff --git a/src/code_80091750.h b/src/code_80091750.h index b5d9d6109..f784285c0 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -137,10 +137,12 @@ Gfx *func_8009BEF0(Gfx*, s32, f32, f32, s32, f32,f32); Gfx *func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32); Gfx *func_8009C708(Gfx*, struct_8018DEE0_entry *, s32, s32, s32, s32); void func_8009C918(); +void func_8009E0F0(s32); void func_8009E1C0(); void func_8009E1E4(); -void func_8009E208(); -void func_8009E258(); +void func_8009E208(void); +void func_8009E258(void); +void func_8009E280(void); void func_8009E5BC(); void func_8009E620(); void add_8018D9E0_entry(s32, s32, s32, s8); @@ -246,7 +248,7 @@ extern s32 gGlyphTextureLUT[]; // D_800E7E84 extern MkTexture *D_800E82B4[5]; extern f32 D_800E8530; extern f32 D_800E8534; -extern s8 D_800E86D0[20]; +extern s8 D_800E86D0[]; extern f32 D_800F1CC8; extern f32 D_800F1F04; extern f32 D_800F1F08; @@ -287,4 +289,7 @@ extern s8 D_802874F5; extern u8 _textures_0aSegmentRomStart[]; extern u8 _textures_0bSegmentRomStart[]; +extern s32 D_8018E7A8; // maybe? +extern s8 D_8018E7B0; // maybe? + #endif diff --git a/src/code_800AF9B0.c b/src/code_800AF9B0.c index 308bfb751..f185e6564 100644 --- a/src/code_800AF9B0.c +++ b/src/code_800AF9B0.c @@ -10,17 +10,26 @@ #include "main.h" #include "math_util.h" -extern Light D_800E8680; -extern Light D_800E8688; +/*** Data ***/ +Ambient D_800E8680 = {{ + {31, 31, 31}, 0, + {31, 31, 31}, 0, +}}; -/* BSS */ +Light D_800E8688 = {{ + {255, 255, 255}, 0, + {255, 255, 255}, 0, + { 40, 40, 20}, 0, +}}; + +/*** BSS ****/ s16 D_8018EDB0; s16 D_8018EDB2; s16 D_8018EDB4; Vtx *D_8018EDB8; Vtx *D_8018EDBC; -/* utils */ +/*** utils **/ #define SQ(x) ((x) * (x)) void func_800AF9B0(void) { diff --git a/src/code_800AF9B0.h b/src/code_800AF9B0.h index a5bff659b..08c0ccc77 100644 --- a/src/code_800AF9B0.h +++ b/src/code_800AF9B0.h @@ -16,7 +16,5 @@ extern s32 D_800DC540; extern s16 gCurrentCourseId; // D_800DC5A0 extern s32 gIsMirrorMode; // D_800DC5F4 extern s32 D_800E86A4; -extern s8 gDisplayedControllerPakTableRows[5]; // D_800E86C6 -extern s32 D_800E86E4; #endif /* CODE_800AF9B0_H */ diff --git a/src/code_800B45E0.c b/src/code_800B45E0.c index e436ddb8e..b8e64ac37 100644 --- a/src/code_800B45E0.c +++ b/src/code_800B45E0.c @@ -9,12 +9,21 @@ #include "menus.h" #include "staff_ghosts.h" -// rodata +/*** data ***/ +#define PFS_COMPANY_CODE(c0, c1) ((u16)(((c0) << 8) | ((c1)))) +#define PFS_GAME_CODE(c0, c1, c2, c3) ((u32)(((c0) << 24) | ((c1) << 16) | ((c2) << 8) | (c3))) + +u16 D_800E86F0 = PFS_COMPANY_CODE('0', '1'); +u32 D_800E86F4 = PFS_GAME_CODE('N', 'K', 'T', 'J'); +s8 D_800E86F8 = 0; +s8 D_800E86FC = 0; + +/*** rodata ***/ const u8 D_800F2E60[4] = {0xc0, 0x27, 0x09, 0x00}; // game_name param to osPfsFindFile -const char D_800F2E64[] = {0x26, 0x1a, 0x2b, 0x22, 0x28, 0x24, 0x1a, 0x2b, 0x2d, 0x16, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00}; -// ext_name param to osPfsFindFile -const char D_800F2E74[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +const u8 D_800F2E64[] = {0x26, 0x1a, 0x2b, 0x22, 0x28, 0x24, 0x1a, 0x2b, 0x2d, 0x16, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00}; +// ext_name param to osPfsFindFile (four total bytes, but only one is setable) +const u8 D_800F2E74[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // new file start? void func_800B45E0(s32 arg0) { diff --git a/src/code_800B45E0.h b/src/code_800B45E0.h index e45ec98e0..3da9535bd 100644 --- a/src/code_800B45E0.h +++ b/src/code_800B45E0.h @@ -14,7 +14,7 @@ union GrandPrixPointsUnion /* Function Prototypes */ void func_800B45E0(s32); void write_save_data_grand_prix_points_and_sound_mode(); -void func_800B46D0(); +void func_800B46D0(void); void func_800B4728(s32); void reset_save_data_grand_prix_points_and_sound_mode(); s32 func_800B4874(s32); @@ -28,6 +28,7 @@ s32 func_800B4E24(s32); s32 func_800B4EB4(s32, s32); s32 func_800B4F2C(); s32 func_800B4FB0(s32); +void func_800B5404(s32, s32); u8 func_800B54C0(s32, s32); u8 func_800B54EC(s32, s32); u8 func_800B5508(s32, s32, s32); @@ -42,14 +43,20 @@ s32 compute_save_data_checksum_backup_1(void); s32 compute_save_data_checksum_backup_2(void); s32 validate_save_data_checksum_backup(); s32 func_800B5B2C(s32); +s32 func_800B5B94(void); +s32 func_800B5DA4(void); s32 func_800B5F30(); s32 func_800B6014(); +s32 func_800B6088(s32); u8 func_800B60E8(s32); +s32 func_800B6178(s32); s32 func_800B64EC(s32); +s32 func_800B65F4(s32, s32); void func_800B6708(void); +void func_800B6798(void); u8 func_800B6828(s32); u8 func_800B68F4(s32); -void func_800B69BC(s32); +s32 func_800B69BC(s32); s32 func_800B6A68(); /* data */ @@ -58,7 +65,7 @@ s32 func_800B6A68(); extern u32* D_800DC714; extern u16 D_800E86F0; -extern s32 D_800E86F4; +extern u32 D_800E86F4; // osPfs gamecode extern s8 D_800E86F8; extern struct_8018EE10_entry D_8018EE10[]; extern struct_8018EE10_entry *D_8018D9C0; @@ -70,8 +77,8 @@ extern union GrandPrixPointsUnion D_8018ED88; // D_8018EB90.grandPrixPointsBacku extern s8 D_800E86FC; extern const u8 D_800F2E60[]; -extern const char D_800F2E64[]; -extern const char D_800F2E74[]; +extern const u8 D_800F2E64[]; +extern const u8 D_800F2E74[]; extern OSMesgQueue gSIEventMesgQueue; // D_8014F0B8 extern u16 D_80162DD6; extern s32 D_80162DE0; @@ -82,7 +89,7 @@ extern OSPfsState D_8018E938[]; extern s32 D_8018EB38[16]; extern s32 D_8018EB78; extern s32 D_8018EB7C; -extern s32 D_8018EB84; +extern s32 D_8018EB84; // osPfs file_no receiver/out param extern s32 D_8018EB88; extern SaveData D_8018EB90; extern u8 D_8018ED11; diff --git a/src/main.c b/src/main.c index ae40b4e9c..198570115 100644 --- a/src/main.c +++ b/src/main.c @@ -6,6 +6,7 @@ #include "profiler.h" #include "main.h" #include "memory.h" +#include "menus.h" #include "segments.h" #include "segment_symbols.h" #include "common_structs.h" diff --git a/src/main.h b/src/main.h index 2afe0826e..883756a83 100644 --- a/src/main.h +++ b/src/main.h @@ -59,6 +59,7 @@ void thread4_audio(s32); extern struct GfxPool *gGfxPool; extern Gfx *gDisplayListHead; +extern struct Controller gControllers[8]; extern OSIoMesg gDmaIoMesg; extern OSMesg gMainReceivedMesg; @@ -68,6 +69,7 @@ extern s32 gActiveScreenMode; extern f32 D_800DC594; extern s32 D_800DC600; extern s32 D_8015F8B8, D_8015F8BC, D_8015F8C0, D_8015F8C4, D_8015F8C8, D_8015F8CC; +extern s32 gScreenModeSelection; extern s16 sController1Unplugged; diff --git a/src/menus.c b/src/menus.c index e64ac0be3..f1568b243 100644 --- a/src/menus.c +++ b/src/menus.c @@ -1,28 +1,107 @@ #include #include #include -#include "global.h" +#include +#include #include "menus.h" +#include "actors.h" #include "audio/external.h" +#include "code_80005FD0.h" #include "code_80091750.h" -#include +#include "code_800AF9B0.h" +#include "code_800B45E0.h" +#include "main.h" +#include "staff_ghosts.h" + +/** Externs to be put into headers **/ +extern s16 D_8015F892; // bss unknown +extern u32 D_800DC5AC; // data? from this file or another (main.c?)? +extern void func_800C3448(s32); +extern void rmonPrintf(const char *, ...); // not in a libultra header? + +/** BSS **/ +s32 D_8018EDC0; +f32 D_8018EDC4; +f32 D_8018EDC8; +f32 D_8018EDCC; +f32 D_8018EDD0; +f32 D_8018EDD4; +f32 D_8018EDD8; +f32 D_8018EDDC; +s32 D_8018EDE0; +s8 gCharacterGridSelections[4]; // map from player id to current grid position +s8 D_8018EDE8[4]; // bool8; map player id to isCharSelected on CSS +s8 D_8018EDEC; +s8 gMainMenuSelectionDepth; +s8 D_8018EDEE; // grid screen state? +s8 gDebugMenuSelection; +s8 gControllerPakMenuSelection; +s8 D_8018EDF1; +u8 gSoundMode; +s8 D_8018EDF3; // main menu row id? but it is also the number of players define +s8 D_8018EDF4; +s8 D_8018EDF5; +s8 D_8018EDF6; +s8 gTimeTrialDataCourseIndex; +s8 gCourseRecordsMenuSelection; +s8 D_8018EDF9; +s8 gDebugGotoScene; +s8 D_8018EDFB; +s8 D_8018EDFC; +s32 gMenuTimingCounter; +s32 D_8018EE04; +s8 D_8018EE08; +s8 gCupSelection; +s8 D_8018EE0A; +s8 gCupCourseSelection; +s8 D_8018EE0C; +struct_8018EE10_entry D_8018EE10[2]; + +/** Data **/ +s32 gMenuSelection = LOGO_INTRO_MENU; +s32 D_800E86A4 = 0; +s8 gCharacterSelections[4] = { MARIO, LUIGI, YOSHI, TOAD }; -/* const/rodata data */ +// gGameModeRowSelectionForNumPlayers is (D_800E86AC - 1) +// gGameModeSubMenuRowSelectionForNumPlayers (D_800E86AC + 1) + +// the current row selected in column i on main menu +s8 D_800E86AC[4] = { 0, 0, 0, 0 }; +// For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will +// be whether 'Begin' or 'Data' is selected. Not used for Battle. +// indexed as [column][row] +s8 D_800E86B0[4][3] = { + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0}, + {0, 0, 0} +}; + +s8 gNextDemoId = 0; +s8 gControllerPakSelectedTableRow = 0; +s8 D_800E86C4[12] = {0, 0, 1, 2, 3, 4, 5, 6, 0, 0, 0, 0}; +s8 D_800E86D0[16] = {0}; // this doesn't make a lot of sense... +s8 unref_800E86E0[4] = {0, 0, 0, 1}; + +u32 sVIGammaOffDitherOn = OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON; + +/*** Const/rodata Data ***/ // used to set gScreenModeSelection; might be smaller; could be function static data const s8 D_800F2B50[] = {0, 1, 2, 3, 3, 0, 0, 0}; // set to D_8018EDF3, then that sets gPlayerCountSelection1 const s8 D_800F2B58[] = {1, 2, 2, 3, 4, 0, 0, 0}; -//const s8 D_800F2B5F = 0; // probably part of above array; terminator? -// probably combined... -//const s8 D_800F2B60 = 1; -//const s8 D_800F2B61[] = {2, 1, 1, 2, 1, 0, 2, 2, 0, 2, 0, 0}; -//const s8 D_800F2B6D[] = {2, 0, 0}; -const s8 D_800F2B60[] = {1, 2, 1, 1, 2, 1, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0}; +const s8 D_800F2B60[5][3] = { + {1, 2, 1}, + {1, 2, 1}, + {0, 2, 2}, + {0, 2, 0}, + {0, 2, 0} +}; // is this another union GameModePack? Figure out when decomping. const s32 gGameModeFromNumPlayersAndRowSelection[5][3] = { @@ -33,7 +112,17 @@ const s32 gGameModeFromNumPlayersAndRowSelection[5][3] = { { 0x00000002, 0x00000003, 0x00000000 }, }; -const s8 D_800F2BAC[] = { 0x00, 0x01, 0x06, 0x03, 0x02, 0x04, 0x05, 0x07 }; +// map from character grid position id to character id +const s8 D_800F2BAC[] = { + MARIO, + LUIGI, + PEACH, + TOAD, + YOSHI, + DK, + WARIO, + BOWSER, +}; const s16 gCupCourseOrder[5][4] = { // mushroom cup @@ -48,36 +137,55 @@ const s16 gCupCourseOrder[5][4] = { { COURSE_BIG_DONUT, COURSE_BLOCK_FORT, COURSE_DOUBLE_DECK, COURSE_SKYSCRAPER }, }; -const s8 D_800F2BDC[] = {1, 0, 0, 0, 0, 1, 3, 4}; - -// terrible for endianness... Best guess as to what this is for.. -union GameModePack { - s8 modes[4]; - s32 word; -}; +const s8 D_800F2BDC[8] = {1, 0, 0, 0, 0, 1, 3, 4}; // needs to be a union (or array...?) to go into rodata as a const +// terrible for endianness... Best guess as to what this is for.. +union GameModePack { + u8 modes[4]; + s32 word; +}; const union GameModePack D_800F2BE4 = { {0, 1, 2, 3} }; -// new file start -#if NEEDS_RODATA +/** forward decs **/ +void func_800B053C(struct Controller *, u16); +void func_800B13B0(struct Controller *, u16); +void func_800B15AC(struct Controller *, u16); +void func_800B1C40(struct Controller *, u16); +void func_800B1C90(struct Controller *, u16); +void func_800B20F4(struct Controller *, u16); +void func_800B29D8(struct Controller *, u16); +void func_800B3554(struct Controller *, u16); +void func_800B3B58(struct Controller *, u16); +void func_800B44AC(void); +/**************************/ + void func_800B0350(void) { u16 controllerIdx; if (D_800E86A4 == 0) { for (controllerIdx = 0; controllerIdx < 4; controllerIdx++) { if ((func_800B4520() == 0) && (gEnableDebugMode != 0) && ((gControllers[controllerIdx].buttonPressed & 0x1000) != 0)) { - if ((gMenuSelection != MAIN_MENU) && (gMenuSelection != PLAYER_SELECT_MENU)) { - if (gMenuSelection == COURSE_SELECT_MENU) { + // this is certainly a way to write these... + switch (gMenuSelection) { + case COURSE_SELECT_MENU: func_800CA330(0x19); - } + // deliberate (?) fallthru + case MAIN_MENU: + case PLAYER_SELECT_MENU: + play_sound2(0x49008016); + break; } - play_sound2(0x49008016); - if ((gMenuSelection != CONTROLLER_PAK_MENU) && (gMenuSelection != START_MENU)) { - func_8009E1C0(); + + switch (gMenuSelection) { + case CONTROLLER_PAK_MENU: + case START_MENU: + break; + default: + func_8009E1C0(); } } - osViSetSpecialFeatures(D_800E86E4); + osViSetSpecialFeatures(sVIGammaOffDitherOn); switch (gMenuSelection) { case OPTIONS_MENU: func_800B053C(&gControllers[controllerIdx], controllerIdx); @@ -116,562 +224,429 @@ void func_800B0350(void) { } } } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B0350.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? func_8009E280(); /* extern */ -s32 func_800B5B94(); /* extern */ -s32 func_800B5DA4(); /* extern */ -? func_800B6088(s32); /* extern */ -s32 func_800B6178(s32); /* extern */ -s32 func_800B65F4(s32, s32); /* extern */ -? func_800B6708(); /* extern */ -? func_800B6798(); /* extern */ -s32 osPfsFindFile(? *, u16, s32, ? *, ? *, ? *); /* extern */ -? play_sound2(?, u16, u16); /* extern */ -extern void *D_8018D9C0; -extern ? D_8018E868; -extern ? D_8018EB84; -extern ? D_8018EE10; -extern ? D_8018EE14; -extern ? D_8018EE15; -extern u8 D_8018EE94; -extern s8 D_8018EE95; -static s32 D_800DC5AC = 0; -static u16 D_800E86F0; /* unable to generate initializer; const */ -static s32 D_800E86F4 = 0x4E4B544A; /* const */ -static ? D_800F2E64; /* unable to generate initializer; const */ -static ? D_800F2E74; /* unable to generate initializer; const */ -void func_800B053C(struct Controller *arg0, u16 arg1) { - u16 sp3E; +// D_8018EDEC is position on options screen? +#ifndef NON_MATCHING +// issue is regalloc starting at the 0x32 0x33 case +enum MenuOptionsCursorPositions { + MENU_OPTIONS_CSRPOS_SOUNDMODE = 0x16 +}; + +// navigation of the options menu +void func_800B053C(struct Controller *controller, u16 arg1) { + u16 btnAndStick; // sp3E struct_8018D9E0_entry *sp38; - void *sp30; - s32 sp2C; - s32 sp20; - f64 temp_f0; - f64 temp_f0_10; - f64 temp_f0_2; - f64 temp_f0_3; - f64 temp_f0_4; - f64 temp_f0_5; - f64 temp_f0_6; - f64 temp_f0_7; - f64 temp_f0_8; - f64 temp_f0_9; - s32 temp_t7; - s32 temp_t9_2; - s32 temp_v0_10; - s32 temp_v0_11; - s32 temp_v0_7; - s32 temp_v0_8; - s8 temp_v0_4; - s8 temp_v0_9; - s8 temp_v1; - s8 temp_v1_2; - s8 temp_v1_3; - s8 temp_v1_4; - s8 temp_v1_5; - s8 temp_v1_6; - struct_8018D9E0_entry *temp_t0; - struct_8018D9E0_entry *temp_v0; - u16 temp_t8; - u32 temp_t9; - u8 temp_v0_2; - u8 temp_v0_3; - u8 temp_v0_5; - u8 temp_v0_6; - void *temp_a0; - u16 phi_a2; - s32 phi_a1; - s8 *phi_t1; - s32 phi_a1_2; - s8 *phi_t1_2; - s32 phi_a1_3; - s8 *phi_t1_3; - u16 phi_a1_4; - struct_8018D9E0_entry *phi_t0; - s8 *phi_t1_4; - s32 phi_a1_5; - s8 *phi_t1_5; - s32 phi_v0; - s32 phi_v0_2; + s32 res; + struct_8018EE10_entry *sp30; + s32 sp2C; // cursorWasMoved or communicateStoredAction + UNUSED u32 pad; - temp_t8 = (arg0->buttonPressed | arg0->stickPressed) & 0xFFFF; - phi_a2 = temp_t8; - if ((gEnableDebugMode == 0) && ((temp_t8 & 0x1000) != 0)) { - phi_a2 = (temp_t8 | 0x8000) & 0xFFFF; + btnAndStick = (controller->buttonPressed | controller->stickPressed); + + if (!gEnableDebugMode && (btnAndStick & CONT_START)) { + btnAndStick |= CONT_A; } - sp3E = phi_a2; - if (func_800B4520(phi_a2) == 0) { - sp3E = phi_a2; - temp_v0 = find_8018D9E0_entry_dupe(0xF0); - temp_v1 = D_8018EDEC; - temp_t0 = temp_v0; + + if (!func_800B4520()) { + sp38 = find_8018D9E0_entry_dupe(0xF0); sp30 = D_8018D9C0; - phi_t1_4 = &D_8018EDEC; - switch (temp_v1) { /* switch 1 */ - case 0x15: /* switch 1 */ - case 0x16: /* switch 1 */ - case 0x17: /* switch 1 */ - case 0x18: /* switch 1 */ - sp2C = 0; - phi_a1 = (s32) phi_a2; - if (((phi_a2 & 0x400) != 0) && ((s32) temp_v1 < 0x18)) { - D_8018EDEC = temp_v1 + 1; - sp20 = (s32) phi_a2; - sp38 = temp_t0; - play_sound2(0x49008000, phi_a2, phi_a2); - temp_f0 = (f64) temp_t0->unk24; - phi_a1 = sp20; - if (temp_f0 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0 + 4.0); + switch (D_8018EDEC) { + case 0x15: + case 0x16: + case 0x17: + case 0x18: + { + sp2C = FALSE; + if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x18)) { + D_8018EDEC += 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } - temp_t0->unk8 = 1; - sp2C = 1; + sp38->unk8 = 1; + sp2C = TRUE; } - phi_t1 = &D_8018EDEC; - if ((phi_a1 & 0x800) != 0) { - temp_v1_2 = D_8018EDEC; - if ((s32) temp_v1_2 >= 0x16) { - D_8018EDEC = temp_v1_2 - 1; - sp2C = 1; - sp20 = phi_a1; - sp38 = temp_t0; - play_sound2(0x49008000, (u16) phi_a1); - temp_f0_2 = (f64) temp_t0->unk24; - phi_t1 = &D_8018EDEC; - if (temp_f0_2 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_2 + 4.0); - } - temp_t0->unk8 = -1; + // L800B066C + if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x16)) { + D_8018EDEC -= 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } + sp2C = TRUE; + sp38->unk8 = -1; } - if (sp2C != 0) { - temp_v0_2 = gSoundMode; - if (temp_t0->unk4 != temp_v0_2) { - gSaveDataSoundMode = temp_v0_2; - sp20 = phi_a1; - sp38 = temp_t0; - write_save_data_grand_prix_points_and_sound_mode(); - update_save_data_backup(); - temp_t0->unk4 = (s32) gSoundMode; - phi_t1 = &D_8018EDEC; - } + // L800B06FC + if (sp2C && gSoundMode != sp38->unk4) { + gSaveDataSoundMode = gSoundMode; + write_save_data_grand_prix_points_and_sound_mode(); + update_save_data_backup(); + sp38->unk4 = gSoundMode; } - if (((u16) phi_a1 & 0x4000) != 0) { - sp38 = temp_t0; + // L800B0758 + if (btnAndStick & CONT_B) { func_8009E280(); play_sound2(0x49008002); - temp_v0_3 = gSoundMode; - if (temp_t0->unk4 != temp_v0_3) { - gSaveDataSoundMode = temp_v0_3; - sp38 = temp_t0; + if (gSoundMode != sp38->unk4) { + gSaveDataSoundMode = gSoundMode; write_save_data_grand_prix_points_and_sound_mode(); update_save_data_backup(); - temp_t0->unk4 = (s32) gSoundMode; - return; + sp38->unk4 = gSoundMode; } - } else if (((u16) phi_a1 & 0x8000) != 0) { - temp_v0_4 = *phi_t1; - switch (temp_v0_4) { /* switch 3; irregular */ - case 22: /* switch 3 */ - temp_v0_5 = gSoundMode; - if ((s32) temp_v0_5 < 3) { - gSoundMode = temp_v0_5 + 1; + return; + } + // L800B07C8 + if (btnAndStick & CONT_A) { + switch (D_8018EDEC) { + case 0x16: + if (gSoundMode < 3) { + gSoundMode += 1; } else { - gSoundMode = 0; + gSoundMode = SOUND_STEREO; } - if (gSoundMode == 2) { - gSoundMode = 3; + if (gSoundMode == SOUND_UNUSED) { + gSoundMode = SOUND_MONO; } func_800B44BC(); - temp_v0_6 = gSoundMode; - switch (temp_v0_6) { /* switch 4; irregular */ - case 0: /* switch 4 */ - play_sound2(0x49008024); - return; - case 1: /* switch 4 */ - play_sound2(0x49008025); - return; - case 3: /* switch 4 */ - play_sound2(0x49008029); - return; + switch (gSoundMode) { + case SOUND_STEREO: play_sound2(0x49008024); return; + case SOUND_HEADPHONES: play_sound2(0x49008025); return; + case SOUND_MONO: play_sound2(0x49008029); return; } break; - case 23: /* switch 3 */ - sp38 = temp_t0; - temp_v0_7 = func_800B5DA4(); - switch (temp_v0_7) { /* switch 5; irregular */ - case -1: /* switch 5 */ + case 0x17: + switch(func_800B5DA4()) { + case -1: D_8018EDEC = 0x2B; play_sound2(0x4900FF07); return; - case 0: /* switch 5 */ - sp38 = temp_t0; + case 0: func_800B6798(); - temp_v0_8 = func_800B5B94(); - temp_t9 = temp_v0_8 + 1; - sp2C = temp_v0_8; - switch (temp_t9) { /* switch 2 */ - case 0: /* switch 2 */ + sp2C = func_800B5B94(); + switch (sp2C) { + case -1: D_8018EDEC = 0x46; - temp_t0->unk4 = 0; + sp38->unk4 = 0; play_sound2(0x49008001); break; - case 1: /* switch 2 */ + case 0: func_800B6708(); break; - case 2: /* switch 2 */ + case 1: D_8018EDEC = 0x34; play_sound2(0x4900FF07); break; - case 5: /* switch 2 */ + case 4: D_8018EDEC = 0x37; play_sound2(0x4900FF07); break; - default: /* switch 2 */ + case 2: + case 3: + default: D_8018EDEC = 0x35; play_sound2(0x4900FF07); break; } - if ((sp2C == -1) && (sp30->unk4 == 0) && (sp30->unk84 == 0)) { + // L800B09DC + // definitely reading u8 at 0x84 from struct_8018EE10_entry, + // but that is too big for the size of the struct... unsized array off the end? + if (sp2C == -1 && !sp30->ghostDataSaved && !((u8 *)sp30)[0x84]) { D_8018EDEC = 0x2A; play_sound2(0x4900FF07); return; } + // L800B0A20 if (sp2C == 0) { - if (sp30->unk4 != 0) { + if (sp30->ghostDataSaved) { D_8018EDEC = 0x28; play_sound2(0x49008001); - return; - } - if (sp30->unk84 != 0) { + } else if (((u8 *)sp30)[0x84]) { D_8018EDEC = 0x29; play_sound2(0x49008001); - return; + } else { + D_8018EDEC = 0x2A; + play_sound2(0x4900FF07); } - D_8018EDEC = 0x2A; - play_sound2(0x4900FF07); - return; } - break; - case 1: /* switch 5 */ + // else return? + return; + case 1: D_8018EDEC = 0x2C; play_sound2(0x4900FF07); return; - default: /* switch 5 */ - case 2: /* switch 5 */ + case 2: + default: D_8018EDEC = 0x2D; play_sound2(0x4900FF07); return; } - break; - case 24: /* switch 3 */ - *phi_t1 = 0x1E; - play_sound2(0x49008001, (u16) phi_a1); + case 0x18: + { + D_8018EDEC = 0x1E; + play_sound2(0x49008001); return; - case 21: /* switch 3 */ + } + case 0x15: + { func_8009E280(); play_sound2(0x49008002); return; } - } + } + } + // maybe else return?; break; - case 0x1E: /* switch 1 */ - case 0x1F: /* switch 1 */ - phi_a1_2 = (s32) phi_a2; - if (((phi_a2 & 0x400) != 0) && ((s32) temp_v1 < 0x1F)) { - D_8018EDEC = temp_v1 + 1; - sp20 = (s32) phi_a2; - sp38 = temp_t0; - play_sound2(0x49008000, phi_a2, phi_a2); - temp_f0_3 = (f64) temp_t0->unk24; - phi_a1_2 = sp20; - if (temp_f0_3 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_3 + 4.0); + } + case 0x1E: + case 0x1F: + { + if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x1F)) { + D_8018EDEC += 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } - temp_t0->unk8 = 1; + sp38->unk8 = 1; } - phi_t1_2 = &D_8018EDEC; - if ((phi_a1_2 & 0x800) != 0) { - temp_v1_3 = D_8018EDEC; - if ((s32) temp_v1_3 >= 0x1F) { - D_8018EDEC = temp_v1_3 - 1; - sp20 = phi_a1_2; - sp38 = temp_t0; - play_sound2(0x49008000, (u16) phi_a1_2); - temp_f0_4 = (f64) temp_t0->unk24; - phi_t1_2 = &D_8018EDEC; - if (temp_f0_4 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_4 + 4.0); - } - temp_t0->unk8 = -1; + // L800B0B74 + if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x1F)) { + D_8018EDEC -= 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } + sp38->unk8 = -1; } - if (((u16) phi_a1_2 & 0x4000) != 0) { - *phi_t1_2 = 0x18; - play_sound2(0x49008002, (u16) phi_a1_2); - return; - } - if (((u16) phi_a1_2 & 0x8000) != 0) { - temp_v0_9 = *phi_t1_2; - switch (temp_v0_9) { /* switch 6; irregular */ - case 30: /* switch 6 */ - *phi_t1_2 = 0x18; - play_sound2(0x49008002, (u16) phi_a1_2); - return; - case 31: /* switch 6 */ - *phi_t1_2 = 0x20; - func_800B46D0(0x49000000, (u16) phi_a1_2); - D_800DC5AC = 0; - play_sound2(0x4900801D); - return; - } - } - break; - case 0x20: /* switch 1 */ - if ((phi_a2 & 0xD000) != 0) { + // L800B0BF8 + if (btnAndStick & CONT_B) { D_8018EDEC = 0x18; play_sound2(0x49008002); return; } - break; - case 0x28: /* switch 1 */ - case 0x29: /* switch 1 */ - phi_a1_3 = (s32) phi_a2; - if (((phi_a2 & 0x400) != 0) && ((s32) temp_v1 < 0x29) && (sp30->unk84 != 0)) { - D_8018EDEC = temp_v1 + 1; - sp20 = (s32) phi_a2; - sp38 = temp_t0; - play_sound2(0x49008000, phi_a2, phi_a2); - temp_f0_5 = (f64) temp_t0->unk24; - phi_a1_3 = sp20; - if (temp_f0_5 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_5 + 4.0); - } - temp_t0->unk8 = 1; - } - phi_t1_3 = &D_8018EDEC; - if ((phi_a1_3 & 0x800) != 0) { - temp_v1_4 = D_8018EDEC; - if (((s32) temp_v1_4 >= 0x29) && (sp30->unk4 != 0)) { - D_8018EDEC = temp_v1_4 - 1; - sp20 = phi_a1_3; - sp38 = temp_t0; - play_sound2(0x49008000, (u16) phi_a1_3); - temp_f0_6 = (f64) temp_t0->unk24; - phi_t1_3 = &D_8018EDEC; - if (temp_f0_6 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_6 + 4.0); - } - temp_t0->unk8 = -1; + // L800B0C20 + if (btnAndStick & CONT_A) { + switch (D_8018EDEC) { + case 0x1E: + D_8018EDEC = 0x18; + play_sound2(0x49008002); + break; + case 0x1F: + D_8018EDEC = 0x20; + func_800B46D0(); + D_800DC5AC = 0; + play_sound2(0x4900801D); + break; } } - if (((u16) phi_a1_3 & 0x4000) != 0) { - *phi_t1_3 = 0x17; - play_sound2(0x49008002, (u16) phi_a1_3); - return; - } - if (((u16) phi_a1_3 & 0x8000) != 0) { - temp_t9_2 = *phi_t1_3 - 0x28; - temp_t0->unk20 = temp_t9_2; - if (((sp30 + (temp_t9_2 << 7))->unk5 == D_8018EE95) && (D_8018EE94 != 0)) { - *phi_t1_3 = 0x33; - } else { - *phi_t1_3 = 0x32; - } - play_sound2(0x49008001, (u16) phi_a1_3); - return; + break; // or return? + } + case 0x20: + { + if (btnAndStick & (CONT_A | CONT_B | CONT_START)) { + D_8018EDEC = 0x18; + play_sound2(0x49008002); } break; - case 0x32: /* switch 1 */ - case 0x33: /* switch 1 */ - temp_a0 = ((temp_v1 - 0x32) << 7) + &D_8018EE10; - phi_a1_4 = phi_a2; - if (((sp30 + (temp_v0->unk20 << 7))->unk5 != temp_a0->unk5) || (phi_t0 = temp_t0, (temp_a0->unk4 == 0))) { - if (((phi_a2 & 0x400) != 0) && ((s32) temp_v1 < 0x33)) { - D_8018EDEC = temp_v1 + 1; - sp20 = (s32) phi_a2; - sp38 = temp_t0; - play_sound2(0x49008000, phi_a2, phi_a2); - temp_f0_7 = (f64) temp_t0->unk24; - if (temp_f0_7 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_7 + 4.0); - } - temp_t0->unk8 = 1; + } + case 0x28: + case 0x29: + { + if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x29) && (sp30[1].ghostDataSaved)) { + D_8018EDEC += 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } - phi_a1_4 = (u16) (s32) phi_a2; - phi_t0 = temp_t0; - phi_t1_4 = &D_8018EDEC; - if (((s32) phi_a2 & 0x800) != 0) { - temp_v1_5 = D_8018EDEC; - if ((s32) temp_v1_5 >= 0x33) { - D_8018EDEC = temp_v1_5 - 1; - sp20 = (s32) phi_a2; - sp38 = temp_t0; - play_sound2(0x49008000, (u16) (s32) phi_a2); - temp_f0_8 = (f64) temp_t0->unk24; - phi_a1_4 = (u16) (s32) phi_a2; - phi_t0 = temp_t0; - phi_t1_4 = &D_8018EDEC; - if (temp_f0_8 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_8 + 4.0); - } - temp_t0->unk8 = -1; - } + sp38->unk8 = 1; + } + // L800B0D38 + if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x29) && sp30->ghostDataSaved) { + D_8018EDEC -= 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } + sp38->unk8 = -1; } - if ((phi_a1_4 & 0x4000) != 0) { - *phi_t1_4 = phi_t0->unk20 + 0x28; - play_sound2(0x49008002, phi_a1_4); - return; - } - if ((phi_a1_4 & 0x8000) != 0) { - temp_t7 = *phi_t1_4 - 0x32; - phi_t0->unk1C = temp_t7; - if (*(&D_8018EE14 + (temp_t7 << 7)) != 0) { - *phi_t1_4 = 0x38; - } else { - *phi_t1_4 = 0x3A; - phi_t0->unk4 = 0; - } - play_sound2(0x49008001, phi_a1_4); - return; - } - break; - case 0x2A: /* switch 1 */ - case 0x2B: /* switch 1 */ - case 0x2C: /* switch 1 */ - case 0x2D: /* switch 1 */ - case 0x34: /* switch 1 */ - case 0x35: /* switch 1 */ - case 0x37: /* switch 1 */ - case 0x3C: /* switch 1 */ - case 0x41: /* switch 1 */ - case 0x42: /* switch 1 */ - if ((phi_a2 & 0xD000) != 0) { + // L800B0DD0 + if (btnAndStick & CONT_B) { D_8018EDEC = 0x17; play_sound2(0x49008002); return; } - break; - case 0x38: /* switch 1 */ - case 0x39: /* switch 1 */ - phi_a1_5 = (s32) phi_a2; - if (((phi_a2 & 0x100) != 0) && ((s32) temp_v1 < 0x39)) { - D_8018EDEC = temp_v1 + 1; - sp20 = (s32) phi_a2; - sp38 = temp_t0; - play_sound2(0x49008000, phi_a2, phi_a2); - temp_f0_9 = (f64) temp_t0->unk24; - phi_a1_5 = sp20; - if (temp_f0_9 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_9 + 4.0); + // L800B0DF4 + if (btnAndStick & CONT_A) { + sp38->unk20 = D_8018EDEC - 0x28; + if (sp30[sp38->unk20].courseIndex == D_8018EE10[1].courseIndex && D_8018EE10[1].ghostDataSaved) { + D_8018EDEC = 0x33; + } else { + D_8018EDEC = 0x32; } - temp_t0->unk8 = 1; + play_sound2(0x49008001); } - phi_t1_5 = &D_8018EDEC; - if ((phi_a1_5 & 0x200) != 0) { - temp_v1_6 = D_8018EDEC; - if ((s32) temp_v1_6 >= 0x39) { - D_8018EDEC = temp_v1_6 - 1; - sp20 = phi_a1_5; - sp38 = temp_t0; - play_sound2(0x49008000, (u16) phi_a1_5); - temp_f0_10 = (f64) temp_t0->unk24; - phi_t1_5 = &D_8018EDEC; - if (temp_f0_10 < 4.2) { - temp_t0->unk24 = (f32) (temp_f0_10 + 4.0); + break; + } + case 0x32: + case 0x33: + { + // bit of a fake match, but if it works it works? + if ((sp30[sp38->unk20].courseIndex != ((0, (D_8018EE10 + (D_8018EDEC - 0x32))->courseIndex))) || ((D_8018EE10 + (D_8018EDEC - 0x32))->ghostDataSaved == 0)) { + if ((btnAndStick & CONT_DOWN) && (D_8018EDEC < 0x33)) { + D_8018EDEC += 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; } - temp_t0->unk8 = -1; + sp38->unk8 = 1; } + if ((btnAndStick & CONT_UP) && (D_8018EDEC >= 0x33)) { + D_8018EDEC -= 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; + } + sp38->unk8 = -1; + } } - if (((u16) phi_a1_5 & 0x4000) != 0) { - *phi_t1_5 = temp_t0->unk1C + 0x32; - play_sound2(0x49008002, (u16) phi_a1_5); - return; - } - if (((u16) phi_a1_5 & 0x8000) != 0) { - if (*phi_t1_5 == 0x38) { - *phi_t1_5 = 0x17; - play_sound2(0x49008002, (u16) phi_a1_5); - return; + // L800B0FA4 + if (btnAndStick & CONT_B) { + D_8018EDEC = sp38->unk20 + 0x28; + play_sound2(0x49008002); + } else if (btnAndStick & CONT_A) { + // L800B0FCC + sp38->unk1C = D_8018EDEC - 0x32; + if (D_8018EE10[(sp38->unk1C)].ghostDataSaved) { + D_8018EDEC = 0x38; + } else { + D_8018EDEC = 0x3A; + sp38->unk4 = 0; } - *phi_t1_5 = 0x3A; - sp38 = temp_t0; - play_sound2(0x49008001, (u16) phi_a1_5); - temp_t0->unk4 = 0; - return; + play_sound2(0x49008001); + } + break; + } + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x34: + case 0x35: + case 0x37: + case 0x3C: + case 0x41: + case 0x42: + { + if (btnAndStick & (CONT_A | CONT_B | CONT_START)) { + D_8018EDEC = 0x17; + play_sound2(0x49008002); } break; - case 0x3A: /* switch 1 */ + } + case 0x38: + case 0x39: + { + if ((btnAndStick & CONT_RIGHT) && D_8018EDEC < 0x39) { + D_8018EDEC += 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; + } + sp38->unk8 = 1; + } + // L800B10C4 + if ((btnAndStick & CONT_LEFT) && D_8018EDEC >= 0x39) { + D_8018EDEC -= 1; + play_sound2(0x49008000); + if (sp38->unk24 < 4.2) { + sp38->unk24 += 4.0; + } + sp38->unk8 = -1; + } + // L800B114C + if (btnAndStick & CONT_B) { + D_8018EDEC = sp38->unk1C + 0x32; + play_sound2(0x49008002); + return; + } + if (btnAndStick & CONT_A) { + if (D_8018EDEC == 0x38) { + D_8018EDEC = 0x17; + play_sound2(0x49008002); + } else { + D_8018EDEC = 0x3A; + play_sound2(0x49008001); + sp38->unk4 = 0; + } + } + // return? + break; + } + case 0x3A: + { if (arg1 == 0) { - temp_v0->unk4 += 1; + sp38->unk4 += 1; } - if (temp_v0->unk4 >= 3) { + if (sp38->unk4 >= 3) { D_8018EDEC = 0x3B; - return; } break; - case 0x3B: /* switch 1 */ - sp38 = temp_t0; - temp_v0_10 = func_800B5DA4(); - phi_v0 = temp_v0_10; - if (temp_v0_10 == 0) { - sp38 = temp_t0; - phi_v0 = func_800B65F4(temp_t0->unk20, temp_t0->unk1C); + } + case 0x3B: + { + res = func_800B5DA4(); + if (res == 0) { + res = func_800B65F4(sp38->unk20, sp38->unk1C); } - if (phi_v0 != 0) { + // L800B1230 + if (res != 0) { D_8018EDEC = 0x42; play_sound2(0x4900FF07); return; } - sp38 = temp_t0; - temp_v0_11 = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, &D_800F2E64, &D_800F2E74, &D_8018EB84); - phi_v0_2 = temp_v0_11; - if (temp_v0_11 == 0) { - sp38 = temp_t0; - phi_v0_2 = func_800B6178(temp_t0->unk1C); + // L800B1254 + res = osPfsFindFile(&D_8018E868, D_800E86F0, D_800E86F4, (u8 *)D_800F2E64, (u8 *)D_800F2E74, &D_8018EB84); + if (res == 0) { + res = func_800B6178(sp38->unk1C); } - if (phi_v0_2 != 0) { + if (res != 0) { D_8018EDEC = 0x41; play_sound2(0x4900FF07); return; } + // L800B12DC D_8018EDEC = 0x3C; - *(&D_8018EE15 + (temp_t0->unk1C << 7)) = ((temp_t0->unk20 << 7) + sp30)->unk5; - func_800B6088(temp_t0->unk1C); - return; - case 0x46: /* switch 1 */ - if (arg1 == 0) { - temp_v0->unk4 += 1; - } - if (temp_v0->unk4 >= 3) { - D_8018EDEC = 0x47; - return; - } - break; - case 0x47: /* switch 1 */ - if (func_800B6A68() != 0) { - D_8018EDEC = 0x36; - play_sound2(0x4900FF07); - return; - } - if (sp30->unk4 != 0) { - D_8018EDEC = 0x28; - return; - } - D_8018EDEC = 0x29; + D_8018EE10[sp38->unk1C].courseIndex = (sp30 + sp38->unk20)->courseIndex; + func_800B6088(sp38->unk1C); break; } - } else { - default: /* switch 1 */ + case 0x46: + { + if (arg1 == 0) { + sp38->unk4 += 1; + } + if (sp38->unk4 >= 3) { + D_8018EDEC = 0x47; + } + break; + } + case 0x47: + { + if (func_800B6A68()) { + D_8018EDEC = 0x36; + play_sound2(0x4900FF07); + } else if (sp30->ghostDataSaved) { + D_8018EDEC = 0x28; + } else { + D_8018EDEC = 0x29; + } + break; + } + default: break; + } } -} + // L800B13A0 return +} #else GLOBAL_ASM("asm/non_matchings/menus/func_800B053C.s") #endif @@ -737,261 +712,167 @@ void func_800B13B0(struct Controller *controller, UNUSED u16 arg1) { } } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 06ada559d7a32fdab49fa2d619cdfa027615bcda -? play_sound2(?, s32); /* extern */ -extern s8 D_8018EDF9; - -void func_800B15AC(struct Controller *arg0, u16 arg1) { - u16 sp2E; +void func_800B15AC(struct Controller *controller, UNUSED u16 arg1) { + u16 btnAndStick; // sp2E struct_8018D9E0_entry *sp28; - u8 *sp24; - s32 sp20; - s32 sp18; - f64 temp_f0; - f64 temp_f0_2; - f64 temp_f0_3; - f64 temp_f0_4; - f64 temp_f0_5; - s32 temp_a1_4; - s32 temp_t4; - s32 temp_v0_11; - s8 temp_a1; - s8 temp_a1_2; - s8 temp_a1_3; - s8 temp_v0; - s8 temp_v0_10; - s8 temp_v0_3; - s8 temp_v0_4; - s8 temp_v0_5; - s8 temp_v0_6; - s8 temp_v0_7; - s8 temp_v0_8; - s8 temp_v0_9; - struct_8018D9E0_entry *temp_a2; - struct_8018D9E0_entry *temp_a2_2; - struct_8018D9E0_entry *temp_v0_2; - u16 temp_t8; - u16 phi_v1; - s32 phi_a1; - s32 phi_a3; - struct_8018D9E0_entry *phi_a2; - s8 *phi_v1_2; - s32 phi_a3_2; - struct_8018D9E0_entry *phi_a2_2; - s8 *phi_v1_3; + CourseTimeTrialRecords *sp24; + s32 res; - temp_t8 = (arg0->buttonPressed | arg0->stickPressed) & 0xFFFF; - phi_v1 = temp_t8; - if ((gEnableDebugMode == 0) && ((temp_t8 & 0x1000) != 0)) { - phi_v1 = (temp_t8 | 0x8000) & 0xFFFF; + btnAndStick = (controller->buttonPressed | controller->stickPressed); + + if (!gEnableDebugMode && (btnAndStick & CONT_START)) { + btnAndStick |= CONT_A; } - sp2E = phi_v1; - if (func_800B4520() == 0) { - temp_v0 = D_8018EDEC; - switch (temp_v0) { /* irregular */ - case 11: - phi_a3 = (s32) phi_v1; - if ((phi_v1 & 0x200) != 0) { - temp_a1 = gTimeTrialDataCourseIndex; - if ((s32) temp_a1 > 0) { - gTimeTrialDataCourseIndex = temp_a1 - 1; - sp18 = (s32) phi_v1; - play_sound2(0x49008000, (s32) temp_a1); - phi_a3 = sp18; + + if (!func_800B4520()) { + switch(D_8018EDEC) { + case 0x0B: + { + if ((btnAndStick & CONT_LEFT) && (gTimeTrialDataCourseIndex > 0)) { + gTimeTrialDataCourseIndex -= 1; + play_sound2(0x49008000); + } + + if ((btnAndStick & CONT_RIGHT) && (gTimeTrialDataCourseIndex < 15)) { + gTimeTrialDataCourseIndex += 1; + play_sound2(0x49008000); + } + + sp28 = find_8018D9E0_entry_dupe(0xE8); + sp24 = &D_8018EB90.allCourseTimeTrialRecords + .cupRecords[gTimeTrialDataCourseIndex / 4] + .courseRecords[gTimeTrialDataCourseIndex % 4]; + if (gCourseRecordsMenuSelection == 2 && func_800B639C(gTimeTrialDataCourseIndex) < 0) { + gCourseRecordsMenuSelection -= 1; + } + + if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) { + gCourseRecordsMenuSelection -= 1; + } + + if ((btnAndStick & CONT_UP) && (gCourseRecordsMenuSelection > 0)) { + gCourseRecordsMenuSelection -= 1; + if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) { + gCourseRecordsMenuSelection -= 1; } - } - if ((phi_a3 & 0x100) != 0) { - temp_a1_2 = gTimeTrialDataCourseIndex; - if ((s32) temp_a1_2 < 0xF) { - gTimeTrialDataCourseIndex = temp_a1_2 + 1; - sp18 = phi_a3; - play_sound2(0x49008000, (s32) temp_a1_2); + play_sound2(0x49008000); + if (sp28->unk24 < 4.2) { + sp28->unk24 += 4.0; } + sp28->unk8 = -1; } - sp18 = phi_a3; - temp_v0_2 = find_8018D9E0_entry_dupe(0xE8); - temp_a1_3 = gTimeTrialDataCourseIndex; - temp_t4 = (((s32) temp_a1_3 / 4) * 0x60) + (((s32) temp_a1_3 % 4) * 0x18); - phi_a2 = temp_v0_2; - if (gCourseRecordsMenuSelection == 2) { - sp28 = temp_v0_2; - sp18 = phi_a3; - sp24 = &D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4]; - temp_a2 = temp_v0_2; - phi_a2 = temp_a2; - if (func_800B639C((s32) temp_a1_3) < 0) { - gCourseRecordsMenuSelection += -1; + + if ((btnAndStick & CONT_DOWN) && (gCourseRecordsMenuSelection < 2)) { + gCourseRecordsMenuSelection += 1; + if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) { + gCourseRecordsMenuSelection += 1; } - } - temp_v0_3 = gCourseRecordsMenuSelection; - phi_v1_2 = &gCourseRecordsMenuSelection; - if ((temp_v0_3 == 1) && (D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4].unk12 == 0)) { - gCourseRecordsMenuSelection = temp_v0_3 - 1; - } - if ((phi_a3 & 0x800) != 0) { - temp_v0_4 = gCourseRecordsMenuSelection; - if ((s32) temp_v0_4 > 0) { - gCourseRecordsMenuSelection = temp_v0_4 - 1; - temp_v0_5 = gCourseRecordsMenuSelection; - if ((temp_v0_5 == 1) && (D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4].unk12 == 0)) { - gCourseRecordsMenuSelection = temp_v0_5 - 1; - } - sp28 = phi_a2; - sp18 = phi_a3; - sp24 = &D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4]; - play_sound2(0x49008000); - temp_f0 = (f64) phi_a2->unk24; - phi_v1_2 = &gCourseRecordsMenuSelection; - if (temp_f0 < 4.2) { - phi_a2->unk24 = (f32) (temp_f0 + 4.0); - } - phi_a2->unk8 = -1; - } - } - phi_a3_2 = phi_a3; - phi_a2_2 = phi_a2; - phi_v1_3 = phi_v1_2; - if ((phi_a3 & 0x400) != 0) { - temp_v0_6 = *phi_v1_2; - if ((s32) temp_v0_6 < 2) { - *phi_v1_2 = temp_v0_6 + 1; - temp_v0_7 = *phi_v1_2; - if ((temp_v0_7 == 1) && (D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4].unk12 == 0)) { - *phi_v1_2 = temp_v0_7 + 1; - } - if ((*phi_v1_2 == 2) && (sp28 = phi_a2, sp18 = phi_a3, sp24 = &D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4], phi_a3_2 = phi_a3, phi_a2_2 = phi_a2, phi_v1_3 = &gCourseRecordsMenuSelection, (func_800B639C((s32) gTimeTrialDataCourseIndex) < 0))) { - if (D_8018EB90.allCourseTimeTrialRecords.cupRecords[0].courseRecords[0].records[0][temp_t4].unk12 == 0) { - gCourseRecordsMenuSelection = 0; - } else { - gCourseRecordsMenuSelection = 1; - } + + if (gCourseRecordsMenuSelection == 2 && func_800B639C(gTimeTrialDataCourseIndex) < 0) { + if (sp24->unknownBytes[0] == 0) { + gCourseRecordsMenuSelection = 0; } else { - sp28 = phi_a2; - sp18 = phi_a3; - play_sound2(0x49008000); - temp_f0_2 = (f64) phi_a2->unk24; - phi_a3_2 = phi_a3; - phi_a2_2 = phi_a2; - phi_v1_3 = &gCourseRecordsMenuSelection; - if (temp_f0_2 < 4.2) { - phi_a2->unk24 = (f32) (temp_f0_2 + 4.0); - } - phi_a2->unk8 = 1; + gCourseRecordsMenuSelection = 1; } + } else { + play_sound2(0x49008000); + if (sp28->unk24 < 4.2) { + sp28->unk24 += 4.0; + } + sp28->unk8 = 1; } } - if ((phi_a3_2 & 0x4000) != 0) { + + if (btnAndStick & CONT_B) { func_8009E208(); play_sound2(0x49008002); - return; - } - if ((phi_a3_2 & 0x8000) != 0) { - temp_f0_3 = (f64) phi_a2_2->unk24; - if (temp_f0_3 < 4.2) { - phi_a2_2->unk24 = (f32) (temp_f0_3 + 4.0); + } else if (btnAndStick & CONT_A) { + if (sp28->unk24 < 4.2) { + sp28->unk24 += 4.0; } - if (*phi_v1_3 == 0) { - func_8009E208(0x49008001); + if (gCourseRecordsMenuSelection == 0) { + func_8009E208(); play_sound2(0x49008002); - return; + } else { + D_8018EDEC = 0x0C; + D_8018EDF9 = 0; + play_sound2(0x49008001); } - D_8018EDEC = 0xC; - D_8018EDF9 = 0; - play_sound2(0x49008001); - return; } break; - case 12: - sp18 = (s32) phi_v1; - temp_a2_2 = find_8018D9E0_entry_dupe(0xE9); - if ((sp18 & 0x800) != 0) { - temp_v0_8 = D_8018EDF9; - if ((s32) temp_v0_8 > 0) { - D_8018EDF9 = temp_v0_8 - 1; - sp28 = temp_a2_2; - sp18 = sp18; - play_sound2(0x49008000); - temp_f0_4 = (f64) temp_a2_2->unk24; - if (temp_f0_4 < 4.2) { - temp_a2_2->unk24 = (f32) (temp_f0_4 + 4.0); - } - temp_a2_2->unk8 = -1; + } + case 0x0C: + { + sp28 = find_8018D9E0_entry_dupe(0xE9); + if ((btnAndStick & CONT_UP) && (D_8018EDF9 > 0)) { + D_8018EDF9 -= 1; + play_sound2(0x49008000); + if (sp28->unk24 < 4.2) { + sp28->unk24 += 4.0; } + sp28->unk8 = -1; } - if ((sp18 & 0x400) != 0) { - temp_v0_9 = D_8018EDF9; - if ((s32) temp_v0_9 <= 0) { - D_8018EDF9 = temp_v0_9 + 1; - sp28 = temp_a2_2; - sp18 = sp18; - play_sound2(0x49008000); - temp_f0_5 = (f64) temp_a2_2->unk24; - if (temp_f0_5 < 4.2) { - temp_a2_2->unk24 = (f32) (temp_f0_5 + 4.0); - } - temp_a2_2->unk8 = 1; + + if ((btnAndStick & CONT_DOWN) && (D_8018EDF9 <= 0)) { + D_8018EDF9 += 1; + play_sound2(0x49008000); + if (sp28->unk24 < 4.2) { + sp28->unk24 += 4.0; } + sp28->unk8 = 1; } - if ((sp18 & 0x4000) != 0) { + + if (btnAndStick & CONT_B) { D_8018EDEC = 0xB; play_sound2(0x49008002); - return; - } - if ((sp18 & 0x8000) != 0) { + } else if (btnAndStick & CONT_A) { if (D_8018EDF9 != 0) { - temp_v0_10 = gCourseRecordsMenuSelection; - phi_a1 = 0; - switch (temp_v0_10) { /* switch 1; irregular */ - case 1: /* switch 1 */ - func_800B4728((s32) gTimeTrialDataCourseIndex); - func_800B559C((s32) gTimeTrialDataCourseIndex); + res = 0; + switch (gCourseRecordsMenuSelection) { + case 1: + { + func_800B4728(gTimeTrialDataCourseIndex); + func_800B559C(gTimeTrialDataCourseIndex); play_sound2(0x4900801D); - phi_a1 = -1; + res = -1; break; - case 2: /* switch 1 */ - temp_v0_11 = func_800B639C((s32) gTimeTrialDataCourseIndex); - phi_a1 = temp_v0_11; - if (temp_v0_11 >= 0) { - sp20 = temp_v0_11; - func_800B69BC(temp_v0_11); - temp_a1_4 = sp20; - if (MIPS2C_ERROR(Read from unset register $v0) != 0) { - D_8018EDEC = 0xD; - sp20 = temp_a1_4; - play_sound2(0x4900FF07, temp_a1_4); - phi_a1 = temp_a1_4; + } + case 2: + { + res = func_800B639C(gTimeTrialDataCourseIndex); + if (res >= 0) { + if (func_800B69BC(res) != 0){ + D_8018EDEC = 0x0D; + play_sound2(0x4900FF07); } else { - sp20 = temp_a1_4; - play_sound2(0x4900801D, temp_a1_4); - D_8018EDEC = 0xB; - phi_a1 = temp_a1_4; + play_sound2(0x4900801D); + D_8018EDEC = 0x0B; } } break; } - if ((phi_a1 + 1) == 0) { + } + + if (!(res + 1)) { D_8018EDEC = 0xB; - return; } } else { play_sound2(0x49008002); D_8018EDEC = 0xB; - return; } } break; - case 13: - if ((phi_v1 & 0xD000) != 0) { + } + case 0x0D: + { + if (btnAndStick & (CONT_A | CONT_B | CONT_START)) { D_8018EDEC = 0xB; } break; } + } } } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B15AC.s") -#endif // Handle controller input during the logo screen void func_800B1C40(struct Controller *arg0, UNUSED u16 arg1) { @@ -1003,12 +884,11 @@ void func_800B1C40(struct Controller *arg0, UNUSED u16 arg1) { } } -#ifdef NEEDS_RODATA -void func_800B1C90(struct Controller* controller, u16 arg1) { +void func_800B1C90(struct Controller* controller, UNUSED u16 arg1) { u16 buttonAndStickPress; OSPfsState* osPfsState; s32 selectedTableRow; - s8 pad; + UNUSED s8 pad; buttonAndStickPress = controller->buttonPressed | controller->stickPressed; if (func_800B4520() == 0) { @@ -1040,25 +920,25 @@ void func_800B1C90(struct Controller* controller, u16 arg1) { break; case CONTROLLER_PAK_MENU_TABLE_GAME_DATA: if ((buttonAndStickPress & 0x9000) != 0) { - selectedTableRow = gDisplayedControllerPakTableRows[gControllerPakSelectedTableRow] - 1; + selectedTableRow = D_800E86C4[gControllerPakSelectedTableRow + 2] - 1; if (D_8018EB38[selectedTableRow] == 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_QUIT; play_sound2(0x49008001); return; } } else if ((buttonAndStickPress & 0x4000) != 0) { - if (D_800E86D0 == 0) { + if (D_800E86D0[0] == 0) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_SELECT_RECORD; play_sound2(0x49008002); return; } } else if ((buttonAndStickPress & 0x800) != 0) { - if (D_800E86D0 == 0) { + if (D_800E86D0[0] == 0) { --gControllerPakSelectedTableRow; if (gControllerPakSelectedTableRow < 0) { gControllerPakSelectedTableRow = 0; - if (gDisplayedControllerPakTableRows[gControllerPakSelectedTableRow] != 1) { - D_800E86D0 = 2; + if (D_800E86C4[gControllerPakSelectedTableRow + 2] != 1) { + D_800E86D0[0] = 2; play_sound2(0x49008000); return; } @@ -1067,12 +947,12 @@ void func_800B1C90(struct Controller* controller, u16 arg1) { return; } } - } else if (((buttonAndStickPress & 0x400) != 0) && (D_800E86D0 == 0)) { + } else if (((buttonAndStickPress & 0x400) != 0) && (D_800E86D0[0] == 0)) { ++gControllerPakSelectedTableRow; if (gControllerPakSelectedTableRow >= CONTROLLER_PAK_MENU_TABLE_GAME_DATA) { gControllerPakSelectedTableRow = CONTROLLER_PAK_MENU_QUIT; - if (gDisplayedControllerPakTableRows[gControllerPakSelectedTableRow] != 0x10) { - D_800E86D0 = 1; + if (D_800E86C4[gControllerPakSelectedTableRow + 2] != 0x10) { + D_800E86D0[0] = 1; play_sound2(0x49008000); return; } @@ -1115,10 +995,10 @@ void func_800B1C90(struct Controller* controller, u16 arg1) { gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASING; return; case CONTROLLER_PAK_MENU_ERASING: - selectedTableRow = gDisplayedControllerPakTableRows[gControllerPakSelectedTableRow] - 1; + selectedTableRow = D_800E86C4[gControllerPakSelectedTableRow + 2] - 1; osPfsState = &D_8018E938[selectedTableRow]; - switch (osPfsDeleteFile(&D_8018E868, osPfsState->company_code, osPfsState->game_code, &osPfsState->game_name, &osPfsState->ext_name)) { + switch (osPfsDeleteFile(&D_8018E868, osPfsState->company_code, osPfsState->game_code, (u8 *)&osPfsState->game_name, (u8 *)&osPfsState->ext_name)) { default: gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED; return; @@ -1145,304 +1025,231 @@ void func_800B1C90(struct Controller* controller, u16 arg1) { } } } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B1C90.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_8009E1C0(); /* extern */ -? func_800B44BC(); /* extern */ -? write_save_data_grand_prix_points_and_sound_mode(); /* extern */ -? reset_save_data_grand_prix_points_and_sound_mode(); /* extern */ -? func_800B5404(s32, s32); /* extern */ -? update_save_data_backup(); /* extern */ -? func_800CA330(?); /* extern */ -? play_sound2(?, s32); /* extern */ -static ? D_800F2B50; /* unable to generate initializer; const */ -static ? D_800F2B58; /* unable to generate initializer; const */ -s16 gCurrentCourseId; /* unable to generate initializer */ - -void func_800B20F4(void *arg0, s32 arg1) { - u16 sp2E; +void func_800B20F4(struct Controller *controller, u16 arg1) { + u16 btnAndStick; + u16 i; s32 sp28; - s32 sp24; - s16 temp_v0; - s16 temp_v0_2; - s32 temp_a1; - s32 temp_a1_2; - s32 temp_a1_3; - s8 temp_t2; - s8 temp_v0_3; - s8 temp_v0_4; - s8 temp_v0_5; - s8 temp_v0_6; - u8 temp_t2_2; - u8 temp_t7; - u8 temp_v0_7; - u8 temp_v0_8; - s32 phi_a1; - s32 phi_s0; - s32 phi_a1_2; - s32 phi_s0_2; - s32 phi_a1_3; - s32 phi_s0_3; - sp28 = 1; - sp2E = arg0->unk6 | arg0->unkC; + sp28 = TRUE; + btnAndStick = controller->buttonPressed | controller->stickPressed; + if (func_800B4520() == 0) { - if ((arg1 & 0xFFFF) == 0) { + if (arg1 == 0) { D_8018EE04 += 1; } - temp_t2 = gDebugMenuSelection; - switch (temp_t2) { + + switch (gDebugMenuSelection) { case DEBUG_MENU_DISABLED: - sp28 = 0; - if ((D_8018EE04 >= 0x2E) && ((sp2E & 0x9000) != 0)) { + { + sp28 = FALSE; + if ((D_8018EE04 >= 0x2E) && (btnAndStick & (CONT_A | CONT_START))) { func_8009E1C0(); func_800CA330(0x19); play_sound2(0x4900801A); + } else { + break; } break; + } case DEBUG_MENU_DEBUG_MODE: - if ((sp2E & 0x300) != 0) { - sp24 = sp2E; + { + if (btnAndStick & (CONT_RIGHT | CONT_LEFT)) { play_sound2(0x49008000); - if (gEnableDebugMode != 0) { - gEnableDebugMode = 0; + if (gEnableDebugMode) { + gEnableDebugMode = FALSE; } else { - gEnableDebugMode = 1; + gEnableDebugMode = TRUE; } } - if ((sp2E & 0x400) != 0) { + if (btnAndStick & CONT_DOWN) { play_sound2(0x49008000); gDebugMenuSelection = DEBUG_MENU_COURSE; } break; + } case DEBUG_MENU_COURSE: - if ((sp2E & 0x100) != 0) { - sp24 = sp2E; + { + if (btnAndStick & CONT_RIGHT) { play_sound2(0x49008000); - temp_v0 = gCurrentCourseId; - if (temp_v0 < 0x13) { - gCurrentCourseId = temp_v0 + 1; + if (gCurrentCourseId < 0x13) { + gCurrentCourseId += 1; } else { gCurrentCourseId = 0; } } - if ((sp2E & 0x200) != 0) { - sp24 = sp2E; + if (btnAndStick & CONT_LEFT) { play_sound2(0x49008000); - temp_v0_2 = gCurrentCourseId; - if (temp_v0_2 > 0) { - gCurrentCourseId = temp_v0_2 - 1; + if (gCurrentCourseId > 0) { + gCurrentCourseId -= 1; } else { gCurrentCourseId = 0x13; } } - if ((sp2E & 0x800) != 0) { - sp24 = sp2E; + if (btnAndStick & CONT_UP) { play_sound2(0x49008000); gDebugMenuSelection = DEBUG_MENU_DEBUG_MODE; } - if ((sp2E & 0x400) != 0) { + if (btnAndStick & CONT_DOWN) { play_sound2(0x49008000); gDebugMenuSelection = DEBUG_MENU_SCREEN_MODE; } break; + } case DEBUG_MENU_SCREEN_MODE: - if ((sp2E & 0x100) != 0) { - temp_v0_3 = D_8018EDF1; - if (temp_v0_3 < 4) { - D_8018EDF1 = temp_v0_3 + 1; - sp24 = sp2E; - play_sound2(0x49008000); - gScreenModeSelection = *(&D_800F2B50 + D_8018EDF1); - } + { + if ((btnAndStick & CONT_RIGHT) && (D_8018EDF1 < 4)) { + D_8018EDF1 += 1; + play_sound2(0x49008000); + gScreenModeSelection = D_800F2B50[D_8018EDF1]; } - if ((sp2E & 0x200) != 0) { - temp_v0_4 = D_8018EDF1; - if (temp_v0_4 > 0) { - D_8018EDF1 = temp_v0_4 - 1; - sp24 = sp2E; - play_sound2(0x49008000); - gScreenModeSelection = *(&D_800F2B50 + D_8018EDF1); - } + if ((btnAndStick & CONT_LEFT) && (D_8018EDF1 > 0)) { + D_8018EDF1 -= 1; + play_sound2(0x49008000); + gScreenModeSelection = D_800F2B50[D_8018EDF1]; } - if ((sp2E & 0x800) != 0) { + if (btnAndStick & CONT_UP) { gDebugMenuSelection = DEBUG_MENU_COURSE; - sp24 = sp2E; play_sound2(0x49008000); } - if ((sp2E & 0x400) != 0) { + if (btnAndStick & CONT_DOWN) { gDebugMenuSelection = DEBUG_MENU_PLAYER; play_sound2(0x49008000); } break; + } case DEBUG_MENU_PLAYER: - if ((sp2E & 0x100) != 0) { - temp_v0_5 = gCharacterSelections; - if (temp_v0_5 < 7) { - gCharacterSelections = temp_v0_5 + 1; - sp24 = sp2E; - play_sound2(0x49008000); - } - } - if ((sp2E & 0x200) != 0) { - temp_v0_6 = gCharacterSelections; - if (temp_v0_6 > 0) { - gCharacterSelections = temp_v0_6 - 1; - sp24 = sp2E; - play_sound2(0x49008000); - } - } - if ((sp2E & 0x800) != 0) { - gDebugMenuSelection = DEBUG_MENU_SCREEN_MODE; - sp24 = sp2E; + { + if ((btnAndStick & CONT_RIGHT) && (*gCharacterSelections < 7)) { + gCharacterSelections[0] += 1; play_sound2(0x49008000); } - if ((sp2E & 0x400) != 0) { + if ((btnAndStick & CONT_LEFT) && (gCharacterSelections[0] > 0)) { + gCharacterSelections[0] -= 1; + play_sound2(0x49008000); + } + if (btnAndStick & CONT_UP) { + gDebugMenuSelection = DEBUG_MENU_SCREEN_MODE; + play_sound2(0x49008000); + } + if (btnAndStick & CONT_DOWN) { gDebugMenuSelection = DEBUG_MENU_SOUND_MODE; play_sound2(0x49008000); } break; + } case DEBUG_MENU_SOUND_MODE: - if ((sp2E & 0x100) != 0) { - if (gSoundMode < SOUND_MONO) { - gSoundMode += 1; - if ((gSoundMode & 0xFF) == SOUND_UNUSED) { - gSoundMode = SOUND_MONO; - } - sp24 = sp2E; - play_sound2(0x49008000); - func_800B44BC(); - gSaveDataSoundMode = gSoundMode; - write_save_data_grand_prix_points_and_sound_mode(); - update_save_data_backup(); + { + if ((btnAndStick & CONT_RIGHT) && (gSoundMode < 3)) { + gSoundMode += 1; + if (gSoundMode == SOUND_UNUSED) { + gSoundMode = SOUND_MONO; } + play_sound2(0x49008000); + func_800B44BC(); + gSaveDataSoundMode = gSoundMode; + write_save_data_grand_prix_points_and_sound_mode(); + update_save_data_backup(); } - if ((sp2E & 0x200) != 0) { - if (gSoundMode > SOUND_STEREO) { - gSoundMode -= 1; - if ((gSoundMode & 0xFF) == SOUND_UNUSED) { - gSoundMode = SOUND_HEADPHONES; - } - sp24 = sp2E; - play_sound2(0x49008000); - func_800B44BC(); - gSaveDataSoundMode = gSoundMode; - write_save_data_grand_prix_points_and_sound_mode(); + if ((btnAndStick & CONT_LEFT) && (gSoundMode > 0)) { + gSoundMode -= 1; + if (gSoundMode == SOUND_UNUSED) { + gSoundMode = SOUND_HEADPHONES; } + play_sound2(0x49008000); + func_800B44BC(); + gSaveDataSoundMode = gSoundMode; + write_save_data_grand_prix_points_and_sound_mode(); } - if ((sp2E & 0x800) != 0) { + if (btnAndStick & CONT_UP) { gDebugMenuSelection = DEBUG_MENU_PLAYER; - sp24 = sp2E; play_sound2(0x49008000); } - if ((sp2E & 0x400) != 0) { + if (btnAndStick & CONT_DOWN) { gDebugMenuSelection = DEBUG_MENU_GIVE_ALL_GOLD_CUP; play_sound2(0x49008000); } break; + } case DEBUG_MENU_GIVE_ALL_GOLD_CUP: - if ((sp2E & 0x800) != 0) { + { + if (btnAndStick & CONT_UP) { gDebugMenuSelection = DEBUG_MENU_SOUND_MODE; - sp24 = sp2E; play_sound2(0x49008000); } - if ((sp2E & 0x4000) != 0) { - phi_a1 = 0; - phi_s0 = 0; - do { - func_800B5404(0, phi_a1); - temp_a1 = (phi_s0 + 1) & 0xFFFF; - phi_a1 = temp_a1; - phi_s0 = temp_a1; - } while (temp_a1 < 0x10); - play_sound2(0x49008001, temp_a1); - } else if ((sp2E & 0x20) != 0) { + if (btnAndStick & CONT_B) { + for (i = 0; i < 16; i++) { + func_800B5404(0, i); + } + play_sound2(0x49008001); + break; + } else if (btnAndStick & CONT_L) { reset_save_data_grand_prix_points_and_sound_mode(); - phi_a1_2 = 0; - phi_s0_2 = 0; - do { - func_800B5404(phi_a1_2 / 4, phi_a1_2); - temp_a1_2 = (phi_s0_2 + 1) & 0xFFFF; - phi_a1_2 = temp_a1_2; - phi_s0_2 = temp_a1_2; - } while (temp_a1_2 < 0x10); - play_sound2(0x49008001, temp_a1_2); - } else if ((sp2E & 0x200) != 0) { + for (i = 0; i < 16; i++) { + func_800B5404(i / 4, i); + } + play_sound2(0x49008001); + break; + } else if (btnAndStick & CONT_LEFT) { reset_save_data_grand_prix_points_and_sound_mode(); - phi_a1_3 = 0; - phi_s0_3 = 0; - do { - if ((phi_a1_3 % 4) == 2) { - func_800B5404(0, phi_a1_3); + for (i = 0; i < 16; i++) { + if (i % 4 == 2) { + func_800B5404(0, i); } else { - func_800B5404(phi_a1_3 / 4, phi_a1_3); + func_800B5404(i / 4, i); } - temp_a1_3 = (phi_s0_3 + 1) & 0xFFFF; - phi_a1_3 = temp_a1_3; - phi_s0_3 = temp_a1_3; - } while (temp_a1_3 < 0x10); - play_sound2(0x49008001, temp_a1_3); + } + play_sound2(0x49008001); + } else { + break; } break; - default: - break; } - D_8018EDF3 = *(&D_800F2B58 + D_8018EDF1); - gPlayerCountSelection1 = D_8018EDF3; - if (sp28 != 0) { - if ((sp2E & 0x9000) != 0) { // A or Start pressed - sp24 = sp2E; + default: break; + } + + gPlayerCountSelection1 = D_8018EDF3 = D_800F2B58[D_8018EDF1]; + + if (sp28) { + if (btnAndStick & (CONT_A | CONT_START)) { func_8009E1C0(); func_800CA330(0x19); gDebugMenuSelection = DEBUG_MENU_EXITED; - if ((arg0->unk4 & 0x20) != 0) { // L held + + if (controller->button & CONT_L) { D_800DC51C = 1; } else { D_800DC51C = 0; } - if ((arg0->unk4 & 0x2000) != 0) { // Z is held - if ((sp2E & 0x8000) != 0) { - gDebugGotoScene = DEBUG_GOTO_ENDING_SEQUENCE; // Go to ending ceremony if A is not pressed + + if (controller->button & Z_TRIG) { + if (btnAndStick & CONT_A) { + gDebugGotoScene = 1; } else { - gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA; // Go to credits, set gCCSelection to CC_EXTRA + gDebugGotoScene = 3; } } play_sound2(0x49008016); - return; - } - if (((sp2E & 0x4000) != 0) && ((arg0->unk4 & 0x2000) != 0)) { // B pressed and Z held + } else if ((btnAndStick & CONT_B) && (controller->button & Z_TRIG)) { func_8009E1C0(); func_800CA330(0x19); gDebugMenuSelection = DEBUG_MENU_EXITED; - gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_50; // Go to credits, set gCCSelection to CC_50 + gDebugGotoScene = 2; play_sound2(0x49008016); - return; - } - if ((sp2E & 0x10) != 0) { // R pressed - gDebugMenuSelection = DEBUG_MENU_DISABLED; // Close out of debug menu + } else if (btnAndStick & CONT_R) { + gDebugMenuSelection = DEBUG_MENU_DISABLED; play_sound2(0x49008001); } - /* Duplicate return node #100. Try simplifying control flow for better match */ - return; } - /* Duplicate return node #100. Try simplifying control flow for better match */ } } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B20F4.s") -#endif void func_800B28C8(void) { // For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will // be whether 'Begin' or 'Data' is selected. Not used for Battle. - s8 temp_v0 = gGameModeSubMenuRowSelectionForNumPlayers[D_8018EDF3][gGameModeRowSelectionForNumPlayers[D_8018EDF3]]; - + s8 temp_v0 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]; // Determine which game mode was selected based on the number of players and the row selected on the main menu - switch (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][gGameModeRowSelectionForNumPlayers[D_8018EDF3]]) { + switch (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) { case GRAND_PRIX: gCCSelection = temp_v0; gPlaceItemBoxes = 1; @@ -1470,383 +1277,426 @@ void func_800B28C8(void) { } } - -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_8009E0F0(?); /* extern */ -? func_8009E1C0(); /* extern */ -? func_8009E258(s8); /* extern */ -? func_8009E280(s8); /* extern */ -? func_800B28C8(); /* extern */ -? func_800B44AC(s8, u16, u16); /* extern */ -? func_800CA330(?); /* extern */ -? play_sound2(?, u16, u16); /* extern */ -static ? gGameModeRowSelectionForNumPlayers; /* unable to generate initializer; const */ -static ? D_800E86AC; /* unable to generate initializer; const */ -static ? gGameModeSubMenuRowSelectionForNumPlayers; /* unable to generate initializer; const */ -static ? D_800E86B0; /* unable to generate initializer; const */ -static ? D_800F2B5F; /* unable to generate initializer; const */ -static ? D_800F2B61; /* unable to generate initializer; const */ -static ? D_800F2B6D; /* unable to generate initializer; const */ -static ? gGameModeFromNumPlayersAndRowSelection; /* unable to generate initializer; const */ - -void func_800B29D8(void *arg0, u16 arg1) { - u16 sp2E; +#ifdef NON_MATCHING +// nonmatching: regalloc; arg1 is not AND-ed back into $a1, reg chaos follows +void func_800B29D8(struct Controller *controller, u16 arg1) { + u16 btnAndStick; // sp2E s32 sp28; s32 sp24; - s32 sp1C; - s32 temp_t7_3; - s32 temp_t7_5; - s32 temp_v1_3; - s32 temp_v1_4; - s32 temp_v1_7; - s8 temp_a0; - s8 temp_a0_2; - s8 temp_a0_3; - s8 temp_a0_4; - s8 temp_a0_5; - s8 temp_a0_6; - s8 temp_a0_7; - s8 temp_a1; - s8 temp_t1; - s8 temp_t1_2; - s8 temp_t2; - s8 temp_t4_2; - s8 temp_t4_3; - s8 temp_t5; - s8 temp_t5_2; - s8 temp_t6; - s8 temp_t6_2; - s8 temp_t7; - s8 temp_t7_2; - s8 temp_t7_4; - s8 temp_t7_6; - s8 temp_t8; - s8 temp_v0; - s8 temp_v0_10; - s8 temp_v0_11; - s8 temp_v0_2; - s8 temp_v0_3; - s8 temp_v0_4; - s8 temp_v0_5; - s8 temp_v0_6; - s8 temp_v0_7; - s8 temp_v0_8; - s8 temp_v0_9; - u16 temp_t9; - u8 temp_t4; - void *temp_v1; - void *temp_v1_2; - void *temp_v1_5; - void *temp_v1_6; - u16 phi_v1; - s32 phi_a2; - s32 phi_v0; - u8 *phi_t0; - s8 phi_a0; - u8 *phi_t0_2; - s32 phi_a1; - s32 phi_v1_2; - s8 phi_v0_2; - s8 phi_a0_2; - s32 *phi_v1_3; + s32 newMode; // temp_v1_2? - temp_t9 = (arg0->unk6 | arg0->unkC) & 0xFFFF; - phi_v1 = temp_t9; - if ((gEnableDebugMode == 0) && ((temp_t9 & 0x1000) != 0)) { - phi_v1 = (temp_t9 | 0x8000) & 0xFFFF; + btnAndStick = controller->buttonPressed | controller->stickPressed; + if (!gEnableDebugMode && (btnAndStick & CONT_START)) { + btnAndStick |= CONT_A; } - sp2E = phi_v1; - arg1 &= 0xFFFF; - if (func_800B4520(arg0) == 0) { - temp_t4 = gMainMenuSelectionDepth; - switch (temp_t4) { - case BLANK_MAIN_MENU: - temp_t5 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t5 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t5) * 4)); + + if (!func_800B4520()) { + switch (gMainMenuSelectionDepth) { + case 0: + { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; break; - case PLAYER_NUM_SELECTION: - phi_a2 = phi_v1; - if ((phi_v1 & 0x100) != 0) { - temp_v0 = D_8018EDF3; - if (temp_v0 < 4) { - D_8018EDF3 = temp_v0 + 1; - sp1C = phi_v1; - func_800B44AC(); - play_sound2(0x49008000); - phi_a2 = sp1C; - } - } - temp_v0_2 = D_8018EDF3; - phi_v0 = temp_v0_2; - phi_t0 = &gMainMenuSelectionDepth; - if (((phi_a2 & 0x200) != 0) && (temp_v0_2 >= 2)) { - D_8018EDF3 = temp_v0_2 - 1; - sp1C = phi_a2; + } + case 3: + { + if ((btnAndStick & CONT_RIGHT) && D_8018EDF3 < 4) { + D_8018EDF3 += 1; func_800B44AC(); play_sound2(0x49008000); - phi_v0 = D_8018EDF3; - phi_t0 = &gMainMenuSelectionDepth; } - gPlayerCountSelection1 = phi_v0; - phi_a0 = &gPlayerCountSelection1; - if (phi_v0 != 1) { - phi_a0 = 3; - if (phi_v0 != 2) { - if ((phi_v0 != 3) && (phi_v0 != 4)) { - - } else { - gScreenModeSelection = SCREEN_MODE_3P_4P_SPLITSCREEN; - } - } else { - gScreenModeSelection = SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL; - } - } else { - gScreenModeSelection = SCREEN_MODE_1P; + if ((btnAndStick & CONT_LEFT) && D_8018EDF3 >= 2) { + D_8018EDF3 -= 1; + func_800B44AC(); + play_sound2(0x49008000); } - if ((phi_a2 & 0x4000) != 0) { + // L800B2B38 + gPlayerCountSelection1 = D_8018EDF3; + switch (gPlayerCountSelection1){ + case 1: gScreenModeSelection = SCREEN_MODE_1P; break; + case 2: gScreenModeSelection = SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL; break; + case 3: + case 4: gScreenModeSelection = SCREEN_MODE_3P_4P_SPLITSCREEN; break; + } + // L800B2B94 + if (btnAndStick & CONT_B) { func_8009E0F0(0x14); func_800CA330(0x19); D_8018EDE0 = 1; play_sound2(0x49008002); - temp_t7 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t7 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t7) * 4)); - } else if ((phi_a2 & 0x8000) != 0) { - *phi_t0 = GAME_MODE_SELECTION; - func_800B44AC(phi_a0); - play_sound2(0x49008001); - temp_t4_2 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t4_2 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t4_2) * 4)); - } else if ((phi_a2 & 0x20) != 0) { - *phi_t0 = OPTIONS_SELECTION; - func_8009E280(phi_a0); - play_sound2(0x49009010); - temp_t1 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t1 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t1) * 4)); - } else if ((phi_a2 & 0x10) != 0) { - *phi_t0 = DATA_SELECTION; - func_8009E258(phi_a0); - play_sound2(0x49009011); - temp_t6 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t6 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t6) * 4)); - } else { - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((phi_v0 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + phi_v0) * 4)); - } - break; - case GAME_MODE_SELECTION: - if ((phi_v1 & 0x400) != 0) { - temp_v0_3 = D_8018EDF3; - temp_v1 = temp_v0_3 + &D_800E86AC; - temp_a0 = temp_v1->unk-1; - if (temp_a0 < *(&D_800F2B5F + temp_v0_3)) { - temp_v1->unk-1 = temp_a0 + 1; - sp1C = phi_v1; - func_800B44AC(temp_a0, arg1, phi_v1); - play_sound2(0x49008000); - } - } - phi_t0_2 = &gMainMenuSelectionDepth; - if ((phi_v1 & 0x800) != 0) { - temp_v1_2 = D_8018EDF3 + &D_800E86AC; - temp_a0_2 = temp_v1_2->unk-1; - if (temp_a0_2 > 0) { - temp_v1_2->unk-1 = temp_a0_2 - 1; - sp1C = phi_v1; - func_800B44AC(temp_a0_2); - play_sound2(0x49008000); - phi_t0_2 = &gMainMenuSelectionDepth; - } - } - if ((phi_v1 & 0x4000) != 0) { - *phi_t0_2 = PLAYER_NUM_SELECTION; - func_800B44AC(3); - play_sound2(0x49008002); - temp_t6_2 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t6_2 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t6_2) * 4)); - } else { - temp_v0_4 = D_8018EDF3; - temp_a0_3 = *(&gGameModeRowSelectionForNumPlayers + temp_v0_4); - if ((phi_v1 & 0x8000) != 0) { - temp_v1_3 = *(&gGameModeFromNumPlayersAndRowSelection + ((temp_v0_4 * 0xC) + (temp_a0_3 * 4))); - if (temp_v1_3 != 0) { - if (temp_v1_3 != 1) { - if (temp_v1_3 != 2) { - if (temp_v1_3 != 3) { - *phi_t0_2 = CONFIRM_OK_SELECTION; - } else { - *phi_t0_2 = CONFIRM_OK_SELECTION; - play_sound2(0x4900900D); - } - } else { - *phi_t0_2 = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; - play_sound2(0x4900900C); - } - } else { - *phi_t0_2 = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; - play_sound2(0x4900900B); - } - } else { - *phi_t0_2 = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; - play_sound2(0x4900900A); - } - func_800B44AC(); - temp_t7_2 = D_8018EDF3; - gMenuTimingCounter = 0; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t7_2 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t7_2) * 4)); - } else { - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_v0_4 * 0xC) + (temp_a0_3 * 4)); - } - } - break; - case GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION: - case TIME_TRAILS_DATA_SELECTION_FROM_BACK_OUT: - if ((arg1 == 0) && ((temp_t7_3 = gMenuTimingCounter + 1, gMenuTimingCounter = temp_t7_3, (temp_t7_3 == 0x64)) || ((temp_t7_3 % 300) == 0)) && ((temp_v0_5 = D_8018EDF3, temp_v1_4 = *(&gGameModeFromNumPlayersAndRowSelection + ((temp_v0_5 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_v0_5) * 4))), (temp_v1_4 == 0)) || (temp_v1_4 == 2))) { - sp1C = phi_v1; - play_sound2(0x4900900E, arg1, phi_v1); - } - temp_v0_6 = D_8018EDF3; - temp_v1_5 = (temp_v0_6 * 3) + *(&gGameModeRowSelectionForNumPlayers + temp_v0_6) + &D_800E86B0; - temp_a0_4 = temp_v1_5->unk-3; - phi_a1 = temp_a0_4; - if (((phi_v1 & 0x800) != 0) && (temp_a0_4 > 0)) { - temp_v1_5->unk-3 = temp_a0_4 - 1; - sp28 = temp_a0_4; - sp1C = phi_v1; - func_800B44AC(temp_a0_4, temp_a0_4, phi_v1); - play_sound2(0x49008000); - phi_a1 = sp28; - } - if ((phi_v1 & 0x400) != 0) { - sp24 = 0; - sp28 = phi_a1; - sp1C = phi_v1; - phi_v1_2 = sp24; - if (func_800B555C() != 0) { - temp_v0_7 = D_8018EDF3; - temp_a0_5 = *(&gGameModeRowSelectionForNumPlayers + temp_v0_7); - phi_v0_2 = temp_v0_7; - phi_a0_2 = temp_a0_5; - phi_v0_2 = temp_v0_7; - phi_a0_2 = temp_a0_5; - if (phi_a1 < *(&D_800F2B6D + ((temp_v0_7 * 3) + temp_a0_5))) { - goto block_64; - } - } else { - temp_v0_8 = D_8018EDF3; - temp_a0_6 = *(&gGameModeRowSelectionForNumPlayers + temp_v0_8); - phi_v0_2 = temp_v0_8; - phi_a0_2 = temp_a0_6; - phi_v0_2 = temp_v0_8; - phi_a0_2 = temp_a0_6; - if (phi_a1 < *(&D_800F2B61 + ((temp_v0_8 * 3) + temp_a0_6))) { -block_64: - phi_v1_2 = 1; - } - } - if (phi_v1_2 != 0) { - temp_v1_6 = (phi_v0_2 * 3) + phi_a0_2 + &D_800E86B0; - sp1C = phi_v1; - temp_v1_6->unk-3 = temp_v1_6->unk-3 + 1; - func_800B44AC(phi_a0_2, phi_a1, phi_v1); - play_sound2(0x49008000); - } - } - temp_v0_9 = D_8018EDF3; - temp_a0_7 = *(&gGameModeRowSelectionForNumPlayers + temp_v0_9); - temp_a1 = *(&gGameModeSubMenuRowSelectionForNumPlayers + ((temp_v0_9 * 3) + temp_a0_7)); - if ((phi_v1 & 0x4000) != 0) { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else if (btnAndStick & CONT_A) { + // L800B2C00 gMainMenuSelectionDepth = GAME_MODE_SELECTION; - func_800B44AC(temp_a0_7, temp_a1, phi_v1); + func_800B44AC(); + play_sound2(0x49008001); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else if (btnAndStick & CONT_L) { + // L800B2C58 + gMainMenuSelectionDepth = OPTIONS_SELECTION; + func_8009E280(); + play_sound2(0x49009010); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else if (btnAndStick & CONT_R) { + gMainMenuSelectionDepth = DATA_SELECTION; + func_8009E258(); + play_sound2(0x49009011); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } + break; + } + case 4: + { + if (btnAndStick & CONT_DOWN) { + if (D_800E86AC[D_8018EDF3 - 1] < D_800F2B58[D_8018EDF3 + 7]) { + D_800E86AC[D_8018EDF3 - 1] += 1; + func_800B44AC(); + play_sound2(0x49008000); + } + } + // L800B2D94 + if (btnAndStick & CONT_UP) { + if (D_800E86AC[D_8018EDF3 - 1] > 0) { + D_800E86AC[D_8018EDF3 - 1] -= 1; + func_800B44AC(); + play_sound2(0x49008000); + } + } + // L800B2DE0 + if (btnAndStick & CONT_B) { + gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; + func_800B44AC(); play_sound2(0x49008002); - temp_t5_2 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t5_2 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t5_2) * 4)); - } else if ((phi_v1 & 0x8000) != 0) { - sp28 = temp_a1; - func_800B44AC(temp_a0_7, temp_a1, phi_v1); - temp_v0_10 = D_8018EDF3; - if ((temp_v0_10 == 1) && (*(&gGameModeRowSelectionForNumPlayers + temp_v0_10) == 1) && (temp_a1 == 1)) { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else if (btnAndStick & CONT_A) { + // L800B2E3C + switch(gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) { + case 0: + gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + play_sound2(0x4900900A); + break; + case 2: + gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + play_sound2(0x4900900C); + break; + case 1: + gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + play_sound2(0x4900900B); + break; + case 3: + gMainMenuSelectionDepth = CONFIRM_OK_SELECTION; + play_sound2(0x4900900D); + break; + default: + gMainMenuSelectionDepth = CONFIRM_OK_SELECTION; + break; + } + // L800B2F04 + func_800B44AC(); + gMenuTimingCounter = 0; + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } + break; + } + case 5: + case 8: + { + if (1); + if ((arg1 == 0) && (++gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) { + // L800B2FAC + if (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]] == 0 || gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]] == 2) { + play_sound2(0x4900900E); + } + } + // L800B3000 + sp28 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]; + if ((btnAndStick & CONT_UP) && (sp28 > 0)) { + D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]] -= 1; + func_800B44AC(); + play_sound2(0x49008000); + } + // L800B3068 + if (btnAndStick & CONT_DOWN) { + sp24 = FALSE; + if (func_800B555C()) { + if (sp28 < D_800F2B60[D_8018EDF3 + 4][D_800E86AC[D_8018EDF3 - 1] + 1]) { + sp24 = TRUE; + } + } else { + // L800B30D4 + if (sp28 < D_800F2B60[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1] + 1]) { + sp24 = TRUE; + } + } + // L800B3110 + if (sp24) { + D_800E86B0[D_8018EDF3 - 1][D_8018EDF3] += 1; + func_800B44AC(); + play_sound2(0x49008000); + } + } + // L800B3150 + sp28 = D_800E86B0[D_8018EDF3 - 1][D_800E86AC[D_8018EDF3 - 1]]; + if (btnAndStick & CONT_B) { + gMainMenuSelectionDepth = GAME_MODE_SELECTION; + func_800B44AC(); + play_sound2(0x49008002); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else if (btnAndStick & CONT_A) { + // L800B31DC + func_800B44AC(); + if (D_8018EDF3 == 1 && D_800E86AC[D_8018EDF3 - 1] == 1 && sp28 == 1) { func_8009E258(); play_sound2(0x49009011); } else { gMainMenuSelectionDepth = CONFIRM_OK_SELECTION; - play_sound2(0x49008001, temp_a1); + play_sound2(0x49008001); gMenuTimingCounter = 0; } - temp_t7_4 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t7_4 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t7_4) * 4)); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; } else { - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_v0_9 * 0xC) + (temp_a0_7 * 4)); + // L800B3294 + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; } break; - case CONFIRM_OK_SELECTION: - case CONFIRM_OK_SELECTION_FROM_BACK_OUT: - if ((arg1 == 0) && ((temp_t7_5 = gMenuTimingCounter + 1, gMenuTimingCounter = temp_t7_5, (temp_t7_5 == 0x3C)) || ((temp_t7_5 % 300) == 0))) { - sp1C = phi_v1; - play_sound2(0x4900900F, arg1, phi_v1); + } + case 6: + case 7: + { + if ((arg1 == 0) && (++gMenuTimingCounter == 60 || gMenuTimingCounter % 300 == 0)) { + play_sound2(0x4900900F); } - if ((phi_v1 & 0x4000) != 0) { - temp_v0_11 = D_8018EDF3; - temp_v1_7 = *(&gGameModeFromNumPlayersAndRowSelection + ((temp_v0_11 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_v0_11) * 4))); - if ((temp_v1_7 != 0) && (temp_v1_7 != 1) && (temp_v1_7 != 2)) { - if (temp_v1_7 != 3) { - - } - gMainMenuSelectionDepth = GAME_MODE_SELECTION; - } else { - gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + // L800B330C + if (btnAndStick & CONT_B) { + switch (gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) { + case 0: + case 1: + case 2: + gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION; + break; + case 3: + default: + gMainMenuSelectionDepth = GAME_MODE_SELECTION; + break; } + // L800B3384 func_800B44AC(); play_sound2(0x49008002); - temp_t7_6 = D_8018EDF3; gMenuTimingCounter = 0; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t7_6 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t7_6) * 4)); - } else if ((phi_v1 & 0x8000) != 0) { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + } else if (btnAndStick & CONT_A) { + // L800B33D8 func_8009E1C0(); play_sound2(0x49008016); func_800B28C8(); - temp_t1_2 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t1_2 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t1_2) * 4)); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; } else { - temp_t4_3 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t4_3 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t4_3) * 4)); + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; } break; - case OPTIONS_SELECTION: - case DATA_SELECTION: - temp_t2 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t2 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t2) * 4)); - break; - default: - temp_t8 = D_8018EDF3; - phi_v1_3 = &gGameModeFromNumPlayersAndRowSelection + ((temp_t8 * 0xC) + (*(&gGameModeRowSelectionForNumPlayers + temp_t8) * 4)); + } + case 1: + case 2: + { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; break; } - gModeSelection = *phi_v1_3; + default: + { + newMode = gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]; + break; + } + } + gModeSelection = newMode; } } #else GLOBAL_ASM("asm/non_matchings/menus/func_800B29D8.s") #endif -s32 func_800B34E8(s32 arg0) { +// check if there is no currently selected and/or hovered character at grid position `gridId` +s32 is_character_spot_free(s32 gridId) { s32 i; - for (i =0; i < 4; i++) { - if (arg0 == gCharacterGridSelections[i]) { - return 0; + for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { + if (gridId == gCharacterGridSelections[i]) { + return FALSE; } } - return 1; + return TRUE; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -/* -Failed to decompile function func_800B3554: +#ifdef NON_MATCHING +// grid positions are from right to left, then top to bottom +// nonmatching: the gCharacterGridSelections pointer is not promoted to $s0 +void func_800B3554(struct Controller *controller, u16 arg1) { + u16 btnAndStick; // sp36 + s8 selected; + s8 i; -Label L800B3A94 refers to a delay slot; this is currently not supported. -Please modify the assembly to work around it (e.g. copy the instruction -to all jump sources and move the label, or add a nop to the delay slot). -*/ + btnAndStick = (controller->buttonPressed) | (controller->stickPressed); + if (!gEnableDebugMode && btnAndStick & CONT_START) { + btnAndStick |= CONT_A; + } + + if (!func_800B4520()) { + switch (D_8018EDEE) { + case 1: + { + if (gCharacterGridSelections[arg1] == 0) { + if (btnAndStick & CONT_B) { + func_8009E208(); + play_sound2(0x49008002); + } + return; + } + // L800B3630 + if (btnAndStick & CONT_B) { + if (D_8018EDE8[arg1]) { + D_8018EDE8[arg1] = FALSE; + play_sound2(0x49008002); + } else { + func_8009E208(); + play_sound2(0x49008002); + } + } + // L800B3684 + if ((btnAndStick & CONT_A) && !D_8018EDE8[arg1]) { + D_8018EDE8[arg1] = TRUE; + func_800C90F4( + arg1, + (((uintptr_t)D_800F2BAC[gCharacterGridSelections[arg1] - 1]) << 4) + 0x2900800EU + ); + } + // L800B36F4 + selected = FALSE; + for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) { + if (gCharacterGridSelections[i] && D_8018EDE8[i]) { + selected = TRUE; + break; + } + } + // L800B3738 + if (!selected) { + D_8018EDEE = 2; + func_800B44AC(); + gMenuTimingCounter = 0; + } + // L800B3768 + if (D_8018EDE8[arg1]) { + if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_DOWN)) { + if (gCharacterGridSelections[arg1] == 1 || gCharacterGridSelections[arg1] == 2 || gCharacterGridSelections[arg1] == 3) { + // L800B37B0 + if (is_character_spot_free(gCharacterGridSelections[arg1] + 5)) { + gCharacterGridSelections[arg1] += 5; + play_sound2(0x49008000); + } + } + return; + } + // L800B37E4 + if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_DOWN)) { + if (gCharacterGridSelections[arg1] == 2 || gCharacterGridSelections[arg1] == 3 || gCharacterGridSelections[arg1] == 4) { + if (is_character_spot_free(gCharacterGridSelections[arg1] + 3)) { + gCharacterGridSelections[arg1] += 3; + play_sound2(0x49008000); + } + } + return; + } + // L800B3844 + if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_UP)) { + if (gCharacterGridSelections[arg1] == 5 || gCharacterGridSelections[arg1] == 6 || gCharacterGridSelections[arg1] == 7) { + if (is_character_spot_free(gCharacterGridSelections[arg1] - 3)) { + gCharacterGridSelections[arg1] -= 3; + play_sound2(0x49008000); + } + } + return; + } + // L800B38A0 + if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_UP)) { + if (gCharacterGridSelections[arg1] == 6 || gCharacterGridSelections[arg1] == 7 || gCharacterGridSelections[arg1] == 8) { + if (is_character_spot_free(gCharacterGridSelections[arg1] - 5)) { + gCharacterGridSelections[arg1] -= 5; + play_sound2(0x49008000); + } + } + return; + } + // L800B38FC + if (btnAndStick & CONT_RIGHT) { + if (gCharacterGridSelections[arg1] != 4 && gCharacterGridSelections[arg1] != 8) { + do { + // L800B391C + if (is_character_spot_free(gCharacterGridSelections[arg1] + 1)) { + gCharacterGridSelections[arg1] += 1; + play_sound2(0x49008000); + break; + } + gCharacterGridSelections[arg1] += 1; + + } while (gCharacterGridSelections[arg1] != 5 && gCharacterGridSelections[arg1] != 9 && gCharacterGridSelections[arg1] <= 10); + } + return; + } + // L800B3978 + if (btnAndStick & CONT_LEFT) { + if (gCharacterGridSelections[arg1] != 1 && gCharacterGridSelections[arg1] != 5) { + do { + if (is_character_spot_free(gCharacterGridSelections[arg1] - 1)) { + gCharacterGridSelections[arg1] -= 1; + play_sound2(0x49008000); + break; + } + gCharacterGridSelections[arg1] -= 1; + } while (gCharacterGridSelections[arg1] != 0 && gCharacterGridSelections[arg1] != 4 && gCharacterGridSelections[arg1] >= 0); + } + return; + } + // L800B39F4 + if ((btnAndStick & CONT_UP) && (gCharacterGridSelections[arg1] >= 5)) { + gCharacterGridSelections[arg1] -= 4; + } + if ((btnAndStick & CONT_DOWN) && (gCharacterGridSelections[arg1] < 5)) { + gCharacterGridSelections[arg1] += 4; + } + // L800B3A30 + if (is_character_spot_free(gCharacterGridSelections[arg1])) { + play_sound2(0x49008000); + } + } + break; + } + case 2: + case 3: + { + if (!arg1 && (++gMenuTimingCounter == 60 || gMenuSelection % 300 == 0)) { + // L800B3A94 + play_sound2(0x4900900F); + } + // L800B3AA4 + if (btnAndStick & CONT_B) { + D_8018EDEE = 1; + D_8018EDE8[arg1] = FALSE; + play_sound2(0x49008002); + } else if (btnAndStick & CONT_A) { + func_8009E1C0(); + play_sound2(0x49008016); + func_8000F124(); + } + break; + } + } + // L800B3B24 + if (gCharacterGridSelections[arg1] != 0) { + gCharacterSelections[arg1] = D_800F2BAC[gCharacterGridSelections[arg1] - 1]; + } + } + // L800B3B44 +} #else GLOBAL_ASM("asm/non_matchings/menus/func_800B3554.s") #endif @@ -1928,7 +1778,6 @@ void func_800B3B58(struct Controller *arg0, u16 arg1) { } break; case 3: - if ((arg1 == 0) && ((++gMenuTimingCounter == 0x3C) || ((gMenuTimingCounter % 300) == 0))) { play_sound2(0x4900900F); } @@ -1961,128 +1810,64 @@ void func_800B3B58(struct Controller *arg0, u16 arg1) { } } -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -? func_8000F0E0(); /* extern */ -? func_800B44AC(); /* extern */ -? func_800B5F30(); /* extern */ -? func_800C8EAC(?, s8 *, s8); /* extern */ -? func_800CA008(?, ?, s32); /* extern */ -? func_800CB2C4(); /* extern */ -? play_sound2(?, s8 *, s8 *, s8); /* extern */ -extern s32 D_800DC50C; -extern s32 D_800DC524; -extern s32 gScreenModeSelection; -extern s32 D_800DC540; -extern s16 D_8015F890; -extern s16 D_8015F892; -extern s32 D_80162DC8; -extern s32 D_80162DCC; -extern s16 D_80162DD4; -extern s16 D_80162DD8; -extern s32 D_80162E00; -extern s16 D_8016556E; -extern s32 D_8018EDE0; -extern s8 D_8018EDE8; -extern s8 D_8018EDE9; -extern s8 D_8018EDEA; -extern s8 D_8018EDEB; -extern s8 D_8018EDEC; -extern s8 gMainMenuSelectionDepth; -extern s8 D_8018EDEE; -extern s8 gDebugMenuSelection; -extern s8 D_8018EDF1; -extern s8 D_8018EDF3; -extern s8 gTimeTrialDataCourseIndex; -extern s8 gDebugGotoScene; -extern s8 D_8018EDFB; -extern s8 D_8018EDFC; -extern s32 gMenuTimingCounter; -extern s32 D_8018EE04; -extern s8 D_8018EE08; -extern s8 D_8018EE0A; -extern s16 gEnableDebugMode; -static s8 gCharacterSelections = 0; /* const */ -static ? D_800F2BDF; /* unable to generate initializer; const */ -s32 gIsMirrorMode = 0; +void func_800B3F74(s32 menuSelection) { + s32 i; -void func_800B3F74(u32 arg0) { - s32 temp_v0; - s32 temp_v0_3; - s32 temp_v0_4; - s8 *temp_a1; - s8 *temp_a2; - s8 *temp_v0_5; - s8 temp_a0; - s8 temp_a3; - s8 temp_a3_2; - s8 temp_v0_2; - s32 phi_a3; - s32 phi_v1; - s8 *phi_v0; - s8 *phi_a2; - s8 *phi_a1; - s32 phi_a0; - s8 *phi_v0_2; - - gDebugMenuSelection = DEBUG_MENU_DISABLED; + gDebugMenuSelection = 1; gMenuTimingCounter = 0; D_8018EE04 = 0; D_8018EE08 = 0; D_8015F890 = 0; D_8015F892 = 0; - gDebugGotoScene = DEBUG_GOTO_RACING; + gDebugGotoScene = 0; D_8018EDFB = 0; D_8016556E = 0; - D_80162DD4 = 1; + *D_80162DD4 = 1; D_80162DD8 = 1; D_80162E00 = 0; D_80162DC8 = 1; D_80162DCC = 0; - switch (arg0) { - case OPTIONS_MENU: - D_8018EDEC = 0x15; - break; - case DATA_MENU: - D_8018EDEC = 1; - break; - case COURSE_DATA_MENU: - D_8018EDEC = 0xB; - break; - case LOGO_INTRO_MENU: + + switch (menuSelection) { + case 5: D_8018EDEC = 21; break; + case 6: D_8018EDEC = 1; break; + case 7: D_8018EDEC = 11; break; + case 8: func_800CA008(0, 0); break; + case 9: + { + gControllerPakMenuSelection = 1; func_800CA008(0, 0); break; - case CONTROLLER_PAK_MENU: - gControllerPakMenuSelection = CONTROLLER_PAK_MENU_SELECT_RECORD; - func_800CA008(0, 0); - break; - case START_MENU_FROM_QUIT: - case START_MENU: + } + case 0: + case 10: + { gIsMirrorMode = 0; gEnableDebugMode = 0; - gCupSelection = MUSHROOM_CUP; - gCupCourseSelection = CUP_COURSE_ONE; - gTimeTrialDataCourseIndex = TIME_TRIAL_DATA_LUIGI_RACEWAY; - if (D_8018EDF3 <= ZERO_PLAYERS_SELECTED) { - D_8018EDF3 = ONE_PLAYERS_SELECTED; + gCupSelection = 0; + gCupCourseSelection = 0; + gTimeTrialDataCourseIndex = 0; + if (D_8018EDF3 <= 0) { + D_8018EDF3 = 1; } - phi_a3 = D_8018EDF3; - if (D_8018EDF3 >= SELECTED_PLAYER_DEFINES_TOTAL) { - D_8018EDF3 = FOUR_PLAYERS_SELECTED; - phi_a3 = D_8018EDF3; + if (D_8018EDF3 >= 5) { + D_8018EDF3 = 4; } - D_8018EDF1 = *(&D_800F2BDF + phi_a3); + D_8018EDF1 = D_800F2BDC[D_8018EDF3 + 3]; func_800CA008(0, 0); func_800C8EAC(1); D_8018EDFC = 0; break; - case MAIN_MENU_FROM_QUIT: - case MAIN_MENU: + } + case 1: + case 11: + { gEnableDebugMode = 0; gIsMirrorMode = 0; D_8018EDFC = 0; func_800B5F30(); func_8000F0E0(); + if (D_800DC50C != 0) { func_800CA008(0, 0); func_800CB2C4(); @@ -2090,108 +1875,93 @@ void func_800B3F74(u32 arg0) { D_800DC524 = 0; func_800C8EAC(2); } - temp_v0 = D_8018EDE0; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 3) { - if (temp_v0 != 4) { - } else { - gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; - } - } else { - temp_v0_2 = gMainMenuSelectionDepth; - if ((temp_v0_2 != OPTIONS_SELECTION) && (temp_v0_2 != DATA_SELECTION)) { - gMainMenuSelectionDepth = TIME_TRAILS_DATA_SELECTION_FROM_BACK_OUT; - } else { - gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; - } - } - } else { - gMainMenuSelectionDepth = CONFIRM_OK_SELECTION_FROM_BACK_OUT; - } - } else { + switch (D_8018EDE0) { + case 0: + { gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; - func_800C8EAC(2, &gMainMenuSelectionDepth, 3); - temp_v0_3 = gScreenModeSelection; - D_8018EDF3 = ONE_PLAYERS_SELECTED; - if ((temp_v0_3 >= NUM_SCREEN_MODES) || (temp_v0_3 < SCREEN_MODE_1P)) { + func_800C8EAC(2); + D_8018EDF3 = 1; + if (gScreenModeSelection >= NUM_SCREEN_MODES || gScreenModeSelection < 0) { gScreenModeSelection = SCREEN_MODE_1P; } + break; + } + case 1: + { + gMainMenuSelectionDepth = CONFIRM_OK_SELECTION_FROM_BACK_OUT; + break; + } + case 3: + { + // why... + switch (gMainMenuSelectionDepth) { + default: + gMainMenuSelectionDepth = TIME_TRAILS_DATA_SELECTION_FROM_BACK_OUT; + break; + case 1: + case 2: + gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; + break; + } + break; + } + case 4: + { + gMainMenuSelectionDepth = PLAYER_NUM_SELECTION; + break; + } } break; - case PLAYER_SELECT_MENU_FROM_QUIT: - case PLAYER_SELECT_MENU: - temp_v0_4 = D_8018EDE0; - if (temp_v0_4 != 0) { - if (temp_v0_4 != 1) { - - } else { - D_8018EDEE = 3; - temp_a3 = D_8018EDF3; - if (temp_a3 > 0) { - D_8018EDE8 = 1; - } else { - D_8018EDE8 = 0; - } - if ((temp_a3 - 1) > 0) { - D_8018EDE9 = 1; - } else { - D_8018EDE9 = 0; - } - if ((temp_a3 - 2) > 0) { - D_8018EDEA = 1; - } else { - D_8018EDEA = 0; - } - if ((temp_a3 - 3) > 0) { - D_8018EDEB = 1; - } else { - D_8018EDEB = 0; - } - } - } else { + } + case 2: + case 12: + { + switch (D_8018EDE0) { + case 0: + { D_8018EDEE = 1; if (D_800DC50C == 0) { - temp_a3_2 = D_8018EDF3; - phi_v1 = 0; - phi_v0 = &gCharacterGridSelections; - phi_a2 = &gCharacterSelections; - phi_a1 = &D_8018EDE8; - do { - phi_a0 = phi_v1 + 1; - if (phi_v1 < temp_a3_2) { - temp_a0 = phi_v1 + 1; - *phi_v0 = temp_a0; - phi_a0 = temp_a0; + for (i = 0; i < 4; i++) { + if (i < D_8018EDF3) { + gCharacterGridSelections[i] = i + 1; } else { - *phi_v0 = 0; + gCharacterGridSelections[i] = 0; } - *phi_a2 = phi_v1; - temp_a1 = phi_a1 + 1; - temp_a2 = phi_a2 + 1; - temp_a1->unk-1 = 0; - phi_v1 = phi_a0; - phi_v0 += 1; - phi_a2 = temp_a2; - phi_a1 = temp_a1; - } while (phi_a0 != 4); - play_sound2(0x49009012, temp_a1, temp_a2, temp_a3_2); + D_8018EDE8[i] = FALSE; + gCharacterSelections[i] = i; + } + play_sound2(0x49009012); } else { func_800CA008(0, 0); func_800CB2C4(); D_800DC50C = 0; D_800DC524 = 0; func_800C8EAC(2); - D_8018EDE8 = 0; - D_8018EDE8 = 0; - D_8018EDE8 = 0; - D_8018EDE8 = 0; + for (i = 0; i < ARRAY_COUNT(D_8018EDE8); i++) { + D_8018EDE8[i] = FALSE; + } } + break; + } + case 1: + { + D_8018EDEE = 3; + for (i = 0; i < ARRAY_COUNT(D_8018EDE8); i++) { + if (D_8018EDF3 > i) { + D_8018EDE8[i] = TRUE; + } else { + D_8018EDE8[i] = FALSE; + } + } + break; + } } break; - case COURSE_SELECT_MENU_FROM_QUIT: - case COURSE_SELECT_MENU: + } + case 3: + case 13: + { if (gModeSelection == BATTLE) { gCupSelection = BATTLE_CUP; D_800DC540 = 4; @@ -2203,7 +1973,7 @@ void func_800B3F74(u32 arg0) { D_8018EDEC = 1; } if (D_800DC50C != 0) { - func_800CA008(0, 0, 3); + func_800CA008(0, 0); func_800CB2C4(); D_800DC50C = 0; D_800DC524 = 0; @@ -2212,46 +1982,31 @@ void func_800B3F74(u32 arg0) { play_sound2(0x49009013); D_8018EE0A = 0; if (gModeSelection == GRAND_PRIX) { - gCupCourseSelection = CUP_COURSE_ONE; + gCupCourseSelection = 0; + } + + for (i = 0; i < ARRAY_COUNT(gGPPointsByCharacterId); i++) { + gGPPointsByCharacterId[i] = 0; } - phi_v0_2 = gGPPointsByCharacterId; - do { - temp_v0_5 = phi_v0_2 + 4; - temp_v0_5->unk-3 = 0; - temp_v0_5->unk-2 = 0; - temp_v0_5->unk-1 = 0; - temp_v0_5->unk-4 = 0; - phi_v0_2 = temp_v0_5; - } while (temp_v0_5 != gCharacterIdByGPOverallRank); break; } + } func_800B44AC(); } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B3F74.s") -#endif void func_800B44AC(void) { D_8018E7A8 = 0x20; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -? func_800C3448(s32, s32 *); // extern -extern s32 D_800F2BE4; -extern u8 gSoundMode; - void func_800B44BC(void) { - s32 sp20; + UNUSED u32 pad; + union GameModePack pack; - sp20 = D_800F2BE4; + pack = D_800F2BE4; if ((gSoundMode == SOUND_STEREO) || (gSoundMode == SOUND_HEADPHONES) || (gSoundMode == SOUND_MONO)) { - func_800C3448(*(&sp20 + temp_v1) | 0xE0000000, &sp20); + func_800C3448(pack.modes[gSoundMode] | 0xE0000000); } } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B44BC.s") -#endif s32 func_800B4520(void) { @@ -2261,25 +2016,11 @@ s32 func_800B4520(void) { return 0; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit cc33060578851a93591ed035e96ffd1f15c765f1 -? rmonPrintf(? *, s32); /* extern */ -extern ? D_800F2BE8; -extern ? D_800F2BF8; -extern ? D_800F2C0C; -extern s32 D_80162DE0; -extern s32 D_8018D9C0; -extern ? D_8018EE16; - -// Separated from assembly in code_800AF9B0/func_800B4520.s UNUSED void func_800B4560(s32 arg0, s32 arg1) { - s32 sp18; + struct_8018EE10_entry *pak1 = D_8018EE10; + struct_8018EE10_entry *pak2 = D_8018D9C0; - sp18 = D_8018D9C0; - rmonPrintf(&D_800F2BE8, D_80162DE0); - rmonPrintf(&D_800F2BF8, (s32) *(&D_8018EE16 + (arg0 << 7))); - rmonPrintf(&D_800F2C0C, (s32) ((arg1 << 7) + sp18)->unk6); + rmonPrintf("ghost_kart=%d,", D_80162DE0); + rmonPrintf("pak1_ghost_kart=%d,", (pak1 + arg0)->characterId); + rmonPrintf("pak2_ghost_kart=%d\n", (pak2 + arg1)->characterId); } -#else -GLOBAL_ASM("asm/non_matchings/menus/func_800B4560.s") -#endif diff --git a/src/menus.h b/src/menus.h index 817924e92..df72744c5 100644 --- a/src/menus.h +++ b/src/menus.h @@ -6,32 +6,60 @@ #include #include -/* Function Prototypes */ -void func_800B053C(struct Controller*, u16); -void func_800B13B0(struct Controller*, u16); -void func_800B15AC(struct Controller*, u16); -void func_800B1C40(struct Controller*, u16); -void func_800B1C90(struct Controller*, u16); -void func_800B20F4(struct Controller*, u16); -void func_800B29D8(struct Controller*, u16); -s32 func_800B34E8(s32); -void func_800B3554(struct Controller*, u16); -void func_800B3B58(struct Controller*, u16); -void func_800B44AC(void); +/* functions */ +void func_800B0350(void); +void func_800B3F74(s32 menuSelection); void func_800B44BC(void); s32 func_800B4520(void); /* data */ -// these might not be in this file, but for now... -extern s8 gGameModeSubMenuRowSelectionForNumPlayers[SELECTED_PLAYER_DEFINES_TOTAL][MAX_NUM_MAIN_MENU_GAME_TYPES]; // D_800E869D. 0-4 players, 3 possible game types per player amouunt -extern s8 gGameModeRowSelectionForNumPlayers[SELECTED_PLAYER_DEFINES_TOTAL]; // D_800E869B. 0-4 players, game type row selected for each player amoun -extern const s32 gGameModeFromNumPlayersAndRowSelection[SELECTED_PLAYER_DEFINES_TOTAL][MAX_NUM_MAIN_MENU_GAME_TYPES]; // D_800F2B60. 0-4 players, 3 possible game types per player amount -extern s16 gPlaceItemBoxes; // D_800DC638 +extern s32 gMenuSelection; +extern s32 D_800E86A4; +extern s8 gCharacterSelections[4]; +extern s8 D_800E86AC[4]; +extern s8 D_800E86B0[4][3]; +extern s8 gNextDemoId; +extern s8 gControllerPakSelectedTableRow; +extern s8 D_800E86C4[12]; +extern s8 D_800E86D0[16]; -extern s32 D_8018E7A8; -extern s8 D_8018E7B0; -extern s8 D_8018EDF3; -extern s8 D_8018EDFB; -extern s8 D_8018EE0A; +extern const s8 D_800F2B60[5][3]; +extern const s32 gGameModeFromNumPlayersAndRowSelection[5][3]; +extern const s16 gCupCourseOrder[5][4]; + +extern s32 D_8018EDC0; +extern f32 D_8018EDC4; +extern f32 D_8018EDC8; +extern f32 D_8018EDCC; +extern f32 D_8018EDD0; +extern f32 D_8018EDD4; +extern f32 D_8018EDD8; +extern f32 D_8018EDDC; +extern s32 D_8018EDE0; +extern s8 gCharacterGridSelections[4]; +extern s8 D_8018EDE8[4]; +extern s8 D_8018EDEC; +extern s8 gMainMenuSelectionDepth; +extern s8 D_8018EDEE; +extern s8 gDebugMenuSelection; +extern s8 gControllerPakMenuSelection; +extern s8 D_8018EDF1; +extern u8 gSoundMode; +extern s8 D_8018EDF3; +extern s8 D_8018EDF4; +extern s8 D_8018EDF5; +extern s8 D_8018EDF6; +extern s8 gTimeTrialDataCourseIndex; +extern s8 gCourseRecordsMenuSelection; +extern s8 D_8018EDF9; +extern s8 gDebugGotoScene; +extern s8 D_8018EDFB; +extern s8 D_8018EDFC; +extern s32 gMenuTimingCounter; +extern s8 D_8018EE08; +extern s8 gCupSelection; +extern s8 gCupCourseSelection; +extern s8 D_8018EE0C; +extern struct_8018EE10_entry D_8018EE10[2]; #endif /* MENUS_H */ diff --git a/src/staff_ghosts.c b/src/staff_ghosts.c index 731306c51..861809390 100644 --- a/src/staff_ghosts.c +++ b/src/staff_ghosts.c @@ -40,7 +40,7 @@ u16 D_80162DD4; u16 D_80162DD6; u16 D_80162DD8; s32 D_80162DDC; -s32 D_80162DE0; +s32 D_80162DE0; // ghost kart id? s32 D_80162DE4; s32 D_80162DE8; s32 D_80162DEC; diff --git a/src/staff_ghosts.h b/src/staff_ghosts.h index 4d7176450..90d562c73 100644 --- a/src/staff_ghosts.h +++ b/src/staff_ghosts.h @@ -5,8 +5,12 @@ #include "common_structs.h" #include -s32 func_800051C4(); -void func_8000522C(); +s32 func_800051C4(void); +void func_8000522C(void); void func_80005AE8(Player *); +extern s32 D_80162DC8; +extern s32 D_80162DCC; +extern s32 D_80162E00; + #endif /* STAFF_GHOSTS_H */ diff --git a/tools/m2ctx b/tools/m2ctx old mode 100644 new mode 100755 index f45c630d3..14948a47a --- a/tools/m2ctx +++ b/tools/m2ctx @@ -2,41 +2,58 @@ import argparse import os +import shutil import sys import subprocess from pathlib import Path +# assuming that this util is in tools/ script_dir = os.path.dirname(os.path.realpath(__file__)) -root_dir = os.path.abspath(os.path.join(script_dir, "")) +root_dir = os.path.abspath(os.path.join(script_dir, "..")) print(root_dir) -src_dir = root_dir + "src/" # Project-specific CPP_FLAGS = [ - "-Iinclude", - "-Isrc", + "-undef", + "-D__sgi", + "-DVERSION_US", + "-DTARGET_N64", "-D_LANGUAGE_C", "-DF3DEX_GBI", "-D_MIPS_SZLONG=32", "-DSCRIPT(...)={}" "-D__attribute__(...)=", "-D__asm__(...)=", + "-DGLOBAL_ASM(...)=", "-ffreestanding", + "-nostdinc", + "-Iinclude/libc", + "-Iinclude", + "-Ibuild", + "-Ibuild/include", + "-Isrc", + "-I.", ] def import_c_file(in_file) -> str: in_file = os.path.relpath(in_file, root_dir) - cpp_command = ["gcc", "-E", "-P", "-dM", *CPP_FLAGS, in_file] - cpp_command2 = ["gcc", "-E", "-P", *CPP_FLAGS, in_file] + # Prefer clang as C preprocessor if installed on the system + if shutil.which('clang') is not None: + cpp = ['clang', '-E', '-P', '-x', 'c', '-Wno-trigraphs'] + else: + cpp = ['gcc', '-E', '-P'] + + cpp_getdefines = [*cpp, "-dM", *CPP_FLAGS, in_file] + cpp_procfile = [*cpp, *CPP_FLAGS, in_file] out_text = "" try: - out_text += subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8") - out_text += subprocess.check_output(cpp_command2, cwd=root_dir, encoding="utf-8") + out_text += subprocess.check_output(cpp_getdefines, cwd=root_dir, encoding="utf-8") + out_text += subprocess.check_output(cpp_procfile, cwd=root_dir, encoding="utf-8") except subprocess.CalledProcessError: print( - "Failed to preprocess input file, when running command:\n" - + cpp_command, + "Failed to preprocess input file, when running command:\n", + cpp_getdefines, file=sys.stderr, ) sys.exit(1)