diff --git a/README.md b/README.md index 1a6a1a62..7019d05d 100644 --- a/README.md +++ b/README.md @@ -1,181 +1,181 @@ -# Diddy Kong Racing - -This repo contains a work-in-progress decompilation of Diddy Kong Racing for the N64. You will need to have a original copy of the ROM to extract the game's assets. - -Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time. - - -As of October 31, 2023, this is our current score: - -    Decomp progress: 63.04% - -    Documentation progress: 35.21% - - ---- - -## Dependencies - -* `libcapstone-dev` -* `gcc`, Version 8.0 or higher -* `make`, Version 4.2 or higher -* `python3` -* `wget` - -`sudo apt install build-essential pkg-config git python3 wget libcapstone-dev` - -### binutils - -You are not required to install a binutils package, but it does speed up the initial setup if you do have it installed. - -* Ubuntu/Debian (x86): `sudo apt install binutils-mips-linux-gnu` - -## Setup / Building -1. Install the dependencies -2. Place the ROM file within the `baseroms` directory. - **a.** The name of the ROM file does not matter, but it must end with one of these extensions: `.z64`, `.v64`, `.n64`, or `.rom`. It will be detected automatically from an md5 checksum. - **b.** If you use a byte-swapped or little-endian ROM, then it will automatically be converted to a big-endian (.z64) ROM file. -3. Run `make` in the main directory. - **a.** Use the `-jN` argument to use `N` number of threads to speed up building. For example, if you have a system with 4 cores / 4 threads, you should do `make -j4`. - -### Building on MacOS -1. `brew install gcc capstone coreutils` -2. Put GNU-coreutils `bin` on path using by adding `PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"` to your shell rcfile (or update any GNU-util usage in `Makefile` and `tools/Makefile` to use the `g`-prefixed versions). -3. Download latest `macos` build of `ido-static-recomp` from [here](https://github.com/decompals/ido-static-recomp/releases/), and add `cp` the binaries to `tools/ido-static-recomp/build5.3/out`. -4. Take a look at [this gist](https://gist.github.com/tonyspumoni/fc1b4c9217c5f2821a9fc4cbf69b51ef) to see what other updates are needed to get the build to pass, and apply them if they are relevant to your environment. You may need to add specific `-I` and `-L` flags to get things like `openssl` and `gcc-12` includes/libs included. -5. `make` from repository root should work now. - -## Modding -If you are modifying the code in the repo, then you should add `NON_MATCHING=1` to the make command. -Example: `make NON_MATCHING=1 -j4` - -The `NON_MATCHING` define will include the functions that don't exactly match one-to-one, but should be no different functionality-wise. If you do notice any bugs that occur in a `NON_MATCHING` build that are not in the vanilla game, then please file an issue describing the bug. It would be helpful if you can track down which function is causing the bug, but that is not required. - -## Style Guide - -The style guide for the project can be found here: https://docs.google.com/document/d/1euQf8nwynGcCZL1MfoMaLs-XRvx3ejjj8fIfykUZ-NQ - -If you see variables/functions/structs/etc. that doesn't follow these rules, then file an issue and we'll try to fix them. - -## Scripts - -There are some useful scripts that should be kept in mind when working on this repo. - ---- - -#### `./extract.sh ` - -This script will extract all the assets from a DKR ROM and place them into `/assets/` folder according to the config file within the `/extract-ver/` folder. The version parameter should either be `us_1.0`, `us_1.1`, `eu_1.0`, `eu_1.1`, or `jp`. - -Example: `./extract.sh us_1.0` - ---- - -#### `./diff.sh ` - -Compares the assembly output of a function from a built ROM to the base ROM. Useful for decompiling. - -Example: `./diff.sh menu_init` - ---- - -#### `./rename.sh ` - -This script will rename an existing symbol, file name, and/or folder name within the repo with a new one. - -Example: `./rename.sh D_A4001000 SP_IMEM` - ---- - -#### `./get_symbol.sh |` - -Given either a RAM address or symbol, returns its `(symbol, address)` pairing as defined in `/build/us_1.0/dkr.map`. If specified, the RAM address must be in base 16. The `0x` prefix is not required. - -Example: -``` -./get_symbol.sh 0xA4001000 -0xA4001000 = SP_IMEM - -./get_symbol.sh osCicId -0x80000310 = osCicId -``` - ---- - -#### `./score.sh` - -Prints out the current completion percentage of the decomp. You do need to have an `OK` build for this to work properly. - -The scoring is split into 2 sections: -1. Assembly to C Decompilation (Adventure One) -2. Cleanup and Documentation (Adventure Two) - -Show scores for Adventure One & Adventure Two: `./score.sh` -Show score for Adventure One only: `./score.sh -a 1` -Show score for Adventure Two only: `./score.sh -a 2` -Show top 10 files remaining: `./score.sh -t 10` - -To make progress in Adventure 2, a function must be properly named (must not start with `func_`) and also include a doxygen comment above it. - -For example: -```c -/** - * Returns 1 if Drumstick is avaliable to use, or 0 if not. - */ -s32 is_drumstick_unlocked(void) { - return gActiveMagicCodes & 2; -} -``` - - -As of November 2nd, 2023, this is our current score: -``` - ======================================================================== - ADVENTURE ONE (ASM -> C Decompilation) - --------------------------- 63.04% Complete ---------------------------- - # Decompiled functions: 1661 - # GLOBAL_ASM remaining: 184 - # NON_MATCHING functions: 14 - # NON_EQUIVALENT WIP functions: 52 - ----------------------------- Game Status ------------------------------ - Balloons: 30/47, Keys: 3/4, Trophies: 2/5 - T.T. Amulets: 3/4, Wizpig Amulets: 3/4 - ------------------------------------------------------------------------ - We are participating in the Trophy Race of Sherbet Island. (Round Three) - ======================================================================== - ADVENTURE TWO (Cleanup & Documentation) - --------------------------- 35.21% Complete ---------------------------- - # Documented functions: 825 - # Undocumented remaining: 743 - ----------------------------- Game Status ------------------------------ - Balloons: 17/47, Keys: 2/4, Trophies: 1/5 - T.T. Amulets: 2/4, Wizpig Amulets: 1/4 - ------------------------------------------------------------------------ - We are collecting silver coins in Everfrost Peak. (2/8 silver coins) - ======================================================================== -``` - - ---- - -## TODO list - -### Major - -What should be focused on. - -* Decompiling the non-matching asm files into matching C functions. -* Documenting variables & functions - -### Minor - -What can be done, but not essential. - -* Figuring out the formats for the assets in the /assets/ folder. -* Creating tools to modify assets - -### Future - -These features won't be complete anytime soon. - -* Add support for the other 4 versions. +# Diddy Kong Racing + +This repo contains a work-in-progress decompilation of Diddy Kong Racing for the N64. You will need to have a original copy of the ROM to extract the game's assets. + +Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time. + + +As of November 4, 2023, this is our current score: + +    Decomp progress: 64.12% + +    Documentation progress: 35.21% + + +--- + +## Dependencies + +* `libcapstone-dev` +* `gcc`, Version 8.0 or higher +* `make`, Version 4.2 or higher +* `python3` +* `wget` + +`sudo apt install build-essential pkg-config git python3 wget libcapstone-dev` + +### binutils + +You are not required to install a binutils package, but it does speed up the initial setup if you do have it installed. + +* Ubuntu/Debian (x86): `sudo apt install binutils-mips-linux-gnu` + +## Setup / Building +1. Install the dependencies +2. Place the ROM file within the `baseroms` directory. + **a.** The name of the ROM file does not matter, but it must end with one of these extensions: `.z64`, `.v64`, `.n64`, or `.rom`. It will be detected automatically from an md5 checksum. + **b.** If you use a byte-swapped or little-endian ROM, then it will automatically be converted to a big-endian (.z64) ROM file. +3. Run `make` in the main directory. + **a.** Use the `-jN` argument to use `N` number of threads to speed up building. For example, if you have a system with 4 cores / 4 threads, you should do `make -j4`. + +### Building on MacOS +1. `brew install gcc capstone coreutils` +2. Put GNU-coreutils `bin` on path using by adding `PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"` to your shell rcfile (or update any GNU-util usage in `Makefile` and `tools/Makefile` to use the `g`-prefixed versions). +3. Download latest `macos` build of `ido-static-recomp` from [here](https://github.com/decompals/ido-static-recomp/releases/), and add `cp` the binaries to `tools/ido-static-recomp/build5.3/out`. +4. Take a look at [this gist](https://gist.github.com/tonyspumoni/fc1b4c9217c5f2821a9fc4cbf69b51ef) to see what other updates are needed to get the build to pass, and apply them if they are relevant to your environment. You may need to add specific `-I` and `-L` flags to get things like `openssl` and `gcc-12` includes/libs included. +5. `make` from repository root should work now. + +## Modding +If you are modifying the code in the repo, then you should add `NON_MATCHING=1` to the make command. +Example: `make NON_MATCHING=1 -j4` + +The `NON_MATCHING` define will include the functions that don't exactly match one-to-one, but should be no different functionality-wise. If you do notice any bugs that occur in a `NON_MATCHING` build that are not in the vanilla game, then please file an issue describing the bug. It would be helpful if you can track down which function is causing the bug, but that is not required. + +## Style Guide + +The style guide for the project can be found here: https://docs.google.com/document/d/1euQf8nwynGcCZL1MfoMaLs-XRvx3ejjj8fIfykUZ-NQ + +If you see variables/functions/structs/etc. that doesn't follow these rules, then file an issue and we'll try to fix them. + +## Scripts + +There are some useful scripts that should be kept in mind when working on this repo. + +--- + +#### `./extract.sh ` + +This script will extract all the assets from a DKR ROM and place them into `/assets/` folder according to the config file within the `/extract-ver/` folder. The version parameter should either be `us_1.0`, `us_1.1`, `eu_1.0`, `eu_1.1`, or `jp`. + +Example: `./extract.sh us_1.0` + +--- + +#### `./diff.sh ` + +Compares the assembly output of a function from a built ROM to the base ROM. Useful for decompiling. + +Example: `./diff.sh menu_init` + +--- + +#### `./rename.sh ` + +This script will rename an existing symbol, file name, and/or folder name within the repo with a new one. + +Example: `./rename.sh D_A4001000 SP_IMEM` + +--- + +#### `./get_symbol.sh |` + +Given either a RAM address or symbol, returns its `(symbol, address)` pairing as defined in `/build/us_1.0/dkr.map`. If specified, the RAM address must be in base 16. The `0x` prefix is not required. + +Example: +``` +./get_symbol.sh 0xA4001000 +0xA4001000 = SP_IMEM + +./get_symbol.sh osCicId +0x80000310 = osCicId +``` + +--- + +#### `./score.sh` + +Prints out the current completion percentage of the decomp. You do need to have an `OK` build for this to work properly. + +The scoring is split into 2 sections: +1. Assembly to C Decompilation (Adventure One) +2. Cleanup and Documentation (Adventure Two) + +Show scores for Adventure One & Adventure Two: `./score.sh` +Show score for Adventure One only: `./score.sh -a 1` +Show score for Adventure Two only: `./score.sh -a 2` +Show top 10 files remaining: `./score.sh -t 10` + +To make progress in Adventure 2, a function must be properly named (must not start with `func_`) and also include a doxygen comment above it. + +For example: +```c +/** + * Returns 1 if Drumstick is avaliable to use, or 0 if not. + */ +s32 is_drumstick_unlocked(void) { + return gActiveMagicCodes & 2; +} +``` + + +As of November 4, 2023, this is our current score: +``` + ==================================================================== + ADVENTURE ONE (ASM -> C Decompilation) + -------------- 64.12% Complete (67.03% NON_MATCHING) --------------- + # Decompiled functions: 1665 + # GLOBAL_ASM remaining: 180 + # NON_MATCHING functions: 16 + # NON_EQUIVALENT WIP functions: 49 + --------------------------- Game Status ---------------------------- + Balloons: 30/47, Keys: 3/4, Trophies: 3/5 + T.T. Amulets: 3/4, Wizpig Amulets: 3/4 + -------------------------------------------------------------------- + We are racing Taj in the Plane Challenge. (Lap 1/3) + ==================================================================== + ADVENTURE TWO (Cleanup & Documentation) + ------------------------- 35.21% Complete -------------------------- + # Documented functions: 825 + # Undocumented remaining: 743 + --------------------------- Game Status ---------------------------- + Balloons: 17/47, Keys: 2/4, Trophies: 1/5 + T.T. Amulets: 2/4, Wizpig Amulets: 1/4 + -------------------------------------------------------------------- + We are collecting silver coins in Everfrost Peak. (2/8 silver coins) + ==================================================================== +``` + + +--- + +## TODO list + +### Major + +What should be focused on. + +* Decompiling the non-matching asm files into matching C functions. +* Documenting variables & functions + +### Minor + +What can be done, but not essential. + +* Figuring out the formats for the assets in the /assets/ folder. +* Creating tools to modify assets + +### Future + +These features won't be complete anytime soon. + +* Add support for the other 4 versions. diff --git a/asm/non_matchings/menu/func_80086AFC.s b/asm/non_matchings/menu/func_80086AFC.s deleted file mode 100644 index f71b8bf5..00000000 --- a/asm/non_matchings/menu/func_80086AFC.s +++ /dev/null @@ -1,475 +0,0 @@ -.late_rodata -glabel jpt_800E8418 -.word L80086B54, L80086CDC, L80086D54, L80086F74, L80087084, L80087110, L800871C4, L800871C4, L800871C4, L80087158 - -.text -glabel func_80086AFC -/* 0876FC 80086AFC 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 087700 80086B00 AFBF0014 */ sw $ra, 0x14($sp) -/* 087704 80086B04 0C01BAA4 */ jal get_settings -/* 087708 80086B08 00000000 */ nop -/* 08770C 80086B0C 3C0F8012 */ lui $t7, %hi(D_80126BD4) # $t7, 0x8012 -/* 087710 80086B10 8DEF6BD4 */ lw $t7, %lo(D_80126BD4)($t7) -/* 087714 80086B14 3C0E8012 */ lui $t6, %hi(D_80126A0C) # $t6, 0x8012 -/* 087718 80086B18 8DCE6A0C */ lw $t6, %lo(D_80126A0C)($t6) -/* 08771C 80086B1C 000FC100 */ sll $t8, $t7, 4 -/* 087720 80086B20 01D83821 */ addu $a3, $t6, $t8 -/* 087724 80086B24 90F90000 */ lbu $t9, ($a3) -/* 087728 80086B28 00403025 */ move $a2, $v0 -/* 08772C 80086B2C 272AFFFF */ addiu $t2, $t9, -1 -/* 087730 80086B30 2D41000A */ sltiu $at, $t2, 0xa -/* 087734 80086B34 102001A3 */ beqz $at, .L800871C4 -/* 087738 80086B38 000A5080 */ sll $t2, $t2, 2 -/* 08773C 80086B3C 3C01800F */ lui $at, %hi(jpt_800E8418) # $at, 0x800f -/* 087740 80086B40 002A0821 */ addu $at, $at, $t2 -/* 087744 80086B44 8C2A8418 */ lw $t2, %lo(jpt_800E8418)($at) -/* 087748 80086B48 00000000 */ nop -/* 08774C 80086B4C 01400008 */ jr $t2 -/* 087750 80086B50 00000000 */ nop -glabel L80086B54 -/* 087754 80086B54 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087758 80086B58 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 08775C 80086B5C 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087760 80086B60 8D2C0000 */ lw $t4, ($t1) -/* 087764 80086B64 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087768 80086B68 8D0B0000 */ lw $t3, ($t0) -/* 08776C 80086B6C 000C6900 */ sll $t5, $t4, 4 -/* 087770 80086B70 016D1821 */ addu $v1, $t3, $t5 -/* 087774 80086B74 90620000 */ lbu $v0, ($v1) -/* 087778 80086B78 24010001 */ li $at, 1 -/* 08777C 80086B7C 10410007 */ beq $v0, $at, .L80086B9C -/* 087780 80086B80 24010007 */ li $at, 7 -/* 087784 80086B84 10410043 */ beq $v0, $at, .L80086C94 -/* 087788 80086B88 24010008 */ li $at, 8 -/* 08778C 80086B8C 1041003C */ beq $v0, $at, .L80086C80 -/* 087790 80086B90 00000000 */ nop -/* 087794 80086B94 1000018D */ b .L800871CC -/* 087798 80086B98 8FBF0014 */ lw $ra, 0x14($sp) -.L80086B9C: -/* 08779C 80086B9C 90640006 */ lbu $a0, 6($v1) -/* 0877A0 80086BA0 0C01BB06 */ jal force_mark_write_save_file -/* 0877A4 80086BA4 AFA60028 */ sw $a2, 0x28($sp) -/* 0877A8 80086BA8 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 0877AC 80086BAC 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 0877B0 80086BB0 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 0877B4 80086BB4 8D380000 */ lw $t8, ($t1) -/* 0877B8 80086BB8 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 0877BC 80086BBC 8D0E0000 */ lw $t6, ($t0) -/* 0877C0 80086BC0 0018C900 */ sll $t9, $t8, 4 -/* 0877C4 80086BC4 01D95021 */ addu $t2, $t6, $t9 -/* 0877C8 80086BC8 914C0006 */ lbu $t4, 6($t2) -/* 0877CC 80086BCC 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 -/* 0877D0 80086BD0 8FA60028 */ lw $a2, 0x28($sp) -/* 0877D4 80086BD4 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 -/* 0877D8 80086BD8 000C5880 */ sll $t3, $t4, 2 -/* 0877DC 80086BDC 006B6821 */ addu $t5, $v1, $t3 -/* 0877E0 80086BE0 8DB80000 */ lw $t8, ($t5) -/* 0877E4 80086BE4 8CCF0010 */ lw $t7, 0x10($a2) -/* 0877E8 80086BE8 00000000 */ nop -/* 0877EC 80086BEC AF0F0010 */ sw $t7, 0x10($t8) -/* 0877F0 80086BF0 8D390000 */ lw $t9, ($t1) -/* 0877F4 80086BF4 8D0E0000 */ lw $t6, ($t0) -/* 0877F8 80086BF8 00195100 */ sll $t2, $t9, 4 -/* 0877FC 80086BFC 01CA6021 */ addu $t4, $t6, $t2 -/* 087800 80086C00 918B0006 */ lbu $t3, 6($t4) -/* 087804 80086C04 00000000 */ nop -/* 087808 80086C08 000B6880 */ sll $t5, $t3, 2 -/* 08780C 80086C0C 006D7821 */ addu $t7, $v1, $t5 -/* 087810 80086C10 8DF80000 */ lw $t8, ($t7) -/* 087814 80086C14 00000000 */ nop -/* 087818 80086C18 A300004B */ sb $zero, 0x4b($t8) -/* 08781C 80086C1C 8D2C0000 */ lw $t4, ($t1) -/* 087820 80086C20 8D0A0000 */ lw $t2, ($t0) -/* 087824 80086C24 000C5900 */ sll $t3, $t4, 4 -/* 087828 80086C28 014B6821 */ addu $t5, $t2, $t3 -/* 08782C 80086C2C 91AF0006 */ lbu $t7, 6($t5) -/* 087830 80086C30 8CD90000 */ lw $t9, ($a2) -/* 087834 80086C34 000FC080 */ sll $t8, $t7, 2 -/* 087838 80086C38 872E0000 */ lh $t6, ($t9) -/* 08783C 80086C3C 0078C821 */ addu $t9, $v1, $t8 -/* 087840 80086C40 8F2C0000 */ lw $t4, ($t9) -/* 087844 80086C44 00000000 */ nop -/* 087848 80086C48 8D8A0000 */ lw $t2, ($t4) -/* 08784C 80086C4C 00000000 */ nop -/* 087850 80086C50 A54E0000 */ sh $t6, ($t2) -/* 087854 80086C54 8D2F0000 */ lw $t7, ($t1) -/* 087858 80086C58 8D0D0000 */ lw $t5, ($t0) -/* 08785C 80086C5C 000FC100 */ sll $t8, $t7, 4 -/* 087860 80086C60 01B8C821 */ addu $t9, $t5, $t8 -/* 087864 80086C64 932C0006 */ lbu $t4, 6($t9) -/* 087868 80086C68 8CCB0050 */ lw $t3, 0x50($a2) -/* 08786C 80086C6C 000C7080 */ sll $t6, $t4, 2 -/* 087870 80086C70 006E5021 */ addu $t2, $v1, $t6 -/* 087874 80086C74 8D4F0000 */ lw $t7, ($t2) -/* 087878 80086C78 10000153 */ b .L800871C8 -/* 08787C 80086C7C ADEB0050 */ sw $t3, 0x50($t7) -.L80086C80: -/* 087880 80086C80 90640006 */ lbu $a0, 6($v1) -/* 087884 80086C84 0C01CFD7 */ jal write_game_data_to_controller_pak -/* 087888 80086C88 00C02825 */ move $a1, $a2 -/* 08788C 80086C8C 1000014E */ b .L800871C8 -/* 087890 80086C90 AFA20038 */ sw $v0, 0x38($sp) -.L80086C94: -/* 087894 80086C94 90E40006 */ lbu $a0, 6($a3) -/* 087898 80086C98 0C01BB2B */ jal mark_save_file_to_erase -/* 08789C 80086C9C 00000000 */ nop -/* 0878A0 80086CA0 3C198012 */ lui $t9, %hi(D_80126BD4) # $t9, 0x8012 -/* 0878A4 80086CA4 8F396BD4 */ lw $t9, %lo(D_80126BD4)($t9) -/* 0878A8 80086CA8 3C188012 */ lui $t8, %hi(D_80126A0C) # $t8, 0x8012 -/* 0878AC 80086CAC 8F186A0C */ lw $t8, %lo(D_80126A0C)($t8) -/* 0878B0 80086CB0 00196100 */ sll $t4, $t9, 4 -/* 0878B4 80086CB4 030C7021 */ addu $t6, $t8, $t4 -/* 0878B8 80086CB8 91CA0006 */ lbu $t2, 6($t6) -/* 0878BC 80086CBC 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 -/* 0878C0 80086CC0 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 -/* 0878C4 80086CC4 000A5880 */ sll $t3, $t2, 2 -/* 0878C8 80086CC8 006B7821 */ addu $t7, $v1, $t3 -/* 0878CC 80086CCC 8DF90000 */ lw $t9, ($t7) -/* 0878D0 80086CD0 240D0001 */ li $t5, 1 -/* 0878D4 80086CD4 1000013C */ b .L800871C8 -/* 0878D8 80086CD8 A32D004B */ sb $t5, 0x4b($t9) -glabel L80086CDC -/* 0878DC 80086CDC 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 0878E0 80086CE0 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 0878E4 80086CE4 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 0878E8 80086CE8 8D2C0000 */ lw $t4, ($t1) -/* 0878EC 80086CEC 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 0878F0 80086CF0 8D180000 */ lw $t8, ($t0) -/* 0878F4 80086CF4 000C7100 */ sll $t6, $t4, 4 -/* 0878F8 80086CF8 030E1821 */ addu $v1, $t8, $t6 -/* 0878FC 80086CFC 90620000 */ lbu $v0, ($v1) -/* 087900 80086D00 24010007 */ li $at, 7 -/* 087904 80086D04 10410009 */ beq $v0, $at, .L80086D2C -/* 087908 80086D08 00C02025 */ move $a0, $a2 -/* 08790C 80086D0C 24010008 */ li $at, 8 -/* 087910 80086D10 1441012E */ bne $v0, $at, .L800871CC -/* 087914 80086D14 8FBF0014 */ lw $ra, 0x14($sp) -/* 087918 80086D18 90640006 */ lbu $a0, 6($v1) -/* 08791C 80086D1C 0C01D052 */ jal write_time_data_to_controller_pak -/* 087920 80086D20 00C02825 */ move $a1, $a2 -/* 087924 80086D24 10000128 */ b .L800871C8 -/* 087928 80086D28 AFA20038 */ sw $v0, 0x38($sp) -.L80086D2C: -/* 08792C 80086D2C 0C01B9DC */ jal clear_lap_records -/* 087930 80086D30 24050003 */ li $a1, 3 -/* 087934 80086D34 0C01BAFF */ jal mark_to_write_flap_and_course_times -/* 087938 80086D38 00000000 */ nop -/* 08793C 80086D3C 3C0500FF */ lui $a1, (0x00FFFFF0 >> 16) # lui $a1, 0xff -/* 087940 80086D40 34A5FFF0 */ ori $a1, (0x00FFFFF0 & 0xFFFF) # ori $a1, $a1, 0xfff0 -/* 087944 80086D44 0C027AAF */ jal unset_eeprom_settings_value -/* 087948 80086D48 24040000 */ li $a0, 0 -/* 08794C 80086D4C 1000011F */ b .L800871CC -/* 087950 80086D50 8FBF0014 */ lw $ra, 0x14($sp) -glabel L80086D54 -/* 087954 80086D54 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087958 80086D58 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 08795C 80086D5C 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087960 80086D60 8D2B0000 */ lw $t3, ($t1) -/* 087964 80086D64 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087968 80086D68 8D0A0000 */ lw $t2, ($t0) -/* 08796C 80086D6C 000B7900 */ sll $t7, $t3, 4 -/* 087970 80086D70 014F6821 */ addu $t5, $t2, $t7 -/* 087974 80086D74 91A20000 */ lbu $v0, ($t5) -/* 087978 80086D78 24010001 */ li $at, 1 -/* 08797C 80086D7C 10410007 */ beq $v0, $at, .L80086D9C -/* 087980 80086D80 24010007 */ li $at, 7 -/* 087984 80086D84 10410075 */ beq $v0, $at, .L80086F5C -/* 087988 80086D88 24010008 */ li $at, 8 -/* 08798C 80086D8C 1041005B */ beq $v0, $at, .L80086EFC -/* 087990 80086D90 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 -/* 087994 80086D94 1000010D */ b .L800871CC -/* 087998 80086D98 8FBF0014 */ lw $ra, 0x14($sp) -.L80086D9C: -/* 08799C 80086D9C 90E40006 */ lbu $a0, 6($a3) -/* 0879A0 80086DA0 8CE50008 */ lw $a1, 8($a3) -/* 0879A4 80086DA4 0C01CF87 */ jal read_game_data_from_controller_pak -/* 0879A8 80086DA8 AFA60028 */ sw $a2, 0x28($sp) -/* 0879AC 80086DAC 8FA60028 */ lw $a2, 0x28($sp) -/* 0879B0 80086DB0 AFA20038 */ sw $v0, 0x38($sp) -/* 0879B4 80086DB4 8CD90010 */ lw $t9, 0x10($a2) -/* 0879B8 80086DB8 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 0879BC 80086DBC 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 0879C0 80086DC0 332C0004 */ andi $t4, $t9, 4 -/* 0879C4 80086DC4 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 0879C8 80086DC8 1180000B */ beqz $t4, .L80086DF8 -/* 0879CC 80086DCC 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 0879D0 80086DD0 0C027B18 */ jal is_adventure_two_unlocked -/* 0879D4 80086DD4 AFA60028 */ sw $a2, 0x28($sp) -/* 0879D8 80086DD8 8FA60028 */ lw $a2, 0x28($sp) -/* 0879DC 80086DDC 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 0879E0 80086DE0 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 0879E4 80086DE4 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 0879E8 80086DE8 14400003 */ bnez $v0, .L80086DF8 -/* 0879EC 80086DEC 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 0879F0 80086DF0 2418000A */ li $t8, 10 -/* 0879F4 80086DF4 AFB80038 */ sw $t8, 0x38($sp) -.L80086DF8: -/* 0879F8 80086DF8 8FAE0038 */ lw $t6, 0x38($sp) -/* 0879FC 80086DFC 00000000 */ nop -/* 087A00 80086E00 15C000F2 */ bnez $t6, .L800871CC -/* 087A04 80086E04 8FBF0014 */ lw $ra, 0x14($sp) -/* 087A08 80086E08 8D2A0000 */ lw $t2, ($t1) -/* 087A0C 80086E0C 8D0B0000 */ lw $t3, ($t0) -/* 087A10 80086E10 000A7900 */ sll $t7, $t2, 4 -/* 087A14 80086E14 016F6821 */ addu $t5, $t3, $t7 -/* 087A18 80086E18 91A40006 */ lbu $a0, 6($t5) -/* 087A1C 80086E1C 0C01BB06 */ jal force_mark_write_save_file -/* 087A20 80086E20 AFA60028 */ sw $a2, 0x28($sp) -/* 087A24 80086E24 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087A28 80086E28 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087A2C 80086E2C 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087A30 80086E30 8D380000 */ lw $t8, ($t1) -/* 087A34 80086E34 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087A38 80086E38 8D0C0000 */ lw $t4, ($t0) -/* 087A3C 80086E3C 00187100 */ sll $t6, $t8, 4 -/* 087A40 80086E40 018E5021 */ addu $t2, $t4, $t6 -/* 087A44 80086E44 914B0006 */ lbu $t3, 6($t2) -/* 087A48 80086E48 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 -/* 087A4C 80086E4C 8FA60028 */ lw $a2, 0x28($sp) -/* 087A50 80086E50 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 -/* 087A54 80086E54 000B7880 */ sll $t7, $t3, 2 -/* 087A58 80086E58 006F6821 */ addu $t5, $v1, $t7 -/* 087A5C 80086E5C 8DB80000 */ lw $t8, ($t5) -/* 087A60 80086E60 8CD90010 */ lw $t9, 0x10($a2) -/* 087A64 80086E64 00000000 */ nop -/* 087A68 80086E68 AF190010 */ sw $t9, 0x10($t8) -/* 087A6C 80086E6C 8D2E0000 */ lw $t6, ($t1) -/* 087A70 80086E70 8D0C0000 */ lw $t4, ($t0) -/* 087A74 80086E74 000E5100 */ sll $t2, $t6, 4 -/* 087A78 80086E78 018A5821 */ addu $t3, $t4, $t2 -/* 087A7C 80086E7C 916F0006 */ lbu $t7, 6($t3) -/* 087A80 80086E80 00000000 */ nop -/* 087A84 80086E84 000F6880 */ sll $t5, $t7, 2 -/* 087A88 80086E88 006DC821 */ addu $t9, $v1, $t5 -/* 087A8C 80086E8C 8F380000 */ lw $t8, ($t9) -/* 087A90 80086E90 00000000 */ nop -/* 087A94 80086E94 A300004B */ sb $zero, 0x4b($t8) -/* 087A98 80086E98 8D2B0000 */ lw $t3, ($t1) -/* 087A9C 80086E9C 8D0A0000 */ lw $t2, ($t0) -/* 087AA0 80086EA0 000B7900 */ sll $t7, $t3, 4 -/* 087AA4 80086EA4 014F6821 */ addu $t5, $t2, $t7 -/* 087AA8 80086EA8 91B90006 */ lbu $t9, 6($t5) -/* 087AAC 80086EAC 8CCE0000 */ lw $t6, ($a2) -/* 087AB0 80086EB0 0019C080 */ sll $t8, $t9, 2 -/* 087AB4 80086EB4 85CC0000 */ lh $t4, ($t6) -/* 087AB8 80086EB8 00787021 */ addu $t6, $v1, $t8 -/* 087ABC 80086EBC 8DCB0000 */ lw $t3, ($t6) -/* 087AC0 80086EC0 00000000 */ nop -/* 087AC4 80086EC4 8D6A0000 */ lw $t2, ($t3) -/* 087AC8 80086EC8 00000000 */ nop -/* 087ACC 80086ECC A54C0000 */ sh $t4, ($t2) -/* 087AD0 80086ED0 8D390000 */ lw $t9, ($t1) -/* 087AD4 80086ED4 8D0D0000 */ lw $t5, ($t0) -/* 087AD8 80086ED8 0019C100 */ sll $t8, $t9, 4 -/* 087ADC 80086EDC 01B87021 */ addu $t6, $t5, $t8 -/* 087AE0 80086EE0 91CB0006 */ lbu $t3, 6($t6) -/* 087AE4 80086EE4 8CCF0050 */ lw $t7, 0x50($a2) -/* 087AE8 80086EE8 000B6080 */ sll $t4, $t3, 2 -/* 087AEC 80086EEC 006C5021 */ addu $t2, $v1, $t4 -/* 087AF0 80086EF0 8D590000 */ lw $t9, ($t2) -/* 087AF4 80086EF4 100000B4 */ b .L800871C8 -/* 087AF8 80086EF8 AF2F0050 */ sw $t7, 0x50($t9) -.L80086EFC: -/* 087AFC 80086EFC 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 -/* 087B00 80086F00 8C66000C */ lw $a2, 0xc($v1) -/* 087B04 80086F04 90E40006 */ lbu $a0, 6($a3) -/* 087B08 80086F08 8CE50008 */ lw $a1, 8($a3) -/* 087B0C 80086F0C 0C01CF87 */ jal read_game_data_from_controller_pak -/* 087B10 80086F10 00000000 */ nop -/* 087B14 80086F14 3C038012 */ lui $v1, %hi(gSavefileData) # $v1, 0x8012 -/* 087B18 80086F18 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087B1C 80086F1C 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087B20 80086F20 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087B24 80086F24 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087B28 80086F28 24636530 */ addiu $v1, %lo(gSavefileData) # addiu $v1, $v1, 0x6530 -/* 087B2C 80086F2C 144000A6 */ bnez $v0, .L800871C8 -/* 087B30 80086F30 AFA20038 */ sw $v0, 0x38($sp) -/* 087B34 80086F34 8D380000 */ lw $t8, ($t1) -/* 087B38 80086F38 8D0D0000 */ lw $t5, ($t0) -/* 087B3C 80086F3C 00187100 */ sll $t6, $t8, 4 -/* 087B40 80086F40 01AE5821 */ addu $t3, $t5, $t6 -/* 087B44 80086F44 91640006 */ lbu $a0, 6($t3) -/* 087B48 80086F48 8C65000C */ lw $a1, 0xc($v1) -/* 087B4C 80086F4C 0C01CFD7 */ jal write_game_data_to_controller_pak -/* 087B50 80086F50 00000000 */ nop -/* 087B54 80086F54 1000009C */ b .L800871C8 -/* 087B58 80086F58 AFA20038 */ sw $v0, 0x38($sp) -.L80086F5C: -/* 087B5C 80086F5C 90E40006 */ lbu $a0, 6($a3) -/* 087B60 80086F60 90E50007 */ lbu $a1, 7($a3) -/* 087B64 80086F64 0C01D8B2 */ jal delete_file -/* 087B68 80086F68 00000000 */ nop -/* 087B6C 80086F6C 10000096 */ b .L800871C8 -/* 087B70 80086F70 AFA20038 */ sw $v0, 0x38($sp) -glabel L80086F74 -/* 087B74 80086F74 8CE40008 */ lw $a0, 8($a3) -/* 087B78 80086F78 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087B7C 80086F7C 908C0000 */ lbu $t4, ($a0) -/* 087B80 80086F80 00001825 */ move $v1, $zero -/* 087B84 80086F84 11800006 */ beqz $t4, .L80086FA0 -/* 087B88 80086F88 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087B8C 80086F8C 00801025 */ move $v0, $a0 -.L80086F90: -/* 087B90 80086F90 904A0001 */ lbu $t2, 1($v0) -/* 087B94 80086F94 24630001 */ addiu $v1, $v1, 1 -/* 087B98 80086F98 1540FFFD */ bnez $t2, .L80086F90 -/* 087B9C 80086F9C 24420001 */ addiu $v0, $v0, 1 -.L80086FA0: -/* 087BA0 80086FA0 18600005 */ blez $v1, .L80086FB8 -/* 087BA4 80086FA4 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087BA8 80086FA8 00837821 */ addu $t7, $a0, $v1 -/* 087BAC 80086FAC 91F9FFFF */ lbu $t9, -1($t7) -/* 087BB0 80086FB0 10000003 */ b .L80086FC0 -/* 087BB4 80086FB4 A3B9002C */ sb $t9, 0x2c($sp) -.L80086FB8: -/* 087BB8 80086FB8 24180041 */ li $t8, 65 -/* 087BBC 80086FBC A3B8002C */ sb $t8, 0x2c($sp) -.L80086FC0: -/* 087BC0 80086FC0 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087BC4 80086FC4 8D2E0000 */ lw $t6, ($t1) -/* 087BC8 80086FC8 8D0D0000 */ lw $t5, ($t0) -/* 087BCC 80086FCC 000E5900 */ sll $t3, $t6, 4 -/* 087BD0 80086FD0 A3A0002D */ sb $zero, 0x2d($sp) -/* 087BD4 80086FD4 01AB6021 */ addu $t4, $t5, $t3 -/* 087BD8 80086FD8 91820000 */ lbu $v0, ($t4) -/* 087BDC 80086FDC 24010002 */ li $at, 2 -/* 087BE0 80086FE0 10410007 */ beq $v0, $at, .L80087000 -/* 087BE4 80086FE4 24010007 */ li $at, 7 -/* 087BE8 80086FE8 10410020 */ beq $v0, $at, .L8008706C -/* 087BEC 80086FEC 24010008 */ li $at, 8 -/* 087BF0 80086FF0 10410008 */ beq $v0, $at, .L80087014 -/* 087BF4 80086FF4 27A5002C */ addiu $a1, $sp, 0x2c -/* 087BF8 80086FF8 10000074 */ b .L800871CC -/* 087BFC 80086FFC 8FBF0014 */ lw $ra, 0x14($sp) -.L80087000: -/* 087C00 80087000 90E40006 */ lbu $a0, 6($a3) -/* 087C04 80087004 0C01D006 */ jal read_time_data_from_controller_pak -/* 087C08 80087008 27A5002C */ addiu $a1, $sp, 0x2c -/* 087C0C 8008700C 1000006E */ b .L800871C8 -/* 087C10 80087010 AFA20038 */ sw $v0, 0x38($sp) -.L80087014: -/* 087C14 80087014 90E40006 */ lbu $a0, 6($a3) -/* 087C18 80087018 0C01D006 */ jal read_time_data_from_controller_pak -/* 087C1C 8008701C AFA60028 */ sw $a2, 0x28($sp) -/* 087C20 80087020 8FA60028 */ lw $a2, 0x28($sp) -/* 087C24 80087024 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087C28 80087028 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087C2C 8008702C 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087C30 80087030 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087C34 80087034 14400009 */ bnez $v0, .L8008705C -/* 087C38 80087038 AFA20038 */ sw $v0, 0x38($sp) -/* 087C3C 8008703C 8D2F0000 */ lw $t7, ($t1) -/* 087C40 80087040 8D0A0000 */ lw $t2, ($t0) -/* 087C44 80087044 000FC900 */ sll $t9, $t7, 4 -/* 087C48 80087048 0159C021 */ addu $t8, $t2, $t9 -/* 087C4C 8008704C 93040006 */ lbu $a0, 6($t8) -/* 087C50 80087050 0C01D052 */ jal write_time_data_to_controller_pak -/* 087C54 80087054 00C02825 */ move $a1, $a2 -/* 087C58 80087058 AFA20038 */ sw $v0, 0x38($sp) -.L8008705C: -/* 087C5C 8008705C 0C01BAD7 */ jal mark_to_read_flap_and_course_times -/* 087C60 80087060 00000000 */ nop -/* 087C64 80087064 10000059 */ b .L800871CC -/* 087C68 80087068 8FBF0014 */ lw $ra, 0x14($sp) -.L8008706C: -/* 087C6C 8008706C 90E40006 */ lbu $a0, 6($a3) -/* 087C70 80087070 90E50007 */ lbu $a1, 7($a3) -/* 087C74 80087074 0C01D8B2 */ jal delete_file -/* 087C78 80087078 00000000 */ nop -/* 087C7C 8008707C 10000052 */ b .L800871C8 -/* 087C80 80087080 AFA20038 */ sw $v0, 0x38($sp) -glabel L80087084 -/* 087C84 80087084 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087C88 80087088 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087C8C 8008708C 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087C90 80087090 8D2D0000 */ lw $t5, ($t1) -/* 087C94 80087094 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087C98 80087098 8D0E0000 */ lw $t6, ($t0) -/* 087C9C 8008709C 000D5900 */ sll $t3, $t5, 4 -/* 087CA0 800870A0 01CB1821 */ addu $v1, $t6, $t3 -/* 087CA4 800870A4 90620000 */ lbu $v0, ($v1) -/* 087CA8 800870A8 24010007 */ li $at, 7 -/* 087CAC 800870AC 10410012 */ beq $v0, $at, .L800870F8 -/* 087CB0 800870B0 24010008 */ li $at, 8 -/* 087CB4 800870B4 10410009 */ beq $v0, $at, .L800870DC -/* 087CB8 800870B8 24010009 */ li $at, 9 -/* 087CBC 800870BC 14410042 */ bne $v0, $at, .L800871C8 -/* 087CC0 800870C0 240C0001 */ li $t4, 1 -/* 087CC4 800870C4 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 087CC8 800870C8 AC2CF47C */ sw $t4, %lo(gMenuDelay)($at) -/* 087CCC 800870CC 90EF0006 */ lbu $t7, 6($a3) -/* 087CD0 800870D0 3C018012 */ lui $at, %hi(D_801264D0) # $at, 0x8012 -/* 087CD4 800870D4 1000003C */ b .L800871C8 -/* 087CD8 800870D8 AC2F64D0 */ sw $t7, %lo(D_801264D0)($at) -.L800870DC: -/* 087CDC 800870DC 90E40006 */ lbu $a0, 6($a3) -/* 087CE0 800870E0 90E50007 */ lbu $a1, 7($a3) -/* 087CE4 800870E4 90660006 */ lbu $a2, 6($v1) -/* 087CE8 800870E8 0C01D8E2 */ jal copy_controller_pak_data -/* 087CEC 800870EC 00000000 */ nop -/* 087CF0 800870F0 10000035 */ b .L800871C8 -/* 087CF4 800870F4 AFA20038 */ sw $v0, 0x38($sp) -.L800870F8: -/* 087CF8 800870F8 90E40006 */ lbu $a0, 6($a3) -/* 087CFC 800870FC 90E50007 */ lbu $a1, 7($a3) -/* 087D00 80087100 0C01D8B2 */ jal delete_file -/* 087D04 80087104 00000000 */ nop -/* 087D08 80087108 1000002F */ b .L800871C8 -/* 087D0C 8008710C AFA20038 */ sw $v0, 0x38($sp) -glabel L80087110 -/* 087D10 80087110 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087D14 80087114 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087D18 80087118 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087D1C 8008711C 8D390000 */ lw $t9, ($t1) -/* 087D20 80087120 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087D24 80087124 8D0A0000 */ lw $t2, ($t0) -/* 087D28 80087128 0019C100 */ sll $t8, $t9, 4 -/* 087D2C 8008712C 01586821 */ addu $t5, $t2, $t8 -/* 087D30 80087130 91AE0000 */ lbu $t6, ($t5) -/* 087D34 80087134 24010007 */ li $at, 7 -/* 087D38 80087138 15C10024 */ bne $t6, $at, .L800871CC -/* 087D3C 8008713C 8FBF0014 */ lw $ra, 0x14($sp) -/* 087D40 80087140 90E40006 */ lbu $a0, 6($a3) -/* 087D44 80087144 90E50007 */ lbu $a1, 7($a3) -/* 087D48 80087148 0C01D8B2 */ jal delete_file -/* 087D4C 8008714C 00000000 */ nop -/* 087D50 80087150 1000001D */ b .L800871C8 -/* 087D54 80087154 AFA20038 */ sw $v0, 0x38($sp) -glabel L80087158 -/* 087D58 80087158 3C098012 */ lui $t1, %hi(D_80126BE4) # $t1, 0x8012 -/* 087D5C 8008715C 25296BE4 */ addiu $t1, %lo(D_80126BE4) # addiu $t1, $t1, 0x6be4 -/* 087D60 80087160 3C088012 */ lui $t0, %hi(D_80126A04) # $t0, 0x8012 -/* 087D64 80087164 8D2C0000 */ lw $t4, ($t1) -/* 087D68 80087168 25086A04 */ addiu $t0, %lo(D_80126A04) # addiu $t0, $t0, 0x6a04 -/* 087D6C 8008716C 8D0B0000 */ lw $t3, ($t0) -/* 087D70 80087170 000C7900 */ sll $t7, $t4, 4 -/* 087D74 80087174 016FC821 */ addu $t9, $t3, $t7 -/* 087D78 80087178 932A0000 */ lbu $t2, ($t9) -/* 087D7C 8008717C 24010007 */ li $at, 7 -/* 087D80 80087180 15410011 */ bne $t2, $at, .L800871C8 -/* 087D84 80087184 24040000 */ li $a0, 0 -/* 087D88 80087188 3C0500FF */ lui $a1, (0x00FFFFF3 >> 16) # lui $a1, 0xff -/* 087D8C 8008718C 0C027AAF */ jal unset_eeprom_settings_value -/* 087D90 80087190 34A5FFF3 */ ori $a1, (0x00FFFFF3 & 0xFFFF) # ori $a1, $a1, 0xfff3 -/* 087D94 80087194 3C03800E */ lui $v1, %hi(gActiveMagicCodes) # $v1, 0x800e -/* 087D98 80087198 3C05800E */ lui $a1, %hi(gUnlockedMagicCodes) # $a1, 0x800e -/* 087D9C 8008719C 24A5FD9C */ addiu $a1, %lo(gUnlockedMagicCodes) # addiu $a1, $a1, -0x264 -/* 087DA0 800871A0 2463FD98 */ addiu $v1, %lo(gActiveMagicCodes) # addiu $v1, $v1, -0x268 -/* 087DA4 800871A4 8C780000 */ lw $t8, ($v1) -/* 087DA8 800871A8 8CAE0000 */ lw $t6, ($a1) -/* 087DAC 800871AC 2404FFFC */ li $a0, -4 -/* 087DB0 800871B0 03046824 */ and $t5, $t8, $a0 -/* 087DB4 800871B4 01C46024 */ and $t4, $t6, $a0 -/* 087DB8 800871B8 AC6D0000 */ sw $t5, ($v1) -/* 087DBC 800871BC 10000002 */ b .L800871C8 -/* 087DC0 800871C0 ACAC0000 */ sw $t4, ($a1) -.L800871C4: -glabel L800871C4 -/* 087DC4 800871C4 AFA00038 */ sw $zero, 0x38($sp) -.L800871C8: -/* 087DC8 800871C8 8FBF0014 */ lw $ra, 0x14($sp) -.L800871CC: -/* 087DCC 800871CC 8FA20038 */ lw $v0, 0x38($sp) -/* 087DD0 800871D0 03E00008 */ jr $ra -/* 087DD4 800871D4 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/menu/func_80096978.s b/asm/non_matchings/menu/func_80096978.s deleted file mode 100644 index f9d702b9..00000000 --- a/asm/non_matchings/menu/func_80096978.s +++ /dev/null @@ -1,620 +0,0 @@ -glabel func_80096978 -/* 097578 80096978 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 09757C 8009697C E7B4002C */ swc1 $f20, 0x2c($sp) -/* 097580 80096980 4485A000 */ mtc1 $a1, $f20 -/* 097584 80096984 AFBF005C */ sw $ra, 0x5c($sp) -/* 097588 80096988 AFBE0058 */ sw $fp, 0x58($sp) -/* 09758C 8009698C AFB70054 */ sw $s7, 0x54($sp) -/* 097590 80096990 AFB60050 */ sw $s6, 0x50($sp) -/* 097594 80096994 AFB5004C */ sw $s5, 0x4c($sp) -/* 097598 80096998 AFB40048 */ sw $s4, 0x48($sp) -/* 09759C 8009699C AFB30044 */ sw $s3, 0x44($sp) -/* 0975A0 800969A0 AFB20040 */ sw $s2, 0x40($sp) -/* 0975A4 800969A4 AFB1003C */ sw $s1, 0x3c($sp) -/* 0975A8 800969A8 AFB00038 */ sw $s0, 0x38($sp) -/* 0975AC 800969AC E7B70030 */ swc1 $f23, 0x30($sp) -/* 0975B0 800969B0 E7B60034 */ swc1 $f22, 0x34($sp) -/* 0975B4 800969B4 E7B50028 */ swc1 $f21, 0x28($sp) -/* 0975B8 800969B8 0C01BAA4 */ jal get_settings -/* 0975BC 800969BC AFA400B0 */ sw $a0, 0xb0($sp) -/* 0975C0 800969C0 3C0E8000 */ lui $t6, %hi(osTvType) # $t6, 0x8000 -/* 0975C4 800969C4 8DCE0300 */ lw $t6, %lo(osTvType)($t6) -/* 0975C8 800969C8 AFA20084 */ sw $v0, 0x84($sp) -/* 0975CC 800969CC 15C00002 */ bnez $t6, .L800969D8 -/* 0975D0 800969D0 00001825 */ move $v1, $zero -/* 0975D4 800969D4 2403000C */ li $v1, 12 -.L800969D8: -/* 0975D8 800969D8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0975DC 800969DC 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 0975E0 800969E0 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 0975E4 800969E4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0975E8 800969E8 0C019FCB */ jal set_ortho_matrix_view -/* 0975EC 800969EC AFA30098 */ sw $v1, 0x98($sp) -/* 0975F0 800969F0 44800000 */ mtc1 $zero, $f0 -/* 0975F4 800969F4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0975F8 800969F8 4600A03C */ c.lt.s $f20, $f0 -/* 0975FC 800969FC 00000000 */ nop -/* 097600 80096A00 45000002 */ bc1f .L80096A0C -/* 097604 80096A04 00000000 */ nop -/* 097608 80096A08 46000506 */ mov.s $f20, $f0 -.L80096A0C: -/* 09760C 80096A0C 44810000 */ mtc1 $at, $f0 -/* 097610 80096A10 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 097614 80096A14 4614003C */ c.lt.s $f0, $f20 -/* 097618 80096A18 44812000 */ mtc1 $at, $f4 -/* 09761C 80096A1C 45000002 */ bc1f .L80096A28 -/* 097620 80096A20 3C01437F */ li $at, 0x437F0000 # 255.000000 -/* 097624 80096A24 46000506 */ mov.s $f20, $f0 -.L80096A28: -/* 097628 80096A28 46142181 */ sub.s $f6, $f4, $f20 -/* 09762C 80096A2C 44814000 */ mtc1 $at, $f8 -/* 097630 80096A30 3C10800E */ lui $s0, %hi(sMenuGuiOpacity) # $s0, 0x800e -/* 097634 80096A34 46083282 */ mul.s $f10, $f6, $f8 -/* 097638 80096A38 2610F764 */ addiu $s0, %lo(sMenuGuiOpacity) # addiu $s0, $s0, -0x89c -/* 09763C 80096A3C 24040002 */ li $a0, 2 -/* 097640 80096A40 444FF800 */ cfc1 $t7, $31 -/* 097644 80096A44 00000000 */ nop -/* 097648 80096A48 35E10003 */ ori $at, $t7, 3 -/* 09764C 80096A4C 38210002 */ xori $at, $at, 2 -/* 097650 80096A50 44C1F800 */ ctc1 $at, $31 -/* 097654 80096A54 00000000 */ nop -/* 097658 80096A58 46005424 */ cvt.w.s $f16, $f10 -/* 09765C 80096A5C 44188000 */ mfc1 $t8, $f16 -/* 097660 80096A60 44CFF800 */ ctc1 $t7, $31 -/* 097664 80096A64 0C0310BB */ jal set_text_font -/* 097668 80096A68 AE180000 */ sw $t8, ($s0) -/* 09766C 80096A6C 00002025 */ move $a0, $zero -/* 097670 80096A70 00002825 */ move $a1, $zero -/* 097674 80096A74 00003025 */ move $a2, $zero -/* 097678 80096A78 0C0310F3 */ jal set_text_background_colour -/* 09767C 80096A7C 00003825 */ move $a3, $zero -/* 097680 80096A80 8E190000 */ lw $t9, ($s0) -/* 097684 80096A84 240400FF */ li $a0, 255 -/* 097688 80096A88 240500FF */ li $a1, 255 -/* 09768C 80096A8C 240600FF */ li $a2, 255 -/* 097690 80096A90 00003825 */ move $a3, $zero -/* 097694 80096A94 0C0310E1 */ jal set_text_colour -/* 097698 80096A98 AFB90010 */ sw $t9, 0x10($sp) -/* 09769C 80096A9C 3C08800E */ lui $t0, %hi(gMenuText) # $t0, 0x800e -/* 0976A0 80096AA0 8D08F4A0 */ lw $t0, %lo(gMenuText)($t0) -/* 0976A4 80096AA4 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0976A8 80096AA8 2409000C */ li $t1, 12 -/* 0976AC 80096AAC 8D070084 */ lw $a3, 0x84($t0) -/* 0976B0 80096AB0 AFA90010 */ sw $t1, 0x10($sp) -/* 0976B4 80096AB4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0976B8 80096AB8 24058000 */ li $a1, -32768 -/* 0976BC 80096ABC 0C031110 */ jal draw_text -/* 0976C0 80096AC0 24060022 */ li $a2, 34 -/* 0976C4 80096AC4 240A00FF */ li $t2, 255 -/* 0976C8 80096AC8 AE0A0000 */ sw $t2, ($s0) -/* 0976CC 80096ACC 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 0976D0 80096AD0 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 0976D4 80096AD4 240D00A0 */ li $t5, 160 -/* 0976D8 80096AD8 244BFFFF */ addiu $t3, $v0, -1 -/* 0976DC 80096ADC 000B6140 */ sll $t4, $t3, 5 -/* 0976E0 80096AE0 01ACA823 */ subu $s5, $t5, $t4 -/* 0976E4 80096AE4 AFB500A4 */ sw $s5, 0xa4($sp) -/* 0976E8 80096AE8 1840003A */ blez $v0, .L80096BD4 -/* 0976EC 80096AEC 0000B025 */ move $s6, $zero -/* 0976F0 80096AF0 3C014370 */ li $at, 0x43700000 # 240.000000 -/* 0976F4 80096AF4 44819000 */ mtc1 $at, $f18 -/* 0976F8 80096AF8 24190036 */ li $t9, 54 -/* 0976FC 80096AFC 46149102 */ mul.s $f4, $f18, $f20 -/* 097700 80096B00 3C12800E */ lui $s2, %hi(gRacerPortraits) # $s2, 0x800e -/* 097704 80096B04 8FB00084 */ lw $s0, 0x84($sp) -/* 097708 80096B08 26520AF0 */ addiu $s2, %lo(gRacerPortraits) # addiu $s2, $s2, 0xaf0 -/* 09770C 80096B0C 444FF800 */ cfc1 $t7, $31 -/* 097710 80096B10 2413017F */ li $s3, 383 -/* 097714 80096B14 35E10003 */ ori $at, $t7, 3 -/* 097718 80096B18 38210002 */ xori $at, $at, 2 -/* 09771C 80096B1C 44C1F800 */ ctc1 $at, $31 -/* 097720 80096B20 00000000 */ nop -/* 097724 80096B24 460021A4 */ cvt.w.s $f6, $f4 -/* 097728 80096B28 44183000 */ mfc1 $t8, $f6 -/* 09772C 80096B2C 44CFF800 */ ctc1 $t7, $31 -/* 097730 80096B30 03388823 */ subu $s1, $t9, $t8 -/* 097734 80096B34 00000000 */ nop -.L80096B38: -/* 097738 80096B38 8208005A */ lb $t0, 0x5a($s0) -/* 09773C 80096B3C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 097740 80096B40 1500000E */ bnez $t0, .L80096B7C -/* 097744 80096B44 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 097748 80096B48 3C028012 */ lui $v0, %hi(gOptionBlinkTimer) # $v0, 0x8012 -/* 09774C 80096B4C 8C4263BC */ lw $v0, %lo(gOptionBlinkTimer)($v0) -/* 097750 80096B50 00000000 */ nop -/* 097754 80096B54 28410020 */ slti $at, $v0, 0x20 -/* 097758 80096B58 10200005 */ beqz $at, .L80096B70 -/* 09775C 80096B5C 00025880 */ sll $t3, $v0, 2 -/* 097760 80096B60 00024880 */ sll $t1, $v0, 2 -/* 097764 80096B64 252A0080 */ addiu $t2, $t1, 0x80 -/* 097768 80096B68 10000006 */ b .L80096B84 -/* 09776C 80096B6C AFAA00A0 */ sw $t2, 0xa0($sp) -.L80096B70: -/* 097770 80096B70 026B6823 */ subu $t5, $s3, $t3 -/* 097774 80096B74 10000003 */ b .L80096B84 -/* 097778 80096B78 AFAD00A0 */ sw $t5, 0xa0($sp) -.L80096B7C: -/* 09777C 80096B7C 240C00FF */ li $t4, 255 -/* 097780 80096B80 AFAC00A0 */ sw $t4, 0xa0($sp) -.L80096B84: -/* 097784 80096B84 820E0059 */ lb $t6, 0x59($s0) -/* 097788 80096B88 93A200A3 */ lbu $v0, 0xa3($sp) -/* 09778C 80096B8C 000E7880 */ sll $t7, $t6, 2 -/* 097790 80096B90 024FC821 */ addu $t9, $s2, $t7 -/* 097794 80096B94 8F250000 */ lw $a1, ($t9) -/* 097798 80096B98 241800FF */ li $t8, 255 -/* 09779C 80096B9C AFB8001C */ sw $t8, 0x1c($sp) -/* 0977A0 80096BA0 26A6FFEC */ addiu $a2, $s5, -0x14 -/* 0977A4 80096BA4 02203825 */ move $a3, $s1 -/* 0977A8 80096BA8 AFA20018 */ sw $v0, 0x18($sp) -/* 0977AC 80096BAC AFA20014 */ sw $v0, 0x14($sp) -/* 0977B0 80096BB0 0C01E2AE */ jal render_textured_rectangle -/* 0977B4 80096BB4 AFA20010 */ sw $v0, 0x10($sp) -/* 0977B8 80096BB8 3C08800E */ lui $t0, %hi(gNumberOfActivePlayers) # $t0, 0x800e -/* 0977BC 80096BBC 8D08F4BC */ lw $t0, %lo(gNumberOfActivePlayers)($t0) -/* 0977C0 80096BC0 26D60001 */ addiu $s6, $s6, 1 -/* 0977C4 80096BC4 02C8082A */ slt $at, $s6, $t0 -/* 0977C8 80096BC8 26100018 */ addiu $s0, $s0, 0x18 -/* 0977CC 80096BCC 1420FFDA */ bnez $at, .L80096B38 -/* 0977D0 80096BD0 26B50040 */ addiu $s5, $s5, 0x40 -.L80096BD4: -/* 0977D4 80096BD4 3C0143A0 */ li $at, 0x43A00000 # 320.000000 -/* 0977D8 80096BD8 44814000 */ mtc1 $at, $f8 -/* 0977DC 80096BDC 8FAB00A4 */ lw $t3, 0xa4($sp) -/* 0977E0 80096BE0 46144282 */ mul.s $f10, $f8, $f20 -/* 0977E4 80096BE4 00002025 */ move $a0, $zero -/* 0977E8 80096BE8 4449F800 */ cfc1 $t1, $31 -/* 0977EC 80096BEC 00000000 */ nop -/* 0977F0 80096BF0 35210003 */ ori $at, $t1, 3 -/* 0977F4 80096BF4 38210002 */ xori $at, $at, 2 -/* 0977F8 80096BF8 44C1F800 */ ctc1 $at, $31 -/* 0977FC 80096BFC 00000000 */ nop -/* 097800 80096C00 46005424 */ cvt.w.s $f16, $f10 -/* 097804 80096C04 440A8000 */ mfc1 $t2, $f16 -/* 097808 80096C08 44C9F800 */ ctc1 $t1, $31 -/* 09780C 80096C0C 014B6821 */ addu $t5, $t2, $t3 -/* 097810 80096C10 0C0310BB */ jal set_text_font -/* 097814 80096C14 AFAD00A4 */ sw $t5, 0xa4($sp) -/* 097818 80096C18 8FA30098 */ lw $v1, 0x98($sp) -/* 09781C 80096C1C 8FA200A4 */ lw $v0, 0xa4($sp) -/* 097820 80096C20 24630068 */ addiu $v1, $v1, 0x68 -/* 097824 80096C24 3C0F800E */ lui $t7, %hi(gRacePlacementsArray) # $t7, 0x800e -/* 097828 80096C28 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 09782C 80096C2C 240C0068 */ li $t4, 104 -/* 097830 80096C30 25EF0BCC */ addiu $t7, %lo(gRacePlacementsArray) # addiu $t7, $t7, 0xbcc -/* 097834 80096C34 246E0004 */ addiu $t6, $v1, 4 -/* 097838 80096C38 24790002 */ addiu $t9, $v1, 2 -/* 09783C 80096C3C 241800FF */ li $t8, 255 -/* 097840 80096C40 3C13800E */ lui $s3, %hi(gMenuImageStack) # $s3, 0x800e -/* 097844 80096C44 2448FFDE */ addiu $t0, $v0, -0x22 -/* 097848 80096C48 2449FFE0 */ addiu $t1, $v0, -0x20 -/* 09784C 80096C4C 4481A000 */ mtc1 $at, $f20 -/* 097850 80096C50 AFAC00A8 */ sw $t4, 0xa8($sp) -/* 097854 80096C54 AFA90064 */ sw $t1, 0x64($sp) -/* 097858 80096C58 AFA80068 */ sw $t0, 0x68($sp) -/* 09785C 80096C5C 2673F75C */ addiu $s3, %lo(gMenuImageStack) # addiu $s3, $s3, -0x8a4 -/* 097860 80096C60 AFB80070 */ sw $t8, 0x70($sp) -/* 097864 80096C64 AFB90074 */ sw $t9, 0x74($sp) -/* 097868 80096C68 AFAE007C */ sw $t6, 0x7c($sp) -/* 09786C 80096C6C AFAF0078 */ sw $t7, 0x78($sp) -/* 097870 80096C70 AFA000A0 */ sw $zero, 0xa0($sp) -/* 097874 80096C74 241E000A */ li $fp, 10 -/* 097878 80096C78 24170064 */ li $s7, 100 -.L80096C7C: -/* 09787C 80096C7C 8FB500A4 */ lw $s5, 0xa4($sp) -/* 097880 80096C80 240A00FF */ li $t2, 255 -/* 097884 80096C84 AFAA0010 */ sw $t2, 0x10($sp) -/* 097888 80096C88 00002025 */ move $a0, $zero -/* 09788C 80096C8C 00002825 */ move $a1, $zero -/* 097890 80096C90 00003025 */ move $a2, $zero -/* 097894 80096C94 240700FF */ li $a3, 255 -/* 097898 80096C98 0C0310E1 */ jal set_text_colour -/* 09789C 80096C9C 0000B025 */ move $s6, $zero -/* 0978A0 80096CA0 8FAB0078 */ lw $t3, 0x78($sp) -/* 0978A4 80096CA4 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0978A8 80096CA8 8FA50064 */ lw $a1, 0x64($sp) -/* 0978AC 80096CAC 8FA6007C */ lw $a2, 0x7c($sp) -/* 0978B0 80096CB0 240D000C */ li $t5, 12 -/* 0978B4 80096CB4 8D670000 */ lw $a3, ($t3) -/* 0978B8 80096CB8 AFAD0010 */ sw $t5, 0x10($sp) -/* 0978BC 80096CBC 0C031110 */ jal draw_text -/* 0978C0 80096CC0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0978C4 80096CC4 240C00FF */ li $t4, 255 -/* 0978C8 80096CC8 AFAC0010 */ sw $t4, 0x10($sp) -/* 0978CC 80096CCC 240400FF */ li $a0, 255 -/* 0978D0 80096CD0 240500FF */ li $a1, 255 -/* 0978D4 80096CD4 240600C0 */ li $a2, 192 -/* 0978D8 80096CD8 0C0310E1 */ jal set_text_colour -/* 0978DC 80096CDC 24070060 */ li $a3, 96 -/* 0978E0 80096CE0 8FAE0078 */ lw $t6, 0x78($sp) -/* 0978E4 80096CE4 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0978E8 80096CE8 8FA50068 */ lw $a1, 0x68($sp) -/* 0978EC 80096CEC 8FA60074 */ lw $a2, 0x74($sp) -/* 0978F0 80096CF0 240F000C */ li $t7, 12 -/* 0978F4 80096CF4 8DC70000 */ lw $a3, ($t6) -/* 0978F8 80096CF8 AFAF0010 */ sw $t7, 0x10($sp) -/* 0978FC 80096CFC 0C031110 */ jal draw_text -/* 097900 80096D00 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 097904 80096D04 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 097908 80096D08 0C01ECF4 */ jal reset_render_settings -/* 09790C 80096D0C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 097910 80096D10 0C01A142 */ jal func_80068508 -/* 097914 80096D14 24040001 */ li $a0, 1 -/* 097918 80096D18 0C01EFC7 */ jal sprite_opaque -/* 09791C 80096D1C 00002025 */ move $a0, $zero -/* 097920 80096D20 240200FF */ li $v0, 255 -/* 097924 80096D24 3C01800E */ lui $at, %hi(sMenuGuiColourR) # $at, 0x800e -/* 097928 80096D28 8FB90070 */ lw $t9, 0x70($sp) -/* 09792C 80096D2C A022F4A4 */ sb $v0, %lo(sMenuGuiColourR)($at) -/* 097930 80096D30 3C01800E */ lui $at, %hi(sMenuGuiColourG) # $at, 0x800e -/* 097934 80096D34 A039F4A8 */ sb $t9, %lo(sMenuGuiColourG)($at) -/* 097938 80096D38 3C01800E */ lui $at, %hi(sMenuGuiColourB) # $at, 0x800e -/* 09793C 80096D3C 3C18800E */ lui $t8, %hi(gNumberOfActivePlayers) # $t8, 0x800e -/* 097940 80096D40 8F18F4BC */ lw $t8, %lo(gNumberOfActivePlayers)($t8) -/* 097944 80096D44 A022F4AC */ sb $v0, %lo(sMenuGuiColourB)($at) -/* 097948 80096D48 3C01800E */ lui $at, %hi(sMenuGuiColourBlendFactor) # $at, 0x800e -/* 09794C 80096D4C 1B00006E */ blez $t8, .L80096F08 -/* 097950 80096D50 A022F4B0 */ sb $v0, %lo(sMenuGuiColourBlendFactor)($at) -/* 097954 80096D54 8FAB00A8 */ lw $t3, 0xa8($sp) -/* 097958 80096D58 240D0078 */ li $t5, 120 -/* 09795C 80096D5C 8FA900A0 */ lw $t1, 0xa0($sp) -/* 097960 80096D60 01AB6023 */ subu $t4, $t5, $t3 -/* 097964 80096D64 448C9000 */ mtc1 $t4, $f18 -/* 097968 80096D68 8FA80084 */ lw $t0, 0x84($sp) -/* 09796C 80096D6C 00095040 */ sll $t2, $t1, 1 -/* 097970 80096D70 468095A0 */ cvt.s.w $f22, $f18 -/* 097974 80096D74 010AA021 */ addu $s4, $t0, $t2 -.L80096D78: -/* 097978 80096D78 9691005C */ lhu $s1, 0x5c($s4) -/* 09797C 80096D7C 240200FF */ li $v0, 255 -/* 097980 80096D80 2A2103E8 */ slti $at, $s1, 0x3e8 -/* 097984 80096D84 14200002 */ bnez $at, .L80096D90 -/* 097988 80096D88 26B8FF54 */ addiu $t8, $s5, -0xac -/* 09798C 80096D8C 241103E7 */ li $s1, 999 -.L80096D90: -/* 097990 80096D90 0237001A */ div $zero, $s1, $s7 -/* 097994 80096D94 8E790000 */ lw $t9, ($s3) -/* 097998 80096D98 16E00002 */ bnez $s7, .L80096DA4 -/* 09799C 80096D9C 00000000 */ nop -/* 0979A0 80096DA0 0007000D */ break 7 -.L80096DA4: -/* 0979A4 80096DA4 2401FFFF */ li $at, -1 -/* 0979A8 80096DA8 16E10004 */ bne $s7, $at, .L80096DBC -/* 0979AC 80096DAC 3C018000 */ lui $at, 0x8000 -/* 0979B0 80096DB0 16210002 */ bne $s1, $at, .L80096DBC -/* 0979B4 80096DB4 00000000 */ nop -/* 0979B8 80096DB8 0006000D */ break 6 -.L80096DBC: -/* 0979BC 80096DBC E7360010 */ swc1 $f22, 0x10($t9) -/* 0979C0 80096DC0 00001012 */ mflo $v0 -/* 0979C4 80096DC4 00402825 */ move $a1, $v0 -/* 0979C8 80096DC8 00000000 */ nop -/* 0979CC 80096DCC 00570019 */ multu $v0, $s7 -/* 0979D0 80096DD0 00007012 */ mflo $t6 -/* 0979D4 80096DD4 022E8823 */ subu $s1, $s1, $t6 -/* 0979D8 80096DD8 00000000 */ nop -/* 0979DC 80096DDC 023E001A */ div $zero, $s1, $fp -/* 0979E0 80096DE0 17C00002 */ bnez $fp, .L80096DEC -/* 0979E4 80096DE4 00000000 */ nop -/* 0979E8 80096DE8 0007000D */ break 7 -.L80096DEC: -/* 0979EC 80096DEC 2401FFFF */ li $at, -1 -/* 0979F0 80096DF0 17C10004 */ bne $fp, $at, .L80096E04 -/* 0979F4 80096DF4 3C018000 */ lui $at, 0x8000 -/* 0979F8 80096DF8 16210002 */ bne $s1, $at, .L80096E04 -/* 0979FC 80096DFC 00000000 */ nop -/* 097A00 80096E00 0006000D */ break 6 -.L80096E04: -/* 097A04 80096E04 00001812 */ mflo $v1 -/* 097A08 80096E08 00609025 */ move $s2, $v1 -/* 097A0C 80096E0C 00000000 */ nop -/* 097A10 80096E10 007E0019 */ multu $v1, $fp -/* 097A14 80096E14 00007812 */ mflo $t7 -/* 097A18 80096E18 022F8823 */ subu $s1, $s1, $t7 -/* 097A1C 80096E1C 18A00019 */ blez $a1, .L80096E84 -/* 097A20 80096E20 00000000 */ nop -/* 097A24 80096E24 44982000 */ mtc1 $t8, $f4 -/* 097A28 80096E28 8E690000 */ lw $t1, ($s3) -/* 097A2C 80096E2C 468021A0 */ cvt.s.w $f6, $f4 -/* 097A30 80096E30 00002025 */ move $a0, $zero -/* 097A34 80096E34 E526000C */ swc1 $f6, 0xc($t1) -/* 097A38 80096E38 8E680000 */ lw $t0, ($s3) -/* 097A3C 80096E3C 0C027298 */ jal func_8009CA60 -/* 097A40 80096E40 A5050018 */ sh $a1, 0x18($t0) -/* 097A44 80096E44 8E700000 */ lw $s0, ($s3) -/* 097A48 80096E48 00002025 */ move $a0, $zero -/* 097A4C 80096E4C C608000C */ lwc1 $f8, 0xc($s0) -/* 097A50 80096E50 00000000 */ nop -/* 097A54 80096E54 46144280 */ add.s $f10, $f8, $f20 -/* 097A58 80096E58 E60A000C */ swc1 $f10, 0xc($s0) -/* 097A5C 80096E5C 8E6A0000 */ lw $t2, ($s3) -/* 097A60 80096E60 0C027298 */ jal func_8009CA60 -/* 097A64 80096E64 A5520018 */ sh $s2, 0x18($t2) -/* 097A68 80096E68 8E700000 */ lw $s0, ($s3) -/* 097A6C 80096E6C 00000000 */ nop -/* 097A70 80096E70 C610000C */ lwc1 $f16, 0xc($s0) -/* 097A74 80096E74 00000000 */ nop -/* 097A78 80096E78 46148480 */ add.s $f18, $f16, $f20 -/* 097A7C 80096E7C 10000017 */ b .L80096EDC -/* 097A80 80096E80 E612000C */ swc1 $f18, 0xc($s0) -.L80096E84: -/* 097A84 80096E84 1A400011 */ blez $s2, .L80096ECC -/* 097A88 80096E88 26AEFF60 */ addiu $t6, $s5, -0xa0 -/* 097A8C 80096E8C 26ADFF5A */ addiu $t5, $s5, -0xa6 -/* 097A90 80096E90 448D2000 */ mtc1 $t5, $f4 -/* 097A94 80096E94 8E6B0000 */ lw $t3, ($s3) -/* 097A98 80096E98 468021A0 */ cvt.s.w $f6, $f4 -/* 097A9C 80096E9C 00002025 */ move $a0, $zero -/* 097AA0 80096EA0 E566000C */ swc1 $f6, 0xc($t3) -/* 097AA4 80096EA4 8E6C0000 */ lw $t4, ($s3) -/* 097AA8 80096EA8 0C027298 */ jal func_8009CA60 -/* 097AAC 80096EAC A5920018 */ sh $s2, 0x18($t4) -/* 097AB0 80096EB0 8E700000 */ lw $s0, ($s3) -/* 097AB4 80096EB4 00000000 */ nop -/* 097AB8 80096EB8 C608000C */ lwc1 $f8, 0xc($s0) -/* 097ABC 80096EBC 00000000 */ nop -/* 097AC0 80096EC0 46144280 */ add.s $f10, $f8, $f20 -/* 097AC4 80096EC4 10000005 */ b .L80096EDC -/* 097AC8 80096EC8 E60A000C */ swc1 $f10, 0xc($s0) -.L80096ECC: -/* 097ACC 80096ECC 448E8000 */ mtc1 $t6, $f16 -/* 097AD0 80096ED0 8E6F0000 */ lw $t7, ($s3) -/* 097AD4 80096ED4 468084A0 */ cvt.s.w $f18, $f16 -/* 097AD8 80096ED8 E5F2000C */ swc1 $f18, 0xc($t7) -.L80096EDC: -/* 097ADC 80096EDC 8E790000 */ lw $t9, ($s3) -/* 097AE0 80096EE0 00002025 */ move $a0, $zero -/* 097AE4 80096EE4 0C027298 */ jal func_8009CA60 -/* 097AE8 80096EE8 A7310018 */ sh $s1, 0x18($t9) -/* 097AEC 80096EEC 3C18800E */ lui $t8, %hi(gNumberOfActivePlayers) # $t8, 0x800e -/* 097AF0 80096EF0 8F18F4BC */ lw $t8, %lo(gNumberOfActivePlayers)($t8) -/* 097AF4 80096EF4 26D60001 */ addiu $s6, $s6, 1 -/* 097AF8 80096EF8 02D8082A */ slt $at, $s6, $t8 -/* 097AFC 80096EFC 26940018 */ addiu $s4, $s4, 0x18 -/* 097B00 80096F00 1420FF9D */ bnez $at, .L80096D78 -/* 097B04 80096F04 26B50040 */ addiu $s5, $s5, 0x40 -.L80096F08: -/* 097B08 80096F08 8FA900A8 */ lw $t1, 0xa8($sp) -/* 097B0C 80096F0C 8FAA007C */ lw $t2, 0x7c($sp) -/* 097B10 80096F10 8FAB0074 */ lw $t3, 0x74($sp) -/* 097B14 80096F14 25280011 */ addiu $t0, $t1, 0x11 -/* 097B18 80096F18 254D0011 */ addiu $t5, $t2, 0x11 -/* 097B1C 80096F1C 256C0011 */ addiu $t4, $t3, 0x11 -/* 097B20 80096F20 AFAC0074 */ sw $t4, 0x74($sp) -/* 097B24 80096F24 AFAD007C */ sw $t5, 0x7c($sp) -/* 097B28 80096F28 AFA800A8 */ sw $t0, 0xa8($sp) -/* 097B2C 80096F2C 0C01A142 */ jal func_80068508 -/* 097B30 80096F30 00002025 */ move $a0, $zero -/* 097B34 80096F34 0C01EFC7 */ jal sprite_opaque -/* 097B38 80096F38 24040001 */ li $a0, 1 -/* 097B3C 80096F3C 240E00FF */ li $t6, 255 -/* 097B40 80096F40 3C01800E */ lui $at, %hi(sMenuGuiColourG) # $at, 0x800e -/* 097B44 80096F44 8FAF00A0 */ lw $t7, 0xa0($sp) -/* 097B48 80096F48 A02EF4A8 */ sb $t6, %lo(sMenuGuiColourG)($at) -/* 097B4C 80096F4C 8FB80078 */ lw $t8, 0x78($sp) -/* 097B50 80096F50 8FA80070 */ lw $t0, 0x70($sp) -/* 097B54 80096F54 3C01800E */ lui $at, %hi(sMenuGuiColourBlendFactor) # $at, 0x800e -/* 097B58 80096F58 A020F4B0 */ sb $zero, %lo(sMenuGuiColourBlendFactor)($at) -/* 097B5C 80096F5C 25F90001 */ addiu $t9, $t7, 1 -/* 097B60 80096F60 2B210004 */ slti $at, $t9, 4 -/* 097B64 80096F64 27090004 */ addiu $t1, $t8, 4 -/* 097B68 80096F68 250AFFC0 */ addiu $t2, $t0, -0x40 -/* 097B6C 80096F6C AFAA0070 */ sw $t2, 0x70($sp) -/* 097B70 80096F70 AFA90078 */ sw $t1, 0x78($sp) -/* 097B74 80096F74 1420FF41 */ bnez $at, .L80096C7C -/* 097B78 80096F78 AFB900A0 */ sw $t9, 0xa0($sp) -/* 097B7C 80096F7C 3C0D8012 */ lui $t5, %hi(gMenuOptionCount) # $t5, 0x8012 -/* 097B80 80096F80 8DAD63E0 */ lw $t5, %lo(gMenuOptionCount)($t5) -/* 097B84 80096F84 3C118012 */ lui $s1, %hi(gResultOptionCount) # $s1, 0x8012 -/* 097B88 80096F88 19A000B7 */ blez $t5, .L80097268 -/* 097B8C 80096F8C 26316C14 */ addiu $s1, %lo(gResultOptionCount) # addiu $s1, $s1, 0x6c14 -/* 097B90 80096F90 8E2B0000 */ lw $t3, ($s1) -/* 097B94 80096F94 24040007 */ li $a0, 7 -/* 097B98 80096F98 000B60C0 */ sll $t4, $t3, 3 -/* 097B9C 80096F9C 0C0315B4 */ jal clear_dialogue_box_open_flag -/* 097BA0 80096FA0 AFAC00A8 */ sw $t4, 0xa8($sp) -/* 097BA4 80096FA4 0C031525 */ jal assign_dialogue_box_id -/* 097BA8 80096FA8 24040007 */ li $a0, 7 -/* 097BAC 80096FAC 8FA20098 */ lw $v0, 0x98($sp) -/* 097BB0 80096FB0 8FAE00A8 */ lw $t6, 0xa8($sp) -/* 097BB4 80096FB4 24040007 */ li $a0, 7 -/* 097BB8 80096FB8 01C27821 */ addu $t7, $t6, $v0 -/* 097BBC 80096FBC 25F800CC */ addiu $t8, $t7, 0xcc -/* 097BC0 80096FC0 004E3023 */ subu $a2, $v0, $t6 -/* 097BC4 80096FC4 24C600C4 */ addiu $a2, $a2, 0xc4 -/* 097BC8 80096FC8 AFB80010 */ sw $t8, 0x10($sp) -/* 097BCC 80096FCC 24050050 */ li $a1, 80 -/* 097BD0 80096FD0 0C0313B7 */ jal set_current_dialogue_box_coords -/* 097BD4 80096FD4 240700F0 */ li $a3, 240 -/* 097BD8 80096FD8 24040007 */ li $a0, 7 -/* 097BDC 80096FDC 24050040 */ li $a1, 64 -/* 097BE0 80096FE0 24060040 */ li $a2, 64 -/* 097BE4 80096FE4 240700FF */ li $a3, 255 -/* 097BE8 80096FE8 0C0313EF */ jal set_current_dialogue_background_colour -/* 097BEC 80096FEC AFA00010 */ sw $zero, 0x10($sp) -/* 097BF0 80096FF0 24040007 */ li $a0, 7 -/* 097BF4 80096FF4 0C0313DF */ jal set_dialogue_font -/* 097BF8 80096FF8 00002825 */ move $a1, $zero -/* 097BFC 80096FFC 24040007 */ li $a0, 7 -/* 097C00 80097000 00002825 */ move $a1, $zero -/* 097C04 80097004 00003025 */ move $a2, $zero -/* 097C08 80097008 00003825 */ move $a3, $zero -/* 097C0C 8009700C 0C031414 */ jal set_current_text_background_colour -/* 097C10 80097010 AFA00010 */ sw $zero, 0x10($sp) -/* 097C14 80097014 3C028012 */ lui $v0, %hi(gOptionBlinkTimer) # $v0, 0x8012 -/* 097C18 80097018 8C4263BC */ lw $v0, %lo(gOptionBlinkTimer)($v0) -/* 097C1C 8009701C 3C10800E */ lui $s0, %hi(gMenuSubOption) # $s0, 0x800e -/* 097C20 80097020 000248C0 */ sll $t1, $v0, 3 -/* 097C24 80097024 29210100 */ slti $at, $t1, 0x100 -/* 097C28 80097028 14200003 */ bnez $at, .L80097038 -/* 097C2C 8009702C 01201025 */ move $v0, $t1 -/* 097C30 80097030 240801FF */ li $t0, 511 -/* 097C34 80097034 01091023 */ subu $v0, $t0, $t1 -.L80097038: -/* 097C38 80097038 26100988 */ addiu $s0, %lo(gMenuSubOption) # addiu $s0, $s0, 0x988 -/* 097C3C 8009703C 8E0A0000 */ lw $t2, ($s0) -/* 097C40 80097040 8FB900A8 */ lw $t9, 0xa8($sp) -/* 097C44 80097044 11400055 */ beqz $t2, .L8009719C -/* 097C48 80097048 0000B025 */ move $s6, $zero -/* 097C4C 8009704C 3C0B800E */ lui $t3, %hi(gMenuText) # $t3, 0x800e -/* 097C50 80097050 8D6BF4A0 */ lw $t3, %lo(gMenuText)($t3) -/* 097C54 80097054 272DFFE8 */ addiu $t5, $t9, -0x18 -/* 097C58 80097058 AFAD00A8 */ sw $t5, 0xa8($sp) -/* 097C5C 8009705C 8D670210 */ lw $a3, 0x210($t3) -/* 097C60 80097060 240C0001 */ li $t4, 1 -/* 097C64 80097064 240E000C */ li $t6, 12 -/* 097C68 80097068 AFAE0014 */ sw $t6, 0x14($sp) -/* 097C6C 8009706C AFAC0010 */ sw $t4, 0x10($sp) -/* 097C70 80097070 AFA200A0 */ sw $v0, 0xa0($sp) -/* 097C74 80097074 25A60008 */ addiu $a2, $t5, 8 -/* 097C78 80097078 24040007 */ li $a0, 7 -/* 097C7C 8009707C 0C03145A */ jal render_dialogue_text -/* 097C80 80097080 24058000 */ li $a1, -32768 -/* 097C84 80097084 8E0F0000 */ lw $t7, ($s0) -/* 097C88 80097088 24010001 */ li $at, 1 -/* 097C8C 8009708C 15E1000C */ bne $t7, $at, .L800970C0 -/* 097C90 80097090 24040007 */ li $a0, 7 -/* 097C94 80097094 8FB800A0 */ lw $t8, 0xa0($sp) -/* 097C98 80097098 240900FF */ li $t1, 255 -/* 097C9C 8009709C AFA90014 */ sw $t1, 0x14($sp) -/* 097CA0 800970A0 24040007 */ li $a0, 7 -/* 097CA4 800970A4 240500FF */ li $a1, 255 -/* 097CA8 800970A8 240600FF */ li $a2, 255 -/* 097CAC 800970AC 240700FF */ li $a3, 255 -/* 097CB0 800970B0 0C031400 */ jal set_current_text_colour -/* 097CB4 800970B4 AFB80010 */ sw $t8, 0x10($sp) -/* 097CB8 800970B8 10000008 */ b .L800970DC -/* 097CBC 800970BC 00000000 */ nop -.L800970C0: -/* 097CC0 800970C0 240800FF */ li $t0, 255 -/* 097CC4 800970C4 AFA80014 */ sw $t0, 0x14($sp) -/* 097CC8 800970C8 240500FF */ li $a1, 255 -/* 097CCC 800970CC 240600FF */ li $a2, 255 -/* 097CD0 800970D0 240700FF */ li $a3, 255 -/* 097CD4 800970D4 0C031400 */ jal set_current_text_colour -/* 097CD8 800970D8 AFA00010 */ sw $zero, 0x10($sp) -.L800970DC: -/* 097CDC 800970DC 3C0A800E */ lui $t2, %hi(gMenuText) # $t2, 0x800e -/* 097CE0 800970E0 8D4AF4A0 */ lw $t2, %lo(gMenuText)($t2) -/* 097CE4 800970E4 8FA600A8 */ lw $a2, 0xa8($sp) -/* 097CE8 800970E8 8D470218 */ lw $a3, 0x218($t2) -/* 097CEC 800970EC 24190001 */ li $t9, 1 -/* 097CF0 800970F0 240D000C */ li $t5, 12 -/* 097CF4 800970F4 AFAD0014 */ sw $t5, 0x14($sp) -/* 097CF8 800970F8 AFB90010 */ sw $t9, 0x10($sp) -/* 097CFC 800970FC 24040007 */ li $a0, 7 -/* 097D00 80097100 24058000 */ li $a1, -32768 -/* 097D04 80097104 0C03145A */ jal render_dialogue_text -/* 097D08 80097108 24C6001A */ addiu $a2, $a2, 0x1a -/* 097D0C 8009710C 8E0B0000 */ lw $t3, ($s0) -/* 097D10 80097110 24010002 */ li $at, 2 -/* 097D14 80097114 1561000C */ bne $t3, $at, .L80097148 -/* 097D18 80097118 24040007 */ li $a0, 7 -/* 097D1C 8009711C 8FAC00A0 */ lw $t4, 0xa0($sp) -/* 097D20 80097120 240E00FF */ li $t6, 255 -/* 097D24 80097124 AFAE0014 */ sw $t6, 0x14($sp) -/* 097D28 80097128 24040007 */ li $a0, 7 -/* 097D2C 8009712C 240500FF */ li $a1, 255 -/* 097D30 80097130 240600FF */ li $a2, 255 -/* 097D34 80097134 240700FF */ li $a3, 255 -/* 097D38 80097138 0C031400 */ jal set_current_text_colour -/* 097D3C 8009713C AFAC0010 */ sw $t4, 0x10($sp) -/* 097D40 80097140 10000008 */ b .L80097164 -/* 097D44 80097144 00000000 */ nop -.L80097148: -/* 097D48 80097148 240F00FF */ li $t7, 255 -/* 097D4C 8009714C AFAF0014 */ sw $t7, 0x14($sp) -/* 097D50 80097150 240500FF */ li $a1, 255 -/* 097D54 80097154 240600FF */ li $a2, 255 -/* 097D58 80097158 240700FF */ li $a3, 255 -/* 097D5C 8009715C 0C031400 */ jal set_current_text_colour -/* 097D60 80097160 AFA00010 */ sw $zero, 0x10($sp) -.L80097164: -/* 097D64 80097164 3C18800E */ lui $t8, %hi(gMenuText) # $t8, 0x800e -/* 097D68 80097168 8F18F4A0 */ lw $t8, %lo(gMenuText)($t8) -/* 097D6C 8009716C 8FA600A8 */ lw $a2, 0xa8($sp) -/* 097D70 80097170 8F070154 */ lw $a3, 0x154($t8) -/* 097D74 80097174 24090001 */ li $t1, 1 -/* 097D78 80097178 2408000C */ li $t0, 12 -/* 097D7C 8009717C AFA80014 */ sw $t0, 0x14($sp) -/* 097D80 80097180 AFA90010 */ sw $t1, 0x10($sp) -/* 097D84 80097184 24040007 */ li $a0, 7 -/* 097D88 80097188 24058000 */ li $a1, -32768 -/* 097D8C 8009718C 0C03145A */ jal render_dialogue_text -/* 097D90 80097190 24C6002A */ addiu $a2, $a2, 0x2a -/* 097D94 80097194 10000032 */ b .L80097260 -/* 097D98 80097198 00000000 */ nop -.L8009719C: -/* 097D9C 8009719C 8E390000 */ lw $t9, ($s1) -/* 097DA0 800971A0 240A000C */ li $t2, 12 -/* 097DA4 800971A4 1B20002E */ blez $t9, .L80097260 -/* 097DA8 800971A8 AFAA00A8 */ sw $t2, 0xa8($sp) -/* 097DAC 800971AC 3C108012 */ lui $s0, %hi(gResultOptionText) # $s0, 0x8012 -/* 097DB0 800971B0 3C128012 */ lui $s2, %hi(gMenuOption) # $s2, 0x8012 -/* 097DB4 800971B4 26526A68 */ addiu $s2, %lo(gMenuOption) # addiu $s2, $s2, 0x6a68 -/* 097DB8 800971B8 26106BF0 */ addiu $s0, %lo(gResultOptionText) # addiu $s0, $s0, 0x6bf0 -/* 097DBC 800971BC AFA200A0 */ sw $v0, 0xa0($sp) -.L800971C0: -/* 097DC0 800971C0 8E4D0000 */ lw $t5, ($s2) -/* 097DC4 800971C4 8FA200A0 */ lw $v0, 0xa0($sp) -/* 097DC8 800971C8 16CD000C */ bne $s6, $t5, .L800971FC -/* 097DCC 800971CC 24040007 */ li $a0, 7 -/* 097DD0 800971D0 240B00FF */ li $t3, 255 -/* 097DD4 800971D4 AFAB0014 */ sw $t3, 0x14($sp) -/* 097DD8 800971D8 24040007 */ li $a0, 7 -/* 097DDC 800971DC 240500FF */ li $a1, 255 -/* 097DE0 800971E0 240600FF */ li $a2, 255 -/* 097DE4 800971E4 240700FF */ li $a3, 255 -/* 097DE8 800971E8 AFA20010 */ sw $v0, 0x10($sp) -/* 097DEC 800971EC 0C031400 */ jal set_current_text_colour -/* 097DF0 800971F0 AFA200A0 */ sw $v0, 0xa0($sp) -/* 097DF4 800971F4 1000000A */ b .L80097220 -/* 097DF8 800971F8 8FA600A8 */ lw $a2, 0xa8($sp) -.L800971FC: -/* 097DFC 800971FC 240C00FF */ li $t4, 255 -/* 097E00 80097200 AFAC0014 */ sw $t4, 0x14($sp) -/* 097E04 80097204 240500FF */ li $a1, 255 -/* 097E08 80097208 240600FF */ li $a2, 255 -/* 097E0C 8009720C 240700FF */ li $a3, 255 -/* 097E10 80097210 AFA00010 */ sw $zero, 0x10($sp) -/* 097E14 80097214 0C031400 */ jal set_current_text_colour -/* 097E18 80097218 AFA200A0 */ sw $v0, 0xa0($sp) -/* 097E1C 8009721C 8FA600A8 */ lw $a2, 0xa8($sp) -.L80097220: -/* 097E20 80097220 8E070000 */ lw $a3, ($s0) -/* 097E24 80097224 240E0001 */ li $t6, 1 -/* 097E28 80097228 240F000C */ li $t7, 12 -/* 097E2C 8009722C AFAF0014 */ sw $t7, 0x14($sp) -/* 097E30 80097230 AFAE0010 */ sw $t6, 0x10($sp) -/* 097E34 80097234 24040007 */ li $a0, 7 -/* 097E38 80097238 0C03145A */ jal render_dialogue_text -/* 097E3C 8009723C 24050050 */ li $a1, 80 -/* 097E40 80097240 8E280000 */ lw $t0, ($s1) -/* 097E44 80097244 8FB800A8 */ lw $t8, 0xa8($sp) -/* 097E48 80097248 26D60001 */ addiu $s6, $s6, 1 -/* 097E4C 8009724C 02C8082A */ slt $at, $s6, $t0 -/* 097E50 80097250 27090010 */ addiu $t1, $t8, 0x10 -/* 097E54 80097254 26100004 */ addiu $s0, $s0, 4 -/* 097E58 80097258 1420FFD9 */ bnez $at, .L800971C0 -/* 097E5C 8009725C AFA900A8 */ sw $t1, 0xa8($sp) -.L80097260: -/* 097E60 80097260 0C03157D */ jal open_dialogue_box -/* 097E64 80097264 24040007 */ li $a0, 7 -.L80097268: -/* 097E68 80097268 8FBF005C */ lw $ra, 0x5c($sp) -/* 097E6C 8009726C C7B50028 */ lwc1 $f21, 0x28($sp) -/* 097E70 80097270 C7B4002C */ lwc1 $f20, 0x2c($sp) -/* 097E74 80097274 C7B70030 */ lwc1 $f23, 0x30($sp) -/* 097E78 80097278 C7B60034 */ lwc1 $f22, 0x34($sp) -/* 097E7C 8009727C 8FB00038 */ lw $s0, 0x38($sp) -/* 097E80 80097280 8FB1003C */ lw $s1, 0x3c($sp) -/* 097E84 80097284 8FB20040 */ lw $s2, 0x40($sp) -/* 097E88 80097288 8FB30044 */ lw $s3, 0x44($sp) -/* 097E8C 8009728C 8FB40048 */ lw $s4, 0x48($sp) -/* 097E90 80097290 8FB5004C */ lw $s5, 0x4c($sp) -/* 097E94 80097294 8FB60050 */ lw $s6, 0x50($sp) -/* 097E98 80097298 8FB70054 */ lw $s7, 0x54($sp) -/* 097E9C 8009729C 8FBE0058 */ lw $fp, 0x58($sp) -/* 097EA0 800972A0 03E00008 */ jr $ra -/* 097EA4 800972A4 27BD00B0 */ addiu $sp, $sp, 0xb0 - diff --git a/asm/non_matchings/menu/render_track_select_setup_ui.s b/asm/non_matchings/menu/render_track_select_setup_ui.s deleted file mode 100644 index 884cdb37..00000000 --- a/asm/non_matchings/menu/render_track_select_setup_ui.s +++ /dev/null @@ -1,1253 +0,0 @@ -.late_rodata -glabel D_800E84F0 -.float 1.2 - -.text -glabel render_track_select_setup_ui -/* 091B30 80090F30 27BDFF68 */ addiu $sp, $sp, -0x98 -/* 091B34 80090F34 AFBF0054 */ sw $ra, 0x54($sp) -/* 091B38 80090F38 AFBE0050 */ sw $fp, 0x50($sp) -/* 091B3C 80090F3C AFB7004C */ sw $s7, 0x4c($sp) -/* 091B40 80090F40 AFB60048 */ sw $s6, 0x48($sp) -/* 091B44 80090F44 AFB50044 */ sw $s5, 0x44($sp) -/* 091B48 80090F48 AFB40040 */ sw $s4, 0x40($sp) -/* 091B4C 80090F4C AFB3003C */ sw $s3, 0x3c($sp) -/* 091B50 80090F50 AFB20038 */ sw $s2, 0x38($sp) -/* 091B54 80090F54 AFB10034 */ sw $s1, 0x34($sp) -/* 091B58 80090F58 AFB00030 */ sw $s0, 0x30($sp) -/* 091B5C 80090F5C AFA40098 */ sw $a0, 0x98($sp) -/* 091B60 80090F60 AFA00080 */ sw $zero, 0x80($sp) -/* 091B64 80090F64 AFA00078 */ sw $zero, 0x78($sp) -/* 091B68 80090F68 0C01BAA4 */ jal get_settings -/* 091B6C 80090F6C AFA00074 */ sw $zero, 0x74($sp) -/* 091B70 80090F70 3C108000 */ lui $s0, %hi(osTvType) # $s0, 0x8000 -/* 091B74 80090F74 26100300 */ addiu $s0, %lo(osTvType) # addiu $s0, $s0, 0x300 -/* 091B78 80090F78 8E0E0000 */ lw $t6, ($s0) -/* 091B7C 80090F7C AFA20070 */ sw $v0, 0x70($sp) -/* 091B80 80090F80 15C00003 */ bnez $t6, .L80090F90 -/* 091B84 80090F84 3C18800E */ lui $t8, %hi(gNumberOfActivePlayers) # $t8, 0x800e -/* 091B88 80090F88 240F000C */ li $t7, 12 -/* 091B8C 80090F8C AFAF0080 */ sw $t7, 0x80($sp) -.L80090F90: -/* 091B90 80090F90 8F18F4BC */ lw $t8, %lo(gNumberOfActivePlayers)($t8) -/* 091B94 80090F94 24010002 */ li $at, 2 -/* 091B98 80090F98 1701000D */ bne $t8, $at, .L80090FD0 -/* 091B9C 80090F9C 00002025 */ move $a0, $zero -/* 091BA0 80090FA0 3C198012 */ lui $t9, %hi(D_801269C8) # $t9, 0x8012 -/* 091BA4 80090FA4 8F3969C8 */ lw $t9, %lo(D_801269C8)($t9) -/* 091BA8 80090FA8 3C088012 */ lui $t0, %hi(gMenuOptionCount) # $t0, 0x8012 -/* 091BAC 80090FAC 2B210004 */ slti $at, $t9, 4 -/* 091BB0 80090FB0 10200007 */ beqz $at, .L80090FD0 -/* 091BB4 80090FB4 00000000 */ nop -/* 091BB8 80090FB8 8D0863E0 */ lw $t0, %lo(gMenuOptionCount)($t0) -/* 091BBC 80090FBC 24090001 */ li $t1, 1 -/* 091BC0 80090FC0 29010002 */ slti $at, $t0, 2 -/* 091BC4 80090FC4 14200002 */ bnez $at, .L80090FD0 -/* 091BC8 80090FC8 00000000 */ nop -/* 091BCC 80090FCC AFA90074 */ sw $t1, 0x74($sp) -.L80090FD0: -/* 091BD0 80090FD0 0C019A25 */ jal camDisableUserView -/* 091BD4 80090FD4 24050001 */ li $a1, 1 -/* 091BD8 80090FD8 0C026F57 */ jal func_8009BD5C -/* 091BDC 80090FDC 00000000 */ nop -/* 091BE0 80090FE0 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 091BE4 80090FE4 3C058012 */ lui $a1, %hi(sMenuCurrHudMat) # $a1, 0x8012 -/* 091BE8 80090FE8 24A563A8 */ addiu $a1, %lo(sMenuCurrHudMat) # addiu $a1, $a1, 0x63a8 -/* 091BEC 80090FEC 0C019FCB */ jal set_ortho_matrix_view -/* 091BF0 80090FF0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 091BF4 80090FF4 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 091BF8 80090FF8 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 091BFC 80090FFC 3C03800E */ lui $v1, %hi(gMenuImageStack) # $v1, 0x800e -/* 091C00 80091000 04410029 */ bgez $v0, .L800910A8 -/* 091C04 80091004 2463F75C */ addiu $v1, %lo(gMenuImageStack) # addiu $v1, $v1, -0x8a4 -/* 091C08 80091008 3C028012 */ lui $v0, %hi(gSelectedTrackX) # $v0, 0x8012 -/* 091C0C 8009100C 8C4269F4 */ lw $v0, %lo(gSelectedTrackX)($v0) -/* 091C10 80091010 24010004 */ li $at, 4 -/* 091C14 80091014 14410004 */ bne $v0, $at, .L80091028 -/* 091C18 80091018 24010005 */ li $at, 5 -/* 091C1C 8009101C 1000000A */ b .L80091048 -/* 091C20 80091020 24040006 */ li $a0, 6 -/* 091C24 80091024 24010005 */ li $at, 5 -.L80091028: -/* 091C28 80091028 14410005 */ bne $v0, $at, .L80091040 -/* 091C2C 8009102C 240B0004 */ li $t3, 4 -/* 091C30 80091030 240A0005 */ li $t2, 5 -/* 091C34 80091034 AFAA0084 */ sw $t2, 0x84($sp) -/* 091C38 80091038 10000003 */ b .L80091048 -/* 091C3C 8009103C 24040005 */ li $a0, 5 -.L80091040: -/* 091C40 80091040 AFAB0084 */ sw $t3, 0x84($sp) -/* 091C44 80091044 24040004 */ li $a0, 4 -.L80091048: -/* 091C48 80091048 8C6C0000 */ lw $t4, ($v1) -/* 091C4C 8009104C 44800000 */ mtc1 $zero, $f0 -/* 091C50 80091050 00041140 */ sll $v0, $a0, 5 -/* 091C54 80091054 01826821 */ addu $t5, $t4, $v0 -/* 091C58 80091058 E5A0000C */ swc1 $f0, 0xc($t5) -/* 091C5C 8009105C 8C6E0000 */ lw $t6, ($v1) -/* 091C60 80091060 3C01800F */ lui $at, %hi(D_800E84F0) # $at, 0x800f -/* 091C64 80091064 01C27821 */ addu $t7, $t6, $v0 -/* 091C68 80091068 E5E00010 */ swc1 $f0, 0x10($t7) -/* 091C6C 8009106C 8E180000 */ lw $t8, ($s0) -/* 091C70 80091070 00000000 */ nop -/* 091C74 80091074 17000004 */ bnez $t8, .L80091088 -/* 091C78 80091078 00000000 */ nop -/* 091C7C 8009107C C42484F0 */ lwc1 $f4, %lo(D_800E84F0)($at) -/* 091C80 80091080 3C01800E */ lui $at, %hi(gTrackSelectWoodFrameHeightScale) # $at, 0x800e -/* 091C84 80091084 E424F454 */ swc1 $f4, %lo(gTrackSelectWoodFrameHeightScale)($at) -.L80091088: -/* 091C88 80091088 0C027298 */ jal func_8009CA60 -/* 091C8C 8009108C 00000000 */ nop -/* 091C90 80091090 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 091C94 80091094 44813000 */ mtc1 $at, $f6 -/* 091C98 80091098 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e -/* 091C9C 8009109C 3C01800E */ lui $at, %hi(gTrackSelectWoodFrameHeightScale) # $at, 0x800e -/* 091CA0 800910A0 8C42F47C */ lw $v0, %lo(gMenuDelay)($v0) -/* 091CA4 800910A4 E426F454 */ swc1 $f6, %lo(gTrackSelectWoodFrameHeightScale)($at) -.L800910A8: -/* 091CA8 800910A8 2841FFEA */ slti $at, $v0, -0x16 -/* 091CAC 800910AC 1420042A */ bnez $at, .L80092158 -/* 091CB0 800910B0 2841001F */ slti $at, $v0, 0x1f -/* 091CB4 800910B4 10200428 */ beqz $at, .L80092158 -/* 091CB8 800910B8 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e -/* 091CBC 800910BC 04410006 */ bgez $v0, .L800910D8 -/* 091CC0 800910C0 3C1E800E */ lui $fp, %hi(sMenuGuiOpacity) # $fp, 0x800e -/* 091CC4 800910C4 0002C900 */ sll $t9, $v0, 4 -/* 091CC8 800910C8 272800FF */ addiu $t0, $t9, 0xff -/* 091CCC 800910CC 27DEF764 */ addiu $fp, %lo(sMenuGuiOpacity) # addiu $fp, $fp, -0x89c -/* 091CD0 800910D0 10000005 */ b .L800910E8 -/* 091CD4 800910D4 AFC80000 */ sw $t0, ($fp) -.L800910D8: -/* 091CD8 800910D8 3C1E800E */ lui $fp, %hi(sMenuGuiOpacity) # $fp, 0x800e -/* 091CDC 800910DC 27DEF764 */ addiu $fp, %lo(sMenuGuiOpacity) # addiu $fp, $fp, -0x89c -/* 091CE0 800910E0 240900FF */ li $t1, 255 -/* 091CE4 800910E4 AFC90000 */ sw $t1, ($fp) -.L800910E8: -/* 091CE8 800910E8 8FCA0000 */ lw $t2, ($fp) -/* 091CEC 800910EC 00000000 */ nop -/* 091CF0 800910F0 05410002 */ bgez $t2, .L800910FC -/* 091CF4 800910F4 00000000 */ nop -/* 091CF8 800910F8 AFC00000 */ sw $zero, ($fp) -.L800910FC: -/* 091CFC 800910FC 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) -/* 091D00 80091100 0C01AC3E */ jal get_map_available_vehicles -/* 091D04 80091104 00000000 */ nop -/* 091D08 80091108 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e -/* 091D0C 8009110C 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) -/* 091D10 80091110 0C01AF77 */ jal get_level_name -/* 091D14 80091114 AFA2007C */ sw $v0, 0x7c($sp) -/* 091D18 80091118 00408025 */ move $s0, $v0 -/* 091D1C 8009111C 0C0310BB */ jal set_text_font -/* 091D20 80091120 24040002 */ li $a0, 2 -/* 091D24 80091124 8FCB0000 */ lw $t3, ($fp) -/* 091D28 80091128 240400C0 */ li $a0, 192 -/* 091D2C 8009112C 240500C0 */ li $a1, 192 -/* 091D30 80091130 240600FF */ li $a2, 255 -/* 091D34 80091134 00003825 */ move $a3, $zero -/* 091D38 80091138 0C0310E1 */ jal set_text_colour -/* 091D3C 8009113C AFAB0010 */ sw $t3, 0x10($sp) -/* 091D40 80091140 00002025 */ move $a0, $zero -/* 091D44 80091144 00002825 */ move $a1, $zero -/* 091D48 80091148 00003025 */ move $a2, $zero -/* 091D4C 8009114C 0C0310F3 */ jal set_text_background_colour -/* 091D50 80091150 00003825 */ move $a3, $zero -/* 091D54 80091154 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 091D58 80091158 240C000C */ li $t4, 12 -/* 091D5C 8009115C AFAC0010 */ sw $t4, 0x10($sp) -/* 091D60 80091160 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 091D64 80091164 24058000 */ li $a1, -32768 -/* 091D68 80091168 2406002B */ li $a2, 43 -/* 091D6C 8009116C 0C031110 */ jal draw_text -/* 091D70 80091170 02003825 */ move $a3, $s0 -/* 091D74 80091174 3C068012 */ lui $a2, %hi(gOptionBlinkTimer) # $a2, 0x8012 -/* 091D78 80091178 8CC663BC */ lw $a2, %lo(gOptionBlinkTimer)($a2) -/* 091D7C 8009117C 24040007 */ li $a0, 7 -/* 091D80 80091180 000668C0 */ sll $t5, $a2, 3 -/* 091D84 80091184 29A10100 */ slti $at, $t5, 0x100 -/* 091D88 80091188 14200003 */ bnez $at, .L80091198 -/* 091D8C 8009118C 01A03025 */ move $a2, $t5 -/* 091D90 80091190 240E01FF */ li $t6, 511 -/* 091D94 80091194 01CD3023 */ subu $a2, $t6, $t5 -.L80091198: -/* 091D98 80091198 8FCF0000 */ lw $t7, ($fp) -/* 091D9C 8009119C 240500FF */ li $a1, 255 -/* 091DA0 800911A0 00003825 */ move $a3, $zero -/* 091DA4 800911A4 AFA60084 */ sw $a2, 0x84($sp) -/* 091DA8 800911A8 0C0313EF */ jal set_current_dialogue_background_colour -/* 091DAC 800911AC AFAF0010 */ sw $t7, 0x10($sp) -/* 091DB0 800911B0 3C028012 */ lui $v0, %hi(gMenuOptionCount) # $v0, 0x8012 -/* 091DB4 800911B4 8C4263E0 */ lw $v0, %lo(gMenuOptionCount)($v0) -/* 091DB8 800911B8 2401FFFF */ li $at, -1 -/* 091DBC 800911BC 1041000A */ beq $v0, $at, .L800911E8 -/* 091DC0 800911C0 24010002 */ li $at, 2 -/* 091DC4 800911C4 14410073 */ bne $v0, $at, .L80091394 -/* 091DC8 800911C8 3C188012 */ lui $t8, %hi(D_801269C8) # $t8, 0x8012 -/* 091DCC 800911CC 8F1869C8 */ lw $t8, %lo(D_801269C8)($t8) -/* 091DD0 800911D0 24010004 */ li $at, 4 -/* 091DD4 800911D4 1701006F */ bne $t8, $at, .L80091394 -/* 091DD8 800911D8 00000000 */ nop -/* 091DDC 800911DC 0C027B18 */ jal is_adventure_two_unlocked -/* 091DE0 800911E0 00000000 */ nop -/* 091DE4 800911E4 1040006B */ beqz $v0, .L80091394 -.L800911E8: -/* 091DE8 800911E8 3C19800E */ lui $t9, %hi(gMenuText) # $t9, 0x800e -/* 091DEC 800911EC 8F39F4A0 */ lw $t9, %lo(gMenuText)($t9) -/* 091DF0 800911F0 00002825 */ move $a1, $zero -/* 091DF4 800911F4 8F240248 */ lw $a0, 0x248($t9) -/* 091DF8 800911F8 0C031368 */ jal get_text_width -/* 091DFC 800911FC 00003025 */ move $a2, $zero -/* 091E00 80091200 3C08800E */ lui $t0, %hi(gMenuText) # $t0, 0x800e -/* 091E04 80091204 8D08F4A0 */ lw $t0, %lo(gMenuText)($t0) -/* 091E08 80091208 0040A025 */ move $s4, $v0 -/* 091E0C 8009120C 8D04024C */ lw $a0, 0x24c($t0) -/* 091E10 80091210 00002825 */ move $a1, $zero -/* 091E14 80091214 0C031368 */ jal get_text_width -/* 091E18 80091218 00003025 */ move $a2, $zero -/* 091E1C 8009121C 0282082A */ slt $at, $s4, $v0 -/* 091E20 80091220 10200002 */ beqz $at, .L8009122C -/* 091E24 80091224 3C10800E */ lui $s0, %hi(gTracksMenuAdventureButton) # $s0, 0x800e -/* 091E28 80091228 0040A025 */ move $s4, $v0 -.L8009122C: -/* 091E2C 8009122C 26100700 */ addiu $s0, %lo(gTracksMenuAdventureButton) # addiu $s0, $s0, 0x700 -/* 091E30 80091230 86020004 */ lh $v0, 4($s0) -/* 091E34 80091234 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 091E38 80091238 0282082A */ slt $at, $s4, $v0 -/* 091E3C 8009123C 10200003 */ beqz $at, .L8009124C -/* 091E40 80091240 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 091E44 80091244 10000002 */ b .L80091250 -/* 091E48 80091248 0040A025 */ move $s4, $v0 -.L8009124C: -/* 091E4C 8009124C 2694000C */ addiu $s4, $s4, 0xc -.L80091250: -/* 091E50 80091250 8FCE0000 */ lw $t6, ($fp) -/* 091E54 80091254 3C01B0E0 */ lui $at, (0xB0E0C000 >> 16) # lui $at, 0xb0e0 -/* 091E58 80091258 3C188012 */ lui $t8, %hi(gMenuObjects) # $t8, 0x8012 -/* 091E5C 8009125C 8F18665C */ lw $t8, %lo(gMenuObjects + 0x10C)($t8) -/* 091E60 80091260 86090002 */ lh $t1, 2($s0) -/* 091E64 80091264 860B0006 */ lh $t3, 6($s0) -/* 091E68 80091268 860C0008 */ lh $t4, 8($s0) -/* 091E6C 8009126C 860D000A */ lh $t5, 0xa($s0) -/* 091E70 80091270 3421C000 */ ori $at, (0xB0E0C000 & 0xFFFF) # ori $at, $at, 0xc000 -/* 091E74 80091274 00142843 */ sra $a1, $s4, 1 -/* 091E78 80091278 240A0078 */ li $t2, 120 -/* 091E7C 8009127C 01C17821 */ addu $t7, $t6, $at -/* 091E80 80091280 AFAF001C */ sw $t7, 0x1c($sp) -/* 091E84 80091284 00052823 */ negu $a1, $a1 -/* 091E88 80091288 02803825 */ move $a3, $s4 -/* 091E8C 8009128C AFB80020 */ sw $t8, 0x20($sp) -/* 091E90 80091290 01493023 */ subu $a2, $t2, $t1 -/* 091E94 80091294 AFAB0010 */ sw $t3, 0x10($sp) -/* 091E98 80091298 AFAC0014 */ sw $t4, 0x14($sp) -/* 091E9C 8009129C 0C020160 */ jal func_80080580 -/* 091EA0 800912A0 AFAD0018 */ sw $t5, 0x18($sp) -/* 091EA4 800912A4 0C02039B */ jal func_80080E6C -/* 091EA8 800912A8 00000000 */ nop -/* 091EAC 800912AC 0C0310BB */ jal set_text_font -/* 091EB0 800912B0 00002025 */ move $a0, $zero -/* 091EB4 800912B4 8619000E */ lh $t9, 0xe($s0) -/* 091EB8 800912B8 86080002 */ lh $t0, 2($s0) -/* 091EBC 800912BC 8FA90080 */ lw $t1, 0x80($sp) -/* 091EC0 800912C0 03285021 */ addu $t2, $t9, $t0 -/* 091EC4 800912C4 3C16800E */ lui $s6, %hi(gTracksMenuAdventureHighlightIndex) # $s6, 0x800e -/* 091EC8 800912C8 0149B821 */ addu $s7, $t2, $t1 -/* 091ECC 800912CC 26F70001 */ addiu $s7, $s7, 1 -/* 091ED0 800912D0 26D60418 */ addiu $s6, %lo(gTracksMenuAdventureHighlightIndex) # addiu $s6, $s6, 0x418 -/* 091ED4 800912D4 0000A025 */ move $s4, $zero -/* 091ED8 800912D8 00008825 */ move $s1, $zero -/* 091EDC 800912DC 241200A1 */ li $s2, 161 -.L800912E0: -/* 091EE0 800912E0 00009825 */ move $s3, $zero -/* 091EE4 800912E4 02E08025 */ move $s0, $s7 -.L800912E8: -/* 091EE8 800912E8 1660000B */ bnez $s3, .L80091318 -/* 091EEC 800912EC 240400FF */ li $a0, 255 -/* 091EF0 800912F0 8FCB0000 */ lw $t3, ($fp) -/* 091EF4 800912F4 00002025 */ move $a0, $zero -/* 091EF8 800912F8 000B6043 */ sra $t4, $t3, 1 -/* 091EFC 800912FC AFAC0010 */ sw $t4, 0x10($sp) -/* 091F00 80091300 00002825 */ move $a1, $zero -/* 091F04 80091304 00003025 */ move $a2, $zero -/* 091F08 80091308 0C0310E1 */ jal set_text_colour -/* 091F0C 8009130C 240700FF */ li $a3, 255 -/* 091F10 80091310 1000000C */ b .L80091344 -/* 091F14 80091314 00000000 */ nop -.L80091318: -/* 091F18 80091318 8ECD0000 */ lw $t5, ($s6) -/* 091F1C 8009131C 0000A825 */ move $s5, $zero -/* 091F20 80091320 168D0003 */ bne $s4, $t5, .L80091330 -/* 091F24 80091324 240500FF */ li $a1, 255 -/* 091F28 80091328 8FB50084 */ lw $s5, 0x84($sp) -/* 091F2C 8009132C 00000000 */ nop -.L80091330: -/* 091F30 80091330 8FCE0000 */ lw $t6, ($fp) -/* 091F34 80091334 240600FF */ li $a2, 255 -/* 091F38 80091338 02A03825 */ move $a3, $s5 -/* 091F3C 8009133C 0C0310E1 */ jal set_text_colour -/* 091F40 80091340 AFAE0010 */ sw $t6, 0x10($sp) -.L80091344: -/* 091F44 80091344 3C0F800E */ lui $t7, %hi(gMenuText) # $t7, 0x800e -/* 091F48 80091348 8DEFF4A0 */ lw $t7, %lo(gMenuText)($t7) -/* 091F4C 8009134C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 091F50 80091350 01F1C021 */ addu $t8, $t7, $s1 -/* 091F54 80091354 8F070248 */ lw $a3, 0x248($t8) -/* 091F58 80091358 2419000C */ li $t9, 12 -/* 091F5C 8009135C AFB90010 */ sw $t9, 0x10($sp) -/* 091F60 80091360 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 091F64 80091364 02532823 */ subu $a1, $s2, $s3 -/* 091F68 80091368 0C031110 */ jal draw_text -/* 091F6C 8009136C 02003025 */ move $a2, $s0 -/* 091F70 80091370 26730002 */ addiu $s3, $s3, 2 -/* 091F74 80091374 24010004 */ li $at, 4 -/* 091F78 80091378 1661FFDB */ bne $s3, $at, .L800912E8 -/* 091F7C 8009137C 2610FFFE */ addiu $s0, $s0, -2 -/* 091F80 80091380 26940001 */ addiu $s4, $s4, 1 -/* 091F84 80091384 24010002 */ li $at, 2 -/* 091F88 80091388 26310004 */ addiu $s1, $s1, 4 -/* 091F8C 8009138C 1681FFD4 */ bne $s4, $at, .L800912E0 -/* 091F90 80091390 26F70010 */ addiu $s7, $s7, 0x10 -.L80091394: -/* 091F94 80091394 3C088012 */ lui $t0, %hi(D_801269C8) # $t0, 0x8012 -/* 091F98 80091398 8D0869C8 */ lw $t0, %lo(D_801269C8)($t0) -/* 091F9C 8009139C 00000000 */ nop -/* 091FA0 800913A0 29010004 */ slti $at, $t0, 4 -/* 091FA4 800913A4 102002D8 */ beqz $at, .L80091F08 -/* 091FA8 800913A8 00000000 */ nop -/* 091FAC 800913AC 0C0310BB */ jal set_text_font -/* 091FB0 800913B0 00002025 */ move $a0, $zero -/* 091FB4 800913B4 8FCA0000 */ lw $t2, ($fp) -/* 091FB8 800913B8 240400FF */ li $a0, 255 -/* 091FBC 800913BC 24050040 */ li $a1, 64 -/* 091FC0 800913C0 24060040 */ li $a2, 64 -/* 091FC4 800913C4 24070060 */ li $a3, 96 -/* 091FC8 800913C8 0C0310E1 */ jal set_text_colour -/* 091FCC 800913CC AFAA0010 */ sw $t2, 0x10($sp) -/* 091FD0 800913D0 3C09800E */ lui $t1, %hi(gMenuText) # $t1, 0x800e -/* 091FD4 800913D4 8D29F4A0 */ lw $t1, %lo(gMenuText)($t1) -/* 091FD8 800913D8 8FB00080 */ lw $s0, 0x80($sp) -/* 091FDC 800913DC 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 091FE0 800913E0 240B0008 */ li $t3, 8 -/* 091FE4 800913E4 8D270024 */ lw $a3, 0x24($t1) -/* 091FE8 800913E8 26100048 */ addiu $s0, $s0, 0x48 -/* 091FEC 800913EC 02003025 */ move $a2, $s0 -/* 091FF0 800913F0 AFAB0010 */ sw $t3, 0x10($sp) -/* 091FF4 800913F4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 091FF8 800913F8 0C031110 */ jal draw_text -/* 091FFC 800913FC 24050038 */ li $a1, 56 -/* 092000 80091400 3C0C800E */ lui $t4, %hi(gMenuText) # $t4, 0x800e -/* 092004 80091404 8D8CF4A0 */ lw $t4, %lo(gMenuText)($t4) -/* 092008 80091408 8FB20080 */ lw $s2, 0x80($sp) -/* 09200C 8009140C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092010 80091410 240D0008 */ li $t5, 8 -/* 092014 80091414 8D870028 */ lw $a3, 0x28($t4) -/* 092018 80091418 2652005C */ addiu $s2, $s2, 0x5c -/* 09201C 8009141C 02403025 */ move $a2, $s2 -/* 092020 80091420 AFAD0010 */ sw $t5, 0x10($sp) -/* 092024 80091424 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092028 80091428 0C031110 */ jal draw_text -/* 09202C 8009142C 24050038 */ li $a1, 56 -/* 092030 80091430 8FCE0000 */ lw $t6, ($fp) -/* 092034 80091434 240400FF */ li $a0, 255 -/* 092038 80091438 24050080 */ li $a1, 128 -/* 09203C 8009143C 240600FF */ li $a2, 255 -/* 092040 80091440 24070060 */ li $a3, 96 -/* 092044 80091444 0C0310E1 */ jal set_text_colour -/* 092048 80091448 AFAE0010 */ sw $t6, 0x10($sp) -/* 09204C 8009144C 3C188012 */ lui $t8, %hi(gPlayerSelectVehicle) # $t8, 0x8012 -/* 092050 80091450 831869C0 */ lb $t8, %lo(gPlayerSelectVehicle)($t8) -/* 092054 80091454 8FAF0070 */ lw $t7, 0x70($sp) -/* 092058 80091458 3C09800E */ lui $t1, %hi(gTrackIdForPreview) # $t1, 0x800e -/* 09205C 8009145C 0018C880 */ sll $t9, $t8, 2 -/* 092060 80091460 8D29F4C4 */ lw $t1, %lo(gTrackIdForPreview)($t1) -/* 092064 80091464 01F94021 */ addu $t0, $t7, $t9 -/* 092068 80091468 8D0A0030 */ lw $t2, 0x30($t0) -/* 09206C 8009146C 00095840 */ sll $t3, $t1, 1 -/* 092070 80091470 014B6021 */ addu $t4, $t2, $t3 -/* 092074 80091474 27B10078 */ addiu $s1, $sp, 0x78 -/* 092078 80091478 95840000 */ lhu $a0, ($t4) -/* 09207C 8009147C 02202825 */ move $a1, $s1 -/* 092080 80091480 0C025DBE */ jal decompress_filename_string -/* 092084 80091484 24060003 */ li $a2, 3 -/* 092088 80091488 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 09208C 8009148C 240D000C */ li $t5, 12 -/* 092090 80091490 AFAD0010 */ sw $t5, 0x10($sp) -/* 092094 80091494 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092098 80091498 240500FA */ li $a1, 250 -/* 09209C 8009149C 02003025 */ move $a2, $s0 -/* 0920A0 800914A0 0C031110 */ jal draw_text -/* 0920A4 800914A4 02203825 */ move $a3, $s1 -/* 0920A8 800914A8 3C188012 */ lui $t8, %hi(gPlayerSelectVehicle) # $t8, 0x8012 -/* 0920AC 800914AC 831869C0 */ lb $t8, %lo(gPlayerSelectVehicle)($t8) -/* 0920B0 800914B0 8FAE0070 */ lw $t6, 0x70($sp) -/* 0920B4 800914B4 3C09800E */ lui $t1, %hi(gTrackIdForPreview) # $t1, 0x800e -/* 0920B8 800914B8 00187880 */ sll $t7, $t8, 2 -/* 0920BC 800914BC 8D29F4C4 */ lw $t1, %lo(gTrackIdForPreview)($t1) -/* 0920C0 800914C0 01CFC821 */ addu $t9, $t6, $t7 -/* 0920C4 800914C4 8F280018 */ lw $t0, 0x18($t9) -/* 0920C8 800914C8 00095040 */ sll $t2, $t1, 1 -/* 0920CC 800914CC 010A5821 */ addu $t3, $t0, $t2 -/* 0920D0 800914D0 95640000 */ lhu $a0, ($t3) -/* 0920D4 800914D4 02202825 */ move $a1, $s1 -/* 0920D8 800914D8 0C025DBE */ jal decompress_filename_string -/* 0920DC 800914DC 24060003 */ li $a2, 3 -/* 0920E0 800914E0 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0920E4 800914E4 240C000C */ li $t4, 12 -/* 0920E8 800914E8 AFAC0010 */ sw $t4, 0x10($sp) -/* 0920EC 800914EC 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0920F0 800914F0 240500FA */ li $a1, 250 -/* 0920F4 800914F4 02403025 */ move $a2, $s2 -/* 0920F8 800914F8 0C031110 */ jal draw_text -/* 0920FC 800914FC 02203825 */ move $a3, $s1 -/* 092100 80091500 3C188012 */ lui $t8, %hi(gPlayerSelectVehicle) # $t8, 0x8012 -/* 092104 80091504 831869C0 */ lb $t8, %lo(gPlayerSelectVehicle)($t8) -/* 092108 80091508 8FAD0070 */ lw $t5, 0x70($sp) -/* 09210C 8009150C 3C09800E */ lui $t1, %hi(gTrackIdForPreview) # $t1, 0x800e -/* 092110 80091510 00187080 */ sll $t6, $t8, 2 -/* 092114 80091514 8D29F4C4 */ lw $t1, %lo(gTrackIdForPreview)($t1) -/* 092118 80091518 01AE7821 */ addu $t7, $t5, $t6 -/* 09211C 8009151C 8DF9003C */ lw $t9, 0x3c($t7) -/* 092120 80091520 00094040 */ sll $t0, $t1, 1 -/* 092124 80091524 03285021 */ addu $t2, $t9, $t0 -/* 092128 80091528 95440000 */ lhu $a0, ($t2) -/* 09212C 8009152C 240B00FF */ li $t3, 255 -/* 092130 80091530 240C00FF */ li $t4, 255 -/* 092134 80091534 AFAC0014 */ sw $t4, 0x14($sp) -/* 092138 80091538 AFAB0010 */ sw $t3, 0x10($sp) -/* 09213C 8009153C AFA00018 */ sw $zero, 0x18($sp) -/* 092140 80091540 24050016 */ li $a1, 22 -/* 092144 80091544 24060035 */ li $a2, 53 -/* 092148 80091548 0C020600 */ jal show_timestamp -/* 09214C 8009154C 24070080 */ li $a3, 128 -/* 092150 80091550 3C0D8012 */ lui $t5, %hi(gPlayerSelectVehicle) # $t5, 0x8012 -/* 092154 80091554 81AD69C0 */ lb $t5, %lo(gPlayerSelectVehicle)($t5) -/* 092158 80091558 8FB80070 */ lw $t8, 0x70($sp) -/* 09215C 8009155C 3C19800E */ lui $t9, %hi(gTrackIdForPreview) # $t9, 0x800e -/* 092160 80091560 000D7080 */ sll $t6, $t5, 2 -/* 092164 80091564 8F39F4C4 */ lw $t9, %lo(gTrackIdForPreview)($t9) -/* 092168 80091568 030E7821 */ addu $t7, $t8, $t6 -/* 09216C 8009156C 8DE90024 */ lw $t1, 0x24($t7) -/* 092170 80091570 00194040 */ sll $t0, $t9, 1 -/* 092174 80091574 01285021 */ addu $t2, $t1, $t0 -/* 092178 80091578 95440000 */ lhu $a0, ($t2) -/* 09217C 8009157C 240B00C0 */ li $t3, 192 -/* 092180 80091580 240C00FF */ li $t4, 255 -/* 092184 80091584 AFAC0014 */ sw $t4, 0x14($sp) -/* 092188 80091588 AFAB0010 */ sw $t3, 0x10($sp) -/* 09218C 8009158C AFA00018 */ sw $zero, 0x18($sp) -/* 092190 80091590 24050016 */ li $a1, 22 -/* 092194 80091594 24060021 */ li $a2, 33 -/* 092198 80091598 0C020600 */ jal show_timestamp -/* 09219C 8009159C 240700FF */ li $a3, 255 -/* 0921A0 800915A0 3C0D8012 */ lui $t5, %hi(gMenuOptionCount) # $t5, 0x8012 -/* 0921A4 800915A4 8DAD63E0 */ lw $t5, %lo(gMenuOptionCount)($t5) -/* 0921A8 800915A8 2401FFFF */ li $at, -1 -/* 0921AC 800915AC 11A10256 */ beq $t5, $at, .L80091F08 -/* 0921B0 800915B0 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 0921B4 800915B4 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 0921B8 800915B8 24010001 */ li $at, 1 -/* 0921BC 800915BC 14410062 */ bne $v0, $at, .L80091748 -/* 0921C0 800915C0 24040007 */ li $a0, 7 -/* 0921C4 800915C4 8FB80080 */ lw $t8, 0x80($sp) -/* 0921C8 800915C8 24050086 */ li $a1, 134 -/* 0921CC 800915CC 270E0089 */ addiu $t6, $t8, 0x89 -/* 0921D0 800915D0 AFAE0010 */ sw $t6, 0x10($sp) -/* 0921D4 800915D4 240700BA */ li $a3, 186 -/* 0921D8 800915D8 0C0313B7 */ jal set_current_dialogue_box_coords -/* 0921DC 800915DC 27060070 */ addiu $a2, $t8, 0x70 -/* 0921E0 800915E0 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0921E4 800915E4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0921E8 800915E8 00002825 */ move $a1, $zero -/* 0921EC 800915EC 00003025 */ move $a2, $zero -/* 0921F0 800915F0 0C0316D6 */ jal render_dialogue_box -/* 0921F4 800915F4 24070007 */ li $a3, 7 -/* 0921F8 800915F8 3C0F8012 */ lui $t7, %hi(gMenuOptionCount) # $t7, 0x8012 -/* 0921FC 800915FC 8DEF63E0 */ lw $t7, %lo(gMenuOptionCount)($t7) -/* 092200 80091600 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092204 80091604 1DE00013 */ bgtz $t7, .L80091654 -/* 092208 80091608 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 09220C 8009160C 8FA70080 */ lw $a3, 0x80($sp) -/* 092210 80091610 8FCA0000 */ lw $t2, ($fp) -/* 092214 80091614 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092218 80091618 3C05800E */ lui $a1, %hi(gRaceSelectionVehicleTitleTexture) # $a1, 0x800e -/* 09221C 8009161C 241900FF */ li $t9, 255 -/* 092220 80091620 240900FF */ li $t1, 255 -/* 092224 80091624 240800FF */ li $t0, 255 -/* 092228 80091628 AFA80018 */ sw $t0, 0x18($sp) -/* 09222C 8009162C AFA90014 */ sw $t1, 0x14($sp) -/* 092230 80091630 AFB90010 */ sw $t9, 0x10($sp) -/* 092234 80091634 24A505B4 */ addiu $a1, %lo(gRaceSelectionVehicleTitleTexture) # addiu $a1, $a1, 0x5b4 -/* 092238 80091638 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 09223C 8009163C 24060088 */ li $a2, 136 -/* 092240 80091640 24E70072 */ addiu $a3, $a3, 0x72 -/* 092244 80091644 0C01E2AE */ jal render_textured_rectangle -/* 092248 80091648 AFAA001C */ sw $t2, 0x1c($sp) -/* 09224C 8009164C 1000003A */ b .L80091738 -/* 092250 80091650 00000000 */ nop -.L80091654: -/* 092254 80091654 8FA70080 */ lw $a3, 0x80($sp) -/* 092258 80091658 8FD80000 */ lw $t8, ($fp) -/* 09225C 8009165C 3C05800E */ lui $a1, %hi(gRaceSelectionTTTitleTexture) # $a1, 0x800e -/* 092260 80091660 240B00FF */ li $t3, 255 -/* 092264 80091664 240C00FF */ li $t4, 255 -/* 092268 80091668 240D00FF */ li $t5, 255 -/* 09226C 8009166C AFAD0018 */ sw $t5, 0x18($sp) -/* 092270 80091670 AFAC0014 */ sw $t4, 0x14($sp) -/* 092274 80091674 AFAB0010 */ sw $t3, 0x10($sp) -/* 092278 80091678 24A505C4 */ addiu $a1, %lo(gRaceSelectionTTTitleTexture) # addiu $a1, $a1, 0x5c4 -/* 09227C 8009167C 24060088 */ li $a2, 136 -/* 092280 80091680 0000A825 */ move $s5, $zero -/* 092284 80091684 24E70072 */ addiu $a3, $a3, 0x72 -/* 092288 80091688 0C01E2AE */ jal render_textured_rectangle -/* 09228C 8009168C AFB8001C */ sw $t8, 0x1c($sp) -/* 092290 80091690 8FB70080 */ lw $s7, 0x80($sp) -/* 092294 80091694 3C10800E */ lui $s0, %hi(gTrackSelectTTImage) # $s0, 0x800e -/* 092298 80091698 26100648 */ addiu $s0, %lo(gTrackSelectTTImage) # addiu $s0, $s0, 0x648 -/* 09229C 8009169C 26F70097 */ addiu $s7, $s7, 0x97 -.L800916A0: -/* 0922A0 800916A0 3C0E800E */ lui $t6, %hi(gTracksMenuTimeTrialHighlightIndex) # $t6, 0x800e -/* 0922A4 800916A4 8DCE0414 */ lw $t6, %lo(gTracksMenuTimeTrialHighlightIndex)($t6) -/* 0922A8 800916A8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0922AC 800916AC 16AE0011 */ bne $s5, $t6, .L800916F4 -/* 0922B0 800916B0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0922B4 800916B4 8FC80000 */ lw $t0, ($fp) -/* 0922B8 800916B8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0922BC 800916BC 8E050004 */ lw $a1, 4($s0) -/* 0922C0 800916C0 240F00FF */ li $t7, 255 -/* 0922C4 800916C4 241900FF */ li $t9, 255 -/* 0922C8 800916C8 240900FF */ li $t1, 255 -/* 0922CC 800916CC AFA90018 */ sw $t1, 0x18($sp) -/* 0922D0 800916D0 AFB90014 */ sw $t9, 0x14($sp) -/* 0922D4 800916D4 AFAF0010 */ sw $t7, 0x10($sp) -/* 0922D8 800916D8 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0922DC 800916DC 24060068 */ li $a2, 104 -/* 0922E0 800916E0 02E03825 */ move $a3, $s7 -/* 0922E4 800916E4 0C01E2AE */ jal render_textured_rectangle -/* 0922E8 800916E8 AFA8001C */ sw $t0, 0x1c($sp) -/* 0922EC 800916EC 1000000E */ b .L80091728 -/* 0922F0 800916F0 26B50001 */ addiu $s5, $s5, 1 -.L800916F4: -/* 0922F4 800916F4 8FCD0000 */ lw $t5, ($fp) -/* 0922F8 800916F8 8E050008 */ lw $a1, 8($s0) -/* 0922FC 800916FC 240A00FF */ li $t2, 255 -/* 092300 80091700 240B00FF */ li $t3, 255 -/* 092304 80091704 240C00FF */ li $t4, 255 -/* 092308 80091708 AFAC0018 */ sw $t4, 0x18($sp) -/* 09230C 8009170C AFAB0014 */ sw $t3, 0x14($sp) -/* 092310 80091710 AFAA0010 */ sw $t2, 0x10($sp) -/* 092314 80091714 24060068 */ li $a2, 104 -/* 092318 80091718 02E03825 */ move $a3, $s7 -/* 09231C 8009171C 0C01E2AE */ jal render_textured_rectangle -/* 092320 80091720 AFAD001C */ sw $t5, 0x1c($sp) -/* 092324 80091724 26B50001 */ addiu $s5, $s5, 1 -.L80091728: -/* 092328 80091728 24010002 */ li $at, 2 -/* 09232C 8009172C 2610000C */ addiu $s0, $s0, 0xc -/* 092330 80091730 16A1FFDB */ bne $s5, $at, .L800916A0 -/* 092334 80091734 26F70018 */ addiu $s7, $s7, 0x18 -.L80091738: -/* 092338 80091738 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 09233C 8009173C 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 092340 80091740 1000004B */ b .L80091870 -/* 092344 80091744 28410002 */ slti $at, $v0, 2 -.L80091748: -/* 092348 80091748 8FB80074 */ lw $t8, 0x74($sp) -/* 09234C 8009174C 244EFFFF */ addiu $t6, $v0, -1 -/* 092350 80091750 17000047 */ bnez $t8, .L80091870 -/* 092354 80091754 28410002 */ slti $at, $v0, 2 -/* 092358 80091758 01C20019 */ multu $t6, $v0 -/* 09235C 8009175C 3C19800E */ lui $t9, %hi(gTracksMenuPlayerNamePositions) # $t9, 0x800e -/* 092360 80091760 27390688 */ addiu $t9, %lo(gTracksMenuPlayerNamePositions) # addiu $t9, $t9, 0x688 -/* 092364 80091764 3C11800E */ lui $s1, %hi(gTrackSelectPlayerImage) # $s1, 0x800e -/* 092368 80091768 3C128012 */ lui $s2, %hi(D_801269C4) # $s2, 0x8012 -/* 09236C 8009176C 0040B825 */ move $s7, $v0 -/* 092370 80091770 265269C4 */ addiu $s2, %lo(D_801269C4) # addiu $s2, $s2, 0x69c4 -/* 092374 80091774 26310660 */ addiu $s1, %lo(gTrackSelectPlayerImage) # addiu $s1, $s1, 0x660 -/* 092378 80091778 0000A825 */ move $s5, $zero -/* 09237C 8009177C 00009812 */ mflo $s3 -/* 092380 80091780 00137840 */ sll $t7, $s3, 1 -/* 092384 80091784 18400039 */ blez $v0, .L8009186C -/* 092388 80091788 01F98021 */ addu $s0, $t7, $t9 -.L8009178C: -/* 09238C 8009178C 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 092390 80091790 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 092394 80091794 24010001 */ li $at, 1 -/* 092398 80091798 14410004 */ bne $v0, $at, .L800917AC -/* 09239C 8009179C 3C098012 */ lui $t1, %hi(gMenuOptionCount) # $t1, 0x8012 -/* 0923A0 800917A0 8D2963E0 */ lw $t1, %lo(gMenuOptionCount)($t1) -/* 0923A4 800917A4 00000000 */ nop -/* 0923A8 800917A8 12A90007 */ beq $s5, $t1, .L800917C8 -.L800917AC: -/* 0923AC 800917AC 28410002 */ slti $at, $v0, 2 -/* 0923B0 800917B0 14200016 */ bnez $at, .L8009180C -/* 0923B4 800917B4 02554021 */ addu $t0, $s2, $s5 -/* 0923B8 800917B8 810A0000 */ lb $t2, ($t0) -/* 0923BC 800917BC 00000000 */ nop -/* 0923C0 800917C0 15400012 */ bnez $t2, .L8009180C -/* 0923C4 800917C4 00000000 */ nop -.L800917C8: -/* 0923C8 800917C8 860B0002 */ lh $t3, 2($s0) -/* 0923CC 800917CC 8FAC0080 */ lw $t4, 0x80($sp) -/* 0923D0 800917D0 86020000 */ lh $v0, ($s0) -/* 0923D4 800917D4 016C1821 */ addu $v1, $t3, $t4 -/* 0923D8 800917D8 246D0017 */ addiu $t5, $v1, 0x17 -/* 0923DC 800917DC AFAD0010 */ sw $t5, 0x10($sp) -/* 0923E0 800917E0 2466FFFE */ addiu $a2, $v1, -2 -/* 0923E4 800917E4 24040007 */ li $a0, 7 -/* 0923E8 800917E8 2445FFFE */ addiu $a1, $v0, -2 -/* 0923EC 800917EC 0C0313B7 */ jal set_current_dialogue_box_coords -/* 0923F0 800917F0 24470032 */ addiu $a3, $v0, 0x32 -/* 0923F4 800917F4 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0923F8 800917F8 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0923FC 800917FC 00002825 */ move $a1, $zero -/* 092400 80091800 00003025 */ move $a2, $zero -/* 092404 80091804 0C0316D6 */ jal render_dialogue_box -/* 092408 80091808 24070007 */ li $a3, 7 -.L8009180C: -/* 09240C 8009180C 86180002 */ lh $t8, 2($s0) -/* 092410 80091810 8FAE0080 */ lw $t6, 0x80($sp) -/* 092414 80091814 8FC80000 */ lw $t0, ($fp) -/* 092418 80091818 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 09241C 8009181C 8E250000 */ lw $a1, ($s1) -/* 092420 80091820 86060000 */ lh $a2, ($s0) -/* 092424 80091824 240F00FF */ li $t7, 255 -/* 092428 80091828 241900FF */ li $t9, 255 -/* 09242C 8009182C 240900FF */ li $t1, 255 -/* 092430 80091830 AFA90018 */ sw $t1, 0x18($sp) -/* 092434 80091834 AFB90014 */ sw $t9, 0x14($sp) -/* 092438 80091838 AFAF0010 */ sw $t7, 0x10($sp) -/* 09243C 8009183C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092440 80091840 030E3821 */ addu $a3, $t8, $t6 -/* 092444 80091844 0C01E2AE */ jal render_textured_rectangle -/* 092448 80091848 AFA8001C */ sw $t0, 0x1c($sp) -/* 09244C 8009184C 26B50001 */ addiu $s5, $s5, 1 -/* 092450 80091850 02B7082A */ slt $at, $s5, $s7 -/* 092454 80091854 26310004 */ addiu $s1, $s1, 4 -/* 092458 80091858 1420FFCC */ bnez $at, .L8009178C -/* 09245C 8009185C 26100004 */ addiu $s0, $s0, 4 -/* 092460 80091860 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 092464 80091864 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 092468 80091868 00000000 */ nop -.L8009186C: -/* 09246C 8009186C 28410002 */ slti $at, $v0, 2 -.L80091870: -/* 092470 80091870 10200005 */ beqz $at, .L80091888 -/* 092474 80091874 3C0A8012 */ lui $t2, %hi(gMenuOptionCount) # $t2, 0x8012 -/* 092478 80091878 8D4A63E0 */ lw $t2, %lo(gMenuOptionCount)($t2) -/* 09247C 8009187C 00000000 */ nop -/* 092480 80091880 1540006A */ bnez $t2, .L80091A2C -/* 092484 80091884 8FB00080 */ lw $s0, 0x80($sp) -.L80091888: -/* 092488 80091888 8FAB0074 */ lw $t3, 0x74($sp) -/* 09248C 8009188C 244CFFFF */ addiu $t4, $v0, -1 -/* 092490 80091890 15600066 */ bnez $t3, .L80091A2C -/* 092494 80091894 8FB00080 */ lw $s0, 0x80($sp) -/* 092498 80091898 01820019 */ multu $t4, $v0 -/* 09249C 8009189C 8FB70080 */ lw $s7, 0x80($sp) -/* 0924A0 800918A0 0000A825 */ move $s5, $zero -/* 0924A4 800918A4 24160003 */ li $s6, 3 -/* 0924A8 800918A8 26F7008B */ addiu $s7, $s7, 0x8b -/* 0924AC 800918AC 00009812 */ mflo $s3 -/* 0924B0 800918B0 00136843 */ sra $t5, $s3, 1 -/* 0924B4 800918B4 01A09825 */ move $s3, $t5 -/* 0924B8 800918B8 8FAF007C */ lw $t7, 0x7c($sp) -.L800918BC: -/* 0924BC 800918BC 24180001 */ li $t8, 1 -/* 0924C0 800918C0 02B87004 */ sllv $t6, $t8, $s5 -/* 0924C4 800918C4 01CFC824 */ and $t9, $t6, $t7 -/* 0924C8 800918C8 13200054 */ beqz $t9, .L80091A1C -/* 0924CC 800918CC 00000000 */ nop -/* 0924D0 800918D0 18400051 */ blez $v0, .L80091A18 -/* 0924D4 800918D4 0000A025 */ move $s4, $zero -/* 0924D8 800918D8 00154880 */ sll $t1, $s5, 2 -/* 0924DC 800918DC 01354823 */ subu $t1, $t1, $s5 -/* 0924E0 800918E0 3C0A800E */ lui $t2, %hi(gRaceSelectionImages) # $t2, 0x800e -/* 0924E4 800918E4 3C0C800E */ lui $t4, %hi(gTracksMenuVehicleNamePositions) # $t4, 0x800e -/* 0924E8 800918E8 258C06B0 */ addiu $t4, %lo(gTracksMenuVehicleNamePositions) # addiu $t4, $t4, 0x6b0 -/* 0924EC 800918EC 254A0624 */ addiu $t2, %lo(gRaceSelectionImages) # addiu $t2, $t2, 0x624 -/* 0924F0 800918F0 00094080 */ sll $t0, $t1, 2 -/* 0924F4 800918F4 3C118012 */ lui $s1, %hi(gPlayerSelectVehicle) # $s1, 0x8012 -/* 0924F8 800918F8 00135840 */ sll $t3, $s3, 1 -/* 0924FC 800918FC 016C8021 */ addu $s0, $t3, $t4 -/* 092500 80091900 263169C0 */ addiu $s1, %lo(gPlayerSelectVehicle) # addiu $s1, $s1, 0x69c0 -/* 092504 80091904 010A9021 */ addu $s2, $t0, $t2 -.L80091908: -/* 092508 80091908 822D0000 */ lb $t5, ($s1) -/* 09250C 8009190C 8FA90070 */ lw $t1, 0x70($sp) -/* 092510 80091910 16AD0011 */ bne $s5, $t5, .L80091958 -/* 092514 80091914 3C0A800E */ lui $t2, %hi(gTrackIdForPreview) # $t2, 0x800e -/* 092518 80091918 8FD90000 */ lw $t9, ($fp) -/* 09251C 8009191C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092520 80091920 8E450004 */ lw $a1, 4($s2) -/* 092524 80091924 86060000 */ lh $a2, ($s0) -/* 092528 80091928 241800FF */ li $t8, 255 -/* 09252C 8009192C 240E00FF */ li $t6, 255 -/* 092530 80091930 240F00FF */ li $t7, 255 -/* 092534 80091934 AFAF0018 */ sw $t7, 0x18($sp) -/* 092538 80091938 AFAE0014 */ sw $t6, 0x14($sp) -/* 09253C 8009193C AFB80010 */ sw $t8, 0x10($sp) -/* 092540 80091940 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092544 80091944 02E03825 */ move $a3, $s7 -/* 092548 80091948 0C01E2AE */ jal render_textured_rectangle -/* 09254C 8009194C AFB9001C */ sw $t9, 0x1c($sp) -/* 092550 80091950 1000002A */ b .L800919FC -/* 092554 80091954 00000000 */ nop -.L80091958: -/* 092558 80091958 8D4AF4C4 */ lw $t2, %lo(gTrackIdForPreview)($t2) -/* 09255C 8009195C 8D280004 */ lw $t0, 4($t1) -/* 092560 80091960 000A5880 */ sll $t3, $t2, 2 -/* 092564 80091964 010B6021 */ addu $t4, $t0, $t3 -/* 092568 80091968 8D8D0000 */ lw $t5, ($t4) -/* 09256C 8009196C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092570 80091970 31B80002 */ andi $t8, $t5, 2 -/* 092574 80091974 13000011 */ beqz $t8, .L800919BC -/* 092578 80091978 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 09257C 8009197C 8FC90000 */ lw $t1, ($fp) -/* 092580 80091980 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092584 80091984 8E450008 */ lw $a1, 8($s2) -/* 092588 80091988 86060000 */ lh $a2, ($s0) -/* 09258C 8009198C 240E00FF */ li $t6, 255 -/* 092590 80091990 240F00FF */ li $t7, 255 -/* 092594 80091994 241900FF */ li $t9, 255 -/* 092598 80091998 AFB90018 */ sw $t9, 0x18($sp) -/* 09259C 8009199C AFAF0014 */ sw $t7, 0x14($sp) -/* 0925A0 800919A0 AFAE0010 */ sw $t6, 0x10($sp) -/* 0925A4 800919A4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0925A8 800919A8 02E03825 */ move $a3, $s7 -/* 0925AC 800919AC 0C01E2AE */ jal render_textured_rectangle -/* 0925B0 800919B0 AFA9001C */ sw $t1, 0x1c($sp) -/* 0925B4 800919B4 10000011 */ b .L800919FC -/* 0925B8 800919B8 00000000 */ nop -.L800919BC: -/* 0925BC 800919BC 8FCC0000 */ lw $t4, ($fp) -/* 0925C0 800919C0 8E450008 */ lw $a1, 8($s2) -/* 0925C4 800919C4 86060000 */ lh $a2, ($s0) -/* 0925C8 800919C8 240A00FF */ li $t2, 255 -/* 0925CC 800919CC 240800FF */ li $t0, 255 -/* 0925D0 800919D0 240B00FF */ li $t3, 255 -/* 0925D4 800919D4 AFAB0018 */ sw $t3, 0x18($sp) -/* 0925D8 800919D8 AFA80014 */ sw $t0, 0x14($sp) -/* 0925DC 800919DC AFAA0010 */ sw $t2, 0x10($sp) -/* 0925E0 800919E0 02E03825 */ move $a3, $s7 -/* 0925E4 800919E4 05810003 */ bgez $t4, .L800919F4 -/* 0925E8 800919E8 000C6843 */ sra $t5, $t4, 1 -/* 0925EC 800919EC 25810001 */ addiu $at, $t4, 1 -/* 0925F0 800919F0 00016843 */ sra $t5, $at, 1 -.L800919F4: -/* 0925F4 800919F4 0C01E2AE */ jal render_textured_rectangle -/* 0925F8 800919F8 AFAD001C */ sw $t5, 0x1c($sp) -.L800919FC: -/* 0925FC 800919FC 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 092600 80091A00 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 092604 80091A04 26940001 */ addiu $s4, $s4, 1 -/* 092608 80091A08 0282082A */ slt $at, $s4, $v0 -/* 09260C 80091A0C 26310001 */ addiu $s1, $s1, 1 -/* 092610 80091A10 1420FFBD */ bnez $at, .L80091908 -/* 092614 80091A14 26100002 */ addiu $s0, $s0, 2 -.L80091A18: -/* 092618 80091A18 26F70018 */ addiu $s7, $s7, 0x18 -.L80091A1C: -/* 09261C 80091A1C 26B50001 */ addiu $s5, $s5, 1 -/* 092620 80091A20 16B6FFA6 */ bne $s5, $s6, .L800918BC -/* 092624 80091A24 8FAF007C */ lw $t7, 0x7c($sp) -/* 092628 80091A28 8FB00080 */ lw $s0, 0x80($sp) -.L80091A2C: -/* 09262C 80091A2C 3C038012 */ lui $v1, %hi(gPlayerSelectVehicle) # $v1, 0x8012 -/* 092630 80091A30 806369C0 */ lb $v1, %lo(gPlayerSelectVehicle)($v1) -/* 092634 80091A34 24010002 */ li $at, 2 -/* 092638 80091A38 2610008B */ addiu $s0, $s0, 0x8b -/* 09263C 80091A3C 24160003 */ li $s6, 3 -/* 092640 80091A40 14610002 */ bne $v1, $at, .L80091A4C -/* 092644 80091A44 0200B825 */ move $s7, $s0 -/* 092648 80091A48 26170002 */ addiu $s7, $s0, 2 -.L80091A4C: -/* 09264C 80091A4C 24010001 */ li $at, 1 -/* 092650 80091A50 14410035 */ bne $v0, $at, .L80091B28 -/* 092654 80091A54 3C188012 */ lui $t8, %hi(gMenuOptionCount) # $t8, 0x8012 -/* 092658 80091A58 8F1863E0 */ lw $t8, %lo(gMenuOptionCount)($t8) -/* 09265C 80091A5C 00000000 */ nop -/* 092660 80091A60 17000019 */ bnez $t8, .L80091AC8 -/* 092664 80091A64 00000000 */ nop -/* 092668 80091A68 00760019 */ multu $v1, $s6 -/* 09266C 80091A6C 3C11800E */ lui $s1, %hi(gRaceSelectionImages) # $s1, 0x800e -/* 092670 80091A70 26310624 */ addiu $s1, %lo(gRaceSelectionImages) # addiu $s1, $s1, 0x624 -/* 092674 80091A74 8FCB0000 */ lw $t3, ($fp) -/* 092678 80091A78 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 09267C 80091A7C 240900FF */ li $t1, 255 -/* 092680 80091A80 240A00FF */ li $t2, 255 -/* 092684 80091A84 240800FF */ li $t0, 255 -/* 092688 80091A88 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 09268C 80091A8C 24060095 */ li $a2, 149 -/* 092690 80091A90 02E03825 */ move $a3, $s7 -/* 092694 80091A94 00007012 */ mflo $t6 -/* 092698 80091A98 000E7880 */ sll $t7, $t6, 2 -/* 09269C 80091A9C 022FC821 */ addu $t9, $s1, $t7 -/* 0926A0 80091AA0 8F250000 */ lw $a1, ($t9) -/* 0926A4 80091AA4 AFA80018 */ sw $t0, 0x18($sp) -/* 0926A8 80091AA8 AFAA0014 */ sw $t2, 0x14($sp) -/* 0926AC 80091AAC AFA90010 */ sw $t1, 0x10($sp) -/* 0926B0 80091AB0 0C01E2AE */ jal render_textured_rectangle -/* 0926B4 80091AB4 AFAB001C */ sw $t3, 0x1c($sp) -/* 0926B8 80091AB8 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 0926BC 80091ABC 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 0926C0 80091AC0 10000019 */ b .L80091B28 -/* 0926C4 80091AC4 00000000 */ nop -.L80091AC8: -/* 0926C8 80091AC8 3C0C800E */ lui $t4, %hi(gTracksMenuTimeTrialHighlightIndex) # $t4, 0x800e -/* 0926CC 80091ACC 8D8C0414 */ lw $t4, %lo(gTracksMenuTimeTrialHighlightIndex)($t4) -/* 0926D0 80091AD0 3C05800E */ lui $a1, %hi(gTrackSelectTTImage) # $a1, 0x800e -/* 0926D4 80091AD4 01960019 */ multu $t4, $s6 -/* 0926D8 80091AD8 8FC90000 */ lw $t1, ($fp) -/* 0926DC 80091ADC 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0926E0 80091AE0 240E00FF */ li $t6, 255 -/* 0926E4 80091AE4 240F00FF */ li $t7, 255 -/* 0926E8 80091AE8 241900FF */ li $t9, 255 -/* 0926EC 80091AEC AFB90018 */ sw $t9, 0x18($sp) -/* 0926F0 80091AF0 AFAF0014 */ sw $t7, 0x14($sp) -/* 0926F4 80091AF4 AFAE0010 */ sw $t6, 0x10($sp) -/* 0926F8 80091AF8 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0926FC 80091AFC 24060095 */ li $a2, 149 -/* 092700 80091B00 02003825 */ move $a3, $s0 -/* 092704 80091B04 00006812 */ mflo $t5 -/* 092708 80091B08 000DC080 */ sll $t8, $t5, 2 -/* 09270C 80091B0C 00B82821 */ addu $a1, $a1, $t8 -/* 092710 80091B10 8CA50648 */ lw $a1, %lo(gTrackSelectTTImage)($a1) -/* 092714 80091B14 0C01E2AE */ jal render_textured_rectangle -/* 092718 80091B18 AFA9001C */ sw $t1, 0x1c($sp) -/* 09271C 80091B1C 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e -/* 092720 80091B20 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) -/* 092724 80091B24 00000000 */ nop -.L80091B28: -/* 092728 80091B28 3C11800E */ lui $s1, %hi(gRaceSelectionImages) # $s1, 0x800e -/* 09272C 80091B2C 24010002 */ li $at, 2 -/* 092730 80091B30 14410031 */ bne $v0, $at, .L80091BF8 -/* 092734 80091B34 26310624 */ addiu $s1, %lo(gRaceSelectionImages) # addiu $s1, $s1, 0x624 -/* 092738 80091B38 8FAA0074 */ lw $t2, 0x74($sp) -/* 09273C 80091B3C 3C088012 */ lui $t0, %hi(gPlayerSelectVehicle) # $t0, 0x8012 -/* 092740 80091B40 1540002D */ bnez $t2, .L80091BF8 -/* 092744 80091B44 00000000 */ nop -/* 092748 80091B48 810869C0 */ lb $t0, %lo(gPlayerSelectVehicle)($t0) -/* 09274C 80091B4C 8FD90000 */ lw $t9, ($fp) -/* 092750 80091B50 01160019 */ multu $t0, $s6 -/* 092754 80091B54 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092758 80091B58 02E03825 */ move $a3, $s7 -/* 09275C 80091B5C 241800FF */ li $t8, 255 -/* 092760 80091B60 240E00FF */ li $t6, 255 -/* 092764 80091B64 240F00FF */ li $t7, 255 -/* 092768 80091B68 0200B825 */ move $s7, $s0 -/* 09276C 80091B6C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092770 80091B70 2406004F */ li $a2, 79 -/* 092774 80091B74 00005812 */ mflo $t3 -/* 092778 80091B78 000B6080 */ sll $t4, $t3, 2 -/* 09277C 80091B7C 022C6821 */ addu $t5, $s1, $t4 -/* 092780 80091B80 8DA50000 */ lw $a1, ($t5) -/* 092784 80091B84 AFAF0018 */ sw $t7, 0x18($sp) -/* 092788 80091B88 AFAE0014 */ sw $t6, 0x14($sp) -/* 09278C 80091B8C AFB80010 */ sw $t8, 0x10($sp) -/* 092790 80091B90 0C01E2AE */ jal render_textured_rectangle -/* 092794 80091B94 AFB9001C */ sw $t9, 0x1c($sp) -/* 092798 80091B98 3C028012 */ lui $v0, %hi(gPlayerSelectVehicle+1) # $v0, 0x8012 -/* 09279C 80091B9C 804269C1 */ lb $v0, %lo(gPlayerSelectVehicle+1)($v0) -/* 0927A0 80091BA0 24010002 */ li $at, 2 -/* 0927A4 80091BA4 14410002 */ bne $v0, $at, .L80091BB0 -/* 0927A8 80091BA8 00000000 */ nop -/* 0927AC 80091BAC 26170002 */ addiu $s7, $s0, 2 -.L80091BB0: -/* 0927B0 80091BB0 00560019 */ multu $v0, $s6 -/* 0927B4 80091BB4 8FD80000 */ lw $t8, ($fp) -/* 0927B8 80091BB8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0927BC 80091BBC 240B00FF */ li $t3, 255 -/* 0927C0 80091BC0 240C00FF */ li $t4, 255 -/* 0927C4 80091BC4 240D00FF */ li $t5, 255 -/* 0927C8 80091BC8 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0927CC 80091BCC 240600B0 */ li $a2, 176 -/* 0927D0 80091BD0 02E03825 */ move $a3, $s7 -/* 0927D4 80091BD4 00004812 */ mflo $t1 -/* 0927D8 80091BD8 00095080 */ sll $t2, $t1, 2 -/* 0927DC 80091BDC 022A4021 */ addu $t0, $s1, $t2 -/* 0927E0 80091BE0 8D050000 */ lw $a1, ($t0) -/* 0927E4 80091BE4 AFAD0018 */ sw $t5, 0x18($sp) -/* 0927E8 80091BE8 AFAC0014 */ sw $t4, 0x14($sp) -/* 0927EC 80091BEC AFAB0010 */ sw $t3, 0x10($sp) -/* 0927F0 80091BF0 0C01E2AE */ jal render_textured_rectangle -/* 0927F4 80091BF4 AFB8001C */ sw $t8, 0x1c($sp) -.L80091BF8: -/* 0927F8 80091BF8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0927FC 80091BFC 0C01ECF4 */ jal reset_render_settings -/* 092800 80091C00 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092804 80091C04 3C0E800E */ lui $t6, %hi(gNumberOfActivePlayers) # $t6, 0x800e -/* 092808 80091C08 8DCEF4BC */ lw $t6, %lo(gNumberOfActivePlayers)($t6) -/* 09280C 80091C0C 8FAF0074 */ lw $t7, 0x74($sp) -/* 092810 80091C10 29C10003 */ slti $at, $t6, 3 -/* 092814 80091C14 10200022 */ beqz $at, .L80091CA0 -/* 092818 80091C18 8FAC0074 */ lw $t4, 0x74($sp) -/* 09281C 80091C1C 15E0001F */ bnez $t7, .L80091C9C -/* 092820 80091C20 3C02800E */ lui $v0, %hi(gMenuImageStack) # $v0, 0x800e -/* 092824 80091C24 2442F75C */ addiu $v0, %lo(gMenuImageStack) # addiu $v0, $v0, -0x8a4 -/* 092828 80091C28 3C01C250 */ li $at, 0xC2500000 # -52.000000 -/* 09282C 80091C2C 44814000 */ mtc1 $at, $f8 -/* 092830 80091C30 8C590000 */ lw $t9, ($v0) -/* 092834 80091C34 3C09800E */ lui $t1, %hi(gNumberOfActivePlayers) # $t1, 0x800e -/* 092838 80091C38 E72800F0 */ swc1 $f8, 0xf0($t9) -/* 09283C 80091C3C 8D29F4BC */ lw $t1, %lo(gNumberOfActivePlayers)($t1) -/* 092840 80091C40 24010001 */ li $at, 1 -/* 092844 80091C44 15210009 */ bne $t1, $at, .L80091C6C -/* 092848 80091C48 24040007 */ li $a0, 7 -/* 09284C 80091C4C 3C0141A8 */ li $at, 0x41A80000 # 21.000000 -/* 092850 80091C50 44815000 */ mtc1 $at, $f10 -/* 092854 80091C54 8C4A0000 */ lw $t2, ($v0) -/* 092858 80091C58 24040007 */ li $a0, 7 -/* 09285C 80091C5C 0C027298 */ jal func_8009CA60 -/* 092860 80091C60 E54A00EC */ swc1 $f10, 0xec($t2) -/* 092864 80091C64 1000000E */ b .L80091CA0 -/* 092868 80091C68 8FAC0074 */ lw $t4, 0x74($sp) -.L80091C6C: -/* 09286C 80091C6C 3C01C240 */ li $at, 0xC2400000 # -48.000000 -/* 092870 80091C70 44818000 */ mtc1 $at, $f16 -/* 092874 80091C74 8C480000 */ lw $t0, ($v0) -/* 092878 80091C78 0C027298 */ jal func_8009CA60 -/* 09287C 80091C7C E51000EC */ swc1 $f16, 0xec($t0) -/* 092880 80091C80 3C014240 */ li $at, 0x42400000 # 48.000000 -/* 092884 80091C84 3C0B800E */ lui $t3, %hi(gMenuImageStack) # $t3, 0x800e -/* 092888 80091C88 8D6BF75C */ lw $t3, %lo(gMenuImageStack)($t3) -/* 09288C 80091C8C 44819000 */ mtc1 $at, $f18 -/* 092890 80091C90 24040007 */ li $a0, 7 -/* 092894 80091C94 0C027298 */ jal func_8009CA60 -/* 092898 80091C98 E57200EC */ swc1 $f18, 0xec($t3) -.L80091C9C: -/* 09289C 80091C9C 8FAC0074 */ lw $t4, 0x74($sp) -.L80091CA0: -/* 0928A0 80091CA0 3C0D800E */ lui $t5, %hi(gMenuText) # $t5, 0x800e -/* 0928A4 80091CA4 11800098 */ beqz $t4, .L80091F08 -/* 0928A8 80091CA8 00000000 */ nop -/* 0928AC 80091CAC 8DADF4A0 */ lw $t5, %lo(gMenuText)($t5) -/* 0928B0 80091CB0 00002825 */ move $a1, $zero -/* 0928B4 80091CB4 8DA40220 */ lw $a0, 0x220($t5) -/* 0928B8 80091CB8 0C031368 */ jal get_text_width -/* 0928BC 80091CBC 00003025 */ move $a2, $zero -/* 0928C0 80091CC0 3C12800E */ lui $s2, %hi(gTwoPlayerRacerCountMenu) # $s2, 0x800e -/* 0928C4 80091CC4 265206E4 */ addiu $s2, %lo(gTwoPlayerRacerCountMenu) # addiu $s2, $s2, 0x6e4 -/* 0928C8 80091CC8 86430004 */ lh $v1, 4($s2) -/* 0928CC 80091CCC 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0928D0 80091CD0 2478FFF4 */ addiu $t8, $v1, -0xc -/* 0928D4 80091CD4 0302082A */ slt $at, $t8, $v0 -/* 0928D8 80091CD8 10200003 */ beqz $at, .L80091CE8 -/* 0928DC 80091CDC 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0928E0 80091CE0 10000002 */ b .L80091CEC -/* 0928E4 80091CE4 2454000C */ addiu $s4, $v0, 0xc -.L80091CE8: -/* 0928E8 80091CE8 0060A025 */ move $s4, $v1 -.L80091CEC: -/* 0928EC 80091CEC 3C0B8012 */ lui $t3, %hi(gMenuObjects) # $t3, 0x8012 -/* 0928F0 80091CF0 8D6B665C */ lw $t3, %lo(gMenuObjects + 0x10C)($t3) -/* 0928F4 80091CF4 864E0002 */ lh $t6, 2($s2) -/* 0928F8 80091CF8 86590006 */ lh $t9, 6($s2) -/* 0928FC 80091CFC 86490008 */ lh $t1, 8($s2) -/* 092900 80091D00 864A000A */ lh $t2, 0xa($s2) -/* 092904 80091D04 3C08B0E0 */ lui $t0, (0xB0E0C0FF >> 16) # lui $t0, 0xb0e0 -/* 092908 80091D08 3508C0FF */ ori $t0, (0xB0E0C0FF & 0xFFFF) # ori $t0, $t0, 0xc0ff -/* 09290C 80091D0C 00142843 */ sra $a1, $s4, 1 -/* 092910 80091D10 240F0078 */ li $t7, 120 -/* 092914 80091D14 00052823 */ negu $a1, $a1 -/* 092918 80091D18 AFA8001C */ sw $t0, 0x1c($sp) -/* 09291C 80091D1C 02803825 */ move $a3, $s4 -/* 092920 80091D20 AFAB0020 */ sw $t3, 0x20($sp) -/* 092924 80091D24 01EE3023 */ subu $a2, $t7, $t6 -/* 092928 80091D28 AFB90010 */ sw $t9, 0x10($sp) -/* 09292C 80091D2C AFA90014 */ sw $t1, 0x14($sp) -/* 092930 80091D30 0C020160 */ jal func_80080580 -/* 092934 80091D34 AFAA0018 */ sw $t2, 0x18($sp) -/* 092938 80091D38 0C02039B */ jal func_80080E6C -/* 09293C 80091D3C 00000000 */ nop -/* 092940 80091D40 0C0310BB */ jal set_text_font -/* 092944 80091D44 00002025 */ move $a0, $zero -/* 092948 80091D48 240C0080 */ li $t4, 128 -/* 09294C 80091D4C AFAC0010 */ sw $t4, 0x10($sp) -/* 092950 80091D50 00002025 */ move $a0, $zero -/* 092954 80091D54 00002825 */ move $a1, $zero -/* 092958 80091D58 00003025 */ move $a2, $zero -/* 09295C 80091D5C 0C0310E1 */ jal set_text_colour -/* 092960 80091D60 240700FF */ li $a3, 255 -/* 092964 80091D64 864F000E */ lh $t7, 0xe($s2) -/* 092968 80091D68 864E0002 */ lh $t6, 2($s2) -/* 09296C 80091D6C 3C0A800E */ lui $t2, %hi(gMenuText) # $t2, 0x800e -/* 092970 80091D70 8D4AF4A0 */ lw $t2, %lo(gMenuText)($t2) -/* 092974 80091D74 864D000C */ lh $t5, 0xc($s2) -/* 092978 80091D78 86580000 */ lh $t8, ($s2) -/* 09297C 80091D7C 8FA90080 */ lw $t1, 0x80($sp) -/* 092980 80091D80 01EEC821 */ addu $t9, $t7, $t6 -/* 092984 80091D84 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092988 80091D88 2408000C */ li $t0, 12 -/* 09298C 80091D8C 8D470220 */ lw $a3, 0x220($t2) -/* 092990 80091D90 01B82821 */ addu $a1, $t5, $t8 -/* 092994 80091D94 03293021 */ addu $a2, $t9, $t1 -/* 092998 80091D98 24C60001 */ addiu $a2, $a2, 1 -/* 09299C 80091D9C 24A50001 */ addiu $a1, $a1, 1 -/* 0929A0 80091DA0 AFA80010 */ sw $t0, 0x10($sp) -/* 0929A4 80091DA4 0C031110 */ jal draw_text -/* 0929A8 80091DA8 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 0929AC 80091DAC 240B00FF */ li $t3, 255 -/* 0929B0 80091DB0 AFAB0010 */ sw $t3, 0x10($sp) -/* 0929B4 80091DB4 240400FF */ li $a0, 255 -/* 0929B8 80091DB8 240500FF */ li $a1, 255 -/* 0929BC 80091DBC 240600FF */ li $a2, 255 -/* 0929C0 80091DC0 0C0310E1 */ jal set_text_colour -/* 0929C4 80091DC4 00003825 */ move $a3, $zero -/* 0929C8 80091DC8 8658000E */ lh $t8, 0xe($s2) -/* 0929CC 80091DCC 864F0002 */ lh $t7, 2($s2) -/* 0929D0 80091DD0 3C09800E */ lui $t1, %hi(gMenuText) # $t1, 0x800e -/* 0929D4 80091DD4 8D29F4A0 */ lw $t1, %lo(gMenuText)($t1) -/* 0929D8 80091DD8 864C000C */ lh $t4, 0xc($s2) -/* 0929DC 80091DDC 864D0000 */ lh $t5, ($s2) -/* 0929E0 80091DE0 8FB90080 */ lw $t9, 0x80($sp) -/* 0929E4 80091DE4 030F7021 */ addu $t6, $t8, $t7 -/* 0929E8 80091DE8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 0929EC 80091DEC 240A000C */ li $t2, 12 -/* 0929F0 80091DF0 8D270220 */ lw $a3, 0x220($t1) -/* 0929F4 80091DF4 018D2821 */ addu $a1, $t4, $t5 -/* 0929F8 80091DF8 01D93021 */ addu $a2, $t6, $t9 -/* 0929FC 80091DFC 24C6FFFF */ addiu $a2, $a2, -1 -/* 092A00 80091E00 24A5FFFF */ addiu $a1, $a1, -1 -/* 092A04 80091E04 AFAA0010 */ sw $t2, 0x10($sp) -/* 092A08 80091E08 0C031110 */ jal draw_text -/* 092A0C 80091E0C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092A10 80091E10 0C01A142 */ jal func_80068508 -/* 092A14 80091E14 24040001 */ li $a0, 1 -/* 092A18 80091E18 0C01EFC7 */ jal sprite_opaque -/* 092A1C 80091E1C 00002025 */ move $a0, $zero -/* 092A20 80091E20 3C15800E */ lui $s5, %hi(gMultiplayerSelectedNumberOfRacers) # $s5, 0x800e -/* 092A24 80091E24 3C11800E */ lui $s1, %hi(sMenuGuiColourB) # $s1, 0x800e -/* 092A28 80091E28 3C10800E */ lui $s0, %hi(sMenuGuiColourG) # $s0, 0x800e -/* 092A2C 80091E2C 2610F4A8 */ addiu $s0, %lo(sMenuGuiColourG) # addiu $s0, $s0, -0xb58 -/* 092A30 80091E30 2631F4AC */ addiu $s1, %lo(sMenuGuiColourB) # addiu $s1, $s1, -0xb54 -/* 092A34 80091E34 26B50410 */ addiu $s5, %lo(gMultiplayerSelectedNumberOfRacers) # addiu $s5, $s5, 0x410 -/* 092A38 80091E38 0000A025 */ move $s4, $zero -/* 092A3C 80091E3C 241300FF */ li $s3, 255 -.L80091E40: -/* 092A40 80091E40 8EA80000 */ lw $t0, ($s5) -/* 092A44 80091E44 3C0B8012 */ lui $t3, %hi(gMenuOptionCount) # $t3, 0x8012 -/* 092A48 80091E48 1688000D */ bne $s4, $t0, .L80091E80 -/* 092A4C 80091E4C 00141040 */ sll $v0, $s4, 1 -/* 092A50 80091E50 8D6B63E0 */ lw $t3, %lo(gMenuOptionCount)($t3) -/* 092A54 80091E54 8FAC0084 */ lw $t4, 0x84($sp) -/* 092A58 80091E58 29610003 */ slti $at, $t3, 3 -/* 092A5C 80091E5C 10200005 */ beqz $at, .L80091E74 -/* 092A60 80091E60 240D00FF */ li $t5, 255 -/* 092A64 80091E64 01AC1023 */ subu $v0, $t5, $t4 -/* 092A68 80091E68 A2020000 */ sb $v0, ($s0) -/* 092A6C 80091E6C 10000003 */ b .L80091E7C -/* 092A70 80091E70 A2220000 */ sb $v0, ($s1) -.L80091E74: -/* 092A74 80091E74 A2000000 */ sb $zero, ($s0) -/* 092A78 80091E78 A2200000 */ sb $zero, ($s1) -.L80091E7C: -/* 092A7C 80091E7C 00141040 */ sll $v0, $s4, 1 -.L80091E80: -/* 092A80 80091E80 0002C040 */ sll $t8, $v0, 1 -/* 092A84 80091E84 02581821 */ addu $v1, $s2, $t8 -/* 092A88 80091E88 846F0010 */ lh $t7, 0x10($v1) -/* 092A8C 80091E8C 864E0000 */ lh $t6, ($s2) -/* 092A90 80091E90 3C05800E */ lui $a1, %hi(gMenuImageStack) # $a1, 0x800e -/* 092A94 80091E94 01EEC821 */ addu $t9, $t7, $t6 -/* 092A98 80091E98 2729FF60 */ addiu $t1, $t9, -0xa0 -/* 092A9C 80091E9C 44892000 */ mtc1 $t1, $f4 -/* 092AA0 80091EA0 24A5F75C */ addiu $a1, %lo(gMenuImageStack) # addiu $a1, $a1, -0x8a4 -/* 092AA4 80091EA4 468021A0 */ cvt.s.w $f6, $f4 -/* 092AA8 80091EA8 8CAA0000 */ lw $t2, ($a1) -/* 092AAC 80091EAC 244E0002 */ addiu $t6, $v0, 2 -/* 092AB0 80091EB0 E546000C */ swc1 $f6, 0xc($t2) -/* 092AB4 80091EB4 84680012 */ lh $t0, 0x12($v1) -/* 092AB8 80091EB8 864D0002 */ lh $t5, 2($s2) -/* 092ABC 80091EBC 00085823 */ negu $t3, $t0 -/* 092AC0 80091EC0 016D6023 */ subu $t4, $t3, $t5 -/* 092AC4 80091EC4 25980078 */ addiu $t8, $t4, 0x78 -/* 092AC8 80091EC8 44984000 */ mtc1 $t8, $f8 -/* 092ACC 80091ECC 8CAF0000 */ lw $t7, ($a1) -/* 092AD0 80091ED0 468042A0 */ cvt.s.w $f10, $f8 -/* 092AD4 80091ED4 00002025 */ move $a0, $zero -/* 092AD8 80091ED8 E5EA0010 */ swc1 $f10, 0x10($t7) -/* 092ADC 80091EDC 8CB90000 */ lw $t9, ($a1) -/* 092AE0 80091EE0 0C027298 */ jal func_8009CA60 -/* 092AE4 80091EE4 A72E0018 */ sh $t6, 0x18($t9) -/* 092AE8 80091EE8 26940001 */ addiu $s4, $s4, 1 -/* 092AEC 80091EEC A2130000 */ sb $s3, ($s0) -/* 092AF0 80091EF0 1696FFD3 */ bne $s4, $s6, .L80091E40 -/* 092AF4 80091EF4 A2330000 */ sb $s3, ($s1) -/* 092AF8 80091EF8 0C01EFC7 */ jal sprite_opaque -/* 092AFC 80091EFC 24040001 */ li $a0, 1 -/* 092B00 80091F00 0C01A142 */ jal func_80068508 -/* 092B04 80091F04 00002025 */ move $a0, $zero -.L80091F08: -/* 092B08 80091F08 3C098012 */ lui $t1, %hi(D_801269C8) # $t1, 0x8012 -/* 092B0C 80091F0C 8D2969C8 */ lw $t1, %lo(D_801269C8)($t1) -/* 092B10 80091F10 24160003 */ li $s6, 3 -/* 092B14 80091F14 29210004 */ slti $at, $t1, 4 -/* 092B18 80091F18 1020003D */ beqz $at, .L80092010 -/* 092B1C 80091F1C 00000000 */ nop -/* 092B20 80091F20 0C01EFC7 */ jal sprite_opaque -/* 092B24 80091F24 00002025 */ move $a0, $zero -/* 092B28 80091F28 3C0A800E */ lui $t2, %hi(gIsInAdventureTwo) # $t2, 0x800e -/* 092B2C 80091F2C 8D4AF494 */ lw $t2, %lo(gIsInAdventureTwo)($t2) -/* 092B30 80091F30 2415000B */ li $s5, 11 -/* 092B34 80091F34 11400002 */ beqz $t2, .L80091F40 -/* 092B38 80091F38 3C014228 */ li $at, 0x42280000 # 42.000000 -/* 092B3C 80091F3C 2415000C */ li $s5, 12 -.L80091F40: -/* 092B40 80091F40 3C08800E */ lui $t0, %hi(gMenuImageStack) # $t0, 0x800e -/* 092B44 80091F44 8D08F75C */ lw $t0, %lo(gMenuImageStack)($t0) -/* 092B48 80091F48 44818000 */ mtc1 $at, $f16 -/* 092B4C 80091F4C 00158140 */ sll $s0, $s5, 5 -/* 092B50 80091F50 01105821 */ addu $t3, $t0, $s0 -/* 092B54 80091F54 E5700010 */ swc1 $f16, 0x10($t3) -/* 092B58 80091F58 8FAD0070 */ lw $t5, 0x70($sp) -/* 092B5C 80091F5C 3C18800E */ lui $t8, %hi(gTrackIdForPreview) # $t8, 0x800e -/* 092B60 80091F60 8F18F4C4 */ lw $t8, %lo(gTrackIdForPreview)($t8) -/* 092B64 80091F64 8DAC0004 */ lw $t4, 4($t5) -/* 092B68 80091F68 00187880 */ sll $t7, $t8, 2 -/* 092B6C 80091F6C 018F7021 */ addu $t6, $t4, $t7 -/* 092B70 80091F70 8DD90000 */ lw $t9, ($t6) -/* 092B74 80091F74 00000000 */ nop -/* 092B78 80091F78 33290002 */ andi $t1, $t9, 2 -/* 092B7C 80091F7C 15200004 */ bnez $t1, .L80091F90 -/* 092B80 80091F80 00000000 */ nop -/* 092B84 80091F84 0C027B18 */ jal is_adventure_two_unlocked -/* 092B88 80091F88 00000000 */ nop -/* 092B8C 80091F8C 10400008 */ beqz $v0, .L80091FB0 -.L80091F90: -/* 092B90 80091F90 3C0A800E */ lui $t2, %hi(gMenuImageStack) # $t2, 0x800e -/* 092B94 80091F94 8D4AF75C */ lw $t2, %lo(gMenuImageStack)($t2) -/* 092B98 80091F98 3C01C300 */ li $at, 0xC3000000 # -128.000000 -/* 092B9C 80091F9C 44819000 */ mtc1 $at, $f18 -/* 092BA0 80091FA0 01504021 */ addu $t0, $t2, $s0 -/* 092BA4 80091FA4 02A02025 */ move $a0, $s5 -/* 092BA8 80091FA8 0C027298 */ jal func_8009CA60 -/* 092BAC 80091FAC E512000C */ swc1 $f18, 0xc($t0) -.L80091FB0: -/* 092BB0 80091FB0 8FAB0070 */ lw $t3, 0x70($sp) -/* 092BB4 80091FB4 3C18800E */ lui $t8, %hi(gTrackIdForPreview) # $t8, 0x800e -/* 092BB8 80091FB8 8F18F4C4 */ lw $t8, %lo(gTrackIdForPreview)($t8) -/* 092BBC 80091FBC 8D6D0004 */ lw $t5, 4($t3) -/* 092BC0 80091FC0 00186080 */ sll $t4, $t8, 2 -/* 092BC4 80091FC4 01AC7821 */ addu $t7, $t5, $t4 -/* 092BC8 80091FC8 8DEE0000 */ lw $t6, ($t7) -/* 092BCC 80091FCC 00000000 */ nop -/* 092BD0 80091FD0 31D90004 */ andi $t9, $t6, 4 -/* 092BD4 80091FD4 17200004 */ bnez $t9, .L80091FE8 -/* 092BD8 80091FD8 00000000 */ nop -/* 092BDC 80091FDC 0C027B18 */ jal is_adventure_two_unlocked -/* 092BE0 80091FE0 00000000 */ nop -/* 092BE4 80091FE4 10400008 */ beqz $v0, .L80092008 -.L80091FE8: -/* 092BE8 80091FE8 3C09800E */ lui $t1, %hi(gMenuImageStack) # $t1, 0x800e -/* 092BEC 80091FEC 8D29F75C */ lw $t1, %lo(gMenuImageStack)($t1) -/* 092BF0 80091FF0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 092BF4 80091FF4 44812000 */ mtc1 $at, $f4 -/* 092BF8 80091FF8 01305021 */ addu $t2, $t1, $s0 -/* 092BFC 80091FFC 02A02025 */ move $a0, $s5 -/* 092C00 80092000 0C027298 */ jal func_8009CA60 -/* 092C04 80092004 E544000C */ swc1 $f4, 0xc($t2) -.L80092008: -/* 092C08 80092008 0C01EFC7 */ jal sprite_opaque -/* 092C0C 8009200C 24040001 */ li $a0, 1 -.L80092010: -/* 092C10 80092010 3C08800E */ lui $t0, %hi(gNumberOfActivePlayers) # $t0, 0x800e -/* 092C14 80092014 8D08F4BC */ lw $t0, %lo(gNumberOfActivePlayers)($t0) -/* 092C18 80092018 24010001 */ li $at, 1 -/* 092C1C 8009201C 1501001C */ bne $t0, $at, .L80092090 -/* 092C20 80092020 3C0B8012 */ lui $t3, %hi(gMenuOptionCount) # $t3, 0x8012 -/* 092C24 80092024 8D6B63E0 */ lw $t3, %lo(gMenuOptionCount)($t3) -/* 092C28 80092028 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e -/* 092C2C 8009202C 05600018 */ bltz $t3, .L80092090 -/* 092C30 80092030 00000000 */ nop -/* 092C34 80092034 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0) -/* 092C38 80092038 0C024AF8 */ jal func_80092BE0 -/* 092C3C 8009203C 00000000 */ nop -/* 092C40 80092040 04400013 */ bltz $v0, .L80092090 -/* 092C44 80092044 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092C48 80092048 8FA70080 */ lw $a3, 0x80($sp) -/* 092C4C 8009204C 8FCF0000 */ lw $t7, ($fp) -/* 092C50 80092050 3C05800E */ lui $a1, %hi(gRaceSelectionTTTexture) # $a1, 0x800e -/* 092C54 80092054 241800FF */ li $t8, 255 -/* 092C58 80092058 240D00FF */ li $t5, 255 -/* 092C5C 8009205C 240C00FF */ li $t4, 255 -/* 092C60 80092060 AFAC0018 */ sw $t4, 0x18($sp) -/* 092C64 80092064 AFAD0014 */ sw $t5, 0x14($sp) -/* 092C68 80092068 AFB80010 */ sw $t8, 0x10($sp) -/* 092C6C 8009206C 24A50614 */ addiu $a1, %lo(gRaceSelectionTTTexture) # addiu $a1, $a1, 0x614 -/* 092C70 80092070 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092C74 80092074 240600CC */ li $a2, 204 -/* 092C78 80092078 24E7007A */ addiu $a3, $a3, 0x7a -/* 092C7C 8009207C 0C01E2AE */ jal render_textured_rectangle -/* 092C80 80092080 AFAF001C */ sw $t7, 0x1c($sp) -/* 092C84 80092084 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092C88 80092088 0C01ECF4 */ jal reset_render_settings -/* 092C8C 8009208C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -.L80092090: -/* 092C90 80092090 3C0E8012 */ lui $t6, %hi(D_801269C8) # $t6, 0x8012 -/* 092C94 80092094 8DCE69C8 */ lw $t6, %lo(D_801269C8)($t6) -/* 092C98 80092098 24010005 */ li $at, 5 -/* 092C9C 8009209C 11C1002C */ beq $t6, $at, .L80092150 -/* 092CA0 800920A0 3C028012 */ lui $v0, %hi(gMenuOptionCount) # $v0, 0x8012 -/* 092CA4 800920A4 8C4263E0 */ lw $v0, %lo(gMenuOptionCount)($v0) -/* 092CA8 800920A8 24010002 */ li $at, 2 -/* 092CAC 800920AC 14410005 */ bne $v0, $at, .L800920C4 -/* 092CB0 800920B0 00000000 */ nop -/* 092CB4 800920B4 8FB90074 */ lw $t9, 0x74($sp) -/* 092CB8 800920B8 00000000 */ nop -/* 092CBC 800920BC 13200009 */ beqz $t9, .L800920E4 -/* 092CC0 800920C0 00000000 */ nop -.L800920C4: -/* 092CC4 800920C4 16C20005 */ bne $s6, $v0, .L800920DC -/* 092CC8 800920C8 24010004 */ li $at, 4 -/* 092CCC 800920CC 8FA90074 */ lw $t1, 0x74($sp) -/* 092CD0 800920D0 00000000 */ nop -/* 092CD4 800920D4 15200003 */ bnez $t1, .L800920E4 -/* 092CD8 800920D8 00000000 */ nop -.L800920DC: -/* 092CDC 800920DC 1441001D */ bne $v0, $at, .L80092154 -/* 092CE0 800920E0 240C00FF */ li $t4, 255 -.L800920E4: -/* 092CE4 800920E4 0C0310BB */ jal set_text_font -/* 092CE8 800920E8 24040002 */ li $a0, 2 -/* 092CEC 800920EC 8FCA0000 */ lw $t2, ($fp) -/* 092CF0 800920F0 240400FF */ li $a0, 255 -/* 092CF4 800920F4 240500FF */ li $a1, 255 -/* 092CF8 800920F8 240600FF */ li $a2, 255 -/* 092CFC 800920FC 00003825 */ move $a3, $zero -/* 092D00 80092100 0C0310E1 */ jal set_text_colour -/* 092D04 80092104 AFAA0010 */ sw $t2, 0x10($sp) -/* 092D08 80092108 3C088012 */ lui $t0, %hi(D_801269C8) # $t0, 0x8012 -/* 092D0C 8009210C 8D0869C8 */ lw $t0, %lo(D_801269C8)($t0) -/* 092D10 80092110 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012 -/* 092D14 80092114 29010004 */ slti $at, $t0, 4 -/* 092D18 80092118 14200005 */ bnez $at, .L80092130 -/* 092D1C 8009211C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0 -/* 092D20 80092120 8FAB0080 */ lw $t3, 0x80($sp) -/* 092D24 80092124 00000000 */ nop -/* 092D28 80092128 25780018 */ addiu $t8, $t3, 0x18 -/* 092D2C 8009212C AFB80080 */ sw $t8, 0x80($sp) -.L80092130: -/* 092D30 80092130 8FA60080 */ lw $a2, 0x80($sp) -/* 092D34 80092134 3C07800F */ lui $a3, %hi(D_800E823C) # $a3, 0x800f -/* 092D38 80092138 240D000C */ li $t5, 12 -/* 092D3C 8009213C AFAD0010 */ sw $t5, 0x10($sp) -/* 092D40 80092140 24E7823C */ addiu $a3, %lo(D_800E823C) # addiu $a3, $a3, -0x7dc4 -/* 092D44 80092144 240500A0 */ li $a1, 160 -/* 092D48 80092148 0C031110 */ jal draw_text -/* 092D4C 8009214C 24C600AC */ addiu $a2, $a2, 0xac -.L80092150: -/* 092D50 80092150 240C00FF */ li $t4, 255 -.L80092154: -/* 092D54 80092154 AFCC0000 */ sw $t4, ($fp) -.L80092158: -/* 092D58 80092158 8FBF0054 */ lw $ra, 0x54($sp) -/* 092D5C 8009215C 8FB00030 */ lw $s0, 0x30($sp) -/* 092D60 80092160 8FB10034 */ lw $s1, 0x34($sp) -/* 092D64 80092164 8FB20038 */ lw $s2, 0x38($sp) -/* 092D68 80092168 8FB3003C */ lw $s3, 0x3c($sp) -/* 092D6C 8009216C 8FB40040 */ lw $s4, 0x40($sp) -/* 092D70 80092170 8FB50044 */ lw $s5, 0x44($sp) -/* 092D74 80092174 8FB60048 */ lw $s6, 0x48($sp) -/* 092D78 80092178 8FB7004C */ lw $s7, 0x4c($sp) -/* 092D7C 8009217C 8FBE0050 */ lw $fp, 0x50($sp) -/* 092D80 80092180 03E00008 */ jr $ra -/* 092D84 80092184 27BD0098 */ addiu $sp, $sp, 0x98 - diff --git a/asm/non_matchings/object_functions/obj_init_butterfly.s b/asm/non_matchings/object_functions/obj_init_butterfly.s deleted file mode 100644 index 0c4babe6..00000000 --- a/asm/non_matchings/object_functions/obj_init_butterfly.s +++ /dev/null @@ -1,178 +0,0 @@ -.late_rodata -glabel D_800E6218 -.float 0.01 - -.text -glabel obj_init_butterfly -/* 0415C8 800409C8 AFA50004 */ sw $a1, 4($sp) -/* 0415CC 800409CC 8C820064 */ lw $v0, 0x64($a0) -/* 0415D0 800409D0 14C0003B */ bnez $a2, .L80040AC0 -/* 0415D4 800409D4 240E0180 */ li $t6, 384 -/* 0415D8 800409D8 44800000 */ mtc1 $zero, $f0 -/* 0415DC 800409DC 3C06800E */ lui $a2, %hi(D_800DCAA8) # $a2, 0x800e -/* 0415E0 800409E0 E4800020 */ swc1 $f0, 0x20($a0) -/* 0415E4 800409E4 3C03800E */ lui $v1, %hi(D_800DCB28) # $v1, 0x800e -/* 0415E8 800409E8 A04000FE */ sb $zero, 0xfe($v0) -/* 0415EC 800409EC AC400100 */ sw $zero, 0x100($v0) -/* 0415F0 800409F0 A4400104 */ sh $zero, 0x104($v0) -/* 0415F4 800409F4 A04000FD */ sb $zero, 0xfd($v0) -/* 0415F8 800409F8 A44E0106 */ sh $t6, 0x106($v0) -/* 0415FC 800409FC 2463CB28 */ addiu $v1, %lo(D_800DCB28) # addiu $v1, $v1, -0x34d8 -/* 041600 80040A00 24C6CAA8 */ addiu $a2, %lo(D_800DCAA8) # addiu $a2, $a2, -0x3558 -/* 041604 80040A04 00402825 */ move $a1, $v0 -/* 041608 80040A08 E4400108 */ swc1 $f0, 0x108($v0) -.L80040A0C: -/* 04160C 80040A0C 90CF0000 */ lbu $t7, ($a2) -/* 041610 80040A10 24C60010 */ addiu $a2, $a2, 0x10 -/* 041614 80040A14 A0AF0000 */ sb $t7, ($a1) -/* 041618 80040A18 90D8FFF1 */ lbu $t8, -0xf($a2) -/* 04161C 80040A1C 00C3082B */ sltu $at, $a2, $v1 -/* 041620 80040A20 A0B80001 */ sb $t8, 1($a1) -/* 041624 80040A24 90D9FFF2 */ lbu $t9, -0xe($a2) -/* 041628 80040A28 24A50010 */ addiu $a1, $a1, 0x10 -/* 04162C 80040A2C A0B9FFF2 */ sb $t9, -0xe($a1) -/* 041630 80040A30 90C9FFF3 */ lbu $t1, -0xd($a2) -/* 041634 80040A34 1420FFF5 */ bnez $at, .L80040A0C -/* 041638 80040A38 A0A9FFF3 */ sb $t1, -0xd($a1) -/* 04163C 80040A3C 3C06800E */ lui $a2, %hi(D_800DCB28) # $a2, 0x800e -/* 041640 80040A40 24C6CB28 */ addiu $a2, %lo(D_800DCB28) # addiu $a2, $a2, -0x34d8 -/* 041644 80040A44 00001825 */ move $v1, $zero -/* 041648 80040A48 00402825 */ move $a1, $v0 -/* 04164C 80040A4C 24080006 */ li $t0, 6 -/* 041650 80040A50 240700FF */ li $a3, 255 -.L80040A54: -/* 041654 80040A54 84CA0000 */ lh $t2, ($a2) -/* 041658 80040A58 24630001 */ addiu $v1, $v1, 1 -/* 04165C 80040A5C A4AA0080 */ sh $t2, 0x80($a1) -/* 041660 80040A60 84CB0002 */ lh $t3, 2($a2) -/* 041664 80040A64 24A5000A */ addiu $a1, $a1, 0xa -/* 041668 80040A68 A4AB0078 */ sh $t3, 0x78($a1) -/* 04166C 80040A6C 84CC0004 */ lh $t4, 4($a2) -/* 041670 80040A70 A0A7007C */ sb $a3, 0x7c($a1) -/* 041674 80040A74 A0A7007D */ sb $a3, 0x7d($a1) -/* 041678 80040A78 A0A7007E */ sb $a3, 0x7e($a1) -/* 04167C 80040A7C A0A7007F */ sb $a3, 0x7f($a1) -/* 041680 80040A80 A4AC007A */ sh $t4, 0x7a($a1) -/* 041684 80040A84 84CD0000 */ lh $t5, ($a2) -/* 041688 80040A88 24C60006 */ addiu $a2, $a2, 6 -/* 04168C 80040A8C A4AD00B2 */ sh $t5, 0xb2($a1) -/* 041690 80040A90 84CEFFFC */ lh $t6, -4($a2) -/* 041694 80040A94 00000000 */ nop -/* 041698 80040A98 A4AE00B4 */ sh $t6, 0xb4($a1) -/* 04169C 80040A9C 84CFFFFE */ lh $t7, -2($a2) -/* 0416A0 80040AA0 A0A700B8 */ sb $a3, 0xb8($a1) -/* 0416A4 80040AA4 A0A700B9 */ sb $a3, 0xb9($a1) -/* 0416A8 80040AA8 A0A700BA */ sb $a3, 0xba($a1) -/* 0416AC 80040AAC A0A700BB */ sb $a3, 0xbb($a1) -/* 0416B0 80040AB0 1468FFE8 */ bne $v1, $t0, .L80040A54 -/* 0416B4 80040AB4 A4AF00B6 */ sh $t7, 0xb6($a1) -/* 0416B8 80040AB8 24180001 */ li $t8, 1 -/* 0416BC 80040ABC A05800FC */ sb $t8, 0xfc($v0) -.L80040AC0: -/* 0416C0 80040AC0 8FB90004 */ lw $t9, 4($sp) -/* 0416C4 80040AC4 00402825 */ move $a1, $v0 -/* 0416C8 80040AC8 9329000B */ lbu $t1, 0xb($t9) -/* 0416CC 80040ACC 3C06800E */ lui $a2, %hi(D_800DCAA8) # $a2, 0x800e -/* 0416D0 80040AD0 44892000 */ mtc1 $t1, $f4 -/* 0416D4 80040AD4 05210005 */ bgez $t1, .L80040AEC -/* 0416D8 80040AD8 468021A0 */ cvt.s.w $f6, $f4 -/* 0416DC 80040ADC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0416E0 80040AE0 44814000 */ mtc1 $at, $f8 -/* 0416E4 80040AE4 00000000 */ nop -/* 0416E8 80040AE8 46083180 */ add.s $f6, $f6, $f8 -.L80040AEC: -/* 0416EC 80040AEC 3C01800E */ lui $at, %hi(D_800E6218) # $at, 0x800e -/* 0416F0 80040AF0 C42A6218 */ lwc1 $f10, %lo(D_800E6218)($at) -/* 0416F4 80040AF4 8C8B0040 */ lw $t3, 0x40($a0) -/* 0416F8 80040AF8 460A3402 */ mul.s $f16, $f6, $f10 -/* 0416FC 80040AFC 00003825 */ move $a3, $zero -/* 041700 80040B00 24C6CAA8 */ addiu $a2, %lo(D_800DCAA8) # addiu $a2, $a2, -0x3558 -/* 041704 80040B04 E4900008 */ swc1 $f16, 8($a0) -/* 041708 80040B08 8FAA0004 */ lw $t2, 4($sp) -/* 04170C 80040B0C 816C0055 */ lb $t4, 0x55($t3) -/* 041710 80040B10 9143000A */ lbu $v1, 0xa($t2) -/* 041714 80040B14 00000000 */ nop -/* 041718 80040B18 006C082A */ slt $at, $v1, $t4 -/* 04171C 80040B1C 10200007 */ beqz $at, .L80040B3C -/* 041720 80040B20 00000000 */ nop -/* 041724 80040B24 8C8D0068 */ lw $t5, 0x68($a0) -/* 041728 80040B28 00037080 */ sll $t6, $v1, 2 -/* 04172C 80040B2C 01AE7821 */ addu $t7, $t5, $t6 -/* 041730 80040B30 8DF80000 */ lw $t8, ($t7) -/* 041734 80040B34 10000006 */ b .L80040B50 -/* 041738 80040B38 AC5800F8 */ sw $t8, 0xf8($v0) -.L80040B3C: -/* 04173C 80040B3C 8C990068 */ lw $t9, 0x68($a0) -/* 041740 80040B40 00000000 */ nop -/* 041744 80040B44 8F290000 */ lw $t1, ($t9) -/* 041748 80040B48 00000000 */ nop -/* 04174C 80040B4C AC4900F8 */ sw $t1, 0xf8($v0) -.L80040B50: -/* 041750 80040B50 8C4300F8 */ lw $v1, 0xf8($v0) -/* 041754 80040B54 3C02800E */ lui $v0, %hi(D_800DCB28) # $v0, 0x800e -/* 041758 80040B58 1060000A */ beqz $v1, .L80040B84 -/* 04175C 80040B5C 2442CB28 */ addiu $v0, %lo(D_800DCB28) # addiu $v0, $v0, -0x34d8 -/* 041760 80040B60 90670000 */ lbu $a3, ($v1) -/* 041764 80040B64 90640001 */ lbu $a0, 1($v1) -/* 041768 80040B68 24E7FFFF */ addiu $a3, $a3, -1 -/* 04176C 80040B6C 2484FFFF */ addiu $a0, $a0, -1 -/* 041770 80040B70 00075140 */ sll $t2, $a3, 5 -/* 041774 80040B74 00045940 */ sll $t3, $a0, 5 -/* 041778 80040B78 01403825 */ move $a3, $t2 -/* 04177C 80040B7C 10000002 */ b .L80040B88 -/* 041780 80040B80 01602025 */ move $a0, $t3 -.L80040B84: -/* 041784 80040B84 00002025 */ move $a0, $zero -.L80040B88: -/* 041788 80040B88 84CC0004 */ lh $t4, 4($a2) -/* 04178C 80040B8C 24C60020 */ addiu $a2, $a2, 0x20 -/* 041790 80040B90 01876824 */ and $t5, $t4, $a3 -/* 041794 80040B94 A4AD0004 */ sh $t5, 4($a1) -/* 041798 80040B98 84CEFFE6 */ lh $t6, -0x1a($a2) -/* 04179C 80040B9C 24A50020 */ addiu $a1, $a1, 0x20 -/* 0417A0 80040BA0 01C47824 */ and $t7, $t6, $a0 -/* 0417A4 80040BA4 A4AFFFE6 */ sh $t7, -0x1a($a1) -/* 0417A8 80040BA8 84D8FFE8 */ lh $t8, -0x18($a2) -/* 0417AC 80040BAC 00000000 */ nop -/* 0417B0 80040BB0 0307C824 */ and $t9, $t8, $a3 -/* 0417B4 80040BB4 A4B9FFE8 */ sh $t9, -0x18($a1) -/* 0417B8 80040BB8 84C9FFEA */ lh $t1, -0x16($a2) -/* 0417BC 80040BBC 00000000 */ nop -/* 0417C0 80040BC0 01245024 */ and $t2, $t1, $a0 -/* 0417C4 80040BC4 A4AAFFEA */ sh $t2, -0x16($a1) -/* 0417C8 80040BC8 84CBFFEC */ lh $t3, -0x14($a2) -/* 0417CC 80040BCC 00000000 */ nop -/* 0417D0 80040BD0 01676024 */ and $t4, $t3, $a3 -/* 0417D4 80040BD4 A4ACFFEC */ sh $t4, -0x14($a1) -/* 0417D8 80040BD8 84CDFFEE */ lh $t5, -0x12($a2) -/* 0417DC 80040BDC 00000000 */ nop -/* 0417E0 80040BE0 01A47024 */ and $t6, $t5, $a0 -/* 0417E4 80040BE4 A4AEFFEE */ sh $t6, -0x12($a1) -/* 0417E8 80040BE8 84CFFFF4 */ lh $t7, -0xc($a2) -/* 0417EC 80040BEC 00000000 */ nop -/* 0417F0 80040BF0 01E7C024 */ and $t8, $t7, $a3 -/* 0417F4 80040BF4 A4B8FFF4 */ sh $t8, -0xc($a1) -/* 0417F8 80040BF8 84D9FFF6 */ lh $t9, -0xa($a2) -/* 0417FC 80040BFC 00000000 */ nop -/* 041800 80040C00 03244824 */ and $t1, $t9, $a0 -/* 041804 80040C04 A4A9FFF6 */ sh $t1, -0xa($a1) -/* 041808 80040C08 84CAFFF8 */ lh $t2, -8($a2) -/* 04180C 80040C0C 00000000 */ nop -/* 041810 80040C10 01475824 */ and $t3, $t2, $a3 -/* 041814 80040C14 A4ABFFF8 */ sh $t3, -8($a1) -/* 041818 80040C18 84CCFFFA */ lh $t4, -6($a2) -/* 04181C 80040C1C 00000000 */ nop -/* 041820 80040C20 01846824 */ and $t5, $t4, $a0 -/* 041824 80040C24 A4ADFFFA */ sh $t5, -6($a1) -/* 041828 80040C28 84CEFFFC */ lh $t6, -4($a2) -/* 04182C 80040C2C 00000000 */ nop -/* 041830 80040C30 01C77824 */ and $t7, $t6, $a3 -/* 041834 80040C34 A4AFFFFC */ sh $t7, -4($a1) -/* 041838 80040C38 84D8FFFE */ lh $t8, -2($a2) -/* 04183C 80040C3C 00000000 */ nop -/* 041840 80040C40 0304C824 */ and $t9, $t8, $a0 -/* 041844 80040C44 14C2FFD0 */ bne $a2, $v0, .L80040B88 -/* 041848 80040C48 A4B9FFFE */ sh $t9, -2($a1) -/* 04184C 80040C4C 03E00008 */ jr $ra -/* 041850 80040C50 00000000 */ nop - diff --git a/src/audio.c b/src/audio.c index 88172515..e1dc0e56 100644 --- a/src/audio.c +++ b/src/audio.c @@ -469,7 +469,7 @@ UNUSED u8 music_channel_volume(u8 channel) { /** * Set this channel to fade in over time. */ -void music_channel_fade_set(u8 channel, u8 fade) { +void music_channel_fade_set(u8 channel, ALPan fade) { if (channel < AUDIO_CHANNELS) { alCSPSetFadeIn(gMusicPlayer, channel, fade); } diff --git a/src/menu.c b/src/menu.c index 7fba0982..d4760c5c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -177,7 +177,7 @@ s32 D_80126928; s32 D_8012692C; TrackRenderDetails gTrackSelectRenderDetails[9]; s8 gPlayerSelectVehicle[4]; // Unknown number of entries. -u8 D_801269C4[4]; +s8 D_801269C4[4]; s32 D_801269C8; s32 D_801269CC; char *gAudioOutputStrings[3]; @@ -806,7 +806,7 @@ DrawTexture *gMenuSelectionArrows[4] = { }; // X/Y offsets for the "Player" icon -u16 gTracksMenuPlayerNamePositions[20] = { +s16 gTracksMenuPlayerNamePositions[20] = { // X, Y 0x44, 0x72, // 1 player 0x44, 0x72, 0xCC, 0x72, // 2 players @@ -815,7 +815,7 @@ u16 gTracksMenuPlayerNamePositions[20] = { }; // X offsets for "Car", "Hover", and "Plane" choices in track select. -u16 gTracksMenuVehicleNamePositions[10] = { +s16 gTracksMenuVehicleNamePositions[10] = { 0x68, // 1 player 0x21, 0xFB, // 2 players 0x27, 0x8E, 0xF5, // 3 players @@ -1225,57 +1225,37 @@ s16 gTrophyRaceImageIndices[3] = { 0, 1, -1 }; -MenuElement gTrophyRankingsTitle[1][2] = { - { - { SCREEN_WIDTH + 160 + 1, 35, SCREEN_WIDTH_HALF + 1, 35, -159, 35, 0, 0, 0, 255, 128, ASSET_FONTS_BIGFONT, 12, 0, { NULL }, {{ 0, 0, 0, 0 }} }, - { SCREEN_WIDTH + 160, 32, SCREEN_WIDTH_HALF, 32, -160, 32, 255, 255, 255, 0, 255, ASSET_FONTS_BIGFONT, 12, 0, { NULL }, {{ 0, 0, 0, 0 }} } - } +MenuElement gTrophyRankingsTitle[] = { + { 320 + 160 + 1, 35, (320 / 2) + 1, 35, -159, 35, 0, 0, 0, 255, 128, ASSET_FONTS_BIGFONT, 12, 0, { 0 }, {{ 0, 0, 0, 0 }} }, + { 320 + 160, 32, (320 / 2), 32, -160, 32, 255, 255, 255, 0, 255, ASSET_FONTS_BIGFONT, 12, 0, { 0 }, {{ 0, 0, 0, 0 }} }, }; - -MenuElement gTrophyRankingsCharDetails[8][3] = { - { - { 64, -192, 64, 48, 64, 288, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 32, -192, 32, 48, 32, 288, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gFirstPlace }, {{ 0, 0, 0, 0 }} }, - { 130, -172, 130, 68, 130, 308, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[0] }, {{ 0, 0, 0, 0 }} } - }, - { - { 64, -150, 64, 90, 64, 330, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 32, -150, 32, 90, 32, 330, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gSecondPlace }, {{ 0, 0, 0, 0 }} }, - { 130, -130, 130, 110, 130, 350, 255, 192, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[1] }, {{ 0, 0, 0, 0 }} } - }, - { - { 64, -108, 64, 132, 64, 372, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 32, -108, 32, 132, 32, 372, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gThirdPlace }, {{ 0, 0, 0, 0 }} }, - { 130, -88, 130, 152, 130, 392, 255, 128, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[2] }, {{ 0, 0, 0, 0 }} } - }, - { - { 64, -66, 64, 174, 64, 414, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 32, -66, 32, 174, 32, 414, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gFourthPlace }, {{ 0, 0, 0, 0 }} }, - { 130, -46, 130, 194, 130, 434, 255, 64, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[3] }, {{ 0, 0, 0, 0 }} } - }, - { - { 220, 288, 220, 48, 220, -192, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 188, 288, 188, 48, 188, -192, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gFifthPlace }, {{ 0, 0, 0, 0 }} }, - { 286, 308, 286, 68, 286, -172, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[4] }, {{ 0, 0, 0, 0 }} } - }, - { - { 220, 330, 220, 90, 220, -160, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 188, 330, 188, 90, 188, -150, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gSixthPlace }, {{ 0, 0, 0, 0 }} }, - { 286, 350, 286, 110, 286, -130, 255, 192, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[5] }, {{ 0, 0, 0, 0 }} } - }, - { - { 220, 372, 220, 132, 220, -108, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 188, 372, 188, 132, 188, -108, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gSeventhPlace }, {{ 0, 0, 0, 0 }} }, - { 286, 392, 286, 152, 286, -88, 255, 128, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[6] }, {{ 0, 0, 0, 0 }} } - }, - { - { 220, 414, 220, 174, 220, -66, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, - { 188, 414, 188, 174, 188, -66, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gEighthPlace }, {{ 0, 0, 0, 0 }} }, - { 286, 434, 286, 194, 286, -46, 255, 64, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[7] }, {{ 0, 0, 0, 0 }} } - } +MenuElement gTrophyRankingsRacers[] = { + { 64, -192, 64, 48, 64, 288, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 32, -192, 32, 48, 32, 288, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gFirstPlace }, {{ 0, 0, 0, 0 }} }, + { 130, -172, 130, 68, 130, 308, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[0] }, {{ 0, 0, 0, 0 }} }, + { 64, -150, 64, 90, 64, 330, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 32, -150, 32, 90, 32, 330, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gSecondPlace }, {{ 0, 0, 0, 0 }} }, + { 130, -130, 130, 110, 130, 350, 255, 192, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[1] }, {{ 0, 0, 0, 0 }} }, + { 64, -108, 64, 132, 64, 372, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 32, -108, 32, 132, 32, 372, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gThirdPlace }, {{ 0, 0, 0, 0 }} }, + { 130, -88, 130, 152, 130, 392, 255, 128, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[2] }, {{ 0, 0, 0, 0 }} }, + { 64, -66, 64, 174, 64, 414, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 32, -66, 32, 174, 32, 414, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gFourthPlace }, {{ 0, 0, 0, 0 }} }, + { 130, -46, 130, 194, 130, 434, 255, 64, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[3] }, {{ 0, 0, 0, 0 }} }, + { 220, 288, 220, 48, 220, -192, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 188, 288, 188, 48, 188, -192, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gFifthPlace }, {{ 0, 0, 0, 0 }} }, + { 286, 308, 286, 68, 286, -172, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[4] }, {{ 0, 0, 0, 0 }} }, + { 220, 330, 220, 90, 220, -160, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 188, 330, 188, 90, 188, -150, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gSixthPlace }, {{ 0, 0, 0, 0 }} }, + { 286, 350, 286, 110, 286, -130, 255, 192, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[5] }, {{ 0, 0, 0, 0 }} }, + { 220, 372, 220, 132, 220, -108, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 188, 372, 188, 132, 188, -108, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gSeventhPlace }, {{ 0, 0, 0, 0 }} }, + { 286, 392, 286, 152, 286, -88, 255, 128, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[6] }, {{ 0, 0, 0, 0 }} }, + { 220, 414, 220, 174, 220, -66, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 3, { &gMenuPortraitKrunch }, {{ 0, 0, 0, 0 }} }, + { 188, 414, 188, 174, 188, -66, 255, 255, 255, 0, 255, ASSET_FONTS_FUNFONT, 0, 0, { gEighthPlace }, {{ 0, 0, 0, 0 }} }, + { 286, 434, 286, 194, 286, -46, 255, 64, 255, 0, 255, ASSET_FONTS_FUNFONT, 4, 2, { &gTrophyRacePointsArray[7] }, {{ 0, 0, 0, 0 }} }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ASSET_FONTS_FUNFONT, 0, 0, { 0 }, {{ 0, 0, 0, 0 }} } }; -MenuElement D_800E1088_END = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ASSET_FONTS_FUNFONT, 0, 0, { NULL }, {{ 0, 0, 0, 0 }} }; - s16 gTrophyRankingsRawIconPositions[138] = { 0x0040, 0x0020, 0x0082, 0x0040, 0x0020, 0x0082, 0x0040, 0x0020, 0x0082, 0x0040, 0x0020, 0x0082, 0x00DC, 0x00BC, 0x011E, 0x00DC, @@ -3911,7 +3891,7 @@ SIDeviceStatus func_800862C4(void) { (*sControllerPakNotesFree)--; D_80126A0C[D_80126A08].saveFileType = fileTypes[fileIndex]; D_80126A0C[D_80126A08].controllerIndex = 0; - D_80126A0C[D_80126A08].unk7 = fileIndex; + D_80126A0C[D_80126A08].saveFileNumber = fileIndex; D_80126A0C[D_80126A08].fileSize = fileSizes[fileIndex]; if (fileTypes[fileIndex] == SAVE_FILE_TYPE_GAME_DATA) { if (read_game_data_from_controller_pak(0, fileExts[fileIndex], settings) == CONTROLLER_PAK_GOOD) { @@ -4027,7 +4007,129 @@ void func_80086A48(s32 arg0) { } } -GLOBAL_ASM("asm/non_matchings/menu/func_80086AFC.s") +SIDeviceStatus func_80086AFC(void) { + s32 i; + SIDeviceStatus ret; + UNUSED s32 pad[2]; + char fileExt[PFS_FILE_EXT_LEN]; + Settings *settings; + + settings = get_settings(); + switch (D_80126A0C[D_80126BD4].saveFileType) { + case SAVE_FILE_TYPE_UNK1: + switch (D_80126A04[D_80126BE4].saveFileType) { + case SAVE_FILE_TYPE_UNK1: + force_mark_write_save_file(D_80126A04[D_80126BE4].controllerIndex); + gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->cutsceneFlags = settings->cutsceneFlags; + gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->newGame = FALSE; + *gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->balloonsPtr = *settings->balloonsPtr; + gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->filename = settings->filename; + break; + case SAVE_FILE_TYPE_UNK8: + ret = write_game_data_to_controller_pak(D_80126A04[D_80126BE4].controllerIndex, settings); + break; + case SAVE_FILE_TYPE_UNK7: + mark_save_file_to_erase(D_80126A0C[D_80126BD4].controllerIndex); + gSavefileData[D_80126A0C[D_80126BD4].controllerIndex]->newGame = 1; + break; + } + break; + case SAVE_FILE_TYPE_UNK2: + if (D_80126A04[D_80126BE4].saveFileType != SAVE_FILE_TYPE_UNK7) { + if (D_80126A04[D_80126BE4].saveFileType == SAVE_FILE_TYPE_UNK8) { + ret = write_time_data_to_controller_pak(D_80126A04[D_80126BE4].controllerIndex, settings); + } + } else { + clear_lap_records(settings, 3); + mark_to_write_flap_and_course_times(); + unset_eeprom_settings_value(0xFFFFF0); //Reset most eeprom save data, but keep Adventure 2, and Drumstick. + } + break; + case SAVE_FILE_TYPE_GAME_DATA: + switch (D_80126A04[D_80126BE4].saveFileType) { + case SAVE_FILE_TYPE_UNK1: + ret = read_game_data_from_controller_pak(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].unk8, settings); + if (settings->cutsceneFlags & 4) { + if (is_adventure_two_unlocked() == 0) { + ret = CONTROLLER_PAK_NEED_SECOND_ADVENTURE; + } + } + if (ret == CONTROLLER_PAK_GOOD) { + force_mark_write_save_file((s32) D_80126A04[D_80126BE4].controllerIndex); + gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->cutsceneFlags = settings->cutsceneFlags; + gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->newGame = 0; + *gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->balloonsPtr = *settings->balloonsPtr; + gSavefileData[D_80126A04[D_80126BE4].controllerIndex]->filename = settings->filename; + } + break; + case SAVE_FILE_TYPE_UNK8: + ret = read_game_data_from_controller_pak(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].unk8, gSavefileData[3]); + if (ret == CONTROLLER_PAK_GOOD) { + ret = write_game_data_to_controller_pak(D_80126A04[D_80126BE4].controllerIndex, gSavefileData[3]); + } + break; + case SAVE_FILE_TYPE_UNK7: + ret = delete_file(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].saveFileNumber); + break; + } + break; + case SAVE_FILE_TYPE_TIME_DATA: + for (i = 0; D_80126A0C[D_80126BD4].unk8[i] != 0; i++) {} + if (i > 0) { + fileExt[0] = D_80126A0C[D_80126BD4].unk8[i - 1]; + } else { + fileExt[0] = 'A'; + + } + fileExt[1] = '\0'; + switch (D_80126A04[D_80126BE4].saveFileType) { + case SAVE_FILE_TYPE_UNK2: + ret = read_time_data_from_controller_pak(D_80126A0C[D_80126BD4].controllerIndex, fileExt, settings); + break; + case SAVE_FILE_TYPE_UNK8: + ret = read_time_data_from_controller_pak(D_80126A0C[D_80126BD4].controllerIndex, fileExt, settings); + if (ret == CONTROLLER_PAK_GOOD) { + ret = write_time_data_to_controller_pak(D_80126A04[D_80126BE4].controllerIndex, settings); + } + mark_to_read_flap_and_course_times(); + break; + case SAVE_FILE_TYPE_UNK7: + ret = delete_file(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].saveFileNumber); + break; + } + break; + case SAVE_FILE_TYPE_GHOST_DATA: + if (D_80126A04[D_80126BE4].saveFileType != SAVE_FILE_TYPE_UNK7) { + if (D_80126A04[D_80126BE4].saveFileType != SAVE_FILE_TYPE_UNK8) { + if (D_80126A04[D_80126BE4].saveFileType == SAVE_FILE_TYPE_UNK9) { + gMenuDelay = 1; + D_801264D0 = D_80126A0C[D_80126BD4].controllerIndex; + } + } else { + ret = copy_controller_pak_data(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].saveFileNumber, D_80126A04[D_80126BE4].controllerIndex); + } + } else { + ret = delete_file(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].saveFileNumber); + } + break; + case SAVE_FILE_TYPE_UNKNOWN: + if (D_80126A04[D_80126BE4].saveFileType == SAVE_FILE_TYPE_UNK7) { + ret = delete_file(D_80126A0C[D_80126BD4].controllerIndex, D_80126A0C[D_80126BD4].saveFileNumber); + } + break; + case SAVE_FILE_TYPE_UNKA: + if (D_80126A04[D_80126BE4].saveFileType == SAVE_FILE_TYPE_UNK7) { + unset_eeprom_settings_value(0xFFFFF3); //Reset most eeprom save data including Adventure Two unlock and Drumstick unlock. + gActiveMagicCodes &= ~(CHEAT_CONTROL_TT | CHEAT_CONTROL_DRUMSTICK); + gUnlockedMagicCodes &= ~(CHEAT_CONTROL_TT | CHEAT_CONTROL_DRUMSTICK); + } + break; + default: + ret = CONTROLLER_PAK_GOOD; + break; + } + return ret; +} void func_800871D8(SIDeviceStatus deviceStatus) { s32 i; @@ -7496,120 +7598,123 @@ void render_track_select(s32 x, s32 y, char *hubName, char *trackName, s32 rectO reset_render_settings(&sMenuCurrDisplayList); } -#ifdef NON_EQUIVALENT -void func_8008FF1C(s32 updateRate) { - s32 yOffset; - s32 xOffset; - s32 pad; - s32 trackSelectY; +#ifdef NON_MATCHING +void func_8008FF1C(s32 arg0) { + s32 i; // sp7C + s16 **temp2; + char *hubName; + s32 temp4; s32 trackSelectX; - s32 trackX; - s32 temp_s1; + s32 pad4; + s32 temp; s32 maxTrackY; s8 *trackMenuIds; - Settings *settings; - s32 temp_t7; - TrackRenderDetails *curr; - s32 new_var; - s32 trackSelected; - char *hubName; - + Settings *settings; // sp58 + TrackRenderDetails *cur; + s32 trackX; + s32 trackY; + s32 j; + s32 startIndex; + settings = get_settings(); - trackMenuIds = (s8 *)get_misc_asset(ASSET_MISC_TRACKS_MENU_IDS); - if ((gMenuDelay > -23) && (gMenuDelay < 23)) { - maxTrackY = (gFFLUnlocked == -1) ? 3 : 4; - trackSelectX = (gTrackSelectX / X_TILE_SIZE); - temp_s1 = (gTrackSelectY / -gTrackSelectViewportY); - trackSelectY = temp_s1 - 1; - new_var = -1; - for (yOffset = new_var, curr = gTrackSelectRenderDetails; yOffset < 2; yOffset++) { - for (xOffset = new_var; xOffset < 2; xOffset++) { - trackX = trackSelectX + xOffset; - if ((trackSelectY < 0) || (trackSelectY > maxTrackY) || (trackX < 0) || (trackX >= 6)) { - curr->visible = 0; + trackMenuIds = get_misc_asset(ASSET_MISC_TRACKS_MENU_IDS); + if ((gMenuDelay >= -0x16) && (gMenuDelay < 0x17)) { + if (gFFLUnlocked == -1) { + maxTrackY = 3; + } else { + maxTrackY = 4; + } + trackSelectX = (gTrackSelectX / 320); + temp = (gTrackSelectY / -gTrackSelectViewportY); + trackY = temp - 1; + startIndex = -1; + for(i = startIndex, cur = gTrackSelectRenderDetails; i < 2; i++) { + for(j = startIndex; j < 2; j++) { + trackX = trackSelectX + j; + if ((trackY < 0) || (maxTrackY < trackY) || (trackX < 0) || (trackX >= 6)) { + cur->visible = 0; } else { - curr->visible = 1; - hubName = get_level_name(get_hub_area_id(trackSelectY + 1)); - trackSelected = D_801268E8[trackSelectY][trackX]; - curr->hubName = hubName; - if (trackSelected != -1) { - curr->trackName = get_level_name(trackMenuIds[(trackSelectY * 6) + trackX]); + cur->visible = 1; + hubName = get_level_name(get_hub_area_id(trackY + 1)); + cur->hubName = hubName; + // Problem is here. + if (D_801268E8[trackY][trackX] != -1) { + cur->trackName = get_level_name(trackMenuIds[(trackY * 6) + trackX]); if (trackX == 4) { - if (((settings->trophies >> (trackSelectY * 2)) & 3) == 3) { - curr->visible = 2; + if (((settings->trophies >> (trackY * 2)) & 3) == 3) { + cur->visible = 2; } - } else if (settings->courseFlagsPtr[trackMenuIds[(trackSelectY * 6) + trackX]] & 2) { - curr->visible = 2; + } else if((settings->courseFlagsPtr[trackMenuIds[(trackY * 6) + trackX]] & 2)) { + cur->visible = 2; } } else { - curr->trackName = (char *) gQMarkPtr; + cur->trackName = (char*) gQMarkPtr; } - curr->xOff = ((trackX * X_TILE_SIZE) - gTrackSelectX); - curr->yOff = ((-trackSelectY * gTrackSelectViewportY) - gTrackSelectY); - curr->opacity = 0xFF; - if ((trackX == gSelectedTrackX) && (trackSelectY == gSelectedTrackY)) { - curr->copyViewPort |= 0x80; + cur->xOff = ((trackX * 320) - gTrackSelectX); + if (1){ } //Fakematch + cur->yOff = ((-trackY * gTrackSelectViewportY) - gTrackSelectY); + cur->opacity = 0xFF; + if ((trackX == gSelectedTrackX) && (trackY == gSelectedTrackY)) { + cur->copyViewPort = (cur->copyViewPort & 0xFF) | 0x80; if (gOpacityDecayTimer < 32) { - curr->opacity = gOpacityDecayTimer * 8; + cur->opacity = gOpacityDecayTimer * 8; } } else { - curr->copyViewPort &= 0xFF7F; + cur->copyViewPort = cur->copyViewPort & 0xFF7F; } - temp_t7 = curr->copyViewPort & 0xFF80; - curr->copyViewPort = temp_t7; + cur->copyViewPort = cur->copyViewPort & 0xFF80; if (gMenuDelay == 0) { - if (trackSelectY > 0) { - curr->copyViewPort = ((temp_t7 | 1) & 0x7F) | (temp_t7 & 0xFF80); + if (trackY > 0) { + cur->copyViewPort = (((cur->copyViewPort & 0xFF) | 1) & 0x7F) | (cur->copyViewPort & 0xFF80); } if (trackX < 5) { - curr->copyViewPort = ((curr->copyViewPort | 2) & 0x7F) | (curr->copyViewPort & 0xFF80); + cur->copyViewPort = (((cur->copyViewPort & 0xFF) | 2) & 0x7F) | (cur->copyViewPort & 0xFF80); } - if (trackSelectY < maxTrackY) { - curr->copyViewPort = ((curr->copyViewPort | 4) & 0x7F) | (curr->copyViewPort & 0xFF80); + if (trackY < maxTrackY) { + cur->copyViewPort = (((cur->copyViewPort & 0xFF) | 4) & 0x7F) | (cur->copyViewPort & 0xFF80); } if (trackX > 0) { - curr->copyViewPort = ((curr->copyViewPort | 8) & 0x7F) | (curr->copyViewPort & 0xFF80); + cur->copyViewPort = (((cur->copyViewPort & 0xFF) | 8) & 0x7F) | (cur->copyViewPort & 0xFF80); } - if ((trackX == 4) && (trackSelectY == 4)) { - curr->copyViewPort = (curr->copyViewPort & 0x7D) | (curr->copyViewPort & 0xFF80); + if ((trackX == 4) && (trackY == 4)) { + cur->copyViewPort = ((cur->copyViewPort & 0xFF & 0xFF) & 0x7D) | (cur->copyViewPort & 0xFF80); } - if ((trackX == 5) && (trackSelectY == 3)) { - curr->copyViewPort = (curr->copyViewPort & 0x7B) | (curr->copyViewPort & 0xFF80); + if ((trackX == 5) && (trackY == 3)) { + cur->copyViewPort = ((cur->copyViewPort & 0xFF & 0xFF) & 0x7B) | (cur->copyViewPort & 0xFF80); } } if (trackX == 4) { - curr->border = 6; - } else if (trackX == 5) { - curr->border = 5; + cur->border = 6; + } else if((trackX == 5)) { + cur->border = 5; } else { - curr->border = 4; + cur->border = 4; } } - curr++; + cur++; } - trackSelectY++; + trackY++; } - camDisableUserView(0, TRUE); + camDisableUserView(0, 1); func_8009BD5C(); set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); reset_render_settings(&sMenuCurrDisplayList); gDPPipeSync(sMenuCurrDisplayList++); D_80126928 = 64; D_8012692C = 32; - D_801269F0 = 0; - - for (yOffset = 0; yOffset < ARRAY_COUNT(gTrackSelectRenderDetails); yOffset++) { - if (gTrackSelectRenderDetails[yOffset].visible != 0) { + D_801269F0 = NULL; + for(i = 0; i < ARRAY_COUNT(gTrackSelectRenderDetails); i++) { + if (gTrackSelectRenderDetails[i].visible != 0) { render_track_select( - gTrackSelectRenderDetails[yOffset].xOff, - gTrackSelectRenderDetails[yOffset].yOff, - gTrackSelectRenderDetails[yOffset].hubName, - gTrackSelectRenderDetails[yOffset].trackName, - gTrackSelectRenderDetails[yOffset].opacity, - gTrackSelectRenderDetails[yOffset].border, - ((u32)gTrackSelectRenderDetails[yOffset].viewPort) >> 0xF, - (gTrackSelectRenderDetails[yOffset].visible == 1) ? D_800E05D4 : D_800E05F4, - gTrackSelectRenderDetails[yOffset].copyViewPort & 0x7F + gTrackSelectRenderDetails[i].xOff, + gTrackSelectRenderDetails[i].yOff, + gTrackSelectRenderDetails[i].hubName, + gTrackSelectRenderDetails[i].trackName, + gTrackSelectRenderDetails[i].opacity, + gTrackSelectRenderDetails[i].border, + ((u32)gTrackSelectRenderDetails[i].viewPort) >> 0xF, + (gTrackSelectRenderDetails[i].visible == 1) ? D_800E05D4 : D_800E05F4, + gTrackSelectRenderDetails[i].copyViewPort & 0x7F ); } } @@ -7776,39 +7881,41 @@ void func_80090ED8(UNUSED s32 updateRate) { } } -#ifdef NON_EQUIVALENT - -// Somewhat close to matching, but should be functionally equivalent. -void render_track_select_setup_ui(s32 updateRate) { +void render_track_select_setup_ui(s32 arg0) { + // Had to mess around with shifting the local variables, so they all probably need to be renamed. + s32 k; + s32 y; + s32 temp2; + s32 temp; s32 sp84; - s32 sp80; - s32 sp7C; - char *sp78; + s32 regionOffset; // sp80 + s32 availableVehicleFlags; // sp7C + union { + char buffer[4]; + s32 word; + } filename; // sp78 s32 sp74; Settings *settings; // sp70 - s32 temp; - s32 i, j; - s32 s3; - s32 s4; - s32 s7; - - sp80 = 0; - sp78 = NULL; + s32 i; + s32 j; + + regionOffset = 0; + filename.word = 0; // Set all 4 bytes as '\0'? sp74 = FALSE; settings = get_settings(); if (osTvType == TV_TYPE_PAL) { - sp80 = 12; + regionOffset = 0xC; } if ((gNumberOfActivePlayers == 2) && (D_801269C8 < 4) && (gMenuOptionCount >= 2)) { sp74 = TRUE; } - camDisableUserView(0, TRUE); + camDisableUserView(0, 1); func_8009BD5C(); set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); if (gMenuDelay < 0) { if (gSelectedTrackX == 4) { sp84 = 6; - } else if (gSelectedTrackX == 5) { + } else if((gSelectedTrackX == 5)) { sp84 = 5; } else { sp84 = 4; @@ -7821,163 +7928,141 @@ void render_track_select_setup_ui(s32 updateRate) { func_8009CA60(sp84); gTrackSelectWoodFrameHeightScale = 1.0f; } - if ((gMenuDelay >= -22) && (gMenuDelay < 31)) { - if (gMenuDelay < 0) { - sMenuGuiOpacity = (gMenuDelay * 16) + 255; - } else { - sMenuGuiOpacity = 255; - } + if ((gMenuDelay >= -0x16) && (gMenuDelay < 0x1F)) { + sMenuGuiOpacity = (gMenuDelay < 0) ? 255 + (gMenuDelay * 16) : 255; if (sMenuGuiOpacity < 0) { sMenuGuiOpacity = 0; } - sp7C = get_map_available_vehicles(gTrackIdForPreview); - set_text_font(ASSET_FONTS_BIGFONT); - set_text_colour(192, 192, 255, 0, sMenuGuiOpacity); + availableVehicleFlags = get_map_available_vehicles(gTrackIdForPreview); + i = get_level_name(gTrackIdForPreview); + set_text_font(2); + set_text_colour(0xC0, 0xC0, 255, 0, sMenuGuiOpacity); set_text_background_colour(0, 0, 0, 0); - draw_text(&sMenuCurrDisplayList, POS_CENTRED, 43, get_level_name(gTrackIdForPreview), ALIGN_MIDDLE_CENTER); // Draw track name? + draw_text(&sMenuCurrDisplayList, -0x8000, 0x2B, i, ALIGN_MIDDLE_CENTER); sp84 = gOptionBlinkTimer * 8; - if (sp84 >= 256) { - sp84 = 511 - sp84; + if (sp84 >= 0x100) { + sp84 = 0x1FF - sp84; } set_current_dialogue_background_colour(7, 255, sp84, 0, sMenuGuiOpacity); - if ((gMenuOptionCount == -1) || ((gMenuOptionCount == 2) && (D_801269C8 == 4) && is_adventure_two_unlocked())) { - s4 = get_text_width(gMenuText[ASSET_MENU_TEXT_ADVENTURE2], 0, 0); // "ADVENTURE" - temp = get_text_width(gMenuText[ASSET_MENU_TEXT_ADVENTURETWO2], 0, 0); // "ADVENTURE TWO" - if (s4 < temp) { - s4 = temp; + if ((gMenuOptionCount == -1) || ((gMenuOptionCount == 2) && (D_801269C8 == 4) && (is_adventure_two_unlocked()))) { + temp2 = get_text_width(gMenuText[146], 0, 0); + k = get_text_width(gMenuText[147], 0, 0); + if (temp2 < k) { + temp2 = k; } - if (s4 < gTracksMenuAdventureButton.width) { - s4 = gTracksMenuAdventureButton.width; + if (temp2 < gTracksMenuAdventureButton.width) { + temp2 = gTracksMenuAdventureButton.width; } else { - s4 += 0xC; + temp2 += 0xC; } - func_80080580(&sMenuCurrDisplayList, -(s4 >> 1), 0x78 - gTracksMenuAdventureButton.y, s4, gTracksMenuAdventureButton.height, - gTracksMenuAdventureButton.borderWidth, gTracksMenuAdventureButton.borderHeight, sMenuGuiOpacity + 0xB0E0C000, gMenuObjects[43]); + func_80080580(&sMenuCurrDisplayList, -(temp2 >> 1), 0x78 - gTracksMenuAdventureButton.y, temp2, + gTracksMenuAdventureButton.height, gTracksMenuAdventureButton.borderWidth, gTracksMenuAdventureButton.borderHeight, sMenuGuiOpacity + 0xB0E0C000, + gMenuObjects[67]); func_80080E6C(); - set_text_font(ASSET_FONTS_FUNFONT); - s7 = gTracksMenuAdventureButton.colourMax + gTracksMenuAdventureButton.y + sp80; - s7++; - for (i = 0; i < 2; i++) { - for (j = 0; j < 4; j += 2) { + set_text_font(0); + for(temp = 0, temp2 = 0, y = gTracksMenuAdventureButton.colourMax + gTracksMenuAdventureButton.y + regionOffset + 1; temp2 < 2; temp2++, temp++, y += 16) { + for(j = 0, i = y; j < 4; j += 2, i -= 2) { if (j == 0) { set_text_colour(0, 0, 0, 255, sMenuGuiOpacity >> 1); - } else { - s32 alpha = i; - if (i == gTracksMenuAdventureHighlightIndex) { - alpha = sp84; + } else { + k = 0; + if (temp2 == gTracksMenuAdventureHighlightIndex) { + k = sp84; } - set_text_colour(255, 255, 255, alpha, sMenuGuiOpacity); + set_text_colour(255, 255, 255, k, sMenuGuiOpacity); } - // gMenuText[146] = "ADVENTURE", gMenuText[147] = "ADVENTURE TWO" - draw_text(&sMenuCurrDisplayList, 161 - j, s7 - j, gMenuText[146 + i], ALIGN_MIDDLE_CENTER); + draw_text(&sMenuCurrDisplayList, 0xA1 - j, i, gMenuText[146 + temp], ALIGN_MIDDLE_CENTER); } - s7 += 16; } } if (D_801269C8 < 4) { - set_text_font(ASSET_FONTS_FUNFONT); - set_text_colour(255, 64, 64, 96, sMenuGuiOpacity); - draw_text(&sMenuCurrDisplayList, 56, 72 + sp80, gMenuText[ASSET_MENU_TEXT_BESTTIME], ALIGN_MIDDLE_LEFT); // "BEST TIME" - draw_text(&sMenuCurrDisplayList, 56, 92 + sp80, gMenuText[ASSET_MENU_TEXT_BESTLAP], ALIGN_MIDDLE_LEFT); // "BEST LAP" - set_text_colour(255, 128, 255, 96, sMenuGuiOpacity); - decompress_filename_string(settings->courseInitialsPtr[gPlayerSelectVehicle[PLAYER_ONE]][gTrackIdForPreview], &sp78, 3); - draw_text(&sMenuCurrDisplayList, 250, 72 + sp80, &sp78, ALIGN_MIDDLE_CENTER); - decompress_filename_string(settings->flapInitialsPtr[gPlayerSelectVehicle[PLAYER_ONE]][gTrackIdForPreview], &sp78, 3); - draw_text(&sMenuCurrDisplayList, 250, 92 + sp80, &sp78, ALIGN_MIDDLE_CENTER); - show_timestamp(settings->courseTimesPtr[gPlayerSelectVehicle[PLAYER_ONE]][gTrackIdForPreview], 22, 53, 128, 255, 255, FONT_COLOURFUL); - show_timestamp(settings->flapTimesPtr[gPlayerSelectVehicle[PLAYER_ONE]][gTrackIdForPreview], 22, 33, 255, 192, 255, FONT_COLOURFUL); + set_text_font(0); + set_text_colour(255, 0x40, 0x40, 0x60, sMenuGuiOpacity); + draw_text(&sMenuCurrDisplayList, 0x38, regionOffset + 0x48, gMenuText[9], ALIGN_MIDDLE_LEFT); + draw_text(&sMenuCurrDisplayList, 0x38, regionOffset + 0x5C, gMenuText[10], ALIGN_MIDDLE_LEFT); + set_text_colour(255, 0x80, 255, 0x60, sMenuGuiOpacity); + decompress_filename_string(settings->courseInitialsPtr[gPlayerSelectVehicle[0]][gTrackIdForPreview], filename.buffer, 3); + draw_text(&sMenuCurrDisplayList, 0xFA, regionOffset + 0x48, filename.buffer, ALIGN_MIDDLE_CENTER); + decompress_filename_string(settings->flapInitialsPtr[gPlayerSelectVehicle[0]][gTrackIdForPreview], filename.buffer, 3); + draw_text(&sMenuCurrDisplayList, 0xFA, regionOffset + 0x5C, filename.buffer, ALIGN_MIDDLE_CENTER); + show_timestamp(settings->courseTimesPtr[gPlayerSelectVehicle[0]][gTrackIdForPreview], 0x16, 0x35, 0x80U, 255, 255, 0); + show_timestamp(settings->flapTimesPtr[gPlayerSelectVehicle[0]][gTrackIdForPreview], 0x16, 0x21, 0xFFU, 0xC0, 255, 0); if (gMenuOptionCount != -1) { if (gNumberOfActivePlayers == 1) { - // Glow effect - set_current_dialogue_box_coords(7, 134, sp80 + 112, 186, sp80 + 137); + set_current_dialogue_box_coords(7, 0x86, regionOffset + 0x70, 0xBA, regionOffset + 0x89); render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7); if (gMenuOptionCount <= 0) { - render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionVehicleTitleTexture, 136, sp80 + 114, 255, 0xFF, 255, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionVehicleTitleTexture, 0x88, regionOffset + 0x72, 255, 255, 255, sMenuGuiOpacity); } else { - render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionTTTitleTexture, 136, sp80 + 114, 255, 255, 255, sMenuGuiOpacity); - for (i = 0; i < 2; i++) { - s32 yTemp = 0x97 + sp80 + (i * 0x18); - if (i == gTracksMenuTimeTrialHighlightIndex) { - render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectTTImage[(i * 3) + 1], 0x68, yTemp, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionTTTitleTexture, 0x88, regionOffset + 0x72, 255, 255, 255, sMenuGuiOpacity); + for (k = 0, y = regionOffset + 0x97; k < 2; k++, y += 24) { + if (k == gTracksMenuTimeTrialHighlightIndex) { + render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectTTImage[k * 3 + 1], 0x68, y, 255, 255, 255, sMenuGuiOpacity); } else { - render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectTTImage[(i * 3) + 2], 0x68, yTemp, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectTTImage[k * 3 + 2], 0x68, y, 255, 255, 255, sMenuGuiOpacity); } } } - } else { - if (!sp74) { - s3 = (gNumberOfActivePlayers - 1) * gNumberOfActivePlayers; - for (i = 0; i < gNumberOfActivePlayers; i++) { - - if (((gNumberOfActivePlayers == 1) && (i == gMenuOptionCount)) || ((gNumberOfActivePlayers >= 2) && (D_801269C4[i] == 0))) { - s32 temp_v0_9 = gTracksMenuPlayerNamePositions[s3 + (i * 2)]; - s32 temp_v1 = gTracksMenuPlayerNamePositions[s3 + (i * 2) + 1] + sp80; - // Glow effect around Player image - set_current_dialogue_box_coords(7, temp_v0_9 - 2, temp_v1 - 2, temp_v0_9 + 0x32, temp_v1 + 0x17); - render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7); + } else if (!sp74) { + // Probably fake + y = gNumberOfActivePlayers; + j = ((y - 1) * y); + for(k = 0; (k < y) ^ 0; k++) { + if (((gNumberOfActivePlayers == 1) && (k == gMenuOptionCount)) || ((gNumberOfActivePlayers >= 2) && (D_801269C4[k] == 0))) { + set_current_dialogue_box_coords(7, gTracksMenuPlayerNamePositions[j] - 2, gTracksMenuPlayerNamePositions[j + 1] + regionOffset - 2, + gTracksMenuPlayerNamePositions[j] + 0x32, gTracksMenuPlayerNamePositions[j + 1] + regionOffset + 0x17); + render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7); + } + render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectPlayerImage[k], gTracksMenuPlayerNamePositions[j], + gTracksMenuPlayerNamePositions[j + 1] + regionOffset, 255, 255, 255, sMenuGuiOpacity); + j+=2; + } + } + if (((gNumberOfActivePlayers >= 2) || (gMenuOptionCount == 0)) && (!sp74)) { + j = ((gNumberOfActivePlayers - 1) * gNumberOfActivePlayers) >> 1; + for (k = 0, y = regionOffset + 0x8B; k < 3; k++) { + if ((1 << k) & availableVehicleFlags) { + for (temp2 = 0; temp2 < gNumberOfActivePlayers; temp2++) { + if (k == gPlayerSelectVehicle[temp2]) { + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[(k * 3) + 1], + gTracksMenuVehicleNamePositions[j+temp2], y, 255, 255, 255, sMenuGuiOpacity); + } else if((settings->courseFlagsPtr[gTrackIdForPreview] & 2)) { + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[(k * 3) + 2], + gTracksMenuVehicleNamePositions[j+temp2], y, 255, 255, 255, sMenuGuiOpacity); + } else { + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[(k * 3) + 2], + gTracksMenuVehicleNamePositions[j+temp2], y, 255, 255, 255, (sMenuGuiOpacity / 2)); + } } - - // "Player" text image - render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectPlayerImage[i], gTracksMenuPlayerNamePositions[s3 + (i * 2)], gTracksMenuPlayerNamePositions[s3 + (i * 2) + 1] + sp80, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + y += 24; } } } - - if ((gNumberOfActivePlayers >= 2) || gMenuOptionCount == 0) { - // Draws "Car", "Hover", "Plane" text choice images. - if (sp74 == 0) { - s32 yTemp = 0x8B + sp80; - s3 = ((gNumberOfActivePlayers - 1) * gNumberOfActivePlayers) / 2; - for (i = 0; i < 3; i++) { - if ((1 << i) & sp7C) { - if (gNumberOfActivePlayers > 0) { - for (j = 0; j < gNumberOfActivePlayers; j++) { - if (i == gPlayerSelectVehicle[j]) { - // Highlighted - render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[(i * 3) + 1], gTracksMenuVehicleNamePositions[s3 + j], yTemp, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); - } else if (settings->courseFlagsPtr[gTrackIdForPreview] & 2) { - // Not highlighted - render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[(i * 3) + 2], gTracksMenuVehicleNamePositions[s3 + j], yTemp, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); - } else { - // Not available (Ghosted out) - render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[(i * 3) + 2], gTracksMenuVehicleNamePositions[s3 + j], yTemp, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity / 2); - } - } - } - yTemp += 0x18; - } - } - } - } - sp80 += 0x8B; - s7 = sp80; - if (gPlayerSelectVehicle[PLAYER_ONE] == 2) { - s7 = sp80 + 2; + y = regionOffset + 0x8B; + if (gPlayerSelectVehicle[0] == 2) { + y += 2; } if (gNumberOfActivePlayers == 1) { if (gMenuOptionCount == 0) { - // Draw vehicle image for one player - render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[gPlayerSelectVehicle[PLAYER_ONE] * 3], 0x95, s7, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[gPlayerSelectVehicle[0] * 3], + 0x95, y, 255, 255, 255, sMenuGuiOpacity); } else { - // Draw T.T. image for one player - render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectTTImage[gTracksMenuTimeTrialHighlightIndex * 3], 0x95, sp80, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gTrackSelectTTImage[gTracksMenuTimeTrialHighlightIndex * 3], + 0x95, regionOffset + 0x8B, 255, 255, 255, sMenuGuiOpacity); } } if ((gNumberOfActivePlayers == 2) && (!sp74)) { - s7 = sp80; - // Draw vehicle image for first player - render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[gPlayerSelectVehicle[PLAYER_ONE] * 3], 0x4F, s7, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); - if (gPlayerSelectVehicle[PLAYER_TWO] == 2) { - s7 = sp80 + 2; + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[gPlayerSelectVehicle[0] * 3], + 0x4F, y, 255, 255, 255, sMenuGuiOpacity); + y = regionOffset + 0x8B; + if (gPlayerSelectVehicle[1] == 2) { + y += 2; } - // Draw vehicle image for second player - render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[gPlayerSelectVehicle[PLAYER_TWO] * 3], 0xB0, s7, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionImages[gPlayerSelectVehicle[1] * 3], + 0xB0, y, 255, 255, 255, sMenuGuiOpacity); } - reset_render_settings(&sMenuCurrDisplayList); - if (gNumberOfActivePlayers < 3) { - // Draw border around vehicle images if (!sp74) { gMenuImageStack[7].unk10 = -52.0f; if (gNumberOfActivePlayers == 1) { @@ -7991,87 +8076,80 @@ void render_track_select_setup_ui(s32 updateRate) { } } } - if (sp74) { - s32 temp_v0_12 = get_text_width(gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], 0, 0); // "NUMBER OF RACERS" - if ((gTwoPlayerRacerCountMenu.width - 0xC) < temp_v0_12) { - s4 = temp_v0_12 + 0xC; + temp2 = get_text_width(gMenuText[136], 0, 0); + if ((gTwoPlayerRacerCountMenu.width - 0xC) < temp2) { + temp2 = temp2 + 0xC; } else { - s4 = gTwoPlayerRacerCountMenu.width; + temp2 = gTwoPlayerRacerCountMenu.width; } - func_80080580(&sMenuCurrDisplayList, -(s4 >> 1), 0x78 - gTwoPlayerRacerCountMenu.y, s4, gTwoPlayerRacerCountMenu.height, gTwoPlayerRacerCountMenu.textPos[0], gTwoPlayerRacerCountMenu.textPos[1], 0xB0E0C0FF, gMenuObjects[43]); + func_80080580(&sMenuCurrDisplayList, -(temp2 >> 1), 0x78 - gTwoPlayerRacerCountMenu.y, temp2, gTwoPlayerRacerCountMenu.height, + gTwoPlayerRacerCountMenu.borderWidth, gTwoPlayerRacerCountMenu.borderHeight, 0xB0E0C0FF, gMenuObjects[67]); func_80080E6C(); - set_text_font(ASSET_FONTS_FUNFONT); - set_text_colour(0, 0, 0, 0xFF, 0x80); - draw_text(&sMenuCurrDisplayList, gTwoPlayerRacerCountMenu.textPos[2] + gTwoPlayerRacerCountMenu.x + 1, gTwoPlayerRacerCountMenu.textPos[3] + gTwoPlayerRacerCountMenu.y + 1, gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], ALIGN_MIDDLE_CENTER); - set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF); - draw_text(&sMenuCurrDisplayList, gTwoPlayerRacerCountMenu.textPos[2] + gTwoPlayerRacerCountMenu.x - 1, gTwoPlayerRacerCountMenu.textPos[3] + gTwoPlayerRacerCountMenu.y - 1, gMenuText[ASSET_MENU_TEXT_NUMBEROFRACERS], ALIGN_MIDDLE_CENTER); - func_80068508(TRUE); - sprite_opaque(FALSE); - for (i = 0; i < 3; i++) { - s32 index = i * 2; - if (i == gMultiplayerSelectedNumberOfRacers) { + set_text_font(0); + set_text_colour(0, 0, 0, 255, 0x80); + draw_text(&sMenuCurrDisplayList, gTwoPlayerRacerCountMenu.textPos[0] + gTwoPlayerRacerCountMenu.x + 1, gTwoPlayerRacerCountMenu.textPos[1] + gTwoPlayerRacerCountMenu.y + regionOffset + 1, gMenuText[136], ALIGN_MIDDLE_CENTER); + set_text_colour(255, 255, 255, 0, 255); + draw_text(&sMenuCurrDisplayList, (gTwoPlayerRacerCountMenu.textPos[0] + gTwoPlayerRacerCountMenu.x) - 1, (gTwoPlayerRacerCountMenu.textPos[1] + gTwoPlayerRacerCountMenu.y + regionOffset) - 1, gMenuText[136], ALIGN_MIDDLE_CENTER); + func_80068508(1); + sprite_opaque(0); + + for (temp2 = 0; temp2 < 3; temp2++) { + if (temp2 == gMultiplayerSelectedNumberOfRacers) { if (gMenuOptionCount < 3) { - sMenuGuiColourG = 0xFF - sp84; - sMenuGuiColourB = 0xFF - sp84; + sMenuGuiColourG = 255 - sp84; + sMenuGuiColourB = 255 - sp84; } else { sMenuGuiColourG = 0; sMenuGuiColourB = 0; } } - // X position - gMenuImageStack[0].unkC = (gTwoPlayerRacerCountMenu.textPos[4 + index] + gTwoPlayerRacerCountMenu.x) - 0xA0; - // Y position - gMenuImageStack[0].unk10 = (-gTwoPlayerRacerCountMenu.textPos[5 + index] - gTwoPlayerRacerCountMenu.y) + 0x78; - // Number value to draw. - gMenuImageStack[0].unk18 = index + 2; + gMenuImageStack->unkC = (gTwoPlayerRacerCountMenu.textPos[((temp2) << 1) + 2] + gTwoPlayerRacerCountMenu.x) - 0xA0; + gMenuImageStack->unk10 = (-gTwoPlayerRacerCountMenu.textPos[((temp2) << 1) + 2 + 1] - gTwoPlayerRacerCountMenu.y) + 0x78; + gMenuImageStack->unk18 = ((temp2) << 1) + 2; func_8009CA60(0); - sMenuGuiColourG = 0xFF; - sMenuGuiColourB = 0xFF; + sMenuGuiColourG = 255; + sMenuGuiColourB = 255; } - sprite_opaque(TRUE); - func_80068508(FALSE); + sprite_opaque(1); + func_80068508(0); } } } if (D_801269C8 < 4) { - sprite_opaque(FALSE); - i = 11; + sprite_opaque(0); + k = 0xB; if (gIsInAdventureTwo) { - i = 12; + k = 0xC; } - gMenuImageStack[i].unk10 = 42.0f; - if ((settings->courseFlagsPtr[gTrackIdForPreview] & 2) || is_adventure_two_unlocked()) { - gMenuImageStack[i].unkC = -128.0f; - func_8009CA60(i); + gMenuImageStack[k].unk10 = 42.0f; + if ((settings->courseFlagsPtr[gTrackIdForPreview] & 2) || (is_adventure_two_unlocked())) { + gMenuImageStack[k].unkC = -128.0f; + func_8009CA60(k); } - if ((settings->courseFlagsPtr[gTrackIdForPreview] & 4) || is_adventure_two_unlocked()) { - gMenuImageStack[i].unkC = 120.0f; - func_8009CA60(i); + if ((settings->courseFlagsPtr[gTrackIdForPreview] & 4) || (is_adventure_two_unlocked())) { + gMenuImageStack[k].unkC = 120.0f; + func_8009CA60(k); } - sprite_opaque(TRUE); + sprite_opaque(1); } if ((gNumberOfActivePlayers == 1) && (gMenuOptionCount >= 0) && (func_80092BE0(gTrackIdForPreview) >= 0)) { - // Render small T.T. icon. - render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionTTTexture, 0xCC, 0x7A, 0xFF, 0xFF, 0xFF, sMenuGuiOpacity); + render_textured_rectangle(&sMenuCurrDisplayList, gRaceSelectionTTTexture, 0xCC, regionOffset + 0x7A, 255, 255, 255, sMenuGuiOpacity); reset_render_settings(&sMenuCurrDisplayList); } if (D_801269C8 != 5) { - if (((gMenuOptionCount == 2) && !sp74) || ((gMenuOptionCount == 3) && sp74) || (gMenuOptionCount == 4)) { - set_text_font(ASSET_FONTS_BIGFONT); - set_text_colour(0xFF, 0xFF, 0xFF, 0, sMenuGuiOpacity); + if (((gMenuOptionCount == 2) && (!sp74)) || ((gMenuOptionCount == 3) && (sp74)) || (gMenuOptionCount == 4)) { + set_text_font(2); + set_text_colour(255, 255, 255, 0, sMenuGuiOpacity); if (D_801269C8 >= 4) { - sp80 += 0x18; + regionOffset += 24; } - draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 172, D_800E823C, ALIGN_MIDDLE_CENTER); // D_800E823C = "OK?" + draw_text(&sMenuCurrDisplayList, 0xA0, regionOffset + 0xAC, D_800E823C, ALIGN_MIDDLE_CENTER); } } - sMenuGuiOpacity = 0xFF; + sMenuGuiOpacity = 255; } } -#else -GLOBAL_ASM("asm/non_matchings/menu/render_track_select_setup_ui.s") -#endif GLOBAL_ASM("asm/non_matchings/menu/func_80092188.s") @@ -9409,7 +9487,154 @@ void menu_results_init(void) { music_fade(128); } -GLOBAL_ASM("asm/non_matchings/menu/func_80096978.s") +void func_80096978(s32 updateRate, f32 opacity) { + s32 x2; + s32 y2; // spA8 + s32 spA4; + s32 spA0; + s32 time; + s32 sp98; + s32 hundredths; + s32 tens; + s32 pad; + s32 i; // s6 + Settings *settings; // sp84 + + settings = get_settings(); + sp98 = 0; + if (osTvType == TV_TYPE_PAL) { + sp98 = 0xC; + } + set_ortho_matrix_view(&sMenuCurrDisplayList, &sMenuCurrHudMat); + if (opacity < 0.0f) { + opacity = 0.0f; + } + if (opacity > 1.0f) { + opacity = 1.0f; + } + sMenuGuiOpacity = (1 - opacity) * 255; + set_text_font(2); + set_text_background_colour(0, 0, 0, 0); + set_text_colour(255, 255, 255, 0, sMenuGuiOpacity); + draw_text(&sMenuCurrDisplayList, -0x8000, 0x22, gMenuText[ASSET_MENU_TEXT_RANKINGS], ALIGN_MIDDLE_CENTER); + sMenuGuiOpacity = 255; + spA4 = 160 - ((gNumberOfActivePlayers - 1) << 5);; + x2 = spA4; + + for (i = 0; i < gNumberOfActivePlayers; i++) { + if (settings->racers[i].starting_position == 0) { + if (gOptionBlinkTimer < 32) { + spA0 = (gOptionBlinkTimer * 4) + 128; + } else { + spA0 = 0x17F - (gOptionBlinkTimer * 4); + } + } else { + spA0 = 255; + } + render_textured_rectangle(&sMenuCurrDisplayList, gRacerPortraits[settings->racers[i].character], + x2 - 0x14, 0x36 - (s32) (240 * opacity), spA0, spA0, spA0, 255); + x2 += 0x40; + } + + spA4 = spA4 + (s32) (320 * opacity); // Cannot use += here? + set_text_font(0); + y2 = 0x68; + for (spA0 = 0; spA0 < 4; spA0++) { + time = spA4; + set_text_colour(0, 0, 0, 255, 255); + draw_text(&sMenuCurrDisplayList, time - 0x20, y2 + sp98 + 4, gRacePlacementsArray[spA0], ALIGN_MIDDLE_CENTER); + set_text_colour(255, 255, 0xC0, 0x60, 255); + draw_text(&sMenuCurrDisplayList, time - 0x22, y2 + sp98 + 2, gRacePlacementsArray[spA0], ALIGN_MIDDLE_CENTER); + reset_render_settings(&sMenuCurrDisplayList); + func_80068508(1); + sprite_opaque(0); + sMenuGuiColourR = 255; + sMenuGuiColourG = 255 - 64 * spA0; + sMenuGuiColourB = 255; + sMenuGuiColourBlendFactor = 255; + x2 = spA4; + for (i = 0; i < gNumberOfActivePlayers; i++, x2 += 0x40) { + time = settings->racers[i].placements[spA0]; // Is this local var name correct? + if (time > 999) { + time = 999; + } + hundredths = time / 100; + time -= (hundredths * 100); + tens = time / 10; + time -= tens * 10; + + // I'm 99% sure these need to be gMenuImageStack[0] + // Changing it to gMenuImageStack[spA0] or gMenuImageStack[i] makes the score worse. + gMenuImageStack[0].unk10 = (0x78 - y2); + if (hundredths > 0) { + gMenuImageStack[0].unkC = (x2 - 0xAC); + gMenuImageStack[0].unk18 = hundredths; + func_8009CA60(0); + gMenuImageStack[0].unkC += 12.0f; + gMenuImageStack[0].unk18 = tens; + func_8009CA60(0); + gMenuImageStack[0].unkC += 12.0f; + } else if((tens > 0)) { + gMenuImageStack[0].unkC = (x2 - 0xA6); + gMenuImageStack[0].unk18 = tens; + func_8009CA60(0); + gMenuImageStack[0].unkC += 12.0f; + } else { + gMenuImageStack[0].unkC = (x2 - 160); + } + gMenuImageStack[0].unk18 = time; + func_8009CA60(0); + } + y2 = y2 + 0x11; + func_80068508(0); + sprite_opaque(1); + sMenuGuiColourG = 255; + sMenuGuiColourBlendFactor = 0; + } + if (gMenuOptionCount > 0) { + y2 = gResultOptionCount * 8; + clear_dialogue_box_open_flag(7); + assign_dialogue_box_id(7); + set_current_dialogue_box_coords(7, 0x50, (sp98 - y2) + 0xC4, 0xF0, y2 + sp98 + 0xCC); + set_current_dialogue_background_colour(7, 0x40, 0x40, 255, 0); + set_dialogue_font(7, 0); + set_current_text_background_colour(7, 0, 0, 0, 0); + spA0 = gOptionBlinkTimer * 8; + if (spA0 >= 0x100) { + spA0 = 0x1FF - spA0; + } + if (gMenuSubOption != 0) { + y2 -= 24; + render_dialogue_text(7, -0x8000, y2 + 8, gMenuText[ASSET_MENU_TEXT_QUITGAMETITLE], 1, 0xC); + if (gMenuSubOption == 1) { + set_current_text_colour(7, 255, 255, 255, spA0, 255); + } else { + set_current_text_colour(7, 255, 255, 255, 0, 255); + } + render_dialogue_text(7, -0x8000, y2 + 0x1A, gMenuText[ASSET_MENU_TEXT_OK], 1, 0xC); + if (gMenuSubOption == 2) { + set_current_text_colour(7, 255, 255, 255, spA0, 255); + } else { + set_current_text_colour(7, 255, 255, 255, 0, 255); + } + render_dialogue_text(7, -0x8000, y2 + 0x2A, gMenuText[ASSET_MENU_TEXT_CANCEL], 1, 0xC); + } else { + + for (i = 0, y2 = 12; i < gResultOptionCount; ) { + if (i == gMenuOption) { + set_current_text_colour(7, 255, 255, 255, spA0, 255); + } else { + set_current_text_colour(7, 255, 255, 255, 0, 255); + } + render_dialogue_text(7, 0x50, y2, gResultOptionText[i], 1, 0xC); + i++; + y2 += 16; + } + } + open_dialogue_box(7); + } +} + s32 menu_results_loop(s32 updateRate) { s32 playBackSound; @@ -10005,7 +10230,88 @@ void unload_big_font_5(void) { unload_font(ASSET_FONTS_BIGFONT); } +// https://decomp.me/scratch/MvASs +#ifdef NON_MATCHING +void func_80098774(s32 isRankings) { + Settings *settings; + s16 **iconPositions; + s16 *yPositions; + s16 *xPositions; + s32 yOffset; + s32 menuElemIndex; + s32 arrIndex; + s32 racerIndex; + s32 temp; + s32 greenAmount; + s32 index; + char *titleText; + MenuElement *elem; + + settings = get_settings(); + titleText = (isRankings) ? gMenuText[ASSET_MENU_TEXT_RANKINGS] : gMenuText[ASSET_MENU_TEXT_RACEORDER]; + gTrophyRankingsTitle[0].unk14_a.asciiText = titleText; + gTrophyRankingsTitle[1].unk14_a.asciiText = titleText; + racerIndex = (gRankingPlayerCount - 1); + racerIndex <<= 1; + yOffset = 240; + if (osTvType == TV_TYPE_PAL) { + racerIndex += 16; + yOffset = 264; + } + iconPositions = gTrophyRankingsIconPositions; + xPositions = gTrophyRankingsIconPositions[racerIndex++]; + yPositions = iconPositions[racerIndex]; + menuElemIndex = 2; + if (xPositions != NULL && yPositions != NULL) { + for (racerIndex = 0; racerIndex < gRankingPlayerCount; racerIndex++) { + for(temp = 0; temp < 3; temp++) { + gTrophyRankingsTitle[menuElemIndex+temp].left = *xPositions; + gTrophyRankingsTitle[menuElemIndex+temp].center = *xPositions; + gTrophyRankingsTitle[menuElemIndex+temp].right = *xPositions; + xPositions++; + if ((gRankingPlayerCount >= 5) && (racerIndex >= (gRankingPlayerCount >> 1))) { + gTrophyRankingsTitle[menuElemIndex+temp].top = *yPositions - yOffset; + gTrophyRankingsTitle[menuElemIndex+temp].middle = *yPositions; + gTrophyRankingsTitle[menuElemIndex+temp].bottom = *yPositions + yOffset; + yPositions++; + } else { + gTrophyRankingsTitle[menuElemIndex+temp].top = *yPositions + yOffset; + gTrophyRankingsTitle[menuElemIndex+temp].middle = *yPositions; + gTrophyRankingsTitle[menuElemIndex+temp].bottom = *yPositions - yOffset; + yPositions++; + } + } + + // Regalloc issue here. + temp = gRankingPlayerCount & 3; + if (temp) { + greenAmount = racerIndex; + if (racerIndex >= 3) { + greenAmount = racerIndex - 3; + } + } else { + greenAmount = racerIndex & 3; + } + temp = 255 - (greenAmount << 6); + + gTrophyRankingsTitle[menuElemIndex+2].filterGreen = temp; + if (isRankings) { + gTrophyRankingsTitle[menuElemIndex].unk14_a.drawTexture = gRacerPortraits[settings->racers[D_80126430[racerIndex]].character]; + gTrophyRankingsTitle[menuElemIndex+2].unk14_a.element = &settings->racers[D_80126430[racerIndex]]; + } else { + gTrophyRankingsTitle[menuElemIndex].unk14_a.drawTexture = gRacerPortraits[settings->racers[D_80126428[racerIndex]].character]; + gTrophyRankingsTitle[menuElemIndex+2].unk14_a.number = &gTrophyRacePointsArray[racerIndex]; + } + menuElemIndex += 3; + + } + } + gTrophyRankingsTitle[menuElemIndex].unk14_a.asciiText = NULL; +} + +#else GLOBAL_ASM("asm/non_matchings/menu/func_80098774.s") +#endif /** * Initialise trophy race points screen. @@ -10105,7 +10411,7 @@ void menu_trophy_race_rankings_init(void) { music_play(SEQUENCE_MAIN_MENU); music_fade(256); func_80098774(0); - func_80081E54(*gTrophyRankingsTitle, 0.5f, 20.0f, 0.5f, 0, 0); + func_80081E54(gTrophyRankingsTitle, 0.5f, 20.0f, 0.5f, 0, 0); } void func_80098EBC(s32 arg0) { @@ -10113,6 +10419,7 @@ void func_80098EBC(s32 arg0) { s32 new_var2; s32 fade; s32 i; + MenuElement *test2; gOptionBlinkTimer = (gOptionBlinkTimer + arg0) & 0x3F; test = gOptionBlinkTimer * 8; @@ -10124,13 +10431,13 @@ void func_80098EBC(s32 arg0) { if ((gNumberOfActivePlayers < 3) && (((gMenuOptionCount == 0) && D_80126418[i]) || ((gMenuOptionCount != 0) && D_80126420[i]))) { fade = (test >> 1) + 0x80; } - gTrophyRankingsCharDetails[i][0].filterRed = fade; - gTrophyRankingsCharDetails[i][0].filterGreen = fade; - gTrophyRankingsCharDetails[i][0].filterBlue = fade; + gTrophyRankingsRacers[i*3].filterRed = fade; + gTrophyRankingsRacers[i*3].filterGreen = fade; + gTrophyRankingsRacers[i*3].filterBlue = fade; } new_var2 = gMenuOptionCount; if ((new_var2 == 2) || (new_var2 == 3)) { - draw_menu_elements(1, gTrophyRankingsTitle[0], 1.0f); + draw_menu_elements(1, gTrophyRankingsTitle, 1.0f); } } @@ -10158,13 +10465,13 @@ s32 menu_trophy_race_rankings_loop(s32 updateRate) { if (func_80081F4C(updateRate) != 0) { gMenuOptionCount = 1; func_80098774(1); - func_80081E54(*gTrophyRankingsTitle, 0.5f, 0.0f, 0.0f, 0, 0); + func_80081E54(gTrophyRankingsTitle, 0.5f, 0.0f, 0.0f, 0, 0); } break; case 1: if (func_80081F4C(updateRate) != 0) { gMenuOptionCount = 2; - draw_menu_elements(1, *gTrophyRankingsTitle, 1.0f); + draw_menu_elements(1, gTrophyRankingsTitle, 1.0f); } break; case 2: diff --git a/src/menu.h b/src/menu.h index 73ea6f2e..f58f99c6 100644 --- a/src/menu.h +++ b/src/menu.h @@ -261,7 +261,7 @@ typedef struct unk800861C8 { /* 0x03 */ u8 unk3; /* 0x04 */ s16 compressedFilename; /* 0x06 */ u8 controllerIndex; - /* 0x07 */ u8 unk7; + /* 0x07 */ u8 saveFileNumber; /* 0x08 */ char *unk8; /* 0x0C */ u32 fileSize; // Game Data File Size } unk800861C8; diff --git a/src/object_functions.c b/src/object_functions.c index ea5ff060..cadda2fc 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -4798,78 +4798,71 @@ void obj_init_wavegenerator(Object *obj, UNUSED LevelObjectEntry_WaveGenerator * func_800BF524(obj); } -#ifdef NON_EQUIVALENT - -void obj_init_butterfly(Object *obj, LevelObjectEntry_Butterfly *entry, s32 arg2) { - Object_Butterfly *obj64; - s32 i, j; - s32 uMask, vMask; - - obj64 = &obj->unk64->butterfly; +void obj_init_butterfly(Object *butterflyObj, LevelObjectEntry_Butterfly *butterflyEntry, s32 arg2) { + Object_Butterfly *butterfly; + s32 uMask; + s32 vMask; + s32 i; + + butterfly = &butterflyObj->unk64->butterfly; if (arg2 == 0) { - obj->segment.y_velocity = 0.0f; - obj64->unkFE = 0; - obj64->unk100 = 0; - obj64->unk104 = 0; - obj64->unkFD = 0; - obj64->unk106 = 384; - obj64->unk108 = 0.0f; - // This loop is okay + butterflyObj->segment.y_velocity = 0.0f; + butterfly->unkFE = 0; + butterfly->unk100 = 0; + butterfly->unk104 = 0; + butterfly->unkFD = 0; + butterfly->unk106 = 0x180; + butterfly->unk108 = 0.0f; for(i = 0; i < 8; i++) { - obj64->triangles[i].flags = D_800DCAA8[i].flags; - obj64->triangles[i].vi0 = D_800DCAA8[i].vi0; - obj64->triangles[i].vi1 = D_800DCAA8[i].vi1; - obj64->triangles[i].vi2 = D_800DCAA8[i].vi2; + butterfly->triangles[i].flags = D_800DCAA8[i].flags; + butterfly->triangles[i].vi0 = D_800DCAA8[i].vi0; + butterfly->triangles[i].vi1 = D_800DCAA8[i].vi1; + butterfly->triangles[i].vi2 = D_800DCAA8[i].vi2; } - // This loop is not. + uMask = 0; for(i = 0; i < 6; i++) { - //u32 j = i + 6; - obj64->vertices[i].x = D_800DCB28[i].x; - obj64->vertices[i].y = D_800DCB28[i+1].y; - obj64->vertices[i].z = D_800DCB28[i+1].z; - obj64->vertices[i].r = 255; - obj64->vertices[i].g = 255; - obj64->vertices[i].b = 255; - obj64->vertices[i].a = 255; - obj64->vertices[(u32)(i+6)].x = D_800DCB28[i+1].x; - obj64->vertices[i+6].y = D_800DCB28[i].y; - obj64->vertices[i+6].z = D_800DCB28[i].z; - obj64->vertices[i+6].r = 255; - obj64->vertices[i+6].g = 255; - obj64->vertices[i+6].b = 255; - obj64->vertices[i+6].a = 255; + butterfly->vertices[uMask].x = D_800DCB28[uMask].x; + butterfly->vertices[uMask].y = D_800DCB28[uMask].y; + butterfly->vertices[uMask].z = D_800DCB28[uMask].z; + butterfly->vertices[uMask].r = 255; + butterfly->vertices[uMask].g = 255; + butterfly->vertices[uMask].b = 255; + butterfly->vertices[uMask].a = 255; + butterfly->vertices[uMask+6].x = D_800DCB28[uMask].x; + butterfly->vertices[uMask+6].y = D_800DCB28[uMask].y; + butterfly->vertices[uMask+6].z = D_800DCB28[uMask].z; + butterfly->vertices[uMask+6].r = 255; + butterfly->vertices[uMask+6].g = 255; + butterfly->vertices[uMask+6].b = 255; + butterfly->vertices[uMask+6].a = 255; + uMask++; } - obj64->unkFC = 1; + butterfly->unkFC = 1; } - obj->segment.trans.scale = entry->unkB * 0.01f; - if (entry->unkA < obj->segment.header->numberOfModelIds) { - obj64->texture = (TextureHeader*)obj->unk68[entry->unkA]; + butterflyObj->segment.trans.scale = butterflyEntry->unkB * 0.01f; + if (butterflyEntry->unkA < butterflyObj->segment.header->numberOfModelIds) { + butterfly->texture = (TextureHeader* ) butterflyObj->unk68[butterflyEntry->unkA]; } else { - obj64->texture = (TextureHeader*)obj->unk68[0]; + butterfly->texture = (TextureHeader* ) butterflyObj->unk68[0]; } - - if (obj64->texture) { - uMask = (obj64->texture->width - 1) << 5; - vMask = (obj64->texture->height - 1) << 5; + if (butterfly->texture != NULL) { + uMask = (butterfly->texture->width - 1) << 5; + vMask = (butterfly->texture->height - 1) << 5; } else { uMask = 0; vMask = 0; } for(i = 0; i < 8; i++) { - obj64->triangles[i].uv0.u = D_800DCAA8[i].uv0.u & uMask; - obj64->triangles[i].uv0.v = D_800DCAA8[i].uv0.v & vMask; - obj64->triangles[i].uv1.u = D_800DCAA8[i].uv1.u & uMask; - obj64->triangles[i].uv1.v = D_800DCAA8[i].uv1.v & vMask; - obj64->triangles[i].uv2.u = D_800DCAA8[i].uv2.u & uMask; - obj64->triangles[i].uv2.v = D_800DCAA8[i].uv2.v & vMask; + butterfly->triangles[i].uv0.u = D_800DCAA8[i].uv0.u & uMask; + butterfly->triangles[i].uv0.v = D_800DCAA8[i].uv0.v & vMask; + butterfly->triangles[i].uv1.u = D_800DCAA8[i].uv1.u & uMask; + butterfly->triangles[i].uv1.v = D_800DCAA8[i].uv1.v & vMask; + butterfly->triangles[i].uv2.u = D_800DCAA8[i].uv2.u & uMask; + butterfly->triangles[i].uv2.v = D_800DCAA8[i].uv2.v & vMask; } } -#else -GLOBAL_ASM("asm/non_matchings/object_functions/obj_init_butterfly.s") -#endif - GLOBAL_ASM("asm/non_matchings/object_functions/obj_loop_butterfly.s") //Scratch: https://decomp.me/scratch/h4CcJ diff --git a/tools/python/score.py b/tools/python/score.py index 22e20749..664ece56 100644 --- a/tools/python/score.py +++ b/tools/python/score.py @@ -52,7 +52,7 @@ LIB_SRC_DIRECTORY = './lib/src' FUNCTION_REGEX = r'^(? 0: if showTopFiles > len(scoreFiles): diff --git a/tools/python/score_display.py b/tools/python/score_display.py index e1525d94..e69da7b6 100644 --- a/tools/python/score_display.py +++ b/tools/python/score_display.py @@ -107,7 +107,7 @@ class ScoreDisplay: out += self.makeLine(' ', dashLen, status['Msg']) return [out, dashLen] - def getDisplay(self, advOnePer, advTwoPer, showFlags=3, totalDecompFunctions=0, totalGlobalAsm=0, totalNonMatching=0, totalNonEquivalent=0, totalDocumented=0, totalUndocumented=0): + def getDisplay(self, advOnePer, advOneNonMatchPer, advTwoPer, showFlags=3, totalDecompFunctions=0, totalGlobalAsm=0, totalNonMatching=0, totalNonEquivalent=0, totalDocumented=0, totalUndocumented=0): advOneStatus = self.getStatus(advOnePer) advTwoStatus = self.getStatus(advTwoPer) if showFlags == 3: @@ -127,7 +127,7 @@ class ScoreDisplay: if advOnePer >= 100.0: out += self.makeLine('-', dashLen, '{:5.1f}% Complete'.format(advOnePer)) else: - out += self.makeLine('-', dashLen, '{:5.2f}% Complete'.format(advOnePer)) + out += self.makeLine('-', dashLen, '{:5.2f}% Complete ({:5.2f}% NON_MATCHING)'.format(advOnePer, advOneNonMatchPer)) out += self.makeLine(' ', dashLen, '# Decompiled functions: ' + str(totalDecompFunctions)) out += self.makeLine(' ', dashLen, '# GLOBAL_ASM remaining: ' + str(totalGlobalAsm)) out += self.makeLine(' ', dashLen, '# NON_MATCHING functions: ' + str(totalNonMatching))