From 7f5f21be50216c6fe60b91472c388ea806e11db2 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Sat, 7 Jan 2023 14:40:25 +0000 Subject: [PATCH] lots of renaming, last for now though (#356) * background stuff * last two tasks * Update unknown_078050.c * tonnes more * audio * Update audio.c * quick fixes * and again * requested changes * fixed the rest of the macros --- asm/non_matchings/game_ui/func_8009ECF0.s | 4 +- asm/non_matchings/game_ui/func_8009F034.s | 4 +- asm/non_matchings/game_ui/func_800AA600.s | 2 +- asm/non_matchings/menu/func_8008B4C8.s | 356 ++--- asm/non_matchings/menu/func_8008B758.s | 534 ++++---- asm/non_matchings/menu/func_80092188.s | 4 +- asm/non_matchings/menu/func_80095728.s | 12 +- asm/non_matchings/menu/func_8009CA60.s | 416 +++--- .../menu/menu_audio_options_loop.s | 784 ++++++------ asm/non_matchings/menu/menu_credits_loop.s | 12 +- asm/non_matchings/menu/menu_ghost_data_init.s | 2 +- .../menu/menu_magic_codes_list_loop.s | 548 ++++---- .../menu/menu_magic_codes_loop.s | 1140 ++++++++--------- asm/non_matchings/menu/menu_options_loop.s | 540 ++++---- asm/non_matchings/menu/menu_results_loop.s | 582 ++++----- .../menu/menu_save_options_loop.s | 490 +++---- .../menu/menu_track_select_init.s | 4 +- .../menu/menu_trophy_race_rankings_loop.s | 854 ++++++------ asm/non_matchings/objects/func_8001A8F4.s | 10 +- asm/non_matchings/objects/func_8001F460.s | 4 +- asm/non_matchings/objects/func_80022948.s | 492 +++---- .../unknown_003260/_handleEvent.s | 16 +- .../unknown_0255E0/func_800249F0.s | 4 +- .../unknown_0255E0/func_8002C0C4.s | 864 ++++++------- include/f3ddkr.h | 20 +- include/structs.h | 21 +- src/audio.c | 124 +- src/audio.h | 13 +- src/camera.c | 49 +- src/camera.h | 17 +- src/fade_transition.c | 208 +-- src/fade_transition.h | 24 +- src/font.c | 2 +- src/game.c | 28 +- src/game_text.c | 2 +- src/game_ui.c | 34 +- src/game_ui.h | 4 +- src/menu.c | 123 +- src/menu.h | 2 +- src/object_functions.c | 10 +- src/racer.c | 2 +- src/textures_sprites.c | 2 +- src/textures_sprites.h | 15 +- src/unknown_003260.c | 29 +- src/unknown_003260.h | 4 +- src/unknown_003260_bss.c | 2 +- src/unknown_008C40.c | 4 +- src/unknown_0255E0.c | 10 +- src/unknown_078050.c | 215 ++-- src/unknown_078050.h | 6 +- src/weather.c | 2 +- 51 files changed, 4346 insertions(+), 4304 deletions(-) diff --git a/asm/non_matchings/game_ui/func_8009ECF0.s b/asm/non_matchings/game_ui/func_8009ECF0.s index 23a8bdb3..ccb311a7 100644 --- a/asm/non_matchings/game_ui/func_8009ECF0.s +++ b/asm/non_matchings/game_ui/func_8009ECF0.s @@ -189,10 +189,10 @@ glabel func_8009ECF0 /* 09FBC4 8009EFC4 0C01FC7A */ jal func_8007F1E8 /* 09FBC8 8009EFC8 00402025 */ move $a0, $v0 /* 09FBCC 8009EFCC 00002025 */ move $a0, $zero -/* 09FBD0 8009EFD0 0C001298 */ jal func_80004A60 +/* 09FBD0 8009EFD0 0C001298 */ jal set_sound_channel_volume /* 09FBD4 8009EFD4 24057FFF */ li $a1, 32767 /* 09FBD8 8009EFD8 24040002 */ li $a0, 2 -/* 09FBDC 8009EFDC 0C001298 */ jal func_80004A60 +/* 09FBDC 8009EFDC 0C001298 */ jal set_sound_channel_volume /* 09FBE0 8009EFE0 24057FFF */ li $a1, 32767 /* 09FBE4 8009EFE4 3C10800E */ lui $s0, %hi(D_800E2770) # $s0, 0x800e /* 09FBE8 8009EFE8 3C11800E */ lui $s1, %hi(D_800E2790) # $s1, 0x800e diff --git a/asm/non_matchings/game_ui/func_8009F034.s b/asm/non_matchings/game_ui/func_8009F034.s index 0646ecb3..1538f8c4 100644 --- a/asm/non_matchings/game_ui/func_8009F034.s +++ b/asm/non_matchings/game_ui/func_8009F034.s @@ -112,8 +112,8 @@ glabel func_8009F034 .L8009F16C: /* 09FD6C 8009F16C 3C018012 */ lui $at, %hi(D_80126CD1) # $at, 0x8012 /* 09FD70 8009F170 A0206CD1 */ sb $zero, %lo(D_80126CD1)($at) -/* 09FD74 8009F174 3C018012 */ lui $at, %hi(D_80126CD2) # $at, 0x8012 -/* 09FD78 8009F178 A0206CD2 */ sb $zero, %lo(D_80126CD2)($at) +/* 09FD74 8009F174 3C018012 */ lui $at, %hi(gShowHUD) # $at, 0x8012 +/* 09FD78 8009F178 A0206CD2 */ sb $zero, %lo(gShowHUD)($at) /* 09FD7C 8009F17C 3C018012 */ lui $at, %hi(D_80126CD5) # $at, 0x8012 /* 09FD80 8009F180 A0206CD5 */ sb $zero, %lo(D_80126CD5)($at) /* 09FD84 8009F184 3C018012 */ lui $at, %hi(D_80127189) # $at, 0x8012 diff --git a/asm/non_matchings/game_ui/func_800AA600.s b/asm/non_matchings/game_ui/func_800AA600.s index e27340b0..54befad3 100644 --- a/asm/non_matchings/game_ui/func_800AA600.s +++ b/asm/non_matchings/game_ui/func_800AA600.s @@ -545,7 +545,7 @@ glabel func_800AA600 /* 0AB9F8 800AADF8 24846CFC */ addiu $a0, %lo(gHUDCurrDisplayList) # addiu $a0, $a0, 0x6cfc /* 0AB9FC 800AADFC AFA00014 */ sw $zero, 0x14($sp) /* 0ABA00 800AAE00 02003825 */ move $a3, $s0 -/* 0ABA04 800AAE04 0C01A2FD */ jal render_orthi_triangle_image +/* 0ABA04 800AAE04 0C01A2FD */ jal render_ortho_triangle_image /* 0ABA08 800AAE08 AFA30010 */ sw $v1, 0x10($sp) /* 0ABA0C 800AAE0C 8FB800A8 */ lw $t8, 0xa8($sp) /* 0ABA10 800AAE10 860B0004 */ lh $t3, 4($s0) diff --git a/asm/non_matchings/menu/func_8008B4C8.s b/asm/non_matchings/menu/func_8008B4C8.s index d9a766a7..db482d28 100644 --- a/asm/non_matchings/menu/func_8008B4C8.s +++ b/asm/non_matchings/menu/func_8008B4C8.s @@ -1,178 +1,178 @@ -glabel func_8008B4C8 -/* 08C0C8 8008B4C8 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 08C0CC 8008B4CC AFB40028 */ sw $s4, 0x28($sp) -/* 08C0D0 8008B4D0 AFB1001C */ sw $s1, 0x1c($sp) -/* 08C0D4 8008B4D4 AFB00018 */ sw $s0, 0x18($sp) -/* 08C0D8 8008B4D8 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012 -/* 08C0DC 8008B4DC 3C148012 */ lui $s4, %hi(D_801267D8) # $s4, 0x8012 -/* 08C0E0 8008B4E0 AFBF003C */ sw $ra, 0x3c($sp) -/* 08C0E4 8008B4E4 AFBE0038 */ sw $fp, 0x38($sp) -/* 08C0E8 8008B4E8 AFB70034 */ sw $s7, 0x34($sp) -/* 08C0EC 8008B4EC AFB60030 */ sw $s6, 0x30($sp) -/* 08C0F0 8008B4F0 AFB5002C */ sw $s5, 0x2c($sp) -/* 08C0F4 8008B4F4 AFB30024 */ sw $s3, 0x24($sp) -/* 08C0F8 8008B4F8 AFB20020 */ sw $s2, 0x20($sp) -/* 08C0FC 8008B4FC 00001025 */ move $v0, $zero -/* 08C100 8008B500 269467D8 */ addiu $s4, %lo(D_801267D8) # addiu $s4, $s4, 0x67d8 -/* 08C104 8008B504 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4 -/* 08C108 8008B508 00008025 */ move $s0, $zero -.L8008B50C: -/* 08C10C 8008B50C 822E0000 */ lb $t6, ($s1) -/* 08C110 8008B510 00107880 */ sll $t7, $s0, 2 -/* 08C114 8008B514 11C00004 */ beqz $t6, .L8008B528 -/* 08C118 8008B518 028FC021 */ addu $t8, $s4, $t7 -/* 08C11C 8008B51C 8F190000 */ lw $t9, ($t8) -/* 08C120 8008B520 00000000 */ nop -/* 08C124 8008B524 00591025 */ or $v0, $v0, $t9 -.L8008B528: -/* 08C128 8008B528 26100001 */ addiu $s0, $s0, 1 -/* 08C12C 8008B52C 2A010004 */ slti $at, $s0, 4 -/* 08C130 8008B530 1420FFF6 */ bnez $at, .L8008B50C -/* 08C134 8008B534 26310001 */ addiu $s1, $s1, 1 -/* 08C138 8008B538 30489000 */ andi $t0, $v0, 0x9000 -/* 08C13C 8008B53C 11000047 */ beqz $t0, .L8008B65C -/* 08C140 8008B540 00008025 */ move $s0, $zero -/* 08C144 8008B544 24120001 */ li $s2, 1 -/* 08C148 8008B548 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08C14C 8008B54C 0C01BAEA */ jal func_8006EBA8 -/* 08C150 8008B550 AC32F47C */ sw $s2, %lo(gMenuDelay)($at) -/* 08C154 8008B554 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 08C158 8008B558 0C030076 */ jal func_800C01D8 -/* 08C15C 8008B55C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 08C160 8008B560 3C028012 */ lui $v0, %hi(D_801267D8) # $v0, 0x8012 -/* 08C164 8008B564 2411FFFF */ li $s1, -1 -/* 08C168 8008B568 244267D8 */ addiu $v0, %lo(D_801267D8) # addiu $v0, $v0, 0x67d8 -/* 08C16C 8008B56C 00008025 */ move $s0, $zero -.L8008B570: -/* 08C170 8008B570 8C490000 */ lw $t1, ($v0) -/* 08C174 8008B574 00000000 */ nop -/* 08C178 8008B578 312A9000 */ andi $t2, $t1, 0x9000 -/* 08C17C 8008B57C 11400002 */ beqz $t2, .L8008B588 -/* 08C180 8008B580 00000000 */ nop -/* 08C184 8008B584 02008825 */ move $s1, $s0 -.L8008B588: -/* 08C188 8008B588 26100001 */ addiu $s0, $s0, 1 -/* 08C18C 8008B58C 2A0B0004 */ slti $t3, $s0, 4 -/* 08C190 8008B590 2A2C0000 */ slti $t4, $s1, 0 -/* 08C194 8008B594 016C6824 */ and $t5, $t3, $t4 -/* 08C198 8008B598 15A0FFF5 */ bnez $t5, .L8008B570 -/* 08C19C 8008B59C 24420004 */ addiu $v0, $v0, 4 -/* 08C1A0 8008B5A0 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012 -/* 08C1A4 8008B5A4 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808 -/* 08C1A8 8008B5A8 00117080 */ sll $t6, $s1, 2 -/* 08C1AC 8008B5AC 02EE8021 */ addu $s0, $s7, $t6 -/* 08C1B0 8008B5B0 8E040000 */ lw $a0, ($s0) -/* 08C1B4 8008B5B4 00000000 */ nop -/* 08C1B8 8008B5B8 10800003 */ beqz $a0, .L8008B5C8 -/* 08C1BC 8008B5BC 00000000 */ nop -/* 08C1C0 8008B5C0 0C001223 */ jal func_8000488C -/* 08C1C4 8008B5C4 00000000 */ nop -.L8008B5C8: -/* 08C1C8 8008B5C8 3C188012 */ lui $t8, %hi(gPlayersCharacterArray) # $t8, 0x8012 -/* 08C1CC 8008B5CC 0311C021 */ addu $t8, $t8, $s1 -/* 08C1D0 8008B5D0 831863E8 */ lb $t8, %lo(gPlayersCharacterArray)($t8) -/* 08C1D4 8008B5D4 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 -/* 08C1D8 8008B5D8 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc -/* 08C1DC 8008B5DC 0018C8C0 */ sll $t9, $t8, 3 -/* 08C1E0 8008B5E0 8FCF0000 */ lw $t7, ($fp) -/* 08C1E4 8008B5E4 0338C823 */ subu $t9, $t9, $t8 -/* 08C1E8 8008B5E8 0019C840 */ sll $t9, $t9, 1 -/* 08C1EC 8008B5EC 01F94021 */ addu $t0, $t7, $t9 -/* 08C1F0 8008B5F0 8504000C */ lh $a0, 0xc($t0) -/* 08C1F4 8008B5F4 02002825 */ move $a1, $s0 -/* 08C1F8 8008B5F8 2484019E */ addiu $a0, $a0, 0x19e -/* 08C1FC 8008B5FC 3089FFFF */ andi $t1, $a0, 0xffff -/* 08C200 8008B600 0C000741 */ jal play_sound_global -/* 08C204 8008B604 01202025 */ move $a0, $t1 -/* 08C208 8008B608 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 08C20C 8008B60C 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 08C210 8008B610 00000000 */ nop -/* 08C214 8008B614 28410003 */ slti $at, $v0, 3 -/* 08C218 8008B618 1020000C */ beqz $at, .L8008B64C -/* 08C21C 8008B61C 28410002 */ slti $at, $v0, 2 -/* 08C220 8008B620 14200005 */ bnez $at, .L8008B638 -/* 08C224 8008B624 3C0A800E */ lui $t2, %hi(gActiveMagicCodes) # $t2, 0x800e -/* 08C228 8008B628 8D4AFD98 */ lw $t2, %lo(gActiveMagicCodes)($t2) -/* 08C22C 8008B62C 00000000 */ nop -/* 08C230 8008B630 000A59C0 */ sll $t3, $t2, 7 -/* 08C234 8008B634 05610005 */ bgez $t3, .L8008B64C -.L8008B638: -/* 08C238 8008B638 3C0C800E */ lui $t4, %hi(D_800DFFD0) # $t4, 0x800e -/* 08C23C 8008B63C 8D8CFFD0 */ lw $t4, %lo(D_800DFFD0)($t4) -/* 08C240 8008B640 00000000 */ nop -/* 08C244 8008B644 164C0039 */ bne $s2, $t4, .L8008B72C -/* 08C248 8008B648 8FBF003C */ lw $ra, 0x3c($sp) -.L8008B64C: -/* 08C24C 8008B64C 0C000326 */ jal set_music_fade_timer -/* 08C250 8008B650 2404FF80 */ li $a0, -128 -/* 08C254 8008B654 10000035 */ b .L8008B72C -/* 08C258 8008B658 8FBF003C */ lw $ra, 0x3c($sp) -.L8008B65C: -/* 08C25C 8008B65C 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012 -/* 08C260 8008B660 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 -/* 08C264 8008B664 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012 -/* 08C268 8008B668 3C158012 */ lui $s5, %hi(D_801263DC) # $s5, 0x8012 -/* 08C26C 8008B66C 3C13800E */ lui $s3, %hi(gNumberOfReadyPlayers) # $s3, 0x800e -/* 08C270 8008B670 2673F480 */ addiu $s3, %lo(gNumberOfReadyPlayers) # addiu $s3, $s3, -0xb80 -/* 08C274 8008B674 26B563DC */ addiu $s5, %lo(D_801263DC) # addiu $s5, $s5, 0x63dc -/* 08C278 8008B678 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808 -/* 08C27C 8008B67C 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc -/* 08C280 8008B680 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4 -/* 08C284 8008B684 24160004 */ li $s6, 4 -.L8008B688: -/* 08C288 8008B688 822D0000 */ lb $t5, ($s1) -/* 08C28C 8008B68C 02B01821 */ addu $v1, $s5, $s0 -/* 08C290 8008B690 11A00022 */ beqz $t5, .L8008B71C -/* 08C294 8008B694 00000000 */ nop -/* 08C298 8008B698 806E0000 */ lb $t6, ($v1) -/* 08C29C 8008B69C 00101080 */ sll $v0, $s0, 2 -/* 08C2A0 8008B6A0 11C0001E */ beqz $t6, .L8008B71C -/* 08C2A4 8008B6A4 0282C021 */ addu $t8, $s4, $v0 -/* 08C2A8 8008B6A8 8F0F0000 */ lw $t7, ($t8) -/* 08C2AC 8008B6AC 02E22821 */ addu $a1, $s7, $v0 -/* 08C2B0 8008B6B0 31F94000 */ andi $t9, $t7, 0x4000 -/* 08C2B4 8008B6B4 13200019 */ beqz $t9, .L8008B71C -/* 08C2B8 8008B6B8 3C0A8012 */ lui $t2, %hi(gPlayersCharacterArray) # $t2, 0x8012 -/* 08C2BC 8008B6BC 8E680000 */ lw $t0, ($s3) -/* 08C2C0 8008B6C0 8CA40000 */ lw $a0, ($a1) -/* 08C2C4 8008B6C4 254A63E8 */ addiu $t2, %lo(gPlayersCharacterArray) # addiu $t2, $t2, 0x63e8 -/* 08C2C8 8008B6C8 2509FFFF */ addiu $t1, $t0, -1 -/* 08C2CC 8008B6CC A0600000 */ sb $zero, ($v1) -/* 08C2D0 8008B6D0 AE690000 */ sw $t1, ($s3) -/* 08C2D4 8008B6D4 10800005 */ beqz $a0, .L8008B6EC -/* 08C2D8 8008B6D8 020A9021 */ addu $s2, $s0, $t2 -/* 08C2DC 8008B6DC 0C001223 */ jal func_8000488C -/* 08C2E0 8008B6E0 AFA50044 */ sw $a1, 0x44($sp) -/* 08C2E4 8008B6E4 8FA50044 */ lw $a1, 0x44($sp) -/* 08C2E8 8008B6E8 00000000 */ nop -.L8008B6EC: -/* 08C2EC 8008B6EC 824C0000 */ lb $t4, ($s2) -/* 08C2F0 8008B6F0 8FCB0000 */ lw $t3, ($fp) -/* 08C2F4 8008B6F4 000C68C0 */ sll $t5, $t4, 3 -/* 08C2F8 8008B6F8 01AC6823 */ subu $t5, $t5, $t4 -/* 08C2FC 8008B6FC 000D6840 */ sll $t5, $t5, 1 -/* 08C300 8008B700 016D7021 */ addu $t6, $t3, $t5 -/* 08C304 8008B704 85C4000C */ lh $a0, 0xc($t6) -/* 08C308 8008B708 00000000 */ nop -/* 08C30C 8008B70C 24840093 */ addiu $a0, $a0, 0x93 -/* 08C310 8008B710 3098FFFF */ andi $t8, $a0, 0xffff -/* 08C314 8008B714 0C000741 */ jal play_sound_global -/* 08C318 8008B718 03002025 */ move $a0, $t8 -.L8008B71C: -/* 08C31C 8008B71C 26100001 */ addiu $s0, $s0, 1 -/* 08C320 8008B720 1616FFD9 */ bne $s0, $s6, .L8008B688 -/* 08C324 8008B724 26310001 */ addiu $s1, $s1, 1 -/* 08C328 8008B728 8FBF003C */ lw $ra, 0x3c($sp) -.L8008B72C: -/* 08C32C 8008B72C 8FB00018 */ lw $s0, 0x18($sp) -/* 08C330 8008B730 8FB1001C */ lw $s1, 0x1c($sp) -/* 08C334 8008B734 8FB20020 */ lw $s2, 0x20($sp) -/* 08C338 8008B738 8FB30024 */ lw $s3, 0x24($sp) -/* 08C33C 8008B73C 8FB40028 */ lw $s4, 0x28($sp) -/* 08C340 8008B740 8FB5002C */ lw $s5, 0x2c($sp) -/* 08C344 8008B744 8FB60030 */ lw $s6, 0x30($sp) -/* 08C348 8008B748 8FB70034 */ lw $s7, 0x34($sp) -/* 08C34C 8008B74C 8FBE0038 */ lw $fp, 0x38($sp) -/* 08C350 8008B750 03E00008 */ jr $ra -/* 08C354 8008B754 27BD0060 */ addiu $sp, $sp, 0x60 - +glabel func_8008B4C8 +/* 08C0C8 8008B4C8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 08C0CC 8008B4CC AFB40028 */ sw $s4, 0x28($sp) +/* 08C0D0 8008B4D0 AFB1001C */ sw $s1, 0x1c($sp) +/* 08C0D4 8008B4D4 AFB00018 */ sw $s0, 0x18($sp) +/* 08C0D8 8008B4D8 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012 +/* 08C0DC 8008B4DC 3C148012 */ lui $s4, %hi(D_801267D8) # $s4, 0x8012 +/* 08C0E0 8008B4E0 AFBF003C */ sw $ra, 0x3c($sp) +/* 08C0E4 8008B4E4 AFBE0038 */ sw $fp, 0x38($sp) +/* 08C0E8 8008B4E8 AFB70034 */ sw $s7, 0x34($sp) +/* 08C0EC 8008B4EC AFB60030 */ sw $s6, 0x30($sp) +/* 08C0F0 8008B4F0 AFB5002C */ sw $s5, 0x2c($sp) +/* 08C0F4 8008B4F4 AFB30024 */ sw $s3, 0x24($sp) +/* 08C0F8 8008B4F8 AFB20020 */ sw $s2, 0x20($sp) +/* 08C0FC 8008B4FC 00001025 */ move $v0, $zero +/* 08C100 8008B500 269467D8 */ addiu $s4, %lo(D_801267D8) # addiu $s4, $s4, 0x67d8 +/* 08C104 8008B504 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4 +/* 08C108 8008B508 00008025 */ move $s0, $zero +.L8008B50C: +/* 08C10C 8008B50C 822E0000 */ lb $t6, ($s1) +/* 08C110 8008B510 00107880 */ sll $t7, $s0, 2 +/* 08C114 8008B514 11C00004 */ beqz $t6, .L8008B528 +/* 08C118 8008B518 028FC021 */ addu $t8, $s4, $t7 +/* 08C11C 8008B51C 8F190000 */ lw $t9, ($t8) +/* 08C120 8008B520 00000000 */ nop +/* 08C124 8008B524 00591025 */ or $v0, $v0, $t9 +.L8008B528: +/* 08C128 8008B528 26100001 */ addiu $s0, $s0, 1 +/* 08C12C 8008B52C 2A010004 */ slti $at, $s0, 4 +/* 08C130 8008B530 1420FFF6 */ bnez $at, .L8008B50C +/* 08C134 8008B534 26310001 */ addiu $s1, $s1, 1 +/* 08C138 8008B538 30489000 */ andi $t0, $v0, 0x9000 +/* 08C13C 8008B53C 11000047 */ beqz $t0, .L8008B65C +/* 08C140 8008B540 00008025 */ move $s0, $zero +/* 08C144 8008B544 24120001 */ li $s2, 1 +/* 08C148 8008B548 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08C14C 8008B54C 0C01BAEA */ jal func_8006EBA8 +/* 08C150 8008B550 AC32F47C */ sw $s2, %lo(gMenuDelay)($at) +/* 08C154 8008B554 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 08C158 8008B558 0C030076 */ jal transition_begin +/* 08C15C 8008B55C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 08C160 8008B560 3C028012 */ lui $v0, %hi(D_801267D8) # $v0, 0x8012 +/* 08C164 8008B564 2411FFFF */ li $s1, -1 +/* 08C168 8008B568 244267D8 */ addiu $v0, %lo(D_801267D8) # addiu $v0, $v0, 0x67d8 +/* 08C16C 8008B56C 00008025 */ move $s0, $zero +.L8008B570: +/* 08C170 8008B570 8C490000 */ lw $t1, ($v0) +/* 08C174 8008B574 00000000 */ nop +/* 08C178 8008B578 312A9000 */ andi $t2, $t1, 0x9000 +/* 08C17C 8008B57C 11400002 */ beqz $t2, .L8008B588 +/* 08C180 8008B580 00000000 */ nop +/* 08C184 8008B584 02008825 */ move $s1, $s0 +.L8008B588: +/* 08C188 8008B588 26100001 */ addiu $s0, $s0, 1 +/* 08C18C 8008B58C 2A0B0004 */ slti $t3, $s0, 4 +/* 08C190 8008B590 2A2C0000 */ slti $t4, $s1, 0 +/* 08C194 8008B594 016C6824 */ and $t5, $t3, $t4 +/* 08C198 8008B598 15A0FFF5 */ bnez $t5, .L8008B570 +/* 08C19C 8008B59C 24420004 */ addiu $v0, $v0, 4 +/* 08C1A0 8008B5A0 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012 +/* 08C1A4 8008B5A4 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808 +/* 08C1A8 8008B5A8 00117080 */ sll $t6, $s1, 2 +/* 08C1AC 8008B5AC 02EE8021 */ addu $s0, $s7, $t6 +/* 08C1B0 8008B5B0 8E040000 */ lw $a0, ($s0) +/* 08C1B4 8008B5B4 00000000 */ nop +/* 08C1B8 8008B5B8 10800003 */ beqz $a0, .L8008B5C8 +/* 08C1BC 8008B5BC 00000000 */ nop +/* 08C1C0 8008B5C0 0C001223 */ jal func_8000488C +/* 08C1C4 8008B5C4 00000000 */ nop +.L8008B5C8: +/* 08C1C8 8008B5C8 3C188012 */ lui $t8, %hi(gPlayersCharacterArray) # $t8, 0x8012 +/* 08C1CC 8008B5CC 0311C021 */ addu $t8, $t8, $s1 +/* 08C1D0 8008B5D0 831863E8 */ lb $t8, %lo(gPlayersCharacterArray)($t8) +/* 08C1D4 8008B5D4 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 +/* 08C1D8 8008B5D8 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc +/* 08C1DC 8008B5DC 0018C8C0 */ sll $t9, $t8, 3 +/* 08C1E0 8008B5E0 8FCF0000 */ lw $t7, ($fp) +/* 08C1E4 8008B5E4 0338C823 */ subu $t9, $t9, $t8 +/* 08C1E8 8008B5E8 0019C840 */ sll $t9, $t9, 1 +/* 08C1EC 8008B5EC 01F94021 */ addu $t0, $t7, $t9 +/* 08C1F0 8008B5F0 8504000C */ lh $a0, 0xc($t0) +/* 08C1F4 8008B5F4 02002825 */ move $a1, $s0 +/* 08C1F8 8008B5F8 2484019E */ addiu $a0, $a0, 0x19e +/* 08C1FC 8008B5FC 3089FFFF */ andi $t1, $a0, 0xffff +/* 08C200 8008B600 0C000741 */ jal play_sound_global +/* 08C204 8008B604 01202025 */ move $a0, $t1 +/* 08C208 8008B608 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e +/* 08C20C 8008B60C 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) +/* 08C210 8008B610 00000000 */ nop +/* 08C214 8008B614 28410003 */ slti $at, $v0, 3 +/* 08C218 8008B618 1020000C */ beqz $at, .L8008B64C +/* 08C21C 8008B61C 28410002 */ slti $at, $v0, 2 +/* 08C220 8008B620 14200005 */ bnez $at, .L8008B638 +/* 08C224 8008B624 3C0A800E */ lui $t2, %hi(gActiveMagicCodes) # $t2, 0x800e +/* 08C228 8008B628 8D4AFD98 */ lw $t2, %lo(gActiveMagicCodes)($t2) +/* 08C22C 8008B62C 00000000 */ nop +/* 08C230 8008B630 000A59C0 */ sll $t3, $t2, 7 +/* 08C234 8008B634 05610005 */ bgez $t3, .L8008B64C +.L8008B638: +/* 08C238 8008B638 3C0C800E */ lui $t4, %hi(D_800DFFD0) # $t4, 0x800e +/* 08C23C 8008B63C 8D8CFFD0 */ lw $t4, %lo(D_800DFFD0)($t4) +/* 08C240 8008B640 00000000 */ nop +/* 08C244 8008B644 164C0039 */ bne $s2, $t4, .L8008B72C +/* 08C248 8008B648 8FBF003C */ lw $ra, 0x3c($sp) +.L8008B64C: +/* 08C24C 8008B64C 0C000326 */ jal set_music_fade_timer +/* 08C250 8008B650 2404FF80 */ li $a0, -128 +/* 08C254 8008B654 10000035 */ b .L8008B72C +/* 08C258 8008B658 8FBF003C */ lw $ra, 0x3c($sp) +.L8008B65C: +/* 08C25C 8008B65C 3C118012 */ lui $s1, %hi(gActivePlayersArray) # $s1, 0x8012 +/* 08C260 8008B660 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 +/* 08C264 8008B664 3C178012 */ lui $s7, %hi(D_80126808) # $s7, 0x8012 +/* 08C268 8008B668 3C158012 */ lui $s5, %hi(D_801263DC) # $s5, 0x8012 +/* 08C26C 8008B66C 3C13800E */ lui $s3, %hi(gNumberOfReadyPlayers) # $s3, 0x800e +/* 08C270 8008B670 2673F480 */ addiu $s3, %lo(gNumberOfReadyPlayers) # addiu $s3, $s3, -0xb80 +/* 08C274 8008B674 26B563DC */ addiu $s5, %lo(D_801263DC) # addiu $s5, $s5, 0x63dc +/* 08C278 8008B678 26F76808 */ addiu $s7, %lo(D_80126808) # addiu $s7, $s7, 0x6808 +/* 08C27C 8008B67C 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc +/* 08C280 8008B680 263163D4 */ addiu $s1, %lo(gActivePlayersArray) # addiu $s1, $s1, 0x63d4 +/* 08C284 8008B684 24160004 */ li $s6, 4 +.L8008B688: +/* 08C288 8008B688 822D0000 */ lb $t5, ($s1) +/* 08C28C 8008B68C 02B01821 */ addu $v1, $s5, $s0 +/* 08C290 8008B690 11A00022 */ beqz $t5, .L8008B71C +/* 08C294 8008B694 00000000 */ nop +/* 08C298 8008B698 806E0000 */ lb $t6, ($v1) +/* 08C29C 8008B69C 00101080 */ sll $v0, $s0, 2 +/* 08C2A0 8008B6A0 11C0001E */ beqz $t6, .L8008B71C +/* 08C2A4 8008B6A4 0282C021 */ addu $t8, $s4, $v0 +/* 08C2A8 8008B6A8 8F0F0000 */ lw $t7, ($t8) +/* 08C2AC 8008B6AC 02E22821 */ addu $a1, $s7, $v0 +/* 08C2B0 8008B6B0 31F94000 */ andi $t9, $t7, 0x4000 +/* 08C2B4 8008B6B4 13200019 */ beqz $t9, .L8008B71C +/* 08C2B8 8008B6B8 3C0A8012 */ lui $t2, %hi(gPlayersCharacterArray) # $t2, 0x8012 +/* 08C2BC 8008B6BC 8E680000 */ lw $t0, ($s3) +/* 08C2C0 8008B6C0 8CA40000 */ lw $a0, ($a1) +/* 08C2C4 8008B6C4 254A63E8 */ addiu $t2, %lo(gPlayersCharacterArray) # addiu $t2, $t2, 0x63e8 +/* 08C2C8 8008B6C8 2509FFFF */ addiu $t1, $t0, -1 +/* 08C2CC 8008B6CC A0600000 */ sb $zero, ($v1) +/* 08C2D0 8008B6D0 AE690000 */ sw $t1, ($s3) +/* 08C2D4 8008B6D4 10800005 */ beqz $a0, .L8008B6EC +/* 08C2D8 8008B6D8 020A9021 */ addu $s2, $s0, $t2 +/* 08C2DC 8008B6DC 0C001223 */ jal func_8000488C +/* 08C2E0 8008B6E0 AFA50044 */ sw $a1, 0x44($sp) +/* 08C2E4 8008B6E4 8FA50044 */ lw $a1, 0x44($sp) +/* 08C2E8 8008B6E8 00000000 */ nop +.L8008B6EC: +/* 08C2EC 8008B6EC 824C0000 */ lb $t4, ($s2) +/* 08C2F0 8008B6F0 8FCB0000 */ lw $t3, ($fp) +/* 08C2F4 8008B6F4 000C68C0 */ sll $t5, $t4, 3 +/* 08C2F8 8008B6F8 01AC6823 */ subu $t5, $t5, $t4 +/* 08C2FC 8008B6FC 000D6840 */ sll $t5, $t5, 1 +/* 08C300 8008B700 016D7021 */ addu $t6, $t3, $t5 +/* 08C304 8008B704 85C4000C */ lh $a0, 0xc($t6) +/* 08C308 8008B708 00000000 */ nop +/* 08C30C 8008B70C 24840093 */ addiu $a0, $a0, 0x93 +/* 08C310 8008B710 3098FFFF */ andi $t8, $a0, 0xffff +/* 08C314 8008B714 0C000741 */ jal play_sound_global +/* 08C318 8008B718 03002025 */ move $a0, $t8 +.L8008B71C: +/* 08C31C 8008B71C 26100001 */ addiu $s0, $s0, 1 +/* 08C320 8008B720 1616FFD9 */ bne $s0, $s6, .L8008B688 +/* 08C324 8008B724 26310001 */ addiu $s1, $s1, 1 +/* 08C328 8008B728 8FBF003C */ lw $ra, 0x3c($sp) +.L8008B72C: +/* 08C32C 8008B72C 8FB00018 */ lw $s0, 0x18($sp) +/* 08C330 8008B730 8FB1001C */ lw $s1, 0x1c($sp) +/* 08C334 8008B734 8FB20020 */ lw $s2, 0x20($sp) +/* 08C338 8008B738 8FB30024 */ lw $s3, 0x24($sp) +/* 08C33C 8008B73C 8FB40028 */ lw $s4, 0x28($sp) +/* 08C340 8008B740 8FB5002C */ lw $s5, 0x2c($sp) +/* 08C344 8008B744 8FB60030 */ lw $s6, 0x30($sp) +/* 08C348 8008B748 8FB70034 */ lw $s7, 0x34($sp) +/* 08C34C 8008B74C 8FBE0038 */ lw $fp, 0x38($sp) +/* 08C350 8008B750 03E00008 */ jr $ra +/* 08C354 8008B754 27BD0060 */ addiu $sp, $sp, 0x60 + diff --git a/asm/non_matchings/menu/func_8008B758.s b/asm/non_matchings/menu/func_8008B758.s index eff5aabb..1d70d074 100644 --- a/asm/non_matchings/menu/func_8008B758.s +++ b/asm/non_matchings/menu/func_8008B758.s @@ -1,267 +1,267 @@ -glabel func_8008B758 -/* 08C358 8008B758 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 08C35C 8008B75C AFBE0040 */ sw $fp, 0x40($sp) -/* 08C360 8008B760 AFB7003C */ sw $s7, 0x3c($sp) -/* 08C364 8008B764 AFB60038 */ sw $s6, 0x38($sp) -/* 08C368 8008B768 AFB00020 */ sw $s0, 0x20($sp) -/* 08C36C 8008B76C AFB50034 */ sw $s5, 0x34($sp) -/* 08C370 8008B770 AFB40030 */ sw $s4, 0x30($sp) -/* 08C374 8008B774 AFB3002C */ sw $s3, 0x2c($sp) -/* 08C378 8008B778 3C108012 */ lui $s0, %hi(D_801263C0) # $s0, 0x8012 -/* 08C37C 8008B77C 3C168012 */ lui $s6, %hi(gPlayersCharacterArray) # $s6, 0x8012 -/* 08C380 8008B780 3C17800E */ lui $s7, %hi(gNumberOfReadyPlayers) # $s7, 0x800e -/* 08C384 8008B784 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 -/* 08C388 8008B788 AFBF0044 */ sw $ra, 0x44($sp) -/* 08C38C 8008B78C AFB20028 */ sw $s2, 0x28($sp) -/* 08C390 8008B790 AFB10024 */ sw $s1, 0x24($sp) -/* 08C394 8008B794 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc -/* 08C398 8008B798 26F7F480 */ addiu $s7, %lo(gNumberOfReadyPlayers) # addiu $s7, $s7, -0xb80 -/* 08C39C 8008B79C 26D663E8 */ addiu $s6, %lo(gPlayersCharacterArray) # addiu $s6, $s6, 0x63e8 -/* 08C3A0 8008B7A0 261063C0 */ addiu $s0, %lo(D_801263C0) # addiu $s0, $s0, 0x63c0 -/* 08C3A4 8008B7A4 2413000E */ li $s3, 14 -/* 08C3A8 8008B7A8 0000A025 */ move $s4, $zero -/* 08C3AC 8008B7AC 24150014 */ li $s5, 20 -/* 08C3B0 8008B7B0 00801025 */ move $v0, $a0 -.L8008B7B4: -/* 08C3B4 8008B7B4 AFA2004C */ sw $v0, 0x4c($sp) -/* 08C3B8 8008B7B8 804E0000 */ lb $t6, ($v0) -/* 08C3BC 8008B7BC 3C0F8012 */ lui $t7, %hi(D_801263DC) # $t7, 0x8012 -/* 08C3C0 8008B7C0 11C000CD */ beqz $t6, .L8008BAF8 -/* 08C3C4 8008B7C4 25EF63DC */ addiu $t7, %lo(D_801263DC) # addiu $t7, $t7, 0x63dc -/* 08C3C8 8008B7C8 028F2821 */ addu $a1, $s4, $t7 -/* 08C3CC 8008B7CC 80B90000 */ lb $t9, ($a1) -/* 08C3D0 8008B7D0 3C188012 */ lui $t8, %hi(D_801267D8) # $t8, 0x8012 -/* 08C3D4 8008B7D4 271867D8 */ addiu $t8, %lo(D_801267D8) # addiu $t8, $t8, 0x67d8 -/* 08C3D8 8008B7D8 00143080 */ sll $a2, $s4, 2 -/* 08C3DC 8008B7DC 1320001E */ beqz $t9, .L8008B858 -/* 08C3E0 8008B7E0 00D81021 */ addu $v0, $a2, $t8 -/* 08C3E4 8008B7E4 8C480000 */ lw $t0, ($v0) -/* 08C3E8 8008B7E8 3C0C8012 */ lui $t4, %hi(D_80126808) # $t4, 0x8012 -/* 08C3EC 8008B7EC 31094000 */ andi $t1, $t0, 0x4000 -/* 08C3F0 8008B7F0 112000C1 */ beqz $t1, .L8008BAF8 -/* 08C3F4 8008B7F4 258C6808 */ addiu $t4, %lo(D_80126808) # addiu $t4, $t4, 0x6808 -/* 08C3F8 8008B7F8 8EEA0000 */ lw $t2, ($s7) -/* 08C3FC 8008B7FC 00CC8821 */ addu $s1, $a2, $t4 -/* 08C400 8008B800 8E240000 */ lw $a0, ($s1) -/* 08C404 8008B804 254BFFFF */ addiu $t3, $t2, -1 -/* 08C408 8008B808 A0A00000 */ sb $zero, ($a1) -/* 08C40C 8008B80C AEEB0000 */ sw $t3, ($s7) -/* 08C410 8008B810 10800003 */ beqz $a0, .L8008B820 -/* 08C414 8008B814 02D49021 */ addu $s2, $s6, $s4 -/* 08C418 8008B818 0C001223 */ jal func_8000488C -/* 08C41C 8008B81C 00000000 */ nop -.L8008B820: -/* 08C420 8008B820 824E0000 */ lb $t6, ($s2) -/* 08C424 8008B824 8FCD0000 */ lw $t5, ($fp) -/* 08C428 8008B828 01D30019 */ multu $t6, $s3 -/* 08C42C 8008B82C 02202825 */ move $a1, $s1 -/* 08C430 8008B830 00007812 */ mflo $t7 -/* 08C434 8008B834 01AFC021 */ addu $t8, $t5, $t7 -/* 08C438 8008B838 8704000C */ lh $a0, 0xc($t8) -/* 08C43C 8008B83C 00000000 */ nop -/* 08C440 8008B840 24840093 */ addiu $a0, $a0, 0x93 -/* 08C444 8008B844 3099FFFF */ andi $t9, $a0, 0xffff -/* 08C448 8008B848 0C000741 */ jal play_sound_global -/* 08C44C 8008B84C 03202025 */ move $a0, $t9 -/* 08C450 8008B850 100000AA */ b .L8008BAFC -/* 08C454 8008B854 8FA2004C */ lw $v0, 0x4c($sp) -.L8008B858: -/* 08C458 8008B858 8C430000 */ lw $v1, ($v0) -/* 08C45C 8008B85C 02D49021 */ addu $s2, $s6, $s4 -/* 08C460 8008B860 30684000 */ andi $t0, $v1, 0x4000 -/* 08C464 8008B864 1100003C */ beqz $t0, .L8008B958 -/* 08C468 8008B868 30789000 */ andi $t8, $v1, 0x9000 -/* 08C46C 8008B86C 3C09800E */ lui $t1, %hi(gNumberOfActivePlayers) # $t1, 0x800e -/* 08C470 8008B870 8D29F4BC */ lw $t1, %lo(gNumberOfActivePlayers)($t1) -/* 08C474 8008B874 3C01800E */ lui $at, %hi(gNumberOfActivePlayers) # $at, 0x800e -/* 08C478 8008B878 252AFFFF */ addiu $t2, $t1, -1 -/* 08C47C 8008B87C AC2AF4BC */ sw $t2, %lo(gNumberOfActivePlayers)($at) -/* 08C480 8008B880 3C06800E */ lui $a2, %hi(gNumberOfActivePlayers) # $a2, 0x800e -/* 08C484 8008B884 8CC6F4BC */ lw $a2, %lo(gNumberOfActivePlayers)($a2) -/* 08C488 8008B888 3C018012 */ lui $at, %hi(gActivePlayersArray) # $at, 0x8012 -/* 08C48C 8008B88C 00340821 */ addu $at, $at, $s4 -/* 08C490 8008B890 18C00026 */ blez $a2, .L8008B92C -/* 08C494 8008B894 A02063D4 */ sb $zero, %lo(gActivePlayersArray)($at) -/* 08C498 8008B898 824C0000 */ lb $t4, ($s2) -/* 08C49C 8008B89C 8FC50000 */ lw $a1, ($fp) -/* 08C4A0 8008B8A0 01930019 */ multu $t4, $s3 -/* 08C4A4 8008B8A4 3C0B8012 */ lui $t3, %hi(D_801263B4) # $t3, 0x8012 -/* 08C4A8 8008B8A8 816B63B4 */ lb $t3, %lo(D_801263B4)($t3) -/* 08C4AC 8008B8AC 00007012 */ mflo $t6 -/* 08C4B0 8008B8B0 00AE6821 */ addu $t5, $a1, $t6 -/* 08C4B4 8008B8B4 85AF000C */ lh $t7, 0xc($t5) -/* 08C4B8 8008B8B8 00000000 */ nop -/* 08C4BC 8008B8BC 156F001C */ bne $t3, $t7, .L8008B930 -/* 08C4C0 8008B8C0 240BFFFF */ li $t3, -1 -/* 08C4C4 8008B8C4 82180001 */ lb $t8, 1($s0) -/* 08C4C8 8008B8C8 00002025 */ move $a0, $zero -/* 08C4CC 8008B8CC 1F000017 */ bgtz $t8, .L8008B92C -/* 08C4D0 8008B8D0 00001825 */ move $v1, $zero -/* 08C4D4 8008B8D4 3C198012 */ lui $t9, %hi(gActivePlayersArray) # $t9, 0x8012 -/* 08C4D8 8008B8D8 273963D4 */ addiu $t9, %lo(gActivePlayersArray) # addiu $t9, $t9, 0x63d4 -/* 08C4DC 8008B8DC 00191021 */ addu $v0, $zero, $t9 -.L8008B8E0: -/* 08C4E0 8008B8E0 80480000 */ lb $t0, ($v0) -/* 08C4E4 8008B8E4 02C34821 */ addu $t1, $s6, $v1 -/* 08C4E8 8008B8E8 1100000A */ beqz $t0, .L8008B914 -/* 08C4EC 8008B8EC 00000000 */ nop -/* 08C4F0 8008B8F0 812A0000 */ lb $t2, ($t1) -/* 08C4F4 8008B8F4 24040001 */ li $a0, 1 -/* 08C4F8 8008B8F8 01530019 */ multu $t2, $s3 -/* 08C4FC 8008B8FC 00006012 */ mflo $t4 -/* 08C500 8008B900 00AC7021 */ addu $t6, $a1, $t4 -/* 08C504 8008B904 85CD000C */ lh $t5, 0xc($t6) -/* 08C508 8008B908 A6000002 */ sh $zero, 2($s0) -/* 08C50C 8008B90C A2150001 */ sb $s5, 1($s0) -/* 08C510 8008B910 A20D0000 */ sb $t5, ($s0) -.L8008B914: -/* 08C514 8008B914 24630001 */ addiu $v1, $v1, 1 -/* 08C518 8008B918 28610004 */ slti $at, $v1, 4 -/* 08C51C 8008B91C 10200003 */ beqz $at, .L8008B92C -/* 08C520 8008B920 24420001 */ addiu $v0, $v0, 1 -/* 08C524 8008B924 1080FFEE */ beqz $a0, .L8008B8E0 -/* 08C528 8008B928 00000000 */ nop -.L8008B92C: -/* 08C52C 8008B92C 240BFFFF */ li $t3, -1 -.L8008B930: -/* 08C530 8008B930 1CC00071 */ bgtz $a2, .L8008BAF8 -/* 08C534 8008B934 A24B0000 */ sb $t3, ($s2) -/* 08C538 8008B938 240FFFFF */ li $t7, -1 -/* 08C53C 8008B93C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08C540 8008B940 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 08C544 8008B944 AC2FF47C */ sw $t7, %lo(gMenuDelay)($at) -/* 08C548 8008B948 0C030076 */ jal func_800C01D8 -/* 08C54C 8008B94C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 08C550 8008B950 1000006A */ b .L8008BAFC -/* 08C554 8008B954 8FA2004C */ lw $v0, 0x4c($sp) -.L8008B958: -/* 08C558 8008B958 1300001A */ beqz $t8, .L8008B9C4 -/* 08C55C 8008B95C 24190001 */ li $t9, 1 -/* 08C560 8008B960 3C0A8012 */ lui $t2, %hi(D_80126808) # $t2, 0x8012 -/* 08C564 8008B964 254A6808 */ addiu $t2, %lo(D_80126808) # addiu $t2, $t2, 0x6808 -/* 08C568 8008B968 8EE80000 */ lw $t0, ($s7) -/* 08C56C 8008B96C 00CA8821 */ addu $s1, $a2, $t2 -/* 08C570 8008B970 8E240000 */ lw $a0, ($s1) -/* 08C574 8008B974 25090001 */ addiu $t1, $t0, 1 -/* 08C578 8008B978 A0B90000 */ sb $t9, ($a1) -/* 08C57C 8008B97C 10800003 */ beqz $a0, .L8008B98C -/* 08C580 8008B980 AEE90000 */ sw $t1, ($s7) -/* 08C584 8008B984 0C001223 */ jal func_8000488C -/* 08C588 8008B988 00000000 */ nop -.L8008B98C: -/* 08C58C 8008B98C 824E0000 */ lb $t6, ($s2) -/* 08C590 8008B990 8FCC0000 */ lw $t4, ($fp) -/* 08C594 8008B994 01D30019 */ multu $t6, $s3 -/* 08C598 8008B998 02202825 */ move $a1, $s1 -/* 08C59C 8008B99C 00006812 */ mflo $t5 -/* 08C5A0 8008B9A0 018D5821 */ addu $t3, $t4, $t5 -/* 08C5A4 8008B9A4 8564000C */ lh $a0, 0xc($t3) -/* 08C5A8 8008B9A8 00000000 */ nop -/* 08C5AC 8008B9AC 24840087 */ addiu $a0, $a0, 0x87 -/* 08C5B0 8008B9B0 308FFFFF */ andi $t7, $a0, 0xffff -/* 08C5B4 8008B9B4 0C000741 */ jal play_sound_global -/* 08C5B8 8008B9B8 01E02025 */ move $a0, $t7 -/* 08C5BC 8008B9BC 1000004F */ b .L8008BAFC -/* 08C5C0 8008B9C0 8FA2004C */ lw $v0, 0x4c($sp) -.L8008B9C4: -/* 08C5C4 8008B9C4 82580000 */ lb $t8, ($s2) -/* 08C5C8 8008B9C8 00141840 */ sll $v1, $s4, 1 -/* 08C5CC 8008B9CC 03130019 */ multu $t8, $s3 -/* 08C5D0 8008B9D0 3C048012 */ lui $a0, %hi(D_80126830) # $a0, 0x8012 -/* 08C5D4 8008B9D4 00832021 */ addu $a0, $a0, $v1 -/* 08C5D8 8008B9D8 8FC50000 */ lw $a1, ($fp) -/* 08C5DC 8008B9DC 84846830 */ lh $a0, %lo(D_80126830)($a0) -/* 08C5E0 8008B9E0 24060002 */ li $a2, 2 -/* 08C5E4 8008B9E4 240700EC */ li $a3, 236 -/* 08C5E8 8008B9E8 2419015C */ li $t9, 348 -/* 08C5EC 8008B9EC 00001012 */ mflo $v0 -/* 08C5F0 8008B9F0 00458821 */ addu $s1, $v0, $a1 -/* 08C5F4 8008B9F4 1880000B */ blez $a0, .L8008BA24 -/* 08C5F8 8008B9F8 00000000 */ nop -/* 08C5FC 8008B9FC 02802025 */ move $a0, $s4 -/* 08C600 8008BA00 02202825 */ move $a1, $s1 -/* 08C604 8008BA04 0C022FFA */ jal func_8008BFE8 -/* 08C608 8008BA08 AFB90010 */ sw $t9, 0x10($sp) -/* 08C60C 8008BA0C 82420000 */ lb $v0, ($s2) -/* 08C610 8008BA10 8FC50000 */ lw $a1, ($fp) -/* 08C614 8008BA14 000240C0 */ sll $t0, $v0, 3 -/* 08C618 8008BA18 01024023 */ subu $t0, $t0, $v0 -/* 08C61C 8008BA1C 1000002D */ b .L8008BAD4 -/* 08C620 8008BA20 00081040 */ sll $v0, $t0, 1 -.L8008BA24: -/* 08C624 8008BA24 0481000D */ bgez $a0, .L8008BA5C -/* 08C628 8008BA28 24060002 */ li $a2, 2 -/* 08C62C 8008BA2C 2409015C */ li $t1, 348 -/* 08C630 8008BA30 AFA90010 */ sw $t1, 0x10($sp) -/* 08C634 8008BA34 02802025 */ move $a0, $s4 -/* 08C638 8008BA38 26250002 */ addiu $a1, $s1, 2 -/* 08C63C 8008BA3C 0C022FFA */ jal func_8008BFE8 -/* 08C640 8008BA40 240700EC */ li $a3, 236 -/* 08C644 8008BA44 82420000 */ lb $v0, ($s2) -/* 08C648 8008BA48 8FC50000 */ lw $a1, ($fp) -/* 08C64C 8008BA4C 000250C0 */ sll $t2, $v0, 3 -/* 08C650 8008BA50 01425023 */ subu $t2, $t2, $v0 -/* 08C654 8008BA54 1000001F */ b .L8008BAD4 -/* 08C658 8008BA58 000A1040 */ sll $v0, $t2, 1 -.L8008BA5C: -/* 08C65C 8008BA5C 3C048012 */ lui $a0, %hi(D_80126818) # $a0, 0x8012 -/* 08C660 8008BA60 00832021 */ addu $a0, $a0, $v1 -/* 08C664 8008BA64 84846818 */ lh $a0, %lo(D_80126818)($a0) -/* 08C668 8008BA68 24060004 */ li $a2, 4 -/* 08C66C 8008BA6C 0481000C */ bgez $a0, .L8008BAA0 -/* 08C670 8008BA70 240700EC */ li $a3, 236 -/* 08C674 8008BA74 240E015C */ li $t6, 348 -/* 08C678 8008BA78 AFAE0010 */ sw $t6, 0x10($sp) -/* 08C67C 8008BA7C 02802025 */ move $a0, $s4 -/* 08C680 8008BA80 0C022FFA */ jal func_8008BFE8 -/* 08C684 8008BA84 26250004 */ addiu $a1, $s1, 4 -/* 08C688 8008BA88 82420000 */ lb $v0, ($s2) -/* 08C68C 8008BA8C 8FC50000 */ lw $a1, ($fp) -/* 08C690 8008BA90 000260C0 */ sll $t4, $v0, 3 -/* 08C694 8008BA94 01826023 */ subu $t4, $t4, $v0 -/* 08C698 8008BA98 1000000E */ b .L8008BAD4 -/* 08C69C 8008BA9C 000C1040 */ sll $v0, $t4, 1 -.L8008BAA0: -/* 08C6A0 8008BAA0 1880000C */ blez $a0, .L8008BAD4 -/* 08C6A4 8008BAA4 24060004 */ li $a2, 4 -/* 08C6A8 8008BAA8 240D015C */ li $t5, 348 -/* 08C6AC 8008BAAC AFAD0010 */ sw $t5, 0x10($sp) -/* 08C6B0 8008BAB0 02802025 */ move $a0, $s4 -/* 08C6B4 8008BAB4 26250008 */ addiu $a1, $s1, 8 -/* 08C6B8 8008BAB8 0C022FFA */ jal func_8008BFE8 -/* 08C6BC 8008BABC 240700EC */ li $a3, 236 -/* 08C6C0 8008BAC0 82420000 */ lb $v0, ($s2) -/* 08C6C4 8008BAC4 8FC50000 */ lw $a1, ($fp) -/* 08C6C8 8008BAC8 000258C0 */ sll $t3, $v0, 3 -/* 08C6CC 8008BACC 01625823 */ subu $t3, $t3, $v0 -/* 08C6D0 8008BAD0 000B1040 */ sll $v0, $t3, 1 -.L8008BAD4: -/* 08C6D4 8008BAD4 00A27821 */ addu $t7, $a1, $v0 -/* 08C6D8 8008BAD8 85E3000C */ lh $v1, 0xc($t7) -/* 08C6DC 8008BADC 8638000C */ lh $t8, 0xc($s1) -/* 08C6E0 8008BAE0 00000000 */ nop -/* 08C6E4 8008BAE4 13030005 */ beq $t8, $v1, .L8008BAFC -/* 08C6E8 8008BAE8 8FA2004C */ lw $v0, 0x4c($sp) -/* 08C6EC 8008BAEC A2030000 */ sb $v1, ($s0) -/* 08C6F0 8008BAF0 A6000002 */ sh $zero, 2($s0) -/* 08C6F4 8008BAF4 A2150001 */ sb $s5, 1($s0) -.L8008BAF8: -/* 08C6F8 8008BAF8 8FA2004C */ lw $v0, 0x4c($sp) -.L8008BAFC: -/* 08C6FC 8008BAFC 26940001 */ addiu $s4, $s4, 1 -/* 08C700 8008BB00 24010004 */ li $at, 4 -/* 08C704 8008BB04 1681FF2B */ bne $s4, $at, .L8008B7B4 -/* 08C708 8008BB08 24420001 */ addiu $v0, $v0, 1 -/* 08C70C 8008BB0C 8FBF0044 */ lw $ra, 0x44($sp) -/* 08C710 8008BB10 8FB00020 */ lw $s0, 0x20($sp) -/* 08C714 8008BB14 8FB10024 */ lw $s1, 0x24($sp) -/* 08C718 8008BB18 8FB20028 */ lw $s2, 0x28($sp) -/* 08C71C 8008BB1C 8FB3002C */ lw $s3, 0x2c($sp) -/* 08C720 8008BB20 8FB40030 */ lw $s4, 0x30($sp) -/* 08C724 8008BB24 8FB50034 */ lw $s5, 0x34($sp) -/* 08C728 8008BB28 8FB60038 */ lw $s6, 0x38($sp) -/* 08C72C 8008BB2C 8FB7003C */ lw $s7, 0x3c($sp) -/* 08C730 8008BB30 8FBE0040 */ lw $fp, 0x40($sp) -/* 08C734 8008BB34 03E00008 */ jr $ra -/* 08C738 8008BB38 27BD0060 */ addiu $sp, $sp, 0x60 - +glabel func_8008B758 +/* 08C358 8008B758 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 08C35C 8008B75C AFBE0040 */ sw $fp, 0x40($sp) +/* 08C360 8008B760 AFB7003C */ sw $s7, 0x3c($sp) +/* 08C364 8008B764 AFB60038 */ sw $s6, 0x38($sp) +/* 08C368 8008B768 AFB00020 */ sw $s0, 0x20($sp) +/* 08C36C 8008B76C AFB50034 */ sw $s5, 0x34($sp) +/* 08C370 8008B770 AFB40030 */ sw $s4, 0x30($sp) +/* 08C374 8008B774 AFB3002C */ sw $s3, 0x2c($sp) +/* 08C378 8008B778 3C108012 */ lui $s0, %hi(D_801263C0) # $s0, 0x8012 +/* 08C37C 8008B77C 3C168012 */ lui $s6, %hi(gPlayersCharacterArray) # $s6, 0x8012 +/* 08C380 8008B780 3C17800E */ lui $s7, %hi(gNumberOfReadyPlayers) # $s7, 0x800e +/* 08C384 8008B784 3C1E8012 */ lui $fp, %hi(gCurrCharacterSelectData) # $fp, 0x8012 +/* 08C388 8008B788 AFBF0044 */ sw $ra, 0x44($sp) +/* 08C38C 8008B78C AFB20028 */ sw $s2, 0x28($sp) +/* 08C390 8008B790 AFB10024 */ sw $s1, 0x24($sp) +/* 08C394 8008B794 27DE63CC */ addiu $fp, %lo(gCurrCharacterSelectData) # addiu $fp, $fp, 0x63cc +/* 08C398 8008B798 26F7F480 */ addiu $s7, %lo(gNumberOfReadyPlayers) # addiu $s7, $s7, -0xb80 +/* 08C39C 8008B79C 26D663E8 */ addiu $s6, %lo(gPlayersCharacterArray) # addiu $s6, $s6, 0x63e8 +/* 08C3A0 8008B7A0 261063C0 */ addiu $s0, %lo(D_801263C0) # addiu $s0, $s0, 0x63c0 +/* 08C3A4 8008B7A4 2413000E */ li $s3, 14 +/* 08C3A8 8008B7A8 0000A025 */ move $s4, $zero +/* 08C3AC 8008B7AC 24150014 */ li $s5, 20 +/* 08C3B0 8008B7B0 00801025 */ move $v0, $a0 +.L8008B7B4: +/* 08C3B4 8008B7B4 AFA2004C */ sw $v0, 0x4c($sp) +/* 08C3B8 8008B7B8 804E0000 */ lb $t6, ($v0) +/* 08C3BC 8008B7BC 3C0F8012 */ lui $t7, %hi(D_801263DC) # $t7, 0x8012 +/* 08C3C0 8008B7C0 11C000CD */ beqz $t6, .L8008BAF8 +/* 08C3C4 8008B7C4 25EF63DC */ addiu $t7, %lo(D_801263DC) # addiu $t7, $t7, 0x63dc +/* 08C3C8 8008B7C8 028F2821 */ addu $a1, $s4, $t7 +/* 08C3CC 8008B7CC 80B90000 */ lb $t9, ($a1) +/* 08C3D0 8008B7D0 3C188012 */ lui $t8, %hi(D_801267D8) # $t8, 0x8012 +/* 08C3D4 8008B7D4 271867D8 */ addiu $t8, %lo(D_801267D8) # addiu $t8, $t8, 0x67d8 +/* 08C3D8 8008B7D8 00143080 */ sll $a2, $s4, 2 +/* 08C3DC 8008B7DC 1320001E */ beqz $t9, .L8008B858 +/* 08C3E0 8008B7E0 00D81021 */ addu $v0, $a2, $t8 +/* 08C3E4 8008B7E4 8C480000 */ lw $t0, ($v0) +/* 08C3E8 8008B7E8 3C0C8012 */ lui $t4, %hi(D_80126808) # $t4, 0x8012 +/* 08C3EC 8008B7EC 31094000 */ andi $t1, $t0, 0x4000 +/* 08C3F0 8008B7F0 112000C1 */ beqz $t1, .L8008BAF8 +/* 08C3F4 8008B7F4 258C6808 */ addiu $t4, %lo(D_80126808) # addiu $t4, $t4, 0x6808 +/* 08C3F8 8008B7F8 8EEA0000 */ lw $t2, ($s7) +/* 08C3FC 8008B7FC 00CC8821 */ addu $s1, $a2, $t4 +/* 08C400 8008B800 8E240000 */ lw $a0, ($s1) +/* 08C404 8008B804 254BFFFF */ addiu $t3, $t2, -1 +/* 08C408 8008B808 A0A00000 */ sb $zero, ($a1) +/* 08C40C 8008B80C AEEB0000 */ sw $t3, ($s7) +/* 08C410 8008B810 10800003 */ beqz $a0, .L8008B820 +/* 08C414 8008B814 02D49021 */ addu $s2, $s6, $s4 +/* 08C418 8008B818 0C001223 */ jal func_8000488C +/* 08C41C 8008B81C 00000000 */ nop +.L8008B820: +/* 08C420 8008B820 824E0000 */ lb $t6, ($s2) +/* 08C424 8008B824 8FCD0000 */ lw $t5, ($fp) +/* 08C428 8008B828 01D30019 */ multu $t6, $s3 +/* 08C42C 8008B82C 02202825 */ move $a1, $s1 +/* 08C430 8008B830 00007812 */ mflo $t7 +/* 08C434 8008B834 01AFC021 */ addu $t8, $t5, $t7 +/* 08C438 8008B838 8704000C */ lh $a0, 0xc($t8) +/* 08C43C 8008B83C 00000000 */ nop +/* 08C440 8008B840 24840093 */ addiu $a0, $a0, 0x93 +/* 08C444 8008B844 3099FFFF */ andi $t9, $a0, 0xffff +/* 08C448 8008B848 0C000741 */ jal play_sound_global +/* 08C44C 8008B84C 03202025 */ move $a0, $t9 +/* 08C450 8008B850 100000AA */ b .L8008BAFC +/* 08C454 8008B854 8FA2004C */ lw $v0, 0x4c($sp) +.L8008B858: +/* 08C458 8008B858 8C430000 */ lw $v1, ($v0) +/* 08C45C 8008B85C 02D49021 */ addu $s2, $s6, $s4 +/* 08C460 8008B860 30684000 */ andi $t0, $v1, 0x4000 +/* 08C464 8008B864 1100003C */ beqz $t0, .L8008B958 +/* 08C468 8008B868 30789000 */ andi $t8, $v1, 0x9000 +/* 08C46C 8008B86C 3C09800E */ lui $t1, %hi(gNumberOfActivePlayers) # $t1, 0x800e +/* 08C470 8008B870 8D29F4BC */ lw $t1, %lo(gNumberOfActivePlayers)($t1) +/* 08C474 8008B874 3C01800E */ lui $at, %hi(gNumberOfActivePlayers) # $at, 0x800e +/* 08C478 8008B878 252AFFFF */ addiu $t2, $t1, -1 +/* 08C47C 8008B87C AC2AF4BC */ sw $t2, %lo(gNumberOfActivePlayers)($at) +/* 08C480 8008B880 3C06800E */ lui $a2, %hi(gNumberOfActivePlayers) # $a2, 0x800e +/* 08C484 8008B884 8CC6F4BC */ lw $a2, %lo(gNumberOfActivePlayers)($a2) +/* 08C488 8008B888 3C018012 */ lui $at, %hi(gActivePlayersArray) # $at, 0x8012 +/* 08C48C 8008B88C 00340821 */ addu $at, $at, $s4 +/* 08C490 8008B890 18C00026 */ blez $a2, .L8008B92C +/* 08C494 8008B894 A02063D4 */ sb $zero, %lo(gActivePlayersArray)($at) +/* 08C498 8008B898 824C0000 */ lb $t4, ($s2) +/* 08C49C 8008B89C 8FC50000 */ lw $a1, ($fp) +/* 08C4A0 8008B8A0 01930019 */ multu $t4, $s3 +/* 08C4A4 8008B8A4 3C0B8012 */ lui $t3, %hi(D_801263B4) # $t3, 0x8012 +/* 08C4A8 8008B8A8 816B63B4 */ lb $t3, %lo(D_801263B4)($t3) +/* 08C4AC 8008B8AC 00007012 */ mflo $t6 +/* 08C4B0 8008B8B0 00AE6821 */ addu $t5, $a1, $t6 +/* 08C4B4 8008B8B4 85AF000C */ lh $t7, 0xc($t5) +/* 08C4B8 8008B8B8 00000000 */ nop +/* 08C4BC 8008B8BC 156F001C */ bne $t3, $t7, .L8008B930 +/* 08C4C0 8008B8C0 240BFFFF */ li $t3, -1 +/* 08C4C4 8008B8C4 82180001 */ lb $t8, 1($s0) +/* 08C4C8 8008B8C8 00002025 */ move $a0, $zero +/* 08C4CC 8008B8CC 1F000017 */ bgtz $t8, .L8008B92C +/* 08C4D0 8008B8D0 00001825 */ move $v1, $zero +/* 08C4D4 8008B8D4 3C198012 */ lui $t9, %hi(gActivePlayersArray) # $t9, 0x8012 +/* 08C4D8 8008B8D8 273963D4 */ addiu $t9, %lo(gActivePlayersArray) # addiu $t9, $t9, 0x63d4 +/* 08C4DC 8008B8DC 00191021 */ addu $v0, $zero, $t9 +.L8008B8E0: +/* 08C4E0 8008B8E0 80480000 */ lb $t0, ($v0) +/* 08C4E4 8008B8E4 02C34821 */ addu $t1, $s6, $v1 +/* 08C4E8 8008B8E8 1100000A */ beqz $t0, .L8008B914 +/* 08C4EC 8008B8EC 00000000 */ nop +/* 08C4F0 8008B8F0 812A0000 */ lb $t2, ($t1) +/* 08C4F4 8008B8F4 24040001 */ li $a0, 1 +/* 08C4F8 8008B8F8 01530019 */ multu $t2, $s3 +/* 08C4FC 8008B8FC 00006012 */ mflo $t4 +/* 08C500 8008B900 00AC7021 */ addu $t6, $a1, $t4 +/* 08C504 8008B904 85CD000C */ lh $t5, 0xc($t6) +/* 08C508 8008B908 A6000002 */ sh $zero, 2($s0) +/* 08C50C 8008B90C A2150001 */ sb $s5, 1($s0) +/* 08C510 8008B910 A20D0000 */ sb $t5, ($s0) +.L8008B914: +/* 08C514 8008B914 24630001 */ addiu $v1, $v1, 1 +/* 08C518 8008B918 28610004 */ slti $at, $v1, 4 +/* 08C51C 8008B91C 10200003 */ beqz $at, .L8008B92C +/* 08C520 8008B920 24420001 */ addiu $v0, $v0, 1 +/* 08C524 8008B924 1080FFEE */ beqz $a0, .L8008B8E0 +/* 08C528 8008B928 00000000 */ nop +.L8008B92C: +/* 08C52C 8008B92C 240BFFFF */ li $t3, -1 +.L8008B930: +/* 08C530 8008B930 1CC00071 */ bgtz $a2, .L8008BAF8 +/* 08C534 8008B934 A24B0000 */ sb $t3, ($s2) +/* 08C538 8008B938 240FFFFF */ li $t7, -1 +/* 08C53C 8008B93C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08C540 8008B940 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 08C544 8008B944 AC2FF47C */ sw $t7, %lo(gMenuDelay)($at) +/* 08C548 8008B948 0C030076 */ jal transition_begin +/* 08C54C 8008B94C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 08C550 8008B950 1000006A */ b .L8008BAFC +/* 08C554 8008B954 8FA2004C */ lw $v0, 0x4c($sp) +.L8008B958: +/* 08C558 8008B958 1300001A */ beqz $t8, .L8008B9C4 +/* 08C55C 8008B95C 24190001 */ li $t9, 1 +/* 08C560 8008B960 3C0A8012 */ lui $t2, %hi(D_80126808) # $t2, 0x8012 +/* 08C564 8008B964 254A6808 */ addiu $t2, %lo(D_80126808) # addiu $t2, $t2, 0x6808 +/* 08C568 8008B968 8EE80000 */ lw $t0, ($s7) +/* 08C56C 8008B96C 00CA8821 */ addu $s1, $a2, $t2 +/* 08C570 8008B970 8E240000 */ lw $a0, ($s1) +/* 08C574 8008B974 25090001 */ addiu $t1, $t0, 1 +/* 08C578 8008B978 A0B90000 */ sb $t9, ($a1) +/* 08C57C 8008B97C 10800003 */ beqz $a0, .L8008B98C +/* 08C580 8008B980 AEE90000 */ sw $t1, ($s7) +/* 08C584 8008B984 0C001223 */ jal func_8000488C +/* 08C588 8008B988 00000000 */ nop +.L8008B98C: +/* 08C58C 8008B98C 824E0000 */ lb $t6, ($s2) +/* 08C590 8008B990 8FCC0000 */ lw $t4, ($fp) +/* 08C594 8008B994 01D30019 */ multu $t6, $s3 +/* 08C598 8008B998 02202825 */ move $a1, $s1 +/* 08C59C 8008B99C 00006812 */ mflo $t5 +/* 08C5A0 8008B9A0 018D5821 */ addu $t3, $t4, $t5 +/* 08C5A4 8008B9A4 8564000C */ lh $a0, 0xc($t3) +/* 08C5A8 8008B9A8 00000000 */ nop +/* 08C5AC 8008B9AC 24840087 */ addiu $a0, $a0, 0x87 +/* 08C5B0 8008B9B0 308FFFFF */ andi $t7, $a0, 0xffff +/* 08C5B4 8008B9B4 0C000741 */ jal play_sound_global +/* 08C5B8 8008B9B8 01E02025 */ move $a0, $t7 +/* 08C5BC 8008B9BC 1000004F */ b .L8008BAFC +/* 08C5C0 8008B9C0 8FA2004C */ lw $v0, 0x4c($sp) +.L8008B9C4: +/* 08C5C4 8008B9C4 82580000 */ lb $t8, ($s2) +/* 08C5C8 8008B9C8 00141840 */ sll $v1, $s4, 1 +/* 08C5CC 8008B9CC 03130019 */ multu $t8, $s3 +/* 08C5D0 8008B9D0 3C048012 */ lui $a0, %hi(D_80126830) # $a0, 0x8012 +/* 08C5D4 8008B9D4 00832021 */ addu $a0, $a0, $v1 +/* 08C5D8 8008B9D8 8FC50000 */ lw $a1, ($fp) +/* 08C5DC 8008B9DC 84846830 */ lh $a0, %lo(D_80126830)($a0) +/* 08C5E0 8008B9E0 24060002 */ li $a2, 2 +/* 08C5E4 8008B9E4 240700EC */ li $a3, 236 +/* 08C5E8 8008B9E8 2419015C */ li $t9, 348 +/* 08C5EC 8008B9EC 00001012 */ mflo $v0 +/* 08C5F0 8008B9F0 00458821 */ addu $s1, $v0, $a1 +/* 08C5F4 8008B9F4 1880000B */ blez $a0, .L8008BA24 +/* 08C5F8 8008B9F8 00000000 */ nop +/* 08C5FC 8008B9FC 02802025 */ move $a0, $s4 +/* 08C600 8008BA00 02202825 */ move $a1, $s1 +/* 08C604 8008BA04 0C022FFA */ jal func_8008BFE8 +/* 08C608 8008BA08 AFB90010 */ sw $t9, 0x10($sp) +/* 08C60C 8008BA0C 82420000 */ lb $v0, ($s2) +/* 08C610 8008BA10 8FC50000 */ lw $a1, ($fp) +/* 08C614 8008BA14 000240C0 */ sll $t0, $v0, 3 +/* 08C618 8008BA18 01024023 */ subu $t0, $t0, $v0 +/* 08C61C 8008BA1C 1000002D */ b .L8008BAD4 +/* 08C620 8008BA20 00081040 */ sll $v0, $t0, 1 +.L8008BA24: +/* 08C624 8008BA24 0481000D */ bgez $a0, .L8008BA5C +/* 08C628 8008BA28 24060002 */ li $a2, 2 +/* 08C62C 8008BA2C 2409015C */ li $t1, 348 +/* 08C630 8008BA30 AFA90010 */ sw $t1, 0x10($sp) +/* 08C634 8008BA34 02802025 */ move $a0, $s4 +/* 08C638 8008BA38 26250002 */ addiu $a1, $s1, 2 +/* 08C63C 8008BA3C 0C022FFA */ jal func_8008BFE8 +/* 08C640 8008BA40 240700EC */ li $a3, 236 +/* 08C644 8008BA44 82420000 */ lb $v0, ($s2) +/* 08C648 8008BA48 8FC50000 */ lw $a1, ($fp) +/* 08C64C 8008BA4C 000250C0 */ sll $t2, $v0, 3 +/* 08C650 8008BA50 01425023 */ subu $t2, $t2, $v0 +/* 08C654 8008BA54 1000001F */ b .L8008BAD4 +/* 08C658 8008BA58 000A1040 */ sll $v0, $t2, 1 +.L8008BA5C: +/* 08C65C 8008BA5C 3C048012 */ lui $a0, %hi(D_80126818) # $a0, 0x8012 +/* 08C660 8008BA60 00832021 */ addu $a0, $a0, $v1 +/* 08C664 8008BA64 84846818 */ lh $a0, %lo(D_80126818)($a0) +/* 08C668 8008BA68 24060004 */ li $a2, 4 +/* 08C66C 8008BA6C 0481000C */ bgez $a0, .L8008BAA0 +/* 08C670 8008BA70 240700EC */ li $a3, 236 +/* 08C674 8008BA74 240E015C */ li $t6, 348 +/* 08C678 8008BA78 AFAE0010 */ sw $t6, 0x10($sp) +/* 08C67C 8008BA7C 02802025 */ move $a0, $s4 +/* 08C680 8008BA80 0C022FFA */ jal func_8008BFE8 +/* 08C684 8008BA84 26250004 */ addiu $a1, $s1, 4 +/* 08C688 8008BA88 82420000 */ lb $v0, ($s2) +/* 08C68C 8008BA8C 8FC50000 */ lw $a1, ($fp) +/* 08C690 8008BA90 000260C0 */ sll $t4, $v0, 3 +/* 08C694 8008BA94 01826023 */ subu $t4, $t4, $v0 +/* 08C698 8008BA98 1000000E */ b .L8008BAD4 +/* 08C69C 8008BA9C 000C1040 */ sll $v0, $t4, 1 +.L8008BAA0: +/* 08C6A0 8008BAA0 1880000C */ blez $a0, .L8008BAD4 +/* 08C6A4 8008BAA4 24060004 */ li $a2, 4 +/* 08C6A8 8008BAA8 240D015C */ li $t5, 348 +/* 08C6AC 8008BAAC AFAD0010 */ sw $t5, 0x10($sp) +/* 08C6B0 8008BAB0 02802025 */ move $a0, $s4 +/* 08C6B4 8008BAB4 26250008 */ addiu $a1, $s1, 8 +/* 08C6B8 8008BAB8 0C022FFA */ jal func_8008BFE8 +/* 08C6BC 8008BABC 240700EC */ li $a3, 236 +/* 08C6C0 8008BAC0 82420000 */ lb $v0, ($s2) +/* 08C6C4 8008BAC4 8FC50000 */ lw $a1, ($fp) +/* 08C6C8 8008BAC8 000258C0 */ sll $t3, $v0, 3 +/* 08C6CC 8008BACC 01625823 */ subu $t3, $t3, $v0 +/* 08C6D0 8008BAD0 000B1040 */ sll $v0, $t3, 1 +.L8008BAD4: +/* 08C6D4 8008BAD4 00A27821 */ addu $t7, $a1, $v0 +/* 08C6D8 8008BAD8 85E3000C */ lh $v1, 0xc($t7) +/* 08C6DC 8008BADC 8638000C */ lh $t8, 0xc($s1) +/* 08C6E0 8008BAE0 00000000 */ nop +/* 08C6E4 8008BAE4 13030005 */ beq $t8, $v1, .L8008BAFC +/* 08C6E8 8008BAE8 8FA2004C */ lw $v0, 0x4c($sp) +/* 08C6EC 8008BAEC A2030000 */ sb $v1, ($s0) +/* 08C6F0 8008BAF0 A6000002 */ sh $zero, 2($s0) +/* 08C6F4 8008BAF4 A2150001 */ sb $s5, 1($s0) +.L8008BAF8: +/* 08C6F8 8008BAF8 8FA2004C */ lw $v0, 0x4c($sp) +.L8008BAFC: +/* 08C6FC 8008BAFC 26940001 */ addiu $s4, $s4, 1 +/* 08C700 8008BB00 24010004 */ li $at, 4 +/* 08C704 8008BB04 1681FF2B */ bne $s4, $at, .L8008B7B4 +/* 08C708 8008BB08 24420001 */ addiu $v0, $v0, 1 +/* 08C70C 8008BB0C 8FBF0044 */ lw $ra, 0x44($sp) +/* 08C710 8008BB10 8FB00020 */ lw $s0, 0x20($sp) +/* 08C714 8008BB14 8FB10024 */ lw $s1, 0x24($sp) +/* 08C718 8008BB18 8FB20028 */ lw $s2, 0x28($sp) +/* 08C71C 8008BB1C 8FB3002C */ lw $s3, 0x2c($sp) +/* 08C720 8008BB20 8FB40030 */ lw $s4, 0x30($sp) +/* 08C724 8008BB24 8FB50034 */ lw $s5, 0x34($sp) +/* 08C728 8008BB28 8FB60038 */ lw $s6, 0x38($sp) +/* 08C72C 8008BB2C 8FB7003C */ lw $s7, 0x3c($sp) +/* 08C730 8008BB30 8FBE0040 */ lw $fp, 0x40($sp) +/* 08C734 8008BB34 03E00008 */ jr $ra +/* 08C738 8008BB38 27BD0060 */ addiu $sp, $sp, 0x60 + diff --git a/asm/non_matchings/menu/func_80092188.s b/asm/non_matchings/menu/func_80092188.s index b5374ea8..b2da6067 100644 --- a/asm/non_matchings/menu/func_80092188.s +++ b/asm/non_matchings/menu/func_80092188.s @@ -575,10 +575,10 @@ glabel L8009287C /* 0935A0 800929A0 0C01E2AB */ jal set_background_draw_function /* 0935A4 800929A4 00002025 */ move $a0, $zero /* 0935A8 800929A8 3C01800E */ lui $at, %hi(D_800E097C) # $at, 0x800e -/* 0935AC 800929AC 0C030060 */ jal func_800C0180 +/* 0935AC 800929AC 0C030060 */ jal disable_new_screen_transitions /* 0935B0 800929B0 AC20097C */ sw $zero, %lo(D_800E097C)($at) /* 0935B4 800929B4 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 0935B8 800929B8 0C030076 */ jal func_800C01D8 +/* 0935B8 800929B8 0C030076 */ jal transition_begin /* 0935BC 800929BC 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c /* 0935C0 800929C0 3C198012 */ lui $t9, %hi(D_801269C8) # $t9, 0x8012 /* 0935C4 800929C4 8F3969C8 */ lw $t9, %lo(D_801269C8)($t9) diff --git a/asm/non_matchings/menu/func_80095728.s b/asm/non_matchings/menu/func_80095728.s index 43c7aec2..86566a76 100644 --- a/asm/non_matchings/menu/func_80095728.s +++ b/asm/non_matchings/menu/func_80095728.s @@ -295,7 +295,7 @@ glabel L80095B34 /* 096758 80095B58 0C000326 */ jal set_music_fade_timer /* 09675C 80095B5C 2404FF80 */ li $a0, -128 /* 096760 80095B60 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 096764 80095B64 0C030076 */ jal func_800C01D8 +/* 096764 80095B64 0C030076 */ jal transition_begin /* 096768 80095B68 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c /* 09676C 80095B6C 240D0008 */ li $t5, 8 /* 096770 80095B70 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 @@ -532,7 +532,7 @@ glabel L80095EC8 /* 096AE4 80095EE4 29E10005 */ slti $at, $t7, 5 /* 096AE8 80095EE8 1420015A */ bnez $at, .L80096454 /* 096AEC 80095EEC ACAF0000 */ sw $t7, ($a1) -/* 096AF0 80095EF0 0C00025A */ jal func_80000968 +/* 096AF0 80095EF0 0C00025A */ jal adjust_audio_volume /* 096AF4 80095EF4 24040003 */ li $a0, 3 /* 096AF8 80095EF8 0C006DCE */ jal func_8001B738 /* 096AFC 80095EFC 00002025 */ move $a0, $zero @@ -544,7 +544,7 @@ glabel L80095EC8 /* 096B14 80095F14 00002025 */ move $a0, $zero /* 096B18 80095F18 AFA20054 */ sw $v0, 0x54($sp) .L80095F1C: -/* 096B1C 80095F1C 0C00025A */ jal func_80000968 +/* 096B1C 80095F1C 0C00025A */ jal adjust_audio_volume /* 096B20 80095F20 24040002 */ li $a0, 2 /* 096B24 80095F24 8FAD0054 */ lw $t5, 0x54($sp) /* 096B28 80095F28 3C098012 */ lui $t1, %hi(D_80126C14) # $t1, 0x8012 @@ -629,7 +629,7 @@ glabel L80095EC8 /* 096C44 80096044 0C000326 */ jal set_music_fade_timer /* 096C48 80096048 2404FF80 */ li $a0, -128 /* 096C4C 8009604C 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 096C50 80096050 0C030076 */ jal func_800C01D8 +/* 096C50 80096050 0C030076 */ jal transition_begin /* 096C54 80096054 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c /* 096C58 80096058 240D0008 */ li $t5, 8 /* 096C5C 8009605C 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 @@ -787,7 +787,7 @@ glabel L80095EC8 /* 096E6C 8009626C 0C000326 */ jal set_music_fade_timer /* 096E70 80096270 2404FF80 */ li $a0, -128 /* 096E74 80096274 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 096E78 80096278 0C030076 */ jal func_800C01D8 +/* 096E78 80096278 0C030076 */ jal transition_begin /* 096E7C 8009627C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c /* 096E80 80096280 24190008 */ li $t9, 8 /* 096E84 80096284 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 @@ -953,7 +953,7 @@ glabel L800964AC /* 0970B8 800964B8 0C000326 */ jal set_music_fade_timer /* 0970BC 800964BC 2404FF80 */ li $a0, -128 /* 0970C0 800964C0 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 0970C4 800964C4 0C030076 */ jal func_800C01D8 +/* 0970C4 800964C4 0C030076 */ jal transition_begin /* 0970C8 800964C8 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c /* 0970CC 800964CC 24180008 */ li $t8, 8 /* 0970D0 800964D0 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 diff --git a/asm/non_matchings/menu/func_8009CA60.s b/asm/non_matchings/menu/func_8009CA60.s index c20ddb75..978e0998 100644 --- a/asm/non_matchings/menu/func_8009CA60.s +++ b/asm/non_matchings/menu/func_8009CA60.s @@ -1,208 +1,208 @@ -glabel func_8009CA60 -/* 09D660 8009CA60 3C0B800E */ lui $t3, %hi(gMenuImageStack) # $t3, 0x800e -/* 09D664 8009CA64 256BF75C */ addiu $t3, %lo(gMenuImageStack) # addiu $t3, $t3, -0x8a4 -/* 09D668 8009CA68 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 09D66C 8009CA6C 8D630000 */ lw $v1, ($t3) -/* 09D670 8009CA70 00044140 */ sll $t0, $a0, 5 -/* 09D674 8009CA74 AFBF0024 */ sw $ra, 0x24($sp) -/* 09D678 8009CA78 AFB00020 */ sw $s0, 0x20($sp) -/* 09D67C 8009CA7C AFA40060 */ sw $a0, 0x60($sp) -/* 09D680 8009CA80 00687821 */ addu $t7, $v1, $t0 -/* 09D684 8009CA84 85E50006 */ lh $a1, 6($t7) -/* 09D688 8009CA88 3C0A8012 */ lui $t2, %hi(D_80126550) # $t2, 0x8012 -/* 09D68C 8009CA8C 0005C080 */ sll $t8, $a1, 2 -/* 09D690 8009CA90 01585021 */ addu $t2, $t2, $t8 -/* 09D694 8009CA94 8D4A6550 */ lw $t2, %lo(D_80126550)($t2) -/* 09D698 8009CA98 3C19800E */ lui $t9, %hi(gAssetsMenuElementIds) # $t9, 0x800e -/* 09D69C 8009CA9C 114000B4 */ beqz $t2, .L8009CD70 -/* 09D6A0 8009CAA0 8FBF0024 */ lw $ra, 0x24($sp) -/* 09D6A4 8009CAA4 8F39F750 */ lw $t9, %lo(gAssetsMenuElementIds)($t9) -/* 09D6A8 8009CAA8 00056040 */ sll $t4, $a1, 1 -/* 09D6AC 8009CAAC 032C6821 */ addu $t5, $t9, $t4 -/* 09D6B0 8009CAB0 85A20000 */ lh $v0, ($t5) -/* 09D6B4 8009CAB4 3401C000 */ li $at, 49152 -/* 09D6B8 8009CAB8 304EC000 */ andi $t6, $v0, 0xc000 -/* 09D6BC 8009CABC 11C100AB */ beq $t6, $at, .L8009CD6C -/* 09D6C0 8009CAC0 304F4000 */ andi $t7, $v0, 0x4000 -/* 09D6C4 8009CAC4 11E00027 */ beqz $t7, .L8009CB64 -/* 09D6C8 8009CAC8 304D8000 */ andi $t5, $v0, 0x8000 -/* 09D6CC 8009CACC 0004C940 */ sll $t9, $a0, 5 -/* 09D6D0 8009CAD0 03231021 */ addu $v0, $t9, $v1 -/* 09D6D4 8009CAD4 844C0000 */ lh $t4, ($v0) -/* 09D6D8 8009CAD8 3C0F800E */ lui $t7, %hi(D_800DF468) # $t7, 0x800e -/* 09D6DC 8009CADC A54C0000 */ sh $t4, ($t2) -/* 09D6E0 8009CAE0 844D0002 */ lh $t5, 2($v0) -/* 09D6E4 8009CAE4 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 -/* 09D6E8 8009CAE8 A54D0002 */ sh $t5, 2($t2) -/* 09D6EC 8009CAEC 844E0004 */ lh $t6, 4($v0) -/* 09D6F0 8009CAF0 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 09D6F4 8009CAF4 A54E0004 */ sh $t6, 4($t2) -/* 09D6F8 8009CAF8 C444000C */ lwc1 $f4, 0xc($v0) -/* 09D6FC 8009CAFC 3C068012 */ lui $a2, %hi(sMenuCurrHudVerts) # $a2, 0x8012 -/* 09D700 8009CB00 E544000C */ swc1 $f4, 0xc($t2) -/* 09D704 8009CB04 C4460010 */ lwc1 $f6, 0x10($v0) -/* 09D708 8009CB08 01403825 */ move $a3, $t2 -/* 09D70C 8009CB0C E5460010 */ swc1 $f6, 0x10($t2) -/* 09D710 8009CB10 C4480014 */ lwc1 $f8, 0x14($v0) -/* 09D714 8009CB14 260463A0 */ addiu $a0, $s0, %lo(sMenuCurrDisplayList) -/* 09D718 8009CB18 E5480014 */ swc1 $f8, 0x14($t2) -/* 09D71C 8009CB1C C44A0008 */ lwc1 $f10, 8($v0) -/* 09D720 8009CB20 3C0C800E */ lui $t4, %hi(sMenuGuiOpacity) # $t4, 0x800e -/* 09D724 8009CB24 E54A0008 */ swc1 $f10, 8($t2) -/* 09D728 8009CB28 8DEFF468 */ lw $t7, %lo(D_800DF468)($t7) -/* 09D72C 8009CB2C 24C663AC */ addiu $a2, %lo(sMenuCurrHudVerts) # addiu $a2, $a2, 0x63ac -/* 09D730 8009CB30 15E00007 */ bnez $t7, .L8009CB50 -/* 09D734 8009CB34 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 09D738 8009CB38 8058001D */ lb $t8, 0x1d($v0) -/* 09D73C 8009CB3C 00000000 */ nop -/* 09D740 8009CB40 A5580018 */ sh $t8, 0x18($t2) -/* 09D744 8009CB44 84590018 */ lh $t9, 0x18($v0) -/* 09D748 8009CB48 00000000 */ nop -/* 09D74C 8009CB4C A159003A */ sb $t9, 0x3a($t2) -.L8009CB50: -/* 09D750 8009CB50 8D8CF764 */ lw $t4, %lo(sMenuGuiOpacity)($t4) -/* 09D754 8009CB54 0C004B57 */ jal func_80012D5C -/* 09D758 8009CB58 A0EC0039 */ sb $t4, 0x39($a3) -/* 09D75C 8009CB5C 10000084 */ b .L8009CD70 -/* 09D760 8009CB60 8FBF0024 */ lw $ra, 0x24($sp) -.L8009CB64: -/* 09D764 8009CB64 11A00034 */ beqz $t5, .L8009CC38 -/* 09D768 8009CB68 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 -/* 09D76C 8009CB6C 261063A0 */ addiu $s0, %lo(sMenuCurrDisplayList) # addiu $s0, $s0, 0x63a0 -/* 09D770 8009CB70 8E020000 */ lw $v0, ($s0) -/* 09D774 8009CB74 3C0FFA00 */ lui $t7, 0xfa00 -/* 09D778 8009CB78 244E0008 */ addiu $t6, $v0, 8 -/* 09D77C 8009CB7C AE0E0000 */ sw $t6, ($s0) -/* 09D780 8009CB80 3C18800E */ lui $t8, %hi(sMenuGuiColourR) # $t8, 0x800e -/* 09D784 8009CB84 AC4F0000 */ sw $t7, ($v0) -/* 09D788 8009CB88 9319F4A4 */ lbu $t9, %lo(sMenuGuiColourR)($t8) -/* 09D78C 8009CB8C 3C0D800E */ lui $t5, %hi(sMenuGuiColourG) # $t5, 0x800e -/* 09D790 8009CB90 91AEF4A8 */ lbu $t6, %lo(sMenuGuiColourG)($t5) -/* 09D794 8009CB94 00196600 */ sll $t4, $t9, 0x18 -/* 09D798 8009CB98 000E7C00 */ sll $t7, $t6, 0x10 -/* 09D79C 8009CB9C 018FC025 */ or $t8, $t4, $t7 -/* 09D7A0 8009CBA0 3C19800E */ lui $t9, %hi(sMenuGuiColourB) # $t9, 0x800e -/* 09D7A4 8009CBA4 932DF4AC */ lbu $t5, %lo(sMenuGuiColourB)($t9) -/* 09D7A8 8009CBA8 3C0F800E */ lui $t7, %hi(sMenuGuiOpacity) # $t7, 0x800e -/* 09D7AC 8009CBAC 8DEFF764 */ lw $t7, %lo(sMenuGuiOpacity)($t7) -/* 09D7B0 8009CBB0 000D7200 */ sll $t6, $t5, 8 -/* 09D7B4 8009CBB4 030E6025 */ or $t4, $t8, $t6 -/* 09D7B8 8009CBB8 31F900FF */ andi $t9, $t7, 0xff -/* 09D7BC 8009CBBC 01996825 */ or $t5, $t4, $t9 -/* 09D7C0 8009CBC0 AC4D0004 */ sw $t5, 4($v0) -/* 09D7C4 8009CBC4 8E020000 */ lw $v0, ($s0) -/* 09D7C8 8009CBC8 240FFF00 */ li $t7, -256 -/* 09D7CC 8009CBCC 24580008 */ addiu $t8, $v0, 8 -/* 09D7D0 8009CBD0 AE180000 */ sw $t8, ($s0) -/* 09D7D4 8009CBD4 3C0EFB00 */ lui $t6, 0xfb00 -/* 09D7D8 8009CBD8 AC4E0000 */ sw $t6, ($v0) -/* 09D7DC 8009CBDC AC4F0004 */ sw $t7, 4($v0) -/* 09D7E0 8009CBE0 8FAC0060 */ lw $t4, 0x60($sp) -/* 09D7E4 8009CBE4 3C18800E */ lui $t8, %hi(D_800DF4B4) # $t8, 0x800e -/* 09D7E8 8009CBE8 8F18F4B4 */ lw $t8, %lo(D_800DF4B4)($t8) -/* 09D7EC 8009CBEC 8D6D0000 */ lw $t5, ($t3) -/* 09D7F0 8009CBF0 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 09D7F4 8009CBF4 3C068012 */ lui $a2, %hi(sMenuCurrHudVerts) # $a2, 0x8012 -/* 09D7F8 8009CBF8 000CC940 */ sll $t9, $t4, 5 -/* 09D7FC 8009CBFC 24C663AC */ addiu $a2, %lo(sMenuCurrHudVerts) # addiu $a2, $a2, 0x63ac -/* 09D800 8009CC00 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 09D804 8009CC04 AFAA0010 */ sw $t2, 0x10($sp) -/* 09D808 8009CC08 02002025 */ move $a0, $s0 -/* 09D80C 8009CC0C AFB80014 */ sw $t8, 0x14($sp) -/* 09D810 8009CC10 0C01A2FD */ jal render_orthi_triangle_image -/* 09D814 8009CC14 032D3821 */ addu $a3, $t9, $t5 -/* 09D818 8009CC18 8E020000 */ lw $v0, ($s0) -/* 09D81C 8009CC1C 3C0FFA00 */ lui $t7, 0xfa00 -/* 09D820 8009CC20 244E0008 */ addiu $t6, $v0, 8 -/* 09D824 8009CC24 AE0E0000 */ sw $t6, ($s0) -/* 09D828 8009CC28 240CFFFF */ li $t4, -1 -/* 09D82C 8009CC2C AC4C0004 */ sw $t4, 4($v0) -/* 09D830 8009CC30 1000004E */ b .L8009CD6C -/* 09D834 8009CC34 AC4F0000 */ sw $t7, ($v0) -.L8009CC38: -/* 09D838 8009CC38 3C09800E */ lui $t1, %hi(sMenuGuiOpacity) # $t1, 0x800e -/* 09D83C 8009CC3C 2529F764 */ addiu $t1, %lo(sMenuGuiOpacity) # addiu $t1, $t1, -0x89c -/* 09D840 8009CC40 8D390000 */ lw $t9, ($t1) -/* 09D844 8009CC44 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 09D848 8009CC48 2B2100FF */ slti $at, $t9, 0xff -/* 09D84C 8009CC4C 1020000E */ beqz $at, .L8009CC88 -/* 09D850 8009CC50 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 09D854 8009CC54 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 -/* 09D858 8009CC58 261063A0 */ addiu $s0, %lo(sMenuCurrDisplayList) # addiu $s0, $s0, 0x63a0 -/* 09D85C 8009CC5C 8E020000 */ lw $v0, ($s0) -/* 09D860 8009CC60 3C18FA00 */ lui $t8, 0xfa00 -/* 09D864 8009CC64 244D0008 */ addiu $t5, $v0, 8 -/* 09D868 8009CC68 AE0D0000 */ sw $t5, ($s0) -/* 09D86C 8009CC6C AC580000 */ sw $t8, ($v0) -/* 09D870 8009CC70 8D2E0000 */ lw $t6, ($t1) -/* 09D874 8009CC74 2401FF00 */ li $at, -256 -/* 09D878 8009CC78 31CF00FF */ andi $t7, $t6, 0xff -/* 09D87C 8009CC7C 01E16025 */ or $t4, $t7, $at -/* 09D880 8009CC80 1000000A */ b .L8009CCAC -/* 09D884 8009CC84 AC4C0004 */ sw $t4, 4($v0) -.L8009CC88: -/* 09D888 8009CC88 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 -/* 09D88C 8009CC8C 261063A0 */ addiu $s0, %lo(sMenuCurrDisplayList) # addiu $s0, $s0, 0x63a0 -/* 09D890 8009CC90 8E020000 */ lw $v0, ($s0) -/* 09D894 8009CC94 3C0DFA00 */ lui $t5, 0xfa00 -/* 09D898 8009CC98 24590008 */ addiu $t9, $v0, 8 -/* 09D89C 8009CC9C AE190000 */ sw $t9, ($s0) -/* 09D8A0 8009CCA0 2418FFFF */ li $t8, -1 -/* 09D8A4 8009CCA4 AC580004 */ sw $t8, 4($v0) -/* 09D8A8 8009CCA8 AC4D0000 */ sw $t5, ($v0) -.L8009CCAC: -/* 09D8AC 8009CCAC 8E020000 */ lw $v0, ($s0) -/* 09D8B0 8009CCB0 3C0FFB00 */ lui $t7, 0xfb00 -/* 09D8B4 8009CCB4 244E0008 */ addiu $t6, $v0, 8 -/* 09D8B8 8009CCB8 AE0E0000 */ sw $t6, ($s0) -/* 09D8BC 8009CCBC 240CFF00 */ li $t4, -256 -/* 09D8C0 8009CCC0 AC4C0004 */ sw $t4, 4($v0) -/* 09D8C4 8009CCC4 AC4F0000 */ sw $t7, ($v0) -/* 09D8C8 8009CCC8 8FB90060 */ lw $t9, 0x60($sp) -/* 09D8CC 8009CCCC 8D780000 */ lw $t8, ($t3) -/* 09D8D0 8009CCD0 44808000 */ mtc1 $zero, $f16 -/* 09D8D4 8009CCD4 3C07800E */ lui $a3, %hi(D_800DF454) # $a3, 0x800e -/* 09D8D8 8009CCD8 8CE7F454 */ lw $a3, %lo(D_800DF454)($a3) -/* 09D8DC 8009CCDC 00196940 */ sll $t5, $t9, 5 -/* 09D8E0 8009CCE0 AFA8002C */ sw $t0, 0x2c($sp) -/* 09D8E4 8009CCE4 02002025 */ move $a0, $s0 -/* 09D8E8 8009CCE8 01B83021 */ addu $a2, $t5, $t8 -/* 09D8EC 8009CCEC 0C01A521 */ jal func_80069484 -/* 09D8F0 8009CCF0 E7B00010 */ swc1 $f16, 0x10($sp) -/* 09D8F4 8009CCF4 3C0B800E */ lui $t3, %hi(gMenuImageStack) # $t3, 0x800e -/* 09D8F8 8009CCF8 256BF75C */ addiu $t3, %lo(gMenuImageStack) # addiu $t3, $t3, -0x8a4 -/* 09D8FC 8009CCFC 8FA8002C */ lw $t0, 0x2c($sp) -/* 09D900 8009CD00 8D6E0000 */ lw $t6, ($t3) -/* 09D904 8009CD04 3C028012 */ lui $v0, %hi(D_80126550) # $v0, 0x8012 -/* 09D908 8009CD08 01C87821 */ addu $t7, $t6, $t0 -/* 09D90C 8009CD0C 85EC0006 */ lh $t4, 6($t7) -/* 09D910 8009CD10 00000000 */ nop -/* 09D914 8009CD14 000CC880 */ sll $t9, $t4, 2 -/* 09D918 8009CD18 00591021 */ addu $v0, $v0, $t9 -/* 09D91C 8009CD1C 8C426550 */ lw $v0, %lo(D_80126550)($v0) -/* 09D920 8009CD20 00000000 */ nop -/* 09D924 8009CD24 8C440000 */ lw $a0, ($v0) -/* 09D928 8009CD28 0C02735F */ jal render_track_selection_viewport_border -/* 09D92C 8009CD2C 00000000 */ nop -/* 09D930 8009CD30 0C01A690 */ jal func_80069A40 -/* 09D934 8009CD34 02002025 */ move $a0, $s0 -/* 09D938 8009CD38 3C0D800E */ lui $t5, %hi(sMenuGuiOpacity) # $t5, 0x800e -/* 09D93C 8009CD3C 8DADF764 */ lw $t5, %lo(sMenuGuiOpacity)($t5) -/* 09D940 8009CD40 00000000 */ nop -/* 09D944 8009CD44 29A100FF */ slti $at, $t5, 0xff -/* 09D948 8009CD48 10200009 */ beqz $at, .L8009CD70 -/* 09D94C 8009CD4C 8FBF0024 */ lw $ra, 0x24($sp) -/* 09D950 8009CD50 8E020000 */ lw $v0, ($s0) -/* 09D954 8009CD54 3C0EFA00 */ lui $t6, 0xfa00 -/* 09D958 8009CD58 24580008 */ addiu $t8, $v0, 8 -/* 09D95C 8009CD5C AE180000 */ sw $t8, ($s0) -/* 09D960 8009CD60 240FFFFF */ li $t7, -1 -/* 09D964 8009CD64 AC4F0004 */ sw $t7, 4($v0) -/* 09D968 8009CD68 AC4E0000 */ sw $t6, ($v0) -.L8009CD6C: -/* 09D96C 8009CD6C 8FBF0024 */ lw $ra, 0x24($sp) -.L8009CD70: -/* 09D970 8009CD70 8FB00020 */ lw $s0, 0x20($sp) -/* 09D974 8009CD74 03E00008 */ jr $ra -/* 09D978 8009CD78 27BD0060 */ addiu $sp, $sp, 0x60 - +glabel func_8009CA60 +/* 09D660 8009CA60 3C0B800E */ lui $t3, %hi(gMenuImageStack) # $t3, 0x800e +/* 09D664 8009CA64 256BF75C */ addiu $t3, %lo(gMenuImageStack) # addiu $t3, $t3, -0x8a4 +/* 09D668 8009CA68 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 09D66C 8009CA6C 8D630000 */ lw $v1, ($t3) +/* 09D670 8009CA70 00044140 */ sll $t0, $a0, 5 +/* 09D674 8009CA74 AFBF0024 */ sw $ra, 0x24($sp) +/* 09D678 8009CA78 AFB00020 */ sw $s0, 0x20($sp) +/* 09D67C 8009CA7C AFA40060 */ sw $a0, 0x60($sp) +/* 09D680 8009CA80 00687821 */ addu $t7, $v1, $t0 +/* 09D684 8009CA84 85E50006 */ lh $a1, 6($t7) +/* 09D688 8009CA88 3C0A8012 */ lui $t2, %hi(D_80126550) # $t2, 0x8012 +/* 09D68C 8009CA8C 0005C080 */ sll $t8, $a1, 2 +/* 09D690 8009CA90 01585021 */ addu $t2, $t2, $t8 +/* 09D694 8009CA94 8D4A6550 */ lw $t2, %lo(D_80126550)($t2) +/* 09D698 8009CA98 3C19800E */ lui $t9, %hi(gAssetsMenuElementIds) # $t9, 0x800e +/* 09D69C 8009CA9C 114000B4 */ beqz $t2, .L8009CD70 +/* 09D6A0 8009CAA0 8FBF0024 */ lw $ra, 0x24($sp) +/* 09D6A4 8009CAA4 8F39F750 */ lw $t9, %lo(gAssetsMenuElementIds)($t9) +/* 09D6A8 8009CAA8 00056040 */ sll $t4, $a1, 1 +/* 09D6AC 8009CAAC 032C6821 */ addu $t5, $t9, $t4 +/* 09D6B0 8009CAB0 85A20000 */ lh $v0, ($t5) +/* 09D6B4 8009CAB4 3401C000 */ li $at, 49152 +/* 09D6B8 8009CAB8 304EC000 */ andi $t6, $v0, 0xc000 +/* 09D6BC 8009CABC 11C100AB */ beq $t6, $at, .L8009CD6C +/* 09D6C0 8009CAC0 304F4000 */ andi $t7, $v0, 0x4000 +/* 09D6C4 8009CAC4 11E00027 */ beqz $t7, .L8009CB64 +/* 09D6C8 8009CAC8 304D8000 */ andi $t5, $v0, 0x8000 +/* 09D6CC 8009CACC 0004C940 */ sll $t9, $a0, 5 +/* 09D6D0 8009CAD0 03231021 */ addu $v0, $t9, $v1 +/* 09D6D4 8009CAD4 844C0000 */ lh $t4, ($v0) +/* 09D6D8 8009CAD8 3C0F800E */ lui $t7, %hi(D_800DF468) # $t7, 0x800e +/* 09D6DC 8009CADC A54C0000 */ sh $t4, ($t2) +/* 09D6E0 8009CAE0 844D0002 */ lh $t5, 2($v0) +/* 09D6E4 8009CAE4 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 +/* 09D6E8 8009CAE8 A54D0002 */ sh $t5, 2($t2) +/* 09D6EC 8009CAEC 844E0004 */ lh $t6, 4($v0) +/* 09D6F0 8009CAF0 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 +/* 09D6F4 8009CAF4 A54E0004 */ sh $t6, 4($t2) +/* 09D6F8 8009CAF8 C444000C */ lwc1 $f4, 0xc($v0) +/* 09D6FC 8009CAFC 3C068012 */ lui $a2, %hi(sMenuCurrHudVerts) # $a2, 0x8012 +/* 09D700 8009CB00 E544000C */ swc1 $f4, 0xc($t2) +/* 09D704 8009CB04 C4460010 */ lwc1 $f6, 0x10($v0) +/* 09D708 8009CB08 01403825 */ move $a3, $t2 +/* 09D70C 8009CB0C E5460010 */ swc1 $f6, 0x10($t2) +/* 09D710 8009CB10 C4480014 */ lwc1 $f8, 0x14($v0) +/* 09D714 8009CB14 260463A0 */ addiu $a0, $s0, %lo(sMenuCurrDisplayList) +/* 09D718 8009CB18 E5480014 */ swc1 $f8, 0x14($t2) +/* 09D71C 8009CB1C C44A0008 */ lwc1 $f10, 8($v0) +/* 09D720 8009CB20 3C0C800E */ lui $t4, %hi(sMenuGuiOpacity) # $t4, 0x800e +/* 09D724 8009CB24 E54A0008 */ swc1 $f10, 8($t2) +/* 09D728 8009CB28 8DEFF468 */ lw $t7, %lo(D_800DF468)($t7) +/* 09D72C 8009CB2C 24C663AC */ addiu $a2, %lo(sMenuCurrHudVerts) # addiu $a2, $a2, 0x63ac +/* 09D730 8009CB30 15E00007 */ bnez $t7, .L8009CB50 +/* 09D734 8009CB34 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 +/* 09D738 8009CB38 8058001D */ lb $t8, 0x1d($v0) +/* 09D73C 8009CB3C 00000000 */ nop +/* 09D740 8009CB40 A5580018 */ sh $t8, 0x18($t2) +/* 09D744 8009CB44 84590018 */ lh $t9, 0x18($v0) +/* 09D748 8009CB48 00000000 */ nop +/* 09D74C 8009CB4C A159003A */ sb $t9, 0x3a($t2) +.L8009CB50: +/* 09D750 8009CB50 8D8CF764 */ lw $t4, %lo(sMenuGuiOpacity)($t4) +/* 09D754 8009CB54 0C004B57 */ jal func_80012D5C +/* 09D758 8009CB58 A0EC0039 */ sb $t4, 0x39($a3) +/* 09D75C 8009CB5C 10000084 */ b .L8009CD70 +/* 09D760 8009CB60 8FBF0024 */ lw $ra, 0x24($sp) +.L8009CB64: +/* 09D764 8009CB64 11A00034 */ beqz $t5, .L8009CC38 +/* 09D768 8009CB68 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 +/* 09D76C 8009CB6C 261063A0 */ addiu $s0, %lo(sMenuCurrDisplayList) # addiu $s0, $s0, 0x63a0 +/* 09D770 8009CB70 8E020000 */ lw $v0, ($s0) +/* 09D774 8009CB74 3C0FFA00 */ lui $t7, 0xfa00 +/* 09D778 8009CB78 244E0008 */ addiu $t6, $v0, 8 +/* 09D77C 8009CB7C AE0E0000 */ sw $t6, ($s0) +/* 09D780 8009CB80 3C18800E */ lui $t8, %hi(sMenuGuiColourR) # $t8, 0x800e +/* 09D784 8009CB84 AC4F0000 */ sw $t7, ($v0) +/* 09D788 8009CB88 9319F4A4 */ lbu $t9, %lo(sMenuGuiColourR)($t8) +/* 09D78C 8009CB8C 3C0D800E */ lui $t5, %hi(sMenuGuiColourG) # $t5, 0x800e +/* 09D790 8009CB90 91AEF4A8 */ lbu $t6, %lo(sMenuGuiColourG)($t5) +/* 09D794 8009CB94 00196600 */ sll $t4, $t9, 0x18 +/* 09D798 8009CB98 000E7C00 */ sll $t7, $t6, 0x10 +/* 09D79C 8009CB9C 018FC025 */ or $t8, $t4, $t7 +/* 09D7A0 8009CBA0 3C19800E */ lui $t9, %hi(sMenuGuiColourB) # $t9, 0x800e +/* 09D7A4 8009CBA4 932DF4AC */ lbu $t5, %lo(sMenuGuiColourB)($t9) +/* 09D7A8 8009CBA8 3C0F800E */ lui $t7, %hi(sMenuGuiOpacity) # $t7, 0x800e +/* 09D7AC 8009CBAC 8DEFF764 */ lw $t7, %lo(sMenuGuiOpacity)($t7) +/* 09D7B0 8009CBB0 000D7200 */ sll $t6, $t5, 8 +/* 09D7B4 8009CBB4 030E6025 */ or $t4, $t8, $t6 +/* 09D7B8 8009CBB8 31F900FF */ andi $t9, $t7, 0xff +/* 09D7BC 8009CBBC 01996825 */ or $t5, $t4, $t9 +/* 09D7C0 8009CBC0 AC4D0004 */ sw $t5, 4($v0) +/* 09D7C4 8009CBC4 8E020000 */ lw $v0, ($s0) +/* 09D7C8 8009CBC8 240FFF00 */ li $t7, -256 +/* 09D7CC 8009CBCC 24580008 */ addiu $t8, $v0, 8 +/* 09D7D0 8009CBD0 AE180000 */ sw $t8, ($s0) +/* 09D7D4 8009CBD4 3C0EFB00 */ lui $t6, 0xfb00 +/* 09D7D8 8009CBD8 AC4E0000 */ sw $t6, ($v0) +/* 09D7DC 8009CBDC AC4F0004 */ sw $t7, 4($v0) +/* 09D7E0 8009CBE0 8FAC0060 */ lw $t4, 0x60($sp) +/* 09D7E4 8009CBE4 3C18800E */ lui $t8, %hi(D_800DF4B4) # $t8, 0x800e +/* 09D7E8 8009CBE8 8F18F4B4 */ lw $t8, %lo(D_800DF4B4)($t8) +/* 09D7EC 8009CBEC 8D6D0000 */ lw $t5, ($t3) +/* 09D7F0 8009CBF0 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 +/* 09D7F4 8009CBF4 3C068012 */ lui $a2, %hi(sMenuCurrHudVerts) # $a2, 0x8012 +/* 09D7F8 8009CBF8 000CC940 */ sll $t9, $t4, 5 +/* 09D7FC 8009CBFC 24C663AC */ addiu $a2, %lo(sMenuCurrHudVerts) # addiu $a2, $a2, 0x63ac +/* 09D800 8009CC00 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 +/* 09D804 8009CC04 AFAA0010 */ sw $t2, 0x10($sp) +/* 09D808 8009CC08 02002025 */ move $a0, $s0 +/* 09D80C 8009CC0C AFB80014 */ sw $t8, 0x14($sp) +/* 09D810 8009CC10 0C01A2FD */ jal render_ortho_triangle_image +/* 09D814 8009CC14 032D3821 */ addu $a3, $t9, $t5 +/* 09D818 8009CC18 8E020000 */ lw $v0, ($s0) +/* 09D81C 8009CC1C 3C0FFA00 */ lui $t7, 0xfa00 +/* 09D820 8009CC20 244E0008 */ addiu $t6, $v0, 8 +/* 09D824 8009CC24 AE0E0000 */ sw $t6, ($s0) +/* 09D828 8009CC28 240CFFFF */ li $t4, -1 +/* 09D82C 8009CC2C AC4C0004 */ sw $t4, 4($v0) +/* 09D830 8009CC30 1000004E */ b .L8009CD6C +/* 09D834 8009CC34 AC4F0000 */ sw $t7, ($v0) +.L8009CC38: +/* 09D838 8009CC38 3C09800E */ lui $t1, %hi(sMenuGuiOpacity) # $t1, 0x800e +/* 09D83C 8009CC3C 2529F764 */ addiu $t1, %lo(sMenuGuiOpacity) # addiu $t1, $t1, -0x89c +/* 09D840 8009CC40 8D390000 */ lw $t9, ($t1) +/* 09D844 8009CC44 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 +/* 09D848 8009CC48 2B2100FF */ slti $at, $t9, 0xff +/* 09D84C 8009CC4C 1020000E */ beqz $at, .L8009CC88 +/* 09D850 8009CC50 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 +/* 09D854 8009CC54 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 +/* 09D858 8009CC58 261063A0 */ addiu $s0, %lo(sMenuCurrDisplayList) # addiu $s0, $s0, 0x63a0 +/* 09D85C 8009CC5C 8E020000 */ lw $v0, ($s0) +/* 09D860 8009CC60 3C18FA00 */ lui $t8, 0xfa00 +/* 09D864 8009CC64 244D0008 */ addiu $t5, $v0, 8 +/* 09D868 8009CC68 AE0D0000 */ sw $t5, ($s0) +/* 09D86C 8009CC6C AC580000 */ sw $t8, ($v0) +/* 09D870 8009CC70 8D2E0000 */ lw $t6, ($t1) +/* 09D874 8009CC74 2401FF00 */ li $at, -256 +/* 09D878 8009CC78 31CF00FF */ andi $t7, $t6, 0xff +/* 09D87C 8009CC7C 01E16025 */ or $t4, $t7, $at +/* 09D880 8009CC80 1000000A */ b .L8009CCAC +/* 09D884 8009CC84 AC4C0004 */ sw $t4, 4($v0) +.L8009CC88: +/* 09D888 8009CC88 3C108012 */ lui $s0, %hi(sMenuCurrDisplayList) # $s0, 0x8012 +/* 09D88C 8009CC8C 261063A0 */ addiu $s0, %lo(sMenuCurrDisplayList) # addiu $s0, $s0, 0x63a0 +/* 09D890 8009CC90 8E020000 */ lw $v0, ($s0) +/* 09D894 8009CC94 3C0DFA00 */ lui $t5, 0xfa00 +/* 09D898 8009CC98 24590008 */ addiu $t9, $v0, 8 +/* 09D89C 8009CC9C AE190000 */ sw $t9, ($s0) +/* 09D8A0 8009CCA0 2418FFFF */ li $t8, -1 +/* 09D8A4 8009CCA4 AC580004 */ sw $t8, 4($v0) +/* 09D8A8 8009CCA8 AC4D0000 */ sw $t5, ($v0) +.L8009CCAC: +/* 09D8AC 8009CCAC 8E020000 */ lw $v0, ($s0) +/* 09D8B0 8009CCB0 3C0FFB00 */ lui $t7, 0xfb00 +/* 09D8B4 8009CCB4 244E0008 */ addiu $t6, $v0, 8 +/* 09D8B8 8009CCB8 AE0E0000 */ sw $t6, ($s0) +/* 09D8BC 8009CCBC 240CFF00 */ li $t4, -256 +/* 09D8C0 8009CCC0 AC4C0004 */ sw $t4, 4($v0) +/* 09D8C4 8009CCC4 AC4F0000 */ sw $t7, ($v0) +/* 09D8C8 8009CCC8 8FB90060 */ lw $t9, 0x60($sp) +/* 09D8CC 8009CCCC 8D780000 */ lw $t8, ($t3) +/* 09D8D0 8009CCD0 44808000 */ mtc1 $zero, $f16 +/* 09D8D4 8009CCD4 3C07800E */ lui $a3, %hi(D_800DF454) # $a3, 0x800e +/* 09D8D8 8009CCD8 8CE7F454 */ lw $a3, %lo(D_800DF454)($a3) +/* 09D8DC 8009CCDC 00196940 */ sll $t5, $t9, 5 +/* 09D8E0 8009CCE0 AFA8002C */ sw $t0, 0x2c($sp) +/* 09D8E4 8009CCE4 02002025 */ move $a0, $s0 +/* 09D8E8 8009CCE8 01B83021 */ addu $a2, $t5, $t8 +/* 09D8EC 8009CCEC 0C01A521 */ jal func_80069484 +/* 09D8F0 8009CCF0 E7B00010 */ swc1 $f16, 0x10($sp) +/* 09D8F4 8009CCF4 3C0B800E */ lui $t3, %hi(gMenuImageStack) # $t3, 0x800e +/* 09D8F8 8009CCF8 256BF75C */ addiu $t3, %lo(gMenuImageStack) # addiu $t3, $t3, -0x8a4 +/* 09D8FC 8009CCFC 8FA8002C */ lw $t0, 0x2c($sp) +/* 09D900 8009CD00 8D6E0000 */ lw $t6, ($t3) +/* 09D904 8009CD04 3C028012 */ lui $v0, %hi(D_80126550) # $v0, 0x8012 +/* 09D908 8009CD08 01C87821 */ addu $t7, $t6, $t0 +/* 09D90C 8009CD0C 85EC0006 */ lh $t4, 6($t7) +/* 09D910 8009CD10 00000000 */ nop +/* 09D914 8009CD14 000CC880 */ sll $t9, $t4, 2 +/* 09D918 8009CD18 00591021 */ addu $v0, $v0, $t9 +/* 09D91C 8009CD1C 8C426550 */ lw $v0, %lo(D_80126550)($v0) +/* 09D920 8009CD20 00000000 */ nop +/* 09D924 8009CD24 8C440000 */ lw $a0, ($v0) +/* 09D928 8009CD28 0C02735F */ jal render_track_selection_viewport_border +/* 09D92C 8009CD2C 00000000 */ nop +/* 09D930 8009CD30 0C01A690 */ jal func_80069A40 +/* 09D934 8009CD34 02002025 */ move $a0, $s0 +/* 09D938 8009CD38 3C0D800E */ lui $t5, %hi(sMenuGuiOpacity) # $t5, 0x800e +/* 09D93C 8009CD3C 8DADF764 */ lw $t5, %lo(sMenuGuiOpacity)($t5) +/* 09D940 8009CD40 00000000 */ nop +/* 09D944 8009CD44 29A100FF */ slti $at, $t5, 0xff +/* 09D948 8009CD48 10200009 */ beqz $at, .L8009CD70 +/* 09D94C 8009CD4C 8FBF0024 */ lw $ra, 0x24($sp) +/* 09D950 8009CD50 8E020000 */ lw $v0, ($s0) +/* 09D954 8009CD54 3C0EFA00 */ lui $t6, 0xfa00 +/* 09D958 8009CD58 24580008 */ addiu $t8, $v0, 8 +/* 09D95C 8009CD5C AE180000 */ sw $t8, ($s0) +/* 09D960 8009CD60 240FFFFF */ li $t7, -1 +/* 09D964 8009CD64 AC4F0004 */ sw $t7, 4($v0) +/* 09D968 8009CD68 AC4E0000 */ sw $t6, ($v0) +.L8009CD6C: +/* 09D96C 8009CD6C 8FBF0024 */ lw $ra, 0x24($sp) +.L8009CD70: +/* 09D970 8009CD70 8FB00020 */ lw $s0, 0x20($sp) +/* 09D974 8009CD74 03E00008 */ jr $ra +/* 09D978 8009CD78 27BD0060 */ addiu $sp, $sp, 0x60 + diff --git a/asm/non_matchings/menu/menu_audio_options_loop.s b/asm/non_matchings/menu/menu_audio_options_loop.s index 0db36a74..ed2c04ec 100644 --- a/asm/non_matchings/menu/menu_audio_options_loop.s +++ b/asm/non_matchings/menu/menu_audio_options_loop.s @@ -1,392 +1,392 @@ -glabel menu_audio_options_loop -/* 085874 80084C74 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 -/* 085878 80084C78 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc -/* 08587C 80084C7C 8C6E0000 */ lw $t6, ($v1) -/* 085880 80084C80 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 085884 80084C84 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -/* 085888 80084C88 8D220000 */ lw $v0, ($t1) -/* 08588C 80084C8C 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 085890 80084C90 01C47821 */ addu $t7, $t6, $a0 -/* 085894 80084C94 31F8003F */ andi $t8, $t7, 0x3f -/* 085898 80084C98 AFBF001C */ sw $ra, 0x1c($sp) -/* 08589C 80084C9C AFB00018 */ sw $s0, 0x18($sp) -/* 0858A0 80084CA0 AFA00030 */ sw $zero, 0x30($sp) -/* 0858A4 80084CA4 10400009 */ beqz $v0, .L80084CCC -/* 0858A8 80084CA8 AC780000 */ sw $t8, ($v1) -/* 0858AC 80084CAC 18400005 */ blez $v0, .L80084CC4 -/* 0858B0 80084CB0 00445023 */ subu $t2, $v0, $a0 -/* 0858B4 80084CB4 0044C821 */ addu $t9, $v0, $a0 -/* 0858B8 80084CB8 AD390000 */ sw $t9, ($t1) -/* 0858BC 80084CBC 10000003 */ b .L80084CCC -/* 0858C0 80084CC0 03201025 */ move $v0, $t9 -.L80084CC4: -/* 0858C4 80084CC4 AD2A0000 */ sw $t2, ($t1) -/* 0858C8 80084CC8 01401025 */ move $v0, $t2 -.L80084CCC: -/* 0858CC 80084CCC 2841FFED */ slti $at, $v0, -0x13 -/* 0858D0 80084CD0 14200007 */ bnez $at, .L80084CF0 -/* 0858D4 80084CD4 28410014 */ slti $at, $v0, 0x14 -/* 0858D8 80084CD8 10200005 */ beqz $at, .L80084CF0 -/* 0858DC 80084CDC 00000000 */ nop -/* 0858E0 80084CE0 0C021215 */ jal func_80084854 -/* 0858E4 80084CE4 00000000 */ nop -/* 0858E8 80084CE8 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 0858EC 80084CEC 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L80084CF0: -/* 0858F0 80084CF0 3C0B8012 */ lui $t3, %hi(gIgnorePlayerInput) # $t3, 0x8012 -/* 0858F4 80084CF4 8D6B63C4 */ lw $t3, %lo(gIgnorePlayerInput)($t3) -/* 0858F8 80084CF8 00000000 */ nop -/* 0858FC 80084CFC 1560012C */ bnez $t3, .L800851B0 -/* 085900 80084D00 00000000 */ nop -/* 085904 80084D04 8D2C0000 */ lw $t4, ($t1) -/* 085908 80084D08 00004025 */ move $t0, $zero -/* 08590C 80084D0C 15800128 */ bnez $t4, .L800851B0 -/* 085910 80084D10 00003825 */ move $a3, $zero -/* 085914 80084D14 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 -/* 085918 80084D18 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 -/* 08591C 80084D1C AFA00040 */ sw $zero, 0x40($sp) -/* 085920 80084D20 00003025 */ move $a2, $zero -/* 085924 80084D24 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 -/* 085928 80084D28 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c -/* 08592C 80084D2C 00008025 */ move $s0, $zero -.L80084D30: -/* 085930 80084D30 02002025 */ move $a0, $s0 -/* 085934 80084D34 AFA30028 */ sw $v1, 0x28($sp) -/* 085938 80084D38 AFA50024 */ sw $a1, 0x24($sp) -/* 08593C 80084D3C AFA60034 */ sw $a2, 0x34($sp) -/* 085940 80084D40 AFA70038 */ sw $a3, 0x38($sp) -/* 085944 80084D44 0C01A955 */ jal get_buttons_pressed_from_player -/* 085948 80084D48 AFA8003C */ sw $t0, 0x3c($sp) -/* 08594C 80084D4C 8FAD0040 */ lw $t5, 0x40($sp) -/* 085950 80084D50 02002025 */ move $a0, $s0 -/* 085954 80084D54 01A27025 */ or $t6, $t5, $v0 -/* 085958 80084D58 0C01A967 */ jal clamp_joystick_x_axis -/* 08595C 80084D5C AFAE0040 */ sw $t6, 0x40($sp) -/* 085960 80084D60 8FA30028 */ lw $v1, 0x28($sp) -/* 085964 80084D64 8FA50024 */ lw $a1, 0x24($sp) -/* 085968 80084D68 8FA60034 */ lw $a2, 0x34($sp) -/* 08596C 80084D6C 8FA70038 */ lw $a3, 0x38($sp) -/* 085970 80084D70 8FA8003C */ lw $t0, 0x3c($sp) -/* 085974 80084D74 806F0000 */ lb $t7, ($v1) -/* 085978 80084D78 80B80000 */ lb $t8, ($a1) -/* 08597C 80084D7C 26100001 */ addiu $s0, $s0, 1 -/* 085980 80084D80 24010004 */ li $at, 4 -/* 085984 80084D84 24630001 */ addiu $v1, $v1, 1 -/* 085988 80084D88 24A50001 */ addiu $a1, $a1, 1 -/* 08598C 80084D8C 00C23021 */ addu $a2, $a2, $v0 -/* 085990 80084D90 010F4021 */ addu $t0, $t0, $t7 -/* 085994 80084D94 1601FFE6 */ bne $s0, $at, .L80084D30 -/* 085998 80084D98 00F83821 */ addu $a3, $a3, $t8 -/* 08599C 80084D9C 04C10006 */ bgez $a2, .L80084DB8 -/* 0859A0 80084DA0 3C038012 */ lui $v1, %hi(D_801263E0) # $v1, 0x8012 -/* 0859A4 80084DA4 24C60018 */ addiu $a2, $a2, 0x18 -/* 0859A8 80084DA8 18C00008 */ blez $a2, .L80084DCC -/* 0859AC 80084DAC 8FA40040 */ lw $a0, 0x40($sp) -/* 0859B0 80084DB0 10000005 */ b .L80084DC8 -/* 0859B4 80084DB4 00003025 */ move $a2, $zero -.L80084DB8: -/* 0859B8 80084DB8 24C6FFE8 */ addiu $a2, $a2, -0x18 -/* 0859BC 80084DBC 04C10003 */ bgez $a2, .L80084DCC -/* 0859C0 80084DC0 8FA40040 */ lw $a0, 0x40($sp) -/* 0859C4 80084DC4 00003025 */ move $a2, $zero -.L80084DC8: -/* 0859C8 80084DC8 8FA40040 */ lw $a0, 0x40($sp) -.L80084DCC: -/* 0859CC 80084DCC 0006C883 */ sra $t9, $a2, 2 -/* 0859D0 80084DD0 308A9000 */ andi $t2, $a0, 0x9000 -/* 0859D4 80084DD4 03203025 */ move $a2, $t9 -/* 0859D8 80084DD8 11400008 */ beqz $t2, .L80084DFC -/* 0859DC 80084DDC 01402025 */ move $a0, $t2 -/* 0859E0 80084DE0 3C0C8012 */ lui $t4, %hi(gOptionsMenuItemIndex) # $t4, 0x8012 -/* 0859E4 80084DE4 858C6C46 */ lh $t4, %lo(gOptionsMenuItemIndex)($t4) -/* 0859E8 80084DE8 246363E0 */ addiu $v1, %lo(D_801263E0) # addiu $v1, $v1, 0x63e0 -/* 0859EC 80084DEC 8C6B0000 */ lw $t3, ($v1) -/* 0859F0 80084DF0 258D0001 */ addiu $t5, $t4, 1 -/* 0859F4 80084DF4 116D0007 */ beq $t3, $t5, .L80084E14 -/* 0859F8 80084DF8 2418FFFF */ li $t8, -1 -.L80084DFC: -/* 0859FC 80084DFC 8FAE0040 */ lw $t6, 0x40($sp) -/* 085A00 80084E00 3C038012 */ lui $v1, %hi(D_801263E0) # $v1, 0x8012 -/* 085A04 80084E04 31CF4000 */ andi $t7, $t6, 0x4000 -/* 085A08 80084E08 11E00011 */ beqz $t7, .L80084E50 -/* 085A0C 80084E0C 246363E0 */ addiu $v1, %lo(D_801263E0) # addiu $v1, $v1, 0x63e0 -/* 085A10 80084E10 2418FFFF */ li $t8, -1 -.L80084E14: -/* 085A14 80084E14 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 085A18 80084E18 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 085A1C 80084E1C AC38F47C */ sw $t8, %lo(gMenuDelay)($at) -/* 085A20 80084E20 0C030076 */ jal func_800C01D8 -/* 085A24 80084E24 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 085A28 80084E28 3C198012 */ lui $t9, %hi(gOpacityDecayTimer) # $t9, 0x8012 -/* 085A2C 80084E2C 8F3963D8 */ lw $t9, %lo(gOpacityDecayTimer)($t9) -/* 085A30 80084E30 00000000 */ nop -/* 085A34 80084E34 07200004 */ bltz $t9, .L80084E48 -/* 085A38 80084E38 240A0003 */ li $t2, 3 -/* 085A3C 80084E3C 0C000326 */ jal set_music_fade_timer -/* 085A40 80084E40 2404FF80 */ li $a0, -128 -/* 085A44 80084E44 240A0003 */ li $t2, 3 -.L80084E48: -/* 085A48 80084E48 100000AD */ b .L80085100 -/* 085A4C 80084E4C AFAA0030 */ sw $t2, 0x30($sp) -.L80084E50: -/* 085A50 80084E50 3C028012 */ lui $v0, %hi(gOptionsMenuItemIndex) # $v0, 0x8012 -/* 085A54 80084E54 84426C46 */ lh $v0, %lo(gOptionsMenuItemIndex)($v0) -/* 085A58 80084E58 04E1000B */ bgez $a3, .L80084E88 -/* 085A5C 80084E5C 00000000 */ nop -/* 085A60 80084E60 8C6C0000 */ lw $t4, ($v1) -/* 085A64 80084E64 244D0001 */ addiu $t5, $v0, 1 -/* 085A68 80084E68 258BFFFF */ addiu $t3, $t4, -1 -/* 085A6C 80084E6C 004B082A */ slt $at, $v0, $t3 -/* 085A70 80084E70 10200005 */ beqz $at, .L80084E88 -/* 085A74 80084E74 240E0001 */ li $t6, 1 -/* 085A78 80084E78 3C018012 */ lui $at, %hi(gOptionsMenuItemIndex) # $at, 0x8012 -/* 085A7C 80084E7C A42D6C46 */ sh $t5, %lo(gOptionsMenuItemIndex)($at) -/* 085A80 80084E80 1000009F */ b .L80085100 -/* 085A84 80084E84 AFAE0030 */ sw $t6, 0x30($sp) -.L80084E88: -/* 085A88 80084E88 18E00008 */ blez $a3, .L80084EAC -/* 085A8C 80084E8C 00000000 */ nop -/* 085A90 80084E90 18400006 */ blez $v0, .L80084EAC -/* 085A94 80084E94 244FFFFF */ addiu $t7, $v0, -1 -/* 085A98 80084E98 3C018012 */ lui $at, %hi(gOptionsMenuItemIndex) # $at, 0x8012 -/* 085A9C 80084E9C 24180001 */ li $t8, 1 -/* 085AA0 80084EA0 A42F6C46 */ sh $t7, %lo(gOptionsMenuItemIndex)($at) -/* 085AA4 80084EA4 10000096 */ b .L80085100 -/* 085AA8 80084EA8 AFB80030 */ sw $t8, 0x30($sp) -.L80084EAC: -/* 085AAC 80084EAC 14400021 */ bnez $v0, .L80084F34 -/* 085AB0 80084EB0 00000000 */ nop -/* 085AB4 80084EB4 1100001F */ beqz $t0, .L80084F34 -/* 085AB8 80084EB8 00000000 */ nop -/* 085ABC 80084EBC 05010008 */ bgez $t0, .L80084EE0 -/* 085AC0 80084EC0 3C02800E */ lui $v0, %hi(D_800DFAC8) # $v0, 0x800e -/* 085AC4 80084EC4 3C02800E */ lui $v0, %hi(D_800DFAC8) # $v0, 0x800e -/* 085AC8 80084EC8 2442FAC8 */ addiu $v0, %lo(D_800DFAC8) # addiu $v0, $v0, -0x538 -/* 085ACC 80084ECC 8C590000 */ lw $t9, ($v0) -/* 085AD0 80084ED0 00000000 */ nop -/* 085AD4 80084ED4 272AFFFF */ addiu $t2, $t9, -1 -/* 085AD8 80084ED8 10000006 */ b .L80084EF4 -/* 085ADC 80084EDC AC4A0000 */ sw $t2, ($v0) -.L80084EE0: -/* 085AE0 80084EE0 2442FAC8 */ addiu $v0, %lo(D_800DFAC8) # addiu $v0, $v0, -0x538 -/* 085AE4 80084EE4 8C4C0000 */ lw $t4, ($v0) -/* 085AE8 80084EE8 00000000 */ nop -/* 085AEC 80084EEC 258B0001 */ addiu $t3, $t4, 1 -/* 085AF0 80084EF0 AC4B0000 */ sw $t3, ($v0) -.L80084EF4: -/* 085AF4 80084EF4 8C440000 */ lw $a0, ($v0) -/* 085AF8 80084EF8 00000000 */ nop -/* 085AFC 80084EFC 04810004 */ bgez $a0, .L80084F10 -/* 085B00 80084F00 28810003 */ slti $at, $a0, 3 -/* 085B04 80084F04 24040002 */ li $a0, 2 -/* 085B08 80084F08 AC440000 */ sw $a0, ($v0) -/* 085B0C 80084F0C 28810003 */ slti $at, $a0, 3 -.L80084F10: -/* 085B10 80084F10 14200003 */ bnez $at, .L80084F20 -/* 085B14 80084F14 00000000 */ nop -/* 085B18 80084F18 AC400000 */ sw $zero, ($v0) -/* 085B1C 80084F1C 00002025 */ move $a0, $zero -.L80084F20: -/* 085B20 80084F20 0C0196F4 */ jal set_stereo_pan_mode -/* 085B24 80084F24 00000000 */ nop -/* 085B28 80084F28 240E0001 */ li $t6, 1 -/* 085B2C 80084F2C 10000074 */ b .L80085100 -/* 085B30 80084F30 AFAE0030 */ sw $t6, 0x30($sp) -.L80084F34: -/* 085B34 80084F34 10C00047 */ beqz $a2, .L80085054 -/* 085B38 80084F38 24010001 */ li $at, 1 -/* 085B3C 80084F3C 10410002 */ beq $v0, $at, .L80084F48 -/* 085B40 80084F40 24010002 */ li $at, 2 -/* 085B44 80084F44 14410043 */ bne $v0, $at, .L80085054 -.L80084F48: -/* 085B48 80084F48 24010001 */ li $at, 1 -/* 085B4C 80084F4C 14410013 */ bne $v0, $at, .L80084F9C -/* 085B50 80084F50 3C03800E */ lui $v1, %hi(gSfxVolumeSliderValue) # $v1, 0x800e -/* 085B54 80084F54 2463FAC0 */ addiu $v1, %lo(gSfxVolumeSliderValue) # addiu $v1, $v1, -0x540 -/* 085B58 80084F58 8C6F0000 */ lw $t7, ($v1) -/* 085B5C 80084F5C 00000000 */ nop -/* 085B60 80084F60 01E61021 */ addu $v0, $t7, $a2 -/* 085B64 80084F64 04410004 */ bgez $v0, .L80084F78 -/* 085B68 80084F68 AC620000 */ sw $v0, ($v1) -/* 085B6C 80084F6C AC600000 */ sw $zero, ($v1) -/* 085B70 80084F70 10000006 */ b .L80084F8C -/* 085B74 80084F74 00001025 */ move $v0, $zero -.L80084F78: -/* 085B78 80084F78 28410101 */ slti $at, $v0, 0x101 -/* 085B7C 80084F7C 14200003 */ bnez $at, .L80084F8C -/* 085B80 80084F80 00000000 */ nop -/* 085B84 80084F84 24020100 */ li $v0, 256 -/* 085B88 80084F88 AC620000 */ sw $v0, ($v1) -.L80084F8C: -/* 085B8C 80084F8C 0C000C58 */ jal set_sfx_volume_slider -/* 085B90 80084F90 00402025 */ move $a0, $v0 -/* 085B94 80084F94 1000005A */ b .L80085100 -/* 085B98 80084F98 00000000 */ nop -.L80084F9C: -/* 085B9C 80084F9C 24010002 */ li $at, 2 -/* 085BA0 80084FA0 14410057 */ bne $v0, $at, .L80085100 -/* 085BA4 80084FA4 3C03800E */ lui $v1, %hi(gMusicVolumeSliderValue) # $v1, 0x800e -/* 085BA8 80084FA8 2463FAC4 */ addiu $v1, %lo(gMusicVolumeSliderValue) # addiu $v1, $v1, -0x53c -/* 085BAC 80084FAC 8C6A0000 */ lw $t2, ($v1) -/* 085BB0 80084FB0 00000000 */ nop -/* 085BB4 80084FB4 01461021 */ addu $v0, $t2, $a2 -/* 085BB8 80084FB8 04410004 */ bgez $v0, .L80084FCC -/* 085BBC 80084FBC AC620000 */ sw $v0, ($v1) -/* 085BC0 80084FC0 AC600000 */ sw $zero, ($v1) -/* 085BC4 80084FC4 10000006 */ b .L80084FE0 -/* 085BC8 80084FC8 00001025 */ move $v0, $zero -.L80084FCC: -/* 085BCC 80084FCC 28410101 */ slti $at, $v0, 0x101 -/* 085BD0 80084FD0 14200003 */ bnez $at, .L80084FE0 -/* 085BD4 80084FD4 00000000 */ nop -/* 085BD8 80084FD8 24020100 */ li $v0, 256 -/* 085BDC 80084FDC AC620000 */ sw $v0, ($v1) -.L80084FE0: -/* 085BE0 80084FE0 0C00068F */ jal set_music_volume_slider -/* 085BE4 80084FE4 00402025 */ move $a0, $v0 -/* 085BE8 80084FE8 0C000572 */ jal music_is_playing -/* 085BEC 80084FEC 00000000 */ nop -/* 085BF0 80084FF0 14400043 */ bnez $v0, .L80085100 -/* 085BF4 80084FF4 3C0D8012 */ lui $t5, %hi(gOpacityDecayTimer) # $t5, 0x8012 -/* 085BF8 80084FF8 8DAD63D8 */ lw $t5, %lo(gOpacityDecayTimer)($t5) -/* 085BFC 80084FFC 00000000 */ nop -/* 085C00 80085000 05A0000A */ bltz $t5, .L8008502C -/* 085C04 80085004 00000000 */ nop -/* 085C08 80085008 0C0002CA */ jal func_80000B28 -/* 085C0C 8008500C 00000000 */ nop -/* 085C10 80085010 3C10800E */ lui $s0, %hi(D_800DFABC) # $s0, 0x800e -/* 085C14 80085014 2610FABC */ addiu $s0, %lo(D_800DFABC) # addiu $s0, $s0, -0x544 -/* 085C18 80085018 92040003 */ lbu $a0, 3($s0) -/* 085C1C 8008501C 0C0002CD */ jal play_music -/* 085C20 80085020 00000000 */ nop -/* 085C24 80085024 10000036 */ b .L80085100 -/* 085C28 80085028 00000000 */ nop -.L8008502C: -/* 085C2C 8008502C 0C0002CA */ jal func_80000B28 -/* 085C30 80085030 00000000 */ nop -/* 085C34 80085034 0C0002F8 */ jal set_music_player_voice_limit -/* 085C38 80085038 24040018 */ li $a0, 24 -/* 085C3C 8008503C 0C0002CD */ jal play_music -/* 085C40 80085040 24040018 */ li $a0, 24 -/* 085C44 80085044 0C0002C6 */ jal func_80000B18 -/* 085C48 80085048 00000000 */ nop -/* 085C4C 8008504C 1000002C */ b .L80085100 -/* 085C50 80085050 00000000 */ nop -.L80085054: -/* 085C54 80085054 8C6E0000 */ lw $t6, ($v1) -/* 085C58 80085058 00000000 */ nop -/* 085C5C 8008505C 29C10005 */ slti $at, $t6, 5 -/* 085C60 80085060 14200027 */ bnez $at, .L80085100 -/* 085C64 80085064 24010003 */ li $at, 3 -/* 085C68 80085068 14410025 */ bne $v0, $at, .L80085100 -/* 085C6C 8008506C 00000000 */ nop -/* 085C70 80085070 05010009 */ bgez $t0, .L80085098 -/* 085C74 80085074 3C10800E */ lui $s0, %hi(D_800DFABC) # $s0, 0x800e -/* 085C78 80085078 2610FABC */ addiu $s0, %lo(D_800DFABC) # addiu $s0, $s0, -0x544 -/* 085C7C 8008507C 8E030000 */ lw $v1, ($s0) -/* 085C80 80085080 24180001 */ li $t8, 1 -/* 085C84 80085084 18600004 */ blez $v1, .L80085098 -/* 085C88 80085088 246FFFFF */ addiu $t7, $v1, -1 -/* 085C8C 8008508C AE0F0000 */ sw $t7, ($s0) -/* 085C90 80085090 1000000F */ b .L800850D0 -/* 085C94 80085094 AFB80030 */ sw $t8, 0x30($sp) -.L80085098: -/* 085C98 80085098 3C10800E */ lui $s0, %hi(D_800DFABC) # $s0, 0x800e -/* 085C9C 8008509C 1900000C */ blez $t0, .L800850D0 -/* 085CA0 800850A0 2610FABC */ addiu $s0, %lo(D_800DFABC) # addiu $s0, $s0, -0x544 -/* 085CA4 800850A4 0C000844 */ jal ALSeqFile_80115CF8_GetSeqCount -/* 085CA8 800850A8 AFA40028 */ sw $a0, 0x28($sp) -/* 085CAC 800850AC 8E030000 */ lw $v1, ($s0) -/* 085CB0 800850B0 2459FFFF */ addiu $t9, $v0, -1 -/* 085CB4 800850B4 8FA40028 */ lw $a0, 0x28($sp) -/* 085CB8 800850B8 0079082A */ slt $at, $v1, $t9 -/* 085CBC 800850BC 10200004 */ beqz $at, .L800850D0 -/* 085CC0 800850C0 246A0001 */ addiu $t2, $v1, 1 -/* 085CC4 800850C4 240C0001 */ li $t4, 1 -/* 085CC8 800850C8 AE0A0000 */ sw $t2, ($s0) -/* 085CCC 800850CC AFAC0030 */ sw $t4, 0x30($sp) -.L800850D0: -/* 085CD0 800850D0 1080000B */ beqz $a0, .L80085100 -/* 085CD4 800850D4 00000000 */ nop -/* 085CD8 800850D8 0C0002CA */ jal func_80000B28 -/* 085CDC 800850DC 00000000 */ nop -/* 085CE0 800850E0 0C0002F8 */ jal set_music_player_voice_limit -/* 085CE4 800850E4 24040018 */ li $a0, 24 -/* 085CE8 800850E8 92040003 */ lbu $a0, 3($s0) -/* 085CEC 800850EC 0C0002CD */ jal play_music -/* 085CF0 800850F0 00000000 */ nop -/* 085CF4 800850F4 8E0B0000 */ lw $t3, ($s0) -/* 085CF8 800850F8 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 -/* 085CFC 800850FC AC2B63D8 */ sw $t3, %lo(gOpacityDecayTimer)($at) -.L80085100: -/* 085D00 80085100 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012 -/* 085D04 80085104 85AD6C46 */ lh $t5, %lo(gOptionsMenuItemIndex)($t5) -/* 085D08 80085108 24010001 */ li $at, 1 -/* 085D0C 8008510C 15A1000B */ bne $t5, $at, .L8008513C -/* 085D10 80085110 3C058012 */ lui $a1, %hi(D_801269FC) # $a1, 0x8012 -/* 085D14 80085114 3C058012 */ lui $a1, %hi(D_801269FC) # $a1, 0x8012 -/* 085D18 80085118 24A569FC */ addiu $a1, %lo(D_801269FC) # addiu $a1, $a1, 0x69fc -/* 085D1C 8008511C 8CAE0000 */ lw $t6, ($a1) -/* 085D20 80085120 00000000 */ nop -/* 085D24 80085124 15C0000D */ bnez $t6, .L8008515C -/* 085D28 80085128 8FAF0030 */ lw $t7, 0x30($sp) -/* 085D2C 8008512C 0C000741 */ jal play_sound_global -/* 085D30 80085130 2404019B */ li $a0, 411 -/* 085D34 80085134 10000009 */ b .L8008515C -/* 085D38 80085138 8FAF0030 */ lw $t7, 0x30($sp) -.L8008513C: -/* 085D3C 8008513C 24A569FC */ addiu $a1, %lo(D_801269FC) # addiu $a1, $a1, 0x69fc -/* 085D40 80085140 8CA40000 */ lw $a0, ($a1) -/* 085D44 80085144 00000000 */ nop -/* 085D48 80085148 10800004 */ beqz $a0, .L8008515C -/* 085D4C 8008514C 8FAF0030 */ lw $t7, 0x30($sp) -/* 085D50 80085150 0C001223 */ jal func_8000488C -/* 085D54 80085154 00000000 */ nop -/* 085D58 80085158 8FAF0030 */ lw $t7, 0x30($sp) -.L8008515C: -/* 085D5C 8008515C 24010003 */ li $at, 3 -/* 085D60 80085160 15E10005 */ bne $t7, $at, .L80085178 -/* 085D64 80085164 24040241 */ li $a0, 577 -/* 085D68 80085168 0C000741 */ jal play_sound_global -/* 085D6C 8008516C 00002825 */ move $a1, $zero -/* 085D70 80085170 1000000F */ b .L800851B0 -/* 085D74 80085174 00000000 */ nop -.L80085178: -/* 085D78 80085178 8FB80030 */ lw $t8, 0x30($sp) -/* 085D7C 8008517C 24010002 */ li $at, 2 -/* 085D80 80085180 17010005 */ bne $t8, $at, .L80085198 -/* 085D84 80085184 240400EF */ li $a0, 239 -/* 085D88 80085188 0C000741 */ jal play_sound_global -/* 085D8C 8008518C 00002825 */ move $a1, $zero -/* 085D90 80085190 10000007 */ b .L800851B0 -/* 085D94 80085194 00000000 */ nop -.L80085198: -/* 085D98 80085198 8FB90030 */ lw $t9, 0x30($sp) -/* 085D9C 8008519C 24010001 */ li $at, 1 -/* 085DA0 800851A0 17210003 */ bne $t9, $at, .L800851B0 -/* 085DA4 800851A4 240400EB */ li $a0, 235 -/* 085DA8 800851A8 0C000741 */ jal play_sound_global -/* 085DAC 800851AC 00002825 */ move $a1, $zero -.L800851B0: -/* 085DB0 800851B0 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 085DB4 800851B4 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -/* 085DB8 800851B8 8D2A0000 */ lw $t2, ($t1) -/* 085DBC 800851BC 00001025 */ move $v0, $zero -/* 085DC0 800851C0 2941FFE2 */ slti $at, $t2, -0x1e -/* 085DC4 800851C4 10200007 */ beqz $at, .L800851E4 -/* 085DC8 800851C8 00000000 */ nop -/* 085DCC 800851CC 0C02147F */ jal func_800851FC -/* 085DD0 800851D0 00000000 */ nop -/* 085DD4 800851D4 0C0204F4 */ jal menu_init -/* 085DD8 800851D8 2404000C */ li $a0, 12 -/* 085DDC 800851DC 10000003 */ b .L800851EC -/* 085DE0 800851E0 00001025 */ move $v0, $zero -.L800851E4: -/* 085DE4 800851E4 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 085DE8 800851E8 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -.L800851EC: -/* 085DEC 800851EC 8FBF001C */ lw $ra, 0x1c($sp) -/* 085DF0 800851F0 8FB00018 */ lw $s0, 0x18($sp) -/* 085DF4 800851F4 03E00008 */ jr $ra -/* 085DF8 800851F8 27BD0048 */ addiu $sp, $sp, 0x48 - +glabel menu_audio_options_loop +/* 085874 80084C74 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 +/* 085878 80084C78 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc +/* 08587C 80084C7C 8C6E0000 */ lw $t6, ($v1) +/* 085880 80084C80 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 085884 80084C84 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +/* 085888 80084C88 8D220000 */ lw $v0, ($t1) +/* 08588C 80084C8C 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 085890 80084C90 01C47821 */ addu $t7, $t6, $a0 +/* 085894 80084C94 31F8003F */ andi $t8, $t7, 0x3f +/* 085898 80084C98 AFBF001C */ sw $ra, 0x1c($sp) +/* 08589C 80084C9C AFB00018 */ sw $s0, 0x18($sp) +/* 0858A0 80084CA0 AFA00030 */ sw $zero, 0x30($sp) +/* 0858A4 80084CA4 10400009 */ beqz $v0, .L80084CCC +/* 0858A8 80084CA8 AC780000 */ sw $t8, ($v1) +/* 0858AC 80084CAC 18400005 */ blez $v0, .L80084CC4 +/* 0858B0 80084CB0 00445023 */ subu $t2, $v0, $a0 +/* 0858B4 80084CB4 0044C821 */ addu $t9, $v0, $a0 +/* 0858B8 80084CB8 AD390000 */ sw $t9, ($t1) +/* 0858BC 80084CBC 10000003 */ b .L80084CCC +/* 0858C0 80084CC0 03201025 */ move $v0, $t9 +.L80084CC4: +/* 0858C4 80084CC4 AD2A0000 */ sw $t2, ($t1) +/* 0858C8 80084CC8 01401025 */ move $v0, $t2 +.L80084CCC: +/* 0858CC 80084CCC 2841FFED */ slti $at, $v0, -0x13 +/* 0858D0 80084CD0 14200007 */ bnez $at, .L80084CF0 +/* 0858D4 80084CD4 28410014 */ slti $at, $v0, 0x14 +/* 0858D8 80084CD8 10200005 */ beqz $at, .L80084CF0 +/* 0858DC 80084CDC 00000000 */ nop +/* 0858E0 80084CE0 0C021215 */ jal func_80084854 +/* 0858E4 80084CE4 00000000 */ nop +/* 0858E8 80084CE8 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 0858EC 80084CEC 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L80084CF0: +/* 0858F0 80084CF0 3C0B8012 */ lui $t3, %hi(gIgnorePlayerInput) # $t3, 0x8012 +/* 0858F4 80084CF4 8D6B63C4 */ lw $t3, %lo(gIgnorePlayerInput)($t3) +/* 0858F8 80084CF8 00000000 */ nop +/* 0858FC 80084CFC 1560012C */ bnez $t3, .L800851B0 +/* 085900 80084D00 00000000 */ nop +/* 085904 80084D04 8D2C0000 */ lw $t4, ($t1) +/* 085908 80084D08 00004025 */ move $t0, $zero +/* 08590C 80084D0C 15800128 */ bnez $t4, .L800851B0 +/* 085910 80084D10 00003825 */ move $a3, $zero +/* 085914 80084D14 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 +/* 085918 80084D18 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 +/* 08591C 80084D1C AFA00040 */ sw $zero, 0x40($sp) +/* 085920 80084D20 00003025 */ move $a2, $zero +/* 085924 80084D24 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 +/* 085928 80084D28 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c +/* 08592C 80084D2C 00008025 */ move $s0, $zero +.L80084D30: +/* 085930 80084D30 02002025 */ move $a0, $s0 +/* 085934 80084D34 AFA30028 */ sw $v1, 0x28($sp) +/* 085938 80084D38 AFA50024 */ sw $a1, 0x24($sp) +/* 08593C 80084D3C AFA60034 */ sw $a2, 0x34($sp) +/* 085940 80084D40 AFA70038 */ sw $a3, 0x38($sp) +/* 085944 80084D44 0C01A955 */ jal get_buttons_pressed_from_player +/* 085948 80084D48 AFA8003C */ sw $t0, 0x3c($sp) +/* 08594C 80084D4C 8FAD0040 */ lw $t5, 0x40($sp) +/* 085950 80084D50 02002025 */ move $a0, $s0 +/* 085954 80084D54 01A27025 */ or $t6, $t5, $v0 +/* 085958 80084D58 0C01A967 */ jal clamp_joystick_x_axis +/* 08595C 80084D5C AFAE0040 */ sw $t6, 0x40($sp) +/* 085960 80084D60 8FA30028 */ lw $v1, 0x28($sp) +/* 085964 80084D64 8FA50024 */ lw $a1, 0x24($sp) +/* 085968 80084D68 8FA60034 */ lw $a2, 0x34($sp) +/* 08596C 80084D6C 8FA70038 */ lw $a3, 0x38($sp) +/* 085970 80084D70 8FA8003C */ lw $t0, 0x3c($sp) +/* 085974 80084D74 806F0000 */ lb $t7, ($v1) +/* 085978 80084D78 80B80000 */ lb $t8, ($a1) +/* 08597C 80084D7C 26100001 */ addiu $s0, $s0, 1 +/* 085980 80084D80 24010004 */ li $at, 4 +/* 085984 80084D84 24630001 */ addiu $v1, $v1, 1 +/* 085988 80084D88 24A50001 */ addiu $a1, $a1, 1 +/* 08598C 80084D8C 00C23021 */ addu $a2, $a2, $v0 +/* 085990 80084D90 010F4021 */ addu $t0, $t0, $t7 +/* 085994 80084D94 1601FFE6 */ bne $s0, $at, .L80084D30 +/* 085998 80084D98 00F83821 */ addu $a3, $a3, $t8 +/* 08599C 80084D9C 04C10006 */ bgez $a2, .L80084DB8 +/* 0859A0 80084DA0 3C038012 */ lui $v1, %hi(D_801263E0) # $v1, 0x8012 +/* 0859A4 80084DA4 24C60018 */ addiu $a2, $a2, 0x18 +/* 0859A8 80084DA8 18C00008 */ blez $a2, .L80084DCC +/* 0859AC 80084DAC 8FA40040 */ lw $a0, 0x40($sp) +/* 0859B0 80084DB0 10000005 */ b .L80084DC8 +/* 0859B4 80084DB4 00003025 */ move $a2, $zero +.L80084DB8: +/* 0859B8 80084DB8 24C6FFE8 */ addiu $a2, $a2, -0x18 +/* 0859BC 80084DBC 04C10003 */ bgez $a2, .L80084DCC +/* 0859C0 80084DC0 8FA40040 */ lw $a0, 0x40($sp) +/* 0859C4 80084DC4 00003025 */ move $a2, $zero +.L80084DC8: +/* 0859C8 80084DC8 8FA40040 */ lw $a0, 0x40($sp) +.L80084DCC: +/* 0859CC 80084DCC 0006C883 */ sra $t9, $a2, 2 +/* 0859D0 80084DD0 308A9000 */ andi $t2, $a0, 0x9000 +/* 0859D4 80084DD4 03203025 */ move $a2, $t9 +/* 0859D8 80084DD8 11400008 */ beqz $t2, .L80084DFC +/* 0859DC 80084DDC 01402025 */ move $a0, $t2 +/* 0859E0 80084DE0 3C0C8012 */ lui $t4, %hi(gOptionsMenuItemIndex) # $t4, 0x8012 +/* 0859E4 80084DE4 858C6C46 */ lh $t4, %lo(gOptionsMenuItemIndex)($t4) +/* 0859E8 80084DE8 246363E0 */ addiu $v1, %lo(D_801263E0) # addiu $v1, $v1, 0x63e0 +/* 0859EC 80084DEC 8C6B0000 */ lw $t3, ($v1) +/* 0859F0 80084DF0 258D0001 */ addiu $t5, $t4, 1 +/* 0859F4 80084DF4 116D0007 */ beq $t3, $t5, .L80084E14 +/* 0859F8 80084DF8 2418FFFF */ li $t8, -1 +.L80084DFC: +/* 0859FC 80084DFC 8FAE0040 */ lw $t6, 0x40($sp) +/* 085A00 80084E00 3C038012 */ lui $v1, %hi(D_801263E0) # $v1, 0x8012 +/* 085A04 80084E04 31CF4000 */ andi $t7, $t6, 0x4000 +/* 085A08 80084E08 11E00011 */ beqz $t7, .L80084E50 +/* 085A0C 80084E0C 246363E0 */ addiu $v1, %lo(D_801263E0) # addiu $v1, $v1, 0x63e0 +/* 085A10 80084E10 2418FFFF */ li $t8, -1 +.L80084E14: +/* 085A14 80084E14 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 085A18 80084E18 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 085A1C 80084E1C AC38F47C */ sw $t8, %lo(gMenuDelay)($at) +/* 085A20 80084E20 0C030076 */ jal transition_begin +/* 085A24 80084E24 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 085A28 80084E28 3C198012 */ lui $t9, %hi(gOpacityDecayTimer) # $t9, 0x8012 +/* 085A2C 80084E2C 8F3963D8 */ lw $t9, %lo(gOpacityDecayTimer)($t9) +/* 085A30 80084E30 00000000 */ nop +/* 085A34 80084E34 07200004 */ bltz $t9, .L80084E48 +/* 085A38 80084E38 240A0003 */ li $t2, 3 +/* 085A3C 80084E3C 0C000326 */ jal set_music_fade_timer +/* 085A40 80084E40 2404FF80 */ li $a0, -128 +/* 085A44 80084E44 240A0003 */ li $t2, 3 +.L80084E48: +/* 085A48 80084E48 100000AD */ b .L80085100 +/* 085A4C 80084E4C AFAA0030 */ sw $t2, 0x30($sp) +.L80084E50: +/* 085A50 80084E50 3C028012 */ lui $v0, %hi(gOptionsMenuItemIndex) # $v0, 0x8012 +/* 085A54 80084E54 84426C46 */ lh $v0, %lo(gOptionsMenuItemIndex)($v0) +/* 085A58 80084E58 04E1000B */ bgez $a3, .L80084E88 +/* 085A5C 80084E5C 00000000 */ nop +/* 085A60 80084E60 8C6C0000 */ lw $t4, ($v1) +/* 085A64 80084E64 244D0001 */ addiu $t5, $v0, 1 +/* 085A68 80084E68 258BFFFF */ addiu $t3, $t4, -1 +/* 085A6C 80084E6C 004B082A */ slt $at, $v0, $t3 +/* 085A70 80084E70 10200005 */ beqz $at, .L80084E88 +/* 085A74 80084E74 240E0001 */ li $t6, 1 +/* 085A78 80084E78 3C018012 */ lui $at, %hi(gOptionsMenuItemIndex) # $at, 0x8012 +/* 085A7C 80084E7C A42D6C46 */ sh $t5, %lo(gOptionsMenuItemIndex)($at) +/* 085A80 80084E80 1000009F */ b .L80085100 +/* 085A84 80084E84 AFAE0030 */ sw $t6, 0x30($sp) +.L80084E88: +/* 085A88 80084E88 18E00008 */ blez $a3, .L80084EAC +/* 085A8C 80084E8C 00000000 */ nop +/* 085A90 80084E90 18400006 */ blez $v0, .L80084EAC +/* 085A94 80084E94 244FFFFF */ addiu $t7, $v0, -1 +/* 085A98 80084E98 3C018012 */ lui $at, %hi(gOptionsMenuItemIndex) # $at, 0x8012 +/* 085A9C 80084E9C 24180001 */ li $t8, 1 +/* 085AA0 80084EA0 A42F6C46 */ sh $t7, %lo(gOptionsMenuItemIndex)($at) +/* 085AA4 80084EA4 10000096 */ b .L80085100 +/* 085AA8 80084EA8 AFB80030 */ sw $t8, 0x30($sp) +.L80084EAC: +/* 085AAC 80084EAC 14400021 */ bnez $v0, .L80084F34 +/* 085AB0 80084EB0 00000000 */ nop +/* 085AB4 80084EB4 1100001F */ beqz $t0, .L80084F34 +/* 085AB8 80084EB8 00000000 */ nop +/* 085ABC 80084EBC 05010008 */ bgez $t0, .L80084EE0 +/* 085AC0 80084EC0 3C02800E */ lui $v0, %hi(D_800DFAC8) # $v0, 0x800e +/* 085AC4 80084EC4 3C02800E */ lui $v0, %hi(D_800DFAC8) # $v0, 0x800e +/* 085AC8 80084EC8 2442FAC8 */ addiu $v0, %lo(D_800DFAC8) # addiu $v0, $v0, -0x538 +/* 085ACC 80084ECC 8C590000 */ lw $t9, ($v0) +/* 085AD0 80084ED0 00000000 */ nop +/* 085AD4 80084ED4 272AFFFF */ addiu $t2, $t9, -1 +/* 085AD8 80084ED8 10000006 */ b .L80084EF4 +/* 085ADC 80084EDC AC4A0000 */ sw $t2, ($v0) +.L80084EE0: +/* 085AE0 80084EE0 2442FAC8 */ addiu $v0, %lo(D_800DFAC8) # addiu $v0, $v0, -0x538 +/* 085AE4 80084EE4 8C4C0000 */ lw $t4, ($v0) +/* 085AE8 80084EE8 00000000 */ nop +/* 085AEC 80084EEC 258B0001 */ addiu $t3, $t4, 1 +/* 085AF0 80084EF0 AC4B0000 */ sw $t3, ($v0) +.L80084EF4: +/* 085AF4 80084EF4 8C440000 */ lw $a0, ($v0) +/* 085AF8 80084EF8 00000000 */ nop +/* 085AFC 80084EFC 04810004 */ bgez $a0, .L80084F10 +/* 085B00 80084F00 28810003 */ slti $at, $a0, 3 +/* 085B04 80084F04 24040002 */ li $a0, 2 +/* 085B08 80084F08 AC440000 */ sw $a0, ($v0) +/* 085B0C 80084F0C 28810003 */ slti $at, $a0, 3 +.L80084F10: +/* 085B10 80084F10 14200003 */ bnez $at, .L80084F20 +/* 085B14 80084F14 00000000 */ nop +/* 085B18 80084F18 AC400000 */ sw $zero, ($v0) +/* 085B1C 80084F1C 00002025 */ move $a0, $zero +.L80084F20: +/* 085B20 80084F20 0C0196F4 */ jal set_stereo_pan_mode +/* 085B24 80084F24 00000000 */ nop +/* 085B28 80084F28 240E0001 */ li $t6, 1 +/* 085B2C 80084F2C 10000074 */ b .L80085100 +/* 085B30 80084F30 AFAE0030 */ sw $t6, 0x30($sp) +.L80084F34: +/* 085B34 80084F34 10C00047 */ beqz $a2, .L80085054 +/* 085B38 80084F38 24010001 */ li $at, 1 +/* 085B3C 80084F3C 10410002 */ beq $v0, $at, .L80084F48 +/* 085B40 80084F40 24010002 */ li $at, 2 +/* 085B44 80084F44 14410043 */ bne $v0, $at, .L80085054 +.L80084F48: +/* 085B48 80084F48 24010001 */ li $at, 1 +/* 085B4C 80084F4C 14410013 */ bne $v0, $at, .L80084F9C +/* 085B50 80084F50 3C03800E */ lui $v1, %hi(gSfxVolumeSliderValue) # $v1, 0x800e +/* 085B54 80084F54 2463FAC0 */ addiu $v1, %lo(gSfxVolumeSliderValue) # addiu $v1, $v1, -0x540 +/* 085B58 80084F58 8C6F0000 */ lw $t7, ($v1) +/* 085B5C 80084F5C 00000000 */ nop +/* 085B60 80084F60 01E61021 */ addu $v0, $t7, $a2 +/* 085B64 80084F64 04410004 */ bgez $v0, .L80084F78 +/* 085B68 80084F68 AC620000 */ sw $v0, ($v1) +/* 085B6C 80084F6C AC600000 */ sw $zero, ($v1) +/* 085B70 80084F70 10000006 */ b .L80084F8C +/* 085B74 80084F74 00001025 */ move $v0, $zero +.L80084F78: +/* 085B78 80084F78 28410101 */ slti $at, $v0, 0x101 +/* 085B7C 80084F7C 14200003 */ bnez $at, .L80084F8C +/* 085B80 80084F80 00000000 */ nop +/* 085B84 80084F84 24020100 */ li $v0, 256 +/* 085B88 80084F88 AC620000 */ sw $v0, ($v1) +.L80084F8C: +/* 085B8C 80084F8C 0C000C58 */ jal set_sfx_volume_slider +/* 085B90 80084F90 00402025 */ move $a0, $v0 +/* 085B94 80084F94 1000005A */ b .L80085100 +/* 085B98 80084F98 00000000 */ nop +.L80084F9C: +/* 085B9C 80084F9C 24010002 */ li $at, 2 +/* 085BA0 80084FA0 14410057 */ bne $v0, $at, .L80085100 +/* 085BA4 80084FA4 3C03800E */ lui $v1, %hi(gMusicVolumeSliderValue) # $v1, 0x800e +/* 085BA8 80084FA8 2463FAC4 */ addiu $v1, %lo(gMusicVolumeSliderValue) # addiu $v1, $v1, -0x53c +/* 085BAC 80084FAC 8C6A0000 */ lw $t2, ($v1) +/* 085BB0 80084FB0 00000000 */ nop +/* 085BB4 80084FB4 01461021 */ addu $v0, $t2, $a2 +/* 085BB8 80084FB8 04410004 */ bgez $v0, .L80084FCC +/* 085BBC 80084FBC AC620000 */ sw $v0, ($v1) +/* 085BC0 80084FC0 AC600000 */ sw $zero, ($v1) +/* 085BC4 80084FC4 10000006 */ b .L80084FE0 +/* 085BC8 80084FC8 00001025 */ move $v0, $zero +.L80084FCC: +/* 085BCC 80084FCC 28410101 */ slti $at, $v0, 0x101 +/* 085BD0 80084FD0 14200003 */ bnez $at, .L80084FE0 +/* 085BD4 80084FD4 00000000 */ nop +/* 085BD8 80084FD8 24020100 */ li $v0, 256 +/* 085BDC 80084FDC AC620000 */ sw $v0, ($v1) +.L80084FE0: +/* 085BE0 80084FE0 0C00068F */ jal set_music_volume_slider +/* 085BE4 80084FE4 00402025 */ move $a0, $v0 +/* 085BE8 80084FE8 0C000572 */ jal music_is_playing +/* 085BEC 80084FEC 00000000 */ nop +/* 085BF0 80084FF0 14400043 */ bnez $v0, .L80085100 +/* 085BF4 80084FF4 3C0D8012 */ lui $t5, %hi(gOpacityDecayTimer) # $t5, 0x8012 +/* 085BF8 80084FF8 8DAD63D8 */ lw $t5, %lo(gOpacityDecayTimer)($t5) +/* 085BFC 80084FFC 00000000 */ nop +/* 085C00 80085000 05A0000A */ bltz $t5, .L8008502C +/* 085C04 80085004 00000000 */ nop +/* 085C08 80085008 0C0002CA */ jal func_80000B28 +/* 085C0C 8008500C 00000000 */ nop +/* 085C10 80085010 3C10800E */ lui $s0, %hi(D_800DFABC) # $s0, 0x800e +/* 085C14 80085014 2610FABC */ addiu $s0, %lo(D_800DFABC) # addiu $s0, $s0, -0x544 +/* 085C18 80085018 92040003 */ lbu $a0, 3($s0) +/* 085C1C 8008501C 0C0002CD */ jal play_music +/* 085C20 80085020 00000000 */ nop +/* 085C24 80085024 10000036 */ b .L80085100 +/* 085C28 80085028 00000000 */ nop +.L8008502C: +/* 085C2C 8008502C 0C0002CA */ jal func_80000B28 +/* 085C30 80085030 00000000 */ nop +/* 085C34 80085034 0C0002F8 */ jal set_music_player_voice_limit +/* 085C38 80085038 24040018 */ li $a0, 24 +/* 085C3C 8008503C 0C0002CD */ jal play_music +/* 085C40 80085040 24040018 */ li $a0, 24 +/* 085C44 80085044 0C0002C6 */ jal func_80000B18 +/* 085C48 80085048 00000000 */ nop +/* 085C4C 8008504C 1000002C */ b .L80085100 +/* 085C50 80085050 00000000 */ nop +.L80085054: +/* 085C54 80085054 8C6E0000 */ lw $t6, ($v1) +/* 085C58 80085058 00000000 */ nop +/* 085C5C 8008505C 29C10005 */ slti $at, $t6, 5 +/* 085C60 80085060 14200027 */ bnez $at, .L80085100 +/* 085C64 80085064 24010003 */ li $at, 3 +/* 085C68 80085068 14410025 */ bne $v0, $at, .L80085100 +/* 085C6C 8008506C 00000000 */ nop +/* 085C70 80085070 05010009 */ bgez $t0, .L80085098 +/* 085C74 80085074 3C10800E */ lui $s0, %hi(D_800DFABC) # $s0, 0x800e +/* 085C78 80085078 2610FABC */ addiu $s0, %lo(D_800DFABC) # addiu $s0, $s0, -0x544 +/* 085C7C 8008507C 8E030000 */ lw $v1, ($s0) +/* 085C80 80085080 24180001 */ li $t8, 1 +/* 085C84 80085084 18600004 */ blez $v1, .L80085098 +/* 085C88 80085088 246FFFFF */ addiu $t7, $v1, -1 +/* 085C8C 8008508C AE0F0000 */ sw $t7, ($s0) +/* 085C90 80085090 1000000F */ b .L800850D0 +/* 085C94 80085094 AFB80030 */ sw $t8, 0x30($sp) +.L80085098: +/* 085C98 80085098 3C10800E */ lui $s0, %hi(D_800DFABC) # $s0, 0x800e +/* 085C9C 8008509C 1900000C */ blez $t0, .L800850D0 +/* 085CA0 800850A0 2610FABC */ addiu $s0, %lo(D_800DFABC) # addiu $s0, $s0, -0x544 +/* 085CA4 800850A4 0C000844 */ jal ALSeqFile_80115CF8_GetSeqCount +/* 085CA8 800850A8 AFA40028 */ sw $a0, 0x28($sp) +/* 085CAC 800850AC 8E030000 */ lw $v1, ($s0) +/* 085CB0 800850B0 2459FFFF */ addiu $t9, $v0, -1 +/* 085CB4 800850B4 8FA40028 */ lw $a0, 0x28($sp) +/* 085CB8 800850B8 0079082A */ slt $at, $v1, $t9 +/* 085CBC 800850BC 10200004 */ beqz $at, .L800850D0 +/* 085CC0 800850C0 246A0001 */ addiu $t2, $v1, 1 +/* 085CC4 800850C4 240C0001 */ li $t4, 1 +/* 085CC8 800850C8 AE0A0000 */ sw $t2, ($s0) +/* 085CCC 800850CC AFAC0030 */ sw $t4, 0x30($sp) +.L800850D0: +/* 085CD0 800850D0 1080000B */ beqz $a0, .L80085100 +/* 085CD4 800850D4 00000000 */ nop +/* 085CD8 800850D8 0C0002CA */ jal func_80000B28 +/* 085CDC 800850DC 00000000 */ nop +/* 085CE0 800850E0 0C0002F8 */ jal set_music_player_voice_limit +/* 085CE4 800850E4 24040018 */ li $a0, 24 +/* 085CE8 800850E8 92040003 */ lbu $a0, 3($s0) +/* 085CEC 800850EC 0C0002CD */ jal play_music +/* 085CF0 800850F0 00000000 */ nop +/* 085CF4 800850F4 8E0B0000 */ lw $t3, ($s0) +/* 085CF8 800850F8 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 +/* 085CFC 800850FC AC2B63D8 */ sw $t3, %lo(gOpacityDecayTimer)($at) +.L80085100: +/* 085D00 80085100 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012 +/* 085D04 80085104 85AD6C46 */ lh $t5, %lo(gOptionsMenuItemIndex)($t5) +/* 085D08 80085108 24010001 */ li $at, 1 +/* 085D0C 8008510C 15A1000B */ bne $t5, $at, .L8008513C +/* 085D10 80085110 3C058012 */ lui $a1, %hi(D_801269FC) # $a1, 0x8012 +/* 085D14 80085114 3C058012 */ lui $a1, %hi(D_801269FC) # $a1, 0x8012 +/* 085D18 80085118 24A569FC */ addiu $a1, %lo(D_801269FC) # addiu $a1, $a1, 0x69fc +/* 085D1C 8008511C 8CAE0000 */ lw $t6, ($a1) +/* 085D20 80085120 00000000 */ nop +/* 085D24 80085124 15C0000D */ bnez $t6, .L8008515C +/* 085D28 80085128 8FAF0030 */ lw $t7, 0x30($sp) +/* 085D2C 8008512C 0C000741 */ jal play_sound_global +/* 085D30 80085130 2404019B */ li $a0, 411 +/* 085D34 80085134 10000009 */ b .L8008515C +/* 085D38 80085138 8FAF0030 */ lw $t7, 0x30($sp) +.L8008513C: +/* 085D3C 8008513C 24A569FC */ addiu $a1, %lo(D_801269FC) # addiu $a1, $a1, 0x69fc +/* 085D40 80085140 8CA40000 */ lw $a0, ($a1) +/* 085D44 80085144 00000000 */ nop +/* 085D48 80085148 10800004 */ beqz $a0, .L8008515C +/* 085D4C 8008514C 8FAF0030 */ lw $t7, 0x30($sp) +/* 085D50 80085150 0C001223 */ jal func_8000488C +/* 085D54 80085154 00000000 */ nop +/* 085D58 80085158 8FAF0030 */ lw $t7, 0x30($sp) +.L8008515C: +/* 085D5C 8008515C 24010003 */ li $at, 3 +/* 085D60 80085160 15E10005 */ bne $t7, $at, .L80085178 +/* 085D64 80085164 24040241 */ li $a0, 577 +/* 085D68 80085168 0C000741 */ jal play_sound_global +/* 085D6C 8008516C 00002825 */ move $a1, $zero +/* 085D70 80085170 1000000F */ b .L800851B0 +/* 085D74 80085174 00000000 */ nop +.L80085178: +/* 085D78 80085178 8FB80030 */ lw $t8, 0x30($sp) +/* 085D7C 8008517C 24010002 */ li $at, 2 +/* 085D80 80085180 17010005 */ bne $t8, $at, .L80085198 +/* 085D84 80085184 240400EF */ li $a0, 239 +/* 085D88 80085188 0C000741 */ jal play_sound_global +/* 085D8C 8008518C 00002825 */ move $a1, $zero +/* 085D90 80085190 10000007 */ b .L800851B0 +/* 085D94 80085194 00000000 */ nop +.L80085198: +/* 085D98 80085198 8FB90030 */ lw $t9, 0x30($sp) +/* 085D9C 8008519C 24010001 */ li $at, 1 +/* 085DA0 800851A0 17210003 */ bne $t9, $at, .L800851B0 +/* 085DA4 800851A4 240400EB */ li $a0, 235 +/* 085DA8 800851A8 0C000741 */ jal play_sound_global +/* 085DAC 800851AC 00002825 */ move $a1, $zero +.L800851B0: +/* 085DB0 800851B0 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 085DB4 800851B4 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +/* 085DB8 800851B8 8D2A0000 */ lw $t2, ($t1) +/* 085DBC 800851BC 00001025 */ move $v0, $zero +/* 085DC0 800851C0 2941FFE2 */ slti $at, $t2, -0x1e +/* 085DC4 800851C4 10200007 */ beqz $at, .L800851E4 +/* 085DC8 800851C8 00000000 */ nop +/* 085DCC 800851CC 0C02147F */ jal func_800851FC +/* 085DD0 800851D0 00000000 */ nop +/* 085DD4 800851D4 0C0204F4 */ jal menu_init +/* 085DD8 800851D8 2404000C */ li $a0, 12 +/* 085DDC 800851DC 10000003 */ b .L800851EC +/* 085DE0 800851E0 00001025 */ move $v0, $zero +.L800851E4: +/* 085DE4 800851E4 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 085DE8 800851E8 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +.L800851EC: +/* 085DEC 800851EC 8FBF001C */ lw $ra, 0x1c($sp) +/* 085DF0 800851F0 8FB00018 */ lw $s0, 0x18($sp) +/* 085DF4 800851F4 03E00008 */ jr $ra +/* 085DF8 800851F8 27BD0048 */ addiu $sp, $sp, 0x48 + diff --git a/asm/non_matchings/menu/menu_credits_loop.s b/asm/non_matchings/menu/menu_credits_loop.s index de78525e..69e08691 100644 --- a/asm/non_matchings/menu/menu_credits_loop.s +++ b/asm/non_matchings/menu/menu_credits_loop.s @@ -31,11 +31,11 @@ glabel menu_credits_loop /* 09BF8C 8009B38C 00000000 */ nop /* 09BF90 8009B390 15C00007 */ bnez $t6, .L8009B3B0 /* 09BF94 8009B394 00000000 */ nop -/* 09BF98 8009B398 0C030060 */ jal func_800C0180 +/* 09BF98 8009B398 0C030060 */ jal disable_new_screen_transitions /* 09BF9C 8009B39C 00000000 */ nop -/* 09BFA0 8009B3A0 0C030076 */ jal func_800C01D8 +/* 09BFA0 8009B3A0 0C030076 */ jal transition_begin /* 09BFA4 8009B3A4 00002025 */ move $a0, $zero -/* 09BFA8 8009B3A8 0C03005C */ jal func_800C0170 +/* 09BFA8 8009B3A8 0C03005C */ jal enable_new_screen_transitions /* 09BFAC 8009B3AC 00000000 */ nop .L8009B3B0: /* 09BFB0 8009B3B0 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 @@ -632,12 +632,12 @@ glabel L8009BB9C /* 09C824 8009BC24 240E0001 */ li $t6, 1 .L8009BC28: /* 09C828 8009BC28 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 09C82C 8009BC2C 0C030060 */ jal func_800C0180 +/* 09C82C 8009BC2C 0C030060 */ jal disable_new_screen_transitions /* 09C830 8009BC30 AC2EF47C */ sw $t6, %lo(gMenuDelay)($at) /* 09C834 8009BC34 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 09C838 8009BC38 0C030076 */ jal func_800C01D8 +/* 09C838 8009BC38 0C030076 */ jal transition_begin /* 09C83C 8009BC3C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 09C840 8009BC40 0C03005C */ jal func_800C0170 +/* 09C840 8009BC40 0C03005C */ jal enable_new_screen_transitions /* 09C844 8009BC44 00000000 */ nop /* 09C848 8009BC48 0C000326 */ jal set_music_fade_timer /* 09C84C 8009BC4C 2404FF80 */ li $a0, -128 diff --git a/asm/non_matchings/menu/menu_ghost_data_init.s b/asm/non_matchings/menu/menu_ghost_data_init.s index 20c3bd97..f7bd01f2 100644 --- a/asm/non_matchings/menu/menu_ghost_data_init.s +++ b/asm/non_matchings/menu/menu_ghost_data_init.s @@ -250,7 +250,7 @@ glabel menu_ghost_data_init /* 09AA38 80099E38 17200006 */ bnez $t9, .L80099E54 /* 09AA3C 80099E3C AC206498 */ sw $zero, %lo(D_80126498)($at) /* 09AA40 80099E40 3C04800E */ lui $a0, %hi(sMenuTransitionFadeOut) # $a0, 0x800e -/* 09AA44 80099E44 0C030076 */ jal func_800C01D8 +/* 09AA44 80099E44 0C030076 */ jal transition_begin /* 09AA48 80099E48 2484F77C */ addiu $a0, %lo(sMenuTransitionFadeOut) # addiu $a0, $a0, -0x884 /* 09AA4C 80099E4C 10000004 */ b .L80099E60 /* 09AA50 80099E50 8FBF0044 */ lw $ra, 0x44($sp) diff --git a/asm/non_matchings/menu/menu_magic_codes_list_loop.s b/asm/non_matchings/menu/menu_magic_codes_list_loop.s index 38146d70..2e1c4c4b 100644 --- a/asm/non_matchings/menu/menu_magic_codes_list_loop.s +++ b/asm/non_matchings/menu/menu_magic_codes_list_loop.s @@ -1,274 +1,274 @@ -glabel menu_magic_codes_list_loop -/* 08B528 8008A928 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 08B52C 8008A92C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08B530 8008A930 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08B534 8008A934 AFBF0024 */ sw $ra, 0x24($sp) -/* 08B538 8008A938 AFB30020 */ sw $s3, 0x20($sp) -/* 08B53C 8008A93C AFB2001C */ sw $s2, 0x1c($sp) -/* 08B540 8008A940 AFB10018 */ sw $s1, 0x18($sp) -/* 08B544 8008A944 AFB00014 */ sw $s0, 0x14($sp) -/* 08B548 8008A948 1040000F */ beqz $v0, .L8008A988 -/* 08B54C 8008A94C AFA00048 */ sw $zero, 0x48($sp) -/* 08B550 8008A950 18400008 */ blez $v0, .L8008A974 -/* 08B554 8008A954 00447823 */ subu $t7, $v0, $a0 -/* 08B558 8008A958 00447021 */ addu $t6, $v0, $a0 -/* 08B55C 8008A95C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08B560 8008A960 AC2EF47C */ sw $t6, %lo(gMenuDelay)($at) -/* 08B564 8008A964 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08B568 8008A968 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08B56C 8008A96C 10000006 */ b .L8008A988 -/* 08B570 8008A970 00000000 */ nop -.L8008A974: -/* 08B574 8008A974 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08B578 8008A978 AC2FF47C */ sw $t7, %lo(gMenuDelay)($at) -/* 08B57C 8008A97C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08B580 8008A980 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08B584 8008A984 00000000 */ nop -.L8008A988: -/* 08B588 8008A988 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 -/* 08B58C 8008A98C 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc -/* 08B590 8008A990 8C780000 */ lw $t8, ($v1) -/* 08B594 8008A994 2841FFED */ slti $at, $v0, -0x13 -/* 08B598 8008A998 0304C821 */ addu $t9, $t8, $a0 -/* 08B59C 8008A99C 3329003F */ andi $t1, $t9, 0x3f -/* 08B5A0 8008A9A0 14200006 */ bnez $at, .L8008A9BC -/* 08B5A4 8008A9A4 AC690000 */ sw $t1, ($v1) -/* 08B5A8 8008A9A8 28410014 */ slti $at, $v0, 0x14 -/* 08B5AC 8008A9AC 10200003 */ beqz $at, .L8008A9BC -/* 08B5B0 8008A9B0 00000000 */ nop -/* 08B5B4 8008A9B4 0C02295B */ jal render_magic_codes_list_menu_text -/* 08B5B8 8008A9B8 00000000 */ nop -.L8008A9BC: -/* 08B5BC 8008A9BC 3C0A8012 */ lui $t2, %hi(gIgnorePlayerInput) # $t2, 0x8012 -/* 08B5C0 8008A9C0 8D4A63C4 */ lw $t2, %lo(gIgnorePlayerInput)($t2) -/* 08B5C4 8008A9C4 00009825 */ move $s3, $zero -/* 08B5C8 8008A9C8 00003025 */ move $a2, $zero -/* 08B5CC 8008A9CC 1540001B */ bnez $t2, .L8008AA3C -/* 08B5D0 8008A9D0 00009025 */ move $s2, $zero -/* 08B5D4 8008A9D4 3C0B800E */ lui $t3, %hi(gMenuDelay) # $t3, 0x800e -/* 08B5D8 8008A9D8 8D6BF47C */ lw $t3, %lo(gMenuDelay)($t3) -/* 08B5DC 8008A9DC 00008025 */ move $s0, $zero -/* 08B5E0 8008A9E0 15600016 */ bnez $t3, .L8008AA3C -/* 08B5E4 8008A9E4 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 -/* 08B5E8 8008A9E8 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 -/* 08B5EC 8008A9EC 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 -/* 08B5F0 8008A9F0 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c -/* 08B5F4 8008A9F4 24110004 */ li $s1, 4 -.L8008A9F8: -/* 08B5F8 8008A9F8 02002025 */ move $a0, $s0 -/* 08B5FC 8008A9FC AFA30030 */ sw $v1, 0x30($sp) -/* 08B600 8008AA00 AFA5002C */ sw $a1, 0x2c($sp) -/* 08B604 8008AA04 0C01A955 */ jal get_buttons_pressed_from_player -/* 08B608 8008AA08 AFA60050 */ sw $a2, 0x50($sp) -/* 08B60C 8008AA0C 8FA30030 */ lw $v1, 0x30($sp) -/* 08B610 8008AA10 8FA5002C */ lw $a1, 0x2c($sp) -/* 08B614 8008AA14 8FA60050 */ lw $a2, 0x50($sp) -/* 08B618 8008AA18 806C0000 */ lb $t4, ($v1) -/* 08B61C 8008AA1C 80AD0000 */ lb $t5, ($a1) -/* 08B620 8008AA20 26100001 */ addiu $s0, $s0, 1 -/* 08B624 8008AA24 02629825 */ or $s3, $s3, $v0 -/* 08B628 8008AA28 24630001 */ addiu $v1, $v1, 1 -/* 08B62C 8008AA2C 24A50001 */ addiu $a1, $a1, 1 -/* 08B630 8008AA30 00CC3021 */ addu $a2, $a2, $t4 -/* 08B634 8008AA34 1611FFF0 */ bne $s0, $s1, .L8008A9F8 -/* 08B638 8008AA38 024D9021 */ addu $s2, $s2, $t5 -.L8008AA3C: -/* 08B63C 8008AA3C 3C02800E */ lui $v0, %hi(gUnlockedMagicCodes) # $v0, 0x800e -/* 08B640 8008AA40 3C088012 */ lui $t0, %hi(D_80126C80) # $t0, 0x8012 -/* 08B644 8008AA44 8C42FD9C */ lw $v0, %lo(gUnlockedMagicCodes)($v0) -/* 08B648 8008AA48 25086C80 */ addiu $t0, %lo(D_80126C80) # addiu $t0, $t0, 0x6c80 -/* 08B64C 8008AA4C 00008025 */ move $s0, $zero -/* 08B650 8008AA50 24110001 */ li $s1, 1 -/* 08B654 8008AA54 00003825 */ move $a3, $zero -/* 08B658 8008AA58 24030020 */ li $v1, 32 -.L8008AA5C: -/* 08B65C 8008AA5C 02227024 */ and $t6, $s1, $v0 -/* 08B660 8008AA60 11C00005 */ beqz $t6, .L8008AA78 -/* 08B664 8008AA64 0011C840 */ sll $t9, $s1, 1 -/* 08B668 8008AA68 00077840 */ sll $t7, $a3, 1 -/* 08B66C 8008AA6C 010FC021 */ addu $t8, $t0, $t7 -/* 08B670 8008AA70 A7100000 */ sh $s0, ($t8) -/* 08B674 8008AA74 24E70001 */ addiu $a3, $a3, 1 -.L8008AA78: -/* 08B678 8008AA78 26100001 */ addiu $s0, $s0, 1 -/* 08B67C 8008AA7C 1603FFF7 */ bne $s0, $v1, .L8008AA5C -/* 08B680 8008AA80 03208825 */ move $s1, $t9 -/* 08B684 8008AA84 04C00002 */ bltz $a2, .L8008AA90 -/* 08B688 8008AA88 3C108012 */ lui $s0, %hi(gOptionsMenuItemIndex) # $s0, 0x8012 -/* 08B68C 8008AA8C 18C00048 */ blez $a2, .L8008ABB0 -.L8008AA90: -/* 08B690 8008AA90 26106C46 */ addiu $s0, %lo(gOptionsMenuItemIndex) # addiu $s0, $s0, 0x6c46 -/* 08B694 8008AA94 86090000 */ lh $t1, ($s0) -/* 08B698 8008AA98 240400EF */ li $a0, 239 -/* 08B69C 8008AA9C 10E90044 */ beq $a3, $t1, .L8008ABB0 -/* 08B6A0 8008AAA0 00002825 */ move $a1, $zero -/* 08B6A4 8008AAA4 0C000741 */ jal play_sound_global -/* 08B6A8 8008AAA8 AFA7003C */ sw $a3, 0x3c($sp) -/* 08B6AC 8008AAAC 860A0000 */ lh $t2, ($s0) -/* 08B6B0 8008AAB0 3C088012 */ lui $t0, %hi(D_80126C80) # $t0, 0x8012 -/* 08B6B4 8008AAB4 25086C80 */ addiu $t0, %lo(D_80126C80) # addiu $t0, $t0, 0x6c80 -/* 08B6B8 8008AAB8 000A5840 */ sll $t3, $t2, 1 -/* 08B6BC 8008AABC 3C02800E */ lui $v0, %hi(gActiveMagicCodes) # $v0, 0x800e -/* 08B6C0 8008AAC0 010B6021 */ addu $t4, $t0, $t3 -/* 08B6C4 8008AAC4 858D0000 */ lh $t5, ($t4) -/* 08B6C8 8008AAC8 2442FD98 */ addiu $v0, %lo(gActiveMagicCodes) # addiu $v0, $v0, -0x268 -/* 08B6CC 8008AACC 8C4F0000 */ lw $t7, ($v0) -/* 08B6D0 8008AAD0 240E0001 */ li $t6, 1 -/* 08B6D4 8008AAD4 01AE8804 */ sllv $s1, $t6, $t5 -/* 08B6D8 8008AAD8 01F1C026 */ xor $t8, $t7, $s1 -/* 08B6DC 8008AADC AC580000 */ sw $t8, ($v0) -/* 08B6E0 8008AAE0 02202025 */ move $a0, $s1 -/* 08B6E4 8008AAE4 24050010 */ li $a1, 16 -/* 08B6E8 8008AAE8 0C022A3E */ jal func_8008A8F8 -/* 08B6EC 8008AAEC 24060020 */ li $a2, 32 -/* 08B6F0 8008AAF0 02202025 */ move $a0, $s1 -/* 08B6F4 8008AAF4 24050020 */ li $a1, 32 -/* 08B6F8 8008AAF8 0C022A3E */ jal func_8008A8F8 -/* 08B6FC 8008AAFC 24060010 */ li $a2, 16 -/* 08B700 8008AB00 02202025 */ move $a0, $s1 -/* 08B704 8008AB04 24051000 */ li $a1, 4096 -/* 08B708 8008AB08 0C022A3E */ jal func_8008A8F8 -/* 08B70C 8008AB0C 24066080 */ li $a2, 24704 -/* 08B710 8008AB10 02202025 */ move $a0, $s1 -/* 08B714 8008AB14 24056080 */ li $a1, 24704 -/* 08B718 8008AB18 0C022A3E */ jal func_8008A8F8 -/* 08B71C 8008AB1C 24061000 */ li $a2, 4096 -/* 08B720 8008AB20 3C06001F */ lui $a2, (0x001F8000 >> 16) # lui $a2, 0x1f -/* 08B724 8008AB24 34C68000 */ ori $a2, (0x001F8000 & 0xFFFF) # ori $a2, $a2, 0x8000 -/* 08B728 8008AB28 02202025 */ move $a0, $s1 -/* 08B72C 8008AB2C 0C022A3E */ jal func_8008A8F8 -/* 08B730 8008AB30 24050800 */ li $a1, 2048 -/* 08B734 8008AB34 3C05001F */ lui $a1, (0x001F8000 >> 16) # lui $a1, 0x1f -/* 08B738 8008AB38 34A58000 */ ori $a1, (0x001F8000 & 0xFFFF) # ori $a1, $a1, 0x8000 -/* 08B73C 8008AB3C 02202025 */ move $a0, $s1 -/* 08B740 8008AB40 0C022A3E */ jal func_8008A8F8 -/* 08B744 8008AB44 24060800 */ li $a2, 2048 -/* 08B748 8008AB48 02202025 */ move $a0, $s1 -/* 08B74C 8008AB4C 34058000 */ li $a1, 32768 -/* 08B750 8008AB50 0C022A3E */ jal func_8008A8F8 -/* 08B754 8008AB54 3C06000F */ lui $a2, 0xf -/* 08B758 8008AB58 3C06000E */ lui $a2, (0x000E8000 >> 16) # lui $a2, 0xe -/* 08B75C 8008AB5C 34C68000 */ ori $a2, (0x000E8000 & 0xFFFF) # ori $a2, $a2, 0x8000 -/* 08B760 8008AB60 02202025 */ move $a0, $s1 -/* 08B764 8008AB64 0C022A3E */ jal func_8008A8F8 -/* 08B768 8008AB68 3C050001 */ lui $a1, 1 -/* 08B76C 8008AB6C 3C06000D */ lui $a2, (0x000D8000 >> 16) # lui $a2, 0xd -/* 08B770 8008AB70 34C68000 */ ori $a2, (0x000D8000 & 0xFFFF) # ori $a2, $a2, 0x8000 -/* 08B774 8008AB74 02202025 */ move $a0, $s1 -/* 08B778 8008AB78 0C022A3E */ jal func_8008A8F8 -/* 08B77C 8008AB7C 3C050002 */ lui $a1, 2 -/* 08B780 8008AB80 3C06000B */ lui $a2, (0x000B8000 >> 16) # lui $a2, 0xb -/* 08B784 8008AB84 34C68000 */ ori $a2, (0x000B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 -/* 08B788 8008AB88 02202025 */ move $a0, $s1 -/* 08B78C 8008AB8C 0C022A3E */ jal func_8008A8F8 -/* 08B790 8008AB90 3C050004 */ lui $a1, 4 -/* 08B794 8008AB94 3C060007 */ lui $a2, (0x00078000 >> 16) # lui $a2, 7 -/* 08B798 8008AB98 34C68000 */ ori $a2, (0x00078000 & 0xFFFF) # ori $a2, $a2, 0x8000 -/* 08B79C 8008AB9C 02202025 */ move $a0, $s1 -/* 08B7A0 8008ABA0 0C022A3E */ jal func_8008A8F8 -/* 08B7A4 8008ABA4 3C050008 */ lui $a1, 8 -/* 08B7A8 8008ABA8 8FA7003C */ lw $a3, 0x3c($sp) -/* 08B7AC 8008ABAC 00000000 */ nop -.L8008ABB0: -/* 08B7B0 8008ABB0 3C108012 */ lui $s0, %hi(gOptionsMenuItemIndex) # $s0, 0x8012 -/* 08B7B4 8008ABB4 26106C46 */ addiu $s0, %lo(gOptionsMenuItemIndex) # addiu $s0, $s0, 0x6c46 -/* 08B7B8 8008ABB8 86020000 */ lh $v0, ($s0) -/* 08B7BC 8008ABBC 0641000B */ bgez $s2, .L8008ABEC -/* 08B7C0 8008ABC0 00403025 */ move $a2, $v0 -/* 08B7C4 8008ABC4 24590001 */ addiu $t9, $v0, 1 -/* 08B7C8 8008ABC8 A6190000 */ sh $t9, ($s0) -/* 08B7CC 8008ABCC 86020000 */ lh $v0, ($s0) -/* 08B7D0 8008ABD0 00000000 */ nop -/* 08B7D4 8008ABD4 00E2082A */ slt $at, $a3, $v0 -/* 08B7D8 8008ABD8 10200004 */ beqz $at, .L8008ABEC -/* 08B7DC 8008ABDC 00000000 */ nop -/* 08B7E0 8008ABE0 A6070000 */ sh $a3, ($s0) -/* 08B7E4 8008ABE4 86020000 */ lh $v0, ($s0) -/* 08B7E8 8008ABE8 00000000 */ nop -.L8008ABEC: -/* 08B7EC 8008ABEC 1A40000A */ blez $s2, .L8008AC18 -/* 08B7F0 8008ABF0 3C058012 */ lui $a1, %hi(D_801263E0) # $a1, 0x8012 -/* 08B7F4 8008ABF4 2449FFFF */ addiu $t1, $v0, -1 -/* 08B7F8 8008ABF8 A6090000 */ sh $t1, ($s0) -/* 08B7FC 8008ABFC 86020000 */ lh $v0, ($s0) -/* 08B800 8008AC00 00000000 */ nop -/* 08B804 8008AC04 04410004 */ bgez $v0, .L8008AC18 -/* 08B808 8008AC08 00000000 */ nop -/* 08B80C 8008AC0C A6000000 */ sh $zero, ($s0) -/* 08B810 8008AC10 86020000 */ lh $v0, ($s0) -/* 08B814 8008AC14 00000000 */ nop -.L8008AC18: -/* 08B818 8008AC18 24A563E0 */ addiu $a1, %lo(D_801263E0) # addiu $a1, $a1, 0x63e0 -/* 08B81C 8008AC1C 8CA30000 */ lw $v1, ($a1) -/* 08B820 8008AC20 3C048012 */ lui $a0, %hi(D_80126C70) # $a0, 0x8012 -/* 08B824 8008AC24 0043082A */ slt $at, $v0, $v1 -/* 08B828 8008AC28 10200003 */ beqz $at, .L8008AC38 -/* 08B82C 8008AC2C 00000000 */ nop -/* 08B830 8008AC30 10000009 */ b .L8008AC58 -/* 08B834 8008AC34 ACA20000 */ sw $v0, ($a1) -.L8008AC38: -/* 08B838 8008AC38 8C846C70 */ lw $a0, %lo(D_80126C70)($a0) -/* 08B83C 8008AC3C 00000000 */ nop -/* 08B840 8008AC40 00645021 */ addu $t2, $v1, $a0 -/* 08B844 8008AC44 004A082A */ slt $at, $v0, $t2 -/* 08B848 8008AC48 14200003 */ bnez $at, .L8008AC58 -/* 08B84C 8008AC4C 00445823 */ subu $t3, $v0, $a0 -/* 08B850 8008AC50 256C0001 */ addiu $t4, $t3, 1 -/* 08B854 8008AC54 ACAC0000 */ sw $t4, ($a1) -.L8008AC58: -/* 08B858 8008AC58 10C20006 */ beq $a2, $v0, .L8008AC74 -/* 08B85C 8008AC5C 240400EB */ li $a0, 235 -/* 08B860 8008AC60 00002825 */ move $a1, $zero -/* 08B864 8008AC64 0C000741 */ jal play_sound_global -/* 08B868 8008AC68 AFA7003C */ sw $a3, 0x3c($sp) -/* 08B86C 8008AC6C 8FA7003C */ lw $a3, 0x3c($sp) -/* 08B870 8008AC70 00000000 */ nop -.L8008AC74: -/* 08B874 8008AC74 326E9000 */ andi $t6, $s3, 0x9000 -/* 08B878 8008AC78 11C00006 */ beqz $t6, .L8008AC94 -/* 08B87C 8008AC7C 32784000 */ andi $t8, $s3, 0x4000 -/* 08B880 8008AC80 860D0000 */ lh $t5, ($s0) -/* 08B884 8008AC84 240FFFFF */ li $t7, -1 -/* 08B888 8008AC88 14ED0002 */ bne $a3, $t5, .L8008AC94 -/* 08B88C 8008AC8C 00000000 */ nop -/* 08B890 8008AC90 AFAF0048 */ sw $t7, 0x48($sp) -.L8008AC94: -/* 08B894 8008AC94 13000002 */ beqz $t8, .L8008ACA0 -/* 08B898 8008AC98 2419FFFF */ li $t9, -1 -/* 08B89C 8008AC9C AFB90048 */ sw $t9, 0x48($sp) -.L8008ACA0: -/* 08B8A0 8008ACA0 8FA90048 */ lw $t1, 0x48($sp) -/* 08B8A4 8008ACA4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08B8A8 8008ACA8 11200007 */ beqz $t1, .L8008ACC8 -/* 08B8AC 8008ACAC 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 08B8B0 8008ACB0 AC29F47C */ sw $t1, %lo(gMenuDelay)($at) -/* 08B8B4 8008ACB4 0C030076 */ jal func_800C01D8 -/* 08B8B8 8008ACB8 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 08B8BC 8008ACBC 24040241 */ li $a0, 577 -/* 08B8C0 8008ACC0 0C000741 */ jal play_sound_global -/* 08B8C4 8008ACC4 00002825 */ move $a1, $zero -.L8008ACC8: -/* 08B8C8 8008ACC8 3C0A800E */ lui $t2, %hi(gMenuDelay) # $t2, 0x800e -/* 08B8CC 8008ACCC 8D4AF47C */ lw $t2, %lo(gMenuDelay)($t2) -/* 08B8D0 8008ACD0 00001025 */ move $v0, $zero -/* 08B8D4 8008ACD4 2941FFE2 */ slti $at, $t2, -0x1e -/* 08B8D8 8008ACD8 10200007 */ beqz $at, .L8008ACF8 -/* 08B8DC 8008ACDC 00000000 */ nop -/* 08B8E0 8008ACE0 0C022B47 */ jal func_8008AD1C -/* 08B8E4 8008ACE4 00000000 */ nop -/* 08B8E8 8008ACE8 0C0204F4 */ jal menu_init -/* 08B8EC 8008ACEC 2404000A */ li $a0, 10 -/* 08B8F0 8008ACF0 10000003 */ b .L8008AD00 -/* 08B8F4 8008ACF4 00001025 */ move $v0, $zero -.L8008ACF8: -/* 08B8F8 8008ACF8 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 08B8FC 8008ACFC AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -.L8008AD00: -/* 08B900 8008AD00 8FBF0024 */ lw $ra, 0x24($sp) -/* 08B904 8008AD04 8FB00014 */ lw $s0, 0x14($sp) -/* 08B908 8008AD08 8FB10018 */ lw $s1, 0x18($sp) -/* 08B90C 8008AD0C 8FB2001C */ lw $s2, 0x1c($sp) -/* 08B910 8008AD10 8FB30020 */ lw $s3, 0x20($sp) -/* 08B914 8008AD14 03E00008 */ jr $ra -/* 08B918 8008AD18 27BD0058 */ addiu $sp, $sp, 0x58 - +glabel menu_magic_codes_list_loop +/* 08B528 8008A928 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 08B52C 8008A92C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08B530 8008A930 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08B534 8008A934 AFBF0024 */ sw $ra, 0x24($sp) +/* 08B538 8008A938 AFB30020 */ sw $s3, 0x20($sp) +/* 08B53C 8008A93C AFB2001C */ sw $s2, 0x1c($sp) +/* 08B540 8008A940 AFB10018 */ sw $s1, 0x18($sp) +/* 08B544 8008A944 AFB00014 */ sw $s0, 0x14($sp) +/* 08B548 8008A948 1040000F */ beqz $v0, .L8008A988 +/* 08B54C 8008A94C AFA00048 */ sw $zero, 0x48($sp) +/* 08B550 8008A950 18400008 */ blez $v0, .L8008A974 +/* 08B554 8008A954 00447823 */ subu $t7, $v0, $a0 +/* 08B558 8008A958 00447021 */ addu $t6, $v0, $a0 +/* 08B55C 8008A95C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08B560 8008A960 AC2EF47C */ sw $t6, %lo(gMenuDelay)($at) +/* 08B564 8008A964 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08B568 8008A968 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08B56C 8008A96C 10000006 */ b .L8008A988 +/* 08B570 8008A970 00000000 */ nop +.L8008A974: +/* 08B574 8008A974 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08B578 8008A978 AC2FF47C */ sw $t7, %lo(gMenuDelay)($at) +/* 08B57C 8008A97C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08B580 8008A980 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08B584 8008A984 00000000 */ nop +.L8008A988: +/* 08B588 8008A988 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 +/* 08B58C 8008A98C 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc +/* 08B590 8008A990 8C780000 */ lw $t8, ($v1) +/* 08B594 8008A994 2841FFED */ slti $at, $v0, -0x13 +/* 08B598 8008A998 0304C821 */ addu $t9, $t8, $a0 +/* 08B59C 8008A99C 3329003F */ andi $t1, $t9, 0x3f +/* 08B5A0 8008A9A0 14200006 */ bnez $at, .L8008A9BC +/* 08B5A4 8008A9A4 AC690000 */ sw $t1, ($v1) +/* 08B5A8 8008A9A8 28410014 */ slti $at, $v0, 0x14 +/* 08B5AC 8008A9AC 10200003 */ beqz $at, .L8008A9BC +/* 08B5B0 8008A9B0 00000000 */ nop +/* 08B5B4 8008A9B4 0C02295B */ jal render_magic_codes_list_menu_text +/* 08B5B8 8008A9B8 00000000 */ nop +.L8008A9BC: +/* 08B5BC 8008A9BC 3C0A8012 */ lui $t2, %hi(gIgnorePlayerInput) # $t2, 0x8012 +/* 08B5C0 8008A9C0 8D4A63C4 */ lw $t2, %lo(gIgnorePlayerInput)($t2) +/* 08B5C4 8008A9C4 00009825 */ move $s3, $zero +/* 08B5C8 8008A9C8 00003025 */ move $a2, $zero +/* 08B5CC 8008A9CC 1540001B */ bnez $t2, .L8008AA3C +/* 08B5D0 8008A9D0 00009025 */ move $s2, $zero +/* 08B5D4 8008A9D4 3C0B800E */ lui $t3, %hi(gMenuDelay) # $t3, 0x800e +/* 08B5D8 8008A9D8 8D6BF47C */ lw $t3, %lo(gMenuDelay)($t3) +/* 08B5DC 8008A9DC 00008025 */ move $s0, $zero +/* 08B5E0 8008A9E0 15600016 */ bnez $t3, .L8008AA3C +/* 08B5E4 8008A9E4 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 +/* 08B5E8 8008A9E8 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 +/* 08B5EC 8008A9EC 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 +/* 08B5F0 8008A9F0 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c +/* 08B5F4 8008A9F4 24110004 */ li $s1, 4 +.L8008A9F8: +/* 08B5F8 8008A9F8 02002025 */ move $a0, $s0 +/* 08B5FC 8008A9FC AFA30030 */ sw $v1, 0x30($sp) +/* 08B600 8008AA00 AFA5002C */ sw $a1, 0x2c($sp) +/* 08B604 8008AA04 0C01A955 */ jal get_buttons_pressed_from_player +/* 08B608 8008AA08 AFA60050 */ sw $a2, 0x50($sp) +/* 08B60C 8008AA0C 8FA30030 */ lw $v1, 0x30($sp) +/* 08B610 8008AA10 8FA5002C */ lw $a1, 0x2c($sp) +/* 08B614 8008AA14 8FA60050 */ lw $a2, 0x50($sp) +/* 08B618 8008AA18 806C0000 */ lb $t4, ($v1) +/* 08B61C 8008AA1C 80AD0000 */ lb $t5, ($a1) +/* 08B620 8008AA20 26100001 */ addiu $s0, $s0, 1 +/* 08B624 8008AA24 02629825 */ or $s3, $s3, $v0 +/* 08B628 8008AA28 24630001 */ addiu $v1, $v1, 1 +/* 08B62C 8008AA2C 24A50001 */ addiu $a1, $a1, 1 +/* 08B630 8008AA30 00CC3021 */ addu $a2, $a2, $t4 +/* 08B634 8008AA34 1611FFF0 */ bne $s0, $s1, .L8008A9F8 +/* 08B638 8008AA38 024D9021 */ addu $s2, $s2, $t5 +.L8008AA3C: +/* 08B63C 8008AA3C 3C02800E */ lui $v0, %hi(gUnlockedMagicCodes) # $v0, 0x800e +/* 08B640 8008AA40 3C088012 */ lui $t0, %hi(D_80126C80) # $t0, 0x8012 +/* 08B644 8008AA44 8C42FD9C */ lw $v0, %lo(gUnlockedMagicCodes)($v0) +/* 08B648 8008AA48 25086C80 */ addiu $t0, %lo(D_80126C80) # addiu $t0, $t0, 0x6c80 +/* 08B64C 8008AA4C 00008025 */ move $s0, $zero +/* 08B650 8008AA50 24110001 */ li $s1, 1 +/* 08B654 8008AA54 00003825 */ move $a3, $zero +/* 08B658 8008AA58 24030020 */ li $v1, 32 +.L8008AA5C: +/* 08B65C 8008AA5C 02227024 */ and $t6, $s1, $v0 +/* 08B660 8008AA60 11C00005 */ beqz $t6, .L8008AA78 +/* 08B664 8008AA64 0011C840 */ sll $t9, $s1, 1 +/* 08B668 8008AA68 00077840 */ sll $t7, $a3, 1 +/* 08B66C 8008AA6C 010FC021 */ addu $t8, $t0, $t7 +/* 08B670 8008AA70 A7100000 */ sh $s0, ($t8) +/* 08B674 8008AA74 24E70001 */ addiu $a3, $a3, 1 +.L8008AA78: +/* 08B678 8008AA78 26100001 */ addiu $s0, $s0, 1 +/* 08B67C 8008AA7C 1603FFF7 */ bne $s0, $v1, .L8008AA5C +/* 08B680 8008AA80 03208825 */ move $s1, $t9 +/* 08B684 8008AA84 04C00002 */ bltz $a2, .L8008AA90 +/* 08B688 8008AA88 3C108012 */ lui $s0, %hi(gOptionsMenuItemIndex) # $s0, 0x8012 +/* 08B68C 8008AA8C 18C00048 */ blez $a2, .L8008ABB0 +.L8008AA90: +/* 08B690 8008AA90 26106C46 */ addiu $s0, %lo(gOptionsMenuItemIndex) # addiu $s0, $s0, 0x6c46 +/* 08B694 8008AA94 86090000 */ lh $t1, ($s0) +/* 08B698 8008AA98 240400EF */ li $a0, 239 +/* 08B69C 8008AA9C 10E90044 */ beq $a3, $t1, .L8008ABB0 +/* 08B6A0 8008AAA0 00002825 */ move $a1, $zero +/* 08B6A4 8008AAA4 0C000741 */ jal play_sound_global +/* 08B6A8 8008AAA8 AFA7003C */ sw $a3, 0x3c($sp) +/* 08B6AC 8008AAAC 860A0000 */ lh $t2, ($s0) +/* 08B6B0 8008AAB0 3C088012 */ lui $t0, %hi(D_80126C80) # $t0, 0x8012 +/* 08B6B4 8008AAB4 25086C80 */ addiu $t0, %lo(D_80126C80) # addiu $t0, $t0, 0x6c80 +/* 08B6B8 8008AAB8 000A5840 */ sll $t3, $t2, 1 +/* 08B6BC 8008AABC 3C02800E */ lui $v0, %hi(gActiveMagicCodes) # $v0, 0x800e +/* 08B6C0 8008AAC0 010B6021 */ addu $t4, $t0, $t3 +/* 08B6C4 8008AAC4 858D0000 */ lh $t5, ($t4) +/* 08B6C8 8008AAC8 2442FD98 */ addiu $v0, %lo(gActiveMagicCodes) # addiu $v0, $v0, -0x268 +/* 08B6CC 8008AACC 8C4F0000 */ lw $t7, ($v0) +/* 08B6D0 8008AAD0 240E0001 */ li $t6, 1 +/* 08B6D4 8008AAD4 01AE8804 */ sllv $s1, $t6, $t5 +/* 08B6D8 8008AAD8 01F1C026 */ xor $t8, $t7, $s1 +/* 08B6DC 8008AADC AC580000 */ sw $t8, ($v0) +/* 08B6E0 8008AAE0 02202025 */ move $a0, $s1 +/* 08B6E4 8008AAE4 24050010 */ li $a1, 16 +/* 08B6E8 8008AAE8 0C022A3E */ jal func_8008A8F8 +/* 08B6EC 8008AAEC 24060020 */ li $a2, 32 +/* 08B6F0 8008AAF0 02202025 */ move $a0, $s1 +/* 08B6F4 8008AAF4 24050020 */ li $a1, 32 +/* 08B6F8 8008AAF8 0C022A3E */ jal func_8008A8F8 +/* 08B6FC 8008AAFC 24060010 */ li $a2, 16 +/* 08B700 8008AB00 02202025 */ move $a0, $s1 +/* 08B704 8008AB04 24051000 */ li $a1, 4096 +/* 08B708 8008AB08 0C022A3E */ jal func_8008A8F8 +/* 08B70C 8008AB0C 24066080 */ li $a2, 24704 +/* 08B710 8008AB10 02202025 */ move $a0, $s1 +/* 08B714 8008AB14 24056080 */ li $a1, 24704 +/* 08B718 8008AB18 0C022A3E */ jal func_8008A8F8 +/* 08B71C 8008AB1C 24061000 */ li $a2, 4096 +/* 08B720 8008AB20 3C06001F */ lui $a2, (0x001F8000 >> 16) # lui $a2, 0x1f +/* 08B724 8008AB24 34C68000 */ ori $a2, (0x001F8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 08B728 8008AB28 02202025 */ move $a0, $s1 +/* 08B72C 8008AB2C 0C022A3E */ jal func_8008A8F8 +/* 08B730 8008AB30 24050800 */ li $a1, 2048 +/* 08B734 8008AB34 3C05001F */ lui $a1, (0x001F8000 >> 16) # lui $a1, 0x1f +/* 08B738 8008AB38 34A58000 */ ori $a1, (0x001F8000 & 0xFFFF) # ori $a1, $a1, 0x8000 +/* 08B73C 8008AB3C 02202025 */ move $a0, $s1 +/* 08B740 8008AB40 0C022A3E */ jal func_8008A8F8 +/* 08B744 8008AB44 24060800 */ li $a2, 2048 +/* 08B748 8008AB48 02202025 */ move $a0, $s1 +/* 08B74C 8008AB4C 34058000 */ li $a1, 32768 +/* 08B750 8008AB50 0C022A3E */ jal func_8008A8F8 +/* 08B754 8008AB54 3C06000F */ lui $a2, 0xf +/* 08B758 8008AB58 3C06000E */ lui $a2, (0x000E8000 >> 16) # lui $a2, 0xe +/* 08B75C 8008AB5C 34C68000 */ ori $a2, (0x000E8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 08B760 8008AB60 02202025 */ move $a0, $s1 +/* 08B764 8008AB64 0C022A3E */ jal func_8008A8F8 +/* 08B768 8008AB68 3C050001 */ lui $a1, 1 +/* 08B76C 8008AB6C 3C06000D */ lui $a2, (0x000D8000 >> 16) # lui $a2, 0xd +/* 08B770 8008AB70 34C68000 */ ori $a2, (0x000D8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 08B774 8008AB74 02202025 */ move $a0, $s1 +/* 08B778 8008AB78 0C022A3E */ jal func_8008A8F8 +/* 08B77C 8008AB7C 3C050002 */ lui $a1, 2 +/* 08B780 8008AB80 3C06000B */ lui $a2, (0x000B8000 >> 16) # lui $a2, 0xb +/* 08B784 8008AB84 34C68000 */ ori $a2, (0x000B8000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 08B788 8008AB88 02202025 */ move $a0, $s1 +/* 08B78C 8008AB8C 0C022A3E */ jal func_8008A8F8 +/* 08B790 8008AB90 3C050004 */ lui $a1, 4 +/* 08B794 8008AB94 3C060007 */ lui $a2, (0x00078000 >> 16) # lui $a2, 7 +/* 08B798 8008AB98 34C68000 */ ori $a2, (0x00078000 & 0xFFFF) # ori $a2, $a2, 0x8000 +/* 08B79C 8008AB9C 02202025 */ move $a0, $s1 +/* 08B7A0 8008ABA0 0C022A3E */ jal func_8008A8F8 +/* 08B7A4 8008ABA4 3C050008 */ lui $a1, 8 +/* 08B7A8 8008ABA8 8FA7003C */ lw $a3, 0x3c($sp) +/* 08B7AC 8008ABAC 00000000 */ nop +.L8008ABB0: +/* 08B7B0 8008ABB0 3C108012 */ lui $s0, %hi(gOptionsMenuItemIndex) # $s0, 0x8012 +/* 08B7B4 8008ABB4 26106C46 */ addiu $s0, %lo(gOptionsMenuItemIndex) # addiu $s0, $s0, 0x6c46 +/* 08B7B8 8008ABB8 86020000 */ lh $v0, ($s0) +/* 08B7BC 8008ABBC 0641000B */ bgez $s2, .L8008ABEC +/* 08B7C0 8008ABC0 00403025 */ move $a2, $v0 +/* 08B7C4 8008ABC4 24590001 */ addiu $t9, $v0, 1 +/* 08B7C8 8008ABC8 A6190000 */ sh $t9, ($s0) +/* 08B7CC 8008ABCC 86020000 */ lh $v0, ($s0) +/* 08B7D0 8008ABD0 00000000 */ nop +/* 08B7D4 8008ABD4 00E2082A */ slt $at, $a3, $v0 +/* 08B7D8 8008ABD8 10200004 */ beqz $at, .L8008ABEC +/* 08B7DC 8008ABDC 00000000 */ nop +/* 08B7E0 8008ABE0 A6070000 */ sh $a3, ($s0) +/* 08B7E4 8008ABE4 86020000 */ lh $v0, ($s0) +/* 08B7E8 8008ABE8 00000000 */ nop +.L8008ABEC: +/* 08B7EC 8008ABEC 1A40000A */ blez $s2, .L8008AC18 +/* 08B7F0 8008ABF0 3C058012 */ lui $a1, %hi(D_801263E0) # $a1, 0x8012 +/* 08B7F4 8008ABF4 2449FFFF */ addiu $t1, $v0, -1 +/* 08B7F8 8008ABF8 A6090000 */ sh $t1, ($s0) +/* 08B7FC 8008ABFC 86020000 */ lh $v0, ($s0) +/* 08B800 8008AC00 00000000 */ nop +/* 08B804 8008AC04 04410004 */ bgez $v0, .L8008AC18 +/* 08B808 8008AC08 00000000 */ nop +/* 08B80C 8008AC0C A6000000 */ sh $zero, ($s0) +/* 08B810 8008AC10 86020000 */ lh $v0, ($s0) +/* 08B814 8008AC14 00000000 */ nop +.L8008AC18: +/* 08B818 8008AC18 24A563E0 */ addiu $a1, %lo(D_801263E0) # addiu $a1, $a1, 0x63e0 +/* 08B81C 8008AC1C 8CA30000 */ lw $v1, ($a1) +/* 08B820 8008AC20 3C048012 */ lui $a0, %hi(D_80126C70) # $a0, 0x8012 +/* 08B824 8008AC24 0043082A */ slt $at, $v0, $v1 +/* 08B828 8008AC28 10200003 */ beqz $at, .L8008AC38 +/* 08B82C 8008AC2C 00000000 */ nop +/* 08B830 8008AC30 10000009 */ b .L8008AC58 +/* 08B834 8008AC34 ACA20000 */ sw $v0, ($a1) +.L8008AC38: +/* 08B838 8008AC38 8C846C70 */ lw $a0, %lo(D_80126C70)($a0) +/* 08B83C 8008AC3C 00000000 */ nop +/* 08B840 8008AC40 00645021 */ addu $t2, $v1, $a0 +/* 08B844 8008AC44 004A082A */ slt $at, $v0, $t2 +/* 08B848 8008AC48 14200003 */ bnez $at, .L8008AC58 +/* 08B84C 8008AC4C 00445823 */ subu $t3, $v0, $a0 +/* 08B850 8008AC50 256C0001 */ addiu $t4, $t3, 1 +/* 08B854 8008AC54 ACAC0000 */ sw $t4, ($a1) +.L8008AC58: +/* 08B858 8008AC58 10C20006 */ beq $a2, $v0, .L8008AC74 +/* 08B85C 8008AC5C 240400EB */ li $a0, 235 +/* 08B860 8008AC60 00002825 */ move $a1, $zero +/* 08B864 8008AC64 0C000741 */ jal play_sound_global +/* 08B868 8008AC68 AFA7003C */ sw $a3, 0x3c($sp) +/* 08B86C 8008AC6C 8FA7003C */ lw $a3, 0x3c($sp) +/* 08B870 8008AC70 00000000 */ nop +.L8008AC74: +/* 08B874 8008AC74 326E9000 */ andi $t6, $s3, 0x9000 +/* 08B878 8008AC78 11C00006 */ beqz $t6, .L8008AC94 +/* 08B87C 8008AC7C 32784000 */ andi $t8, $s3, 0x4000 +/* 08B880 8008AC80 860D0000 */ lh $t5, ($s0) +/* 08B884 8008AC84 240FFFFF */ li $t7, -1 +/* 08B888 8008AC88 14ED0002 */ bne $a3, $t5, .L8008AC94 +/* 08B88C 8008AC8C 00000000 */ nop +/* 08B890 8008AC90 AFAF0048 */ sw $t7, 0x48($sp) +.L8008AC94: +/* 08B894 8008AC94 13000002 */ beqz $t8, .L8008ACA0 +/* 08B898 8008AC98 2419FFFF */ li $t9, -1 +/* 08B89C 8008AC9C AFB90048 */ sw $t9, 0x48($sp) +.L8008ACA0: +/* 08B8A0 8008ACA0 8FA90048 */ lw $t1, 0x48($sp) +/* 08B8A4 8008ACA4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08B8A8 8008ACA8 11200007 */ beqz $t1, .L8008ACC8 +/* 08B8AC 8008ACAC 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 08B8B0 8008ACB0 AC29F47C */ sw $t1, %lo(gMenuDelay)($at) +/* 08B8B4 8008ACB4 0C030076 */ jal transition_begin +/* 08B8B8 8008ACB8 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 08B8BC 8008ACBC 24040241 */ li $a0, 577 +/* 08B8C0 8008ACC0 0C000741 */ jal play_sound_global +/* 08B8C4 8008ACC4 00002825 */ move $a1, $zero +.L8008ACC8: +/* 08B8C8 8008ACC8 3C0A800E */ lui $t2, %hi(gMenuDelay) # $t2, 0x800e +/* 08B8CC 8008ACCC 8D4AF47C */ lw $t2, %lo(gMenuDelay)($t2) +/* 08B8D0 8008ACD0 00001025 */ move $v0, $zero +/* 08B8D4 8008ACD4 2941FFE2 */ slti $at, $t2, -0x1e +/* 08B8D8 8008ACD8 10200007 */ beqz $at, .L8008ACF8 +/* 08B8DC 8008ACDC 00000000 */ nop +/* 08B8E0 8008ACE0 0C022B47 */ jal func_8008AD1C +/* 08B8E4 8008ACE4 00000000 */ nop +/* 08B8E8 8008ACE8 0C0204F4 */ jal menu_init +/* 08B8EC 8008ACEC 2404000A */ li $a0, 10 +/* 08B8F0 8008ACF0 10000003 */ b .L8008AD00 +/* 08B8F4 8008ACF4 00001025 */ move $v0, $zero +.L8008ACF8: +/* 08B8F8 8008ACF8 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 08B8FC 8008ACFC AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +.L8008AD00: +/* 08B900 8008AD00 8FBF0024 */ lw $ra, 0x24($sp) +/* 08B904 8008AD04 8FB00014 */ lw $s0, 0x14($sp) +/* 08B908 8008AD08 8FB10018 */ lw $s1, 0x18($sp) +/* 08B90C 8008AD0C 8FB2001C */ lw $s2, 0x1c($sp) +/* 08B910 8008AD10 8FB30020 */ lw $s3, 0x20($sp) +/* 08B914 8008AD14 03E00008 */ jr $ra +/* 08B918 8008AD18 27BD0058 */ addiu $sp, $sp, 0x58 + diff --git a/asm/non_matchings/menu/menu_magic_codes_loop.s b/asm/non_matchings/menu/menu_magic_codes_loop.s index fcc70a1f..9356e4ee 100644 --- a/asm/non_matchings/menu/menu_magic_codes_loop.s +++ b/asm/non_matchings/menu/menu_magic_codes_loop.s @@ -1,570 +1,570 @@ -glabel menu_magic_codes_loop -/* 08A8D8 80089CD8 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 08A8DC 80089CDC 3C0B8012 */ lui $t3, %hi(gOpacityDecayTimer) # $t3, 0x8012 -/* 08A8E0 80089CE0 256B63D8 */ addiu $t3, %lo(gOpacityDecayTimer) # addiu $t3, $t3, 0x63d8 -/* 08A8E4 80089CE4 8D620000 */ lw $v0, ($t3) -/* 08A8E8 80089CE8 AFBF0014 */ sw $ra, 0x14($sp) -/* 08A8EC 80089CEC AFA0004C */ sw $zero, 0x4c($sp) -/* 08A8F0 80089CF0 AFA00048 */ sw $zero, 0x48($sp) -/* 08A8F4 80089CF4 AFA00040 */ sw $zero, 0x40($sp) -/* 08A8F8 80089CF8 00003825 */ move $a3, $zero -/* 08A8FC 80089CFC AFA0003C */ sw $zero, 0x3c($sp) -/* 08A900 80089D00 AFA00038 */ sw $zero, 0x38($sp) -/* 08A904 80089D04 10400005 */ beqz $v0, .L80089D1C -/* 08A908 80089D08 AFA00034 */ sw $zero, 0x34($sp) -/* 08A90C 80089D0C 00447023 */ subu $t6, $v0, $a0 -/* 08A910 80089D10 05C10002 */ bgez $t6, .L80089D1C -/* 08A914 80089D14 AD6E0000 */ sw $t6, ($t3) -/* 08A918 80089D18 AD600000 */ sw $zero, ($t3) -.L80089D1C: -/* 08A91C 80089D1C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08A920 80089D20 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08A924 80089D24 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 -/* 08A928 80089D28 1040000F */ beqz $v0, .L80089D68 -/* 08A92C 80089D2C 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc -/* 08A930 80089D30 18400008 */ blez $v0, .L80089D54 -/* 08A934 80089D34 0044C823 */ subu $t9, $v0, $a0 -/* 08A938 80089D38 0044C021 */ addu $t8, $v0, $a0 -/* 08A93C 80089D3C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08A940 80089D40 AC38F47C */ sw $t8, %lo(gMenuDelay)($at) -/* 08A944 80089D44 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08A948 80089D48 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08A94C 80089D4C 10000007 */ b .L80089D6C -/* 08A950 80089D50 8C6E0000 */ lw $t6, ($v1) -.L80089D54: -/* 08A954 80089D54 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08A958 80089D58 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) -/* 08A95C 80089D5C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08A960 80089D60 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08A964 80089D64 00000000 */ nop -.L80089D68: -/* 08A968 80089D68 8C6E0000 */ lw $t6, ($v1) -.L80089D6C: -/* 08A96C 80089D6C 2841FFED */ slti $at, $v0, -0x13 -/* 08A970 80089D70 01C47821 */ addu $t7, $t6, $a0 -/* 08A974 80089D74 31F8003F */ andi $t8, $t7, 0x3f -/* 08A978 80089D78 14200009 */ bnez $at, .L80089DA0 -/* 08A97C 80089D7C AC780000 */ sw $t8, ($v1) -/* 08A980 80089D80 28410014 */ slti $at, $v0, 0x14 -/* 08A984 80089D84 10200006 */ beqz $at, .L80089DA0 -/* 08A988 80089D88 00000000 */ nop -/* 08A98C 80089D8C 0C0225A9 */ jal render_magic_codes_ui -/* 08A990 80089D90 AFA70044 */ sw $a3, 0x44($sp) -/* 08A994 80089D94 3C0B8012 */ lui $t3, %hi(gOpacityDecayTimer) # $t3, 0x8012 -/* 08A998 80089D98 8FA70044 */ lw $a3, 0x44($sp) -/* 08A99C 80089D9C 256B63D8 */ addiu $t3, %lo(gOpacityDecayTimer) # addiu $t3, $t3, 0x63d8 -.L80089DA0: -/* 08A9A0 80089DA0 3C198012 */ lui $t9, %hi(gIgnorePlayerInput) # $t9, 0x8012 -/* 08A9A4 80089DA4 8F3963C4 */ lw $t9, %lo(gIgnorePlayerInput)($t9) -/* 08A9A8 80089DA8 00005025 */ move $t2, $zero -/* 08A9AC 80089DAC 00004025 */ move $t0, $zero -/* 08A9B0 80089DB0 17200025 */ bnez $t9, .L80089E48 -/* 08A9B4 80089DB4 00004825 */ move $t1, $zero -/* 08A9B8 80089DB8 3C0E800E */ lui $t6, %hi(gMenuDelay) # $t6, 0x800e -/* 08A9BC 80089DBC 8DCEF47C */ lw $t6, %lo(gMenuDelay)($t6) -/* 08A9C0 80089DC0 00003025 */ move $a2, $zero -/* 08A9C4 80089DC4 15C00020 */ bnez $t6, .L80089E48 -/* 08A9C8 80089DC8 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 -/* 08A9CC 80089DCC 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 -/* 08A9D0 80089DD0 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 -/* 08A9D4 80089DD4 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c -.L80089DD8: -/* 08A9D8 80089DD8 00C02025 */ move $a0, $a2 -/* 08A9DC 80089DDC AFA30020 */ sw $v1, 0x20($sp) -/* 08A9E0 80089DE0 AFA5001C */ sw $a1, 0x1c($sp) -/* 08A9E4 80089DE4 AFA6005C */ sw $a2, 0x5c($sp) -/* 08A9E8 80089DE8 AFA70044 */ sw $a3, 0x44($sp) -/* 08A9EC 80089DEC AFA80054 */ sw $t0, 0x54($sp) -/* 08A9F0 80089DF0 AFA90050 */ sw $t1, 0x50($sp) -/* 08A9F4 80089DF4 0C01A955 */ jal get_buttons_pressed_from_player -/* 08A9F8 80089DF8 AFAA0058 */ sw $t2, 0x58($sp) -/* 08A9FC 80089DFC 8FA30020 */ lw $v1, 0x20($sp) -/* 08AA00 80089E00 8FA5001C */ lw $a1, 0x1c($sp) -/* 08AA04 80089E04 8FA6005C */ lw $a2, 0x5c($sp) -/* 08AA08 80089E08 8FA80054 */ lw $t0, 0x54($sp) -/* 08AA0C 80089E0C 8FA90050 */ lw $t1, 0x50($sp) -/* 08AA10 80089E10 8FAA0058 */ lw $t2, 0x58($sp) -/* 08AA14 80089E14 806F0000 */ lb $t7, ($v1) -/* 08AA18 80089E18 80B80000 */ lb $t8, ($a1) -/* 08AA1C 80089E1C 24010004 */ li $at, 4 -/* 08AA20 80089E20 8FA70044 */ lw $a3, 0x44($sp) -/* 08AA24 80089E24 24C60001 */ addiu $a2, $a2, 1 -/* 08AA28 80089E28 24630001 */ addiu $v1, $v1, 1 -/* 08AA2C 80089E2C 24A50001 */ addiu $a1, $a1, 1 -/* 08AA30 80089E30 01425025 */ or $t2, $t2, $v0 -/* 08AA34 80089E34 010F4021 */ addu $t0, $t0, $t7 -/* 08AA38 80089E38 14C1FFE7 */ bne $a2, $at, .L80089DD8 -/* 08AA3C 80089E3C 01384821 */ addu $t1, $t1, $t8 -/* 08AA40 80089E40 3C0B8012 */ lui $t3, %hi(gOpacityDecayTimer) # $t3, 0x8012 -/* 08AA44 80089E44 256B63D8 */ addiu $t3, %lo(gOpacityDecayTimer) # addiu $t3, $t3, 0x63d8 -.L80089E48: -/* 08AA48 80089E48 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012 -/* 08AA4C 80089E4C 25AD6C46 */ addiu $t5, %lo(gOptionsMenuItemIndex) # addiu $t5, $t5, 0x6c46 -/* 08AA50 80089E50 85A20000 */ lh $v0, ($t5) -/* 08AA54 80089E54 24010004 */ li $at, 4 -/* 08AA58 80089E58 14410009 */ bne $v0, $at, .L80089E80 -/* 08AA5C 80089E5C 240C0005 */ li $t4, 5 -/* 08AA60 80089E60 8D790000 */ lw $t9, ($t3) -/* 08AA64 80089E64 314E9000 */ andi $t6, $t2, 0x9000 -/* 08AA68 80089E68 13200003 */ beqz $t9, .L80089E78 -/* 08AA6C 80089E6C 00000000 */ nop -/* 08AA70 80089E70 11C00155 */ beqz $t6, .L8008A3C8 -/* 08AA74 80089E74 8FAF003C */ lw $t7, 0x3c($sp) -.L80089E78: -/* 08AA78 80089E78 10000152 */ b .L8008A3C4 -/* 08AA7C 80089E7C A5A00000 */ sh $zero, ($t5) -.L80089E80: -/* 08AA80 80089E80 158200CD */ bne $t4, $v0, .L8008A1B8 -/* 08AA84 80089E84 241F0006 */ li $ra, 6 -/* 08AA88 80089E88 3C028012 */ lui $v0, %hi(gCheatInputCurrentColumn) # $v0, 0x8012 -/* 08AA8C 80089E8C 24426C42 */ addiu $v0, %lo(gCheatInputCurrentColumn) # addiu $v0, $v0, 0x6c42 -/* 08AA90 80089E90 84430000 */ lh $v1, ($v0) -/* 08AA94 80089E94 3C058012 */ lui $a1, %hi(gCheatInputCurrentRow) # $a1, 0x8012 -/* 08AA98 80089E98 24A56C40 */ addiu $a1, %lo(gCheatInputCurrentRow) # addiu $a1, $a1, 0x6c40 -/* 08AA9C 80089E9C 84A40000 */ lh $a0, ($a1) -/* 08AAA0 80089EA0 306F000F */ andi $t7, $v1, 0xf -/* 08AAA4 80089EA4 000FC100 */ sll $t8, $t7, 4 -/* 08AAA8 80089EA8 0501000A */ bgez $t0, .L80089ED4 -/* 08AAAC 80089EAC 03043025 */ or $a2, $t8, $a0 -/* 08AAB0 80089EB0 2479FFFF */ addiu $t9, $v1, -1 -/* 08AAB4 80089EB4 A4590000 */ sh $t9, ($v0) -/* 08AAB8 80089EB8 84430000 */ lh $v1, ($v0) -/* 08AABC 80089EBC 241F0006 */ li $ra, 6 -/* 08AAC0 80089EC0 04610004 */ bgez $v1, .L80089ED4 -/* 08AAC4 80089EC4 00000000 */ nop -/* 08AAC8 80089EC8 A45F0000 */ sh $ra, ($v0) -/* 08AACC 80089ECC 84430000 */ lh $v1, ($v0) -/* 08AAD0 80089ED0 00000000 */ nop -.L80089ED4: -/* 08AAD4 80089ED4 1900000B */ blez $t0, .L80089F04 -/* 08AAD8 80089ED8 241F0006 */ li $ra, 6 -/* 08AADC 80089EDC 246E0001 */ addiu $t6, $v1, 1 -/* 08AAE0 80089EE0 A44E0000 */ sh $t6, ($v0) -/* 08AAE4 80089EE4 84430000 */ lh $v1, ($v0) -/* 08AAE8 80089EE8 00000000 */ nop -/* 08AAEC 80089EEC 28610007 */ slti $at, $v1, 7 -/* 08AAF0 80089EF0 14200004 */ bnez $at, .L80089F04 -/* 08AAF4 80089EF4 00000000 */ nop -/* 08AAF8 80089EF8 A4400000 */ sh $zero, ($v0) -/* 08AAFC 80089EFC 84430000 */ lh $v1, ($v0) -/* 08AB00 80089F00 00000000 */ nop -.L80089F04: -/* 08AB04 80089F04 3062000F */ andi $v0, $v1, 0xf -/* 08AB08 80089F08 00027900 */ sll $t7, $v0, 4 -/* 08AB0C 80089F0C 0521000B */ bgez $t1, .L80089F3C -/* 08AB10 80089F10 01E01025 */ move $v0, $t7 -/* 08AB14 80089F14 24980001 */ addiu $t8, $a0, 1 -/* 08AB18 80089F18 A4B80000 */ sh $t8, ($a1) -/* 08AB1C 80089F1C 84A40000 */ lh $a0, ($a1) -/* 08AB20 80089F20 00000000 */ nop -/* 08AB24 80089F24 28810004 */ slti $at, $a0, 4 -/* 08AB28 80089F28 14200004 */ bnez $at, .L80089F3C -/* 08AB2C 80089F2C 00000000 */ nop -/* 08AB30 80089F30 A4A00000 */ sh $zero, ($a1) -/* 08AB34 80089F34 84A40000 */ lh $a0, ($a1) -/* 08AB38 80089F38 00000000 */ nop -.L80089F3C: -/* 08AB3C 80089F3C 1920000A */ blez $t1, .L80089F68 -/* 08AB40 80089F40 31588000 */ andi $t8, $t2, 0x8000 -/* 08AB44 80089F44 2499FFFF */ addiu $t9, $a0, -1 -/* 08AB48 80089F48 A4B90000 */ sh $t9, ($a1) -/* 08AB4C 80089F4C 84A40000 */ lh $a0, ($a1) -/* 08AB50 80089F50 24080003 */ li $t0, 3 -/* 08AB54 80089F54 04810005 */ bgez $a0, .L80089F6C -/* 08AB58 80089F58 00447025 */ or $t6, $v0, $a0 -/* 08AB5C 80089F5C A4A80000 */ sh $t0, ($a1) -/* 08AB60 80089F60 84A40000 */ lh $a0, ($a1) -/* 08AB64 80089F64 00000000 */ nop -.L80089F68: -/* 08AB68 80089F68 00447025 */ or $t6, $v0, $a0 -.L80089F6C: -/* 08AB6C 80089F6C 10CE0003 */ beq $a2, $t6, .L80089F7C -/* 08AB70 80089F70 24080003 */ li $t0, 3 -/* 08AB74 80089F74 240F0001 */ li $t7, 1 -/* 08AB78 80089F78 AFAF0034 */ sw $t7, 0x34($sp) -.L80089F7C: -/* 08AB7C 80089F7C 13000020 */ beqz $t8, .L8008A000 -/* 08AB80 80089F80 00002825 */ move $a1, $zero -/* 08AB84 80089F84 15040005 */ bne $t0, $a0, .L80089F9C -/* 08AB88 80089F88 00000000 */ nop -/* 08AB8C 80089F8C 15830003 */ bne $t4, $v1, .L80089F9C -/* 08AB90 80089F90 24190001 */ li $t9, 1 -/* 08AB94 80089F94 1000001A */ b .L8008A000 -/* 08AB98 80089F98 AFB9004C */ sw $t9, 0x4c($sp) -.L80089F9C: -/* 08AB9C 80089F9C 15040005 */ bne $t0, $a0, .L80089FB4 -/* 08ABA0 80089FA0 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 -/* 08ABA4 80089FA4 17E30003 */ bne $ra, $v1, .L80089FB4 -/* 08ABA8 80089FA8 240E0001 */ li $t6, 1 -/* 08ABAC 80089FAC 10000014 */ b .L8008A000 -/* 08ABB0 80089FB0 AFAE0048 */ sw $t6, 0x48($sp) -.L80089FB4: -/* 08ABB4 80089FB4 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 -/* 08ABB8 80089FB8 84C20000 */ lh $v0, ($a2) -/* 08ABBC 80089FBC 240F0001 */ li $t7, 1 -/* 08ABC0 80089FC0 28410013 */ slti $at, $v0, 0x13 -/* 08ABC4 80089FC4 1020000E */ beqz $at, .L8008A000 -/* 08ABC8 80089FC8 0004C0C0 */ sll $t8, $a0, 3 -/* 08ABCC 80089FCC 0304C023 */ subu $t8, $t8, $a0 -/* 08ABD0 80089FD0 0303C821 */ addu $t9, $t8, $v1 -/* 08ABD4 80089FD4 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 -/* 08ABD8 80089FD8 AFAF0038 */ sw $t7, 0x38($sp) -/* 08ABDC 80089FDC 00220821 */ addu $at, $at, $v0 -/* 08ABE0 80089FE0 272E0041 */ addiu $t6, $t9, 0x41 -/* 08ABE4 80089FE4 A02E6C58 */ sb $t6, %lo(D_80126C58)($at) -/* 08ABE8 80089FE8 244F0001 */ addiu $t7, $v0, 1 -/* 08ABEC 80089FEC A4CF0000 */ sh $t7, ($a2) -/* 08ABF0 80089FF0 84D80000 */ lh $t8, ($a2) -/* 08ABF4 80089FF4 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 -/* 08ABF8 80089FF8 00380821 */ addu $at, $at, $t8 -/* 08ABFC 80089FFC A0206C58 */ sb $zero, %lo(D_80126C58)($at) -.L8008A000: -/* 08AC00 8008A000 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 -/* 08AC04 8008A004 31594000 */ andi $t9, $t2, 0x4000 -/* 08AC08 8008A008 13200008 */ beqz $t9, .L8008A02C -/* 08AC0C 8008A00C 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 -/* 08AC10 8008A010 84CE0000 */ lh $t6, ($a2) -/* 08AC14 8008A014 240F0001 */ li $t7, 1 -/* 08AC18 8008A018 19C00003 */ blez $t6, .L8008A028 -/* 08AC1C 8008A01C 00000000 */ nop -/* 08AC20 8008A020 10000002 */ b .L8008A02C -/* 08AC24 8008A024 AFAF004C */ sw $t7, 0x4c($sp) -.L8008A028: -/* 08AC28 8008A028 A5A00000 */ sh $zero, ($t5) -.L8008A02C: -/* 08AC2C 8008A02C 31581000 */ andi $t8, $t2, 0x1000 -/* 08AC30 8008A030 13000002 */ beqz $t8, .L8008A03C -/* 08AC34 8008A034 24190001 */ li $t9, 1 -/* 08AC38 8008A038 AFB90048 */ sw $t9, 0x48($sp) -.L8008A03C: -/* 08AC3C 8008A03C 8FAE004C */ lw $t6, 0x4c($sp) -/* 08AC40 8008A040 240400AE */ li $a0, 174 -/* 08AC44 8008A044 11C00011 */ beqz $t6, .L8008A08C -/* 08AC48 8008A048 8FB90048 */ lw $t9, 0x48($sp) -/* 08AC4C 8008A04C 0C000741 */ jal play_sound_global -/* 08AC50 8008A050 AFA70044 */ sw $a3, 0x44($sp) -/* 08AC54 8008A054 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 -/* 08AC58 8008A058 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 -/* 08AC5C 8008A05C 84C20000 */ lh $v0, ($a2) -/* 08AC60 8008A060 8FA70044 */ lw $a3, 0x44($sp) -/* 08AC64 8008A064 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012 -/* 08AC68 8008A068 18400007 */ blez $v0, .L8008A088 -/* 08AC6C 8008A06C 25AD6C46 */ addiu $t5, %lo(gOptionsMenuItemIndex) # addiu $t5, $t5, 0x6c46 -/* 08AC70 8008A070 244FFFFF */ addiu $t7, $v0, -1 -/* 08AC74 8008A074 A4CF0000 */ sh $t7, ($a2) -/* 08AC78 8008A078 84D80000 */ lh $t8, ($a2) -/* 08AC7C 8008A07C 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 -/* 08AC80 8008A080 00380821 */ addu $at, $at, $t8 -/* 08AC84 8008A084 A0206C58 */ sb $zero, %lo(D_80126C58)($at) -.L8008A088: -/* 08AC88 8008A088 8FB90048 */ lw $t9, 0x48($sp) -.L8008A08C: -/* 08AC8C 8008A08C 00000000 */ nop -/* 08AC90 8008A090 132000CD */ beqz $t9, .L8008A3C8 -/* 08AC94 8008A094 8FAF003C */ lw $t7, 0x3c($sp) -/* 08AC98 8008A098 84CF0000 */ lh $t7, ($a2) -/* 08AC9C 8008A09C 240E0001 */ li $t6, 1 -/* 08ACA0 8008A0A0 15E00003 */ bnez $t7, .L8008A0B0 -/* 08ACA4 8008A0A4 AFAE0038 */ sw $t6, 0x38($sp) -/* 08ACA8 8008A0A8 100000C6 */ b .L8008A3C4 -/* 08ACAC 8008A0AC A5A00000 */ sh $zero, ($t5) -.L8008A0B0: -/* 08ACB0 8008A0B0 3C0B8012 */ lui $t3, %hi(D_80126C4C) # $t3, 0x8012 -/* 08ACB4 8008A0B4 3C098012 */ lui $t1, %hi(gCheatsAssetData) # $t1, 0x8012 -/* 08ACB8 8008A0B8 8D296C30 */ lw $t1, %lo(gCheatsAssetData)($t1) -/* 08ACBC 8008A0BC 256B6C4C */ addiu $t3, %lo(D_80126C4C) # addiu $t3, $t3, 0x6c4c -/* 08ACC0 8008A0C0 A5600000 */ sh $zero, ($t3) -/* 08ACC4 8008A0C4 3C0A8012 */ lui $t2, %hi(gNumberOfCheats) # $t2, 0x8012 -/* 08ACC8 8008A0C8 8D4A6C38 */ lw $t2, %lo(gNumberOfCheats)($t2) -/* 08ACCC 8008A0CC 85680000 */ lh $t0, ($t3) -/* 08ACD0 8008A0D0 000AC040 */ sll $t8, $t2, 1 -/* 08ACD4 8008A0D4 0118082A */ slt $at, $t0, $t8 -/* 08ACD8 8008A0D8 03005025 */ move $t2, $t8 -/* 08ACDC 8008A0DC 1020001F */ beqz $at, .L8008A15C -/* 08ACE0 8008A0E0 252C0002 */ addiu $t4, $t1, 2 -/* 08ACE4 8008A0E4 0008C840 */ sll $t9, $t0, 1 -.L8008A0E8: -/* 08ACE8 8008A0E8 01997021 */ addu $t6, $t4, $t9 -/* 08ACEC 8008A0EC 95CF0000 */ lhu $t7, ($t6) -/* 08ACF0 8008A0F0 3C058012 */ lui $a1, %hi(D_80126C54 + 3) # $a1, 0x8012 -/* 08ACF4 8008A0F4 01E91021 */ addu $v0, $t7, $t1 -/* 08ACF8 8008A0F8 24070001 */ li $a3, 1 -/* 08ACFC 8008A0FC 2444FFFF */ addiu $a0, $v0, -1 -/* 08AD00 8008A100 24A56C57 */ addiu $a1, %lo(D_80126C54 + 3) # addiu $a1, $a1, 0x6c57 -.L8008A104: -/* 08AD04 8008A104 90820001 */ lbu $v0, 1($a0) -/* 08AD08 8008A108 90A30001 */ lbu $v1, 1($a1) -/* 08AD0C 8008A10C 24840001 */ addiu $a0, $a0, 1 -/* 08AD10 8008A110 10430002 */ beq $v0, $v1, .L8008A11C -/* 08AD14 8008A114 24A50001 */ addiu $a1, $a1, 1 -/* 08AD18 8008A118 00003825 */ move $a3, $zero -.L8008A11C: -/* 08AD1C 8008A11C 10E00005 */ beqz $a3, .L8008A134 -/* 08AD20 8008A120 00000000 */ nop -/* 08AD24 8008A124 10400003 */ beqz $v0, .L8008A134 -/* 08AD28 8008A128 00000000 */ nop -/* 08AD2C 8008A12C 1460FFF5 */ bnez $v1, .L8008A104 -/* 08AD30 8008A130 00000000 */ nop -.L8008A134: -/* 08AD34 8008A134 14E00004 */ bnez $a3, .L8008A148 -/* 08AD38 8008A138 25180002 */ addiu $t8, $t0, 2 -/* 08AD3C 8008A13C A5780000 */ sh $t8, ($t3) -/* 08AD40 8008A140 85680000 */ lh $t0, ($t3) -/* 08AD44 8008A144 00000000 */ nop -.L8008A148: -/* 08AD48 8008A148 010A082A */ slt $at, $t0, $t2 -/* 08AD4C 8008A14C 10200003 */ beqz $at, .L8008A15C -/* 08AD50 8008A150 00000000 */ nop -/* 08AD54 8008A154 10E0FFE4 */ beqz $a3, .L8008A0E8 -/* 08AD58 8008A158 0008C840 */ sll $t9, $t0, 1 -.L8008A15C: -/* 08AD5C 8008A15C 14E00003 */ bnez $a3, .L8008A16C -/* 08AD60 8008A160 2419FFFF */ li $t9, -1 -/* 08AD64 8008A164 1000000E */ b .L8008A1A0 -/* 08AD68 8008A168 A5790000 */ sh $t9, ($t3) -.L8008A16C: -/* 08AD6C 8008A16C 3C03800E */ lui $v1, %hi(gUnlockedMagicCodes) # $v1, 0x800e -/* 08AD70 8008A170 2463FD9C */ addiu $v1, %lo(gUnlockedMagicCodes) # addiu $v1, $v1, -0x264 -/* 08AD74 8008A174 8C780000 */ lw $t8, ($v1) -/* 08AD78 8008A178 00087043 */ sra $t6, $t0, 1 -/* 08AD7C 8008A17C 240F0001 */ li $t7, 1 -/* 08AD80 8008A180 01CF1004 */ sllv $v0, $t7, $t6 -/* 08AD84 8008A184 0302C825 */ or $t9, $t8, $v0 -/* 08AD88 8008A188 AC790000 */ sw $t9, ($v1) -/* 08AD8C 8008A18C 3C0F800E */ lui $t7, %hi(gActiveMagicCodes) # $t7, 0x800e -/* 08AD90 8008A190 8DEFFD98 */ lw $t7, %lo(gActiveMagicCodes)($t7) -/* 08AD94 8008A194 3C01800E */ lui $at, %hi(gActiveMagicCodes) # $at, 0x800e -/* 08AD98 8008A198 01E27025 */ or $t6, $t7, $v0 -/* 08AD9C 8008A19C AC2EFD98 */ sw $t6, %lo(gActiveMagicCodes)($at) -.L8008A1A0: -/* 08ADA0 8008A1A0 24180004 */ li $t8, 4 -/* 08ADA4 8008A1A4 A5B80000 */ sh $t8, ($t5) -/* 08ADA8 8008A1A8 241900F0 */ li $t9, 240 -/* 08ADAC 8008A1AC 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 -/* 08ADB0 8008A1B0 10000084 */ b .L8008A3C4 -/* 08ADB4 8008A1B4 AC3963D8 */ sw $t9, %lo(gOpacityDecayTimer)($at) -.L8008A1B8: -/* 08ADB8 8008A1B8 17E20009 */ bne $ra, $v0, .L8008A1E0 -/* 08ADBC 8008A1BC 3C048012 */ lui $a0, %hi(D_801263E0) # $a0, 0x8012 -/* 08ADC0 8008A1C0 8D6F0000 */ lw $t7, ($t3) -/* 08ADC4 8008A1C4 314E9000 */ andi $t6, $t2, 0x9000 -/* 08ADC8 8008A1C8 11E00003 */ beqz $t7, .L8008A1D8 -/* 08ADCC 8008A1CC 24180001 */ li $t8, 1 -/* 08ADD0 8008A1D0 11C0007D */ beqz $t6, .L8008A3C8 -/* 08ADD4 8008A1D4 8FAF003C */ lw $t7, 0x3c($sp) -.L8008A1D8: -/* 08ADD8 8008A1D8 1000007A */ b .L8008A3C4 -/* 08ADDC 8008A1DC A5B80000 */ sh $t8, ($t5) -.L8008A1E0: -/* 08ADE0 8008A1E0 248463E0 */ addiu $a0, %lo(D_801263E0) # addiu $a0, $a0, 0x63e0 -/* 08ADE4 8008A1E4 8C830000 */ lw $v1, ($a0) -/* 08ADE8 8008A1E8 31599000 */ andi $t9, $t2, 0x9000 -/* 08ADEC 8008A1EC 1060002C */ beqz $v1, .L8008A2A0 -/* 08ADF0 8008A1F0 31589000 */ andi $t8, $t2, 0x9000 -/* 08ADF4 8008A1F4 13200015 */ beqz $t9, .L8008A24C -/* 08ADF8 8008A1F8 314E4000 */ andi $t6, $t2, 0x4000 -/* 08ADFC 8008A1FC 24010001 */ li $at, 1 -/* 08AE00 8008A200 1461000E */ bne $v1, $at, .L8008A23C -/* 08AE04 8008A204 240F0001 */ li $t7, 1 -/* 08AE08 8008A208 3C03800E */ lui $v1, %hi(gUnlockedMagicCodes) # $v1, 0x800e -/* 08AE0C 8008A20C 3C01800E */ lui $at, %hi(gActiveMagicCodes) # $at, 0x800e -/* 08AE10 8008A210 2463FD9C */ addiu $v1, %lo(gUnlockedMagicCodes) # addiu $v1, $v1, -0x264 -/* 08AE14 8008A214 AC20FD98 */ sw $zero, %lo(gActiveMagicCodes)($at) -/* 08AE18 8008A218 8C6E0000 */ lw $t6, ($v1) -/* 08AE1C 8008A21C A5BF0000 */ sh $ra, ($t5) -/* 08AE20 8008A220 31D80003 */ andi $t8, $t6, 3 -/* 08AE24 8008A224 AC780000 */ sw $t8, ($v1) -/* 08AE28 8008A228 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 -/* 08AE2C 8008A22C 241900F0 */ li $t9, 240 -/* 08AE30 8008A230 AFAF0038 */ sw $t7, 0x38($sp) -/* 08AE34 8008A234 10000003 */ b .L8008A244 -/* 08AE38 8008A238 AC3963D8 */ sw $t9, %lo(gOpacityDecayTimer)($at) -.L8008A23C: -/* 08AE3C 8008A23C 240F0001 */ li $t7, 1 -/* 08AE40 8008A240 AFAF003C */ sw $t7, 0x3c($sp) -.L8008A244: -/* 08AE44 8008A244 1000005F */ b .L8008A3C4 -/* 08AE48 8008A248 AC800000 */ sw $zero, ($a0) -.L8008A24C: -/* 08AE4C 8008A24C 11C00004 */ beqz $t6, .L8008A260 -/* 08AE50 8008A250 24180001 */ li $t8, 1 -/* 08AE54 8008A254 AFB8003C */ sw $t8, 0x3c($sp) -/* 08AE58 8008A258 1000005A */ b .L8008A3C4 -/* 08AE5C 8008A25C AC800000 */ sw $zero, ($a0) -.L8008A260: -/* 08AE60 8008A260 05210007 */ bgez $t1, .L8008A280 -/* 08AE64 8008A264 24010001 */ li $at, 1 -/* 08AE68 8008A268 14610005 */ bne $v1, $at, .L8008A280 -/* 08AE6C 8008A26C 24190001 */ li $t9, 1 -/* 08AE70 8008A270 240F0002 */ li $t7, 2 -/* 08AE74 8008A274 AFB90034 */ sw $t9, 0x34($sp) -/* 08AE78 8008A278 10000052 */ b .L8008A3C4 -/* 08AE7C 8008A27C AC8F0000 */ sw $t7, ($a0) -.L8008A280: -/* 08AE80 8008A280 19200050 */ blez $t1, .L8008A3C4 -/* 08AE84 8008A284 24010002 */ li $at, 2 -/* 08AE88 8008A288 1461004E */ bne $v1, $at, .L8008A3C4 -/* 08AE8C 8008A28C 240E0001 */ li $t6, 1 -/* 08AE90 8008A290 24180001 */ li $t8, 1 -/* 08AE94 8008A294 AFAE0034 */ sw $t6, 0x34($sp) -/* 08AE98 8008A298 1000004A */ b .L8008A3C4 -/* 08AE9C 8008A29C AC980000 */ sw $t8, ($a0) -.L8008A2A0: -/* 08AEA0 8008A2A0 0521000B */ bgez $t1, .L8008A2D0 -/* 08AEA4 8008A2A4 00403025 */ move $a2, $v0 -/* 08AEA8 8008A2A8 24590001 */ addiu $t9, $v0, 1 -/* 08AEAC 8008A2AC A5B90000 */ sh $t9, ($t5) -/* 08AEB0 8008A2B0 85A20000 */ lh $v0, ($t5) -/* 08AEB4 8008A2B4 24080003 */ li $t0, 3 -/* 08AEB8 8008A2B8 28410004 */ slti $at, $v0, 4 -/* 08AEBC 8008A2BC 14200004 */ bnez $at, .L8008A2D0 -/* 08AEC0 8008A2C0 00000000 */ nop -/* 08AEC4 8008A2C4 A5A80000 */ sh $t0, ($t5) -/* 08AEC8 8008A2C8 85A20000 */ lh $v0, ($t5) -/* 08AECC 8008A2CC 00000000 */ nop -.L8008A2D0: -/* 08AED0 8008A2D0 1920000A */ blez $t1, .L8008A2FC -/* 08AED4 8008A2D4 24080003 */ li $t0, 3 -/* 08AED8 8008A2D8 244FFFFF */ addiu $t7, $v0, -1 -/* 08AEDC 8008A2DC A5AF0000 */ sh $t7, ($t5) -/* 08AEE0 8008A2E0 85A20000 */ lh $v0, ($t5) -/* 08AEE4 8008A2E4 00000000 */ nop -/* 08AEE8 8008A2E8 04410004 */ bgez $v0, .L8008A2FC -/* 08AEEC 8008A2EC 00000000 */ nop -/* 08AEF0 8008A2F0 A5A00000 */ sh $zero, ($t5) -/* 08AEF4 8008A2F4 85A20000 */ lh $v0, ($t5) -/* 08AEF8 8008A2F8 00000000 */ nop -.L8008A2FC: -/* 08AEFC 8008A2FC 10C20002 */ beq $a2, $v0, .L8008A308 -/* 08AF00 8008A300 240E0001 */ li $t6, 1 -/* 08AF04 8008A304 AFAE0034 */ sw $t6, 0x34($sp) -.L8008A308: -/* 08AF08 8008A308 1300001D */ beqz $t8, .L8008A380 -/* 08AF0C 8008A30C 24190001 */ li $t9, 1 -/* 08AF10 8008A310 15020004 */ bne $t0, $v0, .L8008A324 -/* 08AF14 8008A314 AFB90038 */ sw $t9, 0x38($sp) -/* 08AF18 8008A318 240FFFFF */ li $t7, -1 -/* 08AF1C 8008A31C 10000018 */ b .L8008A380 -/* 08AF20 8008A320 AFAF0040 */ sw $t7, 0x40($sp) -.L8008A324: -/* 08AF24 8008A324 1440000D */ bnez $v0, .L8008A35C -/* 08AF28 8008A328 3C058012 */ lui $a1, %hi(gCheatInputCurrentRow) # $a1, 0x8012 -/* 08AF2C 8008A32C 3C028012 */ lui $v0, %hi(gCheatInputCurrentColumn) # $v0, 0x8012 -/* 08AF30 8008A330 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 -/* 08AF34 8008A334 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 -/* 08AF38 8008A338 24426C42 */ addiu $v0, %lo(gCheatInputCurrentColumn) # addiu $v0, $v0, 0x6c42 -/* 08AF3C 8008A33C 24A56C40 */ addiu $a1, %lo(gCheatInputCurrentRow) # addiu $a1, $a1, 0x6c40 -/* 08AF40 8008A340 A4A00000 */ sh $zero, ($a1) -/* 08AF44 8008A344 A4400000 */ sh $zero, ($v0) -/* 08AF48 8008A348 A4C00000 */ sh $zero, ($a2) -/* 08AF4C 8008A34C 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 -/* 08AF50 8008A350 A0206C58 */ sb $zero, %lo(D_80126C58)($at) -/* 08AF54 8008A354 1000000A */ b .L8008A380 -/* 08AF58 8008A358 A5AC0000 */ sh $t4, ($t5) -.L8008A35C: -/* 08AF5C 8008A35C 24010001 */ li $at, 1 -/* 08AF60 8008A360 14410003 */ bne $v0, $at, .L8008A370 -/* 08AF64 8008A364 240E0002 */ li $t6, 2 -/* 08AF68 8008A368 10000005 */ b .L8008A380 -/* 08AF6C 8008A36C AC8E0000 */ sw $t6, ($a0) -.L8008A370: -/* 08AF70 8008A370 24010002 */ li $at, 2 -/* 08AF74 8008A374 14410002 */ bne $v0, $at, .L8008A380 -/* 08AF78 8008A378 24180001 */ li $t8, 1 -/* 08AF7C 8008A37C AFB80040 */ sw $t8, 0x40($sp) -.L8008A380: -/* 08AF80 8008A380 31594000 */ andi $t9, $t2, 0x4000 -/* 08AF84 8008A384 13200002 */ beqz $t9, .L8008A390 -/* 08AF88 8008A388 240FFFFF */ li $t7, -1 -/* 08AF8C 8008A38C AFAF0040 */ sw $t7, 0x40($sp) -.L8008A390: -/* 08AF90 8008A390 8FAE0040 */ lw $t6, 0x40($sp) -/* 08AF94 8008A394 00000000 */ nop -/* 08AF98 8008A398 11C0000B */ beqz $t6, .L8008A3C8 -/* 08AF9C 8008A39C 8FAF003C */ lw $t7, 0x3c($sp) -/* 08AFA0 8008A3A0 05C10003 */ bgez $t6, .L8008A3B0 -/* 08AFA4 8008A3A4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 08AFA8 8008A3A8 24180001 */ li $t8, 1 -/* 08AFAC 8008A3AC AFB8003C */ sw $t8, 0x3c($sp) -.L8008A3B0: -/* 08AFB0 8008A3B0 8FB90040 */ lw $t9, 0x40($sp) -/* 08AFB4 8008A3B4 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 08AFB8 8008A3B8 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 08AFBC 8008A3BC 0C030076 */ jal func_800C01D8 -/* 08AFC0 8008A3C0 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) -.L8008A3C4: -/* 08AFC4 8008A3C4 8FAF003C */ lw $t7, 0x3c($sp) -.L8008A3C8: -/* 08AFC8 8008A3C8 00000000 */ nop -/* 08AFCC 8008A3CC 11E00005 */ beqz $t7, .L8008A3E4 -/* 08AFD0 8008A3D0 24040241 */ li $a0, 577 -/* 08AFD4 8008A3D4 0C000741 */ jal play_sound_global -/* 08AFD8 8008A3D8 00002825 */ move $a1, $zero -/* 08AFDC 8008A3DC 1000000D */ b .L8008A414 -/* 08AFE0 8008A3E0 00000000 */ nop -.L8008A3E4: -/* 08AFE4 8008A3E4 8FAE0038 */ lw $t6, 0x38($sp) -/* 08AFE8 8008A3E8 8FB80034 */ lw $t8, 0x34($sp) -/* 08AFEC 8008A3EC 11C00005 */ beqz $t6, .L8008A404 -/* 08AFF0 8008A3F0 240400EF */ li $a0, 239 -/* 08AFF4 8008A3F4 0C000741 */ jal play_sound_global -/* 08AFF8 8008A3F8 00002825 */ move $a1, $zero -/* 08AFFC 8008A3FC 10000005 */ b .L8008A414 -/* 08B000 8008A400 00000000 */ nop -.L8008A404: -/* 08B004 8008A404 13000003 */ beqz $t8, .L8008A414 -/* 08B008 8008A408 240400EB */ li $a0, 235 -/* 08B00C 8008A40C 0C000741 */ jal play_sound_global -/* 08B010 8008A410 00002825 */ move $a1, $zero -.L8008A414: -/* 08B014 8008A414 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 08B018 8008A418 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 08B01C 8008A41C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 08B020 8008A420 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -/* 08B024 8008A424 2841FFE2 */ slti $at, $v0, -0x1e -/* 08B028 8008A428 14200003 */ bnez $at, .L8008A438 -/* 08B02C 8008A42C 2841001F */ slti $at, $v0, 0x1f -/* 08B030 8008A430 14200022 */ bnez $at, .L8008A4BC -/* 08B034 8008A434 8FBF0014 */ lw $ra, 0x14($sp) -.L8008A438: -/* 08B038 8008A438 0C022932 */ jal unload_big_font_2 -/* 08B03C 8008A43C 00000000 */ nop -/* 08B040 8008A440 3C19800E */ lui $t9, %hi(gMenuDelay) # $t9, 0x800e -/* 08B044 8008A444 8F39F47C */ lw $t9, %lo(gMenuDelay)($t9) -/* 08B048 8008A448 3C0F800E */ lui $t7, %hi(gActiveMagicCodes) # $t7, 0x800e -/* 08B04C 8008A44C 07210018 */ bgez $t9, .L8008A4B0 -/* 08B050 8008A450 00000000 */ nop -/* 08B054 8008A454 8DEFFD98 */ lw $t7, %lo(gActiveMagicCodes)($t7) -/* 08B058 8008A458 00000000 */ nop -/* 08B05C 8008A45C 31EE0400 */ andi $t6, $t7, 0x400 -/* 08B060 8008A460 11C0000F */ beqz $t6, .L8008A4A0 -/* 08B064 8008A464 00000000 */ nop -/* 08B068 8008A468 0C0002CA */ jal func_80000B28 -/* 08B06C 8008A46C 00000000 */ nop -/* 08B070 8008A470 24180001 */ li $t8, 1 -/* 08B074 8008A474 3C01800E */ lui $at, %hi(gViewingCreditsFromCheat) # $at, 0x800e -/* 08B078 8008A478 AC381B4C */ sw $t8, %lo(gViewingCreditsFromCheat)($at) -/* 08B07C 8008A47C 0C0204F4 */ jal menu_init -/* 08B080 8008A480 24040019 */ li $a0, 25 -/* 08B084 8008A484 3C19800E */ lui $t9, %hi(gActiveMagicCodes) # $t9, 0x800e -/* 08B088 8008A488 8F39FD98 */ lw $t9, %lo(gActiveMagicCodes)($t9) -/* 08B08C 8008A48C 2401FBFF */ li $at, -1025 -/* 08B090 8008A490 03217824 */ and $t7, $t9, $at -/* 08B094 8008A494 3C01800E */ lui $at, %hi(gActiveMagicCodes) # $at, 0x800e -/* 08B098 8008A498 10000007 */ b .L8008A4B8 -/* 08B09C 8008A49C AC2FFD98 */ sw $t7, %lo(gActiveMagicCodes)($at) -.L8008A4A0: -/* 08B0A0 8008A4A0 0C0204F4 */ jal menu_init -/* 08B0A4 8008A4A4 2404000C */ li $a0, 12 -/* 08B0A8 8008A4A8 10000004 */ b .L8008A4BC -/* 08B0AC 8008A4AC 8FBF0014 */ lw $ra, 0x14($sp) -.L8008A4B0: -/* 08B0B0 8008A4B0 0C0204F4 */ jal menu_init -/* 08B0B4 8008A4B4 2404000B */ li $a0, 11 -.L8008A4B8: -/* 08B0B8 8008A4B8 8FBF0014 */ lw $ra, 0x14($sp) -.L8008A4BC: -/* 08B0BC 8008A4BC 27BD0060 */ addiu $sp, $sp, 0x60 -/* 08B0C0 8008A4C0 03E00008 */ jr $ra -/* 08B0C4 8008A4C4 00001025 */ move $v0, $zero - +glabel menu_magic_codes_loop +/* 08A8D8 80089CD8 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 08A8DC 80089CDC 3C0B8012 */ lui $t3, %hi(gOpacityDecayTimer) # $t3, 0x8012 +/* 08A8E0 80089CE0 256B63D8 */ addiu $t3, %lo(gOpacityDecayTimer) # addiu $t3, $t3, 0x63d8 +/* 08A8E4 80089CE4 8D620000 */ lw $v0, ($t3) +/* 08A8E8 80089CE8 AFBF0014 */ sw $ra, 0x14($sp) +/* 08A8EC 80089CEC AFA0004C */ sw $zero, 0x4c($sp) +/* 08A8F0 80089CF0 AFA00048 */ sw $zero, 0x48($sp) +/* 08A8F4 80089CF4 AFA00040 */ sw $zero, 0x40($sp) +/* 08A8F8 80089CF8 00003825 */ move $a3, $zero +/* 08A8FC 80089CFC AFA0003C */ sw $zero, 0x3c($sp) +/* 08A900 80089D00 AFA00038 */ sw $zero, 0x38($sp) +/* 08A904 80089D04 10400005 */ beqz $v0, .L80089D1C +/* 08A908 80089D08 AFA00034 */ sw $zero, 0x34($sp) +/* 08A90C 80089D0C 00447023 */ subu $t6, $v0, $a0 +/* 08A910 80089D10 05C10002 */ bgez $t6, .L80089D1C +/* 08A914 80089D14 AD6E0000 */ sw $t6, ($t3) +/* 08A918 80089D18 AD600000 */ sw $zero, ($t3) +.L80089D1C: +/* 08A91C 80089D1C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08A920 80089D20 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08A924 80089D24 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 +/* 08A928 80089D28 1040000F */ beqz $v0, .L80089D68 +/* 08A92C 80089D2C 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc +/* 08A930 80089D30 18400008 */ blez $v0, .L80089D54 +/* 08A934 80089D34 0044C823 */ subu $t9, $v0, $a0 +/* 08A938 80089D38 0044C021 */ addu $t8, $v0, $a0 +/* 08A93C 80089D3C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08A940 80089D40 AC38F47C */ sw $t8, %lo(gMenuDelay)($at) +/* 08A944 80089D44 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08A948 80089D48 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08A94C 80089D4C 10000007 */ b .L80089D6C +/* 08A950 80089D50 8C6E0000 */ lw $t6, ($v1) +.L80089D54: +/* 08A954 80089D54 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08A958 80089D58 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) +/* 08A95C 80089D5C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08A960 80089D60 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08A964 80089D64 00000000 */ nop +.L80089D68: +/* 08A968 80089D68 8C6E0000 */ lw $t6, ($v1) +.L80089D6C: +/* 08A96C 80089D6C 2841FFED */ slti $at, $v0, -0x13 +/* 08A970 80089D70 01C47821 */ addu $t7, $t6, $a0 +/* 08A974 80089D74 31F8003F */ andi $t8, $t7, 0x3f +/* 08A978 80089D78 14200009 */ bnez $at, .L80089DA0 +/* 08A97C 80089D7C AC780000 */ sw $t8, ($v1) +/* 08A980 80089D80 28410014 */ slti $at, $v0, 0x14 +/* 08A984 80089D84 10200006 */ beqz $at, .L80089DA0 +/* 08A988 80089D88 00000000 */ nop +/* 08A98C 80089D8C 0C0225A9 */ jal render_magic_codes_ui +/* 08A990 80089D90 AFA70044 */ sw $a3, 0x44($sp) +/* 08A994 80089D94 3C0B8012 */ lui $t3, %hi(gOpacityDecayTimer) # $t3, 0x8012 +/* 08A998 80089D98 8FA70044 */ lw $a3, 0x44($sp) +/* 08A99C 80089D9C 256B63D8 */ addiu $t3, %lo(gOpacityDecayTimer) # addiu $t3, $t3, 0x63d8 +.L80089DA0: +/* 08A9A0 80089DA0 3C198012 */ lui $t9, %hi(gIgnorePlayerInput) # $t9, 0x8012 +/* 08A9A4 80089DA4 8F3963C4 */ lw $t9, %lo(gIgnorePlayerInput)($t9) +/* 08A9A8 80089DA8 00005025 */ move $t2, $zero +/* 08A9AC 80089DAC 00004025 */ move $t0, $zero +/* 08A9B0 80089DB0 17200025 */ bnez $t9, .L80089E48 +/* 08A9B4 80089DB4 00004825 */ move $t1, $zero +/* 08A9B8 80089DB8 3C0E800E */ lui $t6, %hi(gMenuDelay) # $t6, 0x800e +/* 08A9BC 80089DBC 8DCEF47C */ lw $t6, %lo(gMenuDelay)($t6) +/* 08A9C0 80089DC0 00003025 */ move $a2, $zero +/* 08A9C4 80089DC4 15C00020 */ bnez $t6, .L80089E48 +/* 08A9C8 80089DC8 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 +/* 08A9CC 80089DCC 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 +/* 08A9D0 80089DD0 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 +/* 08A9D4 80089DD4 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c +.L80089DD8: +/* 08A9D8 80089DD8 00C02025 */ move $a0, $a2 +/* 08A9DC 80089DDC AFA30020 */ sw $v1, 0x20($sp) +/* 08A9E0 80089DE0 AFA5001C */ sw $a1, 0x1c($sp) +/* 08A9E4 80089DE4 AFA6005C */ sw $a2, 0x5c($sp) +/* 08A9E8 80089DE8 AFA70044 */ sw $a3, 0x44($sp) +/* 08A9EC 80089DEC AFA80054 */ sw $t0, 0x54($sp) +/* 08A9F0 80089DF0 AFA90050 */ sw $t1, 0x50($sp) +/* 08A9F4 80089DF4 0C01A955 */ jal get_buttons_pressed_from_player +/* 08A9F8 80089DF8 AFAA0058 */ sw $t2, 0x58($sp) +/* 08A9FC 80089DFC 8FA30020 */ lw $v1, 0x20($sp) +/* 08AA00 80089E00 8FA5001C */ lw $a1, 0x1c($sp) +/* 08AA04 80089E04 8FA6005C */ lw $a2, 0x5c($sp) +/* 08AA08 80089E08 8FA80054 */ lw $t0, 0x54($sp) +/* 08AA0C 80089E0C 8FA90050 */ lw $t1, 0x50($sp) +/* 08AA10 80089E10 8FAA0058 */ lw $t2, 0x58($sp) +/* 08AA14 80089E14 806F0000 */ lb $t7, ($v1) +/* 08AA18 80089E18 80B80000 */ lb $t8, ($a1) +/* 08AA1C 80089E1C 24010004 */ li $at, 4 +/* 08AA20 80089E20 8FA70044 */ lw $a3, 0x44($sp) +/* 08AA24 80089E24 24C60001 */ addiu $a2, $a2, 1 +/* 08AA28 80089E28 24630001 */ addiu $v1, $v1, 1 +/* 08AA2C 80089E2C 24A50001 */ addiu $a1, $a1, 1 +/* 08AA30 80089E30 01425025 */ or $t2, $t2, $v0 +/* 08AA34 80089E34 010F4021 */ addu $t0, $t0, $t7 +/* 08AA38 80089E38 14C1FFE7 */ bne $a2, $at, .L80089DD8 +/* 08AA3C 80089E3C 01384821 */ addu $t1, $t1, $t8 +/* 08AA40 80089E40 3C0B8012 */ lui $t3, %hi(gOpacityDecayTimer) # $t3, 0x8012 +/* 08AA44 80089E44 256B63D8 */ addiu $t3, %lo(gOpacityDecayTimer) # addiu $t3, $t3, 0x63d8 +.L80089E48: +/* 08AA48 80089E48 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012 +/* 08AA4C 80089E4C 25AD6C46 */ addiu $t5, %lo(gOptionsMenuItemIndex) # addiu $t5, $t5, 0x6c46 +/* 08AA50 80089E50 85A20000 */ lh $v0, ($t5) +/* 08AA54 80089E54 24010004 */ li $at, 4 +/* 08AA58 80089E58 14410009 */ bne $v0, $at, .L80089E80 +/* 08AA5C 80089E5C 240C0005 */ li $t4, 5 +/* 08AA60 80089E60 8D790000 */ lw $t9, ($t3) +/* 08AA64 80089E64 314E9000 */ andi $t6, $t2, 0x9000 +/* 08AA68 80089E68 13200003 */ beqz $t9, .L80089E78 +/* 08AA6C 80089E6C 00000000 */ nop +/* 08AA70 80089E70 11C00155 */ beqz $t6, .L8008A3C8 +/* 08AA74 80089E74 8FAF003C */ lw $t7, 0x3c($sp) +.L80089E78: +/* 08AA78 80089E78 10000152 */ b .L8008A3C4 +/* 08AA7C 80089E7C A5A00000 */ sh $zero, ($t5) +.L80089E80: +/* 08AA80 80089E80 158200CD */ bne $t4, $v0, .L8008A1B8 +/* 08AA84 80089E84 241F0006 */ li $ra, 6 +/* 08AA88 80089E88 3C028012 */ lui $v0, %hi(gCheatInputCurrentColumn) # $v0, 0x8012 +/* 08AA8C 80089E8C 24426C42 */ addiu $v0, %lo(gCheatInputCurrentColumn) # addiu $v0, $v0, 0x6c42 +/* 08AA90 80089E90 84430000 */ lh $v1, ($v0) +/* 08AA94 80089E94 3C058012 */ lui $a1, %hi(gCheatInputCurrentRow) # $a1, 0x8012 +/* 08AA98 80089E98 24A56C40 */ addiu $a1, %lo(gCheatInputCurrentRow) # addiu $a1, $a1, 0x6c40 +/* 08AA9C 80089E9C 84A40000 */ lh $a0, ($a1) +/* 08AAA0 80089EA0 306F000F */ andi $t7, $v1, 0xf +/* 08AAA4 80089EA4 000FC100 */ sll $t8, $t7, 4 +/* 08AAA8 80089EA8 0501000A */ bgez $t0, .L80089ED4 +/* 08AAAC 80089EAC 03043025 */ or $a2, $t8, $a0 +/* 08AAB0 80089EB0 2479FFFF */ addiu $t9, $v1, -1 +/* 08AAB4 80089EB4 A4590000 */ sh $t9, ($v0) +/* 08AAB8 80089EB8 84430000 */ lh $v1, ($v0) +/* 08AABC 80089EBC 241F0006 */ li $ra, 6 +/* 08AAC0 80089EC0 04610004 */ bgez $v1, .L80089ED4 +/* 08AAC4 80089EC4 00000000 */ nop +/* 08AAC8 80089EC8 A45F0000 */ sh $ra, ($v0) +/* 08AACC 80089ECC 84430000 */ lh $v1, ($v0) +/* 08AAD0 80089ED0 00000000 */ nop +.L80089ED4: +/* 08AAD4 80089ED4 1900000B */ blez $t0, .L80089F04 +/* 08AAD8 80089ED8 241F0006 */ li $ra, 6 +/* 08AADC 80089EDC 246E0001 */ addiu $t6, $v1, 1 +/* 08AAE0 80089EE0 A44E0000 */ sh $t6, ($v0) +/* 08AAE4 80089EE4 84430000 */ lh $v1, ($v0) +/* 08AAE8 80089EE8 00000000 */ nop +/* 08AAEC 80089EEC 28610007 */ slti $at, $v1, 7 +/* 08AAF0 80089EF0 14200004 */ bnez $at, .L80089F04 +/* 08AAF4 80089EF4 00000000 */ nop +/* 08AAF8 80089EF8 A4400000 */ sh $zero, ($v0) +/* 08AAFC 80089EFC 84430000 */ lh $v1, ($v0) +/* 08AB00 80089F00 00000000 */ nop +.L80089F04: +/* 08AB04 80089F04 3062000F */ andi $v0, $v1, 0xf +/* 08AB08 80089F08 00027900 */ sll $t7, $v0, 4 +/* 08AB0C 80089F0C 0521000B */ bgez $t1, .L80089F3C +/* 08AB10 80089F10 01E01025 */ move $v0, $t7 +/* 08AB14 80089F14 24980001 */ addiu $t8, $a0, 1 +/* 08AB18 80089F18 A4B80000 */ sh $t8, ($a1) +/* 08AB1C 80089F1C 84A40000 */ lh $a0, ($a1) +/* 08AB20 80089F20 00000000 */ nop +/* 08AB24 80089F24 28810004 */ slti $at, $a0, 4 +/* 08AB28 80089F28 14200004 */ bnez $at, .L80089F3C +/* 08AB2C 80089F2C 00000000 */ nop +/* 08AB30 80089F30 A4A00000 */ sh $zero, ($a1) +/* 08AB34 80089F34 84A40000 */ lh $a0, ($a1) +/* 08AB38 80089F38 00000000 */ nop +.L80089F3C: +/* 08AB3C 80089F3C 1920000A */ blez $t1, .L80089F68 +/* 08AB40 80089F40 31588000 */ andi $t8, $t2, 0x8000 +/* 08AB44 80089F44 2499FFFF */ addiu $t9, $a0, -1 +/* 08AB48 80089F48 A4B90000 */ sh $t9, ($a1) +/* 08AB4C 80089F4C 84A40000 */ lh $a0, ($a1) +/* 08AB50 80089F50 24080003 */ li $t0, 3 +/* 08AB54 80089F54 04810005 */ bgez $a0, .L80089F6C +/* 08AB58 80089F58 00447025 */ or $t6, $v0, $a0 +/* 08AB5C 80089F5C A4A80000 */ sh $t0, ($a1) +/* 08AB60 80089F60 84A40000 */ lh $a0, ($a1) +/* 08AB64 80089F64 00000000 */ nop +.L80089F68: +/* 08AB68 80089F68 00447025 */ or $t6, $v0, $a0 +.L80089F6C: +/* 08AB6C 80089F6C 10CE0003 */ beq $a2, $t6, .L80089F7C +/* 08AB70 80089F70 24080003 */ li $t0, 3 +/* 08AB74 80089F74 240F0001 */ li $t7, 1 +/* 08AB78 80089F78 AFAF0034 */ sw $t7, 0x34($sp) +.L80089F7C: +/* 08AB7C 80089F7C 13000020 */ beqz $t8, .L8008A000 +/* 08AB80 80089F80 00002825 */ move $a1, $zero +/* 08AB84 80089F84 15040005 */ bne $t0, $a0, .L80089F9C +/* 08AB88 80089F88 00000000 */ nop +/* 08AB8C 80089F8C 15830003 */ bne $t4, $v1, .L80089F9C +/* 08AB90 80089F90 24190001 */ li $t9, 1 +/* 08AB94 80089F94 1000001A */ b .L8008A000 +/* 08AB98 80089F98 AFB9004C */ sw $t9, 0x4c($sp) +.L80089F9C: +/* 08AB9C 80089F9C 15040005 */ bne $t0, $a0, .L80089FB4 +/* 08ABA0 80089FA0 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 +/* 08ABA4 80089FA4 17E30003 */ bne $ra, $v1, .L80089FB4 +/* 08ABA8 80089FA8 240E0001 */ li $t6, 1 +/* 08ABAC 80089FAC 10000014 */ b .L8008A000 +/* 08ABB0 80089FB0 AFAE0048 */ sw $t6, 0x48($sp) +.L80089FB4: +/* 08ABB4 80089FB4 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 +/* 08ABB8 80089FB8 84C20000 */ lh $v0, ($a2) +/* 08ABBC 80089FBC 240F0001 */ li $t7, 1 +/* 08ABC0 80089FC0 28410013 */ slti $at, $v0, 0x13 +/* 08ABC4 80089FC4 1020000E */ beqz $at, .L8008A000 +/* 08ABC8 80089FC8 0004C0C0 */ sll $t8, $a0, 3 +/* 08ABCC 80089FCC 0304C023 */ subu $t8, $t8, $a0 +/* 08ABD0 80089FD0 0303C821 */ addu $t9, $t8, $v1 +/* 08ABD4 80089FD4 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 +/* 08ABD8 80089FD8 AFAF0038 */ sw $t7, 0x38($sp) +/* 08ABDC 80089FDC 00220821 */ addu $at, $at, $v0 +/* 08ABE0 80089FE0 272E0041 */ addiu $t6, $t9, 0x41 +/* 08ABE4 80089FE4 A02E6C58 */ sb $t6, %lo(D_80126C58)($at) +/* 08ABE8 80089FE8 244F0001 */ addiu $t7, $v0, 1 +/* 08ABEC 80089FEC A4CF0000 */ sh $t7, ($a2) +/* 08ABF0 80089FF0 84D80000 */ lh $t8, ($a2) +/* 08ABF4 80089FF4 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 +/* 08ABF8 80089FF8 00380821 */ addu $at, $at, $t8 +/* 08ABFC 80089FFC A0206C58 */ sb $zero, %lo(D_80126C58)($at) +.L8008A000: +/* 08AC00 8008A000 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 +/* 08AC04 8008A004 31594000 */ andi $t9, $t2, 0x4000 +/* 08AC08 8008A008 13200008 */ beqz $t9, .L8008A02C +/* 08AC0C 8008A00C 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 +/* 08AC10 8008A010 84CE0000 */ lh $t6, ($a2) +/* 08AC14 8008A014 240F0001 */ li $t7, 1 +/* 08AC18 8008A018 19C00003 */ blez $t6, .L8008A028 +/* 08AC1C 8008A01C 00000000 */ nop +/* 08AC20 8008A020 10000002 */ b .L8008A02C +/* 08AC24 8008A024 AFAF004C */ sw $t7, 0x4c($sp) +.L8008A028: +/* 08AC28 8008A028 A5A00000 */ sh $zero, ($t5) +.L8008A02C: +/* 08AC2C 8008A02C 31581000 */ andi $t8, $t2, 0x1000 +/* 08AC30 8008A030 13000002 */ beqz $t8, .L8008A03C +/* 08AC34 8008A034 24190001 */ li $t9, 1 +/* 08AC38 8008A038 AFB90048 */ sw $t9, 0x48($sp) +.L8008A03C: +/* 08AC3C 8008A03C 8FAE004C */ lw $t6, 0x4c($sp) +/* 08AC40 8008A040 240400AE */ li $a0, 174 +/* 08AC44 8008A044 11C00011 */ beqz $t6, .L8008A08C +/* 08AC48 8008A048 8FB90048 */ lw $t9, 0x48($sp) +/* 08AC4C 8008A04C 0C000741 */ jal play_sound_global +/* 08AC50 8008A050 AFA70044 */ sw $a3, 0x44($sp) +/* 08AC54 8008A054 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 +/* 08AC58 8008A058 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 +/* 08AC5C 8008A05C 84C20000 */ lh $v0, ($a2) +/* 08AC60 8008A060 8FA70044 */ lw $a3, 0x44($sp) +/* 08AC64 8008A064 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012 +/* 08AC68 8008A068 18400007 */ blez $v0, .L8008A088 +/* 08AC6C 8008A06C 25AD6C46 */ addiu $t5, %lo(gOptionsMenuItemIndex) # addiu $t5, $t5, 0x6c46 +/* 08AC70 8008A070 244FFFFF */ addiu $t7, $v0, -1 +/* 08AC74 8008A074 A4CF0000 */ sh $t7, ($a2) +/* 08AC78 8008A078 84D80000 */ lh $t8, ($a2) +/* 08AC7C 8008A07C 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 +/* 08AC80 8008A080 00380821 */ addu $at, $at, $t8 +/* 08AC84 8008A084 A0206C58 */ sb $zero, %lo(D_80126C58)($at) +.L8008A088: +/* 08AC88 8008A088 8FB90048 */ lw $t9, 0x48($sp) +.L8008A08C: +/* 08AC8C 8008A08C 00000000 */ nop +/* 08AC90 8008A090 132000CD */ beqz $t9, .L8008A3C8 +/* 08AC94 8008A094 8FAF003C */ lw $t7, 0x3c($sp) +/* 08AC98 8008A098 84CF0000 */ lh $t7, ($a2) +/* 08AC9C 8008A09C 240E0001 */ li $t6, 1 +/* 08ACA0 8008A0A0 15E00003 */ bnez $t7, .L8008A0B0 +/* 08ACA4 8008A0A4 AFAE0038 */ sw $t6, 0x38($sp) +/* 08ACA8 8008A0A8 100000C6 */ b .L8008A3C4 +/* 08ACAC 8008A0AC A5A00000 */ sh $zero, ($t5) +.L8008A0B0: +/* 08ACB0 8008A0B0 3C0B8012 */ lui $t3, %hi(D_80126C4C) # $t3, 0x8012 +/* 08ACB4 8008A0B4 3C098012 */ lui $t1, %hi(gCheatsAssetData) # $t1, 0x8012 +/* 08ACB8 8008A0B8 8D296C30 */ lw $t1, %lo(gCheatsAssetData)($t1) +/* 08ACBC 8008A0BC 256B6C4C */ addiu $t3, %lo(D_80126C4C) # addiu $t3, $t3, 0x6c4c +/* 08ACC0 8008A0C0 A5600000 */ sh $zero, ($t3) +/* 08ACC4 8008A0C4 3C0A8012 */ lui $t2, %hi(gNumberOfCheats) # $t2, 0x8012 +/* 08ACC8 8008A0C8 8D4A6C38 */ lw $t2, %lo(gNumberOfCheats)($t2) +/* 08ACCC 8008A0CC 85680000 */ lh $t0, ($t3) +/* 08ACD0 8008A0D0 000AC040 */ sll $t8, $t2, 1 +/* 08ACD4 8008A0D4 0118082A */ slt $at, $t0, $t8 +/* 08ACD8 8008A0D8 03005025 */ move $t2, $t8 +/* 08ACDC 8008A0DC 1020001F */ beqz $at, .L8008A15C +/* 08ACE0 8008A0E0 252C0002 */ addiu $t4, $t1, 2 +/* 08ACE4 8008A0E4 0008C840 */ sll $t9, $t0, 1 +.L8008A0E8: +/* 08ACE8 8008A0E8 01997021 */ addu $t6, $t4, $t9 +/* 08ACEC 8008A0EC 95CF0000 */ lhu $t7, ($t6) +/* 08ACF0 8008A0F0 3C058012 */ lui $a1, %hi(D_80126C54 + 3) # $a1, 0x8012 +/* 08ACF4 8008A0F4 01E91021 */ addu $v0, $t7, $t1 +/* 08ACF8 8008A0F8 24070001 */ li $a3, 1 +/* 08ACFC 8008A0FC 2444FFFF */ addiu $a0, $v0, -1 +/* 08AD00 8008A100 24A56C57 */ addiu $a1, %lo(D_80126C54 + 3) # addiu $a1, $a1, 0x6c57 +.L8008A104: +/* 08AD04 8008A104 90820001 */ lbu $v0, 1($a0) +/* 08AD08 8008A108 90A30001 */ lbu $v1, 1($a1) +/* 08AD0C 8008A10C 24840001 */ addiu $a0, $a0, 1 +/* 08AD10 8008A110 10430002 */ beq $v0, $v1, .L8008A11C +/* 08AD14 8008A114 24A50001 */ addiu $a1, $a1, 1 +/* 08AD18 8008A118 00003825 */ move $a3, $zero +.L8008A11C: +/* 08AD1C 8008A11C 10E00005 */ beqz $a3, .L8008A134 +/* 08AD20 8008A120 00000000 */ nop +/* 08AD24 8008A124 10400003 */ beqz $v0, .L8008A134 +/* 08AD28 8008A128 00000000 */ nop +/* 08AD2C 8008A12C 1460FFF5 */ bnez $v1, .L8008A104 +/* 08AD30 8008A130 00000000 */ nop +.L8008A134: +/* 08AD34 8008A134 14E00004 */ bnez $a3, .L8008A148 +/* 08AD38 8008A138 25180002 */ addiu $t8, $t0, 2 +/* 08AD3C 8008A13C A5780000 */ sh $t8, ($t3) +/* 08AD40 8008A140 85680000 */ lh $t0, ($t3) +/* 08AD44 8008A144 00000000 */ nop +.L8008A148: +/* 08AD48 8008A148 010A082A */ slt $at, $t0, $t2 +/* 08AD4C 8008A14C 10200003 */ beqz $at, .L8008A15C +/* 08AD50 8008A150 00000000 */ nop +/* 08AD54 8008A154 10E0FFE4 */ beqz $a3, .L8008A0E8 +/* 08AD58 8008A158 0008C840 */ sll $t9, $t0, 1 +.L8008A15C: +/* 08AD5C 8008A15C 14E00003 */ bnez $a3, .L8008A16C +/* 08AD60 8008A160 2419FFFF */ li $t9, -1 +/* 08AD64 8008A164 1000000E */ b .L8008A1A0 +/* 08AD68 8008A168 A5790000 */ sh $t9, ($t3) +.L8008A16C: +/* 08AD6C 8008A16C 3C03800E */ lui $v1, %hi(gUnlockedMagicCodes) # $v1, 0x800e +/* 08AD70 8008A170 2463FD9C */ addiu $v1, %lo(gUnlockedMagicCodes) # addiu $v1, $v1, -0x264 +/* 08AD74 8008A174 8C780000 */ lw $t8, ($v1) +/* 08AD78 8008A178 00087043 */ sra $t6, $t0, 1 +/* 08AD7C 8008A17C 240F0001 */ li $t7, 1 +/* 08AD80 8008A180 01CF1004 */ sllv $v0, $t7, $t6 +/* 08AD84 8008A184 0302C825 */ or $t9, $t8, $v0 +/* 08AD88 8008A188 AC790000 */ sw $t9, ($v1) +/* 08AD8C 8008A18C 3C0F800E */ lui $t7, %hi(gActiveMagicCodes) # $t7, 0x800e +/* 08AD90 8008A190 8DEFFD98 */ lw $t7, %lo(gActiveMagicCodes)($t7) +/* 08AD94 8008A194 3C01800E */ lui $at, %hi(gActiveMagicCodes) # $at, 0x800e +/* 08AD98 8008A198 01E27025 */ or $t6, $t7, $v0 +/* 08AD9C 8008A19C AC2EFD98 */ sw $t6, %lo(gActiveMagicCodes)($at) +.L8008A1A0: +/* 08ADA0 8008A1A0 24180004 */ li $t8, 4 +/* 08ADA4 8008A1A4 A5B80000 */ sh $t8, ($t5) +/* 08ADA8 8008A1A8 241900F0 */ li $t9, 240 +/* 08ADAC 8008A1AC 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 +/* 08ADB0 8008A1B0 10000084 */ b .L8008A3C4 +/* 08ADB4 8008A1B4 AC3963D8 */ sw $t9, %lo(gOpacityDecayTimer)($at) +.L8008A1B8: +/* 08ADB8 8008A1B8 17E20009 */ bne $ra, $v0, .L8008A1E0 +/* 08ADBC 8008A1BC 3C048012 */ lui $a0, %hi(D_801263E0) # $a0, 0x8012 +/* 08ADC0 8008A1C0 8D6F0000 */ lw $t7, ($t3) +/* 08ADC4 8008A1C4 314E9000 */ andi $t6, $t2, 0x9000 +/* 08ADC8 8008A1C8 11E00003 */ beqz $t7, .L8008A1D8 +/* 08ADCC 8008A1CC 24180001 */ li $t8, 1 +/* 08ADD0 8008A1D0 11C0007D */ beqz $t6, .L8008A3C8 +/* 08ADD4 8008A1D4 8FAF003C */ lw $t7, 0x3c($sp) +.L8008A1D8: +/* 08ADD8 8008A1D8 1000007A */ b .L8008A3C4 +/* 08ADDC 8008A1DC A5B80000 */ sh $t8, ($t5) +.L8008A1E0: +/* 08ADE0 8008A1E0 248463E0 */ addiu $a0, %lo(D_801263E0) # addiu $a0, $a0, 0x63e0 +/* 08ADE4 8008A1E4 8C830000 */ lw $v1, ($a0) +/* 08ADE8 8008A1E8 31599000 */ andi $t9, $t2, 0x9000 +/* 08ADEC 8008A1EC 1060002C */ beqz $v1, .L8008A2A0 +/* 08ADF0 8008A1F0 31589000 */ andi $t8, $t2, 0x9000 +/* 08ADF4 8008A1F4 13200015 */ beqz $t9, .L8008A24C +/* 08ADF8 8008A1F8 314E4000 */ andi $t6, $t2, 0x4000 +/* 08ADFC 8008A1FC 24010001 */ li $at, 1 +/* 08AE00 8008A200 1461000E */ bne $v1, $at, .L8008A23C +/* 08AE04 8008A204 240F0001 */ li $t7, 1 +/* 08AE08 8008A208 3C03800E */ lui $v1, %hi(gUnlockedMagicCodes) # $v1, 0x800e +/* 08AE0C 8008A20C 3C01800E */ lui $at, %hi(gActiveMagicCodes) # $at, 0x800e +/* 08AE10 8008A210 2463FD9C */ addiu $v1, %lo(gUnlockedMagicCodes) # addiu $v1, $v1, -0x264 +/* 08AE14 8008A214 AC20FD98 */ sw $zero, %lo(gActiveMagicCodes)($at) +/* 08AE18 8008A218 8C6E0000 */ lw $t6, ($v1) +/* 08AE1C 8008A21C A5BF0000 */ sh $ra, ($t5) +/* 08AE20 8008A220 31D80003 */ andi $t8, $t6, 3 +/* 08AE24 8008A224 AC780000 */ sw $t8, ($v1) +/* 08AE28 8008A228 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 +/* 08AE2C 8008A22C 241900F0 */ li $t9, 240 +/* 08AE30 8008A230 AFAF0038 */ sw $t7, 0x38($sp) +/* 08AE34 8008A234 10000003 */ b .L8008A244 +/* 08AE38 8008A238 AC3963D8 */ sw $t9, %lo(gOpacityDecayTimer)($at) +.L8008A23C: +/* 08AE3C 8008A23C 240F0001 */ li $t7, 1 +/* 08AE40 8008A240 AFAF003C */ sw $t7, 0x3c($sp) +.L8008A244: +/* 08AE44 8008A244 1000005F */ b .L8008A3C4 +/* 08AE48 8008A248 AC800000 */ sw $zero, ($a0) +.L8008A24C: +/* 08AE4C 8008A24C 11C00004 */ beqz $t6, .L8008A260 +/* 08AE50 8008A250 24180001 */ li $t8, 1 +/* 08AE54 8008A254 AFB8003C */ sw $t8, 0x3c($sp) +/* 08AE58 8008A258 1000005A */ b .L8008A3C4 +/* 08AE5C 8008A25C AC800000 */ sw $zero, ($a0) +.L8008A260: +/* 08AE60 8008A260 05210007 */ bgez $t1, .L8008A280 +/* 08AE64 8008A264 24010001 */ li $at, 1 +/* 08AE68 8008A268 14610005 */ bne $v1, $at, .L8008A280 +/* 08AE6C 8008A26C 24190001 */ li $t9, 1 +/* 08AE70 8008A270 240F0002 */ li $t7, 2 +/* 08AE74 8008A274 AFB90034 */ sw $t9, 0x34($sp) +/* 08AE78 8008A278 10000052 */ b .L8008A3C4 +/* 08AE7C 8008A27C AC8F0000 */ sw $t7, ($a0) +.L8008A280: +/* 08AE80 8008A280 19200050 */ blez $t1, .L8008A3C4 +/* 08AE84 8008A284 24010002 */ li $at, 2 +/* 08AE88 8008A288 1461004E */ bne $v1, $at, .L8008A3C4 +/* 08AE8C 8008A28C 240E0001 */ li $t6, 1 +/* 08AE90 8008A290 24180001 */ li $t8, 1 +/* 08AE94 8008A294 AFAE0034 */ sw $t6, 0x34($sp) +/* 08AE98 8008A298 1000004A */ b .L8008A3C4 +/* 08AE9C 8008A29C AC980000 */ sw $t8, ($a0) +.L8008A2A0: +/* 08AEA0 8008A2A0 0521000B */ bgez $t1, .L8008A2D0 +/* 08AEA4 8008A2A4 00403025 */ move $a2, $v0 +/* 08AEA8 8008A2A8 24590001 */ addiu $t9, $v0, 1 +/* 08AEAC 8008A2AC A5B90000 */ sh $t9, ($t5) +/* 08AEB0 8008A2B0 85A20000 */ lh $v0, ($t5) +/* 08AEB4 8008A2B4 24080003 */ li $t0, 3 +/* 08AEB8 8008A2B8 28410004 */ slti $at, $v0, 4 +/* 08AEBC 8008A2BC 14200004 */ bnez $at, .L8008A2D0 +/* 08AEC0 8008A2C0 00000000 */ nop +/* 08AEC4 8008A2C4 A5A80000 */ sh $t0, ($t5) +/* 08AEC8 8008A2C8 85A20000 */ lh $v0, ($t5) +/* 08AECC 8008A2CC 00000000 */ nop +.L8008A2D0: +/* 08AED0 8008A2D0 1920000A */ blez $t1, .L8008A2FC +/* 08AED4 8008A2D4 24080003 */ li $t0, 3 +/* 08AED8 8008A2D8 244FFFFF */ addiu $t7, $v0, -1 +/* 08AEDC 8008A2DC A5AF0000 */ sh $t7, ($t5) +/* 08AEE0 8008A2E0 85A20000 */ lh $v0, ($t5) +/* 08AEE4 8008A2E4 00000000 */ nop +/* 08AEE8 8008A2E8 04410004 */ bgez $v0, .L8008A2FC +/* 08AEEC 8008A2EC 00000000 */ nop +/* 08AEF0 8008A2F0 A5A00000 */ sh $zero, ($t5) +/* 08AEF4 8008A2F4 85A20000 */ lh $v0, ($t5) +/* 08AEF8 8008A2F8 00000000 */ nop +.L8008A2FC: +/* 08AEFC 8008A2FC 10C20002 */ beq $a2, $v0, .L8008A308 +/* 08AF00 8008A300 240E0001 */ li $t6, 1 +/* 08AF04 8008A304 AFAE0034 */ sw $t6, 0x34($sp) +.L8008A308: +/* 08AF08 8008A308 1300001D */ beqz $t8, .L8008A380 +/* 08AF0C 8008A30C 24190001 */ li $t9, 1 +/* 08AF10 8008A310 15020004 */ bne $t0, $v0, .L8008A324 +/* 08AF14 8008A314 AFB90038 */ sw $t9, 0x38($sp) +/* 08AF18 8008A318 240FFFFF */ li $t7, -1 +/* 08AF1C 8008A31C 10000018 */ b .L8008A380 +/* 08AF20 8008A320 AFAF0040 */ sw $t7, 0x40($sp) +.L8008A324: +/* 08AF24 8008A324 1440000D */ bnez $v0, .L8008A35C +/* 08AF28 8008A328 3C058012 */ lui $a1, %hi(gCheatInputCurrentRow) # $a1, 0x8012 +/* 08AF2C 8008A32C 3C028012 */ lui $v0, %hi(gCheatInputCurrentColumn) # $v0, 0x8012 +/* 08AF30 8008A330 3C068012 */ lui $a2, %hi(gCheatInputStringLength) # $a2, 0x8012 +/* 08AF34 8008A334 24C66C44 */ addiu $a2, %lo(gCheatInputStringLength) # addiu $a2, $a2, 0x6c44 +/* 08AF38 8008A338 24426C42 */ addiu $v0, %lo(gCheatInputCurrentColumn) # addiu $v0, $v0, 0x6c42 +/* 08AF3C 8008A33C 24A56C40 */ addiu $a1, %lo(gCheatInputCurrentRow) # addiu $a1, $a1, 0x6c40 +/* 08AF40 8008A340 A4A00000 */ sh $zero, ($a1) +/* 08AF44 8008A344 A4400000 */ sh $zero, ($v0) +/* 08AF48 8008A348 A4C00000 */ sh $zero, ($a2) +/* 08AF4C 8008A34C 3C018012 */ lui $at, %hi(D_80126C58) # $at, 0x8012 +/* 08AF50 8008A350 A0206C58 */ sb $zero, %lo(D_80126C58)($at) +/* 08AF54 8008A354 1000000A */ b .L8008A380 +/* 08AF58 8008A358 A5AC0000 */ sh $t4, ($t5) +.L8008A35C: +/* 08AF5C 8008A35C 24010001 */ li $at, 1 +/* 08AF60 8008A360 14410003 */ bne $v0, $at, .L8008A370 +/* 08AF64 8008A364 240E0002 */ li $t6, 2 +/* 08AF68 8008A368 10000005 */ b .L8008A380 +/* 08AF6C 8008A36C AC8E0000 */ sw $t6, ($a0) +.L8008A370: +/* 08AF70 8008A370 24010002 */ li $at, 2 +/* 08AF74 8008A374 14410002 */ bne $v0, $at, .L8008A380 +/* 08AF78 8008A378 24180001 */ li $t8, 1 +/* 08AF7C 8008A37C AFB80040 */ sw $t8, 0x40($sp) +.L8008A380: +/* 08AF80 8008A380 31594000 */ andi $t9, $t2, 0x4000 +/* 08AF84 8008A384 13200002 */ beqz $t9, .L8008A390 +/* 08AF88 8008A388 240FFFFF */ li $t7, -1 +/* 08AF8C 8008A38C AFAF0040 */ sw $t7, 0x40($sp) +.L8008A390: +/* 08AF90 8008A390 8FAE0040 */ lw $t6, 0x40($sp) +/* 08AF94 8008A394 00000000 */ nop +/* 08AF98 8008A398 11C0000B */ beqz $t6, .L8008A3C8 +/* 08AF9C 8008A39C 8FAF003C */ lw $t7, 0x3c($sp) +/* 08AFA0 8008A3A0 05C10003 */ bgez $t6, .L8008A3B0 +/* 08AFA4 8008A3A4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 08AFA8 8008A3A8 24180001 */ li $t8, 1 +/* 08AFAC 8008A3AC AFB8003C */ sw $t8, 0x3c($sp) +.L8008A3B0: +/* 08AFB0 8008A3B0 8FB90040 */ lw $t9, 0x40($sp) +/* 08AFB4 8008A3B4 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 08AFB8 8008A3B8 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 08AFBC 8008A3BC 0C030076 */ jal transition_begin +/* 08AFC0 8008A3C0 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) +.L8008A3C4: +/* 08AFC4 8008A3C4 8FAF003C */ lw $t7, 0x3c($sp) +.L8008A3C8: +/* 08AFC8 8008A3C8 00000000 */ nop +/* 08AFCC 8008A3CC 11E00005 */ beqz $t7, .L8008A3E4 +/* 08AFD0 8008A3D0 24040241 */ li $a0, 577 +/* 08AFD4 8008A3D4 0C000741 */ jal play_sound_global +/* 08AFD8 8008A3D8 00002825 */ move $a1, $zero +/* 08AFDC 8008A3DC 1000000D */ b .L8008A414 +/* 08AFE0 8008A3E0 00000000 */ nop +.L8008A3E4: +/* 08AFE4 8008A3E4 8FAE0038 */ lw $t6, 0x38($sp) +/* 08AFE8 8008A3E8 8FB80034 */ lw $t8, 0x34($sp) +/* 08AFEC 8008A3EC 11C00005 */ beqz $t6, .L8008A404 +/* 08AFF0 8008A3F0 240400EF */ li $a0, 239 +/* 08AFF4 8008A3F4 0C000741 */ jal play_sound_global +/* 08AFF8 8008A3F8 00002825 */ move $a1, $zero +/* 08AFFC 8008A3FC 10000005 */ b .L8008A414 +/* 08B000 8008A400 00000000 */ nop +.L8008A404: +/* 08B004 8008A404 13000003 */ beqz $t8, .L8008A414 +/* 08B008 8008A408 240400EB */ li $a0, 235 +/* 08B00C 8008A40C 0C000741 */ jal play_sound_global +/* 08B010 8008A410 00002825 */ move $a1, $zero +.L8008A414: +/* 08B014 8008A414 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 08B018 8008A418 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 08B01C 8008A41C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 08B020 8008A420 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +/* 08B024 8008A424 2841FFE2 */ slti $at, $v0, -0x1e +/* 08B028 8008A428 14200003 */ bnez $at, .L8008A438 +/* 08B02C 8008A42C 2841001F */ slti $at, $v0, 0x1f +/* 08B030 8008A430 14200022 */ bnez $at, .L8008A4BC +/* 08B034 8008A434 8FBF0014 */ lw $ra, 0x14($sp) +.L8008A438: +/* 08B038 8008A438 0C022932 */ jal unload_big_font_2 +/* 08B03C 8008A43C 00000000 */ nop +/* 08B040 8008A440 3C19800E */ lui $t9, %hi(gMenuDelay) # $t9, 0x800e +/* 08B044 8008A444 8F39F47C */ lw $t9, %lo(gMenuDelay)($t9) +/* 08B048 8008A448 3C0F800E */ lui $t7, %hi(gActiveMagicCodes) # $t7, 0x800e +/* 08B04C 8008A44C 07210018 */ bgez $t9, .L8008A4B0 +/* 08B050 8008A450 00000000 */ nop +/* 08B054 8008A454 8DEFFD98 */ lw $t7, %lo(gActiveMagicCodes)($t7) +/* 08B058 8008A458 00000000 */ nop +/* 08B05C 8008A45C 31EE0400 */ andi $t6, $t7, 0x400 +/* 08B060 8008A460 11C0000F */ beqz $t6, .L8008A4A0 +/* 08B064 8008A464 00000000 */ nop +/* 08B068 8008A468 0C0002CA */ jal func_80000B28 +/* 08B06C 8008A46C 00000000 */ nop +/* 08B070 8008A470 24180001 */ li $t8, 1 +/* 08B074 8008A474 3C01800E */ lui $at, %hi(gViewingCreditsFromCheat) # $at, 0x800e +/* 08B078 8008A478 AC381B4C */ sw $t8, %lo(gViewingCreditsFromCheat)($at) +/* 08B07C 8008A47C 0C0204F4 */ jal menu_init +/* 08B080 8008A480 24040019 */ li $a0, 25 +/* 08B084 8008A484 3C19800E */ lui $t9, %hi(gActiveMagicCodes) # $t9, 0x800e +/* 08B088 8008A488 8F39FD98 */ lw $t9, %lo(gActiveMagicCodes)($t9) +/* 08B08C 8008A48C 2401FBFF */ li $at, -1025 +/* 08B090 8008A490 03217824 */ and $t7, $t9, $at +/* 08B094 8008A494 3C01800E */ lui $at, %hi(gActiveMagicCodes) # $at, 0x800e +/* 08B098 8008A498 10000007 */ b .L8008A4B8 +/* 08B09C 8008A49C AC2FFD98 */ sw $t7, %lo(gActiveMagicCodes)($at) +.L8008A4A0: +/* 08B0A0 8008A4A0 0C0204F4 */ jal menu_init +/* 08B0A4 8008A4A4 2404000C */ li $a0, 12 +/* 08B0A8 8008A4A8 10000004 */ b .L8008A4BC +/* 08B0AC 8008A4AC 8FBF0014 */ lw $ra, 0x14($sp) +.L8008A4B0: +/* 08B0B0 8008A4B0 0C0204F4 */ jal menu_init +/* 08B0B4 8008A4B4 2404000B */ li $a0, 11 +.L8008A4B8: +/* 08B0B8 8008A4B8 8FBF0014 */ lw $ra, 0x14($sp) +.L8008A4BC: +/* 08B0BC 8008A4BC 27BD0060 */ addiu $sp, $sp, 0x60 +/* 08B0C0 8008A4C0 03E00008 */ jr $ra +/* 08B0C4 8008A4C4 00001025 */ move $v0, $zero + diff --git a/asm/non_matchings/menu/menu_options_loop.s b/asm/non_matchings/menu/menu_options_loop.s index c5c3baf8..6e87f421 100644 --- a/asm/non_matchings/menu/menu_options_loop.s +++ b/asm/non_matchings/menu/menu_options_loop.s @@ -1,270 +1,270 @@ -glabel menu_options_loop -/* 084F5C 8008435C 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 -/* 084F60 80084360 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc -/* 084F64 80084364 8C6E0000 */ lw $t6, ($v1) -/* 084F68 80084368 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 084F6C 8008436C 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -/* 084F70 80084370 8D220000 */ lw $v0, ($t1) -/* 084F74 80084374 01C47821 */ addu $t7, $t6, $a0 -/* 084F78 80084378 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 084F7C 8008437C 31F8003F */ andi $t8, $t7, 0x3f -/* 084F80 80084380 AFBF0014 */ sw $ra, 0x14($sp) -/* 084F84 80084384 10400009 */ beqz $v0, .L800843AC -/* 084F88 80084388 AC780000 */ sw $t8, ($v1) -/* 084F8C 8008438C 18400005 */ blez $v0, .L800843A4 -/* 084F90 80084390 00445023 */ subu $t2, $v0, $a0 -/* 084F94 80084394 0044C821 */ addu $t9, $v0, $a0 -/* 084F98 80084398 AD390000 */ sw $t9, ($t1) -/* 084F9C 8008439C 10000003 */ b .L800843AC -/* 084FA0 800843A0 03201025 */ move $v0, $t9 -.L800843A4: -/* 084FA4 800843A4 AD2A0000 */ sw $t2, ($t1) -/* 084FA8 800843A8 01401025 */ move $v0, $t2 -.L800843AC: -/* 084FAC 800843AC 2841FFED */ slti $at, $v0, -0x13 -/* 084FB0 800843B0 14200007 */ bnez $at, .L800843D0 -/* 084FB4 800843B4 28410023 */ slti $at, $v0, 0x23 -/* 084FB8 800843B8 10200005 */ beqz $at, .L800843D0 -/* 084FBC 800843BC 00000000 */ nop -/* 084FC0 800843C0 0C02106E */ jal render_options_menu_ui -/* 084FC4 800843C4 00000000 */ nop -/* 084FC8 800843C8 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 084FCC 800843CC 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L800843D0: -/* 084FD0 800843D0 3C0B8012 */ lui $t3, %hi(gIgnorePlayerInput) # $t3, 0x8012 -/* 084FD4 800843D4 8D6B63C4 */ lw $t3, %lo(gIgnorePlayerInput)($t3) -/* 084FD8 800843D8 00003025 */ move $a2, $zero -/* 084FDC 800843DC 00003825 */ move $a3, $zero -/* 084FE0 800843E0 15600021 */ bnez $t3, .L80084468 -/* 084FE4 800843E4 00004025 */ move $t0, $zero -/* 084FE8 800843E8 8D2C0000 */ lw $t4, ($t1) -/* 084FEC 800843EC 00002025 */ move $a0, $zero -/* 084FF0 800843F0 1580001D */ bnez $t4, .L80084468 -/* 084FF4 800843F4 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 -/* 084FF8 800843F8 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 -/* 084FFC 800843FC 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 -/* 085000 80084400 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c -.L80084404: -/* 085004 80084404 AFA30020 */ sw $v1, 0x20($sp) -/* 085008 80084408 AFA40040 */ sw $a0, 0x40($sp) -/* 08500C 8008440C AFA5001C */ sw $a1, 0x1c($sp) -/* 085010 80084410 AFA60044 */ sw $a2, 0x44($sp) -/* 085014 80084414 AFA70038 */ sw $a3, 0x38($sp) -/* 085018 80084418 0C01A955 */ jal get_buttons_pressed_from_player -/* 08501C 8008441C AFA80034 */ sw $t0, 0x34($sp) -/* 085020 80084420 8FA30020 */ lw $v1, 0x20($sp) -/* 085024 80084424 8FA5001C */ lw $a1, 0x1c($sp) -/* 085028 80084428 8FA40040 */ lw $a0, 0x40($sp) -/* 08502C 8008442C 8FA60044 */ lw $a2, 0x44($sp) -/* 085030 80084430 8FA70038 */ lw $a3, 0x38($sp) -/* 085034 80084434 8FA80034 */ lw $t0, 0x34($sp) -/* 085038 80084438 806D0000 */ lb $t5, ($v1) -/* 08503C 8008443C 80AE0000 */ lb $t6, ($a1) -/* 085040 80084440 24010004 */ li $at, 4 -/* 085044 80084444 24840001 */ addiu $a0, $a0, 1 -/* 085048 80084448 24630001 */ addiu $v1, $v1, 1 -/* 08504C 8008444C 24A50001 */ addiu $a1, $a1, 1 -/* 085050 80084450 00C23025 */ or $a2, $a2, $v0 -/* 085054 80084454 00ED3821 */ addu $a3, $a3, $t5 -/* 085058 80084458 1481FFEA */ bne $a0, $at, .L80084404 -/* 08505C 8008445C 010E4021 */ addu $t0, $t0, $t6 -/* 085060 80084460 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 085064 80084464 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L80084468: -/* 085068 80084468 30CF4000 */ andi $t7, $a2, 0x4000 -/* 08506C 8008446C 15E00008 */ bnez $t7, .L80084490 -/* 085070 80084470 30C39000 */ andi $v1, $a2, 0x9000 -/* 085074 80084474 10600016 */ beqz $v1, .L800844D0 -/* 085078 80084478 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 08507C 8008447C 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 085080 80084480 8CD80000 */ lw $t8, ($a2) -/* 085084 80084484 24010005 */ li $at, 5 -/* 085088 80084488 17010011 */ bne $t8, $at, .L800844D0 -/* 08508C 8008448C 00000000 */ nop -.L80084490: -/* 085090 80084490 0C000326 */ jal set_music_fade_timer -/* 085094 80084494 2404FF80 */ li $a0, -128 -/* 085098 80084498 2419FFFF */ li $t9, -1 -/* 08509C 8008449C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0850A0 800844A0 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 0850A4 800844A4 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) -/* 0850A8 800844A8 0C030076 */ jal func_800C01D8 -/* 0850AC 800844AC 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 0850B0 800844B0 24040241 */ li $a0, 577 -/* 0850B4 800844B4 0C000741 */ jal play_sound_global -/* 0850B8 800844B8 00002825 */ move $a1, $zero -/* 0850BC 800844BC 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 0850C0 800844C0 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 0850C4 800844C4 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 0850C8 800844C8 1000006B */ b .L80084678 -/* 0850CC 800844CC 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L800844D0: -/* 0850D0 800844D0 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 0850D4 800844D4 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 0850D8 800844D8 8CC20000 */ lw $v0, ($a2) -/* 0850DC 800844DC 1060000C */ beqz $v1, .L80084510 -/* 0850E0 800844E0 28410002 */ slti $at, $v0, 2 -/* 0850E4 800844E4 1420000A */ bnez $at, .L80084510 -/* 0850E8 800844E8 240A001F */ li $t2, 31 -/* 0850EC 800844EC AD2A0000 */ sw $t2, ($t1) -/* 0850F0 800844F0 240400EF */ li $a0, 239 -/* 0850F4 800844F4 0C000741 */ jal play_sound_global -/* 0850F8 800844F8 00002825 */ move $a1, $zero -/* 0850FC 800844FC 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 085100 80084500 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 085104 80084504 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 085108 80084508 1000005B */ b .L80084678 -/* 08510C 8008450C 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L80084510: -/* 085110 80084510 14400018 */ bnez $v0, .L80084574 -/* 085114 80084514 24010001 */ li $at, 1 -/* 085118 80084518 10E00016 */ beqz $a3, .L80084574 -/* 08511C 8008451C 00000000 */ nop -/* 085120 80084520 0C027AC8 */ jal get_language -/* 085124 80084524 00000000 */ nop -/* 085128 80084528 000267C3 */ sra $t4, $v0, 0x1f -/* 08512C 8008452C 15800007 */ bnez $t4, .L8008454C -/* 085130 80084530 00000000 */ nop -/* 085134 80084534 14400005 */ bnez $v0, .L8008454C -/* 085138 80084538 00000000 */ nop -/* 08513C 8008453C 0C027AE5 */ jal set_language -/* 085140 80084540 24040002 */ li $a0, 2 -/* 085144 80084544 10000004 */ b .L80084558 -/* 085148 80084548 240400EB */ li $a0, 235 -.L8008454C: -/* 08514C 8008454C 0C027AE5 */ jal set_language -/* 085150 80084550 00002025 */ move $a0, $zero -/* 085154 80084554 240400EB */ li $a0, 235 -.L80084558: -/* 085158 80084558 0C000741 */ jal play_sound_global -/* 08515C 8008455C 00002825 */ move $a1, $zero -/* 085160 80084560 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 085164 80084564 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 085168 80084568 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 08516C 8008456C 10000042 */ b .L80084678 -/* 085170 80084570 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L80084574: -/* 085174 80084574 14410028 */ bne $v0, $at, .L80084618 -/* 085178 80084578 00000000 */ nop -/* 08517C 8008457C 10E00026 */ beqz $a3, .L80084618 -/* 085180 80084580 3C0F8012 */ lui $t7, %hi(sEepromSettings+4) # $t7, 0x8012 -/* 085184 80084584 8DEF644C */ lw $t7, %lo(sEepromSettings+4)($t7) -/* 085188 80084588 3C010200 */ lui $at, 0x200 -/* 08518C 8008458C 01E1C824 */ and $t9, $t7, $at -/* 085190 80084590 1320000F */ beqz $t9, .L800845D0 -/* 085194 80084594 240400EB */ li $a0, 235 -/* 085198 80084598 240400EB */ li $a0, 235 -/* 08519C 8008459C 0C000741 */ jal play_sound_global -/* 0851A0 800845A0 00002825 */ move $a1, $zero -/* 0851A4 800845A4 24040000 */ li $a0, 0 -/* 0851A8 800845A8 0C027AAF */ jal unset_eeprom_settings_value -/* 0851AC 800845AC 3C050200 */ lui $a1, 0x200 -/* 0851B0 800845B0 0C030ABD */ jal func_800C2AF4 -/* 0851B4 800845B4 00002025 */ move $a0, $zero -/* 0851B8 800845B8 3C0B800E */ lui $t3, %hi(gMenuText) # $t3, 0x800e -/* 0851BC 800845BC 8D6BF4A0 */ lw $t3, %lo(gMenuText)($t3) -/* 0851C0 800845C0 3C01800E */ lui $at, %hi(gOptionMenuStrings+4) # $at, 0x800e -/* 0851C4 800845C4 8D6A02DC */ lw $t2, 0x2dc($t3) -/* 0851C8 800845C8 1000000E */ b .L80084604 -/* 0851CC 800845CC AC2AFA14 */ sw $t2, %lo(gOptionMenuStrings+4)($at) -.L800845D0: -/* 0851D0 800845D0 0C000741 */ jal play_sound_global -/* 0851D4 800845D4 00002825 */ move $a1, $zero -/* 0851D8 800845D8 24040000 */ li $a0, 0 -/* 0851DC 800845DC 0C027A9E */ jal set_eeprom_settings_value -/* 0851E0 800845E0 3C050200 */ lui $a1, 0x200 -/* 0851E4 800845E4 0C030ABD */ jal func_800C2AF4 -/* 0851E8 800845E8 24040001 */ li $a0, 1 -/* 0851EC 800845EC 3C0C800E */ lui $t4, %hi(gMenuText) # $t4, 0x800e -/* 0851F0 800845F0 8D8CF4A0 */ lw $t4, %lo(gMenuText)($t4) -/* 0851F4 800845F4 3C01800E */ lui $at, %hi(gOptionMenuStrings+4) # $at, 0x800e -/* 0851F8 800845F8 8D8D02D8 */ lw $t5, 0x2d8($t4) -/* 0851FC 800845FC 00000000 */ nop -/* 085200 80084600 AC2DFA14 */ sw $t5, %lo(gOptionMenuStrings+4)($at) -.L80084604: -/* 085204 80084604 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 085208 80084608 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 08520C 8008460C 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 085210 80084610 10000019 */ b .L80084678 -/* 085214 80084614 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L80084618: -/* 085218 80084618 05010008 */ bgez $t0, .L8008463C -/* 08521C 8008461C 00401825 */ move $v1, $v0 -/* 085220 80084620 244E0001 */ addiu $t6, $v0, 1 -/* 085224 80084624 29C10006 */ slti $at, $t6, 6 -/* 085228 80084628 ACCE0000 */ sw $t6, ($a2) -/* 08522C 8008462C 14200003 */ bnez $at, .L8008463C -/* 085230 80084630 01C01025 */ move $v0, $t6 -/* 085234 80084634 24020005 */ li $v0, 5 -/* 085238 80084638 ACC20000 */ sw $v0, ($a2) -.L8008463C: -/* 08523C 8008463C 19000006 */ blez $t0, .L80084658 -/* 085240 80084640 2458FFFF */ addiu $t8, $v0, -1 -/* 085244 80084644 ACD80000 */ sw $t8, ($a2) -/* 085248 80084648 07010003 */ bgez $t8, .L80084658 -/* 08524C 8008464C 03001025 */ move $v0, $t8 -/* 085250 80084650 ACC00000 */ sw $zero, ($a2) -/* 085254 80084654 00001025 */ move $v0, $zero -.L80084658: -/* 085258 80084658 10620007 */ beq $v1, $v0, .L80084678 -/* 08525C 8008465C 240400EB */ li $a0, 235 -/* 085260 80084660 0C000741 */ jal play_sound_global -/* 085264 80084664 00002825 */ move $a1, $zero -/* 085268 80084668 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 08526C 8008466C 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e -/* 085270 80084670 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 -/* 085274 80084674 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -.L80084678: -/* 085278 80084678 8D220000 */ lw $v0, ($t1) -/* 08527C 8008467C 00000000 */ nop -/* 085280 80084680 2841001F */ slti $at, $v0, 0x1f -/* 085284 80084684 1420001B */ bnez $at, .L800846F4 -/* 085288 80084688 2841FFE2 */ slti $at, $v0, -0x1e -/* 08528C 8008468C 8CC20000 */ lw $v0, ($a2) -/* 085290 80084690 24010002 */ li $at, 2 -/* 085294 80084694 14410008 */ bne $v0, $at, .L800846B8 -/* 085298 80084698 24010003 */ li $at, 3 -/* 08529C 8008469C 0C0211CD */ jal unload_big_font_1 -/* 0852A0 800846A0 00000000 */ nop -/* 0852A4 800846A4 0C0204F4 */ jal menu_init -/* 0852A8 800846A8 2404000D */ li $a0, 13 -/* 0852AC 800846AC 1000001D */ b .L80084724 -/* 0852B0 800846B0 00001025 */ move $v0, $zero -/* 0852B4 800846B4 24010003 */ li $at, 3 -.L800846B8: -/* 0852B8 800846B8 14410007 */ bne $v0, $at, .L800846D8 -/* 0852BC 800846BC 00000000 */ nop -/* 0852C0 800846C0 0C0211CD */ jal unload_big_font_1 -/* 0852C4 800846C4 00000000 */ nop -/* 0852C8 800846C8 0C0204F4 */ jal menu_init -/* 0852CC 800846CC 2404000E */ li $a0, 14 -/* 0852D0 800846D0 10000014 */ b .L80084724 -/* 0852D4 800846D4 00001025 */ move $v0, $zero -.L800846D8: -/* 0852D8 800846D8 0C0211CD */ jal unload_big_font_1 -/* 0852DC 800846DC 00000000 */ nop -/* 0852E0 800846E0 0C0204F4 */ jal menu_init -/* 0852E4 800846E4 2404000A */ li $a0, 10 -/* 0852E8 800846E8 1000000E */ b .L80084724 -/* 0852EC 800846EC 00001025 */ move $v0, $zero -/* 0852F0 800846F0 2841FFE2 */ slti $at, $v0, -0x1e -.L800846F4: -/* 0852F4 800846F4 10200009 */ beqz $at, .L8008471C -/* 0852F8 800846F8 00001025 */ move $v0, $zero -/* 0852FC 800846FC 0C0002CA */ jal func_80000B28 -/* 085300 80084700 00000000 */ nop -/* 085304 80084704 0C0211CD */ jal unload_big_font_1 -/* 085308 80084708 00000000 */ nop -/* 08530C 8008470C 0C0204F4 */ jal menu_init -/* 085310 80084710 00002025 */ move $a0, $zero -/* 085314 80084714 10000003 */ b .L80084724 -/* 085318 80084718 00001025 */ move $v0, $zero -.L8008471C: -/* 08531C 8008471C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 085320 80084720 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -.L80084724: -/* 085324 80084724 8FBF0014 */ lw $ra, 0x14($sp) -/* 085328 80084728 27BD0048 */ addiu $sp, $sp, 0x48 -/* 08532C 8008472C 03E00008 */ jr $ra -/* 085330 80084730 00000000 */ nop - +glabel menu_options_loop +/* 084F5C 8008435C 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 +/* 084F60 80084360 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc +/* 084F64 80084364 8C6E0000 */ lw $t6, ($v1) +/* 084F68 80084368 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 084F6C 8008436C 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +/* 084F70 80084370 8D220000 */ lw $v0, ($t1) +/* 084F74 80084374 01C47821 */ addu $t7, $t6, $a0 +/* 084F78 80084378 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 084F7C 8008437C 31F8003F */ andi $t8, $t7, 0x3f +/* 084F80 80084380 AFBF0014 */ sw $ra, 0x14($sp) +/* 084F84 80084384 10400009 */ beqz $v0, .L800843AC +/* 084F88 80084388 AC780000 */ sw $t8, ($v1) +/* 084F8C 8008438C 18400005 */ blez $v0, .L800843A4 +/* 084F90 80084390 00445023 */ subu $t2, $v0, $a0 +/* 084F94 80084394 0044C821 */ addu $t9, $v0, $a0 +/* 084F98 80084398 AD390000 */ sw $t9, ($t1) +/* 084F9C 8008439C 10000003 */ b .L800843AC +/* 084FA0 800843A0 03201025 */ move $v0, $t9 +.L800843A4: +/* 084FA4 800843A4 AD2A0000 */ sw $t2, ($t1) +/* 084FA8 800843A8 01401025 */ move $v0, $t2 +.L800843AC: +/* 084FAC 800843AC 2841FFED */ slti $at, $v0, -0x13 +/* 084FB0 800843B0 14200007 */ bnez $at, .L800843D0 +/* 084FB4 800843B4 28410023 */ slti $at, $v0, 0x23 +/* 084FB8 800843B8 10200005 */ beqz $at, .L800843D0 +/* 084FBC 800843BC 00000000 */ nop +/* 084FC0 800843C0 0C02106E */ jal render_options_menu_ui +/* 084FC4 800843C4 00000000 */ nop +/* 084FC8 800843C8 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 084FCC 800843CC 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L800843D0: +/* 084FD0 800843D0 3C0B8012 */ lui $t3, %hi(gIgnorePlayerInput) # $t3, 0x8012 +/* 084FD4 800843D4 8D6B63C4 */ lw $t3, %lo(gIgnorePlayerInput)($t3) +/* 084FD8 800843D8 00003025 */ move $a2, $zero +/* 084FDC 800843DC 00003825 */ move $a3, $zero +/* 084FE0 800843E0 15600021 */ bnez $t3, .L80084468 +/* 084FE4 800843E4 00004025 */ move $t0, $zero +/* 084FE8 800843E8 8D2C0000 */ lw $t4, ($t1) +/* 084FEC 800843EC 00002025 */ move $a0, $zero +/* 084FF0 800843F0 1580001D */ bnez $t4, .L80084468 +/* 084FF4 800843F4 3C038012 */ lui $v1, %hi(gControllersXAxisDirection) # $v1, 0x8012 +/* 084FF8 800843F8 3C058012 */ lui $a1, %hi(gControllersYAxisDirection) # $a1, 0x8012 +/* 084FFC 800843FC 24A56464 */ addiu $a1, %lo(gControllersYAxisDirection) # addiu $a1, $a1, 0x6464 +/* 085000 80084400 2463645C */ addiu $v1, %lo(gControllersXAxisDirection) # addiu $v1, $v1, 0x645c +.L80084404: +/* 085004 80084404 AFA30020 */ sw $v1, 0x20($sp) +/* 085008 80084408 AFA40040 */ sw $a0, 0x40($sp) +/* 08500C 8008440C AFA5001C */ sw $a1, 0x1c($sp) +/* 085010 80084410 AFA60044 */ sw $a2, 0x44($sp) +/* 085014 80084414 AFA70038 */ sw $a3, 0x38($sp) +/* 085018 80084418 0C01A955 */ jal get_buttons_pressed_from_player +/* 08501C 8008441C AFA80034 */ sw $t0, 0x34($sp) +/* 085020 80084420 8FA30020 */ lw $v1, 0x20($sp) +/* 085024 80084424 8FA5001C */ lw $a1, 0x1c($sp) +/* 085028 80084428 8FA40040 */ lw $a0, 0x40($sp) +/* 08502C 8008442C 8FA60044 */ lw $a2, 0x44($sp) +/* 085030 80084430 8FA70038 */ lw $a3, 0x38($sp) +/* 085034 80084434 8FA80034 */ lw $t0, 0x34($sp) +/* 085038 80084438 806D0000 */ lb $t5, ($v1) +/* 08503C 8008443C 80AE0000 */ lb $t6, ($a1) +/* 085040 80084440 24010004 */ li $at, 4 +/* 085044 80084444 24840001 */ addiu $a0, $a0, 1 +/* 085048 80084448 24630001 */ addiu $v1, $v1, 1 +/* 08504C 8008444C 24A50001 */ addiu $a1, $a1, 1 +/* 085050 80084450 00C23025 */ or $a2, $a2, $v0 +/* 085054 80084454 00ED3821 */ addu $a3, $a3, $t5 +/* 085058 80084458 1481FFEA */ bne $a0, $at, .L80084404 +/* 08505C 8008445C 010E4021 */ addu $t0, $t0, $t6 +/* 085060 80084460 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 085064 80084464 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L80084468: +/* 085068 80084468 30CF4000 */ andi $t7, $a2, 0x4000 +/* 08506C 8008446C 15E00008 */ bnez $t7, .L80084490 +/* 085070 80084470 30C39000 */ andi $v1, $a2, 0x9000 +/* 085074 80084474 10600016 */ beqz $v1, .L800844D0 +/* 085078 80084478 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 08507C 8008447C 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 085080 80084480 8CD80000 */ lw $t8, ($a2) +/* 085084 80084484 24010005 */ li $at, 5 +/* 085088 80084488 17010011 */ bne $t8, $at, .L800844D0 +/* 08508C 8008448C 00000000 */ nop +.L80084490: +/* 085090 80084490 0C000326 */ jal set_music_fade_timer +/* 085094 80084494 2404FF80 */ li $a0, -128 +/* 085098 80084498 2419FFFF */ li $t9, -1 +/* 08509C 8008449C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0850A0 800844A0 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 0850A4 800844A4 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) +/* 0850A8 800844A8 0C030076 */ jal transition_begin +/* 0850AC 800844AC 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 0850B0 800844B0 24040241 */ li $a0, 577 +/* 0850B4 800844B4 0C000741 */ jal play_sound_global +/* 0850B8 800844B8 00002825 */ move $a1, $zero +/* 0850BC 800844BC 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 0850C0 800844C0 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 0850C4 800844C4 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 0850C8 800844C8 1000006B */ b .L80084678 +/* 0850CC 800844CC 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L800844D0: +/* 0850D0 800844D0 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 0850D4 800844D4 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 0850D8 800844D8 8CC20000 */ lw $v0, ($a2) +/* 0850DC 800844DC 1060000C */ beqz $v1, .L80084510 +/* 0850E0 800844E0 28410002 */ slti $at, $v0, 2 +/* 0850E4 800844E4 1420000A */ bnez $at, .L80084510 +/* 0850E8 800844E8 240A001F */ li $t2, 31 +/* 0850EC 800844EC AD2A0000 */ sw $t2, ($t1) +/* 0850F0 800844F0 240400EF */ li $a0, 239 +/* 0850F4 800844F4 0C000741 */ jal play_sound_global +/* 0850F8 800844F8 00002825 */ move $a1, $zero +/* 0850FC 800844FC 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 085100 80084500 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 085104 80084504 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 085108 80084508 1000005B */ b .L80084678 +/* 08510C 8008450C 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L80084510: +/* 085110 80084510 14400018 */ bnez $v0, .L80084574 +/* 085114 80084514 24010001 */ li $at, 1 +/* 085118 80084518 10E00016 */ beqz $a3, .L80084574 +/* 08511C 8008451C 00000000 */ nop +/* 085120 80084520 0C027AC8 */ jal get_language +/* 085124 80084524 00000000 */ nop +/* 085128 80084528 000267C3 */ sra $t4, $v0, 0x1f +/* 08512C 8008452C 15800007 */ bnez $t4, .L8008454C +/* 085130 80084530 00000000 */ nop +/* 085134 80084534 14400005 */ bnez $v0, .L8008454C +/* 085138 80084538 00000000 */ nop +/* 08513C 8008453C 0C027AE5 */ jal set_language +/* 085140 80084540 24040002 */ li $a0, 2 +/* 085144 80084544 10000004 */ b .L80084558 +/* 085148 80084548 240400EB */ li $a0, 235 +.L8008454C: +/* 08514C 8008454C 0C027AE5 */ jal set_language +/* 085150 80084550 00002025 */ move $a0, $zero +/* 085154 80084554 240400EB */ li $a0, 235 +.L80084558: +/* 085158 80084558 0C000741 */ jal play_sound_global +/* 08515C 8008455C 00002825 */ move $a1, $zero +/* 085160 80084560 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 085164 80084564 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 085168 80084568 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 08516C 8008456C 10000042 */ b .L80084678 +/* 085170 80084570 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L80084574: +/* 085174 80084574 14410028 */ bne $v0, $at, .L80084618 +/* 085178 80084578 00000000 */ nop +/* 08517C 8008457C 10E00026 */ beqz $a3, .L80084618 +/* 085180 80084580 3C0F8012 */ lui $t7, %hi(sEepromSettings+4) # $t7, 0x8012 +/* 085184 80084584 8DEF644C */ lw $t7, %lo(sEepromSettings+4)($t7) +/* 085188 80084588 3C010200 */ lui $at, 0x200 +/* 08518C 8008458C 01E1C824 */ and $t9, $t7, $at +/* 085190 80084590 1320000F */ beqz $t9, .L800845D0 +/* 085194 80084594 240400EB */ li $a0, 235 +/* 085198 80084598 240400EB */ li $a0, 235 +/* 08519C 8008459C 0C000741 */ jal play_sound_global +/* 0851A0 800845A0 00002825 */ move $a1, $zero +/* 0851A4 800845A4 24040000 */ li $a0, 0 +/* 0851A8 800845A8 0C027AAF */ jal unset_eeprom_settings_value +/* 0851AC 800845AC 3C050200 */ lui $a1, 0x200 +/* 0851B0 800845B0 0C030ABD */ jal func_800C2AF4 +/* 0851B4 800845B4 00002025 */ move $a0, $zero +/* 0851B8 800845B8 3C0B800E */ lui $t3, %hi(gMenuText) # $t3, 0x800e +/* 0851BC 800845BC 8D6BF4A0 */ lw $t3, %lo(gMenuText)($t3) +/* 0851C0 800845C0 3C01800E */ lui $at, %hi(gOptionMenuStrings+4) # $at, 0x800e +/* 0851C4 800845C4 8D6A02DC */ lw $t2, 0x2dc($t3) +/* 0851C8 800845C8 1000000E */ b .L80084604 +/* 0851CC 800845CC AC2AFA14 */ sw $t2, %lo(gOptionMenuStrings+4)($at) +.L800845D0: +/* 0851D0 800845D0 0C000741 */ jal play_sound_global +/* 0851D4 800845D4 00002825 */ move $a1, $zero +/* 0851D8 800845D8 24040000 */ li $a0, 0 +/* 0851DC 800845DC 0C027A9E */ jal set_eeprom_settings_value +/* 0851E0 800845E0 3C050200 */ lui $a1, 0x200 +/* 0851E4 800845E4 0C030ABD */ jal func_800C2AF4 +/* 0851E8 800845E8 24040001 */ li $a0, 1 +/* 0851EC 800845EC 3C0C800E */ lui $t4, %hi(gMenuText) # $t4, 0x800e +/* 0851F0 800845F0 8D8CF4A0 */ lw $t4, %lo(gMenuText)($t4) +/* 0851F4 800845F4 3C01800E */ lui $at, %hi(gOptionMenuStrings+4) # $at, 0x800e +/* 0851F8 800845F8 8D8D02D8 */ lw $t5, 0x2d8($t4) +/* 0851FC 800845FC 00000000 */ nop +/* 085200 80084600 AC2DFA14 */ sw $t5, %lo(gOptionMenuStrings+4)($at) +.L80084604: +/* 085204 80084604 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 085208 80084608 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 08520C 8008460C 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 085210 80084610 10000019 */ b .L80084678 +/* 085214 80084614 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L80084618: +/* 085218 80084618 05010008 */ bgez $t0, .L8008463C +/* 08521C 8008461C 00401825 */ move $v1, $v0 +/* 085220 80084620 244E0001 */ addiu $t6, $v0, 1 +/* 085224 80084624 29C10006 */ slti $at, $t6, 6 +/* 085228 80084628 ACCE0000 */ sw $t6, ($a2) +/* 08522C 8008462C 14200003 */ bnez $at, .L8008463C +/* 085230 80084630 01C01025 */ move $v0, $t6 +/* 085234 80084634 24020005 */ li $v0, 5 +/* 085238 80084638 ACC20000 */ sw $v0, ($a2) +.L8008463C: +/* 08523C 8008463C 19000006 */ blez $t0, .L80084658 +/* 085240 80084640 2458FFFF */ addiu $t8, $v0, -1 +/* 085244 80084644 ACD80000 */ sw $t8, ($a2) +/* 085248 80084648 07010003 */ bgez $t8, .L80084658 +/* 08524C 8008464C 03001025 */ move $v0, $t8 +/* 085250 80084650 ACC00000 */ sw $zero, ($a2) +/* 085254 80084654 00001025 */ move $v0, $zero +.L80084658: +/* 085258 80084658 10620007 */ beq $v1, $v0, .L80084678 +/* 08525C 8008465C 240400EB */ li $a0, 235 +/* 085260 80084660 0C000741 */ jal play_sound_global +/* 085264 80084664 00002825 */ move $a1, $zero +/* 085268 80084668 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 08526C 8008466C 3C06800E */ lui $a2, %hi(D_800DF460) # $a2, 0x800e +/* 085270 80084670 24C6F460 */ addiu $a2, %lo(D_800DF460) # addiu $a2, $a2, -0xba0 +/* 085274 80084674 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +.L80084678: +/* 085278 80084678 8D220000 */ lw $v0, ($t1) +/* 08527C 8008467C 00000000 */ nop +/* 085280 80084680 2841001F */ slti $at, $v0, 0x1f +/* 085284 80084684 1420001B */ bnez $at, .L800846F4 +/* 085288 80084688 2841FFE2 */ slti $at, $v0, -0x1e +/* 08528C 8008468C 8CC20000 */ lw $v0, ($a2) +/* 085290 80084690 24010002 */ li $at, 2 +/* 085294 80084694 14410008 */ bne $v0, $at, .L800846B8 +/* 085298 80084698 24010003 */ li $at, 3 +/* 08529C 8008469C 0C0211CD */ jal unload_big_font_1 +/* 0852A0 800846A0 00000000 */ nop +/* 0852A4 800846A4 0C0204F4 */ jal menu_init +/* 0852A8 800846A8 2404000D */ li $a0, 13 +/* 0852AC 800846AC 1000001D */ b .L80084724 +/* 0852B0 800846B0 00001025 */ move $v0, $zero +/* 0852B4 800846B4 24010003 */ li $at, 3 +.L800846B8: +/* 0852B8 800846B8 14410007 */ bne $v0, $at, .L800846D8 +/* 0852BC 800846BC 00000000 */ nop +/* 0852C0 800846C0 0C0211CD */ jal unload_big_font_1 +/* 0852C4 800846C4 00000000 */ nop +/* 0852C8 800846C8 0C0204F4 */ jal menu_init +/* 0852CC 800846CC 2404000E */ li $a0, 14 +/* 0852D0 800846D0 10000014 */ b .L80084724 +/* 0852D4 800846D4 00001025 */ move $v0, $zero +.L800846D8: +/* 0852D8 800846D8 0C0211CD */ jal unload_big_font_1 +/* 0852DC 800846DC 00000000 */ nop +/* 0852E0 800846E0 0C0204F4 */ jal menu_init +/* 0852E4 800846E4 2404000A */ li $a0, 10 +/* 0852E8 800846E8 1000000E */ b .L80084724 +/* 0852EC 800846EC 00001025 */ move $v0, $zero +/* 0852F0 800846F0 2841FFE2 */ slti $at, $v0, -0x1e +.L800846F4: +/* 0852F4 800846F4 10200009 */ beqz $at, .L8008471C +/* 0852F8 800846F8 00001025 */ move $v0, $zero +/* 0852FC 800846FC 0C0002CA */ jal func_80000B28 +/* 085300 80084700 00000000 */ nop +/* 085304 80084704 0C0211CD */ jal unload_big_font_1 +/* 085308 80084708 00000000 */ nop +/* 08530C 8008470C 0C0204F4 */ jal menu_init +/* 085310 80084710 00002025 */ move $a0, $zero +/* 085314 80084714 10000003 */ b .L80084724 +/* 085318 80084718 00001025 */ move $v0, $zero +.L8008471C: +/* 08531C 8008471C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 085320 80084720 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +.L80084724: +/* 085324 80084724 8FBF0014 */ lw $ra, 0x14($sp) +/* 085328 80084728 27BD0048 */ addiu $sp, $sp, 0x48 +/* 08532C 8008472C 03E00008 */ jr $ra +/* 085330 80084730 00000000 */ nop + diff --git a/asm/non_matchings/menu/menu_results_loop.s b/asm/non_matchings/menu/menu_results_loop.s index 60025e47..e4de52fa 100644 --- a/asm/non_matchings/menu/menu_results_loop.s +++ b/asm/non_matchings/menu/menu_results_loop.s @@ -1,291 +1,291 @@ -glabel menu_results_loop -/* 097EA8 800972A8 3C028012 */ lui $v0, %hi(gOptionBlinkTimer) # $v0, 0x8012 -/* 097EAC 800972AC 244263BC */ addiu $v0, %lo(gOptionBlinkTimer) # addiu $v0, $v0, 0x63bc -/* 097EB0 800972B0 8C4E0000 */ lw $t6, ($v0) -/* 097EB4 800972B4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 097EB8 800972B8 01C4C021 */ addu $t8, $t6, $a0 -/* 097EBC 800972BC AFBF0014 */ sw $ra, 0x14($sp) -/* 097EC0 800972C0 3319003F */ andi $t9, $t8, 0x3f -/* 097EC4 800972C4 AFA40028 */ sw $a0, 0x28($sp) -/* 097EC8 800972C8 AFA00024 */ sw $zero, 0x24($sp) -/* 097ECC 800972CC AFA00020 */ sw $zero, 0x20($sp) -/* 097ED0 800972D0 AFA0001C */ sw $zero, 0x1c($sp) -/* 097ED4 800972D4 0C02393B */ jal func_8008E4EC -/* 097ED8 800972D8 AC590000 */ sw $t9, ($v0) -/* 097EDC 800972DC 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 -/* 097EE0 800972E0 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 -/* 097EE4 800972E4 8CC30000 */ lw $v1, ($a2) -/* 097EE8 800972E8 3C078012 */ lui $a3, %hi(gOpacityDecayTimer) # $a3, 0x8012 -/* 097EEC 800972EC 1C600013 */ bgtz $v1, .L8009733C -/* 097EF0 800972F0 24E763D8 */ addiu $a3, %lo(gOpacityDecayTimer) # addiu $a3, $a3, 0x63d8 -/* 097EF4 800972F4 8CEA0000 */ lw $t2, ($a3) -/* 097EF8 800972F8 8FAB0028 */ lw $t3, 0x28($sp) -/* 097EFC 800972FC 24080001 */ li $t0, 1 -/* 097F00 80097300 014B1021 */ addu $v0, $t2, $t3 -/* 097F04 80097304 2841003C */ slti $at, $v0, 0x3c -/* 097F08 80097308 14200003 */ bnez $at, .L80097318 -/* 097F0C 8009730C ACE20000 */ sw $v0, ($a3) -/* 097F10 80097310 1000000A */ b .L8009733C -/* 097F14 80097314 ACC80000 */ sw $t0, ($a2) -.L80097318: -/* 097F18 80097318 04610008 */ bgez $v1, .L8009733C -/* 097F1C 8009731C 28410015 */ slti $at, $v0, 0x15 -/* 097F20 80097320 14200006 */ bnez $at, .L8009733C -/* 097F24 80097324 24040016 */ li $a0, 22 -/* 097F28 80097328 ACC00000 */ sw $zero, ($a2) -/* 097F2C 8009732C 0C000741 */ jal play_sound_global -/* 097F30 80097330 00002825 */ move $a1, $zero -/* 097F34 80097334 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 -/* 097F38 80097338 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 -.L8009733C: -/* 097F3C 8009733C 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 097F40 80097340 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -/* 097F44 80097344 8D230000 */ lw $v1, ($t1) -/* 097F48 80097348 3C078012 */ lui $a3, %hi(gOpacityDecayTimer) # $a3, 0x8012 -/* 097F4C 8009734C 28610014 */ slti $at, $v1, 0x14 -/* 097F50 80097350 24E763D8 */ addiu $a3, %lo(gOpacityDecayTimer) # addiu $a3, $a3, 0x63d8 -/* 097F54 80097354 10200027 */ beqz $at, .L800973F4 -/* 097F58 80097358 24080001 */ li $t0, 1 -/* 097F5C 8009735C 8CCD0000 */ lw $t5, ($a2) -/* 097F60 80097360 8FA40028 */ lw $a0, 0x28($sp) -/* 097F64 80097364 1DA0001A */ bgtz $t5, .L800973D0 -/* 097F68 80097368 00000000 */ nop -/* 097F6C 8009736C 8CE20000 */ lw $v0, ($a3) -/* 097F70 80097370 00000000 */ nop -/* 097F74 80097374 28410014 */ slti $at, $v0, 0x14 -/* 097F78 80097378 1420001E */ bnez $at, .L800973F4 -/* 097F7C 8009737C 244EFFEC */ addiu $t6, $v0, -0x14 -/* 097F80 80097380 448E2000 */ mtc1 $t6, $f4 -/* 097F84 80097384 3C014220 */ li $at, 0x42200000 # 40.000000 -/* 097F88 80097388 468021A0 */ cvt.s.w $f6, $f4 -/* 097F8C 8009738C 44814000 */ mtc1 $at, $f8 -/* 097F90 80097390 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 097F94 80097394 46083283 */ div.s $f10, $f6, $f8 -/* 097F98 80097398 44818000 */ mtc1 $at, $f16 -/* 097F9C 8009739C 8FA40028 */ lw $a0, 0x28($sp) -/* 097FA0 800973A0 460A8481 */ sub.s $f18, $f16, $f10 -/* 097FA4 800973A4 44059000 */ mfc1 $a1, $f18 -/* 097FA8 800973A8 0C025A5E */ jal func_80096978 -/* 097FAC 800973AC 00000000 */ nop -/* 097FB0 800973B0 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e -/* 097FB4 800973B4 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1) -/* 097FB8 800973B8 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 -/* 097FBC 800973BC 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 097FC0 800973C0 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -/* 097FC4 800973C4 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 -/* 097FC8 800973C8 1000000A */ b .L800973F4 -/* 097FCC 800973CC 24080001 */ li $t0, 1 -.L800973D0: -/* 097FD0 800973D0 0C025A5E */ jal func_80096978 -/* 097FD4 800973D4 24050000 */ li $a1, 0 -/* 097FD8 800973D8 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e -/* 097FDC 800973DC 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 -/* 097FE0 800973E0 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e -/* 097FE4 800973E4 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1) -/* 097FE8 800973E8 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 -/* 097FEC 800973EC 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 -/* 097FF0 800973F0 24080001 */ li $t0, 1 -.L800973F4: -/* 097FF4 800973F4 14600088 */ bnez $v1, .L80097618 -/* 097FF8 800973F8 8FB80028 */ lw $t8, 0x28($sp) -/* 097FFC 800973FC 8CCF0000 */ lw $t7, ($a2) -/* 098000 80097400 3C04800E */ lui $a0, %hi(gMenuSubOption) # $a0, 0x800e -/* 098004 80097404 15E00009 */ bnez $t7, .L8009742C -/* 098008 80097408 24840988 */ addiu $a0, %lo(gMenuSubOption) # addiu $a0, $a0, 0x988 -/* 09800C 8009740C 3C188012 */ lui $t8, %hi(D_801267E8) # $t8, 0x8012 -/* 098010 80097410 8F1867E8 */ lw $t8, %lo(D_801267E8)($t8) -/* 098014 80097414 00000000 */ nop -/* 098018 80097418 33199000 */ andi $t9, $t8, 0x9000 -/* 09801C 8009741C 13200068 */ beqz $t9, .L800975C0 -/* 098020 80097420 8FAC0024 */ lw $t4, 0x24($sp) -/* 098024 80097424 10000065 */ b .L800975BC -/* 098028 80097428 ACC80000 */ sw $t0, ($a2) -.L8009742C: -/* 09802C 8009742C 8C820000 */ lw $v0, ($a0) -/* 098030 80097430 3C038012 */ lui $v1, %hi(D_801267E8) # $v1, 0x8012 -/* 098034 80097434 1040002D */ beqz $v0, .L800974EC -/* 098038 80097438 3C188012 */ lui $t8, %hi(D_801267E8) # $t8, 0x8012 -/* 09803C 8009743C 8C6367E8 */ lw $v1, %lo(D_801267E8)($v1) -/* 098040 80097440 00000000 */ nop -/* 098044 80097444 306A9000 */ andi $t2, $v1, 0x9000 -/* 098048 80097448 11400010 */ beqz $t2, .L8009748C -/* 09804C 8009744C 306C4000 */ andi $t4, $v1, 0x4000 -/* 098050 80097450 1502000B */ bne $t0, $v0, .L80097480 -/* 098054 80097454 240B0001 */ li $t3, 1 -/* 098058 80097458 AFA80020 */ sw $t0, 0x20($sp) -/* 09805C 8009745C 0C000326 */ jal set_music_fade_timer -/* 098060 80097460 2404FF80 */ li $a0, -128 -/* 098064 80097464 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 098068 80097468 0C030076 */ jal func_800C01D8 -/* 09806C 8009746C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 098070 80097470 24080001 */ li $t0, 1 -/* 098074 80097474 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 098078 80097478 10000050 */ b .L800975BC -/* 09807C 8009747C AC28F47C */ sw $t0, %lo(gMenuDelay)($at) -.L80097480: -/* 098080 80097480 AFAB0024 */ sw $t3, 0x24($sp) -/* 098084 80097484 1000004D */ b .L800975BC -/* 098088 80097488 AC800000 */ sw $zero, ($a0) -.L8009748C: -/* 09808C 8009748C 11800005 */ beqz $t4, .L800974A4 -/* 098090 80097490 3C038012 */ lui $v1, %hi(D_80126838) # $v1, 0x8012 -/* 098094 80097494 240D0001 */ li $t5, 1 -/* 098098 80097498 AFAD0024 */ sw $t5, 0x24($sp) -/* 09809C 8009749C 10000047 */ b .L800975BC -/* 0980A0 800974A0 AC800000 */ sw $zero, ($a0) -.L800974A4: -/* 0980A4 800974A4 84636838 */ lh $v1, %lo(D_80126838)($v1) -/* 0980A8 800974A8 00402825 */ move $a1, $v0 -/* 0980AC 800974AC 18600005 */ blez $v1, .L800974C4 -/* 0980B0 800974B0 24010002 */ li $at, 2 -/* 0980B4 800974B4 14410003 */ bne $v0, $at, .L800974C4 -/* 0980B8 800974B8 00000000 */ nop -/* 0980BC 800974BC AC880000 */ sw $t0, ($a0) -/* 0980C0 800974C0 01001025 */ move $v0, $t0 -.L800974C4: -/* 0980C4 800974C4 04610005 */ bgez $v1, .L800974DC -/* 0980C8 800974C8 240F0001 */ li $t7, 1 -/* 0980CC 800974CC 15020003 */ bne $t0, $v0, .L800974DC -/* 0980D0 800974D0 00000000 */ nop -/* 0980D4 800974D4 24020002 */ li $v0, 2 -/* 0980D8 800974D8 AC820000 */ sw $v0, ($a0) -.L800974DC: -/* 0980DC 800974DC 10A20038 */ beq $a1, $v0, .L800975C0 -/* 0980E0 800974E0 8FAC0024 */ lw $t4, 0x24($sp) -/* 0980E4 800974E4 10000035 */ b .L800975BC -/* 0980E8 800974E8 AFAF001C */ sw $t7, 0x1c($sp) -.L800974EC: -/* 0980EC 800974EC 8F1867E8 */ lw $t8, %lo(D_801267E8)($t8) -/* 0980F0 800974F0 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 -/* 0980F4 800974F4 33199000 */ andi $t9, $t8, 0x9000 -/* 0980F8 800974F8 13200019 */ beqz $t9, .L80097560 -/* 0980FC 800974FC 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 -/* 098100 80097500 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 -/* 098104 80097504 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 -/* 098108 80097508 8CCA0000 */ lw $t2, ($a2) -/* 09810C 8009750C 3C0D800E */ lui $t5, %hi(gMenuText) # $t5, 0x800e -/* 098110 80097510 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5) -/* 098114 80097514 3C0C8012 */ lui $t4, %hi(D_80126BF0) # $t4, 0x8012 -/* 098118 80097518 000A5880 */ sll $t3, $t2, 2 -/* 09811C 8009751C AFA80020 */ sw $t0, 0x20($sp) -/* 098120 80097520 018B6021 */ addu $t4, $t4, $t3 -/* 098124 80097524 8D8C6BF0 */ lw $t4, %lo(D_80126BF0)($t4) -/* 098128 80097528 8DAE0070 */ lw $t6, 0x70($t5) -/* 09812C 8009752C 240F0002 */ li $t7, 2 -/* 098130 80097530 158E0003 */ bne $t4, $t6, .L80097540 -/* 098134 80097534 00000000 */ nop -/* 098138 80097538 10000020 */ b .L800975BC -/* 09813C 8009753C AC8F0000 */ sw $t7, ($a0) -.L80097540: -/* 098140 80097540 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 098144 80097544 AD280000 */ sw $t0, ($t1) -/* 098148 80097548 0C030076 */ jal func_800C01D8 -/* 09814C 8009754C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 098150 80097550 0C000326 */ jal set_music_fade_timer -/* 098154 80097554 2404FF80 */ li $a0, -128 -/* 098158 80097558 10000019 */ b .L800975C0 -/* 09815C 8009755C 8FAC0024 */ lw $t4, 0x24($sp) -.L80097560: -/* 098160 80097560 3C038012 */ lui $v1, %hi(D_80126838) # $v1, 0x8012 -/* 098164 80097564 8CC20000 */ lw $v0, ($a2) -/* 098168 80097568 84636838 */ lh $v1, %lo(D_80126838)($v1) -/* 09816C 8009756C 3C188012 */ lui $t8, %hi(D_80126C14) # $t8, 0x8012 -/* 098170 80097570 04610009 */ bgez $v1, .L80097598 -/* 098174 80097574 00402825 */ move $a1, $v0 -/* 098178 80097578 8F186C14 */ lw $t8, %lo(D_80126C14)($t8) -/* 09817C 8009757C 244A0001 */ addiu $t2, $v0, 1 -/* 098180 80097580 2719FFFF */ addiu $t9, $t8, -1 -/* 098184 80097584 0059082A */ slt $at, $v0, $t9 -/* 098188 80097588 10200003 */ beqz $at, .L80097598 -/* 09818C 8009758C 00000000 */ nop -/* 098190 80097590 ACCA0000 */ sw $t2, ($a2) -/* 098194 80097594 01401025 */ move $v0, $t2 -.L80097598: -/* 098198 80097598 18600005 */ blez $v1, .L800975B0 -/* 09819C 8009759C 240D0001 */ li $t5, 1 -/* 0981A0 800975A0 18400003 */ blez $v0, .L800975B0 -/* 0981A4 800975A4 244BFFFF */ addiu $t3, $v0, -1 -/* 0981A8 800975A8 ACCB0000 */ sw $t3, ($a2) -/* 0981AC 800975AC 01601025 */ move $v0, $t3 -.L800975B0: -/* 0981B0 800975B0 10A20003 */ beq $a1, $v0, .L800975C0 -/* 0981B4 800975B4 8FAC0024 */ lw $t4, 0x24($sp) -/* 0981B8 800975B8 AFAD001C */ sw $t5, 0x1c($sp) -.L800975BC: -/* 0981BC 800975BC 8FAC0024 */ lw $t4, 0x24($sp) -.L800975C0: -/* 0981C0 800975C0 8FAE0020 */ lw $t6, 0x20($sp) -/* 0981C4 800975C4 11800005 */ beqz $t4, .L800975DC -/* 0981C8 800975C8 24040241 */ li $a0, 577 -/* 0981CC 800975CC 0C000741 */ jal play_sound_global -/* 0981D0 800975D0 00002825 */ move $a1, $zero -/* 0981D4 800975D4 10000036 */ b .L800976B0 -/* 0981D8 800975D8 00000000 */ nop -.L800975DC: -/* 0981DC 800975DC 11C00005 */ beqz $t6, .L800975F4 -/* 0981E0 800975E0 240400EF */ li $a0, 239 -/* 0981E4 800975E4 0C000741 */ jal play_sound_global -/* 0981E8 800975E8 00002825 */ move $a1, $zero -/* 0981EC 800975EC 10000030 */ b .L800976B0 -/* 0981F0 800975F0 00000000 */ nop -.L800975F4: -/* 0981F4 800975F4 8FAF001C */ lw $t7, 0x1c($sp) -/* 0981F8 800975F8 240400EB */ li $a0, 235 -/* 0981FC 800975FC 11E0002C */ beqz $t7, .L800976B0 -/* 098200 80097600 00000000 */ nop -/* 098204 80097604 0C000741 */ jal play_sound_global -/* 098208 80097608 00002825 */ move $a1, $zero -/* 09820C 8009760C 10000028 */ b .L800976B0 -/* 098210 80097610 00000000 */ nop -/* 098214 80097614 8FB80028 */ lw $t8, 0x28($sp) -.L80097618: -/* 098218 80097618 00000000 */ nop -/* 09821C 8009761C 0078C821 */ addu $t9, $v1, $t8 -/* 098220 80097620 2B21001F */ slti $at, $t9, 0x1f -/* 098224 80097624 14200022 */ bnez $at, .L800976B0 -/* 098228 80097628 AD390000 */ sw $t9, ($t1) -/* 09822C 8009762C 0C025DB3 */ jal func_800976CC -/* 098230 80097630 00000000 */ nop -/* 098234 80097634 0C031588 */ jal close_dialogue_box -/* 098238 80097638 24040007 */ li $a0, 7 -/* 09823C 8009763C 0C031525 */ jal assign_dialogue_box_id -/* 098240 80097640 24040007 */ li $a0, 7 -/* 098244 80097644 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 -/* 098248 80097648 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 -/* 09824C 8009764C 8CCB0000 */ lw $t3, ($a2) -/* 098250 80097650 3C03800E */ lui $v1, %hi(gMenuText) # $v1, 0x800e -/* 098254 80097654 8C63F4A0 */ lw $v1, %lo(gMenuText)($v1) -/* 098258 80097658 3C028012 */ lui $v0, %hi(D_80126BF0) # $v0, 0x8012 -/* 09825C 8009765C 000B6880 */ sll $t5, $t3, 2 -/* 098260 80097660 004D1021 */ addu $v0, $v0, $t5 -/* 098264 80097664 8C426BF0 */ lw $v0, %lo(D_80126BF0)($v0) -/* 098268 80097668 8C6C005C */ lw $t4, 0x5c($v1) -/* 09826C 8009766C 00000000 */ nop -/* 098270 80097670 144C0003 */ bne $v0, $t4, .L80097680 -/* 098274 80097674 00000000 */ nop -/* 098278 80097678 10000010 */ b .L800976BC -/* 09827C 8009767C 24020102 */ li $v0, 258 -.L80097680: -/* 098280 80097680 8C6E0060 */ lw $t6, 0x60($v1) -/* 098284 80097684 2404FFFF */ li $a0, -1 -/* 098288 80097688 144E0007 */ bne $v0, $t6, .L800976A8 -/* 09828C 8009768C 2405FFFF */ li $a1, -1 -/* 098290 80097690 0C01B8BA */ jal load_level_for_menu -/* 098294 80097694 00003025 */ move $a2, $zero -/* 098298 80097698 0C0204F4 */ jal menu_init -/* 09829C 8009769C 2404000F */ li $a0, 15 -/* 0982A0 800976A0 10000006 */ b .L800976BC -/* 0982A4 800976A4 00001025 */ move $v0, $zero -.L800976A8: -/* 0982A8 800976A8 10000004 */ b .L800976BC -/* 0982AC 800976AC 24020104 */ li $v0, 260 -.L800976B0: -/* 0982B0 800976B0 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 0982B4 800976B4 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -/* 0982B8 800976B8 00001025 */ move $v0, $zero -.L800976BC: -/* 0982BC 800976BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0982C0 800976C0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 0982C4 800976C4 03E00008 */ jr $ra -/* 0982C8 800976C8 00000000 */ nop - +glabel menu_results_loop +/* 097EA8 800972A8 3C028012 */ lui $v0, %hi(gOptionBlinkTimer) # $v0, 0x8012 +/* 097EAC 800972AC 244263BC */ addiu $v0, %lo(gOptionBlinkTimer) # addiu $v0, $v0, 0x63bc +/* 097EB0 800972B0 8C4E0000 */ lw $t6, ($v0) +/* 097EB4 800972B4 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 097EB8 800972B8 01C4C021 */ addu $t8, $t6, $a0 +/* 097EBC 800972BC AFBF0014 */ sw $ra, 0x14($sp) +/* 097EC0 800972C0 3319003F */ andi $t9, $t8, 0x3f +/* 097EC4 800972C4 AFA40028 */ sw $a0, 0x28($sp) +/* 097EC8 800972C8 AFA00024 */ sw $zero, 0x24($sp) +/* 097ECC 800972CC AFA00020 */ sw $zero, 0x20($sp) +/* 097ED0 800972D0 AFA0001C */ sw $zero, 0x1c($sp) +/* 097ED4 800972D4 0C02393B */ jal func_8008E4EC +/* 097ED8 800972D8 AC590000 */ sw $t9, ($v0) +/* 097EDC 800972DC 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 +/* 097EE0 800972E0 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 +/* 097EE4 800972E4 8CC30000 */ lw $v1, ($a2) +/* 097EE8 800972E8 3C078012 */ lui $a3, %hi(gOpacityDecayTimer) # $a3, 0x8012 +/* 097EEC 800972EC 1C600013 */ bgtz $v1, .L8009733C +/* 097EF0 800972F0 24E763D8 */ addiu $a3, %lo(gOpacityDecayTimer) # addiu $a3, $a3, 0x63d8 +/* 097EF4 800972F4 8CEA0000 */ lw $t2, ($a3) +/* 097EF8 800972F8 8FAB0028 */ lw $t3, 0x28($sp) +/* 097EFC 800972FC 24080001 */ li $t0, 1 +/* 097F00 80097300 014B1021 */ addu $v0, $t2, $t3 +/* 097F04 80097304 2841003C */ slti $at, $v0, 0x3c +/* 097F08 80097308 14200003 */ bnez $at, .L80097318 +/* 097F0C 8009730C ACE20000 */ sw $v0, ($a3) +/* 097F10 80097310 1000000A */ b .L8009733C +/* 097F14 80097314 ACC80000 */ sw $t0, ($a2) +.L80097318: +/* 097F18 80097318 04610008 */ bgez $v1, .L8009733C +/* 097F1C 8009731C 28410015 */ slti $at, $v0, 0x15 +/* 097F20 80097320 14200006 */ bnez $at, .L8009733C +/* 097F24 80097324 24040016 */ li $a0, 22 +/* 097F28 80097328 ACC00000 */ sw $zero, ($a2) +/* 097F2C 8009732C 0C000741 */ jal play_sound_global +/* 097F30 80097330 00002825 */ move $a1, $zero +/* 097F34 80097334 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 +/* 097F38 80097338 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 +.L8009733C: +/* 097F3C 8009733C 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 097F40 80097340 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +/* 097F44 80097344 8D230000 */ lw $v1, ($t1) +/* 097F48 80097348 3C078012 */ lui $a3, %hi(gOpacityDecayTimer) # $a3, 0x8012 +/* 097F4C 8009734C 28610014 */ slti $at, $v1, 0x14 +/* 097F50 80097350 24E763D8 */ addiu $a3, %lo(gOpacityDecayTimer) # addiu $a3, $a3, 0x63d8 +/* 097F54 80097354 10200027 */ beqz $at, .L800973F4 +/* 097F58 80097358 24080001 */ li $t0, 1 +/* 097F5C 8009735C 8CCD0000 */ lw $t5, ($a2) +/* 097F60 80097360 8FA40028 */ lw $a0, 0x28($sp) +/* 097F64 80097364 1DA0001A */ bgtz $t5, .L800973D0 +/* 097F68 80097368 00000000 */ nop +/* 097F6C 8009736C 8CE20000 */ lw $v0, ($a3) +/* 097F70 80097370 00000000 */ nop +/* 097F74 80097374 28410014 */ slti $at, $v0, 0x14 +/* 097F78 80097378 1420001E */ bnez $at, .L800973F4 +/* 097F7C 8009737C 244EFFEC */ addiu $t6, $v0, -0x14 +/* 097F80 80097380 448E2000 */ mtc1 $t6, $f4 +/* 097F84 80097384 3C014220 */ li $at, 0x42200000 # 40.000000 +/* 097F88 80097388 468021A0 */ cvt.s.w $f6, $f4 +/* 097F8C 8009738C 44814000 */ mtc1 $at, $f8 +/* 097F90 80097390 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 097F94 80097394 46083283 */ div.s $f10, $f6, $f8 +/* 097F98 80097398 44818000 */ mtc1 $at, $f16 +/* 097F9C 8009739C 8FA40028 */ lw $a0, 0x28($sp) +/* 097FA0 800973A0 460A8481 */ sub.s $f18, $f16, $f10 +/* 097FA4 800973A4 44059000 */ mfc1 $a1, $f18 +/* 097FA8 800973A8 0C025A5E */ jal func_80096978 +/* 097FAC 800973AC 00000000 */ nop +/* 097FB0 800973B0 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e +/* 097FB4 800973B4 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1) +/* 097FB8 800973B8 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 +/* 097FBC 800973BC 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 097FC0 800973C0 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +/* 097FC4 800973C4 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 +/* 097FC8 800973C8 1000000A */ b .L800973F4 +/* 097FCC 800973CC 24080001 */ li $t0, 1 +.L800973D0: +/* 097FD0 800973D0 0C025A5E */ jal func_80096978 +/* 097FD4 800973D4 24050000 */ li $a1, 0 +/* 097FD8 800973D8 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e +/* 097FDC 800973DC 3C068012 */ lui $a2, %hi(D_801263E0) # $a2, 0x8012 +/* 097FE0 800973E0 3C09800E */ lui $t1, %hi(gMenuDelay) # $t1, 0x800e +/* 097FE4 800973E4 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1) +/* 097FE8 800973E8 2529F47C */ addiu $t1, %lo(gMenuDelay) # addiu $t1, $t1, -0xb84 +/* 097FEC 800973EC 24C663E0 */ addiu $a2, %lo(D_801263E0) # addiu $a2, $a2, 0x63e0 +/* 097FF0 800973F0 24080001 */ li $t0, 1 +.L800973F4: +/* 097FF4 800973F4 14600088 */ bnez $v1, .L80097618 +/* 097FF8 800973F8 8FB80028 */ lw $t8, 0x28($sp) +/* 097FFC 800973FC 8CCF0000 */ lw $t7, ($a2) +/* 098000 80097400 3C04800E */ lui $a0, %hi(gMenuSubOption) # $a0, 0x800e +/* 098004 80097404 15E00009 */ bnez $t7, .L8009742C +/* 098008 80097408 24840988 */ addiu $a0, %lo(gMenuSubOption) # addiu $a0, $a0, 0x988 +/* 09800C 8009740C 3C188012 */ lui $t8, %hi(D_801267E8) # $t8, 0x8012 +/* 098010 80097410 8F1867E8 */ lw $t8, %lo(D_801267E8)($t8) +/* 098014 80097414 00000000 */ nop +/* 098018 80097418 33199000 */ andi $t9, $t8, 0x9000 +/* 09801C 8009741C 13200068 */ beqz $t9, .L800975C0 +/* 098020 80097420 8FAC0024 */ lw $t4, 0x24($sp) +/* 098024 80097424 10000065 */ b .L800975BC +/* 098028 80097428 ACC80000 */ sw $t0, ($a2) +.L8009742C: +/* 09802C 8009742C 8C820000 */ lw $v0, ($a0) +/* 098030 80097430 3C038012 */ lui $v1, %hi(D_801267E8) # $v1, 0x8012 +/* 098034 80097434 1040002D */ beqz $v0, .L800974EC +/* 098038 80097438 3C188012 */ lui $t8, %hi(D_801267E8) # $t8, 0x8012 +/* 09803C 8009743C 8C6367E8 */ lw $v1, %lo(D_801267E8)($v1) +/* 098040 80097440 00000000 */ nop +/* 098044 80097444 306A9000 */ andi $t2, $v1, 0x9000 +/* 098048 80097448 11400010 */ beqz $t2, .L8009748C +/* 09804C 8009744C 306C4000 */ andi $t4, $v1, 0x4000 +/* 098050 80097450 1502000B */ bne $t0, $v0, .L80097480 +/* 098054 80097454 240B0001 */ li $t3, 1 +/* 098058 80097458 AFA80020 */ sw $t0, 0x20($sp) +/* 09805C 8009745C 0C000326 */ jal set_music_fade_timer +/* 098060 80097460 2404FF80 */ li $a0, -128 +/* 098064 80097464 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 098068 80097468 0C030076 */ jal transition_begin +/* 09806C 8009746C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 098070 80097470 24080001 */ li $t0, 1 +/* 098074 80097474 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 098078 80097478 10000050 */ b .L800975BC +/* 09807C 8009747C AC28F47C */ sw $t0, %lo(gMenuDelay)($at) +.L80097480: +/* 098080 80097480 AFAB0024 */ sw $t3, 0x24($sp) +/* 098084 80097484 1000004D */ b .L800975BC +/* 098088 80097488 AC800000 */ sw $zero, ($a0) +.L8009748C: +/* 09808C 8009748C 11800005 */ beqz $t4, .L800974A4 +/* 098090 80097490 3C038012 */ lui $v1, %hi(D_80126838) # $v1, 0x8012 +/* 098094 80097494 240D0001 */ li $t5, 1 +/* 098098 80097498 AFAD0024 */ sw $t5, 0x24($sp) +/* 09809C 8009749C 10000047 */ b .L800975BC +/* 0980A0 800974A0 AC800000 */ sw $zero, ($a0) +.L800974A4: +/* 0980A4 800974A4 84636838 */ lh $v1, %lo(D_80126838)($v1) +/* 0980A8 800974A8 00402825 */ move $a1, $v0 +/* 0980AC 800974AC 18600005 */ blez $v1, .L800974C4 +/* 0980B0 800974B0 24010002 */ li $at, 2 +/* 0980B4 800974B4 14410003 */ bne $v0, $at, .L800974C4 +/* 0980B8 800974B8 00000000 */ nop +/* 0980BC 800974BC AC880000 */ sw $t0, ($a0) +/* 0980C0 800974C0 01001025 */ move $v0, $t0 +.L800974C4: +/* 0980C4 800974C4 04610005 */ bgez $v1, .L800974DC +/* 0980C8 800974C8 240F0001 */ li $t7, 1 +/* 0980CC 800974CC 15020003 */ bne $t0, $v0, .L800974DC +/* 0980D0 800974D0 00000000 */ nop +/* 0980D4 800974D4 24020002 */ li $v0, 2 +/* 0980D8 800974D8 AC820000 */ sw $v0, ($a0) +.L800974DC: +/* 0980DC 800974DC 10A20038 */ beq $a1, $v0, .L800975C0 +/* 0980E0 800974E0 8FAC0024 */ lw $t4, 0x24($sp) +/* 0980E4 800974E4 10000035 */ b .L800975BC +/* 0980E8 800974E8 AFAF001C */ sw $t7, 0x1c($sp) +.L800974EC: +/* 0980EC 800974EC 8F1867E8 */ lw $t8, %lo(D_801267E8)($t8) +/* 0980F0 800974F0 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 +/* 0980F4 800974F4 33199000 */ andi $t9, $t8, 0x9000 +/* 0980F8 800974F8 13200019 */ beqz $t9, .L80097560 +/* 0980FC 800974FC 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 +/* 098100 80097500 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 +/* 098104 80097504 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 +/* 098108 80097508 8CCA0000 */ lw $t2, ($a2) +/* 09810C 8009750C 3C0D800E */ lui $t5, %hi(gMenuText) # $t5, 0x800e +/* 098110 80097510 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5) +/* 098114 80097514 3C0C8012 */ lui $t4, %hi(D_80126BF0) # $t4, 0x8012 +/* 098118 80097518 000A5880 */ sll $t3, $t2, 2 +/* 09811C 8009751C AFA80020 */ sw $t0, 0x20($sp) +/* 098120 80097520 018B6021 */ addu $t4, $t4, $t3 +/* 098124 80097524 8D8C6BF0 */ lw $t4, %lo(D_80126BF0)($t4) +/* 098128 80097528 8DAE0070 */ lw $t6, 0x70($t5) +/* 09812C 8009752C 240F0002 */ li $t7, 2 +/* 098130 80097530 158E0003 */ bne $t4, $t6, .L80097540 +/* 098134 80097534 00000000 */ nop +/* 098138 80097538 10000020 */ b .L800975BC +/* 09813C 8009753C AC8F0000 */ sw $t7, ($a0) +.L80097540: +/* 098140 80097540 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 098144 80097544 AD280000 */ sw $t0, ($t1) +/* 098148 80097548 0C030076 */ jal transition_begin +/* 09814C 8009754C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 098150 80097550 0C000326 */ jal set_music_fade_timer +/* 098154 80097554 2404FF80 */ li $a0, -128 +/* 098158 80097558 10000019 */ b .L800975C0 +/* 09815C 8009755C 8FAC0024 */ lw $t4, 0x24($sp) +.L80097560: +/* 098160 80097560 3C038012 */ lui $v1, %hi(D_80126838) # $v1, 0x8012 +/* 098164 80097564 8CC20000 */ lw $v0, ($a2) +/* 098168 80097568 84636838 */ lh $v1, %lo(D_80126838)($v1) +/* 09816C 8009756C 3C188012 */ lui $t8, %hi(D_80126C14) # $t8, 0x8012 +/* 098170 80097570 04610009 */ bgez $v1, .L80097598 +/* 098174 80097574 00402825 */ move $a1, $v0 +/* 098178 80097578 8F186C14 */ lw $t8, %lo(D_80126C14)($t8) +/* 09817C 8009757C 244A0001 */ addiu $t2, $v0, 1 +/* 098180 80097580 2719FFFF */ addiu $t9, $t8, -1 +/* 098184 80097584 0059082A */ slt $at, $v0, $t9 +/* 098188 80097588 10200003 */ beqz $at, .L80097598 +/* 09818C 8009758C 00000000 */ nop +/* 098190 80097590 ACCA0000 */ sw $t2, ($a2) +/* 098194 80097594 01401025 */ move $v0, $t2 +.L80097598: +/* 098198 80097598 18600005 */ blez $v1, .L800975B0 +/* 09819C 8009759C 240D0001 */ li $t5, 1 +/* 0981A0 800975A0 18400003 */ blez $v0, .L800975B0 +/* 0981A4 800975A4 244BFFFF */ addiu $t3, $v0, -1 +/* 0981A8 800975A8 ACCB0000 */ sw $t3, ($a2) +/* 0981AC 800975AC 01601025 */ move $v0, $t3 +.L800975B0: +/* 0981B0 800975B0 10A20003 */ beq $a1, $v0, .L800975C0 +/* 0981B4 800975B4 8FAC0024 */ lw $t4, 0x24($sp) +/* 0981B8 800975B8 AFAD001C */ sw $t5, 0x1c($sp) +.L800975BC: +/* 0981BC 800975BC 8FAC0024 */ lw $t4, 0x24($sp) +.L800975C0: +/* 0981C0 800975C0 8FAE0020 */ lw $t6, 0x20($sp) +/* 0981C4 800975C4 11800005 */ beqz $t4, .L800975DC +/* 0981C8 800975C8 24040241 */ li $a0, 577 +/* 0981CC 800975CC 0C000741 */ jal play_sound_global +/* 0981D0 800975D0 00002825 */ move $a1, $zero +/* 0981D4 800975D4 10000036 */ b .L800976B0 +/* 0981D8 800975D8 00000000 */ nop +.L800975DC: +/* 0981DC 800975DC 11C00005 */ beqz $t6, .L800975F4 +/* 0981E0 800975E0 240400EF */ li $a0, 239 +/* 0981E4 800975E4 0C000741 */ jal play_sound_global +/* 0981E8 800975E8 00002825 */ move $a1, $zero +/* 0981EC 800975EC 10000030 */ b .L800976B0 +/* 0981F0 800975F0 00000000 */ nop +.L800975F4: +/* 0981F4 800975F4 8FAF001C */ lw $t7, 0x1c($sp) +/* 0981F8 800975F8 240400EB */ li $a0, 235 +/* 0981FC 800975FC 11E0002C */ beqz $t7, .L800976B0 +/* 098200 80097600 00000000 */ nop +/* 098204 80097604 0C000741 */ jal play_sound_global +/* 098208 80097608 00002825 */ move $a1, $zero +/* 09820C 8009760C 10000028 */ b .L800976B0 +/* 098210 80097610 00000000 */ nop +/* 098214 80097614 8FB80028 */ lw $t8, 0x28($sp) +.L80097618: +/* 098218 80097618 00000000 */ nop +/* 09821C 8009761C 0078C821 */ addu $t9, $v1, $t8 +/* 098220 80097620 2B21001F */ slti $at, $t9, 0x1f +/* 098224 80097624 14200022 */ bnez $at, .L800976B0 +/* 098228 80097628 AD390000 */ sw $t9, ($t1) +/* 09822C 8009762C 0C025DB3 */ jal func_800976CC +/* 098230 80097630 00000000 */ nop +/* 098234 80097634 0C031588 */ jal close_dialogue_box +/* 098238 80097638 24040007 */ li $a0, 7 +/* 09823C 8009763C 0C031525 */ jal assign_dialogue_box_id +/* 098240 80097640 24040007 */ li $a0, 7 +/* 098244 80097644 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 +/* 098248 80097648 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 +/* 09824C 8009764C 8CCB0000 */ lw $t3, ($a2) +/* 098250 80097650 3C03800E */ lui $v1, %hi(gMenuText) # $v1, 0x800e +/* 098254 80097654 8C63F4A0 */ lw $v1, %lo(gMenuText)($v1) +/* 098258 80097658 3C028012 */ lui $v0, %hi(D_80126BF0) # $v0, 0x8012 +/* 09825C 8009765C 000B6880 */ sll $t5, $t3, 2 +/* 098260 80097660 004D1021 */ addu $v0, $v0, $t5 +/* 098264 80097664 8C426BF0 */ lw $v0, %lo(D_80126BF0)($v0) +/* 098268 80097668 8C6C005C */ lw $t4, 0x5c($v1) +/* 09826C 8009766C 00000000 */ nop +/* 098270 80097670 144C0003 */ bne $v0, $t4, .L80097680 +/* 098274 80097674 00000000 */ nop +/* 098278 80097678 10000010 */ b .L800976BC +/* 09827C 8009767C 24020102 */ li $v0, 258 +.L80097680: +/* 098280 80097680 8C6E0060 */ lw $t6, 0x60($v1) +/* 098284 80097684 2404FFFF */ li $a0, -1 +/* 098288 80097688 144E0007 */ bne $v0, $t6, .L800976A8 +/* 09828C 8009768C 2405FFFF */ li $a1, -1 +/* 098290 80097690 0C01B8BA */ jal load_level_for_menu +/* 098294 80097694 00003025 */ move $a2, $zero +/* 098298 80097698 0C0204F4 */ jal menu_init +/* 09829C 8009769C 2404000F */ li $a0, 15 +/* 0982A0 800976A0 10000006 */ b .L800976BC +/* 0982A4 800976A4 00001025 */ move $v0, $zero +.L800976A8: +/* 0982A8 800976A8 10000004 */ b .L800976BC +/* 0982AC 800976AC 24020104 */ li $v0, 260 +.L800976B0: +/* 0982B0 800976B0 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 0982B4 800976B4 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +/* 0982B8 800976B8 00001025 */ move $v0, $zero +.L800976BC: +/* 0982BC 800976BC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0982C0 800976C0 27BD0028 */ addiu $sp, $sp, 0x28 +/* 0982C4 800976C4 03E00008 */ jr $ra +/* 0982C8 800976C8 00000000 */ nop + diff --git a/asm/non_matchings/menu/menu_save_options_loop.s b/asm/non_matchings/menu/menu_save_options_loop.s index a5a2ffa5..228fb641 100644 --- a/asm/non_matchings/menu/menu_save_options_loop.s +++ b/asm/non_matchings/menu/menu_save_options_loop.s @@ -1,245 +1,245 @@ -.late_rodata -glabel jpt_800E84B0 -.word L80087D18, L80087D28, L80087D54, L80087D94, L80087DAC, L80087DEC, L80087E04, L80087E1C - -.text -glabel menu_save_options_loop -/* 088760 80087B60 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 -/* 088764 80087B64 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc -/* 088768 80087B68 8C6E0000 */ lw $t6, ($v1) -/* 08876C 80087B6C 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 088770 80087B70 01C47821 */ addu $t7, $t6, $a0 -/* 088774 80087B74 31F8003F */ andi $t8, $t7, 0x3f -/* 088778 80087B78 AC780000 */ sw $t8, ($v1) -/* 08877C 80087B7C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 088780 80087B80 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 088784 80087B84 AFB00018 */ sw $s0, 0x18($sp) -/* 088788 80087B88 00808025 */ move $s0, $a0 -/* 08878C 80087B8C AFBF002C */ sw $ra, 0x2c($sp) -/* 088790 80087B90 AFB40028 */ sw $s4, 0x28($sp) -/* 088794 80087B94 AFB30024 */ sw $s3, 0x24($sp) -/* 088798 80087B98 AFB20020 */ sw $s2, 0x20($sp) -/* 08879C 80087B9C 10400009 */ beqz $v0, .L80087BC4 -/* 0887A0 80087BA0 AFB1001C */ sw $s1, 0x1c($sp) -/* 0887A4 80087BA4 18400005 */ blez $v0, .L80087BBC -/* 0887A8 80087BA8 00504023 */ subu $t0, $v0, $s0 -/* 0887AC 80087BAC 0044C821 */ addu $t9, $v0, $a0 -/* 0887B0 80087BB0 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0887B4 80087BB4 10000003 */ b .L80087BC4 -/* 0887B8 80087BB8 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) -.L80087BBC: -/* 0887BC 80087BBC 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0887C0 80087BC0 AC28F47C */ sw $t0, %lo(gMenuDelay)($at) -.L80087BC4: -/* 0887C4 80087BC4 3C098012 */ lui $t1, %hi(D_801263E0) # $t1, 0x8012 -/* 0887C8 80087BC8 8D2963E0 */ lw $t1, %lo(D_801263E0)($t1) -/* 0887CC 80087BCC 00000000 */ nop -/* 0887D0 80087BD0 312A0007 */ andi $t2, $t1, 7 -/* 0887D4 80087BD4 29410002 */ slti $at, $t2, 2 -/* 0887D8 80087BD8 14200003 */ bnez $at, .L80087BE8 -/* 0887DC 80087BDC 00000000 */ nop -/* 0887E0 80087BE0 0C021A92 */ jal func_80086A48 -/* 0887E4 80087BE4 02002025 */ move $a0, $s0 -.L80087BE8: -/* 0887E8 80087BE8 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 0887EC 80087BEC 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 0887F0 80087BF0 00000000 */ nop -/* 0887F4 80087BF4 2841FFED */ slti $at, $v0, -0x13 -/* 0887F8 80087BF8 14200008 */ bnez $at, .L80087C1C -/* 0887FC 80087BFC 28410014 */ slti $at, $v0, 0x14 -/* 088800 80087C00 10200006 */ beqz $at, .L80087C1C -/* 088804 80087C04 00000000 */ nop -/* 088808 80087C08 0C0216E7 */ jal func_80085B9C -/* 08880C 80087C0C 02002025 */ move $a0, $s0 -/* 088810 80087C10 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 088814 80087C14 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 088818 80087C18 00000000 */ nop -.L80087C1C: -/* 08881C 80087C1C 10400013 */ beqz $v0, .L80087C6C -/* 088820 80087C20 00003025 */ move $a2, $zero -/* 088824 80087C24 2841001F */ slti $at, $v0, 0x1f -/* 088828 80087C28 14200008 */ bnez $at, .L80087C4C -/* 08882C 80087C2C 2841FFE2 */ slti $at, $v0, -0x1e -/* 088830 80087C30 0C021FAE */ jal func_80087EB8 -/* 088834 80087C34 00000000 */ nop -/* 088838 80087C38 0C0204F4 */ jal menu_init -/* 08883C 80087C3C 24040018 */ li $a0, 24 -/* 088840 80087C40 10000095 */ b .L80087E98 -/* 088844 80087C44 00001025 */ move $v0, $zero -/* 088848 80087C48 2841FFE2 */ slti $at, $v0, -0x1e -.L80087C4C: -/* 08884C 80087C4C 10200005 */ beqz $at, .L80087C64 -/* 088850 80087C50 00000000 */ nop -/* 088854 80087C54 0C021FAE */ jal func_80087EB8 -/* 088858 80087C58 00000000 */ nop -/* 08885C 80087C5C 0C0204F4 */ jal menu_init -/* 088860 80087C60 2404000C */ li $a0, 12 -.L80087C64: -/* 088864 80087C64 1000008C */ b .L80087E98 -/* 088868 80087C68 00001025 */ move $v0, $zero -.L80087C6C: -/* 08886C 80087C6C 3C0B8012 */ lui $t3, %hi(gIgnorePlayerInput) # $t3, 0x8012 -/* 088870 80087C70 8D6B63C4 */ lw $t3, %lo(gIgnorePlayerInput)($t3) -/* 088874 80087C74 0000A025 */ move $s4, $zero -/* 088878 80087C78 15600014 */ bnez $t3, .L80087CCC -/* 08887C 80087C7C 00009825 */ move $s3, $zero -/* 088880 80087C80 3C118012 */ lui $s1, %hi(gControllersXAxisDirection) # $s1, 0x8012 -/* 088884 80087C84 3C128012 */ lui $s2, %hi(gControllersYAxisDirection) # $s2, 0x8012 -/* 088888 80087C88 26526464 */ addiu $s2, %lo(gControllersYAxisDirection) # addiu $s2, $s2, 0x6464 -/* 08888C 80087C8C 2631645C */ addiu $s1, %lo(gControllersXAxisDirection) # addiu $s1, $s1, 0x645c -/* 088890 80087C90 00008025 */ move $s0, $zero -.L80087C94: -/* 088894 80087C94 822C0000 */ lb $t4, ($s1) -/* 088898 80087C98 824D0000 */ lb $t5, ($s2) -/* 08889C 80087C9C 02002025 */ move $a0, $s0 -/* 0888A0 80087CA0 AFA60030 */ sw $a2, 0x30($sp) -/* 0888A4 80087CA4 028CA021 */ addu $s4, $s4, $t4 -/* 0888A8 80087CA8 0C01A955 */ jal get_buttons_pressed_from_player -/* 0888AC 80087CAC 026D9821 */ addu $s3, $s3, $t5 -/* 0888B0 80087CB0 8FA60030 */ lw $a2, 0x30($sp) -/* 0888B4 80087CB4 26100001 */ addiu $s0, $s0, 1 -/* 0888B8 80087CB8 24010004 */ li $at, 4 -/* 0888BC 80087CBC 26310001 */ addiu $s1, $s1, 1 -/* 0888C0 80087CC0 26520001 */ addiu $s2, $s2, 1 -/* 0888C4 80087CC4 1601FFF3 */ bne $s0, $at, .L80087C94 -/* 0888C8 80087CC8 00C23025 */ or $a2, $a2, $v0 -.L80087CCC: -/* 0888CC 80087CCC 3C028012 */ lui $v0, %hi(D_801263E0) # $v0, 0x8012 -/* 0888D0 80087CD0 8C4263E0 */ lw $v0, %lo(D_801263E0)($v0) -/* 0888D4 80087CD4 00C02025 */ move $a0, $a2 -/* 0888D8 80087CD8 304E0008 */ andi $t6, $v0, 8 -/* 0888DC 80087CDC 11C00006 */ beqz $t6, .L80087CF8 -/* 0888E0 80087CE0 2C410008 */ sltiu $at, $v0, 8 -/* 0888E4 80087CE4 0C021DCD */ jal func_80087734 -/* 0888E8 80087CE8 02602825 */ move $a1, $s3 -/* 0888EC 80087CEC 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0888F0 80087CF0 10000066 */ b .L80087E8C -/* 0888F4 80087CF4 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) -.L80087CF8: -/* 0888F8 80087CF8 1020005D */ beqz $at, .L80087E70 -/* 0888FC 80087CFC 00027880 */ sll $t7, $v0, 2 -/* 088900 80087D00 3C01800F */ lui $at, %hi(jpt_800E84B0) # $at, 0x800f -/* 088904 80087D04 002F0821 */ addu $at, $at, $t7 -/* 088908 80087D08 8C2F84B0 */ lw $t7, %lo(jpt_800E84B0)($at) -/* 08890C 80087D0C 00000000 */ nop -/* 088910 80087D10 01E00008 */ jr $t7 -/* 088914 80087D14 00000000 */ nop -glabel L80087D18 -/* 088918 80087D18 2418FFFF */ li $t8, -1 -/* 08891C 80087D1C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 088920 80087D20 10000053 */ b .L80087E70 -/* 088924 80087D24 AC38F47C */ sw $t8, %lo(gMenuDelay)($at) -glabel L80087D28 -/* 088928 80087D28 3C108012 */ lui $s0, %hi(gOpacityDecayTimer) # $s0, 0x8012 -/* 08892C 80087D2C 261063D8 */ addiu $s0, %lo(gOpacityDecayTimer) # addiu $s0, $s0, 0x63d8 -/* 088930 80087D30 8E190000 */ lw $t9, ($s0) -/* 088934 80087D34 240A0002 */ li $t2, 2 -/* 088938 80087D38 27280001 */ addiu $t0, $t9, 1 -/* 08893C 80087D3C 2901000B */ slti $at, $t0, 0xb -/* 088940 80087D40 1420004B */ bnez $at, .L80087E70 -/* 088944 80087D44 AE080000 */ sw $t0, ($s0) -/* 088948 80087D48 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 08894C 80087D4C 10000048 */ b .L80087E70 -/* 088950 80087D50 AC2A63E0 */ sw $t2, %lo(D_801263E0)($at) -glabel L80087D54 -/* 088954 80087D54 3C018012 */ lui $at, %hi(D_80126BD4) # $at, 0x8012 -/* 088958 80087D58 44802000 */ mtc1 $zero, $f4 -/* 08895C 80087D5C AC206BD4 */ sw $zero, %lo(D_80126BD4)($at) -/* 088960 80087D60 3C018012 */ lui $at, %hi(D_80126BDC) # $at, 0x8012 -/* 088964 80087D64 0C0218B1 */ jal func_800862C4 -/* 088968 80087D68 E4246BDC */ swc1 $f4, %lo(D_80126BDC)($at) -/* 08896C 80087D6C 10400005 */ beqz $v0, .L80087D84 -/* 088970 80087D70 00402025 */ move $a0, $v0 -/* 088974 80087D74 0C021C76 */ jal func_800871D8 -/* 088978 80087D78 00000000 */ nop -/* 08897C 80087D7C 1000003C */ b .L80087E70 -/* 088980 80087D80 00000000 */ nop -.L80087D84: -/* 088984 80087D84 240B0003 */ li $t3, 3 -/* 088988 80087D88 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 08898C 80087D8C 10000038 */ b .L80087E70 -/* 088990 80087D90 AC2B63E0 */ sw $t3, %lo(D_801263E0)($at) -glabel L80087D94 -/* 088994 80087D94 00C02025 */ move $a0, $a2 -/* 088998 80087D98 0C021D34 */ jal func_800874D0 -/* 08899C 80087D9C 02802825 */ move $a1, $s4 -/* 0889A0 80087DA0 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0889A4 80087DA4 10000032 */ b .L80087E70 -/* 0889A8 80087DA8 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) -glabel L80087DAC -/* 0889AC 80087DAC 3C018012 */ lui $at, %hi(D_80126BE4) # $at, 0x8012 -/* 0889B0 80087DB0 44803000 */ mtc1 $zero, $f6 -/* 0889B4 80087DB4 AC206BE4 */ sw $zero, %lo(D_80126BE4)($at) -/* 0889B8 80087DB8 3C018012 */ lui $at, %hi(D_80126BEC) # $at, 0x8012 -/* 0889BC 80087DBC 0C0219F5 */ jal func_800867D4 -/* 0889C0 80087DC0 E4266BEC */ swc1 $f6, %lo(D_80126BEC)($at) -/* 0889C4 80087DC4 10400005 */ beqz $v0, .L80087DDC -/* 0889C8 80087DC8 00402025 */ move $a0, $v0 -/* 0889CC 80087DCC 0C021C76 */ jal func_800871D8 -/* 0889D0 80087DD0 00000000 */ nop -/* 0889D4 80087DD4 10000026 */ b .L80087E70 -/* 0889D8 80087DD8 00000000 */ nop -.L80087DDC: -/* 0889DC 80087DDC 240C0005 */ li $t4, 5 -/* 0889E0 80087DE0 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 0889E4 80087DE4 10000022 */ b .L80087E70 -/* 0889E8 80087DE8 AC2C63E0 */ sw $t4, %lo(D_801263E0)($at) -glabel L80087DEC -/* 0889EC 80087DEC 00C02025 */ move $a0, $a2 -/* 0889F0 80087DF0 0C021D79 */ jal func_800875E4 -/* 0889F4 80087DF4 02802825 */ move $a1, $s4 -/* 0889F8 80087DF8 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 0889FC 80087DFC 1000001C */ b .L80087E70 -/* 088A00 80087E00 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) -glabel L80087E04 -/* 088A04 80087E04 00C02025 */ move $a0, $a2 -/* 088A08 80087E08 0C021DB3 */ jal func_800876CC -/* 088A0C 80087E0C 02802825 */ move $a1, $s4 -/* 088A10 80087E10 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 088A14 80087E14 10000016 */ b .L80087E70 -/* 088A18 80087E18 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) -glabel L80087E1C -/* 088A1C 80087E1C 3C108012 */ lui $s0, %hi(gOpacityDecayTimer) # $s0, 0x8012 -/* 088A20 80087E20 261063D8 */ addiu $s0, %lo(gOpacityDecayTimer) # addiu $s0, $s0, 0x63d8 -/* 088A24 80087E24 8E0D0000 */ lw $t5, ($s0) -/* 088A28 80087E28 00000000 */ nop -/* 088A2C 80087E2C 25AE0001 */ addiu $t6, $t5, 1 -/* 088A30 80087E30 29C10004 */ slti $at, $t6, 4 -/* 088A34 80087E34 1420000E */ bnez $at, .L80087E70 -/* 088A38 80087E38 AE0E0000 */ sw $t6, ($s0) -/* 088A3C 80087E3C 0C021ABF */ jal func_80086AFC -/* 088A40 80087E40 00000000 */ nop -/* 088A44 80087E44 10400005 */ beqz $v0, .L80087E5C -/* 088A48 80087E48 00402025 */ move $a0, $v0 -/* 088A4C 80087E4C 0C021C76 */ jal func_800871D8 -/* 088A50 80087E50 00000000 */ nop -/* 088A54 80087E54 10000006 */ b .L80087E70 -/* 088A58 80087E58 00000000 */ nop -.L80087E5C: -/* 088A5C 80087E5C 24180006 */ li $t8, 6 -/* 088A60 80087E60 AE180000 */ sw $t8, ($s0) -/* 088A64 80087E64 24190001 */ li $t9, 1 -/* 088A68 80087E68 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 088A6C 80087E6C AC3963E0 */ sw $t9, %lo(D_801263E0)($at) -.L80087E70: -/* 088A70 80087E70 3C08800E */ lui $t0, %hi(gMenuDelay) # $t0, 0x800e -/* 088A74 80087E74 8D08F47C */ lw $t0, %lo(gMenuDelay)($t0) -/* 088A78 80087E78 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 088A7C 80087E7C 11000003 */ beqz $t0, .L80087E8C -/* 088A80 80087E80 00000000 */ nop -/* 088A84 80087E84 0C030076 */ jal func_800C01D8 -/* 088A88 80087E88 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -.L80087E8C: -/* 088A8C 80087E8C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 088A90 80087E90 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -/* 088A94 80087E94 00001025 */ move $v0, $zero -.L80087E98: -/* 088A98 80087E98 8FBF002C */ lw $ra, 0x2c($sp) -/* 088A9C 80087E9C 8FB00018 */ lw $s0, 0x18($sp) -/* 088AA0 80087EA0 8FB1001C */ lw $s1, 0x1c($sp) -/* 088AA4 80087EA4 8FB20020 */ lw $s2, 0x20($sp) -/* 088AA8 80087EA8 8FB30024 */ lw $s3, 0x24($sp) -/* 088AAC 80087EAC 8FB40028 */ lw $s4, 0x28($sp) -/* 088AB0 80087EB0 03E00008 */ jr $ra -/* 088AB4 80087EB4 27BD0038 */ addiu $sp, $sp, 0x38 - +.late_rodata +glabel jpt_800E84B0 +.word L80087D18, L80087D28, L80087D54, L80087D94, L80087DAC, L80087DEC, L80087E04, L80087E1C + +.text +glabel menu_save_options_loop +/* 088760 80087B60 3C038012 */ lui $v1, %hi(gOptionBlinkTimer) # $v1, 0x8012 +/* 088764 80087B64 246363BC */ addiu $v1, %lo(gOptionBlinkTimer) # addiu $v1, $v1, 0x63bc +/* 088768 80087B68 8C6E0000 */ lw $t6, ($v1) +/* 08876C 80087B6C 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 088770 80087B70 01C47821 */ addu $t7, $t6, $a0 +/* 088774 80087B74 31F8003F */ andi $t8, $t7, 0x3f +/* 088778 80087B78 AC780000 */ sw $t8, ($v1) +/* 08877C 80087B7C 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 088780 80087B80 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 088784 80087B84 AFB00018 */ sw $s0, 0x18($sp) +/* 088788 80087B88 00808025 */ move $s0, $a0 +/* 08878C 80087B8C AFBF002C */ sw $ra, 0x2c($sp) +/* 088790 80087B90 AFB40028 */ sw $s4, 0x28($sp) +/* 088794 80087B94 AFB30024 */ sw $s3, 0x24($sp) +/* 088798 80087B98 AFB20020 */ sw $s2, 0x20($sp) +/* 08879C 80087B9C 10400009 */ beqz $v0, .L80087BC4 +/* 0887A0 80087BA0 AFB1001C */ sw $s1, 0x1c($sp) +/* 0887A4 80087BA4 18400005 */ blez $v0, .L80087BBC +/* 0887A8 80087BA8 00504023 */ subu $t0, $v0, $s0 +/* 0887AC 80087BAC 0044C821 */ addu $t9, $v0, $a0 +/* 0887B0 80087BB0 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0887B4 80087BB4 10000003 */ b .L80087BC4 +/* 0887B8 80087BB8 AC39F47C */ sw $t9, %lo(gMenuDelay)($at) +.L80087BBC: +/* 0887BC 80087BBC 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0887C0 80087BC0 AC28F47C */ sw $t0, %lo(gMenuDelay)($at) +.L80087BC4: +/* 0887C4 80087BC4 3C098012 */ lui $t1, %hi(D_801263E0) # $t1, 0x8012 +/* 0887C8 80087BC8 8D2963E0 */ lw $t1, %lo(D_801263E0)($t1) +/* 0887CC 80087BCC 00000000 */ nop +/* 0887D0 80087BD0 312A0007 */ andi $t2, $t1, 7 +/* 0887D4 80087BD4 29410002 */ slti $at, $t2, 2 +/* 0887D8 80087BD8 14200003 */ bnez $at, .L80087BE8 +/* 0887DC 80087BDC 00000000 */ nop +/* 0887E0 80087BE0 0C021A92 */ jal func_80086A48 +/* 0887E4 80087BE4 02002025 */ move $a0, $s0 +.L80087BE8: +/* 0887E8 80087BE8 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 0887EC 80087BEC 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 0887F0 80087BF0 00000000 */ nop +/* 0887F4 80087BF4 2841FFED */ slti $at, $v0, -0x13 +/* 0887F8 80087BF8 14200008 */ bnez $at, .L80087C1C +/* 0887FC 80087BFC 28410014 */ slti $at, $v0, 0x14 +/* 088800 80087C00 10200006 */ beqz $at, .L80087C1C +/* 088804 80087C04 00000000 */ nop +/* 088808 80087C08 0C0216E7 */ jal func_80085B9C +/* 08880C 80087C0C 02002025 */ move $a0, $s0 +/* 088810 80087C10 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e +/* 088814 80087C14 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) +/* 088818 80087C18 00000000 */ nop +.L80087C1C: +/* 08881C 80087C1C 10400013 */ beqz $v0, .L80087C6C +/* 088820 80087C20 00003025 */ move $a2, $zero +/* 088824 80087C24 2841001F */ slti $at, $v0, 0x1f +/* 088828 80087C28 14200008 */ bnez $at, .L80087C4C +/* 08882C 80087C2C 2841FFE2 */ slti $at, $v0, -0x1e +/* 088830 80087C30 0C021FAE */ jal func_80087EB8 +/* 088834 80087C34 00000000 */ nop +/* 088838 80087C38 0C0204F4 */ jal menu_init +/* 08883C 80087C3C 24040018 */ li $a0, 24 +/* 088840 80087C40 10000095 */ b .L80087E98 +/* 088844 80087C44 00001025 */ move $v0, $zero +/* 088848 80087C48 2841FFE2 */ slti $at, $v0, -0x1e +.L80087C4C: +/* 08884C 80087C4C 10200005 */ beqz $at, .L80087C64 +/* 088850 80087C50 00000000 */ nop +/* 088854 80087C54 0C021FAE */ jal func_80087EB8 +/* 088858 80087C58 00000000 */ nop +/* 08885C 80087C5C 0C0204F4 */ jal menu_init +/* 088860 80087C60 2404000C */ li $a0, 12 +.L80087C64: +/* 088864 80087C64 1000008C */ b .L80087E98 +/* 088868 80087C68 00001025 */ move $v0, $zero +.L80087C6C: +/* 08886C 80087C6C 3C0B8012 */ lui $t3, %hi(gIgnorePlayerInput) # $t3, 0x8012 +/* 088870 80087C70 8D6B63C4 */ lw $t3, %lo(gIgnorePlayerInput)($t3) +/* 088874 80087C74 0000A025 */ move $s4, $zero +/* 088878 80087C78 15600014 */ bnez $t3, .L80087CCC +/* 08887C 80087C7C 00009825 */ move $s3, $zero +/* 088880 80087C80 3C118012 */ lui $s1, %hi(gControllersXAxisDirection) # $s1, 0x8012 +/* 088884 80087C84 3C128012 */ lui $s2, %hi(gControllersYAxisDirection) # $s2, 0x8012 +/* 088888 80087C88 26526464 */ addiu $s2, %lo(gControllersYAxisDirection) # addiu $s2, $s2, 0x6464 +/* 08888C 80087C8C 2631645C */ addiu $s1, %lo(gControllersXAxisDirection) # addiu $s1, $s1, 0x645c +/* 088890 80087C90 00008025 */ move $s0, $zero +.L80087C94: +/* 088894 80087C94 822C0000 */ lb $t4, ($s1) +/* 088898 80087C98 824D0000 */ lb $t5, ($s2) +/* 08889C 80087C9C 02002025 */ move $a0, $s0 +/* 0888A0 80087CA0 AFA60030 */ sw $a2, 0x30($sp) +/* 0888A4 80087CA4 028CA021 */ addu $s4, $s4, $t4 +/* 0888A8 80087CA8 0C01A955 */ jal get_buttons_pressed_from_player +/* 0888AC 80087CAC 026D9821 */ addu $s3, $s3, $t5 +/* 0888B0 80087CB0 8FA60030 */ lw $a2, 0x30($sp) +/* 0888B4 80087CB4 26100001 */ addiu $s0, $s0, 1 +/* 0888B8 80087CB8 24010004 */ li $at, 4 +/* 0888BC 80087CBC 26310001 */ addiu $s1, $s1, 1 +/* 0888C0 80087CC0 26520001 */ addiu $s2, $s2, 1 +/* 0888C4 80087CC4 1601FFF3 */ bne $s0, $at, .L80087C94 +/* 0888C8 80087CC8 00C23025 */ or $a2, $a2, $v0 +.L80087CCC: +/* 0888CC 80087CCC 3C028012 */ lui $v0, %hi(D_801263E0) # $v0, 0x8012 +/* 0888D0 80087CD0 8C4263E0 */ lw $v0, %lo(D_801263E0)($v0) +/* 0888D4 80087CD4 00C02025 */ move $a0, $a2 +/* 0888D8 80087CD8 304E0008 */ andi $t6, $v0, 8 +/* 0888DC 80087CDC 11C00006 */ beqz $t6, .L80087CF8 +/* 0888E0 80087CE0 2C410008 */ sltiu $at, $v0, 8 +/* 0888E4 80087CE4 0C021DCD */ jal func_80087734 +/* 0888E8 80087CE8 02602825 */ move $a1, $s3 +/* 0888EC 80087CEC 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0888F0 80087CF0 10000066 */ b .L80087E8C +/* 0888F4 80087CF4 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) +.L80087CF8: +/* 0888F8 80087CF8 1020005D */ beqz $at, .L80087E70 +/* 0888FC 80087CFC 00027880 */ sll $t7, $v0, 2 +/* 088900 80087D00 3C01800F */ lui $at, %hi(jpt_800E84B0) # $at, 0x800f +/* 088904 80087D04 002F0821 */ addu $at, $at, $t7 +/* 088908 80087D08 8C2F84B0 */ lw $t7, %lo(jpt_800E84B0)($at) +/* 08890C 80087D0C 00000000 */ nop +/* 088910 80087D10 01E00008 */ jr $t7 +/* 088914 80087D14 00000000 */ nop +glabel L80087D18 +/* 088918 80087D18 2418FFFF */ li $t8, -1 +/* 08891C 80087D1C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 088920 80087D20 10000053 */ b .L80087E70 +/* 088924 80087D24 AC38F47C */ sw $t8, %lo(gMenuDelay)($at) +glabel L80087D28 +/* 088928 80087D28 3C108012 */ lui $s0, %hi(gOpacityDecayTimer) # $s0, 0x8012 +/* 08892C 80087D2C 261063D8 */ addiu $s0, %lo(gOpacityDecayTimer) # addiu $s0, $s0, 0x63d8 +/* 088930 80087D30 8E190000 */ lw $t9, ($s0) +/* 088934 80087D34 240A0002 */ li $t2, 2 +/* 088938 80087D38 27280001 */ addiu $t0, $t9, 1 +/* 08893C 80087D3C 2901000B */ slti $at, $t0, 0xb +/* 088940 80087D40 1420004B */ bnez $at, .L80087E70 +/* 088944 80087D44 AE080000 */ sw $t0, ($s0) +/* 088948 80087D48 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 08894C 80087D4C 10000048 */ b .L80087E70 +/* 088950 80087D50 AC2A63E0 */ sw $t2, %lo(D_801263E0)($at) +glabel L80087D54 +/* 088954 80087D54 3C018012 */ lui $at, %hi(D_80126BD4) # $at, 0x8012 +/* 088958 80087D58 44802000 */ mtc1 $zero, $f4 +/* 08895C 80087D5C AC206BD4 */ sw $zero, %lo(D_80126BD4)($at) +/* 088960 80087D60 3C018012 */ lui $at, %hi(D_80126BDC) # $at, 0x8012 +/* 088964 80087D64 0C0218B1 */ jal func_800862C4 +/* 088968 80087D68 E4246BDC */ swc1 $f4, %lo(D_80126BDC)($at) +/* 08896C 80087D6C 10400005 */ beqz $v0, .L80087D84 +/* 088970 80087D70 00402025 */ move $a0, $v0 +/* 088974 80087D74 0C021C76 */ jal func_800871D8 +/* 088978 80087D78 00000000 */ nop +/* 08897C 80087D7C 1000003C */ b .L80087E70 +/* 088980 80087D80 00000000 */ nop +.L80087D84: +/* 088984 80087D84 240B0003 */ li $t3, 3 +/* 088988 80087D88 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 08898C 80087D8C 10000038 */ b .L80087E70 +/* 088990 80087D90 AC2B63E0 */ sw $t3, %lo(D_801263E0)($at) +glabel L80087D94 +/* 088994 80087D94 00C02025 */ move $a0, $a2 +/* 088998 80087D98 0C021D34 */ jal func_800874D0 +/* 08899C 80087D9C 02802825 */ move $a1, $s4 +/* 0889A0 80087DA0 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0889A4 80087DA4 10000032 */ b .L80087E70 +/* 0889A8 80087DA8 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) +glabel L80087DAC +/* 0889AC 80087DAC 3C018012 */ lui $at, %hi(D_80126BE4) # $at, 0x8012 +/* 0889B0 80087DB0 44803000 */ mtc1 $zero, $f6 +/* 0889B4 80087DB4 AC206BE4 */ sw $zero, %lo(D_80126BE4)($at) +/* 0889B8 80087DB8 3C018012 */ lui $at, %hi(D_80126BEC) # $at, 0x8012 +/* 0889BC 80087DBC 0C0219F5 */ jal func_800867D4 +/* 0889C0 80087DC0 E4266BEC */ swc1 $f6, %lo(D_80126BEC)($at) +/* 0889C4 80087DC4 10400005 */ beqz $v0, .L80087DDC +/* 0889C8 80087DC8 00402025 */ move $a0, $v0 +/* 0889CC 80087DCC 0C021C76 */ jal func_800871D8 +/* 0889D0 80087DD0 00000000 */ nop +/* 0889D4 80087DD4 10000026 */ b .L80087E70 +/* 0889D8 80087DD8 00000000 */ nop +.L80087DDC: +/* 0889DC 80087DDC 240C0005 */ li $t4, 5 +/* 0889E0 80087DE0 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 0889E4 80087DE4 10000022 */ b .L80087E70 +/* 0889E8 80087DE8 AC2C63E0 */ sw $t4, %lo(D_801263E0)($at) +glabel L80087DEC +/* 0889EC 80087DEC 00C02025 */ move $a0, $a2 +/* 0889F0 80087DF0 0C021D79 */ jal func_800875E4 +/* 0889F4 80087DF4 02802825 */ move $a1, $s4 +/* 0889F8 80087DF8 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 0889FC 80087DFC 1000001C */ b .L80087E70 +/* 088A00 80087E00 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) +glabel L80087E04 +/* 088A04 80087E04 00C02025 */ move $a0, $a2 +/* 088A08 80087E08 0C021DB3 */ jal func_800876CC +/* 088A0C 80087E0C 02802825 */ move $a1, $s4 +/* 088A10 80087E10 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e +/* 088A14 80087E14 10000016 */ b .L80087E70 +/* 088A18 80087E18 AC22F47C */ sw $v0, %lo(gMenuDelay)($at) +glabel L80087E1C +/* 088A1C 80087E1C 3C108012 */ lui $s0, %hi(gOpacityDecayTimer) # $s0, 0x8012 +/* 088A20 80087E20 261063D8 */ addiu $s0, %lo(gOpacityDecayTimer) # addiu $s0, $s0, 0x63d8 +/* 088A24 80087E24 8E0D0000 */ lw $t5, ($s0) +/* 088A28 80087E28 00000000 */ nop +/* 088A2C 80087E2C 25AE0001 */ addiu $t6, $t5, 1 +/* 088A30 80087E30 29C10004 */ slti $at, $t6, 4 +/* 088A34 80087E34 1420000E */ bnez $at, .L80087E70 +/* 088A38 80087E38 AE0E0000 */ sw $t6, ($s0) +/* 088A3C 80087E3C 0C021ABF */ jal func_80086AFC +/* 088A40 80087E40 00000000 */ nop +/* 088A44 80087E44 10400005 */ beqz $v0, .L80087E5C +/* 088A48 80087E48 00402025 */ move $a0, $v0 +/* 088A4C 80087E4C 0C021C76 */ jal func_800871D8 +/* 088A50 80087E50 00000000 */ nop +/* 088A54 80087E54 10000006 */ b .L80087E70 +/* 088A58 80087E58 00000000 */ nop +.L80087E5C: +/* 088A5C 80087E5C 24180006 */ li $t8, 6 +/* 088A60 80087E60 AE180000 */ sw $t8, ($s0) +/* 088A64 80087E64 24190001 */ li $t9, 1 +/* 088A68 80087E68 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 088A6C 80087E6C AC3963E0 */ sw $t9, %lo(D_801263E0)($at) +.L80087E70: +/* 088A70 80087E70 3C08800E */ lui $t0, %hi(gMenuDelay) # $t0, 0x800e +/* 088A74 80087E74 8D08F47C */ lw $t0, %lo(gMenuDelay)($t0) +/* 088A78 80087E78 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 088A7C 80087E7C 11000003 */ beqz $t0, .L80087E8C +/* 088A80 80087E80 00000000 */ nop +/* 088A84 80087E84 0C030076 */ jal transition_begin +/* 088A88 80087E88 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +.L80087E8C: +/* 088A8C 80087E8C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 088A90 80087E90 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +/* 088A94 80087E94 00001025 */ move $v0, $zero +.L80087E98: +/* 088A98 80087E98 8FBF002C */ lw $ra, 0x2c($sp) +/* 088A9C 80087E9C 8FB00018 */ lw $s0, 0x18($sp) +/* 088AA0 80087EA0 8FB1001C */ lw $s1, 0x1c($sp) +/* 088AA4 80087EA4 8FB20020 */ lw $s2, 0x20($sp) +/* 088AA8 80087EA8 8FB30024 */ lw $s3, 0x24($sp) +/* 088AAC 80087EAC 8FB40028 */ lw $s4, 0x28($sp) +/* 088AB0 80087EB0 03E00008 */ jr $ra +/* 088AB4 80087EB4 27BD0038 */ addiu $sp, $sp, 0x38 + diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 7c1a7676..edeb2af3 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -91,9 +91,9 @@ glabel menu_track_select_init /* 08F500 8008E900 0C023C03 */ jal func_8008F00C /* 08F504 8008E904 AC3567D0 */ sw $s5, %lo(D_801267D0)($at) /* 08F508 8008E908 3C04800E */ lui $a0, %hi(sMenuTransitionFadeOut) # $a0, 0x800e -/* 08F50C 8008E90C 0C030076 */ jal func_800C01D8 +/* 08F50C 8008E90C 0C030076 */ jal transition_begin /* 08F510 8008E910 2484F77C */ addiu $a0, %lo(sMenuTransitionFadeOut) # addiu $a0, $a0, -0x884 -/* 08F514 8008E914 0C03005C */ jal func_800C0170 +/* 08F514 8008E914 0C03005C */ jal enable_new_screen_transitions /* 08F518 8008E918 00000000 */ nop /* 08F51C 8008E91C 24040032 */ li $a0, 50 /* 08F520 8008E920 24050069 */ li $a1, 105 diff --git a/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s b/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s index 9cea43ec..66dcbd8b 100644 --- a/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s +++ b/asm/non_matchings/menu/menu_trophy_race_rankings_loop.s @@ -1,427 +1,427 @@ -glabel menu_trophy_race_rankings_loop -/* 099BD4 80098FD4 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 099BD8 80098FD8 AFBF001C */ sw $ra, 0x1c($sp) -/* 099BDC 80098FDC AFA40050 */ sw $a0, 0x50($sp) -/* 099BE0 80098FE0 0C01BAA4 */ jal get_settings -/* 099BE4 80098FE4 AFA0003C */ sw $zero, 0x3c($sp) -/* 099BE8 80098FE8 3C05800E */ lui $a1, %hi(gMenuDelay) # $a1, 0x800e -/* 099BEC 80098FEC 24A5F47C */ addiu $a1, %lo(gMenuDelay) # addiu $a1, $a1, -0xb84 -/* 099BF0 80098FF0 8CA30000 */ lw $v1, ($a1) -/* 099BF4 80098FF4 8FA40050 */ lw $a0, 0x50($sp) -/* 099BF8 80098FF8 2861FFED */ slti $at, $v1, -0x13 -/* 099BFC 80098FFC 14200008 */ bnez $at, .L80099020 -/* 099C00 80099000 00405825 */ move $t3, $v0 -/* 099C04 80099004 28610014 */ slti $at, $v1, 0x14 -/* 099C08 80099008 10200005 */ beqz $at, .L80099020 -/* 099C0C 8009900C 00000000 */ nop -/* 099C10 80099010 0C0263AF */ jal func_80098EBC -/* 099C14 80099014 AFA2002C */ sw $v0, 0x2c($sp) -/* 099C18 80099018 8FAB002C */ lw $t3, 0x2c($sp) -/* 099C1C 8009901C 00000000 */ nop -.L80099020: -/* 099C20 80099020 0C026FC8 */ jal update_controller_sticks -/* 099C24 80099024 AFAB002C */ sw $t3, 0x2c($sp) -/* 099C28 80099028 3C028012 */ lui $v0, %hi(D_801263E0) # $v0, 0x8012 -/* 099C2C 8009902C 8C4263E0 */ lw $v0, %lo(D_801263E0)($v0) -/* 099C30 80099030 8FA40050 */ lw $a0, 0x50($sp) -/* 099C34 80099034 3C05800E */ lui $a1, %hi(gMenuDelay) # $a1, 0x800e -/* 099C38 80099038 8FAB002C */ lw $t3, 0x2c($sp) -/* 099C3C 8009903C 1040000B */ beqz $v0, .L8009906C -/* 099C40 80099040 24A5F47C */ addiu $a1, %lo(gMenuDelay) # addiu $a1, $a1, -0xb84 -/* 099C44 80099044 24010001 */ li $at, 1 -/* 099C48 80099048 1041001B */ beq $v0, $at, .L800990B8 -/* 099C4C 8009904C 24010002 */ li $at, 2 -/* 099C50 80099050 10410026 */ beq $v0, $at, .L800990EC -/* 099C54 80099054 3C038012 */ lui $v1, %hi(gOpacityDecayTimer) # $v1, 0x8012 -/* 099C58 80099058 24010003 */ li $at, 3 -/* 099C5C 8009905C 104100B1 */ beq $v0, $at, .L80099324 -/* 099C60 80099060 00000000 */ nop -/* 099C64 80099064 10000161 */ b .L800995EC -/* 099C68 80099068 8FBF001C */ lw $ra, 0x1c($sp) -.L8009906C: -/* 099C6C 8009906C 0C0207D3 */ jal func_80081F4C -/* 099C70 80099070 00000000 */ nop -/* 099C74 80099074 1040015C */ beqz $v0, .L800995E8 -/* 099C78 80099078 240E0001 */ li $t6, 1 -/* 099C7C 8009907C 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 099C80 80099080 AC2E63E0 */ sw $t6, %lo(D_801263E0)($at) -/* 099C84 80099084 0C0261DD */ jal func_80098774 -/* 099C88 80099088 24040001 */ li $a0, 1 -/* 099C8C 8009908C 44800000 */ mtc1 $zero, $f0 -/* 099C90 80099090 3C04800E */ lui $a0, %hi(D_800E1048) # $a0, 0x800e -/* 099C94 80099094 44060000 */ mfc1 $a2, $f0 -/* 099C98 80099098 44070000 */ mfc1 $a3, $f0 -/* 099C9C 8009909C 24841048 */ addiu $a0, %lo(D_800E1048) # addiu $a0, $a0, 0x1048 -/* 099CA0 800990A0 3C053F00 */ lui $a1, 0x3f00 -/* 099CA4 800990A4 AFA00010 */ sw $zero, 0x10($sp) -/* 099CA8 800990A8 0C020795 */ jal func_80081E54 -/* 099CAC 800990AC AFA00014 */ sw $zero, 0x14($sp) -/* 099CB0 800990B0 1000014E */ b .L800995EC -/* 099CB4 800990B4 8FBF001C */ lw $ra, 0x1c($sp) -.L800990B8: -/* 099CB8 800990B8 0C0207D3 */ jal func_80081F4C -/* 099CBC 800990BC 00000000 */ nop -/* 099CC0 800990C0 10400149 */ beqz $v0, .L800995E8 -/* 099CC4 800990C4 240F0002 */ li $t7, 2 -/* 099CC8 800990C8 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 099CCC 800990CC 3C05800E */ lui $a1, %hi(D_800E1048) # $a1, 0x800e -/* 099CD0 800990D0 AC2F63E0 */ sw $t7, %lo(D_801263E0)($at) -/* 099CD4 800990D4 24A51048 */ addiu $a1, %lo(D_800E1048) # addiu $a1, $a1, 0x1048 -/* 099CD8 800990D8 24040001 */ li $a0, 1 -/* 099CDC 800990DC 0C02087B */ jal draw_menu_elements -/* 099CE0 800990E0 3C063F80 */ lui $a2, 0x3f80 -/* 099CE4 800990E4 10000141 */ b .L800995EC -/* 099CE8 800990E8 8FBF001C */ lw $ra, 0x1c($sp) -.L800990EC: -/* 099CEC 800990EC 246363D8 */ addiu $v1, %lo(gOpacityDecayTimer) # addiu $v1, $v1, 0x63d8 -/* 099CF0 800990F0 8C780000 */ lw $t8, ($v1) -/* 099CF4 800990F4 3C07800E */ lui $a3, %hi(D_800E0FE4) # $a3, 0x800e -/* 099CF8 800990F8 0304C821 */ addu $t9, $t8, $a0 -/* 099CFC 800990FC 2B21000B */ slti $at, $t9, 0xb -/* 099D00 80099100 14200026 */ bnez $at, .L8009919C -/* 099D04 80099104 AC790000 */ sw $t9, ($v1) -/* 099D08 80099108 272DFFF6 */ addiu $t5, $t9, -0xa -/* 099D0C 8009910C AC6D0000 */ sw $t5, ($v1) -/* 099D10 80099110 8CE70FE4 */ lw $a3, %lo(D_800E0FE4)($a3) -/* 099D14 80099114 00004025 */ move $t0, $zero -/* 099D18 80099118 18E00019 */ blez $a3, .L80099180 -/* 099D1C 8009911C 00002825 */ move $a1, $zero -/* 099D20 80099120 3C038012 */ lui $v1, %hi(D_801263F8) # $v1, 0x8012 -/* 099D24 80099124 246363F8 */ addiu $v1, %lo(D_801263F8) # addiu $v1, $v1, 0x63f8 -/* 099D28 80099128 24060018 */ li $a2, 24 -.L8009912C: -/* 099D2C 8009912C 8C640000 */ lw $a0, ($v1) -/* 099D30 80099130 00000000 */ nop -/* 099D34 80099134 1880000E */ blez $a0, .L80099170 -/* 099D38 80099138 00000000 */ nop -/* 099D3C 8009913C 00A60019 */ multu $a1, $a2 -/* 099D40 80099140 248EFFFF */ addiu $t6, $a0, -1 -/* 099D44 80099144 AC6E0000 */ sw $t6, ($v1) -/* 099D48 80099148 3C07800E */ lui $a3, %hi(D_800E0FE4) # $a3, 0x800e -/* 099D4C 8009914C 24080001 */ li $t0, 1 -/* 099D50 80099150 00007812 */ mflo $t7 -/* 099D54 80099154 016F1021 */ addu $v0, $t3, $t7 -/* 099D58 80099158 8C580054 */ lw $t8, 0x54($v0) -/* 099D5C 8009915C 00000000 */ nop -/* 099D60 80099160 27190001 */ addiu $t9, $t8, 1 -/* 099D64 80099164 AC590054 */ sw $t9, 0x54($v0) -/* 099D68 80099168 8CE70FE4 */ lw $a3, %lo(D_800E0FE4)($a3) -/* 099D6C 8009916C 00000000 */ nop -.L80099170: -/* 099D70 80099170 24A50001 */ addiu $a1, $a1, 1 -/* 099D74 80099174 00A7082A */ slt $at, $a1, $a3 -/* 099D78 80099178 1420FFEC */ bnez $at, .L8009912C -/* 099D7C 8009917C 24630004 */ addiu $v1, $v1, 4 -.L80099180: -/* 099D80 80099180 11000006 */ beqz $t0, .L8009919C -/* 099D84 80099184 2404005E */ li $a0, 94 -/* 099D88 80099188 00002825 */ move $a1, $zero -/* 099D8C 8009918C 0C000741 */ jal play_sound_global -/* 099D90 80099190 AFAB002C */ sw $t3, 0x2c($sp) -/* 099D94 80099194 8FAB002C */ lw $t3, 0x2c($sp) -/* 099D98 80099198 00000000 */ nop -.L8009919C: -/* 099D9C 8009919C 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 -/* 099DA0 800991A0 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 -/* 099DA4 800991A4 3C0D800E */ lui $t5, %hi(gNumberOfActivePlayers) # $t5, 0x800e -/* 099DA8 800991A8 8CC20000 */ lw $v0, ($a2) -/* 099DAC 800991AC 8DADF4BC */ lw $t5, %lo(gNumberOfActivePlayers)($t5) -/* 099DB0 800991B0 00004025 */ move $t0, $zero -/* 099DB4 800991B4 00002825 */ move $a1, $zero -/* 099DB8 800991B8 19A00023 */ blez $t5, .L80099248 -/* 099DBC 800991BC AFA20040 */ sw $v0, 0x40($sp) -/* 099DC0 800991C0 3C078012 */ lui $a3, %hi(gControllersYAxisDirection) # $a3, 0x8012 -/* 099DC4 800991C4 24E76464 */ addiu $a3, %lo(gControllersYAxisDirection) # addiu $a3, $a3, 0x6464 -.L800991C8: -/* 099DC8 800991C8 00A02025 */ move $a0, $a1 -/* 099DCC 800991CC AFA5004C */ sw $a1, 0x4c($sp) -/* 099DD0 800991D0 AFA70020 */ sw $a3, 0x20($sp) -/* 099DD4 800991D4 AFA80044 */ sw $t0, 0x44($sp) -/* 099DD8 800991D8 0C01A955 */ jal get_buttons_pressed_from_player -/* 099DDC 800991DC AFAB002C */ sw $t3, 0x2c($sp) -/* 099DE0 800991E0 8FA70020 */ lw $a3, 0x20($sp) -/* 099DE4 800991E4 8FA80044 */ lw $t0, 0x44($sp) -/* 099DE8 800991E8 80E30000 */ lb $v1, ($a3) -/* 099DEC 800991EC 8FA5004C */ lw $a1, 0x4c($sp) -/* 099DF0 800991F0 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 -/* 099DF4 800991F4 8FAB002C */ lw $t3, 0x2c($sp) -/* 099DF8 800991F8 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 -/* 099DFC 800991FC 04610005 */ bgez $v1, .L80099214 -/* 099E00 80099200 01024025 */ or $t0, $t0, $v0 -/* 099E04 80099204 8CCE0000 */ lw $t6, ($a2) -/* 099E08 80099208 00000000 */ nop -/* 099E0C 8009920C 25CF0001 */ addiu $t7, $t6, 1 -/* 099E10 80099210 ACCF0000 */ sw $t7, ($a2) -.L80099214: -/* 099E14 80099214 18600005 */ blez $v1, .L8009922C -/* 099E18 80099218 3C0D800E */ lui $t5, %hi(gNumberOfActivePlayers) # $t5, 0x800e -/* 099E1C 8009921C 8CD80000 */ lw $t8, ($a2) -/* 099E20 80099220 00000000 */ nop -/* 099E24 80099224 2719FFFF */ addiu $t9, $t8, -1 -/* 099E28 80099228 ACD90000 */ sw $t9, ($a2) -.L8009922C: -/* 099E2C 8009922C 8DADF4BC */ lw $t5, %lo(gNumberOfActivePlayers)($t5) -/* 099E30 80099230 24A50001 */ addiu $a1, $a1, 1 -/* 099E34 80099234 00AD082A */ slt $at, $a1, $t5 -/* 099E38 80099238 1420FFE3 */ bnez $at, .L800991C8 -/* 099E3C 8009923C 24E70001 */ addiu $a3, $a3, 1 -/* 099E40 80099240 8CC20000 */ lw $v0, ($a2) -/* 099E44 80099244 00000000 */ nop -.L80099248: -/* 099E48 80099248 04410003 */ bgez $v0, .L80099258 -/* 099E4C 8009924C 3C038012 */ lui $v1, %hi(D_80126C14) # $v1, 0x8012 -/* 099E50 80099250 ACC00000 */ sw $zero, ($a2) -/* 099E54 80099254 00001025 */ move $v0, $zero -.L80099258: -/* 099E58 80099258 8C636C14 */ lw $v1, %lo(D_80126C14)($v1) -/* 099E5C 8009925C 240400EB */ li $a0, 235 -/* 099E60 80099260 0043082A */ slt $at, $v0, $v1 -/* 099E64 80099264 14200003 */ bnez $at, .L80099274 -/* 099E68 80099268 00002825 */ move $a1, $zero -/* 099E6C 8009926C 2462FFFF */ addiu $v0, $v1, -1 -/* 099E70 80099270 ACC20000 */ sw $v0, ($a2) -.L80099274: -/* 099E74 80099274 8FAF0040 */ lw $t7, 0x40($sp) -/* 099E78 80099278 00000000 */ nop -/* 099E7C 8009927C 11E20008 */ beq $t7, $v0, .L800992A0 -/* 099E80 80099280 31189000 */ andi $t8, $t0, 0x9000 -/* 099E84 80099284 AFA80044 */ sw $t0, 0x44($sp) -/* 099E88 80099288 0C000741 */ jal play_sound_global -/* 099E8C 8009928C AFAB002C */ sw $t3, 0x2c($sp) -/* 099E90 80099290 8FA80044 */ lw $t0, 0x44($sp) -/* 099E94 80099294 8FAB002C */ lw $t3, 0x2c($sp) -/* 099E98 80099298 00000000 */ nop -/* 099E9C 8009929C 31189000 */ andi $t8, $t0, 0x9000 -.L800992A0: -/* 099EA0 800992A0 130000D1 */ beqz $t8, .L800995E8 -/* 099EA4 800992A4 2404FF80 */ li $a0, -128 -/* 099EA8 800992A8 00002825 */ move $a1, $zero -/* 099EAC 800992AC AFA0004C */ sw $zero, 0x4c($sp) -/* 099EB0 800992B0 0C000326 */ jal set_music_fade_timer -/* 099EB4 800992B4 AFAB002C */ sw $t3, 0x2c($sp) -/* 099EB8 800992B8 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e -/* 099EBC 800992BC 0C030076 */ jal func_800C01D8 -/* 099EC0 800992C0 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c -/* 099EC4 800992C4 3C0D800E */ lui $t5, %hi(D_800E0FE4) # $t5, 0x800e -/* 099EC8 800992C8 8DAD0FE4 */ lw $t5, %lo(D_800E0FE4)($t5) -/* 099ECC 800992CC 8FA5004C */ lw $a1, 0x4c($sp) -/* 099ED0 800992D0 8FAB002C */ lw $t3, 0x2c($sp) -/* 099ED4 800992D4 24190003 */ li $t9, 3 -/* 099ED8 800992D8 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 099EDC 800992DC 19A000C2 */ blez $t5, .L800995E8 -/* 099EE0 800992E0 AC3963E0 */ sw $t9, %lo(D_801263E0)($at) -/* 099EE4 800992E4 3C038012 */ lui $v1, %hi(D_801263F8) # $v1, 0x8012 -/* 099EE8 800992E8 246363F8 */ addiu $v1, %lo(D_801263F8) # addiu $v1, $v1, 0x63f8 -/* 099EEC 800992EC 01601025 */ move $v0, $t3 -.L800992F0: -/* 099EF0 800992F0 8C4E0054 */ lw $t6, 0x54($v0) -/* 099EF4 800992F4 8C6F0000 */ lw $t7, ($v1) -/* 099EF8 800992F8 3C19800E */ lui $t9, %hi(D_800E0FE4) # $t9, 0x800e -/* 099EFC 800992FC 01CFC021 */ addu $t8, $t6, $t7 -/* 099F00 80099300 AC580054 */ sw $t8, 0x54($v0) -/* 099F04 80099304 8F390FE4 */ lw $t9, %lo(D_800E0FE4)($t9) -/* 099F08 80099308 24A50001 */ addiu $a1, $a1, 1 -/* 099F0C 8009930C 00B9082A */ slt $at, $a1, $t9 -/* 099F10 80099310 24630004 */ addiu $v1, $v1, 4 -/* 099F14 80099314 1420FFF6 */ bnez $at, .L800992F0 -/* 099F18 80099318 24420018 */ addiu $v0, $v0, 0x18 -/* 099F1C 8009931C 100000B3 */ b .L800995EC -/* 099F20 80099320 8FBF001C */ lw $ra, 0x1c($sp) -.L80099324: -/* 099F24 80099324 8CAD0000 */ lw $t5, ($a1) -/* 099F28 80099328 00000000 */ nop -/* 099F2C 8009932C 01A47021 */ addu $t6, $t5, $a0 -/* 099F30 80099330 29C1001F */ slti $at, $t6, 0x1f -/* 099F34 80099334 142000AC */ bnez $at, .L800995E8 -/* 099F38 80099338 ACAE0000 */ sw $t6, ($a1) -/* 099F3C 8009933C 0C026580 */ jal func_80099600 -/* 099F40 80099340 AFAB002C */ sw $t3, 0x2c($sp) -/* 099F44 80099344 0C031588 */ jal close_dialogue_box -/* 099F48 80099348 24040007 */ li $a0, 7 -/* 099F4C 8009934C 0C031525 */ jal assign_dialogue_box_id -/* 099F50 80099350 24040007 */ li $a0, 7 -/* 099F54 80099354 3C18800E */ lui $t8, %hi(gTrophyRaceRound) # $t8, 0x800e -/* 099F58 80099358 8F180FEC */ lw $t8, %lo(gTrophyRaceRound)($t8) -/* 099F5C 8009935C 8FAB002C */ lw $t3, 0x2c($sp) -/* 099F60 80099360 2B010004 */ slti $at, $t8, 4 -/* 099F64 80099364 10200005 */ beqz $at, .L8009937C -/* 099F68 80099368 3C07800E */ lui $a3, %hi(D_800E0FE4) # $a3, 0x800e -/* 099F6C 8009936C 0C0204F4 */ jal menu_init -/* 099F70 80099370 24040014 */ li $a0, 20 -/* 099F74 80099374 1000009D */ b .L800995EC -/* 099F78 80099378 8FBF001C */ lw $ra, 0x1c($sp) -.L8009937C: -/* 099F7C 8009937C 8CE70FE4 */ lw $a3, %lo(D_800E0FE4)($a3) -/* 099F80 80099380 00001825 */ move $v1, $zero -/* 099F84 80099384 18E0002B */ blez $a3, .L80099434 -/* 099F88 80099388 00002825 */ move $a1, $zero -/* 099F8C 8009938C 3C068012 */ lui $a2, %hi(D_80126420) # $a2, 0x8012 -/* 099F90 80099390 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 -/* 099F94 80099394 3C088012 */ lui $t0, %hi(D_80126430) # $t0, 0x8012 -/* 099F98 80099398 8FAC0034 */ lw $t4, 0x34($sp) -/* 099F9C 8009939C 25086430 */ addiu $t0, %lo(D_80126430) # addiu $t0, $t0, 0x6430 -/* 099FA0 800993A0 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 -/* 099FA4 800993A4 24C66420 */ addiu $a2, %lo(D_80126420) # addiu $a2, $a2, 0x6420 -/* 099FA8 800993A8 24090018 */ li $t1, 24 -.L800993AC: -/* 099FAC 800993AC 90D90000 */ lbu $t9, ($a2) -/* 099FB0 800993B0 01056821 */ addu $t5, $t0, $a1 -/* 099FB4 800993B4 1320001A */ beqz $t9, .L80099420 -/* 099FB8 800993B8 00000000 */ nop -/* 099FBC 800993BC 91AE0000 */ lbu $t6, ($t5) -/* 099FC0 800993C0 0143C021 */ addu $t8, $t2, $v1 -/* 099FC4 800993C4 01C90019 */ multu $t6, $t1 -/* 099FC8 800993C8 010C6821 */ addu $t5, $t0, $t4 -/* 099FCC 800993CC 00007812 */ mflo $t7 -/* 099FD0 800993D0 016F2021 */ addu $a0, $t3, $t7 -/* 099FD4 800993D4 80820059 */ lb $v0, 0x59($a0) -/* 099FD8 800993D8 14600005 */ bnez $v1, .L800993F0 -/* 099FDC 800993DC 00000000 */ nop -/* 099FE0 800993E0 00A06025 */ move $t4, $a1 -/* 099FE4 800993E4 A3020000 */ sb $v0, ($t8) -/* 099FE8 800993E8 1000000D */ b .L80099420 -/* 099FEC 800993EC 24630001 */ addiu $v1, $v1, 1 -.L800993F0: -/* 099FF0 800993F0 91AE0000 */ lbu $t6, ($t5) -/* 099FF4 800993F4 8C990054 */ lw $t9, 0x54($a0) -/* 099FF8 800993F8 01C90019 */ multu $t6, $t1 -/* 099FFC 800993FC 01437021 */ addu $t6, $t2, $v1 -/* 09A000 80099400 00007812 */ mflo $t7 -/* 09A004 80099404 016FC021 */ addu $t8, $t3, $t7 -/* 09A008 80099408 8F0D0054 */ lw $t5, 0x54($t8) -/* 09A00C 8009940C 00000000 */ nop -/* 09A010 80099410 172D0003 */ bne $t9, $t5, .L80099420 -/* 09A014 80099414 00000000 */ nop -/* 09A018 80099418 A1C20000 */ sb $v0, ($t6) -/* 09A01C 8009941C 24630001 */ addiu $v1, $v1, 1 -.L80099420: -/* 09A020 80099420 24A50001 */ addiu $a1, $a1, 1 -/* 09A024 80099424 00A7082A */ slt $at, $a1, $a3 -/* 09A028 80099428 1420FFE0 */ bnez $at, .L800993AC -/* 09A02C 8009942C 24C60001 */ addiu $a2, $a2, 1 -/* 09A030 80099430 AFAC0034 */ sw $t4, 0x34($sp) -.L80099434: -/* 09A034 80099434 3C0F800E */ lui $t7, %hi(gNumberOfActivePlayers) # $t7, 0x800e -/* 09A038 80099438 8DEFF4BC */ lw $t7, %lo(gNumberOfActivePlayers)($t7) -/* 09A03C 8009943C 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 -/* 09A040 80099440 8FAC0034 */ lw $t4, 0x34($sp) -/* 09A044 80099444 24010001 */ li $at, 1 -/* 09A048 80099448 15E1000C */ bne $t7, $at, .L8009947C -/* 09A04C 8009944C 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 -/* 09A050 80099450 AFA30048 */ sw $v1, 0x48($sp) -/* 09A054 80099454 AFAB002C */ sw $t3, 0x2c($sp) -/* 09A058 80099458 0C027B20 */ jal is_in_two_player_adventure -/* 09A05C 8009945C AFAC0034 */ sw $t4, 0x34($sp) -/* 09A060 80099460 8FA30048 */ lw $v1, 0x48($sp) -/* 09A064 80099464 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 -/* 09A068 80099468 8FAB002C */ lw $t3, 0x2c($sp) -/* 09A06C 8009946C 8FAC0034 */ lw $t4, 0x34($sp) -/* 09A070 80099470 14400002 */ bnez $v0, .L8009947C -/* 09A074 80099474 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 -/* 09A078 80099478 00001825 */ move $v1, $zero -.L8009947C: -/* 09A07C 8009947C 2418FFFF */ li $t8, -1 -/* 09A080 80099480 0143C821 */ addu $t9, $t2, $v1 -/* 09A084 80099484 A3380000 */ sb $t8, ($t9) -/* 09A088 80099488 3C0D800E */ lui $t5, %hi(gIsInTracksMode) # $t5, 0x800e -/* 09A08C 8009948C 8DADF4B8 */ lw $t5, %lo(gIsInTracksMode)($t5) -/* 09A090 80099490 24010001 */ li $at, 1 -/* 09A094 80099494 15A1000C */ bne $t5, $at, .L800994C8 -/* 09A098 80099498 240F0001 */ li $t7, 1 -/* 09A09C 8009949C 29810003 */ slti $at, $t4, 3 -/* 09A0A0 800994A0 14200007 */ bnez $at, .L800994C0 -/* 09A0A4 800994A4 240E0105 */ li $t6, 261 -/* 09A0A8 800994A8 2404000F */ li $a0, 15 -/* 09A0AC 800994AC 0C0204F4 */ jal menu_init -/* 09A0B0 800994B0 AFAC0034 */ sw $t4, 0x34($sp) -/* 09A0B4 800994B4 8FAC0034 */ lw $t4, 0x34($sp) -/* 09A0B8 800994B8 10000033 */ b .L80099588 -/* 09A0BC 800994BC 29810003 */ slti $at, $t4, 3 -.L800994C0: -/* 09A0C0 800994C0 10000030 */ b .L80099584 -/* 09A0C4 800994C4 AFAE003C */ sw $t6, 0x3c($sp) -.L800994C8: -/* 09A0C8 800994C8 AFAF003C */ sw $t7, 0x3c($sp) -/* 09A0CC 800994CC 91640048 */ lbu $a0, 0x48($t3) -/* 09A0D0 800994D0 AFAC0034 */ sw $t4, 0x34($sp) -/* 09A0D4 800994D4 0C01AC75 */ jal get_hub_area_id -/* 09A0D8 800994D8 AFAB002C */ sw $t3, 0x2c($sp) -/* 09A0DC 800994DC 8FAB002C */ lw $t3, 0x2c($sp) -/* 09A0E0 800994E0 3C03800E */ lui $v1, %hi(D_800DF450) # $v1, 0x800e -/* 09A0E4 800994E4 8FAC0034 */ lw $t4, 0x34($sp) -/* 09A0E8 800994E8 2463F450 */ addiu $v1, %lo(D_800DF450) # addiu $v1, $v1, -0xbb0 -/* 09A0EC 800994EC A1620049 */ sb $v0, 0x49($t3) -/* 09A0F0 800994F0 80780000 */ lb $t8, ($v1) -/* 09A0F4 800994F4 00000000 */ nop -/* 09A0F8 800994F8 13000023 */ beqz $t8, .L80099588 -/* 09A0FC 800994FC 29810003 */ slti $at, $t4, 3 -/* 09A100 80099500 A0600000 */ sb $zero, ($v1) -/* 09A104 80099504 91790049 */ lbu $t9, 0x49($t3) -/* 09A108 80099508 29810003 */ slti $at, $t4, 3 -/* 09A10C 8009950C 372D0200 */ ori $t5, $t9, 0x200 -/* 09A110 80099510 1020001C */ beqz $at, .L80099584 -/* 09A114 80099514 AFAD003C */ sw $t5, 0x3c($sp) -/* 09A118 80099518 91650048 */ lbu $a1, 0x48($t3) -/* 09A11C 8009951C 9564000E */ lhu $a0, 0xe($t3) -/* 09A120 80099520 24A5FFFF */ addiu $a1, $a1, -1 -/* 09A124 80099524 00057040 */ sll $t6, $a1, 1 -/* 09A128 80099528 24180003 */ li $t8, 3 -/* 09A12C 8009952C 030C1023 */ subu $v0, $t8, $t4 -/* 09A130 80099530 01C41807 */ srav $v1, $a0, $t6 -/* 09A134 80099534 306F0003 */ andi $t7, $v1, 3 -/* 09A138 80099538 30590003 */ andi $t9, $v0, 3 -/* 09A13C 8009953C 01F9082A */ slt $at, $t7, $t9 -/* 09A140 80099540 01C02825 */ move $a1, $t6 -/* 09A144 80099544 1020000F */ beqz $at, .L80099584 -/* 09A148 80099548 03201025 */ move $v0, $t9 -/* 09A14C 8009954C 240D0003 */ li $t5, 3 -/* 09A150 80099550 01CD7004 */ sllv $t6, $t5, $t6 -/* 09A154 80099554 01C07827 */ not $t7, $t6 -/* 09A158 80099558 008FC824 */ and $t9, $a0, $t7 -/* 09A15C 8009955C 00A26804 */ sllv $t5, $v0, $a1 -/* 09A160 80099560 A579000E */ sh $t9, 0xe($t3) -/* 09A164 80099564 032D7025 */ or $t6, $t9, $t5 -/* 09A168 80099568 A56E000E */ sh $t6, 0xe($t3) -/* 09A16C 8009956C 0C027068 */ jal get_save_file_index -/* 09A170 80099570 AFAC0034 */ sw $t4, 0x34($sp) -/* 09A174 80099574 0C01BB12 */ jal func_8006EC48 -/* 09A178 80099578 00402025 */ move $a0, $v0 -/* 09A17C 8009957C 8FAC0034 */ lw $t4, 0x34($sp) -/* 09A180 80099580 00000000 */ nop -.L80099584: -/* 09A184 80099584 29810003 */ slti $at, $t4, 3 -.L80099588: -/* 09A188 80099588 10200015 */ beqz $at, .L800995E0 -/* 09A18C 8009958C 2404001F */ li $a0, 31 -/* 09A190 80099590 0C0078A7 */ jal get_misc_asset -/* 09A194 80099594 AFAC0034 */ sw $t4, 0x34($sp) -/* 09A198 80099598 3C0F800E */ lui $t7, %hi(gTrophyRaceWorldId) # $t7, 0x800e -/* 09A19C 8009959C 8DEF0FE8 */ lw $t7, %lo(gTrophyRaceWorldId)($t7) -/* 09A1A0 800995A0 8FAC0034 */ lw $t4, 0x34($sp) -/* 09A1A4 800995A4 000FC080 */ sll $t8, $t7, 2 -/* 09A1A8 800995A8 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 -/* 09A1AC 800995AC 030FC023 */ subu $t8, $t8, $t7 -/* 09A1B0 800995B0 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 -/* 09A1B4 800995B4 8FA6003C */ lw $a2, 0x3c($sp) -/* 09A1B8 800995B8 030C2821 */ addu $a1, $t8, $t4 -/* 09A1BC 800995BC 24A5FFFD */ addiu $a1, $a1, -3 -/* 09A1C0 800995C0 AFA0003C */ sw $zero, 0x3c($sp) -/* 09A1C4 800995C4 AFAA0014 */ sw $t2, 0x14($sp) -/* 09A1C8 800995C8 00402025 */ move $a0, $v0 -/* 09A1CC 800995CC 00003825 */ move $a3, $zero -/* 09A1D0 800995D0 0C026AF6 */ jal func_8009ABD8 -/* 09A1D4 800995D4 AFA00010 */ sw $zero, 0x10($sp) -/* 09A1D8 800995D8 0C0204F4 */ jal menu_init -/* 09A1DC 800995DC 24040017 */ li $a0, 23 -.L800995E0: -/* 09A1E0 800995E0 3C01800E */ lui $at, %hi(gTrophyRaceWorldId) # $at, 0x800e -/* 09A1E4 800995E4 AC200FE8 */ sw $zero, %lo(gTrophyRaceWorldId)($at) -.L800995E8: -/* 09A1E8 800995E8 8FBF001C */ lw $ra, 0x1c($sp) -.L800995EC: -/* 09A1EC 800995EC 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 09A1F0 800995F0 8FA2003C */ lw $v0, 0x3c($sp) -/* 09A1F4 800995F4 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) -/* 09A1F8 800995F8 03E00008 */ jr $ra -/* 09A1FC 800995FC 27BD0050 */ addiu $sp, $sp, 0x50 - +glabel menu_trophy_race_rankings_loop +/* 099BD4 80098FD4 27BDFFB0 */ addiu $sp, $sp, -0x50 +/* 099BD8 80098FD8 AFBF001C */ sw $ra, 0x1c($sp) +/* 099BDC 80098FDC AFA40050 */ sw $a0, 0x50($sp) +/* 099BE0 80098FE0 0C01BAA4 */ jal get_settings +/* 099BE4 80098FE4 AFA0003C */ sw $zero, 0x3c($sp) +/* 099BE8 80098FE8 3C05800E */ lui $a1, %hi(gMenuDelay) # $a1, 0x800e +/* 099BEC 80098FEC 24A5F47C */ addiu $a1, %lo(gMenuDelay) # addiu $a1, $a1, -0xb84 +/* 099BF0 80098FF0 8CA30000 */ lw $v1, ($a1) +/* 099BF4 80098FF4 8FA40050 */ lw $a0, 0x50($sp) +/* 099BF8 80098FF8 2861FFED */ slti $at, $v1, -0x13 +/* 099BFC 80098FFC 14200008 */ bnez $at, .L80099020 +/* 099C00 80099000 00405825 */ move $t3, $v0 +/* 099C04 80099004 28610014 */ slti $at, $v1, 0x14 +/* 099C08 80099008 10200005 */ beqz $at, .L80099020 +/* 099C0C 8009900C 00000000 */ nop +/* 099C10 80099010 0C0263AF */ jal func_80098EBC +/* 099C14 80099014 AFA2002C */ sw $v0, 0x2c($sp) +/* 099C18 80099018 8FAB002C */ lw $t3, 0x2c($sp) +/* 099C1C 8009901C 00000000 */ nop +.L80099020: +/* 099C20 80099020 0C026FC8 */ jal update_controller_sticks +/* 099C24 80099024 AFAB002C */ sw $t3, 0x2c($sp) +/* 099C28 80099028 3C028012 */ lui $v0, %hi(D_801263E0) # $v0, 0x8012 +/* 099C2C 8009902C 8C4263E0 */ lw $v0, %lo(D_801263E0)($v0) +/* 099C30 80099030 8FA40050 */ lw $a0, 0x50($sp) +/* 099C34 80099034 3C05800E */ lui $a1, %hi(gMenuDelay) # $a1, 0x800e +/* 099C38 80099038 8FAB002C */ lw $t3, 0x2c($sp) +/* 099C3C 8009903C 1040000B */ beqz $v0, .L8009906C +/* 099C40 80099040 24A5F47C */ addiu $a1, %lo(gMenuDelay) # addiu $a1, $a1, -0xb84 +/* 099C44 80099044 24010001 */ li $at, 1 +/* 099C48 80099048 1041001B */ beq $v0, $at, .L800990B8 +/* 099C4C 8009904C 24010002 */ li $at, 2 +/* 099C50 80099050 10410026 */ beq $v0, $at, .L800990EC +/* 099C54 80099054 3C038012 */ lui $v1, %hi(gOpacityDecayTimer) # $v1, 0x8012 +/* 099C58 80099058 24010003 */ li $at, 3 +/* 099C5C 8009905C 104100B1 */ beq $v0, $at, .L80099324 +/* 099C60 80099060 00000000 */ nop +/* 099C64 80099064 10000161 */ b .L800995EC +/* 099C68 80099068 8FBF001C */ lw $ra, 0x1c($sp) +.L8009906C: +/* 099C6C 8009906C 0C0207D3 */ jal func_80081F4C +/* 099C70 80099070 00000000 */ nop +/* 099C74 80099074 1040015C */ beqz $v0, .L800995E8 +/* 099C78 80099078 240E0001 */ li $t6, 1 +/* 099C7C 8009907C 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 099C80 80099080 AC2E63E0 */ sw $t6, %lo(D_801263E0)($at) +/* 099C84 80099084 0C0261DD */ jal func_80098774 +/* 099C88 80099088 24040001 */ li $a0, 1 +/* 099C8C 8009908C 44800000 */ mtc1 $zero, $f0 +/* 099C90 80099090 3C04800E */ lui $a0, %hi(D_800E1048) # $a0, 0x800e +/* 099C94 80099094 44060000 */ mfc1 $a2, $f0 +/* 099C98 80099098 44070000 */ mfc1 $a3, $f0 +/* 099C9C 8009909C 24841048 */ addiu $a0, %lo(D_800E1048) # addiu $a0, $a0, 0x1048 +/* 099CA0 800990A0 3C053F00 */ lui $a1, 0x3f00 +/* 099CA4 800990A4 AFA00010 */ sw $zero, 0x10($sp) +/* 099CA8 800990A8 0C020795 */ jal func_80081E54 +/* 099CAC 800990AC AFA00014 */ sw $zero, 0x14($sp) +/* 099CB0 800990B0 1000014E */ b .L800995EC +/* 099CB4 800990B4 8FBF001C */ lw $ra, 0x1c($sp) +.L800990B8: +/* 099CB8 800990B8 0C0207D3 */ jal func_80081F4C +/* 099CBC 800990BC 00000000 */ nop +/* 099CC0 800990C0 10400149 */ beqz $v0, .L800995E8 +/* 099CC4 800990C4 240F0002 */ li $t7, 2 +/* 099CC8 800990C8 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 099CCC 800990CC 3C05800E */ lui $a1, %hi(D_800E1048) # $a1, 0x800e +/* 099CD0 800990D0 AC2F63E0 */ sw $t7, %lo(D_801263E0)($at) +/* 099CD4 800990D4 24A51048 */ addiu $a1, %lo(D_800E1048) # addiu $a1, $a1, 0x1048 +/* 099CD8 800990D8 24040001 */ li $a0, 1 +/* 099CDC 800990DC 0C02087B */ jal draw_menu_elements +/* 099CE0 800990E0 3C063F80 */ lui $a2, 0x3f80 +/* 099CE4 800990E4 10000141 */ b .L800995EC +/* 099CE8 800990E8 8FBF001C */ lw $ra, 0x1c($sp) +.L800990EC: +/* 099CEC 800990EC 246363D8 */ addiu $v1, %lo(gOpacityDecayTimer) # addiu $v1, $v1, 0x63d8 +/* 099CF0 800990F0 8C780000 */ lw $t8, ($v1) +/* 099CF4 800990F4 3C07800E */ lui $a3, %hi(D_800E0FE4) # $a3, 0x800e +/* 099CF8 800990F8 0304C821 */ addu $t9, $t8, $a0 +/* 099CFC 800990FC 2B21000B */ slti $at, $t9, 0xb +/* 099D00 80099100 14200026 */ bnez $at, .L8009919C +/* 099D04 80099104 AC790000 */ sw $t9, ($v1) +/* 099D08 80099108 272DFFF6 */ addiu $t5, $t9, -0xa +/* 099D0C 8009910C AC6D0000 */ sw $t5, ($v1) +/* 099D10 80099110 8CE70FE4 */ lw $a3, %lo(D_800E0FE4)($a3) +/* 099D14 80099114 00004025 */ move $t0, $zero +/* 099D18 80099118 18E00019 */ blez $a3, .L80099180 +/* 099D1C 8009911C 00002825 */ move $a1, $zero +/* 099D20 80099120 3C038012 */ lui $v1, %hi(D_801263F8) # $v1, 0x8012 +/* 099D24 80099124 246363F8 */ addiu $v1, %lo(D_801263F8) # addiu $v1, $v1, 0x63f8 +/* 099D28 80099128 24060018 */ li $a2, 24 +.L8009912C: +/* 099D2C 8009912C 8C640000 */ lw $a0, ($v1) +/* 099D30 80099130 00000000 */ nop +/* 099D34 80099134 1880000E */ blez $a0, .L80099170 +/* 099D38 80099138 00000000 */ nop +/* 099D3C 8009913C 00A60019 */ multu $a1, $a2 +/* 099D40 80099140 248EFFFF */ addiu $t6, $a0, -1 +/* 099D44 80099144 AC6E0000 */ sw $t6, ($v1) +/* 099D48 80099148 3C07800E */ lui $a3, %hi(D_800E0FE4) # $a3, 0x800e +/* 099D4C 8009914C 24080001 */ li $t0, 1 +/* 099D50 80099150 00007812 */ mflo $t7 +/* 099D54 80099154 016F1021 */ addu $v0, $t3, $t7 +/* 099D58 80099158 8C580054 */ lw $t8, 0x54($v0) +/* 099D5C 8009915C 00000000 */ nop +/* 099D60 80099160 27190001 */ addiu $t9, $t8, 1 +/* 099D64 80099164 AC590054 */ sw $t9, 0x54($v0) +/* 099D68 80099168 8CE70FE4 */ lw $a3, %lo(D_800E0FE4)($a3) +/* 099D6C 8009916C 00000000 */ nop +.L80099170: +/* 099D70 80099170 24A50001 */ addiu $a1, $a1, 1 +/* 099D74 80099174 00A7082A */ slt $at, $a1, $a3 +/* 099D78 80099178 1420FFEC */ bnez $at, .L8009912C +/* 099D7C 8009917C 24630004 */ addiu $v1, $v1, 4 +.L80099180: +/* 099D80 80099180 11000006 */ beqz $t0, .L8009919C +/* 099D84 80099184 2404005E */ li $a0, 94 +/* 099D88 80099188 00002825 */ move $a1, $zero +/* 099D8C 8009918C 0C000741 */ jal play_sound_global +/* 099D90 80099190 AFAB002C */ sw $t3, 0x2c($sp) +/* 099D94 80099194 8FAB002C */ lw $t3, 0x2c($sp) +/* 099D98 80099198 00000000 */ nop +.L8009919C: +/* 099D9C 8009919C 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 +/* 099DA0 800991A0 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 +/* 099DA4 800991A4 3C0D800E */ lui $t5, %hi(gNumberOfActivePlayers) # $t5, 0x800e +/* 099DA8 800991A8 8CC20000 */ lw $v0, ($a2) +/* 099DAC 800991AC 8DADF4BC */ lw $t5, %lo(gNumberOfActivePlayers)($t5) +/* 099DB0 800991B0 00004025 */ move $t0, $zero +/* 099DB4 800991B4 00002825 */ move $a1, $zero +/* 099DB8 800991B8 19A00023 */ blez $t5, .L80099248 +/* 099DBC 800991BC AFA20040 */ sw $v0, 0x40($sp) +/* 099DC0 800991C0 3C078012 */ lui $a3, %hi(gControllersYAxisDirection) # $a3, 0x8012 +/* 099DC4 800991C4 24E76464 */ addiu $a3, %lo(gControllersYAxisDirection) # addiu $a3, $a3, 0x6464 +.L800991C8: +/* 099DC8 800991C8 00A02025 */ move $a0, $a1 +/* 099DCC 800991CC AFA5004C */ sw $a1, 0x4c($sp) +/* 099DD0 800991D0 AFA70020 */ sw $a3, 0x20($sp) +/* 099DD4 800991D4 AFA80044 */ sw $t0, 0x44($sp) +/* 099DD8 800991D8 0C01A955 */ jal get_buttons_pressed_from_player +/* 099DDC 800991DC AFAB002C */ sw $t3, 0x2c($sp) +/* 099DE0 800991E0 8FA70020 */ lw $a3, 0x20($sp) +/* 099DE4 800991E4 8FA80044 */ lw $t0, 0x44($sp) +/* 099DE8 800991E8 80E30000 */ lb $v1, ($a3) +/* 099DEC 800991EC 8FA5004C */ lw $a1, 0x4c($sp) +/* 099DF0 800991F0 3C068012 */ lui $a2, %hi(gMenuOption) # $a2, 0x8012 +/* 099DF4 800991F4 8FAB002C */ lw $t3, 0x2c($sp) +/* 099DF8 800991F8 24C66A68 */ addiu $a2, %lo(gMenuOption) # addiu $a2, $a2, 0x6a68 +/* 099DFC 800991FC 04610005 */ bgez $v1, .L80099214 +/* 099E00 80099200 01024025 */ or $t0, $t0, $v0 +/* 099E04 80099204 8CCE0000 */ lw $t6, ($a2) +/* 099E08 80099208 00000000 */ nop +/* 099E0C 8009920C 25CF0001 */ addiu $t7, $t6, 1 +/* 099E10 80099210 ACCF0000 */ sw $t7, ($a2) +.L80099214: +/* 099E14 80099214 18600005 */ blez $v1, .L8009922C +/* 099E18 80099218 3C0D800E */ lui $t5, %hi(gNumberOfActivePlayers) # $t5, 0x800e +/* 099E1C 8009921C 8CD80000 */ lw $t8, ($a2) +/* 099E20 80099220 00000000 */ nop +/* 099E24 80099224 2719FFFF */ addiu $t9, $t8, -1 +/* 099E28 80099228 ACD90000 */ sw $t9, ($a2) +.L8009922C: +/* 099E2C 8009922C 8DADF4BC */ lw $t5, %lo(gNumberOfActivePlayers)($t5) +/* 099E30 80099230 24A50001 */ addiu $a1, $a1, 1 +/* 099E34 80099234 00AD082A */ slt $at, $a1, $t5 +/* 099E38 80099238 1420FFE3 */ bnez $at, .L800991C8 +/* 099E3C 8009923C 24E70001 */ addiu $a3, $a3, 1 +/* 099E40 80099240 8CC20000 */ lw $v0, ($a2) +/* 099E44 80099244 00000000 */ nop +.L80099248: +/* 099E48 80099248 04410003 */ bgez $v0, .L80099258 +/* 099E4C 8009924C 3C038012 */ lui $v1, %hi(D_80126C14) # $v1, 0x8012 +/* 099E50 80099250 ACC00000 */ sw $zero, ($a2) +/* 099E54 80099254 00001025 */ move $v0, $zero +.L80099258: +/* 099E58 80099258 8C636C14 */ lw $v1, %lo(D_80126C14)($v1) +/* 099E5C 8009925C 240400EB */ li $a0, 235 +/* 099E60 80099260 0043082A */ slt $at, $v0, $v1 +/* 099E64 80099264 14200003 */ bnez $at, .L80099274 +/* 099E68 80099268 00002825 */ move $a1, $zero +/* 099E6C 8009926C 2462FFFF */ addiu $v0, $v1, -1 +/* 099E70 80099270 ACC20000 */ sw $v0, ($a2) +.L80099274: +/* 099E74 80099274 8FAF0040 */ lw $t7, 0x40($sp) +/* 099E78 80099278 00000000 */ nop +/* 099E7C 8009927C 11E20008 */ beq $t7, $v0, .L800992A0 +/* 099E80 80099280 31189000 */ andi $t8, $t0, 0x9000 +/* 099E84 80099284 AFA80044 */ sw $t0, 0x44($sp) +/* 099E88 80099288 0C000741 */ jal play_sound_global +/* 099E8C 8009928C AFAB002C */ sw $t3, 0x2c($sp) +/* 099E90 80099290 8FA80044 */ lw $t0, 0x44($sp) +/* 099E94 80099294 8FAB002C */ lw $t3, 0x2c($sp) +/* 099E98 80099298 00000000 */ nop +/* 099E9C 8009929C 31189000 */ andi $t8, $t0, 0x9000 +.L800992A0: +/* 099EA0 800992A0 130000D1 */ beqz $t8, .L800995E8 +/* 099EA4 800992A4 2404FF80 */ li $a0, -128 +/* 099EA8 800992A8 00002825 */ move $a1, $zero +/* 099EAC 800992AC AFA0004C */ sw $zero, 0x4c($sp) +/* 099EB0 800992B0 0C000326 */ jal set_music_fade_timer +/* 099EB4 800992B4 AFAB002C */ sw $t3, 0x2c($sp) +/* 099EB8 800992B8 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e +/* 099EBC 800992BC 0C030076 */ jal transition_begin +/* 099EC0 800992C0 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c +/* 099EC4 800992C4 3C0D800E */ lui $t5, %hi(D_800E0FE4) # $t5, 0x800e +/* 099EC8 800992C8 8DAD0FE4 */ lw $t5, %lo(D_800E0FE4)($t5) +/* 099ECC 800992CC 8FA5004C */ lw $a1, 0x4c($sp) +/* 099ED0 800992D0 8FAB002C */ lw $t3, 0x2c($sp) +/* 099ED4 800992D4 24190003 */ li $t9, 3 +/* 099ED8 800992D8 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 +/* 099EDC 800992DC 19A000C2 */ blez $t5, .L800995E8 +/* 099EE0 800992E0 AC3963E0 */ sw $t9, %lo(D_801263E0)($at) +/* 099EE4 800992E4 3C038012 */ lui $v1, %hi(D_801263F8) # $v1, 0x8012 +/* 099EE8 800992E8 246363F8 */ addiu $v1, %lo(D_801263F8) # addiu $v1, $v1, 0x63f8 +/* 099EEC 800992EC 01601025 */ move $v0, $t3 +.L800992F0: +/* 099EF0 800992F0 8C4E0054 */ lw $t6, 0x54($v0) +/* 099EF4 800992F4 8C6F0000 */ lw $t7, ($v1) +/* 099EF8 800992F8 3C19800E */ lui $t9, %hi(D_800E0FE4) # $t9, 0x800e +/* 099EFC 800992FC 01CFC021 */ addu $t8, $t6, $t7 +/* 099F00 80099300 AC580054 */ sw $t8, 0x54($v0) +/* 099F04 80099304 8F390FE4 */ lw $t9, %lo(D_800E0FE4)($t9) +/* 099F08 80099308 24A50001 */ addiu $a1, $a1, 1 +/* 099F0C 8009930C 00B9082A */ slt $at, $a1, $t9 +/* 099F10 80099310 24630004 */ addiu $v1, $v1, 4 +/* 099F14 80099314 1420FFF6 */ bnez $at, .L800992F0 +/* 099F18 80099318 24420018 */ addiu $v0, $v0, 0x18 +/* 099F1C 8009931C 100000B3 */ b .L800995EC +/* 099F20 80099320 8FBF001C */ lw $ra, 0x1c($sp) +.L80099324: +/* 099F24 80099324 8CAD0000 */ lw $t5, ($a1) +/* 099F28 80099328 00000000 */ nop +/* 099F2C 8009932C 01A47021 */ addu $t6, $t5, $a0 +/* 099F30 80099330 29C1001F */ slti $at, $t6, 0x1f +/* 099F34 80099334 142000AC */ bnez $at, .L800995E8 +/* 099F38 80099338 ACAE0000 */ sw $t6, ($a1) +/* 099F3C 8009933C 0C026580 */ jal func_80099600 +/* 099F40 80099340 AFAB002C */ sw $t3, 0x2c($sp) +/* 099F44 80099344 0C031588 */ jal close_dialogue_box +/* 099F48 80099348 24040007 */ li $a0, 7 +/* 099F4C 8009934C 0C031525 */ jal assign_dialogue_box_id +/* 099F50 80099350 24040007 */ li $a0, 7 +/* 099F54 80099354 3C18800E */ lui $t8, %hi(gTrophyRaceRound) # $t8, 0x800e +/* 099F58 80099358 8F180FEC */ lw $t8, %lo(gTrophyRaceRound)($t8) +/* 099F5C 8009935C 8FAB002C */ lw $t3, 0x2c($sp) +/* 099F60 80099360 2B010004 */ slti $at, $t8, 4 +/* 099F64 80099364 10200005 */ beqz $at, .L8009937C +/* 099F68 80099368 3C07800E */ lui $a3, %hi(D_800E0FE4) # $a3, 0x800e +/* 099F6C 8009936C 0C0204F4 */ jal menu_init +/* 099F70 80099370 24040014 */ li $a0, 20 +/* 099F74 80099374 1000009D */ b .L800995EC +/* 099F78 80099378 8FBF001C */ lw $ra, 0x1c($sp) +.L8009937C: +/* 099F7C 8009937C 8CE70FE4 */ lw $a3, %lo(D_800E0FE4)($a3) +/* 099F80 80099380 00001825 */ move $v1, $zero +/* 099F84 80099384 18E0002B */ blez $a3, .L80099434 +/* 099F88 80099388 00002825 */ move $a1, $zero +/* 099F8C 8009938C 3C068012 */ lui $a2, %hi(D_80126420) # $a2, 0x8012 +/* 099F90 80099390 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 +/* 099F94 80099394 3C088012 */ lui $t0, %hi(D_80126430) # $t0, 0x8012 +/* 099F98 80099398 8FAC0034 */ lw $t4, 0x34($sp) +/* 099F9C 8009939C 25086430 */ addiu $t0, %lo(D_80126430) # addiu $t0, $t0, 0x6430 +/* 099FA0 800993A0 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 +/* 099FA4 800993A4 24C66420 */ addiu $a2, %lo(D_80126420) # addiu $a2, $a2, 0x6420 +/* 099FA8 800993A8 24090018 */ li $t1, 24 +.L800993AC: +/* 099FAC 800993AC 90D90000 */ lbu $t9, ($a2) +/* 099FB0 800993B0 01056821 */ addu $t5, $t0, $a1 +/* 099FB4 800993B4 1320001A */ beqz $t9, .L80099420 +/* 099FB8 800993B8 00000000 */ nop +/* 099FBC 800993BC 91AE0000 */ lbu $t6, ($t5) +/* 099FC0 800993C0 0143C021 */ addu $t8, $t2, $v1 +/* 099FC4 800993C4 01C90019 */ multu $t6, $t1 +/* 099FC8 800993C8 010C6821 */ addu $t5, $t0, $t4 +/* 099FCC 800993CC 00007812 */ mflo $t7 +/* 099FD0 800993D0 016F2021 */ addu $a0, $t3, $t7 +/* 099FD4 800993D4 80820059 */ lb $v0, 0x59($a0) +/* 099FD8 800993D8 14600005 */ bnez $v1, .L800993F0 +/* 099FDC 800993DC 00000000 */ nop +/* 099FE0 800993E0 00A06025 */ move $t4, $a1 +/* 099FE4 800993E4 A3020000 */ sb $v0, ($t8) +/* 099FE8 800993E8 1000000D */ b .L80099420 +/* 099FEC 800993EC 24630001 */ addiu $v1, $v1, 1 +.L800993F0: +/* 099FF0 800993F0 91AE0000 */ lbu $t6, ($t5) +/* 099FF4 800993F4 8C990054 */ lw $t9, 0x54($a0) +/* 099FF8 800993F8 01C90019 */ multu $t6, $t1 +/* 099FFC 800993FC 01437021 */ addu $t6, $t2, $v1 +/* 09A000 80099400 00007812 */ mflo $t7 +/* 09A004 80099404 016FC021 */ addu $t8, $t3, $t7 +/* 09A008 80099408 8F0D0054 */ lw $t5, 0x54($t8) +/* 09A00C 8009940C 00000000 */ nop +/* 09A010 80099410 172D0003 */ bne $t9, $t5, .L80099420 +/* 09A014 80099414 00000000 */ nop +/* 09A018 80099418 A1C20000 */ sb $v0, ($t6) +/* 09A01C 8009941C 24630001 */ addiu $v1, $v1, 1 +.L80099420: +/* 09A020 80099420 24A50001 */ addiu $a1, $a1, 1 +/* 09A024 80099424 00A7082A */ slt $at, $a1, $a3 +/* 09A028 80099428 1420FFE0 */ bnez $at, .L800993AC +/* 09A02C 8009942C 24C60001 */ addiu $a2, $a2, 1 +/* 09A030 80099430 AFAC0034 */ sw $t4, 0x34($sp) +.L80099434: +/* 09A034 80099434 3C0F800E */ lui $t7, %hi(gNumberOfActivePlayers) # $t7, 0x800e +/* 09A038 80099438 8DEFF4BC */ lw $t7, %lo(gNumberOfActivePlayers)($t7) +/* 09A03C 8009943C 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 +/* 09A040 80099440 8FAC0034 */ lw $t4, 0x34($sp) +/* 09A044 80099444 24010001 */ li $at, 1 +/* 09A048 80099448 15E1000C */ bne $t7, $at, .L8009947C +/* 09A04C 8009944C 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 +/* 09A050 80099450 AFA30048 */ sw $v1, 0x48($sp) +/* 09A054 80099454 AFAB002C */ sw $t3, 0x2c($sp) +/* 09A058 80099458 0C027B20 */ jal is_in_two_player_adventure +/* 09A05C 8009945C AFAC0034 */ sw $t4, 0x34($sp) +/* 09A060 80099460 8FA30048 */ lw $v1, 0x48($sp) +/* 09A064 80099464 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 +/* 09A068 80099468 8FAB002C */ lw $t3, 0x2c($sp) +/* 09A06C 8009946C 8FAC0034 */ lw $t4, 0x34($sp) +/* 09A070 80099470 14400002 */ bnez $v0, .L8009947C +/* 09A074 80099474 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 +/* 09A078 80099478 00001825 */ move $v1, $zero +.L8009947C: +/* 09A07C 8009947C 2418FFFF */ li $t8, -1 +/* 09A080 80099480 0143C821 */ addu $t9, $t2, $v1 +/* 09A084 80099484 A3380000 */ sb $t8, ($t9) +/* 09A088 80099488 3C0D800E */ lui $t5, %hi(gIsInTracksMode) # $t5, 0x800e +/* 09A08C 8009948C 8DADF4B8 */ lw $t5, %lo(gIsInTracksMode)($t5) +/* 09A090 80099490 24010001 */ li $at, 1 +/* 09A094 80099494 15A1000C */ bne $t5, $at, .L800994C8 +/* 09A098 80099498 240F0001 */ li $t7, 1 +/* 09A09C 8009949C 29810003 */ slti $at, $t4, 3 +/* 09A0A0 800994A0 14200007 */ bnez $at, .L800994C0 +/* 09A0A4 800994A4 240E0105 */ li $t6, 261 +/* 09A0A8 800994A8 2404000F */ li $a0, 15 +/* 09A0AC 800994AC 0C0204F4 */ jal menu_init +/* 09A0B0 800994B0 AFAC0034 */ sw $t4, 0x34($sp) +/* 09A0B4 800994B4 8FAC0034 */ lw $t4, 0x34($sp) +/* 09A0B8 800994B8 10000033 */ b .L80099588 +/* 09A0BC 800994BC 29810003 */ slti $at, $t4, 3 +.L800994C0: +/* 09A0C0 800994C0 10000030 */ b .L80099584 +/* 09A0C4 800994C4 AFAE003C */ sw $t6, 0x3c($sp) +.L800994C8: +/* 09A0C8 800994C8 AFAF003C */ sw $t7, 0x3c($sp) +/* 09A0CC 800994CC 91640048 */ lbu $a0, 0x48($t3) +/* 09A0D0 800994D0 AFAC0034 */ sw $t4, 0x34($sp) +/* 09A0D4 800994D4 0C01AC75 */ jal get_hub_area_id +/* 09A0D8 800994D8 AFAB002C */ sw $t3, 0x2c($sp) +/* 09A0DC 800994DC 8FAB002C */ lw $t3, 0x2c($sp) +/* 09A0E0 800994E0 3C03800E */ lui $v1, %hi(D_800DF450) # $v1, 0x800e +/* 09A0E4 800994E4 8FAC0034 */ lw $t4, 0x34($sp) +/* 09A0E8 800994E8 2463F450 */ addiu $v1, %lo(D_800DF450) # addiu $v1, $v1, -0xbb0 +/* 09A0EC 800994EC A1620049 */ sb $v0, 0x49($t3) +/* 09A0F0 800994F0 80780000 */ lb $t8, ($v1) +/* 09A0F4 800994F4 00000000 */ nop +/* 09A0F8 800994F8 13000023 */ beqz $t8, .L80099588 +/* 09A0FC 800994FC 29810003 */ slti $at, $t4, 3 +/* 09A100 80099500 A0600000 */ sb $zero, ($v1) +/* 09A104 80099504 91790049 */ lbu $t9, 0x49($t3) +/* 09A108 80099508 29810003 */ slti $at, $t4, 3 +/* 09A10C 8009950C 372D0200 */ ori $t5, $t9, 0x200 +/* 09A110 80099510 1020001C */ beqz $at, .L80099584 +/* 09A114 80099514 AFAD003C */ sw $t5, 0x3c($sp) +/* 09A118 80099518 91650048 */ lbu $a1, 0x48($t3) +/* 09A11C 8009951C 9564000E */ lhu $a0, 0xe($t3) +/* 09A120 80099520 24A5FFFF */ addiu $a1, $a1, -1 +/* 09A124 80099524 00057040 */ sll $t6, $a1, 1 +/* 09A128 80099528 24180003 */ li $t8, 3 +/* 09A12C 8009952C 030C1023 */ subu $v0, $t8, $t4 +/* 09A130 80099530 01C41807 */ srav $v1, $a0, $t6 +/* 09A134 80099534 306F0003 */ andi $t7, $v1, 3 +/* 09A138 80099538 30590003 */ andi $t9, $v0, 3 +/* 09A13C 8009953C 01F9082A */ slt $at, $t7, $t9 +/* 09A140 80099540 01C02825 */ move $a1, $t6 +/* 09A144 80099544 1020000F */ beqz $at, .L80099584 +/* 09A148 80099548 03201025 */ move $v0, $t9 +/* 09A14C 8009954C 240D0003 */ li $t5, 3 +/* 09A150 80099550 01CD7004 */ sllv $t6, $t5, $t6 +/* 09A154 80099554 01C07827 */ not $t7, $t6 +/* 09A158 80099558 008FC824 */ and $t9, $a0, $t7 +/* 09A15C 8009955C 00A26804 */ sllv $t5, $v0, $a1 +/* 09A160 80099560 A579000E */ sh $t9, 0xe($t3) +/* 09A164 80099564 032D7025 */ or $t6, $t9, $t5 +/* 09A168 80099568 A56E000E */ sh $t6, 0xe($t3) +/* 09A16C 8009956C 0C027068 */ jal get_save_file_index +/* 09A170 80099570 AFAC0034 */ sw $t4, 0x34($sp) +/* 09A174 80099574 0C01BB12 */ jal func_8006EC48 +/* 09A178 80099578 00402025 */ move $a0, $v0 +/* 09A17C 8009957C 8FAC0034 */ lw $t4, 0x34($sp) +/* 09A180 80099580 00000000 */ nop +.L80099584: +/* 09A184 80099584 29810003 */ slti $at, $t4, 3 +.L80099588: +/* 09A188 80099588 10200015 */ beqz $at, .L800995E0 +/* 09A18C 8009958C 2404001F */ li $a0, 31 +/* 09A190 80099590 0C0078A7 */ jal get_misc_asset +/* 09A194 80099594 AFAC0034 */ sw $t4, 0x34($sp) +/* 09A198 80099598 3C0F800E */ lui $t7, %hi(gTrophyRaceWorldId) # $t7, 0x800e +/* 09A19C 8009959C 8DEF0FE8 */ lw $t7, %lo(gTrophyRaceWorldId)($t7) +/* 09A1A0 800995A0 8FAC0034 */ lw $t4, 0x34($sp) +/* 09A1A4 800995A4 000FC080 */ sll $t8, $t7, 2 +/* 09A1A8 800995A8 3C0A8012 */ lui $t2, %hi(D_80126438) # $t2, 0x8012 +/* 09A1AC 800995AC 030FC023 */ subu $t8, $t8, $t7 +/* 09A1B0 800995B0 254A6438 */ addiu $t2, %lo(D_80126438) # addiu $t2, $t2, 0x6438 +/* 09A1B4 800995B4 8FA6003C */ lw $a2, 0x3c($sp) +/* 09A1B8 800995B8 030C2821 */ addu $a1, $t8, $t4 +/* 09A1BC 800995BC 24A5FFFD */ addiu $a1, $a1, -3 +/* 09A1C0 800995C0 AFA0003C */ sw $zero, 0x3c($sp) +/* 09A1C4 800995C4 AFAA0014 */ sw $t2, 0x14($sp) +/* 09A1C8 800995C8 00402025 */ move $a0, $v0 +/* 09A1CC 800995CC 00003825 */ move $a3, $zero +/* 09A1D0 800995D0 0C026AF6 */ jal func_8009ABD8 +/* 09A1D4 800995D4 AFA00010 */ sw $zero, 0x10($sp) +/* 09A1D8 800995D8 0C0204F4 */ jal menu_init +/* 09A1DC 800995DC 24040017 */ li $a0, 23 +.L800995E0: +/* 09A1E0 800995E0 3C01800E */ lui $at, %hi(gTrophyRaceWorldId) # $at, 0x800e +/* 09A1E4 800995E4 AC200FE8 */ sw $zero, %lo(gTrophyRaceWorldId)($at) +.L800995E8: +/* 09A1E8 800995E8 8FBF001C */ lw $ra, 0x1c($sp) +.L800995EC: +/* 09A1EC 800995EC 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 +/* 09A1F0 800995F0 8FA2003C */ lw $v0, 0x3c($sp) +/* 09A1F4 800995F4 AC2063C4 */ sw $zero, %lo(gIgnorePlayerInput)($at) +/* 09A1F8 800995F8 03E00008 */ jr $ra +/* 09A1FC 800995FC 27BD0050 */ addiu $sp, $sp, 0x50 + diff --git a/asm/non_matchings/objects/func_8001A8F4.s b/asm/non_matchings/objects/func_8001A8F4.s index bb190e57..899169ed 100644 --- a/asm/non_matchings/objects/func_8001A8F4.s +++ b/asm/non_matchings/objects/func_8001A8F4.s @@ -26,7 +26,7 @@ glabel func_8001A8F4 /* 01B550 8001A950 29210033 */ slti $at, $t1, 0x33 /* 01B554 8001A954 10200003 */ beqz $at, .L8001A964 /* 01B558 8001A958 00000000 */ nop -/* 01B55C 8001A95C 0C030076 */ jal func_800C01D8 +/* 01B55C 8001A95C 0C030076 */ jal transition_begin /* 01B560 8001A960 2484C858 */ addiu $a0, %lo(D_800DC858) # addiu $a0, $a0, -0x37a8 .L8001A964: /* 01B564 8001A964 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012 @@ -157,7 +157,7 @@ glabel func_8001A8F4 /* 01B73C 8001AB3C 24010001 */ li $at, 1 /* 01B740 8001AB40 14410055 */ bne $v0, $at, .L8001AC98 /* 01B744 8001AB44 2631AEF0 */ addiu $s1, %lo(gNumRacers) # addiu $s1, $s1, -0x5110 -/* 01B748 8001AB48 0C02AC75 */ jal func_800AB1D4 +/* 01B748 8001AB48 0C02AC75 */ jal set_hud_visibility /* 01B74C 8001AB4C 00002025 */ move $a0, $zero /* 01B750 8001AB50 3C078012 */ lui $a3, %hi(D_8011AD51) # $a3, 0x8012 /* 01B754 8001AB54 24E7AD51 */ addiu $a3, %lo(D_8011AD51) # addiu $a3, $a3, -0x52af @@ -278,7 +278,7 @@ glabel func_8001A8F4 /* 01B900 8001AD00 1441000C */ bne $v0, $at, .L8001AD34 /* 01B904 8001AD04 2610ADC8 */ addiu $s0, %lo(D_8011ADC8) # addiu $s0, $s0, -0x5238 /* 01B908 8001AD08 3C04800E */ lui $a0, %hi(D_800DC860) # $a0, 0x800e -/* 01B90C 8001AD0C 0C030076 */ jal func_800C01D8 +/* 01B90C 8001AD0C 0C030076 */ jal transition_begin /* 01B910 8001AD10 2484C860 */ addiu $a0, %lo(D_800DC860) # addiu $a0, $a0, -0x37a0 /* 01B914 8001AD14 240B0004 */ li $t3, 4 /* 01B918 8001AD18 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012 @@ -319,7 +319,7 @@ glabel func_8001A8F4 /* 01B99C 8001AD9C 10000003 */ b .L8001ADAC /* 01B9A0 8001ADA0 00000000 */ nop .L8001ADA4: -/* 01B9A4 8001ADA4 0C02AC75 */ jal func_800AB1D4 +/* 01B9A4 8001ADA4 0C02AC75 */ jal set_hud_visibility /* 01B9A8 8001ADA8 24040001 */ li $a0, 1 .L8001ADAC: /* 01B9AC 8001ADAC 0C01A955 */ jal get_buttons_pressed_from_player @@ -346,7 +346,7 @@ glabel func_8001A8F4 .L8001ADFC: /* 01B9FC 8001ADFC 12000003 */ beqz $s0, .L8001AE0C /* 01BA00 8001AE00 3C04800E */ lui $a0, %hi(D_800DC6F8) # $a0, 0x800e -/* 01BA04 8001AE04 0C030076 */ jal func_800C01D8 +/* 01BA04 8001AE04 0C030076 */ jal transition_begin /* 01BA08 8001AE08 2484C6F8 */ addiu $a0, %lo(D_800DC6F8) # addiu $a0, $a0, -0x3908 .L8001AE0C: /* 01BA0C 8001AE0C 0C01BC50 */ jal func_8006F140 diff --git a/asm/non_matchings/objects/func_8001F460.s b/asm/non_matchings/objects/func_8001F460.s index 671ba87d..bc52409f 100644 --- a/asm/non_matchings/objects/func_8001F460.s +++ b/asm/non_matchings/objects/func_8001F460.s @@ -319,7 +319,7 @@ glabel func_8001F460 /* 0204BC 8001F8BC 240F0003 */ li $t7, 3 /* 0204C0 8001F8C0 A7AE00A8 */ sh $t6, 0xa8($sp) /* 0204C4 8001F8C4 A7AF00AA */ sh $t7, 0xaa($sp) -/* 0204C8 8001F8C8 0C030076 */ jal func_800C01D8 +/* 0204C8 8001F8C8 0C030076 */ jal transition_begin /* 0204CC 8001F8CC 27A400A4 */ addiu $a0, $sp, 0xa4 /* 0204D0 8001F8D0 1000002C */ b .L8001F984 /* 0204D4 8001F8D4 241800FF */ li $t8, 255 @@ -367,7 +367,7 @@ glabel func_8001F460 /* 020570 8001F970 11E00004 */ beqz $t7, .L8001F984 /* 020574 8001F974 241800FF */ li $t8, 255 .L8001F978: -/* 020578 8001F978 0C030076 */ jal func_800C01D8 +/* 020578 8001F978 0C030076 */ jal transition_begin /* 02057C 8001F97C 27A400A4 */ addiu $a0, $sp, 0xa4 /* 020580 8001F980 241800FF */ li $t8, 255 .L8001F984: diff --git a/asm/non_matchings/objects/func_80022948.s b/asm/non_matchings/objects/func_80022948.s index 182a8aa0..247bfd2e 100644 --- a/asm/non_matchings/objects/func_80022948.s +++ b/asm/non_matchings/objects/func_80022948.s @@ -1,246 +1,246 @@ -glabel func_80022948 -/* 023548 80022948 3C028012 */ lui $v0, %hi(D_8011AEF7) # $v0, 0x8012 -/* 02354C 8002294C 2442AEF7 */ addiu $v0, %lo(D_8011AEF7) # addiu $v0, $v0, -0x5109 -/* 023550 80022950 804E0000 */ lb $t6, ($v0) -/* 023554 80022954 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 023558 80022958 25CFFFFF */ addiu $t7, $t6, -1 -/* 02355C 8002295C A04F0000 */ sb $t7, ($v0) -/* 023560 80022960 80580000 */ lb $t8, ($v0) -/* 023564 80022964 AFBF001C */ sw $ra, 0x1c($sp) -/* 023568 80022968 170000E0 */ bnez $t8, .L80022CEC -/* 02356C 8002296C AFB00018 */ sw $s0, 0x18($sp) -/* 023570 80022970 0C01AF6C */ jal get_current_level_header -/* 023574 80022974 00000000 */ nop -/* 023578 80022978 AFA20068 */ sw $v0, 0x68($sp) -/* 02357C 8002297C 90590052 */ lbu $t9, 0x52($v0) -/* 023580 80022980 3C018012 */ lui $at, %hi(D_8011AEF8) # $at, 0x8012 -/* 023584 80022984 A039AEF8 */ sb $t9, %lo(D_8011AEF8)($at) -/* 023588 80022988 94490054 */ lhu $t1, 0x54($v0) -/* 02358C 8002298C 3C018012 */ lui $at, %hi(D_8011AEFC) # $at, 0x8012 -/* 023590 80022990 240A001D */ li $t2, 29 -/* 023594 80022994 340BFFFF */ li $t3, 65535 -/* 023598 80022998 AC29AEFC */ sw $t1, %lo(D_8011AEFC)($at) -/* 02359C 8002299C A04A0052 */ sb $t2, 0x52($v0) -/* 0235A0 800229A0 A44B0054 */ sh $t3, 0x54($v0) -/* 0235A4 800229A4 0C006EB2 */ jal get_racer_object -/* 0235A8 800229A8 00002025 */ move $a0, $zero -/* 0235AC 800229AC 8C500064 */ lw $s0, 0x64($v0) -/* 0235B0 800229B0 3C018012 */ lui $at, %hi(D_8011AEF6) # $at, 0x8012 -/* 0235B4 800229B4 820C01D6 */ lb $t4, 0x1d6($s0) -/* 0235B8 800229B8 00402025 */ move $a0, $v0 -/* 0235BC 800229BC 258D0001 */ addiu $t5, $t4, 1 -/* 0235C0 800229C0 A02DAEF6 */ sb $t5, %lo(D_8011AEF6)($at) -/* 0235C4 800229C4 0C008C34 */ jal func_800230D0 -/* 0235C8 800229C8 02002825 */ move $a1, $s0 -/* 0235CC 800229CC 860E01A0 */ lh $t6, 0x1a0($s0) -/* 0235D0 800229D0 340F8000 */ li $t7, 32768 -/* 0235D4 800229D4 01EEC023 */ subu $t8, $t7, $t6 -/* 0235D8 800229D8 A6180196 */ sh $t8, 0x196($s0) -/* 0235DC 800229DC A20001FC */ sb $zero, 0x1fc($s0) -/* 0235E0 800229E0 A20001F4 */ sb $zero, 0x1f4($s0) -/* 0235E4 800229E4 A6000190 */ sh $zero, 0x190($s0) -/* 0235E8 800229E8 A2000192 */ sb $zero, 0x192($s0) -/* 0235EC 800229EC A2000193 */ sb $zero, 0x193($s0) -/* 0235F0 800229F0 A2000194 */ sb $zero, 0x194($s0) -/* 0235F4 800229F4 AE000128 */ sw $zero, 0x128($s0) -/* 0235F8 800229F8 AE00012C */ sw $zero, 0x12c($s0) -/* 0235FC 800229FC AE000130 */ sw $zero, 0x130($s0) -/* 023600 80022A00 A60001BA */ sh $zero, 0x1ba($s0) -/* 023604 80022A04 0C01BAA4 */ jal get_settings -/* 023608 80022A08 AFA2007C */ sw $v0, 0x7c($sp) -/* 02360C 80022A0C 24190050 */ li $t9, 80 -/* 023610 80022A10 3C018012 */ lui $at, %hi(D_8011ADB0) # $at, 0x8012 -/* 023614 80022A14 AC39ADB0 */ sw $t9, %lo(D_8011ADB0)($at) -/* 023618 80022A18 3C018012 */ lui $at, %hi(D_8011ADB4) # $at, 0x8012 -/* 02361C 80022A1C 8FA30068 */ lw $v1, 0x68($sp) -/* 023620 80022A20 AC20ADB4 */ sw $zero, %lo(D_8011ADB4)($at) -/* 023624 80022A24 3C018012 */ lui $at, %hi(D_8011ADC0) # $at, 0x8012 -/* 023628 80022A28 24090001 */ li $t1, 1 -/* 02362C 80022A2C AFA20054 */ sw $v0, 0x54($sp) -/* 023630 80022A30 AC29ADC0 */ sw $t1, %lo(D_8011ADC0)($at) -/* 023634 80022A34 240A0003 */ li $t2, 3 -/* 023638 80022A38 A06A004B */ sb $t2, 0x4b($v1) -/* 02363C 80022A3C 0C027C0D */ jal func_8009F034 -/* 023640 80022A40 A060004C */ sb $zero, 0x4c($v1) -/* 023644 80022A44 8FA8007C */ lw $t0, 0x7c($sp) -/* 023648 80022A48 00001025 */ move $v0, $zero -/* 02364C 80022A4C 02001825 */ move $v1, $s0 -.L80022A50: -/* 023650 80022A50 24420001 */ addiu $v0, $v0, 1 -/* 023654 80022A54 28410005 */ slti $at, $v0, 5 -/* 023658 80022A58 AC600128 */ sw $zero, 0x128($v1) -/* 02365C 80022A5C 1420FFFC */ bnez $at, .L80022A50 -/* 023660 80022A60 24630004 */ addiu $v1, $v1, 4 -/* 023664 80022A64 3C01420C */ li $at, 0x420C0000 # 35.000000 -/* 023668 80022A68 44810000 */ mtc1 $at, $f0 -/* 02366C 80022A6C C5060008 */ lwc1 $f6, 8($t0) -/* 023670 80022A70 C5040010 */ lwc1 $f4, 0x10($t0) -/* 023674 80022A74 46003202 */ mul.s $f8, $f6, $f0 -/* 023678 80022A78 46082280 */ add.s $f10, $f4, $f8 -/* 02367C 80022A7C 444BF800 */ cfc1 $t3, $31 -/* 023680 80022A80 00000000 */ nop -/* 023684 80022A84 35610003 */ ori $at, $t3, 3 -/* 023688 80022A88 38210002 */ xori $at, $at, 2 -/* 02368C 80022A8C 44C1F800 */ ctc1 $at, $31 -/* 023690 80022A90 00000000 */ nop -/* 023694 80022A94 46005424 */ cvt.w.s $f16, $f10 -/* 023698 80022A98 440C8000 */ mfc1 $t4, $f16 -/* 02369C 80022A9C 44CBF800 */ ctc1 $t3, $31 -/* 0236A0 80022AA0 A7AC005A */ sh $t4, 0x5a($sp) -/* 0236A4 80022AA4 C5060000 */ lwc1 $f6, ($t0) -/* 0236A8 80022AA8 C5120018 */ lwc1 $f18, 0x18($t0) -/* 0236AC 80022AAC 46003102 */ mul.s $f4, $f6, $f0 -/* 0236B0 80022AB0 000C7400 */ sll $t6, $t4, 0x10 -/* 0236B4 80022AB4 000EC403 */ sra $t8, $t6, 0x10 -/* 0236B8 80022AB8 44988000 */ mtc1 $t8, $f16 -/* 0236BC 80022ABC 46049201 */ sub.s $f8, $f18, $f4 -/* 0236C0 80022AC0 444DF800 */ cfc1 $t5, $31 -/* 0236C4 80022AC4 00000000 */ nop -/* 0236C8 80022AC8 35A10003 */ ori $at, $t5, 3 -/* 0236CC 80022ACC 38210002 */ xori $at, $at, 2 -/* 0236D0 80022AD0 44C1F800 */ ctc1 $at, $31 -/* 0236D4 80022AD4 00000000 */ nop -/* 0236D8 80022AD8 460042A4 */ cvt.w.s $f10, $f8 -/* 0236DC 80022ADC 440F5000 */ mfc1 $t7, $f10 -/* 0236E0 80022AE0 44CDF800 */ ctc1 $t5, $31 -/* 0236E4 80022AE4 000FCC00 */ sll $t9, $t7, 0x10 -/* 0236E8 80022AE8 00194C03 */ sra $t1, $t9, 0x10 -/* 0236EC 80022AEC 44893000 */ mtc1 $t1, $f6 -/* 0236F0 80022AF0 A7AF005E */ sh $t7, 0x5e($sp) -/* 0236F4 80022AF4 468031A0 */ cvt.s.w $f6, $f6 -/* 0236F8 80022AF8 C50E0014 */ lwc1 $f14, 0x14($t0) -/* 0236FC 80022AFC AFA8007C */ sw $t0, 0x7c($sp) -/* 023700 80022B00 44063000 */ mfc1 $a2, $f6 -/* 023704 80022B04 0C00A7C6 */ jal get_level_segment_index_from_position -/* 023708 80022B08 46808320 */ cvt.s.w $f12, $f16 -/* 02370C 80022B0C 87AA005A */ lh $t2, 0x5a($sp) -/* 023710 80022B10 87AB005E */ lh $t3, 0x5e($sp) -/* 023714 80022B14 448A9000 */ mtc1 $t2, $f18 -/* 023718 80022B18 448B2000 */ mtc1 $t3, $f4 -/* 02371C 80022B1C 468094A0 */ cvt.s.w $f18, $f18 -/* 023720 80022B20 00402025 */ move $a0, $v0 -/* 023724 80022B24 27A7002C */ addiu $a3, $sp, 0x2c -/* 023728 80022B28 46802120 */ cvt.s.w $f4, $f4 -/* 02372C 80022B2C 44059000 */ mfc1 $a1, $f18 -/* 023730 80022B30 44062000 */ mfc1 $a2, $f4 -/* 023734 80022B34 0C00AEAC */ jal func_8002BAB0 -/* 023738 80022B38 00000000 */ nop -/* 02373C 80022B3C 8FA8007C */ lw $t0, 0x7c($sp) -/* 023740 80022B40 1040000C */ beqz $v0, .L80022B74 -/* 023744 80022B44 240F0010 */ li $t7, 16 -/* 023748 80022B48 444DF800 */ cfc1 $t5, $31 -/* 02374C 80022B4C C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 023750 80022B50 35A10003 */ ori $at, $t5, 3 -/* 023754 80022B54 38210002 */ xori $at, $at, 2 -/* 023758 80022B58 44C1F800 */ ctc1 $at, $31 -/* 02375C 80022B5C 00000000 */ nop -/* 023760 80022B60 460042A4 */ cvt.w.s $f10, $f8 -/* 023764 80022B64 440C5000 */ mfc1 $t4, $f10 -/* 023768 80022B68 44CDF800 */ ctc1 $t5, $31 -/* 02376C 80022B6C 1000000C */ b .L80022BA0 -/* 023770 80022B70 A7AC005C */ sh $t4, 0x5c($sp) -.L80022B74: -/* 023774 80022B74 444EF800 */ cfc1 $t6, $31 -/* 023778 80022B78 C5100014 */ lwc1 $f16, 0x14($t0) -/* 02377C 80022B7C 35C10003 */ ori $at, $t6, 3 -/* 023780 80022B80 38210002 */ xori $at, $at, 2 -/* 023784 80022B84 44C1F800 */ ctc1 $at, $31 -/* 023788 80022B88 00000000 */ nop -/* 02378C 80022B8C 460081A4 */ cvt.w.s $f6, $f16 -/* 023790 80022B90 44183000 */ mfc1 $t8, $f6 -/* 023794 80022B94 44CEF800 */ ctc1 $t6, $31 -/* 023798 80022B98 A7B8005C */ sh $t8, 0x5c($sp) -/* 02379C 80022B9C 00000000 */ nop -.L80022BA0: -/* 0237A0 80022BA0 A3AF0059 */ sb $t7, 0x59($sp) -/* 0237A4 80022BA4 861901A0 */ lh $t9, 0x1a0($s0) -/* 0237A8 80022BA8 24090004 */ li $t1, 4 -/* 0237AC 80022BAC 240A00DA */ li $t2, 218 -/* 0237B0 80022BB0 A7A00062 */ sh $zero, 0x62($sp) -/* 0237B4 80022BB4 A7A00060 */ sh $zero, 0x60($sp) -/* 0237B8 80022BB8 A7A90066 */ sh $t1, 0x66($sp) -/* 0237BC 80022BBC A3AA0058 */ sb $t2, 0x58($sp) -/* 0237C0 80022BC0 00002025 */ move $a0, $zero -/* 0237C4 80022BC4 0C01867D */ jal func_800619F4 -/* 0237C8 80022BC8 A7B90064 */ sh $t9, 0x64($sp) -/* 0237CC 80022BCC 27A40058 */ addiu $a0, $sp, 0x58 -/* 0237D0 80022BD0 0C003A95 */ jal spawn_object -/* 0237D4 80022BD4 24050001 */ li $a1, 1 -/* 0237D8 80022BD8 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 -/* 0237DC 80022BDC 8D6BAEE4 */ lw $t3, %lo(gRacers)($t3) -/* 0237E0 80022BE0 3C0D8012 */ lui $t5, %hi(gRacersByPosition) # $t5, 0x8012 -/* 0237E4 80022BE4 AD620004 */ sw $v0, 4($t3) -/* 0237E8 80022BE8 8DADAEE8 */ lw $t5, %lo(gRacersByPosition)($t5) -/* 0237EC 80022BEC 3C0C8012 */ lui $t4, %hi(gRacersByPort) # $t4, 0x8012 -/* 0237F0 80022BF0 ADA20004 */ sw $v0, 4($t5) -/* 0237F4 80022BF4 8D8CAEEC */ lw $t4, %lo(gRacersByPort)($t4) -/* 0237F8 80022BF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0237FC 80022BFC 44810000 */ mtc1 $at, $f0 -/* 023800 80022C00 AD820004 */ sw $v0, 4($t4) -/* 023804 80022C04 AC40003C */ sw $zero, 0x3c($v0) -/* 023808 80022C08 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 -/* 02380C 80022C0C 240E0002 */ li $t6, 2 -/* 023810 80022C10 AC2EAEF0 */ sw $t6, %lo(gNumRacers)($at) -/* 023814 80022C14 8C500064 */ lw $s0, 0x64($v0) -/* 023818 80022C18 2418000A */ li $t8, 10 -/* 02381C 80022C1C A21801D6 */ sb $t8, 0x1d6($s0) -/* 023820 80022C20 820F01D6 */ lb $t7, 0x1d6($s0) -/* 023824 80022C24 24190001 */ li $t9, 1 -/* 023828 80022C28 A2190002 */ sb $t9, 2($s0) -/* 02382C 80022C2C A20F01D7 */ sb $t7, 0x1d7($s0) -/* 023830 80022C30 8FA90054 */ lw $t1, 0x54($sp) -/* 023834 80022C34 240B00FF */ li $t3, 255 -/* 023838 80022C38 812A0059 */ lb $t2, 0x59($t1) -/* 02383C 80022C3C E6000090 */ swc1 $f0, 0x90($s0) -/* 023840 80022C40 E600008C */ swc1 $f0, 0x8c($s0) -/* 023844 80022C44 A20B01F7 */ sb $t3, 0x1f7($s0) -/* 023848 80022C48 AE000118 */ sw $zero, 0x118($s0) -/* 02384C 80022C4C A20A0003 */ sb $t2, 3($s0) -/* 023850 80022C50 8C4C004C */ lw $t4, 0x4c($v0) -/* 023854 80022C54 240D0002 */ li $t5, 2 -/* 023858 80022C58 A18D0012 */ sb $t5, 0x12($t4) -/* 02385C 80022C5C 3C048012 */ lui $a0, %hi(D_8011AE60) # $a0, 0x8012 -/* 023860 80022C60 3C058012 */ lui $a1, %hi(objCount) # $a1, 0x8012 -/* 023864 80022C64 8CA5AE5C */ lw $a1, %lo(objCount)($a1) -/* 023868 80022C68 8C84AE60 */ lw $a0, %lo(D_8011AE60)($a0) -/* 02386C 80022C6C 2407003E */ li $a3, 62 -/* 023870 80022C70 0085082A */ slt $at, $a0, $a1 -/* 023874 80022C74 10200018 */ beqz $at, .L80022CD8 -/* 023878 80022C78 00041880 */ sll $v1, $a0, 2 -/* 02387C 80022C7C 3C068012 */ lui $a2, %hi(gObjPtrList) # $a2, 0x8012 -/* 023880 80022C80 24C6AE58 */ addiu $a2, %lo(gObjPtrList) # addiu $a2, $a2, -0x51a8 -.L80022C84: -/* 023884 80022C84 8CCE0000 */ lw $t6, ($a2) -/* 023888 80022C88 24840001 */ addiu $a0, $a0, 1 -/* 02388C 80022C8C 01C3C021 */ addu $t8, $t6, $v1 -/* 023890 80022C90 8F020000 */ lw $v0, ($t8) -/* 023894 80022C94 00000000 */ nop -/* 023898 80022C98 844F0006 */ lh $t7, 6($v0) -/* 02389C 80022C9C 00000000 */ nop -/* 0238A0 80022CA0 31F98000 */ andi $t9, $t7, 0x8000 -/* 0238A4 80022CA4 1720000A */ bnez $t9, .L80022CD0 -/* 0238A8 80022CA8 0085082A */ slt $at, $a0, $a1 -/* 0238AC 80022CAC 84490048 */ lh $t1, 0x48($v0) -/* 0238B0 80022CB0 00000000 */ nop -/* 0238B4 80022CB4 14E90006 */ bne $a3, $t1, .L80022CD0 -/* 0238B8 80022CB8 0085082A */ slt $at, $a0, $a1 -/* 0238BC 80022CBC AE020154 */ sw $v0, 0x154($s0) -/* 0238C0 80022CC0 3C058012 */ lui $a1, %hi(objCount) # $a1, 0x8012 -/* 0238C4 80022CC4 8CA5AE5C */ lw $a1, %lo(objCount)($a1) -/* 0238C8 80022CC8 00000000 */ nop -/* 0238CC 80022CCC 0085082A */ slt $at, $a0, $a1 -.L80022CD0: -/* 0238D0 80022CD0 1420FFEC */ bnez $at, .L80022C84 -/* 0238D4 80022CD4 24630004 */ addiu $v1, $v1, 4 -.L80022CD8: -/* 0238D8 80022CD8 0C01BCE2 */ jal func_8006F388 -/* 0238DC 80022CDC 24040014 */ li $a0, 20 -/* 0238E0 80022CE0 3C04800E */ lui $a0, %hi(D_800DC6F0) # $a0, 0x800e -/* 0238E4 80022CE4 0C030076 */ jal func_800C01D8 -/* 0238E8 80022CE8 2484C6F0 */ addiu $a0, %lo(D_800DC6F0) # addiu $a0, $a0, -0x3910 -.L80022CEC: -/* 0238EC 80022CEC 8FBF001C */ lw $ra, 0x1c($sp) -/* 0238F0 80022CF0 8FB00018 */ lw $s0, 0x18($sp) -/* 0238F4 80022CF4 03E00008 */ jr $ra -/* 0238F8 80022CF8 27BD0080 */ addiu $sp, $sp, 0x80 - +glabel func_80022948 +/* 023548 80022948 3C028012 */ lui $v0, %hi(D_8011AEF7) # $v0, 0x8012 +/* 02354C 8002294C 2442AEF7 */ addiu $v0, %lo(D_8011AEF7) # addiu $v0, $v0, -0x5109 +/* 023550 80022950 804E0000 */ lb $t6, ($v0) +/* 023554 80022954 27BDFF80 */ addiu $sp, $sp, -0x80 +/* 023558 80022958 25CFFFFF */ addiu $t7, $t6, -1 +/* 02355C 8002295C A04F0000 */ sb $t7, ($v0) +/* 023560 80022960 80580000 */ lb $t8, ($v0) +/* 023564 80022964 AFBF001C */ sw $ra, 0x1c($sp) +/* 023568 80022968 170000E0 */ bnez $t8, .L80022CEC +/* 02356C 8002296C AFB00018 */ sw $s0, 0x18($sp) +/* 023570 80022970 0C01AF6C */ jal get_current_level_header +/* 023574 80022974 00000000 */ nop +/* 023578 80022978 AFA20068 */ sw $v0, 0x68($sp) +/* 02357C 8002297C 90590052 */ lbu $t9, 0x52($v0) +/* 023580 80022980 3C018012 */ lui $at, %hi(D_8011AEF8) # $at, 0x8012 +/* 023584 80022984 A039AEF8 */ sb $t9, %lo(D_8011AEF8)($at) +/* 023588 80022988 94490054 */ lhu $t1, 0x54($v0) +/* 02358C 8002298C 3C018012 */ lui $at, %hi(D_8011AEFC) # $at, 0x8012 +/* 023590 80022990 240A001D */ li $t2, 29 +/* 023594 80022994 340BFFFF */ li $t3, 65535 +/* 023598 80022998 AC29AEFC */ sw $t1, %lo(D_8011AEFC)($at) +/* 02359C 8002299C A04A0052 */ sb $t2, 0x52($v0) +/* 0235A0 800229A0 A44B0054 */ sh $t3, 0x54($v0) +/* 0235A4 800229A4 0C006EB2 */ jal get_racer_object +/* 0235A8 800229A8 00002025 */ move $a0, $zero +/* 0235AC 800229AC 8C500064 */ lw $s0, 0x64($v0) +/* 0235B0 800229B0 3C018012 */ lui $at, %hi(D_8011AEF6) # $at, 0x8012 +/* 0235B4 800229B4 820C01D6 */ lb $t4, 0x1d6($s0) +/* 0235B8 800229B8 00402025 */ move $a0, $v0 +/* 0235BC 800229BC 258D0001 */ addiu $t5, $t4, 1 +/* 0235C0 800229C0 A02DAEF6 */ sb $t5, %lo(D_8011AEF6)($at) +/* 0235C4 800229C4 0C008C34 */ jal func_800230D0 +/* 0235C8 800229C8 02002825 */ move $a1, $s0 +/* 0235CC 800229CC 860E01A0 */ lh $t6, 0x1a0($s0) +/* 0235D0 800229D0 340F8000 */ li $t7, 32768 +/* 0235D4 800229D4 01EEC023 */ subu $t8, $t7, $t6 +/* 0235D8 800229D8 A6180196 */ sh $t8, 0x196($s0) +/* 0235DC 800229DC A20001FC */ sb $zero, 0x1fc($s0) +/* 0235E0 800229E0 A20001F4 */ sb $zero, 0x1f4($s0) +/* 0235E4 800229E4 A6000190 */ sh $zero, 0x190($s0) +/* 0235E8 800229E8 A2000192 */ sb $zero, 0x192($s0) +/* 0235EC 800229EC A2000193 */ sb $zero, 0x193($s0) +/* 0235F0 800229F0 A2000194 */ sb $zero, 0x194($s0) +/* 0235F4 800229F4 AE000128 */ sw $zero, 0x128($s0) +/* 0235F8 800229F8 AE00012C */ sw $zero, 0x12c($s0) +/* 0235FC 800229FC AE000130 */ sw $zero, 0x130($s0) +/* 023600 80022A00 A60001BA */ sh $zero, 0x1ba($s0) +/* 023604 80022A04 0C01BAA4 */ jal get_settings +/* 023608 80022A08 AFA2007C */ sw $v0, 0x7c($sp) +/* 02360C 80022A0C 24190050 */ li $t9, 80 +/* 023610 80022A10 3C018012 */ lui $at, %hi(D_8011ADB0) # $at, 0x8012 +/* 023614 80022A14 AC39ADB0 */ sw $t9, %lo(D_8011ADB0)($at) +/* 023618 80022A18 3C018012 */ lui $at, %hi(D_8011ADB4) # $at, 0x8012 +/* 02361C 80022A1C 8FA30068 */ lw $v1, 0x68($sp) +/* 023620 80022A20 AC20ADB4 */ sw $zero, %lo(D_8011ADB4)($at) +/* 023624 80022A24 3C018012 */ lui $at, %hi(D_8011ADC0) # $at, 0x8012 +/* 023628 80022A28 24090001 */ li $t1, 1 +/* 02362C 80022A2C AFA20054 */ sw $v0, 0x54($sp) +/* 023630 80022A30 AC29ADC0 */ sw $t1, %lo(D_8011ADC0)($at) +/* 023634 80022A34 240A0003 */ li $t2, 3 +/* 023638 80022A38 A06A004B */ sb $t2, 0x4b($v1) +/* 02363C 80022A3C 0C027C0D */ jal func_8009F034 +/* 023640 80022A40 A060004C */ sb $zero, 0x4c($v1) +/* 023644 80022A44 8FA8007C */ lw $t0, 0x7c($sp) +/* 023648 80022A48 00001025 */ move $v0, $zero +/* 02364C 80022A4C 02001825 */ move $v1, $s0 +.L80022A50: +/* 023650 80022A50 24420001 */ addiu $v0, $v0, 1 +/* 023654 80022A54 28410005 */ slti $at, $v0, 5 +/* 023658 80022A58 AC600128 */ sw $zero, 0x128($v1) +/* 02365C 80022A5C 1420FFFC */ bnez $at, .L80022A50 +/* 023660 80022A60 24630004 */ addiu $v1, $v1, 4 +/* 023664 80022A64 3C01420C */ li $at, 0x420C0000 # 35.000000 +/* 023668 80022A68 44810000 */ mtc1 $at, $f0 +/* 02366C 80022A6C C5060008 */ lwc1 $f6, 8($t0) +/* 023670 80022A70 C5040010 */ lwc1 $f4, 0x10($t0) +/* 023674 80022A74 46003202 */ mul.s $f8, $f6, $f0 +/* 023678 80022A78 46082280 */ add.s $f10, $f4, $f8 +/* 02367C 80022A7C 444BF800 */ cfc1 $t3, $31 +/* 023680 80022A80 00000000 */ nop +/* 023684 80022A84 35610003 */ ori $at, $t3, 3 +/* 023688 80022A88 38210002 */ xori $at, $at, 2 +/* 02368C 80022A8C 44C1F800 */ ctc1 $at, $31 +/* 023690 80022A90 00000000 */ nop +/* 023694 80022A94 46005424 */ cvt.w.s $f16, $f10 +/* 023698 80022A98 440C8000 */ mfc1 $t4, $f16 +/* 02369C 80022A9C 44CBF800 */ ctc1 $t3, $31 +/* 0236A0 80022AA0 A7AC005A */ sh $t4, 0x5a($sp) +/* 0236A4 80022AA4 C5060000 */ lwc1 $f6, ($t0) +/* 0236A8 80022AA8 C5120018 */ lwc1 $f18, 0x18($t0) +/* 0236AC 80022AAC 46003102 */ mul.s $f4, $f6, $f0 +/* 0236B0 80022AB0 000C7400 */ sll $t6, $t4, 0x10 +/* 0236B4 80022AB4 000EC403 */ sra $t8, $t6, 0x10 +/* 0236B8 80022AB8 44988000 */ mtc1 $t8, $f16 +/* 0236BC 80022ABC 46049201 */ sub.s $f8, $f18, $f4 +/* 0236C0 80022AC0 444DF800 */ cfc1 $t5, $31 +/* 0236C4 80022AC4 00000000 */ nop +/* 0236C8 80022AC8 35A10003 */ ori $at, $t5, 3 +/* 0236CC 80022ACC 38210002 */ xori $at, $at, 2 +/* 0236D0 80022AD0 44C1F800 */ ctc1 $at, $31 +/* 0236D4 80022AD4 00000000 */ nop +/* 0236D8 80022AD8 460042A4 */ cvt.w.s $f10, $f8 +/* 0236DC 80022ADC 440F5000 */ mfc1 $t7, $f10 +/* 0236E0 80022AE0 44CDF800 */ ctc1 $t5, $31 +/* 0236E4 80022AE4 000FCC00 */ sll $t9, $t7, 0x10 +/* 0236E8 80022AE8 00194C03 */ sra $t1, $t9, 0x10 +/* 0236EC 80022AEC 44893000 */ mtc1 $t1, $f6 +/* 0236F0 80022AF0 A7AF005E */ sh $t7, 0x5e($sp) +/* 0236F4 80022AF4 468031A0 */ cvt.s.w $f6, $f6 +/* 0236F8 80022AF8 C50E0014 */ lwc1 $f14, 0x14($t0) +/* 0236FC 80022AFC AFA8007C */ sw $t0, 0x7c($sp) +/* 023700 80022B00 44063000 */ mfc1 $a2, $f6 +/* 023704 80022B04 0C00A7C6 */ jal get_level_segment_index_from_position +/* 023708 80022B08 46808320 */ cvt.s.w $f12, $f16 +/* 02370C 80022B0C 87AA005A */ lh $t2, 0x5a($sp) +/* 023710 80022B10 87AB005E */ lh $t3, 0x5e($sp) +/* 023714 80022B14 448A9000 */ mtc1 $t2, $f18 +/* 023718 80022B18 448B2000 */ mtc1 $t3, $f4 +/* 02371C 80022B1C 468094A0 */ cvt.s.w $f18, $f18 +/* 023720 80022B20 00402025 */ move $a0, $v0 +/* 023724 80022B24 27A7002C */ addiu $a3, $sp, 0x2c +/* 023728 80022B28 46802120 */ cvt.s.w $f4, $f4 +/* 02372C 80022B2C 44059000 */ mfc1 $a1, $f18 +/* 023730 80022B30 44062000 */ mfc1 $a2, $f4 +/* 023734 80022B34 0C00AEAC */ jal func_8002BAB0 +/* 023738 80022B38 00000000 */ nop +/* 02373C 80022B3C 8FA8007C */ lw $t0, 0x7c($sp) +/* 023740 80022B40 1040000C */ beqz $v0, .L80022B74 +/* 023744 80022B44 240F0010 */ li $t7, 16 +/* 023748 80022B48 444DF800 */ cfc1 $t5, $31 +/* 02374C 80022B4C C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 023750 80022B50 35A10003 */ ori $at, $t5, 3 +/* 023754 80022B54 38210002 */ xori $at, $at, 2 +/* 023758 80022B58 44C1F800 */ ctc1 $at, $31 +/* 02375C 80022B5C 00000000 */ nop +/* 023760 80022B60 460042A4 */ cvt.w.s $f10, $f8 +/* 023764 80022B64 440C5000 */ mfc1 $t4, $f10 +/* 023768 80022B68 44CDF800 */ ctc1 $t5, $31 +/* 02376C 80022B6C 1000000C */ b .L80022BA0 +/* 023770 80022B70 A7AC005C */ sh $t4, 0x5c($sp) +.L80022B74: +/* 023774 80022B74 444EF800 */ cfc1 $t6, $31 +/* 023778 80022B78 C5100014 */ lwc1 $f16, 0x14($t0) +/* 02377C 80022B7C 35C10003 */ ori $at, $t6, 3 +/* 023780 80022B80 38210002 */ xori $at, $at, 2 +/* 023784 80022B84 44C1F800 */ ctc1 $at, $31 +/* 023788 80022B88 00000000 */ nop +/* 02378C 80022B8C 460081A4 */ cvt.w.s $f6, $f16 +/* 023790 80022B90 44183000 */ mfc1 $t8, $f6 +/* 023794 80022B94 44CEF800 */ ctc1 $t6, $31 +/* 023798 80022B98 A7B8005C */ sh $t8, 0x5c($sp) +/* 02379C 80022B9C 00000000 */ nop +.L80022BA0: +/* 0237A0 80022BA0 A3AF0059 */ sb $t7, 0x59($sp) +/* 0237A4 80022BA4 861901A0 */ lh $t9, 0x1a0($s0) +/* 0237A8 80022BA8 24090004 */ li $t1, 4 +/* 0237AC 80022BAC 240A00DA */ li $t2, 218 +/* 0237B0 80022BB0 A7A00062 */ sh $zero, 0x62($sp) +/* 0237B4 80022BB4 A7A00060 */ sh $zero, 0x60($sp) +/* 0237B8 80022BB8 A7A90066 */ sh $t1, 0x66($sp) +/* 0237BC 80022BBC A3AA0058 */ sb $t2, 0x58($sp) +/* 0237C0 80022BC0 00002025 */ move $a0, $zero +/* 0237C4 80022BC4 0C01867D */ jal func_800619F4 +/* 0237C8 80022BC8 A7B90064 */ sh $t9, 0x64($sp) +/* 0237CC 80022BCC 27A40058 */ addiu $a0, $sp, 0x58 +/* 0237D0 80022BD0 0C003A95 */ jal spawn_object +/* 0237D4 80022BD4 24050001 */ li $a1, 1 +/* 0237D8 80022BD8 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 +/* 0237DC 80022BDC 8D6BAEE4 */ lw $t3, %lo(gRacers)($t3) +/* 0237E0 80022BE0 3C0D8012 */ lui $t5, %hi(gRacersByPosition) # $t5, 0x8012 +/* 0237E4 80022BE4 AD620004 */ sw $v0, 4($t3) +/* 0237E8 80022BE8 8DADAEE8 */ lw $t5, %lo(gRacersByPosition)($t5) +/* 0237EC 80022BEC 3C0C8012 */ lui $t4, %hi(gRacersByPort) # $t4, 0x8012 +/* 0237F0 80022BF0 ADA20004 */ sw $v0, 4($t5) +/* 0237F4 80022BF4 8D8CAEEC */ lw $t4, %lo(gRacersByPort)($t4) +/* 0237F8 80022BF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0237FC 80022BFC 44810000 */ mtc1 $at, $f0 +/* 023800 80022C00 AD820004 */ sw $v0, 4($t4) +/* 023804 80022C04 AC40003C */ sw $zero, 0x3c($v0) +/* 023808 80022C08 3C018012 */ lui $at, %hi(gNumRacers) # $at, 0x8012 +/* 02380C 80022C0C 240E0002 */ li $t6, 2 +/* 023810 80022C10 AC2EAEF0 */ sw $t6, %lo(gNumRacers)($at) +/* 023814 80022C14 8C500064 */ lw $s0, 0x64($v0) +/* 023818 80022C18 2418000A */ li $t8, 10 +/* 02381C 80022C1C A21801D6 */ sb $t8, 0x1d6($s0) +/* 023820 80022C20 820F01D6 */ lb $t7, 0x1d6($s0) +/* 023824 80022C24 24190001 */ li $t9, 1 +/* 023828 80022C28 A2190002 */ sb $t9, 2($s0) +/* 02382C 80022C2C A20F01D7 */ sb $t7, 0x1d7($s0) +/* 023830 80022C30 8FA90054 */ lw $t1, 0x54($sp) +/* 023834 80022C34 240B00FF */ li $t3, 255 +/* 023838 80022C38 812A0059 */ lb $t2, 0x59($t1) +/* 02383C 80022C3C E6000090 */ swc1 $f0, 0x90($s0) +/* 023840 80022C40 E600008C */ swc1 $f0, 0x8c($s0) +/* 023844 80022C44 A20B01F7 */ sb $t3, 0x1f7($s0) +/* 023848 80022C48 AE000118 */ sw $zero, 0x118($s0) +/* 02384C 80022C4C A20A0003 */ sb $t2, 3($s0) +/* 023850 80022C50 8C4C004C */ lw $t4, 0x4c($v0) +/* 023854 80022C54 240D0002 */ li $t5, 2 +/* 023858 80022C58 A18D0012 */ sb $t5, 0x12($t4) +/* 02385C 80022C5C 3C048012 */ lui $a0, %hi(D_8011AE60) # $a0, 0x8012 +/* 023860 80022C60 3C058012 */ lui $a1, %hi(objCount) # $a1, 0x8012 +/* 023864 80022C64 8CA5AE5C */ lw $a1, %lo(objCount)($a1) +/* 023868 80022C68 8C84AE60 */ lw $a0, %lo(D_8011AE60)($a0) +/* 02386C 80022C6C 2407003E */ li $a3, 62 +/* 023870 80022C70 0085082A */ slt $at, $a0, $a1 +/* 023874 80022C74 10200018 */ beqz $at, .L80022CD8 +/* 023878 80022C78 00041880 */ sll $v1, $a0, 2 +/* 02387C 80022C7C 3C068012 */ lui $a2, %hi(gObjPtrList) # $a2, 0x8012 +/* 023880 80022C80 24C6AE58 */ addiu $a2, %lo(gObjPtrList) # addiu $a2, $a2, -0x51a8 +.L80022C84: +/* 023884 80022C84 8CCE0000 */ lw $t6, ($a2) +/* 023888 80022C88 24840001 */ addiu $a0, $a0, 1 +/* 02388C 80022C8C 01C3C021 */ addu $t8, $t6, $v1 +/* 023890 80022C90 8F020000 */ lw $v0, ($t8) +/* 023894 80022C94 00000000 */ nop +/* 023898 80022C98 844F0006 */ lh $t7, 6($v0) +/* 02389C 80022C9C 00000000 */ nop +/* 0238A0 80022CA0 31F98000 */ andi $t9, $t7, 0x8000 +/* 0238A4 80022CA4 1720000A */ bnez $t9, .L80022CD0 +/* 0238A8 80022CA8 0085082A */ slt $at, $a0, $a1 +/* 0238AC 80022CAC 84490048 */ lh $t1, 0x48($v0) +/* 0238B0 80022CB0 00000000 */ nop +/* 0238B4 80022CB4 14E90006 */ bne $a3, $t1, .L80022CD0 +/* 0238B8 80022CB8 0085082A */ slt $at, $a0, $a1 +/* 0238BC 80022CBC AE020154 */ sw $v0, 0x154($s0) +/* 0238C0 80022CC0 3C058012 */ lui $a1, %hi(objCount) # $a1, 0x8012 +/* 0238C4 80022CC4 8CA5AE5C */ lw $a1, %lo(objCount)($a1) +/* 0238C8 80022CC8 00000000 */ nop +/* 0238CC 80022CCC 0085082A */ slt $at, $a0, $a1 +.L80022CD0: +/* 0238D0 80022CD0 1420FFEC */ bnez $at, .L80022C84 +/* 0238D4 80022CD4 24630004 */ addiu $v1, $v1, 4 +.L80022CD8: +/* 0238D8 80022CD8 0C01BCE2 */ jal func_8006F388 +/* 0238DC 80022CDC 24040014 */ li $a0, 20 +/* 0238E0 80022CE0 3C04800E */ lui $a0, %hi(D_800DC6F0) # $a0, 0x800e +/* 0238E4 80022CE4 0C030076 */ jal transition_begin +/* 0238E8 80022CE8 2484C6F0 */ addiu $a0, %lo(D_800DC6F0) # addiu $a0, $a0, -0x3910 +.L80022CEC: +/* 0238EC 80022CEC 8FBF001C */ lw $ra, 0x1c($sp) +/* 0238F0 80022CF0 8FB00018 */ lw $s0, 0x18($sp) +/* 0238F4 80022CF4 03E00008 */ jr $ra +/* 0238F8 80022CF8 27BD0080 */ addiu $sp, $sp, 0x80 + diff --git a/asm/non_matchings/unknown_003260/_handleEvent.s b/asm/non_matchings/unknown_003260/_handleEvent.s index a1882264..8a97527d 100644 --- a/asm/non_matchings/unknown_003260/_handleEvent.s +++ b/asm/non_matchings/unknown_003260/_handleEvent.s @@ -244,8 +244,8 @@ glabel L800035C4 /* 0043D8 800037D8 46083283 */ div.s $f10, $f6, $f8 /* 0043DC 800037DC 014B0019 */ multu $t2, $t3 /* 0043E0 800037E0 31F8003F */ andi $t8, $t7, 0x3f -/* 0043E4 800037E4 3C0E8012 */ lui $t6, %hi(D_80119C28) # $t6, 0x8012 -/* 0043E8 800037E8 8DCE9C28 */ lw $t6, %lo(D_80119C28)($t6) +/* 0043E4 800037E4 3C0E8012 */ lui $t6, %hi(gSoundChannelVolume) # $t6, 0x8012 +/* 0043E8 800037E8 8DCE9C28 */ lw $t6, %lo(gSoundChannelVolume)($t6) /* 0043EC 800037EC 0018C840 */ sll $t9, $t8, 1 /* 0043F0 800037F0 01D94021 */ addu $t0, $t6, $t9 /* 0043F4 800037F4 85090000 */ lh $t1, ($t0) @@ -590,8 +590,8 @@ glabel L80003C8C /* 0048B8 80003CB8 9248000D */ lbu $t0, 0xd($s2) /* 0048BC 80003CBC 000A6040 */ sll $t4, $t2, 1 /* 0048C0 80003CC0 24013F01 */ li $at, 16129 -/* 0048C4 80003CC4 3C198012 */ lui $t9, %hi(D_80119C28) # $t9, 0x8012 -/* 0048C8 80003CC8 8F399C28 */ lw $t9, %lo(D_80119C28)($t9) +/* 0048C4 80003CC4 3C198012 */ lui $t9, %hi(gSoundChannelVolume) # $t9, 0x8012 +/* 0048C8 80003CC8 8F399C28 */ lw $t9, %lo(gSoundChannelVolume)($t9) /* 0048CC 80003CCC 00000000 */ nop /* 0048D0 80003CD0 032C5821 */ addu $t3, $t9, $t4 /* 0048D4 80003CD4 856F0000 */ lh $t7, ($t3) @@ -654,8 +654,8 @@ glabel L80003C8C /* 0049AC 80003DAC 46049183 */ div.s $f6, $f18, $f4 /* 0049B0 80003DB0 030E0019 */ multu $t8, $t6 /* 0049B4 80003DB4 332C003F */ andi $t4, $t9, 0x3f -/* 0049B8 80003DB8 3C0F8012 */ lui $t7, %hi(D_80119C28) # $t7, 0x8012 -/* 0049BC 80003DBC 8DEF9C28 */ lw $t7, %lo(D_80119C28)($t7) +/* 0049B8 80003DB8 3C0F8012 */ lui $t7, %hi(gSoundChannelVolume) # $t7, 0x8012 +/* 0049BC 80003DBC 8DEF9C28 */ lw $t7, %lo(gSoundChannelVolume)($t7) /* 0049C0 80003DC0 000C5840 */ sll $t3, $t4, 1 /* 0049C4 80003DC4 01EB6821 */ addu $t5, $t7, $t3 /* 0049C8 80003DC8 85A90000 */ lh $t1, ($t5) @@ -723,8 +723,8 @@ glabel L80003C8C /* 004AB4 80003EB4 92D90002 */ lbu $t9, 2($s6) /* 004AB8 80003EB8 24013F01 */ li $at, 16129 /* 004ABC 80003EBC 3329003F */ andi $t1, $t9, 0x3f -/* 004AC0 80003EC0 3C0A8012 */ lui $t2, %hi(D_80119C28) # $t2, 0x8012 -/* 004AC4 80003EC4 8D4A9C28 */ lw $t2, %lo(D_80119C28)($t2) +/* 004AC0 80003EC0 3C0A8012 */ lui $t2, %hi(gSoundChannelVolume) # $t2, 0x8012 +/* 004AC4 80003EC4 8D4A9C28 */ lw $t2, %lo(gSoundChannelVolume)($t2) /* 004AC8 80003EC8 00096040 */ sll $t4, $t1, 1 /* 004ACC 80003ECC 014C7821 */ addu $t7, $t2, $t4 /* 004AD0 80003ED0 85EB0000 */ lh $t3, ($t7) diff --git a/asm/non_matchings/unknown_0255E0/func_800249F0.s b/asm/non_matchings/unknown_0255E0/func_800249F0.s index c1523e64..191a1d5e 100644 --- a/asm/non_matchings/unknown_0255E0/func_800249F0.s +++ b/asm/non_matchings/unknown_0255E0/func_800249F0.s @@ -140,12 +140,12 @@ glabel func_800249F0 /* 0257F0 80024BF0 16000006 */ bnez $s0, .L80024C0C /* 0257F4 80024BF4 00000000 */ nop /* 0257F8 80024BF8 3C04800E */ lui $a0, %hi(D_800DC87C) # $a0, 0x800e -/* 0257FC 80024BFC 0C030076 */ jal func_800C01D8 +/* 0257FC 80024BFC 0C030076 */ jal transition_begin /* 025800 80024C00 2484C87C */ addiu $a0, %lo(D_800DC87C) # addiu $a0, $a0, -0x3784 /* 025804 80024C04 10000004 */ b .L80024C18 /* 025808 80024C08 8E640000 */ lw $a0, ($s3) .L80024C0C: -/* 02580C 80024C0C 0C030076 */ jal func_800C01D8 +/* 02580C 80024C0C 0C030076 */ jal transition_begin /* 025810 80024C10 2484C874 */ addiu $a0, %lo(D_800DC874) # addiu $a0, $a0, -0x378c /* 025814 80024C14 8E640000 */ lw $a0, ($s3) .L80024C18: diff --git a/asm/non_matchings/unknown_0255E0/func_8002C0C4.s b/asm/non_matchings/unknown_0255E0/func_8002C0C4.s index ad820e47..cd6fc609 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002C0C4.s +++ b/asm/non_matchings/unknown_0255E0/func_8002C0C4.s @@ -1,432 +1,432 @@ -.rdata -glabel D_800E5E38 -.asciz "ERROR!! TrackMem overflow .. %d\n" -.ascii "\0\0\0" # padding - -.text -glabel func_8002C0C4 -/* 02CCC4 8002C0C4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 02CCC8 8002C0C8 AFB2001C */ sw $s2, 0x1c($sp) -/* 02CCCC 8002C0CC 00809025 */ move $s2, $a0 -/* 02CCD0 8002C0D0 AFBF002C */ sw $ra, 0x2c($sp) -/* 02CCD4 8002C0D4 3C0400FF */ lui $a0, (0x00FF00FF >> 16) # lui $a0, 0xff -/* 02CCD8 8002C0D8 AFB50028 */ sw $s5, 0x28($sp) -/* 02CCDC 8002C0DC AFB40024 */ sw $s4, 0x24($sp) -/* 02CCE0 8002C0E0 AFB30020 */ sw $s3, 0x20($sp) -/* 02CCE4 8002C0E4 AFB10018 */ sw $s1, 0x18($sp) -/* 02CCE8 8002C0E8 AFB00014 */ sw $s0, 0x14($sp) -/* 02CCEC 8002C0EC 0C01ECDD */ jal set_texture_colour_tag -/* 02CCF0 8002C0F0 348400FF */ ori $a0, (0x00FF00FF & 0xFFFF) # ori $a0, $a0, 0xff -/* 02CCF4 8002C0F4 3C150008 */ lui $s5, (0x00082A00 >> 16) # lui $s5, 8 -/* 02CCF8 8002C0F8 36B52A00 */ ori $s5, (0x00082A00 & 0xFFFF) # ori $s5, $s5, 0x2a00 -/* 02CCFC 8002C0FC 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 02CD00 8002C100 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 02CD04 8002C104 0C01C327 */ jal allocate_from_main_pool_safe -/* 02CD08 8002C108 02A02025 */ move $a0, $s5 -/* 02CD0C 8002C10C 3C038012 */ lui $v1, %hi(D_8011D30C) # $v1, 0x8012 -/* 02CD10 8002C110 3C11800E */ lui $s1, %hi(gCurrentLevelModel) # $s1, 0x800e -/* 02CD14 8002C114 2631C918 */ addiu $s1, %lo(gCurrentLevelModel) # addiu $s1, $s1, -0x36e8 -/* 02CD18 8002C118 2463D30C */ addiu $v1, %lo(D_8011D30C) # addiu $v1, $v1, -0x2cf4 -/* 02CD1C 8002C11C 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 02CD20 8002C120 AC620000 */ sw $v0, ($v1) -/* 02CD24 8002C124 AE220000 */ sw $v0, ($s1) -/* 02CD28 8002C128 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 02CD2C 8002C12C 0C01C327 */ jal allocate_from_main_pool_safe -/* 02CD30 8002C130 240407D0 */ li $a0, 2000 -/* 02CD34 8002C134 3C018012 */ lui $at, %hi(D_8011D370) # $at, 0x8012 -/* 02CD38 8002C138 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff -/* 02CD3C 8002C13C AC22D370 */ sw $v0, %lo(D_8011D370)($at) -/* 02CD40 8002C140 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 02CD44 8002C144 0C01C327 */ jal allocate_from_main_pool_safe -/* 02CD48 8002C148 240401F4 */ li $a0, 500 -/* 02CD4C 8002C14C 3C018012 */ lui $at, %hi(D_8011D374) # $at, 0x8012 -/* 02CD50 8002C150 AC22D374 */ sw $v0, %lo(D_8011D374)($at) -/* 02CD54 8002C154 3C018012 */ lui $at, %hi(D_8011D378) # $at, 0x8012 -/* 02CD58 8002C158 AC20D378 */ sw $zero, %lo(D_8011D378)($at) -/* 02CD5C 8002C15C 0C01DB16 */ jal load_asset_section_from_rom -/* 02CD60 8002C160 2404001A */ li $a0, 26 -/* 02CD64 8002C164 3C148012 */ lui $s4, %hi(D_8011D310) # $s4, 0x8012 -/* 02CD68 8002C168 2694D310 */ addiu $s4, %lo(D_8011D310) # addiu $s4, $s4, -0x2cf0 -/* 02CD6C 8002C16C AE820000 */ sw $v0, ($s4) -/* 02CD70 8002C170 8C4F0000 */ lw $t7, ($v0) -/* 02CD74 8002C174 2403FFFF */ li $v1, -1 -/* 02CD78 8002C178 00006025 */ move $t4, $zero -/* 02CD7C 8002C17C 106F0005 */ beq $v1, $t7, .L8002C194 -/* 02CD80 8002C180 00404025 */ move $t0, $v0 -.L8002C184: -/* 02CD84 8002C184 8C580004 */ lw $t8, 4($v0) -/* 02CD88 8002C188 258C0001 */ addiu $t4, $t4, 1 -/* 02CD8C 8002C18C 1478FFFD */ bne $v1, $t8, .L8002C184 -/* 02CD90 8002C190 24420004 */ addiu $v0, $v0, 4 -.L8002C194: -/* 02CD94 8002C194 258CFFFF */ addiu $t4, $t4, -1 -/* 02CD98 8002C198 024C082A */ slt $at, $s2, $t4 -/* 02CD9C 8002C19C 14200002 */ bnez $at, .L8002C1A8 -/* 02CDA0 8002C1A0 2404001B */ li $a0, 27 -/* 02CDA4 8002C1A4 00009025 */ move $s2, $zero -.L8002C1A8: -/* 02CDA8 8002C1A8 0012C880 */ sll $t9, $s2, 2 -/* 02CDAC 8002C1AC 01191021 */ addu $v0, $t0, $t9 -/* 02CDB0 8002C1B0 8C460000 */ lw $a2, ($v0) -/* 02CDB4 8002C1B4 8C4D0004 */ lw $t5, 4($v0) -/* 02CDB8 8002C1B8 8E300000 */ lw $s0, ($s1) -/* 02CDBC 8002C1BC 01A69823 */ subu $s3, $t5, $a2 -/* 02CDC0 8002C1C0 02157021 */ addu $t6, $s0, $s5 -/* 02CDC4 8002C1C4 01D38023 */ subu $s0, $t6, $s3 -/* 02CDC8 8002C1C8 06010004 */ bgez $s0, .L8002C1DC -/* 02CDCC 8002C1CC 320F000F */ andi $t7, $s0, 0xf -/* 02CDD0 8002C1D0 11E00002 */ beqz $t7, .L8002C1DC -/* 02CDD4 8002C1D4 00000000 */ nop -/* 02CDD8 8002C1D8 25EFFFF0 */ addiu $t7, $t7, -0x10 -.L8002C1DC: -/* 02CDDC 8002C1DC 020F8023 */ subu $s0, $s0, $t7 -/* 02CDE0 8002C1E0 02002825 */ move $a1, $s0 -/* 02CDE4 8002C1E4 0C01DB9A */ jal load_asset_to_address -/* 02CDE8 8002C1E8 02603825 */ move $a3, $s3 -/* 02CDEC 8002C1EC 8E250000 */ lw $a1, ($s1) -/* 02CDF0 8002C1F0 0C031886 */ jal gzip_inflate -/* 02CDF4 8002C1F4 02002025 */ move $a0, $s0 -/* 02CDF8 8002C1F8 8E840000 */ lw $a0, ($s4) -/* 02CDFC 8002C1FC 0C01C450 */ jal free_from_memory_pool -/* 02CE00 8002C200 00000000 */ nop -/* 02CE04 8002C204 8E320000 */ lw $s2, ($s1) -/* 02CE08 8002C208 00008025 */ move $s0, $zero -/* 02CE0C 8002C20C 8E580000 */ lw $t8, ($s2) -/* 02CE10 8002C210 02403025 */ move $a2, $s2 -/* 02CE14 8002C214 0312C821 */ addu $t9, $t8, $s2 -/* 02CE18 8002C218 AE590000 */ sw $t9, ($s2) -/* 02CE1C 8002C21C 8E320000 */ lw $s2, ($s1) -/* 02CE20 8002C220 00000000 */ nop -/* 02CE24 8002C224 8E4D0004 */ lw $t5, 4($s2) -/* 02CE28 8002C228 00000000 */ nop -/* 02CE2C 8002C22C 01A67021 */ addu $t6, $t5, $a2 -/* 02CE30 8002C230 AE4E0004 */ sw $t6, 4($s2) -/* 02CE34 8002C234 8E320000 */ lw $s2, ($s1) -/* 02CE38 8002C238 00000000 */ nop -/* 02CE3C 8002C23C 8E4F0008 */ lw $t7, 8($s2) -/* 02CE40 8002C240 00000000 */ nop -/* 02CE44 8002C244 01E6C021 */ addu $t8, $t7, $a2 -/* 02CE48 8002C248 AE580008 */ sw $t8, 8($s2) -/* 02CE4C 8002C24C 8E320000 */ lw $s2, ($s1) -/* 02CE50 8002C250 00000000 */ nop -/* 02CE54 8002C254 8E59000C */ lw $t9, 0xc($s2) -/* 02CE58 8002C258 00000000 */ nop -/* 02CE5C 8002C25C 03266821 */ addu $t5, $t9, $a2 -/* 02CE60 8002C260 AE4D000C */ sw $t5, 0xc($s2) -/* 02CE64 8002C264 8E320000 */ lw $s2, ($s1) -/* 02CE68 8002C268 00000000 */ nop -/* 02CE6C 8002C26C 8E4E0010 */ lw $t6, 0x10($s2) -/* 02CE70 8002C270 00000000 */ nop -/* 02CE74 8002C274 01C67821 */ addu $t7, $t6, $a2 -/* 02CE78 8002C278 AE4F0010 */ sw $t7, 0x10($s2) -/* 02CE7C 8002C27C 8E320000 */ lw $s2, ($s1) -/* 02CE80 8002C280 00000000 */ nop -/* 02CE84 8002C284 8E580014 */ lw $t8, 0x14($s2) -/* 02CE88 8002C288 00000000 */ nop -/* 02CE8C 8002C28C 0306C821 */ addu $t9, $t8, $a2 -/* 02CE90 8002C290 AE590014 */ sw $t9, 0x14($s2) -/* 02CE94 8002C294 8E320000 */ lw $s2, ($s1) -/* 02CE98 8002C298 00000000 */ nop -/* 02CE9C 8002C29C 8643001A */ lh $v1, 0x1a($s2) -/* 02CEA0 8002C2A0 00000000 */ nop -/* 02CEA4 8002C2A4 1860002B */ blez $v1, .L8002C354 -/* 02CEA8 8002C2A8 00009825 */ move $s3, $zero -.L8002C2AC: -/* 02CEAC 8002C2AC 8E4D0004 */ lw $t5, 4($s2) -/* 02CEB0 8002C2B0 26100001 */ addiu $s0, $s0, 1 -/* 02CEB4 8002C2B4 01B31021 */ addu $v0, $t5, $s3 -/* 02CEB8 8002C2B8 8C4E0000 */ lw $t6, ($v0) -/* 02CEBC 8002C2BC 00000000 */ nop -/* 02CEC0 8002C2C0 01C67821 */ addu $t7, $t6, $a2 -/* 02CEC4 8002C2C4 AC4F0000 */ sw $t7, ($v0) -/* 02CEC8 8002C2C8 8E380000 */ lw $t8, ($s1) -/* 02CECC 8002C2CC 00000000 */ nop -/* 02CED0 8002C2D0 8F190004 */ lw $t9, 4($t8) -/* 02CED4 8002C2D4 00000000 */ nop -/* 02CED8 8002C2D8 03331021 */ addu $v0, $t9, $s3 -/* 02CEDC 8002C2DC 8C4D0004 */ lw $t5, 4($v0) -/* 02CEE0 8002C2E0 00000000 */ nop -/* 02CEE4 8002C2E4 01A67021 */ addu $t6, $t5, $a2 -/* 02CEE8 8002C2E8 AC4E0004 */ sw $t6, 4($v0) -/* 02CEEC 8002C2EC 8E2F0000 */ lw $t7, ($s1) -/* 02CEF0 8002C2F0 00000000 */ nop -/* 02CEF4 8002C2F4 8DF80004 */ lw $t8, 4($t7) -/* 02CEF8 8002C2F8 00000000 */ nop -/* 02CEFC 8002C2FC 03131021 */ addu $v0, $t8, $s3 -/* 02CF00 8002C300 8C59000C */ lw $t9, 0xc($v0) -/* 02CF04 8002C304 00000000 */ nop -/* 02CF08 8002C308 03266821 */ addu $t5, $t9, $a2 -/* 02CF0C 8002C30C AC4D000C */ sw $t5, 0xc($v0) -/* 02CF10 8002C310 8E2E0000 */ lw $t6, ($s1) -/* 02CF14 8002C314 00000000 */ nop -/* 02CF18 8002C318 8DCF0004 */ lw $t7, 4($t6) -/* 02CF1C 8002C31C 00000000 */ nop -/* 02CF20 8002C320 01F31021 */ addu $v0, $t7, $s3 -/* 02CF24 8002C324 8C580014 */ lw $t8, 0x14($v0) -/* 02CF28 8002C328 26730044 */ addiu $s3, $s3, 0x44 -/* 02CF2C 8002C32C 0306C821 */ addu $t9, $t8, $a2 -/* 02CF30 8002C330 AC590014 */ sw $t9, 0x14($v0) -/* 02CF34 8002C334 8E320000 */ lw $s2, ($s1) -/* 02CF38 8002C338 00000000 */ nop -/* 02CF3C 8002C33C 8643001A */ lh $v1, 0x1a($s2) -/* 02CF40 8002C340 00000000 */ nop -/* 02CF44 8002C344 0203082A */ slt $at, $s0, $v1 -/* 02CF48 8002C348 1420FFD8 */ bnez $at, .L8002C2AC -/* 02CF4C 8002C34C 00000000 */ nop -/* 02CF50 8002C350 00008025 */ move $s0, $zero -.L8002C354: -/* 02CF54 8002C354 864D0018 */ lh $t5, 0x18($s2) -/* 02CF58 8002C358 00009825 */ move $s3, $zero -/* 02CF5C 8002C35C 19A00018 */ blez $t5, .L8002C3C0 -/* 02CF60 8002C360 00000000 */ nop -.L8002C364: -/* 02CF64 8002C364 8E4E0000 */ lw $t6, ($s2) -/* 02CF68 8002C368 00000000 */ nop -/* 02CF6C 8002C36C 01D37821 */ addu $t7, $t6, $s3 -/* 02CF70 8002C370 8DE40000 */ lw $a0, ($t7) -/* 02CF74 8002C374 00000000 */ nop -/* 02CF78 8002C378 34988000 */ ori $t8, $a0, 0x8000 -/* 02CF7C 8002C37C 0C01EB9D */ jal load_texture -/* 02CF80 8002C380 03002025 */ move $a0, $t8 -/* 02CF84 8002C384 8E390000 */ lw $t9, ($s1) -/* 02CF88 8002C388 26100001 */ addiu $s0, $s0, 1 -/* 02CF8C 8002C38C 8F2D0000 */ lw $t5, ($t9) -/* 02CF90 8002C390 00000000 */ nop -/* 02CF94 8002C394 01B37021 */ addu $t6, $t5, $s3 -/* 02CF98 8002C398 ADC20000 */ sw $v0, ($t6) -/* 02CF9C 8002C39C 8E320000 */ lw $s2, ($s1) -/* 02CFA0 8002C3A0 26730008 */ addiu $s3, $s3, 8 -/* 02CFA4 8002C3A4 864F0018 */ lh $t7, 0x18($s2) -/* 02CFA8 8002C3A8 00000000 */ nop -/* 02CFAC 8002C3AC 020F082A */ slt $at, $s0, $t7 -/* 02CFB0 8002C3B0 1420FFEC */ bnez $at, .L8002C364 -/* 02CFB4 8002C3B4 00000000 */ nop -/* 02CFB8 8002C3B8 8643001A */ lh $v1, 0x1a($s2) -/* 02CFBC 8002C3BC 00008025 */ move $s0, $zero -.L8002C3C0: -/* 02CFC0 8002C3C0 8E580048 */ lw $t8, 0x48($s2) -/* 02CFC4 8002C3C4 02401025 */ move $v0, $s2 -/* 02CFC8 8002C3C8 18600048 */ blez $v1, .L8002C4EC -/* 02CFCC 8002C3CC 0258A021 */ addu $s4, $s2, $t8 -/* 02CFD0 8002C3D0 00009825 */ move $s3, $zero -/* 02CFD4 8002C3D4 0000A825 */ move $s5, $zero -.L8002C3D8: -/* 02CFD8 8002C3D8 8E590004 */ lw $t9, 4($s2) -/* 02CFDC 8002C3DC 00000000 */ nop -/* 02CFE0 8002C3E0 03336821 */ addu $t5, $t9, $s3 -/* 02CFE4 8002C3E4 ADB40010 */ sw $s4, 0x10($t5) -/* 02CFE8 8002C3E8 8E2E0000 */ lw $t6, ($s1) -/* 02CFEC 8002C3EC 00000000 */ nop -/* 02CFF0 8002C3F0 8DCF0004 */ lw $t7, 4($t6) -/* 02CFF4 8002C3F4 00000000 */ nop -/* 02CFF8 8002C3F8 01F3C021 */ addu $t8, $t7, $s3 -/* 02CFFC 8002C3FC 8719001E */ lh $t9, 0x1e($t8) -/* 02D000 8002C400 00000000 */ nop -/* 02D004 8002C404 00196840 */ sll $t5, $t9, 1 -/* 02D008 8002C408 0C01C614 */ jal align16 -/* 02D00C 8002C40C 01B42021 */ addu $a0, $t5, $s4 -/* 02D010 8002C410 8E2E0000 */ lw $t6, ($s1) -/* 02D014 8002C414 0040A025 */ move $s4, $v0 -/* 02D018 8002C418 8DCF0004 */ lw $t7, 4($t6) -/* 02D01C 8002C41C 00000000 */ nop -/* 02D020 8002C420 01F3C021 */ addu $t8, $t7, $s3 -/* 02D024 8002C424 AF020018 */ sw $v0, 0x18($t8) -/* 02D028 8002C428 8E390000 */ lw $t9, ($s1) -/* 02D02C 8002C42C 00000000 */ nop -/* 02D030 8002C430 8F2D0004 */ lw $t5, 4($t9) -/* 02D034 8002C434 0C00B30C */ jal func_8002CC30 -/* 02D038 8002C438 01B32021 */ addu $a0, $t5, $s3 -/* 02D03C 8002C43C 8E320000 */ lw $s2, ($s1) -/* 02D040 8002C440 0054A021 */ addu $s4, $v0, $s4 -/* 02D044 8002C444 8E4E0004 */ lw $t6, 4($s2) -/* 02D048 8002C448 8E4F0008 */ lw $t7, 8($s2) -/* 02D04C 8002C44C 02003025 */ move $a2, $s0 -/* 02D050 8002C450 01D32021 */ addu $a0, $t6, $s3 -/* 02D054 8002C454 0C00B255 */ jal func_8002C954 -/* 02D058 8002C458 01F52821 */ addu $a1, $t7, $s5 -/* 02D05C 8002C45C 8E380000 */ lw $t8, ($s1) -/* 02D060 8002C460 00000000 */ nop -/* 02D064 8002C464 8F190004 */ lw $t9, 4($t8) -/* 02D068 8002C468 00000000 */ nop -/* 02D06C 8002C46C 03336821 */ addu $t5, $t9, $s3 -/* 02D070 8002C470 A5A00030 */ sh $zero, 0x30($t5) -/* 02D074 8002C474 8E2E0000 */ lw $t6, ($s1) -/* 02D078 8002C478 00000000 */ nop -/* 02D07C 8002C47C 8DCF0004 */ lw $t7, 4($t6) -/* 02D080 8002C480 00000000 */ nop -/* 02D084 8002C484 01F3C021 */ addu $t8, $t7, $s3 -/* 02D088 8002C488 AF140034 */ sw $s4, 0x34($t8) -/* 02D08C 8002C48C 8E390000 */ lw $t9, ($s1) -/* 02D090 8002C490 00000000 */ nop -/* 02D094 8002C494 8F2D0004 */ lw $t5, 4($t9) -/* 02D098 8002C498 0C00B1C7 */ jal func_8002C71C -/* 02D09C 8002C49C 01B32021 */ addu $a0, $t5, $s3 -/* 02D0A0 8002C4A0 8E2E0000 */ lw $t6, ($s1) -/* 02D0A4 8002C4A4 00000000 */ nop -/* 02D0A8 8002C4A8 8DCF0004 */ lw $t7, 4($t6) -/* 02D0AC 8002C4AC 00000000 */ nop -/* 02D0B0 8002C4B0 01F3C021 */ addu $t8, $t7, $s3 -/* 02D0B4 8002C4B4 87190032 */ lh $t9, 0x32($t8) -/* 02D0B8 8002C4B8 00000000 */ nop -/* 02D0BC 8002C4BC 00196840 */ sll $t5, $t9, 1 -/* 02D0C0 8002C4C0 0C01C614 */ jal align16 -/* 02D0C4 8002C4C4 01B42021 */ addu $a0, $t5, $s4 -/* 02D0C8 8002C4C8 8E320000 */ lw $s2, ($s1) -/* 02D0CC 8002C4CC 26100001 */ addiu $s0, $s0, 1 -/* 02D0D0 8002C4D0 864E001A */ lh $t6, 0x1a($s2) -/* 02D0D4 8002C4D4 26730044 */ addiu $s3, $s3, 0x44 -/* 02D0D8 8002C4D8 020E082A */ slt $at, $s0, $t6 -/* 02D0DC 8002C4DC 26B5000C */ addiu $s5, $s5, 0xc -/* 02D0E0 8002C4E0 1420FFBD */ bnez $at, .L8002C3D8 -/* 02D0E4 8002C4E4 0040A025 */ move $s4, $v0 -/* 02D0E8 8002C4E8 02401025 */ move $v0, $s2 -.L8002C4EC: -/* 02D0EC 8002C4EC 3C010008 */ lui $at, (0x00082A01 >> 16) # lui $at, 8 -/* 02D0F0 8002C4F0 02829823 */ subu $s3, $s4, $v0 -/* 02D0F4 8002C4F4 34212A01 */ ori $at, (0x00082A01 & 0xFFFF) # ori $at, $at, 0x2a01 -/* 02D0F8 8002C4F8 0261082A */ slt $at, $s3, $at -/* 02D0FC 8002C4FC 14200004 */ bnez $at, .L8002C510 -/* 02D100 8002C500 3C04800E */ lui $a0, %hi(D_800E5E38) # $a0, 0x800e -/* 02D104 8002C504 24845E38 */ addiu $a0, %lo(D_800E5E38) # addiu $a0, $a0, 0x5e38 -/* 02D108 8002C508 0C032755 */ jal rmonPrintf -/* 02D10C 8002C50C 02602825 */ move $a1, $s3 -.L8002C510: -/* 02D110 8002C510 0C01C42C */ jal set_free_queue_state -/* 02D114 8002C514 00002025 */ move $a0, $zero -/* 02D118 8002C518 3C048012 */ lui $a0, %hi(D_8011D30C) # $a0, 0x8012 -/* 02D11C 8002C51C 8C84D30C */ lw $a0, %lo(D_8011D30C)($a0) -/* 02D120 8002C520 0C01C450 */ jal free_from_memory_pool -/* 02D124 8002C524 00000000 */ nop -/* 02D128 8002C528 3C058012 */ lui $a1, %hi(D_8011D30C) # $a1, 0x8012 -/* 02D12C 8002C52C 8CA5D30C */ lw $a1, %lo(D_8011D30C)($a1) -/* 02D130 8002C530 3C06FFFF */ lui $a2, (0xFFFF00FF >> 16) # lui $a2, 0xffff -/* 02D134 8002C534 34C600FF */ ori $a2, (0xFFFF00FF & 0xFFFF) # ori $a2, $a2, 0xff -/* 02D138 8002C538 0C01C3BE */ jal allocate_at_address_in_main_pool -/* 02D13C 8002C53C 02602025 */ move $a0, $s3 -/* 02D140 8002C540 0C01C42C */ jal set_free_queue_state -/* 02D144 8002C544 24040002 */ li $a0, 2 -/* 02D148 8002C548 8E240000 */ lw $a0, ($s1) -/* 02D14C 8002C54C 0C02A0ED */ jal func_800A83B4 -/* 02D150 8002C550 00000000 */ nop -/* 02D154 8002C554 8E320000 */ lw $s2, ($s1) -/* 02D158 8002C558 00006025 */ move $t4, $zero -/* 02D15C 8002C55C 8643001A */ lh $v1, 0x1a($s2) -/* 02D160 8002C560 00002825 */ move $a1, $zero -/* 02D164 8002C564 18600061 */ blez $v1, .L8002C6EC -/* 02D168 8002C568 3C0B0800 */ lui $t3, 0x800 -/* 02D16C 8002C56C 8E460004 */ lw $a2, 4($s2) -/* 02D170 8002C570 240A0001 */ li $t2, 1 -/* 02D174 8002C574 24070080 */ li $a3, 128 -.L8002C578: -/* 02D178 8002C578 84C20020 */ lh $v0, 0x20($a2) -/* 02D17C 8002C57C 258C0001 */ addiu $t4, $t4, 1 -/* 02D180 8002C580 18400056 */ blez $v0, .L8002C6DC -/* 02D184 8002C584 00009825 */ move $s3, $zero -/* 02D188 8002C588 8CC4000C */ lw $a0, 0xc($a2) -/* 02D18C 8002C58C 00004025 */ move $t0, $zero -.L8002C590: -/* 02D190 8002C590 84900002 */ lh $s0, 2($a0) -/* 02D194 8002C594 8489000E */ lh $t1, 0xe($a0) -/* 02D198 8002C598 26730001 */ addiu $s3, $s3, 1 -/* 02D19C 8002C59C 0209082A */ slt $at, $s0, $t1 -/* 02D1A0 8002C5A0 10200049 */ beqz $at, .L8002C6C8 -/* 02D1A4 8002C5A4 0262082A */ slt $at, $s3, $v0 -/* 02D1A8 8002C5A8 00101080 */ sll $v0, $s0, 2 -/* 02D1AC 8002C5AC 00501021 */ addu $v0, $v0, $s0 -/* 02D1B0 8002C5B0 00021040 */ sll $v0, $v0, 1 -.L8002C5B4: -/* 02D1B4 8002C5B4 8CCF0000 */ lw $t7, ($a2) -/* 02D1B8 8002C5B8 26100001 */ addiu $s0, $s0, 1 -/* 02D1BC 8002C5BC 01E21821 */ addu $v1, $t7, $v0 -/* 02D1C0 8002C5C0 90780006 */ lbu $t8, 6($v1) -/* 02D1C4 8002C5C4 00000000 */ nop -/* 02D1C8 8002C5C8 1558003A */ bne $t2, $t8, .L8002C6B4 -/* 02D1CC 8002C5CC 0209082A */ slt $at, $s0, $t1 -/* 02D1D0 8002C5D0 90790007 */ lbu $t9, 7($v1) -/* 02D1D4 8002C5D4 00000000 */ nop -/* 02D1D8 8002C5D8 15590036 */ bne $t2, $t9, .L8002C6B4 -/* 02D1DC 8002C5DC 0209082A */ slt $at, $s0, $t1 -/* 02D1E0 8002C5E0 906D0008 */ lbu $t5, 8($v1) -/* 02D1E4 8002C5E4 00000000 */ nop -/* 02D1E8 8002C5E8 A06D0009 */ sb $t5, 9($v1) -/* 02D1EC 8002C5EC 8E2E0000 */ lw $t6, ($s1) -/* 02D1F0 8002C5F0 00000000 */ nop -/* 02D1F4 8002C5F4 8DCF0004 */ lw $t7, 4($t6) -/* 02D1F8 8002C5F8 00000000 */ nop -/* 02D1FC 8002C5FC 01E5C021 */ addu $t8, $t7, $a1 -/* 02D200 8002C600 8F190000 */ lw $t9, ($t8) -/* 02D204 8002C604 00000000 */ nop -/* 02D208 8002C608 03226821 */ addu $t5, $t9, $v0 -/* 02D20C 8002C60C A1A70006 */ sb $a3, 6($t5) -/* 02D210 8002C610 8E2E0000 */ lw $t6, ($s1) -/* 02D214 8002C614 00000000 */ nop -/* 02D218 8002C618 8DCF0004 */ lw $t7, 4($t6) -/* 02D21C 8002C61C 00000000 */ nop -/* 02D220 8002C620 01E5C021 */ addu $t8, $t7, $a1 -/* 02D224 8002C624 8F190000 */ lw $t9, ($t8) -/* 02D228 8002C628 00000000 */ nop -/* 02D22C 8002C62C 03226821 */ addu $t5, $t9, $v0 -/* 02D230 8002C630 A1A70007 */ sb $a3, 7($t5) -/* 02D234 8002C634 8E2E0000 */ lw $t6, ($s1) -/* 02D238 8002C638 00000000 */ nop -/* 02D23C 8002C63C 8DCF0004 */ lw $t7, 4($t6) -/* 02D240 8002C640 00000000 */ nop -/* 02D244 8002C644 01E5C021 */ addu $t8, $t7, $a1 -/* 02D248 8002C648 8F190000 */ lw $t9, ($t8) -/* 02D24C 8002C64C 00000000 */ nop -/* 02D250 8002C650 03226821 */ addu $t5, $t9, $v0 -/* 02D254 8002C654 A1A70008 */ sb $a3, 8($t5) -/* 02D258 8002C658 8E2E0000 */ lw $t6, ($s1) -/* 02D25C 8002C65C 00000000 */ nop -/* 02D260 8002C660 8DCF0004 */ lw $t7, 4($t6) -/* 02D264 8002C664 00000000 */ nop -/* 02D268 8002C668 01E5C021 */ addu $t8, $t7, $a1 -/* 02D26C 8002C66C 8F19000C */ lw $t9, 0xc($t8) -/* 02D270 8002C670 00000000 */ nop -/* 02D274 8002C674 03282021 */ addu $a0, $t9, $t0 -/* 02D278 8002C678 8C8D0008 */ lw $t5, 8($a0) -/* 02D27C 8002C67C 00000000 */ nop -/* 02D280 8002C680 01AB7025 */ or $t6, $t5, $t3 -/* 02D284 8002C684 AC8E0008 */ sw $t6, 8($a0) -/* 02D288 8002C688 8E320000 */ lw $s2, ($s1) -/* 02D28C 8002C68C 00000000 */ nop -/* 02D290 8002C690 8E4F0004 */ lw $t7, 4($s2) -/* 02D294 8002C694 00000000 */ nop -/* 02D298 8002C698 01E53021 */ addu $a2, $t7, $a1 -/* 02D29C 8002C69C 8CD8000C */ lw $t8, 0xc($a2) -/* 02D2A0 8002C6A0 00000000 */ nop -/* 02D2A4 8002C6A4 03082021 */ addu $a0, $t8, $t0 -/* 02D2A8 8002C6A8 8489000E */ lh $t1, 0xe($a0) -/* 02D2AC 8002C6AC 00000000 */ nop -/* 02D2B0 8002C6B0 0209082A */ slt $at, $s0, $t1 -.L8002C6B4: -/* 02D2B4 8002C6B4 1420FFBF */ bnez $at, .L8002C5B4 -/* 02D2B8 8002C6B8 2442000A */ addiu $v0, $v0, 0xa -/* 02D2BC 8002C6BC 84C20020 */ lh $v0, 0x20($a2) -/* 02D2C0 8002C6C0 00000000 */ nop -/* 02D2C4 8002C6C4 0262082A */ slt $at, $s3, $v0 -.L8002C6C8: -/* 02D2C8 8002C6C8 2508000C */ addiu $t0, $t0, 0xc -/* 02D2CC 8002C6CC 1420FFB0 */ bnez $at, .L8002C590 -/* 02D2D0 8002C6D0 2484000C */ addiu $a0, $a0, 0xc -/* 02D2D4 8002C6D4 8643001A */ lh $v1, 0x1a($s2) -/* 02D2D8 8002C6D8 00000000 */ nop -.L8002C6DC: -/* 02D2DC 8002C6DC 0183082A */ slt $at, $t4, $v1 -/* 02D2E0 8002C6E0 24A50044 */ addiu $a1, $a1, 0x44 -/* 02D2E4 8002C6E4 1420FFA4 */ bnez $at, .L8002C578 -/* 02D2E8 8002C6E8 24C60044 */ addiu $a2, $a2, 0x44 -.L8002C6EC: -/* 02D2EC 8002C6EC 3C04FF00 */ lui $a0, (0xFF00FFFF >> 16) # lui $a0, 0xff00 -/* 02D2F0 8002C6F0 0C01ECDD */ jal set_texture_colour_tag -/* 02D2F4 8002C6F4 3484FFFF */ ori $a0, (0xFF00FFFF & 0xFFFF) # ori $a0, $a0, 0xffff -/* 02D2F8 8002C6F8 8FBF002C */ lw $ra, 0x2c($sp) -/* 02D2FC 8002C6FC 8FB00014 */ lw $s0, 0x14($sp) -/* 02D300 8002C700 8FB10018 */ lw $s1, 0x18($sp) -/* 02D304 8002C704 8FB2001C */ lw $s2, 0x1c($sp) -/* 02D308 8002C708 8FB30020 */ lw $s3, 0x20($sp) -/* 02D30C 8002C70C 8FB40024 */ lw $s4, 0x24($sp) -/* 02D310 8002C710 8FB50028 */ lw $s5, 0x28($sp) -/* 02D314 8002C714 03E00008 */ jr $ra -/* 02D318 8002C718 27BD0030 */ addiu $sp, $sp, 0x30 - +.rdata +glabel D_800E5E38 +.asciz "ERROR!! TrackMem overflow .. %d\n" +.ascii "\0\0\0" # padding + +.text +glabel func_8002C0C4 +/* 02CCC4 8002C0C4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 02CCC8 8002C0C8 AFB2001C */ sw $s2, 0x1c($sp) +/* 02CCCC 8002C0CC 00809025 */ move $s2, $a0 +/* 02CCD0 8002C0D0 AFBF002C */ sw $ra, 0x2c($sp) +/* 02CCD4 8002C0D4 3C0400FF */ lui $a0, (0x00FF00FF >> 16) # lui $a0, 0xff +/* 02CCD8 8002C0D8 AFB50028 */ sw $s5, 0x28($sp) +/* 02CCDC 8002C0DC AFB40024 */ sw $s4, 0x24($sp) +/* 02CCE0 8002C0E0 AFB30020 */ sw $s3, 0x20($sp) +/* 02CCE4 8002C0E4 AFB10018 */ sw $s1, 0x18($sp) +/* 02CCE8 8002C0E8 AFB00014 */ sw $s0, 0x14($sp) +/* 02CCEC 8002C0EC 0C01ECDD */ jal set_texture_colour_tag +/* 02CCF0 8002C0F0 348400FF */ ori $a0, (0x00FF00FF & 0xFFFF) # ori $a0, $a0, 0xff +/* 02CCF4 8002C0F4 3C150008 */ lui $s5, (0x00082A00 >> 16) # lui $s5, 8 +/* 02CCF8 8002C0F8 36B52A00 */ ori $s5, (0x00082A00 & 0xFFFF) # ori $s5, $s5, 0x2a00 +/* 02CCFC 8002C0FC 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff +/* 02CD00 8002C100 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff +/* 02CD04 8002C104 0C01C327 */ jal allocate_from_main_pool_safe +/* 02CD08 8002C108 02A02025 */ move $a0, $s5 +/* 02CD0C 8002C10C 3C038012 */ lui $v1, %hi(D_8011D30C) # $v1, 0x8012 +/* 02CD10 8002C110 3C11800E */ lui $s1, %hi(gCurrentLevelModel) # $s1, 0x800e +/* 02CD14 8002C114 2631C918 */ addiu $s1, %lo(gCurrentLevelModel) # addiu $s1, $s1, -0x36e8 +/* 02CD18 8002C118 2463D30C */ addiu $v1, %lo(D_8011D30C) # addiu $v1, $v1, -0x2cf4 +/* 02CD1C 8002C11C 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff +/* 02CD20 8002C120 AC620000 */ sw $v0, ($v1) +/* 02CD24 8002C124 AE220000 */ sw $v0, ($s1) +/* 02CD28 8002C128 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff +/* 02CD2C 8002C12C 0C01C327 */ jal allocate_from_main_pool_safe +/* 02CD30 8002C130 240407D0 */ li $a0, 2000 +/* 02CD34 8002C134 3C018012 */ lui $at, %hi(D_8011D370) # $at, 0x8012 +/* 02CD38 8002C138 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff +/* 02CD3C 8002C13C AC22D370 */ sw $v0, %lo(D_8011D370)($at) +/* 02CD40 8002C140 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff +/* 02CD44 8002C144 0C01C327 */ jal allocate_from_main_pool_safe +/* 02CD48 8002C148 240401F4 */ li $a0, 500 +/* 02CD4C 8002C14C 3C018012 */ lui $at, %hi(D_8011D374) # $at, 0x8012 +/* 02CD50 8002C150 AC22D374 */ sw $v0, %lo(D_8011D374)($at) +/* 02CD54 8002C154 3C018012 */ lui $at, %hi(D_8011D378) # $at, 0x8012 +/* 02CD58 8002C158 AC20D378 */ sw $zero, %lo(D_8011D378)($at) +/* 02CD5C 8002C15C 0C01DB16 */ jal load_asset_section_from_rom +/* 02CD60 8002C160 2404001A */ li $a0, 26 +/* 02CD64 8002C164 3C148012 */ lui $s4, %hi(D_8011D310) # $s4, 0x8012 +/* 02CD68 8002C168 2694D310 */ addiu $s4, %lo(D_8011D310) # addiu $s4, $s4, -0x2cf0 +/* 02CD6C 8002C16C AE820000 */ sw $v0, ($s4) +/* 02CD70 8002C170 8C4F0000 */ lw $t7, ($v0) +/* 02CD74 8002C174 2403FFFF */ li $v1, -1 +/* 02CD78 8002C178 00006025 */ move $t4, $zero +/* 02CD7C 8002C17C 106F0005 */ beq $v1, $t7, .L8002C194 +/* 02CD80 8002C180 00404025 */ move $t0, $v0 +.L8002C184: +/* 02CD84 8002C184 8C580004 */ lw $t8, 4($v0) +/* 02CD88 8002C188 258C0001 */ addiu $t4, $t4, 1 +/* 02CD8C 8002C18C 1478FFFD */ bne $v1, $t8, .L8002C184 +/* 02CD90 8002C190 24420004 */ addiu $v0, $v0, 4 +.L8002C194: +/* 02CD94 8002C194 258CFFFF */ addiu $t4, $t4, -1 +/* 02CD98 8002C198 024C082A */ slt $at, $s2, $t4 +/* 02CD9C 8002C19C 14200002 */ bnez $at, .L8002C1A8 +/* 02CDA0 8002C1A0 2404001B */ li $a0, 27 +/* 02CDA4 8002C1A4 00009025 */ move $s2, $zero +.L8002C1A8: +/* 02CDA8 8002C1A8 0012C880 */ sll $t9, $s2, 2 +/* 02CDAC 8002C1AC 01191021 */ addu $v0, $t0, $t9 +/* 02CDB0 8002C1B0 8C460000 */ lw $a2, ($v0) +/* 02CDB4 8002C1B4 8C4D0004 */ lw $t5, 4($v0) +/* 02CDB8 8002C1B8 8E300000 */ lw $s0, ($s1) +/* 02CDBC 8002C1BC 01A69823 */ subu $s3, $t5, $a2 +/* 02CDC0 8002C1C0 02157021 */ addu $t6, $s0, $s5 +/* 02CDC4 8002C1C4 01D38023 */ subu $s0, $t6, $s3 +/* 02CDC8 8002C1C8 06010004 */ bgez $s0, .L8002C1DC +/* 02CDCC 8002C1CC 320F000F */ andi $t7, $s0, 0xf +/* 02CDD0 8002C1D0 11E00002 */ beqz $t7, .L8002C1DC +/* 02CDD4 8002C1D4 00000000 */ nop +/* 02CDD8 8002C1D8 25EFFFF0 */ addiu $t7, $t7, -0x10 +.L8002C1DC: +/* 02CDDC 8002C1DC 020F8023 */ subu $s0, $s0, $t7 +/* 02CDE0 8002C1E0 02002825 */ move $a1, $s0 +/* 02CDE4 8002C1E4 0C01DB9A */ jal load_asset_to_address +/* 02CDE8 8002C1E8 02603825 */ move $a3, $s3 +/* 02CDEC 8002C1EC 8E250000 */ lw $a1, ($s1) +/* 02CDF0 8002C1F0 0C031886 */ jal gzip_inflate +/* 02CDF4 8002C1F4 02002025 */ move $a0, $s0 +/* 02CDF8 8002C1F8 8E840000 */ lw $a0, ($s4) +/* 02CDFC 8002C1FC 0C01C450 */ jal free_from_memory_pool +/* 02CE00 8002C200 00000000 */ nop +/* 02CE04 8002C204 8E320000 */ lw $s2, ($s1) +/* 02CE08 8002C208 00008025 */ move $s0, $zero +/* 02CE0C 8002C20C 8E580000 */ lw $t8, ($s2) +/* 02CE10 8002C210 02403025 */ move $a2, $s2 +/* 02CE14 8002C214 0312C821 */ addu $t9, $t8, $s2 +/* 02CE18 8002C218 AE590000 */ sw $t9, ($s2) +/* 02CE1C 8002C21C 8E320000 */ lw $s2, ($s1) +/* 02CE20 8002C220 00000000 */ nop +/* 02CE24 8002C224 8E4D0004 */ lw $t5, 4($s2) +/* 02CE28 8002C228 00000000 */ nop +/* 02CE2C 8002C22C 01A67021 */ addu $t6, $t5, $a2 +/* 02CE30 8002C230 AE4E0004 */ sw $t6, 4($s2) +/* 02CE34 8002C234 8E320000 */ lw $s2, ($s1) +/* 02CE38 8002C238 00000000 */ nop +/* 02CE3C 8002C23C 8E4F0008 */ lw $t7, 8($s2) +/* 02CE40 8002C240 00000000 */ nop +/* 02CE44 8002C244 01E6C021 */ addu $t8, $t7, $a2 +/* 02CE48 8002C248 AE580008 */ sw $t8, 8($s2) +/* 02CE4C 8002C24C 8E320000 */ lw $s2, ($s1) +/* 02CE50 8002C250 00000000 */ nop +/* 02CE54 8002C254 8E59000C */ lw $t9, 0xc($s2) +/* 02CE58 8002C258 00000000 */ nop +/* 02CE5C 8002C25C 03266821 */ addu $t5, $t9, $a2 +/* 02CE60 8002C260 AE4D000C */ sw $t5, 0xc($s2) +/* 02CE64 8002C264 8E320000 */ lw $s2, ($s1) +/* 02CE68 8002C268 00000000 */ nop +/* 02CE6C 8002C26C 8E4E0010 */ lw $t6, 0x10($s2) +/* 02CE70 8002C270 00000000 */ nop +/* 02CE74 8002C274 01C67821 */ addu $t7, $t6, $a2 +/* 02CE78 8002C278 AE4F0010 */ sw $t7, 0x10($s2) +/* 02CE7C 8002C27C 8E320000 */ lw $s2, ($s1) +/* 02CE80 8002C280 00000000 */ nop +/* 02CE84 8002C284 8E580014 */ lw $t8, 0x14($s2) +/* 02CE88 8002C288 00000000 */ nop +/* 02CE8C 8002C28C 0306C821 */ addu $t9, $t8, $a2 +/* 02CE90 8002C290 AE590014 */ sw $t9, 0x14($s2) +/* 02CE94 8002C294 8E320000 */ lw $s2, ($s1) +/* 02CE98 8002C298 00000000 */ nop +/* 02CE9C 8002C29C 8643001A */ lh $v1, 0x1a($s2) +/* 02CEA0 8002C2A0 00000000 */ nop +/* 02CEA4 8002C2A4 1860002B */ blez $v1, .L8002C354 +/* 02CEA8 8002C2A8 00009825 */ move $s3, $zero +.L8002C2AC: +/* 02CEAC 8002C2AC 8E4D0004 */ lw $t5, 4($s2) +/* 02CEB0 8002C2B0 26100001 */ addiu $s0, $s0, 1 +/* 02CEB4 8002C2B4 01B31021 */ addu $v0, $t5, $s3 +/* 02CEB8 8002C2B8 8C4E0000 */ lw $t6, ($v0) +/* 02CEBC 8002C2BC 00000000 */ nop +/* 02CEC0 8002C2C0 01C67821 */ addu $t7, $t6, $a2 +/* 02CEC4 8002C2C4 AC4F0000 */ sw $t7, ($v0) +/* 02CEC8 8002C2C8 8E380000 */ lw $t8, ($s1) +/* 02CECC 8002C2CC 00000000 */ nop +/* 02CED0 8002C2D0 8F190004 */ lw $t9, 4($t8) +/* 02CED4 8002C2D4 00000000 */ nop +/* 02CED8 8002C2D8 03331021 */ addu $v0, $t9, $s3 +/* 02CEDC 8002C2DC 8C4D0004 */ lw $t5, 4($v0) +/* 02CEE0 8002C2E0 00000000 */ nop +/* 02CEE4 8002C2E4 01A67021 */ addu $t6, $t5, $a2 +/* 02CEE8 8002C2E8 AC4E0004 */ sw $t6, 4($v0) +/* 02CEEC 8002C2EC 8E2F0000 */ lw $t7, ($s1) +/* 02CEF0 8002C2F0 00000000 */ nop +/* 02CEF4 8002C2F4 8DF80004 */ lw $t8, 4($t7) +/* 02CEF8 8002C2F8 00000000 */ nop +/* 02CEFC 8002C2FC 03131021 */ addu $v0, $t8, $s3 +/* 02CF00 8002C300 8C59000C */ lw $t9, 0xc($v0) +/* 02CF04 8002C304 00000000 */ nop +/* 02CF08 8002C308 03266821 */ addu $t5, $t9, $a2 +/* 02CF0C 8002C30C AC4D000C */ sw $t5, 0xc($v0) +/* 02CF10 8002C310 8E2E0000 */ lw $t6, ($s1) +/* 02CF14 8002C314 00000000 */ nop +/* 02CF18 8002C318 8DCF0004 */ lw $t7, 4($t6) +/* 02CF1C 8002C31C 00000000 */ nop +/* 02CF20 8002C320 01F31021 */ addu $v0, $t7, $s3 +/* 02CF24 8002C324 8C580014 */ lw $t8, 0x14($v0) +/* 02CF28 8002C328 26730044 */ addiu $s3, $s3, 0x44 +/* 02CF2C 8002C32C 0306C821 */ addu $t9, $t8, $a2 +/* 02CF30 8002C330 AC590014 */ sw $t9, 0x14($v0) +/* 02CF34 8002C334 8E320000 */ lw $s2, ($s1) +/* 02CF38 8002C338 00000000 */ nop +/* 02CF3C 8002C33C 8643001A */ lh $v1, 0x1a($s2) +/* 02CF40 8002C340 00000000 */ nop +/* 02CF44 8002C344 0203082A */ slt $at, $s0, $v1 +/* 02CF48 8002C348 1420FFD8 */ bnez $at, .L8002C2AC +/* 02CF4C 8002C34C 00000000 */ nop +/* 02CF50 8002C350 00008025 */ move $s0, $zero +.L8002C354: +/* 02CF54 8002C354 864D0018 */ lh $t5, 0x18($s2) +/* 02CF58 8002C358 00009825 */ move $s3, $zero +/* 02CF5C 8002C35C 19A00018 */ blez $t5, .L8002C3C0 +/* 02CF60 8002C360 00000000 */ nop +.L8002C364: +/* 02CF64 8002C364 8E4E0000 */ lw $t6, ($s2) +/* 02CF68 8002C368 00000000 */ nop +/* 02CF6C 8002C36C 01D37821 */ addu $t7, $t6, $s3 +/* 02CF70 8002C370 8DE40000 */ lw $a0, ($t7) +/* 02CF74 8002C374 00000000 */ nop +/* 02CF78 8002C378 34988000 */ ori $t8, $a0, 0x8000 +/* 02CF7C 8002C37C 0C01EB9D */ jal load_texture +/* 02CF80 8002C380 03002025 */ move $a0, $t8 +/* 02CF84 8002C384 8E390000 */ lw $t9, ($s1) +/* 02CF88 8002C388 26100001 */ addiu $s0, $s0, 1 +/* 02CF8C 8002C38C 8F2D0000 */ lw $t5, ($t9) +/* 02CF90 8002C390 00000000 */ nop +/* 02CF94 8002C394 01B37021 */ addu $t6, $t5, $s3 +/* 02CF98 8002C398 ADC20000 */ sw $v0, ($t6) +/* 02CF9C 8002C39C 8E320000 */ lw $s2, ($s1) +/* 02CFA0 8002C3A0 26730008 */ addiu $s3, $s3, 8 +/* 02CFA4 8002C3A4 864F0018 */ lh $t7, 0x18($s2) +/* 02CFA8 8002C3A8 00000000 */ nop +/* 02CFAC 8002C3AC 020F082A */ slt $at, $s0, $t7 +/* 02CFB0 8002C3B0 1420FFEC */ bnez $at, .L8002C364 +/* 02CFB4 8002C3B4 00000000 */ nop +/* 02CFB8 8002C3B8 8643001A */ lh $v1, 0x1a($s2) +/* 02CFBC 8002C3BC 00008025 */ move $s0, $zero +.L8002C3C0: +/* 02CFC0 8002C3C0 8E580048 */ lw $t8, 0x48($s2) +/* 02CFC4 8002C3C4 02401025 */ move $v0, $s2 +/* 02CFC8 8002C3C8 18600048 */ blez $v1, .L8002C4EC +/* 02CFCC 8002C3CC 0258A021 */ addu $s4, $s2, $t8 +/* 02CFD0 8002C3D0 00009825 */ move $s3, $zero +/* 02CFD4 8002C3D4 0000A825 */ move $s5, $zero +.L8002C3D8: +/* 02CFD8 8002C3D8 8E590004 */ lw $t9, 4($s2) +/* 02CFDC 8002C3DC 00000000 */ nop +/* 02CFE0 8002C3E0 03336821 */ addu $t5, $t9, $s3 +/* 02CFE4 8002C3E4 ADB40010 */ sw $s4, 0x10($t5) +/* 02CFE8 8002C3E8 8E2E0000 */ lw $t6, ($s1) +/* 02CFEC 8002C3EC 00000000 */ nop +/* 02CFF0 8002C3F0 8DCF0004 */ lw $t7, 4($t6) +/* 02CFF4 8002C3F4 00000000 */ nop +/* 02CFF8 8002C3F8 01F3C021 */ addu $t8, $t7, $s3 +/* 02CFFC 8002C3FC 8719001E */ lh $t9, 0x1e($t8) +/* 02D000 8002C400 00000000 */ nop +/* 02D004 8002C404 00196840 */ sll $t5, $t9, 1 +/* 02D008 8002C408 0C01C614 */ jal align16 +/* 02D00C 8002C40C 01B42021 */ addu $a0, $t5, $s4 +/* 02D010 8002C410 8E2E0000 */ lw $t6, ($s1) +/* 02D014 8002C414 0040A025 */ move $s4, $v0 +/* 02D018 8002C418 8DCF0004 */ lw $t7, 4($t6) +/* 02D01C 8002C41C 00000000 */ nop +/* 02D020 8002C420 01F3C021 */ addu $t8, $t7, $s3 +/* 02D024 8002C424 AF020018 */ sw $v0, 0x18($t8) +/* 02D028 8002C428 8E390000 */ lw $t9, ($s1) +/* 02D02C 8002C42C 00000000 */ nop +/* 02D030 8002C430 8F2D0004 */ lw $t5, 4($t9) +/* 02D034 8002C434 0C00B30C */ jal func_8002CC30 +/* 02D038 8002C438 01B32021 */ addu $a0, $t5, $s3 +/* 02D03C 8002C43C 8E320000 */ lw $s2, ($s1) +/* 02D040 8002C440 0054A021 */ addu $s4, $v0, $s4 +/* 02D044 8002C444 8E4E0004 */ lw $t6, 4($s2) +/* 02D048 8002C448 8E4F0008 */ lw $t7, 8($s2) +/* 02D04C 8002C44C 02003025 */ move $a2, $s0 +/* 02D050 8002C450 01D32021 */ addu $a0, $t6, $s3 +/* 02D054 8002C454 0C00B255 */ jal func_8002C954 +/* 02D058 8002C458 01F52821 */ addu $a1, $t7, $s5 +/* 02D05C 8002C45C 8E380000 */ lw $t8, ($s1) +/* 02D060 8002C460 00000000 */ nop +/* 02D064 8002C464 8F190004 */ lw $t9, 4($t8) +/* 02D068 8002C468 00000000 */ nop +/* 02D06C 8002C46C 03336821 */ addu $t5, $t9, $s3 +/* 02D070 8002C470 A5A00030 */ sh $zero, 0x30($t5) +/* 02D074 8002C474 8E2E0000 */ lw $t6, ($s1) +/* 02D078 8002C478 00000000 */ nop +/* 02D07C 8002C47C 8DCF0004 */ lw $t7, 4($t6) +/* 02D080 8002C480 00000000 */ nop +/* 02D084 8002C484 01F3C021 */ addu $t8, $t7, $s3 +/* 02D088 8002C488 AF140034 */ sw $s4, 0x34($t8) +/* 02D08C 8002C48C 8E390000 */ lw $t9, ($s1) +/* 02D090 8002C490 00000000 */ nop +/* 02D094 8002C494 8F2D0004 */ lw $t5, 4($t9) +/* 02D098 8002C498 0C00B1C7 */ jal func_8002C71C +/* 02D09C 8002C49C 01B32021 */ addu $a0, $t5, $s3 +/* 02D0A0 8002C4A0 8E2E0000 */ lw $t6, ($s1) +/* 02D0A4 8002C4A4 00000000 */ nop +/* 02D0A8 8002C4A8 8DCF0004 */ lw $t7, 4($t6) +/* 02D0AC 8002C4AC 00000000 */ nop +/* 02D0B0 8002C4B0 01F3C021 */ addu $t8, $t7, $s3 +/* 02D0B4 8002C4B4 87190032 */ lh $t9, 0x32($t8) +/* 02D0B8 8002C4B8 00000000 */ nop +/* 02D0BC 8002C4BC 00196840 */ sll $t5, $t9, 1 +/* 02D0C0 8002C4C0 0C01C614 */ jal align16 +/* 02D0C4 8002C4C4 01B42021 */ addu $a0, $t5, $s4 +/* 02D0C8 8002C4C8 8E320000 */ lw $s2, ($s1) +/* 02D0CC 8002C4CC 26100001 */ addiu $s0, $s0, 1 +/* 02D0D0 8002C4D0 864E001A */ lh $t6, 0x1a($s2) +/* 02D0D4 8002C4D4 26730044 */ addiu $s3, $s3, 0x44 +/* 02D0D8 8002C4D8 020E082A */ slt $at, $s0, $t6 +/* 02D0DC 8002C4DC 26B5000C */ addiu $s5, $s5, 0xc +/* 02D0E0 8002C4E0 1420FFBD */ bnez $at, .L8002C3D8 +/* 02D0E4 8002C4E4 0040A025 */ move $s4, $v0 +/* 02D0E8 8002C4E8 02401025 */ move $v0, $s2 +.L8002C4EC: +/* 02D0EC 8002C4EC 3C010008 */ lui $at, (0x00082A01 >> 16) # lui $at, 8 +/* 02D0F0 8002C4F0 02829823 */ subu $s3, $s4, $v0 +/* 02D0F4 8002C4F4 34212A01 */ ori $at, (0x00082A01 & 0xFFFF) # ori $at, $at, 0x2a01 +/* 02D0F8 8002C4F8 0261082A */ slt $at, $s3, $at +/* 02D0FC 8002C4FC 14200004 */ bnez $at, .L8002C510 +/* 02D100 8002C500 3C04800E */ lui $a0, %hi(D_800E5E38) # $a0, 0x800e +/* 02D104 8002C504 24845E38 */ addiu $a0, %lo(D_800E5E38) # addiu $a0, $a0, 0x5e38 +/* 02D108 8002C508 0C032755 */ jal rmonPrintf +/* 02D10C 8002C50C 02602825 */ move $a1, $s3 +.L8002C510: +/* 02D110 8002C510 0C01C42C */ jal set_free_queue_state +/* 02D114 8002C514 00002025 */ move $a0, $zero +/* 02D118 8002C518 3C048012 */ lui $a0, %hi(D_8011D30C) # $a0, 0x8012 +/* 02D11C 8002C51C 8C84D30C */ lw $a0, %lo(D_8011D30C)($a0) +/* 02D120 8002C520 0C01C450 */ jal free_from_memory_pool +/* 02D124 8002C524 00000000 */ nop +/* 02D128 8002C528 3C058012 */ lui $a1, %hi(D_8011D30C) # $a1, 0x8012 +/* 02D12C 8002C52C 8CA5D30C */ lw $a1, %lo(D_8011D30C)($a1) +/* 02D130 8002C530 3C06FFFF */ lui $a2, (0xFFFF00FF >> 16) # lui $a2, 0xffff +/* 02D134 8002C534 34C600FF */ ori $a2, (0xFFFF00FF & 0xFFFF) # ori $a2, $a2, 0xff +/* 02D138 8002C538 0C01C3BE */ jal allocate_at_address_in_main_pool +/* 02D13C 8002C53C 02602025 */ move $a0, $s3 +/* 02D140 8002C540 0C01C42C */ jal set_free_queue_state +/* 02D144 8002C544 24040002 */ li $a0, 2 +/* 02D148 8002C548 8E240000 */ lw $a0, ($s1) +/* 02D14C 8002C54C 0C02A0ED */ jal minimap_init +/* 02D150 8002C550 00000000 */ nop +/* 02D154 8002C554 8E320000 */ lw $s2, ($s1) +/* 02D158 8002C558 00006025 */ move $t4, $zero +/* 02D15C 8002C55C 8643001A */ lh $v1, 0x1a($s2) +/* 02D160 8002C560 00002825 */ move $a1, $zero +/* 02D164 8002C564 18600061 */ blez $v1, .L8002C6EC +/* 02D168 8002C568 3C0B0800 */ lui $t3, 0x800 +/* 02D16C 8002C56C 8E460004 */ lw $a2, 4($s2) +/* 02D170 8002C570 240A0001 */ li $t2, 1 +/* 02D174 8002C574 24070080 */ li $a3, 128 +.L8002C578: +/* 02D178 8002C578 84C20020 */ lh $v0, 0x20($a2) +/* 02D17C 8002C57C 258C0001 */ addiu $t4, $t4, 1 +/* 02D180 8002C580 18400056 */ blez $v0, .L8002C6DC +/* 02D184 8002C584 00009825 */ move $s3, $zero +/* 02D188 8002C588 8CC4000C */ lw $a0, 0xc($a2) +/* 02D18C 8002C58C 00004025 */ move $t0, $zero +.L8002C590: +/* 02D190 8002C590 84900002 */ lh $s0, 2($a0) +/* 02D194 8002C594 8489000E */ lh $t1, 0xe($a0) +/* 02D198 8002C598 26730001 */ addiu $s3, $s3, 1 +/* 02D19C 8002C59C 0209082A */ slt $at, $s0, $t1 +/* 02D1A0 8002C5A0 10200049 */ beqz $at, .L8002C6C8 +/* 02D1A4 8002C5A4 0262082A */ slt $at, $s3, $v0 +/* 02D1A8 8002C5A8 00101080 */ sll $v0, $s0, 2 +/* 02D1AC 8002C5AC 00501021 */ addu $v0, $v0, $s0 +/* 02D1B0 8002C5B0 00021040 */ sll $v0, $v0, 1 +.L8002C5B4: +/* 02D1B4 8002C5B4 8CCF0000 */ lw $t7, ($a2) +/* 02D1B8 8002C5B8 26100001 */ addiu $s0, $s0, 1 +/* 02D1BC 8002C5BC 01E21821 */ addu $v1, $t7, $v0 +/* 02D1C0 8002C5C0 90780006 */ lbu $t8, 6($v1) +/* 02D1C4 8002C5C4 00000000 */ nop +/* 02D1C8 8002C5C8 1558003A */ bne $t2, $t8, .L8002C6B4 +/* 02D1CC 8002C5CC 0209082A */ slt $at, $s0, $t1 +/* 02D1D0 8002C5D0 90790007 */ lbu $t9, 7($v1) +/* 02D1D4 8002C5D4 00000000 */ nop +/* 02D1D8 8002C5D8 15590036 */ bne $t2, $t9, .L8002C6B4 +/* 02D1DC 8002C5DC 0209082A */ slt $at, $s0, $t1 +/* 02D1E0 8002C5E0 906D0008 */ lbu $t5, 8($v1) +/* 02D1E4 8002C5E4 00000000 */ nop +/* 02D1E8 8002C5E8 A06D0009 */ sb $t5, 9($v1) +/* 02D1EC 8002C5EC 8E2E0000 */ lw $t6, ($s1) +/* 02D1F0 8002C5F0 00000000 */ nop +/* 02D1F4 8002C5F4 8DCF0004 */ lw $t7, 4($t6) +/* 02D1F8 8002C5F8 00000000 */ nop +/* 02D1FC 8002C5FC 01E5C021 */ addu $t8, $t7, $a1 +/* 02D200 8002C600 8F190000 */ lw $t9, ($t8) +/* 02D204 8002C604 00000000 */ nop +/* 02D208 8002C608 03226821 */ addu $t5, $t9, $v0 +/* 02D20C 8002C60C A1A70006 */ sb $a3, 6($t5) +/* 02D210 8002C610 8E2E0000 */ lw $t6, ($s1) +/* 02D214 8002C614 00000000 */ nop +/* 02D218 8002C618 8DCF0004 */ lw $t7, 4($t6) +/* 02D21C 8002C61C 00000000 */ nop +/* 02D220 8002C620 01E5C021 */ addu $t8, $t7, $a1 +/* 02D224 8002C624 8F190000 */ lw $t9, ($t8) +/* 02D228 8002C628 00000000 */ nop +/* 02D22C 8002C62C 03226821 */ addu $t5, $t9, $v0 +/* 02D230 8002C630 A1A70007 */ sb $a3, 7($t5) +/* 02D234 8002C634 8E2E0000 */ lw $t6, ($s1) +/* 02D238 8002C638 00000000 */ nop +/* 02D23C 8002C63C 8DCF0004 */ lw $t7, 4($t6) +/* 02D240 8002C640 00000000 */ nop +/* 02D244 8002C644 01E5C021 */ addu $t8, $t7, $a1 +/* 02D248 8002C648 8F190000 */ lw $t9, ($t8) +/* 02D24C 8002C64C 00000000 */ nop +/* 02D250 8002C650 03226821 */ addu $t5, $t9, $v0 +/* 02D254 8002C654 A1A70008 */ sb $a3, 8($t5) +/* 02D258 8002C658 8E2E0000 */ lw $t6, ($s1) +/* 02D25C 8002C65C 00000000 */ nop +/* 02D260 8002C660 8DCF0004 */ lw $t7, 4($t6) +/* 02D264 8002C664 00000000 */ nop +/* 02D268 8002C668 01E5C021 */ addu $t8, $t7, $a1 +/* 02D26C 8002C66C 8F19000C */ lw $t9, 0xc($t8) +/* 02D270 8002C670 00000000 */ nop +/* 02D274 8002C674 03282021 */ addu $a0, $t9, $t0 +/* 02D278 8002C678 8C8D0008 */ lw $t5, 8($a0) +/* 02D27C 8002C67C 00000000 */ nop +/* 02D280 8002C680 01AB7025 */ or $t6, $t5, $t3 +/* 02D284 8002C684 AC8E0008 */ sw $t6, 8($a0) +/* 02D288 8002C688 8E320000 */ lw $s2, ($s1) +/* 02D28C 8002C68C 00000000 */ nop +/* 02D290 8002C690 8E4F0004 */ lw $t7, 4($s2) +/* 02D294 8002C694 00000000 */ nop +/* 02D298 8002C698 01E53021 */ addu $a2, $t7, $a1 +/* 02D29C 8002C69C 8CD8000C */ lw $t8, 0xc($a2) +/* 02D2A0 8002C6A0 00000000 */ nop +/* 02D2A4 8002C6A4 03082021 */ addu $a0, $t8, $t0 +/* 02D2A8 8002C6A8 8489000E */ lh $t1, 0xe($a0) +/* 02D2AC 8002C6AC 00000000 */ nop +/* 02D2B0 8002C6B0 0209082A */ slt $at, $s0, $t1 +.L8002C6B4: +/* 02D2B4 8002C6B4 1420FFBF */ bnez $at, .L8002C5B4 +/* 02D2B8 8002C6B8 2442000A */ addiu $v0, $v0, 0xa +/* 02D2BC 8002C6BC 84C20020 */ lh $v0, 0x20($a2) +/* 02D2C0 8002C6C0 00000000 */ nop +/* 02D2C4 8002C6C4 0262082A */ slt $at, $s3, $v0 +.L8002C6C8: +/* 02D2C8 8002C6C8 2508000C */ addiu $t0, $t0, 0xc +/* 02D2CC 8002C6CC 1420FFB0 */ bnez $at, .L8002C590 +/* 02D2D0 8002C6D0 2484000C */ addiu $a0, $a0, 0xc +/* 02D2D4 8002C6D4 8643001A */ lh $v1, 0x1a($s2) +/* 02D2D8 8002C6D8 00000000 */ nop +.L8002C6DC: +/* 02D2DC 8002C6DC 0183082A */ slt $at, $t4, $v1 +/* 02D2E0 8002C6E0 24A50044 */ addiu $a1, $a1, 0x44 +/* 02D2E4 8002C6E4 1420FFA4 */ bnez $at, .L8002C578 +/* 02D2E8 8002C6E8 24C60044 */ addiu $a2, $a2, 0x44 +.L8002C6EC: +/* 02D2EC 8002C6EC 3C04FF00 */ lui $a0, (0xFF00FFFF >> 16) # lui $a0, 0xff00 +/* 02D2F0 8002C6F0 0C01ECDD */ jal set_texture_colour_tag +/* 02D2F4 8002C6F4 3484FFFF */ ori $a0, (0xFF00FFFF & 0xFFFF) # ori $a0, $a0, 0xffff +/* 02D2F8 8002C6F8 8FBF002C */ lw $ra, 0x2c($sp) +/* 02D2FC 8002C6FC 8FB00014 */ lw $s0, 0x14($sp) +/* 02D300 8002C700 8FB10018 */ lw $s1, 0x18($sp) +/* 02D304 8002C704 8FB2001C */ lw $s2, 0x1c($sp) +/* 02D308 8002C708 8FB30020 */ lw $s3, 0x20($sp) +/* 02D30C 8002C70C 8FB40024 */ lw $s4, 0x24($sp) +/* 02D310 8002C710 8FB50028 */ lw $s5, 0x28($sp) +/* 02D314 8002C714 03E00008 */ jr $ra +/* 02D318 8002C718 27BD0030 */ addiu $sp, $sp, 0x30 + diff --git a/include/f3ddkr.h b/include/f3ddkr.h index 3bc0cc41..269aab5f 100644 --- a/include/f3ddkr.h +++ b/include/f3ddkr.h @@ -85,16 +85,7 @@ gMoveWd(pkt, G_MW_BILLBOARD, 0, 1) #define gDkrDisableBillboard(pkt) \ - gMoveWd(pkt, G_MW_BILLBOARD, 0, 0) - -#define gDkrVertices(pkt, address, no, v0) \ -{ \ - Gfx *_g = (Gfx *)(pkt); \ - \ - _g->words.w0 = (_SHIFTL(G_VTX, 24, 8) | _SHIFTL((no), 16, 8) | \ - _SHIFTL((v0*2), 0, 16)); \ - _g->words.w1 = (unsigned int)(address); \ -} + gMoveWd(pkt, G_MW_BILLBOARD, 0, 0) #define gSPVertexDKR(pkt, v, n, v0) \ gDma1p(pkt, G_VTX, v, (((n) * 8 + (n)) << 1) + 8,((n)-1)<<3|(((u32)(v) & 6))|(v0)) @@ -102,15 +93,6 @@ #define TRIN_DISABLE_TEXTURE 0 #define TRIN_ENABLE_TEXTURE 1 -#define gDkrTriangles(pkt, address, n, t) \ -{ \ - Gfx *_g = (Gfx *)(pkt); \ - \ - _g->words.w0 = (_SHIFTL(G_TRIN, 24, 8) | _SHIFTL((n - 1), 20, 4) | \ - _SHIFTL((t), 16, 4) | _SHIFTL((n*16), 0, 16)); \ - _g->words.w1 = (unsigned int)(address); \ -} - #define gSPPolygon(dl, ptr, numTris, texEnabled) { \ Gfx *_g = (Gfx *)(dl); \ _g->words.w0 = _SHIFTL(((numTris - 1) << 4) | (texEnabled), 16, 8) | _SHIFTL(G_TRIN, 24, 8) | _SHIFTL((numTris*16), 0, 16); \ diff --git a/include/structs.h b/include/structs.h index 93c0b192..89ea3e62 100644 --- a/include/structs.h +++ b/include/structs.h @@ -96,6 +96,15 @@ typedef struct DrawTexture { s16 yOffset; // Offset from the center of the screen. } DrawTexture; +typedef struct Sprite { + /* 0x00 */ s16 baseTextureId; + /* 0x02 */ s16 numberOfFrames; // 1 means static texture + /* 0x04 */ s16 numberOfInstances; + /* 0x06 */ s16 unk6; + /* 0x08 */ TextureHeader **frames; + /* 0x0C */ u8 *unkC[1]; // Actual size varies. +} Sprite; + /* Size: 0x20 bytes */ typedef struct MenuElement { // Element Position @@ -560,11 +569,11 @@ typedef struct LevelModelSegmentBoundingBox { /* Size: 8 bytes */ typedef struct BspTreeNode { - s16 leftNode; // less than split value - s16 rightNode; // greater or equal to split value? - u8 splitType; // 0 = Camera X, 1 = Camera Y, 2 = Camera Z - u8 segmentIndex; - s16 splitValue; // Decides left or right +/* 0x00 */ s16 leftNode; // less than split value +/* 0x02 */ s16 rightNode; // greater or equal to split value? +/* 0x04 */ u8 splitType; // 0 = Camera X, 1 = Camera Y, 2 = Camera Z +/* 0x05 */ u8 segmentIndex; +/* 0x06 */ s16 splitValue; // Decides left or right } BspTreeNode; typedef struct LevelModel { @@ -578,7 +587,7 @@ typedef struct LevelModel { /* 0x1A */ s16 numberOfSegments; /* 0x1C */ s16 unk1C; /* 0x1E */ s16 unk1E; -/* 0x20 */ s32 unk20; //spriteIndex? +/* 0x20 */ s32 minimapSprite; /* 0x24 */ u16 unk24; /* 0x26 */ u16 unk26; u8 pad28[0x10]; diff --git a/src/audio.c b/src/audio.c index 70a4b508..d3b04826 100644 --- a/src/audio.c +++ b/src/audio.c @@ -52,13 +52,6 @@ UNUSED const char sAudioErrorString_03[] = "Invalid midi sequence index\n"; u8 gBssSectionStart[AUDIO_HEAP_SIZE]; ALHeap gALHeap; - -/* Unknown size */ -typedef struct unk80115CF8 { - u8 pad0[2]; - s16 unk2; -} unk80115CF8; - ALSeqFile *ALSeqFile_80115CF8; void *D_80115CFC; @@ -66,7 +59,7 @@ void *D_80115D00; u8 D_80115D04; u8 D_80115D05; s32 musicTempo; -u32 *D_80115D0C; +u32 *gSeqLengthTable; ALBankFile *ALBankFile_80115D10; // And I have reason to believe these are voice clips. ALBankFile *ALBankFile_80115D14; // These are sound effects, I do not know if it is ALL the sound effects. @@ -86,8 +79,8 @@ u8 D_80115D41; unk80115D48 D_80115D48[8]; ALCSeq D_80115D88; ALCSeq D_80115E80; -u8 D_80115F78; -u8 D_80115F79; +u8 gSkipResetChannels; // Stored and used by a single function, but redundant. +u8 gAudioVolumeSetting; s32 D_80115F7C; s32 *gGlobalSoundMask; u32 *gSpatialSoundMask; @@ -95,16 +88,20 @@ u32 D_80115F88; /******************************/ +/** + * Allocate memory for all of the audio systems, including sequence data, sound data and heaps. + * Afterwards, set up the audio thread and start it. +*/ void audio_init(OSSched *sc) { s32 iCnt; ALSynConfig synth_config; s32 *addrPtr; u32 seqfSize; - u32 seq_max_len; + u32 seqLength; UNUSED u32 pad; audioMgrConfig audConfig; - seq_max_len = 0; + seqLength = 0; alHeapInit(&gALHeap, gBssSectionStart, AUDIO_HEAP_SIZE); addrPtr = (s32 *) load_asset_section_from_rom(ASSET_AUDIO_TABLE); @@ -132,16 +129,16 @@ void audio_init(OSSched *sc) { ALSeqFile_80115CF8 = allocate_from_main_pool_safe(seqfSize, COLOUR_TAG_CYAN); load_asset_to_address(ASSET_AUDIO, (u32) ALSeqFile_80115CF8, addrPtr[4], seqfSize); alSeqFileNew(ALSeqFile_80115CF8, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[4])); - D_80115D0C = (u32 *) allocate_from_main_pool_safe((ALSeqFile_80115CF8->seqCount) * 4, COLOUR_TAG_CYAN); + gSeqLengthTable = (u32 *) allocate_from_main_pool_safe((ALSeqFile_80115CF8->seqCount) * 4, COLOUR_TAG_CYAN); for (iCnt = 0; iCnt < ALSeqFile_80115CF8->seqCount; iCnt++) { pad = (u32) (ALSeqFile_80115CF8 + 8 + iCnt * 8); // Fakematch - D_80115D0C[iCnt] = ALSeqFile_80115CF8->seqArray[iCnt].len; - if (D_80115D0C[iCnt] & 1) { - D_80115D0C[iCnt]++; + gSeqLengthTable[iCnt] = ALSeqFile_80115CF8->seqArray[iCnt].len; + if (gSeqLengthTable[iCnt] & 1) { + gSeqLengthTable[iCnt]++; } - if (seq_max_len < D_80115D0C[iCnt]) { - seq_max_len = D_80115D0C[iCnt]; + if (seqLength < gSeqLengthTable[iCnt]) { + seqLength = gSeqLengthTable[iCnt]; } } @@ -157,8 +154,8 @@ void audio_init(OSSched *sc) { gMusicPlayer = func_80002224(24, 120); set_voice_limit(gMusicPlayer, 18); gSndFxPlayer = func_80002224(16, 50); - D_80115CFC = allocate_from_main_pool_safe(seq_max_len, COLOUR_TAG_CYAN); - D_80115D00 = allocate_from_main_pool_safe(seq_max_len, COLOUR_TAG_CYAN); + D_80115CFC = allocate_from_main_pool_safe(seqLength, COLOUR_TAG_CYAN); + D_80115D00 = allocate_from_main_pool_safe(seqLength, COLOUR_TAG_CYAN); audConfig.unk04 = 150; audConfig.unk00 = 32; audConfig.maxChannels = 16; @@ -166,64 +163,70 @@ void audio_init(OSSched *sc) { audConfig.hp = &gALHeap; alSndPNew(&audConfig); audioStartThread(); - func_80000968(0); + adjust_audio_volume(VOLUME_NORMAL); free_from_memory_pool(addrPtr); set_sound_channel_count(10); D_800DC648 = 0; D_80115D40 = 0; D_80115D41 = 0; D_800DC658 = 0; - D_80115F78 = 0; - D_80115F79 = 0; + gSkipResetChannels = FALSE; + gAudioVolumeSetting = VOLUME_NORMAL; return; } -void func_80000890(u8 arg0) { - if (!D_80115F79) { - D_80115F78 = arg0; - if (D_80115F78 == 0) { +/** + * Depending on whether or not the audio volume is set to normal and the argument is false, reset sound effect channel volumes. +*/ +void reset_sound_volume(u8 skipReset) { + if (gAudioVolumeSetting == VOLUME_NORMAL) { + gSkipResetChannels = skipReset; + if (gSkipResetChannels == FALSE) { sMusicVolumeMultiplier = 256; set_relative_volume_for_music(musicRelativeVolume); - func_80004A60(0, sMusicVolumeMultiplier * 128 - 1); - func_80004A60(1, sMusicVolumeMultiplier * 128 - 1); - func_80004A60(2, sMusicVolumeMultiplier * 128 - 1); - func_80004A60(4, sMusicVolumeMultiplier * 128 - 1); + set_sound_channel_volume(0, sMusicVolumeMultiplier * 128 - 1); + set_sound_channel_volume(1, sMusicVolumeMultiplier * 128 - 1); + set_sound_channel_volume(2, sMusicVolumeMultiplier * 128 - 1); + set_sound_channel_volume(4, sMusicVolumeMultiplier * 128 - 1); } } } -void func_80000968(s32 arg0) { - switch (arg0) { - case 1: - func_80004A60(0, 0); - func_80004A60(1, 32767); - func_80004A60(2, 0); - func_80004A60(4, 0); +/** + * Changes the volume of each sound channel depending on what value is passed through. +*/ +void adjust_audio_volume(s32 behaviour) { + switch (behaviour) { + case VOLUME_LOWER: // Mute most sound effects and half the volume of music. + set_sound_channel_volume(0, 0); + set_sound_channel_volume(1, 32767); + set_sound_channel_volume(2, 0); + set_sound_channel_volume(4, 0); alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16) (musicRelativeVolume * musicVolumeSliderPercentage >> 2)); alCSPSetVol((ALCSPlayer *) gSndFxPlayer, 0); break; - case 2: - func_80004A60(0, 0); - func_80004A60(1, 32767); - func_80004A60(2, 32767); - func_80004A60(4, 32767); + case VOLUME_LOWER_AMBIENT: // Mute the ambient channel, making course elements stop making noise. + set_sound_channel_volume(0, 0); + set_sound_channel_volume(1, 32767); + set_sound_channel_volume(2, 32767); + set_sound_channel_volume(4, 32767); break; - case 3: - func_80004A60(0, 0); - func_80004A60(1, 32767); - func_80004A60(2, 0); - func_80004A60(4, 0); + case VOLUME_UNK03: + set_sound_channel_volume(0, 0); + set_sound_channel_volume(1, 32767); + set_sound_channel_volume(2, 0); + set_sound_channel_volume(4, 0); break; - default: - func_80004A60(0, 32767); - func_80004A60(1, 32767); - func_80004A60(2, 32767); - func_80004A60(4, 32767); + default: // Restore sound back to normal. + set_sound_channel_volume(0, 32767); + set_sound_channel_volume(1, 32767); + set_sound_channel_volume(2, 32767); + set_sound_channel_volume(4, 32767); alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16) (musicRelativeVolume * musicVolumeSliderPercentage)); alCSPSetVol((ALCSPlayer *) gSndFxPlayer, (s16) (sfxGetVolumeSlider() * sfxRelativeVolume)); break; } - D_80115F79 = arg0; + gAudioVolumeSetting = behaviour; } void func_80000B18(void) { @@ -637,10 +640,13 @@ u32 func_80001C08(void) { return 0; } -void func_80001C5C(u16 arg0) { - u32 s0; - for (s0 = 0; s0 < 64; s0++) { - func_80004A60(s0, arg0 << 8); +/** + * Sets the volume of what I presume is all sound channels +*/ +UNUSED void set_all_channel_volume(u16 volume) { + u32 i; + for (i = 0; i < 64; i++) { + set_sound_channel_volume(i, volume << 8); } } @@ -818,7 +824,7 @@ void func_8000232C(ALSeqPlayer *arg0, void *arg1, u8 *arg2, ALCSeq *arg3) { u8 temp_a0_2; if ((alCSPGetState((ALCSPlayer* ) arg0) == 0) && (*arg2 != 0)) { - load_asset_to_address(ASSET_AUDIO, (u32) arg1, ALSeqFile_80115CF8->seqArray[*arg2].offset - get_rom_offset_of_asset(ASSET_AUDIO, 0), (s32) D_80115D0C[*arg2]); + load_asset_to_address(ASSET_AUDIO, (u32) arg1, ALSeqFile_80115CF8->seqArray[*arg2].offset - get_rom_offset_of_asset(ASSET_AUDIO, 0), (s32) gSeqLengthTable[*arg2]); alCSeqNew(arg3, arg1); alCSPSetSeq((ALCSPlayer* ) arg0, arg3); alCSPPlay((ALCSPlayer* ) arg0); diff --git a/src/audio.h b/src/audio.h index cacf85e2..0b3e951c 100644 --- a/src/audio.h +++ b/src/audio.h @@ -5,6 +5,13 @@ #include "audio_internal.h" #include "sched.h" +enum AudioVolumeBehaviour { + VOLUME_NORMAL, + VOLUME_LOWER, + VOLUME_LOWER_AMBIENT, + VOLUME_UNK03, +}; + /* Size: 0x0A bytes */ typedef struct unk80115D18 { u16 unk0; @@ -50,8 +57,8 @@ void alCSPStop(ALCSPlayer *seqp); //lib/src/al/unknown_0C91A0.c s32 alCSPGetState(ALCSPlayer *seqp); //lib/src/unknown_0C8650.c void audio_init(OSSched *arg0); -void func_80000890(u8 arg0); -void func_80000968(s32 arg0); +void reset_sound_volume(u8 skipReset); +void adjust_audio_volume(s32 arg0); void func_80000B18(void); void func_80000B28(void); void play_music(u8 seqID); @@ -100,7 +107,7 @@ void sfxSetRelativeVolume(u8 arg0); void sfxSetPan(ALPan pan); void play_sequence(u8 seqID); u32 func_80001C08(void); -void func_80001C5C(u16 arg0); +void set_all_channel_volume(u16 arg0); u16 func_80001CB8(u16 arg0); void play_sound_spatial(u16 soundID, f32 x, f32 y, f32 z, s32 **arg4); void func_80001F14(u16 soundID, s32 *arg1); diff --git a/src/camera.c b/src/camera.c index 380e8ee0..3d75d277 100644 --- a/src/camera.c +++ b/src/camera.c @@ -412,9 +412,9 @@ void func_80066610(void) { D_800DD134 = 1 - D_800DD134; for (i = 0; i < 4; i++) { if (gScreenViewports[i].flags & VIEWPORT_UNK_04) { - gScreenViewports[i].flags &= ~VIEWPORT_UNK_01; + gScreenViewports[i].flags &= ~VIEWPORT_EXTRA_BG; } else if (gScreenViewports[i].flags & VIEWPORT_UNK_02) { - gScreenViewports[i].flags |= VIEWPORT_UNK_01; + gScreenViewports[i].flags |= VIEWPORT_EXTRA_BG; } gScreenViewports[i].flags &= ~VIEWPORT_UNK_02 | VIEWPORT_UNK_04; if (gScreenViewports[i].flags & 1) { @@ -466,7 +466,7 @@ GLOBAL_ASM("asm/non_matchings/camera/func_80066610.s") void func_80066818(s32 viewPortIndex, s32 arg1) { if (arg1 != 0) { - gScreenViewports[viewPortIndex].flags |= VIEWPORT_UNK_01; + gScreenViewports[viewPortIndex].flags |= VIEWPORT_EXTRA_BG; } else { gScreenViewports[viewPortIndex].flags |= VIEWPORT_UNK_02; } @@ -475,15 +475,19 @@ void func_80066818(s32 viewPortIndex, s32 arg1) { void func_80066894(s32 viewPortIndex, s32 arg1) { if (arg1 != 0) { - gScreenViewports[viewPortIndex].flags &= ~VIEWPORT_UNK_01; + gScreenViewports[viewPortIndex].flags &= ~VIEWPORT_EXTRA_BG; } else { gScreenViewports[viewPortIndex].flags |= VIEWPORT_UNK_04; } gScreenViewports[viewPortIndex].flags &= ~VIEWPORT_UNK_02; } -s32 func_80066910(s32 viewPortIndex) { - return gScreenViewports[viewPortIndex].flags & VIEWPORT_UNK_01; +/** + * Return's the current viewport's flag status for extended backgrounds. + * Required to draw some extra things used in menus. +*/ +s32 check_viewport_background_flag(s32 viewPortIndex) { + return gScreenViewports[viewPortIndex].flags & VIEWPORT_EXTRA_BG; } // proposed name: resize_viewport @@ -637,7 +641,7 @@ void func_80066CDC(Gfx **dlist, MatrixS **mats) { widthAndHeight = get_video_width_and_height_as_s32(); temp_t0 = widthAndHeight >> 16; temp_a3 = temp_t0 >> 1; - if (gScreenViewports[gActiveCameraID].flags & VIEWPORT_UNK_01) { + if (gScreenViewports[gActiveCameraID].flags & VIEWPORT_EXTRA_BG) { gDPSetScissor((*dlist)++, SCISSOR_INTERLACE, gScreenViewports[gActiveCameraID].scissorX1, gScreenViewports[gActiveCameraID].scissorY1, @@ -751,7 +755,10 @@ void func_80066CDC(Gfx **dlist, MatrixS **mats) { GLOBAL_ASM("asm/non_matchings/camera/func_80066CDC.s") #endif -void func_80067A3C(Gfx **dlist) { +/** + * Takes the size of the screen as depicted by an active screen viewport, then sets the RDP scissor to match it. +*/ +void set_viewport_scissor(Gfx **dlist) { s32 size; s32 lrx; s32 lry; @@ -771,8 +778,8 @@ void func_80067A3C(Gfx **dlist) { numViewports = gNumberOfViewports; if (numViewports != 0) { - if (numViewports == 2) { - numViewports = 3; + if (numViewports == VIEWPORTS_COUNT_3_PLAYERS) { + numViewports = VIEWPORTS_COUNT_4_PLAYERS; } lrx = ulx = 0; lry = uly = 0; @@ -940,7 +947,7 @@ void func_80068158(Gfx **dlist, s32 width, s32 height, s32 posX, s32 posY) { height = -height; tempWidth = -width; } - if (!(gScreenViewports[gActiveCameraID].flags & VIEWPORT_UNK_01)) { + if (!(gScreenViewports[gActiveCameraID].flags & VIEWPORT_EXTRA_BG)) { D_800DD148[gActiveCameraID].vp.vtrans[0] = posX * 4; D_800DD148[gActiveCameraID].vp.vtrans[1] = posY * 4; D_800DD148[gActiveCameraID].vp.vscale[0] = tempWidth * 4; @@ -957,11 +964,11 @@ void func_800682AC(Gfx **dlist) { widthAndHeight = get_video_width_and_height_as_s32(); height = GET_VIDEO_HEIGHT(widthAndHeight); width = GET_VIDEO_WIDTH(widthAndHeight); - if (!(gScreenViewports[gActiveCameraID].flags & VIEWPORT_UNK_01)) { + if (!(gScreenViewports[gActiveCameraID].flags & VIEWPORT_EXTRA_BG)) { gDPSetScissor((*dlist)++, G_SC_NON_INTERLACE, 0, 0, width - 1, height - 1); func_80068158(dlist, width >> 1, height >> 1, width >> 1, height >> 1); } else { - func_80067A3C(dlist); + set_viewport_scissor(dlist); func_80068158(dlist, 0, 0, 0, 0); } gActiveCameraID = 0; @@ -1094,7 +1101,7 @@ s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Obj /** * Sets transform and scale matrices to set position and size, loads the texture, sets the rendermodes, then draws the result onscreen. */ -void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags) { +void render_ortho_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, Sprite *sprite, s32 flags) { UNUSED s32 pad; f32 scale; s32 index; @@ -1102,7 +1109,7 @@ void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, Objec Matrix sp90; Matrix sp50; - if (arg4 != NULL) { + if (sprite != NULL) { temp_v1 = *vtx; temp_v1->x = segment->trans.x_position; temp_v1->y = segment->trans.y_position; @@ -1111,7 +1118,7 @@ void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, Objec temp_v1->g = 255; temp_v1->b = 255; temp_v1->a = 255; - gDkrVertices((*dList)++, OS_PHYSICAL_TO_K0(*vtx), (((s32)OS_PHYSICAL_TO_K0(*vtx)) & 6), 13); + gSPVertexDKR((*dList)++, OS_PHYSICAL_TO_K0(*vtx), 1, 0); (*vtx)++; // Can't be done in the macro? index = segment->animFrame; D_80120D1C ++; @@ -1137,13 +1144,13 @@ void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, Objec gSPMatrix((*dList)++, OS_PHYSICAL_TO_K0((*mtx)++), G_MTX_DKR_INDEX_2); gDkrEnableBillboard((*dList)++); if (D_80120D0C == 0) { - index = (((u8) index) * arg4->unk0) >> 8; + index = (((u8) index) * sprite->baseTextureId) >> 8; } - func_8007BF34(dList, arg4->unk6 | flags); - if (index >= arg4->unk0) { - index = arg4->unk0 - 1; + func_8007BF34(dList, sprite->unk6 | flags); + if (index >= sprite->baseTextureId) { + index = sprite->baseTextureId - 1; } - gSPDisplayList((*dList)++, arg4->unkC[index]); + gSPDisplayList((*dList)++, sprite->unkC[index]); if (--D_80120D1C == 0) { index = 0; } else { diff --git a/src/camera.h b/src/camera.h index 86f15a9c..85e7672d 100644 --- a/src/camera.h +++ b/src/camera.h @@ -44,7 +44,7 @@ enum ViewportCount { }; enum ViewPortFlags { - VIEWPORT_UNK_01 = 0x0001, + VIEWPORT_EXTRA_BG = 0x0001, VIEWPORT_UNK_02 = 0x0002, VIEWPORT_UNK_04 = 0x0004, VIEWPORT_X_CUSTOM = 0x0008, @@ -70,15 +70,6 @@ typedef struct ScreenViewport { /* 0x30 */ s32 flags; } ScreenViewport; -typedef struct unk80068BF4 { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; - s32 *unk8; - s32 *unkC[2]; -} unk80068BF4; - typedef struct unk80068514_arg4 { s16 unk0; s16 unk2; @@ -107,7 +98,7 @@ s32 set_active_viewports_and_max(s32 arg0); void set_active_camera(s32 arg0); void func_80066818(s32 viewPortIndex, s32 arg1); void func_80066894(s32 viewPortIndex, s32 arg1); -s32 func_80066910(s32 viewPortIndex); +s32 check_viewport_background_flag(s32 viewPortIndex); void func_80066940(s32 viewPortIndex, s32 x1, s32 y1, s32 x2, s32 y2); void set_viewport_properties(s32 viewPortIndex, s32 x1, s32 x2, s32 y1, s32 y2); s32 copy_viewport_background_size_to_coords(s32 viewPortIndex, s32 *x1, s32 *y1, s32 *x2, s32 *y2); @@ -143,10 +134,10 @@ s8 clamp_joystick(s8 stickMag); void disable_button_mask(void); s32 init_controllers(void); void func_80067D3C(Gfx **dlist, MatrixS **mats); -void render_orthi_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, unk80068BF4 *arg4, s32 flags); +void render_ortho_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, Sprite *sprite, s32 flags); s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Object *obj, unk80068514_arg4 *arg4, s32 flags); void func_80069484(Gfx **arg0, MatrixS **arg1, ObjectTransform *arg2, f32 arg3, f32 arg4); -void func_80067A3C(Gfx **dlist); +void set_viewport_scissor(Gfx **dlist); void func_80069A40(Gfx **dlist); // Non Matching diff --git a/src/fade_transition.c b/src/fade_transition.c index 092c1c47..33e3f1da 100644 --- a/src/fade_transition.c +++ b/src/fade_transition.c @@ -14,7 +14,7 @@ /************ .data ************/ -s32 D_800E31A0 = 0; +s32 gTransitionsDisabled = FALSE; s32 sLevelTransitionDelayTimer = 0; // Set when a level is loaded after a transition, to hold it for a few extra frames. s32 D_800E31A8 = 0; s32 sTransitionStatus = TRANSITION_NONE; @@ -185,7 +185,7 @@ Gfx dTransitionShapeSettings[] = { /************ .bss ************/ -s32 gCurFaceTransition; +s32 gCurFadeTransition; u8 gCurFadeRed; u8 gCurFadeGreen; u8 gCurFadeBlue; @@ -197,7 +197,7 @@ s32 D_8012A744; s32 D_8012A748; s32 D_8012A74C; f32 sTransitionOpacity; -f32 D_8012A754; +f32 gTransitionOpacityVel; s32 D_8012A758; s32 D_8012A75C; s32 D_8012A760; @@ -211,28 +211,36 @@ s32 D_8012A77C; /*****************************/ -void func_800C0170(void) { - D_800E31A0 = 1; +/** + * Set the value indicating that a new screen transition can be started. +*/ +void enable_new_screen_transitions(void) { + gTransitionsDisabled = TRUE; } -void func_800C0180(void) { - D_800E31A0 = 0; +/** + * Set the value indicating new transitions will not be created. +*/ +void disable_new_screen_transitions(void) { + gTransitionsDisabled = FALSE; } //@bug: This doesn't seem to guarantee a return. u32 func_800C018C(void) { - u32 isActive = (sTransitionFadeTimer != 0); - if (isActive == 0) { - isActive = (sTransitionFlags != 0); - if (isActive != 0) { + u32 isActive = sTransitionFadeTimer != 0; + if (isActive == FALSE) { + isActive = sTransitionFlags != 0; + if (isActive) { return (D_800E31BC != 0); } } } -s32 func_800C01D8(FadeTransition *transition) { - s32 new_var; - if (D_800E31A0 != NULL) { +/** + * Reset the state then initialise the transition states based on the current transition data. +*/ +s32 transition_begin(FadeTransition *transition) { + if (gTransitionsDisabled) { return 0; } transition_end(); @@ -242,10 +250,8 @@ s32 func_800C01D8(FadeTransition *transition) { sTransitionFadeTimer = transition->duration; D_800E31B8 = transition->duration; sTransitionFlags = transition->unk6; - new_var = transition->type; - D_800E31BC = !(new_var & 0x80); - new_var = transition->duration; - gCurFaceTransition = transition->type & 0x3F; + D_800E31BC = !(transition->type & 0x80); + gCurFadeTransition = transition->type & 0x3F; D_800E31A8 = transition->type & 0x40; sLevelTransitionDelayTimer = 0; if (!D_800E31BC && !sLevelTransitionDelayTimer) { @@ -258,9 +264,9 @@ s32 func_800C01D8(FadeTransition *transition) { gCurFadeRed = transition->red; gCurFadeGreen = transition->green; gCurFadeBlue = transition->blue; - switch (gCurFaceTransition) { + switch (gCurFadeTransition) { case FADE_FULLSCREEN: - func_800C0780(transition); + transition_fullscreen_start(transition); break; case FADE_BARNDOOR_HORIZONTAL: func_800C0B00(transition, 12, 8, D_800E3230, D_800E32A0, D_800E32AC, D_800E32D0, D_800E32D0, D_800E32B8); @@ -302,14 +308,14 @@ s32 handle_transitions(s32 updateRate) { if (sTransitionFadeTimer == 0) { sTransitionStatus = TRANSITION_LEVELSWAP; } -//@bug Not yet confirmed as a bug, but sTransitionFlags will not be zero when ingame, leaving stray transitions up. +//!@bug Not yet confirmed as a bug, but sTransitionFlags will not be zero when ingame, leaving stray transitions up. if ((sTransitionFadeTimer == 0) && (sTransitionFlags == 0)) { transition_end(); } else { if (sTransitionFadeTimer > 0) { sTransitionTaskNum[0] = 1 - sTransitionTaskNum[0]; // Haven't you heard of a XOR, Rareware employee? } - switch (gCurFaceTransition) { + switch (gCurFadeTransition) { case FADE_FULLSCREEN: func_800C0834(updateRate); break; @@ -335,40 +341,40 @@ s32 handle_transitions(s32 updateRate) { * The rendering portion of transitions. * First establishes an orthogonal matrix, then renders a transition effect onscreen. */ -void render_fade_transition(Gfx **dlist, MatrixS **mats, Vertex **verts) { +void render_fade_transition(Gfx **dList, MatrixS **mats, Vertex **verts) { if (sTransitionStatus != TRANSITION_NONE) { if (osTvType == TV_TYPE_PAL) { set_ortho_matrix_height(1.4f); } else { set_ortho_matrix_height(1.2f); } - set_ortho_matrix_view(dlist, mats); + set_ortho_matrix_view(dList, mats); set_ortho_matrix_height(1.0f); - switch (gCurFaceTransition) { + switch (gCurFadeTransition) { case FADE_FULLSCREEN: - render_fade_fullscreen(dlist, mats, verts); + render_fade_fullscreen(dList, mats, verts); break; case FADE_BARNDOOR_HORIZONTAL: - render_fade_barndoor_horizontal(dlist, mats, verts); + render_fade_barndoor_horizontal(dList, mats, verts); break; case FADE_BARNDOOR_VERTICAL: - render_fade_barndoor_vertical(dlist, mats, verts); + render_fade_barndoor_vertical(dList, mats, verts); break; case FADE_CIRCLE: - render_fade_circle(dlist, mats, verts); + render_fade_circle(dList, mats, verts); break; case FADE_WAVES: - render_fade_waves(dlist, mats, verts); + render_fade_waves(dList, mats, verts); break; case FADE_BARNDOOR_DIAGONAL: - render_fade_barndoor_diagonal(dlist, mats, verts); + render_fade_barndoor_diagonal(dList, mats, verts); break; case FADE_DISABLED: - render_fade_disabled(dlist, mats, verts); + render_fade_disabled(dList, mats, verts); break; } - func_80066CDC(dlist, mats); + func_80066CDC(dList, mats); } } @@ -388,13 +394,16 @@ void transition_end(void) { sTransitionTaskNum[0] = 0; } -void func_800C0780(FadeTransition *transition) { +/** + * Sets the transition timer and opacity to positive or negative depending on whether to fade in or out. +*/ +void transition_fullscreen_start(FadeTransition *transition) { if (transition->type & 0x80) { sTransitionOpacity = 255.0f; - D_8012A754 = -255.0f / (f32)sTransitionFadeTimer; + gTransitionOpacityVel = -255.0f / (f32) sTransitionFadeTimer; } else { sTransitionOpacity = 0.0f; - D_8012A754 = 255.0f / (f32)sTransitionFadeTimer; + gTransitionOpacityVel = 255.0f / (f32) sTransitionFadeTimer; } sTransitionStatus = TRANSITION_ACTIVE; } @@ -406,16 +415,16 @@ void func_800C0834(s32 updateRate) { if ((sTransitionFadeTimer) > 0) { if (updateRate < sTransitionFadeTimer) { sTransitionFadeTimer -= updateRate; - sTransitionOpacity += D_8012A754 * updateRate; + sTransitionOpacity += gTransitionOpacityVel * updateRate; } else { updateRate -= sTransitionFadeTimer; var_v0 = FALSE; - if (D_8012A754 < 0.0f) { + if (gTransitionOpacityVel < 0.0f) { sTransitionOpacity = 0.0f; } else { sTransitionOpacity = 255.0f; } - sTransitionFadeTimer = updateRate * 0; // Fakematch + sTransitionFadeTimer = 0 * updateRate; // Fakematch } if (sTransitionOpacity < 0.0f) { sTransitionOpacity = 0.0f; @@ -432,7 +441,7 @@ void func_800C0834(s32 updateRate) { if (D_800E31A8 != 0) { D_800E31A8 = 0; sTransitionFadeTimer = D_800E31B8; - D_8012A754 = -D_8012A754; + gTransitionOpacityVel = -gTransitionOpacityVel; var_v0 = FALSE; } } @@ -440,62 +449,69 @@ void func_800C0834(s32 updateRate) { } while (var_v0 == FALSE && (updateRate > 0)); } -void render_fade_fullscreen(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { +/** + * Draws a simple fillrect covering the whole screen that fades in or out. +*/ +void render_fade_fullscreen(Gfx **dList, UNUSED MatrixS **mats, UNUSED Vertex **verts) { s32 screenSize = get_video_width_and_height_as_s32(); - gSPDisplayList((*dlist)++, dTransitionFadeSettings); - gDPSetPrimColor((*dlist)++, 0, 0, gCurFadeRed, gCurFadeGreen, gCurFadeBlue, gCurFadeAlpha); - gDPSetCombineMode((*dlist)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPFillRectangle((*dlist)++, 0, 0, screenSize & 0x3FF, (screenSize >> 16) & 0x3FF); - reset_render_settings(dlist); + gSPDisplayList((*dList)++, dTransitionFadeSettings); + gDPSetPrimColor((*dList)++, 0, 0, gCurFadeRed, gCurFadeGreen, gCurFadeBlue, gCurFadeAlpha); + gDPSetCombineMode((*dList)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPFillRectangle((*dList)++, 0, 0, screenSize & 0x3FF, (screenSize >> 16) & 0x3FF); + reset_render_settings(dList); } GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C0B00.s") GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C1130.s") -void render_fade_barndoor_horizontal(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { - reset_render_settings(dlist); - gSPDisplayList((*dlist)++, dTransitionShapeSettings); - // TODO: Need to clean this up. - gDkrVertices((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]), (((s32)OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]])) & 6) | 0x58, 0x70); - gDkrTriangles((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]), 8, TRIN_DISABLE_TEXTURE); - reset_render_settings(dlist); +/** + * Renders a transition effect on screen that will close in from both sides horizonally. +*/ +void render_fade_barndoor_horizontal(Gfx **dList, UNUSED MatrixS **mats, UNUSED Vertex **verts) { + reset_render_settings(dList); + gSPDisplayList((*dList)++, dTransitionShapeSettings); + gSPVertexDKR((*dList)++, OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]), 12, 0); + gSPPolygon((*dList)++, OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]), 8, TRIN_DISABLE_TEXTURE); + reset_render_settings(dList); } -// This is exactly the same as render_fade_barndoor_horizontal; I wonder what gets changed then? -void render_fade_barndoor_vertical(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { - reset_render_settings(dlist); - gSPDisplayList((*dlist)++, dTransitionShapeSettings); - // TODO: Need to clean this up. - gDkrVertices((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]), (((s32)OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]])) & 6) | 0x58, 0x70); - gDkrTriangles((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]), 8, TRIN_DISABLE_TEXTURE); - reset_render_settings(dlist); +/** + * Renders a transition effect on screen that will close in from both sides vertically. + * Codewase, exactly the same as above, but uses a different vertex layout to make the difference. +*/ +void render_fade_barndoor_vertical(Gfx **dList, UNUSED MatrixS **mats, UNUSED Vertex **verts) { + reset_render_settings(dList); + gSPDisplayList((*dList)++, dTransitionShapeSettings); + gSPVertexDKR((*dList)++, OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]), 12, 0); + gSPPolygon((*dList)++, OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]), 8, TRIN_DISABLE_TEXTURE); + reset_render_settings(dList); } GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C15D4.s") GLOBAL_ASM("asm/non_matchings/fade_transition/func_800C1EE8.s") #ifdef NON_EQUIVALENT -void render_fade_circle(Gfx **dlist, MatrixS **mats, Vertex **verts) { +void render_fade_circle(Gfx **dList, MatrixS **mats, Vertex **verts) { u8 *addr, *addr2; - reset_render_settings(dlist); - gSPDisplayList((*dlist)++, dTransitionShapeSettings); + reset_render_settings(dList); + gSPDisplayList((*dList)++, dTransitionShapeSettings); addr = OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]); addr2 = OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]); - gDkrVertices((*dlist)++, (s32)addr, ((s32)addr & 6) | 0x88, 0xA6); - gDkrTriangles((*dlist)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); + gSPVertexDKR((*dList)++, addr, 18, 0); + gSPPolygon((*dList)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); addr += 0xB4; addr2 += 0x100; - gDkrVertices((*dlist)++, (s32)addr, ((s32)addr & 6) | 0x88, 0xA6); - gDkrTriangles((*dlist)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); + gSPVertexDKR((*dList)++, addr, 18, 0); + gSPPolygon((*dList)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); addr += 0xB4; addr2 += 0x100; - gDkrVertices((*dlist)++, (s32)addr, ((s32)addr & 6) | 0x88, 0xA6); - gDkrTriangles((*dlist)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); + gSPVertexDKR((*dList)++, addr, 18, 0); + gSPPolygon((*dList)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); addr += 0xB4; addr2 += 0x100; - gDkrVertices((*dlist)++, (s32)addr, ((s32)addr & 6) | 0x88, 0xA6); - gDkrTriangles((*dlist)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); - reset_render_settings(dlist); + gSPVertexDKR((*dList)++, addr, 18, 0); + gSPPolygon((*dList)++, (s32)addr2, 16, TRIN_DISABLE_TEXTURE); + reset_render_settings(dList); } #else GLOBAL_ASM("asm/non_matchings/fade_transition/render_fade_circle.s") @@ -503,33 +519,35 @@ GLOBAL_ASM("asm/non_matchings/fade_transition/render_fade_circle.s") #ifdef NON_EQUIVALENT // This doesn't work properly. -void render_fade_waves(Gfx **dlist, MatrixS **mats, Vertex **verts) { +void render_fade_waves(Gfx **dList, MatrixS **mats, Vertex **verts) { s32 i; - reset_render_settings(dlist); - gSPDisplayList((*dlist)++, dTransitionShapeSettings); + reset_render_settings(dList); + gSPDisplayList((*dList)++, dTransitionShapeSettings); for(i = 0; i < 6; i++) { s32 index = sTransitionTaskNum[0] + i; if(i != 1 && i != 4) { - gDkrVertices((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionVtx[index]), (((s32)OS_PHYSICAL_TO_K0(sTransitionVtx[index])) & 6) | 0x78, 0x94); - gDkrTriangles((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionTris[index]), 14, TRIN_DISABLE_TEXTURE); + gSPVertexDKR((*dList)++, OS_PHYSICAL_TO_K0(sTransitionVtx[index]), 16, 0); + gSPPolygon((*dList)++, OS_PHYSICAL_TO_K0(sTransitionTris[index]), 14, TRIN_DISABLE_TEXTURE); } else { - gDkrVertices((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionVtx[index]), (((s32)OS_PHYSICAL_TO_K0(sTransitionVtx[index])) & 6) | 0x68, 0x82); - gDkrTriangles((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionTris[index]), 12, TRIN_DISABLE_TEXTURE); + gSPVertexDKR((*dList)++, OS_PHYSICAL_TO_K0(sTransitionVtx[index]), 14, 0); + gSPPolygon((*dList)++, OS_PHYSICAL_TO_K0(sTransitionTris[index]), 12, TRIN_DISABLE_TEXTURE); } } - reset_render_settings(dlist); + reset_render_settings(dList); } #else GLOBAL_ASM("asm/non_matchings/fade_transition/render_fade_waves.s") #endif -void render_fade_barndoor_diagonal(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { - reset_render_settings(dlist); - gSPDisplayList((*dlist)++, dTransitionShapeSettings); - // TODO: Need to clean this up. - gDkrVertices((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]), (((s32)OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]])) & 6) | 0x48, 0x5E); - gDkrTriangles((*dlist)++, OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]), 6, TRIN_DISABLE_TEXTURE); - reset_render_settings(dlist); +/** + * Renders a transition effect on screen that will close in from the opposite corners of the screen. +*/ +void render_fade_barndoor_diagonal(Gfx **dList, UNUSED MatrixS **mats, UNUSED Vertex **verts) { + reset_render_settings(dList); + gSPDisplayList((*dList)++, dTransitionShapeSettings); + gSPVertexDKR((*dList)++, OS_PHYSICAL_TO_K0(sTransitionVtx[sTransitionTaskNum[0]]), 10, 0); + gSPPolygon((*dList)++, OS_PHYSICAL_TO_K0(sTransitionTris[sTransitionTaskNum[0]]), 6, TRIN_DISABLE_TEXTURE); + reset_render_settings(dList); } void func_800C2640(UNUSED FadeTransition *transition) { @@ -538,7 +556,7 @@ void func_800C2640(UNUSED FadeTransition *transition) { gLastFadeBlue <<= 0x10; gCurFadeAlpha = 0xFF; sTransitionOpacity = 255.0f; - D_8012A754 = 0.0f; + gTransitionOpacityVel = 0.0f; D_8012A744 = (s32) ((gCurFadeRed << 0x10) - gLastFadeRed) / (s32) sTransitionFadeTimer; D_8012A748 = (s32) ((gCurFadeGreen << 0x10) - gLastFadeGreen) / (s32) sTransitionFadeTimer; D_8012A74C = (s32) ((gCurFadeBlue << 0x10) - gLastFadeBlue) / (s32) sTransitionFadeTimer; @@ -573,11 +591,11 @@ void func_800C27A0(s32 updateRate) { } while (var_v0 == FALSE); } -void render_fade_disabled(Gfx **dlist, UNUSED MatrixS **mats, UNUSED Vertex **verts) { +void render_fade_disabled(Gfx **dList, UNUSED MatrixS **mats, UNUSED Vertex **verts) { s32 screenSize = get_video_width_and_height_as_s32(); - gSPDisplayList((*dlist)++, dTransitionFadeSettings); - gDPSetPrimColor((*dlist)++, 0, 0, (gLastFadeRed >> 16), (gLastFadeGreen >> 16), (gLastFadeBlue >> 16), 255); - gDPSetCombineMode((*dlist)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPFillRectangle((*dlist)++, 0, 0, screenSize & 0x3FF, (screenSize >> 16) & 0x3FF); - reset_render_settings(dlist); + gSPDisplayList((*dList)++, dTransitionFadeSettings); + gDPSetPrimColor((*dList)++, 0, 0, (gLastFadeRed >> 16), (gLastFadeGreen >> 16), (gLastFadeBlue >> 16), 255); + gDPSetCombineMode((*dList)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPFillRectangle((*dList)++, 0, 0, screenSize & 0x3FF, (screenSize >> 16) & 0x3FF); + reset_render_settings(dList); } diff --git a/src/fade_transition.h b/src/fade_transition.h index d48b7d05..676c2df1 100644 --- a/src/fade_transition.h +++ b/src/fade_transition.h @@ -36,25 +36,25 @@ typedef struct FadeTransition { extern u32 osTvType; -void func_800C0170(void); -void func_800C0180(void); +void enable_new_screen_transitions(void); +void disable_new_screen_transitions(void); u32 func_800C018C(void); void transition_end(void); s32 handle_transitions(s32 updateRate); -void render_fade_transition(Gfx **dlist, MatrixS **mats, Vertex **verts); -void render_fade_fullscreen(Gfx **dlist, MatrixS **mats, Vertex **verts); -void render_fade_barndoor_horizontal(Gfx **dlist, MatrixS **mats, Vertex **verts); -void render_fade_barndoor_vertical(Gfx **dlist, MatrixS **mats, Vertex **verts); -void render_fade_barndoor_diagonal(Gfx **dlist, MatrixS **mats, Vertex **verts); -void render_fade_disabled(Gfx **dlist, MatrixS **mats, Vertex **verts); -void func_800C0780(FadeTransition *transition); +void render_fade_transition(Gfx **dList, MatrixS **mats, Vertex **verts); +void render_fade_fullscreen(Gfx **dList, MatrixS **mats, Vertex **verts); +void render_fade_barndoor_horizontal(Gfx **dList, MatrixS **mats, Vertex **verts); +void render_fade_barndoor_vertical(Gfx **dList, MatrixS **mats, Vertex **verts); +void render_fade_barndoor_diagonal(Gfx **dList, MatrixS **mats, Vertex **verts); +void render_fade_disabled(Gfx **dList, MatrixS **mats, Vertex **verts); +void transition_fullscreen_start(FadeTransition *transition); void func_800C2640(FadeTransition *transition); void func_800C0834(s32 updateRate); void func_800C27A0(s32 updateRate); -s32 func_800C01D8(FadeTransition *transition); +s32 transition_begin(FadeTransition *transition); -void render_fade_circle(Gfx **dlist, MatrixS **mats, Vertex **verts); //Non Matching -void render_fade_waves(Gfx **dlist, MatrixS **mats, Vertex **verts); //Non Matching +void render_fade_circle(Gfx **dList, MatrixS **mats, Vertex **verts); //Non Matching +void render_fade_waves(Gfx **dList, MatrixS **mats, Vertex **verts); //Non Matching void func_800C1130(s32); //Non Matching void func_800C1EE8(s32); //Non Matching void func_800C0B00(FadeTransition *transition, s32, s32, s16*, s8*, s8*, s8*, s8*, s8*); //Non Matching diff --git a/src/font.c b/src/font.c index c392fa5e..9c709737 100644 --- a/src/font.c +++ b/src/font.c @@ -429,7 +429,7 @@ void render_text_string(Gfx **dList, DialogueBoxBackground *box, char *text, Ali box->ypos = ypos - box->textOffsetY; gDPPipeSync((*dList)++); if (box != gDialogueBoxBackground) { - func_80067A3C(dList); + set_viewport_scissor(dList); } reset_render_settings(dList); gDPPipeSync((*dList)++); diff --git a/src/game.c b/src/game.c index 95caf961..a9ae7c0d 100644 --- a/src/game.c +++ b/src/game.c @@ -741,7 +741,7 @@ void func_8006BEFC(void) { func_80031B60(); func_8002C7D4(); func_80008174(); - func_80000968(0); + adjust_audio_volume(VOLUME_NORMAL); if (gCurrentLevelHeader->weatherEnable > 0) { free_weather_memory(); } @@ -1109,7 +1109,7 @@ void func_8006CC14(void) { gSkipGfxTask = TRUE; } func_8006BEFC(); - func_800C01D8(&D_800DD3F4); + transition_begin(&D_800DD3F4); func_800AE270(); func_800A003C(); func_800C30CC(); @@ -1458,7 +1458,7 @@ void func_8006D8A4(void) { D_800DD390 = 0x2C; gIsPaused = 0; n_alSeqpDelete(); - func_800C01D8(&D_800DD408); + transition_begin(&D_800DD408); } void func_8006D8E0(s32 arg0) { @@ -1513,9 +1513,9 @@ void load_menu_with_level_background(s32 menuId, s32 levelId, s32 cutsceneId) { func_8006ECFC(0); sRenderContext = DRAW_MENU; D_801234F0 = 1; - func_80004A60(0, 32767); - func_80004A60(1, 32767); - func_80004A60(2, 32767); + set_sound_channel_volume(0, 32767); + set_sound_channel_volume(1, 32767); + set_sound_channel_volume(2, 32767); func_80065EA0(); if (!gIsLoading) { @@ -1572,7 +1572,7 @@ void func_8006DBE4(void) { gIsLoading = TRUE; set_free_queue_state(0); func_8006BEFC(); - func_800C01D8(&D_800DD3F4); + transition_begin(&D_800DD3F4); func_800AE270(); func_800A003C(); func_800C30CC(); @@ -2002,15 +2002,15 @@ void func_8006F140(s32 arg0) { D_80123524 = 0; D_80123526 = 0; if (arg0 == 1) { - func_800C01D8(&D_800DD41C); + transition_begin(&D_800DD41C); } if (arg0 == 3) { gLevelLoadTimer = 282; - func_800C01D8(&D_800DD424); + transition_begin(&D_800DD424); } if (arg0 == 4) { gLevelLoadTimer = 360; - func_800C01D8(&D_800DD424); + transition_begin(&D_800DD424); } if (arg0 == 0) { gLevelLoadTimer = 2; @@ -2021,7 +2021,7 @@ void func_8006F140(s32 arg0) { // Unused? void func_8006F20C(void) { if (gLevelLoadTimer == 0) { - func_800C01D8(&D_800DD41C); + transition_begin(&D_800DD41C); gLevelLoadTimer = 40; D_80123524 = 1; } @@ -2029,7 +2029,7 @@ void func_8006F20C(void) { void func_8006F254(void) { if (gLevelLoadTimer == 0) { - func_800C01D8(&D_800DD41C); + transition_begin(&D_800DD41C); gLevelLoadTimer = 40; D_80123524 = 2; } @@ -2039,7 +2039,7 @@ void func_8006F29C(void) { if (gLevelLoadTimer == 0) { if ((gSettingsPtr->trophies & 0xFF) == 0xFF && !(gSettingsPtr->cutsceneFlags & CUTSCENE_LIGHTHOUSE_ROCKET) && gSettingsPtr->bosses & 1) { gSettingsPtr->cutsceneFlags |= CUTSCENE_LIGHTHOUSE_ROCKET; - func_800C01D8(&D_800DD41C); + transition_begin(&D_800DD41C); gLevelLoadTimer = 40; D_80123525 = 0x2D; D_80123524 = 3; @@ -2050,7 +2050,7 @@ void func_8006F29C(void) { void func_8006F338(s32 arg0) { if (gLevelLoadTimer == 0) { D_80123525 = arg0; - func_800C01D8(&D_800DD41C); + transition_begin(&D_800DD41C); gLevelLoadTimer = 40; D_80123524 = 4; } diff --git a/src/game_text.c b/src/game_text.c index fabaa870..c889eb27 100644 --- a/src/game_text.c +++ b/src/game_text.c @@ -192,7 +192,7 @@ void func_800C2F1C(s32 arg0) { void func_800C3048(void) { D_8012A78C = -1; - gGameTextTable[0] = (GameTextTableStruct *) allocate_from_main_pool_safe(2048, COLOUR_TAG_GREEN); + gGameTextTable[0] = (GameTextTableStruct *) allocate_from_main_pool_safe(0x800, COLOUR_TAG_GREEN); D_8012A798[0] = (char *) &gGameTextTable[0]->entries[32]; D_8012A798[1] = &D_8012A798[0][960]; D_8012A7A4 = 0; diff --git a/src/game_ui.c b/src/game_ui.c index 0ca4eb54..266d0d62 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -209,7 +209,7 @@ s32 D_800E283C[5] = { s8 D_80126CD0; s8 D_80126CD1; -s8 D_80126CD2; +s8 gShowHUD; s8 D_80126CD3; /** @@ -336,7 +336,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s D_80126CD0 = 0; } } - if (D_80126CD2 == 0) { + if (gShowHUD == 0) { racer = arg3->unk64; if (D_8012718A) { D_80126D10 = 1 - racer->racer.playerIndex; @@ -1509,14 +1509,17 @@ void render_race_time(Object_Racer *racer, s32 updateRate) { GLOBAL_ASM("asm/non_matchings/game_ui/func_800A7FBC.s") -void func_800A83B4(LevelModel *model) { +/** + * Loads the minimap sprite from the level data, then sets the global colours for the minimap. +*/ +void minimap_init(LevelModel *model) { s32 sp2C; gMinimapRed = (model->minimapColor >> 16) & 0xFF; gMinimapGreen = (model->minimapColor >> 8) & 0xFF; gMinimapBlue = model->minimapColor & 0xFF; - load_sprite_info(model->unk20, &D_80126D1C, &D_80126D20, &sp2C, &sp2C, &sp2C); - func_8007CA68(model->unk20, 0, &D_80126D14, &D_80126D18, &sp2C); - model->unk20 = (s32)func_8007C12C(model->unk20, 1); + load_sprite_info(model->minimapSprite, &D_80126D1C, &D_80126D20, &sp2C, &sp2C, &sp2C); + func_8007CA68(model->minimapSprite, 0, &D_80126D14, &D_80126D18, &sp2C); + model->minimapSprite = (s32) func_8007C12C(model->minimapSprite, 1); } /** @@ -1537,7 +1540,7 @@ s8 get_hud_setting(void) { void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 updateRate) { Object_Racer *curRacerObj; LevelModel *lvlMdl; - s32 sp154; + Sprite *minimap; Object **objectGroup; Object_Racer *tempVar4; Object_Racer *someRacer; @@ -1819,7 +1822,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 u } someObjSeg = get_active_camera_segment(); func_80068508(TRUE); - sp154 = lvlMdl->unk20; + minimap = (Sprite *) lvlMdl->minimapSprite; switch (gHUDNumPlayers) { case TWO_PLAYERS: D_80126D58 = 135; @@ -1874,7 +1877,7 @@ void render_minimap_and_misc_hud(Gfx **dList, MatrixS **mtx, Vertex **vtx, s32 u } else { gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, gMinimapRed, gMinimapGreen, gMinimapBlue, mapOpacity); } - render_orthi_triangle_image(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (ObjectSegment* ) &objTrans.trans, (unk80068BF4* ) sp154, 0); + render_ortho_triangle_image(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (ObjectSegment* ) &objTrans.trans, minimap, 0); sp11C = (lvlMdl->upperXBounds - lvlMdl->lowerXBounds) / (f32) (lvlMdl->upperZBounds - lvlMdl->lowerZBounds); sp118 = coss_f((lvlMdl->unk24 * 0xFFFF) / 360); sp114 = sins_f((lvlMdl->unk24 * 0xFFFF) / 360); @@ -2030,11 +2033,16 @@ void func_800AB1AC(s32 arg0) { D_80126CD3 = arg0; } -/* Unused? */ -void func_800AB1C8(void) { +/** + * Sets the race start HUD procedure to the first step. +*/ +UNUSED void reset_race_start_hud(void) { gRaceStartShowHudStep = 0; } -void func_800AB1D4(u8 arg0) { - D_80126CD2 = 1 - arg0; +/** + * Sets the visibility of the hud, hiding almost everything, leaving only the minimap. +*/ +void set_hud_visibility(u8 setting) { + gShowHUD = 1 - setting; } diff --git a/src/game_ui.h b/src/game_ui.h index b98478fb..79457e31 100644 --- a/src/game_ui.h +++ b/src/game_ui.h @@ -295,12 +295,12 @@ void func_800A3870(void); void play_time_trial_end_message(s16 *playerID); void func_800A7484(u16 arg0, f32 arg1, s32 arg2); void func_800A74EC(u16 arg0, s32 arg1); -void func_800A83B4(LevelModel *model); +void minimap_init(LevelModel *model); s8 get_hud_setting(void); void func_800AB194(s32 arg0); void func_800AB1AC(s32 arg0); void func_800AB1C8(void); -void func_800AB1D4(u8 arg0); +void set_hud_visibility(u8 arg0); void render_race_time(Object_Racer *obj, s32 updateRate); void render_wrong_way_text(Object_Racer *racer, s32 updateRate); void render_course_indicator_arrows(Object_Racer *racer, s32 updateRate); diff --git a/src/menu.c b/src/menu.c index fe1fd343..2ed31913 100644 --- a/src/menu.c +++ b/src/menu.c @@ -2330,14 +2330,14 @@ s32 menu_logo_screen_loop(s32 updateRate) { if (osTvType == TV_TYPE_PAL) { yOffset = 26; if (sBootScreenTimer < 2.6f && gMenuDelay == 0) { - func_800C01D8(&D_800E1DE8); + transition_begin(&D_800E1DE8); gMenuDelay = 1; } sBootScreenTimer -= updateRate / 50.0f; } else { yOffset = 0; if (sBootScreenTimer < 2.17f && gMenuDelay == 0) { - func_800C01D8(&D_800E1DE8); + transition_begin(&D_800E1DE8); gMenuDelay = 1; } sBootScreenTimer -= updateRate / 60.0f; @@ -2434,7 +2434,7 @@ void menu_title_screen_init(void) { func_800660C0(); set_text_font(ASSET_FONTS_FUNFONT); load_font(ASSET_FONTS_BIGFONT); - func_80000890(0); + reset_sound_volume(FALSE); set_time_trial_enabled(FALSE); D_80126864 = 0; sTitleScreenDemoIds = (s8 *)get_misc_asset(MISC_ASSET_UNK42); @@ -2529,7 +2529,7 @@ s32 menu_title_screen_loop(s32 updateRate) { if ((gTitleDemoTimer < 60) && ((gTitleDemoTimer + updateRate) >= 60)) { set_music_fade_timer(-0x300); sp28 = 0; - func_800C01D8(&D_800E1E08); + transition_begin(&D_800E1E08); } if (gTitleDemoTimer <= 0) { sp28 = 1; @@ -2618,14 +2618,14 @@ s32 menu_title_screen_loop(s32 updateRate) { for(contrIndex = 3; contrIndex > 0 && !(D_801267D8[contrIndex] & (A_BUTTON | START_BUTTON)); contrIndex--){} set_active_player_index(contrIndex); gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); - func_800C0170(); + transition_begin(&sMenuTransitionFadeIn); + enable_new_screen_transitions(); play_sound_global(SOUND_SELECT2, 0); } } if (gMenuDelay > 30) { - func_80084118(); - func_800C0180(); + title_screen_exit(); + disable_new_screen_transitions(); if (gTitleScreenCurrentOption == 0) { sp28 = 0; if (is_drumstick_unlocked()) { @@ -2636,7 +2636,7 @@ s32 menu_title_screen_loop(s32 updateRate) { } load_level_for_menu(ASSET_LEVEL_CHARACTERSELECT, -1, sp28); func_8008AEB4(0, NULL); - menu_init(3U); + menu_init(MENU_CHARACTER_SELECT); return 0; } D_800DF460 = 0; @@ -2644,25 +2644,28 @@ s32 menu_title_screen_loop(s32 updateRate) { menu_init(MENU_OPTIONS); return 0; } - gIgnorePlayerInput = 0; + gIgnorePlayerInput = FALSE; return 0; } -void func_80084118(void) { +/** + * Unloads the title screen logo and sets all audio back to default. +*/ +void title_screen_exit(void) { func_8009C4A8(sGameTitleTileTextures); - set_music_player_voice_limit(0x10); + set_music_player_voice_limit(16); func_800660D0(); unload_font(ASSET_FONTS_BIGFONT); - func_80000890(1); + reset_sound_volume(TRUE); } void menu_options_init(void) { gOptionBlinkTimer = 0; gMenuDelay = 0; - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); load_font(ASSET_FONTS_BIGFONT); set_text_font(ASSET_FONTS_BIGFONT); - set_music_player_voice_limit(0x18); + set_music_player_voice_limit(24); play_music(SEQUENCE_MAIN_MENU); func_80000B18(); } @@ -2739,7 +2742,7 @@ s32 menu_options_loop(s32 updateRate) { // Leave the option menu set_music_fade_timer(-128); gMenuDelay = -1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); play_sound_global(SOUND_MENU_BACK3, NULL); } else if ((buttonsPressed & (A_BUTTON | START_BUTTON)) && D_800DF460 >= 2) { // Go to a sub-menu @@ -2834,7 +2837,7 @@ void menu_audio_options_init(void) { func_8009C674(gOptionMenuTextures); allocate_menu_images(&gOptionMenuTextures[6]); func_8008E4B0(); - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); func_8007FFEC(2); gMusicVolumeSliderValue = musicGetVolSliderPercentage(); gSfxVolumeSliderValue = sfxGetVolumeSlider(); @@ -2904,7 +2907,7 @@ s32 menu_audio_options_loop(s32 arg0) { if (((buttonInputs & (A_BUTTON | START_BUTTON)) && (D_801263E0 == gOptionsMenuItemIndex + 1)) || (buttonInputs & B_BUTTON)) { gMenuDelay = -1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); if (gOpacityDecayTimer >= 0) { set_music_fade_timer(-0x80); } @@ -3047,7 +3050,7 @@ void menu_save_options_init(void) { D_800DFC60[0].texture = D_80126550[TEXTURE_ICON_SAVE_BIN]; func_8008E4B0(); func_8006EBA8(); - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); } GLOBAL_ASM("asm/non_matchings/menu/func_800853D0.s") @@ -3525,7 +3528,7 @@ PakError check_for_controller_pak_errors(void) { void menu_boot_init(void) { s32 i; - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); set_background_prim_colour(0, 0, 0); func_8009C674(sGameTitleTileTextures); @@ -3581,7 +3584,7 @@ s32 menu_boot_loop(s32 updateRate) { break; case 2: if (gMenuDelay && func_800C018C() == 0) { - func_800C01D8(&sMenuTransitionFadeInFast); + transition_begin(&sMenuTransitionFadeInFast); } temp = 300; out = menu_controller_pak_loop(updateRate); @@ -3810,7 +3813,7 @@ s32 menu_controller_pak_loop(s32 updateRate) { if ((sControllerPakError == PAK_ERROR_NONE) && (gShowControllerPakMenu == 0)) { playCancelSound = TRUE; gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); } } } else { @@ -3822,14 +3825,14 @@ s32 menu_controller_pak_loop(s32 updateRate) { //Failed to delete the file playCancelSound = TRUE; gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); } else { //File deleted successfully playSelectedSound = TRUE; if (func_80087F14(&gMenuOption, xStick) != CONTROLLER_PAK_GOOD) { playCancelSound = TRUE; gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); } } D_801263E0 = 0; @@ -3854,7 +3857,7 @@ s32 menu_controller_pak_loop(s32 updateRate) { } else if ((pressedButtons & B_BUTTON) || (D_800DF460 == 16 && (pressedButtons & (A_BUTTON | START_BUTTON)))) { playCancelSound = 1; gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); } else { //D_800DF460 = selected menu index? switch (D_800DF460) { @@ -3952,7 +3955,7 @@ void menu_magic_codes_init(void) { gMenuDelay = 0; gOpacityDecayTimer = 0; D_801263E0 = 0; - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); set_current_dialogue_box_coords(7, 50, 50, 270, 132); set_current_dialogue_background_colour(7, 0, 0, 0, 128); assign_dialogue_box_id(7); @@ -4102,7 +4105,7 @@ void menu_magic_codes_list_init(void) { load_font(ASSET_FONTS_BIGFONT); func_8009C6D4(0x3F); func_8008E4B0(); - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); if (osTvType == TV_TYPE_PAL) { D_80126C70 = 0xB; } else { @@ -4275,7 +4278,7 @@ s32 menu_magic_codes_list_loop(s32 arg0) { } if (sp48 != 0) { gMenuDelay = sp48; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); play_sound_global(SOUND_MENU_BACK3, NULL); } if (gMenuDelay < -30) { @@ -4421,7 +4424,7 @@ void menu_character_select_init(void) { func_80000B18(); func_8009C674(D_800DFDC8); allocate_menu_images(D_800DFDCC); - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); load_font(ASSET_FONTS_BIGFONT); } @@ -4672,7 +4675,7 @@ void menu_caution_init(void) { gIgnorePlayerInput = 60; gMenuDelay = 0; load_font(ASSET_FONTS_BIGFONT); - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); gPlayerHasSeenCautionMenu = 1; } @@ -4686,7 +4689,7 @@ s32 menu_caution_loop(s32 updateRate) { } else if (gIgnorePlayerInput <= 0 && (get_buttons_pressed_from_player(PLAYER_ONE) & (A_BUTTON | B_BUTTON | START_BUTTON))) { play_sound_global(SOUND_SELECT2, NULL); gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); } if (gMenuDelay < 20) { draw_menu_elements(1, gCautionMenuTextElements, 1.0f); @@ -4715,7 +4718,7 @@ void menu_game_select_init(void) { gOptionBlinkTimer = 0; D_800DF460 = 0; D_801263E0 = 2; - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); func_8006EBA8(); func_8001B790(); gOpacityDecayTimer = 1; @@ -4848,11 +4851,11 @@ s32 menu_game_select_loop(s32 updateRate) { if (D_800DF460 == D_801263E0) { set_music_fade_timer(-0x80); } - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; play_sound_global(SOUND_SELECT2, NULL); } else if (playerInputs & B_BUTTON) { - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = -1; } else { if (playerYDir < 0) { @@ -4898,7 +4901,7 @@ void menu_file_select_init(void) { D_80126484 = FALSE; D_80126488 = FALSE; D_80126CC0 = 0; - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); load_font(ASSET_FONTS_BIGFONT); play_music(SEQUENCE_CHOOSE_YOUR_RACER); for (i = 0; i < 10; i++) { @@ -5399,7 +5402,7 @@ s32 menu_file_select_loop(s32 updateRate) { settings->filename = compress_filename_string(gSavefileInfo[gSaveFileIndex].name, 3); func_8006EB78(gSaveFileIndex); set_music_fade_timer(-128); - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; } } else { @@ -5423,7 +5426,7 @@ s32 menu_file_select_loop(s32 updateRate) { } } if (currentMenuDelay != 0) { - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = currentMenuDelay; } } @@ -5544,8 +5547,8 @@ void menu_track_select_init(void) { gOptionBlinkTimer = 0; D_801267D0 = -1; func_8008F00C(0); - func_800C01D8(&sMenuTransitionFadeOut); - func_800C0170(); + transition_begin(&sMenuTransitionFadeOut); + enable_new_screen_transitions(); set_background_fill_colour(50, 105, 223); for (var_a1 = 0; var_a1 != 5; var_a1++) { temp_a0 = D_800E0710[(var_a1 * 3)]; @@ -6019,7 +6022,7 @@ void func_80090918(s32 updateRate) { } func_8008F00C(1); } else if (gMenuDelay < -30) { - func_800C0180(); + disable_new_screen_transitions(); func_80066894(0, 0); func_8008F00C(-1); } @@ -6035,9 +6038,9 @@ void func_80090918(s32 updateRate) { play_sound_global(SOUND_UNK_6A, NULL); } } else if (D_801267E8 & B_BUTTON) { - func_800C0180(); - func_800C01D8(&sMenuTransitionFadeIn); - func_800C0170(); + disable_new_screen_transitions(); + transition_begin(&sMenuTransitionFadeIn); + enable_new_screen_transitions(); gMenuDelay = -1; } else { s32 prevValue = D_801269C8; @@ -6452,7 +6455,7 @@ void menu_adventure_track_init(void) { gRaceSelectionVehicleTitleTexture[0].texture = D_80126550[TEXTURE_ICON_VEHICLE_TITLE]; gRaceSelectionTTTexture[0].texture = D_80126550[TEXTURE_ICON_TT_HEAD]; - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); gOptionBlinkTimer = 0; gMenuDelay = 0; D_800E0980 = 30; @@ -6632,7 +6635,7 @@ s32 menu_adventure_track_loop(s32 updateRate) { func_800C31EC(0x2710); } gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); play_sound_global(SOUND_SELECT2, NULL); } else if (D_801267D8[0] & 0x4000) { play_sound_global(SOUND_MENU_BACK3, NULL); @@ -6640,7 +6643,7 @@ s32 menu_adventure_track_loop(s32 updateRate) { if (sp28) { func_800C31EC(0x2710); } - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = -1; } else { D_801263E0 = 0; @@ -6649,7 +6652,7 @@ s32 menu_adventure_track_loop(s32 updateRate) { } else { if (D_801267D8[0] & 0x4000) { play_sound_global(SOUND_MENU_BACK3, NULL); - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = -1; } else if (D_801267D8[0] & 0x9000) { D_801263E0 = 1; @@ -6841,11 +6844,11 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { s32 buttonsPressed; if (gMenuOptionCap == 0) { - func_80000968(0); + adjust_audio_volume(VOLUME_NORMAL); return 0; } - func_80000968(1); + adjust_audio_volume(VOLUME_LOWER); gOptionBlinkTimer = (gOptionBlinkTimer + updateRate) & 0x3F; update_controller_sticks(); @@ -6919,7 +6922,7 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { return 4; } if (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_CONTINUE]) { - func_80000968(0); + adjust_audio_volume(VOLUME_NORMAL); return 1; } if ((gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_RESTARTRACE]) || (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_RESTARTCHALLENGE])) { @@ -6938,7 +6941,7 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { return 12; } if (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_ABANDONCHALLENGE]) { - func_80000968(0); + adjust_audio_volume(VOLUME_NORMAL); return 7; } return 1; @@ -7059,7 +7062,7 @@ void func_80094688(s32 arg0, s32 arg1) { func_80066818(0, 1); func_80066940(0, 0, 0, gTrackSelectViewPortX, gTrackSelectViewportY); } - func_80000968(2); + adjust_audio_volume(VOLUME_LOWER_AMBIENT); } GLOBAL_ASM("asm/non_matchings/menu/func_80094A5C.s") @@ -7145,7 +7148,7 @@ void func_80096790(void) { D_80126BBC = 0; unload_big_font_4(); - func_80000968(0); + adjust_audio_volume(VOLUME_NORMAL); } void menu_11_init(void) { @@ -7179,7 +7182,7 @@ void menu_11_init(void) { allocate_menu_images(D_800E0A40); assign_racer_portrait_textures(); load_font(ASSET_FONTS_BIGFONT); - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); set_music_player_voice_limit(0x18); play_music(SEQUENCE_MAIN_MENU); set_music_fade_timer(0x80); @@ -7630,7 +7633,7 @@ s32 menu_trophy_race_round_loop(s32 updateRate) { if ((gIgnorePlayerInput == 0) && (gMenuDelay == 0)) { func_8008E4EC(); if ((D_801267E8 & (A_BUTTON | START_BUTTON)) != 0) { - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; set_music_fade_timer(-128); } @@ -7758,7 +7761,7 @@ void menu_ghost_data_init(void) { gMenuDelay = 0; D_80126498 = 0; if (pakStatus == CONTROLLER_PAK_GOOD) { - func_800C01D8(&sMenuTransitionFadeOut); + transition_begin(&sMenuTransitionFadeOut); return; } gMenuDelay = 30; @@ -7809,7 +7812,7 @@ s32 menu_ghost_data_loop(s32 updateRate) { play_sound_global(SOUND_SELECT2, NULL); } else if ((pressedButtons & B_BUTTON) || ((pressedButtons & (START_BUTTON | A_BUTTON)) && (D_801264D4 == 0))) { gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); play_sound_global(SOUND_MENU_BACK3, NULL); } else { temp = D_80126498; @@ -7849,7 +7852,7 @@ s32 menu_ghost_data_loop(s32 updateRate) { play_sound_global(SOUND_SELECT2, NULL); } else { gMenuDelay = 1; - func_800C01D8(&sMenuTransitionFadeIn); + transition_begin(&sMenuTransitionFadeIn); play_sound_global(SOUND_MENU_BACK3, NULL); } D_801263E0 = 0; @@ -7989,7 +7992,7 @@ void menu_credits_init(void) { gCreditsArray[86] = (char *)(*gCheatsAssetData) + (cheatOffsets)[(cheatIndex << 1)]; // Cheat code } func_80000B18(); - func_800C0170(); + enable_new_screen_transitions(); set_D_800DD430(1); } @@ -8018,7 +8021,7 @@ GLOBAL_ASM("asm/non_matchings/menu/menu_credits_loop.s") void func_8009BCF0(void) { set_music_player_voice_limit(0x12); - func_800C0180(); + disable_new_screen_transitions(); func_80066894(0, 0); set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, VIEWPORT_AUTO, VIEWPORT_AUTO); func_8009C4A8(D_800E17D8); diff --git a/src/menu.h b/src/menu.h index 6e147216..c8b24412 100644 --- a/src/menu.h +++ b/src/menu.h @@ -736,7 +736,7 @@ void menu_logos_screen_init(void); s32 menu_logo_screen_loop(s32 arg0); void init_title_screen_variables(void); void menu_title_screen_init(void); -void func_80084118(void); +void title_screen_exit(void); void menu_options_init(void); void render_options_menu_ui(s32 updateRate); void unload_big_font_1(void); diff --git a/src/object_functions.c b/src/object_functions.c index 76944fa0..f32f7594 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -653,7 +653,7 @@ void obj_loop_trophycab(Object *obj, s32 updateRate) { } if (obj->action == 1) { func_800AB1AC(3); - func_800AB1D4(0U); + set_hud_visibility(0U); dialogueID = func_8009CFEC(4); if (dialogueID) { obj->action = 0; @@ -662,7 +662,7 @@ void obj_loop_trophycab(Object *obj, s32 updateRate) { func_8006F254(); obj->action = 2; } else { - func_800AB1D4(1); + set_hud_visibility(1); } } func_8005A3B0(); @@ -2280,7 +2280,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { play_taj_voice_clip((racer64->racer.vehicleID + SOUND_VOICE_TAJ_ABRAKADABRA), 1); } else { obj->action = TAJ_MODE_SET_CHALLENGE; - func_800C01D8(&D_800DC978); + transition_begin(&D_800DC978); sp6B = 1; play_taj_voice_clip(SOUND_WHOOSH4, 1); taj->unk4 = 0.0f; @@ -2306,7 +2306,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { func_8000E1EC(racerObj, D_8011D4E0 & 0xF); obj->action = TAJ_MODE_TRANSFORM_END; play_sound_global(SOUND_CYMBAL, NULL); - func_800C01D8(&D_800DC970); + transition_begin(&D_800DC970); } } break; @@ -2327,7 +2327,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { racer64->racer.transparency = 255; if (taj->unk4 == 0.0) { if (D_8011D4E0 & 0x80) { - func_800C01D8(&D_800DC978); + transition_begin(&D_800DC978); sp6B = 1; obj->action = TAJ_MODE_SET_CHALLENGE; play_sound_global(SOUND_WHOOSH4, NULL); diff --git a/src/racer.c b/src/racer.c index a8410ade..daef5c63 100644 --- a/src/racer.c +++ b/src/racer.c @@ -5728,7 +5728,7 @@ void racer_enter_door(Object_Racer* racer, s32 updateRate) { } if ((racer->transitionTimer < -1 && gCurrentStickX < 10 && gCurrentStickX > -10) || racer->transitionTimer == -1) { if (check_if_showing_cutscene_camera() == 0) { - func_800C01D8(&gDoorFadeTransition); + transition_begin(&gDoorFadeTransition); } racer->transitionTimer = 60 - updateRate; } diff --git a/src/textures_sprites.c b/src/textures_sprites.c index f26435ae..ac9b7ec3 100644 --- a/src/textures_sprites.c +++ b/src/textures_sprites.c @@ -1443,7 +1443,7 @@ s32 load_sprite_info(s32 spriteIndex, s32 *numOfInstancesOut, s32 *unkOut, s32 * free_texture(tex); *sizeOut = 0; for (i = 0; i < gCurrentSprite->numberOfFrames; i++) { - for (j = gCurrentSprite->unkC[i]; j < gCurrentSprite->unkC[i + 1]; j++) { + for (j = (s32) gCurrentSprite->unkC[i]; j < (s32) gCurrentSprite->unkC[i + 1]; j++) { *sizeOut += get_texture_size_from_id(gCurrentSprite->baseTextureId + j); } } diff --git a/src/textures_sprites.h b/src/textures_sprites.h index 809ea7d8..4e15f06d 100644 --- a/src/textures_sprites.h +++ b/src/textures_sprites.h @@ -102,15 +102,6 @@ typedef struct TextureCacheEntry { TextureHeader *texture; } TextureCacheEntry; -typedef struct Sprite { - s16 baseTextureId; - s16 numberOfFrames; // 1 means static texture - s16 numberOfInstances; - s16 unk6; - TextureHeader **frames; - u8 unkC[1]; // Actual size varies. -} Sprite; - typedef struct SpriteCacheEntry { s32 id; Sprite *sprite; @@ -149,12 +140,12 @@ void free_texture(TextureHeader *tex); // Non Matching TextureHeader *func_8007B380(s32 arg0); // Non Matching s32 get_texture_size_from_id(s32 arg0); // Non Matching s32 func_8007C860(s32 spriteIndex); // Non Matching -s32 load_sprite_info(s32 spriteIndex, s32 *numOfInstancesOut, s32 *unkOut, +s32 load_sprite_info(s32 spriteID, s32 *numOfInstancesOut, s32 *unkOut, s32 *numFramesOut, s32 *formatOut, s32 *sizeOut); // Non Matching void free_sprite(Sprite *sprite); // Non Matching void func_8007F594(Gfx **dlist, u32 index, u32 primitiveColor, u32 environmentColor); // Non Matching -void func_8007CA68(s32 arg0, s32 arg1, s32 *arg2, s32 *arg3, s32 *arg4); // Non Matching -MemoryPoolSlot *func_8007C12C(s32 arg0, s32 arg1); // Non Matching +void func_8007CA68(s32 spriteID, s32 arg1, s32 *arg2, s32 *arg3, s32 *arg4); // Non Matching +MemoryPoolSlot *func_8007C12C(s32 spriteID, s32 arg1); // Non Matching void func_8007AC70(void); // Non Matching void func_8007BF34(Gfx **dlist, s32 arg1); // Non Matching void load_blinking_lights_texture(Gfx **dlist, TextureHeader *arg1, u32 flags, s32 arg3); // Non Matching diff --git a/src/unknown_003260.c b/src/unknown_003260.c index d8464352..2bb4a119 100644 --- a/src/unknown_003260.c +++ b/src/unknown_003260.c @@ -35,7 +35,7 @@ extern OSIoMesg audDMAIOMesgBuf[NUM_DMA_MESSAGES]; extern OSMesgQueue audDMAMessageQ; extern OSMesg audDMAMessageBuf[NUM_DMA_MESSAGES]; extern unk800DC6BC D_80119BD0; -extern u16 *D_80119C28; +extern u16 *gSoundChannelVolume; /******************************/ @@ -345,9 +345,9 @@ void alSndPNew(audioMgrConfig *c) { alLink((ALLink *) (i + tmp1), (ALLink *) (i + tmp1 - 1)); } - D_80119C28 = alHeapDBAlloc(0, 0, c->hp, 2, c->unk10); + gSoundChannelVolume = alHeapDBAlloc(0, 0, c->hp, 2, c->unk10); for (i = 0; i < c->unk10; i++) { - D_80119C28[i] = 32767; + gSoundChannelVolume[i] = 32767; } gAlSndPlayer->drvr = (ALSynth *) alGlobals; @@ -454,15 +454,18 @@ void func_800049F8(s32 soundMask, s16 type, u32 volume) { } } -u16 func_80004A3C(u8 arg0) { - return D_80119C28[arg0]; +/** + * Returns the volume level of the channel ID. +*/ +u16 get_sound_channel_volume(u8 channel) { + return gSoundChannelVolume[channel]; } -//TODO: The structs used here are almost definitely wrong, but they do match, -// so it can at least show the pattern we're looking for. -//arg0 = sound channel? -//arg1 = volume? -void func_80004A60(u8 arg0, u16 arg1) { +//TODO: The structs used here are almost definitely wrong, but they do match, so it can at least show the pattern we're looking for. +/** + * Looks for the intended audio channel in the main buffer and adjusts its volume +*/ +void set_sound_channel_volume(u8 channel, u16 volume) { OSIntMask mask; ALEventQueue *queue; UNUSED s32 pad; @@ -470,13 +473,13 @@ void func_80004A60(u8 arg0, u16 arg1) { mask = osSetIntMask(1); queue = D_800DC6B0; - D_80119C28[arg0] = arg1; + gSoundChannelVolume[channel] = volume; while (queue != NULL) { //This is almost definitely the wrong struct list, but it matches so I'm not going to complain - if ((((ALInstrument *)queue->allocList.next->prev)->priority & 0x3F) == arg0) { + if ((((ALInstrument *) queue->allocList.next->prev)->priority & 0x3F) == channel) { evt.type = 0x800; - evt.msg.spseq.seq = (void *)queue; + evt.msg.spseq.seq = (void *) queue; alEvtqPostEvent(&gAlSndPlayer->evtq, &evt, 0); } queue = (ALEventQueue *) queue->freeList.next; diff --git a/src/unknown_003260.h b/src/unknown_003260.h index 85254abb..9b91e519 100644 --- a/src/unknown_003260.h +++ b/src/unknown_003260.h @@ -121,9 +121,9 @@ void func_80004638(ALBank *bnk, s16 sndIndx, s32 arg2); void func_8000488C(); void func_800049D8(void); void func_800049F8(s32 soundMask, s16 type, u32 volume); -u16 func_80004A3C(u8 arg0); +u16 get_sound_channel_volume(u8 arg0); ALDMAproc __amDmaNew(AMDMAState **state); -void func_80004A60(u8 arg0, u16 arg1); +void set_sound_channel_volume(u8 arg0, u16 arg1); void func_80002DF8(OSMesg mesg); // Non Matching diff --git a/src/unknown_003260_bss.c b/src/unknown_003260_bss.c index 31508483..c6d3226d 100644 --- a/src/unknown_003260_bss.c +++ b/src/unknown_003260_bss.c @@ -27,4 +27,4 @@ OSIoMesg audDMAIOMesgBuf[NUM_DMA_MESSAGES]; OSMesgQueue audDMAMessageQ; OSMesg audDMAMessageBuf[NUM_DMA_MESSAGES]; unk800DC6BC D_80119BD0; -u16 *D_80119C28; +u16 *gSoundChannelVolume; diff --git a/src/unknown_008C40.c b/src/unknown_008C40.c index 14b7cd2d..3e4d425a 100644 --- a/src/unknown_008C40.c +++ b/src/unknown_008C40.c @@ -229,8 +229,8 @@ void func_8000A414(Gfx **arg0, Vertex **arg1, Triangle **arg2, unk800A414_arg3 * sp30 = *arg1; sp2C = *arg2; load_and_set_texture_no_offset(&sp34, NULL, RENDER_NONE); - gDkrVertices(sp34++, OS_PHYSICAL_TO_K0(sp30), (((s32)OS_PHYSICAL_TO_K0(sp30)) & 6) | 0x18, 0x28); - gDkrTriangles(sp34++, OS_PHYSICAL_TO_K0(sp2C), 2, 0); + gSPVertexDKR(sp34++, OS_PHYSICAL_TO_K0(sp30), 4, 0); + gSPPolygon(sp34++, OS_PHYSICAL_TO_K0(sp2C), 2, 0); sp30[0].x = sp2A; sp30[0].y = (s16) (sp28 + 5); sp30[0].z = sp26; diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index 032b9ab5..b840bf23 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -182,7 +182,7 @@ s8 D_8011D4B4; s16 D_8011D4B6; s16 D_8011D4B8; s16 D_8011D4BA; -s32 D_8011D4BC; +s16 D_8011D4BC; /******************************/ @@ -237,9 +237,9 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, Vehicle vehicle, u32 arg4, u32 func_8000CC7C(vehicle, arg4, arg2); func_8000B020(72, 64); if (arg0 == 0 && arg4 == 0) { - func_800C01D8(&D_800DC87C); + transition_begin(&D_800DC87C); } else { - func_800C01D8(&D_800DC874); + transition_begin(&D_800DC874); } set_active_viewports_and_max(D_8011D37C); D_8011B0FC = 0; @@ -1466,7 +1466,7 @@ void func_8002C0C4(s32 modelId) { free_from_memory_pool(D_8011D30C); allocate_at_address_in_main_pool(temp_s4, (u8* ) D_8011D30C, COLOUR_TAG_YELLOW); set_free_queue_state(2); - func_800A83B4(gCurrentLevelModel); + minimap_init(gCurrentLevelModel); for(i = 0; i < gCurrentLevelModel->numberOfSegments; i++) { for(temp_s4 = 0; temp_s4 < gCurrentLevelModel->segments[i].numberOfBatches; temp_s4++) { @@ -1526,7 +1526,7 @@ void func_8002C7D4(void) { free_from_memory_pool(D_8011D30C); free_from_memory_pool(D_8011D370); free_from_memory_pool(D_8011D374); - free_sprite((Sprite *) gCurrentLevelModel->unk20); + free_sprite((Sprite *) gCurrentLevelModel->minimapSprite); for(i = 0; i < MAXCONTROLLERS; i++) { free_from_memory_pool(D_8011D350[i]); free_from_memory_pool(D_8011D320[i]); diff --git a/src/unknown_078050.c b/src/unknown_078050.c index 54978b4b..e078a1a0 100644 --- a/src/unknown_078050.c +++ b/src/unknown_078050.c @@ -24,9 +24,9 @@ s32 sBackgroundFillColour = GPACK_RGBA5551(0, 0, 0, 1) | (GPACK_RGBA5551(0, 0, 0 u32 D_800DE4C0 = 0x40; TextureHeader *D_800DE4C4 = 0; TextureHeader *D_800DE4C8 = 0; -s32 D_800DE4CC = 0; +s32 gChecquerBGEnabled = 0; -unk800DE4D0 gBackgroundDrawFunc = { NULL }; +BackgroundFunction gBackgroundDrawFunc = { NULL }; s32 gfxBufCounter = 0; s32 gfxBufCounter2 = 0; s32 gGfxTaskIsRunning = FALSE; @@ -71,7 +71,7 @@ Gfx D_800DE598[] = { gsSPEndDisplayList(), }; -Gfx D_800DE5E0[] = { +Gfx dChequerBGSettings[] = { gsDPPipeSync(), gsDPSetTextureLOD(G_TL_TILE), gsDPSetTextureLUT(G_TT_NONE), @@ -157,16 +157,16 @@ OSMesgQueue D_80125EC0; OSMesgQueue gGfxTaskMesgQueue; OSMesg D_80125EF0[8]; OSMesg gGfxTaskMesgBuf[8]; -u8 D_80125F30; -u8 D_80125F31; -u8 D_80125F32; -u8 D_80125F33; -u8 D_80125F34; -u8 D_80125F35; -u8 D_80125F36; -u8 D_80125F37; -s32 D_80125F38; -s32 D_80125F3C; +u8 gChequerBGColourR1; +u8 gChequerBGColourG1; +u8 gChequerBGColourB1; +u8 gChequerBGColourA1; +u8 gChequerBGColourR2; +u8 gChequerBGColourG2; +u8 gChequerBGColourB2; +u8 gChequerBGColourA2; +s32 gChequerBGWidth; +s32 gChequerBGHeight; DKR_OSTask gGfxTaskBuf[2]; DKR_OSTask gGfxTaskBuf2[2]; @@ -194,7 +194,7 @@ s32 setup_ostask_xbus(Gfx* dlBegin, Gfx* dlEnd, UNUSED s32 recvMesg) { dkrtask->unused5C = COLOUR_TAG_RED; dkrtask->task.data_ptr = (u64 *) dlBegin; dkrtask->task.data_size = ((s32) dlEnd - (s32) dlBegin) >> 3; // Shifted by 3, repsenting the size of the Gfx type. - dkrtask->task.type = 1; + dkrtask->task.type = M_GFXTASK; dkrtask->task.flags = 2; dkrtask->task.ucode_boot = (u64 *) rspF3DDKRBootStart; dkrtask->task.ucode_boot_size = (s32) (rspF3DDKRDramStart - rspF3DDKRBootStart); @@ -214,13 +214,17 @@ s32 setup_ostask_xbus(Gfx* dlBegin, Gfx* dlEnd, UNUSED s32 recvMesg) { dkrtask->unused60 = 0xFF; dkrtask->unused64 = 0xFF; osWritebackDCacheAll(); - osSendMesg(osScInterruptQ, dkrtask, 1); + osSendMesg(osScInterruptQ, dkrtask, OS_MESG_BLOCK); return 0; } +/** + * Unused variant of the xbus task function. + * Probably intended to be a secondary task system, since it doesn't set the var saying there's a task running. + */ UNUSED void setup_ostask_xbus_2(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { DKR_OSTask *dkrtask; - s32 *mesgBuf; + OSMesg mesgBuf; mesgBuf = NULL; dkrtask = &gGfxTaskBuf2[gfxBufCounter2]; @@ -230,7 +234,7 @@ UNUSED void setup_ostask_xbus_2(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { } dkrtask->task.data_ptr = (u64 *) dlBegin; dkrtask->task.data_size = (s32) (dlEnd - dlBegin) * sizeof(Gfx); - dkrtask->task.type = 1; + dkrtask->task.type = M_GFXTASK; dkrtask->task.flags = 2; dkrtask->task.ucode_boot = (u64 *) rspF3DDKRBootStart; dkrtask->task.ucode_boot_size = (s32) (rspF3DDKRDramStart - rspF3DDKRBootStart); @@ -260,7 +264,7 @@ UNUSED void setup_ostask_xbus_2(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { osWritebackDCacheAll(); osSendMesg(osScInterruptQ, dkrtask, 1); if (recvMesg) { - osRecvMesg(&D_80125EA0, (OSMesg) &mesgBuf, 1); + osRecvMesg(&D_80125EA0, &mesgBuf, OS_MESG_BLOCK); } } @@ -272,7 +276,7 @@ UNUSED void setup_ostask_xbus_2(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { */ UNUSED void setup_ostask_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { DKR_OSTask *dkrtask; - s32 *mesgBuf; + OSMesg mesgBuf; mesgBuf = NULL; dkrtask = &gGfxTaskBuf2[gfxBufCounter2]; @@ -284,7 +288,7 @@ UNUSED void setup_ostask_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { dkrtask->task.data_ptr = (u64 *) dlBegin; dkrtask->task.ucode_boot = (u64 *) rspF3DDKRBootStart; dkrtask->task.data_size = (s32) (dlEnd - dlBegin) * sizeof(Gfx); - dkrtask->task.type = 1; + dkrtask->task.type = M_GFXTASK; dkrtask->task.flags = 2; dkrtask->task.ucode_boot_size = (s32) (rspF3DDKRDramStart - rspF3DDKRBootStart); dkrtask->task.ucode = (u64 *) rspF3DDKRFifoStart; @@ -314,25 +318,29 @@ UNUSED void setup_ostask_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { osSendMesg(osScInterruptQ, dkrtask, 1); if (recvMesg) { - osRecvMesg(&D_80125EA0, (OSMesg) &mesgBuf, 1); + osRecvMesg(&D_80125EA0, &mesgBuf, OS_MESG_BLOCK); } } +/** + * Unused variant of the FIFO task function. + * Probably intended to be a secondary task system, since it doesn't set the var saying there's a task running. + */ UNUSED void setup_ostask_fifo_2(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { DKR_OSTask *dkrtask; - s32 *mesgBuf; + OSMesg mesgBuf; mesgBuf = NULL; dkrtask = &gGfxTaskBuf[gfxBufCounter]; gfxBufCounter++; - // gfxBufCounter being 2 would mean an out of bounds access of gGfxTaskBuf + //!@bug - gfxBufCounter being 2 would mean an out of bounds access of gGfxTaskBuf if (gfxBufCounter == 3) { gfxBufCounter = 0; } dkrtask->task.data_size = (s32) (dlEnd - dlBegin) * sizeof(Gfx); dkrtask->task.data_ptr = (u64 *) dlBegin; - dkrtask->task.type = 1; + dkrtask->task.type = M_GFXTASK; dkrtask->task.flags = 2; dkrtask->task.ucode_boot = (u64 *) rspF3DDKRBootStart; dkrtask->task.ucode_boot_size = (s32) (rspF3DDKRDramStart - rspF3DDKRBootStart); @@ -360,7 +368,7 @@ UNUSED void setup_ostask_fifo_2(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg) { osWritebackDCacheAll(); osSendMesg(osScInterruptQ, dkrtask, 1); if (recvMesg) { - osRecvMesg(&gGfxTaskMesgQueue, (OSMesg) &mesgBuf, 1); + osRecvMesg(&gGfxTaskMesgQueue, &mesgBuf, OS_MESG_BLOCK); } } @@ -403,13 +411,12 @@ void set_background_fill_colour(s32 red, s32 green, s32 blue) { sBackgroundFillColour = GPACK_RGBA5551(red, green, blue, 1); sBackgroundFillColour |= (sBackgroundFillColour << 16); } - /** * Clears the ZBuffer first, then decides how to draw the background which goes directly * over the colour buffer. DrawBG if set to 0 (which never happens) will completely skip * over clearing the colour buffer. */ -void render_background(Gfx **dlist, Matrix *mtx, s32 drawBG) { +void render_background(Gfx **dList, Matrix *mtx, s32 drawBG) { s32 widthAndHeight; s32 w; s32 h; @@ -422,66 +429,66 @@ void render_background(Gfx **dlist, Matrix *mtx, s32 drawBG) { w = GET_VIDEO_WIDTH(widthAndHeight); h = GET_VIDEO_HEIGHT(widthAndHeight); - gDPPipeSync((*dlist)++); - gDPSetScissor((*dlist)++, 0, 0, 0, w - 1, h - 1); - gDPSetCycleType((*dlist)++, G_CYC_FILL); - gDPSetColorImage((*dlist)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, w, SEGMENT_DEPTH_BUFFER); - gDPSetFillColor((*dlist)++, GPACK_RGBA5551(255, 255, 240, 0) << 16 | GPACK_RGBA5551(255, 255, 240, 0)); - gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1); - gDPPipeSync((*dlist)++); - gDPSetColorImage((*dlist)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, w, SEGMENT_COLOUR_BUFFER); + gDPPipeSync((*dList)++); + gDPSetScissor((*dList)++, 0, 0, 0, w - 1, h - 1); + gDPSetCycleType((*dList)++, G_CYC_FILL); + gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, w, SEGMENT_DEPTH_BUFFER); + gDPSetFillColor((*dList)++, GPACK_RGBA5551(255, 255, 240, 0) << 16 | GPACK_RGBA5551(255, 255, 240, 0)); + gDPFillRectangle((*dList)++, 0, 0, w - 1, h - 1); + gDPPipeSync((*dList)++); + gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, w, SEGMENT_COLOUR_BUFFER); if (drawBG) { - if (func_80066910(0)) { - if (D_800DE4CC) { - func_800787FC(dlist); - } else if (D_800DE4C4 != 0) { - func_80078190(dlist); + if (check_viewport_background_flag(0)) { + if (gChecquerBGEnabled) { + render_chequer_background(dList); + } else if (D_800DE4C4) { + func_80078190(dList); } else if (gBackgroundDrawFunc.ptr != NULL) { - gBackgroundDrawFunc.function((Gfx *) dlist, mtx); + gBackgroundDrawFunc.function((Gfx *) dList, mtx); } else { - gDPSetFillColor((*dlist)++, sBackgroundFillColour); - gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1); + gDPSetFillColor((*dList)++, sBackgroundFillColour); + gDPFillRectangle((*dList)++, 0, 0, w - 1, h - 1); } if (copy_viewport_background_size_to_coords(0, &x1, &y1, &x2, &y2)) { - gDPSetCycleType((*dlist)++, G_CYC_1CYCLE); - gDPSetPrimColor((*dlist)++, 0, 0, sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 255); - gDPSetCombineMode((*dlist)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPSetRenderMode((*dlist)++, G_RM_OPA_SURF, G_RM_OPA_SURF2); - gDPFillRectangle((*dlist)++, x1, y1, x2, y2); + gDPSetCycleType((*dList)++, G_CYC_1CYCLE); + gDPSetPrimColor((*dList)++, 0, 0, sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 255); + gDPSetCombineMode((*dList)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetRenderMode((*dList)++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + gDPFillRectangle((*dList)++, x1, y1, x2, y2); } } else { - if (D_800DE4CC) { - func_800787FC(dlist); - } else if (D_800DE4C4 != 0) { - func_80078190(dlist); + if (gChecquerBGEnabled) { + render_chequer_background(dList); + } else if (D_800DE4C4) { + func_80078190(dList); } else if (gBackgroundDrawFunc.ptr != NULL) { - gBackgroundDrawFunc.function((Gfx *) dlist, mtx); + gBackgroundDrawFunc.function((Gfx *) dList, mtx); } else { - gDPSetFillColor((*dlist)++, (GPACK_RGBA5551(sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 1) << 16) | GPACK_RGBA5551(sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 1)); - gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1); + gDPSetFillColor((*dList)++, (GPACK_RGBA5551(sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 1) << 16) | GPACK_RGBA5551(sBackgroundPrimColourR, sBackgroundPrimColourG, sBackgroundPrimColourB, 1)); + gDPFillRectangle((*dList)++, 0, 0, w - 1, h - 1); } } } - gDPPipeSync((*dlist)++); - func_80067A3C(dlist); + gDPPipeSync((*dList)++); + set_viewport_scissor(dList); } /** * Gets the framebuffer width, then points to the start of segment 0x01 in memory. * afterwards, calls the draw command that initialises all the rendermodes, ready for use. */ -void init_rdp_and_framebuffer(Gfx **dlist) { +void init_rdp_and_framebuffer(Gfx **dList) { s32 width = GET_VIDEO_WIDTH(get_video_width_and_height_as_s32()); - gDPSetColorImage((*dlist)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, SEGMENT_COLOUR_BUFFER); - gDPSetDepthImage((*dlist)++, SEGMENT_DEPTH_BUFFER); - gSPDisplayList((*dlist)++, dRdpInit); + gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, SEGMENT_COLOUR_BUFFER); + gDPSetDepthImage((*dList)++, SEGMENT_DEPTH_BUFFER); + gSPDisplayList((*dList)++, dRdpInit); } /** * Calls the draw command that sets all the OtherModes, ready for use. */ -void init_rsp(Gfx **dlist) { - gSPDisplayList((*dlist)++, dRspInit); +void init_rsp(Gfx **dList) { + gSPDisplayList((*dList)++, dRspInit); } /** @@ -502,53 +509,63 @@ void func_80078170(TextureHeader *arg0, TextureHeader *arg1, u32 arg2) { GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80078190.s") -UNUSED void func_80078778(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { - D_80125F30 = (arg0 >> 24) & 0xFF; - D_80125F31 = (arg0 >> 16) & 0xFF; - D_80125F32 = (arg0 >> 8) & 0xFF; - D_80125F33 = arg0 & 0xFF; - D_80125F34 = (arg1 >> 24) & 0xFF; - D_80125F35 = (arg1 >> 16) & 0xFF; - D_80125F36 = (arg1 >> 8) & 0xFF; - D_80125F37 = arg1 & 0xFF; - D_80125F38 = arg2; - D_80125F3C = arg3; - D_800DE4CC = 1; +/** + * Enables the chequer background and sets up its properties. +*/ +UNUSED void set_chequer_background(s32 colourA, s32 colourB, s32 width, s32 height) { + gChequerBGColourR1 = (colourA >> 24) & 0xFF; + gChequerBGColourG1 = (colourA >> 16) & 0xFF; + gChequerBGColourB1 = (colourA >> 8) & 0xFF; + gChequerBGColourA1 = colourA & 0xFF; + gChequerBGColourR2 = (colourB >> 24) & 0xFF; + gChequerBGColourG2 = (colourB >> 16) & 0xFF; + gChequerBGColourB2 = (colourB >> 8) & 0xFF; + gChequerBGColourA2 = colourB & 0xFF; + gChequerBGWidth = width; + gChequerBGHeight = height; + gChecquerBGEnabled = TRUE; } -UNUSED void func_800787F0(void) { - D_800DE4CC = 0; +/** + * Disables the chequer background. +*/ +UNUSED void disable_chequer_background(void) { + gChecquerBGEnabled = FALSE; } -void func_800787FC(Gfx **arg0) { +/** + * Uses global chequerboard settings to render a background using two different alternating colours. + * Goes unused. +*/ +void render_chequer_background(Gfx **dList) { s32 height; s32 width; - s32 var_t4; // Flips between 0 and 1 + s32 flip; // Flips between 0 and 1 s32 y; s32 x; - var_t4 = get_video_width_and_height_as_s32(); - height = GET_VIDEO_HEIGHT(var_t4) & 0xFFFF; - width = GET_VIDEO_WIDTH(var_t4); + width = get_video_width_and_height_as_s32(); + height = GET_VIDEO_HEIGHT(width) & 0xFFFF; + width = GET_VIDEO_WIDTH(width); - gSPDisplayList((*arg0)++, D_800DE5E0); - gDPSetPrimColor((*arg0)++, 0, 0, D_80125F30, D_80125F31, D_80125F32, D_80125F33); + gSPDisplayList((*dList)++, dChequerBGSettings); + gDPSetPrimColor((*dList)++, 0, 0, gChequerBGColourR1, gChequerBGColourG1, gChequerBGColourB1, gChequerBGColourA1); - for (y = 0, var_t4 = 0; y < height; y += D_80125F3C, var_t4 ^= 1) { - for (x = var_t4 * D_80125F38; x < width; x += D_80125F38 * 2) { - gDPFillRectangle((*arg0)++, x, y, x + D_80125F38, y + D_80125F3C); + for (y = 0, flip = 0; y < height; y += gChequerBGHeight, flip ^= 1) { + for (x = flip * gChequerBGWidth; x < width; x += gChequerBGWidth * 2) { + gDPFillRectangle((*dList)++, x, y, x + gChequerBGWidth, y + gChequerBGHeight); } } - gDPSetPrimColor((*arg0)++, 0, 0, D_80125F34, D_80125F35, D_80125F36, D_80125F37); + gDPSetPrimColor((*dList)++, 0, 0, gChequerBGColourR2, gChequerBGColourG2, gChequerBGColourB2, gChequerBGColourA2); - for (y = 0, var_t4 = 1; y < height; y += D_80125F3C, var_t4 ^= 1) { - for (x = var_t4 * D_80125F38; x < width; x += D_80125F38 * 2) { - gDPFillRectangle((*arg0)++, x, y, x + D_80125F38, y + D_80125F3C); + for (y = 0, flip = 1; y < height; y += gChequerBGHeight, flip ^= 1) { + for (x = flip * gChequerBGWidth; x < width; x += gChequerBGWidth * 2) { + gDPFillRectangle((*dList)++, x, y, x + gChequerBGWidth, y + gChequerBGHeight); } } - gDPPipeSync((*arg0)++); + gDPPipeSync((*dList)++); } /** @@ -564,7 +581,7 @@ void set_background_draw_function(void *func) { * Texture rectangle coordinates use 10.2 precision and texture coords use 10.5 precision. * Typically, you do these shifts in the draw call itself, but Rare decided to do it beforehand. */ -void render_textured_rectangle(Gfx **dlist, DrawTexture *element, s32 xPos, s32 yPos, u8 red, u8 green, u8 blue, u8 alpha) { +void render_textured_rectangle(Gfx **dList, DrawTexture *element, s32 xPos, s32 yPos, u8 red, u8 green, u8 blue, u8 alpha) { TextureHeader *tex; s32 i; s32 uly; @@ -574,8 +591,8 @@ void render_textured_rectangle(Gfx **dlist, DrawTexture *element, s32 xPos, s32 s32 t; s32 s; - gSPDisplayList((*dlist)++, dTextureRectangleModes); - gDPSetPrimColor((*dlist)++, 0, 0, red, green, blue, alpha); + gSPDisplayList((*dList)++, dTextureRectangleModes); + gDPSetPrimColor((*dList)++, 0, 0, red, green, blue, alpha); xPos <<= 2; yPos <<= 2; for (i = 0; (tex = element[i].texture); i++) { @@ -594,12 +611,12 @@ void render_textured_rectangle(Gfx **dlist, DrawTexture *element, s32 xPos, s32 t = -(uly << 3); uly = 0; } - gDkrDmaDisplayList((*dlist)++, OS_PHYSICAL_TO_K0(tex->cmd), tex->numberOfCommands); - gSPTextureRectangle((*dlist)++, ulx, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gDkrDmaDisplayList((*dList)++, OS_PHYSICAL_TO_K0(tex->cmd), tex->numberOfCommands); + gSPTextureRectangle((*dList)++, ulx, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); } } - gDPPipeSync((*dlist)++); - gDPSetPrimColor((*dlist)++, 0, 0, 255, 255, 255, 255); + gDPPipeSync((*dList)++); + gDPSetPrimColor((*dList)++, 0, 0, 255, 255, 255, 255); } GLOBAL_ASM("asm/non_matchings/unknown_078050/render_texture_rectangle_scaled.s") diff --git a/src/unknown_078050.h b/src/unknown_078050.h index cbad46c2..60fc63cb 100644 --- a/src/unknown_078050.h +++ b/src/unknown_078050.h @@ -16,7 +16,7 @@ typedef union { void (*function)(Gfx*, Matrix *); void *ptr; -} unk800DE4D0; +} BackgroundFunction; typedef struct DKR_OSTask { struct DKR_OSTask *next; @@ -44,7 +44,7 @@ extern s32 sBackgroundFillColour; extern u32 D_800DE4C0; extern TextureHeader *D_800DE4C4; extern TextureHeader *D_800DE4C8; -extern s32 D_800DE4CC; +extern s32 gChecquerBGEnabled; extern s32 gfxBufCounter; extern s32 gfxBufCounter2; @@ -69,7 +69,7 @@ void func_80078170(TextureHeader *arg0, TextureHeader *arg1, u32 arg2); s32 setup_ostask_xbus(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg); void setup_ostask_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg); void render_textured_rectangle(Gfx **dlist, DrawTexture *img, s32 xPos, s32 yPos, u8 red, u8 green, u8 blue, u8 alpha); -void func_800787FC(Gfx** arg0); +void render_chequer_background(Gfx** dList); void render_background(Gfx **dlist, Matrix *mtx, s32 drawBG); void set_background_draw_function(void *arg0); diff --git a/src/weather.c b/src/weather.c index 6708e71d..050362e6 100644 --- a/src/weather.c +++ b/src/weather.c @@ -533,7 +533,7 @@ void handle_rain_lightning(s32 updateRate) { gThunderTimer -= updateRate; if (gThunderTimer <= 0) { if (D_800E2C6C >= 32769 && func_800C018C() == 0) { - func_800C01D8(&D_800E2C98); + transition_begin(&D_800E2C98); } play_sound_global(SOUND_LIGHTNING, NULL); gThunderTimer = 0;