From 88864107ab719c59df30a32e579a4c65a90e1439 Mon Sep 17 00:00:00 2001 From: Fazana <52551480+FazanaJ@users.noreply.github.com> Date: Thu, 2 Nov 2023 18:53:53 +0000 Subject: [PATCH] Finish labelling most functions in audio.c + camera.c (#431) * name some camera things * yea there * lots of audio * match a func * better * x * egg * all but one func in audio.c nopw * audio looks good for now * Update audio.c * correct taj thing * fix warnings * Update audiosfx.h * Update README.md --- README.md | 362 +-- .../audio_spatial/func_80008040.s | 22 +- .../audio_spatial/func_80008174.s | 22 +- .../audio_spatial/func_80008438.s | 36 +- .../audio_spatial/func_80009B7C.s | 2 +- .../audio_vehicle/func_80005254.s | 1532 ++++++------ .../audio_vehicle/func_800063EC.s | 980 ++++---- .../audio_vehicle/func_80006FC8.s | 2214 ++++++++--------- asm/non_matchings/audiosfx/_handleEvent.s | 8 +- asm/non_matchings/audiosfx/func_800048D8.s | 53 - asm/non_matchings/camera/camera_init.s | 2 +- asm/non_matchings/camera/func_80066CDC.s | 4 +- asm/non_matchings/game_ui/func_800A277C.s | 8 +- asm/non_matchings/game_ui/func_800A6254.s | 1588 ++++++------ asm/non_matchings/menu/func_8008F618.s | 2 +- asm/non_matchings/menu/func_80092188.s | 18 +- asm/non_matchings/menu/func_80094D28.s | 2 +- asm/non_matchings/menu/menu_credits_loop.s | 4 +- .../menu/menu_track_select_init.s | 12 +- .../object_functions/obj_loop_char_select.s | 538 ++-- .../object_functions/obj_loop_door.s | 12 +- .../object_functions/obj_loop_weaponballoon.s | 640 ++--- asm/non_matchings/objects/func_80018CE0.s | 1160 ++++----- asm/non_matchings/objects/func_80019808.s | 4 +- asm/non_matchings/objects/func_8001A8F4.s | 2 +- asm/non_matchings/objects/func_8001F460.s | 14 +- asm/non_matchings/racer/func_80046524.s | 6 +- asm/non_matchings/racer/func_80049794.s | 4 +- asm/non_matchings/racer/func_8004F7F4.s | 4 +- asm/non_matchings/racer/func_80050A28.s | 4 +- asm/non_matchings/racer/func_80054FD0.s | 2 +- asm/non_matchings/tracks/func_80028050.s | 1224 ++++----- .../vehicle_tricky/func_8005CB68.s | 680 ++--- asm/non_matchings/weather/func_800AB4A8.s | 870 +++---- asm/non_matchings/weather/func_800AC21C.s | 462 ++-- asm/non_matchings/weather/func_800ACA20.s | 2 +- .../weather/render_rain_overlay.s | 740 +++--- include/PR/libaudio.h | 2 +- include/structs.h | 8 +- .../al/{unknown_064800.c => alCSPGetFadeIn.c} | 4 +- .../al/{unknown_0647A0.c => alCSPSetFadeIn.c} | 3 +- lib/src/mips1/al/csplayer.c | 12 +- lib/src/mips1/al/reverb.c | 12 +- .../al/{unknown_0646F0.c => seqchannel.c} | 4 +- lib/src/mips1/al/seqchannel.h | 11 + lib/src/mips1/al/seqplayer.c | 2 +- lib/src/mips1/al/unknown_0646F0.h | 11 - src/audio.c | 960 ++++--- src/audio.h | 181 +- src/audio_spatial.c | 112 +- src/audio_vehicle.c | 36 +- src/audio_vehicle.h | 10 +- src/audiosfx.c | 64 +- src/audiosfx.h | 26 +- src/camera.c | 185 +- src/camera.h | 16 +- src/font.c | 2 +- src/game.c | 48 +- src/game_ui.c | 146 +- src/game_ui.h | 8 +- src/memory.c | 6 +- src/memory.h | 2 +- src/menu.c | 532 ++-- src/object_functions.c | 148 +- src/objects.c | 18 +- src/particles.c | 6 +- src/racer.c | 32 +- src/racer.h | 2 +- src/rcp.c | 2 +- src/textures_sprites.h | 6 +- src/thread3_main.c | 12 +- src/tracks.c | 10 +- src/vehicle_bluey.c | 2 +- src/vehicle_bubbler.c | 2 +- src/vehicle_rocket.c | 2 +- src/vehicle_smokey.c | 2 +- src/vehicle_tricky.c | 8 +- src/vehicle_wizpig.c | 2 +- src/video.c | 4 +- src/weather.c | 62 +- tools/python/calc_func_checksums.py | 2 +- 81 files changed, 8066 insertions(+), 7898 deletions(-) delete mode 100644 asm/non_matchings/audiosfx/func_800048D8.s rename lib/src/mips1/al/{unknown_064800.c => alCSPGetFadeIn.c} (61%) rename lib/src/mips1/al/{unknown_0647A0.c => alCSPSetFadeIn.c} (81%) rename lib/src/mips1/al/{unknown_0646F0.c => seqchannel.c} (86%) create mode 100644 lib/src/mips1/al/seqchannel.h delete mode 100644 lib/src/mips1/al/unknown_0646F0.h diff --git a/README.md b/README.md index f8fee606..1a6a1a62 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.02% - -    Documentation progress: 34.35% - - ---- - -## 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 October 31st, 2023, this is our current score: -``` - ======================================================================== - ADVENTURE ONE (ASM -> C Decompilation) - --------------------------- 63.02% Complete ---------------------------- - # Decompiled functions: 1660 - # GLOBAL_ASM remaining: 185 - # 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) - --------------------------- 34.35% Complete ---------------------------- - # Documented functions: 761 - # Undocumented remaining: 807 - ----------------------------- Game Status ------------------------------ - Balloons: 17/47, Keys: 2/4, Trophies: 1/5 - T.T. Amulets: 1/4, Wizpig Amulets: 1/4 - ------------------------------------------------------------------------ - We are battling in Icicle Pyramid. (2 opponents remain) - ======================================================================== -``` - - ---- - -## 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 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. diff --git a/asm/non_matchings/audio_spatial/func_80008040.s b/asm/non_matchings/audio_spatial/func_80008040.s index dbd2a839..27eb604e 100644 --- a/asm/non_matchings/audio_spatial/func_80008040.s +++ b/asm/non_matchings/audio_spatial/func_80008040.s @@ -4,33 +4,33 @@ glabel func_80008040 /* 008C48 80008048 3C048012 */ lui $a0, %hi(D_80119C40) # $a0, 0x8012 /* 008C4C 8000804C 24849C40 */ addiu $a0, %lo(D_80119C40) # addiu $a0, $a0, -0x63c0 /* 008C50 80008050 00002825 */ move $a1, $zero -/* 008C54 80008054 0C00084A */ jal func_80002128 +/* 008C54 80008054 0C00084A */ jal sound_table_properties /* 008C58 80008058 00003025 */ move $a2, $zero /* 008C5C 8000805C 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff /* 008C60 80008060 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff /* 008C64 80008064 0C01C327 */ jal allocate_from_main_pool_safe /* 008C68 80008068 240405A0 */ li $a0, 1440 -/* 008C6C 8000806C 3C068012 */ lui $a2, %hi(D_80119C48) # $a2, 0x8012 -/* 008C70 80008070 24C69C48 */ addiu $a2, %lo(D_80119C48) # addiu $a2, $a2, -0x63b8 +/* 008C6C 8000806C 3C068012 */ lui $a2, %hi(gSoundMaskHeap) # $a2, 0x8012 +/* 008C70 80008070 24C69C48 */ addiu $a2, %lo(gSoundMaskHeap) # addiu $a2, $a2, -0x63b8 /* 008C74 80008074 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff /* 008C78 80008078 ACC20000 */ sw $v0, ($a2) /* 008C7C 8000807C 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff /* 008C80 80008080 0C01C327 */ jal allocate_from_main_pool_safe /* 008C84 80008084 240400A0 */ li $a0, 160 -/* 008C88 80008088 3C018012 */ lui $at, %hi(D_80119C50) # $at, 0x8012 +/* 008C88 80008088 3C018012 */ lui $at, %hi(gSoundMaskHeapFree) # $at, 0x8012 /* 008C8C 8000808C 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff -/* 008C90 80008090 AC229C50 */ sw $v0, %lo(D_80119C50)($at) +/* 008C90 80008090 AC229C50 */ sw $v0, %lo(gSoundMaskHeapFree)($at) /* 008C94 80008094 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff /* 008C98 80008098 0C01C327 */ jal allocate_from_main_pool_safe /* 008C9C 8000809C 240400A0 */ li $a0, 160 -/* 008CA0 800080A0 3C018012 */ lui $at, %hi(D_80119C44) # $at, 0x8012 -/* 008CA4 800080A4 AC229C44 */ sw $v0, %lo(D_80119C44)($at) -/* 008CA8 800080A8 3C068012 */ lui $a2, %hi(D_80119C48) # $a2, 0x8012 -/* 008CAC 800080AC 3C01800E */ lui $at, %hi(D_800DC6E0) # $at, 0x800e +/* 008CA0 800080A0 3C018012 */ lui $at, %hi(gSoundMaskHeapUsed) # $at, 0x8012 +/* 008CA4 800080A4 AC229C44 */ sw $v0, %lo(gSoundMaskHeapUsed)($at) +/* 008CA8 800080A8 3C068012 */ lui $a2, %hi(gSoundMaskHeap) # $a2, 0x8012 +/* 008CAC 800080AC 3C01800E */ lui $at, %hi(gUsedMasks) # $at, 0x800e /* 008CB0 800080B0 3C028012 */ lui $v0, %hi(D_8011A6D8) # $v0, 0x8012 /* 008CB4 800080B4 3C038012 */ lui $v1, %hi(D_80119C58) # $v1, 0x8012 -/* 008CB8 800080B8 24C69C48 */ addiu $a2, %lo(D_80119C48) # addiu $a2, $a2, -0x63b8 -/* 008CBC 800080BC A420C6E0 */ sh $zero, %lo(D_800DC6E0)($at) +/* 008CB8 800080B8 24C69C48 */ addiu $a2, %lo(gSoundMaskHeap) # addiu $a2, $a2, -0x63b8 +/* 008CBC 800080BC A420C6E0 */ sh $zero, %lo(gUsedMasks)($at) /* 008CC0 800080C0 24639C58 */ addiu $v1, %lo(D_80119C58) # addiu $v1, $v1, -0x63a8 /* 008CC4 800080C4 2442A6D8 */ addiu $v0, %lo(D_8011A6D8) # addiu $v0, $v0, -0x5928 .L800080C8: diff --git a/asm/non_matchings/audio_spatial/func_80008174.s b/asm/non_matchings/audio_spatial/func_80008174.s index 7b5ef2cd..ce216a16 100644 --- a/asm/non_matchings/audio_spatial/func_80008174.s +++ b/asm/non_matchings/audio_spatial/func_80008174.s @@ -5,11 +5,11 @@ glabel D_800E4F10 .text glabel func_80008174 /* 008D74 80008174 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 008D78 80008178 3C038012 */ lui $v1, %hi(D_80119C4C) # $v1, 0x8012 -/* 008D7C 8000817C 3C048012 */ lui $a0, %hi(D_80119C48) # $a0, 0x8012 +/* 008D78 80008178 3C038012 */ lui $v1, %hi(gFreeMasks) # $v1, 0x8012 +/* 008D7C 8000817C 3C048012 */ lui $a0, %hi(gSoundMaskHeap) # $a0, 0x8012 /* 008D80 80008180 300200FF */ andi $v0, $zero, 0xff -/* 008D84 80008184 24639C4C */ addiu $v1, %lo(D_80119C4C) # addiu $v1, $v1, -0x63b4 -/* 008D88 80008188 8C849C48 */ lw $a0, %lo(D_80119C48)($a0) +/* 008D84 80008184 24639C4C */ addiu $v1, %lo(gFreeMasks) # addiu $v1, $v1, -0x63b4 +/* 008D88 80008188 8C849C48 */ lw $a0, %lo(gSoundMaskHeap)($a0) /* 008D8C 8000818C 28410028 */ slti $at, $v0, 0x28 /* 008D90 80008190 AFBF003C */ sw $ra, 0x3c($sp) /* 008D94 80008194 AFB60038 */ sw $s6, 0x38($sp) @@ -23,8 +23,8 @@ glabel func_80008174 /* 008DB4 800081B4 E7B4001C */ swc1 $f20, 0x1c($sp) /* 008DB8 800081B8 1020000E */ beqz $at, .L800081F4 /* 008DBC 800081BC A0600000 */ sb $zero, ($v1) -/* 008DC0 800081C0 3C058012 */ lui $a1, %hi(D_80119C50) # $a1, 0x8012 -/* 008DC4 800081C4 24A59C50 */ addiu $a1, %lo(D_80119C50) # addiu $a1, $a1, -0x63b0 +/* 008DC0 800081C0 3C058012 */ lui $a1, %hi(gSoundMaskHeapFree) # $a1, 0x8012 +/* 008DC4 800081C4 24A59C50 */ addiu $a1, %lo(gSoundMaskHeapFree) # addiu $a1, $a1, -0x63b0 .L800081C8: /* 008DC8 800081C8 8CAE0000 */ lw $t6, ($a1) /* 008DCC 800081CC 00027880 */ sll $t7, $v0, 2 @@ -38,15 +38,15 @@ glabel func_80008174 /* 008DEC 800081EC 1420FFF6 */ bnez $at, .L800081C8 /* 008DF0 800081F0 A0690000 */ sb $t1, ($v1) .L800081F4: -/* 008DF4 800081F4 3C14800E */ lui $s4, %hi(D_800DC6E0) # $s4, 0x800e -/* 008DF8 800081F8 2694C6E0 */ addiu $s4, %lo(D_800DC6E0) # addiu $s4, $s4, -0x3920 +/* 008DF4 800081F4 3C14800E */ lui $s4, %hi(gUsedMasks) # $s4, 0x800e +/* 008DF8 800081F8 2694C6E0 */ addiu $s4, %lo(gUsedMasks) # addiu $s4, $s4, -0x3920 /* 008DFC 800081FC 968B0000 */ lhu $t3, ($s4) /* 008E00 80008200 244AFFFF */ addiu $t2, $v0, -1 /* 008E04 80008204 A06A0000 */ sb $t2, ($v1) /* 008E08 80008208 19600014 */ blez $t3, .L8000825C /* 008E0C 8000820C 00008825 */ move $s1, $zero -/* 008E10 80008210 3C128012 */ lui $s2, %hi(D_80119C44) # $s2, 0x8012 -/* 008E14 80008214 26529C44 */ addiu $s2, %lo(D_80119C44) # addiu $s2, $s2, -0x63bc +/* 008E10 80008210 3C128012 */ lui $s2, %hi(gSoundMaskHeapUsed) # $s2, 0x8012 +/* 008E14 80008214 26529C44 */ addiu $s2, %lo(gSoundMaskHeapUsed) # addiu $s2, $s2, -0x63bc /* 008E18 80008218 00008025 */ move $s0, $zero .L8000821C: /* 008E1C 8000821C 8E4C0000 */ lw $t4, ($s2) @@ -97,7 +97,7 @@ glabel func_80008174 .L800082C4: /* 008EC4 800082C4 16C20003 */ bne $s6, $v0, .L800082D4 /* 008EC8 800082C8 00000000 */ nop -/* 008ECC 800082CC 0C000638 */ jal func_800018E0 +/* 008ECC 800082CC 0C000638 */ jal music_jingle_stop /* 008ED0 800082D0 00000000 */ nop .L800082D4: /* 008ED4 800082D4 AE200178 */ sw $zero, 0x178($s1) diff --git a/asm/non_matchings/audio_spatial/func_80008438.s b/asm/non_matchings/audio_spatial/func_80008438.s index 746c92aa..03879549 100644 --- a/asm/non_matchings/audio_spatial/func_80008438.s +++ b/asm/non_matchings/audio_spatial/func_80008438.s @@ -32,16 +32,16 @@ glabel func_80008438 /* 00909C 8000849C 00402025 */ move $a0, $v0 /* 0090A0 800084A0 0C01A75F */ jal get_cutscene_camera_segment /* 0090A4 800084A4 AFA200B0 */ sw $v0, 0xb0($sp) -/* 0090A8 800084A8 3C15800E */ lui $s5, %hi(D_800DC6E0) # $s5, 0x800e -/* 0090AC 800084AC 26B5C6E0 */ addiu $s5, %lo(D_800DC6E0) # addiu $s5, $s5, -0x3920 +/* 0090A8 800084A8 3C15800E */ lui $s5, %hi(gUsedMasks) # $s5, 0x800e +/* 0090AC 800084AC 26B5C6E0 */ addiu $s5, %lo(gUsedMasks) # addiu $s5, $s5, -0x3920 /* 0090B0 800084B0 96AE0000 */ lhu $t6, ($s5) /* 0090B4 800084B4 AFA200AC */ sw $v0, 0xac($sp) /* 0090B8 800084B8 19C00187 */ blez $t6, .L80008AD8 /* 0090BC 800084BC AFA00260 */ sw $zero, 0x260($sp) /* 0090C0 800084C0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0090C4 800084C4 3C168012 */ lui $s6, %hi(D_80119C44) # $s6, 0x8012 +/* 0090C4 800084C4 3C168012 */ lui $s6, %hi(gSoundMaskHeapUsed) # $s6, 0x8012 /* 0090C8 800084C8 4481D000 */ mtc1 $at, $f26 -/* 0090CC 800084CC 26D69C44 */ addiu $s6, %lo(D_80119C44) # addiu $s6, $s6, -0x63bc +/* 0090CC 800084CC 26D69C44 */ addiu $s6, %lo(gSoundMaskHeapUsed) # addiu $s6, $s6, -0x63bc /* 0090D0 800084D0 0000A025 */ move $s4, $zero /* 0090D4 800084D4 27B700A8 */ addiu $s7, $sp, 0xa8 /* 0090D8 800084D8 24120001 */ li $s2, 1 @@ -129,11 +129,11 @@ glabel func_80008438 /* 009210 80008610 9226000E */ lbu $a2, 0xe($s1) /* 009214 80008614 8E240018 */ lw $a0, 0x18($s1) /* 009218 80008618 0006CA00 */ sll $t9, $a2, 8 -/* 00921C 8000861C 0C00127E */ jal func_800049F8 +/* 00921C 8000861C 0C00127E */ jal sound_event_update /* 009220 80008620 03203025 */ move $a2, $t9 /* 009224 80008624 8E240018 */ lw $a0, 0x18($s1) /* 009228 80008628 8EE60000 */ lw $a2, ($s7) -/* 00922C 8000862C 0C00127E */ jal func_800049F8 +/* 00922C 8000862C 0C00127E */ jal sound_event_update /* 009230 80008630 24050010 */ li $a1, 16 /* 009234 80008634 8FA800AC */ lw $t0, 0xac($sp) /* 009238 80008638 4600A306 */ mov.s $f12, $f20 @@ -147,7 +147,7 @@ glabel func_80008438 /* 009258 80008658 24060040 */ li $a2, 64 .L8000865C: /* 00925C 8000865C 8E240018 */ lw $a0, 0x18($s1) -/* 009260 80008660 0C00127E */ jal func_800049F8 +/* 009260 80008660 0C00127E */ jal sound_event_update /* 009264 80008664 24050004 */ li $a1, 4 /* 009268 80008668 8E240018 */ lw $a0, 0x18($s1) /* 00926C 8000866C 8E250000 */ lw $a1, ($s1) @@ -385,11 +385,11 @@ glabel func_80008438 /* 0095C8 800089C8 24050008 */ li $a1, 8 /* 0095CC 800089CC E7A40098 */ swc1 $f4, 0x98($sp) /* 0095D0 800089D0 8E240018 */ lw $a0, 0x18($s1) -/* 0095D4 800089D4 0C00127E */ jal func_800049F8 +/* 0095D4 800089D4 0C00127E */ jal sound_event_update /* 0095D8 800089D8 00000000 */ nop /* 0095DC 800089DC 8E240018 */ lw $a0, 0x18($s1) /* 0095E0 800089E0 8FA60098 */ lw $a2, 0x98($sp) -/* 0095E4 800089E4 0C00127E */ jal func_800049F8 +/* 0095E4 800089E4 0C00127E */ jal sound_event_update /* 0095E8 800089E8 24050010 */ li $a1, 16 /* 0095EC 800089EC 8FAB00B0 */ lw $t3, 0xb0($sp) /* 0095F0 800089F0 24010001 */ li $at, 1 @@ -399,7 +399,7 @@ glabel func_80008438 .L80008A00: /* 009600 80008A00 8E240018 */ lw $a0, 0x18($s1) /* 009604 80008A04 8FA60250 */ lw $a2, 0x250($sp) -/* 009608 80008A08 0C00127E */ jal func_800049F8 +/* 009608 80008A08 0C00127E */ jal sound_event_update /* 00960C 80008A0C 24050004 */ li $a1, 4 /* 009610 80008A10 8E240018 */ lw $a0, 0x18($s1) /* 009614 80008A14 92250021 */ lbu $a1, 0x21($s1) @@ -741,12 +741,12 @@ glabel func_80008438 /* 009AF0 80008EF0 8FA60254 */ lw $a2, 0x254($sp) /* 009AF4 80008EF4 24050008 */ li $a1, 8 /* 009AF8 80008EF8 00064A00 */ sll $t1, $a2, 8 -/* 009AFC 80008EFC 0C00127E */ jal func_800049F8 +/* 009AFC 80008EFC 0C00127E */ jal sound_event_update /* 009B00 80008F00 01203025 */ move $a2, $t1 /* 009B04 80008F04 8FAA0088 */ lw $t2, 0x88($sp) /* 009B08 80008F08 8FA60090 */ lw $a2, 0x90($sp) /* 009B0C 80008F0C 8D440178 */ lw $a0, 0x178($t2) -/* 009B10 80008F10 0C00127E */ jal func_800049F8 +/* 009B10 80008F10 0C00127E */ jal sound_event_update /* 009B14 80008F14 24050010 */ li $a1, 16 /* 009B18 80008F18 8FAB00B0 */ lw $t3, 0xb0($sp) /* 009B1C 80008F1C 24010001 */ li $at, 1 @@ -757,7 +757,7 @@ glabel func_80008438 /* 009B2C 80008F2C 8FAE0088 */ lw $t6, 0x88($sp) /* 009B30 80008F30 8FA60250 */ lw $a2, 0x250($sp) /* 009B34 80008F34 8DC40178 */ lw $a0, 0x178($t6) -/* 009B38 80008F38 0C00127E */ jal func_800049F8 +/* 009B38 80008F38 0C00127E */ jal sound_event_update /* 009B3C 80008F3C 24050004 */ li $a1, 4 /* 009B40 80008F40 8FAD0088 */ lw $t5, 0x88($sp) /* 009B44 80008F44 00000000 */ nop @@ -812,25 +812,25 @@ glabel func_80008438 /* 009BF8 80008FF8 00000000 */ nop /* 009BFC 80008FFC 15A00011 */ bnez $t5, .L80009044 /* 009C00 80009000 00000000 */ nop -/* 009C04 80009004 0C000660 */ jal func_80001980 +/* 009C04 80009004 0C000660 */ jal music_jingle_current /* 009C08 80009008 00000000 */ nop /* 009C0C 8000900C 8FAF0244 */ lw $t7, 0x244($sp) /* 009C10 80009010 93A40247 */ lbu $a0, 0x247($sp) /* 009C14 80009014 11E20003 */ beq $t7, $v0, .L80009024 /* 009C18 80009018 00000000 */ nop -/* 009C1C 8000901C 0C0005E1 */ jal func_80001784 +/* 009C1C 8000901C 0C0005E1 */ jal music_jingle_play_safe /* 009C20 80009020 00000000 */ nop .L80009024: /* 009C24 80009024 93A4024F */ lbu $a0, 0x24f($sp) -/* 009C28 80009028 0C0006C3 */ jal sfxSetRelativeVolume +/* 009C28 80009028 0C0006C3 */ jal music_jingle_volume_set /* 009C2C 8000902C 00000000 */ nop /* 009C30 80009030 93A4024B */ lbu $a0, 0x24b($sp) -/* 009C34 80009034 0C0006D6 */ jal sfxSetPan +/* 009C34 80009034 0C0006D6 */ jal music_jingle_pan_set /* 009C38 80009038 00000000 */ nop /* 009C3C 8000903C 10000004 */ b .L80009050 /* 009C40 80009040 8FA5026C */ lw $a1, 0x26c($sp) .L80009044: -/* 009C44 80009044 0C000638 */ jal func_800018E0 +/* 009C44 80009044 0C000638 */ jal music_jingle_stop /* 009C48 80009048 00000000 */ nop /* 009C4C 8000904C 8FA5026C */ lw $a1, 0x26c($sp) .L80009050: diff --git a/asm/non_matchings/audio_spatial/func_80009B7C.s b/asm/non_matchings/audio_spatial/func_80009B7C.s index 11538ecf..a861b4f9 100644 --- a/asm/non_matchings/audio_spatial/func_80009B7C.s +++ b/asm/non_matchings/audio_spatial/func_80009B7C.s @@ -110,7 +110,7 @@ glabel func_80009B7C /* 00A910 80009D10 24050100 */ li $a1, 256 /* 00A914 80009D14 10800004 */ beqz $a0, .L80009D28 /* 00A918 80009D18 8FBF0064 */ lw $ra, 0x64($sp) -/* 00A91C 80009D1C 0C00127E */ jal func_800049F8 +/* 00A91C 80009D1C 0C00127E */ jal sound_event_update /* 00A920 80009D20 02A03025 */ move $a2, $s5 /* 00A924 80009D24 8FBF0064 */ lw $ra, 0x64($sp) .L80009D28: diff --git a/asm/non_matchings/audio_vehicle/func_80005254.s b/asm/non_matchings/audio_vehicle/func_80005254.s index fa0ad286..afcaa057 100644 --- a/asm/non_matchings/audio_vehicle/func_80005254.s +++ b/asm/non_matchings/audio_vehicle/func_80005254.s @@ -1,766 +1,766 @@ -.late_rodata -glabel D_800E4BF8 -.double 0.4 -glabel D_800E4C00 -.float 10000.0 -.word 0 # Padding -glabel D_800E4C08 -.double 0.05 -glabel D_800E4C10 -.double 0.95 -glabel D_800E4C18 -.double 0.13 -glabel D_800E4C20 -.double 0.3 -glabel D_800E4C28 -.double 0.02 -glabel D_800E4C30 -.double 0.01 -glabel D_800E4C38 -.float 0.4 -.word 0 # Padding -glabel D_800E4C40 -.double 0.005 -glabel D_800E4C48 -.double -0.1 - -.text -glabel func_80005254 -/* 005E54 80005254 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* 005E58 80005258 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -/* 005E5C 8000525C 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 005E60 80005260 AFBF0034 */ sw $ra, 0x34($sp) -/* 005E64 80005264 AFB20030 */ sw $s2, 0x30($sp) -/* 005E68 80005268 AFB1002C */ sw $s1, 0x2c($sp) -/* 005E6C 8000526C AFB00028 */ sw $s0, 0x28($sp) -/* 005E70 80005270 E7B70020 */ swc1 $f23, 0x20($sp) -/* 005E74 80005274 E7B60024 */ swc1 $f22, 0x24($sp) -/* 005E78 80005278 E7B50018 */ swc1 $f21, 0x18($sp) -/* 005E7C 8000527C E7B4001C */ swc1 $f20, 0x1c($sp) -/* 005E80 80005280 AFA400A0 */ sw $a0, 0xa0($sp) -/* 005E84 80005284 AFA500A4 */ sw $a1, 0xa4($sp) -/* 005E88 80005288 AFA600A8 */ sw $a2, 0xa8($sp) -/* 005E8C 8000528C AFA700AC */ sw $a3, 0xac($sp) -/* 005E90 80005290 810E01FB */ lb $t6, 0x1fb($t0) -/* 005E94 80005294 4480B000 */ mtc1 $zero, $f22 -/* 005E98 80005298 11C00005 */ beqz $t6, .L800052B0 -/* 005E9C 8000529C 00004825 */ move $t1, $zero -/* 005EA0 800052A0 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 005EA4 800052A4 44810000 */ mtc1 $at, $f0 -/* 005EA8 800052A8 10000004 */ b .L800052BC -/* 005EAC 800052AC 4616003C */ c.lt.s $f0, $f22 -.L800052B0: -/* 005EB0 800052B0 C500002C */ lwc1 $f0, 0x2c($t0) -/* 005EB4 800052B4 00000000 */ nop -/* 005EB8 800052B8 4616003C */ c.lt.s $f0, $f22 -.L800052BC: -/* 005EBC 800052BC 3C014180 */ li $at, 0x41800000 # 16.000000 -/* 005EC0 800052C0 44812000 */ mtc1 $at, $f4 -/* 005EC4 800052C4 45000002 */ bc1f .L800052D0 -/* 005EC8 800052C8 3C078012 */ lui $a3, %hi(gRacerSound) # $a3, 0x8012 -/* 005ECC 800052CC 46000007 */ neg.s $f0, $f0 -.L800052D0: -/* 005ED0 800052D0 00000000 */ nop -/* 005ED4 800052D4 46040183 */ div.s $f6, $f0, $f4 -/* 005ED8 800052D8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 005EDC 800052DC 44814000 */ mtc1 $at, $f8 -/* 005EE0 800052E0 8FB200A8 */ lw $s2, 0xa8($sp) -/* 005EE4 800052E4 00006025 */ move $t4, $zero -/* 005EE8 800052E8 32588000 */ andi $t8, $s2, 0x8000 -/* 005EEC 800052EC 03009025 */ move $s2, $t8 -/* 005EF0 800052F0 3C118012 */ lui $s1, %hi(gRacerSound) # $s1, 0x8012 -/* 005EF4 800052F4 46083282 */ mul.s $f10, $f6, $f8 -/* 005EF8 800052F8 444FF800 */ cfc1 $t7, $31 -/* 005EFC 800052FC 00000000 */ nop -/* 005F00 80005300 35E10003 */ ori $at, $t7, 3 -/* 005F04 80005304 38210002 */ xori $at, $at, 2 -/* 005F08 80005308 44C1F800 */ ctc1 $at, $31 -/* 005F0C 8000530C 00000000 */ nop -/* 005F10 80005310 46005124 */ cvt.w.s $f4, $f10 -/* 005F14 80005314 44022000 */ mfc1 $v0, $f4 -/* 005F18 80005318 44CFF800 */ ctc1 $t7, $31 -/* 005F1C 8000531C 24500005 */ addiu $s0, $v0, 5 -/* 005F20 80005320 2A010065 */ slti $at, $s0, 0x65 -/* 005F24 80005324 14200002 */ bnez $at, .L80005330 -/* 005F28 80005328 00000000 */ nop -/* 005F2C 8000532C 24100064 */ li $s0, 100 -.L80005330: -/* 005F30 80005330 3C01800E */ lui $at, %hi(D_800E4BF8 + 4) # $at, 0x800e -/* 005F34 80005334 C4354BF8 */ lwc1 $f21, %lo(D_800E4BF8)($at) -/* 005F38 80005338 C4344BFC */ lwc1 $f20, %lo(D_800E4BF8 + 4)($at) -/* 005F3C 8000533C 8CE79C38 */ lw $a3, %lo(gRacerSound)($a3) -/* 005F40 80005340 26319C38 */ addiu $s1, %lo(gRacerSound) # addiu $s1, $s1, -0x63c8 -.L80005344: -/* 005F44 80005344 00ECC821 */ addu $t9, $a3, $t4 -/* 005F48 80005348 972D0000 */ lhu $t5, ($t9) -/* 005F4C 8000534C 00097080 */ sll $t6, $t1, 2 -/* 005F50 80005350 11A001AE */ beqz $t5, .L80005A0C -/* 005F54 80005354 01C97021 */ addu $t6, $t6, $t1 -/* 005F58 80005358 00EE4021 */ addu $t0, $a3, $t6 -/* 005F5C 8000535C 910F000E */ lbu $t7, 0xe($t0) -/* 005F60 80005360 00001825 */ move $v1, $zero -/* 005F64 80005364 020F082A */ slt $at, $s0, $t7 -/* 005F68 80005368 14200008 */ bnez $at, .L8000538C -/* 005F6C 8000536C 00095080 */ sll $t2, $t1, 2 -/* 005F70 80005370 0009C080 */ sll $t8, $t1, 2 -/* 005F74 80005374 0309C021 */ addu $t8, $t8, $t1 -/* 005F78 80005378 00F83021 */ addu $a2, $a3, $t8 -/* 005F7C 8000537C 90D9000F */ lbu $t9, 0xf($a2) -/* 005F80 80005380 00000000 */ nop -/* 005F84 80005384 0330082A */ slt $at, $t9, $s0 -/* 005F88 80005388 10200010 */ beqz $at, .L800053CC -.L8000538C: -/* 005F8C 8000538C 00096880 */ sll $t5, $t1, 2 -/* 005F90 80005390 01A96821 */ addu $t5, $t5, $t1 -/* 005F94 80005394 00ED3021 */ addu $a2, $a3, $t5 -/* 005F98 80005398 00C31021 */ addu $v0, $a2, $v1 -.L8000539C: -/* 005F9C 8000539C 904E000F */ lbu $t6, 0xf($v0) -/* 005FA0 800053A0 24630001 */ addiu $v1, $v1, 1 -/* 005FA4 800053A4 020E082A */ slt $at, $s0, $t6 -/* 005FA8 800053A8 14200005 */ bnez $at, .L800053C0 -/* 005FAC 800053AC 24420001 */ addiu $v0, $v0, 1 -/* 005FB0 800053B0 904F000F */ lbu $t7, 0xf($v0) -/* 005FB4 800053B4 00000000 */ nop -/* 005FB8 800053B8 01F0082A */ slt $at, $t7, $s0 -/* 005FBC 800053BC 10200003 */ beqz $at, .L800053CC -.L800053C0: -/* 005FC0 800053C0 28610004 */ slti $at, $v1, 4 -/* 005FC4 800053C4 1420FFF5 */ bnez $at, .L8000539C -/* 005FC8 800053C8 00000000 */ nop -.L800053CC: -/* 005FCC 800053CC 01031021 */ addu $v0, $t0, $v1 -/* 005FD0 800053D0 9044000E */ lbu $a0, 0xe($v0) -/* 005FD4 800053D4 9059000F */ lbu $t9, 0xf($v0) -/* 005FD8 800053D8 0204C023 */ subu $t8, $s0, $a0 -/* 005FDC 800053DC 03246823 */ subu $t5, $t9, $a0 -/* 005FE0 800053E0 448D5000 */ mtc1 $t5, $f10 -/* 005FE4 800053E4 44983000 */ mtc1 $t8, $f6 -/* 005FE8 800053E8 46805120 */ cvt.s.w $f4, $f10 -/* 005FEC 800053EC 9045002C */ lbu $a1, 0x2c($v0) -/* 005FF0 800053F0 904E002D */ lbu $t6, 0x2d($v0) -/* 005FF4 800053F4 46803220 */ cvt.s.w $f8, $f6 -/* 005FF8 800053F8 01C57823 */ subu $t7, $t6, $a1 -/* 005FFC 800053FC 448F3000 */ mtc1 $t7, $f6 -/* 006000 80005400 46044383 */ div.s $f14, $f8, $f4 -/* 006004 80005404 468032A0 */ cvt.s.w $f10, $f6 -/* 006008 80005408 44852000 */ mtc1 $a1, $f4 -/* 00600C 8000540C 00001825 */ move $v1, $zero -/* 006010 80005410 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 006014 80005414 00C31021 */ addu $v0, $a2, $v1 -/* 006018 80005418 468021A0 */ cvt.s.w $f6, $f4 -/* 00601C 8000541C 460E5202 */ mul.s $f8, $f10, $f14 -/* 006020 80005420 04A10004 */ bgez $a1, .L80005434 -/* 006024 80005424 00000000 */ nop -/* 006028 80005428 44815000 */ mtc1 $at, $f10 -/* 00602C 8000542C 00000000 */ nop -/* 006030 80005430 460A3180 */ add.s $f6, $f6, $f10 -.L80005434: -/* 006034 80005434 46064100 */ add.s $f4, $f8, $f6 -/* 006038 80005438 240B0001 */ li $t3, 1 -/* 00603C 8000543C 4458F800 */ cfc1 $t8, $31 -/* 006040 80005440 44CBF800 */ ctc1 $t3, $31 -/* 006044 80005444 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 006048 80005448 460022A4 */ cvt.w.s $f10, $f4 -/* 00604C 8000544C 444BF800 */ cfc1 $t3, $31 -/* 006050 80005450 00000000 */ nop -/* 006054 80005454 316B0078 */ andi $t3, $t3, 0x78 -/* 006058 80005458 11600012 */ beqz $t3, .L800054A4 -/* 00605C 8000545C 00000000 */ nop -/* 006060 80005460 44815000 */ mtc1 $at, $f10 -/* 006064 80005464 240B0001 */ li $t3, 1 -/* 006068 80005468 460A2281 */ sub.s $f10, $f4, $f10 -/* 00606C 8000546C 3C018000 */ lui $at, 0x8000 -/* 006070 80005470 44CBF800 */ ctc1 $t3, $31 -/* 006074 80005474 00000000 */ nop -/* 006078 80005478 460052A4 */ cvt.w.s $f10, $f10 -/* 00607C 8000547C 444BF800 */ cfc1 $t3, $31 -/* 006080 80005480 00000000 */ nop -/* 006084 80005484 316B0078 */ andi $t3, $t3, 0x78 -/* 006088 80005488 15600004 */ bnez $t3, .L8000549C -/* 00608C 8000548C 00000000 */ nop -/* 006090 80005490 440B5000 */ mfc1 $t3, $f10 -/* 006094 80005494 10000007 */ b .L800054B4 -/* 006098 80005498 01615825 */ or $t3, $t3, $at -.L8000549C: -/* 00609C 8000549C 10000005 */ b .L800054B4 -/* 0060A0 800054A0 240BFFFF */ li $t3, -1 -.L800054A4: -/* 0060A4 800054A4 440B5000 */ mfc1 $t3, $f10 -/* 0060A8 800054A8 00000000 */ nop -/* 0060AC 800054AC 0560FFFB */ bltz $t3, .L8000549C -/* 0060B0 800054B0 00000000 */ nop -.L800054B4: -/* 0060B4 800054B4 910D0004 */ lbu $t5, 4($t0) -/* 0060B8 800054B8 44D8F800 */ ctc1 $t8, $31 -/* 0060BC 800054BC 317900FF */ andi $t9, $t3, 0xff -/* 0060C0 800054C0 020D082A */ slt $at, $s0, $t5 -/* 0060C4 800054C4 14200006 */ bnez $at, .L800054E0 -/* 0060C8 800054C8 03205825 */ move $t3, $t9 -/* 0060CC 800054CC 90CE0005 */ lbu $t6, 5($a2) -/* 0060D0 800054D0 00000000 */ nop -/* 0060D4 800054D4 01D0082A */ slt $at, $t6, $s0 -/* 0060D8 800054D8 1020000D */ beqz $at, .L80005510 -/* 0060DC 800054DC 00000000 */ nop -.L800054E0: -/* 0060E0 800054E0 904F0005 */ lbu $t7, 5($v0) -/* 0060E4 800054E4 24630001 */ addiu $v1, $v1, 1 -/* 0060E8 800054E8 020F082A */ slt $at, $s0, $t7 -/* 0060EC 800054EC 14200005 */ bnez $at, .L80005504 -/* 0060F0 800054F0 24420001 */ addiu $v0, $v0, 1 -/* 0060F4 800054F4 90580005 */ lbu $t8, 5($v0) -/* 0060F8 800054F8 00000000 */ nop -/* 0060FC 800054FC 0310082A */ slt $at, $t8, $s0 -/* 006100 80005500 10200003 */ beqz $at, .L80005510 -.L80005504: -/* 006104 80005504 28610004 */ slti $at, $v1, 4 -/* 006108 80005508 1420FFF5 */ bnez $at, .L800054E0 -/* 00610C 8000550C 00000000 */ nop -.L80005510: -/* 006110 80005510 00C31021 */ addu $v0, $a2, $v1 -/* 006114 80005514 90440004 */ lbu $a0, 4($v0) -/* 006118 80005518 00097880 */ sll $t7, $t1, 2 -/* 00611C 8000551C 904D0005 */ lbu $t5, 5($v0) -/* 006120 80005520 01E97821 */ addu $t7, $t7, $t1 -/* 006124 80005524 0204C823 */ subu $t9, $s0, $a0 -/* 006128 80005528 44994000 */ mtc1 $t9, $f8 -/* 00612C 8000552C 000F7840 */ sll $t7, $t7, 1 -/* 006130 80005530 00EFC021 */ addu $t8, $a3, $t7 -/* 006134 80005534 0003C840 */ sll $t9, $v1, 1 -/* 006138 80005538 01A47023 */ subu $t6, $t5, $a0 -/* 00613C 8000553C 03192821 */ addu $a1, $t8, $t9 -/* 006140 80005540 448E2000 */ mtc1 $t6, $f4 -/* 006144 80005544 94AD0018 */ lhu $t5, 0x18($a1) -/* 006148 80005548 468041A0 */ cvt.s.w $f6, $f8 -/* 00614C 8000554C 448D4000 */ mtc1 $t5, $f8 -/* 006150 80005550 3C01800E */ lui $at, %hi(D_800E4C00) # $at, 0x800e -/* 006154 80005554 468022A0 */ cvt.s.w $f10, $f4 -/* 006158 80005558 C4204C00 */ lwc1 $f0, %lo(D_800E4C00)($at) -/* 00615C 8000555C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 006160 80005560 460A3383 */ div.s $f14, $f6, $f10 -/* 006164 80005564 05A10004 */ bgez $t5, .L80005578 -/* 006168 80005568 46804120 */ cvt.s.w $f4, $f8 -/* 00616C 8000556C 44813000 */ mtc1 $at, $f6 -/* 006170 80005570 00000000 */ nop -/* 006174 80005574 46062100 */ add.s $f4, $f4, $f6 -.L80005578: -/* 006178 80005578 94AE001A */ lhu $t6, 0x1a($a1) -/* 00617C 8000557C 46002403 */ div.s $f16, $f4, $f0 -/* 006180 80005580 448E5000 */ mtc1 $t6, $f10 -/* 006184 80005584 05C10005 */ bgez $t6, .L8000559C -/* 006188 80005588 46805220 */ cvt.s.w $f8, $f10 -/* 00618C 8000558C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 006190 80005590 44813000 */ mtc1 $at, $f6 -/* 006194 80005594 00000000 */ nop -/* 006198 80005598 46064200 */ add.s $f8, $f8, $f6 -.L8000559C: -/* 00619C 8000559C 2A010033 */ slti $at, $s0, 0x33 -/* 0061A0 800055A0 14200036 */ bnez $at, .L8000567C -/* 0061A4 800055A4 46004483 */ div.s $f18, $f8, $f0 -/* 0061A8 800055A8 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -/* 0061AC 800055AC 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 0061B0 800055B0 00000000 */ nop -/* 0061B4 800055B4 81020185 */ lb $v0, 0x185($t0) -/* 0061B8 800055B8 00000000 */ nop -/* 0061BC 800055BC 1040002F */ beqz $v0, .L8000567C -/* 0061C0 800055C0 2841000B */ slti $at, $v0, 0xb -/* 0061C4 800055C4 10200003 */ beqz $at, .L800055D4 -/* 0061C8 800055C8 2403000A */ li $v1, 10 -/* 0061CC 800055CC 10000001 */ b .L800055D4 -/* 0061D0 800055D0 00401825 */ move $v1, $v0 -.L800055D4: -/* 0061D4 800055D4 44835000 */ mtc1 $v1, $f10 -/* 0061D8 800055D8 3C01800E */ lui $at, %hi(D_800E4C08 + 4) # $at, 0x800e -/* 0061DC 800055DC 468051A1 */ cvt.d.w $f6, $f10 -/* 0061E0 800055E0 C4254C08 */ lwc1 $f5, %lo(D_800E4C08)($at) -/* 0061E4 800055E4 C4244C0C */ lwc1 $f4, %lo(D_800E4C08 + 4)($at) -/* 0061E8 800055E8 C4EC003C */ lwc1 $f12, 0x3c($a3) -/* 0061EC 800055EC 46262002 */ mul.d $f0, $f4, $f6 -/* 0061F0 800055F0 460060A1 */ cvt.d.s $f2, $f12 -/* 0061F4 800055F4 00037980 */ sll $t7, $v1, 6 -/* 0061F8 800055F8 4620103C */ c.lt.d $f2, $f0 -/* 0061FC 800055FC 00000000 */ nop -/* 006200 80005600 4500000E */ bc1f .L8000563C -/* 006204 80005604 00000000 */ nop -/* 006208 80005608 448F4000 */ mtc1 $t7, $f8 -/* 00620C 8000560C 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -/* 006210 80005610 468042A1 */ cvt.d.w $f10, $f8 -/* 006214 80005614 00000000 */ nop -/* 006218 80005618 462A0103 */ div.d $f4, $f0, $f10 -/* 00621C 8000561C 46241180 */ add.d $f6, $f2, $f4 -/* 006220 80005620 46203220 */ cvt.s.d $f8, $f6 -/* 006224 80005624 E4E8003C */ swc1 $f8, 0x3c($a3) -/* 006228 80005628 8E270000 */ lw $a3, ($s1) -/* 00622C 8000562C 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 006230 80005630 C4EC003C */ lwc1 $f12, 0x3c($a3) -/* 006234 80005634 1000000D */ b .L8000566C -/* 006238 80005638 46109101 */ sub.s $f4, $f18, $f16 -.L8000563C: -/* 00623C 8000563C 4622003C */ c.lt.d $f0, $f2 -/* 006240 80005640 00000000 */ nop -/* 006244 80005644 45000008 */ bc1f .L80005668 -/* 006248 80005648 00000000 */ nop -/* 00624C 8000564C 462002A0 */ cvt.s.d $f10, $f0 -/* 006250 80005650 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -/* 006254 80005654 E4EA003C */ swc1 $f10, 0x3c($a3) -/* 006258 80005658 8E270000 */ lw $a3, ($s1) -/* 00625C 8000565C 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 006260 80005660 C4EC003C */ lwc1 $f12, 0x3c($a3) -/* 006264 80005664 00000000 */ nop -.L80005668: -/* 006268 80005668 46109101 */ sub.s $f4, $f18, $f16 -.L8000566C: -/* 00626C 8000566C 460E2182 */ mul.s $f6, $f4, $f14 -/* 006270 80005670 46103200 */ add.s $f8, $f6, $f16 -/* 006274 80005674 10000012 */ b .L800056C0 -/* 006278 80005678 460C4080 */ add.s $f2, $f8, $f12 -.L8000567C: -/* 00627C 8000567C 3C01800E */ lui $at, %hi(D_800E4C10 + 4) # $at, 0x800e -/* 006280 80005680 C4EA003C */ lwc1 $f10, 0x3c($a3) -/* 006284 80005684 C4274C10 */ lwc1 $f7, %lo(D_800E4C10)($at) -/* 006288 80005688 C4264C14 */ lwc1 $f6, %lo(D_800E4C10 + 4)($at) -/* 00628C 8000568C 46005121 */ cvt.d.s $f4, $f10 -/* 006290 80005690 46262202 */ mul.d $f8, $f4, $f6 -/* 006294 80005694 46109101 */ sub.s $f4, $f18, $f16 -/* 006298 80005698 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -/* 00629C 8000569C 462042A0 */ cvt.s.d $f10, $f8 -/* 0062A0 800056A0 460E2182 */ mul.s $f6, $f4, $f14 -/* 0062A4 800056A4 E4EA003C */ swc1 $f10, 0x3c($a3) -/* 0062A8 800056A8 8E270000 */ lw $a3, ($s1) -/* 0062AC 800056AC 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 0062B0 800056B0 46103200 */ add.s $f8, $f6, $f16 -/* 0062B4 800056B4 C4EA003C */ lwc1 $f10, 0x3c($a3) -/* 0062B8 800056B8 00000000 */ nop -/* 0062BC 800056BC 460A4080 */ add.s $f2, $f8, $f10 -.L800056C0: -/* 0062C0 800056C0 811801E6 */ lb $t8, 0x1e6($t0) -/* 0062C4 800056C4 3C014080 */ lui $at, 0x4080 -/* 0062C8 800056C8 13000010 */ beqz $t8, .L8000570C -/* 0062CC 800056CC 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -# Used to access D_800E4C18 and D_800E4C18 + 4. -/* 0062D0 800056D0 3C01800E */ lui $at, %hi(D_800E4C18) # $at, 0x800e -/* 0062D4 800056D4 C4274C18 */ lwc1 $f7, %lo(D_800E4C18)($at) -/* 0062D8 800056D8 C4264C1C */ lwc1 $f6, %lo(D_800E4C18 + 4)($at) -/* 0062DC 800056DC C4E40040 */ lwc1 $f4, 0x40($a3) -/* 0062E0 800056E0 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 0062E4 800056E4 46002021 */ cvt.d.s $f0, $f4 -/* 0062E8 800056E8 44815800 */ mtc1 $at, $f11 -/* 0062EC 800056EC 44805000 */ mtc1 $zero, $f10 -/* 0062F0 800056F0 46203201 */ sub.d $f8, $f6, $f0 -/* 0062F4 800056F4 00000000 */ nop -/* 0062F8 800056F8 462A4103 */ div.d $f4, $f8, $f10 -/* 0062FC 800056FC 46240180 */ add.d $f6, $f0, $f4 -/* 006300 80005700 46203220 */ cvt.s.d $f8, $f6 -/* 006304 80005704 10000006 */ b .L80005720 -/* 006308 80005708 E4E80040 */ swc1 $f8, 0x40($a3) -.L8000570C: -/* 00630C 8000570C C4EA0040 */ lwc1 $f10, 0x40($a3) -/* 006310 80005710 44812000 */ mtc1 $at, $f4 -/* 006314 80005714 00000000 */ nop -/* 006318 80005718 46045183 */ div.s $f6, $f10, $f4 -/* 00631C 8000571C E4E60040 */ swc1 $f6, 0x40($a3) -.L80005720: -/* 006320 80005720 8E270000 */ lw $a3, ($s1) -/* 006324 80005724 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 006328 80005728 C4E80040 */ lwc1 $f8, 0x40($a3) -/* 00632C 8000572C 811901E2 */ lb $t9, 0x1e2($t0) -/* 006330 80005730 00EA1021 */ addu $v0, $a3, $t2 -/* 006334 80005734 1720000A */ bnez $t9, .L80005760 -/* 006338 80005738 46081080 */ add.s $f2, $f2, $f8 -/* 00633C 8000573C 850D0000 */ lh $t5, ($t0) -/* 006340 80005740 2401FFFF */ li $at, -1 -/* 006344 80005744 11A10006 */ beq $t5, $at, .L80005760 -/* 006348 80005748 3C01800E */ lui $at, %hi(D_800E4C20 + 4) # $at, 0x800e -/* 00634C 8000574C C4254C20 */ lwc1 $f5, %lo(D_800E4C20)($at) -/* 006350 80005750 C4244C24 */ lwc1 $f4, %lo(D_800E4C20 + 4)($at) -/* 006354 80005754 460012A1 */ cvt.d.s $f10, $f2 -/* 006358 80005758 46245180 */ add.d $f6, $f10, $f4 -/* 00635C 8000575C 462030A0 */ cvt.s.d $f2, $f6 -.L80005760: -/* 006360 80005760 C448005C */ lwc1 $f8, 0x5c($v0) -/* 006364 80005764 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 006368 80005768 44812000 */ mtc1 $at, $f4 -/* 00636C 8000576C 448B3000 */ mtc1 $t3, $f6 -/* 006370 80005770 46081281 */ sub.s $f10, $f2, $f8 -/* 006374 80005774 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 006378 80005778 46045303 */ div.s $f12, $f10, $f4 -/* 00637C 8000577C 05610004 */ bgez $t3, .L80005790 -/* 006380 80005780 46803220 */ cvt.s.w $f8, $f6 -/* 006384 80005784 44815000 */ mtc1 $at, $f10 -/* 006388 80005788 00000000 */ nop -/* 00638C 8000578C 460A4200 */ add.s $f8, $f8, $f10 -.L80005790: -/* 006390 80005790 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 006394 80005794 44815000 */ mtc1 $at, $f10 -/* 006398 80005798 C4440054 */ lwc1 $f4, 0x54($v0) -/* 00639C 8000579C 850E0000 */ lh $t6, ($t0) -/* 0063A0 800057A0 46044181 */ sub.s $f6, $f8, $f4 -/* 0063A4 800057A4 2401FFFF */ li $at, -1 -/* 0063A8 800057A8 11C10042 */ beq $t6, $at, .L800058B4 -/* 0063AC 800057AC 460A3383 */ div.s $f14, $f6, $f10 -/* 0063B0 800057B0 00002025 */ move $a0, $zero -/* 0063B4 800057B4 2405000A */ li $a1, 10 -/* 0063B8 800057B8 AFA9007C */ sw $t1, 0x7c($sp) -/* 0063BC 800057BC AFAA003C */ sw $t2, 0x3c($sp) -/* 0063C0 800057C0 AFAC005C */ sw $t4, 0x5c($sp) -/* 0063C4 800057C4 E7AC0074 */ swc1 $f12, 0x74($sp) -/* 0063C8 800057C8 0C01BE53 */ jal get_random_number_from_range -/* 0063CC 800057CC E7AE0078 */ swc1 $f14, 0x78($sp) -/* 0063D0 800057D0 8FA9007C */ lw $t1, 0x7c($sp) -/* 0063D4 800057D4 8FAA003C */ lw $t2, 0x3c($sp) -/* 0063D8 800057D8 8FAC005C */ lw $t4, 0x5c($sp) -/* 0063DC 800057DC C7AC0074 */ lwc1 $f12, 0x74($sp) -/* 0063E0 800057E0 C7AE0078 */ lwc1 $f14, 0x78($sp) -/* 0063E4 800057E4 28410007 */ slti $at, $v0, 7 -/* 0063E8 800057E8 1020001F */ beqz $at, .L80005868 -/* 0063EC 800057EC 00002025 */ move $a0, $zero -/* 0063F0 800057F0 2405000A */ li $a1, 10 -/* 0063F4 800057F4 AFA9007C */ sw $t1, 0x7c($sp) -/* 0063F8 800057F8 AFAA003C */ sw $t2, 0x3c($sp) -/* 0063FC 800057FC AFAC005C */ sw $t4, 0x5c($sp) -/* 006400 80005800 E7AC0074 */ swc1 $f12, 0x74($sp) -/* 006404 80005804 0C01BE53 */ jal get_random_number_from_range -/* 006408 80005808 E7AE0078 */ swc1 $f14, 0x78($sp) -/* 00640C 8000580C 8E270000 */ lw $a3, ($s1) -/* 006410 80005810 8FA9007C */ lw $t1, 0x7c($sp) -/* 006414 80005814 80EF0090 */ lb $t7, 0x90($a3) -/* 006418 80005818 8FAA003C */ lw $t2, 0x3c($sp) -/* 00641C 8000581C 01E2C021 */ addu $t8, $t7, $v0 -/* 006420 80005820 2719FFFB */ addiu $t9, $t8, -5 -/* 006424 80005824 8FAC005C */ lw $t4, 0x5c($sp) -/* 006428 80005828 C7AC0074 */ lwc1 $f12, 0x74($sp) -/* 00642C 8000582C C7AE0078 */ lwc1 $f14, 0x78($sp) -/* 006430 80005830 A0F90090 */ sb $t9, 0x90($a3) -/* 006434 80005834 8E270000 */ lw $a3, ($s1) -/* 006438 80005838 240D0005 */ li $t5, 5 -/* 00643C 8000583C 80E30090 */ lb $v1, 0x90($a3) -/* 006440 80005840 00000000 */ nop -/* 006444 80005844 28610006 */ slti $at, $v1, 6 -/* 006448 80005848 14200004 */ bnez $at, .L8000585C -/* 00644C 8000584C 2861FFFB */ slti $at, $v1, -5 -/* 006450 80005850 10000005 */ b .L80005868 -/* 006454 80005854 A0ED0090 */ sb $t5, 0x90($a3) -/* 006458 80005858 2861FFFB */ slti $at, $v1, -5 -.L8000585C: -/* 00645C 8000585C 10200002 */ beqz $at, .L80005868 -/* 006460 80005860 240EFFFB */ li $t6, -5 -/* 006464 80005864 A0EE0090 */ sb $t6, 0x90($a3) -.L80005868: -/* 006468 80005868 8E270000 */ lw $a3, ($s1) -/* 00646C 8000586C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 006470 80005870 80EF0090 */ lb $t7, 0x90($a3) -/* 006474 80005874 44813000 */ mtc1 $at, $f6 -/* 006478 80005878 448F4000 */ mtc1 $t7, $f8 -/* 00647C 8000587C 3C01800E */ lui $at, %hi(D_800E4C28 + 4) # $at, 0x800e -/* 006480 80005880 46804120 */ cvt.s.w $f4, $f8 -/* 006484 80005884 C42B4C28 */ lwc1 $f11, %lo(D_800E4C28)($at) -/* 006488 80005888 C42A4C2C */ lwc1 $f10, %lo(D_800E4C28 + 4)($at) -/* 00648C 8000588C 46062003 */ div.s $f0, $f4, $f6 -/* 006490 80005890 3C0140A0 */ li $at, 0x40A00000 # 5.000000 -/* 006494 80005894 460061A1 */ cvt.d.s $f6, $f12 -/* 006498 80005898 46000221 */ cvt.d.s $f8, $f0 -/* 00649C 8000589C 46285102 */ mul.d $f4, $f10, $f8 -/* 0064A0 800058A0 44814000 */ mtc1 $at, $f8 -/* 0064A4 800058A4 46243280 */ add.d $f10, $f6, $f4 -/* 0064A8 800058A8 46004182 */ mul.s $f6, $f8, $f0 -/* 0064AC 800058AC 46205320 */ cvt.s.d $f12, $f10 -/* 0064B0 800058B0 46067380 */ add.s $f14, $f14, $f6 -.L800058B4: -/* 0064B4 800058B4 12400021 */ beqz $s2, .L8000593C -/* 0064B8 800058B8 00000000 */ nop -/* 0064BC 800058BC C4E40094 */ lwc1 $f4, 0x94($a3) -/* 0064C0 800058C0 8FB800AC */ lw $t8, 0xac($sp) -/* 0064C4 800058C4 46002021 */ cvt.d.s $f0, $f4 -/* 0064C8 800058C8 4634003C */ c.lt.d $f0, $f20 -/* 0064CC 800058CC 00000000 */ nop -/* 0064D0 800058D0 4500001A */ bc1f .L8000593C -/* 0064D4 800058D4 00000000 */ nop -/* 0064D8 800058D8 44985000 */ mtc1 $t8, $f10 -/* 0064DC 800058DC 3C01800E */ lui $at, %hi(D_800E4C30 + 4) # $at, 0x800e -/* 0064E0 800058E0 46805220 */ cvt.s.w $f8, $f10 -/* 0064E4 800058E4 C4254C30 */ lwc1 $f5, %lo(D_800E4C30)($at) -/* 0064E8 800058E8 C4244C34 */ lwc1 $f4, %lo(D_800E4C30 + 4)($at) -/* 0064EC 800058EC 460041A1 */ cvt.d.s $f6, $f8 -/* 0064F0 800058F0 46243282 */ mul.d $f10, $f6, $f4 -/* 0064F4 800058F4 3C01800E */ lui $at, %hi(D_800E4C38) # $at, 0x800e -/* 0064F8 800058F8 462A0200 */ add.d $f8, $f0, $f10 -/* 0064FC 800058FC 462041A0 */ cvt.s.d $f6, $f8 -/* 006500 80005900 E4E60094 */ swc1 $f6, 0x94($a3) -/* 006504 80005904 8E270000 */ lw $a3, ($s1) -/* 006508 80005908 00000000 */ nop -/* 00650C 8000590C C4E40094 */ lwc1 $f4, 0x94($a3) -/* 006510 80005910 00000000 */ nop -/* 006514 80005914 460022A1 */ cvt.d.s $f10, $f4 -/* 006518 80005918 462AA03C */ c.lt.d $f20, $f10 -/* 00651C 8000591C 00000000 */ nop -/* 006520 80005920 45000006 */ bc1f .L8000593C -/* 006524 80005924 00000000 */ nop -/* 006528 80005928 C4284C38 */ lwc1 $f8, %lo(D_800E4C38)($at) -/* 00652C 8000592C 00000000 */ nop -/* 006530 80005930 E4E80094 */ swc1 $f8, 0x94($a3) -/* 006534 80005934 8E270000 */ lw $a3, ($s1) -/* 006538 80005938 00000000 */ nop -.L8000593C: -/* 00653C 8000593C 1640001E */ bnez $s2, .L800059B8 -/* 006540 80005940 00EA1021 */ addu $v0, $a3, $t2 -/* 006544 80005944 C4E00094 */ lwc1 $f0, 0x94($a3) -/* 006548 80005948 8FB900AC */ lw $t9, 0xac($sp) -/* 00654C 8000594C 4600B03C */ c.lt.s $f22, $f0 -/* 006550 80005950 00000000 */ nop -/* 006554 80005954 45000018 */ bc1f .L800059B8 -/* 006558 80005958 00EA1021 */ addu $v0, $a3, $t2 -/* 00655C 8000595C 44993000 */ mtc1 $t9, $f6 -/* 006560 80005960 3C01800E */ lui $at, %hi(D_800E4C40 + 4) # $at, 0x800e -/* 006564 80005964 46803120 */ cvt.s.w $f4, $f6 -/* 006568 80005968 C4294C40 */ lwc1 $f9, %lo(D_800E4C40)($at) -/* 00656C 8000596C C4284C44 */ lwc1 $f8, %lo(D_800E4C40 + 4)($at) -/* 006570 80005970 460022A1 */ cvt.d.s $f10, $f4 -/* 006574 80005974 46285182 */ mul.d $f6, $f10, $f8 -/* 006578 80005978 46000121 */ cvt.d.s $f4, $f0 -/* 00657C 8000597C 46262281 */ sub.d $f10, $f4, $f6 -/* 006580 80005980 46205220 */ cvt.s.d $f8, $f10 -/* 006584 80005984 E4E80094 */ swc1 $f8, 0x94($a3) -/* 006588 80005988 8E270000 */ lw $a3, ($s1) -/* 00658C 8000598C 00000000 */ nop -/* 006590 80005990 C4E40094 */ lwc1 $f4, 0x94($a3) -/* 006594 80005994 00000000 */ nop -/* 006598 80005998 4616203C */ c.lt.s $f4, $f22 -/* 00659C 8000599C 00000000 */ nop -/* 0065A0 800059A0 45000005 */ bc1f .L800059B8 -/* 0065A4 800059A4 00EA1021 */ addu $v0, $a3, $t2 -/* 0065A8 800059A8 E4F60094 */ swc1 $f22, 0x94($a3) -/* 0065AC 800059AC 8E270000 */ lw $a3, ($s1) -/* 0065B0 800059B0 00000000 */ nop -/* 0065B4 800059B4 00EA1021 */ addu $v0, $a3, $t2 -.L800059B8: -/* 0065B8 800059B8 C446005C */ lwc1 $f6, 0x5c($v0) -/* 0065BC 800059BC 3C01420C */ li $at, 0x420C0000 # 35.000000 -/* 0065C0 800059C0 460C3280 */ add.s $f10, $f6, $f12 -/* 0065C4 800059C4 1240000B */ beqz $s2, .L800059F4 -/* 0065C8 800059C8 E44A005C */ swc1 $f10, 0x5c($v0) -/* 0065CC 800059CC 8E2D0000 */ lw $t5, ($s1) -/* 0065D0 800059D0 00000000 */ nop -/* 0065D4 800059D4 01AA1021 */ addu $v0, $t5, $t2 -/* 0065D8 800059D8 C4480054 */ lwc1 $f8, 0x54($v0) -/* 0065DC 800059DC 00000000 */ nop -/* 0065E0 800059E0 460E4100 */ add.s $f4, $f8, $f14 -/* 0065E4 800059E4 E4440054 */ swc1 $f4, 0x54($v0) -/* 0065E8 800059E8 8E270000 */ lw $a3, ($s1) -/* 0065EC 800059EC 10000008 */ b .L80005A10 -/* 0065F0 800059F0 25290001 */ addiu $t1, $t1, 1 -.L800059F4: -/* 0065F4 800059F4 8E2E0000 */ lw $t6, ($s1) -/* 0065F8 800059F8 44813000 */ mtc1 $at, $f6 -/* 0065FC 800059FC 01CA7821 */ addu $t7, $t6, $t2 -/* 006600 80005A00 E5E60054 */ swc1 $f6, 0x54($t7) -/* 006604 80005A04 8E270000 */ lw $a3, ($s1) -/* 006608 80005A08 00000000 */ nop -.L80005A0C: -/* 00660C 80005A0C 25290001 */ addiu $t1, $t1, 1 -.L80005A10: -/* 006610 80005A10 24010001 */ li $at, 1 -/* 006614 80005A14 1521FE4B */ bne $t1, $at, .L80005344 -/* 006618 80005A18 258C0002 */ addiu $t4, $t4, 2 -/* 00661C 80005A1C 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 -/* 006620 80005A20 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) -/* 006624 80005A24 00000000 */ nop -/* 006628 80005A28 8D180010 */ lw $t8, 0x10($t0) -/* 00662C 80005A2C 00000000 */ nop -/* 006630 80005A30 17000013 */ bnez $t8, .L80005A80 -/* 006634 80005A34 00000000 */ nop -/* 006638 80005A38 8D190014 */ lw $t9, 0x14($t0) -/* 00663C 80005A3C 8FAD00A8 */ lw $t5, 0xa8($sp) -/* 006640 80005A40 1720000F */ bnez $t9, .L80005A80 -/* 006644 80005A44 31AE4000 */ andi $t6, $t5, 0x4000 -/* 006648 80005A48 11C0000D */ beqz $t6, .L80005A80 -/* 00664C 80005A4C 3C01800E */ lui $at, %hi(D_800E4C48 + 4) # $at, 0x800e -/* 006650 80005A50 C508002C */ lwc1 $f8, 0x2c($t0) -/* 006654 80005A54 C42B4C48 */ lwc1 $f11, %lo(D_800E4C48)($at) -/* 006658 80005A58 C42A4C4C */ lwc1 $f10, %lo(D_800E4C48 + 4)($at) -/* 00665C 80005A5C 46004121 */ cvt.d.s $f4, $f8 -/* 006660 80005A60 4624503C */ c.lt.d $f10, $f4 -/* 006664 80005A64 00000000 */ nop -/* 006668 80005A68 45010005 */ bc1t .L80005A80 -/* 00666C 80005A6C 00000000 */ nop -/* 006670 80005A70 810F01D6 */ lb $t7, 0x1d6($t0) -/* 006674 80005A74 24010004 */ li $at, 4 -/* 006678 80005A78 15E10010 */ bne $t7, $at, .L80005ABC -/* 00667C 80005A7C 8FB900A4 */ lw $t9, 0xa4($sp) -.L80005A80: -/* 006680 80005A80 8CE400A8 */ lw $a0, 0xa8($a3) -/* 006684 80005A84 00000000 */ nop -/* 006688 80005A88 1080000C */ beqz $a0, .L80005ABC -/* 00668C 80005A8C 8FB900A4 */ lw $t9, 0xa4($sp) -/* 006690 80005A90 0C001223 */ jal func_8000488C -/* 006694 80005A94 00000000 */ nop -/* 006698 80005A98 8E380000 */ lw $t8, ($s1) -/* 00669C 80005A9C 00000000 */ nop -/* 0066A0 80005AA0 AF0000A8 */ sw $zero, 0xa8($t8) -/* 0066A4 80005AA4 8E270000 */ lw $a3, ($s1) -/* 0066A8 80005AA8 00000000 */ nop -/* 0066AC 80005AAC 8CE400A8 */ lw $a0, 0xa8($a3) -/* 0066B0 80005AB0 1000003B */ b .L80005BA0 -/* 0066B4 80005AB4 00000000 */ nop -/* 0066B8 80005AB8 8FB900A4 */ lw $t9, 0xa4($sp) -.L80005ABC: -/* 0066BC 80005ABC 8CE400A8 */ lw $a0, 0xa8($a3) -/* 0066C0 80005AC0 332D4000 */ andi $t5, $t9, 0x4000 -/* 0066C4 80005AC4 11A00036 */ beqz $t5, .L80005BA0 -/* 0066C8 80005AC8 00000000 */ nop -/* 0066CC 80005ACC 14800034 */ bnez $a0, .L80005BA0 -/* 0066D0 80005AD0 00000000 */ nop -/* 0066D4 80005AD4 850E0000 */ lh $t6, ($t0) -/* 0066D8 80005AD8 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 0066DC 80005ADC 05C00030 */ bltz $t6, .L80005BA0 -/* 0066E0 80005AE0 24E500A8 */ addiu $a1, $a3, 0xa8 -/* 0066E4 80005AE4 C500002C */ lwc1 $f0, 0x2c($t0) -/* 0066E8 80005AE8 44813000 */ mtc1 $at, $f6 -/* 0066EC 80005AEC 4616003C */ c.lt.s $f0, $f22 -/* 0066F0 80005AF0 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 0066F4 80005AF4 45000003 */ bc1f .L80005B04 -/* 0066F8 80005AF8 00000000 */ nop -/* 0066FC 80005AFC 10000002 */ b .L80005B08 -/* 006700 80005B00 46000507 */ neg.s $f20, $f0 -.L80005B04: -/* 006704 80005B04 46000506 */ mov.s $f20, $f0 -.L80005B08: -/* 006708 80005B08 4614303C */ c.lt.s $f6, $f20 -/* 00670C 80005B0C 00000000 */ nop -/* 006710 80005B10 45000003 */ bc1f .L80005B20 -/* 006714 80005B14 00000000 */ nop -/* 006718 80005B18 4481A000 */ mtc1 $at, $f20 -/* 00671C 80005B1C 00000000 */ nop -.L80005B20: -/* 006720 80005B20 0C0007C5 */ jal func_80001F14 -/* 006724 80005B24 24040019 */ li $a0, 25 -/* 006728 80005B28 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 00672C 80005B2C 44810800 */ mtc1 $at, $f1 -/* 006730 80005B30 44800000 */ mtc1 $zero, $f0 -/* 006734 80005B34 4600A221 */ cvt.d.s $f8, $f20 -/* 006738 80005B38 46204282 */ mul.d $f10, $f8, $f0 -/* 00673C 80005B3C 3C014028 */ li $at, 0x40280000 # 2.625000 -/* 006740 80005B40 44812800 */ mtc1 $at, $f5 -/* 006744 80005B44 44802000 */ mtc1 $zero, $f4 -/* 006748 80005B48 8E270000 */ lw $a3, ($s1) -/* 00674C 80005B4C 46245183 */ div.d $f6, $f10, $f4 -/* 006750 80005B50 46203200 */ add.d $f8, $f6, $f0 -/* 006754 80005B54 462042A0 */ cvt.s.d $f10, $f8 -/* 006758 80005B58 E7AA006C */ swc1 $f10, 0x6c($sp) -/* 00675C 80005B5C 8CE400A8 */ lw $a0, 0xa8($a3) -/* 006760 80005B60 8FA6006C */ lw $a2, 0x6c($sp) -/* 006764 80005B64 10800006 */ beqz $a0, .L80005B80 -/* 006768 80005B68 240F006E */ li $t7, 110 -/* 00676C 80005B6C 0C00127E */ jal func_800049F8 -/* 006770 80005B70 24050010 */ li $a1, 16 -/* 006774 80005B74 8E270000 */ lw $a3, ($s1) -/* 006778 80005B78 00000000 */ nop -/* 00677C 80005B7C 240F006E */ li $t7, 110 -.L80005B80: -/* 006780 80005B80 A4EF00AC */ sh $t7, 0xac($a3) -/* 006784 80005B84 8E380000 */ lw $t8, ($s1) -/* 006788 80005B88 00000000 */ nop -/* 00678C 80005B8C A30000D0 */ sb $zero, 0xd0($t8) -/* 006790 80005B90 8E270000 */ lw $a3, ($s1) -/* 006794 80005B94 00000000 */ nop -/* 006798 80005B98 8CE400A8 */ lw $a0, 0xa8($a3) -/* 00679C 80005B9C 00000000 */ nop -.L80005BA0: -/* 0067A0 80005BA0 10800029 */ beqz $a0, .L80005C48 -/* 0067A4 80005BA4 3C198012 */ lui $t9, %hi(gSoundRacerObj) # $t9, 0x8012 -/* 0067A8 80005BA8 8F399C3C */ lw $t9, %lo(gSoundRacerObj)($t9) -/* 0067AC 80005BAC 8FAF00AC */ lw $t7, 0xac($sp) -/* 0067B0 80005BB0 832D01E2 */ lb $t5, 0x1e2($t9) -/* 0067B4 80005BB4 00003025 */ move $a2, $zero -/* 0067B8 80005BB8 15A00006 */ bnez $t5, .L80005BD4 -/* 0067BC 80005BBC 24050008 */ li $a1, 8 -/* 0067C0 80005BC0 90EE00D0 */ lbu $t6, 0xd0($a3) -/* 0067C4 80005BC4 00000000 */ nop -/* 0067C8 80005BC8 01CFC021 */ addu $t8, $t6, $t7 -/* 0067CC 80005BCC 10000002 */ b .L80005BD8 -/* 0067D0 80005BD0 A0F800D0 */ sb $t8, 0xd0($a3) -.L80005BD4: -/* 0067D4 80005BD4 A0E000D0 */ sb $zero, 0xd0($a3) -.L80005BD8: -/* 0067D8 80005BD8 8E270000 */ lw $a3, ($s1) -/* 0067DC 80005BDC 00000000 */ nop -/* 0067E0 80005BE0 90F900D0 */ lbu $t9, 0xd0($a3) -/* 0067E4 80005BE4 00000000 */ nop -/* 0067E8 80005BE8 2B21000A */ slti $at, $t9, 0xa -/* 0067EC 80005BEC 14200007 */ bnez $at, .L80005C0C -/* 0067F0 80005BF0 00000000 */ nop -/* 0067F4 80005BF4 8CE400A8 */ lw $a0, 0xa8($a3) -/* 0067F8 80005BF8 0C00127E */ jal func_800049F8 -/* 0067FC 80005BFC 24050008 */ li $a1, 8 -/* 006800 80005C00 8E270000 */ lw $a3, ($s1) -/* 006804 80005C04 10000010 */ b .L80005C48 -/* 006808 80005C08 00000000 */ nop -.L80005C0C: -/* 00680C 80005C0C 94E600AC */ lhu $a2, 0xac($a3) -/* 006810 80005C10 8CE400A8 */ lw $a0, 0xa8($a3) -/* 006814 80005C14 00066A00 */ sll $t5, $a2, 8 -/* 006818 80005C18 0C00127E */ jal func_800049F8 -/* 00681C 80005C1C 01A03025 */ move $a2, $t5 -/* 006820 80005C20 8FAF00A0 */ lw $t7, 0xa0($sp) -/* 006824 80005C24 8E2E0000 */ lw $t6, ($s1) -/* 006828 80005C28 8DE5000C */ lw $a1, 0xc($t7) -/* 00682C 80005C2C 8DE60010 */ lw $a2, 0x10($t7) -/* 006830 80005C30 8DE70014 */ lw $a3, 0x14($t7) -/* 006834 80005C34 8DC400A8 */ lw $a0, 0xa8($t6) -/* 006838 80005C38 0C0026DF */ jal func_80009B7C -/* 00683C 80005C3C 00000000 */ nop -/* 006840 80005C40 8E270000 */ lw $a3, ($s1) -/* 006844 80005C44 00000000 */ nop -.L80005C48: -/* 006848 80005C48 12400025 */ beqz $s2, .L80005CE0 -/* 00684C 80005C4C A0F000A0 */ sb $s0, 0xa0($a3) -/* 006850 80005C50 8E270000 */ lw $a3, ($s1) -/* 006854 80005C54 4458F800 */ cfc1 $t8, $31 -/* 006858 80005C58 24190001 */ li $t9, 1 -/* 00685C 80005C5C 44D9F800 */ ctc1 $t9, $31 -/* 006860 80005C60 C4E40054 */ lwc1 $f4, 0x54($a3) -/* 006864 80005C64 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 006868 80005C68 460021A4 */ cvt.w.s $f6, $f4 -/* 00686C 80005C6C 4459F800 */ cfc1 $t9, $31 -/* 006870 80005C70 00000000 */ nop -/* 006874 80005C74 33390078 */ andi $t9, $t9, 0x78 -/* 006878 80005C78 13200012 */ beqz $t9, .L80005CC4 -/* 00687C 80005C7C 00000000 */ nop -/* 006880 80005C80 44813000 */ mtc1 $at, $f6 -/* 006884 80005C84 24190001 */ li $t9, 1 -/* 006888 80005C88 46062181 */ sub.s $f6, $f4, $f6 -/* 00688C 80005C8C 3C018000 */ lui $at, 0x8000 -/* 006890 80005C90 44D9F800 */ ctc1 $t9, $31 -/* 006894 80005C94 00000000 */ nop -/* 006898 80005C98 460031A4 */ cvt.w.s $f6, $f6 -/* 00689C 80005C9C 4459F800 */ cfc1 $t9, $31 -/* 0068A0 80005CA0 00000000 */ nop -/* 0068A4 80005CA4 33390078 */ andi $t9, $t9, 0x78 -/* 0068A8 80005CA8 17200004 */ bnez $t9, .L80005CBC -/* 0068AC 80005CAC 00000000 */ nop -/* 0068B0 80005CB0 44193000 */ mfc1 $t9, $f6 -/* 0068B4 80005CB4 10000007 */ b .L80005CD4 -/* 0068B8 80005CB8 0321C825 */ or $t9, $t9, $at -.L80005CBC: -/* 0068BC 80005CBC 10000005 */ b .L80005CD4 -/* 0068C0 80005CC0 2419FFFF */ li $t9, -1 -.L80005CC4: -/* 0068C4 80005CC4 44193000 */ mfc1 $t9, $f6 -/* 0068C8 80005CC8 00000000 */ nop -/* 0068CC 80005CCC 0720FFFB */ bltz $t9, .L80005CBC -/* 0068D0 80005CD0 00000000 */ nop -.L80005CD4: -/* 0068D4 80005CD4 44D8F800 */ ctc1 $t8, $31 -/* 0068D8 80005CD8 A0F90098 */ sb $t9, 0x98($a3) -/* 0068DC 80005CDC 00000000 */ nop -.L80005CE0: -/* 0068E0 80005CE0 8FBF0034 */ lw $ra, 0x34($sp) -/* 0068E4 80005CE4 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 0068E8 80005CE8 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 0068EC 80005CEC C7B70020 */ lwc1 $f23, 0x20($sp) -/* 0068F0 80005CF0 C7B60024 */ lwc1 $f22, 0x24($sp) -/* 0068F4 80005CF4 8FB00028 */ lw $s0, 0x28($sp) -/* 0068F8 80005CF8 8FB1002C */ lw $s1, 0x2c($sp) -/* 0068FC 80005CFC 8FB20030 */ lw $s2, 0x30($sp) -/* 006900 80005D00 03E00008 */ jr $ra -/* 006904 80005D04 27BD00A0 */ addiu $sp, $sp, 0xa0 - +.late_rodata +glabel D_800E4BF8 +.double 0.4 +glabel D_800E4C00 +.float 10000.0 +.word 0 # Padding +glabel D_800E4C08 +.double 0.05 +glabel D_800E4C10 +.double 0.95 +glabel D_800E4C18 +.double 0.13 +glabel D_800E4C20 +.double 0.3 +glabel D_800E4C28 +.double 0.02 +glabel D_800E4C30 +.double 0.01 +glabel D_800E4C38 +.float 0.4 +.word 0 # Padding +glabel D_800E4C40 +.double 0.005 +glabel D_800E4C48 +.double -0.1 + +.text +glabel func_80005254 +/* 005E54 80005254 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 005E58 80005258 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +/* 005E5C 8000525C 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 005E60 80005260 AFBF0034 */ sw $ra, 0x34($sp) +/* 005E64 80005264 AFB20030 */ sw $s2, 0x30($sp) +/* 005E68 80005268 AFB1002C */ sw $s1, 0x2c($sp) +/* 005E6C 8000526C AFB00028 */ sw $s0, 0x28($sp) +/* 005E70 80005270 E7B70020 */ swc1 $f23, 0x20($sp) +/* 005E74 80005274 E7B60024 */ swc1 $f22, 0x24($sp) +/* 005E78 80005278 E7B50018 */ swc1 $f21, 0x18($sp) +/* 005E7C 8000527C E7B4001C */ swc1 $f20, 0x1c($sp) +/* 005E80 80005280 AFA400A0 */ sw $a0, 0xa0($sp) +/* 005E84 80005284 AFA500A4 */ sw $a1, 0xa4($sp) +/* 005E88 80005288 AFA600A8 */ sw $a2, 0xa8($sp) +/* 005E8C 8000528C AFA700AC */ sw $a3, 0xac($sp) +/* 005E90 80005290 810E01FB */ lb $t6, 0x1fb($t0) +/* 005E94 80005294 4480B000 */ mtc1 $zero, $f22 +/* 005E98 80005298 11C00005 */ beqz $t6, .L800052B0 +/* 005E9C 8000529C 00004825 */ move $t1, $zero +/* 005EA0 800052A0 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 005EA4 800052A4 44810000 */ mtc1 $at, $f0 +/* 005EA8 800052A8 10000004 */ b .L800052BC +/* 005EAC 800052AC 4616003C */ c.lt.s $f0, $f22 +.L800052B0: +/* 005EB0 800052B0 C500002C */ lwc1 $f0, 0x2c($t0) +/* 005EB4 800052B4 00000000 */ nop +/* 005EB8 800052B8 4616003C */ c.lt.s $f0, $f22 +.L800052BC: +/* 005EBC 800052BC 3C014180 */ li $at, 0x41800000 # 16.000000 +/* 005EC0 800052C0 44812000 */ mtc1 $at, $f4 +/* 005EC4 800052C4 45000002 */ bc1f .L800052D0 +/* 005EC8 800052C8 3C078012 */ lui $a3, %hi(gRacerSound) # $a3, 0x8012 +/* 005ECC 800052CC 46000007 */ neg.s $f0, $f0 +.L800052D0: +/* 005ED0 800052D0 00000000 */ nop +/* 005ED4 800052D4 46040183 */ div.s $f6, $f0, $f4 +/* 005ED8 800052D8 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 005EDC 800052DC 44814000 */ mtc1 $at, $f8 +/* 005EE0 800052E0 8FB200A8 */ lw $s2, 0xa8($sp) +/* 005EE4 800052E4 00006025 */ move $t4, $zero +/* 005EE8 800052E8 32588000 */ andi $t8, $s2, 0x8000 +/* 005EEC 800052EC 03009025 */ move $s2, $t8 +/* 005EF0 800052F0 3C118012 */ lui $s1, %hi(gRacerSound) # $s1, 0x8012 +/* 005EF4 800052F4 46083282 */ mul.s $f10, $f6, $f8 +/* 005EF8 800052F8 444FF800 */ cfc1 $t7, $31 +/* 005EFC 800052FC 00000000 */ nop +/* 005F00 80005300 35E10003 */ ori $at, $t7, 3 +/* 005F04 80005304 38210002 */ xori $at, $at, 2 +/* 005F08 80005308 44C1F800 */ ctc1 $at, $31 +/* 005F0C 8000530C 00000000 */ nop +/* 005F10 80005310 46005124 */ cvt.w.s $f4, $f10 +/* 005F14 80005314 44022000 */ mfc1 $v0, $f4 +/* 005F18 80005318 44CFF800 */ ctc1 $t7, $31 +/* 005F1C 8000531C 24500005 */ addiu $s0, $v0, 5 +/* 005F20 80005320 2A010065 */ slti $at, $s0, 0x65 +/* 005F24 80005324 14200002 */ bnez $at, .L80005330 +/* 005F28 80005328 00000000 */ nop +/* 005F2C 8000532C 24100064 */ li $s0, 100 +.L80005330: +/* 005F30 80005330 3C01800E */ lui $at, %hi(D_800E4BF8 + 4) # $at, 0x800e +/* 005F34 80005334 C4354BF8 */ lwc1 $f21, %lo(D_800E4BF8)($at) +/* 005F38 80005338 C4344BFC */ lwc1 $f20, %lo(D_800E4BF8 + 4)($at) +/* 005F3C 8000533C 8CE79C38 */ lw $a3, %lo(gRacerSound)($a3) +/* 005F40 80005340 26319C38 */ addiu $s1, %lo(gRacerSound) # addiu $s1, $s1, -0x63c8 +.L80005344: +/* 005F44 80005344 00ECC821 */ addu $t9, $a3, $t4 +/* 005F48 80005348 972D0000 */ lhu $t5, ($t9) +/* 005F4C 8000534C 00097080 */ sll $t6, $t1, 2 +/* 005F50 80005350 11A001AE */ beqz $t5, .L80005A0C +/* 005F54 80005354 01C97021 */ addu $t6, $t6, $t1 +/* 005F58 80005358 00EE4021 */ addu $t0, $a3, $t6 +/* 005F5C 8000535C 910F000E */ lbu $t7, 0xe($t0) +/* 005F60 80005360 00001825 */ move $v1, $zero +/* 005F64 80005364 020F082A */ slt $at, $s0, $t7 +/* 005F68 80005368 14200008 */ bnez $at, .L8000538C +/* 005F6C 8000536C 00095080 */ sll $t2, $t1, 2 +/* 005F70 80005370 0009C080 */ sll $t8, $t1, 2 +/* 005F74 80005374 0309C021 */ addu $t8, $t8, $t1 +/* 005F78 80005378 00F83021 */ addu $a2, $a3, $t8 +/* 005F7C 8000537C 90D9000F */ lbu $t9, 0xf($a2) +/* 005F80 80005380 00000000 */ nop +/* 005F84 80005384 0330082A */ slt $at, $t9, $s0 +/* 005F88 80005388 10200010 */ beqz $at, .L800053CC +.L8000538C: +/* 005F8C 8000538C 00096880 */ sll $t5, $t1, 2 +/* 005F90 80005390 01A96821 */ addu $t5, $t5, $t1 +/* 005F94 80005394 00ED3021 */ addu $a2, $a3, $t5 +/* 005F98 80005398 00C31021 */ addu $v0, $a2, $v1 +.L8000539C: +/* 005F9C 8000539C 904E000F */ lbu $t6, 0xf($v0) +/* 005FA0 800053A0 24630001 */ addiu $v1, $v1, 1 +/* 005FA4 800053A4 020E082A */ slt $at, $s0, $t6 +/* 005FA8 800053A8 14200005 */ bnez $at, .L800053C0 +/* 005FAC 800053AC 24420001 */ addiu $v0, $v0, 1 +/* 005FB0 800053B0 904F000F */ lbu $t7, 0xf($v0) +/* 005FB4 800053B4 00000000 */ nop +/* 005FB8 800053B8 01F0082A */ slt $at, $t7, $s0 +/* 005FBC 800053BC 10200003 */ beqz $at, .L800053CC +.L800053C0: +/* 005FC0 800053C0 28610004 */ slti $at, $v1, 4 +/* 005FC4 800053C4 1420FFF5 */ bnez $at, .L8000539C +/* 005FC8 800053C8 00000000 */ nop +.L800053CC: +/* 005FCC 800053CC 01031021 */ addu $v0, $t0, $v1 +/* 005FD0 800053D0 9044000E */ lbu $a0, 0xe($v0) +/* 005FD4 800053D4 9059000F */ lbu $t9, 0xf($v0) +/* 005FD8 800053D8 0204C023 */ subu $t8, $s0, $a0 +/* 005FDC 800053DC 03246823 */ subu $t5, $t9, $a0 +/* 005FE0 800053E0 448D5000 */ mtc1 $t5, $f10 +/* 005FE4 800053E4 44983000 */ mtc1 $t8, $f6 +/* 005FE8 800053E8 46805120 */ cvt.s.w $f4, $f10 +/* 005FEC 800053EC 9045002C */ lbu $a1, 0x2c($v0) +/* 005FF0 800053F0 904E002D */ lbu $t6, 0x2d($v0) +/* 005FF4 800053F4 46803220 */ cvt.s.w $f8, $f6 +/* 005FF8 800053F8 01C57823 */ subu $t7, $t6, $a1 +/* 005FFC 800053FC 448F3000 */ mtc1 $t7, $f6 +/* 006000 80005400 46044383 */ div.s $f14, $f8, $f4 +/* 006004 80005404 468032A0 */ cvt.s.w $f10, $f6 +/* 006008 80005408 44852000 */ mtc1 $a1, $f4 +/* 00600C 8000540C 00001825 */ move $v1, $zero +/* 006010 80005410 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 006014 80005414 00C31021 */ addu $v0, $a2, $v1 +/* 006018 80005418 468021A0 */ cvt.s.w $f6, $f4 +/* 00601C 8000541C 460E5202 */ mul.s $f8, $f10, $f14 +/* 006020 80005420 04A10004 */ bgez $a1, .L80005434 +/* 006024 80005424 00000000 */ nop +/* 006028 80005428 44815000 */ mtc1 $at, $f10 +/* 00602C 8000542C 00000000 */ nop +/* 006030 80005430 460A3180 */ add.s $f6, $f6, $f10 +.L80005434: +/* 006034 80005434 46064100 */ add.s $f4, $f8, $f6 +/* 006038 80005438 240B0001 */ li $t3, 1 +/* 00603C 8000543C 4458F800 */ cfc1 $t8, $31 +/* 006040 80005440 44CBF800 */ ctc1 $t3, $31 +/* 006044 80005444 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 006048 80005448 460022A4 */ cvt.w.s $f10, $f4 +/* 00604C 8000544C 444BF800 */ cfc1 $t3, $31 +/* 006050 80005450 00000000 */ nop +/* 006054 80005454 316B0078 */ andi $t3, $t3, 0x78 +/* 006058 80005458 11600012 */ beqz $t3, .L800054A4 +/* 00605C 8000545C 00000000 */ nop +/* 006060 80005460 44815000 */ mtc1 $at, $f10 +/* 006064 80005464 240B0001 */ li $t3, 1 +/* 006068 80005468 460A2281 */ sub.s $f10, $f4, $f10 +/* 00606C 8000546C 3C018000 */ lui $at, 0x8000 +/* 006070 80005470 44CBF800 */ ctc1 $t3, $31 +/* 006074 80005474 00000000 */ nop +/* 006078 80005478 460052A4 */ cvt.w.s $f10, $f10 +/* 00607C 8000547C 444BF800 */ cfc1 $t3, $31 +/* 006080 80005480 00000000 */ nop +/* 006084 80005484 316B0078 */ andi $t3, $t3, 0x78 +/* 006088 80005488 15600004 */ bnez $t3, .L8000549C +/* 00608C 8000548C 00000000 */ nop +/* 006090 80005490 440B5000 */ mfc1 $t3, $f10 +/* 006094 80005494 10000007 */ b .L800054B4 +/* 006098 80005498 01615825 */ or $t3, $t3, $at +.L8000549C: +/* 00609C 8000549C 10000005 */ b .L800054B4 +/* 0060A0 800054A0 240BFFFF */ li $t3, -1 +.L800054A4: +/* 0060A4 800054A4 440B5000 */ mfc1 $t3, $f10 +/* 0060A8 800054A8 00000000 */ nop +/* 0060AC 800054AC 0560FFFB */ bltz $t3, .L8000549C +/* 0060B0 800054B0 00000000 */ nop +.L800054B4: +/* 0060B4 800054B4 910D0004 */ lbu $t5, 4($t0) +/* 0060B8 800054B8 44D8F800 */ ctc1 $t8, $31 +/* 0060BC 800054BC 317900FF */ andi $t9, $t3, 0xff +/* 0060C0 800054C0 020D082A */ slt $at, $s0, $t5 +/* 0060C4 800054C4 14200006 */ bnez $at, .L800054E0 +/* 0060C8 800054C8 03205825 */ move $t3, $t9 +/* 0060CC 800054CC 90CE0005 */ lbu $t6, 5($a2) +/* 0060D0 800054D0 00000000 */ nop +/* 0060D4 800054D4 01D0082A */ slt $at, $t6, $s0 +/* 0060D8 800054D8 1020000D */ beqz $at, .L80005510 +/* 0060DC 800054DC 00000000 */ nop +.L800054E0: +/* 0060E0 800054E0 904F0005 */ lbu $t7, 5($v0) +/* 0060E4 800054E4 24630001 */ addiu $v1, $v1, 1 +/* 0060E8 800054E8 020F082A */ slt $at, $s0, $t7 +/* 0060EC 800054EC 14200005 */ bnez $at, .L80005504 +/* 0060F0 800054F0 24420001 */ addiu $v0, $v0, 1 +/* 0060F4 800054F4 90580005 */ lbu $t8, 5($v0) +/* 0060F8 800054F8 00000000 */ nop +/* 0060FC 800054FC 0310082A */ slt $at, $t8, $s0 +/* 006100 80005500 10200003 */ beqz $at, .L80005510 +.L80005504: +/* 006104 80005504 28610004 */ slti $at, $v1, 4 +/* 006108 80005508 1420FFF5 */ bnez $at, .L800054E0 +/* 00610C 8000550C 00000000 */ nop +.L80005510: +/* 006110 80005510 00C31021 */ addu $v0, $a2, $v1 +/* 006114 80005514 90440004 */ lbu $a0, 4($v0) +/* 006118 80005518 00097880 */ sll $t7, $t1, 2 +/* 00611C 8000551C 904D0005 */ lbu $t5, 5($v0) +/* 006120 80005520 01E97821 */ addu $t7, $t7, $t1 +/* 006124 80005524 0204C823 */ subu $t9, $s0, $a0 +/* 006128 80005528 44994000 */ mtc1 $t9, $f8 +/* 00612C 8000552C 000F7840 */ sll $t7, $t7, 1 +/* 006130 80005530 00EFC021 */ addu $t8, $a3, $t7 +/* 006134 80005534 0003C840 */ sll $t9, $v1, 1 +/* 006138 80005538 01A47023 */ subu $t6, $t5, $a0 +/* 00613C 8000553C 03192821 */ addu $a1, $t8, $t9 +/* 006140 80005540 448E2000 */ mtc1 $t6, $f4 +/* 006144 80005544 94AD0018 */ lhu $t5, 0x18($a1) +/* 006148 80005548 468041A0 */ cvt.s.w $f6, $f8 +/* 00614C 8000554C 448D4000 */ mtc1 $t5, $f8 +/* 006150 80005550 3C01800E */ lui $at, %hi(D_800E4C00) # $at, 0x800e +/* 006154 80005554 468022A0 */ cvt.s.w $f10, $f4 +/* 006158 80005558 C4204C00 */ lwc1 $f0, %lo(D_800E4C00)($at) +/* 00615C 8000555C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 006160 80005560 460A3383 */ div.s $f14, $f6, $f10 +/* 006164 80005564 05A10004 */ bgez $t5, .L80005578 +/* 006168 80005568 46804120 */ cvt.s.w $f4, $f8 +/* 00616C 8000556C 44813000 */ mtc1 $at, $f6 +/* 006170 80005570 00000000 */ nop +/* 006174 80005574 46062100 */ add.s $f4, $f4, $f6 +.L80005578: +/* 006178 80005578 94AE001A */ lhu $t6, 0x1a($a1) +/* 00617C 8000557C 46002403 */ div.s $f16, $f4, $f0 +/* 006180 80005580 448E5000 */ mtc1 $t6, $f10 +/* 006184 80005584 05C10005 */ bgez $t6, .L8000559C +/* 006188 80005588 46805220 */ cvt.s.w $f8, $f10 +/* 00618C 8000558C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 006190 80005590 44813000 */ mtc1 $at, $f6 +/* 006194 80005594 00000000 */ nop +/* 006198 80005598 46064200 */ add.s $f8, $f8, $f6 +.L8000559C: +/* 00619C 8000559C 2A010033 */ slti $at, $s0, 0x33 +/* 0061A0 800055A0 14200036 */ bnez $at, .L8000567C +/* 0061A4 800055A4 46004483 */ div.s $f18, $f8, $f0 +/* 0061A8 800055A8 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +/* 0061AC 800055AC 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 0061B0 800055B0 00000000 */ nop +/* 0061B4 800055B4 81020185 */ lb $v0, 0x185($t0) +/* 0061B8 800055B8 00000000 */ nop +/* 0061BC 800055BC 1040002F */ beqz $v0, .L8000567C +/* 0061C0 800055C0 2841000B */ slti $at, $v0, 0xb +/* 0061C4 800055C4 10200003 */ beqz $at, .L800055D4 +/* 0061C8 800055C8 2403000A */ li $v1, 10 +/* 0061CC 800055CC 10000001 */ b .L800055D4 +/* 0061D0 800055D0 00401825 */ move $v1, $v0 +.L800055D4: +/* 0061D4 800055D4 44835000 */ mtc1 $v1, $f10 +/* 0061D8 800055D8 3C01800E */ lui $at, %hi(D_800E4C08 + 4) # $at, 0x800e +/* 0061DC 800055DC 468051A1 */ cvt.d.w $f6, $f10 +/* 0061E0 800055E0 C4254C08 */ lwc1 $f5, %lo(D_800E4C08)($at) +/* 0061E4 800055E4 C4244C0C */ lwc1 $f4, %lo(D_800E4C08 + 4)($at) +/* 0061E8 800055E8 C4EC003C */ lwc1 $f12, 0x3c($a3) +/* 0061EC 800055EC 46262002 */ mul.d $f0, $f4, $f6 +/* 0061F0 800055F0 460060A1 */ cvt.d.s $f2, $f12 +/* 0061F4 800055F4 00037980 */ sll $t7, $v1, 6 +/* 0061F8 800055F8 4620103C */ c.lt.d $f2, $f0 +/* 0061FC 800055FC 00000000 */ nop +/* 006200 80005600 4500000E */ bc1f .L8000563C +/* 006204 80005604 00000000 */ nop +/* 006208 80005608 448F4000 */ mtc1 $t7, $f8 +/* 00620C 8000560C 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +/* 006210 80005610 468042A1 */ cvt.d.w $f10, $f8 +/* 006214 80005614 00000000 */ nop +/* 006218 80005618 462A0103 */ div.d $f4, $f0, $f10 +/* 00621C 8000561C 46241180 */ add.d $f6, $f2, $f4 +/* 006220 80005620 46203220 */ cvt.s.d $f8, $f6 +/* 006224 80005624 E4E8003C */ swc1 $f8, 0x3c($a3) +/* 006228 80005628 8E270000 */ lw $a3, ($s1) +/* 00622C 8000562C 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 006230 80005630 C4EC003C */ lwc1 $f12, 0x3c($a3) +/* 006234 80005634 1000000D */ b .L8000566C +/* 006238 80005638 46109101 */ sub.s $f4, $f18, $f16 +.L8000563C: +/* 00623C 8000563C 4622003C */ c.lt.d $f0, $f2 +/* 006240 80005640 00000000 */ nop +/* 006244 80005644 45000008 */ bc1f .L80005668 +/* 006248 80005648 00000000 */ nop +/* 00624C 8000564C 462002A0 */ cvt.s.d $f10, $f0 +/* 006250 80005650 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +/* 006254 80005654 E4EA003C */ swc1 $f10, 0x3c($a3) +/* 006258 80005658 8E270000 */ lw $a3, ($s1) +/* 00625C 8000565C 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 006260 80005660 C4EC003C */ lwc1 $f12, 0x3c($a3) +/* 006264 80005664 00000000 */ nop +.L80005668: +/* 006268 80005668 46109101 */ sub.s $f4, $f18, $f16 +.L8000566C: +/* 00626C 8000566C 460E2182 */ mul.s $f6, $f4, $f14 +/* 006270 80005670 46103200 */ add.s $f8, $f6, $f16 +/* 006274 80005674 10000012 */ b .L800056C0 +/* 006278 80005678 460C4080 */ add.s $f2, $f8, $f12 +.L8000567C: +/* 00627C 8000567C 3C01800E */ lui $at, %hi(D_800E4C10 + 4) # $at, 0x800e +/* 006280 80005680 C4EA003C */ lwc1 $f10, 0x3c($a3) +/* 006284 80005684 C4274C10 */ lwc1 $f7, %lo(D_800E4C10)($at) +/* 006288 80005688 C4264C14 */ lwc1 $f6, %lo(D_800E4C10 + 4)($at) +/* 00628C 8000568C 46005121 */ cvt.d.s $f4, $f10 +/* 006290 80005690 46262202 */ mul.d $f8, $f4, $f6 +/* 006294 80005694 46109101 */ sub.s $f4, $f18, $f16 +/* 006298 80005698 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +/* 00629C 8000569C 462042A0 */ cvt.s.d $f10, $f8 +/* 0062A0 800056A0 460E2182 */ mul.s $f6, $f4, $f14 +/* 0062A4 800056A4 E4EA003C */ swc1 $f10, 0x3c($a3) +/* 0062A8 800056A8 8E270000 */ lw $a3, ($s1) +/* 0062AC 800056AC 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 0062B0 800056B0 46103200 */ add.s $f8, $f6, $f16 +/* 0062B4 800056B4 C4EA003C */ lwc1 $f10, 0x3c($a3) +/* 0062B8 800056B8 00000000 */ nop +/* 0062BC 800056BC 460A4080 */ add.s $f2, $f8, $f10 +.L800056C0: +/* 0062C0 800056C0 811801E6 */ lb $t8, 0x1e6($t0) +/* 0062C4 800056C4 3C014080 */ lui $at, 0x4080 +/* 0062C8 800056C8 13000010 */ beqz $t8, .L8000570C +/* 0062CC 800056CC 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +# Used to access D_800E4C18 and D_800E4C18 + 4. +/* 0062D0 800056D0 3C01800E */ lui $at, %hi(D_800E4C18) # $at, 0x800e +/* 0062D4 800056D4 C4274C18 */ lwc1 $f7, %lo(D_800E4C18)($at) +/* 0062D8 800056D8 C4264C1C */ lwc1 $f6, %lo(D_800E4C18 + 4)($at) +/* 0062DC 800056DC C4E40040 */ lwc1 $f4, 0x40($a3) +/* 0062E0 800056E0 3C014020 */ li $at, 0x40200000 # 2.500000 +/* 0062E4 800056E4 46002021 */ cvt.d.s $f0, $f4 +/* 0062E8 800056E8 44815800 */ mtc1 $at, $f11 +/* 0062EC 800056EC 44805000 */ mtc1 $zero, $f10 +/* 0062F0 800056F0 46203201 */ sub.d $f8, $f6, $f0 +/* 0062F4 800056F4 00000000 */ nop +/* 0062F8 800056F8 462A4103 */ div.d $f4, $f8, $f10 +/* 0062FC 800056FC 46240180 */ add.d $f6, $f0, $f4 +/* 006300 80005700 46203220 */ cvt.s.d $f8, $f6 +/* 006304 80005704 10000006 */ b .L80005720 +/* 006308 80005708 E4E80040 */ swc1 $f8, 0x40($a3) +.L8000570C: +/* 00630C 8000570C C4EA0040 */ lwc1 $f10, 0x40($a3) +/* 006310 80005710 44812000 */ mtc1 $at, $f4 +/* 006314 80005714 00000000 */ nop +/* 006318 80005718 46045183 */ div.s $f6, $f10, $f4 +/* 00631C 8000571C E4E60040 */ swc1 $f6, 0x40($a3) +.L80005720: +/* 006320 80005720 8E270000 */ lw $a3, ($s1) +/* 006324 80005724 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 006328 80005728 C4E80040 */ lwc1 $f8, 0x40($a3) +/* 00632C 8000572C 811901E2 */ lb $t9, 0x1e2($t0) +/* 006330 80005730 00EA1021 */ addu $v0, $a3, $t2 +/* 006334 80005734 1720000A */ bnez $t9, .L80005760 +/* 006338 80005738 46081080 */ add.s $f2, $f2, $f8 +/* 00633C 8000573C 850D0000 */ lh $t5, ($t0) +/* 006340 80005740 2401FFFF */ li $at, -1 +/* 006344 80005744 11A10006 */ beq $t5, $at, .L80005760 +/* 006348 80005748 3C01800E */ lui $at, %hi(D_800E4C20 + 4) # $at, 0x800e +/* 00634C 8000574C C4254C20 */ lwc1 $f5, %lo(D_800E4C20)($at) +/* 006350 80005750 C4244C24 */ lwc1 $f4, %lo(D_800E4C20 + 4)($at) +/* 006354 80005754 460012A1 */ cvt.d.s $f10, $f2 +/* 006358 80005758 46245180 */ add.d $f6, $f10, $f4 +/* 00635C 8000575C 462030A0 */ cvt.s.d $f2, $f6 +.L80005760: +/* 006360 80005760 C448005C */ lwc1 $f8, 0x5c($v0) +/* 006364 80005764 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 006368 80005768 44812000 */ mtc1 $at, $f4 +/* 00636C 8000576C 448B3000 */ mtc1 $t3, $f6 +/* 006370 80005770 46081281 */ sub.s $f10, $f2, $f8 +/* 006374 80005774 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 006378 80005778 46045303 */ div.s $f12, $f10, $f4 +/* 00637C 8000577C 05610004 */ bgez $t3, .L80005790 +/* 006380 80005780 46803220 */ cvt.s.w $f8, $f6 +/* 006384 80005784 44815000 */ mtc1 $at, $f10 +/* 006388 80005788 00000000 */ nop +/* 00638C 8000578C 460A4200 */ add.s $f8, $f8, $f10 +.L80005790: +/* 006390 80005790 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 006394 80005794 44815000 */ mtc1 $at, $f10 +/* 006398 80005798 C4440054 */ lwc1 $f4, 0x54($v0) +/* 00639C 8000579C 850E0000 */ lh $t6, ($t0) +/* 0063A0 800057A0 46044181 */ sub.s $f6, $f8, $f4 +/* 0063A4 800057A4 2401FFFF */ li $at, -1 +/* 0063A8 800057A8 11C10042 */ beq $t6, $at, .L800058B4 +/* 0063AC 800057AC 460A3383 */ div.s $f14, $f6, $f10 +/* 0063B0 800057B0 00002025 */ move $a0, $zero +/* 0063B4 800057B4 2405000A */ li $a1, 10 +/* 0063B8 800057B8 AFA9007C */ sw $t1, 0x7c($sp) +/* 0063BC 800057BC AFAA003C */ sw $t2, 0x3c($sp) +/* 0063C0 800057C0 AFAC005C */ sw $t4, 0x5c($sp) +/* 0063C4 800057C4 E7AC0074 */ swc1 $f12, 0x74($sp) +/* 0063C8 800057C8 0C01BE53 */ jal get_random_number_from_range +/* 0063CC 800057CC E7AE0078 */ swc1 $f14, 0x78($sp) +/* 0063D0 800057D0 8FA9007C */ lw $t1, 0x7c($sp) +/* 0063D4 800057D4 8FAA003C */ lw $t2, 0x3c($sp) +/* 0063D8 800057D8 8FAC005C */ lw $t4, 0x5c($sp) +/* 0063DC 800057DC C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 0063E0 800057E0 C7AE0078 */ lwc1 $f14, 0x78($sp) +/* 0063E4 800057E4 28410007 */ slti $at, $v0, 7 +/* 0063E8 800057E8 1020001F */ beqz $at, .L80005868 +/* 0063EC 800057EC 00002025 */ move $a0, $zero +/* 0063F0 800057F0 2405000A */ li $a1, 10 +/* 0063F4 800057F4 AFA9007C */ sw $t1, 0x7c($sp) +/* 0063F8 800057F8 AFAA003C */ sw $t2, 0x3c($sp) +/* 0063FC 800057FC AFAC005C */ sw $t4, 0x5c($sp) +/* 006400 80005800 E7AC0074 */ swc1 $f12, 0x74($sp) +/* 006404 80005804 0C01BE53 */ jal get_random_number_from_range +/* 006408 80005808 E7AE0078 */ swc1 $f14, 0x78($sp) +/* 00640C 8000580C 8E270000 */ lw $a3, ($s1) +/* 006410 80005810 8FA9007C */ lw $t1, 0x7c($sp) +/* 006414 80005814 80EF0090 */ lb $t7, 0x90($a3) +/* 006418 80005818 8FAA003C */ lw $t2, 0x3c($sp) +/* 00641C 8000581C 01E2C021 */ addu $t8, $t7, $v0 +/* 006420 80005820 2719FFFB */ addiu $t9, $t8, -5 +/* 006424 80005824 8FAC005C */ lw $t4, 0x5c($sp) +/* 006428 80005828 C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 00642C 8000582C C7AE0078 */ lwc1 $f14, 0x78($sp) +/* 006430 80005830 A0F90090 */ sb $t9, 0x90($a3) +/* 006434 80005834 8E270000 */ lw $a3, ($s1) +/* 006438 80005838 240D0005 */ li $t5, 5 +/* 00643C 8000583C 80E30090 */ lb $v1, 0x90($a3) +/* 006440 80005840 00000000 */ nop +/* 006444 80005844 28610006 */ slti $at, $v1, 6 +/* 006448 80005848 14200004 */ bnez $at, .L8000585C +/* 00644C 8000584C 2861FFFB */ slti $at, $v1, -5 +/* 006450 80005850 10000005 */ b .L80005868 +/* 006454 80005854 A0ED0090 */ sb $t5, 0x90($a3) +/* 006458 80005858 2861FFFB */ slti $at, $v1, -5 +.L8000585C: +/* 00645C 8000585C 10200002 */ beqz $at, .L80005868 +/* 006460 80005860 240EFFFB */ li $t6, -5 +/* 006464 80005864 A0EE0090 */ sb $t6, 0x90($a3) +.L80005868: +/* 006468 80005868 8E270000 */ lw $a3, ($s1) +/* 00646C 8000586C 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 006470 80005870 80EF0090 */ lb $t7, 0x90($a3) +/* 006474 80005874 44813000 */ mtc1 $at, $f6 +/* 006478 80005878 448F4000 */ mtc1 $t7, $f8 +/* 00647C 8000587C 3C01800E */ lui $at, %hi(D_800E4C28 + 4) # $at, 0x800e +/* 006480 80005880 46804120 */ cvt.s.w $f4, $f8 +/* 006484 80005884 C42B4C28 */ lwc1 $f11, %lo(D_800E4C28)($at) +/* 006488 80005888 C42A4C2C */ lwc1 $f10, %lo(D_800E4C28 + 4)($at) +/* 00648C 8000588C 46062003 */ div.s $f0, $f4, $f6 +/* 006490 80005890 3C0140A0 */ li $at, 0x40A00000 # 5.000000 +/* 006494 80005894 460061A1 */ cvt.d.s $f6, $f12 +/* 006498 80005898 46000221 */ cvt.d.s $f8, $f0 +/* 00649C 8000589C 46285102 */ mul.d $f4, $f10, $f8 +/* 0064A0 800058A0 44814000 */ mtc1 $at, $f8 +/* 0064A4 800058A4 46243280 */ add.d $f10, $f6, $f4 +/* 0064A8 800058A8 46004182 */ mul.s $f6, $f8, $f0 +/* 0064AC 800058AC 46205320 */ cvt.s.d $f12, $f10 +/* 0064B0 800058B0 46067380 */ add.s $f14, $f14, $f6 +.L800058B4: +/* 0064B4 800058B4 12400021 */ beqz $s2, .L8000593C +/* 0064B8 800058B8 00000000 */ nop +/* 0064BC 800058BC C4E40094 */ lwc1 $f4, 0x94($a3) +/* 0064C0 800058C0 8FB800AC */ lw $t8, 0xac($sp) +/* 0064C4 800058C4 46002021 */ cvt.d.s $f0, $f4 +/* 0064C8 800058C8 4634003C */ c.lt.d $f0, $f20 +/* 0064CC 800058CC 00000000 */ nop +/* 0064D0 800058D0 4500001A */ bc1f .L8000593C +/* 0064D4 800058D4 00000000 */ nop +/* 0064D8 800058D8 44985000 */ mtc1 $t8, $f10 +/* 0064DC 800058DC 3C01800E */ lui $at, %hi(D_800E4C30 + 4) # $at, 0x800e +/* 0064E0 800058E0 46805220 */ cvt.s.w $f8, $f10 +/* 0064E4 800058E4 C4254C30 */ lwc1 $f5, %lo(D_800E4C30)($at) +/* 0064E8 800058E8 C4244C34 */ lwc1 $f4, %lo(D_800E4C30 + 4)($at) +/* 0064EC 800058EC 460041A1 */ cvt.d.s $f6, $f8 +/* 0064F0 800058F0 46243282 */ mul.d $f10, $f6, $f4 +/* 0064F4 800058F4 3C01800E */ lui $at, %hi(D_800E4C38) # $at, 0x800e +/* 0064F8 800058F8 462A0200 */ add.d $f8, $f0, $f10 +/* 0064FC 800058FC 462041A0 */ cvt.s.d $f6, $f8 +/* 006500 80005900 E4E60094 */ swc1 $f6, 0x94($a3) +/* 006504 80005904 8E270000 */ lw $a3, ($s1) +/* 006508 80005908 00000000 */ nop +/* 00650C 8000590C C4E40094 */ lwc1 $f4, 0x94($a3) +/* 006510 80005910 00000000 */ nop +/* 006514 80005914 460022A1 */ cvt.d.s $f10, $f4 +/* 006518 80005918 462AA03C */ c.lt.d $f20, $f10 +/* 00651C 8000591C 00000000 */ nop +/* 006520 80005920 45000006 */ bc1f .L8000593C +/* 006524 80005924 00000000 */ nop +/* 006528 80005928 C4284C38 */ lwc1 $f8, %lo(D_800E4C38)($at) +/* 00652C 8000592C 00000000 */ nop +/* 006530 80005930 E4E80094 */ swc1 $f8, 0x94($a3) +/* 006534 80005934 8E270000 */ lw $a3, ($s1) +/* 006538 80005938 00000000 */ nop +.L8000593C: +/* 00653C 8000593C 1640001E */ bnez $s2, .L800059B8 +/* 006540 80005940 00EA1021 */ addu $v0, $a3, $t2 +/* 006544 80005944 C4E00094 */ lwc1 $f0, 0x94($a3) +/* 006548 80005948 8FB900AC */ lw $t9, 0xac($sp) +/* 00654C 8000594C 4600B03C */ c.lt.s $f22, $f0 +/* 006550 80005950 00000000 */ nop +/* 006554 80005954 45000018 */ bc1f .L800059B8 +/* 006558 80005958 00EA1021 */ addu $v0, $a3, $t2 +/* 00655C 8000595C 44993000 */ mtc1 $t9, $f6 +/* 006560 80005960 3C01800E */ lui $at, %hi(D_800E4C40 + 4) # $at, 0x800e +/* 006564 80005964 46803120 */ cvt.s.w $f4, $f6 +/* 006568 80005968 C4294C40 */ lwc1 $f9, %lo(D_800E4C40)($at) +/* 00656C 8000596C C4284C44 */ lwc1 $f8, %lo(D_800E4C40 + 4)($at) +/* 006570 80005970 460022A1 */ cvt.d.s $f10, $f4 +/* 006574 80005974 46285182 */ mul.d $f6, $f10, $f8 +/* 006578 80005978 46000121 */ cvt.d.s $f4, $f0 +/* 00657C 8000597C 46262281 */ sub.d $f10, $f4, $f6 +/* 006580 80005980 46205220 */ cvt.s.d $f8, $f10 +/* 006584 80005984 E4E80094 */ swc1 $f8, 0x94($a3) +/* 006588 80005988 8E270000 */ lw $a3, ($s1) +/* 00658C 8000598C 00000000 */ nop +/* 006590 80005990 C4E40094 */ lwc1 $f4, 0x94($a3) +/* 006594 80005994 00000000 */ nop +/* 006598 80005998 4616203C */ c.lt.s $f4, $f22 +/* 00659C 8000599C 00000000 */ nop +/* 0065A0 800059A0 45000005 */ bc1f .L800059B8 +/* 0065A4 800059A4 00EA1021 */ addu $v0, $a3, $t2 +/* 0065A8 800059A8 E4F60094 */ swc1 $f22, 0x94($a3) +/* 0065AC 800059AC 8E270000 */ lw $a3, ($s1) +/* 0065B0 800059B0 00000000 */ nop +/* 0065B4 800059B4 00EA1021 */ addu $v0, $a3, $t2 +.L800059B8: +/* 0065B8 800059B8 C446005C */ lwc1 $f6, 0x5c($v0) +/* 0065BC 800059BC 3C01420C */ li $at, 0x420C0000 # 35.000000 +/* 0065C0 800059C0 460C3280 */ add.s $f10, $f6, $f12 +/* 0065C4 800059C4 1240000B */ beqz $s2, .L800059F4 +/* 0065C8 800059C8 E44A005C */ swc1 $f10, 0x5c($v0) +/* 0065CC 800059CC 8E2D0000 */ lw $t5, ($s1) +/* 0065D0 800059D0 00000000 */ nop +/* 0065D4 800059D4 01AA1021 */ addu $v0, $t5, $t2 +/* 0065D8 800059D8 C4480054 */ lwc1 $f8, 0x54($v0) +/* 0065DC 800059DC 00000000 */ nop +/* 0065E0 800059E0 460E4100 */ add.s $f4, $f8, $f14 +/* 0065E4 800059E4 E4440054 */ swc1 $f4, 0x54($v0) +/* 0065E8 800059E8 8E270000 */ lw $a3, ($s1) +/* 0065EC 800059EC 10000008 */ b .L80005A10 +/* 0065F0 800059F0 25290001 */ addiu $t1, $t1, 1 +.L800059F4: +/* 0065F4 800059F4 8E2E0000 */ lw $t6, ($s1) +/* 0065F8 800059F8 44813000 */ mtc1 $at, $f6 +/* 0065FC 800059FC 01CA7821 */ addu $t7, $t6, $t2 +/* 006600 80005A00 E5E60054 */ swc1 $f6, 0x54($t7) +/* 006604 80005A04 8E270000 */ lw $a3, ($s1) +/* 006608 80005A08 00000000 */ nop +.L80005A0C: +/* 00660C 80005A0C 25290001 */ addiu $t1, $t1, 1 +.L80005A10: +/* 006610 80005A10 24010001 */ li $at, 1 +/* 006614 80005A14 1521FE4B */ bne $t1, $at, .L80005344 +/* 006618 80005A18 258C0002 */ addiu $t4, $t4, 2 +/* 00661C 80005A1C 3C088012 */ lui $t0, %hi(gSoundRacerObj) # $t0, 0x8012 +/* 006620 80005A20 8D089C3C */ lw $t0, %lo(gSoundRacerObj)($t0) +/* 006624 80005A24 00000000 */ nop +/* 006628 80005A28 8D180010 */ lw $t8, 0x10($t0) +/* 00662C 80005A2C 00000000 */ nop +/* 006630 80005A30 17000013 */ bnez $t8, .L80005A80 +/* 006634 80005A34 00000000 */ nop +/* 006638 80005A38 8D190014 */ lw $t9, 0x14($t0) +/* 00663C 80005A3C 8FAD00A8 */ lw $t5, 0xa8($sp) +/* 006640 80005A40 1720000F */ bnez $t9, .L80005A80 +/* 006644 80005A44 31AE4000 */ andi $t6, $t5, 0x4000 +/* 006648 80005A48 11C0000D */ beqz $t6, .L80005A80 +/* 00664C 80005A4C 3C01800E */ lui $at, %hi(D_800E4C48 + 4) # $at, 0x800e +/* 006650 80005A50 C508002C */ lwc1 $f8, 0x2c($t0) +/* 006654 80005A54 C42B4C48 */ lwc1 $f11, %lo(D_800E4C48)($at) +/* 006658 80005A58 C42A4C4C */ lwc1 $f10, %lo(D_800E4C48 + 4)($at) +/* 00665C 80005A5C 46004121 */ cvt.d.s $f4, $f8 +/* 006660 80005A60 4624503C */ c.lt.d $f10, $f4 +/* 006664 80005A64 00000000 */ nop +/* 006668 80005A68 45010005 */ bc1t .L80005A80 +/* 00666C 80005A6C 00000000 */ nop +/* 006670 80005A70 810F01D6 */ lb $t7, 0x1d6($t0) +/* 006674 80005A74 24010004 */ li $at, 4 +/* 006678 80005A78 15E10010 */ bne $t7, $at, .L80005ABC +/* 00667C 80005A7C 8FB900A4 */ lw $t9, 0xa4($sp) +.L80005A80: +/* 006680 80005A80 8CE400A8 */ lw $a0, 0xa8($a3) +/* 006684 80005A84 00000000 */ nop +/* 006688 80005A88 1080000C */ beqz $a0, .L80005ABC +/* 00668C 80005A8C 8FB900A4 */ lw $t9, 0xa4($sp) +/* 006690 80005A90 0C001223 */ jal func_8000488C +/* 006694 80005A94 00000000 */ nop +/* 006698 80005A98 8E380000 */ lw $t8, ($s1) +/* 00669C 80005A9C 00000000 */ nop +/* 0066A0 80005AA0 AF0000A8 */ sw $zero, 0xa8($t8) +/* 0066A4 80005AA4 8E270000 */ lw $a3, ($s1) +/* 0066A8 80005AA8 00000000 */ nop +/* 0066AC 80005AAC 8CE400A8 */ lw $a0, 0xa8($a3) +/* 0066B0 80005AB0 1000003B */ b .L80005BA0 +/* 0066B4 80005AB4 00000000 */ nop +/* 0066B8 80005AB8 8FB900A4 */ lw $t9, 0xa4($sp) +.L80005ABC: +/* 0066BC 80005ABC 8CE400A8 */ lw $a0, 0xa8($a3) +/* 0066C0 80005AC0 332D4000 */ andi $t5, $t9, 0x4000 +/* 0066C4 80005AC4 11A00036 */ beqz $t5, .L80005BA0 +/* 0066C8 80005AC8 00000000 */ nop +/* 0066CC 80005ACC 14800034 */ bnez $a0, .L80005BA0 +/* 0066D0 80005AD0 00000000 */ nop +/* 0066D4 80005AD4 850E0000 */ lh $t6, ($t0) +/* 0066D8 80005AD8 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0066DC 80005ADC 05C00030 */ bltz $t6, .L80005BA0 +/* 0066E0 80005AE0 24E500A8 */ addiu $a1, $a3, 0xa8 +/* 0066E4 80005AE4 C500002C */ lwc1 $f0, 0x2c($t0) +/* 0066E8 80005AE8 44813000 */ mtc1 $at, $f6 +/* 0066EC 80005AEC 4616003C */ c.lt.s $f0, $f22 +/* 0066F0 80005AF0 3C014140 */ li $at, 0x41400000 # 12.000000 +/* 0066F4 80005AF4 45000003 */ bc1f .L80005B04 +/* 0066F8 80005AF8 00000000 */ nop +/* 0066FC 80005AFC 10000002 */ b .L80005B08 +/* 006700 80005B00 46000507 */ neg.s $f20, $f0 +.L80005B04: +/* 006704 80005B04 46000506 */ mov.s $f20, $f0 +.L80005B08: +/* 006708 80005B08 4614303C */ c.lt.s $f6, $f20 +/* 00670C 80005B0C 00000000 */ nop +/* 006710 80005B10 45000003 */ bc1f .L80005B20 +/* 006714 80005B14 00000000 */ nop +/* 006718 80005B18 4481A000 */ mtc1 $at, $f20 +/* 00671C 80005B1C 00000000 */ nop +.L80005B20: +/* 006720 80005B20 0C0007C5 */ jal func_80001F14 +/* 006724 80005B24 24040019 */ li $a0, 25 +/* 006728 80005B28 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 00672C 80005B2C 44810800 */ mtc1 $at, $f1 +/* 006730 80005B30 44800000 */ mtc1 $zero, $f0 +/* 006734 80005B34 4600A221 */ cvt.d.s $f8, $f20 +/* 006738 80005B38 46204282 */ mul.d $f10, $f8, $f0 +/* 00673C 80005B3C 3C014028 */ li $at, 0x40280000 # 2.625000 +/* 006740 80005B40 44812800 */ mtc1 $at, $f5 +/* 006744 80005B44 44802000 */ mtc1 $zero, $f4 +/* 006748 80005B48 8E270000 */ lw $a3, ($s1) +/* 00674C 80005B4C 46245183 */ div.d $f6, $f10, $f4 +/* 006750 80005B50 46203200 */ add.d $f8, $f6, $f0 +/* 006754 80005B54 462042A0 */ cvt.s.d $f10, $f8 +/* 006758 80005B58 E7AA006C */ swc1 $f10, 0x6c($sp) +/* 00675C 80005B5C 8CE400A8 */ lw $a0, 0xa8($a3) +/* 006760 80005B60 8FA6006C */ lw $a2, 0x6c($sp) +/* 006764 80005B64 10800006 */ beqz $a0, .L80005B80 +/* 006768 80005B68 240F006E */ li $t7, 110 +/* 00676C 80005B6C 0C00127E */ jal sound_event_update +/* 006770 80005B70 24050010 */ li $a1, 16 +/* 006774 80005B74 8E270000 */ lw $a3, ($s1) +/* 006778 80005B78 00000000 */ nop +/* 00677C 80005B7C 240F006E */ li $t7, 110 +.L80005B80: +/* 006780 80005B80 A4EF00AC */ sh $t7, 0xac($a3) +/* 006784 80005B84 8E380000 */ lw $t8, ($s1) +/* 006788 80005B88 00000000 */ nop +/* 00678C 80005B8C A30000D0 */ sb $zero, 0xd0($t8) +/* 006790 80005B90 8E270000 */ lw $a3, ($s1) +/* 006794 80005B94 00000000 */ nop +/* 006798 80005B98 8CE400A8 */ lw $a0, 0xa8($a3) +/* 00679C 80005B9C 00000000 */ nop +.L80005BA0: +/* 0067A0 80005BA0 10800029 */ beqz $a0, .L80005C48 +/* 0067A4 80005BA4 3C198012 */ lui $t9, %hi(gSoundRacerObj) # $t9, 0x8012 +/* 0067A8 80005BA8 8F399C3C */ lw $t9, %lo(gSoundRacerObj)($t9) +/* 0067AC 80005BAC 8FAF00AC */ lw $t7, 0xac($sp) +/* 0067B0 80005BB0 832D01E2 */ lb $t5, 0x1e2($t9) +/* 0067B4 80005BB4 00003025 */ move $a2, $zero +/* 0067B8 80005BB8 15A00006 */ bnez $t5, .L80005BD4 +/* 0067BC 80005BBC 24050008 */ li $a1, 8 +/* 0067C0 80005BC0 90EE00D0 */ lbu $t6, 0xd0($a3) +/* 0067C4 80005BC4 00000000 */ nop +/* 0067C8 80005BC8 01CFC021 */ addu $t8, $t6, $t7 +/* 0067CC 80005BCC 10000002 */ b .L80005BD8 +/* 0067D0 80005BD0 A0F800D0 */ sb $t8, 0xd0($a3) +.L80005BD4: +/* 0067D4 80005BD4 A0E000D0 */ sb $zero, 0xd0($a3) +.L80005BD8: +/* 0067D8 80005BD8 8E270000 */ lw $a3, ($s1) +/* 0067DC 80005BDC 00000000 */ nop +/* 0067E0 80005BE0 90F900D0 */ lbu $t9, 0xd0($a3) +/* 0067E4 80005BE4 00000000 */ nop +/* 0067E8 80005BE8 2B21000A */ slti $at, $t9, 0xa +/* 0067EC 80005BEC 14200007 */ bnez $at, .L80005C0C +/* 0067F0 80005BF0 00000000 */ nop +/* 0067F4 80005BF4 8CE400A8 */ lw $a0, 0xa8($a3) +/* 0067F8 80005BF8 0C00127E */ jal sound_event_update +/* 0067FC 80005BFC 24050008 */ li $a1, 8 +/* 006800 80005C00 8E270000 */ lw $a3, ($s1) +/* 006804 80005C04 10000010 */ b .L80005C48 +/* 006808 80005C08 00000000 */ nop +.L80005C0C: +/* 00680C 80005C0C 94E600AC */ lhu $a2, 0xac($a3) +/* 006810 80005C10 8CE400A8 */ lw $a0, 0xa8($a3) +/* 006814 80005C14 00066A00 */ sll $t5, $a2, 8 +/* 006818 80005C18 0C00127E */ jal sound_event_update +/* 00681C 80005C1C 01A03025 */ move $a2, $t5 +/* 006820 80005C20 8FAF00A0 */ lw $t7, 0xa0($sp) +/* 006824 80005C24 8E2E0000 */ lw $t6, ($s1) +/* 006828 80005C28 8DE5000C */ lw $a1, 0xc($t7) +/* 00682C 80005C2C 8DE60010 */ lw $a2, 0x10($t7) +/* 006830 80005C30 8DE70014 */ lw $a3, 0x14($t7) +/* 006834 80005C34 8DC400A8 */ lw $a0, 0xa8($t6) +/* 006838 80005C38 0C0026DF */ jal func_80009B7C +/* 00683C 80005C3C 00000000 */ nop +/* 006840 80005C40 8E270000 */ lw $a3, ($s1) +/* 006844 80005C44 00000000 */ nop +.L80005C48: +/* 006848 80005C48 12400025 */ beqz $s2, .L80005CE0 +/* 00684C 80005C4C A0F000A0 */ sb $s0, 0xa0($a3) +/* 006850 80005C50 8E270000 */ lw $a3, ($s1) +/* 006854 80005C54 4458F800 */ cfc1 $t8, $31 +/* 006858 80005C58 24190001 */ li $t9, 1 +/* 00685C 80005C5C 44D9F800 */ ctc1 $t9, $31 +/* 006860 80005C60 C4E40054 */ lwc1 $f4, 0x54($a3) +/* 006864 80005C64 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 006868 80005C68 460021A4 */ cvt.w.s $f6, $f4 +/* 00686C 80005C6C 4459F800 */ cfc1 $t9, $31 +/* 006870 80005C70 00000000 */ nop +/* 006874 80005C74 33390078 */ andi $t9, $t9, 0x78 +/* 006878 80005C78 13200012 */ beqz $t9, .L80005CC4 +/* 00687C 80005C7C 00000000 */ nop +/* 006880 80005C80 44813000 */ mtc1 $at, $f6 +/* 006884 80005C84 24190001 */ li $t9, 1 +/* 006888 80005C88 46062181 */ sub.s $f6, $f4, $f6 +/* 00688C 80005C8C 3C018000 */ lui $at, 0x8000 +/* 006890 80005C90 44D9F800 */ ctc1 $t9, $31 +/* 006894 80005C94 00000000 */ nop +/* 006898 80005C98 460031A4 */ cvt.w.s $f6, $f6 +/* 00689C 80005C9C 4459F800 */ cfc1 $t9, $31 +/* 0068A0 80005CA0 00000000 */ nop +/* 0068A4 80005CA4 33390078 */ andi $t9, $t9, 0x78 +/* 0068A8 80005CA8 17200004 */ bnez $t9, .L80005CBC +/* 0068AC 80005CAC 00000000 */ nop +/* 0068B0 80005CB0 44193000 */ mfc1 $t9, $f6 +/* 0068B4 80005CB4 10000007 */ b .L80005CD4 +/* 0068B8 80005CB8 0321C825 */ or $t9, $t9, $at +.L80005CBC: +/* 0068BC 80005CBC 10000005 */ b .L80005CD4 +/* 0068C0 80005CC0 2419FFFF */ li $t9, -1 +.L80005CC4: +/* 0068C4 80005CC4 44193000 */ mfc1 $t9, $f6 +/* 0068C8 80005CC8 00000000 */ nop +/* 0068CC 80005CCC 0720FFFB */ bltz $t9, .L80005CBC +/* 0068D0 80005CD0 00000000 */ nop +.L80005CD4: +/* 0068D4 80005CD4 44D8F800 */ ctc1 $t8, $31 +/* 0068D8 80005CD8 A0F90098 */ sb $t9, 0x98($a3) +/* 0068DC 80005CDC 00000000 */ nop +.L80005CE0: +/* 0068E0 80005CE0 8FBF0034 */ lw $ra, 0x34($sp) +/* 0068E4 80005CE4 C7B50018 */ lwc1 $f21, 0x18($sp) +/* 0068E8 80005CE8 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 0068EC 80005CEC C7B70020 */ lwc1 $f23, 0x20($sp) +/* 0068F0 80005CF0 C7B60024 */ lwc1 $f22, 0x24($sp) +/* 0068F4 80005CF4 8FB00028 */ lw $s0, 0x28($sp) +/* 0068F8 80005CF8 8FB1002C */ lw $s1, 0x2c($sp) +/* 0068FC 80005CFC 8FB20030 */ lw $s2, 0x30($sp) +/* 006900 80005D00 03E00008 */ jr $ra +/* 006904 80005D04 27BD00A0 */ addiu $sp, $sp, 0xa0 + diff --git a/asm/non_matchings/audio_vehicle/func_800063EC.s b/asm/non_matchings/audio_vehicle/func_800063EC.s index a2a10fdf..18eb3de0 100644 --- a/asm/non_matchings/audio_vehicle/func_800063EC.s +++ b/asm/non_matchings/audio_vehicle/func_800063EC.s @@ -1,490 +1,490 @@ -.late_rodata -glabel D_800E4C78 -.float 10000.0 -.word 0 # Padding -glabel D_800E4C80 -.double 0.05 -glabel D_800E4C88 -.double 0.95 -glabel D_800E4C90 -.double 6.5534 -glabel D_800E4C98 -.float 6.5534 - -.text -glabel func_800063EC -/* 006FEC 800063EC 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 006FF0 800063F0 AFBF0014 */ sw $ra, 0x14($sp) -/* 006FF4 800063F4 AFA40030 */ sw $a0, 0x30($sp) -/* 006FF8 800063F8 AFA50034 */ sw $a1, 0x34($sp) -/* 006FFC 800063FC AFA60038 */ sw $a2, 0x38($sp) -/* 007000 80006400 0C0044E7 */ jal get_race_countdown -/* 007004 80006404 AFA7003C */ sw $a3, 0x3c($sp) -/* 007008 80006408 1440000F */ bnez $v0, .L80006448 -/* 00700C 8000640C 00000000 */ nop -/* 007010 80006410 8FA20030 */ lw $v0, 0x30($sp) -/* 007014 80006414 00000000 */ nop -/* 007018 80006418 C440001C */ lwc1 $f0, 0x1c($v0) -/* 00701C 8000641C C4420024 */ lwc1 $f2, 0x24($v0) -/* 007020 80006420 46000102 */ mul.s $f4, $f0, $f0 -/* 007024 80006424 C44E0020 */ lwc1 $f14, 0x20($v0) -/* 007028 80006428 46021182 */ mul.s $f6, $f2, $f2 -/* 00702C 8000642C 00000000 */ nop -/* 007030 80006430 460E7282 */ mul.s $f10, $f14, $f14 -/* 007034 80006434 46062200 */ add.s $f8, $f4, $f6 -/* 007038 80006438 0C0326B4 */ jal sqrtf -/* 00703C 8000643C 460A4300 */ add.s $f12, $f8, $f10 -/* 007040 80006440 10000003 */ b .L80006450 -/* 007044 80006444 46000486 */ mov.s $f18, $f0 -.L80006448: -/* 007048 80006448 44809000 */ mtc1 $zero, $f18 -/* 00704C 8000644C 00000000 */ nop -.L80006450: -/* 007050 80006450 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 007054 80006454 44812000 */ mtc1 $at, $f4 -/* 007058 80006458 00000000 */ nop -/* 00705C 8000645C 4604903C */ c.lt.s $f18, $f4 -/* 007060 80006460 00000000 */ nop -/* 007064 80006464 45000014 */ bc1f .L800064B8 -/* 007068 80006468 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 -/* 00706C 8000646C 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 -/* 007070 80006470 8D230000 */ lw $v1, ($t1) -/* 007074 80006474 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 007078 80006478 906E0037 */ lbu $t6, 0x37($v1) -/* 00707C 8000647C C4600054 */ lwc1 $f0, 0x54($v1) -/* 007080 80006480 448E3000 */ mtc1 $t6, $f6 -/* 007084 80006484 05C10004 */ bgez $t6, .L80006498 -/* 007088 80006488 46803220 */ cvt.s.w $f8, $f6 -/* 00708C 8000648C 44815000 */ mtc1 $at, $f10 -/* 007090 80006490 00000000 */ nop -/* 007094 80006494 460A4200 */ add.s $f8, $f8, $f10 -.L80006498: -/* 007098 80006498 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 00709C 8000649C 44813000 */ mtc1 $at, $f6 -/* 0070A0 800064A0 46004101 */ sub.s $f4, $f8, $f0 -/* 0070A4 800064A4 00000000 */ nop -/* 0070A8 800064A8 46062283 */ div.s $f10, $f4, $f6 -/* 0070AC 800064AC 460A0200 */ add.s $f8, $f0, $f10 -/* 0070B0 800064B0 10000092 */ b .L800066FC -/* 0070B4 800064B4 E4680054 */ swc1 $f8, 0x54($v1) -.L800064B8: -/* 0070B8 800064B8 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 -/* 0070BC 800064BC 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 -/* 0070C0 800064C0 8D230000 */ lw $v1, ($t1) -/* 0070C4 800064C4 3C01800E */ lui $at, %hi(D_800E4C78) # $at, 0x800e -/* 0070C8 800064C8 C4264C78 */ lwc1 $f6, %lo(D_800E4C78)($at) -/* 0070CC 800064CC C464005C */ lwc1 $f4, 0x5c($v1) -/* 0070D0 800064D0 24050001 */ li $a1, 1 -/* 0070D4 800064D4 46062282 */ mul.s $f10, $f4, $f6 -/* 0070D8 800064D8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0070DC 800064DC 444FF800 */ cfc1 $t7, $31 -/* 0070E0 800064E0 44C5F800 */ ctc1 $a1, $31 -/* 0070E4 800064E4 00000000 */ nop -/* 0070E8 800064E8 46005224 */ cvt.w.s $f8, $f10 -/* 0070EC 800064EC 4445F800 */ cfc1 $a1, $31 -/* 0070F0 800064F0 00000000 */ nop -/* 0070F4 800064F4 30A50078 */ andi $a1, $a1, 0x78 -/* 0070F8 800064F8 10A00012 */ beqz $a1, .L80006544 -/* 0070FC 800064FC 00000000 */ nop -/* 007100 80006500 44814000 */ mtc1 $at, $f8 -/* 007104 80006504 24050001 */ li $a1, 1 -/* 007108 80006508 46085201 */ sub.s $f8, $f10, $f8 -/* 00710C 8000650C 3C018000 */ lui $at, 0x8000 -/* 007110 80006510 44C5F800 */ ctc1 $a1, $31 -/* 007114 80006514 00000000 */ nop -/* 007118 80006518 46004224 */ cvt.w.s $f8, $f8 -/* 00711C 8000651C 4445F800 */ cfc1 $a1, $31 -/* 007120 80006520 00000000 */ nop -/* 007124 80006524 30A50078 */ andi $a1, $a1, 0x78 -/* 007128 80006528 14A00004 */ bnez $a1, .L8000653C -/* 00712C 8000652C 00000000 */ nop -/* 007130 80006530 44054000 */ mfc1 $a1, $f8 -/* 007134 80006534 10000007 */ b .L80006554 -/* 007138 80006538 00A12825 */ or $a1, $a1, $at -.L8000653C: -/* 00713C 8000653C 10000005 */ b .L80006554 -/* 007140 80006540 2405FFFF */ li $a1, -1 -.L80006544: -/* 007144 80006544 44054000 */ mfc1 $a1, $f8 -/* 007148 80006548 00000000 */ nop -/* 00714C 8000654C 04A0FFFB */ bltz $a1, .L8000653C -/* 007150 80006550 00000000 */ nop -.L80006554: -/* 007154 80006554 94790018 */ lhu $t9, 0x18($v1) -/* 007158 80006558 30A4FFFF */ andi $a0, $a1, 0xffff -/* 00715C 8000655C 44CFF800 */ ctc1 $t7, $31 -/* 007160 80006560 0099082A */ slt $at, $a0, $t9 -/* 007164 80006564 1420000C */ bnez $at, .L80006598 -/* 007168 80006568 00001025 */ move $v0, $zero -.L8000656C: -/* 00716C 8000656C 24420001 */ addiu $v0, $v0, 1 -/* 007170 80006570 304A00FF */ andi $t2, $v0, 0xff -/* 007174 80006574 000A5840 */ sll $t3, $t2, 1 -/* 007178 80006578 006B6021 */ addu $t4, $v1, $t3 -/* 00717C 8000657C 958D0018 */ lhu $t5, 0x18($t4) -/* 007180 80006580 01401025 */ move $v0, $t2 -/* 007184 80006584 008D082A */ slt $at, $a0, $t5 -/* 007188 80006588 14200003 */ bnez $at, .L80006598 -/* 00718C 8000658C 29410004 */ slti $at, $t2, 4 -/* 007190 80006590 1420FFF6 */ bnez $at, .L8000656C -/* 007194 80006594 00000000 */ nop -.L80006598: -/* 007198 80006598 24010004 */ li $at, 4 -/* 00719C 8000659C 14410005 */ bne $v0, $at, .L800065B4 -/* 0071A0 800065A0 00402825 */ move $a1, $v0 -/* 0071A4 800065A4 00627021 */ addu $t6, $v1, $v0 -/* 0071A8 800065A8 91C8002C */ lbu $t0, 0x2c($t6) -/* 0071AC 800065AC 10000045 */ b .L800066C4 -/* 0071B0 800065B0 44883000 */ mtc1 $t0, $f6 -.L800065B4: -/* 0071B4 800065B4 10A00004 */ beqz $a1, .L800065C8 -/* 0071B8 800065B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0071BC 800065BC 2442FFFF */ addiu $v0, $v0, -1 -/* 0071C0 800065C0 304500FF */ andi $a1, $v0, 0xff -/* 0071C4 800065C4 00A01025 */ move $v0, $a1 -.L800065C8: -/* 0071C8 800065C8 0002C040 */ sll $t8, $v0, 1 -/* 0071CC 800065CC 0078C821 */ addu $t9, $v1, $t8 -/* 0071D0 800065D0 00055840 */ sll $t3, $a1, 1 -/* 0071D4 800065D4 97260018 */ lhu $a2, 0x18($t9) -/* 0071D8 800065D8 006B6021 */ addu $t4, $v1, $t3 -/* 0071DC 800065DC 958D001A */ lhu $t5, 0x1a($t4) -/* 0071E0 800065E0 00865023 */ subu $t2, $a0, $a2 -/* 0071E4 800065E4 01A67023 */ subu $t6, $t5, $a2 -/* 0071E8 800065E8 448E5000 */ mtc1 $t6, $f10 -/* 0071EC 800065EC 448A2000 */ mtc1 $t2, $f4 -/* 0071F0 800065F0 46805220 */ cvt.s.w $f8, $f10 -/* 0071F4 800065F4 0065C021 */ addu $t8, $v1, $a1 -/* 0071F8 800065F8 00627821 */ addu $t7, $v1, $v0 -/* 0071FC 800065FC 468021A0 */ cvt.s.w $f6, $f4 -/* 007200 80006600 91E7002C */ lbu $a3, 0x2c($t7) -/* 007204 80006604 9319002D */ lbu $t9, 0x2d($t8) -/* 007208 80006608 46083003 */ div.s $f0, $f6, $f8 -/* 00720C 8000660C 03275023 */ subu $t2, $t9, $a3 -/* 007210 80006610 448A2000 */ mtc1 $t2, $f4 -/* 007214 80006614 44874000 */ mtc1 $a3, $f8 -/* 007218 80006618 468022A0 */ cvt.s.w $f10, $f4 -/* 00721C 8000661C 46005182 */ mul.s $f6, $f10, $f0 -/* 007220 80006620 04E10004 */ bgez $a3, .L80006634 -/* 007224 80006624 46804120 */ cvt.s.w $f4, $f8 -/* 007228 80006628 44815000 */ mtc1 $at, $f10 -/* 00722C 8000662C 00000000 */ nop -/* 007230 80006630 460A2100 */ add.s $f4, $f4, $f10 -.L80006634: -/* 007234 80006634 46043200 */ add.s $f8, $f6, $f4 -/* 007238 80006638 24080001 */ li $t0, 1 -/* 00723C 8000663C 444BF800 */ cfc1 $t3, $31 -/* 007240 80006640 44C8F800 */ ctc1 $t0, $31 -/* 007244 80006644 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 007248 80006648 460042A4 */ cvt.w.s $f10, $f8 -/* 00724C 8000664C 4448F800 */ cfc1 $t0, $31 -/* 007250 80006650 00000000 */ nop -/* 007254 80006654 31080078 */ andi $t0, $t0, 0x78 -/* 007258 80006658 11000012 */ beqz $t0, .L800066A4 -/* 00725C 8000665C 00000000 */ nop -/* 007260 80006660 44815000 */ mtc1 $at, $f10 -/* 007264 80006664 24080001 */ li $t0, 1 -/* 007268 80006668 460A4281 */ sub.s $f10, $f8, $f10 -/* 00726C 8000666C 3C018000 */ lui $at, 0x8000 -/* 007270 80006670 44C8F800 */ ctc1 $t0, $31 -/* 007274 80006674 00000000 */ nop -/* 007278 80006678 460052A4 */ cvt.w.s $f10, $f10 -/* 00727C 8000667C 4448F800 */ cfc1 $t0, $31 -/* 007280 80006680 00000000 */ nop -/* 007284 80006684 31080078 */ andi $t0, $t0, 0x78 -/* 007288 80006688 15000004 */ bnez $t0, .L8000669C -/* 00728C 8000668C 00000000 */ nop -/* 007290 80006690 44085000 */ mfc1 $t0, $f10 -/* 007294 80006694 10000007 */ b .L800066B4 -/* 007298 80006698 01014025 */ or $t0, $t0, $at -.L8000669C: -/* 00729C 8000669C 10000005 */ b .L800066B4 -/* 0072A0 800066A0 2408FFFF */ li $t0, -1 -.L800066A4: -/* 0072A4 800066A4 44085000 */ mfc1 $t0, $f10 -/* 0072A8 800066A8 00000000 */ nop -/* 0072AC 800066AC 0500FFFB */ bltz $t0, .L8000669C -/* 0072B0 800066B0 00000000 */ nop -.L800066B4: -/* 0072B4 800066B4 44CBF800 */ ctc1 $t3, $31 -/* 0072B8 800066B8 310C00FF */ andi $t4, $t0, 0xff -/* 0072BC 800066BC 01804025 */ move $t0, $t4 -/* 0072C0 800066C0 44883000 */ mtc1 $t0, $f6 -.L800066C4: -/* 0072C4 800066C4 C4600054 */ lwc1 $f0, 0x54($v1) -/* 0072C8 800066C8 05010005 */ bgez $t0, .L800066E0 -/* 0072CC 800066CC 46803120 */ cvt.s.w $f4, $f6 -/* 0072D0 800066D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0072D4 800066D4 44814000 */ mtc1 $at, $f8 -/* 0072D8 800066D8 00000000 */ nop -/* 0072DC 800066DC 46082100 */ add.s $f4, $f4, $f8 -.L800066E0: -/* 0072E0 800066E0 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0072E4 800066E4 44813000 */ mtc1 $at, $f6 -/* 0072E8 800066E8 46002281 */ sub.s $f10, $f4, $f0 -/* 0072EC 800066EC 00000000 */ nop -/* 0072F0 800066F0 46065203 */ div.s $f8, $f10, $f6 -/* 0072F4 800066F4 46080100 */ add.s $f4, $f0, $f8 -/* 0072F8 800066F8 E4640054 */ swc1 $f4, 0x54($v1) -.L800066FC: -/* 0072FC 800066FC 8D230000 */ lw $v1, ($t1) -/* 007300 80006700 8FAD0038 */ lw $t5, 0x38($sp) -/* 007304 80006704 C46E00D4 */ lwc1 $f14, 0xd4($v1) -/* 007308 80006708 31AE8000 */ andi $t6, $t5, 0x8000 -/* 00730C 8000670C 11C0001A */ beqz $t6, .L80006778 -/* 007310 80006710 8FB8003C */ lw $t8, 0x3c($sp) -/* 007314 80006714 8FAF003C */ lw $t7, 0x3c($sp) -/* 007318 80006718 C46A00B0 */ lwc1 $f10, 0xb0($v1) -/* 00731C 8000671C 448F3000 */ mtc1 $t7, $f6 -/* 007320 80006720 00000000 */ nop -/* 007324 80006724 46803220 */ cvt.s.w $f8, $f6 -/* 007328 80006728 C46600A4 */ lwc1 $f6, 0xa4($v1) -/* 00732C 8000672C 46085102 */ mul.s $f4, $f10, $f8 -/* 007330 80006730 46043280 */ add.s $f10, $f6, $f4 -/* 007334 80006734 E46A00A4 */ swc1 $f10, 0xa4($v1) -/* 007338 80006738 8D230000 */ lw $v1, ($t1) -/* 00733C 8000673C 00000000 */ nop -/* 007340 80006740 C46200C8 */ lwc1 $f2, 0xc8($v1) -/* 007344 80006744 C46000A4 */ lwc1 $f0, 0xa4($v1) -/* 007348 80006748 00000000 */ nop -/* 00734C 8000674C 4600103C */ c.lt.s $f2, $f0 -/* 007350 80006750 00000000 */ nop -/* 007354 80006754 45000014 */ bc1f .L800067A8 -/* 007358 80006758 00000000 */ nop -/* 00735C 8000675C E46200A4 */ swc1 $f2, 0xa4($v1) -/* 007360 80006760 8D230000 */ lw $v1, ($t1) -/* 007364 80006764 00000000 */ nop -/* 007368 80006768 C46000A4 */ lwc1 $f0, 0xa4($v1) -/* 00736C 8000676C 1000000F */ b .L800067AC -/* 007370 80006770 44801000 */ mtc1 $zero, $f2 -/* 007374 80006774 8FB8003C */ lw $t8, 0x3c($sp) -.L80006778: -/* 007378 80006778 C46800B4 */ lwc1 $f8, 0xb4($v1) -/* 00737C 8000677C 44983000 */ mtc1 $t8, $f6 -/* 007380 80006780 00000000 */ nop -/* 007384 80006784 46803120 */ cvt.s.w $f4, $f6 -/* 007388 80006788 C46600A4 */ lwc1 $f6, 0xa4($v1) -/* 00738C 8000678C 46044282 */ mul.s $f10, $f8, $f4 -/* 007390 80006790 460A3201 */ sub.s $f8, $f6, $f10 -/* 007394 80006794 E46800A4 */ swc1 $f8, 0xa4($v1) -/* 007398 80006798 8D230000 */ lw $v1, ($t1) -/* 00739C 8000679C 00000000 */ nop -/* 0073A0 800067A0 C46000A4 */ lwc1 $f0, 0xa4($v1) -/* 0073A4 800067A4 00000000 */ nop -.L800067A8: -/* 0073A8 800067A8 44801000 */ mtc1 $zero, $f2 -.L800067AC: -/* 0073AC 800067AC 00000000 */ nop -/* 0073B0 800067B0 4602003C */ c.lt.s $f0, $f2 -/* 0073B4 800067B4 00000000 */ nop -/* 0073B8 800067B8 45000002 */ bc1f .L800067C4 -/* 0073BC 800067BC 00000000 */ nop -/* 0073C0 800067C0 E46200A4 */ swc1 $f2, 0xa4($v1) -.L800067C4: -/* 0073C4 800067C4 E7AE0018 */ swc1 $f14, 0x18($sp) -/* 0073C8 800067C8 0C028064 */ jal func_800A0190 -/* 0073CC 800067CC E7B2002C */ swc1 $f18, 0x2c($sp) -/* 0073D0 800067D0 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 -/* 0073D4 800067D4 C7AE0018 */ lwc1 $f14, 0x18($sp) -/* 0073D8 800067D8 C7B2002C */ lwc1 $f18, 0x2c($sp) -/* 0073DC 800067DC 14400005 */ bnez $v0, .L800067F4 -/* 0073E0 800067E0 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 -/* 0073E4 800067E4 44802000 */ mtc1 $zero, $f4 -/* 0073E8 800067E8 8D390000 */ lw $t9, ($t1) -/* 0073EC 800067EC 00000000 */ nop -/* 0073F0 800067F0 E72400A4 */ swc1 $f4, 0xa4($t9) -.L800067F4: -/* 0073F4 800067F4 8D2A0000 */ lw $t2, ($t1) -/* 0073F8 800067F8 8FAB0030 */ lw $t3, 0x30($sp) -/* 0073FC 800067FC C54600A4 */ lwc1 $f6, 0xa4($t2) -/* 007400 80006800 85640002 */ lh $a0, 2($t3) -/* 007404 80006804 46067380 */ add.s $f14, $f14, $f6 -/* 007408 80006808 E7B2002C */ swc1 $f18, 0x2c($sp) -/* 00740C 8000680C 0C01C1F1 */ jal sins_f -/* 007410 80006810 E7AE0018 */ swc1 $f14, 0x18($sp) -/* 007414 80006814 8FAC0030 */ lw $t4, 0x30($sp) -/* 007418 80006818 E7A00028 */ swc1 $f0, 0x28($sp) -/* 00741C 8000681C 85840004 */ lh $a0, 4($t4) -/* 007420 80006820 0C01C1F1 */ jal sins_f -/* 007424 80006824 00000000 */ nop -/* 007428 80006828 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 -/* 00742C 8000682C 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 -/* 007430 80006830 8D230000 */ lw $v1, ($t1) -/* 007434 80006834 C7A80028 */ lwc1 $f8, 0x28($sp) -/* 007438 80006838 C46A00C4 */ lwc1 $f10, 0xc4($v1) -/* 00743C 8000683C C46400C0 */ lwc1 $f4, 0xc0($v1) -/* 007440 80006840 46085302 */ mul.s $f12, $f10, $f8 -/* 007444 80006844 44803000 */ mtc1 $zero, $f6 -/* 007448 80006848 C7B2002C */ lwc1 $f18, 0x2c($sp) -/* 00744C 8000684C 3C014024 */ li $at, 0x40240000 # 2.562500 -/* 007450 80006850 46002082 */ mul.s $f2, $f4, $f0 -/* 007454 80006854 C7AE0018 */ lwc1 $f14, 0x18($sp) -/* 007458 80006858 44818800 */ mtc1 $at, $f17 -/* 00745C 8000685C 44808000 */ mtc1 $zero, $f16 -/* 007460 80006860 4606103C */ c.lt.s $f2, $f6 -/* 007464 80006864 3C0D8012 */ lui $t5, %hi(gSoundRacerObj) # $t5, 0x8012 -/* 007468 80006868 45000002 */ bc1f .L80006874 -/* 00746C 8000686C 46009021 */ cvt.d.s $f0, $f18 -/* 007470 80006870 46001087 */ neg.s $f2, $f2 -.L80006874: -/* 007474 80006874 4620803C */ c.lt.d $f16, $f0 -/* 007478 80006878 46026280 */ add.s $f10, $f12, $f2 -/* 00747C 8000687C 45000004 */ bc1f .L80006890 -/* 007480 80006880 460A7380 */ add.s $f14, $f14, $f10 -/* 007484 80006884 46300201 */ sub.d $f8, $f0, $f16 -/* 007488 80006888 10000003 */ b .L80006898 -/* 00748C 8000688C 462044A0 */ cvt.s.d $f18, $f8 -.L80006890: -/* 007490 80006890 44809000 */ mtc1 $zero, $f18 -/* 007494 80006894 00000000 */ nop -.L80006898: -/* 007498 80006898 C46400CC */ lwc1 $f4, 0xcc($v1) -/* 00749C 8000689C 44805800 */ mtc1 $zero, $f11 -/* 0074A0 800068A0 44805000 */ mtc1 $zero, $f10 -/* 0074A4 800068A4 46049182 */ mul.s $f6, $f18, $f4 -/* 0074A8 800068A8 46009221 */ cvt.d.s $f8, $f18 -/* 0074AC 800068AC 46285032 */ c.eq.d $f10, $f8 -# Used to access D_800E4C88 and D_800E4C88 + 4. -/* 0074B0 800068B0 3C01800E */ lui $at, %hi(D_800E4C88) # $at, 0x800e -/* 0074B4 800068B4 45010032 */ bc1t .L80006980 -/* 0074B8 800068B8 46067380 */ add.s $f14, $f14, $f6 -/* 0074BC 800068BC 8DAD9C3C */ lw $t5, %lo(gSoundRacerObj)($t5) -/* 0074C0 800068C0 00000000 */ nop -/* 0074C4 800068C4 81A20185 */ lb $v0, 0x185($t5) -/* 0074C8 800068C8 00000000 */ nop -/* 0074CC 800068CC 1040002C */ beqz $v0, .L80006980 -/* 0074D0 800068D0 00000000 */ nop -/* 0074D4 800068D4 2841000B */ slti $at, $v0, 0xb -/* 0074D8 800068D8 10200003 */ beqz $at, .L800068E8 -/* 0074DC 800068DC 2404000A */ li $a0, 10 -/* 0074E0 800068E0 10000001 */ b .L800068E8 -/* 0074E4 800068E4 00402025 */ move $a0, $v0 -.L800068E8: -/* 0074E8 800068E8 44843000 */ mtc1 $a0, $f6 -/* 0074EC 800068EC 3C01800E */ lui $at, %hi(D_800E4C88 + 4) # $at, 0x800e -/* 0074F0 800068F0 468032A1 */ cvt.d.w $f10, $f6 -/* 0074F4 800068F4 C4254C80 */ lwc1 $f5, %lo(D_800E4C80)($at) -/* 0074F8 800068F8 C4244C84 */ lwc1 $f4, %lo(D_800E4C80 + 4)($at) -/* 0074FC 800068FC C46C003C */ lwc1 $f12, 0x3c($v1) -/* 007500 80006900 462A2002 */ mul.d $f0, $f4, $f10 -/* 007504 80006904 460060A1 */ cvt.d.s $f2, $f12 -/* 007508 80006908 00047180 */ sll $t6, $a0, 6 -/* 00750C 8000690C 4620103C */ c.lt.d $f2, $f0 -/* 007510 80006910 00000000 */ nop -/* 007514 80006914 4500000E */ bc1f .L80006950 -/* 007518 80006918 00000000 */ nop -/* 00751C 8000691C 448E4000 */ mtc1 $t6, $f8 -/* 007520 80006920 00000000 */ nop -/* 007524 80006924 468041A1 */ cvt.d.w $f6, $f8 -/* 007528 80006928 00000000 */ nop -/* 00752C 8000692C 46260103 */ div.d $f4, $f0, $f6 -/* 007530 80006930 46241280 */ add.d $f10, $f2, $f4 -/* 007534 80006934 46205220 */ cvt.s.d $f8, $f10 -/* 007538 80006938 E468003C */ swc1 $f8, 0x3c($v1) -/* 00753C 8000693C 8D230000 */ lw $v1, ($t1) -/* 007540 80006940 00000000 */ nop -/* 007544 80006944 C46C003C */ lwc1 $f12, 0x3c($v1) -/* 007548 80006948 10000019 */ b .L800069B0 -/* 00754C 8000694C 460C7380 */ add.s $f14, $f14, $f12 -.L80006950: -/* 007550 80006950 4622003C */ c.lt.d $f0, $f2 -/* 007554 80006954 00000000 */ nop -/* 007558 80006958 45000007 */ bc1f .L80006978 -/* 00755C 8000695C 00000000 */ nop -/* 007560 80006960 462001A0 */ cvt.s.d $f6, $f0 -/* 007564 80006964 E466003C */ swc1 $f6, 0x3c($v1) -/* 007568 80006968 8D230000 */ lw $v1, ($t1) -/* 00756C 8000696C 00000000 */ nop -/* 007570 80006970 C46C003C */ lwc1 $f12, 0x3c($v1) -/* 007574 80006974 00000000 */ nop -.L80006978: -/* 007578 80006978 1000000D */ b .L800069B0 -/* 00757C 8000697C 460C7380 */ add.s $f14, $f14, $f12 -.L80006980: -/* 007580 80006980 C464003C */ lwc1 $f4, 0x3c($v1) -/* 007584 80006984 C4294C88 */ lwc1 $f9, %lo(D_800E4C88)($at) -/* 007588 80006988 C4284C8C */ lwc1 $f8, %lo(D_800E4C88 + 4)($at) -/* 00758C 8000698C 460022A1 */ cvt.d.s $f10, $f4 -/* 007590 80006990 46285182 */ mul.d $f6, $f10, $f8 -/* 007594 80006994 46203120 */ cvt.s.d $f4, $f6 -/* 007598 80006998 E464003C */ swc1 $f4, 0x3c($v1) -/* 00759C 8000699C 8D230000 */ lw $v1, ($t1) -/* 0075A0 800069A0 00000000 */ nop -/* 0075A4 800069A4 C46A003C */ lwc1 $f10, 0x3c($v1) -/* 0075A8 800069A8 00000000 */ nop -/* 0075AC 800069AC 460A7380 */ add.s $f14, $f14, $f10 -.L800069B0: -/* 0075B0 800069B0 C460005C */ lwc1 $f0, 0x5c($v1) -/* 0075B4 800069B4 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 0075B8 800069B8 44813000 */ mtc1 $at, $f6 -/* 0075BC 800069BC 46007201 */ sub.s $f8, $f14, $f0 -/* 0075C0 800069C0 3C01800E */ lui $at, %hi(D_800E4C90) # $at, 0x800e -/* 0075C4 800069C4 46064103 */ div.s $f4, $f8, $f6 -/* 0075C8 800069C8 46040280 */ add.s $f10, $f0, $f4 -/* 0075CC 800069CC E46A005C */ swc1 $f10, 0x5c($v1) -/* 0075D0 800069D0 8D230000 */ lw $v1, ($t1) -/* 0075D4 800069D4 C4284C94 */ lwc1 $f8, %lo(D_800E4C90 + 4)($at) -/* 0075D8 800069D8 C466005C */ lwc1 $f6, 0x5c($v1) -/* 0075DC 800069DC C4294C90 */ lwc1 $f9, %lo(D_800E4C90)($at) -/* 0075E0 800069E0 46003121 */ cvt.d.s $f4, $f6 -/* 0075E4 800069E4 4624403C */ c.lt.d $f8, $f4 -/* 0075E8 800069E8 3C01800E */ lui $at, %hi(D_800E4C98) # $at, 0x800e -/* 0075EC 800069EC 45000006 */ bc1f .L80006A08 -/* 0075F0 800069F0 00000000 */ nop -/* 0075F4 800069F4 C42A4C98 */ lwc1 $f10, %lo(D_800E4C98)($at) -/* 0075F8 800069F8 00000000 */ nop -/* 0075FC 800069FC E46A005C */ swc1 $f10, 0x5c($v1) -/* 007600 80006A00 8D230000 */ lw $v1, ($t1) -/* 007604 80006A04 00000000 */ nop -.L80006A08: -/* 007608 80006A08 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 00760C 80006A0C 44813000 */ mtc1 $at, $f6 -/* 007610 80006A10 44804000 */ mtc1 $zero, $f8 -/* 007614 80006A14 E4660060 */ swc1 $f6, 0x60($v1) -/* 007618 80006A18 8D2F0000 */ lw $t7, ($t1) -/* 00761C 80006A1C 3C028012 */ lui $v0, %hi(gSoundRacerObj) # $v0, 0x8012 -/* 007620 80006A20 E5E80058 */ swc1 $f8, 0x58($t7) -/* 007624 80006A24 8C429C3C */ lw $v0, %lo(gSoundRacerObj)($v0) -/* 007628 80006A28 2401FFFF */ li $at, -1 -/* 00762C 80006A2C 84580000 */ lh $t8, ($v0) -/* 007630 80006A30 00000000 */ nop -/* 007634 80006A34 13010011 */ beq $t8, $at, .L80006A7C -/* 007638 80006A38 00000000 */ nop -/* 00763C 80006A3C 805901DB */ lb $t9, 0x1db($v0) -/* 007640 80006A40 00000000 */ nop -/* 007644 80006A44 1320000D */ beqz $t9, .L80006A7C -/* 007648 80006A48 00000000 */ nop -/* 00764C 80006A4C 8D230000 */ lw $v1, ($t1) -/* 007650 80006A50 240B0001 */ li $t3, 1 -/* 007654 80006A54 906A00D8 */ lbu $t2, 0xd8($v1) -/* 007658 80006A58 2404013D */ li $a0, 317 -/* 00765C 80006A5C 15400007 */ bnez $t2, .L80006A7C -/* 007660 80006A60 00000000 */ nop -/* 007664 80006A64 A06B00D8 */ sb $t3, 0xd8($v1) -/* 007668 80006A68 8D250000 */ lw $a1, ($t1) -/* 00766C 80006A6C 0C000741 */ jal play_sound_global -/* 007670 80006A70 24A500DC */ addiu $a1, $a1, 0xdc -/* 007674 80006A74 10000011 */ b .L80006ABC -/* 007678 80006A78 8FBF0014 */ lw $ra, 0x14($sp) -.L80006A7C: -/* 00767C 80006A7C 804C01DB */ lb $t4, 0x1db($v0) -/* 007680 80006A80 00000000 */ nop -/* 007684 80006A84 1580000D */ bnez $t4, .L80006ABC -/* 007688 80006A88 8FBF0014 */ lw $ra, 0x14($sp) -/* 00768C 80006A8C 8D2D0000 */ lw $t5, ($t1) -/* 007690 80006A90 00000000 */ nop -/* 007694 80006A94 A1A000D8 */ sb $zero, 0xd8($t5) -/* 007698 80006A98 8D2E0000 */ lw $t6, ($t1) -/* 00769C 80006A9C 00000000 */ nop -/* 0076A0 80006AA0 8DC400DC */ lw $a0, 0xdc($t6) -/* 0076A4 80006AA4 00000000 */ nop -/* 0076A8 80006AA8 10800004 */ beqz $a0, .L80006ABC -/* 0076AC 80006AAC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0076B0 80006AB0 0C001223 */ jal func_8000488C -/* 0076B4 80006AB4 00000000 */ nop -/* 0076B8 80006AB8 8FBF0014 */ lw $ra, 0x14($sp) -.L80006ABC: -/* 0076BC 80006ABC 27BD0030 */ addiu $sp, $sp, 0x30 -/* 0076C0 80006AC0 03E00008 */ jr $ra -/* 0076C4 80006AC4 00000000 */ nop - +.late_rodata +glabel D_800E4C78 +.float 10000.0 +.word 0 # Padding +glabel D_800E4C80 +.double 0.05 +glabel D_800E4C88 +.double 0.95 +glabel D_800E4C90 +.double 6.5534 +glabel D_800E4C98 +.float 6.5534 + +.text +glabel func_800063EC +/* 006FEC 800063EC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 006FF0 800063F0 AFBF0014 */ sw $ra, 0x14($sp) +/* 006FF4 800063F4 AFA40030 */ sw $a0, 0x30($sp) +/* 006FF8 800063F8 AFA50034 */ sw $a1, 0x34($sp) +/* 006FFC 800063FC AFA60038 */ sw $a2, 0x38($sp) +/* 007000 80006400 0C0044E7 */ jal get_race_countdown +/* 007004 80006404 AFA7003C */ sw $a3, 0x3c($sp) +/* 007008 80006408 1440000F */ bnez $v0, .L80006448 +/* 00700C 8000640C 00000000 */ nop +/* 007010 80006410 8FA20030 */ lw $v0, 0x30($sp) +/* 007014 80006414 00000000 */ nop +/* 007018 80006418 C440001C */ lwc1 $f0, 0x1c($v0) +/* 00701C 8000641C C4420024 */ lwc1 $f2, 0x24($v0) +/* 007020 80006420 46000102 */ mul.s $f4, $f0, $f0 +/* 007024 80006424 C44E0020 */ lwc1 $f14, 0x20($v0) +/* 007028 80006428 46021182 */ mul.s $f6, $f2, $f2 +/* 00702C 8000642C 00000000 */ nop +/* 007030 80006430 460E7282 */ mul.s $f10, $f14, $f14 +/* 007034 80006434 46062200 */ add.s $f8, $f4, $f6 +/* 007038 80006438 0C0326B4 */ jal sqrtf +/* 00703C 8000643C 460A4300 */ add.s $f12, $f8, $f10 +/* 007040 80006440 10000003 */ b .L80006450 +/* 007044 80006444 46000486 */ mov.s $f18, $f0 +.L80006448: +/* 007048 80006448 44809000 */ mtc1 $zero, $f18 +/* 00704C 8000644C 00000000 */ nop +.L80006450: +/* 007050 80006450 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 007054 80006454 44812000 */ mtc1 $at, $f4 +/* 007058 80006458 00000000 */ nop +/* 00705C 8000645C 4604903C */ c.lt.s $f18, $f4 +/* 007060 80006460 00000000 */ nop +/* 007064 80006464 45000014 */ bc1f .L800064B8 +/* 007068 80006468 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 +/* 00706C 8000646C 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 +/* 007070 80006470 8D230000 */ lw $v1, ($t1) +/* 007074 80006474 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 007078 80006478 906E0037 */ lbu $t6, 0x37($v1) +/* 00707C 8000647C C4600054 */ lwc1 $f0, 0x54($v1) +/* 007080 80006480 448E3000 */ mtc1 $t6, $f6 +/* 007084 80006484 05C10004 */ bgez $t6, .L80006498 +/* 007088 80006488 46803220 */ cvt.s.w $f8, $f6 +/* 00708C 8000648C 44815000 */ mtc1 $at, $f10 +/* 007090 80006490 00000000 */ nop +/* 007094 80006494 460A4200 */ add.s $f8, $f8, $f10 +.L80006498: +/* 007098 80006498 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 00709C 8000649C 44813000 */ mtc1 $at, $f6 +/* 0070A0 800064A0 46004101 */ sub.s $f4, $f8, $f0 +/* 0070A4 800064A4 00000000 */ nop +/* 0070A8 800064A8 46062283 */ div.s $f10, $f4, $f6 +/* 0070AC 800064AC 460A0200 */ add.s $f8, $f0, $f10 +/* 0070B0 800064B0 10000092 */ b .L800066FC +/* 0070B4 800064B4 E4680054 */ swc1 $f8, 0x54($v1) +.L800064B8: +/* 0070B8 800064B8 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 +/* 0070BC 800064BC 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 +/* 0070C0 800064C0 8D230000 */ lw $v1, ($t1) +/* 0070C4 800064C4 3C01800E */ lui $at, %hi(D_800E4C78) # $at, 0x800e +/* 0070C8 800064C8 C4264C78 */ lwc1 $f6, %lo(D_800E4C78)($at) +/* 0070CC 800064CC C464005C */ lwc1 $f4, 0x5c($v1) +/* 0070D0 800064D0 24050001 */ li $a1, 1 +/* 0070D4 800064D4 46062282 */ mul.s $f10, $f4, $f6 +/* 0070D8 800064D8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0070DC 800064DC 444FF800 */ cfc1 $t7, $31 +/* 0070E0 800064E0 44C5F800 */ ctc1 $a1, $31 +/* 0070E4 800064E4 00000000 */ nop +/* 0070E8 800064E8 46005224 */ cvt.w.s $f8, $f10 +/* 0070EC 800064EC 4445F800 */ cfc1 $a1, $31 +/* 0070F0 800064F0 00000000 */ nop +/* 0070F4 800064F4 30A50078 */ andi $a1, $a1, 0x78 +/* 0070F8 800064F8 10A00012 */ beqz $a1, .L80006544 +/* 0070FC 800064FC 00000000 */ nop +/* 007100 80006500 44814000 */ mtc1 $at, $f8 +/* 007104 80006504 24050001 */ li $a1, 1 +/* 007108 80006508 46085201 */ sub.s $f8, $f10, $f8 +/* 00710C 8000650C 3C018000 */ lui $at, 0x8000 +/* 007110 80006510 44C5F800 */ ctc1 $a1, $31 +/* 007114 80006514 00000000 */ nop +/* 007118 80006518 46004224 */ cvt.w.s $f8, $f8 +/* 00711C 8000651C 4445F800 */ cfc1 $a1, $31 +/* 007120 80006520 00000000 */ nop +/* 007124 80006524 30A50078 */ andi $a1, $a1, 0x78 +/* 007128 80006528 14A00004 */ bnez $a1, .L8000653C +/* 00712C 8000652C 00000000 */ nop +/* 007130 80006530 44054000 */ mfc1 $a1, $f8 +/* 007134 80006534 10000007 */ b .L80006554 +/* 007138 80006538 00A12825 */ or $a1, $a1, $at +.L8000653C: +/* 00713C 8000653C 10000005 */ b .L80006554 +/* 007140 80006540 2405FFFF */ li $a1, -1 +.L80006544: +/* 007144 80006544 44054000 */ mfc1 $a1, $f8 +/* 007148 80006548 00000000 */ nop +/* 00714C 8000654C 04A0FFFB */ bltz $a1, .L8000653C +/* 007150 80006550 00000000 */ nop +.L80006554: +/* 007154 80006554 94790018 */ lhu $t9, 0x18($v1) +/* 007158 80006558 30A4FFFF */ andi $a0, $a1, 0xffff +/* 00715C 8000655C 44CFF800 */ ctc1 $t7, $31 +/* 007160 80006560 0099082A */ slt $at, $a0, $t9 +/* 007164 80006564 1420000C */ bnez $at, .L80006598 +/* 007168 80006568 00001025 */ move $v0, $zero +.L8000656C: +/* 00716C 8000656C 24420001 */ addiu $v0, $v0, 1 +/* 007170 80006570 304A00FF */ andi $t2, $v0, 0xff +/* 007174 80006574 000A5840 */ sll $t3, $t2, 1 +/* 007178 80006578 006B6021 */ addu $t4, $v1, $t3 +/* 00717C 8000657C 958D0018 */ lhu $t5, 0x18($t4) +/* 007180 80006580 01401025 */ move $v0, $t2 +/* 007184 80006584 008D082A */ slt $at, $a0, $t5 +/* 007188 80006588 14200003 */ bnez $at, .L80006598 +/* 00718C 8000658C 29410004 */ slti $at, $t2, 4 +/* 007190 80006590 1420FFF6 */ bnez $at, .L8000656C +/* 007194 80006594 00000000 */ nop +.L80006598: +/* 007198 80006598 24010004 */ li $at, 4 +/* 00719C 8000659C 14410005 */ bne $v0, $at, .L800065B4 +/* 0071A0 800065A0 00402825 */ move $a1, $v0 +/* 0071A4 800065A4 00627021 */ addu $t6, $v1, $v0 +/* 0071A8 800065A8 91C8002C */ lbu $t0, 0x2c($t6) +/* 0071AC 800065AC 10000045 */ b .L800066C4 +/* 0071B0 800065B0 44883000 */ mtc1 $t0, $f6 +.L800065B4: +/* 0071B4 800065B4 10A00004 */ beqz $a1, .L800065C8 +/* 0071B8 800065B8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0071BC 800065BC 2442FFFF */ addiu $v0, $v0, -1 +/* 0071C0 800065C0 304500FF */ andi $a1, $v0, 0xff +/* 0071C4 800065C4 00A01025 */ move $v0, $a1 +.L800065C8: +/* 0071C8 800065C8 0002C040 */ sll $t8, $v0, 1 +/* 0071CC 800065CC 0078C821 */ addu $t9, $v1, $t8 +/* 0071D0 800065D0 00055840 */ sll $t3, $a1, 1 +/* 0071D4 800065D4 97260018 */ lhu $a2, 0x18($t9) +/* 0071D8 800065D8 006B6021 */ addu $t4, $v1, $t3 +/* 0071DC 800065DC 958D001A */ lhu $t5, 0x1a($t4) +/* 0071E0 800065E0 00865023 */ subu $t2, $a0, $a2 +/* 0071E4 800065E4 01A67023 */ subu $t6, $t5, $a2 +/* 0071E8 800065E8 448E5000 */ mtc1 $t6, $f10 +/* 0071EC 800065EC 448A2000 */ mtc1 $t2, $f4 +/* 0071F0 800065F0 46805220 */ cvt.s.w $f8, $f10 +/* 0071F4 800065F4 0065C021 */ addu $t8, $v1, $a1 +/* 0071F8 800065F8 00627821 */ addu $t7, $v1, $v0 +/* 0071FC 800065FC 468021A0 */ cvt.s.w $f6, $f4 +/* 007200 80006600 91E7002C */ lbu $a3, 0x2c($t7) +/* 007204 80006604 9319002D */ lbu $t9, 0x2d($t8) +/* 007208 80006608 46083003 */ div.s $f0, $f6, $f8 +/* 00720C 8000660C 03275023 */ subu $t2, $t9, $a3 +/* 007210 80006610 448A2000 */ mtc1 $t2, $f4 +/* 007214 80006614 44874000 */ mtc1 $a3, $f8 +/* 007218 80006618 468022A0 */ cvt.s.w $f10, $f4 +/* 00721C 8000661C 46005182 */ mul.s $f6, $f10, $f0 +/* 007220 80006620 04E10004 */ bgez $a3, .L80006634 +/* 007224 80006624 46804120 */ cvt.s.w $f4, $f8 +/* 007228 80006628 44815000 */ mtc1 $at, $f10 +/* 00722C 8000662C 00000000 */ nop +/* 007230 80006630 460A2100 */ add.s $f4, $f4, $f10 +.L80006634: +/* 007234 80006634 46043200 */ add.s $f8, $f6, $f4 +/* 007238 80006638 24080001 */ li $t0, 1 +/* 00723C 8000663C 444BF800 */ cfc1 $t3, $31 +/* 007240 80006640 44C8F800 */ ctc1 $t0, $31 +/* 007244 80006644 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 007248 80006648 460042A4 */ cvt.w.s $f10, $f8 +/* 00724C 8000664C 4448F800 */ cfc1 $t0, $31 +/* 007250 80006650 00000000 */ nop +/* 007254 80006654 31080078 */ andi $t0, $t0, 0x78 +/* 007258 80006658 11000012 */ beqz $t0, .L800066A4 +/* 00725C 8000665C 00000000 */ nop +/* 007260 80006660 44815000 */ mtc1 $at, $f10 +/* 007264 80006664 24080001 */ li $t0, 1 +/* 007268 80006668 460A4281 */ sub.s $f10, $f8, $f10 +/* 00726C 8000666C 3C018000 */ lui $at, 0x8000 +/* 007270 80006670 44C8F800 */ ctc1 $t0, $31 +/* 007274 80006674 00000000 */ nop +/* 007278 80006678 460052A4 */ cvt.w.s $f10, $f10 +/* 00727C 8000667C 4448F800 */ cfc1 $t0, $31 +/* 007280 80006680 00000000 */ nop +/* 007284 80006684 31080078 */ andi $t0, $t0, 0x78 +/* 007288 80006688 15000004 */ bnez $t0, .L8000669C +/* 00728C 8000668C 00000000 */ nop +/* 007290 80006690 44085000 */ mfc1 $t0, $f10 +/* 007294 80006694 10000007 */ b .L800066B4 +/* 007298 80006698 01014025 */ or $t0, $t0, $at +.L8000669C: +/* 00729C 8000669C 10000005 */ b .L800066B4 +/* 0072A0 800066A0 2408FFFF */ li $t0, -1 +.L800066A4: +/* 0072A4 800066A4 44085000 */ mfc1 $t0, $f10 +/* 0072A8 800066A8 00000000 */ nop +/* 0072AC 800066AC 0500FFFB */ bltz $t0, .L8000669C +/* 0072B0 800066B0 00000000 */ nop +.L800066B4: +/* 0072B4 800066B4 44CBF800 */ ctc1 $t3, $31 +/* 0072B8 800066B8 310C00FF */ andi $t4, $t0, 0xff +/* 0072BC 800066BC 01804025 */ move $t0, $t4 +/* 0072C0 800066C0 44883000 */ mtc1 $t0, $f6 +.L800066C4: +/* 0072C4 800066C4 C4600054 */ lwc1 $f0, 0x54($v1) +/* 0072C8 800066C8 05010005 */ bgez $t0, .L800066E0 +/* 0072CC 800066CC 46803120 */ cvt.s.w $f4, $f6 +/* 0072D0 800066D0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0072D4 800066D4 44814000 */ mtc1 $at, $f8 +/* 0072D8 800066D8 00000000 */ nop +/* 0072DC 800066DC 46082100 */ add.s $f4, $f4, $f8 +.L800066E0: +/* 0072E0 800066E0 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0072E4 800066E4 44813000 */ mtc1 $at, $f6 +/* 0072E8 800066E8 46002281 */ sub.s $f10, $f4, $f0 +/* 0072EC 800066EC 00000000 */ nop +/* 0072F0 800066F0 46065203 */ div.s $f8, $f10, $f6 +/* 0072F4 800066F4 46080100 */ add.s $f4, $f0, $f8 +/* 0072F8 800066F8 E4640054 */ swc1 $f4, 0x54($v1) +.L800066FC: +/* 0072FC 800066FC 8D230000 */ lw $v1, ($t1) +/* 007300 80006700 8FAD0038 */ lw $t5, 0x38($sp) +/* 007304 80006704 C46E00D4 */ lwc1 $f14, 0xd4($v1) +/* 007308 80006708 31AE8000 */ andi $t6, $t5, 0x8000 +/* 00730C 8000670C 11C0001A */ beqz $t6, .L80006778 +/* 007310 80006710 8FB8003C */ lw $t8, 0x3c($sp) +/* 007314 80006714 8FAF003C */ lw $t7, 0x3c($sp) +/* 007318 80006718 C46A00B0 */ lwc1 $f10, 0xb0($v1) +/* 00731C 8000671C 448F3000 */ mtc1 $t7, $f6 +/* 007320 80006720 00000000 */ nop +/* 007324 80006724 46803220 */ cvt.s.w $f8, $f6 +/* 007328 80006728 C46600A4 */ lwc1 $f6, 0xa4($v1) +/* 00732C 8000672C 46085102 */ mul.s $f4, $f10, $f8 +/* 007330 80006730 46043280 */ add.s $f10, $f6, $f4 +/* 007334 80006734 E46A00A4 */ swc1 $f10, 0xa4($v1) +/* 007338 80006738 8D230000 */ lw $v1, ($t1) +/* 00733C 8000673C 00000000 */ nop +/* 007340 80006740 C46200C8 */ lwc1 $f2, 0xc8($v1) +/* 007344 80006744 C46000A4 */ lwc1 $f0, 0xa4($v1) +/* 007348 80006748 00000000 */ nop +/* 00734C 8000674C 4600103C */ c.lt.s $f2, $f0 +/* 007350 80006750 00000000 */ nop +/* 007354 80006754 45000014 */ bc1f .L800067A8 +/* 007358 80006758 00000000 */ nop +/* 00735C 8000675C E46200A4 */ swc1 $f2, 0xa4($v1) +/* 007360 80006760 8D230000 */ lw $v1, ($t1) +/* 007364 80006764 00000000 */ nop +/* 007368 80006768 C46000A4 */ lwc1 $f0, 0xa4($v1) +/* 00736C 8000676C 1000000F */ b .L800067AC +/* 007370 80006770 44801000 */ mtc1 $zero, $f2 +/* 007374 80006774 8FB8003C */ lw $t8, 0x3c($sp) +.L80006778: +/* 007378 80006778 C46800B4 */ lwc1 $f8, 0xb4($v1) +/* 00737C 8000677C 44983000 */ mtc1 $t8, $f6 +/* 007380 80006780 00000000 */ nop +/* 007384 80006784 46803120 */ cvt.s.w $f4, $f6 +/* 007388 80006788 C46600A4 */ lwc1 $f6, 0xa4($v1) +/* 00738C 8000678C 46044282 */ mul.s $f10, $f8, $f4 +/* 007390 80006790 460A3201 */ sub.s $f8, $f6, $f10 +/* 007394 80006794 E46800A4 */ swc1 $f8, 0xa4($v1) +/* 007398 80006798 8D230000 */ lw $v1, ($t1) +/* 00739C 8000679C 00000000 */ nop +/* 0073A0 800067A0 C46000A4 */ lwc1 $f0, 0xa4($v1) +/* 0073A4 800067A4 00000000 */ nop +.L800067A8: +/* 0073A8 800067A8 44801000 */ mtc1 $zero, $f2 +.L800067AC: +/* 0073AC 800067AC 00000000 */ nop +/* 0073B0 800067B0 4602003C */ c.lt.s $f0, $f2 +/* 0073B4 800067B4 00000000 */ nop +/* 0073B8 800067B8 45000002 */ bc1f .L800067C4 +/* 0073BC 800067BC 00000000 */ nop +/* 0073C0 800067C0 E46200A4 */ swc1 $f2, 0xa4($v1) +.L800067C4: +/* 0073C4 800067C4 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 0073C8 800067C8 0C028064 */ jal func_800A0190 +/* 0073CC 800067CC E7B2002C */ swc1 $f18, 0x2c($sp) +/* 0073D0 800067D0 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 +/* 0073D4 800067D4 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 0073D8 800067D8 C7B2002C */ lwc1 $f18, 0x2c($sp) +/* 0073DC 800067DC 14400005 */ bnez $v0, .L800067F4 +/* 0073E0 800067E0 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 +/* 0073E4 800067E4 44802000 */ mtc1 $zero, $f4 +/* 0073E8 800067E8 8D390000 */ lw $t9, ($t1) +/* 0073EC 800067EC 00000000 */ nop +/* 0073F0 800067F0 E72400A4 */ swc1 $f4, 0xa4($t9) +.L800067F4: +/* 0073F4 800067F4 8D2A0000 */ lw $t2, ($t1) +/* 0073F8 800067F8 8FAB0030 */ lw $t3, 0x30($sp) +/* 0073FC 800067FC C54600A4 */ lwc1 $f6, 0xa4($t2) +/* 007400 80006800 85640002 */ lh $a0, 2($t3) +/* 007404 80006804 46067380 */ add.s $f14, $f14, $f6 +/* 007408 80006808 E7B2002C */ swc1 $f18, 0x2c($sp) +/* 00740C 8000680C 0C01C1F1 */ jal sins_f +/* 007410 80006810 E7AE0018 */ swc1 $f14, 0x18($sp) +/* 007414 80006814 8FAC0030 */ lw $t4, 0x30($sp) +/* 007418 80006818 E7A00028 */ swc1 $f0, 0x28($sp) +/* 00741C 8000681C 85840004 */ lh $a0, 4($t4) +/* 007420 80006820 0C01C1F1 */ jal sins_f +/* 007424 80006824 00000000 */ nop +/* 007428 80006828 3C098012 */ lui $t1, %hi(gRacerSound) # $t1, 0x8012 +/* 00742C 8000682C 25299C38 */ addiu $t1, %lo(gRacerSound) # addiu $t1, $t1, -0x63c8 +/* 007430 80006830 8D230000 */ lw $v1, ($t1) +/* 007434 80006834 C7A80028 */ lwc1 $f8, 0x28($sp) +/* 007438 80006838 C46A00C4 */ lwc1 $f10, 0xc4($v1) +/* 00743C 8000683C C46400C0 */ lwc1 $f4, 0xc0($v1) +/* 007440 80006840 46085302 */ mul.s $f12, $f10, $f8 +/* 007444 80006844 44803000 */ mtc1 $zero, $f6 +/* 007448 80006848 C7B2002C */ lwc1 $f18, 0x2c($sp) +/* 00744C 8000684C 3C014024 */ li $at, 0x40240000 # 2.562500 +/* 007450 80006850 46002082 */ mul.s $f2, $f4, $f0 +/* 007454 80006854 C7AE0018 */ lwc1 $f14, 0x18($sp) +/* 007458 80006858 44818800 */ mtc1 $at, $f17 +/* 00745C 8000685C 44808000 */ mtc1 $zero, $f16 +/* 007460 80006860 4606103C */ c.lt.s $f2, $f6 +/* 007464 80006864 3C0D8012 */ lui $t5, %hi(gSoundRacerObj) # $t5, 0x8012 +/* 007468 80006868 45000002 */ bc1f .L80006874 +/* 00746C 8000686C 46009021 */ cvt.d.s $f0, $f18 +/* 007470 80006870 46001087 */ neg.s $f2, $f2 +.L80006874: +/* 007474 80006874 4620803C */ c.lt.d $f16, $f0 +/* 007478 80006878 46026280 */ add.s $f10, $f12, $f2 +/* 00747C 8000687C 45000004 */ bc1f .L80006890 +/* 007480 80006880 460A7380 */ add.s $f14, $f14, $f10 +/* 007484 80006884 46300201 */ sub.d $f8, $f0, $f16 +/* 007488 80006888 10000003 */ b .L80006898 +/* 00748C 8000688C 462044A0 */ cvt.s.d $f18, $f8 +.L80006890: +/* 007490 80006890 44809000 */ mtc1 $zero, $f18 +/* 007494 80006894 00000000 */ nop +.L80006898: +/* 007498 80006898 C46400CC */ lwc1 $f4, 0xcc($v1) +/* 00749C 8000689C 44805800 */ mtc1 $zero, $f11 +/* 0074A0 800068A0 44805000 */ mtc1 $zero, $f10 +/* 0074A4 800068A4 46049182 */ mul.s $f6, $f18, $f4 +/* 0074A8 800068A8 46009221 */ cvt.d.s $f8, $f18 +/* 0074AC 800068AC 46285032 */ c.eq.d $f10, $f8 +# Used to access D_800E4C88 and D_800E4C88 + 4. +/* 0074B0 800068B0 3C01800E */ lui $at, %hi(D_800E4C88) # $at, 0x800e +/* 0074B4 800068B4 45010032 */ bc1t .L80006980 +/* 0074B8 800068B8 46067380 */ add.s $f14, $f14, $f6 +/* 0074BC 800068BC 8DAD9C3C */ lw $t5, %lo(gSoundRacerObj)($t5) +/* 0074C0 800068C0 00000000 */ nop +/* 0074C4 800068C4 81A20185 */ lb $v0, 0x185($t5) +/* 0074C8 800068C8 00000000 */ nop +/* 0074CC 800068CC 1040002C */ beqz $v0, .L80006980 +/* 0074D0 800068D0 00000000 */ nop +/* 0074D4 800068D4 2841000B */ slti $at, $v0, 0xb +/* 0074D8 800068D8 10200003 */ beqz $at, .L800068E8 +/* 0074DC 800068DC 2404000A */ li $a0, 10 +/* 0074E0 800068E0 10000001 */ b .L800068E8 +/* 0074E4 800068E4 00402025 */ move $a0, $v0 +.L800068E8: +/* 0074E8 800068E8 44843000 */ mtc1 $a0, $f6 +/* 0074EC 800068EC 3C01800E */ lui $at, %hi(D_800E4C88 + 4) # $at, 0x800e +/* 0074F0 800068F0 468032A1 */ cvt.d.w $f10, $f6 +/* 0074F4 800068F4 C4254C80 */ lwc1 $f5, %lo(D_800E4C80)($at) +/* 0074F8 800068F8 C4244C84 */ lwc1 $f4, %lo(D_800E4C80 + 4)($at) +/* 0074FC 800068FC C46C003C */ lwc1 $f12, 0x3c($v1) +/* 007500 80006900 462A2002 */ mul.d $f0, $f4, $f10 +/* 007504 80006904 460060A1 */ cvt.d.s $f2, $f12 +/* 007508 80006908 00047180 */ sll $t6, $a0, 6 +/* 00750C 8000690C 4620103C */ c.lt.d $f2, $f0 +/* 007510 80006910 00000000 */ nop +/* 007514 80006914 4500000E */ bc1f .L80006950 +/* 007518 80006918 00000000 */ nop +/* 00751C 8000691C 448E4000 */ mtc1 $t6, $f8 +/* 007520 80006920 00000000 */ nop +/* 007524 80006924 468041A1 */ cvt.d.w $f6, $f8 +/* 007528 80006928 00000000 */ nop +/* 00752C 8000692C 46260103 */ div.d $f4, $f0, $f6 +/* 007530 80006930 46241280 */ add.d $f10, $f2, $f4 +/* 007534 80006934 46205220 */ cvt.s.d $f8, $f10 +/* 007538 80006938 E468003C */ swc1 $f8, 0x3c($v1) +/* 00753C 8000693C 8D230000 */ lw $v1, ($t1) +/* 007540 80006940 00000000 */ nop +/* 007544 80006944 C46C003C */ lwc1 $f12, 0x3c($v1) +/* 007548 80006948 10000019 */ b .L800069B0 +/* 00754C 8000694C 460C7380 */ add.s $f14, $f14, $f12 +.L80006950: +/* 007550 80006950 4622003C */ c.lt.d $f0, $f2 +/* 007554 80006954 00000000 */ nop +/* 007558 80006958 45000007 */ bc1f .L80006978 +/* 00755C 8000695C 00000000 */ nop +/* 007560 80006960 462001A0 */ cvt.s.d $f6, $f0 +/* 007564 80006964 E466003C */ swc1 $f6, 0x3c($v1) +/* 007568 80006968 8D230000 */ lw $v1, ($t1) +/* 00756C 8000696C 00000000 */ nop +/* 007570 80006970 C46C003C */ lwc1 $f12, 0x3c($v1) +/* 007574 80006974 00000000 */ nop +.L80006978: +/* 007578 80006978 1000000D */ b .L800069B0 +/* 00757C 8000697C 460C7380 */ add.s $f14, $f14, $f12 +.L80006980: +/* 007580 80006980 C464003C */ lwc1 $f4, 0x3c($v1) +/* 007584 80006984 C4294C88 */ lwc1 $f9, %lo(D_800E4C88)($at) +/* 007588 80006988 C4284C8C */ lwc1 $f8, %lo(D_800E4C88 + 4)($at) +/* 00758C 8000698C 460022A1 */ cvt.d.s $f10, $f4 +/* 007590 80006990 46285182 */ mul.d $f6, $f10, $f8 +/* 007594 80006994 46203120 */ cvt.s.d $f4, $f6 +/* 007598 80006998 E464003C */ swc1 $f4, 0x3c($v1) +/* 00759C 8000699C 8D230000 */ lw $v1, ($t1) +/* 0075A0 800069A0 00000000 */ nop +/* 0075A4 800069A4 C46A003C */ lwc1 $f10, 0x3c($v1) +/* 0075A8 800069A8 00000000 */ nop +/* 0075AC 800069AC 460A7380 */ add.s $f14, $f14, $f10 +.L800069B0: +/* 0075B0 800069B0 C460005C */ lwc1 $f0, 0x5c($v1) +/* 0075B4 800069B4 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 0075B8 800069B8 44813000 */ mtc1 $at, $f6 +/* 0075BC 800069BC 46007201 */ sub.s $f8, $f14, $f0 +/* 0075C0 800069C0 3C01800E */ lui $at, %hi(D_800E4C90) # $at, 0x800e +/* 0075C4 800069C4 46064103 */ div.s $f4, $f8, $f6 +/* 0075C8 800069C8 46040280 */ add.s $f10, $f0, $f4 +/* 0075CC 800069CC E46A005C */ swc1 $f10, 0x5c($v1) +/* 0075D0 800069D0 8D230000 */ lw $v1, ($t1) +/* 0075D4 800069D4 C4284C94 */ lwc1 $f8, %lo(D_800E4C90 + 4)($at) +/* 0075D8 800069D8 C466005C */ lwc1 $f6, 0x5c($v1) +/* 0075DC 800069DC C4294C90 */ lwc1 $f9, %lo(D_800E4C90)($at) +/* 0075E0 800069E0 46003121 */ cvt.d.s $f4, $f6 +/* 0075E4 800069E4 4624403C */ c.lt.d $f8, $f4 +/* 0075E8 800069E8 3C01800E */ lui $at, %hi(D_800E4C98) # $at, 0x800e +/* 0075EC 800069EC 45000006 */ bc1f .L80006A08 +/* 0075F0 800069F0 00000000 */ nop +/* 0075F4 800069F4 C42A4C98 */ lwc1 $f10, %lo(D_800E4C98)($at) +/* 0075F8 800069F8 00000000 */ nop +/* 0075FC 800069FC E46A005C */ swc1 $f10, 0x5c($v1) +/* 007600 80006A00 8D230000 */ lw $v1, ($t1) +/* 007604 80006A04 00000000 */ nop +.L80006A08: +/* 007608 80006A08 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 00760C 80006A0C 44813000 */ mtc1 $at, $f6 +/* 007610 80006A10 44804000 */ mtc1 $zero, $f8 +/* 007614 80006A14 E4660060 */ swc1 $f6, 0x60($v1) +/* 007618 80006A18 8D2F0000 */ lw $t7, ($t1) +/* 00761C 80006A1C 3C028012 */ lui $v0, %hi(gSoundRacerObj) # $v0, 0x8012 +/* 007620 80006A20 E5E80058 */ swc1 $f8, 0x58($t7) +/* 007624 80006A24 8C429C3C */ lw $v0, %lo(gSoundRacerObj)($v0) +/* 007628 80006A28 2401FFFF */ li $at, -1 +/* 00762C 80006A2C 84580000 */ lh $t8, ($v0) +/* 007630 80006A30 00000000 */ nop +/* 007634 80006A34 13010011 */ beq $t8, $at, .L80006A7C +/* 007638 80006A38 00000000 */ nop +/* 00763C 80006A3C 805901DB */ lb $t9, 0x1db($v0) +/* 007640 80006A40 00000000 */ nop +/* 007644 80006A44 1320000D */ beqz $t9, .L80006A7C +/* 007648 80006A48 00000000 */ nop +/* 00764C 80006A4C 8D230000 */ lw $v1, ($t1) +/* 007650 80006A50 240B0001 */ li $t3, 1 +/* 007654 80006A54 906A00D8 */ lbu $t2, 0xd8($v1) +/* 007658 80006A58 2404013D */ li $a0, 317 +/* 00765C 80006A5C 15400007 */ bnez $t2, .L80006A7C +/* 007660 80006A60 00000000 */ nop +/* 007664 80006A64 A06B00D8 */ sb $t3, 0xd8($v1) +/* 007668 80006A68 8D250000 */ lw $a1, ($t1) +/* 00766C 80006A6C 0C000741 */ jal sound_play +/* 007670 80006A70 24A500DC */ addiu $a1, $a1, 0xdc +/* 007674 80006A74 10000011 */ b .L80006ABC +/* 007678 80006A78 8FBF0014 */ lw $ra, 0x14($sp) +.L80006A7C: +/* 00767C 80006A7C 804C01DB */ lb $t4, 0x1db($v0) +/* 007680 80006A80 00000000 */ nop +/* 007684 80006A84 1580000D */ bnez $t4, .L80006ABC +/* 007688 80006A88 8FBF0014 */ lw $ra, 0x14($sp) +/* 00768C 80006A8C 8D2D0000 */ lw $t5, ($t1) +/* 007690 80006A90 00000000 */ nop +/* 007694 80006A94 A1A000D8 */ sb $zero, 0xd8($t5) +/* 007698 80006A98 8D2E0000 */ lw $t6, ($t1) +/* 00769C 80006A9C 00000000 */ nop +/* 0076A0 80006AA0 8DC400DC */ lw $a0, 0xdc($t6) +/* 0076A4 80006AA4 00000000 */ nop +/* 0076A8 80006AA8 10800004 */ beqz $a0, .L80006ABC +/* 0076AC 80006AAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0076B0 80006AB0 0C001223 */ jal func_8000488C +/* 0076B4 80006AB4 00000000 */ nop +/* 0076B8 80006AB8 8FBF0014 */ lw $ra, 0x14($sp) +.L80006ABC: +/* 0076BC 80006ABC 27BD0030 */ addiu $sp, $sp, 0x30 +/* 0076C0 80006AC0 03E00008 */ jr $ra +/* 0076C4 80006AC4 00000000 */ nop + diff --git a/asm/non_matchings/audio_vehicle/func_80006FC8.s b/asm/non_matchings/audio_vehicle/func_80006FC8.s index b942efc1..a6b36aa9 100644 --- a/asm/non_matchings/audio_vehicle/func_80006FC8.s +++ b/asm/non_matchings/audio_vehicle/func_80006FC8.s @@ -1,1107 +1,1107 @@ -.late_rodata -glabel D_800E4CC4 -.float 2250000.0 -glabel D_800E4CC8 -.double 0.05 -glabel D_800E4CD0 -.float 1500.0 -glabel D_800E4CD4 -.float 0.05 -glabel D_800E4CD8 -.double 0.05 -glabel D_800E4CE0 -.float 2250000.0 -.word 0 # Padding -glabel D_800E4CE8 -.double 0.8 -glabel D_800E4CF0 -.float 1500.0 -glabel D_800E4CF4 -.float 0.05 - -.text -glabel func_80006FC8 -/* 007BC8 80006FC8 27BDFF38 */ addiu $sp, $sp, -0xc8 -/* 007BCC 80006FCC AFB70064 */ sw $s7, 0x64($sp) -/* 007BD0 80006FD0 30EE00FF */ andi $t6, $a3, 0xff -/* 007BD4 80006FD4 00C0B825 */ move $s7, $a2 -/* 007BD8 80006FD8 AFBF006C */ sw $ra, 0x6c($sp) -/* 007BDC 80006FDC AFBE0068 */ sw $fp, 0x68($sp) -/* 007BE0 80006FE0 AFB60060 */ sw $s6, 0x60($sp) -/* 007BE4 80006FE4 AFB5005C */ sw $s5, 0x5c($sp) -/* 007BE8 80006FE8 AFB40058 */ sw $s4, 0x58($sp) -/* 007BEC 80006FEC AFB30054 */ sw $s3, 0x54($sp) -/* 007BF0 80006FF0 AFB20050 */ sw $s2, 0x50($sp) -/* 007BF4 80006FF4 AFB1004C */ sw $s1, 0x4c($sp) -/* 007BF8 80006FF8 AFB00048 */ sw $s0, 0x48($sp) -/* 007BFC 80006FFC E7BF0040 */ swc1 $f31, 0x40($sp) -/* 007C00 80007000 E7BE0044 */ swc1 $f30, 0x44($sp) -/* 007C04 80007004 E7BD0038 */ swc1 $f29, 0x38($sp) -/* 007C08 80007008 E7BC003C */ swc1 $f28, 0x3c($sp) -/* 007C0C 8000700C E7BB0030 */ swc1 $f27, 0x30($sp) -/* 007C10 80007010 E7BA0034 */ swc1 $f26, 0x34($sp) -/* 007C14 80007014 E7B90028 */ swc1 $f25, 0x28($sp) -/* 007C18 80007018 E7B8002C */ swc1 $f24, 0x2c($sp) -/* 007C1C 8000701C E7B70020 */ swc1 $f23, 0x20($sp) -/* 007C20 80007020 E7B60024 */ swc1 $f22, 0x24($sp) -/* 007C24 80007024 E7B50018 */ swc1 $f21, 0x18($sp) -/* 007C28 80007028 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 007C2C 8000702C AFA400C8 */ sw $a0, 0xc8($sp) -/* 007C30 80007030 AFA500CC */ sw $a1, 0xcc($sp) -/* 007C34 80007034 AFA700D4 */ sw $a3, 0xd4($sp) -/* 007C38 80007038 AFAE007C */ sw $t6, 0x7c($sp) -/* 007C3C 8000703C 19C001C4 */ blez $t6, .L80007750 -/* 007C40 80007040 AFA000AC */ sw $zero, 0xac($sp) -/* 007C44 80007044 3C01800E */ lui $at, %hi(D_800E4CC4) # $at, 0x800e -/* 007C48 80007048 C43E4CC4 */ lwc1 $f30, %lo(D_800E4CC4)($at) -/* 007C4C 8000704C 3C01800E */ lui $at, %hi(D_800E4CC8 + 4) # $at, 0x800e -/* 007C50 80007050 3C148012 */ lui $s4, %hi(gRacerSound) # $s4, 0x8012 -/* 007C54 80007054 C43D4CC8 */ lwc1 $f29, %lo(D_800E4CC8)($at) -/* 007C58 80007058 C43C4CCC */ lwc1 $f28, %lo(D_800E4CC8 + 4)($at) -/* 007C5C 8000705C 4480C800 */ mtc1 $zero, $f25 -/* 007C60 80007060 4480C000 */ mtc1 $zero, $f24 -/* 007C64 80007064 8FBE00D8 */ lw $fp, 0xd8($sp) -/* 007C68 80007068 26949C38 */ addiu $s4, %lo(gRacerSound) # addiu $s4, $s4, -0x63c8 -/* 007C6C 8000706C 0080B025 */ move $s6, $a0 -.L80007070: -/* 007C70 80007070 8ED80000 */ lw $t8, ($s6) -/* 007C74 80007074 00000000 */ nop -/* 007C78 80007078 8F110064 */ lw $s1, 0x64($t8) -/* 007C7C 8000707C 00000000 */ nop -/* 007C80 80007080 12200004 */ beqz $s1, .L80007094 -/* 007C84 80007084 00000000 */ nop -/* 007C88 80007088 8E390118 */ lw $t9, 0x118($s1) -/* 007C8C 8000708C 10000002 */ b .L80007098 -/* 007C90 80007090 AE990000 */ sw $t9, ($s4) -.L80007094: -/* 007C94 80007094 AE800000 */ sw $zero, ($s4) -.L80007098: -/* 007C98 80007098 8E900000 */ lw $s0, ($s4) -/* 007C9C 8000709C 00000000 */ nop -/* 007CA0 800070A0 120001A6 */ beqz $s0, .L8000773C -/* 007CA4 800070A4 8FB900AC */ lw $t9, 0xac($sp) -/* 007CA8 800070A8 96080000 */ lhu $t0, ($s0) -/* 007CAC 800070AC 00000000 */ nop -/* 007CB0 800070B0 110001A2 */ beqz $t0, .L8000773C -/* 007CB4 800070B4 8FB900AC */ lw $t9, 0xac($sp) -/* 007CB8 800070B8 822901D8 */ lb $t1, 0x1d8($s1) -/* 007CBC 800070BC 0000A825 */ move $s5, $zero -/* 007CC0 800070C0 15200006 */ bnez $t1, .L800070DC -/* 007CC4 800070C4 8FAA00AC */ lw $t2, 0xac($sp) -/* 007CC8 800070C8 0C019944 */ jal check_if_showing_cutscene_camera -/* 007CCC 800070CC 00000000 */ nop -/* 007CD0 800070D0 10400047 */ beqz $v0, .L800071F0 -/* 007CD4 800070D4 3C013F80 */ lui $at, 0x3f80 -/* 007CD8 800070D8 8FAA00AC */ lw $t2, 0xac($sp) -.L800070DC: -/* 007CDC 800070DC 8EC60000 */ lw $a2, ($s6) -/* 007CE0 800070E0 000A5900 */ sll $t3, $t2, 4 -/* 007CE4 800070E4 016A5821 */ addu $t3, $t3, $t2 -/* 007CE8 800070E8 000B5880 */ sll $t3, $t3, 2 -/* 007CEC 800070EC 02EB1821 */ addu $v1, $s7, $t3 -/* 007CF0 800070F0 C466000C */ lwc1 $f6, 0xc($v1) -/* 007CF4 800070F4 C46A0010 */ lwc1 $f10, 0x10($v1) -/* 007CF8 800070F8 C4720014 */ lwc1 $f18, 0x14($v1) -/* 007CFC 800070FC C4C4000C */ lwc1 $f4, 0xc($a2) -/* 007D00 80007100 C4C80010 */ lwc1 $f8, 0x10($a2) -/* 007D04 80007104 C4D00014 */ lwc1 $f16, 0x14($a2) -/* 007D08 80007108 460A4001 */ sub.s $f0, $f8, $f10 -/* 007D0C 8000710C AFA30070 */ sw $v1, 0x70($sp) -/* 007D10 80007110 E7A000C0 */ swc1 $f0, 0xc0($sp) -/* 007D14 80007114 02E02825 */ move $a1, $s7 -/* 007D18 80007118 03C03825 */ move $a3, $fp -/* 007D1C 8000711C 00C02025 */ move $a0, $a2 -/* 007D20 80007120 46062501 */ sub.s $f20, $f4, $f6 -/* 007D24 80007124 0C001AFF */ jal func_80006BFC -/* 007D28 80007128 46128581 */ sub.s $f22, $f16, $f18 -/* 007D2C 8000712C 4614A102 */ mul.s $f4, $f20, $f20 -/* 007D30 80007130 C7A000C0 */ lwc1 $f0, 0xc0($sp) -/* 007D34 80007134 00000000 */ nop -/* 007D38 80007138 46000182 */ mul.s $f6, $f0, $f0 -/* 007D3C 8000713C 00000000 */ nop -/* 007D40 80007140 4616B282 */ mul.s $f10, $f22, $f22 -/* 007D44 80007144 46062200 */ add.s $f8, $f4, $f6 -/* 007D48 80007148 0C0326B4 */ jal sqrtf -/* 007D4C 8000714C 460A4300 */ add.s $f12, $f8, $f10 -/* 007D50 80007150 8E8C0000 */ lw $t4, ($s4) -/* 007D54 80007154 8FA30070 */ lw $v1, 0x70($sp) -/* 007D58 80007158 E5800084 */ swc1 $f0, 0x84($t4) -/* 007D5C 8000715C 8E900000 */ lw $s0, ($s4) -/* 007D60 80007160 3C01800E */ lui $at, %hi(D_800E4CD0) # $at, 0x800e -/* 007D64 80007164 C4304CD0 */ lwc1 $f16, %lo(D_800E4CD0)($at) -/* 007D68 80007168 C6020084 */ lwc1 $f2, 0x84($s0) -/* 007D6C 8000716C 00000000 */ nop -/* 007D70 80007170 4610103C */ c.lt.s $f2, $f16 -/* 007D74 80007174 00000000 */ nop -/* 007D78 80007178 45000011 */ bc1f .L800071C0 -/* 007D7C 8000717C 00000000 */ nop -/* 007D80 80007180 46021482 */ mul.s $f18, $f2, $f2 -/* 007D84 80007184 84660000 */ lh $a2, ($v1) -/* 007D88 80007188 4600A306 */ mov.s $f12, $f20 -/* 007D8C 8000718C 4612F101 */ sub.s $f4, $f30, $f18 -/* 007D90 80007190 00000000 */ nop -/* 007D94 80007194 461E2683 */ div.s $f26, $f4, $f30 -/* 007D98 80007198 4600B386 */ mov.s $f14, $f22 -/* 007D9C 8000719C 461AD682 */ mul.s $f26, $f26, $f26 -/* 007DA0 800071A0 0C002430 */ jal func_800090C0 -/* 007DA4 800071A4 00000000 */ nop -/* 007DA8 800071A8 8E8D0000 */ lw $t5, ($s4) -/* 007DAC 800071AC 00000000 */ nop -/* 007DB0 800071B0 A1A20091 */ sb $v0, 0x91($t5) -/* 007DB4 800071B4 8E900000 */ lw $s0, ($s4) -/* 007DB8 800071B8 10000004 */ b .L800071CC -/* 007DBC 800071BC 822E01D8 */ lb $t6, 0x1d8($s1) -.L800071C0: -/* 007DC0 800071C0 4480D000 */ mtc1 $zero, $f26 -/* 007DC4 800071C4 00000000 */ nop -/* 007DC8 800071C8 822E01D8 */ lb $t6, 0x1d8($s1) -.L800071CC: -/* 007DCC 800071CC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 007DD0 800071D0 15C00010 */ bnez $t6, .L80007214 -/* 007DD4 800071D4 00000000 */ nop -/* 007DD8 800071D8 44814800 */ mtc1 $at, $f9 -/* 007DDC 800071DC 44804000 */ mtc1 $zero, $f8 -/* 007DE0 800071E0 4600D1A1 */ cvt.d.s $f6, $f26 -/* 007DE4 800071E4 46283282 */ mul.d $f10, $f6, $f8 -/* 007DE8 800071E8 1000000A */ b .L80007214 -/* 007DEC 800071EC 462056A0 */ cvt.s.d $f26, $f10 -.L800071F0: -/* 007DF0 800071F0 8E980000 */ lw $t8, ($s4) -/* 007DF4 800071F4 240F0040 */ li $t7, 64 -/* 007DF8 800071F8 A30F0091 */ sb $t7, 0x91($t8) -/* 007DFC 800071FC 8E990000 */ lw $t9, ($s4) -/* 007E00 80007200 44808000 */ mtc1 $zero, $f16 -/* 007E04 80007204 4481D000 */ mtc1 $at, $f26 -/* 007E08 80007208 E7300068 */ swc1 $f16, 0x68($t9) -/* 007E0C 8000720C 8E900000 */ lw $s0, ($s4) -/* 007E10 80007210 00000000 */ nop -.L80007214: -/* 007E14 80007214 920200A0 */ lbu $v0, 0xa0($s0) -/* 007E18 80007218 00000000 */ nop -/* 007E1C 8000721C 28410046 */ slti $at, $v0, 0x46 -/* 007E20 80007220 1020009D */ beqz $at, .L80007498 -/* 007E24 80007224 00000000 */ nop -/* 007E28 80007228 92040036 */ lbu $a0, 0x36($s0) -/* 007E2C 8000722C 8FA8007C */ lw $t0, 0x7c($sp) -/* 007E30 80007230 10800099 */ beqz $a0, .L80007498 -/* 007E34 80007234 29010003 */ slti $at, $t0, 3 -/* 007E38 80007238 10200097 */ beqz $at, .L80007498 -/* 007E3C 8000723C 00000000 */ nop -/* 007E40 80007240 4600D4A1 */ cvt.d.s $f18, $f26 -/* 007E44 80007244 4632C032 */ c.eq.d $f24, $f18 -/* 007E48 80007248 00000000 */ nop -/* 007E4C 8000724C 45010092 */ bc1t .L80007498 -/* 007E50 80007250 00000000 */ nop -/* 007E54 80007254 92090044 */ lbu $t1, 0x44($s0) -/* 007E58 80007258 00000000 */ nop -/* 007E5C 8000725C 312A0001 */ andi $t2, $t1, 1 -/* 007E60 80007260 1540008D */ bnez $t2, .L80007498 -/* 007E64 80007264 00000000 */ nop -/* 007E68 80007268 44822000 */ mtc1 $v0, $f4 -/* 007E6C 8000726C 04410005 */ bgez $v0, .L80007284 -/* 007E70 80007270 468021A0 */ cvt.s.w $f6, $f4 -/* 007E74 80007274 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 007E78 80007278 44814000 */ mtc1 $at, $f8 -/* 007E7C 8000727C 00000000 */ nop -/* 007E80 80007280 46083180 */ add.s $f6, $f6, $f8 -.L80007284: -/* 007E84 80007284 920B0037 */ lbu $t3, 0x37($s0) -/* 007E88 80007288 3C01428C */ li $at, 0x428C0000 # 70.000000 -/* 007E8C 8000728C 44815000 */ mtc1 $at, $f10 -/* 007E90 80007290 448B8000 */ mtc1 $t3, $f16 -/* 007E94 80007294 460A3503 */ div.s $f20, $f6, $f10 -/* 007E98 80007298 05610005 */ bgez $t3, .L800072B0 -/* 007E9C 8000729C 46808020 */ cvt.s.w $f0, $f16 -/* 007EA0 800072A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 007EA4 800072A4 44819000 */ mtc1 $at, $f18 -/* 007EA8 800072A8 00000000 */ nop -/* 007EAC 800072AC 46120000 */ add.s $f0, $f0, $f18 -.L800072B0: -/* 007EB0 800072B0 46140102 */ mul.s $f4, $f0, $f20 -/* 007EB4 800072B4 24120001 */ li $s2, 1 -/* 007EB8 800072B8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 007EBC 800072BC 46040201 */ sub.s $f8, $f0, $f4 -/* 007EC0 800072C0 461A4182 */ mul.s $f6, $f8, $f26 -/* 007EC4 800072C4 444CF800 */ cfc1 $t4, $31 -/* 007EC8 800072C8 44D2F800 */ ctc1 $s2, $31 -/* 007ECC 800072CC 00000000 */ nop -/* 007ED0 800072D0 460032A4 */ cvt.w.s $f10, $f6 -/* 007ED4 800072D4 4452F800 */ cfc1 $s2, $31 -/* 007ED8 800072D8 00000000 */ nop -/* 007EDC 800072DC 32520078 */ andi $s2, $s2, 0x78 -/* 007EE0 800072E0 12400012 */ beqz $s2, .L8000732C -/* 007EE4 800072E4 00000000 */ nop -/* 007EE8 800072E8 44815000 */ mtc1 $at, $f10 -/* 007EEC 800072EC 24120001 */ li $s2, 1 -/* 007EF0 800072F0 460A3281 */ sub.s $f10, $f6, $f10 -/* 007EF4 800072F4 3C018000 */ lui $at, 0x8000 -/* 007EF8 800072F8 44D2F800 */ ctc1 $s2, $31 -/* 007EFC 800072FC 00000000 */ nop -/* 007F00 80007300 460052A4 */ cvt.w.s $f10, $f10 -/* 007F04 80007304 4452F800 */ cfc1 $s2, $31 -/* 007F08 80007308 00000000 */ nop -/* 007F0C 8000730C 32520078 */ andi $s2, $s2, 0x78 -/* 007F10 80007310 16400004 */ bnez $s2, .L80007324 -/* 007F14 80007314 00000000 */ nop -/* 007F18 80007318 44125000 */ mfc1 $s2, $f10 -/* 007F1C 8000731C 10000007 */ b .L8000733C -/* 007F20 80007320 02419025 */ or $s2, $s2, $at -.L80007324: -/* 007F24 80007324 10000005 */ b .L8000733C -/* 007F28 80007328 2412FFFF */ li $s2, -1 -.L8000732C: -/* 007F2C 8000732C 44125000 */ mfc1 $s2, $f10 -/* 007F30 80007330 00000000 */ nop -/* 007F34 80007334 0640FFFB */ bltz $s2, .L80007324 -/* 007F38 80007338 00000000 */ nop -.L8000733C: -/* 007F3C 8000733C 325300FF */ andi $s3, $s2, 0xff -/* 007F40 80007340 44CCF800 */ ctc1 $t4, $31 -/* 007F44 80007344 2A610010 */ slti $at, $s3, 0x10 -/* 007F48 80007348 14200047 */ bnez $at, .L80007468 -/* 007F4C 8000734C 00000000 */ nop -/* 007F50 80007350 8E0E0050 */ lw $t6, 0x50($s0) -/* 007F54 80007354 00000000 */ nop -/* 007F58 80007358 15C00005 */ bnez $t6, .L80007370 -/* 007F5C 8000735C 00000000 */ nop -/* 007F60 80007360 0C0007C5 */ jal func_80001F14 -/* 007F64 80007364 26050050 */ addiu $a1, $s0, 0x50 -/* 007F68 80007368 8E900000 */ lw $s0, ($s4) -/* 007F6C 8000736C 00000000 */ nop -.L80007370: -/* 007F70 80007370 920F0038 */ lbu $t7, 0x38($s0) -/* 007F74 80007374 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 007F78 80007378 448F8000 */ mtc1 $t7, $f16 -/* 007F7C 8000737C 05E10004 */ bgez $t7, .L80007390 -/* 007F80 80007380 468084A0 */ cvt.s.w $f18, $f16 -/* 007F84 80007384 44812000 */ mtc1 $at, $f4 -/* 007F88 80007388 00000000 */ nop -/* 007F8C 8000738C 46049480 */ add.s $f18, $f18, $f4 -.L80007390: -/* 007F90 80007390 92180039 */ lbu $t8, 0x39($s0) -/* 007F94 80007394 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 007F98 80007398 44814000 */ mtc1 $at, $f8 -/* 007F9C 8000739C 44983000 */ mtc1 $t8, $f6 -/* 007FA0 800073A0 46089003 */ div.s $f0, $f18, $f8 -/* 007FA4 800073A4 07010005 */ bgez $t8, .L800073BC -/* 007FA8 800073A8 468032A0 */ cvt.s.w $f10, $f6 -/* 007FAC 800073AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 007FB0 800073B0 44818000 */ mtc1 $at, $f16 -/* 007FB4 800073B4 00000000 */ nop -/* 007FB8 800073B8 46105280 */ add.s $f10, $f10, $f16 -.L800073BC: -/* 007FBC 800073BC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 -/* 007FC0 800073C0 44812000 */ mtc1 $at, $f4 -/* 007FC4 800073C4 00000000 */ nop -/* 007FC8 800073C8 46045483 */ div.s $f18, $f10, $f4 -/* 007FCC 800073CC 46009201 */ sub.s $f8, $f18, $f0 -/* 007FD0 800073D0 46144182 */ mul.s $f6, $f8, $f20 -/* 007FD4 800073D4 46060400 */ add.s $f16, $f0, $f6 -/* 007FD8 800073D8 E7B0008C */ swc1 $f16, 0x8c($sp) -/* 007FDC 800073DC 8E040050 */ lw $a0, 0x50($s0) -/* 007FE0 800073E0 00000000 */ nop -/* 007FE4 800073E4 10800037 */ beqz $a0, .L800074C4 -/* 007FE8 800073E8 00000000 */ nop -/* 007FEC 800073EC 8ED00000 */ lw $s0, ($s6) -/* 007FF0 800073F0 00000000 */ nop -/* 007FF4 800073F4 8E05000C */ lw $a1, 0xc($s0) -/* 007FF8 800073F8 8E060010 */ lw $a2, 0x10($s0) -/* 007FFC 800073FC 8E070014 */ lw $a3, 0x14($s0) -/* 008000 80007400 0C0026DF */ jal func_80009B7C -/* 008004 80007404 00000000 */ nop -/* 008008 80007408 8E990000 */ lw $t9, ($s4) -/* 00800C 8000740C 24050008 */ li $a1, 8 -/* 008010 80007410 8F240050 */ lw $a0, 0x50($t9) -/* 008014 80007414 0C00127E */ jal func_800049F8 -/* 008018 80007418 00133200 */ sll $a2, $s3, 8 -/* 00801C 8000741C 8E880000 */ lw $t0, ($s4) -/* 008020 80007420 8FA6008C */ lw $a2, 0x8c($sp) -/* 008024 80007424 8D040050 */ lw $a0, 0x50($t0) -/* 008028 80007428 0C00127E */ jal func_800049F8 -/* 00802C 8000742C 24050010 */ li $a1, 16 -/* 008030 80007430 8E890000 */ lw $t1, ($s4) -/* 008034 80007434 24050050 */ li $a1, 80 -/* 008038 80007438 8D240050 */ lw $a0, 0x50($t1) -/* 00803C 8000743C 0C001181 */ jal func_80004604 -/* 008040 80007440 00000000 */ nop -/* 008044 80007444 8E900000 */ lw $s0, ($s4) -/* 008048 80007448 24050004 */ li $a1, 4 -/* 00804C 8000744C 8E040050 */ lw $a0, 0x50($s0) -/* 008050 80007450 92060091 */ lbu $a2, 0x91($s0) -/* 008054 80007454 0C00127E */ jal func_800049F8 -/* 008058 80007458 00000000 */ nop -/* 00805C 8000745C 8E900000 */ lw $s0, ($s4) -/* 008060 80007460 10000019 */ b .L800074C8 -/* 008064 80007464 960C0000 */ lhu $t4, ($s0) -.L80007468: -/* 008068 80007468 8E040050 */ lw $a0, 0x50($s0) -/* 00806C 8000746C 00000000 */ nop -/* 008070 80007470 10800014 */ beqz $a0, .L800074C4 -/* 008074 80007474 00000000 */ nop -/* 008078 80007478 0C001223 */ jal func_8000488C -/* 00807C 8000747C 00000000 */ nop -/* 008080 80007480 8E8A0000 */ lw $t2, ($s4) -/* 008084 80007484 00000000 */ nop -/* 008088 80007488 AD400050 */ sw $zero, 0x50($t2) -/* 00808C 8000748C 8E900000 */ lw $s0, ($s4) -/* 008090 80007490 1000000D */ b .L800074C8 -/* 008094 80007494 960C0000 */ lhu $t4, ($s0) -.L80007498: -/* 008098 80007498 8E040050 */ lw $a0, 0x50($s0) -/* 00809C 8000749C 00000000 */ nop -/* 0080A0 800074A0 10800008 */ beqz $a0, .L800074C4 -/* 0080A4 800074A4 00000000 */ nop -/* 0080A8 800074A8 0C001223 */ jal func_8000488C -/* 0080AC 800074AC 00000000 */ nop -/* 0080B0 800074B0 8E8B0000 */ lw $t3, ($s4) -/* 0080B4 800074B4 00000000 */ nop -/* 0080B8 800074B8 AD600050 */ sw $zero, 0x50($t3) -/* 0080BC 800074BC 8E900000 */ lw $s0, ($s4) -/* 0080C0 800074C0 00000000 */ nop -.L800074C4: -/* 0080C4 800074C4 960C0000 */ lhu $t4, ($s0) -.L800074C8: -/* 0080C8 800074C8 00000000 */ nop -/* 0080CC 800074CC 1180009B */ beqz $t4, .L8000773C -/* 0080D0 800074D0 8FB900AC */ lw $t9, 0xac($sp) -/* 0080D4 800074D4 4600D521 */ cvt.d.s $f20, $f26 -/* 0080D8 800074D8 4634C032 */ c.eq.d $f24, $f20 -/* 0080DC 800074DC 00158880 */ sll $s1, $s5, 2 -/* 0080E0 800074E0 45010095 */ bc1t .L80007738 -/* 0080E4 800074E4 02111021 */ addu $v0, $s0, $s1 -.L800074E8: -/* 0080E8 800074E8 C44A0054 */ lwc1 $f10, 0x54($v0) -/* 0080EC 800074EC 24120001 */ li $s2, 1 -/* 0080F0 800074F0 461A5102 */ mul.s $f4, $f10, $f26 -/* 0080F4 800074F4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0080F8 800074F8 444DF800 */ cfc1 $t5, $31 -/* 0080FC 800074FC 44D2F800 */ ctc1 $s2, $31 -/* 008100 80007500 00000000 */ nop -/* 008104 80007504 460024A4 */ cvt.w.s $f18, $f4 -/* 008108 80007508 4452F800 */ cfc1 $s2, $31 -/* 00810C 8000750C 00000000 */ nop -/* 008110 80007510 32520078 */ andi $s2, $s2, 0x78 -/* 008114 80007514 12400012 */ beqz $s2, .L80007560 -/* 008118 80007518 00000000 */ nop -/* 00811C 8000751C 44819000 */ mtc1 $at, $f18 -/* 008120 80007520 24120001 */ li $s2, 1 -/* 008124 80007524 46122481 */ sub.s $f18, $f4, $f18 -/* 008128 80007528 3C018000 */ lui $at, 0x8000 -/* 00812C 8000752C 44D2F800 */ ctc1 $s2, $31 -/* 008130 80007530 00000000 */ nop -/* 008134 80007534 460094A4 */ cvt.w.s $f18, $f18 -/* 008138 80007538 4452F800 */ cfc1 $s2, $31 -/* 00813C 8000753C 00000000 */ nop -/* 008140 80007540 32520078 */ andi $s2, $s2, 0x78 -/* 008144 80007544 16400004 */ bnez $s2, .L80007558 -/* 008148 80007548 00000000 */ nop -/* 00814C 8000754C 44129000 */ mfc1 $s2, $f18 -/* 008150 80007550 10000007 */ b .L80007570 -/* 008154 80007554 02419025 */ or $s2, $s2, $at -.L80007558: -/* 008158 80007558 10000005 */ b .L80007570 -/* 00815C 8000755C 2412FFFF */ li $s2, -1 -.L80007560: -/* 008160 80007560 44129000 */ mfc1 $s2, $f18 -/* 008164 80007564 00000000 */ nop -/* 008168 80007568 0640FFFB */ bltz $s2, .L80007558 -/* 00816C 8000756C 00000000 */ nop -.L80007570: -/* 008170 80007570 44CDF800 */ ctc1 $t5, $31 -/* 008174 80007574 C448005C */ lwc1 $f8, 0x5c($v0) -/* 008178 80007578 C606003C */ lwc1 $f6, 0x3c($s0) -/* 00817C 8000757C C60A0094 */ lwc1 $f10, 0x94($s0) -/* 008180 80007580 46064400 */ add.s $f16, $f8, $f6 -/* 008184 80007584 C6120068 */ lwc1 $f18, 0x68($s0) -/* 008188 80007588 460A8100 */ add.s $f4, $f16, $f10 -/* 00818C 8000758C 324E00FF */ andi $t6, $s2, 0xff -/* 008190 80007590 46122200 */ add.s $f8, $f4, $f18 -/* 008194 80007594 01C09025 */ move $s2, $t6 -/* 008198 80007598 460041A1 */ cvt.d.s $f6, $f8 -/* 00819C 8000759C 463C303C */ c.lt.d $f6, $f28 -/* 0081A0 800075A0 E7A8008C */ swc1 $f8, 0x8c($sp) -/* 0081A4 800075A4 45000004 */ bc1f .L800075B8 -/* 0081A8 800075A8 3C01800E */ lui $at, %hi(D_800E4CD4) # $at, 0x800e -/* 0081AC 800075AC C4304CD4 */ lwc1 $f16, %lo(D_800E4CD4)($at) -/* 0081B0 800075B0 00000000 */ nop -/* 0081B4 800075B4 E7B0008C */ swc1 $f16, 0x8c($sp) -.L800075B8: -/* 0081B8 800075B8 16A0000F */ bnez $s5, .L800075F8 -/* 0081BC 800075BC 00000000 */ nop -/* 0081C0 800075C0 920F0044 */ lbu $t7, 0x44($s0) -/* 0081C4 800075C4 00000000 */ nop -/* 0081C8 800075C8 31F80001 */ andi $t8, $t7, 1 -/* 0081CC 800075CC 1300000A */ beqz $t8, .L800075F8 -/* 0081D0 800075D0 00000000 */ nop -/* 0081D4 800075D4 8E040048 */ lw $a0, 0x48($s0) -/* 0081D8 800075D8 00000000 */ nop -/* 0081DC 800075DC 10800047 */ beqz $a0, .L800076FC -/* 0081E0 800075E0 00000000 */ nop -/* 0081E4 800075E4 0C001223 */ jal func_8000488C -/* 0081E8 800075E8 00000000 */ nop -/* 0081EC 800075EC 8E990000 */ lw $t9, ($s4) -/* 0081F0 800075F0 10000042 */ b .L800076FC -/* 0081F4 800075F4 AF200048 */ sw $zero, 0x48($t9) -.L800075F8: -/* 0081F8 800075F8 8C440048 */ lw $a0, 0x48($v0) -/* 0081FC 800075FC 00000000 */ nop -/* 008200 80007600 1080000A */ beqz $a0, .L8000762C -/* 008204 80007604 00000000 */ nop -/* 008208 80007608 16400008 */ bnez $s2, .L8000762C -/* 00820C 8000760C 00000000 */ nop -/* 008210 80007610 0C001223 */ jal func_8000488C -/* 008214 80007614 00000000 */ nop -/* 008218 80007618 8E880000 */ lw $t0, ($s4) -/* 00821C 8000761C 00000000 */ nop -/* 008220 80007620 01114821 */ addu $t1, $t0, $s1 -/* 008224 80007624 10000035 */ b .L800076FC -/* 008228 80007628 AD200048 */ sw $zero, 0x48($t1) -.L8000762C: -/* 00822C 8000762C 1480000A */ bnez $a0, .L80007658 -/* 008230 80007630 00155040 */ sll $t2, $s5, 1 -/* 008234 80007634 020A5821 */ addu $t3, $s0, $t2 -/* 008238 80007638 95640000 */ lhu $a0, ($t3) -/* 00823C 8000763C 0C0007C5 */ jal func_80001F14 -/* 008240 80007640 24450048 */ addiu $a1, $v0, 0x48 -/* 008244 80007644 8E8C0000 */ lw $t4, ($s4) -/* 008248 80007648 00000000 */ nop -/* 00824C 8000764C 01916821 */ addu $t5, $t4, $s1 -/* 008250 80007650 8DA40048 */ lw $a0, 0x48($t5) -/* 008254 80007654 00000000 */ nop -.L80007658: -/* 008258 80007658 10800028 */ beqz $a0, .L800076FC -/* 00825C 8000765C 00000000 */ nop -/* 008260 80007660 8ED00000 */ lw $s0, ($s6) -/* 008264 80007664 02409825 */ move $s3, $s2 -/* 008268 80007668 8E05000C */ lw $a1, 0xc($s0) -/* 00826C 8000766C 8E060010 */ lw $a2, 0x10($s0) -/* 008270 80007670 8E070014 */ lw $a3, 0x14($s0) -/* 008274 80007674 0C0026DF */ jal func_80009B7C -/* 008278 80007678 00000000 */ nop -/* 00827C 8000767C 8E8E0000 */ lw $t6, ($s4) -/* 008280 80007680 24050008 */ li $a1, 8 -/* 008284 80007684 01D17821 */ addu $t7, $t6, $s1 -/* 008288 80007688 8DE40048 */ lw $a0, 0x48($t7) -/* 00828C 8000768C 0C00127E */ jal func_800049F8 -/* 008290 80007690 00133200 */ sll $a2, $s3, 8 -/* 008294 80007694 8E980000 */ lw $t8, ($s4) -/* 008298 80007698 8FA6008C */ lw $a2, 0x8c($sp) -/* 00829C 8000769C 0311C821 */ addu $t9, $t8, $s1 -/* 0082A0 800076A0 8F240048 */ lw $a0, 0x48($t9) -/* 0082A4 800076A4 0C00127E */ jal func_800049F8 -/* 0082A8 800076A8 24050010 */ li $a1, 16 -/* 0082AC 800076AC 8E880000 */ lw $t0, ($s4) -/* 0082B0 800076B0 24050050 */ li $a1, 80 -/* 0082B4 800076B4 01114821 */ addu $t1, $t0, $s1 -/* 0082B8 800076B8 8D240048 */ lw $a0, 0x48($t1) -/* 0082BC 800076BC 0C001181 */ jal func_80004604 -/* 0082C0 800076C0 00000000 */ nop -/* 0082C4 800076C4 8FAA007C */ lw $t2, 0x7c($sp) -/* 0082C8 800076C8 24010001 */ li $at, 1 -/* 0082CC 800076CC 11410004 */ beq $t2, $at, .L800076E0 -/* 0082D0 800076D0 00000000 */ nop -/* 0082D4 800076D4 8E8C0000 */ lw $t4, ($s4) -/* 0082D8 800076D8 240B0040 */ li $t3, 64 -/* 0082DC 800076DC A18B0091 */ sb $t3, 0x91($t4) -.L800076E0: -/* 0082E0 800076E0 8E900000 */ lw $s0, ($s4) -/* 0082E4 800076E4 24050004 */ li $a1, 4 -/* 0082E8 800076E8 02116821 */ addu $t5, $s0, $s1 -/* 0082EC 800076EC 8DA40048 */ lw $a0, 0x48($t5) -/* 0082F0 800076F0 92060091 */ lbu $a2, 0x91($s0) -/* 0082F4 800076F4 0C00127E */ jal func_800049F8 -/* 0082F8 800076F8 00000000 */ nop -.L800076FC: -/* 0082FC 800076FC 26B50001 */ addiu $s5, $s5, 1 -/* 008300 80007700 2AA10002 */ slti $at, $s5, 2 -/* 008304 80007704 1020000C */ beqz $at, .L80007738 -/* 008308 80007708 26310004 */ addiu $s1, $s1, 4 -/* 00830C 8000770C 8E900000 */ lw $s0, ($s4) -/* 008310 80007710 00157040 */ sll $t6, $s5, 1 -/* 008314 80007714 020E7821 */ addu $t7, $s0, $t6 -/* 008318 80007718 95F80000 */ lhu $t8, ($t7) -/* 00831C 8000771C 00000000 */ nop -/* 008320 80007720 13000006 */ beqz $t8, .L8000773C -/* 008324 80007724 8FB900AC */ lw $t9, 0xac($sp) -/* 008328 80007728 4634C032 */ c.eq.d $f24, $f20 -/* 00832C 8000772C 00000000 */ nop -/* 008330 80007730 4500FF6D */ bc1f .L800074E8 -/* 008334 80007734 02111021 */ addu $v0, $s0, $s1 -.L80007738: -/* 008338 80007738 8FB900AC */ lw $t9, 0xac($sp) -.L8000773C: -/* 00833C 8000773C 8FA9007C */ lw $t1, 0x7c($sp) -/* 008340 80007740 27280001 */ addiu $t0, $t9, 1 -/* 008344 80007744 AFA800AC */ sw $t0, 0xac($sp) -/* 008348 80007748 1509FE49 */ bne $t0, $t1, .L80007070 -/* 00834C 8000774C 26D60004 */ addiu $s6, $s6, 4 -.L80007750: -/* 008350 80007750 3C01800E */ lui $at, %hi(D_800E4CD8 + 4) # $at, 0x800e -/* 008354 80007754 C43D4CD8 */ lwc1 $f29, %lo(D_800E4CD8)($at) -/* 008358 80007758 C43C4CDC */ lwc1 $f28, %lo(D_800E4CD8 + 4)($at) -/* 00835C 8000775C 8FAA007C */ lw $t2, 0x7c($sp) -/* 008360 80007760 3C01800E */ lui $at, %hi(D_800E4CE0) # $at, 0x800e -/* 008364 80007764 C43E4CE0 */ lwc1 $f30, %lo(D_800E4CE0)($at) -/* 008368 80007768 3C148012 */ lui $s4, %hi(gRacerSound) # $s4, 0x8012 -/* 00836C 8000776C 8FBE00D8 */ lw $fp, 0xd8($sp) -/* 008370 80007770 29410003 */ slti $at, $t2, 3 -/* 008374 80007774 102001E8 */ beqz $at, .L80007F18 -/* 008378 80007778 26949C38 */ addiu $s4, %lo(gRacerSound) # addiu $s4, $s4, -0x63c8 -/* 00837C 8000777C 8FAC00CC */ lw $t4, 0xcc($sp) -/* 008380 80007780 0140A825 */ move $s5, $t2 -/* 008384 80007784 014C082A */ slt $at, $t2, $t4 -/* 008388 80007788 1020004D */ beqz $at, .L800078C0 -/* 00838C 8000778C AFA000AC */ sw $zero, 0xac($sp) -/* 008390 80007790 018A1823 */ subu $v1, $t4, $t2 -/* 008394 80007794 306D0003 */ andi $t5, $v1, 3 -/* 008398 80007798 11A00015 */ beqz $t5, .L800077F0 -/* 00839C 8000779C 01AA1021 */ addu $v0, $t5, $t2 -/* 0083A0 800077A0 8FAE00C8 */ lw $t6, 0xc8($sp) -/* 0083A4 800077A4 000A7880 */ sll $t7, $t2, 2 -/* 0083A8 800077A8 01CF9021 */ addu $s2, $t6, $t7 -.L800077AC: -/* 0083AC 800077AC 8E580000 */ lw $t8, ($s2) -/* 0083B0 800077B0 26B50001 */ addiu $s5, $s5, 1 -/* 0083B4 800077B4 8F110064 */ lw $s1, 0x64($t8) -/* 0083B8 800077B8 00000000 */ nop -/* 0083BC 800077BC 12200006 */ beqz $s1, .L800077D8 -/* 0083C0 800077C0 00000000 */ nop -/* 0083C4 800077C4 8E390118 */ lw $t9, 0x118($s1) -/* 0083C8 800077C8 00000000 */ nop -/* 0083CC 800077CC 13200002 */ beqz $t9, .L800077D8 -/* 0083D0 800077D0 AE990000 */ sw $t9, ($s4) -/* 0083D4 800077D4 A3200088 */ sb $zero, 0x88($t9) -.L800077D8: -/* 0083D8 800077D8 1455FFF4 */ bne $v0, $s5, .L800077AC -/* 0083DC 800077DC 26520004 */ addiu $s2, $s2, 4 -/* 0083E0 800077E0 8FA300CC */ lw $v1, 0xcc($sp) -/* 0083E4 800077E4 00000000 */ nop -/* 0083E8 800077E8 12A30036 */ beq $s5, $v1, .L800078C4 -/* 0083EC 800077EC 8FAA007C */ lw $t2, 0x7c($sp) -.L800077F0: -/* 0083F0 800077F0 8FA300CC */ lw $v1, 0xcc($sp) -/* 0083F4 800077F4 8FA800C8 */ lw $t0, 0xc8($sp) -/* 0083F8 800077F8 00154880 */ sll $t1, $s5, 2 -/* 0083FC 800077FC 00035080 */ sll $t2, $v1, 2 -/* 008400 80007800 01481021 */ addu $v0, $t2, $t0 -/* 008404 80007804 01099021 */ addu $s2, $t0, $t1 -.L80007808: -/* 008408 80007808 8E4C0000 */ lw $t4, ($s2) -/* 00840C 8000780C 00000000 */ nop -/* 008410 80007810 8D910064 */ lw $s1, 0x64($t4) -/* 008414 80007814 00000000 */ nop -/* 008418 80007818 12200006 */ beqz $s1, .L80007834 -/* 00841C 8000781C 00000000 */ nop -/* 008420 80007820 8E2D0118 */ lw $t5, 0x118($s1) -/* 008424 80007824 00000000 */ nop -/* 008428 80007828 11A00002 */ beqz $t5, .L80007834 -/* 00842C 8000782C AE8D0000 */ sw $t5, ($s4) -/* 008430 80007830 A1A00088 */ sb $zero, 0x88($t5) -.L80007834: -/* 008434 80007834 8E4B0004 */ lw $t3, 4($s2) -/* 008438 80007838 00000000 */ nop -/* 00843C 8000783C 8D710064 */ lw $s1, 0x64($t3) -/* 008440 80007840 00000000 */ nop -/* 008444 80007844 12200006 */ beqz $s1, .L80007860 -/* 008448 80007848 00000000 */ nop -/* 00844C 8000784C 8E2E0118 */ lw $t6, 0x118($s1) -/* 008450 80007850 00000000 */ nop -/* 008454 80007854 11C00002 */ beqz $t6, .L80007860 -/* 008458 80007858 AE8E0000 */ sw $t6, ($s4) -/* 00845C 8000785C A1C00088 */ sb $zero, 0x88($t6) -.L80007860: -/* 008460 80007860 8E4F0008 */ lw $t7, 8($s2) -/* 008464 80007864 00000000 */ nop -/* 008468 80007868 8DF10064 */ lw $s1, 0x64($t7) -/* 00846C 8000786C 00000000 */ nop -/* 008470 80007870 12200006 */ beqz $s1, .L8000788C -/* 008474 80007874 00000000 */ nop -/* 008478 80007878 8E380118 */ lw $t8, 0x118($s1) -/* 00847C 8000787C 00000000 */ nop -/* 008480 80007880 13000002 */ beqz $t8, .L8000788C -/* 008484 80007884 AE980000 */ sw $t8, ($s4) -/* 008488 80007888 A3000088 */ sb $zero, 0x88($t8) -.L8000788C: -/* 00848C 8000788C 8E59000C */ lw $t9, 0xc($s2) -/* 008490 80007890 26520010 */ addiu $s2, $s2, 0x10 -/* 008494 80007894 8F310064 */ lw $s1, 0x64($t9) -/* 008498 80007898 00000000 */ nop -/* 00849C 8000789C 12200006 */ beqz $s1, .L800078B8 -/* 0084A0 800078A0 00000000 */ nop -/* 0084A4 800078A4 8E290118 */ lw $t1, 0x118($s1) -/* 0084A8 800078A8 00000000 */ nop -/* 0084AC 800078AC 11200002 */ beqz $t1, .L800078B8 -/* 0084B0 800078B0 AE890000 */ sw $t1, ($s4) -/* 0084B4 800078B4 A1200088 */ sb $zero, 0x88($t1) -.L800078B8: -/* 0084B8 800078B8 1642FFD3 */ bne $s2, $v0, .L80007808 -/* 0084BC 800078BC 00000000 */ nop -.L800078C0: -/* 0084C0 800078C0 8FAA007C */ lw $t2, 0x7c($sp) -.L800078C4: -/* 0084C4 800078C4 8FB600C8 */ lw $s6, 0xc8($sp) -/* 0084C8 800078C8 194000D7 */ blez $t2, .L80007C28 -/* 0084CC 800078CC 3C01800E */ lui $at, %hi(D_800E4CE8 + 4) # $at, 0x800e -/* 0084D0 800078D0 C4394CE8 */ lwc1 $f25, %lo(D_800E4CE8)($at) -/* 0084D4 800078D4 C4384CEC */ lwc1 $f24, %lo(D_800E4CE8 + 4)($at) -/* 0084D8 800078D8 00000000 */ nop -.L800078DC: -/* 0084DC 800078DC 8EC80000 */ lw $t0, ($s6) -/* 0084E0 800078E0 8FAC007C */ lw $t4, 0x7c($sp) -/* 0084E4 800078E4 8FAD00CC */ lw $t5, 0xcc($sp) -/* 0084E8 800078E8 8D110064 */ lw $s1, 0x64($t0) -/* 0084EC 800078EC 018D082A */ slt $at, $t4, $t5 -/* 0084F0 800078F0 102000C7 */ beqz $at, .L80007C10 -/* 0084F4 800078F4 0180A825 */ move $s5, $t4 -/* 0084F8 800078F8 8FAB00C8 */ lw $t3, 0xc8($sp) -/* 0084FC 800078FC 000C7080 */ sll $t6, $t4, 2 -/* 008500 80007900 016E9021 */ addu $s2, $t3, $t6 -.L80007904: -/* 008504 80007904 8E4F0000 */ lw $t7, ($s2) -/* 008508 80007908 00000000 */ nop -/* 00850C 8000790C 8DE20064 */ lw $v0, 0x64($t7) -/* 008510 80007910 00000000 */ nop -/* 008514 80007914 104000BB */ beqz $v0, .L80007C04 -/* 008518 80007918 8FAA00CC */ lw $t2, 0xcc($sp) -/* 00851C 8000791C 8C580118 */ lw $t8, 0x118($v0) -/* 008520 80007920 00000000 */ nop -/* 008524 80007924 130000B6 */ beqz $t8, .L80007C00 -/* 008528 80007928 AE980000 */ sw $t8, ($s4) -/* 00852C 8000792C 822901D8 */ lb $t1, 0x1d8($s1) -/* 008530 80007930 8FAA00AC */ lw $t2, 0xac($sp) -/* 008534 80007934 1120000F */ beqz $t1, .L80007974 -/* 008538 80007938 000A4100 */ sll $t0, $t2, 4 -/* 00853C 8000793C 010A4021 */ addu $t0, $t0, $t2 -/* 008540 80007940 8E420000 */ lw $v0, ($s2) -/* 008544 80007944 00084080 */ sll $t0, $t0, 2 -/* 008548 80007948 02E81821 */ addu $v1, $s7, $t0 -/* 00854C 8000794C C464000C */ lwc1 $f4, 0xc($v1) -/* 008550 80007950 C4680010 */ lwc1 $f8, 0x10($v1) -/* 008554 80007954 C4700014 */ lwc1 $f16, 0x14($v1) -/* 008558 80007958 C44A000C */ lwc1 $f10, 0xc($v0) -/* 00855C 8000795C C4520010 */ lwc1 $f18, 0x10($v0) -/* 008560 80007960 C4460014 */ lwc1 $f6, 0x14($v0) -/* 008564 80007964 46045501 */ sub.s $f20, $f10, $f4 -/* 008568 80007968 46089001 */ sub.s $f0, $f18, $f8 -/* 00856C 8000796C 1000000C */ b .L800079A0 -/* 008570 80007970 46103581 */ sub.s $f22, $f6, $f16 -.L80007974: -/* 008574 80007974 8E420000 */ lw $v0, ($s2) -/* 008578 80007978 8ED00000 */ lw $s0, ($s6) -/* 00857C 8000797C C44A000C */ lwc1 $f10, 0xc($v0) -/* 008580 80007980 C4520010 */ lwc1 $f18, 0x10($v0) -/* 008584 80007984 C4460014 */ lwc1 $f6, 0x14($v0) -/* 008588 80007988 C604000C */ lwc1 $f4, 0xc($s0) -/* 00858C 8000798C C6080010 */ lwc1 $f8, 0x10($s0) -/* 008590 80007990 C6100014 */ lwc1 $f16, 0x14($s0) -/* 008594 80007994 46045501 */ sub.s $f20, $f10, $f4 -/* 008598 80007998 46089001 */ sub.s $f0, $f18, $f8 -/* 00859C 8000799C 46103581 */ sub.s $f22, $f6, $f16 -.L800079A0: -/* 0085A0 800079A0 4614A282 */ mul.s $f10, $f20, $f20 -/* 0085A4 800079A4 00000000 */ nop -/* 0085A8 800079A8 46000102 */ mul.s $f4, $f0, $f0 -/* 0085AC 800079AC 00000000 */ nop -/* 0085B0 800079B0 4616B202 */ mul.s $f8, $f22, $f22 -/* 0085B4 800079B4 46045480 */ add.s $f18, $f10, $f4 -/* 0085B8 800079B8 0C0326B4 */ jal sqrtf -/* 0085BC 800079BC 46089300 */ add.s $f12, $f18, $f8 -/* 0085C0 800079C0 8E8C0000 */ lw $t4, ($s4) -/* 0085C4 800079C4 3C01800E */ lui $at, %hi(D_800E4CF0) # $at, 0x800e -/* 0085C8 800079C8 E5800084 */ swc1 $f0, 0x84($t4) -/* 0085CC 800079CC 8E900000 */ lw $s0, ($s4) -/* 0085D0 800079D0 C4264CF0 */ lwc1 $f6, %lo(D_800E4CF0)($at) -/* 0085D4 800079D4 C6020084 */ lwc1 $f2, 0x84($s0) -/* 0085D8 800079D8 00000000 */ nop -/* 0085DC 800079DC 4606103C */ c.lt.s $f2, $f6 -/* 0085E0 800079E0 00000000 */ nop -/* 0085E4 800079E4 45000087 */ bc1f .L80007C04 -/* 0085E8 800079E8 8FAA00CC */ lw $t2, 0xcc($sp) -/* 0085EC 800079EC 46021402 */ mul.s $f16, $f2, $f2 -/* 0085F0 800079F0 C6040054 */ lwc1 $f4, 0x54($s0) -/* 0085F4 800079F4 24020001 */ li $v0, 1 -/* 0085F8 800079F8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0085FC 800079FC 4610F281 */ sub.s $f10, $f30, $f16 -/* 008600 80007A00 00000000 */ nop -/* 008604 80007A04 461E5683 */ div.s $f26, $f10, $f30 -/* 008608 80007A08 461A2482 */ mul.s $f18, $f4, $f26 -/* 00860C 80007A0C 444DF800 */ cfc1 $t5, $31 -/* 008610 80007A10 44C2F800 */ ctc1 $v0, $31 -/* 008614 80007A14 00000000 */ nop -/* 008618 80007A18 46009224 */ cvt.w.s $f8, $f18 -/* 00861C 80007A1C 4442F800 */ cfc1 $v0, $31 -/* 008620 80007A20 00000000 */ nop -/* 008624 80007A24 30420078 */ andi $v0, $v0, 0x78 -/* 008628 80007A28 10400012 */ beqz $v0, .L80007A74 -/* 00862C 80007A2C 00000000 */ nop -/* 008630 80007A30 44814000 */ mtc1 $at, $f8 -/* 008634 80007A34 24020001 */ li $v0, 1 -/* 008638 80007A38 46089201 */ sub.s $f8, $f18, $f8 -/* 00863C 80007A3C 3C018000 */ lui $at, 0x8000 -/* 008640 80007A40 44C2F800 */ ctc1 $v0, $31 -/* 008644 80007A44 00000000 */ nop -/* 008648 80007A48 46004224 */ cvt.w.s $f8, $f8 -/* 00864C 80007A4C 4442F800 */ cfc1 $v0, $31 -/* 008650 80007A50 00000000 */ nop -/* 008654 80007A54 30420078 */ andi $v0, $v0, 0x78 -/* 008658 80007A58 14400004 */ bnez $v0, .L80007A6C -/* 00865C 80007A5C 00000000 */ nop -/* 008660 80007A60 44024000 */ mfc1 $v0, $f8 -/* 008664 80007A64 10000007 */ b .L80007A84 -/* 008668 80007A68 00411025 */ or $v0, $v0, $at -.L80007A6C: -/* 00866C 80007A6C 10000005 */ b .L80007A84 -/* 008670 80007A70 2402FFFF */ li $v0, -1 -.L80007A74: -/* 008674 80007A74 44024000 */ mfc1 $v0, $f8 -/* 008678 80007A78 00000000 */ nop -/* 00867C 80007A7C 0440FFFB */ bltz $v0, .L80007A6C -/* 008680 80007A80 00000000 */ nop -.L80007A84: -/* 008684 80007A84 304B00FF */ andi $t3, $v0, 0xff -/* 008688 80007A88 44CDF800 */ ctc1 $t5, $31 -/* 00868C 80007A8C 29610080 */ slti $at, $t3, 0x80 -/* 008690 80007A90 14200002 */ bnez $at, .L80007A9C -/* 008694 80007A94 01601025 */ move $v0, $t3 -/* 008698 80007A98 2402007F */ li $v0, 127 -.L80007A9C: -/* 00869C 80007A9C 44823000 */ mtc1 $v0, $f6 -/* 0086A0 80007AA0 04410006 */ bgez $v0, .L80007ABC -/* 0086A4 80007AA4 46803421 */ cvt.d.w $f16, $f6 -/* 0086A8 80007AA8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 0086AC 80007AAC 44815800 */ mtc1 $at, $f11 -/* 0086B0 80007AB0 44805000 */ mtc1 $zero, $f10 -/* 0086B4 80007AB4 00000000 */ nop -/* 0086B8 80007AB8 462A8400 */ add.d $f16, $f16, $f10 -.L80007ABC: -/* 0086BC 80007ABC 46388102 */ mul.d $f4, $f16, $f24 -/* 0086C0 80007AC0 24020001 */ li $v0, 1 -/* 0086C4 80007AC4 3C0141E0 */ li $at, 0x41E00000 # 28.000000 -/* 0086C8 80007AC8 444EF800 */ cfc1 $t6, $31 -/* 0086CC 80007ACC 44C2F800 */ ctc1 $v0, $31 -/* 0086D0 80007AD0 00000000 */ nop -/* 0086D4 80007AD4 462024A4 */ cvt.w.d $f18, $f4 -/* 0086D8 80007AD8 4442F800 */ cfc1 $v0, $31 -/* 0086DC 80007ADC 00000000 */ nop -/* 0086E0 80007AE0 30420078 */ andi $v0, $v0, 0x78 -/* 0086E4 80007AE4 10400013 */ beqz $v0, .L80007B34 -/* 0086E8 80007AE8 00000000 */ nop -/* 0086EC 80007AEC 44819800 */ mtc1 $at, $f19 -/* 0086F0 80007AF0 44809000 */ mtc1 $zero, $f18 -/* 0086F4 80007AF4 24020001 */ li $v0, 1 -/* 0086F8 80007AF8 46322481 */ sub.d $f18, $f4, $f18 -/* 0086FC 80007AFC 3C018000 */ lui $at, 0x8000 -/* 008700 80007B00 44C2F800 */ ctc1 $v0, $31 -/* 008704 80007B04 00000000 */ nop -/* 008708 80007B08 462094A4 */ cvt.w.d $f18, $f18 -/* 00870C 80007B0C 4442F800 */ cfc1 $v0, $31 -/* 008710 80007B10 00000000 */ nop -/* 008714 80007B14 30420078 */ andi $v0, $v0, 0x78 -/* 008718 80007B18 14400004 */ bnez $v0, .L80007B2C -/* 00871C 80007B1C 00000000 */ nop -/* 008720 80007B20 44029000 */ mfc1 $v0, $f18 -/* 008724 80007B24 10000007 */ b .L80007B44 -/* 008728 80007B28 00411025 */ or $v0, $v0, $at -.L80007B2C: -/* 00872C 80007B2C 10000005 */ b .L80007B44 -/* 008730 80007B30 2402FFFF */ li $v0, -1 -.L80007B34: -/* 008734 80007B34 44029000 */ mfc1 $v0, $f18 -/* 008738 80007B38 00000000 */ nop -/* 00873C 80007B3C 0440FFFB */ bltz $v0, .L80007B2C -/* 008740 80007B40 00000000 */ nop -.L80007B44: -/* 008744 80007B44 92180088 */ lbu $t8, 0x88($s0) -/* 008748 80007B48 304F00FF */ andi $t7, $v0, 0xff -/* 00874C 80007B4C 44CEF800 */ ctc1 $t6, $31 -/* 008750 80007B50 030F082A */ slt $at, $t8, $t7 -/* 008754 80007B54 1020002B */ beqz $at, .L80007C04 -/* 008758 80007B58 8FAA00CC */ lw $t2, 0xcc($sp) -/* 00875C 80007B5C A20F0088 */ sb $t7, 0x88($s0) -/* 008760 80007B60 86E60000 */ lh $a2, ($s7) -/* 008764 80007B64 4600A306 */ mov.s $f12, $f20 -/* 008768 80007B68 0C002430 */ jal func_800090C0 -/* 00876C 80007B6C 4600B386 */ mov.s $f14, $f22 -/* 008770 80007B70 8E990000 */ lw $t9, ($s4) -/* 008774 80007B74 03C03825 */ move $a3, $fp -/* 008778 80007B78 A3220091 */ sb $v0, 0x91($t9) -/* 00877C 80007B7C 822901D8 */ lb $t1, 0x1d8($s1) -/* 008780 80007B80 00002825 */ move $a1, $zero -/* 008784 80007B84 11200007 */ beqz $t1, .L80007BA4 -/* 008788 80007B88 00000000 */ nop -/* 00878C 80007B8C 8EC40000 */ lw $a0, ($s6) -/* 008790 80007B90 8E460000 */ lw $a2, ($s2) -/* 008794 80007B94 0C001AFF */ jal func_80006BFC -/* 008798 80007B98 02E02825 */ move $a1, $s7 -/* 00879C 80007B9C 10000006 */ b .L80007BB8 -/* 0087A0 80007BA0 8E900000 */ lw $s0, ($s4) -.L80007BA4: -/* 0087A4 80007BA4 8EC40000 */ lw $a0, ($s6) -/* 0087A8 80007BA8 8E460000 */ lw $a2, ($s2) -/* 0087AC 80007BAC 0C001AFF */ jal func_80006BFC -/* 0087B0 80007BB0 03C03825 */ move $a3, $fp -/* 0087B4 80007BB4 8E900000 */ lw $s0, ($s4) -.L80007BB8: -/* 0087B8 80007BB8 3C01800E */ lui $at, %hi(D_800E4CF4) # $at, 0x800e -/* 0087BC 80007BBC C608005C */ lwc1 $f8, 0x5c($s0) -/* 0087C0 80007BC0 C6060068 */ lwc1 $f6, 0x68($s0) -/* 0087C4 80007BC4 00000000 */ nop -/* 0087C8 80007BC8 46064280 */ add.s $f10, $f8, $f6 -/* 0087CC 80007BCC E60A008C */ swc1 $f10, 0x8c($s0) -/* 0087D0 80007BD0 8E900000 */ lw $s0, ($s4) -/* 0087D4 80007BD4 00000000 */ nop -/* 0087D8 80007BD8 C610008C */ lwc1 $f16, 0x8c($s0) -/* 0087DC 80007BDC 00000000 */ nop -/* 0087E0 80007BE0 46008121 */ cvt.d.s $f4, $f16 -/* 0087E4 80007BE4 463C203C */ c.lt.d $f4, $f28 -/* 0087E8 80007BE8 00000000 */ nop -/* 0087EC 80007BEC 45000005 */ bc1f .L80007C04 -/* 0087F0 80007BF0 8FAA00CC */ lw $t2, 0xcc($sp) -/* 0087F4 80007BF4 C4324CF4 */ lwc1 $f18, %lo(D_800E4CF4)($at) -/* 0087F8 80007BF8 00000000 */ nop -/* 0087FC 80007BFC E612008C */ swc1 $f18, 0x8c($s0) -.L80007C00: -/* 008800 80007C00 8FAA00CC */ lw $t2, 0xcc($sp) -.L80007C04: -/* 008804 80007C04 26B50001 */ addiu $s5, $s5, 1 -/* 008808 80007C08 16AAFF3E */ bne $s5, $t2, .L80007904 -/* 00880C 80007C0C 26520004 */ addiu $s2, $s2, 4 -.L80007C10: -/* 008810 80007C10 8FA800AC */ lw $t0, 0xac($sp) -/* 008814 80007C14 8FAD007C */ lw $t5, 0x7c($sp) -/* 008818 80007C18 250C0001 */ addiu $t4, $t0, 1 -/* 00881C 80007C1C AFAC00AC */ sw $t4, 0xac($sp) -/* 008820 80007C20 158DFF2E */ bne $t4, $t5, .L800078DC -/* 008824 80007C24 26D60004 */ addiu $s6, $s6, 4 -.L80007C28: -/* 008828 80007C28 3C138012 */ lui $s3, %hi(D_80119C30) # $s3, 0x8012 -/* 00882C 80007C2C 3C108012 */ lui $s0, %hi(gRacerSound) # $s0, 0x8012 -/* 008830 80007C30 26109C38 */ addiu $s0, %lo(gRacerSound) # addiu $s0, $s0, -0x63c8 -/* 008834 80007C34 26739C30 */ addiu $s3, %lo(D_80119C30) # addiu $s3, $s3, -0x63d0 -.L80007C38: -/* 008838 80007C38 8E620000 */ lw $v0, ($s3) -/* 00883C 80007C3C 00000000 */ nop -/* 008840 80007C40 10400013 */ beqz $v0, .L80007C90 -/* 008844 80007C44 00000000 */ nop -/* 008848 80007C48 8C440048 */ lw $a0, 0x48($v0) -/* 00884C 80007C4C 00000000 */ nop -/* 008850 80007C50 1080000F */ beqz $a0, .L80007C90 -/* 008854 80007C54 00000000 */ nop -/* 008858 80007C58 904B0088 */ lbu $t3, 0x88($v0) -/* 00885C 80007C5C 00000000 */ nop -/* 008860 80007C60 29610008 */ slti $at, $t3, 8 -/* 008864 80007C64 1020000A */ beqz $at, .L80007C90 -/* 008868 80007C68 00000000 */ nop -/* 00886C 80007C6C 0C001223 */ jal func_8000488C -/* 008870 80007C70 00000000 */ nop -/* 008874 80007C74 8E6E0000 */ lw $t6, ($s3) -/* 008878 80007C78 00000000 */ nop -/* 00887C 80007C7C ADC00048 */ sw $zero, 0x48($t6) -/* 008880 80007C80 8E6F0000 */ lw $t7, ($s3) -/* 008884 80007C84 00000000 */ nop -/* 008888 80007C88 A1E00074 */ sb $zero, 0x74($t7) -/* 00888C 80007C8C AE600000 */ sw $zero, ($s3) -.L80007C90: -/* 008890 80007C90 26730004 */ addiu $s3, $s3, 4 -/* 008894 80007C94 1670FFE8 */ bne $s3, $s0, .L80007C38 -/* 008898 80007C98 00000000 */ nop -/* 00889C 80007C9C 3C07800E */ lui $a3, %hi(D_800DC6D4) # $a3, 0x800e -/* 0088A0 80007CA0 24E7C6D4 */ addiu $a3, %lo(D_800DC6D4) # addiu $a3, $a3, -0x392c -/* 0088A4 80007CA4 8CE20000 */ lw $v0, ($a3) -/* 0088A8 80007CA8 24170002 */ li $s7, 2 -/* 0088AC 80007CAC 03C2082A */ slt $at, $fp, $v0 -/* 0088B0 80007CB0 10200003 */ beqz $at, .L80007CC0 -/* 0088B4 80007CB4 005EC023 */ subu $t8, $v0, $fp -/* 0088B8 80007CB8 10000002 */ b .L80007CC4 -/* 0088BC 80007CBC ACF80000 */ sw $t8, ($a3) -.L80007CC0: -/* 0088C0 80007CC0 ACE00000 */ sw $zero, ($a3) -.L80007CC4: -/* 0088C4 80007CC4 8FB900CC */ lw $t9, 0xcc($sp) -/* 0088C8 80007CC8 8FB200C8 */ lw $s2, 0xc8($sp) -/* 0088CC 80007CCC 2B210002 */ slti $at, $t9, 2 -/* 0088D0 80007CD0 14200054 */ bnez $at, .L80007E24 -/* 0088D4 80007CD4 24150001 */ li $s5, 1 -/* 0088D8 80007CD8 26520004 */ addiu $s2, $s2, 4 -/* 0088DC 80007CDC 241EFFFF */ li $fp, -1 -/* 0088E0 80007CE0 24160002 */ li $s6, 2 -.L80007CE4: -/* 0088E4 80007CE4 8E490000 */ lw $t1, ($s2) -/* 0088E8 80007CE8 00000000 */ nop -/* 0088EC 80007CEC 8D220064 */ lw $v0, 0x64($t1) -/* 0088F0 80007CF0 00000000 */ nop -/* 0088F4 80007CF4 10400048 */ beqz $v0, .L80007E18 -/* 0088F8 80007CF8 8FAC00CC */ lw $t4, 0xcc($sp) -/* 0088FC 80007CFC 8C4A0118 */ lw $t2, 0x118($v0) -/* 008900 80007D00 00000000 */ nop -/* 008904 80007D04 AE8A0000 */ sw $t2, ($s4) -/* 008908 80007D08 11400042 */ beqz $t2, .L80007E14 -/* 00890C 80007D0C 01408025 */ move $s0, $t2 -/* 008910 80007D10 91480074 */ lbu $t0, 0x74($t2) -/* 008914 80007D14 00000000 */ nop -/* 008918 80007D18 1500003F */ bnez $t0, .L80007E18 -/* 00891C 80007D1C 8FAC00CC */ lw $t4, 0xcc($sp) -/* 008920 80007D20 954C0000 */ lhu $t4, ($t2) -/* 008924 80007D24 24060014 */ li $a2, 20 -/* 008928 80007D28 1180003A */ beqz $t4, .L80007E14 -/* 00892C 80007D2C 03C02025 */ move $a0, $fp -/* 008930 80007D30 3C138012 */ lui $s3, %hi(D_80119C30) # $s3, 0x8012 -/* 008934 80007D34 91450088 */ lbu $a1, 0x88($t2) -/* 008938 80007D38 26739C30 */ addiu $s3, %lo(D_80119C30) # addiu $s3, $s3, -0x63d0 -/* 00893C 80007D3C 00001825 */ move $v1, $zero -.L80007D40: -/* 008940 80007D40 8E710000 */ lw $s1, ($s3) -/* 008944 80007D44 28A10009 */ slti $at, $a1, 9 -/* 008948 80007D48 1220000E */ beqz $s1, .L80007D84 -/* 00894C 80007D4C 00000000 */ nop -/* 008950 80007D50 922D0088 */ lbu $t5, 0x88($s1) -/* 008954 80007D54 00000000 */ nop -/* 008958 80007D58 00AD1023 */ subu $v0, $a1, $t5 -/* 00895C 80007D5C 00C2082A */ slt $at, $a2, $v0 -/* 008960 80007D60 1020000B */ beqz $at, .L80007D90 -/* 008964 80007D64 00000000 */ nop -/* 008968 80007D68 8CEB0000 */ lw $t3, ($a3) -/* 00896C 80007D6C 00000000 */ nop -/* 008970 80007D70 15600007 */ bnez $t3, .L80007D90 -/* 008974 80007D74 00000000 */ nop -/* 008978 80007D78 00602025 */ move $a0, $v1 -/* 00897C 80007D7C 10000004 */ b .L80007D90 -/* 008980 80007D80 00403025 */ move $a2, $v0 -.L80007D84: -/* 008984 80007D84 14200002 */ bnez $at, .L80007D90 -/* 008988 80007D88 00000000 */ nop -/* 00898C 80007D8C 00602025 */ move $a0, $v1 -.L80007D90: -/* 008990 80007D90 24630001 */ addiu $v1, $v1, 1 -/* 008994 80007D94 1476FFEA */ bne $v1, $s6, .L80007D40 -/* 008998 80007D98 26730004 */ addiu $s3, $s3, 4 -/* 00899C 80007D9C 109E001D */ beq $a0, $fp, .L80007E14 -/* 0089A0 80007DA0 00047080 */ sll $t6, $a0, 2 -/* 0089A4 80007DA4 3C0F8012 */ lui $t7, %hi(D_80119C30) # $t7, 0x8012 -/* 0089A8 80007DA8 25EF9C30 */ addiu $t7, %lo(D_80119C30) # addiu $t7, $t7, -0x63d0 -/* 0089AC 80007DAC A2170074 */ sb $s7, 0x74($s0) -/* 0089B0 80007DB0 01CF8821 */ addu $s1, $t6, $t7 -/* 0089B4 80007DB4 8E220000 */ lw $v0, ($s1) -/* 0089B8 80007DB8 00000000 */ nop -/* 0089BC 80007DBC 10400012 */ beqz $v0, .L80007E08 -/* 0089C0 80007DC0 00000000 */ nop -/* 0089C4 80007DC4 8C440048 */ lw $a0, 0x48($v0) -/* 0089C8 80007DC8 00000000 */ nop -/* 0089CC 80007DCC 1080000C */ beqz $a0, .L80007E00 -/* 0089D0 80007DD0 240A003C */ li $t2, 60 -/* 0089D4 80007DD4 0C001223 */ jal func_8000488C -/* 0089D8 80007DD8 00000000 */ nop -/* 0089DC 80007DDC 8E380000 */ lw $t8, ($s1) -/* 0089E0 80007DE0 24190001 */ li $t9, 1 -/* 0089E4 80007DE4 AF000048 */ sw $zero, 0x48($t8) -/* 0089E8 80007DE8 8E890000 */ lw $t1, ($s4) -/* 0089EC 80007DEC 3C07800E */ lui $a3, %hi(D_800DC6D4) # $a3, 0x800e -/* 0089F0 80007DF0 A1390074 */ sb $t9, 0x74($t1) -/* 0089F4 80007DF4 8E220000 */ lw $v0, ($s1) -/* 0089F8 80007DF8 24E7C6D4 */ addiu $a3, %lo(D_800DC6D4) # addiu $a3, $a3, -0x392c -/* 0089FC 80007DFC 240A003C */ li $t2, 60 -.L80007E00: -/* 008A00 80007E00 ACEA0000 */ sw $t2, ($a3) -/* 008A04 80007E04 A0400074 */ sb $zero, 0x74($v0) -.L80007E08: -/* 008A08 80007E08 8E880000 */ lw $t0, ($s4) -/* 008A0C 80007E0C 00000000 */ nop -/* 008A10 80007E10 AE280000 */ sw $t0, ($s1) -.L80007E14: -/* 008A14 80007E14 8FAC00CC */ lw $t4, 0xcc($sp) -.L80007E18: -/* 008A18 80007E18 26B50001 */ addiu $s5, $s5, 1 -/* 008A1C 80007E1C 16ACFFB1 */ bne $s5, $t4, .L80007CE4 -/* 008A20 80007E20 26520004 */ addiu $s2, $s2, 4 -.L80007E24: -/* 008A24 80007E24 0C0044E7 */ jal get_race_countdown -/* 008A28 80007E28 24170002 */ li $s7, 2 -/* 008A2C 80007E2C 1C40003A */ bgtz $v0, .L80007F18 -/* 008A30 80007E30 3C138012 */ lui $s3, %hi(D_80119C30) # $s3, 0x8012 -/* 008A34 80007E34 3C108012 */ lui $s0, %hi(gRacerSound) # $s0, 0x8012 -/* 008A38 80007E38 26109C38 */ addiu $s0, %lo(gRacerSound) # addiu $s0, $s0, -0x63c8 -/* 008A3C 80007E3C 26739C30 */ addiu $s3, %lo(D_80119C30) # addiu $s3, $s3, -0x63d0 -.L80007E40: -/* 008A40 80007E40 8E710000 */ lw $s1, ($s3) -/* 008A44 80007E44 00000000 */ nop -/* 008A48 80007E48 12200030 */ beqz $s1, .L80007F0C -/* 008A4C 80007E4C 00000000 */ nop -/* 008A50 80007E50 96260000 */ lhu $a2, ($s1) -/* 008A54 80007E54 00000000 */ nop -/* 008A58 80007E58 10C0002C */ beqz $a2, .L80007F0C -/* 008A5C 80007E5C 00000000 */ nop -/* 008A60 80007E60 922D0074 */ lbu $t5, 0x74($s1) -/* 008A64 80007E64 24010001 */ li $at, 1 -/* 008A68 80007E68 15A10003 */ bne $t5, $at, .L80007E78 -/* 008A6C 80007E6C 00000000 */ nop -/* 008A70 80007E70 10000026 */ b .L80007F0C -/* 008A74 80007E74 A2370074 */ sb $s7, 0x74($s1) -.L80007E78: -/* 008A78 80007E78 8E240048 */ lw $a0, 0x48($s1) -/* 008A7C 80007E7C 26250048 */ addiu $a1, $s1, 0x48 -/* 008A80 80007E80 14800005 */ bnez $a0, .L80007E98 -/* 008A84 80007E84 00000000 */ nop -/* 008A88 80007E88 0C0007C5 */ jal func_80001F14 -/* 008A8C 80007E8C 30C4FFFF */ andi $a0, $a2, 0xffff -/* 008A90 80007E90 8E240048 */ lw $a0, 0x48($s1) -/* 008A94 80007E94 00000000 */ nop -.L80007E98: -/* 008A98 80007E98 1080001C */ beqz $a0, .L80007F0C -/* 008A9C 80007E9C 00000000 */ nop -/* 008AA0 80007EA0 8E250078 */ lw $a1, 0x78($s1) -/* 008AA4 80007EA4 8E26007C */ lw $a2, 0x7c($s1) -/* 008AA8 80007EA8 8E270080 */ lw $a3, 0x80($s1) -/* 008AAC 80007EAC 0C0026DF */ jal func_80009B7C -/* 008AB0 80007EB0 00000000 */ nop -/* 008AB4 80007EB4 92260088 */ lbu $a2, 0x88($s1) -/* 008AB8 80007EB8 8E240048 */ lw $a0, 0x48($s1) -/* 008ABC 80007EBC 00065A00 */ sll $t3, $a2, 8 -/* 008AC0 80007EC0 01603025 */ move $a2, $t3 -/* 008AC4 80007EC4 0C00127E */ jal func_800049F8 -/* 008AC8 80007EC8 24050008 */ li $a1, 8 -/* 008ACC 80007ECC 8E240048 */ lw $a0, 0x48($s1) -/* 008AD0 80007ED0 8E26008C */ lw $a2, 0x8c($s1) -/* 008AD4 80007ED4 0C00127E */ jal func_800049F8 -/* 008AD8 80007ED8 24050010 */ li $a1, 16 -/* 008ADC 80007EDC 8FAE007C */ lw $t6, 0x7c($sp) -/* 008AE0 80007EE0 24010001 */ li $at, 1 -/* 008AE4 80007EE4 11C10002 */ beq $t6, $at, .L80007EF0 -/* 008AE8 80007EE8 240F0040 */ li $t7, 64 -/* 008AEC 80007EEC A22F0091 */ sb $t7, 0x91($s1) -.L80007EF0: -/* 008AF0 80007EF0 8E240048 */ lw $a0, 0x48($s1) -/* 008AF4 80007EF4 92260091 */ lbu $a2, 0x91($s1) -/* 008AF8 80007EF8 0C00127E */ jal func_800049F8 -/* 008AFC 80007EFC 24050004 */ li $a1, 4 -/* 008B00 80007F00 8E240048 */ lw $a0, 0x48($s1) -/* 008B04 80007F04 0C001181 */ jal func_80004604 -/* 008B08 80007F08 24050046 */ li $a1, 70 -.L80007F0C: -/* 008B0C 80007F0C 26730004 */ addiu $s3, $s3, 4 -/* 008B10 80007F10 1670FFCB */ bne $s3, $s0, .L80007E40 -/* 008B14 80007F14 00000000 */ nop -.L80007F18: -/* 008B18 80007F18 8FBF006C */ lw $ra, 0x6c($sp) -/* 008B1C 80007F1C C7B50018 */ lwc1 $f21, 0x18($sp) -/* 008B20 80007F20 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 008B24 80007F24 C7B70020 */ lwc1 $f23, 0x20($sp) -/* 008B28 80007F28 C7B60024 */ lwc1 $f22, 0x24($sp) -/* 008B2C 80007F2C C7B90028 */ lwc1 $f25, 0x28($sp) -/* 008B30 80007F30 C7B8002C */ lwc1 $f24, 0x2c($sp) -/* 008B34 80007F34 C7BB0030 */ lwc1 $f27, 0x30($sp) -/* 008B38 80007F38 C7BA0034 */ lwc1 $f26, 0x34($sp) -/* 008B3C 80007F3C C7BD0038 */ lwc1 $f29, 0x38($sp) -/* 008B40 80007F40 C7BC003C */ lwc1 $f28, 0x3c($sp) -/* 008B44 80007F44 C7BF0040 */ lwc1 $f31, 0x40($sp) -/* 008B48 80007F48 C7BE0044 */ lwc1 $f30, 0x44($sp) -/* 008B4C 80007F4C 8FB00048 */ lw $s0, 0x48($sp) -/* 008B50 80007F50 8FB1004C */ lw $s1, 0x4c($sp) -/* 008B54 80007F54 8FB20050 */ lw $s2, 0x50($sp) -/* 008B58 80007F58 8FB30054 */ lw $s3, 0x54($sp) -/* 008B5C 80007F5C 8FB40058 */ lw $s4, 0x58($sp) -/* 008B60 80007F60 8FB5005C */ lw $s5, 0x5c($sp) -/* 008B64 80007F64 8FB60060 */ lw $s6, 0x60($sp) -/* 008B68 80007F68 8FB70064 */ lw $s7, 0x64($sp) -/* 008B6C 80007F6C 8FBE0068 */ lw $fp, 0x68($sp) -/* 008B70 80007F70 03E00008 */ jr $ra -/* 008B74 80007F74 27BD00C8 */ addiu $sp, $sp, 0xc8 +.late_rodata +glabel D_800E4CC4 +.float 2250000.0 +glabel D_800E4CC8 +.double 0.05 +glabel D_800E4CD0 +.float 1500.0 +glabel D_800E4CD4 +.float 0.05 +glabel D_800E4CD8 +.double 0.05 +glabel D_800E4CE0 +.float 2250000.0 +.word 0 # Padding +glabel D_800E4CE8 +.double 0.8 +glabel D_800E4CF0 +.float 1500.0 +glabel D_800E4CF4 +.float 0.05 + +.text +glabel func_80006FC8 +/* 007BC8 80006FC8 27BDFF38 */ addiu $sp, $sp, -0xc8 +/* 007BCC 80006FCC AFB70064 */ sw $s7, 0x64($sp) +/* 007BD0 80006FD0 30EE00FF */ andi $t6, $a3, 0xff +/* 007BD4 80006FD4 00C0B825 */ move $s7, $a2 +/* 007BD8 80006FD8 AFBF006C */ sw $ra, 0x6c($sp) +/* 007BDC 80006FDC AFBE0068 */ sw $fp, 0x68($sp) +/* 007BE0 80006FE0 AFB60060 */ sw $s6, 0x60($sp) +/* 007BE4 80006FE4 AFB5005C */ sw $s5, 0x5c($sp) +/* 007BE8 80006FE8 AFB40058 */ sw $s4, 0x58($sp) +/* 007BEC 80006FEC AFB30054 */ sw $s3, 0x54($sp) +/* 007BF0 80006FF0 AFB20050 */ sw $s2, 0x50($sp) +/* 007BF4 80006FF4 AFB1004C */ sw $s1, 0x4c($sp) +/* 007BF8 80006FF8 AFB00048 */ sw $s0, 0x48($sp) +/* 007BFC 80006FFC E7BF0040 */ swc1 $f31, 0x40($sp) +/* 007C00 80007000 E7BE0044 */ swc1 $f30, 0x44($sp) +/* 007C04 80007004 E7BD0038 */ swc1 $f29, 0x38($sp) +/* 007C08 80007008 E7BC003C */ swc1 $f28, 0x3c($sp) +/* 007C0C 8000700C E7BB0030 */ swc1 $f27, 0x30($sp) +/* 007C10 80007010 E7BA0034 */ swc1 $f26, 0x34($sp) +/* 007C14 80007014 E7B90028 */ swc1 $f25, 0x28($sp) +/* 007C18 80007018 E7B8002C */ swc1 $f24, 0x2c($sp) +/* 007C1C 8000701C E7B70020 */ swc1 $f23, 0x20($sp) +/* 007C20 80007020 E7B60024 */ swc1 $f22, 0x24($sp) +/* 007C24 80007024 E7B50018 */ swc1 $f21, 0x18($sp) +/* 007C28 80007028 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 007C2C 8000702C AFA400C8 */ sw $a0, 0xc8($sp) +/* 007C30 80007030 AFA500CC */ sw $a1, 0xcc($sp) +/* 007C34 80007034 AFA700D4 */ sw $a3, 0xd4($sp) +/* 007C38 80007038 AFAE007C */ sw $t6, 0x7c($sp) +/* 007C3C 8000703C 19C001C4 */ blez $t6, .L80007750 +/* 007C40 80007040 AFA000AC */ sw $zero, 0xac($sp) +/* 007C44 80007044 3C01800E */ lui $at, %hi(D_800E4CC4) # $at, 0x800e +/* 007C48 80007048 C43E4CC4 */ lwc1 $f30, %lo(D_800E4CC4)($at) +/* 007C4C 8000704C 3C01800E */ lui $at, %hi(D_800E4CC8 + 4) # $at, 0x800e +/* 007C50 80007050 3C148012 */ lui $s4, %hi(gRacerSound) # $s4, 0x8012 +/* 007C54 80007054 C43D4CC8 */ lwc1 $f29, %lo(D_800E4CC8)($at) +/* 007C58 80007058 C43C4CCC */ lwc1 $f28, %lo(D_800E4CC8 + 4)($at) +/* 007C5C 8000705C 4480C800 */ mtc1 $zero, $f25 +/* 007C60 80007060 4480C000 */ mtc1 $zero, $f24 +/* 007C64 80007064 8FBE00D8 */ lw $fp, 0xd8($sp) +/* 007C68 80007068 26949C38 */ addiu $s4, %lo(gRacerSound) # addiu $s4, $s4, -0x63c8 +/* 007C6C 8000706C 0080B025 */ move $s6, $a0 +.L80007070: +/* 007C70 80007070 8ED80000 */ lw $t8, ($s6) +/* 007C74 80007074 00000000 */ nop +/* 007C78 80007078 8F110064 */ lw $s1, 0x64($t8) +/* 007C7C 8000707C 00000000 */ nop +/* 007C80 80007080 12200004 */ beqz $s1, .L80007094 +/* 007C84 80007084 00000000 */ nop +/* 007C88 80007088 8E390118 */ lw $t9, 0x118($s1) +/* 007C8C 8000708C 10000002 */ b .L80007098 +/* 007C90 80007090 AE990000 */ sw $t9, ($s4) +.L80007094: +/* 007C94 80007094 AE800000 */ sw $zero, ($s4) +.L80007098: +/* 007C98 80007098 8E900000 */ lw $s0, ($s4) +/* 007C9C 8000709C 00000000 */ nop +/* 007CA0 800070A0 120001A6 */ beqz $s0, .L8000773C +/* 007CA4 800070A4 8FB900AC */ lw $t9, 0xac($sp) +/* 007CA8 800070A8 96080000 */ lhu $t0, ($s0) +/* 007CAC 800070AC 00000000 */ nop +/* 007CB0 800070B0 110001A2 */ beqz $t0, .L8000773C +/* 007CB4 800070B4 8FB900AC */ lw $t9, 0xac($sp) +/* 007CB8 800070B8 822901D8 */ lb $t1, 0x1d8($s1) +/* 007CBC 800070BC 0000A825 */ move $s5, $zero +/* 007CC0 800070C0 15200006 */ bnez $t1, .L800070DC +/* 007CC4 800070C4 8FAA00AC */ lw $t2, 0xac($sp) +/* 007CC8 800070C8 0C019944 */ jal check_if_showing_cutscene_camera +/* 007CCC 800070CC 00000000 */ nop +/* 007CD0 800070D0 10400047 */ beqz $v0, .L800071F0 +/* 007CD4 800070D4 3C013F80 */ lui $at, 0x3f80 +/* 007CD8 800070D8 8FAA00AC */ lw $t2, 0xac($sp) +.L800070DC: +/* 007CDC 800070DC 8EC60000 */ lw $a2, ($s6) +/* 007CE0 800070E0 000A5900 */ sll $t3, $t2, 4 +/* 007CE4 800070E4 016A5821 */ addu $t3, $t3, $t2 +/* 007CE8 800070E8 000B5880 */ sll $t3, $t3, 2 +/* 007CEC 800070EC 02EB1821 */ addu $v1, $s7, $t3 +/* 007CF0 800070F0 C466000C */ lwc1 $f6, 0xc($v1) +/* 007CF4 800070F4 C46A0010 */ lwc1 $f10, 0x10($v1) +/* 007CF8 800070F8 C4720014 */ lwc1 $f18, 0x14($v1) +/* 007CFC 800070FC C4C4000C */ lwc1 $f4, 0xc($a2) +/* 007D00 80007100 C4C80010 */ lwc1 $f8, 0x10($a2) +/* 007D04 80007104 C4D00014 */ lwc1 $f16, 0x14($a2) +/* 007D08 80007108 460A4001 */ sub.s $f0, $f8, $f10 +/* 007D0C 8000710C AFA30070 */ sw $v1, 0x70($sp) +/* 007D10 80007110 E7A000C0 */ swc1 $f0, 0xc0($sp) +/* 007D14 80007114 02E02825 */ move $a1, $s7 +/* 007D18 80007118 03C03825 */ move $a3, $fp +/* 007D1C 8000711C 00C02025 */ move $a0, $a2 +/* 007D20 80007120 46062501 */ sub.s $f20, $f4, $f6 +/* 007D24 80007124 0C001AFF */ jal func_80006BFC +/* 007D28 80007128 46128581 */ sub.s $f22, $f16, $f18 +/* 007D2C 8000712C 4614A102 */ mul.s $f4, $f20, $f20 +/* 007D30 80007130 C7A000C0 */ lwc1 $f0, 0xc0($sp) +/* 007D34 80007134 00000000 */ nop +/* 007D38 80007138 46000182 */ mul.s $f6, $f0, $f0 +/* 007D3C 8000713C 00000000 */ nop +/* 007D40 80007140 4616B282 */ mul.s $f10, $f22, $f22 +/* 007D44 80007144 46062200 */ add.s $f8, $f4, $f6 +/* 007D48 80007148 0C0326B4 */ jal sqrtf +/* 007D4C 8000714C 460A4300 */ add.s $f12, $f8, $f10 +/* 007D50 80007150 8E8C0000 */ lw $t4, ($s4) +/* 007D54 80007154 8FA30070 */ lw $v1, 0x70($sp) +/* 007D58 80007158 E5800084 */ swc1 $f0, 0x84($t4) +/* 007D5C 8000715C 8E900000 */ lw $s0, ($s4) +/* 007D60 80007160 3C01800E */ lui $at, %hi(D_800E4CD0) # $at, 0x800e +/* 007D64 80007164 C4304CD0 */ lwc1 $f16, %lo(D_800E4CD0)($at) +/* 007D68 80007168 C6020084 */ lwc1 $f2, 0x84($s0) +/* 007D6C 8000716C 00000000 */ nop +/* 007D70 80007170 4610103C */ c.lt.s $f2, $f16 +/* 007D74 80007174 00000000 */ nop +/* 007D78 80007178 45000011 */ bc1f .L800071C0 +/* 007D7C 8000717C 00000000 */ nop +/* 007D80 80007180 46021482 */ mul.s $f18, $f2, $f2 +/* 007D84 80007184 84660000 */ lh $a2, ($v1) +/* 007D88 80007188 4600A306 */ mov.s $f12, $f20 +/* 007D8C 8000718C 4612F101 */ sub.s $f4, $f30, $f18 +/* 007D90 80007190 00000000 */ nop +/* 007D94 80007194 461E2683 */ div.s $f26, $f4, $f30 +/* 007D98 80007198 4600B386 */ mov.s $f14, $f22 +/* 007D9C 8000719C 461AD682 */ mul.s $f26, $f26, $f26 +/* 007DA0 800071A0 0C002430 */ jal func_800090C0 +/* 007DA4 800071A4 00000000 */ nop +/* 007DA8 800071A8 8E8D0000 */ lw $t5, ($s4) +/* 007DAC 800071AC 00000000 */ nop +/* 007DB0 800071B0 A1A20091 */ sb $v0, 0x91($t5) +/* 007DB4 800071B4 8E900000 */ lw $s0, ($s4) +/* 007DB8 800071B8 10000004 */ b .L800071CC +/* 007DBC 800071BC 822E01D8 */ lb $t6, 0x1d8($s1) +.L800071C0: +/* 007DC0 800071C0 4480D000 */ mtc1 $zero, $f26 +/* 007DC4 800071C4 00000000 */ nop +/* 007DC8 800071C8 822E01D8 */ lb $t6, 0x1d8($s1) +.L800071CC: +/* 007DCC 800071CC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 007DD0 800071D0 15C00010 */ bnez $t6, .L80007214 +/* 007DD4 800071D4 00000000 */ nop +/* 007DD8 800071D8 44814800 */ mtc1 $at, $f9 +/* 007DDC 800071DC 44804000 */ mtc1 $zero, $f8 +/* 007DE0 800071E0 4600D1A1 */ cvt.d.s $f6, $f26 +/* 007DE4 800071E4 46283282 */ mul.d $f10, $f6, $f8 +/* 007DE8 800071E8 1000000A */ b .L80007214 +/* 007DEC 800071EC 462056A0 */ cvt.s.d $f26, $f10 +.L800071F0: +/* 007DF0 800071F0 8E980000 */ lw $t8, ($s4) +/* 007DF4 800071F4 240F0040 */ li $t7, 64 +/* 007DF8 800071F8 A30F0091 */ sb $t7, 0x91($t8) +/* 007DFC 800071FC 8E990000 */ lw $t9, ($s4) +/* 007E00 80007200 44808000 */ mtc1 $zero, $f16 +/* 007E04 80007204 4481D000 */ mtc1 $at, $f26 +/* 007E08 80007208 E7300068 */ swc1 $f16, 0x68($t9) +/* 007E0C 8000720C 8E900000 */ lw $s0, ($s4) +/* 007E10 80007210 00000000 */ nop +.L80007214: +/* 007E14 80007214 920200A0 */ lbu $v0, 0xa0($s0) +/* 007E18 80007218 00000000 */ nop +/* 007E1C 8000721C 28410046 */ slti $at, $v0, 0x46 +/* 007E20 80007220 1020009D */ beqz $at, .L80007498 +/* 007E24 80007224 00000000 */ nop +/* 007E28 80007228 92040036 */ lbu $a0, 0x36($s0) +/* 007E2C 8000722C 8FA8007C */ lw $t0, 0x7c($sp) +/* 007E30 80007230 10800099 */ beqz $a0, .L80007498 +/* 007E34 80007234 29010003 */ slti $at, $t0, 3 +/* 007E38 80007238 10200097 */ beqz $at, .L80007498 +/* 007E3C 8000723C 00000000 */ nop +/* 007E40 80007240 4600D4A1 */ cvt.d.s $f18, $f26 +/* 007E44 80007244 4632C032 */ c.eq.d $f24, $f18 +/* 007E48 80007248 00000000 */ nop +/* 007E4C 8000724C 45010092 */ bc1t .L80007498 +/* 007E50 80007250 00000000 */ nop +/* 007E54 80007254 92090044 */ lbu $t1, 0x44($s0) +/* 007E58 80007258 00000000 */ nop +/* 007E5C 8000725C 312A0001 */ andi $t2, $t1, 1 +/* 007E60 80007260 1540008D */ bnez $t2, .L80007498 +/* 007E64 80007264 00000000 */ nop +/* 007E68 80007268 44822000 */ mtc1 $v0, $f4 +/* 007E6C 8000726C 04410005 */ bgez $v0, .L80007284 +/* 007E70 80007270 468021A0 */ cvt.s.w $f6, $f4 +/* 007E74 80007274 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 007E78 80007278 44814000 */ mtc1 $at, $f8 +/* 007E7C 8000727C 00000000 */ nop +/* 007E80 80007280 46083180 */ add.s $f6, $f6, $f8 +.L80007284: +/* 007E84 80007284 920B0037 */ lbu $t3, 0x37($s0) +/* 007E88 80007288 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 007E8C 8000728C 44815000 */ mtc1 $at, $f10 +/* 007E90 80007290 448B8000 */ mtc1 $t3, $f16 +/* 007E94 80007294 460A3503 */ div.s $f20, $f6, $f10 +/* 007E98 80007298 05610005 */ bgez $t3, .L800072B0 +/* 007E9C 8000729C 46808020 */ cvt.s.w $f0, $f16 +/* 007EA0 800072A0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 007EA4 800072A4 44819000 */ mtc1 $at, $f18 +/* 007EA8 800072A8 00000000 */ nop +/* 007EAC 800072AC 46120000 */ add.s $f0, $f0, $f18 +.L800072B0: +/* 007EB0 800072B0 46140102 */ mul.s $f4, $f0, $f20 +/* 007EB4 800072B4 24120001 */ li $s2, 1 +/* 007EB8 800072B8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 007EBC 800072BC 46040201 */ sub.s $f8, $f0, $f4 +/* 007EC0 800072C0 461A4182 */ mul.s $f6, $f8, $f26 +/* 007EC4 800072C4 444CF800 */ cfc1 $t4, $31 +/* 007EC8 800072C8 44D2F800 */ ctc1 $s2, $31 +/* 007ECC 800072CC 00000000 */ nop +/* 007ED0 800072D0 460032A4 */ cvt.w.s $f10, $f6 +/* 007ED4 800072D4 4452F800 */ cfc1 $s2, $31 +/* 007ED8 800072D8 00000000 */ nop +/* 007EDC 800072DC 32520078 */ andi $s2, $s2, 0x78 +/* 007EE0 800072E0 12400012 */ beqz $s2, .L8000732C +/* 007EE4 800072E4 00000000 */ nop +/* 007EE8 800072E8 44815000 */ mtc1 $at, $f10 +/* 007EEC 800072EC 24120001 */ li $s2, 1 +/* 007EF0 800072F0 460A3281 */ sub.s $f10, $f6, $f10 +/* 007EF4 800072F4 3C018000 */ lui $at, 0x8000 +/* 007EF8 800072F8 44D2F800 */ ctc1 $s2, $31 +/* 007EFC 800072FC 00000000 */ nop +/* 007F00 80007300 460052A4 */ cvt.w.s $f10, $f10 +/* 007F04 80007304 4452F800 */ cfc1 $s2, $31 +/* 007F08 80007308 00000000 */ nop +/* 007F0C 8000730C 32520078 */ andi $s2, $s2, 0x78 +/* 007F10 80007310 16400004 */ bnez $s2, .L80007324 +/* 007F14 80007314 00000000 */ nop +/* 007F18 80007318 44125000 */ mfc1 $s2, $f10 +/* 007F1C 8000731C 10000007 */ b .L8000733C +/* 007F20 80007320 02419025 */ or $s2, $s2, $at +.L80007324: +/* 007F24 80007324 10000005 */ b .L8000733C +/* 007F28 80007328 2412FFFF */ li $s2, -1 +.L8000732C: +/* 007F2C 8000732C 44125000 */ mfc1 $s2, $f10 +/* 007F30 80007330 00000000 */ nop +/* 007F34 80007334 0640FFFB */ bltz $s2, .L80007324 +/* 007F38 80007338 00000000 */ nop +.L8000733C: +/* 007F3C 8000733C 325300FF */ andi $s3, $s2, 0xff +/* 007F40 80007340 44CCF800 */ ctc1 $t4, $31 +/* 007F44 80007344 2A610010 */ slti $at, $s3, 0x10 +/* 007F48 80007348 14200047 */ bnez $at, .L80007468 +/* 007F4C 8000734C 00000000 */ nop +/* 007F50 80007350 8E0E0050 */ lw $t6, 0x50($s0) +/* 007F54 80007354 00000000 */ nop +/* 007F58 80007358 15C00005 */ bnez $t6, .L80007370 +/* 007F5C 8000735C 00000000 */ nop +/* 007F60 80007360 0C0007C5 */ jal func_80001F14 +/* 007F64 80007364 26050050 */ addiu $a1, $s0, 0x50 +/* 007F68 80007368 8E900000 */ lw $s0, ($s4) +/* 007F6C 8000736C 00000000 */ nop +.L80007370: +/* 007F70 80007370 920F0038 */ lbu $t7, 0x38($s0) +/* 007F74 80007374 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 007F78 80007378 448F8000 */ mtc1 $t7, $f16 +/* 007F7C 8000737C 05E10004 */ bgez $t7, .L80007390 +/* 007F80 80007380 468084A0 */ cvt.s.w $f18, $f16 +/* 007F84 80007384 44812000 */ mtc1 $at, $f4 +/* 007F88 80007388 00000000 */ nop +/* 007F8C 8000738C 46049480 */ add.s $f18, $f18, $f4 +.L80007390: +/* 007F90 80007390 92180039 */ lbu $t8, 0x39($s0) +/* 007F94 80007394 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 007F98 80007398 44814000 */ mtc1 $at, $f8 +/* 007F9C 8000739C 44983000 */ mtc1 $t8, $f6 +/* 007FA0 800073A0 46089003 */ div.s $f0, $f18, $f8 +/* 007FA4 800073A4 07010005 */ bgez $t8, .L800073BC +/* 007FA8 800073A8 468032A0 */ cvt.s.w $f10, $f6 +/* 007FAC 800073AC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 007FB0 800073B0 44818000 */ mtc1 $at, $f16 +/* 007FB4 800073B4 00000000 */ nop +/* 007FB8 800073B8 46105280 */ add.s $f10, $f10, $f16 +.L800073BC: +/* 007FBC 800073BC 3C0142C8 */ li $at, 0x42C80000 # 100.000000 +/* 007FC0 800073C0 44812000 */ mtc1 $at, $f4 +/* 007FC4 800073C4 00000000 */ nop +/* 007FC8 800073C8 46045483 */ div.s $f18, $f10, $f4 +/* 007FCC 800073CC 46009201 */ sub.s $f8, $f18, $f0 +/* 007FD0 800073D0 46144182 */ mul.s $f6, $f8, $f20 +/* 007FD4 800073D4 46060400 */ add.s $f16, $f0, $f6 +/* 007FD8 800073D8 E7B0008C */ swc1 $f16, 0x8c($sp) +/* 007FDC 800073DC 8E040050 */ lw $a0, 0x50($s0) +/* 007FE0 800073E0 00000000 */ nop +/* 007FE4 800073E4 10800037 */ beqz $a0, .L800074C4 +/* 007FE8 800073E8 00000000 */ nop +/* 007FEC 800073EC 8ED00000 */ lw $s0, ($s6) +/* 007FF0 800073F0 00000000 */ nop +/* 007FF4 800073F4 8E05000C */ lw $a1, 0xc($s0) +/* 007FF8 800073F8 8E060010 */ lw $a2, 0x10($s0) +/* 007FFC 800073FC 8E070014 */ lw $a3, 0x14($s0) +/* 008000 80007400 0C0026DF */ jal func_80009B7C +/* 008004 80007404 00000000 */ nop +/* 008008 80007408 8E990000 */ lw $t9, ($s4) +/* 00800C 8000740C 24050008 */ li $a1, 8 +/* 008010 80007410 8F240050 */ lw $a0, 0x50($t9) +/* 008014 80007414 0C00127E */ jal sound_event_update +/* 008018 80007418 00133200 */ sll $a2, $s3, 8 +/* 00801C 8000741C 8E880000 */ lw $t0, ($s4) +/* 008020 80007420 8FA6008C */ lw $a2, 0x8c($sp) +/* 008024 80007424 8D040050 */ lw $a0, 0x50($t0) +/* 008028 80007428 0C00127E */ jal sound_event_update +/* 00802C 8000742C 24050010 */ li $a1, 16 +/* 008030 80007430 8E890000 */ lw $t1, ($s4) +/* 008034 80007434 24050050 */ li $a1, 80 +/* 008038 80007438 8D240050 */ lw $a0, 0x50($t1) +/* 00803C 8000743C 0C001181 */ jal func_80004604 +/* 008040 80007440 00000000 */ nop +/* 008044 80007444 8E900000 */ lw $s0, ($s4) +/* 008048 80007448 24050004 */ li $a1, 4 +/* 00804C 8000744C 8E040050 */ lw $a0, 0x50($s0) +/* 008050 80007450 92060091 */ lbu $a2, 0x91($s0) +/* 008054 80007454 0C00127E */ jal sound_event_update +/* 008058 80007458 00000000 */ nop +/* 00805C 8000745C 8E900000 */ lw $s0, ($s4) +/* 008060 80007460 10000019 */ b .L800074C8 +/* 008064 80007464 960C0000 */ lhu $t4, ($s0) +.L80007468: +/* 008068 80007468 8E040050 */ lw $a0, 0x50($s0) +/* 00806C 8000746C 00000000 */ nop +/* 008070 80007470 10800014 */ beqz $a0, .L800074C4 +/* 008074 80007474 00000000 */ nop +/* 008078 80007478 0C001223 */ jal func_8000488C +/* 00807C 8000747C 00000000 */ nop +/* 008080 80007480 8E8A0000 */ lw $t2, ($s4) +/* 008084 80007484 00000000 */ nop +/* 008088 80007488 AD400050 */ sw $zero, 0x50($t2) +/* 00808C 8000748C 8E900000 */ lw $s0, ($s4) +/* 008090 80007490 1000000D */ b .L800074C8 +/* 008094 80007494 960C0000 */ lhu $t4, ($s0) +.L80007498: +/* 008098 80007498 8E040050 */ lw $a0, 0x50($s0) +/* 00809C 8000749C 00000000 */ nop +/* 0080A0 800074A0 10800008 */ beqz $a0, .L800074C4 +/* 0080A4 800074A4 00000000 */ nop +/* 0080A8 800074A8 0C001223 */ jal func_8000488C +/* 0080AC 800074AC 00000000 */ nop +/* 0080B0 800074B0 8E8B0000 */ lw $t3, ($s4) +/* 0080B4 800074B4 00000000 */ nop +/* 0080B8 800074B8 AD600050 */ sw $zero, 0x50($t3) +/* 0080BC 800074BC 8E900000 */ lw $s0, ($s4) +/* 0080C0 800074C0 00000000 */ nop +.L800074C4: +/* 0080C4 800074C4 960C0000 */ lhu $t4, ($s0) +.L800074C8: +/* 0080C8 800074C8 00000000 */ nop +/* 0080CC 800074CC 1180009B */ beqz $t4, .L8000773C +/* 0080D0 800074D0 8FB900AC */ lw $t9, 0xac($sp) +/* 0080D4 800074D4 4600D521 */ cvt.d.s $f20, $f26 +/* 0080D8 800074D8 4634C032 */ c.eq.d $f24, $f20 +/* 0080DC 800074DC 00158880 */ sll $s1, $s5, 2 +/* 0080E0 800074E0 45010095 */ bc1t .L80007738 +/* 0080E4 800074E4 02111021 */ addu $v0, $s0, $s1 +.L800074E8: +/* 0080E8 800074E8 C44A0054 */ lwc1 $f10, 0x54($v0) +/* 0080EC 800074EC 24120001 */ li $s2, 1 +/* 0080F0 800074F0 461A5102 */ mul.s $f4, $f10, $f26 +/* 0080F4 800074F4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0080F8 800074F8 444DF800 */ cfc1 $t5, $31 +/* 0080FC 800074FC 44D2F800 */ ctc1 $s2, $31 +/* 008100 80007500 00000000 */ nop +/* 008104 80007504 460024A4 */ cvt.w.s $f18, $f4 +/* 008108 80007508 4452F800 */ cfc1 $s2, $31 +/* 00810C 8000750C 00000000 */ nop +/* 008110 80007510 32520078 */ andi $s2, $s2, 0x78 +/* 008114 80007514 12400012 */ beqz $s2, .L80007560 +/* 008118 80007518 00000000 */ nop +/* 00811C 8000751C 44819000 */ mtc1 $at, $f18 +/* 008120 80007520 24120001 */ li $s2, 1 +/* 008124 80007524 46122481 */ sub.s $f18, $f4, $f18 +/* 008128 80007528 3C018000 */ lui $at, 0x8000 +/* 00812C 8000752C 44D2F800 */ ctc1 $s2, $31 +/* 008130 80007530 00000000 */ nop +/* 008134 80007534 460094A4 */ cvt.w.s $f18, $f18 +/* 008138 80007538 4452F800 */ cfc1 $s2, $31 +/* 00813C 8000753C 00000000 */ nop +/* 008140 80007540 32520078 */ andi $s2, $s2, 0x78 +/* 008144 80007544 16400004 */ bnez $s2, .L80007558 +/* 008148 80007548 00000000 */ nop +/* 00814C 8000754C 44129000 */ mfc1 $s2, $f18 +/* 008150 80007550 10000007 */ b .L80007570 +/* 008154 80007554 02419025 */ or $s2, $s2, $at +.L80007558: +/* 008158 80007558 10000005 */ b .L80007570 +/* 00815C 8000755C 2412FFFF */ li $s2, -1 +.L80007560: +/* 008160 80007560 44129000 */ mfc1 $s2, $f18 +/* 008164 80007564 00000000 */ nop +/* 008168 80007568 0640FFFB */ bltz $s2, .L80007558 +/* 00816C 8000756C 00000000 */ nop +.L80007570: +/* 008170 80007570 44CDF800 */ ctc1 $t5, $31 +/* 008174 80007574 C448005C */ lwc1 $f8, 0x5c($v0) +/* 008178 80007578 C606003C */ lwc1 $f6, 0x3c($s0) +/* 00817C 8000757C C60A0094 */ lwc1 $f10, 0x94($s0) +/* 008180 80007580 46064400 */ add.s $f16, $f8, $f6 +/* 008184 80007584 C6120068 */ lwc1 $f18, 0x68($s0) +/* 008188 80007588 460A8100 */ add.s $f4, $f16, $f10 +/* 00818C 8000758C 324E00FF */ andi $t6, $s2, 0xff +/* 008190 80007590 46122200 */ add.s $f8, $f4, $f18 +/* 008194 80007594 01C09025 */ move $s2, $t6 +/* 008198 80007598 460041A1 */ cvt.d.s $f6, $f8 +/* 00819C 8000759C 463C303C */ c.lt.d $f6, $f28 +/* 0081A0 800075A0 E7A8008C */ swc1 $f8, 0x8c($sp) +/* 0081A4 800075A4 45000004 */ bc1f .L800075B8 +/* 0081A8 800075A8 3C01800E */ lui $at, %hi(D_800E4CD4) # $at, 0x800e +/* 0081AC 800075AC C4304CD4 */ lwc1 $f16, %lo(D_800E4CD4)($at) +/* 0081B0 800075B0 00000000 */ nop +/* 0081B4 800075B4 E7B0008C */ swc1 $f16, 0x8c($sp) +.L800075B8: +/* 0081B8 800075B8 16A0000F */ bnez $s5, .L800075F8 +/* 0081BC 800075BC 00000000 */ nop +/* 0081C0 800075C0 920F0044 */ lbu $t7, 0x44($s0) +/* 0081C4 800075C4 00000000 */ nop +/* 0081C8 800075C8 31F80001 */ andi $t8, $t7, 1 +/* 0081CC 800075CC 1300000A */ beqz $t8, .L800075F8 +/* 0081D0 800075D0 00000000 */ nop +/* 0081D4 800075D4 8E040048 */ lw $a0, 0x48($s0) +/* 0081D8 800075D8 00000000 */ nop +/* 0081DC 800075DC 10800047 */ beqz $a0, .L800076FC +/* 0081E0 800075E0 00000000 */ nop +/* 0081E4 800075E4 0C001223 */ jal func_8000488C +/* 0081E8 800075E8 00000000 */ nop +/* 0081EC 800075EC 8E990000 */ lw $t9, ($s4) +/* 0081F0 800075F0 10000042 */ b .L800076FC +/* 0081F4 800075F4 AF200048 */ sw $zero, 0x48($t9) +.L800075F8: +/* 0081F8 800075F8 8C440048 */ lw $a0, 0x48($v0) +/* 0081FC 800075FC 00000000 */ nop +/* 008200 80007600 1080000A */ beqz $a0, .L8000762C +/* 008204 80007604 00000000 */ nop +/* 008208 80007608 16400008 */ bnez $s2, .L8000762C +/* 00820C 8000760C 00000000 */ nop +/* 008210 80007610 0C001223 */ jal func_8000488C +/* 008214 80007614 00000000 */ nop +/* 008218 80007618 8E880000 */ lw $t0, ($s4) +/* 00821C 8000761C 00000000 */ nop +/* 008220 80007620 01114821 */ addu $t1, $t0, $s1 +/* 008224 80007624 10000035 */ b .L800076FC +/* 008228 80007628 AD200048 */ sw $zero, 0x48($t1) +.L8000762C: +/* 00822C 8000762C 1480000A */ bnez $a0, .L80007658 +/* 008230 80007630 00155040 */ sll $t2, $s5, 1 +/* 008234 80007634 020A5821 */ addu $t3, $s0, $t2 +/* 008238 80007638 95640000 */ lhu $a0, ($t3) +/* 00823C 8000763C 0C0007C5 */ jal func_80001F14 +/* 008240 80007640 24450048 */ addiu $a1, $v0, 0x48 +/* 008244 80007644 8E8C0000 */ lw $t4, ($s4) +/* 008248 80007648 00000000 */ nop +/* 00824C 8000764C 01916821 */ addu $t5, $t4, $s1 +/* 008250 80007650 8DA40048 */ lw $a0, 0x48($t5) +/* 008254 80007654 00000000 */ nop +.L80007658: +/* 008258 80007658 10800028 */ beqz $a0, .L800076FC +/* 00825C 8000765C 00000000 */ nop +/* 008260 80007660 8ED00000 */ lw $s0, ($s6) +/* 008264 80007664 02409825 */ move $s3, $s2 +/* 008268 80007668 8E05000C */ lw $a1, 0xc($s0) +/* 00826C 8000766C 8E060010 */ lw $a2, 0x10($s0) +/* 008270 80007670 8E070014 */ lw $a3, 0x14($s0) +/* 008274 80007674 0C0026DF */ jal func_80009B7C +/* 008278 80007678 00000000 */ nop +/* 00827C 8000767C 8E8E0000 */ lw $t6, ($s4) +/* 008280 80007680 24050008 */ li $a1, 8 +/* 008284 80007684 01D17821 */ addu $t7, $t6, $s1 +/* 008288 80007688 8DE40048 */ lw $a0, 0x48($t7) +/* 00828C 8000768C 0C00127E */ jal sound_event_update +/* 008290 80007690 00133200 */ sll $a2, $s3, 8 +/* 008294 80007694 8E980000 */ lw $t8, ($s4) +/* 008298 80007698 8FA6008C */ lw $a2, 0x8c($sp) +/* 00829C 8000769C 0311C821 */ addu $t9, $t8, $s1 +/* 0082A0 800076A0 8F240048 */ lw $a0, 0x48($t9) +/* 0082A4 800076A4 0C00127E */ jal sound_event_update +/* 0082A8 800076A8 24050010 */ li $a1, 16 +/* 0082AC 800076AC 8E880000 */ lw $t0, ($s4) +/* 0082B0 800076B0 24050050 */ li $a1, 80 +/* 0082B4 800076B4 01114821 */ addu $t1, $t0, $s1 +/* 0082B8 800076B8 8D240048 */ lw $a0, 0x48($t1) +/* 0082BC 800076BC 0C001181 */ jal func_80004604 +/* 0082C0 800076C0 00000000 */ nop +/* 0082C4 800076C4 8FAA007C */ lw $t2, 0x7c($sp) +/* 0082C8 800076C8 24010001 */ li $at, 1 +/* 0082CC 800076CC 11410004 */ beq $t2, $at, .L800076E0 +/* 0082D0 800076D0 00000000 */ nop +/* 0082D4 800076D4 8E8C0000 */ lw $t4, ($s4) +/* 0082D8 800076D8 240B0040 */ li $t3, 64 +/* 0082DC 800076DC A18B0091 */ sb $t3, 0x91($t4) +.L800076E0: +/* 0082E0 800076E0 8E900000 */ lw $s0, ($s4) +/* 0082E4 800076E4 24050004 */ li $a1, 4 +/* 0082E8 800076E8 02116821 */ addu $t5, $s0, $s1 +/* 0082EC 800076EC 8DA40048 */ lw $a0, 0x48($t5) +/* 0082F0 800076F0 92060091 */ lbu $a2, 0x91($s0) +/* 0082F4 800076F4 0C00127E */ jal sound_event_update +/* 0082F8 800076F8 00000000 */ nop +.L800076FC: +/* 0082FC 800076FC 26B50001 */ addiu $s5, $s5, 1 +/* 008300 80007700 2AA10002 */ slti $at, $s5, 2 +/* 008304 80007704 1020000C */ beqz $at, .L80007738 +/* 008308 80007708 26310004 */ addiu $s1, $s1, 4 +/* 00830C 8000770C 8E900000 */ lw $s0, ($s4) +/* 008310 80007710 00157040 */ sll $t6, $s5, 1 +/* 008314 80007714 020E7821 */ addu $t7, $s0, $t6 +/* 008318 80007718 95F80000 */ lhu $t8, ($t7) +/* 00831C 8000771C 00000000 */ nop +/* 008320 80007720 13000006 */ beqz $t8, .L8000773C +/* 008324 80007724 8FB900AC */ lw $t9, 0xac($sp) +/* 008328 80007728 4634C032 */ c.eq.d $f24, $f20 +/* 00832C 8000772C 00000000 */ nop +/* 008330 80007730 4500FF6D */ bc1f .L800074E8 +/* 008334 80007734 02111021 */ addu $v0, $s0, $s1 +.L80007738: +/* 008338 80007738 8FB900AC */ lw $t9, 0xac($sp) +.L8000773C: +/* 00833C 8000773C 8FA9007C */ lw $t1, 0x7c($sp) +/* 008340 80007740 27280001 */ addiu $t0, $t9, 1 +/* 008344 80007744 AFA800AC */ sw $t0, 0xac($sp) +/* 008348 80007748 1509FE49 */ bne $t0, $t1, .L80007070 +/* 00834C 8000774C 26D60004 */ addiu $s6, $s6, 4 +.L80007750: +/* 008350 80007750 3C01800E */ lui $at, %hi(D_800E4CD8 + 4) # $at, 0x800e +/* 008354 80007754 C43D4CD8 */ lwc1 $f29, %lo(D_800E4CD8)($at) +/* 008358 80007758 C43C4CDC */ lwc1 $f28, %lo(D_800E4CD8 + 4)($at) +/* 00835C 8000775C 8FAA007C */ lw $t2, 0x7c($sp) +/* 008360 80007760 3C01800E */ lui $at, %hi(D_800E4CE0) # $at, 0x800e +/* 008364 80007764 C43E4CE0 */ lwc1 $f30, %lo(D_800E4CE0)($at) +/* 008368 80007768 3C148012 */ lui $s4, %hi(gRacerSound) # $s4, 0x8012 +/* 00836C 8000776C 8FBE00D8 */ lw $fp, 0xd8($sp) +/* 008370 80007770 29410003 */ slti $at, $t2, 3 +/* 008374 80007774 102001E8 */ beqz $at, .L80007F18 +/* 008378 80007778 26949C38 */ addiu $s4, %lo(gRacerSound) # addiu $s4, $s4, -0x63c8 +/* 00837C 8000777C 8FAC00CC */ lw $t4, 0xcc($sp) +/* 008380 80007780 0140A825 */ move $s5, $t2 +/* 008384 80007784 014C082A */ slt $at, $t2, $t4 +/* 008388 80007788 1020004D */ beqz $at, .L800078C0 +/* 00838C 8000778C AFA000AC */ sw $zero, 0xac($sp) +/* 008390 80007790 018A1823 */ subu $v1, $t4, $t2 +/* 008394 80007794 306D0003 */ andi $t5, $v1, 3 +/* 008398 80007798 11A00015 */ beqz $t5, .L800077F0 +/* 00839C 8000779C 01AA1021 */ addu $v0, $t5, $t2 +/* 0083A0 800077A0 8FAE00C8 */ lw $t6, 0xc8($sp) +/* 0083A4 800077A4 000A7880 */ sll $t7, $t2, 2 +/* 0083A8 800077A8 01CF9021 */ addu $s2, $t6, $t7 +.L800077AC: +/* 0083AC 800077AC 8E580000 */ lw $t8, ($s2) +/* 0083B0 800077B0 26B50001 */ addiu $s5, $s5, 1 +/* 0083B4 800077B4 8F110064 */ lw $s1, 0x64($t8) +/* 0083B8 800077B8 00000000 */ nop +/* 0083BC 800077BC 12200006 */ beqz $s1, .L800077D8 +/* 0083C0 800077C0 00000000 */ nop +/* 0083C4 800077C4 8E390118 */ lw $t9, 0x118($s1) +/* 0083C8 800077C8 00000000 */ nop +/* 0083CC 800077CC 13200002 */ beqz $t9, .L800077D8 +/* 0083D0 800077D0 AE990000 */ sw $t9, ($s4) +/* 0083D4 800077D4 A3200088 */ sb $zero, 0x88($t9) +.L800077D8: +/* 0083D8 800077D8 1455FFF4 */ bne $v0, $s5, .L800077AC +/* 0083DC 800077DC 26520004 */ addiu $s2, $s2, 4 +/* 0083E0 800077E0 8FA300CC */ lw $v1, 0xcc($sp) +/* 0083E4 800077E4 00000000 */ nop +/* 0083E8 800077E8 12A30036 */ beq $s5, $v1, .L800078C4 +/* 0083EC 800077EC 8FAA007C */ lw $t2, 0x7c($sp) +.L800077F0: +/* 0083F0 800077F0 8FA300CC */ lw $v1, 0xcc($sp) +/* 0083F4 800077F4 8FA800C8 */ lw $t0, 0xc8($sp) +/* 0083F8 800077F8 00154880 */ sll $t1, $s5, 2 +/* 0083FC 800077FC 00035080 */ sll $t2, $v1, 2 +/* 008400 80007800 01481021 */ addu $v0, $t2, $t0 +/* 008404 80007804 01099021 */ addu $s2, $t0, $t1 +.L80007808: +/* 008408 80007808 8E4C0000 */ lw $t4, ($s2) +/* 00840C 8000780C 00000000 */ nop +/* 008410 80007810 8D910064 */ lw $s1, 0x64($t4) +/* 008414 80007814 00000000 */ nop +/* 008418 80007818 12200006 */ beqz $s1, .L80007834 +/* 00841C 8000781C 00000000 */ nop +/* 008420 80007820 8E2D0118 */ lw $t5, 0x118($s1) +/* 008424 80007824 00000000 */ nop +/* 008428 80007828 11A00002 */ beqz $t5, .L80007834 +/* 00842C 8000782C AE8D0000 */ sw $t5, ($s4) +/* 008430 80007830 A1A00088 */ sb $zero, 0x88($t5) +.L80007834: +/* 008434 80007834 8E4B0004 */ lw $t3, 4($s2) +/* 008438 80007838 00000000 */ nop +/* 00843C 8000783C 8D710064 */ lw $s1, 0x64($t3) +/* 008440 80007840 00000000 */ nop +/* 008444 80007844 12200006 */ beqz $s1, .L80007860 +/* 008448 80007848 00000000 */ nop +/* 00844C 8000784C 8E2E0118 */ lw $t6, 0x118($s1) +/* 008450 80007850 00000000 */ nop +/* 008454 80007854 11C00002 */ beqz $t6, .L80007860 +/* 008458 80007858 AE8E0000 */ sw $t6, ($s4) +/* 00845C 8000785C A1C00088 */ sb $zero, 0x88($t6) +.L80007860: +/* 008460 80007860 8E4F0008 */ lw $t7, 8($s2) +/* 008464 80007864 00000000 */ nop +/* 008468 80007868 8DF10064 */ lw $s1, 0x64($t7) +/* 00846C 8000786C 00000000 */ nop +/* 008470 80007870 12200006 */ beqz $s1, .L8000788C +/* 008474 80007874 00000000 */ nop +/* 008478 80007878 8E380118 */ lw $t8, 0x118($s1) +/* 00847C 8000787C 00000000 */ nop +/* 008480 80007880 13000002 */ beqz $t8, .L8000788C +/* 008484 80007884 AE980000 */ sw $t8, ($s4) +/* 008488 80007888 A3000088 */ sb $zero, 0x88($t8) +.L8000788C: +/* 00848C 8000788C 8E59000C */ lw $t9, 0xc($s2) +/* 008490 80007890 26520010 */ addiu $s2, $s2, 0x10 +/* 008494 80007894 8F310064 */ lw $s1, 0x64($t9) +/* 008498 80007898 00000000 */ nop +/* 00849C 8000789C 12200006 */ beqz $s1, .L800078B8 +/* 0084A0 800078A0 00000000 */ nop +/* 0084A4 800078A4 8E290118 */ lw $t1, 0x118($s1) +/* 0084A8 800078A8 00000000 */ nop +/* 0084AC 800078AC 11200002 */ beqz $t1, .L800078B8 +/* 0084B0 800078B0 AE890000 */ sw $t1, ($s4) +/* 0084B4 800078B4 A1200088 */ sb $zero, 0x88($t1) +.L800078B8: +/* 0084B8 800078B8 1642FFD3 */ bne $s2, $v0, .L80007808 +/* 0084BC 800078BC 00000000 */ nop +.L800078C0: +/* 0084C0 800078C0 8FAA007C */ lw $t2, 0x7c($sp) +.L800078C4: +/* 0084C4 800078C4 8FB600C8 */ lw $s6, 0xc8($sp) +/* 0084C8 800078C8 194000D7 */ blez $t2, .L80007C28 +/* 0084CC 800078CC 3C01800E */ lui $at, %hi(D_800E4CE8 + 4) # $at, 0x800e +/* 0084D0 800078D0 C4394CE8 */ lwc1 $f25, %lo(D_800E4CE8)($at) +/* 0084D4 800078D4 C4384CEC */ lwc1 $f24, %lo(D_800E4CE8 + 4)($at) +/* 0084D8 800078D8 00000000 */ nop +.L800078DC: +/* 0084DC 800078DC 8EC80000 */ lw $t0, ($s6) +/* 0084E0 800078E0 8FAC007C */ lw $t4, 0x7c($sp) +/* 0084E4 800078E4 8FAD00CC */ lw $t5, 0xcc($sp) +/* 0084E8 800078E8 8D110064 */ lw $s1, 0x64($t0) +/* 0084EC 800078EC 018D082A */ slt $at, $t4, $t5 +/* 0084F0 800078F0 102000C7 */ beqz $at, .L80007C10 +/* 0084F4 800078F4 0180A825 */ move $s5, $t4 +/* 0084F8 800078F8 8FAB00C8 */ lw $t3, 0xc8($sp) +/* 0084FC 800078FC 000C7080 */ sll $t6, $t4, 2 +/* 008500 80007900 016E9021 */ addu $s2, $t3, $t6 +.L80007904: +/* 008504 80007904 8E4F0000 */ lw $t7, ($s2) +/* 008508 80007908 00000000 */ nop +/* 00850C 8000790C 8DE20064 */ lw $v0, 0x64($t7) +/* 008510 80007910 00000000 */ nop +/* 008514 80007914 104000BB */ beqz $v0, .L80007C04 +/* 008518 80007918 8FAA00CC */ lw $t2, 0xcc($sp) +/* 00851C 8000791C 8C580118 */ lw $t8, 0x118($v0) +/* 008520 80007920 00000000 */ nop +/* 008524 80007924 130000B6 */ beqz $t8, .L80007C00 +/* 008528 80007928 AE980000 */ sw $t8, ($s4) +/* 00852C 8000792C 822901D8 */ lb $t1, 0x1d8($s1) +/* 008530 80007930 8FAA00AC */ lw $t2, 0xac($sp) +/* 008534 80007934 1120000F */ beqz $t1, .L80007974 +/* 008538 80007938 000A4100 */ sll $t0, $t2, 4 +/* 00853C 8000793C 010A4021 */ addu $t0, $t0, $t2 +/* 008540 80007940 8E420000 */ lw $v0, ($s2) +/* 008544 80007944 00084080 */ sll $t0, $t0, 2 +/* 008548 80007948 02E81821 */ addu $v1, $s7, $t0 +/* 00854C 8000794C C464000C */ lwc1 $f4, 0xc($v1) +/* 008550 80007950 C4680010 */ lwc1 $f8, 0x10($v1) +/* 008554 80007954 C4700014 */ lwc1 $f16, 0x14($v1) +/* 008558 80007958 C44A000C */ lwc1 $f10, 0xc($v0) +/* 00855C 8000795C C4520010 */ lwc1 $f18, 0x10($v0) +/* 008560 80007960 C4460014 */ lwc1 $f6, 0x14($v0) +/* 008564 80007964 46045501 */ sub.s $f20, $f10, $f4 +/* 008568 80007968 46089001 */ sub.s $f0, $f18, $f8 +/* 00856C 8000796C 1000000C */ b .L800079A0 +/* 008570 80007970 46103581 */ sub.s $f22, $f6, $f16 +.L80007974: +/* 008574 80007974 8E420000 */ lw $v0, ($s2) +/* 008578 80007978 8ED00000 */ lw $s0, ($s6) +/* 00857C 8000797C C44A000C */ lwc1 $f10, 0xc($v0) +/* 008580 80007980 C4520010 */ lwc1 $f18, 0x10($v0) +/* 008584 80007984 C4460014 */ lwc1 $f6, 0x14($v0) +/* 008588 80007988 C604000C */ lwc1 $f4, 0xc($s0) +/* 00858C 8000798C C6080010 */ lwc1 $f8, 0x10($s0) +/* 008590 80007990 C6100014 */ lwc1 $f16, 0x14($s0) +/* 008594 80007994 46045501 */ sub.s $f20, $f10, $f4 +/* 008598 80007998 46089001 */ sub.s $f0, $f18, $f8 +/* 00859C 8000799C 46103581 */ sub.s $f22, $f6, $f16 +.L800079A0: +/* 0085A0 800079A0 4614A282 */ mul.s $f10, $f20, $f20 +/* 0085A4 800079A4 00000000 */ nop +/* 0085A8 800079A8 46000102 */ mul.s $f4, $f0, $f0 +/* 0085AC 800079AC 00000000 */ nop +/* 0085B0 800079B0 4616B202 */ mul.s $f8, $f22, $f22 +/* 0085B4 800079B4 46045480 */ add.s $f18, $f10, $f4 +/* 0085B8 800079B8 0C0326B4 */ jal sqrtf +/* 0085BC 800079BC 46089300 */ add.s $f12, $f18, $f8 +/* 0085C0 800079C0 8E8C0000 */ lw $t4, ($s4) +/* 0085C4 800079C4 3C01800E */ lui $at, %hi(D_800E4CF0) # $at, 0x800e +/* 0085C8 800079C8 E5800084 */ swc1 $f0, 0x84($t4) +/* 0085CC 800079CC 8E900000 */ lw $s0, ($s4) +/* 0085D0 800079D0 C4264CF0 */ lwc1 $f6, %lo(D_800E4CF0)($at) +/* 0085D4 800079D4 C6020084 */ lwc1 $f2, 0x84($s0) +/* 0085D8 800079D8 00000000 */ nop +/* 0085DC 800079DC 4606103C */ c.lt.s $f2, $f6 +/* 0085E0 800079E0 00000000 */ nop +/* 0085E4 800079E4 45000087 */ bc1f .L80007C04 +/* 0085E8 800079E8 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0085EC 800079EC 46021402 */ mul.s $f16, $f2, $f2 +/* 0085F0 800079F0 C6040054 */ lwc1 $f4, 0x54($s0) +/* 0085F4 800079F4 24020001 */ li $v0, 1 +/* 0085F8 800079F8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 0085FC 800079FC 4610F281 */ sub.s $f10, $f30, $f16 +/* 008600 80007A00 00000000 */ nop +/* 008604 80007A04 461E5683 */ div.s $f26, $f10, $f30 +/* 008608 80007A08 461A2482 */ mul.s $f18, $f4, $f26 +/* 00860C 80007A0C 444DF800 */ cfc1 $t5, $31 +/* 008610 80007A10 44C2F800 */ ctc1 $v0, $31 +/* 008614 80007A14 00000000 */ nop +/* 008618 80007A18 46009224 */ cvt.w.s $f8, $f18 +/* 00861C 80007A1C 4442F800 */ cfc1 $v0, $31 +/* 008620 80007A20 00000000 */ nop +/* 008624 80007A24 30420078 */ andi $v0, $v0, 0x78 +/* 008628 80007A28 10400012 */ beqz $v0, .L80007A74 +/* 00862C 80007A2C 00000000 */ nop +/* 008630 80007A30 44814000 */ mtc1 $at, $f8 +/* 008634 80007A34 24020001 */ li $v0, 1 +/* 008638 80007A38 46089201 */ sub.s $f8, $f18, $f8 +/* 00863C 80007A3C 3C018000 */ lui $at, 0x8000 +/* 008640 80007A40 44C2F800 */ ctc1 $v0, $31 +/* 008644 80007A44 00000000 */ nop +/* 008648 80007A48 46004224 */ cvt.w.s $f8, $f8 +/* 00864C 80007A4C 4442F800 */ cfc1 $v0, $31 +/* 008650 80007A50 00000000 */ nop +/* 008654 80007A54 30420078 */ andi $v0, $v0, 0x78 +/* 008658 80007A58 14400004 */ bnez $v0, .L80007A6C +/* 00865C 80007A5C 00000000 */ nop +/* 008660 80007A60 44024000 */ mfc1 $v0, $f8 +/* 008664 80007A64 10000007 */ b .L80007A84 +/* 008668 80007A68 00411025 */ or $v0, $v0, $at +.L80007A6C: +/* 00866C 80007A6C 10000005 */ b .L80007A84 +/* 008670 80007A70 2402FFFF */ li $v0, -1 +.L80007A74: +/* 008674 80007A74 44024000 */ mfc1 $v0, $f8 +/* 008678 80007A78 00000000 */ nop +/* 00867C 80007A7C 0440FFFB */ bltz $v0, .L80007A6C +/* 008680 80007A80 00000000 */ nop +.L80007A84: +/* 008684 80007A84 304B00FF */ andi $t3, $v0, 0xff +/* 008688 80007A88 44CDF800 */ ctc1 $t5, $31 +/* 00868C 80007A8C 29610080 */ slti $at, $t3, 0x80 +/* 008690 80007A90 14200002 */ bnez $at, .L80007A9C +/* 008694 80007A94 01601025 */ move $v0, $t3 +/* 008698 80007A98 2402007F */ li $v0, 127 +.L80007A9C: +/* 00869C 80007A9C 44823000 */ mtc1 $v0, $f6 +/* 0086A0 80007AA0 04410006 */ bgez $v0, .L80007ABC +/* 0086A4 80007AA4 46803421 */ cvt.d.w $f16, $f6 +/* 0086A8 80007AA8 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 0086AC 80007AAC 44815800 */ mtc1 $at, $f11 +/* 0086B0 80007AB0 44805000 */ mtc1 $zero, $f10 +/* 0086B4 80007AB4 00000000 */ nop +/* 0086B8 80007AB8 462A8400 */ add.d $f16, $f16, $f10 +.L80007ABC: +/* 0086BC 80007ABC 46388102 */ mul.d $f4, $f16, $f24 +/* 0086C0 80007AC0 24020001 */ li $v0, 1 +/* 0086C4 80007AC4 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 0086C8 80007AC8 444EF800 */ cfc1 $t6, $31 +/* 0086CC 80007ACC 44C2F800 */ ctc1 $v0, $31 +/* 0086D0 80007AD0 00000000 */ nop +/* 0086D4 80007AD4 462024A4 */ cvt.w.d $f18, $f4 +/* 0086D8 80007AD8 4442F800 */ cfc1 $v0, $31 +/* 0086DC 80007ADC 00000000 */ nop +/* 0086E0 80007AE0 30420078 */ andi $v0, $v0, 0x78 +/* 0086E4 80007AE4 10400013 */ beqz $v0, .L80007B34 +/* 0086E8 80007AE8 00000000 */ nop +/* 0086EC 80007AEC 44819800 */ mtc1 $at, $f19 +/* 0086F0 80007AF0 44809000 */ mtc1 $zero, $f18 +/* 0086F4 80007AF4 24020001 */ li $v0, 1 +/* 0086F8 80007AF8 46322481 */ sub.d $f18, $f4, $f18 +/* 0086FC 80007AFC 3C018000 */ lui $at, 0x8000 +/* 008700 80007B00 44C2F800 */ ctc1 $v0, $31 +/* 008704 80007B04 00000000 */ nop +/* 008708 80007B08 462094A4 */ cvt.w.d $f18, $f18 +/* 00870C 80007B0C 4442F800 */ cfc1 $v0, $31 +/* 008710 80007B10 00000000 */ nop +/* 008714 80007B14 30420078 */ andi $v0, $v0, 0x78 +/* 008718 80007B18 14400004 */ bnez $v0, .L80007B2C +/* 00871C 80007B1C 00000000 */ nop +/* 008720 80007B20 44029000 */ mfc1 $v0, $f18 +/* 008724 80007B24 10000007 */ b .L80007B44 +/* 008728 80007B28 00411025 */ or $v0, $v0, $at +.L80007B2C: +/* 00872C 80007B2C 10000005 */ b .L80007B44 +/* 008730 80007B30 2402FFFF */ li $v0, -1 +.L80007B34: +/* 008734 80007B34 44029000 */ mfc1 $v0, $f18 +/* 008738 80007B38 00000000 */ nop +/* 00873C 80007B3C 0440FFFB */ bltz $v0, .L80007B2C +/* 008740 80007B40 00000000 */ nop +.L80007B44: +/* 008744 80007B44 92180088 */ lbu $t8, 0x88($s0) +/* 008748 80007B48 304F00FF */ andi $t7, $v0, 0xff +/* 00874C 80007B4C 44CEF800 */ ctc1 $t6, $31 +/* 008750 80007B50 030F082A */ slt $at, $t8, $t7 +/* 008754 80007B54 1020002B */ beqz $at, .L80007C04 +/* 008758 80007B58 8FAA00CC */ lw $t2, 0xcc($sp) +/* 00875C 80007B5C A20F0088 */ sb $t7, 0x88($s0) +/* 008760 80007B60 86E60000 */ lh $a2, ($s7) +/* 008764 80007B64 4600A306 */ mov.s $f12, $f20 +/* 008768 80007B68 0C002430 */ jal func_800090C0 +/* 00876C 80007B6C 4600B386 */ mov.s $f14, $f22 +/* 008770 80007B70 8E990000 */ lw $t9, ($s4) +/* 008774 80007B74 03C03825 */ move $a3, $fp +/* 008778 80007B78 A3220091 */ sb $v0, 0x91($t9) +/* 00877C 80007B7C 822901D8 */ lb $t1, 0x1d8($s1) +/* 008780 80007B80 00002825 */ move $a1, $zero +/* 008784 80007B84 11200007 */ beqz $t1, .L80007BA4 +/* 008788 80007B88 00000000 */ nop +/* 00878C 80007B8C 8EC40000 */ lw $a0, ($s6) +/* 008790 80007B90 8E460000 */ lw $a2, ($s2) +/* 008794 80007B94 0C001AFF */ jal func_80006BFC +/* 008798 80007B98 02E02825 */ move $a1, $s7 +/* 00879C 80007B9C 10000006 */ b .L80007BB8 +/* 0087A0 80007BA0 8E900000 */ lw $s0, ($s4) +.L80007BA4: +/* 0087A4 80007BA4 8EC40000 */ lw $a0, ($s6) +/* 0087A8 80007BA8 8E460000 */ lw $a2, ($s2) +/* 0087AC 80007BAC 0C001AFF */ jal func_80006BFC +/* 0087B0 80007BB0 03C03825 */ move $a3, $fp +/* 0087B4 80007BB4 8E900000 */ lw $s0, ($s4) +.L80007BB8: +/* 0087B8 80007BB8 3C01800E */ lui $at, %hi(D_800E4CF4) # $at, 0x800e +/* 0087BC 80007BBC C608005C */ lwc1 $f8, 0x5c($s0) +/* 0087C0 80007BC0 C6060068 */ lwc1 $f6, 0x68($s0) +/* 0087C4 80007BC4 00000000 */ nop +/* 0087C8 80007BC8 46064280 */ add.s $f10, $f8, $f6 +/* 0087CC 80007BCC E60A008C */ swc1 $f10, 0x8c($s0) +/* 0087D0 80007BD0 8E900000 */ lw $s0, ($s4) +/* 0087D4 80007BD4 00000000 */ nop +/* 0087D8 80007BD8 C610008C */ lwc1 $f16, 0x8c($s0) +/* 0087DC 80007BDC 00000000 */ nop +/* 0087E0 80007BE0 46008121 */ cvt.d.s $f4, $f16 +/* 0087E4 80007BE4 463C203C */ c.lt.d $f4, $f28 +/* 0087E8 80007BE8 00000000 */ nop +/* 0087EC 80007BEC 45000005 */ bc1f .L80007C04 +/* 0087F0 80007BF0 8FAA00CC */ lw $t2, 0xcc($sp) +/* 0087F4 80007BF4 C4324CF4 */ lwc1 $f18, %lo(D_800E4CF4)($at) +/* 0087F8 80007BF8 00000000 */ nop +/* 0087FC 80007BFC E612008C */ swc1 $f18, 0x8c($s0) +.L80007C00: +/* 008800 80007C00 8FAA00CC */ lw $t2, 0xcc($sp) +.L80007C04: +/* 008804 80007C04 26B50001 */ addiu $s5, $s5, 1 +/* 008808 80007C08 16AAFF3E */ bne $s5, $t2, .L80007904 +/* 00880C 80007C0C 26520004 */ addiu $s2, $s2, 4 +.L80007C10: +/* 008810 80007C10 8FA800AC */ lw $t0, 0xac($sp) +/* 008814 80007C14 8FAD007C */ lw $t5, 0x7c($sp) +/* 008818 80007C18 250C0001 */ addiu $t4, $t0, 1 +/* 00881C 80007C1C AFAC00AC */ sw $t4, 0xac($sp) +/* 008820 80007C20 158DFF2E */ bne $t4, $t5, .L800078DC +/* 008824 80007C24 26D60004 */ addiu $s6, $s6, 4 +.L80007C28: +/* 008828 80007C28 3C138012 */ lui $s3, %hi(D_80119C30) # $s3, 0x8012 +/* 00882C 80007C2C 3C108012 */ lui $s0, %hi(gRacerSound) # $s0, 0x8012 +/* 008830 80007C30 26109C38 */ addiu $s0, %lo(gRacerSound) # addiu $s0, $s0, -0x63c8 +/* 008834 80007C34 26739C30 */ addiu $s3, %lo(D_80119C30) # addiu $s3, $s3, -0x63d0 +.L80007C38: +/* 008838 80007C38 8E620000 */ lw $v0, ($s3) +/* 00883C 80007C3C 00000000 */ nop +/* 008840 80007C40 10400013 */ beqz $v0, .L80007C90 +/* 008844 80007C44 00000000 */ nop +/* 008848 80007C48 8C440048 */ lw $a0, 0x48($v0) +/* 00884C 80007C4C 00000000 */ nop +/* 008850 80007C50 1080000F */ beqz $a0, .L80007C90 +/* 008854 80007C54 00000000 */ nop +/* 008858 80007C58 904B0088 */ lbu $t3, 0x88($v0) +/* 00885C 80007C5C 00000000 */ nop +/* 008860 80007C60 29610008 */ slti $at, $t3, 8 +/* 008864 80007C64 1020000A */ beqz $at, .L80007C90 +/* 008868 80007C68 00000000 */ nop +/* 00886C 80007C6C 0C001223 */ jal func_8000488C +/* 008870 80007C70 00000000 */ nop +/* 008874 80007C74 8E6E0000 */ lw $t6, ($s3) +/* 008878 80007C78 00000000 */ nop +/* 00887C 80007C7C ADC00048 */ sw $zero, 0x48($t6) +/* 008880 80007C80 8E6F0000 */ lw $t7, ($s3) +/* 008884 80007C84 00000000 */ nop +/* 008888 80007C88 A1E00074 */ sb $zero, 0x74($t7) +/* 00888C 80007C8C AE600000 */ sw $zero, ($s3) +.L80007C90: +/* 008890 80007C90 26730004 */ addiu $s3, $s3, 4 +/* 008894 80007C94 1670FFE8 */ bne $s3, $s0, .L80007C38 +/* 008898 80007C98 00000000 */ nop +/* 00889C 80007C9C 3C07800E */ lui $a3, %hi(D_800DC6D4) # $a3, 0x800e +/* 0088A0 80007CA0 24E7C6D4 */ addiu $a3, %lo(D_800DC6D4) # addiu $a3, $a3, -0x392c +/* 0088A4 80007CA4 8CE20000 */ lw $v0, ($a3) +/* 0088A8 80007CA8 24170002 */ li $s7, 2 +/* 0088AC 80007CAC 03C2082A */ slt $at, $fp, $v0 +/* 0088B0 80007CB0 10200003 */ beqz $at, .L80007CC0 +/* 0088B4 80007CB4 005EC023 */ subu $t8, $v0, $fp +/* 0088B8 80007CB8 10000002 */ b .L80007CC4 +/* 0088BC 80007CBC ACF80000 */ sw $t8, ($a3) +.L80007CC0: +/* 0088C0 80007CC0 ACE00000 */ sw $zero, ($a3) +.L80007CC4: +/* 0088C4 80007CC4 8FB900CC */ lw $t9, 0xcc($sp) +/* 0088C8 80007CC8 8FB200C8 */ lw $s2, 0xc8($sp) +/* 0088CC 80007CCC 2B210002 */ slti $at, $t9, 2 +/* 0088D0 80007CD0 14200054 */ bnez $at, .L80007E24 +/* 0088D4 80007CD4 24150001 */ li $s5, 1 +/* 0088D8 80007CD8 26520004 */ addiu $s2, $s2, 4 +/* 0088DC 80007CDC 241EFFFF */ li $fp, -1 +/* 0088E0 80007CE0 24160002 */ li $s6, 2 +.L80007CE4: +/* 0088E4 80007CE4 8E490000 */ lw $t1, ($s2) +/* 0088E8 80007CE8 00000000 */ nop +/* 0088EC 80007CEC 8D220064 */ lw $v0, 0x64($t1) +/* 0088F0 80007CF0 00000000 */ nop +/* 0088F4 80007CF4 10400048 */ beqz $v0, .L80007E18 +/* 0088F8 80007CF8 8FAC00CC */ lw $t4, 0xcc($sp) +/* 0088FC 80007CFC 8C4A0118 */ lw $t2, 0x118($v0) +/* 008900 80007D00 00000000 */ nop +/* 008904 80007D04 AE8A0000 */ sw $t2, ($s4) +/* 008908 80007D08 11400042 */ beqz $t2, .L80007E14 +/* 00890C 80007D0C 01408025 */ move $s0, $t2 +/* 008910 80007D10 91480074 */ lbu $t0, 0x74($t2) +/* 008914 80007D14 00000000 */ nop +/* 008918 80007D18 1500003F */ bnez $t0, .L80007E18 +/* 00891C 80007D1C 8FAC00CC */ lw $t4, 0xcc($sp) +/* 008920 80007D20 954C0000 */ lhu $t4, ($t2) +/* 008924 80007D24 24060014 */ li $a2, 20 +/* 008928 80007D28 1180003A */ beqz $t4, .L80007E14 +/* 00892C 80007D2C 03C02025 */ move $a0, $fp +/* 008930 80007D30 3C138012 */ lui $s3, %hi(D_80119C30) # $s3, 0x8012 +/* 008934 80007D34 91450088 */ lbu $a1, 0x88($t2) +/* 008938 80007D38 26739C30 */ addiu $s3, %lo(D_80119C30) # addiu $s3, $s3, -0x63d0 +/* 00893C 80007D3C 00001825 */ move $v1, $zero +.L80007D40: +/* 008940 80007D40 8E710000 */ lw $s1, ($s3) +/* 008944 80007D44 28A10009 */ slti $at, $a1, 9 +/* 008948 80007D48 1220000E */ beqz $s1, .L80007D84 +/* 00894C 80007D4C 00000000 */ nop +/* 008950 80007D50 922D0088 */ lbu $t5, 0x88($s1) +/* 008954 80007D54 00000000 */ nop +/* 008958 80007D58 00AD1023 */ subu $v0, $a1, $t5 +/* 00895C 80007D5C 00C2082A */ slt $at, $a2, $v0 +/* 008960 80007D60 1020000B */ beqz $at, .L80007D90 +/* 008964 80007D64 00000000 */ nop +/* 008968 80007D68 8CEB0000 */ lw $t3, ($a3) +/* 00896C 80007D6C 00000000 */ nop +/* 008970 80007D70 15600007 */ bnez $t3, .L80007D90 +/* 008974 80007D74 00000000 */ nop +/* 008978 80007D78 00602025 */ move $a0, $v1 +/* 00897C 80007D7C 10000004 */ b .L80007D90 +/* 008980 80007D80 00403025 */ move $a2, $v0 +.L80007D84: +/* 008984 80007D84 14200002 */ bnez $at, .L80007D90 +/* 008988 80007D88 00000000 */ nop +/* 00898C 80007D8C 00602025 */ move $a0, $v1 +.L80007D90: +/* 008990 80007D90 24630001 */ addiu $v1, $v1, 1 +/* 008994 80007D94 1476FFEA */ bne $v1, $s6, .L80007D40 +/* 008998 80007D98 26730004 */ addiu $s3, $s3, 4 +/* 00899C 80007D9C 109E001D */ beq $a0, $fp, .L80007E14 +/* 0089A0 80007DA0 00047080 */ sll $t6, $a0, 2 +/* 0089A4 80007DA4 3C0F8012 */ lui $t7, %hi(D_80119C30) # $t7, 0x8012 +/* 0089A8 80007DA8 25EF9C30 */ addiu $t7, %lo(D_80119C30) # addiu $t7, $t7, -0x63d0 +/* 0089AC 80007DAC A2170074 */ sb $s7, 0x74($s0) +/* 0089B0 80007DB0 01CF8821 */ addu $s1, $t6, $t7 +/* 0089B4 80007DB4 8E220000 */ lw $v0, ($s1) +/* 0089B8 80007DB8 00000000 */ nop +/* 0089BC 80007DBC 10400012 */ beqz $v0, .L80007E08 +/* 0089C0 80007DC0 00000000 */ nop +/* 0089C4 80007DC4 8C440048 */ lw $a0, 0x48($v0) +/* 0089C8 80007DC8 00000000 */ nop +/* 0089CC 80007DCC 1080000C */ beqz $a0, .L80007E00 +/* 0089D0 80007DD0 240A003C */ li $t2, 60 +/* 0089D4 80007DD4 0C001223 */ jal func_8000488C +/* 0089D8 80007DD8 00000000 */ nop +/* 0089DC 80007DDC 8E380000 */ lw $t8, ($s1) +/* 0089E0 80007DE0 24190001 */ li $t9, 1 +/* 0089E4 80007DE4 AF000048 */ sw $zero, 0x48($t8) +/* 0089E8 80007DE8 8E890000 */ lw $t1, ($s4) +/* 0089EC 80007DEC 3C07800E */ lui $a3, %hi(D_800DC6D4) # $a3, 0x800e +/* 0089F0 80007DF0 A1390074 */ sb $t9, 0x74($t1) +/* 0089F4 80007DF4 8E220000 */ lw $v0, ($s1) +/* 0089F8 80007DF8 24E7C6D4 */ addiu $a3, %lo(D_800DC6D4) # addiu $a3, $a3, -0x392c +/* 0089FC 80007DFC 240A003C */ li $t2, 60 +.L80007E00: +/* 008A00 80007E00 ACEA0000 */ sw $t2, ($a3) +/* 008A04 80007E04 A0400074 */ sb $zero, 0x74($v0) +.L80007E08: +/* 008A08 80007E08 8E880000 */ lw $t0, ($s4) +/* 008A0C 80007E0C 00000000 */ nop +/* 008A10 80007E10 AE280000 */ sw $t0, ($s1) +.L80007E14: +/* 008A14 80007E14 8FAC00CC */ lw $t4, 0xcc($sp) +.L80007E18: +/* 008A18 80007E18 26B50001 */ addiu $s5, $s5, 1 +/* 008A1C 80007E1C 16ACFFB1 */ bne $s5, $t4, .L80007CE4 +/* 008A20 80007E20 26520004 */ addiu $s2, $s2, 4 +.L80007E24: +/* 008A24 80007E24 0C0044E7 */ jal get_race_countdown +/* 008A28 80007E28 24170002 */ li $s7, 2 +/* 008A2C 80007E2C 1C40003A */ bgtz $v0, .L80007F18 +/* 008A30 80007E30 3C138012 */ lui $s3, %hi(D_80119C30) # $s3, 0x8012 +/* 008A34 80007E34 3C108012 */ lui $s0, %hi(gRacerSound) # $s0, 0x8012 +/* 008A38 80007E38 26109C38 */ addiu $s0, %lo(gRacerSound) # addiu $s0, $s0, -0x63c8 +/* 008A3C 80007E3C 26739C30 */ addiu $s3, %lo(D_80119C30) # addiu $s3, $s3, -0x63d0 +.L80007E40: +/* 008A40 80007E40 8E710000 */ lw $s1, ($s3) +/* 008A44 80007E44 00000000 */ nop +/* 008A48 80007E48 12200030 */ beqz $s1, .L80007F0C +/* 008A4C 80007E4C 00000000 */ nop +/* 008A50 80007E50 96260000 */ lhu $a2, ($s1) +/* 008A54 80007E54 00000000 */ nop +/* 008A58 80007E58 10C0002C */ beqz $a2, .L80007F0C +/* 008A5C 80007E5C 00000000 */ nop +/* 008A60 80007E60 922D0074 */ lbu $t5, 0x74($s1) +/* 008A64 80007E64 24010001 */ li $at, 1 +/* 008A68 80007E68 15A10003 */ bne $t5, $at, .L80007E78 +/* 008A6C 80007E6C 00000000 */ nop +/* 008A70 80007E70 10000026 */ b .L80007F0C +/* 008A74 80007E74 A2370074 */ sb $s7, 0x74($s1) +.L80007E78: +/* 008A78 80007E78 8E240048 */ lw $a0, 0x48($s1) +/* 008A7C 80007E7C 26250048 */ addiu $a1, $s1, 0x48 +/* 008A80 80007E80 14800005 */ bnez $a0, .L80007E98 +/* 008A84 80007E84 00000000 */ nop +/* 008A88 80007E88 0C0007C5 */ jal func_80001F14 +/* 008A8C 80007E8C 30C4FFFF */ andi $a0, $a2, 0xffff +/* 008A90 80007E90 8E240048 */ lw $a0, 0x48($s1) +/* 008A94 80007E94 00000000 */ nop +.L80007E98: +/* 008A98 80007E98 1080001C */ beqz $a0, .L80007F0C +/* 008A9C 80007E9C 00000000 */ nop +/* 008AA0 80007EA0 8E250078 */ lw $a1, 0x78($s1) +/* 008AA4 80007EA4 8E26007C */ lw $a2, 0x7c($s1) +/* 008AA8 80007EA8 8E270080 */ lw $a3, 0x80($s1) +/* 008AAC 80007EAC 0C0026DF */ jal func_80009B7C +/* 008AB0 80007EB0 00000000 */ nop +/* 008AB4 80007EB4 92260088 */ lbu $a2, 0x88($s1) +/* 008AB8 80007EB8 8E240048 */ lw $a0, 0x48($s1) +/* 008ABC 80007EBC 00065A00 */ sll $t3, $a2, 8 +/* 008AC0 80007EC0 01603025 */ move $a2, $t3 +/* 008AC4 80007EC4 0C00127E */ jal sound_event_update +/* 008AC8 80007EC8 24050008 */ li $a1, 8 +/* 008ACC 80007ECC 8E240048 */ lw $a0, 0x48($s1) +/* 008AD0 80007ED0 8E26008C */ lw $a2, 0x8c($s1) +/* 008AD4 80007ED4 0C00127E */ jal sound_event_update +/* 008AD8 80007ED8 24050010 */ li $a1, 16 +/* 008ADC 80007EDC 8FAE007C */ lw $t6, 0x7c($sp) +/* 008AE0 80007EE0 24010001 */ li $at, 1 +/* 008AE4 80007EE4 11C10002 */ beq $t6, $at, .L80007EF0 +/* 008AE8 80007EE8 240F0040 */ li $t7, 64 +/* 008AEC 80007EEC A22F0091 */ sb $t7, 0x91($s1) +.L80007EF0: +/* 008AF0 80007EF0 8E240048 */ lw $a0, 0x48($s1) +/* 008AF4 80007EF4 92260091 */ lbu $a2, 0x91($s1) +/* 008AF8 80007EF8 0C00127E */ jal sound_event_update +/* 008AFC 80007EFC 24050004 */ li $a1, 4 +/* 008B00 80007F00 8E240048 */ lw $a0, 0x48($s1) +/* 008B04 80007F04 0C001181 */ jal func_80004604 +/* 008B08 80007F08 24050046 */ li $a1, 70 +.L80007F0C: +/* 008B0C 80007F0C 26730004 */ addiu $s3, $s3, 4 +/* 008B10 80007F10 1670FFCB */ bne $s3, $s0, .L80007E40 +/* 008B14 80007F14 00000000 */ nop +.L80007F18: +/* 008B18 80007F18 8FBF006C */ lw $ra, 0x6c($sp) +/* 008B1C 80007F1C C7B50018 */ lwc1 $f21, 0x18($sp) +/* 008B20 80007F20 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 008B24 80007F24 C7B70020 */ lwc1 $f23, 0x20($sp) +/* 008B28 80007F28 C7B60024 */ lwc1 $f22, 0x24($sp) +/* 008B2C 80007F2C C7B90028 */ lwc1 $f25, 0x28($sp) +/* 008B30 80007F30 C7B8002C */ lwc1 $f24, 0x2c($sp) +/* 008B34 80007F34 C7BB0030 */ lwc1 $f27, 0x30($sp) +/* 008B38 80007F38 C7BA0034 */ lwc1 $f26, 0x34($sp) +/* 008B3C 80007F3C C7BD0038 */ lwc1 $f29, 0x38($sp) +/* 008B40 80007F40 C7BC003C */ lwc1 $f28, 0x3c($sp) +/* 008B44 80007F44 C7BF0040 */ lwc1 $f31, 0x40($sp) +/* 008B48 80007F48 C7BE0044 */ lwc1 $f30, 0x44($sp) +/* 008B4C 80007F4C 8FB00048 */ lw $s0, 0x48($sp) +/* 008B50 80007F50 8FB1004C */ lw $s1, 0x4c($sp) +/* 008B54 80007F54 8FB20050 */ lw $s2, 0x50($sp) +/* 008B58 80007F58 8FB30054 */ lw $s3, 0x54($sp) +/* 008B5C 80007F5C 8FB40058 */ lw $s4, 0x58($sp) +/* 008B60 80007F60 8FB5005C */ lw $s5, 0x5c($sp) +/* 008B64 80007F64 8FB60060 */ lw $s6, 0x60($sp) +/* 008B68 80007F68 8FB70064 */ lw $s7, 0x64($sp) +/* 008B6C 80007F6C 8FBE0068 */ lw $fp, 0x68($sp) +/* 008B70 80007F70 03E00008 */ jr $ra +/* 008B74 80007F74 27BD00C8 */ addiu $sp, $sp, 0xc8 diff --git a/asm/non_matchings/audiosfx/_handleEvent.s b/asm/non_matchings/audiosfx/_handleEvent.s index 6ac4d396..42184470 100644 --- a/asm/non_matchings/audiosfx/_handleEvent.s +++ b/asm/non_matchings/audiosfx/_handleEvent.s @@ -824,19 +824,19 @@ glabel L80003C8C /* 004C38 80004038 00408025 */ move $s0, $v0 /* 004C3C 8000403C 86260034 */ lh $a2, 0x34($s1) /* 004C40 80004040 00402025 */ move $a0, $v0 -/* 004C44 80004044 0C00127E */ jal func_800049F8 +/* 004C44 80004044 0C00127E */ jal sound_event_update /* 004C48 80004048 24050008 */ li $a1, 8 /* 004C4C 8000404C 9226003C */ lbu $a2, 0x3c($s1) /* 004C50 80004050 02002025 */ move $a0, $s0 -/* 004C54 80004054 0C00127E */ jal func_800049F8 +/* 004C54 80004054 0C00127E */ jal sound_event_update /* 004C58 80004058 24050004 */ li $a1, 4 /* 004C5C 8000405C 9226003D */ lbu $a2, 0x3d($s1) /* 004C60 80004060 02002025 */ move $a0, $s0 -/* 004C64 80004064 0C00127E */ jal func_800049F8 +/* 004C64 80004064 0C00127E */ jal sound_event_update /* 004C68 80004068 24050100 */ li $a1, 256 /* 004C6C 8000406C 8E26002C */ lw $a2, 0x2c($s1) /* 004C70 80004070 02002025 */ move $a0, $s0 -/* 004C74 80004074 0C00127E */ jal func_800049F8 +/* 004C74 80004074 0C00127E */ jal sound_event_update /* 004C78 80004078 24050010 */ li $a1, 16 .L8000407C: /* 004C7C 8000407C 96A20000 */ lhu $v0, ($s5) diff --git a/asm/non_matchings/audiosfx/func_800048D8.s b/asm/non_matchings/audiosfx/func_800048D8.s deleted file mode 100644 index 7773b50e..00000000 --- a/asm/non_matchings/audiosfx/func_800048D8.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel func_800048D8 -/* 0054D8 800048D8 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0054DC 800048DC AFB20020 */ sw $s2, 0x20($sp) -/* 0054E0 800048E0 309200FF */ andi $s2, $a0, 0xff -/* 0054E4 800048E4 AFBF002C */ sw $ra, 0x2c($sp) -/* 0054E8 800048E8 AFA40050 */ sw $a0, 0x50($sp) -/* 0054EC 800048EC AFB40028 */ sw $s4, 0x28($sp) -/* 0054F0 800048F0 AFB30024 */ sw $s3, 0x24($sp) -/* 0054F4 800048F4 AFB1001C */ sw $s1, 0x1c($sp) -/* 0054F8 800048F8 AFB00018 */ sw $s0, 0x18($sp) -/* 0054FC 800048FC 0C03268C */ jal osSetIntMask -/* 005500 80004900 24040001 */ li $a0, 1 -/* 005504 80004904 3C10800E */ lui $s0, %hi(D_800DC6B0) # $s0, 0x800e -/* 005508 80004908 8E10C6B0 */ lw $s0, %lo(D_800DC6B0)($s0) -/* 00550C 8000490C AFA2004C */ sw $v0, 0x4c($sp) -/* 005510 80004910 12000016 */ beqz $s0, .L8000496C -/* 005514 80004914 02408825 */ move $s1, $s2 -/* 005518 80004918 3C13800E */ lui $s3, %hi(gAlSndPlayerPtr) # $s3, 0x800e -/* 00551C 8000491C 2673C6BC */ addiu $s3, %lo(gAlSndPlayerPtr) # addiu $s3, $s3, -0x3944 -/* 005520 80004920 27B4003C */ addiu $s4, $sp, 0x3c -/* 005524 80004924 2412FFEF */ li $s2, -17 -/* 005528 80004928 240E0400 */ li $t6, 1024 -.L8000492C: -/* 00552C 8000492C A7AE003C */ sh $t6, 0x3c($sp) -/* 005530 80004930 AFB00040 */ sw $s0, 0x40($sp) -/* 005534 80004934 9202003E */ lbu $v0, 0x3e($s0) -/* 005538 80004938 02802825 */ move $a1, $s4 -/* 00553C 8000493C 00517824 */ and $t7, $v0, $s1 -/* 005540 80004940 162F0006 */ bne $s1, $t7, .L8000495C -/* 005544 80004944 0052C024 */ and $t8, $v0, $s2 -/* 005548 80004948 A218003E */ sb $t8, 0x3e($s0) -/* 00554C 8000494C 8E640000 */ lw $a0, ($s3) -/* 005550 80004950 00003025 */ move $a2, $zero -/* 005554 80004954 0C03246B */ jal alEvtqPostEvent -/* 005558 80004958 24840014 */ addiu $a0, $a0, 0x14 -.L8000495C: -/* 00555C 8000495C 8E100000 */ lw $s0, ($s0) -/* 005560 80004960 00000000 */ nop -/* 005564 80004964 1600FFF1 */ bnez $s0, .L8000492C -/* 005568 80004968 240E0400 */ li $t6, 1024 -.L8000496C: -/* 00556C 8000496C 8FA4004C */ lw $a0, 0x4c($sp) -/* 005570 80004970 0C03268C */ jal osSetIntMask -/* 005574 80004974 00000000 */ nop -/* 005578 80004978 8FBF002C */ lw $ra, 0x2c($sp) -/* 00557C 8000497C 8FB00018 */ lw $s0, 0x18($sp) -/* 005580 80004980 8FB1001C */ lw $s1, 0x1c($sp) -/* 005584 80004984 8FB20020 */ lw $s2, 0x20($sp) -/* 005588 80004988 8FB30024 */ lw $s3, 0x24($sp) -/* 00558C 8000498C 8FB40028 */ lw $s4, 0x28($sp) -/* 005590 80004990 03E00008 */ jr $ra -/* 005594 80004994 27BD0050 */ addiu $sp, $sp, 0x50 - diff --git a/asm/non_matchings/camera/camera_init.s b/asm/non_matchings/camera/camera_init.s index 191ee0a6..fe7e76f1 100644 --- a/asm/non_matchings/camera/camera_init.s +++ b/asm/non_matchings/camera/camera_init.s @@ -45,7 +45,7 @@ glabel camera_init /* 066B34 80065F34 240500C8 */ li $a1, 200 /* 066B38 80065F38 240600C8 */ li $a2, 200 /* 066B3C 80065F3C 00003825 */ move $a3, $zero -/* 066B40 80065F40 0C0198F7 */ jal func_800663DC +/* 066B40 80065F40 0C0198F7 */ jal camera_reset /* 066B44 80065F44 AFA00010 */ sw $zero, 0x10($sp) /* 066B48 80065F48 26100001 */ addiu $s0, $s0, 1 /* 066B4C 80065F4C 1612FFF6 */ bne $s0, $s2, .L80065F28 diff --git a/asm/non_matchings/camera/func_80066CDC.s b/asm/non_matchings/camera/func_80066CDC.s index 278b7fe4..ce2d48c9 100644 --- a/asm/non_matchings/camera/func_80066CDC.s +++ b/asm/non_matchings/camera/func_80066CDC.s @@ -125,7 +125,7 @@ glabel func_80066CDC /* 067AC4 80066EC4 000E7B00 */ sll $t7, $t6, 0xc /* 067AC8 80066EC8 030FC825 */ or $t9, $t8, $t7 /* 067ACC 80066ECC AC590004 */ sw $t9, 4($v0) -/* 067AD0 80066ED0 0C01A056 */ jal func_80068158 +/* 067AD0 80066ED0 0C01A056 */ jal viewport_rsp_set /* 067AD4 80066ED4 AFA00010 */ sw $zero, 0x10($sp) /* 067AD8 80066ED8 8FA5006C */ lw $a1, 0x6c($sp) /* 067ADC 80066EDC 8FAE002C */ lw $t6, 0x2c($sp) @@ -886,7 +886,7 @@ glabel func_80066CDC .L800679F0: /* 0685F0 800679F0 8FA50054 */ lw $a1, 0x54($sp) /* 0685F4 800679F4 8FA60058 */ lw $a2, 0x58($sp) -/* 0685F8 800679F8 0C01A056 */ jal func_80068158 +/* 0685F8 800679F8 0C01A056 */ jal viewport_rsp_set /* 0685FC 800679FC AFAB0010 */ sw $t3, 0x10($sp) /* 068600 80067A00 8FA5006C */ lw $a1, 0x6c($sp) /* 068604 80067A04 3C1F8012 */ lui $ra, %hi(gActiveCameraID) # $ra, 0x8012 diff --git a/asm/non_matchings/game_ui/func_800A277C.s b/asm/non_matchings/game_ui/func_800A277C.s index 557a6bde..9952957e 100644 --- a/asm/non_matchings/game_ui/func_800A277C.s +++ b/asm/non_matchings/game_ui/func_800A277C.s @@ -138,7 +138,7 @@ glabel func_800A277C /* 0A3518 800A2918 24010004 */ li $at, 4 /* 0A351C 800A291C 15E10042 */ bne $t7, $at, .L800A2A28 /* 0A3520 800A2920 00000000 */ nop -/* 0A3524 800A2924 0C00057E */ jal audio_get_chr_select_anim_frac +/* 0A3524 800A2924 0C00057E */ jal music_animation_fraction /* 0A3528 800A2928 AFA900A8 */ sw $t1, 0xa8($sp) /* 0A352C 800A292C 8FB80098 */ lw $t8, 0x98($sp) /* 0A3530 800A2930 924C0000 */ lbu $t4, ($s2) @@ -652,7 +652,7 @@ glabel func_800A277C .L800A30BC: /* 0A3CBC 800A30BC 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 /* 0A3CC0 800A30C0 A6240000 */ sh $a0, ($s1) -/* 0A3CC4 800A30C4 0C000741 */ jal play_sound_global +/* 0A3CC4 800A30C4 0C000741 */ jal sound_play /* 0A3CC8 800A30C8 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 /* 0A3CCC 800A30CC 240E0001 */ li $t6, 1 /* 0A3CD0 800A30D0 8FA900A0 */ lw $t1, 0xa0($sp) @@ -727,7 +727,7 @@ glabel func_800A277C /* 0A3DD4 800A31D4 11200004 */ beqz $t1, .L800A31E8 /* 0A3DD8 800A31D8 24040144 */ li $a0, 324 /* 0A3DDC 800A31DC 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 -/* 0A3DE0 800A31E0 0C000741 */ jal play_sound_global +/* 0A3DE0 800A31E0 0C000741 */ jal sound_play /* 0A3DE4 800A31E4 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 .L800A31E8: /* 0A3DE8 800A31E8 0C006CA2 */ jal func_8001B288 @@ -798,7 +798,7 @@ glabel func_800A277C .L800A32E8: /* 0A3EE8 800A32E8 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 /* 0A3EEC 800A32EC A6240000 */ sh $a0, ($s1) -/* 0A3EF0 800A32F0 0C000741 */ jal play_sound_global +/* 0A3EF0 800A32F0 0C000741 */ jal sound_play /* 0A3EF4 800A32F4 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 /* 0A3EF8 800A32F8 24040078 */ li $a0, 120 /* 0A3EFC 800A32FC 0C01BE53 */ jal get_random_number_from_range diff --git a/asm/non_matchings/game_ui/func_800A6254.s b/asm/non_matchings/game_ui/func_800A6254.s index d20011ec..09a56dd1 100644 --- a/asm/non_matchings/game_ui/func_800A6254.s +++ b/asm/non_matchings/game_ui/func_800A6254.s @@ -1,794 +1,794 @@ -.late_rodata -glabel jpt_800E8744 -.word L800A63D8, L800A691C, L800A6BCC, L800A6CA4, L800A6D68 -glabel D_800E8758 -.double 1.1 -glabel D_800E8760 -.double 1.1 - -.text -glabel func_800A6254 -/* 0A6E54 800A6254 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0A6E58 800A6258 AFBF0014 */ sw $ra, 0x14($sp) -/* 0A6E5C 800A625C AFA50074 */ sw $a1, 0x74($sp) -/* 0A6E60 800A6260 0C01AF66 */ jal get_current_level_race_type -/* 0A6E64 800A6264 AFA40070 */ sw $a0, 0x70($sp) -/* 0A6E68 800A6268 0C027B20 */ jal is_in_two_player_adventure -/* 0A6E6C 800A626C AFA2005C */ sw $v0, 0x5c($sp) -/* 0A6E70 800A6270 8FA70070 */ lw $a3, 0x70($sp) -/* 0A6E74 800A6274 10400049 */ beqz $v0, .L800A639C -/* 0A6E78 800A6278 00000000 */ nop -/* 0A6E7C 800A627C 0C01BAAC */ jal is_postrace_viewport_active -/* 0A6E80 800A6280 AFA70070 */ sw $a3, 0x70($sp) -/* 0A6E84 800A6284 8FA70070 */ lw $a3, 0x70($sp) -/* 0A6E88 800A6288 10400044 */ beqz $v0, .L800A639C -/* 0A6E8C 800A628C 3C0E8012 */ lui $t6, %hi(D_80127189) # $t6, 0x8012 -/* 0A6E90 800A6290 91CE7189 */ lbu $t6, %lo(D_80127189)($t6) -/* 0A6E94 800A6294 00000000 */ nop -/* 0A6E98 800A6298 15C00040 */ bnez $t6, .L800A639C -/* 0A6E9C 800A629C 00000000 */ nop -/* 0A6EA0 800A62A0 0C003861 */ jal func_8000E184 -/* 0A6EA4 800A62A4 AFA70070 */ sw $a3, 0x70($sp) -/* 0A6EA8 800A62A8 8FA70070 */ lw $a3, 0x70($sp) -/* 0A6EAC 800A62AC 1040001B */ beqz $v0, .L800A631C -/* 0A6EB0 800A62B0 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A6EB4 800A62B4 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A6EB8 800A62B8 8D220000 */ lw $v0, ($t1) -/* 0A6EBC 800A62BC 3C0142D8 */ li $at, 0x42D80000 # 108.000000 -/* 0A6EC0 800A62C0 44810000 */ mtc1 $at, $f0 -/* 0A6EC4 800A62C4 C44405F0 */ lwc1 $f4, 0x5f0($v0) -/* 0A6EC8 800A62C8 00000000 */ nop -/* 0A6ECC 800A62CC 46002181 */ sub.s $f6, $f4, $f0 -/* 0A6ED0 800A62D0 E44605F0 */ swc1 $f6, 0x5f0($v0) -/* 0A6ED4 800A62D4 8D220000 */ lw $v0, ($t1) -/* 0A6ED8 800A62D8 00000000 */ nop -/* 0A6EDC 800A62DC C4480610 */ lwc1 $f8, 0x610($v0) -/* 0A6EE0 800A62E0 00000000 */ nop -/* 0A6EE4 800A62E4 46004281 */ sub.s $f10, $f8, $f0 -/* 0A6EE8 800A62E8 E44A0610 */ swc1 $f10, 0x610($v0) -/* 0A6EEC 800A62EC 8D220000 */ lw $v0, ($t1) -/* 0A6EF0 800A62F0 00000000 */ nop -/* 0A6EF4 800A62F4 C4440170 */ lwc1 $f4, 0x170($v0) -/* 0A6EF8 800A62F8 00000000 */ nop -/* 0A6EFC 800A62FC 46002181 */ sub.s $f6, $f4, $f0 -/* 0A6F00 800A6300 E4460170 */ swc1 $f6, 0x170($v0) -/* 0A6F04 800A6304 8D220000 */ lw $v0, ($t1) -/* 0A6F08 800A6308 00000000 */ nop -/* 0A6F0C 800A630C C44802F0 */ lwc1 $f8, 0x2f0($v0) -/* 0A6F10 800A6310 00000000 */ nop -/* 0A6F14 800A6314 46004281 */ sub.s $f10, $f8, $f0 -/* 0A6F18 800A6318 E44A02F0 */ swc1 $f10, 0x2f0($v0) -.L800A631C: -/* 0A6F1C 800A631C 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A6F20 800A6320 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A6F24 800A6324 8D220000 */ lw $v0, ($t1) -/* 0A6F28 800A6328 3C01420C */ li $at, 0x420C0000 # 35.000000 -/* 0A6F2C 800A632C 44810000 */ mtc1 $at, $f0 -/* 0A6F30 800A6330 C44405F0 */ lwc1 $f4, 0x5f0($v0) -/* 0A6F34 800A6334 3C03800E */ lui $v1, %hi(D_800E2770) # $v1, 0x800e -/* 0A6F38 800A6338 46002180 */ add.s $f6, $f4, $f0 -/* 0A6F3C 800A633C 24632770 */ addiu $v1, %lo(D_800E2770) # addiu $v1, $v1, 0x2770 -/* 0A6F40 800A6340 E44605F0 */ swc1 $f6, 0x5f0($v0) -/* 0A6F44 800A6344 8D220000 */ lw $v0, ($t1) -/* 0A6F48 800A6348 3C018012 */ lui $at, %hi(D_80127189) # $at, 0x8012 -/* 0A6F4C 800A634C C4480610 */ lwc1 $f8, 0x610($v0) -/* 0A6F50 800A6350 24180001 */ li $t8, 1 -/* 0A6F54 800A6354 46004280 */ add.s $f10, $f8, $f0 -/* 0A6F58 800A6358 E44A0610 */ swc1 $f10, 0x610($v0) -/* 0A6F5C 800A635C 8D220000 */ lw $v0, ($t1) -/* 0A6F60 800A6360 00000000 */ nop -/* 0A6F64 800A6364 C4440170 */ lwc1 $f4, 0x170($v0) -/* 0A6F68 800A6368 00000000 */ nop -/* 0A6F6C 800A636C 46002180 */ add.s $f6, $f4, $f0 -/* 0A6F70 800A6370 E4460170 */ swc1 $f6, 0x170($v0) -/* 0A6F74 800A6374 8D220000 */ lw $v0, ($t1) -/* 0A6F78 800A6378 00000000 */ nop -/* 0A6F7C 800A637C C44802F0 */ lwc1 $f8, 0x2f0($v0) -/* 0A6F80 800A6380 00000000 */ nop -/* 0A6F84 800A6384 46004280 */ add.s $f10, $f8, $f0 -/* 0A6F88 800A6388 E44A02F0 */ swc1 $f10, 0x2f0($v0) -/* 0A6F8C 800A638C 84EF0000 */ lh $t7, ($a3) -/* 0A6F90 800A6390 00000000 */ nop -/* 0A6F94 800A6394 A06F000C */ sb $t7, 0xc($v1) -/* 0A6F98 800A6398 A0387189 */ sb $t8, %lo(D_80127189)($at) -.L800A639C: -/* 0A6F9C 800A639C 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A6FA0 800A63A0 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A6FA4 800A63A4 8D220000 */ lw $v0, ($t1) -/* 0A6FA8 800A63A8 3C03800E */ lui $v1, %hi(D_800E2770) # $v1, 0x800e -/* 0A6FAC 800A63AC 905905FA */ lbu $t9, 0x5fa($v0) -/* 0A6FB0 800A63B0 24632770 */ addiu $v1, %lo(D_800E2770) # addiu $v1, $v1, 0x2770 -/* 0A6FB4 800A63B4 2F210005 */ sltiu $at, $t9, 5 -/* 0A6FB8 800A63B8 10200278 */ beqz $at, .L800A6D9C -/* 0A6FBC 800A63BC 0019C880 */ sll $t9, $t9, 2 -/* 0A6FC0 800A63C0 3C01800F */ lui $at, %hi(jpt_800E8744) # $at, 0x800f -/* 0A6FC4 800A63C4 00390821 */ addu $at, $at, $t9 -/* 0A6FC8 800A63C8 8C398744 */ lw $t9, %lo(jpt_800E8744)($at) -/* 0A6FCC 800A63CC 00000000 */ nop -/* 0A6FD0 800A63D0 03200008 */ jr $t9 -/* 0A6FD4 800A63D4 00000000 */ nop -glabel L800A63D8 -/* 0A6FD8 800A63D8 8FAA005C */ lw $t2, 0x5c($sp) -/* 0A6FDC 800A63DC 240C007F */ li $t4, 127 -/* 0A6FE0 800A63E0 314B0040 */ andi $t3, $t2, 0x40 -/* 0A6FE4 800A63E4 1560000D */ bnez $t3, .L800A641C -/* 0A6FE8 800A63E8 24040016 */ li $a0, 22 -/* 0A6FEC 800A63EC A06C0002 */ sb $t4, 2($v1) -/* 0A6FF0 800A63F0 A0600003 */ sb $zero, 3($v1) -/* 0A6FF4 800A63F4 84ED0000 */ lh $t5, ($a3) -/* 0A6FF8 800A63F8 AFA70070 */ sw $a3, 0x70($sp) -/* 0A6FFC 800A63FC 00002825 */ move $a1, $zero -/* 0A7000 800A6400 0C000741 */ jal play_sound_global -/* 0A7004 800A6404 A06D000C */ sb $t5, 0xc($v1) -/* 0A7008 800A6408 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A700C 800A640C 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A7010 800A6410 8D220000 */ lw $v0, ($t1) -/* 0A7014 800A6414 8FA70070 */ lw $a3, 0x70($sp) -/* 0A7018 800A6418 00000000 */ nop -.L800A641C: -/* 0A701C 800A641C 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 -/* 0A7020 800A6420 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) -/* 0A7024 800A6424 240EFFEC */ li $t6, -20 -/* 0A7028 800A6428 10600006 */ beqz $v1, .L800A6444 -/* 0A702C 800A642C 24060002 */ li $a2, 2 -/* 0A7030 800A6430 24080001 */ li $t0, 1 -/* 0A7034 800A6434 10680004 */ beq $v1, $t0, .L800A6448 -/* 0A7038 800A6438 00000000 */ nop -/* 0A703C 800A643C 10000009 */ b .L800A6464 -/* 0A7040 800A6440 24060002 */ li $a2, 2 -.L800A6444: -/* 0A7044 800A6444 24080001 */ li $t0, 1 -.L800A6448: -/* 0A7048 800A6448 A04E05FD */ sb $t6, 0x5fd($v0) -/* 0A704C 800A644C 8D2F0000 */ lw $t7, ($t1) -/* 0A7050 800A6450 2403FFF1 */ li $v1, -15 -/* 0A7054 800A6454 A1E3017D */ sb $v1, 0x17d($t7) -/* 0A7058 800A6458 8D380000 */ lw $t8, ($t1) -/* 0A705C 800A645C 10000016 */ b .L800A64B8 -/* 0A7060 800A6460 A30302FD */ sb $v1, 0x2fd($t8) -.L800A6464: -/* 0A7064 800A6464 84E30000 */ lh $v1, ($a3) -/* 0A7068 800A6468 2419FFA6 */ li $t9, -90 -/* 0A706C 800A646C 10600003 */ beqz $v1, .L800A647C -/* 0A7070 800A6470 00000000 */ nop -/* 0A7074 800A6474 14C30009 */ bne $a2, $v1, .L800A649C -/* 0A7078 800A6478 240C0037 */ li $t4, 55 -.L800A647C: -/* 0A707C 800A647C A05905FD */ sb $t9, 0x5fd($v0) -/* 0A7080 800A6480 8D2A0000 */ lw $t2, ($t1) -/* 0A7084 800A6484 2403FFAB */ li $v1, -85 -/* 0A7088 800A6488 A143017D */ sb $v1, 0x17d($t2) -/* 0A708C 800A648C 8D2B0000 */ lw $t3, ($t1) -/* 0A7090 800A6490 24060002 */ li $a2, 2 -/* 0A7094 800A6494 10000008 */ b .L800A64B8 -/* 0A7098 800A6498 A16302FD */ sb $v1, 0x2fd($t3) -.L800A649C: -/* 0A709C 800A649C A04C05FD */ sb $t4, 0x5fd($v0) -/* 0A70A0 800A64A0 8D2D0000 */ lw $t5, ($t1) -/* 0A70A4 800A64A4 2403003C */ li $v1, 60 -/* 0A70A8 800A64A8 A1A3017D */ sb $v1, 0x17d($t5) -/* 0A70AC 800A64AC 8D2E0000 */ lw $t6, ($t1) -/* 0A70B0 800A64B0 00000000 */ nop -/* 0A70B4 800A64B4 A1C302FD */ sb $v1, 0x2fd($t6) -.L800A64B8: -/* 0A70B8 800A64B8 3C048000 */ lui $a0, %hi(osTvType) # $a0, 0x8000 -/* 0A70BC 800A64BC 24840300 */ addiu $a0, %lo(osTvType) # addiu $a0, $a0, 0x300 -/* 0A70C0 800A64C0 8C8F0000 */ lw $t7, ($a0) -/* 0A70C4 800A64C4 00000000 */ nop -/* 0A70C8 800A64C8 15E00013 */ bnez $t7, .L800A6518 -/* 0A70CC 800A64CC 00000000 */ nop -/* 0A70D0 800A64D0 8D220000 */ lw $v0, ($t1) -/* 0A70D4 800A64D4 00000000 */ nop -/* 0A70D8 800A64D8 805805FD */ lb $t8, 0x5fd($v0) -/* 0A70DC 800A64DC 00000000 */ nop -/* 0A70E0 800A64E0 2719FFFC */ addiu $t9, $t8, -4 -/* 0A70E4 800A64E4 A05905FD */ sb $t9, 0x5fd($v0) -/* 0A70E8 800A64E8 8D220000 */ lw $v0, ($t1) -/* 0A70EC 800A64EC 00000000 */ nop -/* 0A70F0 800A64F0 804A017D */ lb $t2, 0x17d($v0) -/* 0A70F4 800A64F4 00000000 */ nop -/* 0A70F8 800A64F8 254BFFFC */ addiu $t3, $t2, -4 -/* 0A70FC 800A64FC A04B017D */ sb $t3, 0x17d($v0) -/* 0A7100 800A6500 8D220000 */ lw $v0, ($t1) -/* 0A7104 800A6504 00000000 */ nop -/* 0A7108 800A6508 804C02FD */ lb $t4, 0x2fd($v0) -/* 0A710C 800A650C 00000000 */ nop -/* 0A7110 800A6510 258DFFFC */ addiu $t5, $t4, -4 -/* 0A7114 800A6514 A04D02FD */ sb $t5, 0x2fd($v0) -.L800A6518: -/* 0A7118 800A6518 84E201AC */ lh $v0, 0x1ac($a3) -/* 0A711C 800A651C 00000000 */ nop -/* 0A7120 800A6520 28410004 */ slti $at, $v0, 4 -/* 0A7124 800A6524 10200004 */ beqz $at, .L800A6538 -/* 0A7128 800A6528 244EFFFF */ addiu $t6, $v0, -1 -/* 0A712C 800A652C 8D2F0000 */ lw $t7, ($t1) -/* 0A7130 800A6530 10000004 */ b .L800A6544 -/* 0A7134 800A6534 A5EE0618 */ sh $t6, 0x618($t7) -.L800A6538: -/* 0A7138 800A6538 8D390000 */ lw $t9, ($t1) -/* 0A713C 800A653C 24180003 */ li $t8, 3 -/* 0A7140 800A6540 A7380618 */ sh $t8, 0x618($t9) -.L800A6544: -/* 0A7144 800A6544 84EA01AC */ lh $t2, 0x1ac($a3) -/* 0A7148 800A6548 8D2C0000 */ lw $t4, ($t1) -/* 0A714C 800A654C 254BFFFF */ addiu $t3, $t2, -1 -/* 0A7150 800A6550 A58B05F8 */ sh $t3, 0x5f8($t4) -/* 0A7154 800A6554 8D2D0000 */ lw $t5, ($t1) -/* 0A7158 800A6558 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 -/* 0A715C 800A655C A1A805FA */ sb $t0, 0x5fa($t5) -/* 0A7160 800A6560 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) -/* 0A7164 800A6564 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 0A7168 800A6568 10460008 */ beq $v0, $a2, .L800A658C -/* 0A716C 800A656C 00000000 */ nop -/* 0A7170 800A6570 24010003 */ li $at, 3 -/* 0A7174 800A6574 10410054 */ beq $v0, $at, .L800A66C8 -/* 0A7178 800A6578 24010004 */ li $at, 4 -/* 0A717C 800A657C 10410052 */ beq $v0, $at, .L800A66C8 -/* 0A7180 800A6580 00000000 */ nop -/* 0A7184 800A6584 100000A8 */ b .L800A6828 -/* 0A7188 800A6588 00000000 */ nop -.L800A658C: -/* 0A718C 800A658C 44816000 */ mtc1 $at, $f12 -/* 0A7190 800A6590 84E30000 */ lh $v1, ($a3) -/* 0A7194 800A6594 3C01C220 */ li $at, 0xC2200000 # -40.000000 -/* 0A7198 800A6598 44817000 */ mtc1 $at, $f14 -/* 0A719C 800A659C 14600007 */ bnez $v1, .L800A65BC -/* 0A71A0 800A65A0 3C014337 */ li $at, 0x43370000 # 183.000000 -/* 0A71A4 800A65A4 3C014296 */ li $at, 0x42960000 # 75.000000 -/* 0A71A8 800A65A8 44810000 */ mtc1 $at, $f0 -/* 0A71AC 800A65AC 3C0142B4 */ li $at, 0x42B40000 # 90.000000 -/* 0A71B0 800A65B0 44811000 */ mtc1 $at, $f2 -/* 0A71B4 800A65B4 10000006 */ b .L800A65D0 -/* 0A71B8 800A65B8 8C8E0000 */ lw $t6, ($a0) -.L800A65BC: -/* 0A71BC 800A65BC 44810000 */ mtc1 $at, $f0 -/* 0A71C0 800A65C0 3C014346 */ li $at, 0x43460000 # 198.000000 -/* 0A71C4 800A65C4 44811000 */ mtc1 $at, $f2 -/* 0A71C8 800A65C8 00000000 */ nop -/* 0A71CC 800A65CC 8C8E0000 */ lw $t6, ($a0) -.L800A65D0: -/* 0A71D0 800A65D0 3C01800F */ lui $at, %hi(D_800E8758 + 4) # $at, 0x800f -/* 0A71D4 800A65D4 15C0002D */ bnez $t6, .L800A668C -/* 0A71D8 800A65D8 00000000 */ nop -/* 0A71DC 800A65DC C4318758 */ lwc1 $f17, %lo(D_800E8758)($at) -/* 0A71E0 800A65E0 C430875C */ lwc1 $f16, %lo(D_800E8758 + 4)($at) -/* 0A71E4 800A65E4 46000121 */ cvt.d.s $f4, $f0 -/* 0A71E8 800A65E8 46302182 */ mul.d $f6, $f4, $f16 -/* 0A71EC 800A65EC 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A71F0 800A65F0 44819000 */ mtc1 $at, $f18 -/* 0A71F4 800A65F4 46001221 */ cvt.d.s $f8, $f2 -/* 0A71F8 800A65F8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 -/* 0A71FC 800A65FC 46304282 */ mul.d $f10, $f8, $f16 -/* 0A7200 800A6600 44812000 */ mtc1 $at, $f4 -/* 0A7204 800A6604 46203020 */ cvt.s.d $f0, $f6 -/* 0A7208 800A6608 3C01C220 */ li $at, 0xC2200000 # -40.000000 -/* 0A720C 800A660C 44813000 */ mtc1 $at, $f6 -/* 0A7210 800A6610 462050A0 */ cvt.s.d $f2, $f10 -/* 0A7214 800A6614 46122301 */ sub.s $f12, $f4, $f18 -/* 0A7218 800A6618 46123381 */ sub.s $f14, $f6, $f18 -/* 0A721C 800A661C 444FF800 */ cfc1 $t7, $31 -/* 0A7220 800A6620 00000000 */ nop -/* 0A7224 800A6624 35E10003 */ ori $at, $t7, 3 -/* 0A7228 800A6628 38210002 */ xori $at, $at, 2 -/* 0A722C 800A662C 44C1F800 */ ctc1 $at, $31 -/* 0A7230 800A6630 00000000 */ nop -/* 0A7234 800A6634 46000224 */ cvt.w.s $f8, $f0 -/* 0A7238 800A6638 44184000 */ mfc1 $t8, $f8 -/* 0A723C 800A663C 44CFF800 */ ctc1 $t7, $31 -/* 0A7240 800A6640 44985000 */ mtc1 $t8, $f10 -/* 0A7244 800A6644 00000000 */ nop -/* 0A7248 800A6648 46805020 */ cvt.s.w $f0, $f10 -/* 0A724C 800A664C 4459F800 */ cfc1 $t9, $31 -/* 0A7250 800A6650 00000000 */ nop -/* 0A7254 800A6654 37210003 */ ori $at, $t9, 3 -/* 0A7258 800A6658 38210002 */ xori $at, $at, 2 -/* 0A725C 800A665C 44C1F800 */ ctc1 $at, $31 -/* 0A7260 800A6660 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 0A7264 800A6664 46001124 */ cvt.w.s $f4, $f2 -/* 0A7268 800A6668 440A2000 */ mfc1 $t2, $f4 -/* 0A726C 800A666C 44D9F800 */ ctc1 $t9, $31 -/* 0A7270 800A6670 448A3000 */ mtc1 $t2, $f6 -/* 0A7274 800A6674 14600005 */ bnez $v1, .L800A668C -/* 0A7278 800A6678 468030A0 */ cvt.s.w $f2, $f6 -/* 0A727C 800A667C 44818000 */ mtc1 $at, $f16 -/* 0A7280 800A6680 00000000 */ nop -/* 0A7284 800A6684 46100001 */ sub.s $f0, $f0, $f16 -/* 0A7288 800A6688 46101081 */ sub.s $f2, $f2, $f16 -.L800A668C: -/* 0A728C 800A668C 8D2B0000 */ lw $t3, ($t1) -/* 0A7290 800A6690 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 -/* 0A7294 800A6694 E56C016C */ swc1 $f12, 0x16c($t3) -/* 0A7298 800A6698 8D2C0000 */ lw $t4, ($t1) -/* 0A729C 800A669C 00000000 */ nop -/* 0A72A0 800A66A0 E5800170 */ swc1 $f0, 0x170($t4) -/* 0A72A4 800A66A4 8D2D0000 */ lw $t5, ($t1) -/* 0A72A8 800A66A8 00000000 */ nop -/* 0A72AC 800A66AC E5AE02EC */ swc1 $f14, 0x2ec($t5) -/* 0A72B0 800A66B0 8D2E0000 */ lw $t6, ($t1) -/* 0A72B4 800A66B4 00000000 */ nop -/* 0A72B8 800A66B8 E5C202F0 */ swc1 $f2, 0x2f0($t6) -/* 0A72BC 800A66BC 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) -/* 0A72C0 800A66C0 10000059 */ b .L800A6828 -/* 0A72C4 800A66C4 00000000 */ nop -.L800A66C8: -/* 0A72C8 800A66C8 84E30000 */ lh $v1, ($a3) -/* 0A72CC 800A66CC 00000000 */ nop -/* 0A72D0 800A66D0 28610002 */ slti $at, $v1, 2 -/* 0A72D4 800A66D4 10200006 */ beqz $at, .L800A66F0 -/* 0A72D8 800A66D8 3C014296 */ li $at, 0x42960000 # 75.000000 -/* 0A72DC 800A66DC 44810000 */ mtc1 $at, $f0 -/* 0A72E0 800A66E0 3C0142B4 */ li $at, 0x42B40000 # 90.000000 -/* 0A72E4 800A66E4 44811000 */ mtc1 $at, $f2 -/* 0A72E8 800A66E8 10000006 */ b .L800A6704 -/* 0A72EC 800A66EC 00000000 */ nop -.L800A66F0: -/* 0A72F0 800A66F0 3C014337 */ li $at, 0x43370000 # 183.000000 -/* 0A72F4 800A66F4 44810000 */ mtc1 $at, $f0 -/* 0A72F8 800A66F8 3C014346 */ li $at, 0x43460000 # 198.000000 -/* 0A72FC 800A66FC 44811000 */ mtc1 $at, $f2 -/* 0A7300 800A6700 00000000 */ nop -.L800A6704: -/* 0A7304 800A6704 10600003 */ beqz $v1, .L800A6714 -/* 0A7308 800A6708 3C01428C */ li $at, 0x428C0000 # 70.000000 -/* 0A730C 800A670C 14C30006 */ bne $a2, $v1, .L800A6728 -/* 0A7310 800A6710 00000000 */ nop -.L800A6714: -/* 0A7314 800A6714 44816000 */ mtc1 $at, $f12 -/* 0A7318 800A6718 3C01C366 */ li $at, 0xC3660000 # -230.000000 -/* 0A731C 800A671C 44817000 */ mtc1 $at, $f14 -/* 0A7320 800A6720 10000007 */ b .L800A6740 -/* 0A7324 800A6724 8C8F0000 */ lw $t7, ($a0) -.L800A6728: -/* 0A7328 800A6728 3C014366 */ li $at, 0x43660000 # 230.000000 -/* 0A732C 800A672C 44816000 */ mtc1 $at, $f12 -/* 0A7330 800A6730 3C01C28C */ li $at, 0xC28C0000 # -70.000000 -/* 0A7334 800A6734 44817000 */ mtc1 $at, $f14 -/* 0A7338 800A6738 00000000 */ nop -/* 0A733C 800A673C 8C8F0000 */ lw $t7, ($a0) -.L800A6740: -/* 0A7340 800A6740 3C01800F */ lui $at, %hi(D_800E8760 + 4) # $at, 0x800f -/* 0A7344 800A6744 15E0002A */ bnez $t7, .L800A67F0 -/* 0A7348 800A6748 00000000 */ nop -/* 0A734C 800A674C C4318760 */ lwc1 $f17, %lo(D_800E8760)($at) -/* 0A7350 800A6750 C4308764 */ lwc1 $f16, %lo(D_800E8760 + 4)($at) -/* 0A7354 800A6754 46000221 */ cvt.d.s $f8, $f0 -/* 0A7358 800A6758 46304282 */ mul.d $f10, $f8, $f16 -/* 0A735C 800A675C 46001121 */ cvt.d.s $f4, $f2 -/* 0A7360 800A6760 3C014080 */ li $at, 0x40800000 # 4.000000 -/* 0A7364 800A6764 44819000 */ mtc1 $at, $f18 -/* 0A7368 800A6768 46302182 */ mul.d $f6, $f4, $f16 -/* 0A736C 800A676C 46205020 */ cvt.s.d $f0, $f10 -/* 0A7370 800A6770 462030A0 */ cvt.s.d $f2, $f6 -/* 0A7374 800A6774 46126301 */ sub.s $f12, $f12, $f18 -/* 0A7378 800A6778 46127381 */ sub.s $f14, $f14, $f18 -/* 0A737C 800A677C 4458F800 */ cfc1 $t8, $31 -/* 0A7380 800A6780 00000000 */ nop -/* 0A7384 800A6784 37010003 */ ori $at, $t8, 3 -/* 0A7388 800A6788 38210002 */ xori $at, $at, 2 -/* 0A738C 800A678C 44C1F800 */ ctc1 $at, $31 -/* 0A7390 800A6790 00000000 */ nop -/* 0A7394 800A6794 46000224 */ cvt.w.s $f8, $f0 -/* 0A7398 800A6798 44194000 */ mfc1 $t9, $f8 -/* 0A739C 800A679C 44D8F800 */ ctc1 $t8, $31 -/* 0A73A0 800A67A0 44995000 */ mtc1 $t9, $f10 -/* 0A73A4 800A67A4 00000000 */ nop -/* 0A73A8 800A67A8 46805020 */ cvt.s.w $f0, $f10 -/* 0A73AC 800A67AC 444AF800 */ cfc1 $t2, $31 -/* 0A73B0 800A67B0 00000000 */ nop -/* 0A73B4 800A67B4 35410003 */ ori $at, $t2, 3 -/* 0A73B8 800A67B8 38210002 */ xori $at, $at, 2 -/* 0A73BC 800A67BC 44C1F800 */ ctc1 $at, $31 -/* 0A73C0 800A67C0 28610002 */ slti $at, $v1, 2 -/* 0A73C4 800A67C4 46001124 */ cvt.w.s $f4, $f2 -/* 0A73C8 800A67C8 440B2000 */ mfc1 $t3, $f4 -/* 0A73CC 800A67CC 44CAF800 */ ctc1 $t2, $31 -/* 0A73D0 800A67D0 448B3000 */ mtc1 $t3, $f6 -/* 0A73D4 800A67D4 10200006 */ beqz $at, .L800A67F0 -/* 0A73D8 800A67D8 468030A0 */ cvt.s.w $f2, $f6 -/* 0A73DC 800A67DC 3C014110 */ li $at, 0x41100000 # 9.000000 -/* 0A73E0 800A67E0 44818000 */ mtc1 $at, $f16 -/* 0A73E4 800A67E4 00000000 */ nop -/* 0A73E8 800A67E8 46100001 */ sub.s $f0, $f0, $f16 -/* 0A73EC 800A67EC 46101081 */ sub.s $f2, $f2, $f16 -.L800A67F0: -/* 0A73F0 800A67F0 8D2C0000 */ lw $t4, ($t1) -/* 0A73F4 800A67F4 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 -/* 0A73F8 800A67F8 E58C016C */ swc1 $f12, 0x16c($t4) -/* 0A73FC 800A67FC 8D2D0000 */ lw $t5, ($t1) -/* 0A7400 800A6800 00000000 */ nop -/* 0A7404 800A6804 E5A00170 */ swc1 $f0, 0x170($t5) -/* 0A7408 800A6808 8D2E0000 */ lw $t6, ($t1) -/* 0A740C 800A680C 00000000 */ nop -/* 0A7410 800A6810 E5CE02EC */ swc1 $f14, 0x2ec($t6) -/* 0A7414 800A6814 8D2F0000 */ lw $t7, ($t1) -/* 0A7418 800A6818 00000000 */ nop -/* 0A741C 800A681C E5E202F0 */ swc1 $f2, 0x2f0($t7) -/* 0A7420 800A6820 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) -/* 0A7424 800A6824 00000000 */ nop -.L800A6828: -/* 0A7428 800A6828 1102015F */ beq $t0, $v0, .L800A6DA8 -/* 0A742C 800A682C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0A7430 800A6830 0C01AF6C */ jal get_current_level_header -/* 0A7434 800A6834 AFA70070 */ sw $a3, 0x70($sp) -/* 0A7438 800A6838 8FA70070 */ lw $a3, 0x70($sp) -/* 0A743C 800A683C 00004025 */ move $t0, $zero -/* 0A7440 800A6840 8CF80128 */ lw $t8, 0x128($a3) -/* 0A7444 800A6844 00001825 */ move $v1, $zero -/* 0A7448 800A6848 AFB80044 */ sw $t8, 0x44($sp) -/* 0A744C 800A684C 8059004B */ lb $t9, 0x4B($v0) -/* 0A7450 800A6850 27A6003C */ addiu $a2, $sp, 0x3c -/* 0A7454 800A6854 1B20000E */ blez $t9, .L800A6890 -/* 0A7458 800A6858 8FA40044 */ lw $a0, 0x44($sp) -/* 0A745C 800A685C 8045004B */ lb $a1, 0x4B($v0) -/* 0A7460 800A6860 00E02025 */ move $a0, $a3 -.L800A6864: -/* 0A7464 800A6864 8C820128 */ lw $v0, 0x128($a0) -/* 0A7468 800A6868 8FAA0044 */ lw $t2, 0x44($sp) -/* 0A746C 800A686C 24630001 */ addiu $v1, $v1, 1 -/* 0A7470 800A6870 004A082A */ slt $at, $v0, $t2 -/* 0A7474 800A6874 10200002 */ beqz $at, .L800A6880 -/* 0A7478 800A6878 01024021 */ addu $t0, $t0, $v0 -/* 0A747C 800A687C AFA20044 */ sw $v0, 0x44($sp) -.L800A6880: -/* 0A7480 800A6880 0065082A */ slt $at, $v1, $a1 -/* 0A7484 800A6884 1420FFF7 */ bnez $at, .L800A6864 -/* 0A7488 800A6888 24840004 */ addiu $a0, $a0, 4 -/* 0A748C 800A688C 8FA40044 */ lw $a0, 0x44($sp) -.L800A6890: -/* 0A7490 800A6890 27A50040 */ addiu $a1, $sp, 0x40 -/* 0A7494 800A6894 27A70038 */ addiu $a3, $sp, 0x38 -/* 0A7498 800A6898 0C0165E4 */ jal get_timestamp_from_frames -/* 0A749C 800A689C AFA80048 */ sw $t0, 0x48($sp) -/* 0A74A0 800A68A0 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A74A4 800A68A4 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A74A8 800A68A8 8D2C0000 */ lw $t4, ($t1) -/* 0A74AC 800A68AC 8FAB0040 */ lw $t3, 0x40($sp) -/* 0A74B0 800A68B0 27A50040 */ addiu $a1, $sp, 0x40 -/* 0A74B4 800A68B4 A18B02FA */ sb $t3, 0x2fa($t4) -/* 0A74B8 800A68B8 8D2E0000 */ lw $t6, ($t1) -/* 0A74BC 800A68BC 8FAD003C */ lw $t5, 0x3c($sp) -/* 0A74C0 800A68C0 27A6003C */ addiu $a2, $sp, 0x3c -/* 0A74C4 800A68C4 A1CD02FB */ sb $t5, 0x2fb($t6) -/* 0A74C8 800A68C8 8D380000 */ lw $t8, ($t1) -/* 0A74CC 800A68CC 8FAF0038 */ lw $t7, 0x38($sp) -/* 0A74D0 800A68D0 27A70038 */ addiu $a3, $sp, 0x38 -/* 0A74D4 800A68D4 A30F02FC */ sb $t7, 0x2fc($t8) -/* 0A74D8 800A68D8 8FA40048 */ lw $a0, 0x48($sp) -/* 0A74DC 800A68DC 0C0165E4 */ jal get_timestamp_from_frames -/* 0A74E0 800A68E0 00000000 */ nop -/* 0A74E4 800A68E4 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A74E8 800A68E8 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A74EC 800A68EC 8D2A0000 */ lw $t2, ($t1) -/* 0A74F0 800A68F0 8FB90040 */ lw $t9, 0x40($sp) -/* 0A74F4 800A68F4 00000000 */ nop -/* 0A74F8 800A68F8 A159017A */ sb $t9, 0x17a($t2) -/* 0A74FC 800A68FC 8D2C0000 */ lw $t4, ($t1) -/* 0A7500 800A6900 8FAB003C */ lw $t3, 0x3c($sp) -/* 0A7504 800A6904 00000000 */ nop -/* 0A7508 800A6908 A18B017B */ sb $t3, 0x17b($t4) -/* 0A750C 800A690C 8D2E0000 */ lw $t6, ($t1) -/* 0A7510 800A6910 8FAD0038 */ lw $t5, 0x38($sp) -/* 0A7514 800A6914 10000123 */ b .L800A6DA4 -/* 0A7518 800A6918 A1CD017C */ sb $t5, 0x17c($t6) -glabel L800A691C -/* 0A751C 800A691C 8FA40074 */ lw $a0, 0x74($sp) -/* 0A7520 800A6920 804505FD */ lb $a1, 0x5fd($v0) -/* 0A7524 800A6924 00047880 */ sll $t7, $a0, 2 -/* 0A7528 800A6928 01E47823 */ subu $t7, $t7, $a0 -/* 0A752C 800A692C 000F7880 */ sll $t7, $t7, 2 -/* 0A7530 800A6930 01E47821 */ addu $t7, $t7, $a0 -/* 0A7534 800A6934 00AFC023 */ subu $t8, $a1, $t7 -/* 0A7538 800A6938 271900A0 */ addiu $t9, $t8, 0xa0 -/* 0A753C 800A693C 44994000 */ mtc1 $t9, $f8 -/* 0A7540 800A6940 C44205EC */ lwc1 $f2, 0x5ec($v0) -/* 0A7544 800A6944 468042A0 */ cvt.s.w $f10, $f8 -/* 0A7548 800A6948 24060001 */ li $a2, 1 -/* 0A754C 800A694C 01E02025 */ move $a0, $t7 -/* 0A7550 800A6950 460A103C */ c.lt.s $f2, $f10 -/* 0A7554 800A6954 01E01825 */ move $v1, $t7 -/* 0A7558 800A6958 45000003 */ bc1f .L800A6968 -/* 0A755C 800A695C 24AA00A0 */ addiu $t2, $a1, 0xa0 -/* 0A7560 800A6960 1000000F */ b .L800A69A0 -/* 0A7564 800A6964 00003025 */ move $a2, $zero -.L800A6968: -/* 0A7568 800A6968 448A2000 */ mtc1 $t2, $f4 -/* 0A756C 800A696C 00000000 */ nop -/* 0A7570 800A6970 468021A0 */ cvt.s.w $f6, $f4 -/* 0A7574 800A6974 46023201 */ sub.s $f8, $f6, $f2 -/* 0A7578 800A6978 444BF800 */ cfc1 $t3, $31 -/* 0A757C 800A697C 00000000 */ nop -/* 0A7580 800A6980 35610003 */ ori $at, $t3, 3 -/* 0A7584 800A6984 38210002 */ xori $at, $at, 2 -/* 0A7588 800A6988 44C1F800 */ ctc1 $at, $31 -/* 0A758C 800A698C 00000000 */ nop -/* 0A7590 800A6990 460042A4 */ cvt.w.s $f10, $f8 -/* 0A7594 800A6994 44CBF800 */ ctc1 $t3, $31 -/* 0A7598 800A6998 44035000 */ mfc1 $v1, $f10 -/* 0A759C 800A699C 00000000 */ nop -.L800A69A0: -/* 0A75A0 800A69A0 44832000 */ mtc1 $v1, $f4 -/* 0A75A4 800A69A4 3C0C8012 */ lui $t4, %hi(gNumActivePlayers) # $t4, 0x8012 -/* 0A75A8 800A69A8 46802020 */ cvt.s.w $f0, $f4 -/* 0A75AC 800A69AC 24080001 */ li $t0, 1 -/* 0A75B0 800A69B0 46001180 */ add.s $f6, $f2, $f0 -/* 0A75B4 800A69B4 E44605EC */ swc1 $f6, 0x5ec($v0) -/* 0A75B8 800A69B8 8D220000 */ lw $v0, ($t1) -/* 0A75BC 800A69BC 00000000 */ nop -/* 0A75C0 800A69C0 C448060C */ lwc1 $f8, 0x60c($v0) -/* 0A75C4 800A69C4 00000000 */ nop -/* 0A75C8 800A69C8 46004280 */ add.s $f10, $f8, $f0 -/* 0A75CC 800A69CC E44A060C */ swc1 $f10, 0x60c($v0) -/* 0A75D0 800A69D0 918C6D37 */ lbu $t4, %lo(gNumActivePlayers)($t4) -/* 0A75D4 800A69D4 00000000 */ nop -/* 0A75D8 800A69D8 110C0045 */ beq $t0, $t4, .L800A6AF0 -/* 0A75DC 800A69DC 00000000 */ nop -/* 0A75E0 800A69E0 8D220000 */ lw $v0, ($t1) -/* 0A75E4 800A69E4 00801825 */ move $v1, $a0 -/* 0A75E8 800A69E8 8045017D */ lb $a1, 0x17d($v0) -/* 0A75EC 800A69EC C440016C */ lwc1 $f0, 0x16c($v0) -/* 0A75F0 800A69F0 00A46821 */ addu $t5, $a1, $a0 -/* 0A75F4 800A69F4 25AE00A0 */ addiu $t6, $t5, 0xa0 -/* 0A75F8 800A69F8 448E2000 */ mtc1 $t6, $f4 -/* 0A75FC 800A69FC 24AF00A0 */ addiu $t7, $a1, 0xa0 -/* 0A7600 800A6A00 468021A0 */ cvt.s.w $f6, $f4 -/* 0A7604 800A6A04 4600303C */ c.lt.s $f6, $f0 -/* 0A7608 800A6A08 00000000 */ nop -/* 0A760C 800A6A0C 45000003 */ bc1f .L800A6A1C -/* 0A7610 800A6A10 00000000 */ nop -/* 0A7614 800A6A14 1000000F */ b .L800A6A54 -/* 0A7618 800A6A18 00003025 */ move $a2, $zero -.L800A6A1C: -/* 0A761C 800A6A1C 448F4000 */ mtc1 $t7, $f8 -/* 0A7620 800A6A20 00000000 */ nop -/* 0A7624 800A6A24 468042A0 */ cvt.s.w $f10, $f8 -/* 0A7628 800A6A28 460A0101 */ sub.s $f4, $f0, $f10 -/* 0A762C 800A6A2C 4458F800 */ cfc1 $t8, $31 -/* 0A7630 800A6A30 00000000 */ nop -/* 0A7634 800A6A34 37010003 */ ori $at, $t8, 3 -/* 0A7638 800A6A38 38210002 */ xori $at, $at, 2 -/* 0A763C 800A6A3C 44C1F800 */ ctc1 $at, $31 -/* 0A7640 800A6A40 00000000 */ nop -/* 0A7644 800A6A44 460021A4 */ cvt.w.s $f6, $f4 -/* 0A7648 800A6A48 44D8F800 */ ctc1 $t8, $31 -/* 0A764C 800A6A4C 44033000 */ mfc1 $v1, $f6 -/* 0A7650 800A6A50 00000000 */ nop -.L800A6A54: -/* 0A7654 800A6A54 44834000 */ mtc1 $v1, $f8 -/* 0A7658 800A6A58 00801825 */ move $v1, $a0 -/* 0A765C 800A6A5C 468042A0 */ cvt.s.w $f10, $f8 -/* 0A7660 800A6A60 460A0101 */ sub.s $f4, $f0, $f10 -/* 0A7664 800A6A64 E444016C */ swc1 $f4, 0x16c($v0) -/* 0A7668 800A6A68 8D220000 */ lw $v0, ($t1) -/* 0A766C 800A6A6C 00000000 */ nop -/* 0A7670 800A6A70 804502FD */ lb $a1, 0x2fd($v0) -/* 0A7674 800A6A74 C44202EC */ lwc1 $f2, 0x2ec($v0) -/* 0A7678 800A6A78 00A4C823 */ subu $t9, $a1, $a0 -/* 0A767C 800A6A7C 272A00A0 */ addiu $t2, $t9, 0xa0 -/* 0A7680 800A6A80 448A3000 */ mtc1 $t2, $f6 -/* 0A7684 800A6A84 24AB00A0 */ addiu $t3, $a1, 0xa0 -/* 0A7688 800A6A88 46803220 */ cvt.s.w $f8, $f6 -/* 0A768C 800A6A8C 4608103C */ c.lt.s $f2, $f8 -/* 0A7690 800A6A90 00000000 */ nop -/* 0A7694 800A6A94 45000003 */ bc1f .L800A6AA4 -/* 0A7698 800A6A98 00000000 */ nop -/* 0A769C 800A6A9C 1000000F */ b .L800A6ADC -/* 0A76A0 800A6AA0 00003025 */ move $a2, $zero -.L800A6AA4: -/* 0A76A4 800A6AA4 448B5000 */ mtc1 $t3, $f10 -/* 0A76A8 800A6AA8 00000000 */ nop -/* 0A76AC 800A6AAC 46805120 */ cvt.s.w $f4, $f10 -/* 0A76B0 800A6AB0 46022181 */ sub.s $f6, $f4, $f2 -/* 0A76B4 800A6AB4 444CF800 */ cfc1 $t4, $31 -/* 0A76B8 800A6AB8 00000000 */ nop -/* 0A76BC 800A6ABC 35810003 */ ori $at, $t4, 3 -/* 0A76C0 800A6AC0 38210002 */ xori $at, $at, 2 -/* 0A76C4 800A6AC4 44C1F800 */ ctc1 $at, $31 -/* 0A76C8 800A6AC8 00000000 */ nop -/* 0A76CC 800A6ACC 46003224 */ cvt.w.s $f8, $f6 -/* 0A76D0 800A6AD0 44CCF800 */ ctc1 $t4, $31 -/* 0A76D4 800A6AD4 44034000 */ mfc1 $v1, $f8 -/* 0A76D8 800A6AD8 00000000 */ nop -.L800A6ADC: -/* 0A76DC 800A6ADC 44835000 */ mtc1 $v1, $f10 -/* 0A76E0 800A6AE0 00000000 */ nop -/* 0A76E4 800A6AE4 46805120 */ cvt.s.w $f4, $f10 -/* 0A76E8 800A6AE8 46041180 */ add.s $f6, $f2, $f4 -/* 0A76EC 800A6AEC E44602EC */ swc1 $f6, 0x2ec($v0) -.L800A6AF0: -/* 0A76F0 800A6AF0 10C00032 */ beqz $a2, .L800A6BBC -/* 0A76F4 800A6AF4 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 -/* 0A76F8 800A6AF8 8D2D0000 */ lw $t5, ($t1) -/* 0A76FC 800A6AFC 24060002 */ li $a2, 2 -/* 0A7700 800A6B00 A1A605FA */ sb $a2, 0x5fa($t5) -/* 0A7704 800A6B04 8D2F0000 */ lw $t7, ($t1) -/* 0A7708 800A6B08 240EFF88 */ li $t6, -120 -/* 0A770C 800A6B0C A1EE05FB */ sb $t6, 0x5fb($t7) -/* 0A7710 800A6B10 8D380000 */ lw $t8, ($t1) -/* 0A7714 800A6B14 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 -/* 0A7718 800A6B18 A30005FC */ sb $zero, 0x5fc($t8) -/* 0A771C 800A6B1C 8CB90000 */ lw $t9, ($a1) -/* 0A7720 800A6B20 8FAA005C */ lw $t2, 0x5c($sp) -/* 0A7724 800A6B24 17200025 */ bnez $t9, .L800A6BBC -/* 0A7728 800A6B28 24010040 */ li $at, 64 -/* 0A772C 800A6B2C 1541001A */ bne $t2, $at, .L800A6B98 -/* 0A7730 800A6B30 00000000 */ nop -/* 0A7734 800A6B34 84E301AC */ lh $v1, 0x1ac($a3) -/* 0A7738 800A6B38 24040146 */ li $a0, 326 -/* 0A773C 800A6B3C 10680007 */ beq $v1, $t0, .L800A6B5C -/* 0A7740 800A6B40 00000000 */ nop -/* 0A7744 800A6B44 10660005 */ beq $v1, $a2, .L800A6B5C -/* 0A7748 800A6B48 24010003 */ li $at, 3 -/* 0A774C 800A6B4C 10610008 */ beq $v1, $at, .L800A6B70 -/* 0A7750 800A6B50 2404014C */ li $a0, 332 -/* 0A7754 800A6B54 1000000B */ b .L800A6B84 -/* 0A7758 800A6B58 2404014D */ li $a0, 333 -.L800A6B5C: -/* 0A775C 800A6B5C 0C000741 */ jal play_sound_global -/* 0A7760 800A6B60 AFA70070 */ sw $a3, 0x70($sp) -/* 0A7764 800A6B64 8FA70070 */ lw $a3, 0x70($sp) -/* 0A7768 800A6B68 10000014 */ b .L800A6BBC -/* 0A776C 800A6B6C 00000000 */ nop -.L800A6B70: -/* 0A7770 800A6B70 0C000741 */ jal play_sound_global -/* 0A7774 800A6B74 AFA70070 */ sw $a3, 0x70($sp) -/* 0A7778 800A6B78 8FA70070 */ lw $a3, 0x70($sp) -/* 0A777C 800A6B7C 1000000F */ b .L800A6BBC -/* 0A7780 800A6B80 00000000 */ nop -.L800A6B84: -/* 0A7784 800A6B84 0C000741 */ jal play_sound_global -/* 0A7788 800A6B88 AFA70070 */ sw $a3, 0x70($sp) -/* 0A778C 800A6B8C 8FA70070 */ lw $a3, 0x70($sp) -/* 0A7790 800A6B90 1000000A */ b .L800A6BBC -/* 0A7794 800A6B94 00000000 */ nop -.L800A6B98: -/* 0A7798 800A6B98 0C006D90 */ jal get_time_trial_ghost -/* 0A779C 800A6B9C AFA70070 */ sw $a3, 0x70($sp) -/* 0A77A0 800A6BA0 8FA70070 */ lw $a3, 0x70($sp) -/* 0A77A4 800A6BA4 14400005 */ bnez $v0, .L800A6BBC -/* 0A77A8 800A6BA8 00E02025 */ move $a0, $a3 -/* 0A77AC 800A6BAC 0C029B6D */ jal play_time_trial_end_message -/* 0A77B0 800A6BB0 AFA70070 */ sw $a3, 0x70($sp) -/* 0A77B4 800A6BB4 8FA70070 */ lw $a3, 0x70($sp) -/* 0A77B8 800A6BB8 00000000 */ nop -.L800A6BBC: -/* 0A77BC 800A6BBC 0C0297C6 */ jal func_800A5F18 -/* 0A77C0 800A6BC0 00E02025 */ move $a0, $a3 -/* 0A77C4 800A6BC4 10000078 */ b .L800A6DA8 -/* 0A77C8 800A6BC8 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800A6BCC -/* 0A77CC 800A6BCC 804B05FB */ lb $t3, 0x5fb($v0) -/* 0A77D0 800A6BD0 8FAC0074 */ lw $t4, 0x74($sp) -/* 0A77D4 800A6BD4 240FFF88 */ li $t7, -120 -/* 0A77D8 800A6BD8 016C6821 */ addu $t5, $t3, $t4 -/* 0A77DC 800A6BDC A04D05FB */ sb $t5, 0x5fb($v0) -/* 0A77E0 800A6BE0 8D220000 */ lw $v0, ($t1) -/* 0A77E4 800A6BE4 3C0B8012 */ lui $t3, %hi(gNumActivePlayers) # $t3, 0x8012 -/* 0A77E8 800A6BE8 804E05FB */ lb $t6, 0x5fb($v0) -/* 0A77EC 800A6BEC 00000000 */ nop -/* 0A77F0 800A6BF0 29C10078 */ slti $at, $t6, 0x78 -/* 0A77F4 800A6BF4 1420000A */ bnez $at, .L800A6C20 -/* 0A77F8 800A6BF8 00000000 */ nop -/* 0A77FC 800A6BFC A04F05FB */ sb $t7, 0x5fb($v0) -/* 0A7800 800A6C00 8D220000 */ lw $v0, ($t1) -/* 0A7804 800A6C04 00000000 */ nop -/* 0A7808 800A6C08 805805FC */ lb $t8, 0x5fc($v0) -/* 0A780C 800A6C0C 00000000 */ nop -/* 0A7810 800A6C10 27190001 */ addiu $t9, $t8, 1 -/* 0A7814 800A6C14 A05905FC */ sb $t9, 0x5fc($v0) -/* 0A7818 800A6C18 8D220000 */ lw $v0, ($t1) -/* 0A781C 800A6C1C 00000000 */ nop -.L800A6C20: -/* 0A7820 800A6C20 804A05FC */ lb $t2, 0x5fc($v0) -/* 0A7824 800A6C24 24060002 */ li $a2, 2 -/* 0A7828 800A6C28 14CA001A */ bne $a2, $t2, .L800A6C94 -/* 0A782C 800A6C2C 00000000 */ nop -/* 0A7830 800A6C30 916B6D37 */ lbu $t3, %lo(gNumActivePlayers)($t3) -/* 0A7834 800A6C34 24080001 */ li $t0, 1 -/* 0A7838 800A6C38 110B000B */ beq $t0, $t3, .L800A6C68 -/* 0A783C 800A6C3C 240C0003 */ li $t4, 3 -/* 0A7840 800A6C40 0C027B20 */ jal is_in_two_player_adventure -/* 0A7844 800A6C44 AFA70070 */ sw $a3, 0x70($sp) -/* 0A7848 800A6C48 8FA70070 */ lw $a3, 0x70($sp) -/* 0A784C 800A6C4C 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 -/* 0A7850 800A6C50 1040000D */ beqz $v0, .L800A6C88 -/* 0A7854 800A6C54 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc -/* 0A7858 800A6C58 3C028012 */ lui $v0, %hi(gCurrentHud) # $v0, 0x8012 -/* 0A785C 800A6C5C 8C426CDC */ lw $v0, %lo(gCurrentHud)($v0) -/* 0A7860 800A6C60 00000000 */ nop -/* 0A7864 800A6C64 240C0003 */ li $t4, 3 -.L800A6C68: -/* 0A7868 800A6C68 A04C05FA */ sb $t4, 0x5fa($v0) -/* 0A786C 800A6C6C AFA70070 */ sw $a3, 0x70($sp) -/* 0A7870 800A6C70 24040016 */ li $a0, 22 -/* 0A7874 800A6C74 0C000741 */ jal play_sound_global -/* 0A7878 800A6C78 00002825 */ move $a1, $zero -/* 0A787C 800A6C7C 8FA70070 */ lw $a3, 0x70($sp) -/* 0A7880 800A6C80 10000004 */ b .L800A6C94 -/* 0A7884 800A6C84 00000000 */ nop -.L800A6C88: -/* 0A7888 800A6C88 8D2E0000 */ lw $t6, ($t1) -/* 0A788C 800A6C8C 240D0004 */ li $t5, 4 -/* 0A7890 800A6C90 A1CD05FA */ sb $t5, 0x5fa($t6) -.L800A6C94: -/* 0A7894 800A6C94 0C0297C6 */ jal func_800A5F18 -/* 0A7898 800A6C98 00E02025 */ move $a0, $a3 -/* 0A789C 800A6C9C 10000042 */ b .L800A6DA8 -/* 0A78A0 800A6CA0 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800A6CA4 -/* 0A78A4 800A6CA4 8FAF005C */ lw $t7, 0x5c($sp) -/* 0A78A8 800A6CA8 24010040 */ li $at, 64 -/* 0A78AC 800A6CAC 15E10003 */ bne $t7, $at, .L800A6CBC -/* 0A78B0 800A6CB0 24180004 */ li $t8, 4 -/* 0A78B4 800A6CB4 10000028 */ b .L800A6D58 -/* 0A78B8 800A6CB8 A05805FA */ sb $t8, 0x5fa($v0) -.L800A6CBC: -/* 0A78BC 800A6CBC 8FB90074 */ lw $t9, 0x74($sp) -/* 0A78C0 800A6CC0 C44A05EC */ lwc1 $f10, 0x5ec($v0) -/* 0A78C4 800A6CC4 00195080 */ sll $t2, $t9, 2 -/* 0A78C8 800A6CC8 01595023 */ subu $t2, $t2, $t9 -/* 0A78CC 800A6CCC 000A5080 */ sll $t2, $t2, 2 -/* 0A78D0 800A6CD0 01595021 */ addu $t2, $t2, $t9 -/* 0A78D4 800A6CD4 448A4000 */ mtc1 $t2, $f8 -/* 0A78D8 800A6CD8 3C01C348 */ li $at, 0xC3480000 # -200.000000 -/* 0A78DC 800A6CDC 46804020 */ cvt.s.w $f0, $f8 -/* 0A78E0 800A6CE0 240B0004 */ li $t3, 4 -/* 0A78E4 800A6CE4 46005101 */ sub.s $f4, $f10, $f0 -/* 0A78E8 800A6CE8 E44405EC */ swc1 $f4, 0x5ec($v0) -/* 0A78EC 800A6CEC 8D220000 */ lw $v0, ($t1) -/* 0A78F0 800A6CF0 44812000 */ mtc1 $at, $f4 -/* 0A78F4 800A6CF4 C446060C */ lwc1 $f6, 0x60c($v0) -/* 0A78F8 800A6CF8 00000000 */ nop -/* 0A78FC 800A6CFC 46003201 */ sub.s $f8, $f6, $f0 -/* 0A7900 800A6D00 E448060C */ swc1 $f8, 0x60c($v0) -/* 0A7904 800A6D04 8D220000 */ lw $v0, ($t1) -/* 0A7908 800A6D08 00000000 */ nop -/* 0A790C 800A6D0C C44A05EC */ lwc1 $f10, 0x5ec($v0) -/* 0A7910 800A6D10 00000000 */ nop -/* 0A7914 800A6D14 4604503C */ c.lt.s $f10, $f4 -/* 0A7918 800A6D18 00000000 */ nop -/* 0A791C 800A6D1C 45000004 */ bc1f .L800A6D30 -/* 0A7920 800A6D20 00000000 */ nop -/* 0A7924 800A6D24 A04B05FA */ sb $t3, 0x5fa($v0) -/* 0A7928 800A6D28 8D220000 */ lw $v0, ($t1) -/* 0A792C 800A6D2C 00000000 */ nop -.L800A6D30: -/* 0A7930 800A6D30 C446016C */ lwc1 $f6, 0x16c($v0) -/* 0A7934 800A6D34 00000000 */ nop -/* 0A7938 800A6D38 46003200 */ add.s $f8, $f6, $f0 -/* 0A793C 800A6D3C E448016C */ swc1 $f8, 0x16c($v0) -/* 0A7940 800A6D40 8D220000 */ lw $v0, ($t1) -/* 0A7944 800A6D44 00000000 */ nop -/* 0A7948 800A6D48 C44A02EC */ lwc1 $f10, 0x2ec($v0) -/* 0A794C 800A6D4C 00000000 */ nop -/* 0A7950 800A6D50 46005100 */ add.s $f4, $f10, $f0 -/* 0A7954 800A6D54 E44402EC */ swc1 $f4, 0x2ec($v0) -.L800A6D58: -/* 0A7958 800A6D58 0C0297C6 */ jal func_800A5F18 -/* 0A795C 800A6D5C 00E02025 */ move $a0, $a3 -/* 0A7960 800A6D60 10000011 */ b .L800A6DA8 -/* 0A7964 800A6D64 8FBF0014 */ lw $ra, 0x14($sp) -glabel L800A6D68 -/* 0A7968 800A6D68 84EC0000 */ lh $t4, ($a3) -/* 0A796C 800A6D6C 806D000C */ lb $t5, 0xc($v1) -/* 0A7970 800A6D70 240F0005 */ li $t7, 5 -/* 0A7974 800A6D74 158D0003 */ bne $t4, $t5, .L800A6D84 -/* 0A7978 800A6D78 00E02025 */ move $a0, $a3 -/* 0A797C 800A6D7C 240EFFFF */ li $t6, -1 -/* 0A7980 800A6D80 A06E0003 */ sb $t6, 3($v1) -.L800A6D84: -/* 0A7984 800A6D84 A04F05FA */ sb $t7, 0x5fa($v0) -/* 0A7988 800A6D88 8D380000 */ lw $t8, ($t1) -/* 0A798C 800A6D8C 0C0297C6 */ jal func_800A5F18 -/* 0A7990 800A6D90 A30005FB */ sb $zero, 0x5fb($t8) -/* 0A7994 800A6D94 10000004 */ b .L800A6DA8 -/* 0A7998 800A6D98 8FBF0014 */ lw $ra, 0x14($sp) -.L800A6D9C: -/* 0A799C 800A6D9C 0C0297C6 */ jal func_800A5F18 -/* 0A79A0 800A6DA0 00E02025 */ move $a0, $a3 -.L800A6DA4: -/* 0A79A4 800A6DA4 8FBF0014 */ lw $ra, 0x14($sp) -.L800A6DA8: -/* 0A79A8 800A6DA8 27BD0070 */ addiu $sp, $sp, 0x70 -/* 0A79AC 800A6DAC 03E00008 */ jr $ra -/* 0A79B0 800A6DB0 00000000 */ nop - +.late_rodata +glabel jpt_800E8744 +.word L800A63D8, L800A691C, L800A6BCC, L800A6CA4, L800A6D68 +glabel D_800E8758 +.double 1.1 +glabel D_800E8760 +.double 1.1 + +.text +glabel func_800A6254 +/* 0A6E54 800A6254 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 0A6E58 800A6258 AFBF0014 */ sw $ra, 0x14($sp) +/* 0A6E5C 800A625C AFA50074 */ sw $a1, 0x74($sp) +/* 0A6E60 800A6260 0C01AF66 */ jal get_current_level_race_type +/* 0A6E64 800A6264 AFA40070 */ sw $a0, 0x70($sp) +/* 0A6E68 800A6268 0C027B20 */ jal is_in_two_player_adventure +/* 0A6E6C 800A626C AFA2005C */ sw $v0, 0x5c($sp) +/* 0A6E70 800A6270 8FA70070 */ lw $a3, 0x70($sp) +/* 0A6E74 800A6274 10400049 */ beqz $v0, .L800A639C +/* 0A6E78 800A6278 00000000 */ nop +/* 0A6E7C 800A627C 0C01BAAC */ jal is_postrace_viewport_active +/* 0A6E80 800A6280 AFA70070 */ sw $a3, 0x70($sp) +/* 0A6E84 800A6284 8FA70070 */ lw $a3, 0x70($sp) +/* 0A6E88 800A6288 10400044 */ beqz $v0, .L800A639C +/* 0A6E8C 800A628C 3C0E8012 */ lui $t6, %hi(D_80127189) # $t6, 0x8012 +/* 0A6E90 800A6290 91CE7189 */ lbu $t6, %lo(D_80127189)($t6) +/* 0A6E94 800A6294 00000000 */ nop +/* 0A6E98 800A6298 15C00040 */ bnez $t6, .L800A639C +/* 0A6E9C 800A629C 00000000 */ nop +/* 0A6EA0 800A62A0 0C003861 */ jal func_8000E184 +/* 0A6EA4 800A62A4 AFA70070 */ sw $a3, 0x70($sp) +/* 0A6EA8 800A62A8 8FA70070 */ lw $a3, 0x70($sp) +/* 0A6EAC 800A62AC 1040001B */ beqz $v0, .L800A631C +/* 0A6EB0 800A62B0 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A6EB4 800A62B4 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A6EB8 800A62B8 8D220000 */ lw $v0, ($t1) +/* 0A6EBC 800A62BC 3C0142D8 */ li $at, 0x42D80000 # 108.000000 +/* 0A6EC0 800A62C0 44810000 */ mtc1 $at, $f0 +/* 0A6EC4 800A62C4 C44405F0 */ lwc1 $f4, 0x5f0($v0) +/* 0A6EC8 800A62C8 00000000 */ nop +/* 0A6ECC 800A62CC 46002181 */ sub.s $f6, $f4, $f0 +/* 0A6ED0 800A62D0 E44605F0 */ swc1 $f6, 0x5f0($v0) +/* 0A6ED4 800A62D4 8D220000 */ lw $v0, ($t1) +/* 0A6ED8 800A62D8 00000000 */ nop +/* 0A6EDC 800A62DC C4480610 */ lwc1 $f8, 0x610($v0) +/* 0A6EE0 800A62E0 00000000 */ nop +/* 0A6EE4 800A62E4 46004281 */ sub.s $f10, $f8, $f0 +/* 0A6EE8 800A62E8 E44A0610 */ swc1 $f10, 0x610($v0) +/* 0A6EEC 800A62EC 8D220000 */ lw $v0, ($t1) +/* 0A6EF0 800A62F0 00000000 */ nop +/* 0A6EF4 800A62F4 C4440170 */ lwc1 $f4, 0x170($v0) +/* 0A6EF8 800A62F8 00000000 */ nop +/* 0A6EFC 800A62FC 46002181 */ sub.s $f6, $f4, $f0 +/* 0A6F00 800A6300 E4460170 */ swc1 $f6, 0x170($v0) +/* 0A6F04 800A6304 8D220000 */ lw $v0, ($t1) +/* 0A6F08 800A6308 00000000 */ nop +/* 0A6F0C 800A630C C44802F0 */ lwc1 $f8, 0x2f0($v0) +/* 0A6F10 800A6310 00000000 */ nop +/* 0A6F14 800A6314 46004281 */ sub.s $f10, $f8, $f0 +/* 0A6F18 800A6318 E44A02F0 */ swc1 $f10, 0x2f0($v0) +.L800A631C: +/* 0A6F1C 800A631C 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A6F20 800A6320 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A6F24 800A6324 8D220000 */ lw $v0, ($t1) +/* 0A6F28 800A6328 3C01420C */ li $at, 0x420C0000 # 35.000000 +/* 0A6F2C 800A632C 44810000 */ mtc1 $at, $f0 +/* 0A6F30 800A6330 C44405F0 */ lwc1 $f4, 0x5f0($v0) +/* 0A6F34 800A6334 3C03800E */ lui $v1, %hi(D_800E2770) # $v1, 0x800e +/* 0A6F38 800A6338 46002180 */ add.s $f6, $f4, $f0 +/* 0A6F3C 800A633C 24632770 */ addiu $v1, %lo(D_800E2770) # addiu $v1, $v1, 0x2770 +/* 0A6F40 800A6340 E44605F0 */ swc1 $f6, 0x5f0($v0) +/* 0A6F44 800A6344 8D220000 */ lw $v0, ($t1) +/* 0A6F48 800A6348 3C018012 */ lui $at, %hi(D_80127189) # $at, 0x8012 +/* 0A6F4C 800A634C C4480610 */ lwc1 $f8, 0x610($v0) +/* 0A6F50 800A6350 24180001 */ li $t8, 1 +/* 0A6F54 800A6354 46004280 */ add.s $f10, $f8, $f0 +/* 0A6F58 800A6358 E44A0610 */ swc1 $f10, 0x610($v0) +/* 0A6F5C 800A635C 8D220000 */ lw $v0, ($t1) +/* 0A6F60 800A6360 00000000 */ nop +/* 0A6F64 800A6364 C4440170 */ lwc1 $f4, 0x170($v0) +/* 0A6F68 800A6368 00000000 */ nop +/* 0A6F6C 800A636C 46002180 */ add.s $f6, $f4, $f0 +/* 0A6F70 800A6370 E4460170 */ swc1 $f6, 0x170($v0) +/* 0A6F74 800A6374 8D220000 */ lw $v0, ($t1) +/* 0A6F78 800A6378 00000000 */ nop +/* 0A6F7C 800A637C C44802F0 */ lwc1 $f8, 0x2f0($v0) +/* 0A6F80 800A6380 00000000 */ nop +/* 0A6F84 800A6384 46004280 */ add.s $f10, $f8, $f0 +/* 0A6F88 800A6388 E44A02F0 */ swc1 $f10, 0x2f0($v0) +/* 0A6F8C 800A638C 84EF0000 */ lh $t7, ($a3) +/* 0A6F90 800A6390 00000000 */ nop +/* 0A6F94 800A6394 A06F000C */ sb $t7, 0xc($v1) +/* 0A6F98 800A6398 A0387189 */ sb $t8, %lo(D_80127189)($at) +.L800A639C: +/* 0A6F9C 800A639C 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A6FA0 800A63A0 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A6FA4 800A63A4 8D220000 */ lw $v0, ($t1) +/* 0A6FA8 800A63A8 3C03800E */ lui $v1, %hi(D_800E2770) # $v1, 0x800e +/* 0A6FAC 800A63AC 905905FA */ lbu $t9, 0x5fa($v0) +/* 0A6FB0 800A63B0 24632770 */ addiu $v1, %lo(D_800E2770) # addiu $v1, $v1, 0x2770 +/* 0A6FB4 800A63B4 2F210005 */ sltiu $at, $t9, 5 +/* 0A6FB8 800A63B8 10200278 */ beqz $at, .L800A6D9C +/* 0A6FBC 800A63BC 0019C880 */ sll $t9, $t9, 2 +/* 0A6FC0 800A63C0 3C01800F */ lui $at, %hi(jpt_800E8744) # $at, 0x800f +/* 0A6FC4 800A63C4 00390821 */ addu $at, $at, $t9 +/* 0A6FC8 800A63C8 8C398744 */ lw $t9, %lo(jpt_800E8744)($at) +/* 0A6FCC 800A63CC 00000000 */ nop +/* 0A6FD0 800A63D0 03200008 */ jr $t9 +/* 0A6FD4 800A63D4 00000000 */ nop +glabel L800A63D8 +/* 0A6FD8 800A63D8 8FAA005C */ lw $t2, 0x5c($sp) +/* 0A6FDC 800A63DC 240C007F */ li $t4, 127 +/* 0A6FE0 800A63E0 314B0040 */ andi $t3, $t2, 0x40 +/* 0A6FE4 800A63E4 1560000D */ bnez $t3, .L800A641C +/* 0A6FE8 800A63E8 24040016 */ li $a0, 22 +/* 0A6FEC 800A63EC A06C0002 */ sb $t4, 2($v1) +/* 0A6FF0 800A63F0 A0600003 */ sb $zero, 3($v1) +/* 0A6FF4 800A63F4 84ED0000 */ lh $t5, ($a3) +/* 0A6FF8 800A63F8 AFA70070 */ sw $a3, 0x70($sp) +/* 0A6FFC 800A63FC 00002825 */ move $a1, $zero +/* 0A7000 800A6400 0C000741 */ jal sound_play +/* 0A7004 800A6404 A06D000C */ sb $t5, 0xc($v1) +/* 0A7008 800A6408 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A700C 800A640C 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A7010 800A6410 8D220000 */ lw $v0, ($t1) +/* 0A7014 800A6414 8FA70070 */ lw $a3, 0x70($sp) +/* 0A7018 800A6418 00000000 */ nop +.L800A641C: +/* 0A701C 800A641C 3C038012 */ lui $v1, %hi(gHUDNumPlayers) # $v1, 0x8012 +/* 0A7020 800A6420 8C636D0C */ lw $v1, %lo(gHUDNumPlayers)($v1) +/* 0A7024 800A6424 240EFFEC */ li $t6, -20 +/* 0A7028 800A6428 10600006 */ beqz $v1, .L800A6444 +/* 0A702C 800A642C 24060002 */ li $a2, 2 +/* 0A7030 800A6430 24080001 */ li $t0, 1 +/* 0A7034 800A6434 10680004 */ beq $v1, $t0, .L800A6448 +/* 0A7038 800A6438 00000000 */ nop +/* 0A703C 800A643C 10000009 */ b .L800A6464 +/* 0A7040 800A6440 24060002 */ li $a2, 2 +.L800A6444: +/* 0A7044 800A6444 24080001 */ li $t0, 1 +.L800A6448: +/* 0A7048 800A6448 A04E05FD */ sb $t6, 0x5fd($v0) +/* 0A704C 800A644C 8D2F0000 */ lw $t7, ($t1) +/* 0A7050 800A6450 2403FFF1 */ li $v1, -15 +/* 0A7054 800A6454 A1E3017D */ sb $v1, 0x17d($t7) +/* 0A7058 800A6458 8D380000 */ lw $t8, ($t1) +/* 0A705C 800A645C 10000016 */ b .L800A64B8 +/* 0A7060 800A6460 A30302FD */ sb $v1, 0x2fd($t8) +.L800A6464: +/* 0A7064 800A6464 84E30000 */ lh $v1, ($a3) +/* 0A7068 800A6468 2419FFA6 */ li $t9, -90 +/* 0A706C 800A646C 10600003 */ beqz $v1, .L800A647C +/* 0A7070 800A6470 00000000 */ nop +/* 0A7074 800A6474 14C30009 */ bne $a2, $v1, .L800A649C +/* 0A7078 800A6478 240C0037 */ li $t4, 55 +.L800A647C: +/* 0A707C 800A647C A05905FD */ sb $t9, 0x5fd($v0) +/* 0A7080 800A6480 8D2A0000 */ lw $t2, ($t1) +/* 0A7084 800A6484 2403FFAB */ li $v1, -85 +/* 0A7088 800A6488 A143017D */ sb $v1, 0x17d($t2) +/* 0A708C 800A648C 8D2B0000 */ lw $t3, ($t1) +/* 0A7090 800A6490 24060002 */ li $a2, 2 +/* 0A7094 800A6494 10000008 */ b .L800A64B8 +/* 0A7098 800A6498 A16302FD */ sb $v1, 0x2fd($t3) +.L800A649C: +/* 0A709C 800A649C A04C05FD */ sb $t4, 0x5fd($v0) +/* 0A70A0 800A64A0 8D2D0000 */ lw $t5, ($t1) +/* 0A70A4 800A64A4 2403003C */ li $v1, 60 +/* 0A70A8 800A64A8 A1A3017D */ sb $v1, 0x17d($t5) +/* 0A70AC 800A64AC 8D2E0000 */ lw $t6, ($t1) +/* 0A70B0 800A64B0 00000000 */ nop +/* 0A70B4 800A64B4 A1C302FD */ sb $v1, 0x2fd($t6) +.L800A64B8: +/* 0A70B8 800A64B8 3C048000 */ lui $a0, %hi(osTvType) # $a0, 0x8000 +/* 0A70BC 800A64BC 24840300 */ addiu $a0, %lo(osTvType) # addiu $a0, $a0, 0x300 +/* 0A70C0 800A64C0 8C8F0000 */ lw $t7, ($a0) +/* 0A70C4 800A64C4 00000000 */ nop +/* 0A70C8 800A64C8 15E00013 */ bnez $t7, .L800A6518 +/* 0A70CC 800A64CC 00000000 */ nop +/* 0A70D0 800A64D0 8D220000 */ lw $v0, ($t1) +/* 0A70D4 800A64D4 00000000 */ nop +/* 0A70D8 800A64D8 805805FD */ lb $t8, 0x5fd($v0) +/* 0A70DC 800A64DC 00000000 */ nop +/* 0A70E0 800A64E0 2719FFFC */ addiu $t9, $t8, -4 +/* 0A70E4 800A64E4 A05905FD */ sb $t9, 0x5fd($v0) +/* 0A70E8 800A64E8 8D220000 */ lw $v0, ($t1) +/* 0A70EC 800A64EC 00000000 */ nop +/* 0A70F0 800A64F0 804A017D */ lb $t2, 0x17d($v0) +/* 0A70F4 800A64F4 00000000 */ nop +/* 0A70F8 800A64F8 254BFFFC */ addiu $t3, $t2, -4 +/* 0A70FC 800A64FC A04B017D */ sb $t3, 0x17d($v0) +/* 0A7100 800A6500 8D220000 */ lw $v0, ($t1) +/* 0A7104 800A6504 00000000 */ nop +/* 0A7108 800A6508 804C02FD */ lb $t4, 0x2fd($v0) +/* 0A710C 800A650C 00000000 */ nop +/* 0A7110 800A6510 258DFFFC */ addiu $t5, $t4, -4 +/* 0A7114 800A6514 A04D02FD */ sb $t5, 0x2fd($v0) +.L800A6518: +/* 0A7118 800A6518 84E201AC */ lh $v0, 0x1ac($a3) +/* 0A711C 800A651C 00000000 */ nop +/* 0A7120 800A6520 28410004 */ slti $at, $v0, 4 +/* 0A7124 800A6524 10200004 */ beqz $at, .L800A6538 +/* 0A7128 800A6528 244EFFFF */ addiu $t6, $v0, -1 +/* 0A712C 800A652C 8D2F0000 */ lw $t7, ($t1) +/* 0A7130 800A6530 10000004 */ b .L800A6544 +/* 0A7134 800A6534 A5EE0618 */ sh $t6, 0x618($t7) +.L800A6538: +/* 0A7138 800A6538 8D390000 */ lw $t9, ($t1) +/* 0A713C 800A653C 24180003 */ li $t8, 3 +/* 0A7140 800A6540 A7380618 */ sh $t8, 0x618($t9) +.L800A6544: +/* 0A7144 800A6544 84EA01AC */ lh $t2, 0x1ac($a3) +/* 0A7148 800A6548 8D2C0000 */ lw $t4, ($t1) +/* 0A714C 800A654C 254BFFFF */ addiu $t3, $t2, -1 +/* 0A7150 800A6550 A58B05F8 */ sh $t3, 0x5f8($t4) +/* 0A7154 800A6554 8D2D0000 */ lw $t5, ($t1) +/* 0A7158 800A6558 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 0A715C 800A655C A1A805FA */ sb $t0, 0x5fa($t5) +/* 0A7160 800A6560 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) +/* 0A7164 800A6564 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0A7168 800A6568 10460008 */ beq $v0, $a2, .L800A658C +/* 0A716C 800A656C 00000000 */ nop +/* 0A7170 800A6570 24010003 */ li $at, 3 +/* 0A7174 800A6574 10410054 */ beq $v0, $at, .L800A66C8 +/* 0A7178 800A6578 24010004 */ li $at, 4 +/* 0A717C 800A657C 10410052 */ beq $v0, $at, .L800A66C8 +/* 0A7180 800A6580 00000000 */ nop +/* 0A7184 800A6584 100000A8 */ b .L800A6828 +/* 0A7188 800A6588 00000000 */ nop +.L800A658C: +/* 0A718C 800A658C 44816000 */ mtc1 $at, $f12 +/* 0A7190 800A6590 84E30000 */ lh $v1, ($a3) +/* 0A7194 800A6594 3C01C220 */ li $at, 0xC2200000 # -40.000000 +/* 0A7198 800A6598 44817000 */ mtc1 $at, $f14 +/* 0A719C 800A659C 14600007 */ bnez $v1, .L800A65BC +/* 0A71A0 800A65A0 3C014337 */ li $at, 0x43370000 # 183.000000 +/* 0A71A4 800A65A4 3C014296 */ li $at, 0x42960000 # 75.000000 +/* 0A71A8 800A65A8 44810000 */ mtc1 $at, $f0 +/* 0A71AC 800A65AC 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0A71B0 800A65B0 44811000 */ mtc1 $at, $f2 +/* 0A71B4 800A65B4 10000006 */ b .L800A65D0 +/* 0A71B8 800A65B8 8C8E0000 */ lw $t6, ($a0) +.L800A65BC: +/* 0A71BC 800A65BC 44810000 */ mtc1 $at, $f0 +/* 0A71C0 800A65C0 3C014346 */ li $at, 0x43460000 # 198.000000 +/* 0A71C4 800A65C4 44811000 */ mtc1 $at, $f2 +/* 0A71C8 800A65C8 00000000 */ nop +/* 0A71CC 800A65CC 8C8E0000 */ lw $t6, ($a0) +.L800A65D0: +/* 0A71D0 800A65D0 3C01800F */ lui $at, %hi(D_800E8758 + 4) # $at, 0x800f +/* 0A71D4 800A65D4 15C0002D */ bnez $t6, .L800A668C +/* 0A71D8 800A65D8 00000000 */ nop +/* 0A71DC 800A65DC C4318758 */ lwc1 $f17, %lo(D_800E8758)($at) +/* 0A71E0 800A65E0 C430875C */ lwc1 $f16, %lo(D_800E8758 + 4)($at) +/* 0A71E4 800A65E4 46000121 */ cvt.d.s $f4, $f0 +/* 0A71E8 800A65E8 46302182 */ mul.d $f6, $f4, $f16 +/* 0A71EC 800A65EC 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0A71F0 800A65F0 44819000 */ mtc1 $at, $f18 +/* 0A71F4 800A65F4 46001221 */ cvt.d.s $f8, $f2 +/* 0A71F8 800A65F8 3C0143B4 */ li $at, 0x43B40000 # 360.000000 +/* 0A71FC 800A65FC 46304282 */ mul.d $f10, $f8, $f16 +/* 0A7200 800A6600 44812000 */ mtc1 $at, $f4 +/* 0A7204 800A6604 46203020 */ cvt.s.d $f0, $f6 +/* 0A7208 800A6608 3C01C220 */ li $at, 0xC2200000 # -40.000000 +/* 0A720C 800A660C 44813000 */ mtc1 $at, $f6 +/* 0A7210 800A6610 462050A0 */ cvt.s.d $f2, $f10 +/* 0A7214 800A6614 46122301 */ sub.s $f12, $f4, $f18 +/* 0A7218 800A6618 46123381 */ sub.s $f14, $f6, $f18 +/* 0A721C 800A661C 444FF800 */ cfc1 $t7, $31 +/* 0A7220 800A6620 00000000 */ nop +/* 0A7224 800A6624 35E10003 */ ori $at, $t7, 3 +/* 0A7228 800A6628 38210002 */ xori $at, $at, 2 +/* 0A722C 800A662C 44C1F800 */ ctc1 $at, $31 +/* 0A7230 800A6630 00000000 */ nop +/* 0A7234 800A6634 46000224 */ cvt.w.s $f8, $f0 +/* 0A7238 800A6638 44184000 */ mfc1 $t8, $f8 +/* 0A723C 800A663C 44CFF800 */ ctc1 $t7, $31 +/* 0A7240 800A6640 44985000 */ mtc1 $t8, $f10 +/* 0A7244 800A6644 00000000 */ nop +/* 0A7248 800A6648 46805020 */ cvt.s.w $f0, $f10 +/* 0A724C 800A664C 4459F800 */ cfc1 $t9, $31 +/* 0A7250 800A6650 00000000 */ nop +/* 0A7254 800A6654 37210003 */ ori $at, $t9, 3 +/* 0A7258 800A6658 38210002 */ xori $at, $at, 2 +/* 0A725C 800A665C 44C1F800 */ ctc1 $at, $31 +/* 0A7260 800A6660 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 0A7264 800A6664 46001124 */ cvt.w.s $f4, $f2 +/* 0A7268 800A6668 440A2000 */ mfc1 $t2, $f4 +/* 0A726C 800A666C 44D9F800 */ ctc1 $t9, $31 +/* 0A7270 800A6670 448A3000 */ mtc1 $t2, $f6 +/* 0A7274 800A6674 14600005 */ bnez $v1, .L800A668C +/* 0A7278 800A6678 468030A0 */ cvt.s.w $f2, $f6 +/* 0A727C 800A667C 44818000 */ mtc1 $at, $f16 +/* 0A7280 800A6680 00000000 */ nop +/* 0A7284 800A6684 46100001 */ sub.s $f0, $f0, $f16 +/* 0A7288 800A6688 46101081 */ sub.s $f2, $f2, $f16 +.L800A668C: +/* 0A728C 800A668C 8D2B0000 */ lw $t3, ($t1) +/* 0A7290 800A6690 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 0A7294 800A6694 E56C016C */ swc1 $f12, 0x16c($t3) +/* 0A7298 800A6698 8D2C0000 */ lw $t4, ($t1) +/* 0A729C 800A669C 00000000 */ nop +/* 0A72A0 800A66A0 E5800170 */ swc1 $f0, 0x170($t4) +/* 0A72A4 800A66A4 8D2D0000 */ lw $t5, ($t1) +/* 0A72A8 800A66A8 00000000 */ nop +/* 0A72AC 800A66AC E5AE02EC */ swc1 $f14, 0x2ec($t5) +/* 0A72B0 800A66B0 8D2E0000 */ lw $t6, ($t1) +/* 0A72B4 800A66B4 00000000 */ nop +/* 0A72B8 800A66B8 E5C202F0 */ swc1 $f2, 0x2f0($t6) +/* 0A72BC 800A66BC 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) +/* 0A72C0 800A66C0 10000059 */ b .L800A6828 +/* 0A72C4 800A66C4 00000000 */ nop +.L800A66C8: +/* 0A72C8 800A66C8 84E30000 */ lh $v1, ($a3) +/* 0A72CC 800A66CC 00000000 */ nop +/* 0A72D0 800A66D0 28610002 */ slti $at, $v1, 2 +/* 0A72D4 800A66D4 10200006 */ beqz $at, .L800A66F0 +/* 0A72D8 800A66D8 3C014296 */ li $at, 0x42960000 # 75.000000 +/* 0A72DC 800A66DC 44810000 */ mtc1 $at, $f0 +/* 0A72E0 800A66E0 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 0A72E4 800A66E4 44811000 */ mtc1 $at, $f2 +/* 0A72E8 800A66E8 10000006 */ b .L800A6704 +/* 0A72EC 800A66EC 00000000 */ nop +.L800A66F0: +/* 0A72F0 800A66F0 3C014337 */ li $at, 0x43370000 # 183.000000 +/* 0A72F4 800A66F4 44810000 */ mtc1 $at, $f0 +/* 0A72F8 800A66F8 3C014346 */ li $at, 0x43460000 # 198.000000 +/* 0A72FC 800A66FC 44811000 */ mtc1 $at, $f2 +/* 0A7300 800A6700 00000000 */ nop +.L800A6704: +/* 0A7304 800A6704 10600003 */ beqz $v1, .L800A6714 +/* 0A7308 800A6708 3C01428C */ li $at, 0x428C0000 # 70.000000 +/* 0A730C 800A670C 14C30006 */ bne $a2, $v1, .L800A6728 +/* 0A7310 800A6710 00000000 */ nop +.L800A6714: +/* 0A7314 800A6714 44816000 */ mtc1 $at, $f12 +/* 0A7318 800A6718 3C01C366 */ li $at, 0xC3660000 # -230.000000 +/* 0A731C 800A671C 44817000 */ mtc1 $at, $f14 +/* 0A7320 800A6720 10000007 */ b .L800A6740 +/* 0A7324 800A6724 8C8F0000 */ lw $t7, ($a0) +.L800A6728: +/* 0A7328 800A6728 3C014366 */ li $at, 0x43660000 # 230.000000 +/* 0A732C 800A672C 44816000 */ mtc1 $at, $f12 +/* 0A7330 800A6730 3C01C28C */ li $at, 0xC28C0000 # -70.000000 +/* 0A7334 800A6734 44817000 */ mtc1 $at, $f14 +/* 0A7338 800A6738 00000000 */ nop +/* 0A733C 800A673C 8C8F0000 */ lw $t7, ($a0) +.L800A6740: +/* 0A7340 800A6740 3C01800F */ lui $at, %hi(D_800E8760 + 4) # $at, 0x800f +/* 0A7344 800A6744 15E0002A */ bnez $t7, .L800A67F0 +/* 0A7348 800A6748 00000000 */ nop +/* 0A734C 800A674C C4318760 */ lwc1 $f17, %lo(D_800E8760)($at) +/* 0A7350 800A6750 C4308764 */ lwc1 $f16, %lo(D_800E8760 + 4)($at) +/* 0A7354 800A6754 46000221 */ cvt.d.s $f8, $f0 +/* 0A7358 800A6758 46304282 */ mul.d $f10, $f8, $f16 +/* 0A735C 800A675C 46001121 */ cvt.d.s $f4, $f2 +/* 0A7360 800A6760 3C014080 */ li $at, 0x40800000 # 4.000000 +/* 0A7364 800A6764 44819000 */ mtc1 $at, $f18 +/* 0A7368 800A6768 46302182 */ mul.d $f6, $f4, $f16 +/* 0A736C 800A676C 46205020 */ cvt.s.d $f0, $f10 +/* 0A7370 800A6770 462030A0 */ cvt.s.d $f2, $f6 +/* 0A7374 800A6774 46126301 */ sub.s $f12, $f12, $f18 +/* 0A7378 800A6778 46127381 */ sub.s $f14, $f14, $f18 +/* 0A737C 800A677C 4458F800 */ cfc1 $t8, $31 +/* 0A7380 800A6780 00000000 */ nop +/* 0A7384 800A6784 37010003 */ ori $at, $t8, 3 +/* 0A7388 800A6788 38210002 */ xori $at, $at, 2 +/* 0A738C 800A678C 44C1F800 */ ctc1 $at, $31 +/* 0A7390 800A6790 00000000 */ nop +/* 0A7394 800A6794 46000224 */ cvt.w.s $f8, $f0 +/* 0A7398 800A6798 44194000 */ mfc1 $t9, $f8 +/* 0A739C 800A679C 44D8F800 */ ctc1 $t8, $31 +/* 0A73A0 800A67A0 44995000 */ mtc1 $t9, $f10 +/* 0A73A4 800A67A4 00000000 */ nop +/* 0A73A8 800A67A8 46805020 */ cvt.s.w $f0, $f10 +/* 0A73AC 800A67AC 444AF800 */ cfc1 $t2, $31 +/* 0A73B0 800A67B0 00000000 */ nop +/* 0A73B4 800A67B4 35410003 */ ori $at, $t2, 3 +/* 0A73B8 800A67B8 38210002 */ xori $at, $at, 2 +/* 0A73BC 800A67BC 44C1F800 */ ctc1 $at, $31 +/* 0A73C0 800A67C0 28610002 */ slti $at, $v1, 2 +/* 0A73C4 800A67C4 46001124 */ cvt.w.s $f4, $f2 +/* 0A73C8 800A67C8 440B2000 */ mfc1 $t3, $f4 +/* 0A73CC 800A67CC 44CAF800 */ ctc1 $t2, $31 +/* 0A73D0 800A67D0 448B3000 */ mtc1 $t3, $f6 +/* 0A73D4 800A67D4 10200006 */ beqz $at, .L800A67F0 +/* 0A73D8 800A67D8 468030A0 */ cvt.s.w $f2, $f6 +/* 0A73DC 800A67DC 3C014110 */ li $at, 0x41100000 # 9.000000 +/* 0A73E0 800A67E0 44818000 */ mtc1 $at, $f16 +/* 0A73E4 800A67E4 00000000 */ nop +/* 0A73E8 800A67E8 46100001 */ sub.s $f0, $f0, $f16 +/* 0A73EC 800A67EC 46101081 */ sub.s $f2, $f2, $f16 +.L800A67F0: +/* 0A73F0 800A67F0 8D2C0000 */ lw $t4, ($t1) +/* 0A73F4 800A67F4 3C028012 */ lui $v0, %hi(gNumActivePlayers) # $v0, 0x8012 +/* 0A73F8 800A67F8 E58C016C */ swc1 $f12, 0x16c($t4) +/* 0A73FC 800A67FC 8D2D0000 */ lw $t5, ($t1) +/* 0A7400 800A6800 00000000 */ nop +/* 0A7404 800A6804 E5A00170 */ swc1 $f0, 0x170($t5) +/* 0A7408 800A6808 8D2E0000 */ lw $t6, ($t1) +/* 0A740C 800A680C 00000000 */ nop +/* 0A7410 800A6810 E5CE02EC */ swc1 $f14, 0x2ec($t6) +/* 0A7414 800A6814 8D2F0000 */ lw $t7, ($t1) +/* 0A7418 800A6818 00000000 */ nop +/* 0A741C 800A681C E5E202F0 */ swc1 $f2, 0x2f0($t7) +/* 0A7420 800A6820 90426D37 */ lbu $v0, %lo(gNumActivePlayers)($v0) +/* 0A7424 800A6824 00000000 */ nop +.L800A6828: +/* 0A7428 800A6828 1102015F */ beq $t0, $v0, .L800A6DA8 +/* 0A742C 800A682C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0A7430 800A6830 0C01AF6C */ jal get_current_level_header +/* 0A7434 800A6834 AFA70070 */ sw $a3, 0x70($sp) +/* 0A7438 800A6838 8FA70070 */ lw $a3, 0x70($sp) +/* 0A743C 800A683C 00004025 */ move $t0, $zero +/* 0A7440 800A6840 8CF80128 */ lw $t8, 0x128($a3) +/* 0A7444 800A6844 00001825 */ move $v1, $zero +/* 0A7448 800A6848 AFB80044 */ sw $t8, 0x44($sp) +/* 0A744C 800A684C 8059004B */ lb $t9, 0x4B($v0) +/* 0A7450 800A6850 27A6003C */ addiu $a2, $sp, 0x3c +/* 0A7454 800A6854 1B20000E */ blez $t9, .L800A6890 +/* 0A7458 800A6858 8FA40044 */ lw $a0, 0x44($sp) +/* 0A745C 800A685C 8045004B */ lb $a1, 0x4B($v0) +/* 0A7460 800A6860 00E02025 */ move $a0, $a3 +.L800A6864: +/* 0A7464 800A6864 8C820128 */ lw $v0, 0x128($a0) +/* 0A7468 800A6868 8FAA0044 */ lw $t2, 0x44($sp) +/* 0A746C 800A686C 24630001 */ addiu $v1, $v1, 1 +/* 0A7470 800A6870 004A082A */ slt $at, $v0, $t2 +/* 0A7474 800A6874 10200002 */ beqz $at, .L800A6880 +/* 0A7478 800A6878 01024021 */ addu $t0, $t0, $v0 +/* 0A747C 800A687C AFA20044 */ sw $v0, 0x44($sp) +.L800A6880: +/* 0A7480 800A6880 0065082A */ slt $at, $v1, $a1 +/* 0A7484 800A6884 1420FFF7 */ bnez $at, .L800A6864 +/* 0A7488 800A6888 24840004 */ addiu $a0, $a0, 4 +/* 0A748C 800A688C 8FA40044 */ lw $a0, 0x44($sp) +.L800A6890: +/* 0A7490 800A6890 27A50040 */ addiu $a1, $sp, 0x40 +/* 0A7494 800A6894 27A70038 */ addiu $a3, $sp, 0x38 +/* 0A7498 800A6898 0C0165E4 */ jal get_timestamp_from_frames +/* 0A749C 800A689C AFA80048 */ sw $t0, 0x48($sp) +/* 0A74A0 800A68A0 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A74A4 800A68A4 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A74A8 800A68A8 8D2C0000 */ lw $t4, ($t1) +/* 0A74AC 800A68AC 8FAB0040 */ lw $t3, 0x40($sp) +/* 0A74B0 800A68B0 27A50040 */ addiu $a1, $sp, 0x40 +/* 0A74B4 800A68B4 A18B02FA */ sb $t3, 0x2fa($t4) +/* 0A74B8 800A68B8 8D2E0000 */ lw $t6, ($t1) +/* 0A74BC 800A68BC 8FAD003C */ lw $t5, 0x3c($sp) +/* 0A74C0 800A68C0 27A6003C */ addiu $a2, $sp, 0x3c +/* 0A74C4 800A68C4 A1CD02FB */ sb $t5, 0x2fb($t6) +/* 0A74C8 800A68C8 8D380000 */ lw $t8, ($t1) +/* 0A74CC 800A68CC 8FAF0038 */ lw $t7, 0x38($sp) +/* 0A74D0 800A68D0 27A70038 */ addiu $a3, $sp, 0x38 +/* 0A74D4 800A68D4 A30F02FC */ sb $t7, 0x2fc($t8) +/* 0A74D8 800A68D8 8FA40048 */ lw $a0, 0x48($sp) +/* 0A74DC 800A68DC 0C0165E4 */ jal get_timestamp_from_frames +/* 0A74E0 800A68E0 00000000 */ nop +/* 0A74E4 800A68E4 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A74E8 800A68E8 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A74EC 800A68EC 8D2A0000 */ lw $t2, ($t1) +/* 0A74F0 800A68F0 8FB90040 */ lw $t9, 0x40($sp) +/* 0A74F4 800A68F4 00000000 */ nop +/* 0A74F8 800A68F8 A159017A */ sb $t9, 0x17a($t2) +/* 0A74FC 800A68FC 8D2C0000 */ lw $t4, ($t1) +/* 0A7500 800A6900 8FAB003C */ lw $t3, 0x3c($sp) +/* 0A7504 800A6904 00000000 */ nop +/* 0A7508 800A6908 A18B017B */ sb $t3, 0x17b($t4) +/* 0A750C 800A690C 8D2E0000 */ lw $t6, ($t1) +/* 0A7510 800A6910 8FAD0038 */ lw $t5, 0x38($sp) +/* 0A7514 800A6914 10000123 */ b .L800A6DA4 +/* 0A7518 800A6918 A1CD017C */ sb $t5, 0x17c($t6) +glabel L800A691C +/* 0A751C 800A691C 8FA40074 */ lw $a0, 0x74($sp) +/* 0A7520 800A6920 804505FD */ lb $a1, 0x5fd($v0) +/* 0A7524 800A6924 00047880 */ sll $t7, $a0, 2 +/* 0A7528 800A6928 01E47823 */ subu $t7, $t7, $a0 +/* 0A752C 800A692C 000F7880 */ sll $t7, $t7, 2 +/* 0A7530 800A6930 01E47821 */ addu $t7, $t7, $a0 +/* 0A7534 800A6934 00AFC023 */ subu $t8, $a1, $t7 +/* 0A7538 800A6938 271900A0 */ addiu $t9, $t8, 0xa0 +/* 0A753C 800A693C 44994000 */ mtc1 $t9, $f8 +/* 0A7540 800A6940 C44205EC */ lwc1 $f2, 0x5ec($v0) +/* 0A7544 800A6944 468042A0 */ cvt.s.w $f10, $f8 +/* 0A7548 800A6948 24060001 */ li $a2, 1 +/* 0A754C 800A694C 01E02025 */ move $a0, $t7 +/* 0A7550 800A6950 460A103C */ c.lt.s $f2, $f10 +/* 0A7554 800A6954 01E01825 */ move $v1, $t7 +/* 0A7558 800A6958 45000003 */ bc1f .L800A6968 +/* 0A755C 800A695C 24AA00A0 */ addiu $t2, $a1, 0xa0 +/* 0A7560 800A6960 1000000F */ b .L800A69A0 +/* 0A7564 800A6964 00003025 */ move $a2, $zero +.L800A6968: +/* 0A7568 800A6968 448A2000 */ mtc1 $t2, $f4 +/* 0A756C 800A696C 00000000 */ nop +/* 0A7570 800A6970 468021A0 */ cvt.s.w $f6, $f4 +/* 0A7574 800A6974 46023201 */ sub.s $f8, $f6, $f2 +/* 0A7578 800A6978 444BF800 */ cfc1 $t3, $31 +/* 0A757C 800A697C 00000000 */ nop +/* 0A7580 800A6980 35610003 */ ori $at, $t3, 3 +/* 0A7584 800A6984 38210002 */ xori $at, $at, 2 +/* 0A7588 800A6988 44C1F800 */ ctc1 $at, $31 +/* 0A758C 800A698C 00000000 */ nop +/* 0A7590 800A6990 460042A4 */ cvt.w.s $f10, $f8 +/* 0A7594 800A6994 44CBF800 */ ctc1 $t3, $31 +/* 0A7598 800A6998 44035000 */ mfc1 $v1, $f10 +/* 0A759C 800A699C 00000000 */ nop +.L800A69A0: +/* 0A75A0 800A69A0 44832000 */ mtc1 $v1, $f4 +/* 0A75A4 800A69A4 3C0C8012 */ lui $t4, %hi(gNumActivePlayers) # $t4, 0x8012 +/* 0A75A8 800A69A8 46802020 */ cvt.s.w $f0, $f4 +/* 0A75AC 800A69AC 24080001 */ li $t0, 1 +/* 0A75B0 800A69B0 46001180 */ add.s $f6, $f2, $f0 +/* 0A75B4 800A69B4 E44605EC */ swc1 $f6, 0x5ec($v0) +/* 0A75B8 800A69B8 8D220000 */ lw $v0, ($t1) +/* 0A75BC 800A69BC 00000000 */ nop +/* 0A75C0 800A69C0 C448060C */ lwc1 $f8, 0x60c($v0) +/* 0A75C4 800A69C4 00000000 */ nop +/* 0A75C8 800A69C8 46004280 */ add.s $f10, $f8, $f0 +/* 0A75CC 800A69CC E44A060C */ swc1 $f10, 0x60c($v0) +/* 0A75D0 800A69D0 918C6D37 */ lbu $t4, %lo(gNumActivePlayers)($t4) +/* 0A75D4 800A69D4 00000000 */ nop +/* 0A75D8 800A69D8 110C0045 */ beq $t0, $t4, .L800A6AF0 +/* 0A75DC 800A69DC 00000000 */ nop +/* 0A75E0 800A69E0 8D220000 */ lw $v0, ($t1) +/* 0A75E4 800A69E4 00801825 */ move $v1, $a0 +/* 0A75E8 800A69E8 8045017D */ lb $a1, 0x17d($v0) +/* 0A75EC 800A69EC C440016C */ lwc1 $f0, 0x16c($v0) +/* 0A75F0 800A69F0 00A46821 */ addu $t5, $a1, $a0 +/* 0A75F4 800A69F4 25AE00A0 */ addiu $t6, $t5, 0xa0 +/* 0A75F8 800A69F8 448E2000 */ mtc1 $t6, $f4 +/* 0A75FC 800A69FC 24AF00A0 */ addiu $t7, $a1, 0xa0 +/* 0A7600 800A6A00 468021A0 */ cvt.s.w $f6, $f4 +/* 0A7604 800A6A04 4600303C */ c.lt.s $f6, $f0 +/* 0A7608 800A6A08 00000000 */ nop +/* 0A760C 800A6A0C 45000003 */ bc1f .L800A6A1C +/* 0A7610 800A6A10 00000000 */ nop +/* 0A7614 800A6A14 1000000F */ b .L800A6A54 +/* 0A7618 800A6A18 00003025 */ move $a2, $zero +.L800A6A1C: +/* 0A761C 800A6A1C 448F4000 */ mtc1 $t7, $f8 +/* 0A7620 800A6A20 00000000 */ nop +/* 0A7624 800A6A24 468042A0 */ cvt.s.w $f10, $f8 +/* 0A7628 800A6A28 460A0101 */ sub.s $f4, $f0, $f10 +/* 0A762C 800A6A2C 4458F800 */ cfc1 $t8, $31 +/* 0A7630 800A6A30 00000000 */ nop +/* 0A7634 800A6A34 37010003 */ ori $at, $t8, 3 +/* 0A7638 800A6A38 38210002 */ xori $at, $at, 2 +/* 0A763C 800A6A3C 44C1F800 */ ctc1 $at, $31 +/* 0A7640 800A6A40 00000000 */ nop +/* 0A7644 800A6A44 460021A4 */ cvt.w.s $f6, $f4 +/* 0A7648 800A6A48 44D8F800 */ ctc1 $t8, $31 +/* 0A764C 800A6A4C 44033000 */ mfc1 $v1, $f6 +/* 0A7650 800A6A50 00000000 */ nop +.L800A6A54: +/* 0A7654 800A6A54 44834000 */ mtc1 $v1, $f8 +/* 0A7658 800A6A58 00801825 */ move $v1, $a0 +/* 0A765C 800A6A5C 468042A0 */ cvt.s.w $f10, $f8 +/* 0A7660 800A6A60 460A0101 */ sub.s $f4, $f0, $f10 +/* 0A7664 800A6A64 E444016C */ swc1 $f4, 0x16c($v0) +/* 0A7668 800A6A68 8D220000 */ lw $v0, ($t1) +/* 0A766C 800A6A6C 00000000 */ nop +/* 0A7670 800A6A70 804502FD */ lb $a1, 0x2fd($v0) +/* 0A7674 800A6A74 C44202EC */ lwc1 $f2, 0x2ec($v0) +/* 0A7678 800A6A78 00A4C823 */ subu $t9, $a1, $a0 +/* 0A767C 800A6A7C 272A00A0 */ addiu $t2, $t9, 0xa0 +/* 0A7680 800A6A80 448A3000 */ mtc1 $t2, $f6 +/* 0A7684 800A6A84 24AB00A0 */ addiu $t3, $a1, 0xa0 +/* 0A7688 800A6A88 46803220 */ cvt.s.w $f8, $f6 +/* 0A768C 800A6A8C 4608103C */ c.lt.s $f2, $f8 +/* 0A7690 800A6A90 00000000 */ nop +/* 0A7694 800A6A94 45000003 */ bc1f .L800A6AA4 +/* 0A7698 800A6A98 00000000 */ nop +/* 0A769C 800A6A9C 1000000F */ b .L800A6ADC +/* 0A76A0 800A6AA0 00003025 */ move $a2, $zero +.L800A6AA4: +/* 0A76A4 800A6AA4 448B5000 */ mtc1 $t3, $f10 +/* 0A76A8 800A6AA8 00000000 */ nop +/* 0A76AC 800A6AAC 46805120 */ cvt.s.w $f4, $f10 +/* 0A76B0 800A6AB0 46022181 */ sub.s $f6, $f4, $f2 +/* 0A76B4 800A6AB4 444CF800 */ cfc1 $t4, $31 +/* 0A76B8 800A6AB8 00000000 */ nop +/* 0A76BC 800A6ABC 35810003 */ ori $at, $t4, 3 +/* 0A76C0 800A6AC0 38210002 */ xori $at, $at, 2 +/* 0A76C4 800A6AC4 44C1F800 */ ctc1 $at, $31 +/* 0A76C8 800A6AC8 00000000 */ nop +/* 0A76CC 800A6ACC 46003224 */ cvt.w.s $f8, $f6 +/* 0A76D0 800A6AD0 44CCF800 */ ctc1 $t4, $31 +/* 0A76D4 800A6AD4 44034000 */ mfc1 $v1, $f8 +/* 0A76D8 800A6AD8 00000000 */ nop +.L800A6ADC: +/* 0A76DC 800A6ADC 44835000 */ mtc1 $v1, $f10 +/* 0A76E0 800A6AE0 00000000 */ nop +/* 0A76E4 800A6AE4 46805120 */ cvt.s.w $f4, $f10 +/* 0A76E8 800A6AE8 46041180 */ add.s $f6, $f2, $f4 +/* 0A76EC 800A6AEC E44602EC */ swc1 $f6, 0x2ec($v0) +.L800A6AF0: +/* 0A76F0 800A6AF0 10C00032 */ beqz $a2, .L800A6BBC +/* 0A76F4 800A6AF4 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 +/* 0A76F8 800A6AF8 8D2D0000 */ lw $t5, ($t1) +/* 0A76FC 800A6AFC 24060002 */ li $a2, 2 +/* 0A7700 800A6B00 A1A605FA */ sb $a2, 0x5fa($t5) +/* 0A7704 800A6B04 8D2F0000 */ lw $t7, ($t1) +/* 0A7708 800A6B08 240EFF88 */ li $t6, -120 +/* 0A770C 800A6B0C A1EE05FB */ sb $t6, 0x5fb($t7) +/* 0A7710 800A6B10 8D380000 */ lw $t8, ($t1) +/* 0A7714 800A6B14 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 +/* 0A7718 800A6B18 A30005FC */ sb $zero, 0x5fc($t8) +/* 0A771C 800A6B1C 8CB90000 */ lw $t9, ($a1) +/* 0A7720 800A6B20 8FAA005C */ lw $t2, 0x5c($sp) +/* 0A7724 800A6B24 17200025 */ bnez $t9, .L800A6BBC +/* 0A7728 800A6B28 24010040 */ li $at, 64 +/* 0A772C 800A6B2C 1541001A */ bne $t2, $at, .L800A6B98 +/* 0A7730 800A6B30 00000000 */ nop +/* 0A7734 800A6B34 84E301AC */ lh $v1, 0x1ac($a3) +/* 0A7738 800A6B38 24040146 */ li $a0, 326 +/* 0A773C 800A6B3C 10680007 */ beq $v1, $t0, .L800A6B5C +/* 0A7740 800A6B40 00000000 */ nop +/* 0A7744 800A6B44 10660005 */ beq $v1, $a2, .L800A6B5C +/* 0A7748 800A6B48 24010003 */ li $at, 3 +/* 0A774C 800A6B4C 10610008 */ beq $v1, $at, .L800A6B70 +/* 0A7750 800A6B50 2404014C */ li $a0, 332 +/* 0A7754 800A6B54 1000000B */ b .L800A6B84 +/* 0A7758 800A6B58 2404014D */ li $a0, 333 +.L800A6B5C: +/* 0A775C 800A6B5C 0C000741 */ jal sound_play +/* 0A7760 800A6B60 AFA70070 */ sw $a3, 0x70($sp) +/* 0A7764 800A6B64 8FA70070 */ lw $a3, 0x70($sp) +/* 0A7768 800A6B68 10000014 */ b .L800A6BBC +/* 0A776C 800A6B6C 00000000 */ nop +.L800A6B70: +/* 0A7770 800A6B70 0C000741 */ jal sound_play +/* 0A7774 800A6B74 AFA70070 */ sw $a3, 0x70($sp) +/* 0A7778 800A6B78 8FA70070 */ lw $a3, 0x70($sp) +/* 0A777C 800A6B7C 1000000F */ b .L800A6BBC +/* 0A7780 800A6B80 00000000 */ nop +.L800A6B84: +/* 0A7784 800A6B84 0C000741 */ jal sound_play +/* 0A7788 800A6B88 AFA70070 */ sw $a3, 0x70($sp) +/* 0A778C 800A6B8C 8FA70070 */ lw $a3, 0x70($sp) +/* 0A7790 800A6B90 1000000A */ b .L800A6BBC +/* 0A7794 800A6B94 00000000 */ nop +.L800A6B98: +/* 0A7798 800A6B98 0C006D90 */ jal get_time_trial_ghost +/* 0A779C 800A6B9C AFA70070 */ sw $a3, 0x70($sp) +/* 0A77A0 800A6BA0 8FA70070 */ lw $a3, 0x70($sp) +/* 0A77A4 800A6BA4 14400005 */ bnez $v0, .L800A6BBC +/* 0A77A8 800A6BA8 00E02025 */ move $a0, $a3 +/* 0A77AC 800A6BAC 0C029B6D */ jal play_time_trial_end_message +/* 0A77B0 800A6BB0 AFA70070 */ sw $a3, 0x70($sp) +/* 0A77B4 800A6BB4 8FA70070 */ lw $a3, 0x70($sp) +/* 0A77B8 800A6BB8 00000000 */ nop +.L800A6BBC: +/* 0A77BC 800A6BBC 0C0297C6 */ jal func_800A5F18 +/* 0A77C0 800A6BC0 00E02025 */ move $a0, $a3 +/* 0A77C4 800A6BC4 10000078 */ b .L800A6DA8 +/* 0A77C8 800A6BC8 8FBF0014 */ lw $ra, 0x14($sp) +glabel L800A6BCC +/* 0A77CC 800A6BCC 804B05FB */ lb $t3, 0x5fb($v0) +/* 0A77D0 800A6BD0 8FAC0074 */ lw $t4, 0x74($sp) +/* 0A77D4 800A6BD4 240FFF88 */ li $t7, -120 +/* 0A77D8 800A6BD8 016C6821 */ addu $t5, $t3, $t4 +/* 0A77DC 800A6BDC A04D05FB */ sb $t5, 0x5fb($v0) +/* 0A77E0 800A6BE0 8D220000 */ lw $v0, ($t1) +/* 0A77E4 800A6BE4 3C0B8012 */ lui $t3, %hi(gNumActivePlayers) # $t3, 0x8012 +/* 0A77E8 800A6BE8 804E05FB */ lb $t6, 0x5fb($v0) +/* 0A77EC 800A6BEC 00000000 */ nop +/* 0A77F0 800A6BF0 29C10078 */ slti $at, $t6, 0x78 +/* 0A77F4 800A6BF4 1420000A */ bnez $at, .L800A6C20 +/* 0A77F8 800A6BF8 00000000 */ nop +/* 0A77FC 800A6BFC A04F05FB */ sb $t7, 0x5fb($v0) +/* 0A7800 800A6C00 8D220000 */ lw $v0, ($t1) +/* 0A7804 800A6C04 00000000 */ nop +/* 0A7808 800A6C08 805805FC */ lb $t8, 0x5fc($v0) +/* 0A780C 800A6C0C 00000000 */ nop +/* 0A7810 800A6C10 27190001 */ addiu $t9, $t8, 1 +/* 0A7814 800A6C14 A05905FC */ sb $t9, 0x5fc($v0) +/* 0A7818 800A6C18 8D220000 */ lw $v0, ($t1) +/* 0A781C 800A6C1C 00000000 */ nop +.L800A6C20: +/* 0A7820 800A6C20 804A05FC */ lb $t2, 0x5fc($v0) +/* 0A7824 800A6C24 24060002 */ li $a2, 2 +/* 0A7828 800A6C28 14CA001A */ bne $a2, $t2, .L800A6C94 +/* 0A782C 800A6C2C 00000000 */ nop +/* 0A7830 800A6C30 916B6D37 */ lbu $t3, %lo(gNumActivePlayers)($t3) +/* 0A7834 800A6C34 24080001 */ li $t0, 1 +/* 0A7838 800A6C38 110B000B */ beq $t0, $t3, .L800A6C68 +/* 0A783C 800A6C3C 240C0003 */ li $t4, 3 +/* 0A7840 800A6C40 0C027B20 */ jal is_in_two_player_adventure +/* 0A7844 800A6C44 AFA70070 */ sw $a3, 0x70($sp) +/* 0A7848 800A6C48 8FA70070 */ lw $a3, 0x70($sp) +/* 0A784C 800A6C4C 3C098012 */ lui $t1, %hi(gCurrentHud) # $t1, 0x8012 +/* 0A7850 800A6C50 1040000D */ beqz $v0, .L800A6C88 +/* 0A7854 800A6C54 25296CDC */ addiu $t1, %lo(gCurrentHud) # addiu $t1, $t1, 0x6cdc +/* 0A7858 800A6C58 3C028012 */ lui $v0, %hi(gCurrentHud) # $v0, 0x8012 +/* 0A785C 800A6C5C 8C426CDC */ lw $v0, %lo(gCurrentHud)($v0) +/* 0A7860 800A6C60 00000000 */ nop +/* 0A7864 800A6C64 240C0003 */ li $t4, 3 +.L800A6C68: +/* 0A7868 800A6C68 A04C05FA */ sb $t4, 0x5fa($v0) +/* 0A786C 800A6C6C AFA70070 */ sw $a3, 0x70($sp) +/* 0A7870 800A6C70 24040016 */ li $a0, 22 +/* 0A7874 800A6C74 0C000741 */ jal sound_play +/* 0A7878 800A6C78 00002825 */ move $a1, $zero +/* 0A787C 800A6C7C 8FA70070 */ lw $a3, 0x70($sp) +/* 0A7880 800A6C80 10000004 */ b .L800A6C94 +/* 0A7884 800A6C84 00000000 */ nop +.L800A6C88: +/* 0A7888 800A6C88 8D2E0000 */ lw $t6, ($t1) +/* 0A788C 800A6C8C 240D0004 */ li $t5, 4 +/* 0A7890 800A6C90 A1CD05FA */ sb $t5, 0x5fa($t6) +.L800A6C94: +/* 0A7894 800A6C94 0C0297C6 */ jal func_800A5F18 +/* 0A7898 800A6C98 00E02025 */ move $a0, $a3 +/* 0A789C 800A6C9C 10000042 */ b .L800A6DA8 +/* 0A78A0 800A6CA0 8FBF0014 */ lw $ra, 0x14($sp) +glabel L800A6CA4 +/* 0A78A4 800A6CA4 8FAF005C */ lw $t7, 0x5c($sp) +/* 0A78A8 800A6CA8 24010040 */ li $at, 64 +/* 0A78AC 800A6CAC 15E10003 */ bne $t7, $at, .L800A6CBC +/* 0A78B0 800A6CB0 24180004 */ li $t8, 4 +/* 0A78B4 800A6CB4 10000028 */ b .L800A6D58 +/* 0A78B8 800A6CB8 A05805FA */ sb $t8, 0x5fa($v0) +.L800A6CBC: +/* 0A78BC 800A6CBC 8FB90074 */ lw $t9, 0x74($sp) +/* 0A78C0 800A6CC0 C44A05EC */ lwc1 $f10, 0x5ec($v0) +/* 0A78C4 800A6CC4 00195080 */ sll $t2, $t9, 2 +/* 0A78C8 800A6CC8 01595023 */ subu $t2, $t2, $t9 +/* 0A78CC 800A6CCC 000A5080 */ sll $t2, $t2, 2 +/* 0A78D0 800A6CD0 01595021 */ addu $t2, $t2, $t9 +/* 0A78D4 800A6CD4 448A4000 */ mtc1 $t2, $f8 +/* 0A78D8 800A6CD8 3C01C348 */ li $at, 0xC3480000 # -200.000000 +/* 0A78DC 800A6CDC 46804020 */ cvt.s.w $f0, $f8 +/* 0A78E0 800A6CE0 240B0004 */ li $t3, 4 +/* 0A78E4 800A6CE4 46005101 */ sub.s $f4, $f10, $f0 +/* 0A78E8 800A6CE8 E44405EC */ swc1 $f4, 0x5ec($v0) +/* 0A78EC 800A6CEC 8D220000 */ lw $v0, ($t1) +/* 0A78F0 800A6CF0 44812000 */ mtc1 $at, $f4 +/* 0A78F4 800A6CF4 C446060C */ lwc1 $f6, 0x60c($v0) +/* 0A78F8 800A6CF8 00000000 */ nop +/* 0A78FC 800A6CFC 46003201 */ sub.s $f8, $f6, $f0 +/* 0A7900 800A6D00 E448060C */ swc1 $f8, 0x60c($v0) +/* 0A7904 800A6D04 8D220000 */ lw $v0, ($t1) +/* 0A7908 800A6D08 00000000 */ nop +/* 0A790C 800A6D0C C44A05EC */ lwc1 $f10, 0x5ec($v0) +/* 0A7910 800A6D10 00000000 */ nop +/* 0A7914 800A6D14 4604503C */ c.lt.s $f10, $f4 +/* 0A7918 800A6D18 00000000 */ nop +/* 0A791C 800A6D1C 45000004 */ bc1f .L800A6D30 +/* 0A7920 800A6D20 00000000 */ nop +/* 0A7924 800A6D24 A04B05FA */ sb $t3, 0x5fa($v0) +/* 0A7928 800A6D28 8D220000 */ lw $v0, ($t1) +/* 0A792C 800A6D2C 00000000 */ nop +.L800A6D30: +/* 0A7930 800A6D30 C446016C */ lwc1 $f6, 0x16c($v0) +/* 0A7934 800A6D34 00000000 */ nop +/* 0A7938 800A6D38 46003200 */ add.s $f8, $f6, $f0 +/* 0A793C 800A6D3C E448016C */ swc1 $f8, 0x16c($v0) +/* 0A7940 800A6D40 8D220000 */ lw $v0, ($t1) +/* 0A7944 800A6D44 00000000 */ nop +/* 0A7948 800A6D48 C44A02EC */ lwc1 $f10, 0x2ec($v0) +/* 0A794C 800A6D4C 00000000 */ nop +/* 0A7950 800A6D50 46005100 */ add.s $f4, $f10, $f0 +/* 0A7954 800A6D54 E44402EC */ swc1 $f4, 0x2ec($v0) +.L800A6D58: +/* 0A7958 800A6D58 0C0297C6 */ jal func_800A5F18 +/* 0A795C 800A6D5C 00E02025 */ move $a0, $a3 +/* 0A7960 800A6D60 10000011 */ b .L800A6DA8 +/* 0A7964 800A6D64 8FBF0014 */ lw $ra, 0x14($sp) +glabel L800A6D68 +/* 0A7968 800A6D68 84EC0000 */ lh $t4, ($a3) +/* 0A796C 800A6D6C 806D000C */ lb $t5, 0xc($v1) +/* 0A7970 800A6D70 240F0005 */ li $t7, 5 +/* 0A7974 800A6D74 158D0003 */ bne $t4, $t5, .L800A6D84 +/* 0A7978 800A6D78 00E02025 */ move $a0, $a3 +/* 0A797C 800A6D7C 240EFFFF */ li $t6, -1 +/* 0A7980 800A6D80 A06E0003 */ sb $t6, 3($v1) +.L800A6D84: +/* 0A7984 800A6D84 A04F05FA */ sb $t7, 0x5fa($v0) +/* 0A7988 800A6D88 8D380000 */ lw $t8, ($t1) +/* 0A798C 800A6D8C 0C0297C6 */ jal func_800A5F18 +/* 0A7990 800A6D90 A30005FB */ sb $zero, 0x5fb($t8) +/* 0A7994 800A6D94 10000004 */ b .L800A6DA8 +/* 0A7998 800A6D98 8FBF0014 */ lw $ra, 0x14($sp) +.L800A6D9C: +/* 0A799C 800A6D9C 0C0297C6 */ jal func_800A5F18 +/* 0A79A0 800A6DA0 00E02025 */ move $a0, $a3 +.L800A6DA4: +/* 0A79A4 800A6DA4 8FBF0014 */ lw $ra, 0x14($sp) +.L800A6DA8: +/* 0A79A8 800A6DA8 27BD0070 */ addiu $sp, $sp, 0x70 +/* 0A79AC 800A6DAC 03E00008 */ jr $ra +/* 0A79B0 800A6DB0 00000000 */ nop + diff --git a/asm/non_matchings/menu/func_8008F618.s b/asm/non_matchings/menu/func_8008F618.s index 3fa227ae..1082849b 100644 --- a/asm/non_matchings/menu/func_8008F618.s +++ b/asm/non_matchings/menu/func_8008F618.s @@ -17,7 +17,7 @@ glabel func_8008F618 /* 090254 8008F654 0C019A25 */ jal camDisableUserView /* 090258 8008F658 AFA00058 */ sw $zero, 0x58($sp) /* 09025C 8008F65C 02C02025 */ move $a0, $s6 -/* 090260 8008F660 0C01988C */ jal func_80066230 +/* 090260 8008F660 0C01988C */ jal camera_init_tracks_menu /* 090264 8008F664 02002825 */ move $a1, $s0 /* 090268 8008F668 02C02025 */ move $a0, $s6 /* 09026C 8008F66C 0C019FCB */ jal set_ortho_matrix_view diff --git a/asm/non_matchings/menu/func_80092188.s b/asm/non_matchings/menu/func_80092188.s index c1ec3c22..bc9b17b2 100644 --- a/asm/non_matchings/menu/func_80092188.s +++ b/asm/non_matchings/menu/func_80092188.s @@ -69,7 +69,7 @@ glabel func_80092188 /* 092E74 80092274 29C10007 */ slti $at, $t6, 7 /* 092E78 80092278 14200006 */ bnez $at, .L80092294 /* 092E7C 8009227C 00000000 */ nop -/* 092E80 80092280 0C000741 */ jal play_sound_global +/* 092E80 80092280 0C000741 */ jal sound_play /* 092E84 80092284 00002825 */ move $a1, $zero /* 092E88 80092288 3C06800E */ lui $a2, %hi(gTrackNameVoiceDelay) # $a2, 0x800e /* 092E8C 8009228C 24C60980 */ addiu $a2, %lo(gTrackNameVoiceDelay) # addiu $a2, $a2, 0x980 @@ -106,7 +106,7 @@ glabel func_80092188 /* 092EFC 800922FC 0000C012 */ mflo $t8 /* 092F00 80092300 03025021 */ addu $t2, $t8, $v0 /* 092F04 80092304 AFAA0010 */ sw $t2, 0x10($sp) -/* 092F08 80092308 0C019A50 */ jal resize_viewport +/* 092F08 80092308 0C019A50 */ jal viewport_menu_set /* 092F0C 8009230C 00583023 */ subu $a2, $v0, $t8 /* 092F10 80092310 8FA90048 */ lw $t1, 0x48($sp) /* 092F14 80092314 3C0141A0 */ li $at, 0x41A00000 # 20.000000 @@ -168,7 +168,7 @@ glabel func_80092188 /* 092FE8 800923E8 AFAE0010 */ sw $t6, 0x10($sp) /* 092FEC 800923EC 24050050 */ li $a1, 80 /* 092FF0 800923F0 240700F0 */ li $a3, 240 -/* 092FF4 800923F4 0C019A50 */ jal resize_viewport +/* 092FF4 800923F4 0C019A50 */ jal viewport_menu_set /* 092FF8 800923F8 00433023 */ subu $a2, $v0, $v1 .L800923FC: /* 092FFC 800923FC 00002025 */ move $a0, $zero @@ -401,7 +401,7 @@ glabel L8009251C /* 093328 80092728 AD9F0000 */ sw $ra, ($t4) .L8009272C: /* 09332C 8009272C 24040131 */ li $a0, 305 -/* 093330 80092730 0C000741 */ jal play_sound_global +/* 093330 80092730 0C000741 */ jal sound_play /* 093334 80092734 00002825 */ move $a1, $zero /* 093338 80092738 100000F8 */ b .L80092B1C /* 09333C 8009273C 8FAF003C */ lw $t7, 0x3c($sp) @@ -477,13 +477,13 @@ glabel L80092740 /* 09343C 8009283C 24040147 */ li $a0, 327 /* 093440 80092840 3C058012 */ lui $a1, %hi(D_80126848) # $a1, 0x8012 /* 093444 80092844 24A56848 */ addiu $a1, %lo(D_80126848) # addiu $a1, $a1, 0x6848 -/* 093448 80092848 0C000741 */ jal play_sound_global +/* 093448 80092848 0C000741 */ jal sound_play /* 09344C 8009284C 24040141 */ li $a0, 321 /* 093450 80092850 10000004 */ b .L80092864 /* 093454 80092854 00000000 */ nop .L80092858: /* 093458 80092858 3C058012 */ lui $a1, %hi(D_80126848) # $a1, 0x8012 -/* 09345C 8009285C 0C000741 */ jal play_sound_global +/* 09345C 8009285C 0C000741 */ jal sound_play /* 093460 80092860 24A56848 */ addiu $a1, %lo(D_80126848) # addiu $a1, $a1, 0x6848 .L80092864: /* 093464 80092864 3C0E800E */ lui $t6, %hi(gTracksMenuTimeTrialHighlightIndex) # $t6, 0x800e @@ -681,14 +681,14 @@ glabel L8009287C /* 09371C 80092B1C 8FB90038 */ lw $t9, 0x38($sp) /* 093720 80092B20 11E00005 */ beqz $t7, .L80092B38 /* 093724 80092B24 24040241 */ li $a0, 577 -/* 093728 80092B28 0C000741 */ jal play_sound_global +/* 093728 80092B28 0C000741 */ jal sound_play /* 09372C 80092B2C 00002825 */ move $a1, $zero /* 093730 80092B30 1000000D */ b .L80092B68 /* 093734 80092B34 00000000 */ nop .L80092B38: /* 093738 80092B38 13200005 */ beqz $t9, .L80092B50 /* 09373C 80092B3C 240400EF */ li $a0, 239 -/* 093740 80092B40 0C000741 */ jal play_sound_global +/* 093740 80092B40 0C000741 */ jal sound_play /* 093744 80092B44 00002825 */ move $a1, $zero /* 093748 80092B48 10000007 */ b .L80092B68 /* 09374C 80092B4C 00000000 */ nop @@ -697,7 +697,7 @@ glabel L8009287C /* 093754 80092B54 240400EB */ li $a0, 235 /* 093758 80092B58 13000003 */ beqz $t8, .L80092B68 /* 09375C 80092B5C 00000000 */ nop -/* 093760 80092B60 0C000741 */ jal play_sound_global +/* 093760 80092B60 0C000741 */ jal sound_play /* 093764 80092B64 00002825 */ move $a1, $zero .L80092B68: /* 093768 80092B68 3C048012 */ lui $a0, %hi(gPlayerSelectVehicle) # $a0, 0x8012 diff --git a/asm/non_matchings/menu/func_80094D28.s b/asm/non_matchings/menu/func_80094D28.s index b84ec97a..cd435b4a 100644 --- a/asm/non_matchings/menu/func_80094D28.s +++ b/asm/non_matchings/menu/func_80094D28.s @@ -152,7 +152,7 @@ glabel L80094DD0 .L80094F30: /* 095B30 80094F30 00002812 */ mflo $a1 /* 095B34 80094F34 01A53823 */ subu $a3, $t5, $a1 -/* 095B38 80094F38 0C019A50 */ jal resize_viewport +/* 095B38 80094F38 0C019A50 */ jal viewport_menu_set /* 095B3C 80094F3C 00000000 */ nop /* 095B40 80094F40 3C02800E */ lui $v0, %hi(gMenuImageStack) # $v0, 0x800e /* 095B44 80094F44 44905000 */ mtc1 $s0, $f10 diff --git a/asm/non_matchings/menu/menu_credits_loop.s b/asm/non_matchings/menu/menu_credits_loop.s index 8c0288d3..7362ea33 100644 --- a/asm/non_matchings/menu/menu_credits_loop.s +++ b/asm/non_matchings/menu/menu_credits_loop.s @@ -639,7 +639,7 @@ glabel L8009BB9C /* 09C83C 8009BC3C 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c /* 09C840 8009BC40 0C03005C */ jal enable_new_screen_transitions /* 09C844 8009BC44 00000000 */ nop -/* 09C848 8009BC48 0C000326 */ jal set_music_fade_timer +/* 09C848 8009BC48 0C000326 */ jal music_fade /* 09C84C 8009BC4C 2404FF80 */ li $a0, -128 .L8009BC50: /* 09C850 8009BC50 3C02800E */ lui $v0, %hi(gMenuDelay) # $v0, 0x800e @@ -657,7 +657,7 @@ glabel L8009BB9C /* 09C880 8009BC80 2B21001F */ slti $at, $t9, 0x1f /* 09C884 8009BC84 1420000C */ bnez $at, .L8009BCB8 /* 09C888 8009BC88 8FBF0054 */ lw $ra, 0x54($sp) -/* 09C88C 8009BC8C 0C0002CA */ jal func_80000B28 +/* 09C88C 8009BC8C 0C0002CA */ jal music_change_on /* 09C890 8009BC90 00000000 */ nop /* 09C894 8009BC94 0C026F3C */ jal func_8009BCF0 /* 09C898 8009BC98 00000000 */ nop diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 0f75e4de..070149c1 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -320,7 +320,7 @@ glabel menu_track_select_init /* 08F878 8008EC78 AFA90010 */ sw $t1, 0x10($sp) /* 08F87C 8008EC7C 24050050 */ li $a1, 80 /* 08F880 8008EC80 240700F0 */ li $a3, 240 -/* 08F884 8008EC84 0C019A50 */ jal resize_viewport +/* 08F884 8008EC84 0C019A50 */ jal viewport_menu_set /* 08F888 8008EC88 00433023 */ subu $a2, $v0, $v1 /* 08F88C 8008EC8C 0C019984 */ jal copy_viewports_to_stack /* 08F890 8008EC90 00000000 */ nop @@ -525,16 +525,16 @@ glabel menu_track_select_init /* 08FB7C 8008EF7C 2610F760 */ addiu $s0, %lo(sMenuMusicVolume) # addiu $s0, $s0, -0x8a0 /* 08FB80 8008EF80 AC206848 */ sw $zero, %lo(D_80126848)($at) /* 08FB84 8008EF84 AE000000 */ sw $zero, ($s0) -/* 08FB88 8008EF88 0C0002F8 */ jal set_music_player_voice_limit +/* 08FB88 8008EF88 0C0002F8 */ jal music_voicelimit_set /* 08FB8C 8008EF8C 24040018 */ li $a0, 24 -/* 08FB90 8008EF90 0C000307 */ jal func_80000C1C +/* 08FB90 8008EF90 0C000307 */ jal music_voicelimit_change_off /* 08FB94 8008EF94 00000000 */ nop -/* 08FB98 8008EF98 0C0002CD */ jal play_music +/* 08FB98 8008EF98 0C0002CD */ jal music_play /* 08FB9C 8008EF9C 24040018 */ li $a0, 24 /* 08FBA0 8008EFA0 92040003 */ lbu $a0, 3($s0) -/* 08FBA4 8008EFA4 0C000664 */ jal set_relative_volume_for_music +/* 08FBA4 8008EFA4 0C000664 */ jal music_volume_set /* 08FBA8 8008EFA8 00000000 */ nop -/* 08FBAC 8008EFAC 0C0002C6 */ jal func_80000B18 +/* 08FBAC 8008EFAC 0C0002C6 */ jal music_change_off /* 08FBB0 8008EFB0 00000000 */ nop /* 08FBB4 8008EFB4 0C01BD59 */ jal set_gIntDisFlag /* 08FBB8 8008EFB8 24040001 */ li $a0, 1 diff --git a/asm/non_matchings/object_functions/obj_loop_char_select.s b/asm/non_matchings/object_functions/obj_loop_char_select.s index 449b098c..461395e8 100644 --- a/asm/non_matchings/object_functions/obj_loop_char_select.s +++ b/asm/non_matchings/object_functions/obj_loop_char_select.s @@ -1,269 +1,269 @@ -glabel obj_loop_char_select -/* 038F3C 8003833C 27BDFF88 */ addiu $sp, $sp, -0x78 -/* 038F40 80038340 AFBF0024 */ sw $ra, 0x24($sp) -/* 038F44 80038344 AFB2001C */ sw $s2, 0x1c($sp) -/* 038F48 80038348 AFB00014 */ sw $s0, 0x14($sp) -/* 038F4C 8003834C 00809025 */ move $s2, $a0 -/* 038F50 80038350 AFB30020 */ sw $s3, 0x20($sp) -/* 038F54 80038354 AFB10018 */ sw $s1, 0x18($sp) -/* 038F58 80038358 AFA5007C */ sw $a1, 0x7c($sp) -/* 038F5C 8003835C 00008025 */ move $s0, $zero -/* 038F60 80038360 0C007D18 */ jal func_8001F460 -/* 038F64 80038364 00003025 */ move $a2, $zero -/* 038F68 80038368 8E430064 */ lw $v1, 0x64($s2) -/* 038F6C 8003836C AE400074 */ sw $zero, 0x74($s2) -/* 038F70 80038370 106000E1 */ beqz $v1, .L800386F8 -/* 038F74 80038374 8FBF0024 */ lw $ra, 0x24($sp) -/* 038F78 80038378 824F003A */ lb $t7, 0x3a($s2) -/* 038F7C 8003837C 8E4E0068 */ lw $t6, 0x68($s2) -/* 038F80 80038380 000FC080 */ sll $t8, $t7, 2 -/* 038F84 80038384 01D8C821 */ addu $t9, $t6, $t8 -/* 038F88 80038388 8F220000 */ lw $v0, ($t9) -/* 038F8C 8003838C 00000000 */ nop -/* 038F90 80038390 104000D9 */ beqz $v0, .L800386F8 -/* 038F94 80038394 8FBF0024 */ lw $ra, 0x24($sp) -/* 038F98 80038398 8C530000 */ lw $s3, ($v0) -/* 038F9C 8003839C 0C027B34 */ jal is_drumstick_unlocked -/* 038FA0 800383A0 AFA30064 */ sw $v1, 0x64($sp) -/* 038FA4 800383A4 1040000C */ beqz $v0, .L800383D8 -/* 038FA8 800383A8 00000000 */ nop -/* 038FAC 800383AC 0C027B2E */ jal is_tt_unlocked -/* 038FB0 800383B0 00000000 */ nop -/* 038FB4 800383B4 10400005 */ beqz $v0, .L800383CC -/* 038FB8 800383B8 3C06800E */ lui $a2, %hi(D_800DCA58) # $a2, 0x800e -/* 038FBC 800383BC 3C06800E */ lui $a2, %hi(D_800DCA70) # $a2, 0x800e -/* 038FC0 800383C0 24C6CA70 */ addiu $a2, %lo(D_800DCA70) # addiu $a2, $a2, -0x3590 -/* 038FC4 800383C4 1000000E */ b .L80038400 -/* 038FC8 800383C8 2404000A */ li $a0, 10 -.L800383CC: -/* 038FCC 800383CC 24C6CA58 */ addiu $a2, %lo(D_800DCA58) # addiu $a2, $a2, -0x35a8 -/* 038FD0 800383D0 1000000B */ b .L80038400 -/* 038FD4 800383D4 24040009 */ li $a0, 9 -.L800383D8: -/* 038FD8 800383D8 0C027B2E */ jal is_tt_unlocked -/* 038FDC 800383DC 00000000 */ nop -/* 038FE0 800383E0 10400005 */ beqz $v0, .L800383F8 -/* 038FE4 800383E4 3C06800E */ lui $a2, %hi(D_800DCA50) # $a2, 0x800e -/* 038FE8 800383E8 3C06800E */ lui $a2, %hi(D_800DCA64) # $a2, 0x800e -/* 038FEC 800383EC 24C6CA64 */ addiu $a2, %lo(D_800DCA64) # addiu $a2, $a2, -0x359c -/* 038FF0 800383F0 10000003 */ b .L80038400 -/* 038FF4 800383F4 24040009 */ li $a0, 9 -.L800383F8: -/* 038FF8 800383F8 24C6CA50 */ addiu $a2, %lo(D_800DCA50) # addiu $a2, $a2, -0x35b0 -/* 038FFC 800383FC 24040008 */ li $a0, 8 -.L80038400: -/* 039000 80038400 1880000E */ blez $a0, .L8003843C -/* 039004 80038404 00002825 */ move $a1, $zero -/* 039008 80038408 8FA90064 */ lw $t1, 0x64($sp) -/* 03900C 8003840C 00C01021 */ addu $v0, $a2, $zero -/* 039010 80038410 85230028 */ lh $v1, 0x28($t1) -/* 039014 80038414 00000000 */ nop -.L80038418: -/* 039018 80038418 904A0000 */ lbu $t2, ($v0) -/* 03901C 8003841C 24A50001 */ addiu $a1, $a1, 1 -/* 039020 80038420 146A0002 */ bne $v1, $t2, .L8003842C -/* 039024 80038424 00A4082A */ slt $at, $a1, $a0 -/* 039028 80038428 24100001 */ li $s0, 1 -.L8003842C: -/* 03902C 8003842C 10200003 */ beqz $at, .L8003843C -/* 039030 80038430 24420001 */ addiu $v0, $v0, 1 -/* 039034 80038434 1200FFF8 */ beqz $s0, .L80038418 -/* 039038 80038438 00000000 */ nop -.L8003843C: -/* 03903C 8003843C 1200006E */ beqz $s0, .L800385F8 -/* 039040 80038440 24A5FFFF */ addiu $a1, $a1, -1 -/* 039044 80038444 240B0001 */ li $t3, 1 -/* 039048 80038448 A24B003B */ sb $t3, 0x3b($s2) -/* 03904C 8003844C 00008025 */ move $s0, $zero -/* 039050 80038450 00001825 */ move $v1, $zero -/* 039054 80038454 27B10050 */ addiu $s1, $sp, 0x50 -/* 039058 80038458 02002025 */ move $a0, $s0 -.L8003845C: -/* 03905C 8003845C A3A3004F */ sb $v1, 0x4f($sp) -/* 039060 80038460 0C0270A0 */ jal get_player_character -/* 039064 80038464 AFA50070 */ sw $a1, 0x70($sp) -/* 039068 80038468 8FA50070 */ lw $a1, 0x70($sp) -/* 03906C 8003846C 93A3004F */ lbu $v1, 0x4f($sp) -/* 039070 80038470 14450006 */ bne $v0, $a1, .L8003848C -/* 039074 80038474 24010004 */ li $at, 4 -/* 039078 80038478 02236021 */ addu $t4, $s1, $v1 -/* 03907C 8003847C 24630001 */ addiu $v1, $v1, 1 -/* 039080 80038480 306D00FF */ andi $t5, $v1, 0xff -/* 039084 80038484 01A01825 */ move $v1, $t5 -/* 039088 80038488 A1900000 */ sb $s0, ($t4) -.L8003848C: -/* 03908C 8003848C 26100001 */ addiu $s0, $s0, 1 -/* 039090 80038490 1601FFF2 */ bne $s0, $at, .L8003845C -/* 039094 80038494 02002025 */ move $a0, $s0 -/* 039098 80038498 3C0F800E */ lui $t7, %hi(D_800DCA7C) # $t7, 0x800e -/* 03909C 8003849C 25EFCA7C */ addiu $t7, %lo(D_800DCA7C) # addiu $t7, $t7, -0x3584 -/* 0390A0 800384A0 00AF1021 */ addu $v0, $a1, $t7 -/* 0390A4 800384A4 904E0000 */ lbu $t6, ($v0) -/* 0390A8 800384A8 8FB8007C */ lw $t8, 0x7c($sp) -/* 0390AC 800384AC 3C0D800E */ lui $t5, %hi(D_800DCA88) # $t5, 0x800e -/* 0390B0 800384B0 01D8C821 */ addu $t9, $t6, $t8 -/* 0390B4 800384B4 332400FF */ andi $a0, $t9, 0xff -/* 0390B8 800384B8 28810010 */ slti $at, $a0, 0x10 -/* 0390BC 800384BC 14200009 */ bnez $at, .L800384E4 -/* 0390C0 800384C0 A0590000 */ sb $t9, ($v0) -/* 0390C4 800384C4 3C0A800E */ lui $t2, %hi(D_800DCA88) # $t2, 0x800e -/* 0390C8 800384C8 254ACA88 */ addiu $t2, %lo(D_800DCA88) # addiu $t2, $t2, -0x3578 -/* 0390CC 800384CC 00AA4021 */ addu $t0, $a1, $t2 -/* 0390D0 800384D0 910B0000 */ lbu $t3, ($t0) -/* 0390D4 800384D4 3089000F */ andi $t1, $a0, 0xf -/* 0390D8 800384D8 256C0001 */ addiu $t4, $t3, 1 -/* 0390DC 800384DC A0490000 */ sb $t1, ($v0) -/* 0390E0 800384E0 A10C0000 */ sb $t4, ($t0) -.L800384E4: -/* 0390E4 800384E4 25ADCA88 */ addiu $t5, %lo(D_800DCA88) # addiu $t5, $t5, -0x3578 -/* 0390E8 800384E8 00AD4021 */ addu $t0, $a1, $t5 -/* 0390EC 800384EC 910F0000 */ lbu $t7, ($t0) -/* 0390F0 800384F0 00603825 */ move $a3, $v1 -/* 0390F4 800384F4 01E3082A */ slt $at, $t7, $v1 -/* 0390F8 800384F8 14200002 */ bnez $at, .L80038504 -/* 0390FC 800384FC 00000000 */ nop -/* 039100 80038500 A1000000 */ sb $zero, ($t0) -.L80038504: -/* 039104 80038504 18E0003C */ blez $a3, .L800385F8 -/* 039108 80038508 00000000 */ nop -/* 03910C 8003850C AFA70040 */ sw $a3, 0x40($sp) -/* 039110 80038510 0C02709D */ jal func_8009C274 -/* 039114 80038514 AFA80044 */ sw $t0, 0x44($sp) -/* 039118 80038518 8FA70040 */ lw $a3, 0x40($sp) -/* 03911C 8003851C 8FA80044 */ lw $t0, 0x44($sp) -/* 039120 80038520 00403025 */ move $a2, $v0 -/* 039124 80038524 18E0001B */ blez $a3, .L80038594 -/* 039128 80038528 00001825 */ move $v1, $zero -/* 03912C 8003852C 27A20050 */ addiu $v0, $sp, 0x50 -/* 039130 80038530 24100001 */ li $s0, 1 -.L80038534: -/* 039134 80038534 904E0000 */ lbu $t6, ($v0) -/* 039138 80038538 24010001 */ li $at, 1 -/* 03913C 8003853C 01C6C021 */ addu $t8, $t6, $a2 -/* 039140 80038540 83190000 */ lb $t9, ($t8) -/* 039144 80038544 02402025 */ move $a0, $s2 -/* 039148 80038548 1721000E */ bne $t9, $at, .L80038584 -/* 03914C 8003854C 24050002 */ li $a1, 2 -/* 039150 80038550 AE500074 */ sw $s0, 0x74($s2) -/* 039154 80038554 AFA80044 */ sw $t0, 0x44($sp) -/* 039158 80038558 AFA70040 */ sw $a3, 0x40($sp) -/* 03915C 8003855C AFA60058 */ sw $a2, 0x58($sp) -/* 039160 80038560 AFA30074 */ sw $v1, 0x74($sp) -/* 039164 80038564 0C02BF0F */ jal func_800AFC3C -/* 039168 80038568 AFA2003C */ sw $v0, 0x3c($sp) -/* 03916C 8003856C 8FA2003C */ lw $v0, 0x3c($sp) -/* 039170 80038570 8FA30074 */ lw $v1, 0x74($sp) -/* 039174 80038574 8FA60058 */ lw $a2, 0x58($sp) -/* 039178 80038578 8FA70040 */ lw $a3, 0x40($sp) -/* 03917C 8003857C 8FA80044 */ lw $t0, 0x44($sp) -/* 039180 80038580 00000000 */ nop -.L80038584: -/* 039184 80038584 24630001 */ addiu $v1, $v1, 1 -/* 039188 80038588 1467FFEA */ bne $v1, $a3, .L80038534 -/* 03918C 8003858C 24420001 */ addiu $v0, $v0, 1 -/* 039190 80038590 00001825 */ move $v1, $zero -.L80038594: -/* 039194 80038594 86660028 */ lh $a2, 0x28($s3) -/* 039198 80038598 00001025 */ move $v0, $zero -/* 03919C 8003859C 18C00015 */ blez $a2, .L800385F4 -/* 0391A0 800385A0 00000000 */ nop -.L800385A4: -/* 0391A4 800385A4 8E690038 */ lw $t1, 0x38($s3) -/* 0391A8 800385A8 24630001 */ addiu $v1, $v1, 1 -/* 0391AC 800385AC 01222021 */ addu $a0, $t1, $v0 -/* 0391B0 800385B0 90850000 */ lbu $a1, ($a0) -/* 0391B4 800385B4 00000000 */ nop -/* 0391B8 800385B8 04A0000B */ bltz $a1, .L800385E8 -/* 0391BC 800385BC 28A10004 */ slti $at, $a1, 4 -/* 0391C0 800385C0 1020000A */ beqz $at, .L800385EC -/* 0391C4 800385C4 0066082A */ slt $at, $v1, $a2 -/* 0391C8 800385C8 910A0000 */ lbu $t2, ($t0) -/* 0391CC 800385CC 00000000 */ nop -/* 0391D0 800385D0 022A5821 */ addu $t3, $s1, $t2 -/* 0391D4 800385D4 916C0000 */ lbu $t4, ($t3) -/* 0391D8 800385D8 00000000 */ nop -/* 0391DC 800385DC A08C0000 */ sb $t4, ($a0) -/* 0391E0 800385E0 86660028 */ lh $a2, 0x28($s3) -/* 0391E4 800385E4 00000000 */ nop -.L800385E8: -/* 0391E8 800385E8 0066082A */ slt $at, $v1, $a2 -.L800385EC: -/* 0391EC 800385EC 1420FFED */ bnez $at, .L800385A4 -/* 0391F0 800385F0 2442000C */ addiu $v0, $v0, 0xc -.L800385F4: -/* 0391F4 800385F4 A240003B */ sb $zero, 0x3b($s2) -.L800385F8: -/* 0391F8 800385F8 8242003B */ lb $v0, 0x3b($s2) -/* 0391FC 800385FC 00000000 */ nop -/* 039200 80038600 0440003D */ bltz $v0, .L800386F8 -/* 039204 80038604 8FBF0024 */ lw $ra, 0x24($sp) -/* 039208 80038608 866D0048 */ lh $t5, 0x48($s3) -/* 03920C 8003860C 8FA90064 */ lw $t1, 0x64($sp) -/* 039210 80038610 004D082A */ slt $at, $v0, $t5 -/* 039214 80038614 10200037 */ beqz $at, .L800386F4 -/* 039218 80038618 000270C0 */ sll $t6, $v0, 3 -/* 03921C 8003861C 8E6F0044 */ lw $t7, 0x44($s3) -/* 039220 80038620 912A002C */ lbu $t2, 0x2c($t1) -/* 039224 80038624 01EEC021 */ addu $t8, $t7, $t6 -/* 039228 80038628 8F050004 */ lw $a1, 4($t8) -/* 03922C 8003862C 24010001 */ li $at, 1 -/* 039230 80038630 24A5FFFF */ addiu $a1, $a1, -1 -/* 039234 80038634 1541002F */ bne $t2, $at, .L800386F4 -/* 039238 80038638 0005C900 */ sll $t9, $a1, 4 -/* 03923C 8003863C 0C00057E */ jal audio_get_chr_select_anim_frac -/* 039240 80038640 AFB90070 */ sw $t9, 0x70($sp) -/* 039244 80038644 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 039248 80038648 44819800 */ mtc1 $at, $f19 -/* 03924C 8003864C 44809000 */ mtc1 $zero, $f18 -/* 039250 80038650 460003A1 */ cvt.d.s $f14, $f0 -/* 039254 80038654 462E903C */ c.lt.d $f18, $f14 -/* 039258 80038658 8FA50070 */ lw $a1, 0x70($sp) -/* 03925C 8003865C 45000015 */ bc1f .L800386B4 -/* 039260 80038660 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 039264 80038664 46327101 */ sub.d $f4, $f14, $f18 -/* 039268 80038668 44854000 */ mtc1 $a1, $f8 -/* 03926C 8003866C 46202320 */ cvt.s.d $f12, $f4 -/* 039270 80038670 460060A1 */ cvt.d.s $f2, $f12 -/* 039274 80038674 46221180 */ add.d $f6, $f2, $f2 -/* 039278 80038678 46804420 */ cvt.s.w $f16, $f8 -/* 03927C 8003867C 46203320 */ cvt.s.d $f12, $f6 -/* 039280 80038680 46106282 */ mul.s $f10, $f12, $f16 -/* 039284 80038684 460A8101 */ sub.s $f4, $f16, $f10 -/* 039288 80038688 444BF800 */ cfc1 $t3, $31 -/* 03928C 8003868C 00000000 */ nop -/* 039290 80038690 35610003 */ ori $at, $t3, 3 -/* 039294 80038694 38210002 */ xori $at, $at, 2 -/* 039298 80038698 44C1F800 */ ctc1 $at, $31 -/* 03929C 8003869C 00000000 */ nop -/* 0392A0 800386A0 460021A4 */ cvt.w.s $f6, $f4 -/* 0392A4 800386A4 440C3000 */ mfc1 $t4, $f6 -/* 0392A8 800386A8 44CBF800 */ ctc1 $t3, $31 -/* 0392AC 800386AC 10000011 */ b .L800386F4 -/* 0392B0 800386B0 A64C0018 */ sh $t4, 0x18($s2) -.L800386B4: -/* 0392B4 800386B4 44814000 */ mtc1 $at, $f8 -/* 0392B8 800386B8 44855000 */ mtc1 $a1, $f10 -/* 0392BC 800386BC 46080302 */ mul.s $f12, $f0, $f8 -/* 0392C0 800386C0 46805120 */ cvt.s.w $f4, $f10 -/* 0392C4 800386C4 460C2182 */ mul.s $f6, $f4, $f12 -/* 0392C8 800386C8 444DF800 */ cfc1 $t5, $31 -/* 0392CC 800386CC 00000000 */ nop -/* 0392D0 800386D0 35A10003 */ ori $at, $t5, 3 -/* 0392D4 800386D4 38210002 */ xori $at, $at, 2 -/* 0392D8 800386D8 44C1F800 */ ctc1 $at, $31 -/* 0392DC 800386DC 00000000 */ nop -/* 0392E0 800386E0 46003224 */ cvt.w.s $f8, $f6 -/* 0392E4 800386E4 440F4000 */ mfc1 $t7, $f8 -/* 0392E8 800386E8 44CDF800 */ ctc1 $t5, $31 -/* 0392EC 800386EC A64F0018 */ sh $t7, 0x18($s2) -/* 0392F0 800386F0 00000000 */ nop -.L800386F4: -/* 0392F4 800386F4 8FBF0024 */ lw $ra, 0x24($sp) -.L800386F8: -/* 0392F8 800386F8 8FB00014 */ lw $s0, 0x14($sp) -/* 0392FC 800386FC 8FB10018 */ lw $s1, 0x18($sp) -/* 039300 80038700 8FB2001C */ lw $s2, 0x1c($sp) -/* 039304 80038704 8FB30020 */ lw $s3, 0x20($sp) -/* 039308 80038708 03E00008 */ jr $ra -/* 03930C 8003870C 27BD0078 */ addiu $sp, $sp, 0x78 - +glabel obj_loop_char_select +/* 038F3C 8003833C 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 038F40 80038340 AFBF0024 */ sw $ra, 0x24($sp) +/* 038F44 80038344 AFB2001C */ sw $s2, 0x1c($sp) +/* 038F48 80038348 AFB00014 */ sw $s0, 0x14($sp) +/* 038F4C 8003834C 00809025 */ move $s2, $a0 +/* 038F50 80038350 AFB30020 */ sw $s3, 0x20($sp) +/* 038F54 80038354 AFB10018 */ sw $s1, 0x18($sp) +/* 038F58 80038358 AFA5007C */ sw $a1, 0x7c($sp) +/* 038F5C 8003835C 00008025 */ move $s0, $zero +/* 038F60 80038360 0C007D18 */ jal func_8001F460 +/* 038F64 80038364 00003025 */ move $a2, $zero +/* 038F68 80038368 8E430064 */ lw $v1, 0x64($s2) +/* 038F6C 8003836C AE400074 */ sw $zero, 0x74($s2) +/* 038F70 80038370 106000E1 */ beqz $v1, .L800386F8 +/* 038F74 80038374 8FBF0024 */ lw $ra, 0x24($sp) +/* 038F78 80038378 824F003A */ lb $t7, 0x3a($s2) +/* 038F7C 8003837C 8E4E0068 */ lw $t6, 0x68($s2) +/* 038F80 80038380 000FC080 */ sll $t8, $t7, 2 +/* 038F84 80038384 01D8C821 */ addu $t9, $t6, $t8 +/* 038F88 80038388 8F220000 */ lw $v0, ($t9) +/* 038F8C 8003838C 00000000 */ nop +/* 038F90 80038390 104000D9 */ beqz $v0, .L800386F8 +/* 038F94 80038394 8FBF0024 */ lw $ra, 0x24($sp) +/* 038F98 80038398 8C530000 */ lw $s3, ($v0) +/* 038F9C 8003839C 0C027B34 */ jal is_drumstick_unlocked +/* 038FA0 800383A0 AFA30064 */ sw $v1, 0x64($sp) +/* 038FA4 800383A4 1040000C */ beqz $v0, .L800383D8 +/* 038FA8 800383A8 00000000 */ nop +/* 038FAC 800383AC 0C027B2E */ jal is_tt_unlocked +/* 038FB0 800383B0 00000000 */ nop +/* 038FB4 800383B4 10400005 */ beqz $v0, .L800383CC +/* 038FB8 800383B8 3C06800E */ lui $a2, %hi(D_800DCA58) # $a2, 0x800e +/* 038FBC 800383BC 3C06800E */ lui $a2, %hi(D_800DCA70) # $a2, 0x800e +/* 038FC0 800383C0 24C6CA70 */ addiu $a2, %lo(D_800DCA70) # addiu $a2, $a2, -0x3590 +/* 038FC4 800383C4 1000000E */ b .L80038400 +/* 038FC8 800383C8 2404000A */ li $a0, 10 +.L800383CC: +/* 038FCC 800383CC 24C6CA58 */ addiu $a2, %lo(D_800DCA58) # addiu $a2, $a2, -0x35a8 +/* 038FD0 800383D0 1000000B */ b .L80038400 +/* 038FD4 800383D4 24040009 */ li $a0, 9 +.L800383D8: +/* 038FD8 800383D8 0C027B2E */ jal is_tt_unlocked +/* 038FDC 800383DC 00000000 */ nop +/* 038FE0 800383E0 10400005 */ beqz $v0, .L800383F8 +/* 038FE4 800383E4 3C06800E */ lui $a2, %hi(D_800DCA50) # $a2, 0x800e +/* 038FE8 800383E8 3C06800E */ lui $a2, %hi(D_800DCA64) # $a2, 0x800e +/* 038FEC 800383EC 24C6CA64 */ addiu $a2, %lo(D_800DCA64) # addiu $a2, $a2, -0x359c +/* 038FF0 800383F0 10000003 */ b .L80038400 +/* 038FF4 800383F4 24040009 */ li $a0, 9 +.L800383F8: +/* 038FF8 800383F8 24C6CA50 */ addiu $a2, %lo(D_800DCA50) # addiu $a2, $a2, -0x35b0 +/* 038FFC 800383FC 24040008 */ li $a0, 8 +.L80038400: +/* 039000 80038400 1880000E */ blez $a0, .L8003843C +/* 039004 80038404 00002825 */ move $a1, $zero +/* 039008 80038408 8FA90064 */ lw $t1, 0x64($sp) +/* 03900C 8003840C 00C01021 */ addu $v0, $a2, $zero +/* 039010 80038410 85230028 */ lh $v1, 0x28($t1) +/* 039014 80038414 00000000 */ nop +.L80038418: +/* 039018 80038418 904A0000 */ lbu $t2, ($v0) +/* 03901C 8003841C 24A50001 */ addiu $a1, $a1, 1 +/* 039020 80038420 146A0002 */ bne $v1, $t2, .L8003842C +/* 039024 80038424 00A4082A */ slt $at, $a1, $a0 +/* 039028 80038428 24100001 */ li $s0, 1 +.L8003842C: +/* 03902C 8003842C 10200003 */ beqz $at, .L8003843C +/* 039030 80038430 24420001 */ addiu $v0, $v0, 1 +/* 039034 80038434 1200FFF8 */ beqz $s0, .L80038418 +/* 039038 80038438 00000000 */ nop +.L8003843C: +/* 03903C 8003843C 1200006E */ beqz $s0, .L800385F8 +/* 039040 80038440 24A5FFFF */ addiu $a1, $a1, -1 +/* 039044 80038444 240B0001 */ li $t3, 1 +/* 039048 80038448 A24B003B */ sb $t3, 0x3b($s2) +/* 03904C 8003844C 00008025 */ move $s0, $zero +/* 039050 80038450 00001825 */ move $v1, $zero +/* 039054 80038454 27B10050 */ addiu $s1, $sp, 0x50 +/* 039058 80038458 02002025 */ move $a0, $s0 +.L8003845C: +/* 03905C 8003845C A3A3004F */ sb $v1, 0x4f($sp) +/* 039060 80038460 0C0270A0 */ jal get_player_character +/* 039064 80038464 AFA50070 */ sw $a1, 0x70($sp) +/* 039068 80038468 8FA50070 */ lw $a1, 0x70($sp) +/* 03906C 8003846C 93A3004F */ lbu $v1, 0x4f($sp) +/* 039070 80038470 14450006 */ bne $v0, $a1, .L8003848C +/* 039074 80038474 24010004 */ li $at, 4 +/* 039078 80038478 02236021 */ addu $t4, $s1, $v1 +/* 03907C 8003847C 24630001 */ addiu $v1, $v1, 1 +/* 039080 80038480 306D00FF */ andi $t5, $v1, 0xff +/* 039084 80038484 01A01825 */ move $v1, $t5 +/* 039088 80038488 A1900000 */ sb $s0, ($t4) +.L8003848C: +/* 03908C 8003848C 26100001 */ addiu $s0, $s0, 1 +/* 039090 80038490 1601FFF2 */ bne $s0, $at, .L8003845C +/* 039094 80038494 02002025 */ move $a0, $s0 +/* 039098 80038498 3C0F800E */ lui $t7, %hi(D_800DCA7C) # $t7, 0x800e +/* 03909C 8003849C 25EFCA7C */ addiu $t7, %lo(D_800DCA7C) # addiu $t7, $t7, -0x3584 +/* 0390A0 800384A0 00AF1021 */ addu $v0, $a1, $t7 +/* 0390A4 800384A4 904E0000 */ lbu $t6, ($v0) +/* 0390A8 800384A8 8FB8007C */ lw $t8, 0x7c($sp) +/* 0390AC 800384AC 3C0D800E */ lui $t5, %hi(D_800DCA88) # $t5, 0x800e +/* 0390B0 800384B0 01D8C821 */ addu $t9, $t6, $t8 +/* 0390B4 800384B4 332400FF */ andi $a0, $t9, 0xff +/* 0390B8 800384B8 28810010 */ slti $at, $a0, 0x10 +/* 0390BC 800384BC 14200009 */ bnez $at, .L800384E4 +/* 0390C0 800384C0 A0590000 */ sb $t9, ($v0) +/* 0390C4 800384C4 3C0A800E */ lui $t2, %hi(D_800DCA88) # $t2, 0x800e +/* 0390C8 800384C8 254ACA88 */ addiu $t2, %lo(D_800DCA88) # addiu $t2, $t2, -0x3578 +/* 0390CC 800384CC 00AA4021 */ addu $t0, $a1, $t2 +/* 0390D0 800384D0 910B0000 */ lbu $t3, ($t0) +/* 0390D4 800384D4 3089000F */ andi $t1, $a0, 0xf +/* 0390D8 800384D8 256C0001 */ addiu $t4, $t3, 1 +/* 0390DC 800384DC A0490000 */ sb $t1, ($v0) +/* 0390E0 800384E0 A10C0000 */ sb $t4, ($t0) +.L800384E4: +/* 0390E4 800384E4 25ADCA88 */ addiu $t5, %lo(D_800DCA88) # addiu $t5, $t5, -0x3578 +/* 0390E8 800384E8 00AD4021 */ addu $t0, $a1, $t5 +/* 0390EC 800384EC 910F0000 */ lbu $t7, ($t0) +/* 0390F0 800384F0 00603825 */ move $a3, $v1 +/* 0390F4 800384F4 01E3082A */ slt $at, $t7, $v1 +/* 0390F8 800384F8 14200002 */ bnez $at, .L80038504 +/* 0390FC 800384FC 00000000 */ nop +/* 039100 80038500 A1000000 */ sb $zero, ($t0) +.L80038504: +/* 039104 80038504 18E0003C */ blez $a3, .L800385F8 +/* 039108 80038508 00000000 */ nop +/* 03910C 8003850C AFA70040 */ sw $a3, 0x40($sp) +/* 039110 80038510 0C02709D */ jal func_8009C274 +/* 039114 80038514 AFA80044 */ sw $t0, 0x44($sp) +/* 039118 80038518 8FA70040 */ lw $a3, 0x40($sp) +/* 03911C 8003851C 8FA80044 */ lw $t0, 0x44($sp) +/* 039120 80038520 00403025 */ move $a2, $v0 +/* 039124 80038524 18E0001B */ blez $a3, .L80038594 +/* 039128 80038528 00001825 */ move $v1, $zero +/* 03912C 8003852C 27A20050 */ addiu $v0, $sp, 0x50 +/* 039130 80038530 24100001 */ li $s0, 1 +.L80038534: +/* 039134 80038534 904E0000 */ lbu $t6, ($v0) +/* 039138 80038538 24010001 */ li $at, 1 +/* 03913C 8003853C 01C6C021 */ addu $t8, $t6, $a2 +/* 039140 80038540 83190000 */ lb $t9, ($t8) +/* 039144 80038544 02402025 */ move $a0, $s2 +/* 039148 80038548 1721000E */ bne $t9, $at, .L80038584 +/* 03914C 8003854C 24050002 */ li $a1, 2 +/* 039150 80038550 AE500074 */ sw $s0, 0x74($s2) +/* 039154 80038554 AFA80044 */ sw $t0, 0x44($sp) +/* 039158 80038558 AFA70040 */ sw $a3, 0x40($sp) +/* 03915C 8003855C AFA60058 */ sw $a2, 0x58($sp) +/* 039160 80038560 AFA30074 */ sw $v1, 0x74($sp) +/* 039164 80038564 0C02BF0F */ jal func_800AFC3C +/* 039168 80038568 AFA2003C */ sw $v0, 0x3c($sp) +/* 03916C 8003856C 8FA2003C */ lw $v0, 0x3c($sp) +/* 039170 80038570 8FA30074 */ lw $v1, 0x74($sp) +/* 039174 80038574 8FA60058 */ lw $a2, 0x58($sp) +/* 039178 80038578 8FA70040 */ lw $a3, 0x40($sp) +/* 03917C 8003857C 8FA80044 */ lw $t0, 0x44($sp) +/* 039180 80038580 00000000 */ nop +.L80038584: +/* 039184 80038584 24630001 */ addiu $v1, $v1, 1 +/* 039188 80038588 1467FFEA */ bne $v1, $a3, .L80038534 +/* 03918C 8003858C 24420001 */ addiu $v0, $v0, 1 +/* 039190 80038590 00001825 */ move $v1, $zero +.L80038594: +/* 039194 80038594 86660028 */ lh $a2, 0x28($s3) +/* 039198 80038598 00001025 */ move $v0, $zero +/* 03919C 8003859C 18C00015 */ blez $a2, .L800385F4 +/* 0391A0 800385A0 00000000 */ nop +.L800385A4: +/* 0391A4 800385A4 8E690038 */ lw $t1, 0x38($s3) +/* 0391A8 800385A8 24630001 */ addiu $v1, $v1, 1 +/* 0391AC 800385AC 01222021 */ addu $a0, $t1, $v0 +/* 0391B0 800385B0 90850000 */ lbu $a1, ($a0) +/* 0391B4 800385B4 00000000 */ nop +/* 0391B8 800385B8 04A0000B */ bltz $a1, .L800385E8 +/* 0391BC 800385BC 28A10004 */ slti $at, $a1, 4 +/* 0391C0 800385C0 1020000A */ beqz $at, .L800385EC +/* 0391C4 800385C4 0066082A */ slt $at, $v1, $a2 +/* 0391C8 800385C8 910A0000 */ lbu $t2, ($t0) +/* 0391CC 800385CC 00000000 */ nop +/* 0391D0 800385D0 022A5821 */ addu $t3, $s1, $t2 +/* 0391D4 800385D4 916C0000 */ lbu $t4, ($t3) +/* 0391D8 800385D8 00000000 */ nop +/* 0391DC 800385DC A08C0000 */ sb $t4, ($a0) +/* 0391E0 800385E0 86660028 */ lh $a2, 0x28($s3) +/* 0391E4 800385E4 00000000 */ nop +.L800385E8: +/* 0391E8 800385E8 0066082A */ slt $at, $v1, $a2 +.L800385EC: +/* 0391EC 800385EC 1420FFED */ bnez $at, .L800385A4 +/* 0391F0 800385F0 2442000C */ addiu $v0, $v0, 0xc +.L800385F4: +/* 0391F4 800385F4 A240003B */ sb $zero, 0x3b($s2) +.L800385F8: +/* 0391F8 800385F8 8242003B */ lb $v0, 0x3b($s2) +/* 0391FC 800385FC 00000000 */ nop +/* 039200 80038600 0440003D */ bltz $v0, .L800386F8 +/* 039204 80038604 8FBF0024 */ lw $ra, 0x24($sp) +/* 039208 80038608 866D0048 */ lh $t5, 0x48($s3) +/* 03920C 8003860C 8FA90064 */ lw $t1, 0x64($sp) +/* 039210 80038610 004D082A */ slt $at, $v0, $t5 +/* 039214 80038614 10200037 */ beqz $at, .L800386F4 +/* 039218 80038618 000270C0 */ sll $t6, $v0, 3 +/* 03921C 8003861C 8E6F0044 */ lw $t7, 0x44($s3) +/* 039220 80038620 912A002C */ lbu $t2, 0x2c($t1) +/* 039224 80038624 01EEC021 */ addu $t8, $t7, $t6 +/* 039228 80038628 8F050004 */ lw $a1, 4($t8) +/* 03922C 8003862C 24010001 */ li $at, 1 +/* 039230 80038630 24A5FFFF */ addiu $a1, $a1, -1 +/* 039234 80038634 1541002F */ bne $t2, $at, .L800386F4 +/* 039238 80038638 0005C900 */ sll $t9, $a1, 4 +/* 03923C 8003863C 0C00057E */ jal music_animation_fraction +/* 039240 80038640 AFB90070 */ sw $t9, 0x70($sp) +/* 039244 80038644 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 +/* 039248 80038648 44819800 */ mtc1 $at, $f19 +/* 03924C 8003864C 44809000 */ mtc1 $zero, $f18 +/* 039250 80038650 460003A1 */ cvt.d.s $f14, $f0 +/* 039254 80038654 462E903C */ c.lt.d $f18, $f14 +/* 039258 80038658 8FA50070 */ lw $a1, 0x70($sp) +/* 03925C 8003865C 45000015 */ bc1f .L800386B4 +/* 039260 80038660 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 039264 80038664 46327101 */ sub.d $f4, $f14, $f18 +/* 039268 80038668 44854000 */ mtc1 $a1, $f8 +/* 03926C 8003866C 46202320 */ cvt.s.d $f12, $f4 +/* 039270 80038670 460060A1 */ cvt.d.s $f2, $f12 +/* 039274 80038674 46221180 */ add.d $f6, $f2, $f2 +/* 039278 80038678 46804420 */ cvt.s.w $f16, $f8 +/* 03927C 8003867C 46203320 */ cvt.s.d $f12, $f6 +/* 039280 80038680 46106282 */ mul.s $f10, $f12, $f16 +/* 039284 80038684 460A8101 */ sub.s $f4, $f16, $f10 +/* 039288 80038688 444BF800 */ cfc1 $t3, $31 +/* 03928C 8003868C 00000000 */ nop +/* 039290 80038690 35610003 */ ori $at, $t3, 3 +/* 039294 80038694 38210002 */ xori $at, $at, 2 +/* 039298 80038698 44C1F800 */ ctc1 $at, $31 +/* 03929C 8003869C 00000000 */ nop +/* 0392A0 800386A0 460021A4 */ cvt.w.s $f6, $f4 +/* 0392A4 800386A4 440C3000 */ mfc1 $t4, $f6 +/* 0392A8 800386A8 44CBF800 */ ctc1 $t3, $31 +/* 0392AC 800386AC 10000011 */ b .L800386F4 +/* 0392B0 800386B0 A64C0018 */ sh $t4, 0x18($s2) +.L800386B4: +/* 0392B4 800386B4 44814000 */ mtc1 $at, $f8 +/* 0392B8 800386B8 44855000 */ mtc1 $a1, $f10 +/* 0392BC 800386BC 46080302 */ mul.s $f12, $f0, $f8 +/* 0392C0 800386C0 46805120 */ cvt.s.w $f4, $f10 +/* 0392C4 800386C4 460C2182 */ mul.s $f6, $f4, $f12 +/* 0392C8 800386C8 444DF800 */ cfc1 $t5, $31 +/* 0392CC 800386CC 00000000 */ nop +/* 0392D0 800386D0 35A10003 */ ori $at, $t5, 3 +/* 0392D4 800386D4 38210002 */ xori $at, $at, 2 +/* 0392D8 800386D8 44C1F800 */ ctc1 $at, $31 +/* 0392DC 800386DC 00000000 */ nop +/* 0392E0 800386E0 46003224 */ cvt.w.s $f8, $f6 +/* 0392E4 800386E4 440F4000 */ mfc1 $t7, $f8 +/* 0392E8 800386E8 44CDF800 */ ctc1 $t5, $31 +/* 0392EC 800386EC A64F0018 */ sh $t7, 0x18($s2) +/* 0392F0 800386F0 00000000 */ nop +.L800386F4: +/* 0392F4 800386F4 8FBF0024 */ lw $ra, 0x24($sp) +.L800386F8: +/* 0392F8 800386F8 8FB00014 */ lw $s0, 0x14($sp) +/* 0392FC 800386FC 8FB10018 */ lw $s1, 0x18($sp) +/* 039300 80038700 8FB2001C */ lw $s2, 0x1c($sp) +/* 039304 80038704 8FB30020 */ lw $s3, 0x20($sp) +/* 039308 80038708 03E00008 */ jr $ra +/* 03930C 8003870C 27BD0078 */ addiu $sp, $sp, 0x78 + diff --git a/asm/non_matchings/object_functions/obj_loop_door.s b/asm/non_matchings/object_functions/obj_loop_door.s index 1b2e9bc2..4515ecd6 100644 --- a/asm/non_matchings/object_functions/obj_loop_door.s +++ b/asm/non_matchings/object_functions/obj_loop_door.s @@ -100,16 +100,16 @@ glabel obj_loop_door /* 03C6EC 8003BAEC 15C0001D */ bnez $t6, .L8003BB64 /* 03C6F0 8003BAF0 240B012C */ li $t3, 300 /* 03C6F4 8003BAF4 AFA80044 */ sw $t0, 0x44($sp) -/* 03C6F8 8003BAF8 0C000326 */ jal set_music_fade_timer +/* 03C6F8 8003BAF8 0C000326 */ jal music_fade /* 03C6FC 8003BAFC AFA90040 */ sw $t1, 0x40($sp) /* 03C700 8003BB00 8FA80044 */ lw $t0, 0x44($sp) /* 03C704 8003BB04 240F008C */ li $t7, 140 /* 03C708 8003BB08 24040010 */ li $a0, 16 -/* 03C70C 8003BB0C 0C00030E */ jal set_sndfx_player_voice_limit +/* 03C70C 8003BB0C 0C00030E */ jal music_jingle_voicelimit_set /* 03C710 8003BB10 AD0F0008 */ sw $t7, 8($t0) /* 03C714 8003BB14 0C002050 */ jal func_80008140 /* 03C718 8003BB18 00000000 */ nop -/* 03C71C 8003BB1C 0C0006F0 */ jal play_sequence +/* 03C71C 8003BB1C 0C0006F0 */ jal music_jingle_play /* 03C720 8003BB20 24040011 */ li $a0, 17 /* 03C724 8003BB24 8FA80044 */ lw $t0, 0x44($sp) /* 03C728 8003BB28 00000000 */ nop @@ -144,7 +144,7 @@ glabel obj_loop_door /* 03C790 8003BB90 1180001B */ beqz $t4, .L8003BC00 /* 03C794 8003BB94 00000000 */ nop /* 03C798 8003BB98 AFA80044 */ sw $t0, 0x44($sp) -/* 03C79C 8003BB9C 0C000702 */ jal func_80001C08 +/* 03C79C 8003BB9C 0C000702 */ jal music_jingle_playing /* 03C7A0 8003BBA0 AFA90040 */ sw $t1, 0x40($sp) /* 03C7A4 8003BBA4 8FA80044 */ lw $t0, 0x44($sp) /* 03C7A8 8003BBA8 8FA90040 */ lw $t1, 0x40($sp) @@ -161,9 +161,9 @@ glabel obj_loop_door .L8003BBD4: /* 03C7D4 8003BBD4 AD000008 */ sw $zero, 8($t0) /* 03C7D8 8003BBD8 AFA90040 */ sw $t1, 0x40($sp) -/* 03C7DC 8003BBDC 0C000326 */ jal set_music_fade_timer +/* 03C7DC 8003BBDC 0C000326 */ jal music_fade /* 03C7E0 8003BBE0 AFA80044 */ sw $t0, 0x44($sp) -/* 03C7E4 8003BBE4 0C00030E */ jal set_sndfx_player_voice_limit +/* 03C7E4 8003BBE4 0C00030E */ jal music_jingle_voicelimit_set /* 03C7E8 8003BBE8 24040006 */ li $a0, 6 /* 03C7EC 8003BBEC 0C00205A */ jal func_80008168 /* 03C7F0 8003BBF0 00000000 */ nop diff --git a/asm/non_matchings/object_functions/obj_loop_weaponballoon.s b/asm/non_matchings/object_functions/obj_loop_weaponballoon.s index 94df5b24..c2bc4a03 100644 --- a/asm/non_matchings/object_functions/obj_loop_weaponballoon.s +++ b/asm/non_matchings/object_functions/obj_loop_weaponballoon.s @@ -1,320 +1,320 @@ -.late_rodata -glabel D_800E61A8 -.double 0.001 -glabel D_800E61B0 -.float 0.001 -.word 0 # Padding -glabel D_800E61B8 -.double 0.1 - -.text -glabel obj_loop_weaponballoon -/* 03ED40 8003E140 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 03ED44 8003E144 AFBF0024 */ sw $ra, 0x24($sp) -/* 03ED48 8003E148 AFB00020 */ sw $s0, 0x20($sp) -/* 03ED4C 8003E14C AFA50044 */ sw $a1, 0x44($sp) -/* 03ED50 8003E150 8C860064 */ lw $a2, 0x64($a0) -/* 03ED54 8003E154 3C0142B4 */ li $at, 0x42B40000 # 90.000000 -/* 03ED58 8003E158 84CE0004 */ lh $t6, 4($a2) -/* 03ED5C 8003E15C 44814000 */ mtc1 $at, $f8 -/* 03ED60 8003E160 448E2000 */ mtc1 $t6, $f4 -/* 03ED64 8003E164 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 03ED68 8003E168 468021A0 */ cvt.s.w $f6, $f4 -/* 03ED6C 8003E16C 44819800 */ mtc1 $at, $f19 -/* 03ED70 8003E170 44809000 */ mtc1 $zero, $f18 -/* 03ED74 8003E174 46083283 */ div.s $f10, $f6, $f8 -/* 03ED78 8003E178 C4C60000 */ lwc1 $f6, ($a2) -/* 03ED7C 8003E17C 3C01800E */ lui $at, %hi(D_800E61A8) # $at, 0x800e -/* 03ED80 8003E180 46003221 */ cvt.d.s $f8, $f6 -/* 03ED84 8003E184 00808025 */ move $s0, $a0 -/* 03ED88 8003E188 240A0001 */ li $t2, 1 -/* 03ED8C 8003E18C 46005421 */ cvt.d.s $f16, $f10 -/* 03ED90 8003E190 46309101 */ sub.d $f4, $f18, $f16 -/* 03ED94 8003E194 46244282 */ mul.d $f10, $f8, $f4 -/* 03ED98 8003E198 462054A0 */ cvt.s.d $f18, $f10 -/* 03ED9C 8003E19C E4920008 */ swc1 $f18, 8($a0) -/* 03EDA0 8003E1A0 C4900008 */ lwc1 $f16, 8($a0) -/* 03EDA4 8003E1A4 C42661AC */ lwc1 $f6, %lo(D_800E61A8 + 4)($at) -/* 03EDA8 8003E1A8 C42761A8 */ lwc1 $f7, %lo(D_800E61A8)($at) -/* 03EDAC 8003E1AC 46008021 */ cvt.d.s $f0, $f16 -/* 03EDB0 8003E1B0 4626003C */ c.lt.d $f0, $f6 -/* 03EDB4 8003E1B4 3C01800E */ lui $at, %hi(D_800E61B0) # $at, 0x800e -/* 03EDB8 8003E1B8 45000007 */ bc1f .L8003E1D8 -/* 03EDBC 8003E1BC 00000000 */ nop -/* 03EDC0 8003E1C0 C42861B0 */ lwc1 $f8, %lo(D_800E61B0)($at) -/* 03EDC4 8003E1C4 00000000 */ nop -/* 03EDC8 8003E1C8 E4880008 */ swc1 $f8, 8($a0) -/* 03EDCC 8003E1CC C4840008 */ lwc1 $f4, 8($a0) -/* 03EDD0 8003E1D0 00000000 */ nop -/* 03EDD4 8003E1D4 46002021 */ cvt.d.s $f0, $f4 -.L8003E1D8: -/* 03EDD8 8003E1D8 3C01800E */ lui $at, %hi(D_800E61B8 + 4) # $at, 0x800e -/* 03EDDC 8003E1DC C42B61B8 */ lwc1 $f11, %lo(D_800E61B8)($at) -/* 03EDE0 8003E1E0 C42A61BC */ lwc1 $f10, %lo(D_800E61B8 + 4)($at) -/* 03EDE4 8003E1E4 02002025 */ move $a0, $s0 -/* 03EDE8 8003E1E8 462A003C */ c.lt.d $f0, $f10 -/* 03EDEC 8003E1EC 00000000 */ nop -/* 03EDF0 8003E1F0 45000006 */ bc1f .L8003E20C -/* 03EDF4 8003E1F4 00000000 */ nop -/* 03EDF8 8003E1F8 860F0006 */ lh $t7, 6($s0) -/* 03EDFC 8003E1FC 00000000 */ nop -/* 03EE00 8003E200 35F84000 */ ori $t8, $t7, 0x4000 -/* 03EE04 8003E204 10000005 */ b .L8003E21C -/* 03EE08 8003E208 A6180006 */ sh $t8, 6($s0) -.L8003E20C: -/* 03EE0C 8003E20C 86190006 */ lh $t9, 6($s0) -/* 03EE10 8003E210 00000000 */ nop -/* 03EE14 8003E214 3328BFFF */ andi $t0, $t9, 0xbfff -/* 03EE18 8003E218 A6080006 */ sh $t0, 6($s0) -.L8003E21C: -/* 03EE1C 8003E21C 8E09007C */ lw $t1, 0x7c($s0) -/* 03EE20 8003E220 00000000 */ nop -/* 03EE24 8003E224 1920000C */ blez $t1, .L8003E258 -/* 03EE28 8003E228 00000000 */ nop -/* 03EE2C 8003E22C AE0A0074 */ sw $t2, 0x74($s0) -/* 03EE30 8003E230 8FA50044 */ lw $a1, 0x44($sp) -/* 03EE34 8003E234 0C02BF0F */ jal func_800AFC3C -/* 03EE38 8003E238 AFA60034 */ sw $a2, 0x34($sp) -/* 03EE3C 8003E23C 8E0B007C */ lw $t3, 0x7c($s0) -/* 03EE40 8003E240 8FAC0044 */ lw $t4, 0x44($sp) -/* 03EE44 8003E244 00000000 */ nop -/* 03EE48 8003E248 016C6823 */ subu $t5, $t3, $t4 -/* 03EE4C 8003E24C AE0D007C */ sw $t5, 0x7c($s0) -/* 03EE50 8003E250 8FA60034 */ lw $a2, 0x34($sp) -/* 03EE54 8003E254 00000000 */ nop -.L8003E258: -/* 03EE58 8003E258 84C20004 */ lh $v0, 4($a2) -/* 03EE5C 8003E25C 2401005A */ li $at, 90 -/* 03EE60 8003E260 10400015 */ beqz $v0, .L8003E2B8 -/* 03EE64 8003E264 00000000 */ nop -/* 03EE68 8003E268 14410009 */ bne $v0, $at, .L8003E290 -/* 03EE6C 8003E26C 8FB80044 */ lw $t8, 0x44($sp) -/* 03EE70 8003E270 8E0E004C */ lw $t6, 0x4c($s0) -/* 03EE74 8003E274 00000000 */ nop -/* 03EE78 8003E278 91CF0013 */ lbu $t7, 0x13($t6) -/* 03EE7C 8003E27C 00000000 */ nop -/* 03EE80 8003E280 29E1002D */ slti $at, $t7, 0x2d -/* 03EE84 8003E284 14200008 */ bnez $at, .L8003E2A8 -/* 03EE88 8003E288 00000000 */ nop -/* 03EE8C 8003E28C 8FB80044 */ lw $t8, 0x44($sp) -.L8003E290: -/* 03EE90 8003E290 00000000 */ nop -/* 03EE94 8003E294 0058C823 */ subu $t9, $v0, $t8 -/* 03EE98 8003E298 03384023 */ subu $t0, $t9, $t8 -/* 03EE9C 8003E29C A4C80004 */ sh $t0, 4($a2) -/* 03EEA0 8003E2A0 84C20004 */ lh $v0, 4($a2) -/* 03EEA4 8003E2A4 00000000 */ nop -.L8003E2A8: -/* 03EEA8 8003E2A8 044100BE */ bgez $v0, .L8003E5A4 -/* 03EEAC 8003E2AC 8FBF0024 */ lw $ra, 0x24($sp) -/* 03EEB0 8003E2B0 100000BB */ b .L8003E5A0 -/* 03EEB4 8003E2B4 A4C00004 */ sh $zero, 4($a2) -.L8003E2B8: -/* 03EEB8 8003E2B8 8E03004C */ lw $v1, 0x4c($s0) -/* 03EEBC 8003E2BC 00000000 */ nop -/* 03EEC0 8003E2C0 90690013 */ lbu $t1, 0x13($v1) -/* 03EEC4 8003E2C4 00000000 */ nop -/* 03EEC8 8003E2C8 2921002D */ slti $at, $t1, 0x2d -/* 03EECC 8003E2CC 102000B5 */ beqz $at, .L8003E5A4 -/* 03EED0 8003E2D0 8FBF0024 */ lw $ra, 0x24($sp) -/* 03EED4 8003E2D4 8C620000 */ lw $v0, ($v1) -/* 03EED8 8003E2D8 00000000 */ nop -/* 03EEDC 8003E2DC 104000B1 */ beqz $v0, .L8003E5A4 -/* 03EEE0 8003E2E0 8FBF0024 */ lw $ra, 0x24($sp) -/* 03EEE4 8003E2E4 8C4A0040 */ lw $t2, 0x40($v0) -/* 03EEE8 8003E2E8 24040001 */ li $a0, 1 -/* 03EEEC 8003E2EC 814B0054 */ lb $t3, 0x54($t2) -/* 03EEF0 8003E2F0 00000000 */ nop -/* 03EEF4 8003E2F4 148B00AB */ bne $a0, $t3, .L8003E5A4 -/* 03EEF8 8003E2F8 8FBF0024 */ lw $ra, 0x24($sp) -/* 03EEFC 8003E2FC 8C430064 */ lw $v1, 0x64($v0) -/* 03EF00 8003E300 00000000 */ nop -/* 03EF04 8003E304 806C01D6 */ lb $t4, 0x1d6($v1) -/* 03EF08 8003E308 00000000 */ nop -/* 03EF0C 8003E30C 29810005 */ slti $at, $t4, 5 -/* 03EF10 8003E310 14200005 */ bnez $at, .L8003E328 -/* 03EF14 8003E314 00000000 */ nop -/* 03EF18 8003E318 846D0000 */ lh $t5, ($v1) -/* 03EF1C 8003E31C 2401FFFF */ li $at, -1 -/* 03EF20 8003E320 11A100A0 */ beq $t5, $at, .L8003E5A4 -/* 03EF24 8003E324 8FBF0024 */ lw $ra, 0x24($sp) -.L8003E328: -/* 03EF28 8003E328 8E0E0078 */ lw $t6, 0x78($s0) -/* 03EF2C 8003E32C 80620172 */ lb $v0, 0x172($v1) -/* 03EF30 8003E330 A06E0172 */ sb $t6, 0x172($v1) -/* 03EF34 8003E334 806F0172 */ lb $t7, 0x172($v1) -/* 03EF38 8003E338 00000000 */ nop -/* 03EF3C 8003E33C 144F000A */ bne $v0, $t7, .L8003E368 -/* 03EF40 8003E340 00000000 */ nop -/* 03EF44 8003E344 80790173 */ lb $t9, 0x173($v1) -/* 03EF48 8003E348 00000000 */ nop -/* 03EF4C 8003E34C 13200006 */ beqz $t9, .L8003E368 -/* 03EF50 8003E350 00000000 */ nop -/* 03EF54 8003E354 80780174 */ lb $t8, 0x174($v1) -/* 03EF58 8003E358 00000000 */ nop -/* 03EF5C 8003E35C 27080001 */ addiu $t0, $t8, 1 -/* 03EF60 8003E360 10000002 */ b .L8003E36C -/* 03EF64 8003E364 A0680174 */ sb $t0, 0x174($v1) -.L8003E368: -/* 03EF68 8003E368 A0600174 */ sb $zero, 0x174($v1) -.L8003E36C: -/* 03EF6C 8003E36C AFA30038 */ sw $v1, 0x38($sp) -/* 03EF70 8003E370 0C01AF66 */ jal get_current_level_race_type -/* 03EF74 8003E374 AFA60034 */ sw $a2, 0x34($sp) -/* 03EF78 8003E378 8FA30038 */ lw $v1, 0x38($sp) -/* 03EF7C 8003E37C 30490040 */ andi $t1, $v0, 0x40 -/* 03EF80 8003E380 1120000C */ beqz $t1, .L8003E3B4 -/* 03EF84 8003E384 24040001 */ li $a0, 1 -/* 03EF88 8003E388 806A0174 */ lb $t2, 0x174($v1) -/* 03EF8C 8003E38C 00000000 */ nop -/* 03EF90 8003E390 29410002 */ slti $at, $t2, 2 -/* 03EF94 8003E394 14200002 */ bnez $at, .L8003E3A0 -/* 03EF98 8003E398 00000000 */ nop -/* 03EF9C 8003E39C A0640174 */ sb $a0, 0x174($v1) -.L8003E3A0: -/* 03EFA0 8003E3A0 806B0172 */ lb $t3, 0x172($v1) -/* 03EFA4 8003E3A4 24010002 */ li $at, 2 -/* 03EFA8 8003E3A8 15610003 */ bne $t3, $at, .L8003E3B8 -/* 03EFAC 8003E3AC 240C0003 */ li $t4, 3 -/* 03EFB0 8003E3B0 A0640174 */ sb $a0, 0x174($v1) -.L8003E3B4: -/* 03EFB4 8003E3B4 240C0003 */ li $t4, 3 -.L8003E3B8: -/* 03EFB8 8003E3B8 A3AC002D */ sb $t4, 0x2d($sp) -/* 03EFBC 8003E3BC 0C0270C3 */ jal get_filtered_cheats -/* 03EFC0 8003E3C0 AFA30038 */ sw $v1, 0x38($sp) -/* 03EFC4 8003E3C4 8FA30038 */ lw $v1, 0x38($sp) -/* 03EFC8 8003E3C8 00026AC0 */ sll $t5, $v0, 0xb -/* 03EFCC 8003E3CC 05A10002 */ bgez $t5, .L8003E3D8 -/* 03EFD0 8003E3D0 24040002 */ li $a0, 2 -/* 03EFD4 8003E3D4 A0640174 */ sb $a0, 0x174($v1) -.L8003E3D8: -/* 03EFD8 8003E3D8 806E0174 */ lb $t6, 0x174($v1) -/* 03EFDC 8003E3DC 00000000 */ nop -/* 03EFE0 8003E3E0 29C10003 */ slti $at, $t6, 3 -/* 03EFE4 8003E3E4 14200003 */ bnez $at, .L8003E3F4 -/* 03EFE8 8003E3E8 00000000 */ nop -/* 03EFEC 8003E3EC A0640174 */ sb $a0, 0x174($v1) -/* 03EFF0 8003E3F0 A3A4002D */ sb $a0, 0x2d($sp) -.L8003E3F4: -/* 03EFF4 8003E3F4 2404000C */ li $a0, 12 -/* 03EFF8 8003E3F8 0C0078A7 */ jal get_misc_asset -/* 03EFFC 8003E3FC AFA30038 */ sw $v1, 0x38($sp) -/* 03F000 8003E400 8FA30038 */ lw $v1, 0x38($sp) -/* 03F004 8003E404 00000000 */ nop -/* 03F008 8003E408 806F0172 */ lb $t7, 0x172($v1) -/* 03F00C 8003E40C 80780174 */ lb $t8, 0x174($v1) -/* 03F010 8003E410 000FC880 */ sll $t9, $t7, 2 -/* 03F014 8003E414 032FC821 */ addu $t9, $t9, $t7 -/* 03F018 8003E418 0019C840 */ sll $t9, $t9, 1 -/* 03F01C 8003E41C 00184040 */ sll $t0, $t8, 1 -/* 03F020 8003E420 03284821 */ addu $t1, $t9, $t0 -/* 03F024 8003E424 906C0209 */ lbu $t4, 0x209($v1) -/* 03F028 8003E428 01225021 */ addu $t2, $t1, $v0 -/* 03F02C 8003E42C 814B0001 */ lb $t3, 1($t2) -/* 03F030 8003E430 80660173 */ lb $a2, 0x173($v1) -/* 03F034 8003E434 358D0001 */ ori $t5, $t4, 1 -/* 03F038 8003E438 A06D0209 */ sb $t5, 0x209($v1) -/* 03F03C 8003E43C A06B0173 */ sb $t3, 0x173($v1) -/* 03F040 8003E440 0C0270F2 */ jal get_number_of_active_players -/* 03F044 8003E444 A3A6002E */ sb $a2, 0x2e($sp) -/* 03F048 8003E448 8FA30038 */ lw $v1, 0x38($sp) -/* 03F04C 8003E44C 83A6002E */ lb $a2, 0x2e($sp) -/* 03F050 8003E450 28410002 */ slti $at, $v0, 2 -/* 03F054 8003E454 10200002 */ beqz $at, .L8003E460 -/* 03F058 8003E458 240E0010 */ li $t6, 16 -/* 03F05C 8003E45C AE0E007C */ sw $t6, 0x7c($s0) -.L8003E460: -/* 03F060 8003E460 84670000 */ lh $a3, ($v1) -/* 03F064 8003E464 2401FFFF */ li $at, -1 -/* 03F068 8003E468 14E1000A */ bne $a3, $at, .L8003E494 -/* 03F06C 8003E46C 2404000E */ li $a0, 14 -/* 03F070 8003E470 8E05000C */ lw $a1, 0xc($s0) -/* 03F074 8003E474 8E060010 */ lw $a2, 0x10($s0) -/* 03F078 8003E478 8E070014 */ lw $a3, 0x14($s0) -/* 03F07C 8003E47C 240F0004 */ li $t7, 4 -/* 03F080 8003E480 AFAF0010 */ sw $t7, 0x10($sp) -/* 03F084 8003E484 0C002556 */ jal play_sound_at_position -/* 03F088 8003E488 AFA00014 */ sw $zero, 0x14($sp) -/* 03F08C 8003E48C 1000003D */ b .L8003E584 -/* 03F090 8003E490 240D0001 */ li $t5, 1 -.L8003E494: -/* 03F094 8003E494 80620174 */ lb $v0, 0x174($v1) -/* 03F098 8003E498 83B8002D */ lb $t8, 0x2d($sp) -/* 03F09C 8003E49C 00000000 */ nop -/* 03F0A0 8003E4A0 17020024 */ bne $t8, $v0, .L8003E534 -/* 03F0A4 8003E4A4 00000000 */ nop -/* 03F0A8 8003E4A8 807901D8 */ lb $t9, 0x1d8($v1) -/* 03F0AC 8003E4AC 00000000 */ nop -/* 03F0B0 8003E4B0 17200034 */ bnez $t9, .L8003E584 -/* 03F0B4 8003E4B4 240D0001 */ li $t5, 1 -/* 03F0B8 8003E4B8 80680173 */ lb $t0, 0x173($v1) -/* 03F0BC 8003E4BC 2404000E */ li $a0, 14 -/* 03F0C0 8003E4C0 10C80014 */ beq $a2, $t0, .L8003E514 -/* 03F0C4 8003E4C4 240A0004 */ li $t2, 4 -/* 03F0C8 8003E4C8 2404013E */ li $a0, 318 -/* 03F0CC 8003E4CC 3C053F80 */ lui $a1, 0x3f80 -/* 03F0D0 8003E4D0 00E03025 */ move $a2, $a3 -/* 03F0D4 8003E4D4 0C029D21 */ jal set_time_trial_start_voice -/* 03F0D8 8003E4D8 AFA30038 */ sw $v1, 0x38($sp) -/* 03F0DC 8003E4DC 8FA30038 */ lw $v1, 0x38($sp) -/* 03F0E0 8003E4E0 00002825 */ move $a1, $zero -/* 03F0E4 8003E4E4 80660174 */ lb $a2, 0x174($v1) -/* 03F0E8 8003E4E8 00000000 */ nop -/* 03F0EC 8003E4EC 28C10003 */ slti $at, $a2, 3 -/* 03F0F0 8003E4F0 14200003 */ bnez $at, .L8003E500 -/* 03F0F4 8003E4F4 24C400A0 */ addiu $a0, $a2, 0xa0 -/* 03F0F8 8003E4F8 24060002 */ li $a2, 2 -/* 03F0FC 8003E4FC 24C400A0 */ addiu $a0, $a2, 0xa0 -.L8003E500: -/* 03F100 8003E500 3089FFFF */ andi $t1, $a0, 0xffff -/* 03F104 8003E504 0C000741 */ jal play_sound_global -/* 03F108 8003E508 01202025 */ move $a0, $t1 -/* 03F10C 8003E50C 1000001D */ b .L8003E584 -/* 03F110 8003E510 240D0001 */ li $t5, 1 -.L8003E514: -/* 03F114 8003E514 8E05000C */ lw $a1, 0xc($s0) -/* 03F118 8003E518 8E060010 */ lw $a2, 0x10($s0) -/* 03F11C 8003E51C 8E070014 */ lw $a3, 0x14($s0) -/* 03F120 8003E520 AFA00014 */ sw $zero, 0x14($sp) -/* 03F124 8003E524 0C002556 */ jal play_sound_at_position -/* 03F128 8003E528 AFAA0010 */ sw $t2, 0x10($sp) -/* 03F12C 8003E52C 10000015 */ b .L8003E584 -/* 03F130 8003E530 240D0001 */ li $t5, 1 -.L8003E534: -/* 03F134 8003E534 806B01D8 */ lb $t3, 0x1d8($v1) -/* 03F138 8003E538 00000000 */ nop -/* 03F13C 8003E53C 15600011 */ bnez $t3, .L8003E584 -/* 03F140 8003E540 240D0001 */ li $t5, 1 -/* 03F144 8003E544 18400009 */ blez $v0, .L8003E56C -/* 03F148 8003E548 2404013E */ li $a0, 318 -/* 03F14C 8003E54C 3C053F80 */ lui $a1, 0x3f80 -/* 03F150 8003E550 00E03025 */ move $a2, $a3 -/* 03F154 8003E554 0C029D21 */ jal set_time_trial_start_voice -/* 03F158 8003E558 AFA30038 */ sw $v1, 0x38($sp) -/* 03F15C 8003E55C 8FA30038 */ lw $v1, 0x38($sp) -/* 03F160 8003E560 00000000 */ nop -/* 03F164 8003E564 80620174 */ lb $v0, 0x174($v1) -/* 03F168 8003E568 00000000 */ nop -.L8003E56C: -/* 03F16C 8003E56C 244400A0 */ addiu $a0, $v0, 0xa0 -/* 03F170 8003E570 308CFFFF */ andi $t4, $a0, 0xffff -/* 03F174 8003E574 01802025 */ move $a0, $t4 -/* 03F178 8003E578 0C000741 */ jal play_sound_global -/* 03F17C 8003E57C 00002825 */ move $a1, $zero -/* 03F180 8003E580 240D0001 */ li $t5, 1 -.L8003E584: -/* 03F184 8003E584 AE0D0074 */ sw $t5, 0x74($s0) -/* 03F188 8003E588 8FA50044 */ lw $a1, 0x44($sp) -/* 03F18C 8003E58C 0C02BF0F */ jal func_800AFC3C -/* 03F190 8003E590 02002025 */ move $a0, $s0 -/* 03F194 8003E594 8FAF0034 */ lw $t7, 0x34($sp) -/* 03F198 8003E598 240E005A */ li $t6, 90 -/* 03F19C 8003E59C A5EE0004 */ sh $t6, 4($t7) -.L8003E5A0: -/* 03F1A0 8003E5A0 8FBF0024 */ lw $ra, 0x24($sp) -.L8003E5A4: -/* 03F1A4 8003E5A4 8FB00020 */ lw $s0, 0x20($sp) -/* 03F1A8 8003E5A8 03E00008 */ jr $ra -/* 03F1AC 8003E5AC 27BD0040 */ addiu $sp, $sp, 0x40 - +.late_rodata +glabel D_800E61A8 +.double 0.001 +glabel D_800E61B0 +.float 0.001 +.word 0 # Padding +glabel D_800E61B8 +.double 0.1 + +.text +glabel obj_loop_weaponballoon +/* 03ED40 8003E140 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 03ED44 8003E144 AFBF0024 */ sw $ra, 0x24($sp) +/* 03ED48 8003E148 AFB00020 */ sw $s0, 0x20($sp) +/* 03ED4C 8003E14C AFA50044 */ sw $a1, 0x44($sp) +/* 03ED50 8003E150 8C860064 */ lw $a2, 0x64($a0) +/* 03ED54 8003E154 3C0142B4 */ li $at, 0x42B40000 # 90.000000 +/* 03ED58 8003E158 84CE0004 */ lh $t6, 4($a2) +/* 03ED5C 8003E15C 44814000 */ mtc1 $at, $f8 +/* 03ED60 8003E160 448E2000 */ mtc1 $t6, $f4 +/* 03ED64 8003E164 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 03ED68 8003E168 468021A0 */ cvt.s.w $f6, $f4 +/* 03ED6C 8003E16C 44819800 */ mtc1 $at, $f19 +/* 03ED70 8003E170 44809000 */ mtc1 $zero, $f18 +/* 03ED74 8003E174 46083283 */ div.s $f10, $f6, $f8 +/* 03ED78 8003E178 C4C60000 */ lwc1 $f6, ($a2) +/* 03ED7C 8003E17C 3C01800E */ lui $at, %hi(D_800E61A8) # $at, 0x800e +/* 03ED80 8003E180 46003221 */ cvt.d.s $f8, $f6 +/* 03ED84 8003E184 00808025 */ move $s0, $a0 +/* 03ED88 8003E188 240A0001 */ li $t2, 1 +/* 03ED8C 8003E18C 46005421 */ cvt.d.s $f16, $f10 +/* 03ED90 8003E190 46309101 */ sub.d $f4, $f18, $f16 +/* 03ED94 8003E194 46244282 */ mul.d $f10, $f8, $f4 +/* 03ED98 8003E198 462054A0 */ cvt.s.d $f18, $f10 +/* 03ED9C 8003E19C E4920008 */ swc1 $f18, 8($a0) +/* 03EDA0 8003E1A0 C4900008 */ lwc1 $f16, 8($a0) +/* 03EDA4 8003E1A4 C42661AC */ lwc1 $f6, %lo(D_800E61A8 + 4)($at) +/* 03EDA8 8003E1A8 C42761A8 */ lwc1 $f7, %lo(D_800E61A8)($at) +/* 03EDAC 8003E1AC 46008021 */ cvt.d.s $f0, $f16 +/* 03EDB0 8003E1B0 4626003C */ c.lt.d $f0, $f6 +/* 03EDB4 8003E1B4 3C01800E */ lui $at, %hi(D_800E61B0) # $at, 0x800e +/* 03EDB8 8003E1B8 45000007 */ bc1f .L8003E1D8 +/* 03EDBC 8003E1BC 00000000 */ nop +/* 03EDC0 8003E1C0 C42861B0 */ lwc1 $f8, %lo(D_800E61B0)($at) +/* 03EDC4 8003E1C4 00000000 */ nop +/* 03EDC8 8003E1C8 E4880008 */ swc1 $f8, 8($a0) +/* 03EDCC 8003E1CC C4840008 */ lwc1 $f4, 8($a0) +/* 03EDD0 8003E1D0 00000000 */ nop +/* 03EDD4 8003E1D4 46002021 */ cvt.d.s $f0, $f4 +.L8003E1D8: +/* 03EDD8 8003E1D8 3C01800E */ lui $at, %hi(D_800E61B8 + 4) # $at, 0x800e +/* 03EDDC 8003E1DC C42B61B8 */ lwc1 $f11, %lo(D_800E61B8)($at) +/* 03EDE0 8003E1E0 C42A61BC */ lwc1 $f10, %lo(D_800E61B8 + 4)($at) +/* 03EDE4 8003E1E4 02002025 */ move $a0, $s0 +/* 03EDE8 8003E1E8 462A003C */ c.lt.d $f0, $f10 +/* 03EDEC 8003E1EC 00000000 */ nop +/* 03EDF0 8003E1F0 45000006 */ bc1f .L8003E20C +/* 03EDF4 8003E1F4 00000000 */ nop +/* 03EDF8 8003E1F8 860F0006 */ lh $t7, 6($s0) +/* 03EDFC 8003E1FC 00000000 */ nop +/* 03EE00 8003E200 35F84000 */ ori $t8, $t7, 0x4000 +/* 03EE04 8003E204 10000005 */ b .L8003E21C +/* 03EE08 8003E208 A6180006 */ sh $t8, 6($s0) +.L8003E20C: +/* 03EE0C 8003E20C 86190006 */ lh $t9, 6($s0) +/* 03EE10 8003E210 00000000 */ nop +/* 03EE14 8003E214 3328BFFF */ andi $t0, $t9, 0xbfff +/* 03EE18 8003E218 A6080006 */ sh $t0, 6($s0) +.L8003E21C: +/* 03EE1C 8003E21C 8E09007C */ lw $t1, 0x7c($s0) +/* 03EE20 8003E220 00000000 */ nop +/* 03EE24 8003E224 1920000C */ blez $t1, .L8003E258 +/* 03EE28 8003E228 00000000 */ nop +/* 03EE2C 8003E22C AE0A0074 */ sw $t2, 0x74($s0) +/* 03EE30 8003E230 8FA50044 */ lw $a1, 0x44($sp) +/* 03EE34 8003E234 0C02BF0F */ jal func_800AFC3C +/* 03EE38 8003E238 AFA60034 */ sw $a2, 0x34($sp) +/* 03EE3C 8003E23C 8E0B007C */ lw $t3, 0x7c($s0) +/* 03EE40 8003E240 8FAC0044 */ lw $t4, 0x44($sp) +/* 03EE44 8003E244 00000000 */ nop +/* 03EE48 8003E248 016C6823 */ subu $t5, $t3, $t4 +/* 03EE4C 8003E24C AE0D007C */ sw $t5, 0x7c($s0) +/* 03EE50 8003E250 8FA60034 */ lw $a2, 0x34($sp) +/* 03EE54 8003E254 00000000 */ nop +.L8003E258: +/* 03EE58 8003E258 84C20004 */ lh $v0, 4($a2) +/* 03EE5C 8003E25C 2401005A */ li $at, 90 +/* 03EE60 8003E260 10400015 */ beqz $v0, .L8003E2B8 +/* 03EE64 8003E264 00000000 */ nop +/* 03EE68 8003E268 14410009 */ bne $v0, $at, .L8003E290 +/* 03EE6C 8003E26C 8FB80044 */ lw $t8, 0x44($sp) +/* 03EE70 8003E270 8E0E004C */ lw $t6, 0x4c($s0) +/* 03EE74 8003E274 00000000 */ nop +/* 03EE78 8003E278 91CF0013 */ lbu $t7, 0x13($t6) +/* 03EE7C 8003E27C 00000000 */ nop +/* 03EE80 8003E280 29E1002D */ slti $at, $t7, 0x2d +/* 03EE84 8003E284 14200008 */ bnez $at, .L8003E2A8 +/* 03EE88 8003E288 00000000 */ nop +/* 03EE8C 8003E28C 8FB80044 */ lw $t8, 0x44($sp) +.L8003E290: +/* 03EE90 8003E290 00000000 */ nop +/* 03EE94 8003E294 0058C823 */ subu $t9, $v0, $t8 +/* 03EE98 8003E298 03384023 */ subu $t0, $t9, $t8 +/* 03EE9C 8003E29C A4C80004 */ sh $t0, 4($a2) +/* 03EEA0 8003E2A0 84C20004 */ lh $v0, 4($a2) +/* 03EEA4 8003E2A4 00000000 */ nop +.L8003E2A8: +/* 03EEA8 8003E2A8 044100BE */ bgez $v0, .L8003E5A4 +/* 03EEAC 8003E2AC 8FBF0024 */ lw $ra, 0x24($sp) +/* 03EEB0 8003E2B0 100000BB */ b .L8003E5A0 +/* 03EEB4 8003E2B4 A4C00004 */ sh $zero, 4($a2) +.L8003E2B8: +/* 03EEB8 8003E2B8 8E03004C */ lw $v1, 0x4c($s0) +/* 03EEBC 8003E2BC 00000000 */ nop +/* 03EEC0 8003E2C0 90690013 */ lbu $t1, 0x13($v1) +/* 03EEC4 8003E2C4 00000000 */ nop +/* 03EEC8 8003E2C8 2921002D */ slti $at, $t1, 0x2d +/* 03EECC 8003E2CC 102000B5 */ beqz $at, .L8003E5A4 +/* 03EED0 8003E2D0 8FBF0024 */ lw $ra, 0x24($sp) +/* 03EED4 8003E2D4 8C620000 */ lw $v0, ($v1) +/* 03EED8 8003E2D8 00000000 */ nop +/* 03EEDC 8003E2DC 104000B1 */ beqz $v0, .L8003E5A4 +/* 03EEE0 8003E2E0 8FBF0024 */ lw $ra, 0x24($sp) +/* 03EEE4 8003E2E4 8C4A0040 */ lw $t2, 0x40($v0) +/* 03EEE8 8003E2E8 24040001 */ li $a0, 1 +/* 03EEEC 8003E2EC 814B0054 */ lb $t3, 0x54($t2) +/* 03EEF0 8003E2F0 00000000 */ nop +/* 03EEF4 8003E2F4 148B00AB */ bne $a0, $t3, .L8003E5A4 +/* 03EEF8 8003E2F8 8FBF0024 */ lw $ra, 0x24($sp) +/* 03EEFC 8003E2FC 8C430064 */ lw $v1, 0x64($v0) +/* 03EF00 8003E300 00000000 */ nop +/* 03EF04 8003E304 806C01D6 */ lb $t4, 0x1d6($v1) +/* 03EF08 8003E308 00000000 */ nop +/* 03EF0C 8003E30C 29810005 */ slti $at, $t4, 5 +/* 03EF10 8003E310 14200005 */ bnez $at, .L8003E328 +/* 03EF14 8003E314 00000000 */ nop +/* 03EF18 8003E318 846D0000 */ lh $t5, ($v1) +/* 03EF1C 8003E31C 2401FFFF */ li $at, -1 +/* 03EF20 8003E320 11A100A0 */ beq $t5, $at, .L8003E5A4 +/* 03EF24 8003E324 8FBF0024 */ lw $ra, 0x24($sp) +.L8003E328: +/* 03EF28 8003E328 8E0E0078 */ lw $t6, 0x78($s0) +/* 03EF2C 8003E32C 80620172 */ lb $v0, 0x172($v1) +/* 03EF30 8003E330 A06E0172 */ sb $t6, 0x172($v1) +/* 03EF34 8003E334 806F0172 */ lb $t7, 0x172($v1) +/* 03EF38 8003E338 00000000 */ nop +/* 03EF3C 8003E33C 144F000A */ bne $v0, $t7, .L8003E368 +/* 03EF40 8003E340 00000000 */ nop +/* 03EF44 8003E344 80790173 */ lb $t9, 0x173($v1) +/* 03EF48 8003E348 00000000 */ nop +/* 03EF4C 8003E34C 13200006 */ beqz $t9, .L8003E368 +/* 03EF50 8003E350 00000000 */ nop +/* 03EF54 8003E354 80780174 */ lb $t8, 0x174($v1) +/* 03EF58 8003E358 00000000 */ nop +/* 03EF5C 8003E35C 27080001 */ addiu $t0, $t8, 1 +/* 03EF60 8003E360 10000002 */ b .L8003E36C +/* 03EF64 8003E364 A0680174 */ sb $t0, 0x174($v1) +.L8003E368: +/* 03EF68 8003E368 A0600174 */ sb $zero, 0x174($v1) +.L8003E36C: +/* 03EF6C 8003E36C AFA30038 */ sw $v1, 0x38($sp) +/* 03EF70 8003E370 0C01AF66 */ jal get_current_level_race_type +/* 03EF74 8003E374 AFA60034 */ sw $a2, 0x34($sp) +/* 03EF78 8003E378 8FA30038 */ lw $v1, 0x38($sp) +/* 03EF7C 8003E37C 30490040 */ andi $t1, $v0, 0x40 +/* 03EF80 8003E380 1120000C */ beqz $t1, .L8003E3B4 +/* 03EF84 8003E384 24040001 */ li $a0, 1 +/* 03EF88 8003E388 806A0174 */ lb $t2, 0x174($v1) +/* 03EF8C 8003E38C 00000000 */ nop +/* 03EF90 8003E390 29410002 */ slti $at, $t2, 2 +/* 03EF94 8003E394 14200002 */ bnez $at, .L8003E3A0 +/* 03EF98 8003E398 00000000 */ nop +/* 03EF9C 8003E39C A0640174 */ sb $a0, 0x174($v1) +.L8003E3A0: +/* 03EFA0 8003E3A0 806B0172 */ lb $t3, 0x172($v1) +/* 03EFA4 8003E3A4 24010002 */ li $at, 2 +/* 03EFA8 8003E3A8 15610003 */ bne $t3, $at, .L8003E3B8 +/* 03EFAC 8003E3AC 240C0003 */ li $t4, 3 +/* 03EFB0 8003E3B0 A0640174 */ sb $a0, 0x174($v1) +.L8003E3B4: +/* 03EFB4 8003E3B4 240C0003 */ li $t4, 3 +.L8003E3B8: +/* 03EFB8 8003E3B8 A3AC002D */ sb $t4, 0x2d($sp) +/* 03EFBC 8003E3BC 0C0270C3 */ jal get_filtered_cheats +/* 03EFC0 8003E3C0 AFA30038 */ sw $v1, 0x38($sp) +/* 03EFC4 8003E3C4 8FA30038 */ lw $v1, 0x38($sp) +/* 03EFC8 8003E3C8 00026AC0 */ sll $t5, $v0, 0xb +/* 03EFCC 8003E3CC 05A10002 */ bgez $t5, .L8003E3D8 +/* 03EFD0 8003E3D0 24040002 */ li $a0, 2 +/* 03EFD4 8003E3D4 A0640174 */ sb $a0, 0x174($v1) +.L8003E3D8: +/* 03EFD8 8003E3D8 806E0174 */ lb $t6, 0x174($v1) +/* 03EFDC 8003E3DC 00000000 */ nop +/* 03EFE0 8003E3E0 29C10003 */ slti $at, $t6, 3 +/* 03EFE4 8003E3E4 14200003 */ bnez $at, .L8003E3F4 +/* 03EFE8 8003E3E8 00000000 */ nop +/* 03EFEC 8003E3EC A0640174 */ sb $a0, 0x174($v1) +/* 03EFF0 8003E3F0 A3A4002D */ sb $a0, 0x2d($sp) +.L8003E3F4: +/* 03EFF4 8003E3F4 2404000C */ li $a0, 12 +/* 03EFF8 8003E3F8 0C0078A7 */ jal get_misc_asset +/* 03EFFC 8003E3FC AFA30038 */ sw $v1, 0x38($sp) +/* 03F000 8003E400 8FA30038 */ lw $v1, 0x38($sp) +/* 03F004 8003E404 00000000 */ nop +/* 03F008 8003E408 806F0172 */ lb $t7, 0x172($v1) +/* 03F00C 8003E40C 80780174 */ lb $t8, 0x174($v1) +/* 03F010 8003E410 000FC880 */ sll $t9, $t7, 2 +/* 03F014 8003E414 032FC821 */ addu $t9, $t9, $t7 +/* 03F018 8003E418 0019C840 */ sll $t9, $t9, 1 +/* 03F01C 8003E41C 00184040 */ sll $t0, $t8, 1 +/* 03F020 8003E420 03284821 */ addu $t1, $t9, $t0 +/* 03F024 8003E424 906C0209 */ lbu $t4, 0x209($v1) +/* 03F028 8003E428 01225021 */ addu $t2, $t1, $v0 +/* 03F02C 8003E42C 814B0001 */ lb $t3, 1($t2) +/* 03F030 8003E430 80660173 */ lb $a2, 0x173($v1) +/* 03F034 8003E434 358D0001 */ ori $t5, $t4, 1 +/* 03F038 8003E438 A06D0209 */ sb $t5, 0x209($v1) +/* 03F03C 8003E43C A06B0173 */ sb $t3, 0x173($v1) +/* 03F040 8003E440 0C0270F2 */ jal get_number_of_active_players +/* 03F044 8003E444 A3A6002E */ sb $a2, 0x2e($sp) +/* 03F048 8003E448 8FA30038 */ lw $v1, 0x38($sp) +/* 03F04C 8003E44C 83A6002E */ lb $a2, 0x2e($sp) +/* 03F050 8003E450 28410002 */ slti $at, $v0, 2 +/* 03F054 8003E454 10200002 */ beqz $at, .L8003E460 +/* 03F058 8003E458 240E0010 */ li $t6, 16 +/* 03F05C 8003E45C AE0E007C */ sw $t6, 0x7c($s0) +.L8003E460: +/* 03F060 8003E460 84670000 */ lh $a3, ($v1) +/* 03F064 8003E464 2401FFFF */ li $at, -1 +/* 03F068 8003E468 14E1000A */ bne $a3, $at, .L8003E494 +/* 03F06C 8003E46C 2404000E */ li $a0, 14 +/* 03F070 8003E470 8E05000C */ lw $a1, 0xc($s0) +/* 03F074 8003E474 8E060010 */ lw $a2, 0x10($s0) +/* 03F078 8003E478 8E070014 */ lw $a3, 0x14($s0) +/* 03F07C 8003E47C 240F0004 */ li $t7, 4 +/* 03F080 8003E480 AFAF0010 */ sw $t7, 0x10($sp) +/* 03F084 8003E484 0C002556 */ jal play_sound_at_position +/* 03F088 8003E488 AFA00014 */ sw $zero, 0x14($sp) +/* 03F08C 8003E48C 1000003D */ b .L8003E584 +/* 03F090 8003E490 240D0001 */ li $t5, 1 +.L8003E494: +/* 03F094 8003E494 80620174 */ lb $v0, 0x174($v1) +/* 03F098 8003E498 83B8002D */ lb $t8, 0x2d($sp) +/* 03F09C 8003E49C 00000000 */ nop +/* 03F0A0 8003E4A0 17020024 */ bne $t8, $v0, .L8003E534 +/* 03F0A4 8003E4A4 00000000 */ nop +/* 03F0A8 8003E4A8 807901D8 */ lb $t9, 0x1d8($v1) +/* 03F0AC 8003E4AC 00000000 */ nop +/* 03F0B0 8003E4B0 17200034 */ bnez $t9, .L8003E584 +/* 03F0B4 8003E4B4 240D0001 */ li $t5, 1 +/* 03F0B8 8003E4B8 80680173 */ lb $t0, 0x173($v1) +/* 03F0BC 8003E4BC 2404000E */ li $a0, 14 +/* 03F0C0 8003E4C0 10C80014 */ beq $a2, $t0, .L8003E514 +/* 03F0C4 8003E4C4 240A0004 */ li $t2, 4 +/* 03F0C8 8003E4C8 2404013E */ li $a0, 318 +/* 03F0CC 8003E4CC 3C053F80 */ lui $a1, 0x3f80 +/* 03F0D0 8003E4D0 00E03025 */ move $a2, $a3 +/* 03F0D4 8003E4D4 0C029D21 */ jal set_time_trial_start_voice +/* 03F0D8 8003E4D8 AFA30038 */ sw $v1, 0x38($sp) +/* 03F0DC 8003E4DC 8FA30038 */ lw $v1, 0x38($sp) +/* 03F0E0 8003E4E0 00002825 */ move $a1, $zero +/* 03F0E4 8003E4E4 80660174 */ lb $a2, 0x174($v1) +/* 03F0E8 8003E4E8 00000000 */ nop +/* 03F0EC 8003E4EC 28C10003 */ slti $at, $a2, 3 +/* 03F0F0 8003E4F0 14200003 */ bnez $at, .L8003E500 +/* 03F0F4 8003E4F4 24C400A0 */ addiu $a0, $a2, 0xa0 +/* 03F0F8 8003E4F8 24060002 */ li $a2, 2 +/* 03F0FC 8003E4FC 24C400A0 */ addiu $a0, $a2, 0xa0 +.L8003E500: +/* 03F100 8003E500 3089FFFF */ andi $t1, $a0, 0xffff +/* 03F104 8003E504 0C000741 */ jal sound_play +/* 03F108 8003E508 01202025 */ move $a0, $t1 +/* 03F10C 8003E50C 1000001D */ b .L8003E584 +/* 03F110 8003E510 240D0001 */ li $t5, 1 +.L8003E514: +/* 03F114 8003E514 8E05000C */ lw $a1, 0xc($s0) +/* 03F118 8003E518 8E060010 */ lw $a2, 0x10($s0) +/* 03F11C 8003E51C 8E070014 */ lw $a3, 0x14($s0) +/* 03F120 8003E520 AFA00014 */ sw $zero, 0x14($sp) +/* 03F124 8003E524 0C002556 */ jal play_sound_at_position +/* 03F128 8003E528 AFAA0010 */ sw $t2, 0x10($sp) +/* 03F12C 8003E52C 10000015 */ b .L8003E584 +/* 03F130 8003E530 240D0001 */ li $t5, 1 +.L8003E534: +/* 03F134 8003E534 806B01D8 */ lb $t3, 0x1d8($v1) +/* 03F138 8003E538 00000000 */ nop +/* 03F13C 8003E53C 15600011 */ bnez $t3, .L8003E584 +/* 03F140 8003E540 240D0001 */ li $t5, 1 +/* 03F144 8003E544 18400009 */ blez $v0, .L8003E56C +/* 03F148 8003E548 2404013E */ li $a0, 318 +/* 03F14C 8003E54C 3C053F80 */ lui $a1, 0x3f80 +/* 03F150 8003E550 00E03025 */ move $a2, $a3 +/* 03F154 8003E554 0C029D21 */ jal set_time_trial_start_voice +/* 03F158 8003E558 AFA30038 */ sw $v1, 0x38($sp) +/* 03F15C 8003E55C 8FA30038 */ lw $v1, 0x38($sp) +/* 03F160 8003E560 00000000 */ nop +/* 03F164 8003E564 80620174 */ lb $v0, 0x174($v1) +/* 03F168 8003E568 00000000 */ nop +.L8003E56C: +/* 03F16C 8003E56C 244400A0 */ addiu $a0, $v0, 0xa0 +/* 03F170 8003E570 308CFFFF */ andi $t4, $a0, 0xffff +/* 03F174 8003E574 01802025 */ move $a0, $t4 +/* 03F178 8003E578 0C000741 */ jal sound_play +/* 03F17C 8003E57C 00002825 */ move $a1, $zero +/* 03F180 8003E580 240D0001 */ li $t5, 1 +.L8003E584: +/* 03F184 8003E584 AE0D0074 */ sw $t5, 0x74($s0) +/* 03F188 8003E588 8FA50044 */ lw $a1, 0x44($sp) +/* 03F18C 8003E58C 0C02BF0F */ jal func_800AFC3C +/* 03F190 8003E590 02002025 */ move $a0, $s0 +/* 03F194 8003E594 8FAF0034 */ lw $t7, 0x34($sp) +/* 03F198 8003E598 240E005A */ li $t6, 90 +/* 03F19C 8003E59C A5EE0004 */ sh $t6, 4($t7) +.L8003E5A0: +/* 03F1A0 8003E5A0 8FBF0024 */ lw $ra, 0x24($sp) +.L8003E5A4: +/* 03F1A4 8003E5A4 8FB00020 */ lw $s0, 0x20($sp) +/* 03F1A8 8003E5A8 03E00008 */ jr $ra +/* 03F1AC 8003E5AC 27BD0040 */ addiu $sp, $sp, 0x40 + diff --git a/asm/non_matchings/objects/func_80018CE0.s b/asm/non_matchings/objects/func_80018CE0.s index 05e2e688..f80336ac 100644 --- a/asm/non_matchings/objects/func_80018CE0.s +++ b/asm/non_matchings/objects/func_80018CE0.s @@ -1,580 +1,580 @@ -glabel func_80018CE0 -/* 0198E0 80018CE0 27BDFF00 */ addiu $sp, $sp, -0x100 -/* 0198E4 80018CE4 AFBF006C */ sw $ra, 0x6c($sp) -/* 0198E8 80018CE8 AFBE0068 */ sw $fp, 0x68($sp) -/* 0198EC 80018CEC AFB70064 */ sw $s7, 0x64($sp) -/* 0198F0 80018CF0 AFB60060 */ sw $s6, 0x60($sp) -/* 0198F4 80018CF4 AFB5005C */ sw $s5, 0x5c($sp) -/* 0198F8 80018CF8 AFB40058 */ sw $s4, 0x58($sp) -/* 0198FC 80018CFC AFB30054 */ sw $s3, 0x54($sp) -/* 019900 80018D00 AFB20050 */ sw $s2, 0x50($sp) -/* 019904 80018D04 AFB1004C */ sw $s1, 0x4c($sp) -/* 019908 80018D08 AFB00048 */ sw $s0, 0x48($sp) -/* 01990C 80018D0C E7BF0040 */ swc1 $f31, 0x40($sp) -/* 019910 80018D10 E7BE0044 */ swc1 $f30, 0x44($sp) -/* 019914 80018D14 E7BD0038 */ swc1 $f29, 0x38($sp) -/* 019918 80018D18 E7BC003C */ swc1 $f28, 0x3c($sp) -/* 01991C 80018D1C E7BB0030 */ swc1 $f27, 0x30($sp) -/* 019920 80018D20 E7BA0034 */ swc1 $f26, 0x34($sp) -/* 019924 80018D24 E7B90028 */ swc1 $f25, 0x28($sp) -/* 019928 80018D28 E7B8002C */ swc1 $f24, 0x2c($sp) -/* 01992C 80018D2C E7B70020 */ swc1 $f23, 0x20($sp) -/* 019930 80018D30 E7B60024 */ swc1 $f22, 0x24($sp) -/* 019934 80018D34 E7B50018 */ swc1 $f21, 0x18($sp) -/* 019938 80018D38 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 01993C 80018D3C AFA50104 */ sw $a1, 0x104($sp) -/* 019940 80018D40 AFA60108 */ sw $a2, 0x108($sp) -/* 019944 80018D44 AFA7010C */ sw $a3, 0x10c($sp) -/* 019948 80018D48 8C820064 */ lw $v0, 0x64($a0) -/* 01994C 80018D4C 0080A025 */ move $s4, $a0 -/* 019950 80018D50 844B0000 */ lh $t3, ($v0) -/* 019954 80018D54 00000000 */ nop -/* 019958 80018D58 156001E9 */ bnez $t3, .L80019500 -/* 01995C 80018D5C 8FBF006C */ lw $ra, 0x6c($sp) -/* 019960 80018D60 0C019884 */ jal get_viewport_count -/* 019964 80018D64 00000000 */ nop -/* 019968 80018D68 144001E4 */ bnez $v0, .L800194FC -/* 01996C 80018D6C 3C0C8012 */ lui $t4, %hi(gObjectListStart) # $t4, 0x8012 -/* 019970 80018D70 8D8CAE60 */ lw $t4, %lo(gObjectListStart)($t4) -/* 019974 80018D74 3C0D8012 */ lui $t5, %hi(gObjectCount) # $t5, 0x8012 -/* 019978 80018D78 8DADAE5C */ lw $t5, %lo(gObjectCount)($t5) -/* 01997C 80018D7C AFAC00F4 */ sw $t4, 0xf4($sp) -/* 019980 80018D80 018D082A */ slt $at, $t4, $t5 -/* 019984 80018D84 10200135 */ beqz $at, .L8001925C -/* 019988 80018D88 000CC080 */ sll $t8, $t4, 2 -/* 01998C 80018D8C AFB80098 */ sw $t8, 0x98($sp) -/* 019990 80018D90 241E007F */ li $fp, 127 -/* 019994 80018D94 24170010 */ li $s7, 16 -/* 019998 80018D98 24160002 */ li $s6, 2 -/* 01999C 80018D9C 24150001 */ li $s5, 1 -.L80018DA0: -/* 0199A0 80018DA0 3C0F8012 */ lui $t7, %hi(gObjPtrList) # $t7, 0x8012 -/* 0199A4 80018DA4 8DEFAE58 */ lw $t7, %lo(gObjPtrList)($t7) -/* 0199A8 80018DA8 8FAE0098 */ lw $t6, 0x98($sp) -/* 0199AC 80018DAC 00000000 */ nop -/* 0199B0 80018DB0 01EEC821 */ addu $t9, $t7, $t6 -/* 0199B4 80018DB4 8F300000 */ lw $s0, ($t9) -/* 0199B8 80018DB8 00000000 */ nop -/* 0199BC 80018DBC 86080006 */ lh $t0, 6($s0) -/* 0199C0 80018DC0 00000000 */ nop -/* 0199C4 80018DC4 31098000 */ andi $t1, $t0, 0x8000 -/* 0199C8 80018DC8 1520011B */ bnez $t1, .L80019238 -/* 0199CC 80018DCC 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 0199D0 80018DD0 86020048 */ lh $v0, 0x48($s0) -/* 0199D4 80018DD4 24010070 */ li $at, 112 -/* 0199D8 80018DD8 14410070 */ bne $v0, $at, .L80018F9C -/* 0199DC 80018DDC 24010047 */ li $at, 71 -/* 0199E0 80018DE0 C686000C */ lwc1 $f6, 0xc($s4) -/* 0199E4 80018DE4 C604000C */ lwc1 $f4, 0xc($s0) -/* 0199E8 80018DE8 C68A0010 */ lwc1 $f10, 0x10($s4) -/* 0199EC 80018DEC C6080010 */ lwc1 $f8, 0x10($s0) -/* 0199F0 80018DF0 46043001 */ sub.s $f0, $f6, $f4 -/* 0199F4 80018DF4 C6040014 */ lwc1 $f4, 0x14($s0) -/* 0199F8 80018DF8 46085081 */ sub.s $f2, $f10, $f8 -/* 0199FC 80018DFC C6860014 */ lwc1 $f6, 0x14($s4) -/* 019A00 80018E00 46000282 */ mul.s $f10, $f0, $f0 -/* 019A04 80018E04 46043381 */ sub.s $f14, $f6, $f4 -/* 019A08 80018E08 46021202 */ mul.s $f8, $f2, $f2 -/* 019A0C 80018E0C 00000000 */ nop -/* 019A10 80018E10 460E7102 */ mul.s $f4, $f14, $f14 -/* 019A14 80018E14 46085180 */ add.s $f6, $f10, $f8 -/* 019A18 80018E18 0C0326B4 */ jal sqrtf -/* 019A1C 80018E1C 46043300 */ add.s $f12, $f6, $f4 -/* 019A20 80018E20 8E030064 */ lw $v1, 0x64($s0) -/* 019A24 80018E24 46000086 */ mov.s $f2, $f0 -/* 019A28 80018E28 946A0002 */ lhu $t2, 2($v1) -/* 019A2C 80018E2C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 019A30 80018E30 448A5000 */ mtc1 $t2, $f10 -/* 019A34 80018E34 05410004 */ bgez $t2, .L80018E48 -/* 019A38 80018E38 46805220 */ cvt.s.w $f8, $f10 -/* 019A3C 80018E3C 44813000 */ mtc1 $at, $f6 -/* 019A40 80018E40 00000000 */ nop -/* 019A44 80018E44 46064200 */ add.s $f8, $f8, $f6 -.L80018E48: -/* 019A48 80018E48 4608003C */ c.lt.s $f0, $f8 -/* 019A4C 80018E4C 00000000 */ nop -/* 019A50 80018E50 450000F9 */ bc1f .L80019238 -/* 019A54 80018E54 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019A58 80018E58 AFA300BC */ sw $v1, 0xbc($sp) -/* 019A5C 80018E5C 0C000646 */ jal func_80001918 -/* 019A60 80018E60 E7A200C0 */ swc1 $f2, 0xc0($sp) -/* 019A64 80018E64 8FA300BC */ lw $v1, 0xbc($sp) -/* 019A68 80018E68 C7A200C0 */ lwc1 $f2, 0xc0($sp) -/* 019A6C 80018E6C 906B001C */ lbu $t3, 0x1c($v1) -/* 019A70 80018E70 00008825 */ move $s1, $zero -/* 019A74 80018E74 156200EF */ bne $t3, $v0, .L80019234 -/* 019A78 80018E78 00609825 */ move $s3, $v1 -/* 019A7C 80018E7C 94620000 */ lhu $v0, ($v1) -/* 019A80 80018E80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 019A84 80018E84 44822000 */ mtc1 $v0, $f4 -/* 019A88 80018E88 04410004 */ bgez $v0, .L80018E9C -/* 019A8C 80018E8C 46802320 */ cvt.s.w $f12, $f4 -/* 019A90 80018E90 44815000 */ mtc1 $at, $f10 -/* 019A94 80018E94 00000000 */ nop -/* 019A98 80018E98 460A6300 */ add.s $f12, $f12, $f10 -.L80018E9C: -/* 019A9C 80018E9C 460C103E */ c.le.s $f2, $f12 -/* 019AA0 80018EA0 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 019AA4 80018EA4 45000003 */ bc1f .L80018EB4 -/* 019AA8 80018EA8 00000000 */ nop -/* 019AAC 80018EAC 10000014 */ b .L80018F00 -/* 019AB0 80018EB0 00009025 */ move $s2, $zero -.L80018EB4: -/* 019AB4 80018EB4 946D0002 */ lhu $t5, 2($v1) -/* 019AB8 80018EB8 460C1081 */ sub.s $f2, $f2, $f12 -/* 019ABC 80018EBC 44814000 */ mtc1 $at, $f8 -/* 019AC0 80018EC0 01A26023 */ subu $t4, $t5, $v0 -/* 019AC4 80018EC4 448C3000 */ mtc1 $t4, $f6 -/* 019AC8 80018EC8 46024102 */ mul.s $f4, $f8, $f2 -/* 019ACC 80018ECC 46803020 */ cvt.s.w $f0, $f6 -/* 019AD0 80018ED0 00000000 */ nop -/* 019AD4 80018ED4 46002283 */ div.s $f10, $f4, $f0 -/* 019AD8 80018ED8 4458F800 */ cfc1 $t8, $31 -/* 019ADC 80018EDC 00000000 */ nop -/* 019AE0 80018EE0 37010003 */ ori $at, $t8, 3 -/* 019AE4 80018EE4 38210002 */ xori $at, $at, 2 -/* 019AE8 80018EE8 44C1F800 */ ctc1 $at, $31 -/* 019AEC 80018EEC 00000000 */ nop -/* 019AF0 80018EF0 460051A4 */ cvt.w.s $f6, $f10 -/* 019AF4 80018EF4 44D8F800 */ ctc1 $t8, $31 -/* 019AF8 80018EF8 44123000 */ mfc1 $s2, $f6 -/* 019AFC 80018EFC 00000000 */ nop -.L80018F00: -/* 019B00 80018F00 9262000C */ lbu $v0, 0xc($s3) -/* 019B04 80018F04 2A41007B */ slti $at, $s2, 0x7b -/* 019B08 80018F08 10550005 */ beq $v0, $s5, .L80018F20 -/* 019B0C 80018F0C 00000000 */ nop -/* 019B10 80018F10 10560012 */ beq $v0, $s6, .L80018F5C -/* 019B14 80018F14 323000FF */ andi $s0, $s1, 0xff -/* 019B18 80018F18 1000001B */ b .L80018F88 -/* 019B1C 80018F1C 26310001 */ addiu $s1, $s1, 1 -.L80018F20: -/* 019B20 80018F20 14200005 */ bnez $at, .L80018F38 -/* 019B24 80018F24 323000FF */ andi $s0, $s1, 0xff -/* 019B28 80018F28 0C000445 */ jal func_80001114 -/* 019B2C 80018F2C 322400FF */ andi $a0, $s1, 0xff -/* 019B30 80018F30 10000015 */ b .L80018F88 -/* 019B34 80018F34 26310001 */ addiu $s1, $s1, 1 -.L80018F38: -/* 019B38 80018F38 03D22823 */ subu $a1, $fp, $s2 -/* 019B3C 80018F3C 30AF00FF */ andi $t7, $a1, 0xff -/* 019B40 80018F40 01E02825 */ move $a1, $t7 -/* 019B44 80018F44 0C00049A */ jal func_80001268 -/* 019B48 80018F48 320400FF */ andi $a0, $s0, 0xff -/* 019B4C 80018F4C 0C00045C */ jal func_80001170 -/* 019B50 80018F50 320400FF */ andi $a0, $s0, 0xff -/* 019B54 80018F54 1000000C */ b .L80018F88 -/* 019B58 80018F58 26310001 */ addiu $s1, $s1, 1 -.L80018F5C: -/* 019B5C 80018F5C 0C0004AA */ jal func_800012A8 -/* 019B60 80018F60 320400FF */ andi $a0, $s0, 0xff -/* 019B64 80018F64 18400007 */ blez $v0, .L80018F84 -/* 019B68 80018F68 00000000 */ nop -/* 019B6C 80018F6C 0C000453 */ jal musicGetChnlActive -/* 019B70 80018F70 02202025 */ move $a0, $s1 -/* 019B74 80018F74 14400003 */ bnez $v0, .L80018F84 -/* 019B78 80018F78 320400FF */ andi $a0, $s0, 0xff -/* 019B7C 80018F7C 0C00049A */ jal func_80001268 -/* 019B80 80018F80 324500FF */ andi $a1, $s2, 0xff -.L80018F84: -/* 019B84 80018F84 26310001 */ addiu $s1, $s1, 1 -.L80018F88: -/* 019B88 80018F88 1637FFDD */ bne $s1, $s7, .L80018F00 -/* 019B8C 80018F8C 26730001 */ addiu $s3, $s3, 1 -/* 019B90 80018F90 100000A9 */ b .L80019238 -/* 019B94 80018F94 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019B98 80018F98 24010047 */ li $at, 71 -.L80018F9C: -/* 019B9C 80018F9C 14410079 */ bne $v0, $at, .L80019184 -/* 019BA0 80018FA0 24010076 */ li $at, 118 -/* 019BA4 80018FA4 8E020064 */ lw $v0, 0x64($s0) -/* 019BA8 80018FA8 C7A80108 */ lwc1 $f8, 0x108($sp) -/* 019BAC 80018FAC C450000C */ lwc1 $f16, 0xc($v0) -/* 019BB0 80018FB0 C7A4010C */ lwc1 $f4, 0x10c($sp) -/* 019BB4 80018FB4 46088782 */ mul.s $f30, $f16, $f8 -/* 019BB8 80018FB8 C4520010 */ lwc1 $f18, 0x10($v0) -/* 019BBC 80018FBC C7AA0104 */ lwc1 $f10, 0x104($sp) -/* 019BC0 80018FC0 C44C0008 */ lwc1 $f12, 8($v0) -/* 019BC4 80018FC4 46049382 */ mul.s $f14, $f18, $f4 -/* 019BC8 80018FC8 C698000C */ lwc1 $f24, 0xc($s4) -/* 019BCC 80018FCC C69A0010 */ lwc1 $f26, 0x10($s4) -/* 019BD0 80018FD0 C4540014 */ lwc1 $f20, 0x14($v0) -/* 019BD4 80018FD4 460A6182 */ mul.s $f6, $f12, $f10 -/* 019BD8 80018FD8 C69C0014 */ lwc1 $f28, 0x14($s4) -/* 019BDC 80018FDC E7AE0078 */ swc1 $f14, 0x78($sp) -/* 019BE0 80018FE0 46186282 */ mul.s $f10, $f12, $f24 -/* 019BE4 80018FE4 461E3200 */ add.s $f8, $f6, $f30 -/* 019BE8 80018FE8 461A8182 */ mul.s $f6, $f16, $f26 -/* 019BEC 80018FEC 460E4100 */ add.s $f4, $f8, $f14 -/* 019BF0 80018FF0 46142000 */ add.s $f0, $f4, $f20 -/* 019BF4 80018FF4 461C9102 */ mul.s $f4, $f18, $f28 -/* 019BF8 80018FF8 46065200 */ add.s $f8, $f10, $f6 -/* 019BFC 80018FFC 44803000 */ mtc1 $zero, $f6 -/* 019C00 80019000 00000000 */ nop -/* 019C04 80019004 4600303C */ c.lt.s $f6, $f0 -/* 019C08 80019008 46044280 */ add.s $f10, $f8, $f4 -/* 019C0C 8001900C 45000009 */ bc1f .L80019034 -/* 019C10 80019010 46145080 */ add.s $f2, $f10, $f20 -/* 019C14 80019014 44804000 */ mtc1 $zero, $f8 -/* 019C18 80019018 00151E00 */ sll $v1, $s5, 0x18 -/* 019C1C 8001901C 4608103E */ c.le.s $f2, $f8 -/* 019C20 80019020 00037603 */ sra $t6, $v1, 0x18 -/* 019C24 80019024 45000003 */ bc1f .L80019034 -/* 019C28 80019028 00000000 */ nop -/* 019C2C 8001902C 1000000F */ b .L8001906C -/* 019C30 80019030 01C01825 */ move $v1, $t6 -.L80019034: -/* 019C34 80019034 44802000 */ mtc1 $zero, $f4 -/* 019C38 80019038 00001825 */ move $v1, $zero -/* 019C3C 8001903C 4602203C */ c.lt.s $f4, $f2 -/* 019C40 80019040 00000000 */ nop -/* 019C44 80019044 45000009 */ bc1f .L8001906C -/* 019C48 80019048 00000000 */ nop -/* 019C4C 8001904C 44805000 */ mtc1 $zero, $f10 -/* 019C50 80019050 00000000 */ nop -/* 019C54 80019054 460A003E */ c.le.s $f0, $f10 -/* 019C58 80019058 00000000 */ nop -/* 019C5C 8001905C 45000003 */ bc1f .L8001906C -/* 019C60 80019060 00000000 */ nop -/* 019C64 80019064 10000001 */ b .L8001906C -/* 019C68 80019068 2403FFFF */ li $v1, -1 -.L8001906C: -/* 019C6C 8001906C 10600072 */ beqz $v1, .L80019238 -/* 019C70 80019070 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019C74 80019074 C7A60104 */ lwc1 $f6, 0x104($sp) -/* 019C78 80019078 46006287 */ neg.s $f10, $f12 -/* 019C7C 8001907C 46065282 */ mul.s $f10, $f10, $f6 -/* 019C80 80019080 C7A80108 */ lwc1 $f8, 0x108($sp) -/* 019C84 80019084 C7A4010C */ lwc1 $f4, 0x10c($sp) -/* 019C88 80019088 E7A80070 */ swc1 $f8, 0x70($sp) -/* 019C8C 8001908C 4608D081 */ sub.s $f2, $f26, $f8 -/* 019C90 80019090 C7A80078 */ lwc1 $f8, 0x78($sp) -/* 019C94 80019094 461E5281 */ sub.s $f10, $f10, $f30 -/* 019C98 80019098 E7A40074 */ swc1 $f4, 0x74($sp) -/* 019C9C 8001909C 46085281 */ sub.s $f10, $f10, $f8 -/* 019CA0 800190A0 4606C001 */ sub.s $f0, $f24, $f6 -/* 019CA4 800190A4 46145201 */ sub.s $f8, $f10, $f20 -/* 019CA8 800190A8 46006282 */ mul.s $f10, $f12, $f0 -/* 019CAC 800190AC 4604E381 */ sub.s $f14, $f28, $f4 -/* 019CB0 800190B0 46028102 */ mul.s $f4, $f16, $f2 -/* 019CB4 800190B4 46045280 */ add.s $f10, $f10, $f4 -/* 019CB8 800190B8 460E9102 */ mul.s $f4, $f18, $f14 -/* 019CBC 800190BC 46045280 */ add.s $f10, $f10, $f4 -/* 019CC0 800190C0 00000000 */ nop -/* 019CC4 800190C4 460A4583 */ div.s $f22, $f8, $f10 -/* 019CC8 800190C8 C4480018 */ lwc1 $f8, 0x18($v0) -/* 019CCC 800190CC 4600B102 */ mul.s $f4, $f22, $f0 -/* 019CD0 800190D0 46062300 */ add.s $f12, $f4, $f6 -/* 019CD4 800190D4 460C403E */ c.le.s $f8, $f12 -/* 019CD8 800190D8 00000000 */ nop -/* 019CDC 800190DC 45000056 */ bc1f .L80019238 -/* 019CE0 800190E0 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019CE4 800190E4 C44A0024 */ lwc1 $f10, 0x24($v0) -/* 019CE8 800190E8 00000000 */ nop -/* 019CEC 800190EC 460A603E */ c.le.s $f12, $f10 -/* 019CF0 800190F0 00000000 */ nop -/* 019CF4 800190F4 45000050 */ bc1f .L80019238 -/* 019CF8 800190F8 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019CFC 800190FC 4602B102 */ mul.s $f4, $f22, $f2 -/* 019D00 80019100 C7A60070 */ lwc1 $f6, 0x70($sp) -/* 019D04 80019104 C448001C */ lwc1 $f8, 0x1c($v0) -/* 019D08 80019108 46062000 */ add.s $f0, $f4, $f6 -/* 019D0C 8001910C 4600403E */ c.le.s $f8, $f0 -/* 019D10 80019110 00000000 */ nop -/* 019D14 80019114 45000048 */ bc1f .L80019238 -/* 019D18 80019118 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019D1C 8001911C C44A0028 */ lwc1 $f10, 0x28($v0) -/* 019D20 80019120 00000000 */ nop -/* 019D24 80019124 460A003E */ c.le.s $f0, $f10 -/* 019D28 80019128 00000000 */ nop -/* 019D2C 8001912C 45000042 */ bc1f .L80019238 -/* 019D30 80019130 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019D34 80019134 460EB102 */ mul.s $f4, $f22, $f14 -/* 019D38 80019138 C7A60074 */ lwc1 $f6, 0x74($sp) -/* 019D3C 8001913C C4480020 */ lwc1 $f8, 0x20($v0) -/* 019D40 80019140 46062000 */ add.s $f0, $f4, $f6 -/* 019D44 80019144 4600403E */ c.le.s $f8, $f0 -/* 019D48 80019148 00000000 */ nop -/* 019D4C 8001914C 4500003A */ bc1f .L80019238 -/* 019D50 80019150 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019D54 80019154 C44A002C */ lwc1 $f10, 0x2c($v0) -/* 019D58 80019158 3C018012 */ lui $at, %hi(D_8011AF60) # $at, 0x8012 -/* 019D5C 8001915C 460A003E */ c.le.s $f0, $f10 -/* 019D60 80019160 00000000 */ nop -/* 019D64 80019164 45000034 */ bc1f .L80019238 -/* 019D68 80019168 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019D6C 8001916C A0430000 */ sb $v1, ($v0) -/* 019D70 80019170 A0400001 */ sb $zero, 1($v0) -/* 019D74 80019174 A4400004 */ sh $zero, 4($v0) -/* 019D78 80019178 1000002E */ b .L80019234 -/* 019D7C 8001917C AC22AF60 */ sw $v0, %lo(D_8011AF60)($at) -/* 019D80 80019180 24010076 */ li $at, 118 -.L80019184: -/* 019D84 80019184 1441002C */ bne $v0, $at, .L80019238 -/* 019D88 80019188 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019D8C 8001918C C684000C */ lwc1 $f4, 0xc($s4) -/* 019D90 80019190 C606000C */ lwc1 $f6, 0xc($s0) -/* 019D94 80019194 C6880010 */ lwc1 $f8, 0x10($s4) -/* 019D98 80019198 C60A0010 */ lwc1 $f10, 0x10($s0) -/* 019D9C 8001919C 46062001 */ sub.s $f0, $f4, $f6 -/* 019DA0 800191A0 C6060014 */ lwc1 $f6, 0x14($s0) -/* 019DA4 800191A4 460A4081 */ sub.s $f2, $f8, $f10 -/* 019DA8 800191A8 C6840014 */ lwc1 $f4, 0x14($s4) -/* 019DAC 800191AC 46000202 */ mul.s $f8, $f0, $f0 -/* 019DB0 800191B0 46062381 */ sub.s $f14, $f4, $f6 -/* 019DB4 800191B4 8E110064 */ lw $s1, 0x64($s0) -/* 019DB8 800191B8 46021282 */ mul.s $f10, $f2, $f2 -/* 019DBC 800191BC 00000000 */ nop -/* 019DC0 800191C0 460E7182 */ mul.s $f6, $f14, $f14 -/* 019DC4 800191C4 460A4100 */ add.s $f4, $f8, $f10 -/* 019DC8 800191C8 0C0326B4 */ jal sqrtf -/* 019DCC 800191CC 46062300 */ add.s $f12, $f4, $f6 -/* 019DD0 800191D0 92220002 */ lbu $v0, 2($s1) -/* 019DD4 800191D4 00000000 */ nop -/* 019DD8 800191D8 0002C880 */ sll $t9, $v0, 2 -/* 019DDC 800191DC 44994000 */ mtc1 $t9, $f8 -/* 019DE0 800191E0 00000000 */ nop -/* 019DE4 800191E4 468042A0 */ cvt.s.w $f10, $f8 -/* 019DE8 800191E8 460A003C */ c.lt.s $f0, $f10 -/* 019DEC 800191EC 00000000 */ nop -/* 019DF0 800191F0 45000011 */ bc1f .L80019238 -/* 019DF4 800191F4 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019DF8 800191F8 0C000417 */ jal musicGetChanMask -/* 019DFC 800191FC 00000000 */ nop -/* 019E00 80019200 96280000 */ lhu $t0, ($s1) -/* 019E04 80019204 00000000 */ nop -/* 019E08 80019208 1102000B */ beq $t0, $v0, .L80019238 -/* 019E0C 8001920C 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019E10 80019210 0C000646 */ jal func_80001918 -/* 019E14 80019214 00000000 */ nop -/* 019E18 80019218 92290003 */ lbu $t1, 3($s1) -/* 019E1C 8001921C 00000000 */ nop -/* 019E20 80019220 15220005 */ bne $t1, $v0, .L80019238 -/* 019E24 80019224 8FAA00F4 */ lw $t2, 0xf4($sp) -/* 019E28 80019228 96240000 */ lhu $a0, ($s1) -/* 019E2C 8001922C 0C00041D */ jal func_80001074 -/* 019E30 80019230 00000000 */ nop -.L80019234: -/* 019E34 80019234 8FAA00F4 */ lw $t2, 0xf4($sp) -.L80019238: -/* 019E38 80019238 3C188012 */ lui $t8, %hi(gObjectCount) # $t8, 0x8012 -/* 019E3C 8001923C 8F18AE5C */ lw $t8, %lo(gObjectCount)($t8) -/* 019E40 80019240 8FAD0098 */ lw $t5, 0x98($sp) -/* 019E44 80019244 254B0001 */ addiu $t3, $t2, 1 -/* 019E48 80019248 0178082A */ slt $at, $t3, $t8 -/* 019E4C 8001924C 25AC0004 */ addiu $t4, $t5, 4 -/* 019E50 80019250 AFAC0098 */ sw $t4, 0x98($sp) -/* 019E54 80019254 1420FED2 */ bnez $at, .L80018DA0 -/* 019E58 80019258 AFAB00F4 */ sw $t3, 0xf4($sp) -.L8001925C: -/* 019E5C 8001925C 3C0F8012 */ lui $t7, %hi(D_8011AF60) # $t7, 0x8012 -/* 019E60 80019260 8DEFAF60 */ lw $t7, %lo(D_8011AF60)($t7) -/* 019E64 80019264 24150001 */ li $s5, 1 -/* 019E68 80019268 24160002 */ li $s6, 2 -/* 019E6C 8001926C 24170010 */ li $s7, 16 -/* 019E70 80019270 11E000A2 */ beqz $t7, .L800194FC -/* 019E74 80019274 241E007F */ li $fp, 127 -/* 019E78 80019278 0C000646 */ jal func_80001918 -/* 019E7C 8001927C 00000000 */ nop -/* 019E80 80019280 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 019E84 80019284 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 019E88 80019288 8FA80110 */ lw $t0, 0x110($sp) -/* 019E8C 8001928C 906E0040 */ lbu $t6, 0x40($v1) -/* 019E90 80019290 00008825 */ move $s1, $zero -/* 019E94 80019294 15C2008B */ bne $t6, $v0, .L800194C4 -/* 019E98 80019298 24140003 */ li $s4, 3 -/* 019E9C 8001929C 94790004 */ lhu $t9, 4($v1) -/* 019EA0 800192A0 3C0D8012 */ lui $t5, %hi(gVideoRefreshRate) # $t5, 0x8012 -/* 019EA4 800192A4 03284821 */ addu $t1, $t9, $t0 -/* 019EA8 800192A8 A4690004 */ sh $t1, 4($v1) -/* 019EAC 800192AC 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 019EB0 800192B0 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 019EB4 800192B4 8DAD6170 */ lw $t5, %lo(gVideoRefreshRate)($t5) -/* 019EB8 800192B8 906A0002 */ lbu $t2, 2($v1) -/* 019EBC 800192BC 94620004 */ lhu $v0, 4($v1) -/* 019EC0 800192C0 014D0019 */ multu $t2, $t5 -/* 019EC4 800192C4 241800FE */ li $t8, 254 -/* 019EC8 800192C8 00002012 */ mflo $a0 -/* 019ECC 800192CC 308CFFFF */ andi $t4, $a0, 0xffff -/* 019ED0 800192D0 0182082A */ slt $at, $t4, $v0 -/* 019ED4 800192D4 10200007 */ beqz $at, .L800192F4 -/* 019ED8 800192D8 01802025 */ move $a0, $t4 -/* 019EDC 800192DC A46C0004 */ sh $t4, 4($v1) -/* 019EE0 800192E0 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 019EE4 800192E4 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 019EE8 800192E8 00000000 */ nop -/* 019EEC 800192EC 94620004 */ lhu $v0, 4($v1) -/* 019EF0 800192F0 00000000 */ nop -.L800192F4: -/* 019EF4 800192F4 44822000 */ mtc1 $v0, $f4 -/* 019EF8 800192F8 04410005 */ bgez $v0, .L80019310 -/* 019EFC 800192FC 468021A0 */ cvt.s.w $f6, $f4 -/* 019F00 80019300 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 019F04 80019304 44814000 */ mtc1 $at, $f8 -/* 019F08 80019308 00000000 */ nop -/* 019F0C 8001930C 46083180 */ add.s $f6, $f6, $f8 -.L80019310: -/* 019F10 80019310 3C01437E */ li $at, 0x437E0000 # 254.000000 -/* 019F14 80019314 44815000 */ mtc1 $at, $f10 -/* 019F18 80019318 44844000 */ mtc1 $a0, $f8 -/* 019F1C 8001931C 460A3102 */ mul.s $f4, $f6, $f10 -/* 019F20 80019320 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 019F24 80019324 04810004 */ bgez $a0, .L80019338 -/* 019F28 80019328 468041A0 */ cvt.s.w $f6, $f8 -/* 019F2C 8001932C 44815000 */ mtc1 $at, $f10 -/* 019F30 80019330 00000000 */ nop -/* 019F34 80019334 460A3180 */ add.s $f6, $f6, $f10 -.L80019338: -/* 019F38 80019338 00000000 */ nop -/* 019F3C 8001933C 46062203 */ div.s $f8, $f4, $f6 -/* 019F40 80019340 444BF800 */ cfc1 $t3, $31 -/* 019F44 80019344 00000000 */ nop -/* 019F48 80019348 35610003 */ ori $at, $t3, 3 -/* 019F4C 8001934C 38210002 */ xori $at, $at, 2 -/* 019F50 80019350 44C1F800 */ ctc1 $at, $31 -/* 019F54 80019354 00000000 */ nop -/* 019F58 80019358 460042A4 */ cvt.w.s $f10, $f8 -/* 019F5C 8001935C 44055000 */ mfc1 $a1, $f10 -/* 019F60 80019360 44CBF800 */ ctc1 $t3, $31 -/* 019F64 80019364 28A100FE */ slti $at, $a1, 0xfe -/* 019F68 80019368 10200003 */ beqz $at, .L80019378 -/* 019F6C 8001936C 00000000 */ nop -/* 019F70 80019370 10000002 */ b .L8001937C -/* 019F74 80019374 A0650001 */ sb $a1, 1($v1) -.L80019378: -/* 019F78 80019378 A0780001 */ sb $t8, 1($v1) -.L8001937C: -/* 019F7C 8001937C 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 019F80 80019380 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 019F84 80019384 2413FFFF */ li $s3, -1 -.L80019388: -/* 019F88 80019388 806E0000 */ lb $t6, ($v1) -/* 019F8C 8001938C 00717821 */ addu $t7, $v1, $s1 -/* 019F90 80019390 81E20030 */ lb $v0, 0x30($t7) -/* 019F94 80019394 166E0003 */ bne $s3, $t6, .L800193A4 -/* 019F98 80019398 0002C883 */ sra $t9, $v0, 2 -/* 019F9C 8001939C 00194600 */ sll $t0, $t9, 0x18 -/* 019FA0 800193A0 00081603 */ sra $v0, $t0, 0x18 -.L800193A4: -/* 019FA4 800193A4 304A0003 */ andi $t2, $v0, 3 -/* 019FA8 800193A8 000A6E00 */ sll $t5, $t2, 0x18 -/* 019FAC 800193AC 000D6603 */ sra $t4, $t5, 0x18 -/* 019FB0 800193B0 11800012 */ beqz $t4, .L800193FC -/* 019FB4 800193B4 00000000 */ nop -/* 019FB8 800193B8 11950007 */ beq $t4, $s5, .L800193D8 -/* 019FBC 800193BC 323000FF */ andi $s0, $s1, 0xff -/* 019FC0 800193C0 11960028 */ beq $t4, $s6, .L80019464 -/* 019FC4 800193C4 00000000 */ nop -/* 019FC8 800193C8 11940012 */ beq $t4, $s4, .L80019414 -/* 019FCC 800193CC 00000000 */ nop -/* 019FD0 800193D0 1000003A */ b .L800194BC -/* 019FD4 800193D4 26310001 */ addiu $s1, $s1, 1 -.L800193D8: -/* 019FD8 800193D8 0C00045C */ jal func_80001170 -/* 019FDC 800193DC 320400FF */ andi $a0, $s0, 0xff -/* 019FE0 800193E0 320400FF */ andi $a0, $s0, 0xff -/* 019FE4 800193E4 0C00049A */ jal func_80001268 -/* 019FE8 800193E8 2405007F */ li $a1, 127 -/* 019FEC 800193EC 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 019FF0 800193F0 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 019FF4 800193F4 10000031 */ b .L800194BC -/* 019FF8 800193F8 26310001 */ addiu $s1, $s1, 1 -.L800193FC: -/* 019FFC 800193FC 0C000445 */ jal func_80001114 -/* 01A000 80019400 322400FF */ andi $a0, $s1, 0xff -/* 01A004 80019404 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 01A008 80019408 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 01A00C 8001940C 1000002B */ b .L800194BC -/* 01A010 80019410 26310001 */ addiu $s1, $s1, 1 -.L80019414: -/* 01A014 80019414 90620001 */ lbu $v0, 1($v1) -/* 01A018 80019418 323000FF */ andi $s0, $s1, 0xff -/* 01A01C 8001941C 28410080 */ slti $at, $v0, 0x80 -/* 01A020 80019420 1420000C */ bnez $at, .L80019454 -/* 01A024 80019424 2452FF81 */ addiu $s2, $v0, -0x7f -/* 01A028 80019428 324B00FF */ andi $t3, $s2, 0xff -/* 01A02C 8001942C 01609025 */ move $s2, $t3 -/* 01A030 80019430 0C00045C */ jal func_80001170 -/* 01A034 80019434 320400FF */ andi $a0, $s0, 0xff -/* 01A038 80019438 0C0004AA */ jal func_800012A8 -/* 01A03C 8001943C 320400FF */ andi $a0, $s0, 0xff -/* 01A040 80019440 0052082A */ slt $at, $v0, $s2 -/* 01A044 80019444 10200003 */ beqz $at, .L80019454 -/* 01A048 80019448 320400FF */ andi $a0, $s0, 0xff -/* 01A04C 8001944C 0C00049A */ jal func_80001268 -/* 01A050 80019450 324500FF */ andi $a1, $s2, 0xff -.L80019454: -/* 01A054 80019454 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 01A058 80019458 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 01A05C 8001945C 10000017 */ b .L800194BC -/* 01A060 80019460 26310001 */ addiu $s1, $s1, 1 -.L80019464: -/* 01A064 80019464 90620001 */ lbu $v0, 1($v1) -/* 01A068 80019468 323000FF */ andi $s0, $s1, 0xff -/* 01A06C 8001946C 2841007F */ slti $at, $v0, 0x7f -/* 01A070 80019470 1020000C */ beqz $at, .L800194A4 -/* 01A074 80019474 03C29023 */ subu $s2, $fp, $v0 -/* 01A078 80019478 325800FF */ andi $t8, $s2, 0xff -/* 01A07C 8001947C 03009025 */ move $s2, $t8 -/* 01A080 80019480 0C0004AA */ jal func_800012A8 -/* 01A084 80019484 320400FF */ andi $a0, $s0, 0xff -/* 01A088 80019488 0242082A */ slt $at, $s2, $v0 -/* 01A08C 8001948C 10200007 */ beqz $at, .L800194AC -/* 01A090 80019490 320400FF */ andi $a0, $s0, 0xff -/* 01A094 80019494 0C00049A */ jal func_80001268 -/* 01A098 80019498 324500FF */ andi $a1, $s2, 0xff -/* 01A09C 8001949C 10000003 */ b .L800194AC -/* 01A0A0 800194A0 00000000 */ nop -.L800194A4: -/* 01A0A4 800194A4 0C000445 */ jal func_80001114 -/* 01A0A8 800194A8 322400FF */ andi $a0, $s1, 0xff -.L800194AC: -/* 01A0AC 800194AC 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 -/* 01A0B0 800194B0 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) -/* 01A0B4 800194B4 00000000 */ nop -/* 01A0B8 800194B8 26310001 */ addiu $s1, $s1, 1 -.L800194BC: -/* 01A0BC 800194BC 1637FFB2 */ bne $s1, $s7, .L80019388 -/* 01A0C0 800194C0 00000000 */ nop -.L800194C4: -/* 01A0C4 800194C4 906F0001 */ lbu $t7, 1($v1) -/* 01A0C8 800194C8 240100FE */ li $at, 254 -/* 01A0CC 800194CC 15E1000C */ bne $t7, $at, .L80019500 -/* 01A0D0 800194D0 8FBF006C */ lw $ra, 0x6c($sp) -/* 01A0D4 800194D4 0C000646 */ jal func_80001918 -/* 01A0D8 800194D8 00000000 */ nop -/* 01A0DC 800194DC 3C0E8012 */ lui $t6, %hi(D_8011AF60) # $t6, 0x8012 -/* 01A0E0 800194E0 8DCEAF60 */ lw $t6, %lo(D_8011AF60)($t6) -/* 01A0E4 800194E4 3C018012 */ lui $at, %hi(D_8011AF60) # $at, 0x8012 -/* 01A0E8 800194E8 91D90040 */ lbu $t9, 0x40($t6) -/* 01A0EC 800194EC 00000000 */ nop -/* 01A0F0 800194F0 17220003 */ bne $t9, $v0, .L80019500 -/* 01A0F4 800194F4 8FBF006C */ lw $ra, 0x6c($sp) -/* 01A0F8 800194F8 AC20AF60 */ sw $zero, %lo(D_8011AF60)($at) -.L800194FC: -/* 01A0FC 800194FC 8FBF006C */ lw $ra, 0x6c($sp) -.L80019500: -/* 01A100 80019500 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 01A104 80019504 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 01A108 80019508 C7B70020 */ lwc1 $f23, 0x20($sp) -/* 01A10C 8001950C C7B60024 */ lwc1 $f22, 0x24($sp) -/* 01A110 80019510 C7B90028 */ lwc1 $f25, 0x28($sp) -/* 01A114 80019514 C7B8002C */ lwc1 $f24, 0x2c($sp) -/* 01A118 80019518 C7BB0030 */ lwc1 $f27, 0x30($sp) -/* 01A11C 8001951C C7BA0034 */ lwc1 $f26, 0x34($sp) -/* 01A120 80019520 C7BD0038 */ lwc1 $f29, 0x38($sp) -/* 01A124 80019524 C7BC003C */ lwc1 $f28, 0x3c($sp) -/* 01A128 80019528 C7BF0040 */ lwc1 $f31, 0x40($sp) -/* 01A12C 8001952C C7BE0044 */ lwc1 $f30, 0x44($sp) -/* 01A130 80019530 8FB00048 */ lw $s0, 0x48($sp) -/* 01A134 80019534 8FB1004C */ lw $s1, 0x4c($sp) -/* 01A138 80019538 8FB20050 */ lw $s2, 0x50($sp) -/* 01A13C 8001953C 8FB30054 */ lw $s3, 0x54($sp) -/* 01A140 80019540 8FB40058 */ lw $s4, 0x58($sp) -/* 01A144 80019544 8FB5005C */ lw $s5, 0x5c($sp) -/* 01A148 80019548 8FB60060 */ lw $s6, 0x60($sp) -/* 01A14C 8001954C 8FB70064 */ lw $s7, 0x64($sp) -/* 01A150 80019550 8FBE0068 */ lw $fp, 0x68($sp) -/* 01A154 80019554 03E00008 */ jr $ra -/* 01A158 80019558 27BD0100 */ addiu $sp, $sp, 0x100 - +glabel func_80018CE0 +/* 0198E0 80018CE0 27BDFF00 */ addiu $sp, $sp, -0x100 +/* 0198E4 80018CE4 AFBF006C */ sw $ra, 0x6c($sp) +/* 0198E8 80018CE8 AFBE0068 */ sw $fp, 0x68($sp) +/* 0198EC 80018CEC AFB70064 */ sw $s7, 0x64($sp) +/* 0198F0 80018CF0 AFB60060 */ sw $s6, 0x60($sp) +/* 0198F4 80018CF4 AFB5005C */ sw $s5, 0x5c($sp) +/* 0198F8 80018CF8 AFB40058 */ sw $s4, 0x58($sp) +/* 0198FC 80018CFC AFB30054 */ sw $s3, 0x54($sp) +/* 019900 80018D00 AFB20050 */ sw $s2, 0x50($sp) +/* 019904 80018D04 AFB1004C */ sw $s1, 0x4c($sp) +/* 019908 80018D08 AFB00048 */ sw $s0, 0x48($sp) +/* 01990C 80018D0C E7BF0040 */ swc1 $f31, 0x40($sp) +/* 019910 80018D10 E7BE0044 */ swc1 $f30, 0x44($sp) +/* 019914 80018D14 E7BD0038 */ swc1 $f29, 0x38($sp) +/* 019918 80018D18 E7BC003C */ swc1 $f28, 0x3c($sp) +/* 01991C 80018D1C E7BB0030 */ swc1 $f27, 0x30($sp) +/* 019920 80018D20 E7BA0034 */ swc1 $f26, 0x34($sp) +/* 019924 80018D24 E7B90028 */ swc1 $f25, 0x28($sp) +/* 019928 80018D28 E7B8002C */ swc1 $f24, 0x2c($sp) +/* 01992C 80018D2C E7B70020 */ swc1 $f23, 0x20($sp) +/* 019930 80018D30 E7B60024 */ swc1 $f22, 0x24($sp) +/* 019934 80018D34 E7B50018 */ swc1 $f21, 0x18($sp) +/* 019938 80018D38 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 01993C 80018D3C AFA50104 */ sw $a1, 0x104($sp) +/* 019940 80018D40 AFA60108 */ sw $a2, 0x108($sp) +/* 019944 80018D44 AFA7010C */ sw $a3, 0x10c($sp) +/* 019948 80018D48 8C820064 */ lw $v0, 0x64($a0) +/* 01994C 80018D4C 0080A025 */ move $s4, $a0 +/* 019950 80018D50 844B0000 */ lh $t3, ($v0) +/* 019954 80018D54 00000000 */ nop +/* 019958 80018D58 156001E9 */ bnez $t3, .L80019500 +/* 01995C 80018D5C 8FBF006C */ lw $ra, 0x6c($sp) +/* 019960 80018D60 0C019884 */ jal get_viewport_count +/* 019964 80018D64 00000000 */ nop +/* 019968 80018D68 144001E4 */ bnez $v0, .L800194FC +/* 01996C 80018D6C 3C0C8012 */ lui $t4, %hi(gObjectListStart) # $t4, 0x8012 +/* 019970 80018D70 8D8CAE60 */ lw $t4, %lo(gObjectListStart)($t4) +/* 019974 80018D74 3C0D8012 */ lui $t5, %hi(gObjectCount) # $t5, 0x8012 +/* 019978 80018D78 8DADAE5C */ lw $t5, %lo(gObjectCount)($t5) +/* 01997C 80018D7C AFAC00F4 */ sw $t4, 0xf4($sp) +/* 019980 80018D80 018D082A */ slt $at, $t4, $t5 +/* 019984 80018D84 10200135 */ beqz $at, .L8001925C +/* 019988 80018D88 000CC080 */ sll $t8, $t4, 2 +/* 01998C 80018D8C AFB80098 */ sw $t8, 0x98($sp) +/* 019990 80018D90 241E007F */ li $fp, 127 +/* 019994 80018D94 24170010 */ li $s7, 16 +/* 019998 80018D98 24160002 */ li $s6, 2 +/* 01999C 80018D9C 24150001 */ li $s5, 1 +.L80018DA0: +/* 0199A0 80018DA0 3C0F8012 */ lui $t7, %hi(gObjPtrList) # $t7, 0x8012 +/* 0199A4 80018DA4 8DEFAE58 */ lw $t7, %lo(gObjPtrList)($t7) +/* 0199A8 80018DA8 8FAE0098 */ lw $t6, 0x98($sp) +/* 0199AC 80018DAC 00000000 */ nop +/* 0199B0 80018DB0 01EEC821 */ addu $t9, $t7, $t6 +/* 0199B4 80018DB4 8F300000 */ lw $s0, ($t9) +/* 0199B8 80018DB8 00000000 */ nop +/* 0199BC 80018DBC 86080006 */ lh $t0, 6($s0) +/* 0199C0 80018DC0 00000000 */ nop +/* 0199C4 80018DC4 31098000 */ andi $t1, $t0, 0x8000 +/* 0199C8 80018DC8 1520011B */ bnez $t1, .L80019238 +/* 0199CC 80018DCC 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 0199D0 80018DD0 86020048 */ lh $v0, 0x48($s0) +/* 0199D4 80018DD4 24010070 */ li $at, 112 +/* 0199D8 80018DD8 14410070 */ bne $v0, $at, .L80018F9C +/* 0199DC 80018DDC 24010047 */ li $at, 71 +/* 0199E0 80018DE0 C686000C */ lwc1 $f6, 0xc($s4) +/* 0199E4 80018DE4 C604000C */ lwc1 $f4, 0xc($s0) +/* 0199E8 80018DE8 C68A0010 */ lwc1 $f10, 0x10($s4) +/* 0199EC 80018DEC C6080010 */ lwc1 $f8, 0x10($s0) +/* 0199F0 80018DF0 46043001 */ sub.s $f0, $f6, $f4 +/* 0199F4 80018DF4 C6040014 */ lwc1 $f4, 0x14($s0) +/* 0199F8 80018DF8 46085081 */ sub.s $f2, $f10, $f8 +/* 0199FC 80018DFC C6860014 */ lwc1 $f6, 0x14($s4) +/* 019A00 80018E00 46000282 */ mul.s $f10, $f0, $f0 +/* 019A04 80018E04 46043381 */ sub.s $f14, $f6, $f4 +/* 019A08 80018E08 46021202 */ mul.s $f8, $f2, $f2 +/* 019A0C 80018E0C 00000000 */ nop +/* 019A10 80018E10 460E7102 */ mul.s $f4, $f14, $f14 +/* 019A14 80018E14 46085180 */ add.s $f6, $f10, $f8 +/* 019A18 80018E18 0C0326B4 */ jal sqrtf +/* 019A1C 80018E1C 46043300 */ add.s $f12, $f6, $f4 +/* 019A20 80018E20 8E030064 */ lw $v1, 0x64($s0) +/* 019A24 80018E24 46000086 */ mov.s $f2, $f0 +/* 019A28 80018E28 946A0002 */ lhu $t2, 2($v1) +/* 019A2C 80018E2C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 019A30 80018E30 448A5000 */ mtc1 $t2, $f10 +/* 019A34 80018E34 05410004 */ bgez $t2, .L80018E48 +/* 019A38 80018E38 46805220 */ cvt.s.w $f8, $f10 +/* 019A3C 80018E3C 44813000 */ mtc1 $at, $f6 +/* 019A40 80018E40 00000000 */ nop +/* 019A44 80018E44 46064200 */ add.s $f8, $f8, $f6 +.L80018E48: +/* 019A48 80018E48 4608003C */ c.lt.s $f0, $f8 +/* 019A4C 80018E4C 00000000 */ nop +/* 019A50 80018E50 450000F9 */ bc1f .L80019238 +/* 019A54 80018E54 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019A58 80018E58 AFA300BC */ sw $v1, 0xbc($sp) +/* 019A5C 80018E5C 0C000646 */ jal music_current_sequence +/* 019A60 80018E60 E7A200C0 */ swc1 $f2, 0xc0($sp) +/* 019A64 80018E64 8FA300BC */ lw $v1, 0xbc($sp) +/* 019A68 80018E68 C7A200C0 */ lwc1 $f2, 0xc0($sp) +/* 019A6C 80018E6C 906B001C */ lbu $t3, 0x1c($v1) +/* 019A70 80018E70 00008825 */ move $s1, $zero +/* 019A74 80018E74 156200EF */ bne $t3, $v0, .L80019234 +/* 019A78 80018E78 00609825 */ move $s3, $v1 +/* 019A7C 80018E7C 94620000 */ lhu $v0, ($v1) +/* 019A80 80018E80 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 019A84 80018E84 44822000 */ mtc1 $v0, $f4 +/* 019A88 80018E88 04410004 */ bgez $v0, .L80018E9C +/* 019A8C 80018E8C 46802320 */ cvt.s.w $f12, $f4 +/* 019A90 80018E90 44815000 */ mtc1 $at, $f10 +/* 019A94 80018E94 00000000 */ nop +/* 019A98 80018E98 460A6300 */ add.s $f12, $f12, $f10 +.L80018E9C: +/* 019A9C 80018E9C 460C103E */ c.le.s $f2, $f12 +/* 019AA0 80018EA0 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 019AA4 80018EA4 45000003 */ bc1f .L80018EB4 +/* 019AA8 80018EA8 00000000 */ nop +/* 019AAC 80018EAC 10000014 */ b .L80018F00 +/* 019AB0 80018EB0 00009025 */ move $s2, $zero +.L80018EB4: +/* 019AB4 80018EB4 946D0002 */ lhu $t5, 2($v1) +/* 019AB8 80018EB8 460C1081 */ sub.s $f2, $f2, $f12 +/* 019ABC 80018EBC 44814000 */ mtc1 $at, $f8 +/* 019AC0 80018EC0 01A26023 */ subu $t4, $t5, $v0 +/* 019AC4 80018EC4 448C3000 */ mtc1 $t4, $f6 +/* 019AC8 80018EC8 46024102 */ mul.s $f4, $f8, $f2 +/* 019ACC 80018ECC 46803020 */ cvt.s.w $f0, $f6 +/* 019AD0 80018ED0 00000000 */ nop +/* 019AD4 80018ED4 46002283 */ div.s $f10, $f4, $f0 +/* 019AD8 80018ED8 4458F800 */ cfc1 $t8, $31 +/* 019ADC 80018EDC 00000000 */ nop +/* 019AE0 80018EE0 37010003 */ ori $at, $t8, 3 +/* 019AE4 80018EE4 38210002 */ xori $at, $at, 2 +/* 019AE8 80018EE8 44C1F800 */ ctc1 $at, $31 +/* 019AEC 80018EEC 00000000 */ nop +/* 019AF0 80018EF0 460051A4 */ cvt.w.s $f6, $f10 +/* 019AF4 80018EF4 44D8F800 */ ctc1 $t8, $31 +/* 019AF8 80018EF8 44123000 */ mfc1 $s2, $f6 +/* 019AFC 80018EFC 00000000 */ nop +.L80018F00: +/* 019B00 80018F00 9262000C */ lbu $v0, 0xc($s3) +/* 019B04 80018F04 2A41007B */ slti $at, $s2, 0x7b +/* 019B08 80018F08 10550005 */ beq $v0, $s5, .L80018F20 +/* 019B0C 80018F0C 00000000 */ nop +/* 019B10 80018F10 10560012 */ beq $v0, $s6, .L80018F5C +/* 019B14 80018F14 323000FF */ andi $s0, $s1, 0xff +/* 019B18 80018F18 1000001B */ b .L80018F88 +/* 019B1C 80018F1C 26310001 */ addiu $s1, $s1, 1 +.L80018F20: +/* 019B20 80018F20 14200005 */ bnez $at, .L80018F38 +/* 019B24 80018F24 323000FF */ andi $s0, $s1, 0xff +/* 019B28 80018F28 0C000445 */ jal music_channel_off +/* 019B2C 80018F2C 322400FF */ andi $a0, $s1, 0xff +/* 019B30 80018F30 10000015 */ b .L80018F88 +/* 019B34 80018F34 26310001 */ addiu $s1, $s1, 1 +.L80018F38: +/* 019B38 80018F38 03D22823 */ subu $a1, $fp, $s2 +/* 019B3C 80018F3C 30AF00FF */ andi $t7, $a1, 0xff +/* 019B40 80018F40 01E02825 */ move $a1, $t7 +/* 019B44 80018F44 0C00049A */ jal music_channel_fade_set +/* 019B48 80018F48 320400FF */ andi $a0, $s0, 0xff +/* 019B4C 80018F4C 0C00045C */ jal music_channel_on +/* 019B50 80018F50 320400FF */ andi $a0, $s0, 0xff +/* 019B54 80018F54 1000000C */ b .L80018F88 +/* 019B58 80018F58 26310001 */ addiu $s1, $s1, 1 +.L80018F5C: +/* 019B5C 80018F5C 0C0004AA */ jal music_channel_fade +/* 019B60 80018F60 320400FF */ andi $a0, $s0, 0xff +/* 019B64 80018F64 18400007 */ blez $v0, .L80018F84 +/* 019B68 80018F68 00000000 */ nop +/* 019B6C 80018F6C 0C000453 */ jal music_channel_active +/* 019B70 80018F70 02202025 */ move $a0, $s1 +/* 019B74 80018F74 14400003 */ bnez $v0, .L80018F84 +/* 019B78 80018F78 320400FF */ andi $a0, $s0, 0xff +/* 019B7C 80018F7C 0C00049A */ jal music_channel_fade_set +/* 019B80 80018F80 324500FF */ andi $a1, $s2, 0xff +.L80018F84: +/* 019B84 80018F84 26310001 */ addiu $s1, $s1, 1 +.L80018F88: +/* 019B88 80018F88 1637FFDD */ bne $s1, $s7, .L80018F00 +/* 019B8C 80018F8C 26730001 */ addiu $s3, $s3, 1 +/* 019B90 80018F90 100000A9 */ b .L80019238 +/* 019B94 80018F94 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019B98 80018F98 24010047 */ li $at, 71 +.L80018F9C: +/* 019B9C 80018F9C 14410079 */ bne $v0, $at, .L80019184 +/* 019BA0 80018FA0 24010076 */ li $at, 118 +/* 019BA4 80018FA4 8E020064 */ lw $v0, 0x64($s0) +/* 019BA8 80018FA8 C7A80108 */ lwc1 $f8, 0x108($sp) +/* 019BAC 80018FAC C450000C */ lwc1 $f16, 0xc($v0) +/* 019BB0 80018FB0 C7A4010C */ lwc1 $f4, 0x10c($sp) +/* 019BB4 80018FB4 46088782 */ mul.s $f30, $f16, $f8 +/* 019BB8 80018FB8 C4520010 */ lwc1 $f18, 0x10($v0) +/* 019BBC 80018FBC C7AA0104 */ lwc1 $f10, 0x104($sp) +/* 019BC0 80018FC0 C44C0008 */ lwc1 $f12, 8($v0) +/* 019BC4 80018FC4 46049382 */ mul.s $f14, $f18, $f4 +/* 019BC8 80018FC8 C698000C */ lwc1 $f24, 0xc($s4) +/* 019BCC 80018FCC C69A0010 */ lwc1 $f26, 0x10($s4) +/* 019BD0 80018FD0 C4540014 */ lwc1 $f20, 0x14($v0) +/* 019BD4 80018FD4 460A6182 */ mul.s $f6, $f12, $f10 +/* 019BD8 80018FD8 C69C0014 */ lwc1 $f28, 0x14($s4) +/* 019BDC 80018FDC E7AE0078 */ swc1 $f14, 0x78($sp) +/* 019BE0 80018FE0 46186282 */ mul.s $f10, $f12, $f24 +/* 019BE4 80018FE4 461E3200 */ add.s $f8, $f6, $f30 +/* 019BE8 80018FE8 461A8182 */ mul.s $f6, $f16, $f26 +/* 019BEC 80018FEC 460E4100 */ add.s $f4, $f8, $f14 +/* 019BF0 80018FF0 46142000 */ add.s $f0, $f4, $f20 +/* 019BF4 80018FF4 461C9102 */ mul.s $f4, $f18, $f28 +/* 019BF8 80018FF8 46065200 */ add.s $f8, $f10, $f6 +/* 019BFC 80018FFC 44803000 */ mtc1 $zero, $f6 +/* 019C00 80019000 00000000 */ nop +/* 019C04 80019004 4600303C */ c.lt.s $f6, $f0 +/* 019C08 80019008 46044280 */ add.s $f10, $f8, $f4 +/* 019C0C 8001900C 45000009 */ bc1f .L80019034 +/* 019C10 80019010 46145080 */ add.s $f2, $f10, $f20 +/* 019C14 80019014 44804000 */ mtc1 $zero, $f8 +/* 019C18 80019018 00151E00 */ sll $v1, $s5, 0x18 +/* 019C1C 8001901C 4608103E */ c.le.s $f2, $f8 +/* 019C20 80019020 00037603 */ sra $t6, $v1, 0x18 +/* 019C24 80019024 45000003 */ bc1f .L80019034 +/* 019C28 80019028 00000000 */ nop +/* 019C2C 8001902C 1000000F */ b .L8001906C +/* 019C30 80019030 01C01825 */ move $v1, $t6 +.L80019034: +/* 019C34 80019034 44802000 */ mtc1 $zero, $f4 +/* 019C38 80019038 00001825 */ move $v1, $zero +/* 019C3C 8001903C 4602203C */ c.lt.s $f4, $f2 +/* 019C40 80019040 00000000 */ nop +/* 019C44 80019044 45000009 */ bc1f .L8001906C +/* 019C48 80019048 00000000 */ nop +/* 019C4C 8001904C 44805000 */ mtc1 $zero, $f10 +/* 019C50 80019050 00000000 */ nop +/* 019C54 80019054 460A003E */ c.le.s $f0, $f10 +/* 019C58 80019058 00000000 */ nop +/* 019C5C 8001905C 45000003 */ bc1f .L8001906C +/* 019C60 80019060 00000000 */ nop +/* 019C64 80019064 10000001 */ b .L8001906C +/* 019C68 80019068 2403FFFF */ li $v1, -1 +.L8001906C: +/* 019C6C 8001906C 10600072 */ beqz $v1, .L80019238 +/* 019C70 80019070 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019C74 80019074 C7A60104 */ lwc1 $f6, 0x104($sp) +/* 019C78 80019078 46006287 */ neg.s $f10, $f12 +/* 019C7C 8001907C 46065282 */ mul.s $f10, $f10, $f6 +/* 019C80 80019080 C7A80108 */ lwc1 $f8, 0x108($sp) +/* 019C84 80019084 C7A4010C */ lwc1 $f4, 0x10c($sp) +/* 019C88 80019088 E7A80070 */ swc1 $f8, 0x70($sp) +/* 019C8C 8001908C 4608D081 */ sub.s $f2, $f26, $f8 +/* 019C90 80019090 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 019C94 80019094 461E5281 */ sub.s $f10, $f10, $f30 +/* 019C98 80019098 E7A40074 */ swc1 $f4, 0x74($sp) +/* 019C9C 8001909C 46085281 */ sub.s $f10, $f10, $f8 +/* 019CA0 800190A0 4606C001 */ sub.s $f0, $f24, $f6 +/* 019CA4 800190A4 46145201 */ sub.s $f8, $f10, $f20 +/* 019CA8 800190A8 46006282 */ mul.s $f10, $f12, $f0 +/* 019CAC 800190AC 4604E381 */ sub.s $f14, $f28, $f4 +/* 019CB0 800190B0 46028102 */ mul.s $f4, $f16, $f2 +/* 019CB4 800190B4 46045280 */ add.s $f10, $f10, $f4 +/* 019CB8 800190B8 460E9102 */ mul.s $f4, $f18, $f14 +/* 019CBC 800190BC 46045280 */ add.s $f10, $f10, $f4 +/* 019CC0 800190C0 00000000 */ nop +/* 019CC4 800190C4 460A4583 */ div.s $f22, $f8, $f10 +/* 019CC8 800190C8 C4480018 */ lwc1 $f8, 0x18($v0) +/* 019CCC 800190CC 4600B102 */ mul.s $f4, $f22, $f0 +/* 019CD0 800190D0 46062300 */ add.s $f12, $f4, $f6 +/* 019CD4 800190D4 460C403E */ c.le.s $f8, $f12 +/* 019CD8 800190D8 00000000 */ nop +/* 019CDC 800190DC 45000056 */ bc1f .L80019238 +/* 019CE0 800190E0 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019CE4 800190E4 C44A0024 */ lwc1 $f10, 0x24($v0) +/* 019CE8 800190E8 00000000 */ nop +/* 019CEC 800190EC 460A603E */ c.le.s $f12, $f10 +/* 019CF0 800190F0 00000000 */ nop +/* 019CF4 800190F4 45000050 */ bc1f .L80019238 +/* 019CF8 800190F8 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019CFC 800190FC 4602B102 */ mul.s $f4, $f22, $f2 +/* 019D00 80019100 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 019D04 80019104 C448001C */ lwc1 $f8, 0x1c($v0) +/* 019D08 80019108 46062000 */ add.s $f0, $f4, $f6 +/* 019D0C 8001910C 4600403E */ c.le.s $f8, $f0 +/* 019D10 80019110 00000000 */ nop +/* 019D14 80019114 45000048 */ bc1f .L80019238 +/* 019D18 80019118 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019D1C 8001911C C44A0028 */ lwc1 $f10, 0x28($v0) +/* 019D20 80019120 00000000 */ nop +/* 019D24 80019124 460A003E */ c.le.s $f0, $f10 +/* 019D28 80019128 00000000 */ nop +/* 019D2C 8001912C 45000042 */ bc1f .L80019238 +/* 019D30 80019130 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019D34 80019134 460EB102 */ mul.s $f4, $f22, $f14 +/* 019D38 80019138 C7A60074 */ lwc1 $f6, 0x74($sp) +/* 019D3C 8001913C C4480020 */ lwc1 $f8, 0x20($v0) +/* 019D40 80019140 46062000 */ add.s $f0, $f4, $f6 +/* 019D44 80019144 4600403E */ c.le.s $f8, $f0 +/* 019D48 80019148 00000000 */ nop +/* 019D4C 8001914C 4500003A */ bc1f .L80019238 +/* 019D50 80019150 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019D54 80019154 C44A002C */ lwc1 $f10, 0x2c($v0) +/* 019D58 80019158 3C018012 */ lui $at, %hi(D_8011AF60) # $at, 0x8012 +/* 019D5C 8001915C 460A003E */ c.le.s $f0, $f10 +/* 019D60 80019160 00000000 */ nop +/* 019D64 80019164 45000034 */ bc1f .L80019238 +/* 019D68 80019168 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019D6C 8001916C A0430000 */ sb $v1, ($v0) +/* 019D70 80019170 A0400001 */ sb $zero, 1($v0) +/* 019D74 80019174 A4400004 */ sh $zero, 4($v0) +/* 019D78 80019178 1000002E */ b .L80019234 +/* 019D7C 8001917C AC22AF60 */ sw $v0, %lo(D_8011AF60)($at) +/* 019D80 80019180 24010076 */ li $at, 118 +.L80019184: +/* 019D84 80019184 1441002C */ bne $v0, $at, .L80019238 +/* 019D88 80019188 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019D8C 8001918C C684000C */ lwc1 $f4, 0xc($s4) +/* 019D90 80019190 C606000C */ lwc1 $f6, 0xc($s0) +/* 019D94 80019194 C6880010 */ lwc1 $f8, 0x10($s4) +/* 019D98 80019198 C60A0010 */ lwc1 $f10, 0x10($s0) +/* 019D9C 8001919C 46062001 */ sub.s $f0, $f4, $f6 +/* 019DA0 800191A0 C6060014 */ lwc1 $f6, 0x14($s0) +/* 019DA4 800191A4 460A4081 */ sub.s $f2, $f8, $f10 +/* 019DA8 800191A8 C6840014 */ lwc1 $f4, 0x14($s4) +/* 019DAC 800191AC 46000202 */ mul.s $f8, $f0, $f0 +/* 019DB0 800191B0 46062381 */ sub.s $f14, $f4, $f6 +/* 019DB4 800191B4 8E110064 */ lw $s1, 0x64($s0) +/* 019DB8 800191B8 46021282 */ mul.s $f10, $f2, $f2 +/* 019DBC 800191BC 00000000 */ nop +/* 019DC0 800191C0 460E7182 */ mul.s $f6, $f14, $f14 +/* 019DC4 800191C4 460A4100 */ add.s $f4, $f8, $f10 +/* 019DC8 800191C8 0C0326B4 */ jal sqrtf +/* 019DCC 800191CC 46062300 */ add.s $f12, $f4, $f6 +/* 019DD0 800191D0 92220002 */ lbu $v0, 2($s1) +/* 019DD4 800191D4 00000000 */ nop +/* 019DD8 800191D8 0002C880 */ sll $t9, $v0, 2 +/* 019DDC 800191DC 44994000 */ mtc1 $t9, $f8 +/* 019DE0 800191E0 00000000 */ nop +/* 019DE4 800191E4 468042A0 */ cvt.s.w $f10, $f8 +/* 019DE8 800191E8 460A003C */ c.lt.s $f0, $f10 +/* 019DEC 800191EC 00000000 */ nop +/* 019DF0 800191F0 45000011 */ bc1f .L80019238 +/* 019DF4 800191F4 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019DF8 800191F8 0C000417 */ jal music_channel_get_mask +/* 019DFC 800191FC 00000000 */ nop +/* 019E00 80019200 96280000 */ lhu $t0, ($s1) +/* 019E04 80019204 00000000 */ nop +/* 019E08 80019208 1102000B */ beq $t0, $v0, .L80019238 +/* 019E0C 8001920C 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019E10 80019210 0C000646 */ jal music_current_sequence +/* 019E14 80019214 00000000 */ nop +/* 019E18 80019218 92290003 */ lbu $t1, 3($s1) +/* 019E1C 8001921C 00000000 */ nop +/* 019E20 80019220 15220005 */ bne $t1, $v0, .L80019238 +/* 019E24 80019224 8FAA00F4 */ lw $t2, 0xf4($sp) +/* 019E28 80019228 96240000 */ lhu $a0, ($s1) +/* 019E2C 8001922C 0C00041D */ jal music_dynamic_set +/* 019E30 80019230 00000000 */ nop +.L80019234: +/* 019E34 80019234 8FAA00F4 */ lw $t2, 0xf4($sp) +.L80019238: +/* 019E38 80019238 3C188012 */ lui $t8, %hi(gObjectCount) # $t8, 0x8012 +/* 019E3C 8001923C 8F18AE5C */ lw $t8, %lo(gObjectCount)($t8) +/* 019E40 80019240 8FAD0098 */ lw $t5, 0x98($sp) +/* 019E44 80019244 254B0001 */ addiu $t3, $t2, 1 +/* 019E48 80019248 0178082A */ slt $at, $t3, $t8 +/* 019E4C 8001924C 25AC0004 */ addiu $t4, $t5, 4 +/* 019E50 80019250 AFAC0098 */ sw $t4, 0x98($sp) +/* 019E54 80019254 1420FED2 */ bnez $at, .L80018DA0 +/* 019E58 80019258 AFAB00F4 */ sw $t3, 0xf4($sp) +.L8001925C: +/* 019E5C 8001925C 3C0F8012 */ lui $t7, %hi(D_8011AF60) # $t7, 0x8012 +/* 019E60 80019260 8DEFAF60 */ lw $t7, %lo(D_8011AF60)($t7) +/* 019E64 80019264 24150001 */ li $s5, 1 +/* 019E68 80019268 24160002 */ li $s6, 2 +/* 019E6C 8001926C 24170010 */ li $s7, 16 +/* 019E70 80019270 11E000A2 */ beqz $t7, .L800194FC +/* 019E74 80019274 241E007F */ li $fp, 127 +/* 019E78 80019278 0C000646 */ jal music_current_sequence +/* 019E7C 8001927C 00000000 */ nop +/* 019E80 80019280 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 019E84 80019284 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 019E88 80019288 8FA80110 */ lw $t0, 0x110($sp) +/* 019E8C 8001928C 906E0040 */ lbu $t6, 0x40($v1) +/* 019E90 80019290 00008825 */ move $s1, $zero +/* 019E94 80019294 15C2008B */ bne $t6, $v0, .L800194C4 +/* 019E98 80019298 24140003 */ li $s4, 3 +/* 019E9C 8001929C 94790004 */ lhu $t9, 4($v1) +/* 019EA0 800192A0 3C0D8012 */ lui $t5, %hi(gVideoRefreshRate) # $t5, 0x8012 +/* 019EA4 800192A4 03284821 */ addu $t1, $t9, $t0 +/* 019EA8 800192A8 A4690004 */ sh $t1, 4($v1) +/* 019EAC 800192AC 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 019EB0 800192B0 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 019EB4 800192B4 8DAD6170 */ lw $t5, %lo(gVideoRefreshRate)($t5) +/* 019EB8 800192B8 906A0002 */ lbu $t2, 2($v1) +/* 019EBC 800192BC 94620004 */ lhu $v0, 4($v1) +/* 019EC0 800192C0 014D0019 */ multu $t2, $t5 +/* 019EC4 800192C4 241800FE */ li $t8, 254 +/* 019EC8 800192C8 00002012 */ mflo $a0 +/* 019ECC 800192CC 308CFFFF */ andi $t4, $a0, 0xffff +/* 019ED0 800192D0 0182082A */ slt $at, $t4, $v0 +/* 019ED4 800192D4 10200007 */ beqz $at, .L800192F4 +/* 019ED8 800192D8 01802025 */ move $a0, $t4 +/* 019EDC 800192DC A46C0004 */ sh $t4, 4($v1) +/* 019EE0 800192E0 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 019EE4 800192E4 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 019EE8 800192E8 00000000 */ nop +/* 019EEC 800192EC 94620004 */ lhu $v0, 4($v1) +/* 019EF0 800192F0 00000000 */ nop +.L800192F4: +/* 019EF4 800192F4 44822000 */ mtc1 $v0, $f4 +/* 019EF8 800192F8 04410005 */ bgez $v0, .L80019310 +/* 019EFC 800192FC 468021A0 */ cvt.s.w $f6, $f4 +/* 019F00 80019300 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 019F04 80019304 44814000 */ mtc1 $at, $f8 +/* 019F08 80019308 00000000 */ nop +/* 019F0C 8001930C 46083180 */ add.s $f6, $f6, $f8 +.L80019310: +/* 019F10 80019310 3C01437E */ li $at, 0x437E0000 # 254.000000 +/* 019F14 80019314 44815000 */ mtc1 $at, $f10 +/* 019F18 80019318 44844000 */ mtc1 $a0, $f8 +/* 019F1C 8001931C 460A3102 */ mul.s $f4, $f6, $f10 +/* 019F20 80019320 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 019F24 80019324 04810004 */ bgez $a0, .L80019338 +/* 019F28 80019328 468041A0 */ cvt.s.w $f6, $f8 +/* 019F2C 8001932C 44815000 */ mtc1 $at, $f10 +/* 019F30 80019330 00000000 */ nop +/* 019F34 80019334 460A3180 */ add.s $f6, $f6, $f10 +.L80019338: +/* 019F38 80019338 00000000 */ nop +/* 019F3C 8001933C 46062203 */ div.s $f8, $f4, $f6 +/* 019F40 80019340 444BF800 */ cfc1 $t3, $31 +/* 019F44 80019344 00000000 */ nop +/* 019F48 80019348 35610003 */ ori $at, $t3, 3 +/* 019F4C 8001934C 38210002 */ xori $at, $at, 2 +/* 019F50 80019350 44C1F800 */ ctc1 $at, $31 +/* 019F54 80019354 00000000 */ nop +/* 019F58 80019358 460042A4 */ cvt.w.s $f10, $f8 +/* 019F5C 8001935C 44055000 */ mfc1 $a1, $f10 +/* 019F60 80019360 44CBF800 */ ctc1 $t3, $31 +/* 019F64 80019364 28A100FE */ slti $at, $a1, 0xfe +/* 019F68 80019368 10200003 */ beqz $at, .L80019378 +/* 019F6C 8001936C 00000000 */ nop +/* 019F70 80019370 10000002 */ b .L8001937C +/* 019F74 80019374 A0650001 */ sb $a1, 1($v1) +.L80019378: +/* 019F78 80019378 A0780001 */ sb $t8, 1($v1) +.L8001937C: +/* 019F7C 8001937C 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 019F80 80019380 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 019F84 80019384 2413FFFF */ li $s3, -1 +.L80019388: +/* 019F88 80019388 806E0000 */ lb $t6, ($v1) +/* 019F8C 8001938C 00717821 */ addu $t7, $v1, $s1 +/* 019F90 80019390 81E20030 */ lb $v0, 0x30($t7) +/* 019F94 80019394 166E0003 */ bne $s3, $t6, .L800193A4 +/* 019F98 80019398 0002C883 */ sra $t9, $v0, 2 +/* 019F9C 8001939C 00194600 */ sll $t0, $t9, 0x18 +/* 019FA0 800193A0 00081603 */ sra $v0, $t0, 0x18 +.L800193A4: +/* 019FA4 800193A4 304A0003 */ andi $t2, $v0, 3 +/* 019FA8 800193A8 000A6E00 */ sll $t5, $t2, 0x18 +/* 019FAC 800193AC 000D6603 */ sra $t4, $t5, 0x18 +/* 019FB0 800193B0 11800012 */ beqz $t4, .L800193FC +/* 019FB4 800193B4 00000000 */ nop +/* 019FB8 800193B8 11950007 */ beq $t4, $s5, .L800193D8 +/* 019FBC 800193BC 323000FF */ andi $s0, $s1, 0xff +/* 019FC0 800193C0 11960028 */ beq $t4, $s6, .L80019464 +/* 019FC4 800193C4 00000000 */ nop +/* 019FC8 800193C8 11940012 */ beq $t4, $s4, .L80019414 +/* 019FCC 800193CC 00000000 */ nop +/* 019FD0 800193D0 1000003A */ b .L800194BC +/* 019FD4 800193D4 26310001 */ addiu $s1, $s1, 1 +.L800193D8: +/* 019FD8 800193D8 0C00045C */ jal music_channel_on +/* 019FDC 800193DC 320400FF */ andi $a0, $s0, 0xff +/* 019FE0 800193E0 320400FF */ andi $a0, $s0, 0xff +/* 019FE4 800193E4 0C00049A */ jal music_channel_fade_set +/* 019FE8 800193E8 2405007F */ li $a1, 127 +/* 019FEC 800193EC 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 019FF0 800193F0 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 019FF4 800193F4 10000031 */ b .L800194BC +/* 019FF8 800193F8 26310001 */ addiu $s1, $s1, 1 +.L800193FC: +/* 019FFC 800193FC 0C000445 */ jal music_channel_off +/* 01A000 80019400 322400FF */ andi $a0, $s1, 0xff +/* 01A004 80019404 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 01A008 80019408 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 01A00C 8001940C 1000002B */ b .L800194BC +/* 01A010 80019410 26310001 */ addiu $s1, $s1, 1 +.L80019414: +/* 01A014 80019414 90620001 */ lbu $v0, 1($v1) +/* 01A018 80019418 323000FF */ andi $s0, $s1, 0xff +/* 01A01C 8001941C 28410080 */ slti $at, $v0, 0x80 +/* 01A020 80019420 1420000C */ bnez $at, .L80019454 +/* 01A024 80019424 2452FF81 */ addiu $s2, $v0, -0x7f +/* 01A028 80019428 324B00FF */ andi $t3, $s2, 0xff +/* 01A02C 8001942C 01609025 */ move $s2, $t3 +/* 01A030 80019430 0C00045C */ jal music_channel_on +/* 01A034 80019434 320400FF */ andi $a0, $s0, 0xff +/* 01A038 80019438 0C0004AA */ jal music_channel_fade +/* 01A03C 8001943C 320400FF */ andi $a0, $s0, 0xff +/* 01A040 80019440 0052082A */ slt $at, $v0, $s2 +/* 01A044 80019444 10200003 */ beqz $at, .L80019454 +/* 01A048 80019448 320400FF */ andi $a0, $s0, 0xff +/* 01A04C 8001944C 0C00049A */ jal music_channel_fade_set +/* 01A050 80019450 324500FF */ andi $a1, $s2, 0xff +.L80019454: +/* 01A054 80019454 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 01A058 80019458 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 01A05C 8001945C 10000017 */ b .L800194BC +/* 01A060 80019460 26310001 */ addiu $s1, $s1, 1 +.L80019464: +/* 01A064 80019464 90620001 */ lbu $v0, 1($v1) +/* 01A068 80019468 323000FF */ andi $s0, $s1, 0xff +/* 01A06C 8001946C 2841007F */ slti $at, $v0, 0x7f +/* 01A070 80019470 1020000C */ beqz $at, .L800194A4 +/* 01A074 80019474 03C29023 */ subu $s2, $fp, $v0 +/* 01A078 80019478 325800FF */ andi $t8, $s2, 0xff +/* 01A07C 8001947C 03009025 */ move $s2, $t8 +/* 01A080 80019480 0C0004AA */ jal music_channel_fade +/* 01A084 80019484 320400FF */ andi $a0, $s0, 0xff +/* 01A088 80019488 0242082A */ slt $at, $s2, $v0 +/* 01A08C 8001948C 10200007 */ beqz $at, .L800194AC +/* 01A090 80019490 320400FF */ andi $a0, $s0, 0xff +/* 01A094 80019494 0C00049A */ jal music_channel_fade_set +/* 01A098 80019498 324500FF */ andi $a1, $s2, 0xff +/* 01A09C 8001949C 10000003 */ b .L800194AC +/* 01A0A0 800194A0 00000000 */ nop +.L800194A4: +/* 01A0A4 800194A4 0C000445 */ jal music_channel_off +/* 01A0A8 800194A8 322400FF */ andi $a0, $s1, 0xff +.L800194AC: +/* 01A0AC 800194AC 3C038012 */ lui $v1, %hi(D_8011AF60) # $v1, 0x8012 +/* 01A0B0 800194B0 8C63AF60 */ lw $v1, %lo(D_8011AF60)($v1) +/* 01A0B4 800194B4 00000000 */ nop +/* 01A0B8 800194B8 26310001 */ addiu $s1, $s1, 1 +.L800194BC: +/* 01A0BC 800194BC 1637FFB2 */ bne $s1, $s7, .L80019388 +/* 01A0C0 800194C0 00000000 */ nop +.L800194C4: +/* 01A0C4 800194C4 906F0001 */ lbu $t7, 1($v1) +/* 01A0C8 800194C8 240100FE */ li $at, 254 +/* 01A0CC 800194CC 15E1000C */ bne $t7, $at, .L80019500 +/* 01A0D0 800194D0 8FBF006C */ lw $ra, 0x6c($sp) +/* 01A0D4 800194D4 0C000646 */ jal music_current_sequence +/* 01A0D8 800194D8 00000000 */ nop +/* 01A0DC 800194DC 3C0E8012 */ lui $t6, %hi(D_8011AF60) # $t6, 0x8012 +/* 01A0E0 800194E0 8DCEAF60 */ lw $t6, %lo(D_8011AF60)($t6) +/* 01A0E4 800194E4 3C018012 */ lui $at, %hi(D_8011AF60) # $at, 0x8012 +/* 01A0E8 800194E8 91D90040 */ lbu $t9, 0x40($t6) +/* 01A0EC 800194EC 00000000 */ nop +/* 01A0F0 800194F0 17220003 */ bne $t9, $v0, .L80019500 +/* 01A0F4 800194F4 8FBF006C */ lw $ra, 0x6c($sp) +/* 01A0F8 800194F8 AC20AF60 */ sw $zero, %lo(D_8011AF60)($at) +.L800194FC: +/* 01A0FC 800194FC 8FBF006C */ lw $ra, 0x6c($sp) +.L80019500: +/* 01A100 80019500 C7B50018 */ lwc1 $f21, 0x18($sp) +/* 01A104 80019504 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 01A108 80019508 C7B70020 */ lwc1 $f23, 0x20($sp) +/* 01A10C 8001950C C7B60024 */ lwc1 $f22, 0x24($sp) +/* 01A110 80019510 C7B90028 */ lwc1 $f25, 0x28($sp) +/* 01A114 80019514 C7B8002C */ lwc1 $f24, 0x2c($sp) +/* 01A118 80019518 C7BB0030 */ lwc1 $f27, 0x30($sp) +/* 01A11C 8001951C C7BA0034 */ lwc1 $f26, 0x34($sp) +/* 01A120 80019520 C7BD0038 */ lwc1 $f29, 0x38($sp) +/* 01A124 80019524 C7BC003C */ lwc1 $f28, 0x3c($sp) +/* 01A128 80019528 C7BF0040 */ lwc1 $f31, 0x40($sp) +/* 01A12C 8001952C C7BE0044 */ lwc1 $f30, 0x44($sp) +/* 01A130 80019530 8FB00048 */ lw $s0, 0x48($sp) +/* 01A134 80019534 8FB1004C */ lw $s1, 0x4c($sp) +/* 01A138 80019538 8FB20050 */ lw $s2, 0x50($sp) +/* 01A13C 8001953C 8FB30054 */ lw $s3, 0x54($sp) +/* 01A140 80019540 8FB40058 */ lw $s4, 0x58($sp) +/* 01A144 80019544 8FB5005C */ lw $s5, 0x5c($sp) +/* 01A148 80019548 8FB60060 */ lw $s6, 0x60($sp) +/* 01A14C 8001954C 8FB70064 */ lw $s7, 0x64($sp) +/* 01A150 80019550 8FBE0068 */ lw $fp, 0x68($sp) +/* 01A154 80019554 03E00008 */ jr $ra +/* 01A158 80019558 27BD0100 */ addiu $sp, $sp, 0x100 + diff --git a/asm/non_matchings/objects/func_80019808.s b/asm/non_matchings/objects/func_80019808.s index 76b91aa0..4c0bc99c 100644 --- a/asm/non_matchings/objects/func_80019808.s +++ b/asm/non_matchings/objects/func_80019808.s @@ -401,7 +401,7 @@ glabel func_80019808 /* 01A9C4 80019DC4 1420FFED */ bnez $at, .L80019D7C /* 01A9C8 80019DC8 24840004 */ addiu $a0, $a0, 4 .L80019DCC: -/* 01A9CC 80019DCC 0C0002CD */ jal play_music +/* 01A9CC 80019DCC 0C0002CD */ jal music_play /* 01A9D0 80019DD0 30A400FF */ andi $a0, $a1, 0xff /* 01A9D4 80019DD4 24050004 */ li $a1, 4 /* 01A9D8 80019DD8 00001825 */ move $v1, $zero @@ -627,7 +627,7 @@ glabel func_80019808 /* 01ACFC 8001A0FC 00002825 */ move $a1, $zero /* 01AD00 8001A100 AFBF0064 */ sw $ra, 0x64($sp) /* 01AD04 8001A104 AFA80080 */ sw $t0, 0x80($sp) -/* 01AD08 8001A108 0C000741 */ jal play_sound_global +/* 01AD08 8001A108 0C000741 */ jal sound_play /* 01AD0C 8001A10C AFAA0044 */ sw $t2, 0x44($sp) /* 01AD10 8001A110 3C0B8012 */ lui $t3, %hi(gRacers) # $t3, 0x8012 /* 01AD14 8001A114 8FA80080 */ lw $t0, 0x80($sp) diff --git a/asm/non_matchings/objects/func_8001A8F4.s b/asm/non_matchings/objects/func_8001A8F4.s index 37ced3d5..4d23bd8f 100644 --- a/asm/non_matchings/objects/func_8001A8F4.s +++ b/asm/non_matchings/objects/func_8001A8F4.s @@ -110,7 +110,7 @@ glabel func_8001A8F4 /* 01B688 8001AA88 00000000 */ nop /* 01B68C 8001AA8C 0C00FC34 */ jal reset_rocket_sound_timer /* 01B690 8001AA90 00000000 */ nop -/* 01B694 8001AA94 0C001276 */ jal func_800049D8 +/* 01B694 8001AA94 0C001276 */ jal sound_stop_all /* 01B698 8001AA98 00000000 */ nop /* 01B69C 8001AA9C 0C027B20 */ jal is_in_two_player_adventure /* 01B6A0 8001AAA0 00000000 */ nop diff --git a/asm/non_matchings/objects/func_8001F460.s b/asm/non_matchings/objects/func_8001F460.s index ff231d7c..0abffc88 100644 --- a/asm/non_matchings/objects/func_8001F460.s +++ b/asm/non_matchings/objects/func_8001F460.s @@ -140,26 +140,26 @@ glabel func_8001F460 /* 020238 8001F638 2401FFFE */ li $at, -2 /* 02023C 8001F63C 18600010 */ blez $v1, .L8001F680 /* 020240 8001F640 00000000 */ nop -/* 020244 8001F644 0C000646 */ jal func_80001918 +/* 020244 8001F644 0C000646 */ jal music_current_sequence /* 020248 8001F648 00000000 */ nop /* 02024C 8001F64C 82630039 */ lb $v1, 0x39($s3) /* 020250 8001F650 00000000 */ nop /* 020254 8001F654 10620006 */ beq $v1, $v0, .L8001F670 /* 020258 8001F658 2419FFFE */ li $t9, -2 -/* 02025C 8001F65C 0C0002CD */ jal play_music +/* 02025C 8001F65C 0C0002CD */ jal music_play /* 020260 8001F660 306400FF */ andi $a0, $v1, 0xff -/* 020264 8001F664 0C0002C6 */ jal func_80000B18 +/* 020264 8001F664 0C0002C6 */ jal music_change_off /* 020268 8001F668 00000000 */ nop /* 02026C 8001F66C 2419FFFE */ li $t9, -2 .L8001F670: -/* 020270 8001F670 0C00032F */ jal func_80000CBC +/* 020270 8001F670 0C00032F */ jal music_volume_reset /* 020274 8001F674 A2790039 */ sb $t9, 0x39($s3) /* 020278 8001F678 10000008 */ b .L8001F69C /* 02027C 8001F67C 82630038 */ lb $v1, 0x38($s3) .L8001F680: /* 020280 8001F680 14610005 */ bne $v1, $at, .L8001F698 /* 020284 8001F684 00000000 */ nop -/* 020288 8001F688 0C0002CA */ jal func_80000B28 +/* 020288 8001F688 0C0002CA */ jal music_change_on /* 02028C 8001F68C 00000000 */ nop /* 020290 8001F690 240EFFFF */ li $t6, -1 /* 020294 8001F694 A26E0039 */ sb $t6, 0x39($s3) @@ -196,7 +196,7 @@ glabel func_8001F460 /* 020304 8001F704 03001025 */ move $v0, $t8 .L8001F708: /* 020308 8001F708 3044FFFF */ andi $a0, $v0, 0xffff -/* 02030C 8001F70C 0C000741 */ jal play_sound_global +/* 02030C 8001F70C 0C000741 */ jal sound_play /* 020310 8001F710 26650018 */ addiu $a1, $s3, 0x18 .L8001F714: /* 020314 8001F714 A2600038 */ sb $zero, 0x38($s3) @@ -205,7 +205,7 @@ glabel func_8001F460 /* 02031C 8001F71C 00000000 */ nop /* 020320 8001F720 10400004 */ beqz $v0, .L8001F734 /* 020324 8001F724 00000000 */ nop -/* 020328 8001F728 0C000326 */ jal set_music_fade_timer +/* 020328 8001F728 0C000326 */ jal music_fade /* 02032C 8001F72C 00022200 */ sll $a0, $v0, 8 /* 020330 8001F730 A2600043 */ sb $zero, 0x43($s3) .L8001F734: diff --git a/asm/non_matchings/racer/func_80046524.s b/asm/non_matchings/racer/func_80046524.s index 96334391..cf403866 100644 --- a/asm/non_matchings/racer/func_80046524.s +++ b/asm/non_matchings/racer/func_80046524.s @@ -464,7 +464,7 @@ glabel func_80046524 /* 047714 80046B14 8E25000C */ lw $a1, 0xc($s1) /* 047718 80046B18 8E260010 */ lw $a2, 0x10($s1) /* 04771C 80046B1C 8E270014 */ lw $a3, 0x14($s1) -/* 047720 80046B20 0C0007AA */ jal play_sound_spatial +/* 047720 80046B20 0C0007AA */ jal sound_play_spatial /* 047724 80046B24 AFA00010 */ sw $zero, 0x10($sp) /* 047728 80046B28 02202025 */ move $a0, $s1 /* 04772C 80046B2C 24050162 */ li $a1, 354 @@ -1116,7 +1116,7 @@ glabel func_80046524 /* 0480A0 800474A0 2605021C */ addiu $a1, $s0, 0x21c /* 0480A4 800474A4 A3A700AD */ sb $a3, 0xad($sp) /* 0480A8 800474A8 A3A900AF */ sb $t1, 0xaf($sp) -/* 0480AC 800474AC 0C000741 */ jal play_sound_global +/* 0480AC 800474AC 0C000741 */ jal sound_play /* 0480B0 800474B0 E7B20104 */ swc1 $f18, 0x104($sp) /* 0480B4 800474B4 820601E0 */ lb $a2, 0x1e0($s0) /* 0480B8 800474B8 8E05021C */ lw $a1, 0x21c($s0) @@ -1124,7 +1124,7 @@ glabel func_80046524 /* 0480C0 800474C0 27260032 */ addiu $a2, $t9, 0x32 /* 0480C4 800474C4 30CA00FF */ andi $t2, $a2, 0xff /* 0480C8 800474C8 01403025 */ move $a2, $t2 -/* 0480CC 800474CC 0C0007EE */ jal func_80001FB8 +/* 0480CC 800474CC 0C0007EE */ jal sound_volume_set_relative /* 0480D0 800474D0 240400AE */ li $a0, 174 /* 0480D4 800474D4 83A700AD */ lb $a3, 0xad($sp) /* 0480D8 800474D8 83A900AF */ lb $t1, 0xaf($sp) diff --git a/asm/non_matchings/racer/func_80049794.s b/asm/non_matchings/racer/func_80049794.s index 41ceeb3b..a6a99a10 100644 --- a/asm/non_matchings/racer/func_80049794.s +++ b/asm/non_matchings/racer/func_80049794.s @@ -90,7 +90,7 @@ glabel func_80049794 /* 04A41C 8004981C 24040240 */ li $a0, 576 /* 04A420 80049820 17000006 */ bnez $t8, .L8004983C /* 04A424 80049824 00000000 */ nop -/* 04A428 80049828 0C000741 */ jal play_sound_global +/* 04A428 80049828 0C000741 */ jal sound_play /* 04A42C 8004982C 00002825 */ move $a1, $zero /* 04A430 80049830 24190014 */ li $t9, 20 /* 04A434 80049834 44807000 */ mtc1 $zero, $f14 @@ -1147,7 +1147,7 @@ glabel func_80049794 /* 04B384 8004A784 8E260010 */ lw $a2, 0x10($s1) /* 04B388 8004A788 8E270014 */ lw $a3, 0x14($s1) /* 04B38C 8004A78C E7AE00DC */ swc1 $f14, 0xdc($sp) -/* 04B390 8004A790 0C0007AA */ jal play_sound_spatial +/* 04B390 8004A790 0C0007AA */ jal sound_play_spatial /* 04B394 8004A794 AFA00010 */ sw $zero, 0x10($sp) /* 04B398 8004A798 02202025 */ move $a0, $s1 /* 04B39C 8004A79C 24050162 */ li $a1, 354 diff --git a/asm/non_matchings/racer/func_8004F7F4.s b/asm/non_matchings/racer/func_8004F7F4.s index 09317d24..1c6a55fa 100644 --- a/asm/non_matchings/racer/func_8004F7F4.s +++ b/asm/non_matchings/racer/func_8004F7F4.s @@ -522,14 +522,14 @@ glabel func_8004F7F4 /* 050B2C 8004FF2C 8E25000C */ lw $a1, 0xc($s1) /* 050B30 8004FF30 8E260010 */ lw $a2, 0x10($s1) /* 050B34 8004FF34 8E270014 */ lw $a3, 0x14($s1) -/* 050B38 8004FF38 0C0007AA */ jal play_sound_spatial +/* 050B38 8004FF38 0C0007AA */ jal sound_play_spatial /* 050B3C 8004FF3C AFAF0010 */ sw $t7, 0x10($sp) /* 050B40 8004FF40 3C048012 */ lui $a0, %hi(D_8011D550) # $a0, 0x8012 /* 050B44 8004FF44 3C068012 */ lui $a2, %hi(D_8011D553) # $a2, 0x8012 /* 050B48 8004FF48 90C6D553 */ lbu $a2, %lo(D_8011D553)($a2) /* 050B4C 8004FF4C 9484D550 */ lhu $a0, %lo(D_8011D550)($a0) /* 050B50 8004FF50 8E05021C */ lw $a1, 0x21c($s0) -/* 050B54 8004FF54 0C0007EE */ jal func_80001FB8 +/* 050B54 8004FF54 0C0007EE */ jal sound_volume_set_relative /* 050B58 8004FF58 00000000 */ nop .L8004FF5C: /* 050B5C 8004FF5C 3C188012 */ lui $t8, %hi(D_8011D552) # $t8, 0x8012 diff --git a/asm/non_matchings/racer/func_80050A28.s b/asm/non_matchings/racer/func_80050A28.s index 913e6d2a..327fce50 100644 --- a/asm/non_matchings/racer/func_80050A28.s +++ b/asm/non_matchings/racer/func_80050A28.s @@ -573,7 +573,7 @@ glabel func_80050A28 /* 051DBC 800511BC 8D05000C */ lw $a1, 0xc($t0) /* 051DC0 800511C0 8D060010 */ lw $a2, 0x10($t0) /* 051DC4 800511C4 8D070014 */ lw $a3, 0x14($t0) -/* 051DC8 800511C8 0C0007AA */ jal play_sound_spatial +/* 051DC8 800511C8 0C0007AA */ jal sound_play_spatial /* 051DCC 800511CC AFAF0010 */ sw $t7, 0x10($sp) /* 051DD0 800511D0 10000007 */ b .L800511F0 /* 051DD4 800511D4 8E020014 */ lw $v0, 0x14($s0) @@ -1235,7 +1235,7 @@ glabel func_80050A28 /* 052760 80051B60 3124FFFF */ andi $a0, $t1, 0xffff /* 052764 80051B64 45000007 */ bc1f .L80051B84 /* 052768 80051B68 26050018 */ addiu $a1, $s0, 0x18 -/* 05276C 80051B6C 0C000741 */ jal play_sound_global +/* 05276C 80051B6C 0C000741 */ jal sound_play /* 052770 80051B70 AFA90064 */ sw $t1, 0x64($sp) /* 052774 80051B74 8FA90064 */ lw $t1, 0x64($sp) /* 052778 80051B78 8E020018 */ lw $v0, 0x18($s0) diff --git a/asm/non_matchings/racer/func_80054FD0.s b/asm/non_matchings/racer/func_80054FD0.s index f2f4614d..29cb911f 100644 --- a/asm/non_matchings/racer/func_80054FD0.s +++ b/asm/non_matchings/racer/func_80054FD0.s @@ -406,7 +406,7 @@ glabel func_80054FD0 /* 0561CC 800555CC 2404013F */ li $a0, 319 /* 0561D0 800555D0 1DC00006 */ bgtz $t6, .L800555EC /* 0561D4 800555D4 26050020 */ addiu $a1, $s0, 0x20 -/* 0561D8 800555D8 0C000741 */ jal play_sound_global +/* 0561D8 800555D8 0C000741 */ jal sound_play /* 0561DC 800555DC AFA9018C */ sw $t1, 0x18c($sp) /* 0561E0 800555E0 8FA9018C */ lw $t1, 0x18c($sp) /* 0561E4 800555E4 44808000 */ mtc1 $zero, $f16 diff --git a/asm/non_matchings/tracks/func_80028050.s b/asm/non_matchings/tracks/func_80028050.s index b32cbbe2..220c03ae 100644 --- a/asm/non_matchings/tracks/func_80028050.s +++ b/asm/non_matchings/tracks/func_80028050.s @@ -1,612 +1,612 @@ -glabel func_80028050 -/* 028C50 80028050 27BDFEA8 */ addiu $sp, $sp, -0x158 -/* 028C54 80028054 AFB10018 */ sw $s1, 0x18($sp) -/* 028C58 80028058 AFB00014 */ sw $s0, 0x14($sp) -/* 028C5C 8002805C 3C118012 */ lui $s1, %hi(gSceneCurrVertexList) # $s1, 0x8012 -/* 028C60 80028060 3C108012 */ lui $s0, %hi(gSceneCurrTriList) # $s0, 0x8012 -/* 028C64 80028064 AFBF0024 */ sw $ra, 0x24($sp) -/* 028C68 80028068 8E31B0A8 */ lw $s1, %lo(gSceneCurrVertexList)($s1) -/* 028C6C 8002806C 8E10B0AC */ lw $s0, %lo(gSceneCurrTriList)($s0) -/* 028C70 80028070 AFB30020 */ sw $s3, 0x20($sp) -/* 028C74 80028074 0C01A748 */ jal get_active_camera_segment -/* 028C78 80028078 AFB2001C */ sw $s2, 0x1c($sp) -/* 028C7C 8002807C 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e -/* 028C80 80028080 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6) -/* 028C84 80028084 00409025 */ move $s2, $v0 -/* 028C88 80028088 8DC300A4 */ lw $v1, 0xa4($t6) -/* 028C8C 8002808C 00000000 */ nop -/* 028C90 80028090 90780001 */ lbu $t8, 1($v1) -/* 028C94 80028094 90730000 */ lbu $s3, ($v1) -/* 028C98 80028098 0018C940 */ sll $t9, $t8, 5 -/* 028C9C 8002809C 272CFFFF */ addiu $t4, $t9, -1 -/* 028CA0 800280A0 AFAC014C */ sw $t4, 0x14c($sp) -/* 028CA4 800280A4 84440000 */ lh $a0, ($v0) -/* 028CA8 800280A8 00137940 */ sll $t7, $s3, 5 -/* 028CAC 800280AC 00042023 */ negu $a0, $a0 -/* 028CB0 800280B0 00046C00 */ sll $t5, $a0, 0x10 -/* 028CB4 800280B4 25F3FFFF */ addiu $s3, $t7, -1 -/* 028CB8 800280B8 000D2403 */ sra $a0, $t5, 0x10 -/* 028CBC 800280BC 0C01C1F1 */ jal sins_f -/* 028CC0 800280C0 AFA30074 */ sw $v1, 0x74($sp) -/* 028CC4 800280C4 E7A0010C */ swc1 $f0, 0x10c($sp) -/* 028CC8 800280C8 86440000 */ lh $a0, ($s2) -/* 028CCC 800280CC 00000000 */ nop -/* 028CD0 800280D0 00042023 */ negu $a0, $a0 -/* 028CD4 800280D4 00047C00 */ sll $t7, $a0, 0x10 -/* 028CD8 800280D8 0C01C1FE */ jal coss_f -/* 028CDC 800280DC 000F2403 */ sra $a0, $t7, 0x10 -/* 028CE0 800280E0 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 -/* 028CE4 800280E4 44812000 */ mtc1 $at, $f4 -/* 028CE8 800280E8 44814000 */ mtc1 $at, $f8 -/* 028CEC 800280EC 46040302 */ mul.s $f12, $f0, $f4 -/* 028CF0 800280F0 C7A6010C */ lwc1 $f6, 0x10c($sp) -/* 028CF4 800280F4 8FA70074 */ lw $a3, 0x74($sp) -/* 028CF8 800280F8 3C04800E */ lui $a0, %hi(gCurrentLevelHeader2) # $a0, 0x800e -/* 028CFC 800280FC 46083082 */ mul.s $f2, $f6, $f8 -/* 028D00 80028100 46006487 */ neg.s $f18, $f12 -/* 028D04 80028104 8C84C91C */ lw $a0, %lo(gCurrentLevelHeader2)($a0) -/* 028D08 80028108 46029200 */ add.s $f8, $f18, $f2 -/* 028D0C 8002810C 46029281 */ sub.s $f10, $f18, $f2 -/* 028D10 80028110 E7A80030 */ swc1 $f8, 0x30($sp) -/* 028D14 80028114 46026201 */ sub.s $f8, $f12, $f2 -/* 028D18 80028118 E7AA0034 */ swc1 $f10, 0x34($sp) -/* 028D1C 8002811C C7A40034 */ lwc1 $f4, 0x34($sp) -/* 028D20 80028120 E7A8002C */ swc1 $f8, 0x2c($sp) -/* 028D24 80028124 C7A8002C */ lwc1 $f8, 0x2c($sp) -/* 028D28 80028128 E7A400DC */ swc1 $f4, 0xdc($sp) -/* 028D2C 8002812C E7A400BC */ swc1 $f4, 0xbc($sp) -/* 028D30 80028130 C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 028D34 80028134 46026100 */ add.s $f4, $f12, $f2 -/* 028D38 80028138 E7A800E0 */ swc1 $f8, 0xe0($sp) -/* 028D3C 8002813C E7A800C0 */ swc1 $f8, 0xc0($sp) -/* 028D40 80028140 44804000 */ mtc1 $zero, $f8 -/* 028D44 80028144 E7A40034 */ swc1 $f4, 0x34($sp) -/* 028D48 80028148 C7A40034 */ lwc1 $f4, 0x34($sp) -/* 028D4C 8002814C E7AA00B8 */ swc1 $f10, 0xb8($sp) -/* 028D50 80028150 E7AA00E8 */ swc1 $f10, 0xe8($sp) -/* 028D54 80028154 E7A800EC */ swc1 $f8, 0xec($sp) -/* 028D58 80028158 44805000 */ mtc1 $zero, $f10 -/* 028D5C 8002815C 460C6200 */ add.s $f8, $f12, $f12 -/* 028D60 80028160 E7A400E4 */ swc1 $f4, 0xe4($sp) -/* 028D64 80028164 46021400 */ add.s $f16, $f2, $f2 -/* 028D68 80028168 E7A80030 */ swc1 $f8, 0x30($sp) -/* 028D6C 8002816C E7A400C4 */ swc1 $f4, 0xc4($sp) -/* 028D70 80028170 E7AA00C8 */ swc1 $f10, 0xc8($sp) -/* 028D74 80028174 46109101 */ sub.s $f4, $f18, $f16 -/* 028D78 80028178 C7AA0030 */ lwc1 $f10, 0x30($sp) -/* 028D7C 8002817C E7A400F0 */ swc1 $f4, 0xf0($sp) -/* 028D80 80028180 460A1201 */ sub.s $f8, $f2, $f10 -/* 028D84 80028184 46005107 */ neg.s $f4, $f10 -/* 028D88 80028188 E7A800CC */ swc1 $f8, 0xcc($sp) -/* 028D8C 8002818C 46022201 */ sub.s $f8, $f4, $f2 -/* 028D90 80028190 E7A4002C */ swc1 $f4, 0x2c($sp) -/* 028D94 80028194 46106281 */ sub.s $f10, $f12, $f16 -/* 028D98 80028198 C7A40030 */ lwc1 $f4, 0x30($sp) -/* 028D9C 8002819C E7A800D0 */ swc1 $f8, 0xd0($sp) -/* 028DA0 800281A0 46022201 */ sub.s $f8, $f4, $f2 -/* 028DA4 800281A4 E7AA00F4 */ swc1 $f10, 0xf4($sp) -/* 028DA8 800281A8 46106280 */ add.s $f10, $f12, $f16 -/* 028DAC 800281AC C7A40030 */ lwc1 $f4, 0x30($sp) -/* 028DB0 800281B0 E7AA00F8 */ swc1 $f10, 0xf8($sp) -/* 028DB4 800281B4 E7A800D4 */ swc1 $f8, 0xd4($sp) -/* 028DB8 800281B8 46109280 */ add.s $f10, $f18, $f16 -/* 028DBC 800281BC 46022200 */ add.s $f8, $f4, $f2 -/* 028DC0 800281C0 E7AA00FC */ swc1 $f10, 0xfc($sp) -/* 028DC4 800281C4 E7A800D8 */ swc1 $f8, 0xd8($sp) -/* 028DC8 800281C8 90F90000 */ lbu $t9, ($a3) -/* 028DCC 800281CC 908D00A0 */ lbu $t5, 0xa0($a0) -/* 028DD0 800281D0 00196100 */ sll $t4, $t9, 4 -/* 028DD4 800281D4 018D0019 */ multu $t4, $t5 -/* 028DD8 800281D8 44815000 */ mtc1 $at, $f10 -/* 028DDC 800281DC 3C013E80 */ li $at, 0x3E800000 # 0.250000 -/* 028DE0 800281E0 44812000 */ mtc1 $at, $f4 -/* 028DE4 800281E4 90EE0001 */ lbu $t6, 1($a3) -/* 028DE8 800281E8 46045202 */ mul.s $f8, $f10, $f4 -/* 028DEC 800281EC 909800A1 */ lbu $t8, 0xa1($a0) -/* 028DF0 800281F0 000E7900 */ sll $t7, $t6, 4 -/* 028DF4 800281F4 E7A8003C */ swc1 $f8, 0x3c($sp) -/* 028DF8 800281F8 00002812 */ mflo $a1 -/* 028DFC 800281FC 44855000 */ mtc1 $a1, $f10 -/* 028E00 80028200 00000000 */ nop -/* 028E04 80028204 46805120 */ cvt.s.w $f4, $f10 -/* 028E08 80028208 01F80019 */ multu $t7, $t8 -/* 028E0C 8002820C E7A40038 */ swc1 $f4, 0x38($sp) -/* 028E10 80028210 C7AA0038 */ lwc1 $f10, 0x38($sp) -/* 028E14 80028214 848D00A8 */ lh $t5, 0xa8($a0) -/* 028E18 80028218 460A4103 */ div.s $f4, $f8, $f10 -/* 028E1C 8002821C C64A000C */ lwc1 $f10, 0xc($s2) -/* 028E20 80028220 000D7103 */ sra $t6, $t5, 4 -/* 028E24 80028224 00003012 */ mflo $a2 -/* 028E28 80028228 46045282 */ mul.s $f10, $f10, $f4 -/* 028E2C 8002822C 4459F800 */ cfc1 $t9, $31 -/* 028E30 80028230 00000000 */ nop -/* 028E34 80028234 37210003 */ ori $at, $t9, 3 -/* 028E38 80028238 38210002 */ xori $at, $at, 2 -/* 028E3C 8002823C 44C1F800 */ ctc1 $at, $31 -/* 028E40 80028240 00000000 */ nop -/* 028E44 80028244 46005124 */ cvt.w.s $f4, $f10 -/* 028E48 80028248 44865000 */ mtc1 $a2, $f10 -/* 028E4C 8002824C 44D9F800 */ ctc1 $t9, $31 -/* 028E50 80028250 440C2000 */ mfc1 $t4, $f4 -/* 028E54 80028254 46805120 */ cvt.s.w $f4, $f10 -/* 028E58 80028258 018E7821 */ addu $t7, $t4, $t6 -/* 028E5C 8002825C 01F31024 */ and $v0, $t7, $s3 -/* 028E60 80028260 E7A40048 */ swc1 $f4, 0x48($sp) -/* 028E64 80028264 C7AA0048 */ lwc1 $f10, 0x48($sp) -/* 028E68 80028268 848D00AA */ lh $t5, 0xaa($a0) -/* 028E6C 8002826C 460A4103 */ div.s $f4, $f8, $f10 -/* 028E70 80028270 C6480014 */ lwc1 $f8, 0x14($s2) -/* 028E74 80028274 8FAF014C */ lw $t7, 0x14c($sp) -/* 028E78 80028278 000D6103 */ sra $t4, $t5, 4 -/* 028E7C 8002827C A7A20130 */ sh $v0, 0x130($sp) -/* 028E80 80028280 46044282 */ mul.s $f10, $f8, $f4 -/* 028E84 80028284 C7A40038 */ lwc1 $f4, 0x38($sp) -/* 028E88 80028288 4458F800 */ cfc1 $t8, $31 -/* 028E8C 8002828C 00000000 */ nop -/* 028E90 80028290 37010003 */ ori $at, $t8, 3 -/* 028E94 80028294 38210002 */ xori $at, $at, 2 -/* 028E98 80028298 44C1F800 */ ctc1 $at, $31 -/* 028E9C 8002829C 37010003 */ ori $at, $t8, 3 -/* 028EA0 800282A0 46005224 */ cvt.w.s $f8, $f10 -/* 028EA4 800282A4 C7AA0048 */ lwc1 $f10, 0x48($sp) -/* 028EA8 800282A8 44D8F800 */ ctc1 $t8, $31 -/* 028EAC 800282AC 44194000 */ mfc1 $t9, $f8 -/* 028EB0 800282B0 46002382 */ mul.s $f14, $f4, $f0 -/* 028EB4 800282B4 38210002 */ xori $at, $at, 2 -/* 028EB8 800282B8 032C7021 */ addu $t6, $t9, $t4 -/* 028EBC 800282BC 01CF1824 */ and $v1, $t6, $t7 -/* 028EC0 800282C0 46065002 */ mul.s $f0, $f10, $f6 -/* 028EC4 800282C4 46007407 */ neg.s $f16, $f14 -/* 028EC8 800282C8 E7AE00B4 */ swc1 $f14, 0xb4($sp) -/* 028ECC 800282CC E7AE00AC */ swc1 $f14, 0xac($sp) -/* 028ED0 800282D0 46008201 */ sub.s $f8, $f16, $f0 -/* 028ED4 800282D4 A7A3011C */ sh $v1, 0x11c($sp) -/* 028ED8 800282D8 44C1F800 */ ctc1 $at, $31 -/* 028EDC 800282DC 00000000 */ nop -/* 028EE0 800282E0 46004124 */ cvt.w.s $f4, $f8 -/* 028EE4 800282E4 44D8F800 */ ctc1 $t8, $31 -/* 028EE8 800282E8 440C2000 */ mfc1 $t4, $f4 -/* 028EEC 800282EC 460E0281 */ sub.s $f10, $f0, $f14 -/* 028EF0 800282F0 01827021 */ addu $t6, $t4, $v0 -/* 028EF4 800282F4 444FF800 */ cfc1 $t7, $31 -/* 028EF8 800282F8 A7AE0128 */ sh $t6, 0x128($sp) -/* 028EFC 800282FC 35E10003 */ ori $at, $t7, 3 -/* 028F00 80028300 38210002 */ xori $at, $at, 2 -/* 028F04 80028304 44C1F800 */ ctc1 $at, $31 -/* 028F08 80028308 00000000 */ nop -/* 028F0C 8002830C 460051A4 */ cvt.w.s $f6, $f10 -/* 028F10 80028310 44CFF800 */ ctc1 $t7, $31 -/* 028F14 80028314 44043000 */ mfc1 $a0, $f6 -/* 028F18 80028318 46007201 */ sub.s $f8, $f14, $f0 -/* 028F1C 8002831C 0083C821 */ addu $t9, $a0, $v1 -/* 028F20 80028320 444CF800 */ cfc1 $t4, $31 -/* 028F24 80028324 A7B90114 */ sh $t9, 0x114($sp) -/* 028F28 80028328 35810003 */ ori $at, $t4, 3 -/* 028F2C 8002832C 38210002 */ xori $at, $at, 2 -/* 028F30 80028330 44C1F800 */ ctc1 $at, $31 -/* 028F34 80028334 00000000 */ nop -/* 028F38 80028338 46004124 */ cvt.w.s $f4, $f8 -/* 028F3C 8002833C 44CCF800 */ ctc1 $t4, $31 -/* 028F40 80028340 44182000 */ mfc1 $t8, $f4 -/* 028F44 80028344 46008281 */ sub.s $f10, $f16, $f0 -/* 028F48 80028348 03026821 */ addu $t5, $t8, $v0 -/* 028F4C 8002834C 4459F800 */ cfc1 $t9, $31 -/* 028F50 80028350 A7AD012A */ sh $t5, 0x12a($sp) -/* 028F54 80028354 37210003 */ ori $at, $t9, 3 -/* 028F58 80028358 38210002 */ xori $at, $at, 2 -/* 028F5C 8002835C 44C1F800 */ ctc1 $at, $31 -/* 028F60 80028360 00000000 */ nop -/* 028F64 80028364 460051A4 */ cvt.w.s $f6, $f10 -/* 028F68 80028368 44D9F800 */ ctc1 $t9, $31 -/* 028F6C 8002836C 440F3000 */ mfc1 $t7, $f6 -/* 028F70 80028370 46007200 */ add.s $f8, $f14, $f0 -/* 028F74 80028374 01E3C021 */ addu $t8, $t7, $v1 -/* 028F78 80028378 444DF800 */ cfc1 $t5, $31 -/* 028F7C 8002837C A7B80116 */ sh $t8, 0x116($sp) -/* 028F80 80028380 35A10003 */ ori $at, $t5, 3 -/* 028F84 80028384 38210002 */ xori $at, $at, 2 -/* 028F88 80028388 44C1F800 */ ctc1 $at, $31 -/* 028F8C 8002838C 00000000 */ nop -/* 028F90 80028390 46004124 */ cvt.w.s $f4, $f8 -/* 028F94 80028394 44CDF800 */ ctc1 $t5, $31 -/* 028F98 80028398 44052000 */ mfc1 $a1, $f4 -/* 028F9C 8002839C 46007281 */ sub.s $f10, $f14, $f0 -/* 028FA0 800283A0 00A27021 */ addu $t6, $a1, $v0 -/* 028FA4 800283A4 444FF800 */ cfc1 $t7, $31 -/* 028FA8 800283A8 A7AE012C */ sh $t6, 0x12c($sp) -/* 028FAC 800283AC 35E10003 */ ori $at, $t7, 3 -/* 028FB0 800283B0 38210002 */ xori $at, $at, 2 -/* 028FB4 800283B4 44C1F800 */ ctc1 $at, $31 -/* 028FB8 800283B8 00827021 */ addu $t6, $a0, $v0 -/* 028FBC 800283BC 460051A4 */ cvt.w.s $f6, $f10 -/* 028FC0 800283C0 A7AE012E */ sh $t6, 0x12e($sp) -/* 028FC4 800283C4 44CFF800 */ ctc1 $t7, $31 -/* 028FC8 800283C8 00A37821 */ addu $t7, $a1, $v1 -/* 028FCC 800283CC 46000300 */ add.s $f12, $f0, $f0 -/* 028FD0 800283D0 A7AF011A */ sh $t7, 0x11a($sp) -/* 028FD4 800283D4 460C8201 */ sub.s $f8, $f16, $f12 -/* 028FD8 800283D8 44193000 */ mfc1 $t9, $f6 -/* 028FDC 800283DC 4458F800 */ cfc1 $t8, $31 -/* 028FE0 800283E0 03236021 */ addu $t4, $t9, $v1 -/* 028FE4 800283E4 37010003 */ ori $at, $t8, 3 -/* 028FE8 800283E8 38210002 */ xori $at, $at, 2 -/* 028FEC 800283EC 44C1F800 */ ctc1 $at, $31 -/* 028FF0 800283F0 A7AC0118 */ sh $t4, 0x118($sp) -/* 028FF4 800283F4 46004124 */ cvt.w.s $f4, $f8 -/* 028FF8 800283F8 44D8F800 */ ctc1 $t8, $31 -/* 028FFC 800283FC 440C2000 */ mfc1 $t4, $f4 -/* 029000 80028400 460E7080 */ add.s $f2, $f14, $f14 -/* 029004 80028404 01827021 */ addu $t6, $t4, $v0 -/* 029008 80028408 46020281 */ sub.s $f10, $f0, $f2 -/* 02900C 8002840C A7AE0132 */ sh $t6, 0x132($sp) -/* 029010 80028410 444FF800 */ cfc1 $t7, $31 -/* 029014 80028414 00000000 */ nop -/* 029018 80028418 35E10003 */ ori $at, $t7, 3 -/* 02901C 8002841C 38210002 */ xori $at, $at, 2 -/* 029020 80028420 44C1F800 */ ctc1 $at, $31 -/* 029024 80028424 00000000 */ nop -/* 029028 80028428 460051A4 */ cvt.w.s $f6, $f10 -/* 02902C 8002842C 44CFF800 */ ctc1 $t7, $31 -/* 029030 80028430 44193000 */ mfc1 $t9, $f6 -/* 029034 80028434 460C7201 */ sub.s $f8, $f14, $f12 -/* 029038 80028438 03236021 */ addu $t4, $t9, $v1 -/* 02903C 8002843C 444EF800 */ cfc1 $t6, $31 -/* 029040 80028440 A7AC011E */ sh $t4, 0x11e($sp) -/* 029044 80028444 35C10003 */ ori $at, $t6, 3 -/* 029048 80028448 38210002 */ xori $at, $at, 2 -/* 02904C 8002844C 44C1F800 */ ctc1 $at, $31 -/* 029050 80028450 00000000 */ nop -/* 029054 80028454 46004124 */ cvt.w.s $f4, $f8 -/* 029058 80028458 44CEF800 */ ctc1 $t6, $31 -/* 02905C 8002845C 440D2000 */ mfc1 $t5, $f4 -/* 029060 80028460 46001287 */ neg.s $f10, $f2 -/* 029064 80028464 46005181 */ sub.s $f6, $f10, $f0 -/* 029068 80028468 01A2C821 */ addu $t9, $t5, $v0 -/* 02906C 8002846C 444CF800 */ cfc1 $t4, $31 -/* 029070 80028470 A7B90134 */ sh $t9, 0x134($sp) -/* 029074 80028474 35810003 */ ori $at, $t4, 3 -/* 029078 80028478 38210002 */ xori $at, $at, 2 -/* 02907C 8002847C 44C1F800 */ ctc1 $at, $31 -/* 029080 80028480 00000000 */ nop -/* 029084 80028484 46003224 */ cvt.w.s $f8, $f6 -/* 029088 80028488 44CCF800 */ ctc1 $t4, $31 -/* 02908C 8002848C 00000000 */ nop -/* 029090 80028490 00000000 */ nop -/* 029094 80028494 C7AE00B4 */ lwc1 $f14, 0xb4($sp) -/* 029098 80028498 C7B000AC */ lwc1 $f16, 0xac($sp) -/* 02909C 8002849C 460C7100 */ add.s $f4, $f14, $f12 -/* 0290A0 800284A0 44184000 */ mfc1 $t8, $f8 -/* 0290A4 800284A4 4459F800 */ cfc1 $t9, $31 -/* 0290A8 800284A8 03036821 */ addu $t5, $t8, $v1 -/* 0290AC 800284AC 37210003 */ ori $at, $t9, 3 -/* 0290B0 800284B0 38210002 */ xori $at, $at, 2 -/* 0290B4 800284B4 44C1F800 */ ctc1 $at, $31 -/* 0290B8 800284B8 A7AD0120 */ sh $t5, 0x120($sp) -/* 0290BC 800284BC 460022A4 */ cvt.w.s $f10, $f4 -/* 0290C0 800284C0 3C138012 */ lui $s3, %hi(gSceneCurrDisplayList) # $s3, 0x8012 -/* 0290C4 800284C4 44D9F800 */ ctc1 $t9, $31 -/* 0290C8 800284C8 440F5000 */ mfc1 $t7, $f10 -/* 0290CC 800284CC 46108080 */ add.s $f2, $f16, $f16 -/* 0290D0 800284D0 01E2C021 */ addu $t8, $t7, $v0 -/* 0290D4 800284D4 46001181 */ sub.s $f6, $f2, $f0 -/* 0290D8 800284D8 A7B80136 */ sh $t8, 0x136($sp) -/* 0290DC 800284DC 444DF800 */ cfc1 $t5, $31 -/* 0290E0 800284E0 2673B0A0 */ addiu $s3, %lo(gSceneCurrDisplayList) # addiu $s3, $s3, -0x4f60 -/* 0290E4 800284E4 35A10003 */ ori $at, $t5, 3 -/* 0290E8 800284E8 38210002 */ xori $at, $at, 2 -/* 0290EC 800284EC 44C1F800 */ ctc1 $at, $31 -/* 0290F0 800284F0 3C058012 */ lui $a1, %hi(gSceneCurrMatrix) # $a1, 0x8012 -/* 0290F4 800284F4 46003224 */ cvt.w.s $f8, $f6 -/* 0290F8 800284F8 24A5B0A4 */ addiu $a1, %lo(gSceneCurrMatrix) # addiu $a1, $a1, -0x4f5c -/* 0290FC 800284FC 44CDF800 */ ctc1 $t5, $31 -/* 029100 80028500 440E4000 */ mfc1 $t6, $f8 -/* 029104 80028504 460E6101 */ sub.s $f4, $f12, $f14 -/* 029108 80028508 01C37821 */ addu $t7, $t6, $v1 -/* 02910C 8002850C 4458F800 */ cfc1 $t8, $31 -/* 029110 80028510 A7AF0122 */ sh $t7, 0x122($sp) -/* 029114 80028514 37010003 */ ori $at, $t8, 3 -/* 029118 80028518 38210002 */ xori $at, $at, 2 -/* 02911C 8002851C 44C1F800 */ ctc1 $at, $31 -/* 029120 80028520 02602025 */ move $a0, $s3 -/* 029124 80028524 460022A4 */ cvt.w.s $f10, $f4 -/* 029128 80028528 44D8F800 */ ctc1 $t8, $31 -/* 02912C 8002852C 440C5000 */ mfc1 $t4, $f10 -/* 029130 80028530 46001180 */ add.s $f6, $f2, $f0 -/* 029134 80028534 01827021 */ addu $t6, $t4, $v0 -/* 029138 80028538 444FF800 */ cfc1 $t7, $31 -/* 02913C 8002853C A7AE0138 */ sh $t6, 0x138($sp) -/* 029140 80028540 35E10003 */ ori $at, $t7, 3 -/* 029144 80028544 38210002 */ xori $at, $at, 2 -/* 029148 80028548 44C1F800 */ ctc1 $at, $31 -/* 02914C 8002854C 00000000 */ nop -/* 029150 80028550 46003224 */ cvt.w.s $f8, $f6 -/* 029154 80028554 44194000 */ mfc1 $t9, $f8 -/* 029158 80028558 44CFF800 */ ctc1 $t7, $31 -/* 02915C 8002855C 03236021 */ addu $t4, $t9, $v1 -/* 029160 80028560 0C01A102 */ jal func_80068408 -/* 029164 80028564 A7AC0124 */ sh $t4, 0x124($sp) -/* 029168 80028568 3C04800E */ lui $a0, %hi(gCurrentLevelHeader2) # $a0, 0x800e -/* 02916C 8002856C 8C84C91C */ lw $a0, %lo(gCurrentLevelHeader2)($a0) -/* 029170 80028570 2403FFFF */ li $v1, -1 -/* 029174 80028574 8C8A0074 */ lw $t2, 0x74($a0) -/* 029178 80028578 2406FFFF */ li $a2, -1 -/* 02917C 8002857C 11430007 */ beq $t2, $v1, .L8002859C -/* 029180 80028580 24050001 */ li $a1, 1 -/* 029184 80028584 8C820078 */ lw $v0, 0x78($a0) -/* 029188 80028588 00000000 */ nop -/* 02918C 8002858C 14430005 */ bne $v0, $v1, .L800285A4 -/* 029190 80028590 00000000 */ nop -/* 029194 80028594 10000003 */ b .L800285A4 -/* 029198 80028598 01401025 */ move $v0, $t2 -.L8002859C: -/* 02919C 8002859C 8FA20078 */ lw $v0, 0x78($sp) -/* 0291A0 800285A0 00005025 */ move $t2, $zero -.L800285A4: -/* 0291A4 800285A4 11400006 */ beqz $t2, .L800285C0 -/* 0291A8 800285A8 2407FF00 */ li $a3, -256 -/* 0291AC 800285AC 8C470010 */ lw $a3, 0x10($v0) -/* 0291B0 800285B0 2401FF00 */ li $at, -256 -/* 0291B4 800285B4 00E17024 */ and $t6, $a3, $at -/* 0291B8 800285B8 8D460010 */ lw $a2, 0x10($t2) -/* 0291BC 800285BC 01C03825 */ move $a3, $t6 -.L800285C0: -/* 0291C0 800285C0 02602025 */ move $a0, $s3 -/* 0291C4 800285C4 0C01FD65 */ jal func_8007F594 -/* 0291C8 800285C8 AFAA007C */ sw $t2, 0x7c($sp) -/* 0291CC 800285CC 3C058012 */ lui $a1, %hi(D_8011B110) # $a1, 0x8012 -/* 0291D0 800285D0 8CA5B110 */ lw $a1, %lo(D_8011B110)($a1) -/* 0291D4 800285D4 8FA40074 */ lw $a0, 0x74($sp) -/* 0291D8 800285D8 00057A00 */ sll $t7, $a1, 8 -/* 0291DC 800285DC 0C01ED1B */ jal set_animated_texture_header -/* 0291E0 800285E0 01E02825 */ move $a1, $t7 -/* 0291E4 800285E4 8E630000 */ lw $v1, ($s3) -/* 0291E8 800285E8 3C010700 */ lui $at, 0x700 -/* 0291EC 800285EC 24780008 */ addiu $t8, $v1, 8 -/* 0291F0 800285F0 AE780000 */ sw $t8, ($s3) -/* 0291F4 800285F4 8445000A */ lh $a1, 0xa($v0) -/* 0291F8 800285F8 8FAA007C */ lw $t2, 0x7c($sp) -/* 0291FC 800285FC 30AD00FF */ andi $t5, $a1, 0xff -/* 029200 80028600 000DCC00 */ sll $t9, $t5, 0x10 -/* 029204 80028604 000570C0 */ sll $t6, $a1, 3 -/* 029208 80028608 31CFFFFF */ andi $t7, $t6, 0xffff -/* 02920C 8002860C 03216025 */ or $t4, $t9, $at -/* 029210 80028610 018FC025 */ or $t8, $t4, $t7 -/* 029214 80028614 AC780000 */ sw $t8, ($v1) -/* 029218 80028618 8C4D000C */ lw $t5, 0xc($v0) -/* 02921C 8002861C 3C098000 */ lui $t1, 0x8000 -/* 029220 80028620 3C0B8012 */ lui $t3, %hi(gSceneCurrVertexList) # $t3, 0x8012 -/* 029224 80028624 01A9C821 */ addu $t9, $t5, $t1 -/* 029228 80028628 256BB0A8 */ addiu $t3, %lo(gSceneCurrVertexList) # addiu $t3, $t3, -0x4f58 -/* 02922C 8002862C AC790004 */ sw $t9, 4($v1) -/* 029230 80028630 8D6C0000 */ lw $t4, ($t3) -/* 029234 80028634 8E630000 */ lw $v1, ($s3) -/* 029238 80028638 01897821 */ addu $t7, $t4, $t1 -/* 02923C 8002863C 31F80006 */ andi $t8, $t7, 6 -/* 029240 80028640 370D0040 */ ori $t5, $t8, 0x40 -/* 029244 80028644 246E0008 */ addiu $t6, $v1, 8 -/* 029248 80028648 AE6E0000 */ sw $t6, ($s3) -/* 02924C 8002864C 31B900FF */ andi $t9, $t5, 0xff -/* 029250 80028650 00197400 */ sll $t6, $t9, 0x10 -/* 029254 80028654 3C010400 */ lui $at, 0x400 -/* 029258 80028658 01C16025 */ or $t4, $t6, $at -/* 02925C 8002865C 358F00AA */ ori $t7, $t4, 0xaa -/* 029260 80028660 AC6F0000 */ sw $t7, ($v1) -/* 029264 80028664 8D780000 */ lw $t8, ($t3) -/* 029268 80028668 3C0E0571 */ lui $t6, (0x05710080 >> 16) # lui $t6, 0x571 -/* 02926C 8002866C 03096821 */ addu $t5, $t8, $t1 -/* 029270 80028670 AC6D0004 */ sw $t5, 4($v1) -/* 029274 80028674 8E630000 */ lw $v1, ($s3) -/* 029278 80028678 35CE0080 */ ori $t6, (0x05710080 & 0xFFFF) # ori $t6, $t6, 0x80 -/* 02927C 8002867C 24790008 */ addiu $t9, $v1, 8 -/* 029280 80028680 AE790000 */ sw $t9, ($s3) -/* 029284 80028684 3C0C8012 */ lui $t4, %hi(gSceneCurrTriList) # $t4, 0x8012 -/* 029288 80028688 AC6E0000 */ sw $t6, ($v1) -/* 02928C 8002868C 8D8CB0AC */ lw $t4, %lo(gSceneCurrTriList)($t4) -/* 029290 80028690 3C0DE700 */ lui $t5, 0xe700 -/* 029294 80028694 01897821 */ addu $t7, $t4, $t1 -/* 029298 80028698 AC6F0004 */ sw $t7, 4($v1) -/* 02929C 8002869C 8E630000 */ lw $v1, ($s3) -/* 0292A0 800286A0 3C0EFA00 */ lui $t6, 0xfa00 -/* 0292A4 800286A4 24780008 */ addiu $t8, $v1, 8 -/* 0292A8 800286A8 AE780000 */ sw $t8, ($s3) -/* 0292AC 800286AC AC600004 */ sw $zero, 4($v1) -/* 0292B0 800286B0 1140000E */ beqz $t2, .L800286EC -/* 0292B4 800286B4 AC6D0000 */ sw $t5, ($v1) -/* 0292B8 800286B8 8E630000 */ lw $v1, ($s3) -/* 0292BC 800286BC 240CFFFF */ li $t4, -1 -/* 0292C0 800286C0 24790008 */ addiu $t9, $v1, 8 -/* 0292C4 800286C4 AE790000 */ sw $t9, ($s3) -/* 0292C8 800286C8 AC6C0004 */ sw $t4, 4($v1) -/* 0292CC 800286CC AC6E0000 */ sw $t6, ($v1) -/* 0292D0 800286D0 8E630000 */ lw $v1, ($s3) -/* 0292D4 800286D4 3C18FB00 */ lui $t8, 0xfb00 -/* 0292D8 800286D8 246F0008 */ addiu $t7, $v1, 8 -/* 0292DC 800286DC AE6F0000 */ sw $t7, ($s3) -/* 0292E0 800286E0 240DFF00 */ li $t5, -256 -/* 0292E4 800286E4 AC6D0004 */ sw $t5, 4($v1) -/* 0292E8 800286E8 AC780000 */ sw $t8, ($v1) -.L800286EC: -/* 0292EC 800286EC 0C01ECF4 */ jal reset_render_settings -/* 0292F0 800286F0 02602025 */ move $a0, $s3 -/* 0292F4 800286F4 3C014340 */ li $at, 0x43400000 # 192.000000 -/* 0292F8 800286F8 44815000 */ mtc1 $at, $f10 -/* 0292FC 800286FC C6440010 */ lwc1 $f4, 0x10($s2) -/* 029300 80028700 27A400DC */ addiu $a0, $sp, 0xdc -/* 029304 80028704 460A2180 */ add.s $f6, $f4, $f10 -/* 029308 80028708 27A200B8 */ addiu $v0, $sp, 0xb8 -/* 02930C 8002870C 4459F800 */ cfc1 $t9, $31 -/* 029310 80028710 27A700DC */ addiu $a3, $sp, 0xdc -/* 029314 80028714 37210003 */ ori $at, $t9, 3 -/* 029318 80028718 38210002 */ xori $at, $at, 2 -/* 02931C 8002871C 44C1F800 */ ctc1 $at, $31 -/* 029320 80028720 27A600CC */ addiu $a2, $sp, 0xcc -/* 029324 80028724 46003224 */ cvt.w.s $f8, $f6 -/* 029328 80028728 240300FF */ li $v1, 255 -/* 02932C 8002872C 44054000 */ mfc1 $a1, $f8 -/* 029330 80028730 44D9F800 */ ctc1 $t9, $31 -/* 029334 80028734 00057400 */ sll $t6, $a1, 0x10 -/* 029338 80028738 000E2C03 */ sra $a1, $t6, 0x10 -.L8002873C: -/* 02933C 8002873C C4840000 */ lwc1 $f4, ($a0) -/* 029340 80028740 C64A000C */ lwc1 $f10, 0xc($s2) -/* 029344 80028744 A6250002 */ sh $a1, 2($s1) -/* 029348 80028748 460A2180 */ add.s $f6, $f4, $f10 -/* 02934C 8002874C 24840004 */ addiu $a0, $a0, 4 -/* 029350 80028750 444FF800 */ cfc1 $t7, $31 -/* 029354 80028754 00000000 */ nop -/* 029358 80028758 35E10003 */ ori $at, $t7, 3 -/* 02935C 8002875C 38210002 */ xori $at, $at, 2 -/* 029360 80028760 44C1F800 */ ctc1 $at, $31 -/* 029364 80028764 00000000 */ nop -/* 029368 80028768 46003224 */ cvt.w.s $f8, $f6 -/* 02936C 8002876C 44184000 */ mfc1 $t8, $f8 -/* 029370 80028770 44CFF800 */ ctc1 $t7, $31 -/* 029374 80028774 A6380000 */ sh $t8, ($s1) -/* 029378 80028778 C64A0014 */ lwc1 $f10, 0x14($s2) -/* 02937C 8002877C C4440000 */ lwc1 $f4, ($v0) -/* 029380 80028780 A2230006 */ sb $v1, 6($s1) -/* 029384 80028784 460A2180 */ add.s $f6, $f4, $f10 -/* 029388 80028788 A2230007 */ sb $v1, 7($s1) -/* 02938C 8002878C 444DF800 */ cfc1 $t5, $31 -/* 029390 80028790 A2230008 */ sb $v1, 8($s1) -/* 029394 80028794 35A10003 */ ori $at, $t5, 3 -/* 029398 80028798 38210002 */ xori $at, $at, 2 -/* 02939C 8002879C 44C1F800 */ ctc1 $at, $31 -/* 0293A0 800287A0 0046082B */ sltu $at, $v0, $a2 -/* 0293A4 800287A4 46003224 */ cvt.w.s $f8, $f6 -/* 0293A8 800287A8 24420004 */ addiu $v0, $v0, 4 -/* 0293AC 800287AC 44194000 */ mfc1 $t9, $f8 -/* 0293B0 800287B0 44CDF800 */ ctc1 $t5, $31 -/* 0293B4 800287B4 10200003 */ beqz $at, .L800287C4 -/* 0293B8 800287B8 A6390004 */ sh $t9, 4($s1) -/* 0293BC 800287BC 10000002 */ b .L800287C8 -/* 0293C0 800287C0 A2230009 */ sb $v1, 9($s1) -.L800287C4: -/* 0293C4 800287C4 A2200009 */ sb $zero, 9($s1) -.L800287C8: -/* 0293C8 800287C8 0047082B */ sltu $at, $v0, $a3 -/* 0293CC 800287CC 1420FFDB */ bnez $at, .L8002873C -/* 0293D0 800287D0 2631000A */ addiu $s1, $s1, 0xa -/* 0293D4 800287D4 3C02800E */ lui $v0, %hi(D_800DC92C) # $v0, 0x800e -/* 0293D8 800287D8 2442C92C */ addiu $v0, %lo(D_800DC92C) # addiu $v0, $v0, -0x36d4 -/* 0293DC 800287DC 00003025 */ move $a2, $zero -/* 0293E0 800287E0 24070008 */ li $a3, 8 -/* 0293E4 800287E4 24050040 */ li $a1, 64 -/* 0293E8 800287E8 27A40114 */ addiu $a0, $sp, 0x114 -/* 0293EC 800287EC 27A30128 */ addiu $v1, $sp, 0x128 -.L800287F0: -/* 0293F0 800287F0 A2050000 */ sb $a1, ($s0) -/* 0293F4 800287F4 904E0000 */ lbu $t6, ($v0) -/* 0293F8 800287F8 24C60002 */ addiu $a2, $a2, 2 -/* 0293FC 800287FC A20E0001 */ sb $t6, 1($s0) -/* 029400 80028800 904C0000 */ lbu $t4, ($v0) -/* 029404 80028804 24420006 */ addiu $v0, $v0, 6 -/* 029408 80028808 000C7840 */ sll $t7, $t4, 1 -/* 02940C 8002880C 006FC021 */ addu $t8, $v1, $t7 -/* 029410 80028810 870D0000 */ lh $t5, ($t8) -/* 029414 80028814 26100020 */ addiu $s0, $s0, 0x20 -/* 029418 80028818 A60DFFE4 */ sh $t5, -0x1c($s0) -/* 02941C 8002881C 9059FFFA */ lbu $t9, -6($v0) -/* 029420 80028820 00000000 */ nop -/* 029424 80028824 00197040 */ sll $t6, $t9, 1 -/* 029428 80028828 008E6021 */ addu $t4, $a0, $t6 -/* 02942C 8002882C 858F0000 */ lh $t7, ($t4) -/* 029430 80028830 00000000 */ nop -/* 029434 80028834 A60FFFE6 */ sh $t7, -0x1a($s0) -/* 029438 80028838 9058FFFB */ lbu $t8, -5($v0) -/* 02943C 8002883C 00000000 */ nop -/* 029440 80028840 A218FFE2 */ sb $t8, -0x1e($s0) -/* 029444 80028844 904DFFFB */ lbu $t5, -5($v0) -/* 029448 80028848 00000000 */ nop -/* 02944C 8002884C 000DC840 */ sll $t9, $t5, 1 -/* 029450 80028850 00797021 */ addu $t6, $v1, $t9 -/* 029454 80028854 85CC0000 */ lh $t4, ($t6) -/* 029458 80028858 00000000 */ nop -/* 02945C 8002885C A60CFFE8 */ sh $t4, -0x18($s0) -/* 029460 80028860 904FFFFB */ lbu $t7, -5($v0) -/* 029464 80028864 00000000 */ nop -/* 029468 80028868 000FC040 */ sll $t8, $t7, 1 -/* 02946C 8002886C 00986821 */ addu $t5, $a0, $t8 -/* 029470 80028870 85B90000 */ lh $t9, ($t5) -/* 029474 80028874 00000000 */ nop -/* 029478 80028878 A619FFEA */ sh $t9, -0x16($s0) -/* 02947C 8002887C 904EFFFC */ lbu $t6, -4($v0) -/* 029480 80028880 00000000 */ nop -/* 029484 80028884 A20EFFE3 */ sb $t6, -0x1d($s0) -/* 029488 80028888 904CFFFC */ lbu $t4, -4($v0) -/* 02948C 8002888C 00000000 */ nop -/* 029490 80028890 000C7840 */ sll $t7, $t4, 1 -/* 029494 80028894 006FC021 */ addu $t8, $v1, $t7 -/* 029498 80028898 870D0000 */ lh $t5, ($t8) -/* 02949C 8002889C 00000000 */ nop -/* 0294A0 800288A0 A60DFFEC */ sh $t5, -0x14($s0) -/* 0294A4 800288A4 9059FFFC */ lbu $t9, -4($v0) -/* 0294A8 800288A8 00000000 */ nop -/* 0294AC 800288AC 00197040 */ sll $t6, $t9, 1 -/* 0294B0 800288B0 008E6021 */ addu $t4, $a0, $t6 -/* 0294B4 800288B4 858F0000 */ lh $t7, ($t4) -/* 0294B8 800288B8 A205FFF0 */ sb $a1, -0x10($s0) -/* 0294BC 800288BC A60FFFEE */ sh $t7, -0x12($s0) -/* 0294C0 800288C0 9058FFFD */ lbu $t8, -3($v0) -/* 0294C4 800288C4 00000000 */ nop -/* 0294C8 800288C8 A218FFF1 */ sb $t8, -0xf($s0) -/* 0294CC 800288CC 904DFFFD */ lbu $t5, -3($v0) -/* 0294D0 800288D0 00000000 */ nop -/* 0294D4 800288D4 000DC840 */ sll $t9, $t5, 1 -/* 0294D8 800288D8 00797021 */ addu $t6, $v1, $t9 -/* 0294DC 800288DC 85CC0000 */ lh $t4, ($t6) -/* 0294E0 800288E0 00000000 */ nop -/* 0294E4 800288E4 A60CFFF4 */ sh $t4, -0xc($s0) -/* 0294E8 800288E8 904FFFFD */ lbu $t7, -3($v0) -/* 0294EC 800288EC 00000000 */ nop -/* 0294F0 800288F0 000FC040 */ sll $t8, $t7, 1 -/* 0294F4 800288F4 00986821 */ addu $t5, $a0, $t8 -/* 0294F8 800288F8 85B90000 */ lh $t9, ($t5) -/* 0294FC 800288FC 00000000 */ nop -/* 029500 80028900 A619FFF6 */ sh $t9, -0xa($s0) -/* 029504 80028904 904EFFFE */ lbu $t6, -2($v0) -/* 029508 80028908 00000000 */ nop -/* 02950C 8002890C A20EFFF2 */ sb $t6, -0xe($s0) -/* 029510 80028910 904CFFFE */ lbu $t4, -2($v0) -/* 029514 80028914 00000000 */ nop -/* 029518 80028918 000C7840 */ sll $t7, $t4, 1 -/* 02951C 8002891C 006FC021 */ addu $t8, $v1, $t7 -/* 029520 80028920 870D0000 */ lh $t5, ($t8) -/* 029524 80028924 00000000 */ nop -/* 029528 80028928 A60DFFF8 */ sh $t5, -8($s0) -/* 02952C 8002892C 9059FFFE */ lbu $t9, -2($v0) -/* 029530 80028930 00000000 */ nop -/* 029534 80028934 00197040 */ sll $t6, $t9, 1 -/* 029538 80028938 008E6021 */ addu $t4, $a0, $t6 -/* 02953C 8002893C 858F0000 */ lh $t7, ($t4) -/* 029540 80028940 00000000 */ nop -/* 029544 80028944 A60FFFFA */ sh $t7, -6($s0) -/* 029548 80028948 9058FFFF */ lbu $t8, -1($v0) -/* 02954C 8002894C 00000000 */ nop -/* 029550 80028950 A218FFF3 */ sb $t8, -0xd($s0) -/* 029554 80028954 904DFFFF */ lbu $t5, -1($v0) -/* 029558 80028958 00000000 */ nop -/* 02955C 8002895C 000DC840 */ sll $t9, $t5, 1 -/* 029560 80028960 00797021 */ addu $t6, $v1, $t9 -/* 029564 80028964 85CC0000 */ lh $t4, ($t6) -/* 029568 80028968 00000000 */ nop -/* 02956C 8002896C A60CFFFC */ sh $t4, -4($s0) -/* 029570 80028970 904FFFFF */ lbu $t7, -1($v0) -/* 029574 80028974 00000000 */ nop -/* 029578 80028978 000FC040 */ sll $t8, $t7, 1 -/* 02957C 8002897C 00986821 */ addu $t5, $a0, $t8 -/* 029580 80028980 85B90000 */ lh $t9, ($t5) -/* 029584 80028984 14C7FF9A */ bne $a2, $a3, .L800287F0 -/* 029588 80028988 A619FFFE */ sh $t9, -2($s0) -/* 02958C 8002898C 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 -/* 029590 80028990 AC31B0A8 */ sw $s1, %lo(gSceneCurrVertexList)($at) -/* 029594 80028994 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 -/* 029598 80028998 8FBF0024 */ lw $ra, 0x24($sp) -/* 02959C 8002899C AC30B0AC */ sw $s0, %lo(gSceneCurrTriList)($at) -/* 0295A0 800289A0 8FB00014 */ lw $s0, 0x14($sp) -/* 0295A4 800289A4 8FB10018 */ lw $s1, 0x18($sp) -/* 0295A8 800289A8 8FB2001C */ lw $s2, 0x1c($sp) -/* 0295AC 800289AC 8FB30020 */ lw $s3, 0x20($sp) -/* 0295B0 800289B0 03E00008 */ jr $ra -/* 0295B4 800289B4 27BD0158 */ addiu $sp, $sp, 0x158 - +glabel func_80028050 +/* 028C50 80028050 27BDFEA8 */ addiu $sp, $sp, -0x158 +/* 028C54 80028054 AFB10018 */ sw $s1, 0x18($sp) +/* 028C58 80028058 AFB00014 */ sw $s0, 0x14($sp) +/* 028C5C 8002805C 3C118012 */ lui $s1, %hi(gSceneCurrVertexList) # $s1, 0x8012 +/* 028C60 80028060 3C108012 */ lui $s0, %hi(gSceneCurrTriList) # $s0, 0x8012 +/* 028C64 80028064 AFBF0024 */ sw $ra, 0x24($sp) +/* 028C68 80028068 8E31B0A8 */ lw $s1, %lo(gSceneCurrVertexList)($s1) +/* 028C6C 8002806C 8E10B0AC */ lw $s0, %lo(gSceneCurrTriList)($s0) +/* 028C70 80028070 AFB30020 */ sw $s3, 0x20($sp) +/* 028C74 80028074 0C01A748 */ jal get_active_camera_segment +/* 028C78 80028078 AFB2001C */ sw $s2, 0x1c($sp) +/* 028C7C 8002807C 3C0E800E */ lui $t6, %hi(gCurrentLevelHeader2) # $t6, 0x800e +/* 028C80 80028080 8DCEC91C */ lw $t6, %lo(gCurrentLevelHeader2)($t6) +/* 028C84 80028084 00409025 */ move $s2, $v0 +/* 028C88 80028088 8DC300A4 */ lw $v1, 0xa4($t6) +/* 028C8C 8002808C 00000000 */ nop +/* 028C90 80028090 90780001 */ lbu $t8, 1($v1) +/* 028C94 80028094 90730000 */ lbu $s3, ($v1) +/* 028C98 80028098 0018C940 */ sll $t9, $t8, 5 +/* 028C9C 8002809C 272CFFFF */ addiu $t4, $t9, -1 +/* 028CA0 800280A0 AFAC014C */ sw $t4, 0x14c($sp) +/* 028CA4 800280A4 84440000 */ lh $a0, ($v0) +/* 028CA8 800280A8 00137940 */ sll $t7, $s3, 5 +/* 028CAC 800280AC 00042023 */ negu $a0, $a0 +/* 028CB0 800280B0 00046C00 */ sll $t5, $a0, 0x10 +/* 028CB4 800280B4 25F3FFFF */ addiu $s3, $t7, -1 +/* 028CB8 800280B8 000D2403 */ sra $a0, $t5, 0x10 +/* 028CBC 800280BC 0C01C1F1 */ jal sins_f +/* 028CC0 800280C0 AFA30074 */ sw $v1, 0x74($sp) +/* 028CC4 800280C4 E7A0010C */ swc1 $f0, 0x10c($sp) +/* 028CC8 800280C8 86440000 */ lh $a0, ($s2) +/* 028CCC 800280CC 00000000 */ nop +/* 028CD0 800280D0 00042023 */ negu $a0, $a0 +/* 028CD4 800280D4 00047C00 */ sll $t7, $a0, 0x10 +/* 028CD8 800280D8 0C01C1FE */ jal coss_f +/* 028CDC 800280DC 000F2403 */ sra $a0, $t7, 0x10 +/* 028CE0 800280E0 3C0144A0 */ li $at, 0x44A00000 # 1280.000000 +/* 028CE4 800280E4 44812000 */ mtc1 $at, $f4 +/* 028CE8 800280E8 44814000 */ mtc1 $at, $f8 +/* 028CEC 800280EC 46040302 */ mul.s $f12, $f0, $f4 +/* 028CF0 800280F0 C7A6010C */ lwc1 $f6, 0x10c($sp) +/* 028CF4 800280F4 8FA70074 */ lw $a3, 0x74($sp) +/* 028CF8 800280F8 3C04800E */ lui $a0, %hi(gCurrentLevelHeader2) # $a0, 0x800e +/* 028CFC 800280FC 46083082 */ mul.s $f2, $f6, $f8 +/* 028D00 80028100 46006487 */ neg.s $f18, $f12 +/* 028D04 80028104 8C84C91C */ lw $a0, %lo(gCurrentLevelHeader2)($a0) +/* 028D08 80028108 46029200 */ add.s $f8, $f18, $f2 +/* 028D0C 8002810C 46029281 */ sub.s $f10, $f18, $f2 +/* 028D10 80028110 E7A80030 */ swc1 $f8, 0x30($sp) +/* 028D14 80028114 46026201 */ sub.s $f8, $f12, $f2 +/* 028D18 80028118 E7AA0034 */ swc1 $f10, 0x34($sp) +/* 028D1C 8002811C C7A40034 */ lwc1 $f4, 0x34($sp) +/* 028D20 80028120 E7A8002C */ swc1 $f8, 0x2c($sp) +/* 028D24 80028124 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 028D28 80028128 E7A400DC */ swc1 $f4, 0xdc($sp) +/* 028D2C 8002812C E7A400BC */ swc1 $f4, 0xbc($sp) +/* 028D30 80028130 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 028D34 80028134 46026100 */ add.s $f4, $f12, $f2 +/* 028D38 80028138 E7A800E0 */ swc1 $f8, 0xe0($sp) +/* 028D3C 8002813C E7A800C0 */ swc1 $f8, 0xc0($sp) +/* 028D40 80028140 44804000 */ mtc1 $zero, $f8 +/* 028D44 80028144 E7A40034 */ swc1 $f4, 0x34($sp) +/* 028D48 80028148 C7A40034 */ lwc1 $f4, 0x34($sp) +/* 028D4C 8002814C E7AA00B8 */ swc1 $f10, 0xb8($sp) +/* 028D50 80028150 E7AA00E8 */ swc1 $f10, 0xe8($sp) +/* 028D54 80028154 E7A800EC */ swc1 $f8, 0xec($sp) +/* 028D58 80028158 44805000 */ mtc1 $zero, $f10 +/* 028D5C 8002815C 460C6200 */ add.s $f8, $f12, $f12 +/* 028D60 80028160 E7A400E4 */ swc1 $f4, 0xe4($sp) +/* 028D64 80028164 46021400 */ add.s $f16, $f2, $f2 +/* 028D68 80028168 E7A80030 */ swc1 $f8, 0x30($sp) +/* 028D6C 8002816C E7A400C4 */ swc1 $f4, 0xc4($sp) +/* 028D70 80028170 E7AA00C8 */ swc1 $f10, 0xc8($sp) +/* 028D74 80028174 46109101 */ sub.s $f4, $f18, $f16 +/* 028D78 80028178 C7AA0030 */ lwc1 $f10, 0x30($sp) +/* 028D7C 8002817C E7A400F0 */ swc1 $f4, 0xf0($sp) +/* 028D80 80028180 460A1201 */ sub.s $f8, $f2, $f10 +/* 028D84 80028184 46005107 */ neg.s $f4, $f10 +/* 028D88 80028188 E7A800CC */ swc1 $f8, 0xcc($sp) +/* 028D8C 8002818C 46022201 */ sub.s $f8, $f4, $f2 +/* 028D90 80028190 E7A4002C */ swc1 $f4, 0x2c($sp) +/* 028D94 80028194 46106281 */ sub.s $f10, $f12, $f16 +/* 028D98 80028198 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 028D9C 8002819C E7A800D0 */ swc1 $f8, 0xd0($sp) +/* 028DA0 800281A0 46022201 */ sub.s $f8, $f4, $f2 +/* 028DA4 800281A4 E7AA00F4 */ swc1 $f10, 0xf4($sp) +/* 028DA8 800281A8 46106280 */ add.s $f10, $f12, $f16 +/* 028DAC 800281AC C7A40030 */ lwc1 $f4, 0x30($sp) +/* 028DB0 800281B0 E7AA00F8 */ swc1 $f10, 0xf8($sp) +/* 028DB4 800281B4 E7A800D4 */ swc1 $f8, 0xd4($sp) +/* 028DB8 800281B8 46109280 */ add.s $f10, $f18, $f16 +/* 028DBC 800281BC 46022200 */ add.s $f8, $f4, $f2 +/* 028DC0 800281C0 E7AA00FC */ swc1 $f10, 0xfc($sp) +/* 028DC4 800281C4 E7A800D8 */ swc1 $f8, 0xd8($sp) +/* 028DC8 800281C8 90F90000 */ lbu $t9, ($a3) +/* 028DCC 800281CC 908D00A0 */ lbu $t5, 0xa0($a0) +/* 028DD0 800281D0 00196100 */ sll $t4, $t9, 4 +/* 028DD4 800281D4 018D0019 */ multu $t4, $t5 +/* 028DD8 800281D8 44815000 */ mtc1 $at, $f10 +/* 028DDC 800281DC 3C013E80 */ li $at, 0x3E800000 # 0.250000 +/* 028DE0 800281E0 44812000 */ mtc1 $at, $f4 +/* 028DE4 800281E4 90EE0001 */ lbu $t6, 1($a3) +/* 028DE8 800281E8 46045202 */ mul.s $f8, $f10, $f4 +/* 028DEC 800281EC 909800A1 */ lbu $t8, 0xa1($a0) +/* 028DF0 800281F0 000E7900 */ sll $t7, $t6, 4 +/* 028DF4 800281F4 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 028DF8 800281F8 00002812 */ mflo $a1 +/* 028DFC 800281FC 44855000 */ mtc1 $a1, $f10 +/* 028E00 80028200 00000000 */ nop +/* 028E04 80028204 46805120 */ cvt.s.w $f4, $f10 +/* 028E08 80028208 01F80019 */ multu $t7, $t8 +/* 028E0C 8002820C E7A40038 */ swc1 $f4, 0x38($sp) +/* 028E10 80028210 C7AA0038 */ lwc1 $f10, 0x38($sp) +/* 028E14 80028214 848D00A8 */ lh $t5, 0xa8($a0) +/* 028E18 80028218 460A4103 */ div.s $f4, $f8, $f10 +/* 028E1C 8002821C C64A000C */ lwc1 $f10, 0xc($s2) +/* 028E20 80028220 000D7103 */ sra $t6, $t5, 4 +/* 028E24 80028224 00003012 */ mflo $a2 +/* 028E28 80028228 46045282 */ mul.s $f10, $f10, $f4 +/* 028E2C 8002822C 4459F800 */ cfc1 $t9, $31 +/* 028E30 80028230 00000000 */ nop +/* 028E34 80028234 37210003 */ ori $at, $t9, 3 +/* 028E38 80028238 38210002 */ xori $at, $at, 2 +/* 028E3C 8002823C 44C1F800 */ ctc1 $at, $31 +/* 028E40 80028240 00000000 */ nop +/* 028E44 80028244 46005124 */ cvt.w.s $f4, $f10 +/* 028E48 80028248 44865000 */ mtc1 $a2, $f10 +/* 028E4C 8002824C 44D9F800 */ ctc1 $t9, $31 +/* 028E50 80028250 440C2000 */ mfc1 $t4, $f4 +/* 028E54 80028254 46805120 */ cvt.s.w $f4, $f10 +/* 028E58 80028258 018E7821 */ addu $t7, $t4, $t6 +/* 028E5C 8002825C 01F31024 */ and $v0, $t7, $s3 +/* 028E60 80028260 E7A40048 */ swc1 $f4, 0x48($sp) +/* 028E64 80028264 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 028E68 80028268 848D00AA */ lh $t5, 0xaa($a0) +/* 028E6C 8002826C 460A4103 */ div.s $f4, $f8, $f10 +/* 028E70 80028270 C6480014 */ lwc1 $f8, 0x14($s2) +/* 028E74 80028274 8FAF014C */ lw $t7, 0x14c($sp) +/* 028E78 80028278 000D6103 */ sra $t4, $t5, 4 +/* 028E7C 8002827C A7A20130 */ sh $v0, 0x130($sp) +/* 028E80 80028280 46044282 */ mul.s $f10, $f8, $f4 +/* 028E84 80028284 C7A40038 */ lwc1 $f4, 0x38($sp) +/* 028E88 80028288 4458F800 */ cfc1 $t8, $31 +/* 028E8C 8002828C 00000000 */ nop +/* 028E90 80028290 37010003 */ ori $at, $t8, 3 +/* 028E94 80028294 38210002 */ xori $at, $at, 2 +/* 028E98 80028298 44C1F800 */ ctc1 $at, $31 +/* 028E9C 8002829C 37010003 */ ori $at, $t8, 3 +/* 028EA0 800282A0 46005224 */ cvt.w.s $f8, $f10 +/* 028EA4 800282A4 C7AA0048 */ lwc1 $f10, 0x48($sp) +/* 028EA8 800282A8 44D8F800 */ ctc1 $t8, $31 +/* 028EAC 800282AC 44194000 */ mfc1 $t9, $f8 +/* 028EB0 800282B0 46002382 */ mul.s $f14, $f4, $f0 +/* 028EB4 800282B4 38210002 */ xori $at, $at, 2 +/* 028EB8 800282B8 032C7021 */ addu $t6, $t9, $t4 +/* 028EBC 800282BC 01CF1824 */ and $v1, $t6, $t7 +/* 028EC0 800282C0 46065002 */ mul.s $f0, $f10, $f6 +/* 028EC4 800282C4 46007407 */ neg.s $f16, $f14 +/* 028EC8 800282C8 E7AE00B4 */ swc1 $f14, 0xb4($sp) +/* 028ECC 800282CC E7AE00AC */ swc1 $f14, 0xac($sp) +/* 028ED0 800282D0 46008201 */ sub.s $f8, $f16, $f0 +/* 028ED4 800282D4 A7A3011C */ sh $v1, 0x11c($sp) +/* 028ED8 800282D8 44C1F800 */ ctc1 $at, $31 +/* 028EDC 800282DC 00000000 */ nop +/* 028EE0 800282E0 46004124 */ cvt.w.s $f4, $f8 +/* 028EE4 800282E4 44D8F800 */ ctc1 $t8, $31 +/* 028EE8 800282E8 440C2000 */ mfc1 $t4, $f4 +/* 028EEC 800282EC 460E0281 */ sub.s $f10, $f0, $f14 +/* 028EF0 800282F0 01827021 */ addu $t6, $t4, $v0 +/* 028EF4 800282F4 444FF800 */ cfc1 $t7, $31 +/* 028EF8 800282F8 A7AE0128 */ sh $t6, 0x128($sp) +/* 028EFC 800282FC 35E10003 */ ori $at, $t7, 3 +/* 028F00 80028300 38210002 */ xori $at, $at, 2 +/* 028F04 80028304 44C1F800 */ ctc1 $at, $31 +/* 028F08 80028308 00000000 */ nop +/* 028F0C 8002830C 460051A4 */ cvt.w.s $f6, $f10 +/* 028F10 80028310 44CFF800 */ ctc1 $t7, $31 +/* 028F14 80028314 44043000 */ mfc1 $a0, $f6 +/* 028F18 80028318 46007201 */ sub.s $f8, $f14, $f0 +/* 028F1C 8002831C 0083C821 */ addu $t9, $a0, $v1 +/* 028F20 80028320 444CF800 */ cfc1 $t4, $31 +/* 028F24 80028324 A7B90114 */ sh $t9, 0x114($sp) +/* 028F28 80028328 35810003 */ ori $at, $t4, 3 +/* 028F2C 8002832C 38210002 */ xori $at, $at, 2 +/* 028F30 80028330 44C1F800 */ ctc1 $at, $31 +/* 028F34 80028334 00000000 */ nop +/* 028F38 80028338 46004124 */ cvt.w.s $f4, $f8 +/* 028F3C 8002833C 44CCF800 */ ctc1 $t4, $31 +/* 028F40 80028340 44182000 */ mfc1 $t8, $f4 +/* 028F44 80028344 46008281 */ sub.s $f10, $f16, $f0 +/* 028F48 80028348 03026821 */ addu $t5, $t8, $v0 +/* 028F4C 8002834C 4459F800 */ cfc1 $t9, $31 +/* 028F50 80028350 A7AD012A */ sh $t5, 0x12a($sp) +/* 028F54 80028354 37210003 */ ori $at, $t9, 3 +/* 028F58 80028358 38210002 */ xori $at, $at, 2 +/* 028F5C 8002835C 44C1F800 */ ctc1 $at, $31 +/* 028F60 80028360 00000000 */ nop +/* 028F64 80028364 460051A4 */ cvt.w.s $f6, $f10 +/* 028F68 80028368 44D9F800 */ ctc1 $t9, $31 +/* 028F6C 8002836C 440F3000 */ mfc1 $t7, $f6 +/* 028F70 80028370 46007200 */ add.s $f8, $f14, $f0 +/* 028F74 80028374 01E3C021 */ addu $t8, $t7, $v1 +/* 028F78 80028378 444DF800 */ cfc1 $t5, $31 +/* 028F7C 8002837C A7B80116 */ sh $t8, 0x116($sp) +/* 028F80 80028380 35A10003 */ ori $at, $t5, 3 +/* 028F84 80028384 38210002 */ xori $at, $at, 2 +/* 028F88 80028388 44C1F800 */ ctc1 $at, $31 +/* 028F8C 8002838C 00000000 */ nop +/* 028F90 80028390 46004124 */ cvt.w.s $f4, $f8 +/* 028F94 80028394 44CDF800 */ ctc1 $t5, $31 +/* 028F98 80028398 44052000 */ mfc1 $a1, $f4 +/* 028F9C 8002839C 46007281 */ sub.s $f10, $f14, $f0 +/* 028FA0 800283A0 00A27021 */ addu $t6, $a1, $v0 +/* 028FA4 800283A4 444FF800 */ cfc1 $t7, $31 +/* 028FA8 800283A8 A7AE012C */ sh $t6, 0x12c($sp) +/* 028FAC 800283AC 35E10003 */ ori $at, $t7, 3 +/* 028FB0 800283B0 38210002 */ xori $at, $at, 2 +/* 028FB4 800283B4 44C1F800 */ ctc1 $at, $31 +/* 028FB8 800283B8 00827021 */ addu $t6, $a0, $v0 +/* 028FBC 800283BC 460051A4 */ cvt.w.s $f6, $f10 +/* 028FC0 800283C0 A7AE012E */ sh $t6, 0x12e($sp) +/* 028FC4 800283C4 44CFF800 */ ctc1 $t7, $31 +/* 028FC8 800283C8 00A37821 */ addu $t7, $a1, $v1 +/* 028FCC 800283CC 46000300 */ add.s $f12, $f0, $f0 +/* 028FD0 800283D0 A7AF011A */ sh $t7, 0x11a($sp) +/* 028FD4 800283D4 460C8201 */ sub.s $f8, $f16, $f12 +/* 028FD8 800283D8 44193000 */ mfc1 $t9, $f6 +/* 028FDC 800283DC 4458F800 */ cfc1 $t8, $31 +/* 028FE0 800283E0 03236021 */ addu $t4, $t9, $v1 +/* 028FE4 800283E4 37010003 */ ori $at, $t8, 3 +/* 028FE8 800283E8 38210002 */ xori $at, $at, 2 +/* 028FEC 800283EC 44C1F800 */ ctc1 $at, $31 +/* 028FF0 800283F0 A7AC0118 */ sh $t4, 0x118($sp) +/* 028FF4 800283F4 46004124 */ cvt.w.s $f4, $f8 +/* 028FF8 800283F8 44D8F800 */ ctc1 $t8, $31 +/* 028FFC 800283FC 440C2000 */ mfc1 $t4, $f4 +/* 029000 80028400 460E7080 */ add.s $f2, $f14, $f14 +/* 029004 80028404 01827021 */ addu $t6, $t4, $v0 +/* 029008 80028408 46020281 */ sub.s $f10, $f0, $f2 +/* 02900C 8002840C A7AE0132 */ sh $t6, 0x132($sp) +/* 029010 80028410 444FF800 */ cfc1 $t7, $31 +/* 029014 80028414 00000000 */ nop +/* 029018 80028418 35E10003 */ ori $at, $t7, 3 +/* 02901C 8002841C 38210002 */ xori $at, $at, 2 +/* 029020 80028420 44C1F800 */ ctc1 $at, $31 +/* 029024 80028424 00000000 */ nop +/* 029028 80028428 460051A4 */ cvt.w.s $f6, $f10 +/* 02902C 8002842C 44CFF800 */ ctc1 $t7, $31 +/* 029030 80028430 44193000 */ mfc1 $t9, $f6 +/* 029034 80028434 460C7201 */ sub.s $f8, $f14, $f12 +/* 029038 80028438 03236021 */ addu $t4, $t9, $v1 +/* 02903C 8002843C 444EF800 */ cfc1 $t6, $31 +/* 029040 80028440 A7AC011E */ sh $t4, 0x11e($sp) +/* 029044 80028444 35C10003 */ ori $at, $t6, 3 +/* 029048 80028448 38210002 */ xori $at, $at, 2 +/* 02904C 8002844C 44C1F800 */ ctc1 $at, $31 +/* 029050 80028450 00000000 */ nop +/* 029054 80028454 46004124 */ cvt.w.s $f4, $f8 +/* 029058 80028458 44CEF800 */ ctc1 $t6, $31 +/* 02905C 8002845C 440D2000 */ mfc1 $t5, $f4 +/* 029060 80028460 46001287 */ neg.s $f10, $f2 +/* 029064 80028464 46005181 */ sub.s $f6, $f10, $f0 +/* 029068 80028468 01A2C821 */ addu $t9, $t5, $v0 +/* 02906C 8002846C 444CF800 */ cfc1 $t4, $31 +/* 029070 80028470 A7B90134 */ sh $t9, 0x134($sp) +/* 029074 80028474 35810003 */ ori $at, $t4, 3 +/* 029078 80028478 38210002 */ xori $at, $at, 2 +/* 02907C 8002847C 44C1F800 */ ctc1 $at, $31 +/* 029080 80028480 00000000 */ nop +/* 029084 80028484 46003224 */ cvt.w.s $f8, $f6 +/* 029088 80028488 44CCF800 */ ctc1 $t4, $31 +/* 02908C 8002848C 00000000 */ nop +/* 029090 80028490 00000000 */ nop +/* 029094 80028494 C7AE00B4 */ lwc1 $f14, 0xb4($sp) +/* 029098 80028498 C7B000AC */ lwc1 $f16, 0xac($sp) +/* 02909C 8002849C 460C7100 */ add.s $f4, $f14, $f12 +/* 0290A0 800284A0 44184000 */ mfc1 $t8, $f8 +/* 0290A4 800284A4 4459F800 */ cfc1 $t9, $31 +/* 0290A8 800284A8 03036821 */ addu $t5, $t8, $v1 +/* 0290AC 800284AC 37210003 */ ori $at, $t9, 3 +/* 0290B0 800284B0 38210002 */ xori $at, $at, 2 +/* 0290B4 800284B4 44C1F800 */ ctc1 $at, $31 +/* 0290B8 800284B8 A7AD0120 */ sh $t5, 0x120($sp) +/* 0290BC 800284BC 460022A4 */ cvt.w.s $f10, $f4 +/* 0290C0 800284C0 3C138012 */ lui $s3, %hi(gSceneCurrDisplayList) # $s3, 0x8012 +/* 0290C4 800284C4 44D9F800 */ ctc1 $t9, $31 +/* 0290C8 800284C8 440F5000 */ mfc1 $t7, $f10 +/* 0290CC 800284CC 46108080 */ add.s $f2, $f16, $f16 +/* 0290D0 800284D0 01E2C021 */ addu $t8, $t7, $v0 +/* 0290D4 800284D4 46001181 */ sub.s $f6, $f2, $f0 +/* 0290D8 800284D8 A7B80136 */ sh $t8, 0x136($sp) +/* 0290DC 800284DC 444DF800 */ cfc1 $t5, $31 +/* 0290E0 800284E0 2673B0A0 */ addiu $s3, %lo(gSceneCurrDisplayList) # addiu $s3, $s3, -0x4f60 +/* 0290E4 800284E4 35A10003 */ ori $at, $t5, 3 +/* 0290E8 800284E8 38210002 */ xori $at, $at, 2 +/* 0290EC 800284EC 44C1F800 */ ctc1 $at, $31 +/* 0290F0 800284F0 3C058012 */ lui $a1, %hi(gSceneCurrMatrix) # $a1, 0x8012 +/* 0290F4 800284F4 46003224 */ cvt.w.s $f8, $f6 +/* 0290F8 800284F8 24A5B0A4 */ addiu $a1, %lo(gSceneCurrMatrix) # addiu $a1, $a1, -0x4f5c +/* 0290FC 800284FC 44CDF800 */ ctc1 $t5, $31 +/* 029100 80028500 440E4000 */ mfc1 $t6, $f8 +/* 029104 80028504 460E6101 */ sub.s $f4, $f12, $f14 +/* 029108 80028508 01C37821 */ addu $t7, $t6, $v1 +/* 02910C 8002850C 4458F800 */ cfc1 $t8, $31 +/* 029110 80028510 A7AF0122 */ sh $t7, 0x122($sp) +/* 029114 80028514 37010003 */ ori $at, $t8, 3 +/* 029118 80028518 38210002 */ xori $at, $at, 2 +/* 02911C 8002851C 44C1F800 */ ctc1 $at, $31 +/* 029120 80028520 02602025 */ move $a0, $s3 +/* 029124 80028524 460022A4 */ cvt.w.s $f10, $f4 +/* 029128 80028528 44D8F800 */ ctc1 $t8, $31 +/* 02912C 8002852C 440C5000 */ mfc1 $t4, $f10 +/* 029130 80028530 46001180 */ add.s $f6, $f2, $f0 +/* 029134 80028534 01827021 */ addu $t6, $t4, $v0 +/* 029138 80028538 444FF800 */ cfc1 $t7, $31 +/* 02913C 8002853C A7AE0138 */ sh $t6, 0x138($sp) +/* 029140 80028540 35E10003 */ ori $at, $t7, 3 +/* 029144 80028544 38210002 */ xori $at, $at, 2 +/* 029148 80028548 44C1F800 */ ctc1 $at, $31 +/* 02914C 8002854C 00000000 */ nop +/* 029150 80028550 46003224 */ cvt.w.s $f8, $f6 +/* 029154 80028554 44194000 */ mfc1 $t9, $f8 +/* 029158 80028558 44CFF800 */ ctc1 $t7, $31 +/* 02915C 8002855C 03236021 */ addu $t4, $t9, $v1 +/* 029160 80028560 0C01A102 */ jal matrix_world_origin +/* 029164 80028564 A7AC0124 */ sh $t4, 0x124($sp) +/* 029168 80028568 3C04800E */ lui $a0, %hi(gCurrentLevelHeader2) # $a0, 0x800e +/* 02916C 8002856C 8C84C91C */ lw $a0, %lo(gCurrentLevelHeader2)($a0) +/* 029170 80028570 2403FFFF */ li $v1, -1 +/* 029174 80028574 8C8A0074 */ lw $t2, 0x74($a0) +/* 029178 80028578 2406FFFF */ li $a2, -1 +/* 02917C 8002857C 11430007 */ beq $t2, $v1, .L8002859C +/* 029180 80028580 24050001 */ li $a1, 1 +/* 029184 80028584 8C820078 */ lw $v0, 0x78($a0) +/* 029188 80028588 00000000 */ nop +/* 02918C 8002858C 14430005 */ bne $v0, $v1, .L800285A4 +/* 029190 80028590 00000000 */ nop +/* 029194 80028594 10000003 */ b .L800285A4 +/* 029198 80028598 01401025 */ move $v0, $t2 +.L8002859C: +/* 02919C 8002859C 8FA20078 */ lw $v0, 0x78($sp) +/* 0291A0 800285A0 00005025 */ move $t2, $zero +.L800285A4: +/* 0291A4 800285A4 11400006 */ beqz $t2, .L800285C0 +/* 0291A8 800285A8 2407FF00 */ li $a3, -256 +/* 0291AC 800285AC 8C470010 */ lw $a3, 0x10($v0) +/* 0291B0 800285B0 2401FF00 */ li $at, -256 +/* 0291B4 800285B4 00E17024 */ and $t6, $a3, $at +/* 0291B8 800285B8 8D460010 */ lw $a2, 0x10($t2) +/* 0291BC 800285BC 01C03825 */ move $a3, $t6 +.L800285C0: +/* 0291C0 800285C0 02602025 */ move $a0, $s3 +/* 0291C4 800285C4 0C01FD65 */ jal func_8007F594 +/* 0291C8 800285C8 AFAA007C */ sw $t2, 0x7c($sp) +/* 0291CC 800285CC 3C058012 */ lui $a1, %hi(D_8011B110) # $a1, 0x8012 +/* 0291D0 800285D0 8CA5B110 */ lw $a1, %lo(D_8011B110)($a1) +/* 0291D4 800285D4 8FA40074 */ lw $a0, 0x74($sp) +/* 0291D8 800285D8 00057A00 */ sll $t7, $a1, 8 +/* 0291DC 800285DC 0C01ED1B */ jal set_animated_texture_header +/* 0291E0 800285E0 01E02825 */ move $a1, $t7 +/* 0291E4 800285E4 8E630000 */ lw $v1, ($s3) +/* 0291E8 800285E8 3C010700 */ lui $at, 0x700 +/* 0291EC 800285EC 24780008 */ addiu $t8, $v1, 8 +/* 0291F0 800285F0 AE780000 */ sw $t8, ($s3) +/* 0291F4 800285F4 8445000A */ lh $a1, 0xa($v0) +/* 0291F8 800285F8 8FAA007C */ lw $t2, 0x7c($sp) +/* 0291FC 800285FC 30AD00FF */ andi $t5, $a1, 0xff +/* 029200 80028600 000DCC00 */ sll $t9, $t5, 0x10 +/* 029204 80028604 000570C0 */ sll $t6, $a1, 3 +/* 029208 80028608 31CFFFFF */ andi $t7, $t6, 0xffff +/* 02920C 8002860C 03216025 */ or $t4, $t9, $at +/* 029210 80028610 018FC025 */ or $t8, $t4, $t7 +/* 029214 80028614 AC780000 */ sw $t8, ($v1) +/* 029218 80028618 8C4D000C */ lw $t5, 0xc($v0) +/* 02921C 8002861C 3C098000 */ lui $t1, 0x8000 +/* 029220 80028620 3C0B8012 */ lui $t3, %hi(gSceneCurrVertexList) # $t3, 0x8012 +/* 029224 80028624 01A9C821 */ addu $t9, $t5, $t1 +/* 029228 80028628 256BB0A8 */ addiu $t3, %lo(gSceneCurrVertexList) # addiu $t3, $t3, -0x4f58 +/* 02922C 8002862C AC790004 */ sw $t9, 4($v1) +/* 029230 80028630 8D6C0000 */ lw $t4, ($t3) +/* 029234 80028634 8E630000 */ lw $v1, ($s3) +/* 029238 80028638 01897821 */ addu $t7, $t4, $t1 +/* 02923C 8002863C 31F80006 */ andi $t8, $t7, 6 +/* 029240 80028640 370D0040 */ ori $t5, $t8, 0x40 +/* 029244 80028644 246E0008 */ addiu $t6, $v1, 8 +/* 029248 80028648 AE6E0000 */ sw $t6, ($s3) +/* 02924C 8002864C 31B900FF */ andi $t9, $t5, 0xff +/* 029250 80028650 00197400 */ sll $t6, $t9, 0x10 +/* 029254 80028654 3C010400 */ lui $at, 0x400 +/* 029258 80028658 01C16025 */ or $t4, $t6, $at +/* 02925C 8002865C 358F00AA */ ori $t7, $t4, 0xaa +/* 029260 80028660 AC6F0000 */ sw $t7, ($v1) +/* 029264 80028664 8D780000 */ lw $t8, ($t3) +/* 029268 80028668 3C0E0571 */ lui $t6, (0x05710080 >> 16) # lui $t6, 0x571 +/* 02926C 8002866C 03096821 */ addu $t5, $t8, $t1 +/* 029270 80028670 AC6D0004 */ sw $t5, 4($v1) +/* 029274 80028674 8E630000 */ lw $v1, ($s3) +/* 029278 80028678 35CE0080 */ ori $t6, (0x05710080 & 0xFFFF) # ori $t6, $t6, 0x80 +/* 02927C 8002867C 24790008 */ addiu $t9, $v1, 8 +/* 029280 80028680 AE790000 */ sw $t9, ($s3) +/* 029284 80028684 3C0C8012 */ lui $t4, %hi(gSceneCurrTriList) # $t4, 0x8012 +/* 029288 80028688 AC6E0000 */ sw $t6, ($v1) +/* 02928C 8002868C 8D8CB0AC */ lw $t4, %lo(gSceneCurrTriList)($t4) +/* 029290 80028690 3C0DE700 */ lui $t5, 0xe700 +/* 029294 80028694 01897821 */ addu $t7, $t4, $t1 +/* 029298 80028698 AC6F0004 */ sw $t7, 4($v1) +/* 02929C 8002869C 8E630000 */ lw $v1, ($s3) +/* 0292A0 800286A0 3C0EFA00 */ lui $t6, 0xfa00 +/* 0292A4 800286A4 24780008 */ addiu $t8, $v1, 8 +/* 0292A8 800286A8 AE780000 */ sw $t8, ($s3) +/* 0292AC 800286AC AC600004 */ sw $zero, 4($v1) +/* 0292B0 800286B0 1140000E */ beqz $t2, .L800286EC +/* 0292B4 800286B4 AC6D0000 */ sw $t5, ($v1) +/* 0292B8 800286B8 8E630000 */ lw $v1, ($s3) +/* 0292BC 800286BC 240CFFFF */ li $t4, -1 +/* 0292C0 800286C0 24790008 */ addiu $t9, $v1, 8 +/* 0292C4 800286C4 AE790000 */ sw $t9, ($s3) +/* 0292C8 800286C8 AC6C0004 */ sw $t4, 4($v1) +/* 0292CC 800286CC AC6E0000 */ sw $t6, ($v1) +/* 0292D0 800286D0 8E630000 */ lw $v1, ($s3) +/* 0292D4 800286D4 3C18FB00 */ lui $t8, 0xfb00 +/* 0292D8 800286D8 246F0008 */ addiu $t7, $v1, 8 +/* 0292DC 800286DC AE6F0000 */ sw $t7, ($s3) +/* 0292E0 800286E0 240DFF00 */ li $t5, -256 +/* 0292E4 800286E4 AC6D0004 */ sw $t5, 4($v1) +/* 0292E8 800286E8 AC780000 */ sw $t8, ($v1) +.L800286EC: +/* 0292EC 800286EC 0C01ECF4 */ jal reset_render_settings +/* 0292F0 800286F0 02602025 */ move $a0, $s3 +/* 0292F4 800286F4 3C014340 */ li $at, 0x43400000 # 192.000000 +/* 0292F8 800286F8 44815000 */ mtc1 $at, $f10 +/* 0292FC 800286FC C6440010 */ lwc1 $f4, 0x10($s2) +/* 029300 80028700 27A400DC */ addiu $a0, $sp, 0xdc +/* 029304 80028704 460A2180 */ add.s $f6, $f4, $f10 +/* 029308 80028708 27A200B8 */ addiu $v0, $sp, 0xb8 +/* 02930C 8002870C 4459F800 */ cfc1 $t9, $31 +/* 029310 80028710 27A700DC */ addiu $a3, $sp, 0xdc +/* 029314 80028714 37210003 */ ori $at, $t9, 3 +/* 029318 80028718 38210002 */ xori $at, $at, 2 +/* 02931C 8002871C 44C1F800 */ ctc1 $at, $31 +/* 029320 80028720 27A600CC */ addiu $a2, $sp, 0xcc +/* 029324 80028724 46003224 */ cvt.w.s $f8, $f6 +/* 029328 80028728 240300FF */ li $v1, 255 +/* 02932C 8002872C 44054000 */ mfc1 $a1, $f8 +/* 029330 80028730 44D9F800 */ ctc1 $t9, $31 +/* 029334 80028734 00057400 */ sll $t6, $a1, 0x10 +/* 029338 80028738 000E2C03 */ sra $a1, $t6, 0x10 +.L8002873C: +/* 02933C 8002873C C4840000 */ lwc1 $f4, ($a0) +/* 029340 80028740 C64A000C */ lwc1 $f10, 0xc($s2) +/* 029344 80028744 A6250002 */ sh $a1, 2($s1) +/* 029348 80028748 460A2180 */ add.s $f6, $f4, $f10 +/* 02934C 8002874C 24840004 */ addiu $a0, $a0, 4 +/* 029350 80028750 444FF800 */ cfc1 $t7, $31 +/* 029354 80028754 00000000 */ nop +/* 029358 80028758 35E10003 */ ori $at, $t7, 3 +/* 02935C 8002875C 38210002 */ xori $at, $at, 2 +/* 029360 80028760 44C1F800 */ ctc1 $at, $31 +/* 029364 80028764 00000000 */ nop +/* 029368 80028768 46003224 */ cvt.w.s $f8, $f6 +/* 02936C 8002876C 44184000 */ mfc1 $t8, $f8 +/* 029370 80028770 44CFF800 */ ctc1 $t7, $31 +/* 029374 80028774 A6380000 */ sh $t8, ($s1) +/* 029378 80028778 C64A0014 */ lwc1 $f10, 0x14($s2) +/* 02937C 8002877C C4440000 */ lwc1 $f4, ($v0) +/* 029380 80028780 A2230006 */ sb $v1, 6($s1) +/* 029384 80028784 460A2180 */ add.s $f6, $f4, $f10 +/* 029388 80028788 A2230007 */ sb $v1, 7($s1) +/* 02938C 8002878C 444DF800 */ cfc1 $t5, $31 +/* 029390 80028790 A2230008 */ sb $v1, 8($s1) +/* 029394 80028794 35A10003 */ ori $at, $t5, 3 +/* 029398 80028798 38210002 */ xori $at, $at, 2 +/* 02939C 8002879C 44C1F800 */ ctc1 $at, $31 +/* 0293A0 800287A0 0046082B */ sltu $at, $v0, $a2 +/* 0293A4 800287A4 46003224 */ cvt.w.s $f8, $f6 +/* 0293A8 800287A8 24420004 */ addiu $v0, $v0, 4 +/* 0293AC 800287AC 44194000 */ mfc1 $t9, $f8 +/* 0293B0 800287B0 44CDF800 */ ctc1 $t5, $31 +/* 0293B4 800287B4 10200003 */ beqz $at, .L800287C4 +/* 0293B8 800287B8 A6390004 */ sh $t9, 4($s1) +/* 0293BC 800287BC 10000002 */ b .L800287C8 +/* 0293C0 800287C0 A2230009 */ sb $v1, 9($s1) +.L800287C4: +/* 0293C4 800287C4 A2200009 */ sb $zero, 9($s1) +.L800287C8: +/* 0293C8 800287C8 0047082B */ sltu $at, $v0, $a3 +/* 0293CC 800287CC 1420FFDB */ bnez $at, .L8002873C +/* 0293D0 800287D0 2631000A */ addiu $s1, $s1, 0xa +/* 0293D4 800287D4 3C02800E */ lui $v0, %hi(D_800DC92C) # $v0, 0x800e +/* 0293D8 800287D8 2442C92C */ addiu $v0, %lo(D_800DC92C) # addiu $v0, $v0, -0x36d4 +/* 0293DC 800287DC 00003025 */ move $a2, $zero +/* 0293E0 800287E0 24070008 */ li $a3, 8 +/* 0293E4 800287E4 24050040 */ li $a1, 64 +/* 0293E8 800287E8 27A40114 */ addiu $a0, $sp, 0x114 +/* 0293EC 800287EC 27A30128 */ addiu $v1, $sp, 0x128 +.L800287F0: +/* 0293F0 800287F0 A2050000 */ sb $a1, ($s0) +/* 0293F4 800287F4 904E0000 */ lbu $t6, ($v0) +/* 0293F8 800287F8 24C60002 */ addiu $a2, $a2, 2 +/* 0293FC 800287FC A20E0001 */ sb $t6, 1($s0) +/* 029400 80028800 904C0000 */ lbu $t4, ($v0) +/* 029404 80028804 24420006 */ addiu $v0, $v0, 6 +/* 029408 80028808 000C7840 */ sll $t7, $t4, 1 +/* 02940C 8002880C 006FC021 */ addu $t8, $v1, $t7 +/* 029410 80028810 870D0000 */ lh $t5, ($t8) +/* 029414 80028814 26100020 */ addiu $s0, $s0, 0x20 +/* 029418 80028818 A60DFFE4 */ sh $t5, -0x1c($s0) +/* 02941C 8002881C 9059FFFA */ lbu $t9, -6($v0) +/* 029420 80028820 00000000 */ nop +/* 029424 80028824 00197040 */ sll $t6, $t9, 1 +/* 029428 80028828 008E6021 */ addu $t4, $a0, $t6 +/* 02942C 8002882C 858F0000 */ lh $t7, ($t4) +/* 029430 80028830 00000000 */ nop +/* 029434 80028834 A60FFFE6 */ sh $t7, -0x1a($s0) +/* 029438 80028838 9058FFFB */ lbu $t8, -5($v0) +/* 02943C 8002883C 00000000 */ nop +/* 029440 80028840 A218FFE2 */ sb $t8, -0x1e($s0) +/* 029444 80028844 904DFFFB */ lbu $t5, -5($v0) +/* 029448 80028848 00000000 */ nop +/* 02944C 8002884C 000DC840 */ sll $t9, $t5, 1 +/* 029450 80028850 00797021 */ addu $t6, $v1, $t9 +/* 029454 80028854 85CC0000 */ lh $t4, ($t6) +/* 029458 80028858 00000000 */ nop +/* 02945C 8002885C A60CFFE8 */ sh $t4, -0x18($s0) +/* 029460 80028860 904FFFFB */ lbu $t7, -5($v0) +/* 029464 80028864 00000000 */ nop +/* 029468 80028868 000FC040 */ sll $t8, $t7, 1 +/* 02946C 8002886C 00986821 */ addu $t5, $a0, $t8 +/* 029470 80028870 85B90000 */ lh $t9, ($t5) +/* 029474 80028874 00000000 */ nop +/* 029478 80028878 A619FFEA */ sh $t9, -0x16($s0) +/* 02947C 8002887C 904EFFFC */ lbu $t6, -4($v0) +/* 029480 80028880 00000000 */ nop +/* 029484 80028884 A20EFFE3 */ sb $t6, -0x1d($s0) +/* 029488 80028888 904CFFFC */ lbu $t4, -4($v0) +/* 02948C 8002888C 00000000 */ nop +/* 029490 80028890 000C7840 */ sll $t7, $t4, 1 +/* 029494 80028894 006FC021 */ addu $t8, $v1, $t7 +/* 029498 80028898 870D0000 */ lh $t5, ($t8) +/* 02949C 8002889C 00000000 */ nop +/* 0294A0 800288A0 A60DFFEC */ sh $t5, -0x14($s0) +/* 0294A4 800288A4 9059FFFC */ lbu $t9, -4($v0) +/* 0294A8 800288A8 00000000 */ nop +/* 0294AC 800288AC 00197040 */ sll $t6, $t9, 1 +/* 0294B0 800288B0 008E6021 */ addu $t4, $a0, $t6 +/* 0294B4 800288B4 858F0000 */ lh $t7, ($t4) +/* 0294B8 800288B8 A205FFF0 */ sb $a1, -0x10($s0) +/* 0294BC 800288BC A60FFFEE */ sh $t7, -0x12($s0) +/* 0294C0 800288C0 9058FFFD */ lbu $t8, -3($v0) +/* 0294C4 800288C4 00000000 */ nop +/* 0294C8 800288C8 A218FFF1 */ sb $t8, -0xf($s0) +/* 0294CC 800288CC 904DFFFD */ lbu $t5, -3($v0) +/* 0294D0 800288D0 00000000 */ nop +/* 0294D4 800288D4 000DC840 */ sll $t9, $t5, 1 +/* 0294D8 800288D8 00797021 */ addu $t6, $v1, $t9 +/* 0294DC 800288DC 85CC0000 */ lh $t4, ($t6) +/* 0294E0 800288E0 00000000 */ nop +/* 0294E4 800288E4 A60CFFF4 */ sh $t4, -0xc($s0) +/* 0294E8 800288E8 904FFFFD */ lbu $t7, -3($v0) +/* 0294EC 800288EC 00000000 */ nop +/* 0294F0 800288F0 000FC040 */ sll $t8, $t7, 1 +/* 0294F4 800288F4 00986821 */ addu $t5, $a0, $t8 +/* 0294F8 800288F8 85B90000 */ lh $t9, ($t5) +/* 0294FC 800288FC 00000000 */ nop +/* 029500 80028900 A619FFF6 */ sh $t9, -0xa($s0) +/* 029504 80028904 904EFFFE */ lbu $t6, -2($v0) +/* 029508 80028908 00000000 */ nop +/* 02950C 8002890C A20EFFF2 */ sb $t6, -0xe($s0) +/* 029510 80028910 904CFFFE */ lbu $t4, -2($v0) +/* 029514 80028914 00000000 */ nop +/* 029518 80028918 000C7840 */ sll $t7, $t4, 1 +/* 02951C 8002891C 006FC021 */ addu $t8, $v1, $t7 +/* 029520 80028920 870D0000 */ lh $t5, ($t8) +/* 029524 80028924 00000000 */ nop +/* 029528 80028928 A60DFFF8 */ sh $t5, -8($s0) +/* 02952C 8002892C 9059FFFE */ lbu $t9, -2($v0) +/* 029530 80028930 00000000 */ nop +/* 029534 80028934 00197040 */ sll $t6, $t9, 1 +/* 029538 80028938 008E6021 */ addu $t4, $a0, $t6 +/* 02953C 8002893C 858F0000 */ lh $t7, ($t4) +/* 029540 80028940 00000000 */ nop +/* 029544 80028944 A60FFFFA */ sh $t7, -6($s0) +/* 029548 80028948 9058FFFF */ lbu $t8, -1($v0) +/* 02954C 8002894C 00000000 */ nop +/* 029550 80028950 A218FFF3 */ sb $t8, -0xd($s0) +/* 029554 80028954 904DFFFF */ lbu $t5, -1($v0) +/* 029558 80028958 00000000 */ nop +/* 02955C 8002895C 000DC840 */ sll $t9, $t5, 1 +/* 029560 80028960 00797021 */ addu $t6, $v1, $t9 +/* 029564 80028964 85CC0000 */ lh $t4, ($t6) +/* 029568 80028968 00000000 */ nop +/* 02956C 8002896C A60CFFFC */ sh $t4, -4($s0) +/* 029570 80028970 904FFFFF */ lbu $t7, -1($v0) +/* 029574 80028974 00000000 */ nop +/* 029578 80028978 000FC040 */ sll $t8, $t7, 1 +/* 02957C 8002897C 00986821 */ addu $t5, $a0, $t8 +/* 029580 80028980 85B90000 */ lh $t9, ($t5) +/* 029584 80028984 14C7FF9A */ bne $a2, $a3, .L800287F0 +/* 029588 80028988 A619FFFE */ sh $t9, -2($s0) +/* 02958C 8002898C 3C018012 */ lui $at, %hi(gSceneCurrVertexList) # $at, 0x8012 +/* 029590 80028990 AC31B0A8 */ sw $s1, %lo(gSceneCurrVertexList)($at) +/* 029594 80028994 3C018012 */ lui $at, %hi(gSceneCurrTriList) # $at, 0x8012 +/* 029598 80028998 8FBF0024 */ lw $ra, 0x24($sp) +/* 02959C 8002899C AC30B0AC */ sw $s0, %lo(gSceneCurrTriList)($at) +/* 0295A0 800289A0 8FB00014 */ lw $s0, 0x14($sp) +/* 0295A4 800289A4 8FB10018 */ lw $s1, 0x18($sp) +/* 0295A8 800289A8 8FB2001C */ lw $s2, 0x1c($sp) +/* 0295AC 800289AC 8FB30020 */ lw $s3, 0x20($sp) +/* 0295B0 800289B0 03E00008 */ jr $ra +/* 0295B4 800289B4 27BD0158 */ addiu $sp, $sp, 0x158 + diff --git a/asm/non_matchings/vehicle_tricky/func_8005CB68.s b/asm/non_matchings/vehicle_tricky/func_8005CB68.s index 744645ff..bb803256 100644 --- a/asm/non_matchings/vehicle_tricky/func_8005CB68.s +++ b/asm/non_matchings/vehicle_tricky/func_8005CB68.s @@ -1,340 +1,340 @@ -glabel func_8005CB68 -/* 05D768 8005CB68 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 05D76C 8005CB6C AFBF001C */ sw $ra, 0x1c($sp) -/* 05D770 8005CB70 AFB00018 */ sw $s0, 0x18($sp) -/* 05D774 8005CB74 AFA40048 */ sw $a0, 0x48($sp) -/* 05D778 8005CB78 AFA5004C */ sw $a1, 0x4c($sp) -/* 05D77C 8005CB7C 80AF0000 */ lb $t7, ($a1) -/* 05D780 8005CB80 0C01BAA4 */ jal get_settings -/* 05D784 8005CB84 A3AF0043 */ sb $t7, 0x43($sp) -/* 05D788 8005CB88 90580048 */ lbu $t8, 0x48($v0) -/* 05D78C 8005CB8C 24190001 */ li $t9, 1 -/* 05D790 8005CB90 03194804 */ sllv $t1, $t9, $t8 -/* 05D794 8005CB94 AFA90038 */ sw $t1, 0x38($sp) -/* 05D798 8005CB98 AFA20044 */ sw $v0, 0x44($sp) -/* 05D79C 8005CB9C 0C0078A7 */ jal get_misc_asset -/* 05D7A0 8005CBA0 24040044 */ li $a0, 68 -/* 05D7A4 8005CBA4 804C0005 */ lb $t4, 5($v0) -/* 05D7A8 8005CBA8 24040043 */ li $a0, 67 -/* 05D7AC 8005CBAC AFAC002C */ sw $t4, 0x2c($sp) -/* 05D7B0 8005CBB0 804D0006 */ lb $t5, 6($v0) -/* 05D7B4 8005CBB4 00000000 */ nop -/* 05D7B8 8005CBB8 AFAD0028 */ sw $t5, 0x28($sp) -/* 05D7BC 8005CBBC 804E0007 */ lb $t6, 7($v0) -/* 05D7C0 8005CBC0 0C0078A7 */ jal get_misc_asset -/* 05D7C4 8005CBC4 AFAE0024 */ sw $t6, 0x24($sp) -/* 05D7C8 8005CBC8 8FAA0044 */ lw $t2, 0x44($sp) -/* 05D7CC 8005CBCC 804F0000 */ lb $t7, ($v0) -/* 05D7D0 8005CBD0 91440049 */ lbu $a0, 0x49($t2) -/* 05D7D4 8005CBD4 8FA90038 */ lw $t1, 0x38($sp) -/* 05D7D8 8005CBD8 00402825 */ move $a1, $v0 -/* 05D7DC 8005CBDC 108F0006 */ beq $a0, $t7, .L8005CBF8 -/* 05D7E0 8005CBE0 00008025 */ move $s0, $zero -/* 05D7E4 8005CBE4 00A01825 */ move $v1, $a1 -.L8005CBE8: -/* 05D7E8 8005CBE8 80790002 */ lb $t9, 2($v1) -/* 05D7EC 8005CBEC 26100002 */ addiu $s0, $s0, 2 -/* 05D7F0 8005CBF0 1499FFFD */ bne $a0, $t9, .L8005CBE8 -/* 05D7F4 8005CBF4 24630002 */ addiu $v1, $v1, 2 -.L8005CBF8: -/* 05D7F8 8005CBF8 8FAC0048 */ lw $t4, 0x48($sp) -/* 05D7FC 8005CBFC 83AE0043 */ lb $t6, 0x43($sp) -/* 05D800 8005CC00 858D01AC */ lh $t5, 0x1ac($t4) -/* 05D804 8005CC04 0202C021 */ addu $t8, $s0, $v0 -/* 05D808 8005CC08 24030001 */ li $v1, 1 -/* 05D80C 8005CC0C 83100001 */ lb $s0, 1($t8) -/* 05D810 8005CC10 15C30105 */ bne $t6, $v1, .L8005D028 -/* 05D814 8005CC14 AFAD0034 */ sw $t5, 0x34($sp) -/* 05D818 8005CC18 15A30009 */ bne $t5, $v1, .L8005CC40 -/* 05D81C 8005CC1C 2404003E */ li $a0, 62 -/* 05D820 8005CC20 2404003D */ li $a0, 61 -/* 05D824 8005CC24 AFA90038 */ sw $t1, 0x38($sp) -/* 05D828 8005CC28 0C0002CD */ jal play_music -/* 05D82C 8005CC2C AFAA0044 */ sw $t2, 0x44($sp) -/* 05D830 8005CC30 8FA90038 */ lw $t1, 0x38($sp) -/* 05D834 8005CC34 8FAA0044 */ lw $t2, 0x44($sp) -/* 05D838 8005CC38 10000008 */ b .L8005CC5C -/* 05D83C 8005CC3C 91430048 */ lbu $v1, 0x48($t2) -.L8005CC40: -/* 05D840 8005CC40 AFA90038 */ sw $t1, 0x38($sp) -/* 05D844 8005CC44 0C0002CD */ jal play_music -/* 05D848 8005CC48 AFAA0044 */ sw $t2, 0x44($sp) -/* 05D84C 8005CC4C 8FA90038 */ lw $t1, 0x38($sp) -/* 05D850 8005CC50 8FAA0044 */ lw $t2, 0x44($sp) -/* 05D854 8005CC54 00000000 */ nop -/* 05D858 8005CC58 91430048 */ lbu $v1, 0x48($t2) -.L8005CC5C: -/* 05D85C 8005CC5C 8FA80034 */ lw $t0, 0x34($sp) -/* 05D860 8005CC60 10600002 */ beqz $v1, .L8005CC6C -/* 05D864 8005CC64 24010005 */ li $at, 5 -/* 05D868 8005CC68 14610063 */ bne $v1, $at, .L8005CDF8 -.L8005CC6C: -/* 05D86C 8005CC6C 240B0001 */ li $t3, 1 -/* 05D870 8005CC70 150B000E */ bne $t0, $t3, .L8005CCAC -/* 05D874 8005CC74 00000000 */ nop -/* 05D878 8005CC78 954F000C */ lhu $t7, 0xc($t2) -/* 05D87C 8005CC7C 914C0049 */ lbu $t4, 0x49($t2) -/* 05D880 8005CC80 8D580004 */ lw $t8, 4($t2) -/* 05D884 8005CC84 01E9C825 */ or $t9, $t7, $t1 -/* 05D888 8005CC88 000C7080 */ sll $t6, $t4, 2 -/* 05D88C 8005CC8C A559000C */ sh $t9, 0xc($t2) -/* 05D890 8005CC90 030E1021 */ addu $v0, $t8, $t6 -/* 05D894 8005CC94 8C4D0000 */ lw $t5, ($v0) -/* 05D898 8005CC98 00000000 */ nop -/* 05D89C 8005CC9C 35AF0002 */ ori $t7, $t5, 2 -/* 05D8A0 8005CCA0 AC4F0000 */ sw $t7, ($v0) -/* 05D8A4 8005CCA4 91430048 */ lbu $v1, 0x48($t2) -/* 05D8A8 8005CCA8 00000000 */ nop -.L8005CCAC: -/* 05D8AC 8005CCAC 1460001F */ bnez $v1, .L8005CD2C -/* 05D8B0 8005CCB0 00000000 */ nop -/* 05D8B4 8005CCB4 150B0012 */ bne $t0, $t3, .L8005CD00 -/* 05D8B8 8005CCB8 2404FFF6 */ li $a0, -10 -/* 05D8BC 8005CCBC 2404FFFE */ li $a0, -2 -/* 05D8C0 8005CCC0 00002825 */ move $a1, $zero -/* 05D8C4 8005CCC4 00003025 */ move $a2, $zero -/* 05D8C8 8005CCC8 0C01B06B */ jal push_level_property_stack -/* 05D8CC 8005CCCC 00003825 */ move $a3, $zero -/* 05D8D0 8005CCD0 8FA4002C */ lw $a0, 0x2c($sp) -/* 05D8D4 8005CCD4 00002825 */ move $a1, $zero -/* 05D8D8 8005CCD8 2406FFFF */ li $a2, -1 -/* 05D8DC 8005CCDC 0C01B06B */ jal push_level_property_stack -/* 05D8E0 8005CCE0 00003825 */ move $a3, $zero -/* 05D8E4 8005CCE4 02002025 */ move $a0, $s0 -/* 05D8E8 8005CCE8 00002825 */ move $a1, $zero -/* 05D8EC 8005CCEC 2406FFFF */ li $a2, -1 -/* 05D8F0 8005CCF0 0C01B06B */ jal push_level_property_stack -/* 05D8F4 8005CCF4 24070001 */ li $a3, 1 -/* 05D8F8 8005CCF8 10000031 */ b .L8005CDC0 -/* 05D8FC 8005CCFC 8FB90034 */ lw $t9, 0x34($sp) -.L8005CD00: -/* 05D900 8005CD00 00002825 */ move $a1, $zero -/* 05D904 8005CD04 00003025 */ move $a2, $zero -/* 05D908 8005CD08 0C01B06B */ jal push_level_property_stack -/* 05D90C 8005CD0C 00003825 */ move $a3, $zero -/* 05D910 8005CD10 02002025 */ move $a0, $s0 -/* 05D914 8005CD14 00002825 */ move $a1, $zero -/* 05D918 8005CD18 2406FFFF */ li $a2, -1 -/* 05D91C 8005CD1C 0C01B06B */ jal push_level_property_stack -/* 05D920 8005CD20 24070002 */ li $a3, 2 -/* 05D924 8005CD24 10000026 */ b .L8005CDC0 -/* 05D928 8005CD28 8FB90034 */ lw $t9, 0x34($sp) -.L8005CD2C: -/* 05D92C 8005CD2C 150B001A */ bne $t0, $t3, .L8005CD98 -/* 05D930 8005CD30 2404FFF6 */ li $a0, -10 -/* 05D934 8005CD34 24040000 */ li $a0, 0 -/* 05D938 8005CD38 0C027A9E */ jal set_eeprom_settings_value -/* 05D93C 8005CD3C 24050001 */ li $a1, 1 -/* 05D940 8005CD40 2404FFFE */ li $a0, -2 -/* 05D944 8005CD44 00002825 */ move $a1, $zero -/* 05D948 8005CD48 00003025 */ move $a2, $zero -/* 05D94C 8005CD4C 0C01B06B */ jal push_level_property_stack -/* 05D950 8005CD50 00003825 */ move $a3, $zero -/* 05D954 8005CD54 8FA40024 */ lw $a0, 0x24($sp) -/* 05D958 8005CD58 00002825 */ move $a1, $zero -/* 05D95C 8005CD5C 2406FFFF */ li $a2, -1 -/* 05D960 8005CD60 0C01B06B */ jal push_level_property_stack -/* 05D964 8005CD64 00003825 */ move $a3, $zero -/* 05D968 8005CD68 8FA40028 */ lw $a0, 0x28($sp) -/* 05D96C 8005CD6C 00002825 */ move $a1, $zero -/* 05D970 8005CD70 2406FFFF */ li $a2, -1 -/* 05D974 8005CD74 0C01B06B */ jal push_level_property_stack -/* 05D978 8005CD78 00003825 */ move $a3, $zero -/* 05D97C 8005CD7C 02002025 */ move $a0, $s0 -/* 05D980 8005CD80 00002825 */ move $a1, $zero -/* 05D984 8005CD84 2406FFFF */ li $a2, -1 -/* 05D988 8005CD88 0C01B06B */ jal push_level_property_stack -/* 05D98C 8005CD8C 24070001 */ li $a3, 1 -/* 05D990 8005CD90 1000000B */ b .L8005CDC0 -/* 05D994 8005CD94 8FB90034 */ lw $t9, 0x34($sp) -.L8005CD98: -/* 05D998 8005CD98 00002825 */ move $a1, $zero -/* 05D99C 8005CD9C 00003025 */ move $a2, $zero -/* 05D9A0 8005CDA0 0C01B06B */ jal push_level_property_stack -/* 05D9A4 8005CDA4 00003825 */ move $a3, $zero -/* 05D9A8 8005CDA8 02002025 */ move $a0, $s0 -/* 05D9AC 8005CDAC 00002825 */ move $a1, $zero -/* 05D9B0 8005CDB0 2406FFFF */ li $a2, -1 -/* 05D9B4 8005CDB4 0C01B06B */ jal push_level_property_stack -/* 05D9B8 8005CDB8 24070002 */ li $a3, 2 -/* 05D9BC 8005CDBC 8FB90034 */ lw $t9, 0x34($sp) -.L8005CDC0: -/* 05D9C0 8005CDC0 24010001 */ li $at, 1 -/* 05D9C4 8005CDC4 17210005 */ bne $t9, $at, .L8005CDDC -/* 05D9C8 8005CDC8 00000000 */ nop -/* 05D9CC 8005CDCC 0C01BC50 */ jal func_8006F140 -/* 05D9D0 8005CDD0 24040004 */ li $a0, 4 -/* 05D9D4 8005CDD4 10000004 */ b .L8005CDE8 -/* 05D9D8 8005CDD8 83A20043 */ lb $v0, 0x43($sp) -.L8005CDDC: -/* 05D9DC 8005CDDC 0C01BC50 */ jal func_8006F140 -/* 05D9E0 8005CDE0 24040003 */ li $a0, 3 -/* 05D9E4 8005CDE4 83A20043 */ lb $v0, 0x43($sp) -.L8005CDE8: -/* 05D9E8 8005CDE8 8FAE004C */ lw $t6, 0x4c($sp) -/* 05D9EC 8005CDEC 24580001 */ addiu $t8, $v0, 1 -/* 05D9F0 8005CDF0 10000091 */ b .L8005D038 -/* 05D9F4 8005CDF4 A1D80000 */ sb $t8, ($t6) -.L8005CDF8: -/* 05D9F8 8005CDF8 914F0049 */ lbu $t7, 0x49($t2) -/* 05D9FC 8005CDFC 8D4D0004 */ lw $t5, 4($t2) -/* 05DA00 8005CE00 000FC880 */ sll $t9, $t7, 2 -/* 05DA04 8005CE04 01B91021 */ addu $v0, $t5, $t9 -/* 05DA08 8005CE08 8C430000 */ lw $v1, ($v0) -/* 05DA0C 8005CE0C 8FB80034 */ lw $t8, 0x34($sp) -/* 05DA10 8005CE10 306C0002 */ andi $t4, $v1, 2 -/* 05DA14 8005CE14 11800019 */ beqz $t4, .L8005CE7C -/* 05DA18 8005CE18 24010001 */ li $at, 1 -/* 05DA1C 8005CE1C 8FB80034 */ lw $t8, 0x34($sp) -/* 05DA20 8005CE20 24010001 */ li $at, 1 -/* 05DA24 8005CE24 17010007 */ bne $t8, $at, .L8005CE44 -/* 05DA28 8005CE28 00000000 */ nop -/* 05DA2C 8005CE2C 0C01BC50 */ jal func_8006F140 -/* 05DA30 8005CE30 24040004 */ li $a0, 4 -/* 05DA34 8005CE34 0C00384A */ jal instShowBearBar -/* 05DA38 8005CE38 00000000 */ nop -/* 05DA3C 8005CE3C 1000000A */ b .L8005CE68 -/* 05DA40 8005CE40 83AE0043 */ lb $t6, 0x43($sp) -.L8005CE44: -/* 05DA44 8005CE44 0C01BC50 */ jal func_8006F140 -/* 05DA48 8005CE48 24040003 */ li $a0, 3 -/* 05DA4C 8005CE4C 0C027B20 */ jal is_in_two_player_adventure -/* 05DA50 8005CE50 00000000 */ nop -/* 05DA54 8005CE54 10400004 */ beqz $v0, .L8005CE68 -/* 05DA58 8005CE58 83AE0043 */ lb $t6, 0x43($sp) -/* 05DA5C 8005CE5C 0C01BCE6 */ jal swap_lead_player -/* 05DA60 8005CE60 00000000 */ nop -/* 05DA64 8005CE64 83AE0043 */ lb $t6, 0x43($sp) -.L8005CE68: -/* 05DA68 8005CE68 8FAC004C */ lw $t4, 0x4c($sp) -/* 05DA6C 8005CE6C 25D90001 */ addiu $t9, $t6, 1 -/* 05DA70 8005CE70 A3B90043 */ sb $t9, 0x43($sp) -/* 05DA74 8005CE74 10000070 */ b .L8005D038 -/* 05DA78 8005CE78 A1990000 */ sb $t9, ($t4) -.L8005CE7C: -/* 05DA7C 8005CE7C 17010058 */ bne $t8, $at, .L8005CFE0 -/* 05DA80 8005CE80 2404FFF6 */ li $a0, -10 -/* 05DA84 8005CE84 346E0002 */ ori $t6, $v1, 2 -/* 05DA88 8005CE88 AC4E0000 */ sw $t6, ($v0) -/* 05DA8C 8005CE8C 9548000C */ lhu $t0, 0xc($t2) -/* 05DA90 8005CE90 0009C980 */ sll $t9, $t1, 6 -/* 05DA94 8005CE94 01097824 */ and $t7, $t0, $t1 -/* 05DA98 8005CE98 15E0000F */ bnez $t7, .L8005CED8 -/* 05DA9C 8005CE9C 01196024 */ and $t4, $t0, $t9 -/* 05DAA0 8005CEA0 01096825 */ or $t5, $t0, $t1 -/* 05DAA4 8005CEA4 A54D000C */ sh $t5, 0xc($t2) -/* 05DAA8 8005CEA8 2404FFFF */ li $a0, -1 -/* 05DAAC 8005CEAC 00002825 */ move $a1, $zero -/* 05DAB0 8005CEB0 00003025 */ move $a2, $zero -/* 05DAB4 8005CEB4 0C01B06B */ jal push_level_property_stack -/* 05DAB8 8005CEB8 00003825 */ move $a3, $zero -/* 05DABC 8005CEBC 02002025 */ move $a0, $s0 -/* 05DAC0 8005CEC0 24050004 */ li $a1, 4 -/* 05DAC4 8005CEC4 2406FFFF */ li $a2, -1 -/* 05DAC8 8005CEC8 0C01B06B */ jal push_level_property_stack -/* 05DACC 8005CECC 24070004 */ li $a3, 4 -/* 05DAD0 8005CED0 1000003D */ b .L8005CFC8 -/* 05DAD4 8005CED4 00000000 */ nop -.L8005CED8: -/* 05DAD8 8005CED8 15800032 */ bnez $t4, .L8005CFA4 -/* 05DADC 8005CEDC 2404FFFF */ li $a0, -1 -/* 05DAE0 8005CEE0 91430048 */ lbu $v1, 0x48($t2) -/* 05DAE4 8005CEE4 0119C025 */ or $t8, $t0, $t9 -/* 05DAE8 8005CEE8 A558000C */ sh $t8, 0xc($t2) -/* 05DAEC 8005CEEC 1860000C */ blez $v1, .L8005CF20 -/* 05DAF0 8005CEF0 00004825 */ move $t1, $zero -/* 05DAF4 8005CEF4 28610005 */ slti $at, $v1, 5 -/* 05DAF8 8005CEF8 10200009 */ beqz $at, .L8005CF20 -/* 05DAFC 8005CEFC 00000000 */ nop -/* 05DB00 8005CF00 91490017 */ lbu $t1, 0x17($t2) -/* 05DB04 8005CF04 00000000 */ nop -/* 05DB08 8005CF08 25290001 */ addiu $t1, $t1, 1 -/* 05DB0C 8005CF0C 29210005 */ slti $at, $t1, 5 -/* 05DB10 8005CF10 14200002 */ bnez $at, .L8005CF1C -/* 05DB14 8005CF14 00000000 */ nop -/* 05DB18 8005CF18 24090004 */ li $t1, 4 -.L8005CF1C: -/* 05DB1C 8005CF1C A1490017 */ sb $t1, 0x17($t2) -.L8005CF20: -/* 05DB20 8005CF20 11200015 */ beqz $t1, .L8005CF78 -/* 05DB24 8005CF24 2404FFFF */ li $a0, -1 -/* 05DB28 8005CF28 2404FFFF */ li $a0, -1 -/* 05DB2C 8005CF2C 00002825 */ move $a1, $zero -/* 05DB30 8005CF30 00003025 */ move $a2, $zero -/* 05DB34 8005CF34 00003825 */ move $a3, $zero -/* 05DB38 8005CF38 0C01B06B */ jal push_level_property_stack -/* 05DB3C 8005CF3C AFAA0044 */ sw $t2, 0x44($sp) -/* 05DB40 8005CF40 8FAA0044 */ lw $t2, 0x44($sp) -/* 05DB44 8005CF44 2404002B */ li $a0, 43 -/* 05DB48 8005CF48 91470017 */ lbu $a3, 0x17($t2) -/* 05DB4C 8005CF4C 00002825 */ move $a1, $zero -/* 05DB50 8005CF50 2406FFFF */ li $a2, -1 -/* 05DB54 8005CF54 0C01B06B */ jal push_level_property_stack -/* 05DB58 8005CF58 24E7FFFF */ addiu $a3, $a3, -1 -/* 05DB5C 8005CF5C 02002025 */ move $a0, $s0 -/* 05DB60 8005CF60 24050006 */ li $a1, 6 -/* 05DB64 8005CF64 2406FFFF */ li $a2, -1 -/* 05DB68 8005CF68 0C01B06B */ jal push_level_property_stack -/* 05DB6C 8005CF6C 24070006 */ li $a3, 6 -/* 05DB70 8005CF70 10000015 */ b .L8005CFC8 -/* 05DB74 8005CF74 00000000 */ nop -.L8005CF78: -/* 05DB78 8005CF78 00002825 */ move $a1, $zero -/* 05DB7C 8005CF7C 00003025 */ move $a2, $zero -/* 05DB80 8005CF80 0C01B06B */ jal push_level_property_stack -/* 05DB84 8005CF84 00003825 */ move $a3, $zero -/* 05DB88 8005CF88 02002025 */ move $a0, $s0 -/* 05DB8C 8005CF8C 24050004 */ li $a1, 4 -/* 05DB90 8005CF90 2406FFFF */ li $a2, -1 -/* 05DB94 8005CF94 0C01B06B */ jal push_level_property_stack -/* 05DB98 8005CF98 24070004 */ li $a3, 4 -/* 05DB9C 8005CF9C 1000000A */ b .L8005CFC8 -/* 05DBA0 8005CFA0 00000000 */ nop -.L8005CFA4: -/* 05DBA4 8005CFA4 00002825 */ move $a1, $zero -/* 05DBA8 8005CFA8 00003025 */ move $a2, $zero -/* 05DBAC 8005CFAC 0C01B06B */ jal push_level_property_stack -/* 05DBB0 8005CFB0 00003825 */ move $a3, $zero -/* 05DBB4 8005CFB4 02002025 */ move $a0, $s0 -/* 05DBB8 8005CFB8 24050004 */ li $a1, 4 -/* 05DBBC 8005CFBC 2406FFFF */ li $a2, -1 -/* 05DBC0 8005CFC0 0C01B06B */ jal push_level_property_stack -/* 05DBC4 8005CFC4 24070004 */ li $a3, 4 -.L8005CFC8: -/* 05DBC8 8005CFC8 0C01BC50 */ jal func_8006F140 -/* 05DBCC 8005CFCC 24040004 */ li $a0, 4 -/* 05DBD0 8005CFD0 0C00384A */ jal instShowBearBar -/* 05DBD4 8005CFD4 00000000 */ nop -/* 05DBD8 8005CFD8 1000000D */ b .L8005D010 -/* 05DBDC 8005CFDC 83AE0043 */ lb $t6, 0x43($sp) -.L8005CFE0: -/* 05DBE0 8005CFE0 00002825 */ move $a1, $zero -/* 05DBE4 8005CFE4 00003025 */ move $a2, $zero -/* 05DBE8 8005CFE8 0C01B06B */ jal push_level_property_stack -/* 05DBEC 8005CFEC 00003825 */ move $a3, $zero -/* 05DBF0 8005CFF0 02002025 */ move $a0, $s0 -/* 05DBF4 8005CFF4 24050005 */ li $a1, 5 -/* 05DBF8 8005CFF8 2406FFFF */ li $a2, -1 -/* 05DBFC 8005CFFC 0C01B06B */ jal push_level_property_stack -/* 05DC00 8005D000 24070005 */ li $a3, 5 -/* 05DC04 8005D004 0C01BC50 */ jal func_8006F140 -/* 05DC08 8005D008 24040003 */ li $a0, 3 -/* 05DC0C 8005D00C 83AE0043 */ lb $t6, 0x43($sp) -.L8005D010: -/* 05DC10 8005D010 00000000 */ nop -/* 05DC14 8005D014 25CF0001 */ addiu $t7, $t6, 1 -/* 05DC18 8005D018 0C027068 */ jal get_save_file_index -/* 05DC1C 8005D01C A3AF0043 */ sb $t7, 0x43($sp) -/* 05DC20 8005D020 0C01BB12 */ jal safe_mark_write_save_file -/* 05DC24 8005D024 00402025 */ move $a0, $v0 -.L8005D028: -/* 05DC28 8005D028 83AD0043 */ lb $t5, 0x43($sp) -/* 05DC2C 8005D02C 8FB9004C */ lw $t9, 0x4c($sp) -/* 05DC30 8005D030 00000000 */ nop -/* 05DC34 8005D034 A32D0000 */ sb $t5, ($t9) -.L8005D038: -/* 05DC38 8005D038 8FBF001C */ lw $ra, 0x1c($sp) -/* 05DC3C 8005D03C 8FB00018 */ lw $s0, 0x18($sp) -/* 05DC40 8005D040 03E00008 */ jr $ra -/* 05DC44 8005D044 27BD0048 */ addiu $sp, $sp, 0x48 - +glabel func_8005CB68 +/* 05D768 8005CB68 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* 05D76C 8005CB6C AFBF001C */ sw $ra, 0x1c($sp) +/* 05D770 8005CB70 AFB00018 */ sw $s0, 0x18($sp) +/* 05D774 8005CB74 AFA40048 */ sw $a0, 0x48($sp) +/* 05D778 8005CB78 AFA5004C */ sw $a1, 0x4c($sp) +/* 05D77C 8005CB7C 80AF0000 */ lb $t7, ($a1) +/* 05D780 8005CB80 0C01BAA4 */ jal get_settings +/* 05D784 8005CB84 A3AF0043 */ sb $t7, 0x43($sp) +/* 05D788 8005CB88 90580048 */ lbu $t8, 0x48($v0) +/* 05D78C 8005CB8C 24190001 */ li $t9, 1 +/* 05D790 8005CB90 03194804 */ sllv $t1, $t9, $t8 +/* 05D794 8005CB94 AFA90038 */ sw $t1, 0x38($sp) +/* 05D798 8005CB98 AFA20044 */ sw $v0, 0x44($sp) +/* 05D79C 8005CB9C 0C0078A7 */ jal get_misc_asset +/* 05D7A0 8005CBA0 24040044 */ li $a0, 68 +/* 05D7A4 8005CBA4 804C0005 */ lb $t4, 5($v0) +/* 05D7A8 8005CBA8 24040043 */ li $a0, 67 +/* 05D7AC 8005CBAC AFAC002C */ sw $t4, 0x2c($sp) +/* 05D7B0 8005CBB0 804D0006 */ lb $t5, 6($v0) +/* 05D7B4 8005CBB4 00000000 */ nop +/* 05D7B8 8005CBB8 AFAD0028 */ sw $t5, 0x28($sp) +/* 05D7BC 8005CBBC 804E0007 */ lb $t6, 7($v0) +/* 05D7C0 8005CBC0 0C0078A7 */ jal get_misc_asset +/* 05D7C4 8005CBC4 AFAE0024 */ sw $t6, 0x24($sp) +/* 05D7C8 8005CBC8 8FAA0044 */ lw $t2, 0x44($sp) +/* 05D7CC 8005CBCC 804F0000 */ lb $t7, ($v0) +/* 05D7D0 8005CBD0 91440049 */ lbu $a0, 0x49($t2) +/* 05D7D4 8005CBD4 8FA90038 */ lw $t1, 0x38($sp) +/* 05D7D8 8005CBD8 00402825 */ move $a1, $v0 +/* 05D7DC 8005CBDC 108F0006 */ beq $a0, $t7, .L8005CBF8 +/* 05D7E0 8005CBE0 00008025 */ move $s0, $zero +/* 05D7E4 8005CBE4 00A01825 */ move $v1, $a1 +.L8005CBE8: +/* 05D7E8 8005CBE8 80790002 */ lb $t9, 2($v1) +/* 05D7EC 8005CBEC 26100002 */ addiu $s0, $s0, 2 +/* 05D7F0 8005CBF0 1499FFFD */ bne $a0, $t9, .L8005CBE8 +/* 05D7F4 8005CBF4 24630002 */ addiu $v1, $v1, 2 +.L8005CBF8: +/* 05D7F8 8005CBF8 8FAC0048 */ lw $t4, 0x48($sp) +/* 05D7FC 8005CBFC 83AE0043 */ lb $t6, 0x43($sp) +/* 05D800 8005CC00 858D01AC */ lh $t5, 0x1ac($t4) +/* 05D804 8005CC04 0202C021 */ addu $t8, $s0, $v0 +/* 05D808 8005CC08 24030001 */ li $v1, 1 +/* 05D80C 8005CC0C 83100001 */ lb $s0, 1($t8) +/* 05D810 8005CC10 15C30105 */ bne $t6, $v1, .L8005D028 +/* 05D814 8005CC14 AFAD0034 */ sw $t5, 0x34($sp) +/* 05D818 8005CC18 15A30009 */ bne $t5, $v1, .L8005CC40 +/* 05D81C 8005CC1C 2404003E */ li $a0, 62 +/* 05D820 8005CC20 2404003D */ li $a0, 61 +/* 05D824 8005CC24 AFA90038 */ sw $t1, 0x38($sp) +/* 05D828 8005CC28 0C0002CD */ jal music_play +/* 05D82C 8005CC2C AFAA0044 */ sw $t2, 0x44($sp) +/* 05D830 8005CC30 8FA90038 */ lw $t1, 0x38($sp) +/* 05D834 8005CC34 8FAA0044 */ lw $t2, 0x44($sp) +/* 05D838 8005CC38 10000008 */ b .L8005CC5C +/* 05D83C 8005CC3C 91430048 */ lbu $v1, 0x48($t2) +.L8005CC40: +/* 05D840 8005CC40 AFA90038 */ sw $t1, 0x38($sp) +/* 05D844 8005CC44 0C0002CD */ jal music_play +/* 05D848 8005CC48 AFAA0044 */ sw $t2, 0x44($sp) +/* 05D84C 8005CC4C 8FA90038 */ lw $t1, 0x38($sp) +/* 05D850 8005CC50 8FAA0044 */ lw $t2, 0x44($sp) +/* 05D854 8005CC54 00000000 */ nop +/* 05D858 8005CC58 91430048 */ lbu $v1, 0x48($t2) +.L8005CC5C: +/* 05D85C 8005CC5C 8FA80034 */ lw $t0, 0x34($sp) +/* 05D860 8005CC60 10600002 */ beqz $v1, .L8005CC6C +/* 05D864 8005CC64 24010005 */ li $at, 5 +/* 05D868 8005CC68 14610063 */ bne $v1, $at, .L8005CDF8 +.L8005CC6C: +/* 05D86C 8005CC6C 240B0001 */ li $t3, 1 +/* 05D870 8005CC70 150B000E */ bne $t0, $t3, .L8005CCAC +/* 05D874 8005CC74 00000000 */ nop +/* 05D878 8005CC78 954F000C */ lhu $t7, 0xc($t2) +/* 05D87C 8005CC7C 914C0049 */ lbu $t4, 0x49($t2) +/* 05D880 8005CC80 8D580004 */ lw $t8, 4($t2) +/* 05D884 8005CC84 01E9C825 */ or $t9, $t7, $t1 +/* 05D888 8005CC88 000C7080 */ sll $t6, $t4, 2 +/* 05D88C 8005CC8C A559000C */ sh $t9, 0xc($t2) +/* 05D890 8005CC90 030E1021 */ addu $v0, $t8, $t6 +/* 05D894 8005CC94 8C4D0000 */ lw $t5, ($v0) +/* 05D898 8005CC98 00000000 */ nop +/* 05D89C 8005CC9C 35AF0002 */ ori $t7, $t5, 2 +/* 05D8A0 8005CCA0 AC4F0000 */ sw $t7, ($v0) +/* 05D8A4 8005CCA4 91430048 */ lbu $v1, 0x48($t2) +/* 05D8A8 8005CCA8 00000000 */ nop +.L8005CCAC: +/* 05D8AC 8005CCAC 1460001F */ bnez $v1, .L8005CD2C +/* 05D8B0 8005CCB0 00000000 */ nop +/* 05D8B4 8005CCB4 150B0012 */ bne $t0, $t3, .L8005CD00 +/* 05D8B8 8005CCB8 2404FFF6 */ li $a0, -10 +/* 05D8BC 8005CCBC 2404FFFE */ li $a0, -2 +/* 05D8C0 8005CCC0 00002825 */ move $a1, $zero +/* 05D8C4 8005CCC4 00003025 */ move $a2, $zero +/* 05D8C8 8005CCC8 0C01B06B */ jal push_level_property_stack +/* 05D8CC 8005CCCC 00003825 */ move $a3, $zero +/* 05D8D0 8005CCD0 8FA4002C */ lw $a0, 0x2c($sp) +/* 05D8D4 8005CCD4 00002825 */ move $a1, $zero +/* 05D8D8 8005CCD8 2406FFFF */ li $a2, -1 +/* 05D8DC 8005CCDC 0C01B06B */ jal push_level_property_stack +/* 05D8E0 8005CCE0 00003825 */ move $a3, $zero +/* 05D8E4 8005CCE4 02002025 */ move $a0, $s0 +/* 05D8E8 8005CCE8 00002825 */ move $a1, $zero +/* 05D8EC 8005CCEC 2406FFFF */ li $a2, -1 +/* 05D8F0 8005CCF0 0C01B06B */ jal push_level_property_stack +/* 05D8F4 8005CCF4 24070001 */ li $a3, 1 +/* 05D8F8 8005CCF8 10000031 */ b .L8005CDC0 +/* 05D8FC 8005CCFC 8FB90034 */ lw $t9, 0x34($sp) +.L8005CD00: +/* 05D900 8005CD00 00002825 */ move $a1, $zero +/* 05D904 8005CD04 00003025 */ move $a2, $zero +/* 05D908 8005CD08 0C01B06B */ jal push_level_property_stack +/* 05D90C 8005CD0C 00003825 */ move $a3, $zero +/* 05D910 8005CD10 02002025 */ move $a0, $s0 +/* 05D914 8005CD14 00002825 */ move $a1, $zero +/* 05D918 8005CD18 2406FFFF */ li $a2, -1 +/* 05D91C 8005CD1C 0C01B06B */ jal push_level_property_stack +/* 05D920 8005CD20 24070002 */ li $a3, 2 +/* 05D924 8005CD24 10000026 */ b .L8005CDC0 +/* 05D928 8005CD28 8FB90034 */ lw $t9, 0x34($sp) +.L8005CD2C: +/* 05D92C 8005CD2C 150B001A */ bne $t0, $t3, .L8005CD98 +/* 05D930 8005CD30 2404FFF6 */ li $a0, -10 +/* 05D934 8005CD34 24040000 */ li $a0, 0 +/* 05D938 8005CD38 0C027A9E */ jal set_eeprom_settings_value +/* 05D93C 8005CD3C 24050001 */ li $a1, 1 +/* 05D940 8005CD40 2404FFFE */ li $a0, -2 +/* 05D944 8005CD44 00002825 */ move $a1, $zero +/* 05D948 8005CD48 00003025 */ move $a2, $zero +/* 05D94C 8005CD4C 0C01B06B */ jal push_level_property_stack +/* 05D950 8005CD50 00003825 */ move $a3, $zero +/* 05D954 8005CD54 8FA40024 */ lw $a0, 0x24($sp) +/* 05D958 8005CD58 00002825 */ move $a1, $zero +/* 05D95C 8005CD5C 2406FFFF */ li $a2, -1 +/* 05D960 8005CD60 0C01B06B */ jal push_level_property_stack +/* 05D964 8005CD64 00003825 */ move $a3, $zero +/* 05D968 8005CD68 8FA40028 */ lw $a0, 0x28($sp) +/* 05D96C 8005CD6C 00002825 */ move $a1, $zero +/* 05D970 8005CD70 2406FFFF */ li $a2, -1 +/* 05D974 8005CD74 0C01B06B */ jal push_level_property_stack +/* 05D978 8005CD78 00003825 */ move $a3, $zero +/* 05D97C 8005CD7C 02002025 */ move $a0, $s0 +/* 05D980 8005CD80 00002825 */ move $a1, $zero +/* 05D984 8005CD84 2406FFFF */ li $a2, -1 +/* 05D988 8005CD88 0C01B06B */ jal push_level_property_stack +/* 05D98C 8005CD8C 24070001 */ li $a3, 1 +/* 05D990 8005CD90 1000000B */ b .L8005CDC0 +/* 05D994 8005CD94 8FB90034 */ lw $t9, 0x34($sp) +.L8005CD98: +/* 05D998 8005CD98 00002825 */ move $a1, $zero +/* 05D99C 8005CD9C 00003025 */ move $a2, $zero +/* 05D9A0 8005CDA0 0C01B06B */ jal push_level_property_stack +/* 05D9A4 8005CDA4 00003825 */ move $a3, $zero +/* 05D9A8 8005CDA8 02002025 */ move $a0, $s0 +/* 05D9AC 8005CDAC 00002825 */ move $a1, $zero +/* 05D9B0 8005CDB0 2406FFFF */ li $a2, -1 +/* 05D9B4 8005CDB4 0C01B06B */ jal push_level_property_stack +/* 05D9B8 8005CDB8 24070002 */ li $a3, 2 +/* 05D9BC 8005CDBC 8FB90034 */ lw $t9, 0x34($sp) +.L8005CDC0: +/* 05D9C0 8005CDC0 24010001 */ li $at, 1 +/* 05D9C4 8005CDC4 17210005 */ bne $t9, $at, .L8005CDDC +/* 05D9C8 8005CDC8 00000000 */ nop +/* 05D9CC 8005CDCC 0C01BC50 */ jal func_8006F140 +/* 05D9D0 8005CDD0 24040004 */ li $a0, 4 +/* 05D9D4 8005CDD4 10000004 */ b .L8005CDE8 +/* 05D9D8 8005CDD8 83A20043 */ lb $v0, 0x43($sp) +.L8005CDDC: +/* 05D9DC 8005CDDC 0C01BC50 */ jal func_8006F140 +/* 05D9E0 8005CDE0 24040003 */ li $a0, 3 +/* 05D9E4 8005CDE4 83A20043 */ lb $v0, 0x43($sp) +.L8005CDE8: +/* 05D9E8 8005CDE8 8FAE004C */ lw $t6, 0x4c($sp) +/* 05D9EC 8005CDEC 24580001 */ addiu $t8, $v0, 1 +/* 05D9F0 8005CDF0 10000091 */ b .L8005D038 +/* 05D9F4 8005CDF4 A1D80000 */ sb $t8, ($t6) +.L8005CDF8: +/* 05D9F8 8005CDF8 914F0049 */ lbu $t7, 0x49($t2) +/* 05D9FC 8005CDFC 8D4D0004 */ lw $t5, 4($t2) +/* 05DA00 8005CE00 000FC880 */ sll $t9, $t7, 2 +/* 05DA04 8005CE04 01B91021 */ addu $v0, $t5, $t9 +/* 05DA08 8005CE08 8C430000 */ lw $v1, ($v0) +/* 05DA0C 8005CE0C 8FB80034 */ lw $t8, 0x34($sp) +/* 05DA10 8005CE10 306C0002 */ andi $t4, $v1, 2 +/* 05DA14 8005CE14 11800019 */ beqz $t4, .L8005CE7C +/* 05DA18 8005CE18 24010001 */ li $at, 1 +/* 05DA1C 8005CE1C 8FB80034 */ lw $t8, 0x34($sp) +/* 05DA20 8005CE20 24010001 */ li $at, 1 +/* 05DA24 8005CE24 17010007 */ bne $t8, $at, .L8005CE44 +/* 05DA28 8005CE28 00000000 */ nop +/* 05DA2C 8005CE2C 0C01BC50 */ jal func_8006F140 +/* 05DA30 8005CE30 24040004 */ li $a0, 4 +/* 05DA34 8005CE34 0C00384A */ jal instShowBearBar +/* 05DA38 8005CE38 00000000 */ nop +/* 05DA3C 8005CE3C 1000000A */ b .L8005CE68 +/* 05DA40 8005CE40 83AE0043 */ lb $t6, 0x43($sp) +.L8005CE44: +/* 05DA44 8005CE44 0C01BC50 */ jal func_8006F140 +/* 05DA48 8005CE48 24040003 */ li $a0, 3 +/* 05DA4C 8005CE4C 0C027B20 */ jal is_in_two_player_adventure +/* 05DA50 8005CE50 00000000 */ nop +/* 05DA54 8005CE54 10400004 */ beqz $v0, .L8005CE68 +/* 05DA58 8005CE58 83AE0043 */ lb $t6, 0x43($sp) +/* 05DA5C 8005CE5C 0C01BCE6 */ jal swap_lead_player +/* 05DA60 8005CE60 00000000 */ nop +/* 05DA64 8005CE64 83AE0043 */ lb $t6, 0x43($sp) +.L8005CE68: +/* 05DA68 8005CE68 8FAC004C */ lw $t4, 0x4c($sp) +/* 05DA6C 8005CE6C 25D90001 */ addiu $t9, $t6, 1 +/* 05DA70 8005CE70 A3B90043 */ sb $t9, 0x43($sp) +/* 05DA74 8005CE74 10000070 */ b .L8005D038 +/* 05DA78 8005CE78 A1990000 */ sb $t9, ($t4) +.L8005CE7C: +/* 05DA7C 8005CE7C 17010058 */ bne $t8, $at, .L8005CFE0 +/* 05DA80 8005CE80 2404FFF6 */ li $a0, -10 +/* 05DA84 8005CE84 346E0002 */ ori $t6, $v1, 2 +/* 05DA88 8005CE88 AC4E0000 */ sw $t6, ($v0) +/* 05DA8C 8005CE8C 9548000C */ lhu $t0, 0xc($t2) +/* 05DA90 8005CE90 0009C980 */ sll $t9, $t1, 6 +/* 05DA94 8005CE94 01097824 */ and $t7, $t0, $t1 +/* 05DA98 8005CE98 15E0000F */ bnez $t7, .L8005CED8 +/* 05DA9C 8005CE9C 01196024 */ and $t4, $t0, $t9 +/* 05DAA0 8005CEA0 01096825 */ or $t5, $t0, $t1 +/* 05DAA4 8005CEA4 A54D000C */ sh $t5, 0xc($t2) +/* 05DAA8 8005CEA8 2404FFFF */ li $a0, -1 +/* 05DAAC 8005CEAC 00002825 */ move $a1, $zero +/* 05DAB0 8005CEB0 00003025 */ move $a2, $zero +/* 05DAB4 8005CEB4 0C01B06B */ jal push_level_property_stack +/* 05DAB8 8005CEB8 00003825 */ move $a3, $zero +/* 05DABC 8005CEBC 02002025 */ move $a0, $s0 +/* 05DAC0 8005CEC0 24050004 */ li $a1, 4 +/* 05DAC4 8005CEC4 2406FFFF */ li $a2, -1 +/* 05DAC8 8005CEC8 0C01B06B */ jal push_level_property_stack +/* 05DACC 8005CECC 24070004 */ li $a3, 4 +/* 05DAD0 8005CED0 1000003D */ b .L8005CFC8 +/* 05DAD4 8005CED4 00000000 */ nop +.L8005CED8: +/* 05DAD8 8005CED8 15800032 */ bnez $t4, .L8005CFA4 +/* 05DADC 8005CEDC 2404FFFF */ li $a0, -1 +/* 05DAE0 8005CEE0 91430048 */ lbu $v1, 0x48($t2) +/* 05DAE4 8005CEE4 0119C025 */ or $t8, $t0, $t9 +/* 05DAE8 8005CEE8 A558000C */ sh $t8, 0xc($t2) +/* 05DAEC 8005CEEC 1860000C */ blez $v1, .L8005CF20 +/* 05DAF0 8005CEF0 00004825 */ move $t1, $zero +/* 05DAF4 8005CEF4 28610005 */ slti $at, $v1, 5 +/* 05DAF8 8005CEF8 10200009 */ beqz $at, .L8005CF20 +/* 05DAFC 8005CEFC 00000000 */ nop +/* 05DB00 8005CF00 91490017 */ lbu $t1, 0x17($t2) +/* 05DB04 8005CF04 00000000 */ nop +/* 05DB08 8005CF08 25290001 */ addiu $t1, $t1, 1 +/* 05DB0C 8005CF0C 29210005 */ slti $at, $t1, 5 +/* 05DB10 8005CF10 14200002 */ bnez $at, .L8005CF1C +/* 05DB14 8005CF14 00000000 */ nop +/* 05DB18 8005CF18 24090004 */ li $t1, 4 +.L8005CF1C: +/* 05DB1C 8005CF1C A1490017 */ sb $t1, 0x17($t2) +.L8005CF20: +/* 05DB20 8005CF20 11200015 */ beqz $t1, .L8005CF78 +/* 05DB24 8005CF24 2404FFFF */ li $a0, -1 +/* 05DB28 8005CF28 2404FFFF */ li $a0, -1 +/* 05DB2C 8005CF2C 00002825 */ move $a1, $zero +/* 05DB30 8005CF30 00003025 */ move $a2, $zero +/* 05DB34 8005CF34 00003825 */ move $a3, $zero +/* 05DB38 8005CF38 0C01B06B */ jal push_level_property_stack +/* 05DB3C 8005CF3C AFAA0044 */ sw $t2, 0x44($sp) +/* 05DB40 8005CF40 8FAA0044 */ lw $t2, 0x44($sp) +/* 05DB44 8005CF44 2404002B */ li $a0, 43 +/* 05DB48 8005CF48 91470017 */ lbu $a3, 0x17($t2) +/* 05DB4C 8005CF4C 00002825 */ move $a1, $zero +/* 05DB50 8005CF50 2406FFFF */ li $a2, -1 +/* 05DB54 8005CF54 0C01B06B */ jal push_level_property_stack +/* 05DB58 8005CF58 24E7FFFF */ addiu $a3, $a3, -1 +/* 05DB5C 8005CF5C 02002025 */ move $a0, $s0 +/* 05DB60 8005CF60 24050006 */ li $a1, 6 +/* 05DB64 8005CF64 2406FFFF */ li $a2, -1 +/* 05DB68 8005CF68 0C01B06B */ jal push_level_property_stack +/* 05DB6C 8005CF6C 24070006 */ li $a3, 6 +/* 05DB70 8005CF70 10000015 */ b .L8005CFC8 +/* 05DB74 8005CF74 00000000 */ nop +.L8005CF78: +/* 05DB78 8005CF78 00002825 */ move $a1, $zero +/* 05DB7C 8005CF7C 00003025 */ move $a2, $zero +/* 05DB80 8005CF80 0C01B06B */ jal push_level_property_stack +/* 05DB84 8005CF84 00003825 */ move $a3, $zero +/* 05DB88 8005CF88 02002025 */ move $a0, $s0 +/* 05DB8C 8005CF8C 24050004 */ li $a1, 4 +/* 05DB90 8005CF90 2406FFFF */ li $a2, -1 +/* 05DB94 8005CF94 0C01B06B */ jal push_level_property_stack +/* 05DB98 8005CF98 24070004 */ li $a3, 4 +/* 05DB9C 8005CF9C 1000000A */ b .L8005CFC8 +/* 05DBA0 8005CFA0 00000000 */ nop +.L8005CFA4: +/* 05DBA4 8005CFA4 00002825 */ move $a1, $zero +/* 05DBA8 8005CFA8 00003025 */ move $a2, $zero +/* 05DBAC 8005CFAC 0C01B06B */ jal push_level_property_stack +/* 05DBB0 8005CFB0 00003825 */ move $a3, $zero +/* 05DBB4 8005CFB4 02002025 */ move $a0, $s0 +/* 05DBB8 8005CFB8 24050004 */ li $a1, 4 +/* 05DBBC 8005CFBC 2406FFFF */ li $a2, -1 +/* 05DBC0 8005CFC0 0C01B06B */ jal push_level_property_stack +/* 05DBC4 8005CFC4 24070004 */ li $a3, 4 +.L8005CFC8: +/* 05DBC8 8005CFC8 0C01BC50 */ jal func_8006F140 +/* 05DBCC 8005CFCC 24040004 */ li $a0, 4 +/* 05DBD0 8005CFD0 0C00384A */ jal instShowBearBar +/* 05DBD4 8005CFD4 00000000 */ nop +/* 05DBD8 8005CFD8 1000000D */ b .L8005D010 +/* 05DBDC 8005CFDC 83AE0043 */ lb $t6, 0x43($sp) +.L8005CFE0: +/* 05DBE0 8005CFE0 00002825 */ move $a1, $zero +/* 05DBE4 8005CFE4 00003025 */ move $a2, $zero +/* 05DBE8 8005CFE8 0C01B06B */ jal push_level_property_stack +/* 05DBEC 8005CFEC 00003825 */ move $a3, $zero +/* 05DBF0 8005CFF0 02002025 */ move $a0, $s0 +/* 05DBF4 8005CFF4 24050005 */ li $a1, 5 +/* 05DBF8 8005CFF8 2406FFFF */ li $a2, -1 +/* 05DBFC 8005CFFC 0C01B06B */ jal push_level_property_stack +/* 05DC00 8005D000 24070005 */ li $a3, 5 +/* 05DC04 8005D004 0C01BC50 */ jal func_8006F140 +/* 05DC08 8005D008 24040003 */ li $a0, 3 +/* 05DC0C 8005D00C 83AE0043 */ lb $t6, 0x43($sp) +.L8005D010: +/* 05DC10 8005D010 00000000 */ nop +/* 05DC14 8005D014 25CF0001 */ addiu $t7, $t6, 1 +/* 05DC18 8005D018 0C027068 */ jal get_save_file_index +/* 05DC1C 8005D01C A3AF0043 */ sb $t7, 0x43($sp) +/* 05DC20 8005D020 0C01BB12 */ jal safe_mark_write_save_file +/* 05DC24 8005D024 00402025 */ move $a0, $v0 +.L8005D028: +/* 05DC28 8005D028 83AD0043 */ lb $t5, 0x43($sp) +/* 05DC2C 8005D02C 8FB9004C */ lw $t9, 0x4c($sp) +/* 05DC30 8005D030 00000000 */ nop +/* 05DC34 8005D034 A32D0000 */ sb $t5, ($t9) +.L8005D038: +/* 05DC38 8005D038 8FBF001C */ lw $ra, 0x1c($sp) +/* 05DC3C 8005D03C 8FB00018 */ lw $s0, 0x18($sp) +/* 05DC40 8005D040 03E00008 */ jr $ra +/* 05DC44 8005D044 27BD0048 */ addiu $sp, $sp, 0x48 + diff --git a/asm/non_matchings/weather/func_800AB4A8.s b/asm/non_matchings/weather/func_800AB4A8.s index d2809cae..132b782e 100644 --- a/asm/non_matchings/weather/func_800AB4A8.s +++ b/asm/non_matchings/weather/func_800AB4A8.s @@ -1,435 +1,435 @@ -glabel func_800AB4A8 -/* 0AC0A8 800AB4A8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0AC0AC 800AB4AC AFBF0034 */ sw $ra, 0x34($sp) -/* 0AC0B0 800AB4B0 AFB40028 */ sw $s4, 0x28($sp) -/* 0AC0B4 800AB4B4 AFB20020 */ sw $s2, 0x20($sp) -/* 0AC0B8 800AB4B8 AFB1001C */ sw $s1, 0x1c($sp) -/* 0AC0BC 800AB4BC AFB00018 */ sw $s0, 0x18($sp) -/* 0AC0C0 800AB4C0 00C08025 */ move $s0, $a2 -/* 0AC0C4 800AB4C4 00808825 */ move $s1, $a0 -/* 0AC0C8 800AB4C8 00E09025 */ move $s2, $a3 -/* 0AC0CC 800AB4CC 00A0A025 */ move $s4, $a1 -/* 0AC0D0 800AB4D0 AFB60030 */ sw $s6, 0x30($sp) -/* 0AC0D4 800AB4D4 AFB5002C */ sw $s5, 0x2c($sp) -/* 0AC0D8 800AB4D8 0C02ACD7 */ jal free_weather_memory -/* 0AC0DC 800AB4DC AFB30024 */ sw $s3, 0x24($sp) -/* 0AC0E0 800AB4E0 3C028012 */ lui $v0, %hi(D_80127BB8) # $v0, 0x8012 -/* 0AC0E4 800AB4E4 24427BB8 */ addiu $v0, %lo(D_80127BB8) # addiu $v0, $v0, 0x7bb8 -/* 0AC0E8 800AB4E8 8FA30048 */ lw $v1, 0x48($sp) -/* 0AC0EC 800AB4EC 8FA6004C */ lw $a2, 0x4c($sp) -/* 0AC0F0 800AB4F0 8FA70050 */ lw $a3, 0x50($sp) -/* 0AC0F4 800AB4F4 2A210002 */ slti $at, $s1, 2 -/* 0AC0F8 800AB4F8 AC50000C */ sw $s0, 0xc($v0) -/* 0AC0FC 800AB4FC AC400010 */ sw $zero, 0x10($v0) -/* 0AC100 800AB500 AC500014 */ sw $s0, 0x14($v0) -/* 0AC104 800AB504 AC520018 */ sw $s2, 0x18($v0) -/* 0AC108 800AB508 AC40001C */ sw $zero, 0x1c($v0) -/* 0AC10C 800AB50C AC520020 */ sw $s2, 0x20($v0) -/* 0AC110 800AB510 AC400028 */ sw $zero, 0x28($v0) -/* 0AC114 800AB514 AC400004 */ sw $zero, 4($v0) -/* 0AC118 800AB518 AC400034 */ sw $zero, 0x34($v0) -/* 0AC11C 800AB51C AC40003C */ sw $zero, 0x3c($v0) -/* 0AC120 800AB520 AC430024 */ sw $v1, 0x24($v0) -/* 0AC124 800AB524 AC43002C */ sw $v1, 0x2c($v0) -/* 0AC128 800AB528 AC460000 */ sw $a2, ($v0) -/* 0AC12C 800AB52C AC460008 */ sw $a2, 8($v0) -/* 0AC130 800AB530 AC470030 */ sw $a3, 0x30($v0) -/* 0AC134 800AB534 14200002 */ bnez $at, .L800AB540 -/* 0AC138 800AB538 AC470038 */ sw $a3, 0x38($v0) -/* 0AC13C 800AB53C 24110001 */ li $s1, 1 -.L800AB540: -/* 0AC140 800AB540 00117080 */ sll $t6, $s1, 2 -/* 0AC144 800AB544 01D17023 */ subu $t6, $t6, $s1 -/* 0AC148 800AB548 000E7080 */ sll $t6, $t6, 2 -/* 0AC14C 800AB54C 01D17023 */ subu $t6, $t6, $s1 -/* 0AC150 800AB550 3C0F800E */ lui $t7, %hi(D_800E2850) # $t7, 0x800e -/* 0AC154 800AB554 25EF2850 */ addiu $t7, %lo(D_800E2850) # addiu $t7, $t7, 0x2850 -/* 0AC158 800AB558 000E7080 */ sll $t6, $t6, 2 -/* 0AC15C 800AB55C 01CF8021 */ addu $s0, $t6, $t7 -/* 0AC160 800AB560 8E180008 */ lw $t8, 8($s0) -/* 0AC164 800AB564 24010001 */ li $at, 1 -/* 0AC168 800AB568 17010006 */ bne $t8, $at, .L800AB584 -/* 0AC16C 800AB56C 3C16FFAA */ lui $s6, (0xFFAA55FF >> 16) # lui $s6, 0xffaa -/* 0AC170 800AB570 24C40001 */ addiu $a0, $a2, 1 -/* 0AC174 800AB574 0C02B451 */ jal func_800AD144 -/* 0AC178 800AB578 24E50001 */ addiu $a1, $a3, 1 -/* 0AC17C 800AB57C 10000164 */ b .L800ABB10 -/* 0AC180 800AB580 8FBF0034 */ lw $ra, 0x34($sp) -.L800AB584: -/* 0AC184 800AB584 8E040004 */ lw $a0, 4($s0) -/* 0AC188 800AB588 36D655FF */ ori $s6, (0xFFAA55FF & 0xFFFF) # ori $s6, $s6, 0x55ff -/* 0AC18C 800AB58C 0004C880 */ sll $t9, $a0, 2 -/* 0AC190 800AB590 0324C823 */ subu $t9, $t9, $a0 -/* 0AC194 800AB594 00192080 */ sll $a0, $t9, 2 -/* 0AC198 800AB598 0C01C327 */ jal allocate_from_main_pool_safe -/* 0AC19C 800AB59C 02C02825 */ move $a1, $s6 -/* 0AC1A0 800AB5A0 3C15800E */ lui $s5, %hi(D_800E28D8) # $s5, 0x800e -/* 0AC1A4 800AB5A4 26B528D8 */ addiu $s5, %lo(D_800E28D8) # addiu $s5, $s5, 0x28d8 -/* 0AC1A8 800AB5A8 8E090004 */ lw $t1, 4($s0) -/* 0AC1AC 800AB5AC 8E0B0010 */ lw $t3, 0x10($s0) -/* 0AC1B0 800AB5B0 86180024 */ lh $t8, 0x24($s0) -/* 0AC1B4 800AB5B4 86190026 */ lh $t9, 0x26($s0) -/* 0AC1B8 800AB5B8 8E0D0018 */ lw $t5, 0x18($s0) -/* 0AC1BC 800AB5BC 8E0A000C */ lw $t2, 0xc($s0) -/* 0AC1C0 800AB5C0 8E0C0014 */ lw $t4, 0x14($s0) -/* 0AC1C4 800AB5C4 AEA90004 */ sw $t1, 4($s5) -/* 0AC1C8 800AB5C8 AEAB0010 */ sw $t3, 0x10($s5) -/* 0AC1CC 800AB5CC A6B80024 */ sh $t8, 0x24($s5) -/* 0AC1D0 800AB5D0 A6B90026 */ sh $t9, 0x26($s5) -/* 0AC1D4 800AB5D4 86A90024 */ lh $t1, 0x24($s5) -/* 0AC1D8 800AB5D8 86AB0026 */ lh $t3, 0x26($s5) -/* 0AC1DC 800AB5DC AEAD0018 */ sw $t5, 0x18($s5) -/* 0AC1E0 800AB5E0 8E0E001C */ lw $t6, 0x1c($s0) -/* 0AC1E4 800AB5E4 8E0F0020 */ lw $t7, 0x20($s0) -/* 0AC1E8 800AB5E8 8E0D0008 */ lw $t5, 8($s0) -/* 0AC1EC 800AB5EC AEAA000C */ sw $t2, 0xc($s5) -/* 0AC1F0 800AB5F0 AEAC0014 */ sw $t4, 0x14($s5) -/* 0AC1F4 800AB5F4 00095040 */ sll $t2, $t1, 1 -/* 0AC1F8 800AB5F8 000B6040 */ sll $t4, $t3, 1 -/* 0AC1FC 800AB5FC AEA20000 */ sw $v0, ($s5) -/* 0AC200 800AB600 A6AA0028 */ sh $t2, 0x28($s5) -/* 0AC204 800AB604 A6AC002A */ sh $t4, 0x2a($s5) -/* 0AC208 800AB608 AEAE001C */ sw $t6, 0x1c($s5) -/* 0AC20C 800AB60C 15A00003 */ bnez $t5, .L800AB61C -/* 0AC210 800AB610 AEAF0020 */ sw $t7, 0x20($s5) -/* 0AC214 800AB614 0C02AECD */ jal func_800ABB34 -/* 0AC218 800AB618 00000000 */ nop -.L800AB61C: -/* 0AC21C 800AB61C 3C138012 */ lui $s3, %hi(D_80127BB0) # $s3, 0x8012 -/* 0AC220 800AB620 26737BB0 */ addiu $s3, %lo(D_80127BB0) # addiu $s3, $s3, 0x7bb0 -/* 0AC224 800AB624 AE740000 */ sw $s4, ($s3) -/* 0AC228 800AB628 00142040 */ sll $a0, $s4, 1 -/* 0AC22C 800AB62C 0C01C327 */ jal allocate_from_main_pool_safe -/* 0AC230 800AB630 02C02825 */ move $a1, $s6 -/* 0AC234 800AB634 3C01800E */ lui $at, %hi(D_800E2910) # $at, 0x800e -/* 0AC238 800AB638 AC222910 */ sw $v0, %lo(D_800E2910)($at) -/* 0AC23C 800AB63C 00142100 */ sll $a0, $s4, 4 -/* 0AC240 800AB640 0C01C327 */ jal allocate_from_main_pool_safe -/* 0AC244 800AB644 02C02825 */ move $a1, $s6 -/* 0AC248 800AB648 8E6E0000 */ lw $t6, ($s3) -/* 0AC24C 800AB64C 3C12800E */ lui $s2, %hi(D_800E28D4) # $s2, 0x800e -/* 0AC250 800AB650 265228D4 */ addiu $s2, %lo(D_800E28D4) # addiu $s2, $s2, 0x28d4 -/* 0AC254 800AB654 AE420000 */ sw $v0, ($s2) -/* 0AC258 800AB658 19C0003F */ blez $t6, .L800AB758 -/* 0AC25C 800AB65C 00008825 */ move $s1, $zero -/* 0AC260 800AB660 00008025 */ move $s0, $zero -.L800AB664: -/* 0AC264 800AB664 8EA50018 */ lw $a1, 0x18($s5) -/* 0AC268 800AB668 0C01BE53 */ jal get_random_number_from_range -/* 0AC26C 800AB66C 00002025 */ move $a0, $zero -/* 0AC270 800AB670 8E4F0000 */ lw $t7, ($s2) -/* 0AC274 800AB674 00002025 */ move $a0, $zero -/* 0AC278 800AB678 01F0C021 */ addu $t8, $t7, $s0 -/* 0AC27C 800AB67C AF020000 */ sw $v0, ($t8) -/* 0AC280 800AB680 8EA5001C */ lw $a1, 0x1c($s5) -/* 0AC284 800AB684 0C01BE53 */ jal get_random_number_from_range -/* 0AC288 800AB688 00000000 */ nop -/* 0AC28C 800AB68C 8E590000 */ lw $t9, ($s2) -/* 0AC290 800AB690 00002025 */ move $a0, $zero -/* 0AC294 800AB694 03304821 */ addu $t1, $t9, $s0 -/* 0AC298 800AB698 AD220004 */ sw $v0, 4($t1) -/* 0AC29C 800AB69C 8EA50020 */ lw $a1, 0x20($s5) -/* 0AC2A0 800AB6A0 0C01BE53 */ jal get_random_number_from_range -/* 0AC2A4 800AB6A4 00000000 */ nop -/* 0AC2A8 800AB6A8 8E4A0000 */ lw $t2, ($s2) -/* 0AC2AC 800AB6AC 00002025 */ move $a0, $zero -/* 0AC2B0 800AB6B0 01505821 */ addu $t3, $t2, $s0 -/* 0AC2B4 800AB6B4 AD620008 */ sw $v0, 8($t3) -/* 0AC2B8 800AB6B8 0C01BE53 */ jal get_random_number_from_range -/* 0AC2BC 800AB6BC 24050020 */ li $a1, 32 -/* 0AC2C0 800AB6C0 8E4F0000 */ lw $t7, ($s2) -/* 0AC2C4 800AB6C4 244C0005 */ addiu $t4, $v0, 5 -/* 0AC2C8 800AB6C8 240D0001 */ li $t5, 1 -/* 0AC2CC 800AB6CC 018D7004 */ sllv $t6, $t5, $t4 -/* 0AC2D0 800AB6D0 01F0C021 */ addu $t8, $t7, $s0 -/* 0AC2D4 800AB6D4 A30E000C */ sb $t6, 0xc($t8) -/* 0AC2D8 800AB6D8 00002025 */ move $a0, $zero -/* 0AC2DC 800AB6DC 0C01BE53 */ jal get_random_number_from_range -/* 0AC2E0 800AB6E0 24050020 */ li $a1, 32 -/* 0AC2E4 800AB6E4 8E4B0000 */ lw $t3, ($s2) -/* 0AC2E8 800AB6E8 24590005 */ addiu $t9, $v0, 5 -/* 0AC2EC 800AB6EC 24090001 */ li $t1, 1 -/* 0AC2F0 800AB6F0 03295004 */ sllv $t2, $t1, $t9 -/* 0AC2F4 800AB6F4 01706821 */ addu $t5, $t3, $s0 -/* 0AC2F8 800AB6F8 A1AA000D */ sb $t2, 0xd($t5) -/* 0AC2FC 800AB6FC 00002025 */ move $a0, $zero -/* 0AC300 800AB700 0C01BE53 */ jal get_random_number_from_range -/* 0AC304 800AB704 24050020 */ li $a1, 32 -/* 0AC308 800AB708 8E580000 */ lw $t8, ($s2) -/* 0AC30C 800AB70C 244C0005 */ addiu $t4, $v0, 5 -/* 0AC310 800AB710 240F0001 */ li $t7, 1 -/* 0AC314 800AB714 018F7004 */ sllv $t6, $t7, $t4 -/* 0AC318 800AB718 03104821 */ addu $t1, $t8, $s0 -/* 0AC31C 800AB71C A12E000E */ sb $t6, 0xe($t1) -/* 0AC320 800AB720 8EA50004 */ lw $a1, 4($s5) -/* 0AC324 800AB724 00002025 */ move $a0, $zero -/* 0AC328 800AB728 0C01BE53 */ jal get_random_number_from_range -/* 0AC32C 800AB72C 24A5FFFF */ addiu $a1, $a1, -1 -/* 0AC330 800AB730 8E590000 */ lw $t9, ($s2) -/* 0AC334 800AB734 26310001 */ addiu $s1, $s1, 1 -/* 0AC338 800AB738 03305821 */ addu $t3, $t9, $s0 -/* 0AC33C 800AB73C A162000F */ sb $v0, 0xf($t3) -/* 0AC340 800AB740 8E6A0000 */ lw $t2, ($s3) -/* 0AC344 800AB744 26100010 */ addiu $s0, $s0, 0x10 -/* 0AC348 800AB748 022A082A */ slt $at, $s1, $t2 -/* 0AC34C 800AB74C 1420FFC5 */ bnez $at, .L800AB664 -/* 0AC350 800AB750 00000000 */ nop -/* 0AC354 800AB754 00008825 */ move $s1, $zero -.L800AB758: -/* 0AC358 800AB758 00148080 */ sll $s0, $s4, 2 -/* 0AC35C 800AB75C 00109080 */ sll $s2, $s0, 2 -/* 0AC360 800AB760 02509021 */ addu $s2, $s2, $s0 -/* 0AC364 800AB764 00129040 */ sll $s2, $s2, 1 -/* 0AC368 800AB768 02402025 */ move $a0, $s2 -/* 0AC36C 800AB76C 0C01C327 */ jal allocate_from_main_pool_safe -/* 0AC370 800AB770 02C02825 */ move $a1, $s6 -/* 0AC374 800AB774 3C13800E */ lui $s3, %hi(D_800E2914) # $s3, 0x800e -/* 0AC378 800AB778 26732914 */ addiu $s3, %lo(D_800E2914) # addiu $s3, $s3, 0x2914 -/* 0AC37C 800AB77C AE620000 */ sw $v0, ($s3) -/* 0AC380 800AB780 02402025 */ move $a0, $s2 -/* 0AC384 800AB784 0C01C327 */ jal allocate_from_main_pool_safe -/* 0AC388 800AB788 02C02825 */ move $a1, $s6 -/* 0AC38C 800AB78C 3C07800E */ lui $a3, %hi(D_800E2914) # $a3, 0x800e -/* 0AC390 800AB790 3C08800E */ lui $t0, %hi(D_800E291C) # $t0, 0x800e -/* 0AC394 800AB794 3C03800E */ lui $v1, %hi(D_800E2904) # $v1, 0x800e -/* 0AC398 800AB798 AE620004 */ sw $v0, 4($s3) -/* 0AC39C 800AB79C 24632904 */ addiu $v1, %lo(D_800E2904) # addiu $v1, $v1, 0x2904 -/* 0AC3A0 800AB7A0 2508291C */ addiu $t0, %lo(D_800E291C) # addiu $t0, $t0, 0x291c -/* 0AC3A4 800AB7A4 24E72914 */ addiu $a3, %lo(D_800E2914) # addiu $a3, $a3, 0x2914 -/* 0AC3A8 800AB7A8 240400FF */ li $a0, 255 -.L800AB7AC: -/* 0AC3AC 800AB7AC 8CED0000 */ lw $t5, ($a3) -/* 0AC3B0 800AB7B0 1A000063 */ blez $s0, .L800AB940 -/* 0AC3B4 800AB7B4 AC6D0000 */ sw $t5, ($v1) -/* 0AC3B8 800AB7B8 32060003 */ andi $a2, $s0, 3 -/* 0AC3BC 800AB7BC 10C00017 */ beqz $a2, .L800AB81C -/* 0AC3C0 800AB7C0 00C02825 */ move $a1, $a2 -/* 0AC3C4 800AB7C4 00111080 */ sll $v0, $s1, 2 -/* 0AC3C8 800AB7C8 00511021 */ addu $v0, $v0, $s1 -/* 0AC3CC 800AB7CC 00021040 */ sll $v0, $v0, 1 -.L800AB7D0: -/* 0AC3D0 800AB7D0 8C6F0000 */ lw $t7, ($v1) -/* 0AC3D4 800AB7D4 26310001 */ addiu $s1, $s1, 1 -/* 0AC3D8 800AB7D8 01E26021 */ addu $t4, $t7, $v0 -/* 0AC3DC 800AB7DC A1840006 */ sb $a0, 6($t4) -/* 0AC3E0 800AB7E0 8C780000 */ lw $t8, ($v1) -/* 0AC3E4 800AB7E4 00000000 */ nop -/* 0AC3E8 800AB7E8 03027021 */ addu $t6, $t8, $v0 -/* 0AC3EC 800AB7EC A1C40007 */ sb $a0, 7($t6) -/* 0AC3F0 800AB7F0 8C690000 */ lw $t1, ($v1) -/* 0AC3F4 800AB7F4 00000000 */ nop -/* 0AC3F8 800AB7F8 0122C821 */ addu $t9, $t1, $v0 -/* 0AC3FC 800AB7FC A3240008 */ sb $a0, 8($t9) -/* 0AC400 800AB800 8C6B0000 */ lw $t3, ($v1) -/* 0AC404 800AB804 00000000 */ nop -/* 0AC408 800AB808 01625021 */ addu $t2, $t3, $v0 -/* 0AC40C 800AB80C A1440009 */ sb $a0, 9($t2) -/* 0AC410 800AB810 14B1FFEF */ bne $a1, $s1, .L800AB7D0 -/* 0AC414 800AB814 2442000A */ addiu $v0, $v0, 0xa -/* 0AC418 800AB818 12300048 */ beq $s1, $s0, .L800AB93C -.L800AB81C: -/* 0AC41C 800AB81C 00111080 */ sll $v0, $s1, 2 -/* 0AC420 800AB820 00102880 */ sll $a1, $s0, 2 -/* 0AC424 800AB824 00B02821 */ addu $a1, $a1, $s0 -/* 0AC428 800AB828 00511021 */ addu $v0, $v0, $s1 -/* 0AC42C 800AB82C 00021040 */ sll $v0, $v0, 1 -/* 0AC430 800AB830 00052840 */ sll $a1, $a1, 1 -.L800AB834: -/* 0AC434 800AB834 8C6D0000 */ lw $t5, ($v1) -/* 0AC438 800AB838 00000000 */ nop -/* 0AC43C 800AB83C 01A27821 */ addu $t7, $t5, $v0 -/* 0AC440 800AB840 A1E40006 */ sb $a0, 6($t7) -/* 0AC444 800AB844 8C6C0000 */ lw $t4, ($v1) -/* 0AC448 800AB848 00000000 */ nop -/* 0AC44C 800AB84C 0182C021 */ addu $t8, $t4, $v0 -/* 0AC450 800AB850 A3040007 */ sb $a0, 7($t8) -/* 0AC454 800AB854 8C6E0000 */ lw $t6, ($v1) -/* 0AC458 800AB858 00000000 */ nop -/* 0AC45C 800AB85C 01C24821 */ addu $t1, $t6, $v0 -/* 0AC460 800AB860 A1240008 */ sb $a0, 8($t1) -/* 0AC464 800AB864 8C790000 */ lw $t9, ($v1) -/* 0AC468 800AB868 00000000 */ nop -/* 0AC46C 800AB86C 03225821 */ addu $t3, $t9, $v0 -/* 0AC470 800AB870 A1640009 */ sb $a0, 9($t3) -/* 0AC474 800AB874 8C6A0000 */ lw $t2, ($v1) -/* 0AC478 800AB878 00000000 */ nop -/* 0AC47C 800AB87C 01426821 */ addu $t5, $t2, $v0 -/* 0AC480 800AB880 A1A40010 */ sb $a0, 0x10($t5) -/* 0AC484 800AB884 8C6F0000 */ lw $t7, ($v1) -/* 0AC488 800AB888 00000000 */ nop -/* 0AC48C 800AB88C 01E26021 */ addu $t4, $t7, $v0 -/* 0AC490 800AB890 A1840011 */ sb $a0, 0x11($t4) -/* 0AC494 800AB894 8C780000 */ lw $t8, ($v1) -/* 0AC498 800AB898 00000000 */ nop -/* 0AC49C 800AB89C 03027021 */ addu $t6, $t8, $v0 -/* 0AC4A0 800AB8A0 A1C40012 */ sb $a0, 0x12($t6) -/* 0AC4A4 800AB8A4 8C690000 */ lw $t1, ($v1) -/* 0AC4A8 800AB8A8 00000000 */ nop -/* 0AC4AC 800AB8AC 0122C821 */ addu $t9, $t1, $v0 -/* 0AC4B0 800AB8B0 A3240013 */ sb $a0, 0x13($t9) -/* 0AC4B4 800AB8B4 8C6B0000 */ lw $t3, ($v1) -/* 0AC4B8 800AB8B8 00000000 */ nop -/* 0AC4BC 800AB8BC 01625021 */ addu $t2, $t3, $v0 -/* 0AC4C0 800AB8C0 A144001A */ sb $a0, 0x1a($t2) -/* 0AC4C4 800AB8C4 8C6D0000 */ lw $t5, ($v1) -/* 0AC4C8 800AB8C8 00000000 */ nop -/* 0AC4CC 800AB8CC 01A27821 */ addu $t7, $t5, $v0 -/* 0AC4D0 800AB8D0 A1E4001B */ sb $a0, 0x1b($t7) -/* 0AC4D4 800AB8D4 8C6C0000 */ lw $t4, ($v1) -/* 0AC4D8 800AB8D8 00000000 */ nop -/* 0AC4DC 800AB8DC 0182C021 */ addu $t8, $t4, $v0 -/* 0AC4E0 800AB8E0 A304001C */ sb $a0, 0x1c($t8) -/* 0AC4E4 800AB8E4 8C6E0000 */ lw $t6, ($v1) -/* 0AC4E8 800AB8E8 00000000 */ nop -/* 0AC4EC 800AB8EC 01C24821 */ addu $t1, $t6, $v0 -/* 0AC4F0 800AB8F0 A124001D */ sb $a0, 0x1d($t1) -/* 0AC4F4 800AB8F4 8C790000 */ lw $t9, ($v1) -/* 0AC4F8 800AB8F8 00000000 */ nop -/* 0AC4FC 800AB8FC 03225821 */ addu $t3, $t9, $v0 -/* 0AC500 800AB900 A1640024 */ sb $a0, 0x24($t3) -/* 0AC504 800AB904 8C6A0000 */ lw $t2, ($v1) -/* 0AC508 800AB908 00000000 */ nop -/* 0AC50C 800AB90C 01426821 */ addu $t5, $t2, $v0 -/* 0AC510 800AB910 A1A40025 */ sb $a0, 0x25($t5) -/* 0AC514 800AB914 8C6F0000 */ lw $t7, ($v1) -/* 0AC518 800AB918 00000000 */ nop -/* 0AC51C 800AB91C 01E26021 */ addu $t4, $t7, $v0 -/* 0AC520 800AB920 A1840026 */ sb $a0, 0x26($t4) -/* 0AC524 800AB924 8C780000 */ lw $t8, ($v1) -/* 0AC528 800AB928 00000000 */ nop -/* 0AC52C 800AB92C 03027021 */ addu $t6, $t8, $v0 -/* 0AC530 800AB930 24420028 */ addiu $v0, $v0, 0x28 -/* 0AC534 800AB934 1445FFBF */ bne $v0, $a1, .L800AB834 -/* 0AC538 800AB938 A1C40027 */ sb $a0, 0x27($t6) -.L800AB93C: -/* 0AC53C 800AB93C 00008825 */ move $s1, $zero -.L800AB940: -/* 0AC540 800AB940 24E70004 */ addiu $a3, $a3, 4 -/* 0AC544 800AB944 00E8082B */ sltu $at, $a3, $t0 -/* 0AC548 800AB948 1420FF98 */ bnez $at, .L800AB7AC -/* 0AC54C 800AB94C 00000000 */ nop -/* 0AC550 800AB950 8EA20008 */ lw $v0, 8($s5) -/* 0AC554 800AB954 3C148012 */ lui $s4, %hi(D_80127C04) # $s4, 0x8012 -/* 0AC558 800AB958 90520000 */ lbu $s2, ($v0) -/* 0AC55C 800AB95C 90530001 */ lbu $s3, 1($v0) -/* 0AC560 800AB960 26947C04 */ addiu $s4, %lo(D_80127C04) # addiu $s4, $s4, 0x7c04 -/* 0AC564 800AB964 8E840000 */ lw $a0, ($s4) -/* 0AC568 800AB968 00124940 */ sll $t1, $s2, 5 -/* 0AC56C 800AB96C 00135140 */ sll $t2, $s3, 5 -/* 0AC570 800AB970 2532FFFF */ addiu $s2, $t1, -1 -/* 0AC574 800AB974 2553FFFF */ addiu $s3, $t2, -1 -/* 0AC578 800AB978 0012CC00 */ sll $t9, $s2, 0x10 -/* 0AC57C 800AB97C 00136C00 */ sll $t5, $s3, 0x10 -/* 0AC580 800AB980 00046100 */ sll $t4, $a0, 4 -/* 0AC584 800AB984 00199403 */ sra $s2, $t9, 0x10 -/* 0AC588 800AB988 000D9C03 */ sra $s3, $t5, 0x10 -/* 0AC58C 800AB98C 01802025 */ move $a0, $t4 -/* 0AC590 800AB990 0C01C327 */ jal allocate_from_main_pool_safe -/* 0AC594 800AB994 02C02825 */ move $a1, $s6 -/* 0AC598 800AB998 8E980000 */ lw $t8, ($s4) -/* 0AC59C 800AB99C 3C03800E */ lui $v1, %hi(D_800E290C) # $v1, 0x800e -/* 0AC5A0 800AB9A0 2463290C */ addiu $v1, %lo(D_800E290C) # addiu $v1, $v1, 0x290c -/* 0AC5A4 800AB9A4 1B000057 */ blez $t8, .L800ABB04 -/* 0AC5A8 800AB9A8 AC620000 */ sw $v0, ($v1) -/* 0AC5AC 800AB9AC 00008025 */ move $s0, $zero -.L800AB9B0: -/* 0AC5B0 800AB9B0 8C6E0000 */ lw $t6, ($v1) -/* 0AC5B4 800AB9B4 00112040 */ sll $a0, $s1, 1 -/* 0AC5B8 800AB9B8 01D04821 */ addu $t1, $t6, $s0 -/* 0AC5BC 800AB9BC A1200000 */ sb $zero, ($t1) -/* 0AC5C0 800AB9C0 8C790000 */ lw $t9, ($v1) -/* 0AC5C4 800AB9C4 24820003 */ addiu $v0, $a0, 3 -/* 0AC5C8 800AB9C8 03305821 */ addu $t3, $t9, $s0 -/* 0AC5CC 800AB9CC A1620001 */ sb $v0, 1($t3) -/* 0AC5D0 800AB9D0 8C6A0000 */ lw $t2, ($v1) -/* 0AC5D4 800AB9D4 24850001 */ addiu $a1, $a0, 1 -/* 0AC5D8 800AB9D8 01506821 */ addu $t5, $t2, $s0 -/* 0AC5DC 800AB9DC A5A00004 */ sh $zero, 4($t5) -/* 0AC5E0 800AB9E0 8C6F0000 */ lw $t7, ($v1) -/* 0AC5E4 800AB9E4 26310002 */ addiu $s1, $s1, 2 -/* 0AC5E8 800AB9E8 01F06021 */ addu $t4, $t7, $s0 -/* 0AC5EC 800AB9EC A5930006 */ sh $s3, 6($t4) -/* 0AC5F0 800AB9F0 8C780000 */ lw $t8, ($v1) -/* 0AC5F4 800AB9F4 00000000 */ nop -/* 0AC5F8 800AB9F8 03107021 */ addu $t6, $t8, $s0 -/* 0AC5FC 800AB9FC A1C50002 */ sb $a1, 2($t6) -/* 0AC600 800ABA00 8C690000 */ lw $t1, ($v1) -/* 0AC604 800ABA04 00000000 */ nop -/* 0AC608 800ABA08 0130C821 */ addu $t9, $t1, $s0 -/* 0AC60C 800ABA0C A7320008 */ sh $s2, 8($t9) -/* 0AC610 800ABA10 8C6B0000 */ lw $t3, ($v1) -/* 0AC614 800ABA14 00000000 */ nop -/* 0AC618 800ABA18 01705021 */ addu $t2, $t3, $s0 -/* 0AC61C 800ABA1C A540000A */ sh $zero, 0xa($t2) -/* 0AC620 800ABA20 8C6D0000 */ lw $t5, ($v1) -/* 0AC624 800ABA24 00000000 */ nop -/* 0AC628 800ABA28 01B07821 */ addu $t7, $t5, $s0 -/* 0AC62C 800ABA2C A1E40003 */ sb $a0, 3($t7) -/* 0AC630 800ABA30 8C6C0000 */ lw $t4, ($v1) -/* 0AC634 800ABA34 00000000 */ nop -/* 0AC638 800ABA38 0190C021 */ addu $t8, $t4, $s0 -/* 0AC63C 800ABA3C A700000C */ sh $zero, 0xc($t8) -/* 0AC640 800ABA40 8C6E0000 */ lw $t6, ($v1) -/* 0AC644 800ABA44 00000000 */ nop -/* 0AC648 800ABA48 01D04821 */ addu $t1, $t6, $s0 -/* 0AC64C 800ABA4C A520000E */ sh $zero, 0xe($t1) -/* 0AC650 800ABA50 8C790000 */ lw $t9, ($v1) -/* 0AC654 800ABA54 24890002 */ addiu $t1, $a0, 2 -/* 0AC658 800ABA58 03305821 */ addu $t3, $t9, $s0 -/* 0AC65C 800ABA5C A1600010 */ sb $zero, 0x10($t3) -/* 0AC660 800ABA60 8C6A0000 */ lw $t2, ($v1) -/* 0AC664 800ABA64 00000000 */ nop -/* 0AC668 800ABA68 01506821 */ addu $t5, $t2, $s0 -/* 0AC66C 800ABA6C A1A20011 */ sb $v0, 0x11($t5) -/* 0AC670 800ABA70 8C6F0000 */ lw $t7, ($v1) -/* 0AC674 800ABA74 00000000 */ nop -/* 0AC678 800ABA78 01F06021 */ addu $t4, $t7, $s0 -/* 0AC67C 800ABA7C A5800014 */ sh $zero, 0x14($t4) -/* 0AC680 800ABA80 8C780000 */ lw $t8, ($v1) -/* 0AC684 800ABA84 00000000 */ nop -/* 0AC688 800ABA88 03107021 */ addu $t6, $t8, $s0 -/* 0AC68C 800ABA8C A5D30016 */ sh $s3, 0x16($t6) -/* 0AC690 800ABA90 8C790000 */ lw $t9, ($v1) -/* 0AC694 800ABA94 00000000 */ nop -/* 0AC698 800ABA98 03305821 */ addu $t3, $t9, $s0 -/* 0AC69C 800ABA9C A1690012 */ sb $t1, 0x12($t3) -/* 0AC6A0 800ABAA0 8C6A0000 */ lw $t2, ($v1) -/* 0AC6A4 800ABAA4 00000000 */ nop -/* 0AC6A8 800ABAA8 01506821 */ addu $t5, $t2, $s0 -/* 0AC6AC 800ABAAC A5B20018 */ sh $s2, 0x18($t5) -/* 0AC6B0 800ABAB0 8C6F0000 */ lw $t7, ($v1) -/* 0AC6B4 800ABAB4 00000000 */ nop -/* 0AC6B8 800ABAB8 01F06021 */ addu $t4, $t7, $s0 -/* 0AC6BC 800ABABC A593001A */ sh $s3, 0x1a($t4) -/* 0AC6C0 800ABAC0 8C780000 */ lw $t8, ($v1) -/* 0AC6C4 800ABAC4 00000000 */ nop -/* 0AC6C8 800ABAC8 03107021 */ addu $t6, $t8, $s0 -/* 0AC6CC 800ABACC A1C50013 */ sb $a1, 0x13($t6) -/* 0AC6D0 800ABAD0 8C790000 */ lw $t9, ($v1) -/* 0AC6D4 800ABAD4 00000000 */ nop -/* 0AC6D8 800ABAD8 03304821 */ addu $t1, $t9, $s0 -/* 0AC6DC 800ABADC A532001C */ sh $s2, 0x1c($t1) -/* 0AC6E0 800ABAE0 8C6B0000 */ lw $t3, ($v1) -/* 0AC6E4 800ABAE4 00000000 */ nop -/* 0AC6E8 800ABAE8 01705021 */ addu $t2, $t3, $s0 -/* 0AC6EC 800ABAEC A540001E */ sh $zero, 0x1e($t2) -/* 0AC6F0 800ABAF0 8E8D0000 */ lw $t5, ($s4) -/* 0AC6F4 800ABAF4 26100020 */ addiu $s0, $s0, 0x20 -/* 0AC6F8 800ABAF8 022D082A */ slt $at, $s1, $t5 -/* 0AC6FC 800ABAFC 1420FFAC */ bnez $at, .L800AB9B0 -/* 0AC700 800ABB00 00000000 */ nop -.L800ABB04: -/* 0AC704 800ABB04 3C018012 */ lui $at, %hi(D_80127C08) # $at, 0x8012 -/* 0AC708 800ABB08 AC207C08 */ sw $zero, %lo(D_80127C08)($at) -/* 0AC70C 800ABB0C 8FBF0034 */ lw $ra, 0x34($sp) -.L800ABB10: -/* 0AC710 800ABB10 8FB00018 */ lw $s0, 0x18($sp) -/* 0AC714 800ABB14 8FB1001C */ lw $s1, 0x1c($sp) -/* 0AC718 800ABB18 8FB20020 */ lw $s2, 0x20($sp) -/* 0AC71C 800ABB1C 8FB30024 */ lw $s3, 0x24($sp) -/* 0AC720 800ABB20 8FB40028 */ lw $s4, 0x28($sp) -/* 0AC724 800ABB24 8FB5002C */ lw $s5, 0x2c($sp) -/* 0AC728 800ABB28 8FB60030 */ lw $s6, 0x30($sp) -/* 0AC72C 800ABB2C 03E00008 */ jr $ra -/* 0AC730 800ABB30 27BD0038 */ addiu $sp, $sp, 0x38 - +glabel func_800AB4A8 +/* 0AC0A8 800AB4A8 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 0AC0AC 800AB4AC AFBF0034 */ sw $ra, 0x34($sp) +/* 0AC0B0 800AB4B0 AFB40028 */ sw $s4, 0x28($sp) +/* 0AC0B4 800AB4B4 AFB20020 */ sw $s2, 0x20($sp) +/* 0AC0B8 800AB4B8 AFB1001C */ sw $s1, 0x1c($sp) +/* 0AC0BC 800AB4BC AFB00018 */ sw $s0, 0x18($sp) +/* 0AC0C0 800AB4C0 00C08025 */ move $s0, $a2 +/* 0AC0C4 800AB4C4 00808825 */ move $s1, $a0 +/* 0AC0C8 800AB4C8 00E09025 */ move $s2, $a3 +/* 0AC0CC 800AB4CC 00A0A025 */ move $s4, $a1 +/* 0AC0D0 800AB4D0 AFB60030 */ sw $s6, 0x30($sp) +/* 0AC0D4 800AB4D4 AFB5002C */ sw $s5, 0x2c($sp) +/* 0AC0D8 800AB4D8 0C02ACD7 */ jal free_weather_memory +/* 0AC0DC 800AB4DC AFB30024 */ sw $s3, 0x24($sp) +/* 0AC0E0 800AB4E0 3C028012 */ lui $v0, %hi(D_80127BB8) # $v0, 0x8012 +/* 0AC0E4 800AB4E4 24427BB8 */ addiu $v0, %lo(D_80127BB8) # addiu $v0, $v0, 0x7bb8 +/* 0AC0E8 800AB4E8 8FA30048 */ lw $v1, 0x48($sp) +/* 0AC0EC 800AB4EC 8FA6004C */ lw $a2, 0x4c($sp) +/* 0AC0F0 800AB4F0 8FA70050 */ lw $a3, 0x50($sp) +/* 0AC0F4 800AB4F4 2A210002 */ slti $at, $s1, 2 +/* 0AC0F8 800AB4F8 AC50000C */ sw $s0, 0xc($v0) +/* 0AC0FC 800AB4FC AC400010 */ sw $zero, 0x10($v0) +/* 0AC100 800AB500 AC500014 */ sw $s0, 0x14($v0) +/* 0AC104 800AB504 AC520018 */ sw $s2, 0x18($v0) +/* 0AC108 800AB508 AC40001C */ sw $zero, 0x1c($v0) +/* 0AC10C 800AB50C AC520020 */ sw $s2, 0x20($v0) +/* 0AC110 800AB510 AC400028 */ sw $zero, 0x28($v0) +/* 0AC114 800AB514 AC400004 */ sw $zero, 4($v0) +/* 0AC118 800AB518 AC400034 */ sw $zero, 0x34($v0) +/* 0AC11C 800AB51C AC40003C */ sw $zero, 0x3c($v0) +/* 0AC120 800AB520 AC430024 */ sw $v1, 0x24($v0) +/* 0AC124 800AB524 AC43002C */ sw $v1, 0x2c($v0) +/* 0AC128 800AB528 AC460000 */ sw $a2, ($v0) +/* 0AC12C 800AB52C AC460008 */ sw $a2, 8($v0) +/* 0AC130 800AB530 AC470030 */ sw $a3, 0x30($v0) +/* 0AC134 800AB534 14200002 */ bnez $at, .L800AB540 +/* 0AC138 800AB538 AC470038 */ sw $a3, 0x38($v0) +/* 0AC13C 800AB53C 24110001 */ li $s1, 1 +.L800AB540: +/* 0AC140 800AB540 00117080 */ sll $t6, $s1, 2 +/* 0AC144 800AB544 01D17023 */ subu $t6, $t6, $s1 +/* 0AC148 800AB548 000E7080 */ sll $t6, $t6, 2 +/* 0AC14C 800AB54C 01D17023 */ subu $t6, $t6, $s1 +/* 0AC150 800AB550 3C0F800E */ lui $t7, %hi(D_800E2850) # $t7, 0x800e +/* 0AC154 800AB554 25EF2850 */ addiu $t7, %lo(D_800E2850) # addiu $t7, $t7, 0x2850 +/* 0AC158 800AB558 000E7080 */ sll $t6, $t6, 2 +/* 0AC15C 800AB55C 01CF8021 */ addu $s0, $t6, $t7 +/* 0AC160 800AB560 8E180008 */ lw $t8, 8($s0) +/* 0AC164 800AB564 24010001 */ li $at, 1 +/* 0AC168 800AB568 17010006 */ bne $t8, $at, .L800AB584 +/* 0AC16C 800AB56C 3C16FFAA */ lui $s6, (0xFFAA55FF >> 16) # lui $s6, 0xffaa +/* 0AC170 800AB570 24C40001 */ addiu $a0, $a2, 1 +/* 0AC174 800AB574 0C02B451 */ jal func_800AD144 +/* 0AC178 800AB578 24E50001 */ addiu $a1, $a3, 1 +/* 0AC17C 800AB57C 10000164 */ b .L800ABB10 +/* 0AC180 800AB580 8FBF0034 */ lw $ra, 0x34($sp) +.L800AB584: +/* 0AC184 800AB584 8E040004 */ lw $a0, 4($s0) +/* 0AC188 800AB588 36D655FF */ ori $s6, (0xFFAA55FF & 0xFFFF) # ori $s6, $s6, 0x55ff +/* 0AC18C 800AB58C 0004C880 */ sll $t9, $a0, 2 +/* 0AC190 800AB590 0324C823 */ subu $t9, $t9, $a0 +/* 0AC194 800AB594 00192080 */ sll $a0, $t9, 2 +/* 0AC198 800AB598 0C01C327 */ jal allocate_from_main_pool_safe +/* 0AC19C 800AB59C 02C02825 */ move $a1, $s6 +/* 0AC1A0 800AB5A0 3C15800E */ lui $s5, %hi(D_800E28D8) # $s5, 0x800e +/* 0AC1A4 800AB5A4 26B528D8 */ addiu $s5, %lo(D_800E28D8) # addiu $s5, $s5, 0x28d8 +/* 0AC1A8 800AB5A8 8E090004 */ lw $t1, 4($s0) +/* 0AC1AC 800AB5AC 8E0B0010 */ lw $t3, 0x10($s0) +/* 0AC1B0 800AB5B0 86180024 */ lh $t8, 0x24($s0) +/* 0AC1B4 800AB5B4 86190026 */ lh $t9, 0x26($s0) +/* 0AC1B8 800AB5B8 8E0D0018 */ lw $t5, 0x18($s0) +/* 0AC1BC 800AB5BC 8E0A000C */ lw $t2, 0xc($s0) +/* 0AC1C0 800AB5C0 8E0C0014 */ lw $t4, 0x14($s0) +/* 0AC1C4 800AB5C4 AEA90004 */ sw $t1, 4($s5) +/* 0AC1C8 800AB5C8 AEAB0010 */ sw $t3, 0x10($s5) +/* 0AC1CC 800AB5CC A6B80024 */ sh $t8, 0x24($s5) +/* 0AC1D0 800AB5D0 A6B90026 */ sh $t9, 0x26($s5) +/* 0AC1D4 800AB5D4 86A90024 */ lh $t1, 0x24($s5) +/* 0AC1D8 800AB5D8 86AB0026 */ lh $t3, 0x26($s5) +/* 0AC1DC 800AB5DC AEAD0018 */ sw $t5, 0x18($s5) +/* 0AC1E0 800AB5E0 8E0E001C */ lw $t6, 0x1c($s0) +/* 0AC1E4 800AB5E4 8E0F0020 */ lw $t7, 0x20($s0) +/* 0AC1E8 800AB5E8 8E0D0008 */ lw $t5, 8($s0) +/* 0AC1EC 800AB5EC AEAA000C */ sw $t2, 0xc($s5) +/* 0AC1F0 800AB5F0 AEAC0014 */ sw $t4, 0x14($s5) +/* 0AC1F4 800AB5F4 00095040 */ sll $t2, $t1, 1 +/* 0AC1F8 800AB5F8 000B6040 */ sll $t4, $t3, 1 +/* 0AC1FC 800AB5FC AEA20000 */ sw $v0, ($s5) +/* 0AC200 800AB600 A6AA0028 */ sh $t2, 0x28($s5) +/* 0AC204 800AB604 A6AC002A */ sh $t4, 0x2a($s5) +/* 0AC208 800AB608 AEAE001C */ sw $t6, 0x1c($s5) +/* 0AC20C 800AB60C 15A00003 */ bnez $t5, .L800AB61C +/* 0AC210 800AB610 AEAF0020 */ sw $t7, 0x20($s5) +/* 0AC214 800AB614 0C02AECD */ jal func_800ABB34 +/* 0AC218 800AB618 00000000 */ nop +.L800AB61C: +/* 0AC21C 800AB61C 3C138012 */ lui $s3, %hi(D_80127BB0) # $s3, 0x8012 +/* 0AC220 800AB620 26737BB0 */ addiu $s3, %lo(D_80127BB0) # addiu $s3, $s3, 0x7bb0 +/* 0AC224 800AB624 AE740000 */ sw $s4, ($s3) +/* 0AC228 800AB628 00142040 */ sll $a0, $s4, 1 +/* 0AC22C 800AB62C 0C01C327 */ jal allocate_from_main_pool_safe +/* 0AC230 800AB630 02C02825 */ move $a1, $s6 +/* 0AC234 800AB634 3C01800E */ lui $at, %hi(D_800E2910) # $at, 0x800e +/* 0AC238 800AB638 AC222910 */ sw $v0, %lo(D_800E2910)($at) +/* 0AC23C 800AB63C 00142100 */ sll $a0, $s4, 4 +/* 0AC240 800AB640 0C01C327 */ jal allocate_from_main_pool_safe +/* 0AC244 800AB644 02C02825 */ move $a1, $s6 +/* 0AC248 800AB648 8E6E0000 */ lw $t6, ($s3) +/* 0AC24C 800AB64C 3C12800E */ lui $s2, %hi(D_800E28D4) # $s2, 0x800e +/* 0AC250 800AB650 265228D4 */ addiu $s2, %lo(D_800E28D4) # addiu $s2, $s2, 0x28d4 +/* 0AC254 800AB654 AE420000 */ sw $v0, ($s2) +/* 0AC258 800AB658 19C0003F */ blez $t6, .L800AB758 +/* 0AC25C 800AB65C 00008825 */ move $s1, $zero +/* 0AC260 800AB660 00008025 */ move $s0, $zero +.L800AB664: +/* 0AC264 800AB664 8EA50018 */ lw $a1, 0x18($s5) +/* 0AC268 800AB668 0C01BE53 */ jal get_random_number_from_range +/* 0AC26C 800AB66C 00002025 */ move $a0, $zero +/* 0AC270 800AB670 8E4F0000 */ lw $t7, ($s2) +/* 0AC274 800AB674 00002025 */ move $a0, $zero +/* 0AC278 800AB678 01F0C021 */ addu $t8, $t7, $s0 +/* 0AC27C 800AB67C AF020000 */ sw $v0, ($t8) +/* 0AC280 800AB680 8EA5001C */ lw $a1, 0x1c($s5) +/* 0AC284 800AB684 0C01BE53 */ jal get_random_number_from_range +/* 0AC288 800AB688 00000000 */ nop +/* 0AC28C 800AB68C 8E590000 */ lw $t9, ($s2) +/* 0AC290 800AB690 00002025 */ move $a0, $zero +/* 0AC294 800AB694 03304821 */ addu $t1, $t9, $s0 +/* 0AC298 800AB698 AD220004 */ sw $v0, 4($t1) +/* 0AC29C 800AB69C 8EA50020 */ lw $a1, 0x20($s5) +/* 0AC2A0 800AB6A0 0C01BE53 */ jal get_random_number_from_range +/* 0AC2A4 800AB6A4 00000000 */ nop +/* 0AC2A8 800AB6A8 8E4A0000 */ lw $t2, ($s2) +/* 0AC2AC 800AB6AC 00002025 */ move $a0, $zero +/* 0AC2B0 800AB6B0 01505821 */ addu $t3, $t2, $s0 +/* 0AC2B4 800AB6B4 AD620008 */ sw $v0, 8($t3) +/* 0AC2B8 800AB6B8 0C01BE53 */ jal get_random_number_from_range +/* 0AC2BC 800AB6BC 24050020 */ li $a1, 32 +/* 0AC2C0 800AB6C0 8E4F0000 */ lw $t7, ($s2) +/* 0AC2C4 800AB6C4 244C0005 */ addiu $t4, $v0, 5 +/* 0AC2C8 800AB6C8 240D0001 */ li $t5, 1 +/* 0AC2CC 800AB6CC 018D7004 */ sllv $t6, $t5, $t4 +/* 0AC2D0 800AB6D0 01F0C021 */ addu $t8, $t7, $s0 +/* 0AC2D4 800AB6D4 A30E000C */ sb $t6, 0xc($t8) +/* 0AC2D8 800AB6D8 00002025 */ move $a0, $zero +/* 0AC2DC 800AB6DC 0C01BE53 */ jal get_random_number_from_range +/* 0AC2E0 800AB6E0 24050020 */ li $a1, 32 +/* 0AC2E4 800AB6E4 8E4B0000 */ lw $t3, ($s2) +/* 0AC2E8 800AB6E8 24590005 */ addiu $t9, $v0, 5 +/* 0AC2EC 800AB6EC 24090001 */ li $t1, 1 +/* 0AC2F0 800AB6F0 03295004 */ sllv $t2, $t1, $t9 +/* 0AC2F4 800AB6F4 01706821 */ addu $t5, $t3, $s0 +/* 0AC2F8 800AB6F8 A1AA000D */ sb $t2, 0xd($t5) +/* 0AC2FC 800AB6FC 00002025 */ move $a0, $zero +/* 0AC300 800AB700 0C01BE53 */ jal get_random_number_from_range +/* 0AC304 800AB704 24050020 */ li $a1, 32 +/* 0AC308 800AB708 8E580000 */ lw $t8, ($s2) +/* 0AC30C 800AB70C 244C0005 */ addiu $t4, $v0, 5 +/* 0AC310 800AB710 240F0001 */ li $t7, 1 +/* 0AC314 800AB714 018F7004 */ sllv $t6, $t7, $t4 +/* 0AC318 800AB718 03104821 */ addu $t1, $t8, $s0 +/* 0AC31C 800AB71C A12E000E */ sb $t6, 0xe($t1) +/* 0AC320 800AB720 8EA50004 */ lw $a1, 4($s5) +/* 0AC324 800AB724 00002025 */ move $a0, $zero +/* 0AC328 800AB728 0C01BE53 */ jal get_random_number_from_range +/* 0AC32C 800AB72C 24A5FFFF */ addiu $a1, $a1, -1 +/* 0AC330 800AB730 8E590000 */ lw $t9, ($s2) +/* 0AC334 800AB734 26310001 */ addiu $s1, $s1, 1 +/* 0AC338 800AB738 03305821 */ addu $t3, $t9, $s0 +/* 0AC33C 800AB73C A162000F */ sb $v0, 0xf($t3) +/* 0AC340 800AB740 8E6A0000 */ lw $t2, ($s3) +/* 0AC344 800AB744 26100010 */ addiu $s0, $s0, 0x10 +/* 0AC348 800AB748 022A082A */ slt $at, $s1, $t2 +/* 0AC34C 800AB74C 1420FFC5 */ bnez $at, .L800AB664 +/* 0AC350 800AB750 00000000 */ nop +/* 0AC354 800AB754 00008825 */ move $s1, $zero +.L800AB758: +/* 0AC358 800AB758 00148080 */ sll $s0, $s4, 2 +/* 0AC35C 800AB75C 00109080 */ sll $s2, $s0, 2 +/* 0AC360 800AB760 02509021 */ addu $s2, $s2, $s0 +/* 0AC364 800AB764 00129040 */ sll $s2, $s2, 1 +/* 0AC368 800AB768 02402025 */ move $a0, $s2 +/* 0AC36C 800AB76C 0C01C327 */ jal allocate_from_main_pool_safe +/* 0AC370 800AB770 02C02825 */ move $a1, $s6 +/* 0AC374 800AB774 3C13800E */ lui $s3, %hi(D_800E2914) # $s3, 0x800e +/* 0AC378 800AB778 26732914 */ addiu $s3, %lo(D_800E2914) # addiu $s3, $s3, 0x2914 +/* 0AC37C 800AB77C AE620000 */ sw $v0, ($s3) +/* 0AC380 800AB780 02402025 */ move $a0, $s2 +/* 0AC384 800AB784 0C01C327 */ jal allocate_from_main_pool_safe +/* 0AC388 800AB788 02C02825 */ move $a1, $s6 +/* 0AC38C 800AB78C 3C07800E */ lui $a3, %hi(D_800E2914) # $a3, 0x800e +/* 0AC390 800AB790 3C08800E */ lui $t0, %hi(gWeatherAssetTable) # $t0, 0x800e +/* 0AC394 800AB794 3C03800E */ lui $v1, %hi(D_800E2904) # $v1, 0x800e +/* 0AC398 800AB798 AE620004 */ sw $v0, 4($s3) +/* 0AC39C 800AB79C 24632904 */ addiu $v1, %lo(D_800E2904) # addiu $v1, $v1, 0x2904 +/* 0AC3A0 800AB7A0 2508291C */ addiu $t0, %lo(gWeatherAssetTable) # addiu $t0, $t0, 0x291c +/* 0AC3A4 800AB7A4 24E72914 */ addiu $a3, %lo(D_800E2914) # addiu $a3, $a3, 0x2914 +/* 0AC3A8 800AB7A8 240400FF */ li $a0, 255 +.L800AB7AC: +/* 0AC3AC 800AB7AC 8CED0000 */ lw $t5, ($a3) +/* 0AC3B0 800AB7B0 1A000063 */ blez $s0, .L800AB940 +/* 0AC3B4 800AB7B4 AC6D0000 */ sw $t5, ($v1) +/* 0AC3B8 800AB7B8 32060003 */ andi $a2, $s0, 3 +/* 0AC3BC 800AB7BC 10C00017 */ beqz $a2, .L800AB81C +/* 0AC3C0 800AB7C0 00C02825 */ move $a1, $a2 +/* 0AC3C4 800AB7C4 00111080 */ sll $v0, $s1, 2 +/* 0AC3C8 800AB7C8 00511021 */ addu $v0, $v0, $s1 +/* 0AC3CC 800AB7CC 00021040 */ sll $v0, $v0, 1 +.L800AB7D0: +/* 0AC3D0 800AB7D0 8C6F0000 */ lw $t7, ($v1) +/* 0AC3D4 800AB7D4 26310001 */ addiu $s1, $s1, 1 +/* 0AC3D8 800AB7D8 01E26021 */ addu $t4, $t7, $v0 +/* 0AC3DC 800AB7DC A1840006 */ sb $a0, 6($t4) +/* 0AC3E0 800AB7E0 8C780000 */ lw $t8, ($v1) +/* 0AC3E4 800AB7E4 00000000 */ nop +/* 0AC3E8 800AB7E8 03027021 */ addu $t6, $t8, $v0 +/* 0AC3EC 800AB7EC A1C40007 */ sb $a0, 7($t6) +/* 0AC3F0 800AB7F0 8C690000 */ lw $t1, ($v1) +/* 0AC3F4 800AB7F4 00000000 */ nop +/* 0AC3F8 800AB7F8 0122C821 */ addu $t9, $t1, $v0 +/* 0AC3FC 800AB7FC A3240008 */ sb $a0, 8($t9) +/* 0AC400 800AB800 8C6B0000 */ lw $t3, ($v1) +/* 0AC404 800AB804 00000000 */ nop +/* 0AC408 800AB808 01625021 */ addu $t2, $t3, $v0 +/* 0AC40C 800AB80C A1440009 */ sb $a0, 9($t2) +/* 0AC410 800AB810 14B1FFEF */ bne $a1, $s1, .L800AB7D0 +/* 0AC414 800AB814 2442000A */ addiu $v0, $v0, 0xa +/* 0AC418 800AB818 12300048 */ beq $s1, $s0, .L800AB93C +.L800AB81C: +/* 0AC41C 800AB81C 00111080 */ sll $v0, $s1, 2 +/* 0AC420 800AB820 00102880 */ sll $a1, $s0, 2 +/* 0AC424 800AB824 00B02821 */ addu $a1, $a1, $s0 +/* 0AC428 800AB828 00511021 */ addu $v0, $v0, $s1 +/* 0AC42C 800AB82C 00021040 */ sll $v0, $v0, 1 +/* 0AC430 800AB830 00052840 */ sll $a1, $a1, 1 +.L800AB834: +/* 0AC434 800AB834 8C6D0000 */ lw $t5, ($v1) +/* 0AC438 800AB838 00000000 */ nop +/* 0AC43C 800AB83C 01A27821 */ addu $t7, $t5, $v0 +/* 0AC440 800AB840 A1E40006 */ sb $a0, 6($t7) +/* 0AC444 800AB844 8C6C0000 */ lw $t4, ($v1) +/* 0AC448 800AB848 00000000 */ nop +/* 0AC44C 800AB84C 0182C021 */ addu $t8, $t4, $v0 +/* 0AC450 800AB850 A3040007 */ sb $a0, 7($t8) +/* 0AC454 800AB854 8C6E0000 */ lw $t6, ($v1) +/* 0AC458 800AB858 00000000 */ nop +/* 0AC45C 800AB85C 01C24821 */ addu $t1, $t6, $v0 +/* 0AC460 800AB860 A1240008 */ sb $a0, 8($t1) +/* 0AC464 800AB864 8C790000 */ lw $t9, ($v1) +/* 0AC468 800AB868 00000000 */ nop +/* 0AC46C 800AB86C 03225821 */ addu $t3, $t9, $v0 +/* 0AC470 800AB870 A1640009 */ sb $a0, 9($t3) +/* 0AC474 800AB874 8C6A0000 */ lw $t2, ($v1) +/* 0AC478 800AB878 00000000 */ nop +/* 0AC47C 800AB87C 01426821 */ addu $t5, $t2, $v0 +/* 0AC480 800AB880 A1A40010 */ sb $a0, 0x10($t5) +/* 0AC484 800AB884 8C6F0000 */ lw $t7, ($v1) +/* 0AC488 800AB888 00000000 */ nop +/* 0AC48C 800AB88C 01E26021 */ addu $t4, $t7, $v0 +/* 0AC490 800AB890 A1840011 */ sb $a0, 0x11($t4) +/* 0AC494 800AB894 8C780000 */ lw $t8, ($v1) +/* 0AC498 800AB898 00000000 */ nop +/* 0AC49C 800AB89C 03027021 */ addu $t6, $t8, $v0 +/* 0AC4A0 800AB8A0 A1C40012 */ sb $a0, 0x12($t6) +/* 0AC4A4 800AB8A4 8C690000 */ lw $t1, ($v1) +/* 0AC4A8 800AB8A8 00000000 */ nop +/* 0AC4AC 800AB8AC 0122C821 */ addu $t9, $t1, $v0 +/* 0AC4B0 800AB8B0 A3240013 */ sb $a0, 0x13($t9) +/* 0AC4B4 800AB8B4 8C6B0000 */ lw $t3, ($v1) +/* 0AC4B8 800AB8B8 00000000 */ nop +/* 0AC4BC 800AB8BC 01625021 */ addu $t2, $t3, $v0 +/* 0AC4C0 800AB8C0 A144001A */ sb $a0, 0x1a($t2) +/* 0AC4C4 800AB8C4 8C6D0000 */ lw $t5, ($v1) +/* 0AC4C8 800AB8C8 00000000 */ nop +/* 0AC4CC 800AB8CC 01A27821 */ addu $t7, $t5, $v0 +/* 0AC4D0 800AB8D0 A1E4001B */ sb $a0, 0x1b($t7) +/* 0AC4D4 800AB8D4 8C6C0000 */ lw $t4, ($v1) +/* 0AC4D8 800AB8D8 00000000 */ nop +/* 0AC4DC 800AB8DC 0182C021 */ addu $t8, $t4, $v0 +/* 0AC4E0 800AB8E0 A304001C */ sb $a0, 0x1c($t8) +/* 0AC4E4 800AB8E4 8C6E0000 */ lw $t6, ($v1) +/* 0AC4E8 800AB8E8 00000000 */ nop +/* 0AC4EC 800AB8EC 01C24821 */ addu $t1, $t6, $v0 +/* 0AC4F0 800AB8F0 A124001D */ sb $a0, 0x1d($t1) +/* 0AC4F4 800AB8F4 8C790000 */ lw $t9, ($v1) +/* 0AC4F8 800AB8F8 00000000 */ nop +/* 0AC4FC 800AB8FC 03225821 */ addu $t3, $t9, $v0 +/* 0AC500 800AB900 A1640024 */ sb $a0, 0x24($t3) +/* 0AC504 800AB904 8C6A0000 */ lw $t2, ($v1) +/* 0AC508 800AB908 00000000 */ nop +/* 0AC50C 800AB90C 01426821 */ addu $t5, $t2, $v0 +/* 0AC510 800AB910 A1A40025 */ sb $a0, 0x25($t5) +/* 0AC514 800AB914 8C6F0000 */ lw $t7, ($v1) +/* 0AC518 800AB918 00000000 */ nop +/* 0AC51C 800AB91C 01E26021 */ addu $t4, $t7, $v0 +/* 0AC520 800AB920 A1840026 */ sb $a0, 0x26($t4) +/* 0AC524 800AB924 8C780000 */ lw $t8, ($v1) +/* 0AC528 800AB928 00000000 */ nop +/* 0AC52C 800AB92C 03027021 */ addu $t6, $t8, $v0 +/* 0AC530 800AB930 24420028 */ addiu $v0, $v0, 0x28 +/* 0AC534 800AB934 1445FFBF */ bne $v0, $a1, .L800AB834 +/* 0AC538 800AB938 A1C40027 */ sb $a0, 0x27($t6) +.L800AB93C: +/* 0AC53C 800AB93C 00008825 */ move $s1, $zero +.L800AB940: +/* 0AC540 800AB940 24E70004 */ addiu $a3, $a3, 4 +/* 0AC544 800AB944 00E8082B */ sltu $at, $a3, $t0 +/* 0AC548 800AB948 1420FF98 */ bnez $at, .L800AB7AC +/* 0AC54C 800AB94C 00000000 */ nop +/* 0AC550 800AB950 8EA20008 */ lw $v0, 8($s5) +/* 0AC554 800AB954 3C148012 */ lui $s4, %hi(D_80127C04) # $s4, 0x8012 +/* 0AC558 800AB958 90520000 */ lbu $s2, ($v0) +/* 0AC55C 800AB95C 90530001 */ lbu $s3, 1($v0) +/* 0AC560 800AB960 26947C04 */ addiu $s4, %lo(D_80127C04) # addiu $s4, $s4, 0x7c04 +/* 0AC564 800AB964 8E840000 */ lw $a0, ($s4) +/* 0AC568 800AB968 00124940 */ sll $t1, $s2, 5 +/* 0AC56C 800AB96C 00135140 */ sll $t2, $s3, 5 +/* 0AC570 800AB970 2532FFFF */ addiu $s2, $t1, -1 +/* 0AC574 800AB974 2553FFFF */ addiu $s3, $t2, -1 +/* 0AC578 800AB978 0012CC00 */ sll $t9, $s2, 0x10 +/* 0AC57C 800AB97C 00136C00 */ sll $t5, $s3, 0x10 +/* 0AC580 800AB980 00046100 */ sll $t4, $a0, 4 +/* 0AC584 800AB984 00199403 */ sra $s2, $t9, 0x10 +/* 0AC588 800AB988 000D9C03 */ sra $s3, $t5, 0x10 +/* 0AC58C 800AB98C 01802025 */ move $a0, $t4 +/* 0AC590 800AB990 0C01C327 */ jal allocate_from_main_pool_safe +/* 0AC594 800AB994 02C02825 */ move $a1, $s6 +/* 0AC598 800AB998 8E980000 */ lw $t8, ($s4) +/* 0AC59C 800AB99C 3C03800E */ lui $v1, %hi(D_800E290C) # $v1, 0x800e +/* 0AC5A0 800AB9A0 2463290C */ addiu $v1, %lo(D_800E290C) # addiu $v1, $v1, 0x290c +/* 0AC5A4 800AB9A4 1B000057 */ blez $t8, .L800ABB04 +/* 0AC5A8 800AB9A8 AC620000 */ sw $v0, ($v1) +/* 0AC5AC 800AB9AC 00008025 */ move $s0, $zero +.L800AB9B0: +/* 0AC5B0 800AB9B0 8C6E0000 */ lw $t6, ($v1) +/* 0AC5B4 800AB9B4 00112040 */ sll $a0, $s1, 1 +/* 0AC5B8 800AB9B8 01D04821 */ addu $t1, $t6, $s0 +/* 0AC5BC 800AB9BC A1200000 */ sb $zero, ($t1) +/* 0AC5C0 800AB9C0 8C790000 */ lw $t9, ($v1) +/* 0AC5C4 800AB9C4 24820003 */ addiu $v0, $a0, 3 +/* 0AC5C8 800AB9C8 03305821 */ addu $t3, $t9, $s0 +/* 0AC5CC 800AB9CC A1620001 */ sb $v0, 1($t3) +/* 0AC5D0 800AB9D0 8C6A0000 */ lw $t2, ($v1) +/* 0AC5D4 800AB9D4 24850001 */ addiu $a1, $a0, 1 +/* 0AC5D8 800AB9D8 01506821 */ addu $t5, $t2, $s0 +/* 0AC5DC 800AB9DC A5A00004 */ sh $zero, 4($t5) +/* 0AC5E0 800AB9E0 8C6F0000 */ lw $t7, ($v1) +/* 0AC5E4 800AB9E4 26310002 */ addiu $s1, $s1, 2 +/* 0AC5E8 800AB9E8 01F06021 */ addu $t4, $t7, $s0 +/* 0AC5EC 800AB9EC A5930006 */ sh $s3, 6($t4) +/* 0AC5F0 800AB9F0 8C780000 */ lw $t8, ($v1) +/* 0AC5F4 800AB9F4 00000000 */ nop +/* 0AC5F8 800AB9F8 03107021 */ addu $t6, $t8, $s0 +/* 0AC5FC 800AB9FC A1C50002 */ sb $a1, 2($t6) +/* 0AC600 800ABA00 8C690000 */ lw $t1, ($v1) +/* 0AC604 800ABA04 00000000 */ nop +/* 0AC608 800ABA08 0130C821 */ addu $t9, $t1, $s0 +/* 0AC60C 800ABA0C A7320008 */ sh $s2, 8($t9) +/* 0AC610 800ABA10 8C6B0000 */ lw $t3, ($v1) +/* 0AC614 800ABA14 00000000 */ nop +/* 0AC618 800ABA18 01705021 */ addu $t2, $t3, $s0 +/* 0AC61C 800ABA1C A540000A */ sh $zero, 0xa($t2) +/* 0AC620 800ABA20 8C6D0000 */ lw $t5, ($v1) +/* 0AC624 800ABA24 00000000 */ nop +/* 0AC628 800ABA28 01B07821 */ addu $t7, $t5, $s0 +/* 0AC62C 800ABA2C A1E40003 */ sb $a0, 3($t7) +/* 0AC630 800ABA30 8C6C0000 */ lw $t4, ($v1) +/* 0AC634 800ABA34 00000000 */ nop +/* 0AC638 800ABA38 0190C021 */ addu $t8, $t4, $s0 +/* 0AC63C 800ABA3C A700000C */ sh $zero, 0xc($t8) +/* 0AC640 800ABA40 8C6E0000 */ lw $t6, ($v1) +/* 0AC644 800ABA44 00000000 */ nop +/* 0AC648 800ABA48 01D04821 */ addu $t1, $t6, $s0 +/* 0AC64C 800ABA4C A520000E */ sh $zero, 0xe($t1) +/* 0AC650 800ABA50 8C790000 */ lw $t9, ($v1) +/* 0AC654 800ABA54 24890002 */ addiu $t1, $a0, 2 +/* 0AC658 800ABA58 03305821 */ addu $t3, $t9, $s0 +/* 0AC65C 800ABA5C A1600010 */ sb $zero, 0x10($t3) +/* 0AC660 800ABA60 8C6A0000 */ lw $t2, ($v1) +/* 0AC664 800ABA64 00000000 */ nop +/* 0AC668 800ABA68 01506821 */ addu $t5, $t2, $s0 +/* 0AC66C 800ABA6C A1A20011 */ sb $v0, 0x11($t5) +/* 0AC670 800ABA70 8C6F0000 */ lw $t7, ($v1) +/* 0AC674 800ABA74 00000000 */ nop +/* 0AC678 800ABA78 01F06021 */ addu $t4, $t7, $s0 +/* 0AC67C 800ABA7C A5800014 */ sh $zero, 0x14($t4) +/* 0AC680 800ABA80 8C780000 */ lw $t8, ($v1) +/* 0AC684 800ABA84 00000000 */ nop +/* 0AC688 800ABA88 03107021 */ addu $t6, $t8, $s0 +/* 0AC68C 800ABA8C A5D30016 */ sh $s3, 0x16($t6) +/* 0AC690 800ABA90 8C790000 */ lw $t9, ($v1) +/* 0AC694 800ABA94 00000000 */ nop +/* 0AC698 800ABA98 03305821 */ addu $t3, $t9, $s0 +/* 0AC69C 800ABA9C A1690012 */ sb $t1, 0x12($t3) +/* 0AC6A0 800ABAA0 8C6A0000 */ lw $t2, ($v1) +/* 0AC6A4 800ABAA4 00000000 */ nop +/* 0AC6A8 800ABAA8 01506821 */ addu $t5, $t2, $s0 +/* 0AC6AC 800ABAAC A5B20018 */ sh $s2, 0x18($t5) +/* 0AC6B0 800ABAB0 8C6F0000 */ lw $t7, ($v1) +/* 0AC6B4 800ABAB4 00000000 */ nop +/* 0AC6B8 800ABAB8 01F06021 */ addu $t4, $t7, $s0 +/* 0AC6BC 800ABABC A593001A */ sh $s3, 0x1a($t4) +/* 0AC6C0 800ABAC0 8C780000 */ lw $t8, ($v1) +/* 0AC6C4 800ABAC4 00000000 */ nop +/* 0AC6C8 800ABAC8 03107021 */ addu $t6, $t8, $s0 +/* 0AC6CC 800ABACC A1C50013 */ sb $a1, 0x13($t6) +/* 0AC6D0 800ABAD0 8C790000 */ lw $t9, ($v1) +/* 0AC6D4 800ABAD4 00000000 */ nop +/* 0AC6D8 800ABAD8 03304821 */ addu $t1, $t9, $s0 +/* 0AC6DC 800ABADC A532001C */ sh $s2, 0x1c($t1) +/* 0AC6E0 800ABAE0 8C6B0000 */ lw $t3, ($v1) +/* 0AC6E4 800ABAE4 00000000 */ nop +/* 0AC6E8 800ABAE8 01705021 */ addu $t2, $t3, $s0 +/* 0AC6EC 800ABAEC A540001E */ sh $zero, 0x1e($t2) +/* 0AC6F0 800ABAF0 8E8D0000 */ lw $t5, ($s4) +/* 0AC6F4 800ABAF4 26100020 */ addiu $s0, $s0, 0x20 +/* 0AC6F8 800ABAF8 022D082A */ slt $at, $s1, $t5 +/* 0AC6FC 800ABAFC 1420FFAC */ bnez $at, .L800AB9B0 +/* 0AC700 800ABB00 00000000 */ nop +.L800ABB04: +/* 0AC704 800ABB04 3C018012 */ lui $at, %hi(D_80127C08) # $at, 0x8012 +/* 0AC708 800ABB08 AC207C08 */ sw $zero, %lo(D_80127C08)($at) +/* 0AC70C 800ABB0C 8FBF0034 */ lw $ra, 0x34($sp) +.L800ABB10: +/* 0AC710 800ABB10 8FB00018 */ lw $s0, 0x18($sp) +/* 0AC714 800ABB14 8FB1001C */ lw $s1, 0x1c($sp) +/* 0AC718 800ABB18 8FB20020 */ lw $s2, 0x20($sp) +/* 0AC71C 800ABB1C 8FB30024 */ lw $s3, 0x24($sp) +/* 0AC720 800ABB20 8FB40028 */ lw $s4, 0x28($sp) +/* 0AC724 800ABB24 8FB5002C */ lw $s5, 0x2c($sp) +/* 0AC728 800ABB28 8FB60030 */ lw $s6, 0x30($sp) +/* 0AC72C 800ABB2C 03E00008 */ jr $ra +/* 0AC730 800ABB30 27BD0038 */ addiu $sp, $sp, 0x38 + diff --git a/asm/non_matchings/weather/func_800AC21C.s b/asm/non_matchings/weather/func_800AC21C.s index f538660b..78212e77 100644 --- a/asm/non_matchings/weather/func_800AC21C.s +++ b/asm/non_matchings/weather/func_800AC21C.s @@ -1,231 +1,231 @@ -glabel func_800AC21C -/* 0ACE1C 800AC21C 27BDFF88 */ addiu $sp, $sp, -0x78 -/* 0ACE20 800AC220 3C028012 */ lui $v0, %hi(D_80127C1C) # $v0, 0x8012 -/* 0ACE24 800AC224 8C427C1C */ lw $v0, %lo(D_80127C1C)($v0) -/* 0ACE28 800AC228 AFBF0044 */ sw $ra, 0x44($sp) -/* 0ACE2C 800AC22C AFBE0040 */ sw $fp, 0x40($sp) -/* 0ACE30 800AC230 AFB7003C */ sw $s7, 0x3c($sp) -/* 0ACE34 800AC234 AFB60038 */ sw $s6, 0x38($sp) -/* 0ACE38 800AC238 AFB50034 */ sw $s5, 0x34($sp) -/* 0ACE3C 800AC23C AFB40030 */ sw $s4, 0x30($sp) -/* 0ACE40 800AC240 AFB3002C */ sw $s3, 0x2c($sp) -/* 0ACE44 800AC244 AFB20028 */ sw $s2, 0x28($sp) -/* 0ACE48 800AC248 AFB10024 */ sw $s1, 0x24($sp) -/* 0ACE4C 800AC24C AFB00020 */ sw $s0, 0x20($sp) -/* 0ACE50 800AC250 E7B50018 */ swc1 $f21, 0x18($sp) -/* 0ACE54 800AC254 E7B4001C */ swc1 $f20, 0x1c($sp) -/* 0ACE58 800AC258 3C014780 */ li $at, 0x47800000 # 65536.000000 -/* 0ACE5C 800AC25C 44810000 */ mtc1 $at, $f0 -/* 0ACE60 800AC260 C444000C */ lwc1 $f4, 0xc($v0) -/* 0ACE64 800AC264 C44A0010 */ lwc1 $f10, 0x10($v0) -/* 0ACE68 800AC268 46002182 */ mul.s $f6, $f4, $f0 -/* 0ACE6C 800AC26C C4440014 */ lwc1 $f4, 0x14($v0) -/* 0ACE70 800AC270 3C14800E */ lui $s4, %hi(D_800E2908) # $s4, 0x800e -/* 0ACE74 800AC274 26942908 */ addiu $s4, %lo(D_800E2908) # addiu $s4, $s4, 0x2908 -/* 0ACE78 800AC278 444EF800 */ cfc1 $t6, $31 -/* 0ACE7C 800AC27C AE800000 */ sw $zero, ($s4) -/* 0ACE80 800AC280 35C10003 */ ori $at, $t6, 3 -/* 0ACE84 800AC284 38210002 */ xori $at, $at, 2 -/* 0ACE88 800AC288 44C1F800 */ ctc1 $at, $31 -/* 0ACE8C 800AC28C 3C198012 */ lui $t9, %hi(D_80127BB4) # $t9, 0x8012 -/* 0ACE90 800AC290 46003224 */ cvt.w.s $f8, $f6 -/* 0ACE94 800AC294 8F397BB4 */ lw $t9, %lo(D_80127BB4)($t9) -/* 0ACE98 800AC298 44CEF800 */ ctc1 $t6, $31 -/* 0ACE9C 800AC29C 44034000 */ mfc1 $v1, $f8 -/* 0ACEA0 800AC2A0 46005402 */ mul.s $f16, $f10, $f0 -/* 0ACEA4 800AC2A4 3C11800E */ lui $s1, %hi(D_800E2904) # $s1, 0x800e -/* 0ACEA8 800AC2A8 8E312904 */ lw $s1, %lo(D_800E2904)($s1) -/* 0ACEAC 800AC2AC 3C168012 */ lui $s6, %hi(D_80127BF8) # $s6, 0x8012 -/* 0ACEB0 800AC2B0 444FF800 */ cfc1 $t7, $31 -/* 0ACEB4 800AC2B4 3C17800E */ lui $s7, %hi(D_800E28D4) # $s7, 0x800e -/* 0ACEB8 800AC2B8 35E10003 */ ori $at, $t7, 3 -/* 0ACEBC 800AC2BC 38210002 */ xori $at, $at, 2 -/* 0ACEC0 800AC2C0 44C1F800 */ ctc1 $at, $31 -/* 0ACEC4 800AC2C4 3C1E8012 */ lui $fp, %hi(D_80127C20) # $fp, 0x8012 -/* 0ACEC8 800AC2C8 460084A4 */ cvt.w.s $f18, $f16 -/* 0ACECC 800AC2CC 27DE7C20 */ addiu $fp, %lo(D_80127C20) # addiu $fp, $fp, 0x7c20 -/* 0ACED0 800AC2D0 44CFF800 */ ctc1 $t7, $31 -/* 0ACED4 800AC2D4 44079000 */ mfc1 $a3, $f18 -/* 0ACED8 800AC2D8 46002182 */ mul.s $f6, $f4, $f0 -/* 0ACEDC 800AC2DC 26F728D4 */ addiu $s7, %lo(D_800E28D4) # addiu $s7, $s7, 0x28d4 -/* 0ACEE0 800AC2E0 26D67BF8 */ addiu $s6, %lo(D_80127BF8) # addiu $s6, $s6, 0x7bf8 -/* 0ACEE4 800AC2E4 3C10800E */ lui $s0, %hi(D_800E28D8) # $s0, 0x800e -/* 0ACEE8 800AC2E8 4458F800 */ cfc1 $t8, $31 -/* 0ACEEC 800AC2EC 00009025 */ move $s2, $zero -/* 0ACEF0 800AC2F0 37010003 */ ori $at, $t8, 3 -/* 0ACEF4 800AC2F4 38210002 */ xori $at, $at, 2 -/* 0ACEF8 800AC2F8 44C1F800 */ ctc1 $at, $31 -/* 0ACEFC 800AC2FC 3C013780 */ li $at, 0x37800000 # 0.000015 -/* 0ACF00 800AC300 46003224 */ cvt.w.s $f8, $f6 -/* 0ACF04 800AC304 00009825 */ move $s3, $zero -/* 0ACF08 800AC308 44084000 */ mfc1 $t0, $f8 -/* 0ACF0C 800AC30C 44D8F800 */ ctc1 $t8, $31 -/* 0ACF10 800AC310 1B200096 */ blez $t9, .L800AC56C -/* 0ACF14 800AC314 27B50064 */ addiu $s5, $sp, 0x64 -/* 0ACF18 800AC318 4481A000 */ mtc1 $at, $f20 -/* 0ACF1C 800AC31C AFA30058 */ sw $v1, 0x58($sp) -/* 0ACF20 800AC320 AFA70054 */ sw $a3, 0x54($sp) -/* 0ACF24 800AC324 AFA80050 */ sw $t0, 0x50($sp) -/* 0ACF28 800AC328 261028D8 */ addiu $s0, %lo(D_800E28D8) # addiu $s0, $s0, 0x28d8 -.L800AC32C: -/* 0ACF2C 800AC32C 8EE90000 */ lw $t1, ($s7) -/* 0ACF30 800AC330 8FA30058 */ lw $v1, 0x58($sp) -/* 0ACF34 800AC334 01331021 */ addu $v0, $t1, $s3 -/* 0ACF38 800AC338 8C4A0000 */ lw $t2, ($v0) -/* 0ACF3C 800AC33C 8E0C0018 */ lw $t4, 0x18($s0) -/* 0ACF40 800AC340 8E0E000C */ lw $t6, 0xc($s0) -/* 0ACF44 800AC344 01435823 */ subu $t3, $t2, $v1 -/* 0ACF48 800AC348 016C6824 */ and $t5, $t3, $t4 -/* 0ACF4C 800AC34C 01AE7821 */ addu $t7, $t5, $t6 -/* 0ACF50 800AC350 448F5000 */ mtc1 $t7, $f10 -/* 0ACF54 800AC354 8FA70054 */ lw $a3, 0x54($sp) -/* 0ACF58 800AC358 46805420 */ cvt.s.w $f16, $f10 -/* 0ACF5C 800AC35C 8E09001C */ lw $t1, 0x1c($s0) -/* 0ACF60 800AC360 8E0B0010 */ lw $t3, 0x10($s0) -/* 0ACF64 800AC364 46148482 */ mul.s $f18, $f16, $f20 -/* 0ACF68 800AC368 8FA80050 */ lw $t0, 0x50($sp) -/* 0ACF6C 800AC36C 8E0F0020 */ lw $t7, 0x20($s0) -/* 0ACF70 800AC370 8FC40000 */ lw $a0, ($fp) -/* 0ACF74 800AC374 E7B20064 */ swc1 $f18, 0x64($sp) -/* 0ACF78 800AC378 8C580004 */ lw $t8, 4($v0) -/* 0ACF7C 800AC37C 02A02825 */ move $a1, $s5 -/* 0ACF80 800AC380 0307C823 */ subu $t9, $t8, $a3 -/* 0ACF84 800AC384 03295024 */ and $t2, $t9, $t1 -/* 0ACF88 800AC388 014B6021 */ addu $t4, $t2, $t3 -/* 0ACF8C 800AC38C 448C2000 */ mtc1 $t4, $f4 -/* 0ACF90 800AC390 8E190014 */ lw $t9, 0x14($s0) -/* 0ACF94 800AC394 468021A0 */ cvt.s.w $f6, $f4 -/* 0ACF98 800AC398 02A03025 */ move $a2, $s5 -/* 0ACF9C 800AC39C 46143202 */ mul.s $f8, $f6, $f20 -/* 0ACFA0 800AC3A0 E7A80068 */ swc1 $f8, 0x68($sp) -/* 0ACFA4 800AC3A4 8C4D0008 */ lw $t5, 8($v0) -/* 0ACFA8 800AC3A8 00000000 */ nop -/* 0ACFAC 800AC3AC 01A87023 */ subu $t6, $t5, $t0 -/* 0ACFB0 800AC3B0 01CFC024 */ and $t8, $t6, $t7 -/* 0ACFB4 800AC3B4 03194821 */ addu $t1, $t8, $t9 -/* 0ACFB8 800AC3B8 44895000 */ mtc1 $t1, $f10 -/* 0ACFBC 800AC3BC 00000000 */ nop -/* 0ACFC0 800AC3C0 46805420 */ cvt.s.w $f16, $f10 -/* 0ACFC4 800AC3C4 46148482 */ mul.s $f18, $f16, $f20 -/* 0ACFC8 800AC3C8 0C01BDBB */ jal f32_matrix_dot -/* 0ACFCC 800AC3CC E7B2006C */ swc1 $f18, 0x6c($sp) -/* 0ACFD0 800AC3D0 444AF800 */ cfc1 $t2, $31 -/* 0ACFD4 800AC3D4 C7A4006C */ lwc1 $f4, 0x6c($sp) -/* 0ACFD8 800AC3D8 35410003 */ ori $at, $t2, 3 -/* 0ACFDC 800AC3DC 38210002 */ xori $at, $at, 2 -/* 0ACFE0 800AC3E0 44C1F800 */ ctc1 $at, $31 -/* 0ACFE4 800AC3E4 86CD0000 */ lh $t5, ($s6) -/* 0ACFE8 800AC3E8 460021A4 */ cvt.w.s $f6, $f4 -/* 0ACFEC 800AC3EC 44023000 */ mfc1 $v0, $f6 -/* 0ACFF0 800AC3F0 44CAF800 */ ctc1 $t2, $31 -/* 0ACFF4 800AC3F4 00025C00 */ sll $t3, $v0, 0x10 -/* 0ACFF8 800AC3F8 000B6403 */ sra $t4, $t3, 0x10 -/* 0ACFFC 800AC3FC 018D082A */ slt $at, $t4, $t5 -/* 0AD000 800AC400 10200054 */ beqz $at, .L800AC554 -/* 0AD004 800AC404 A7AC0074 */ sh $t4, 0x74($sp) -/* 0AD008 800AC408 8ECE0004 */ lw $t6, 4($s6) -/* 0AD00C 800AC40C A7AC0074 */ sh $t4, 0x74($sp) -/* 0AD010 800AC410 01CC082A */ slt $at, $t6, $t4 -/* 0AD014 800AC414 1020004F */ beqz $at, .L800AC554 -/* 0AD018 800AC418 00000000 */ nop -/* 0AD01C 800AC41C 444FF800 */ cfc1 $t7, $31 -/* 0AD020 800AC420 C7A80064 */ lwc1 $f8, 0x64($sp) -/* 0AD024 800AC424 35E10003 */ ori $at, $t7, 3 -/* 0AD028 800AC428 38210002 */ xori $at, $at, 2 -/* 0AD02C 800AC42C 44C1F800 */ ctc1 $at, $31 -/* 0AD030 800AC430 C7B00068 */ lwc1 $f16, 0x68($sp) -/* 0AD034 800AC434 460042A4 */ cvt.w.s $f10, $f8 -/* 0AD038 800AC438 860A0024 */ lh $t2, 0x24($s0) -/* 0AD03C 800AC43C 44CFF800 */ ctc1 $t7, $31 -/* 0AD040 800AC440 440C5000 */ mfc1 $t4, $f10 -/* 0AD044 800AC444 26310028 */ addiu $s1, $s1, 0x28 -/* 0AD048 800AC448 4459F800 */ cfc1 $t9, $31 -/* 0AD04C 800AC44C A7AC0070 */ sh $t4, 0x70($sp) -/* 0AD050 800AC450 37210003 */ ori $at, $t9, 3 -/* 0AD054 800AC454 38210002 */ xori $at, $at, 2 -/* 0AD058 800AC458 44C1F800 */ ctc1 $at, $31 -/* 0AD05C 800AC45C 018A6823 */ subu $t5, $t4, $t2 -/* 0AD060 800AC460 460084A4 */ cvt.w.s $f18, $f16 -/* 0AD064 800AC464 44099000 */ mfc1 $t1, $f18 -/* 0AD068 800AC468 44D9F800 */ ctc1 $t9, $31 -/* 0AD06C 800AC46C A7A90072 */ sh $t1, 0x72($sp) -/* 0AD070 800AC470 A62DFFD8 */ sh $t5, -0x28($s1) -/* 0AD074 800AC474 860F0026 */ lh $t7, 0x26($s0) -/* 0AD078 800AC478 87AE0072 */ lh $t6, 0x72($sp) -/* 0AD07C 800AC47C 00000000 */ nop -/* 0AD080 800AC480 01CFC821 */ addu $t9, $t6, $t7 -/* 0AD084 800AC484 A639FFDA */ sh $t9, -0x26($s1) -/* 0AD088 800AC488 87A90074 */ lh $t1, 0x74($sp) -/* 0AD08C 800AC48C 00000000 */ nop -/* 0AD090 800AC490 A629FFDC */ sh $t1, -0x24($s1) -/* 0AD094 800AC494 860B0024 */ lh $t3, 0x24($s0) -/* 0AD098 800AC498 87B80070 */ lh $t8, 0x70($sp) -/* 0AD09C 800AC49C 00000000 */ nop -/* 0AD0A0 800AC4A0 030B6021 */ addu $t4, $t8, $t3 -/* 0AD0A4 800AC4A4 A62CFFE2 */ sh $t4, -0x1e($s1) -/* 0AD0A8 800AC4A8 860D0026 */ lh $t5, 0x26($s0) -/* 0AD0AC 800AC4AC 87AA0072 */ lh $t2, 0x72($sp) -/* 0AD0B0 800AC4B0 00000000 */ nop -/* 0AD0B4 800AC4B4 014D7021 */ addu $t6, $t2, $t5 -/* 0AD0B8 800AC4B8 A62EFFE4 */ sh $t6, -0x1c($s1) -/* 0AD0BC 800AC4BC 87AF0074 */ lh $t7, 0x74($sp) -/* 0AD0C0 800AC4C0 00000000 */ nop -/* 0AD0C4 800AC4C4 A62FFFE6 */ sh $t7, -0x1a($s1) -/* 0AD0C8 800AC4C8 86090024 */ lh $t1, 0x24($s0) -/* 0AD0CC 800AC4CC 87B90070 */ lh $t9, 0x70($sp) -/* 0AD0D0 800AC4D0 00000000 */ nop -/* 0AD0D4 800AC4D4 0329C021 */ addu $t8, $t9, $t1 -/* 0AD0D8 800AC4D8 A638FFEC */ sh $t8, -0x14($s1) -/* 0AD0DC 800AC4DC 860C0026 */ lh $t4, 0x26($s0) -/* 0AD0E0 800AC4E0 87AB0072 */ lh $t3, 0x72($sp) -/* 0AD0E4 800AC4E4 00000000 */ nop -/* 0AD0E8 800AC4E8 016C5023 */ subu $t2, $t3, $t4 -/* 0AD0EC 800AC4EC A62AFFEE */ sh $t2, -0x12($s1) -/* 0AD0F0 800AC4F0 87AD0074 */ lh $t5, 0x74($sp) -/* 0AD0F4 800AC4F4 00000000 */ nop -/* 0AD0F8 800AC4F8 A62DFFF0 */ sh $t5, -0x10($s1) -/* 0AD0FC 800AC4FC 860F0024 */ lh $t7, 0x24($s0) -/* 0AD100 800AC500 87AE0070 */ lh $t6, 0x70($sp) -/* 0AD104 800AC504 00000000 */ nop -/* 0AD108 800AC508 01CFC823 */ subu $t9, $t6, $t7 -/* 0AD10C 800AC50C A639FFF6 */ sh $t9, -0xa($s1) -/* 0AD110 800AC510 86180026 */ lh $t8, 0x26($s0) -/* 0AD114 800AC514 87A90072 */ lh $t1, 0x72($sp) -/* 0AD118 800AC518 3C0E800E */ lui $t6, %hi(D_800E2910) # $t6, 0x800e -/* 0AD11C 800AC51C 01385823 */ subu $t3, $t1, $t8 -/* 0AD120 800AC520 A62BFFF8 */ sh $t3, -8($s1) -/* 0AD124 800AC524 87AC0074 */ lh $t4, 0x74($sp) -/* 0AD128 800AC528 00000000 */ nop -/* 0AD12C 800AC52C A62CFFFA */ sh $t4, -6($s1) -/* 0AD130 800AC530 8E8A0000 */ lw $t2, ($s4) -/* 0AD134 800AC534 00000000 */ nop -/* 0AD138 800AC538 254D0004 */ addiu $t5, $t2, 4 -/* 0AD13C 800AC53C AE8D0000 */ sw $t5, ($s4) -/* 0AD140 800AC540 8DCE2910 */ lw $t6, %lo(D_800E2910)($t6) -/* 0AD144 800AC544 000DC883 */ sra $t9, $t5, 2 -/* 0AD148 800AC548 00194840 */ sll $t1, $t9, 1 -/* 0AD14C 800AC54C 01C9C021 */ addu $t8, $t6, $t1 -/* 0AD150 800AC550 A7120000 */ sh $s2, ($t8) -.L800AC554: -/* 0AD154 800AC554 3C0B8012 */ lui $t3, %hi(D_80127BB4) # $t3, 0x8012 -/* 0AD158 800AC558 8D6B7BB4 */ lw $t3, %lo(D_80127BB4)($t3) -/* 0AD15C 800AC55C 26520001 */ addiu $s2, $s2, 1 -/* 0AD160 800AC560 024B082A */ slt $at, $s2, $t3 -/* 0AD164 800AC564 1420FF71 */ bnez $at, .L800AC32C -/* 0AD168 800AC568 26730010 */ addiu $s3, $s3, 0x10 -.L800AC56C: -/* 0AD16C 800AC56C 8FBF0044 */ lw $ra, 0x44($sp) -/* 0AD170 800AC570 C7B50018 */ lwc1 $f21, 0x18($sp) -/* 0AD174 800AC574 C7B4001C */ lwc1 $f20, 0x1c($sp) -/* 0AD178 800AC578 8FB00020 */ lw $s0, 0x20($sp) -/* 0AD17C 800AC57C 8FB10024 */ lw $s1, 0x24($sp) -/* 0AD180 800AC580 8FB20028 */ lw $s2, 0x28($sp) -/* 0AD184 800AC584 8FB3002C */ lw $s3, 0x2c($sp) -/* 0AD188 800AC588 8FB40030 */ lw $s4, 0x30($sp) -/* 0AD18C 800AC58C 8FB50034 */ lw $s5, 0x34($sp) -/* 0AD190 800AC590 8FB60038 */ lw $s6, 0x38($sp) -/* 0AD194 800AC594 8FB7003C */ lw $s7, 0x3c($sp) -/* 0AD198 800AC598 8FBE0040 */ lw $fp, 0x40($sp) -/* 0AD19C 800AC59C 03E00008 */ jr $ra -/* 0AD1A0 800AC5A0 27BD0078 */ addiu $sp, $sp, 0x78 - +glabel func_800AC21C +/* 0ACE1C 800AC21C 27BDFF88 */ addiu $sp, $sp, -0x78 +/* 0ACE20 800AC220 3C028012 */ lui $v0, %hi(gWeatherCamera) # $v0, 0x8012 +/* 0ACE24 800AC224 8C427C1C */ lw $v0, %lo(gWeatherCamera)($v0) +/* 0ACE28 800AC228 AFBF0044 */ sw $ra, 0x44($sp) +/* 0ACE2C 800AC22C AFBE0040 */ sw $fp, 0x40($sp) +/* 0ACE30 800AC230 AFB7003C */ sw $s7, 0x3c($sp) +/* 0ACE34 800AC234 AFB60038 */ sw $s6, 0x38($sp) +/* 0ACE38 800AC238 AFB50034 */ sw $s5, 0x34($sp) +/* 0ACE3C 800AC23C AFB40030 */ sw $s4, 0x30($sp) +/* 0ACE40 800AC240 AFB3002C */ sw $s3, 0x2c($sp) +/* 0ACE44 800AC244 AFB20028 */ sw $s2, 0x28($sp) +/* 0ACE48 800AC248 AFB10024 */ sw $s1, 0x24($sp) +/* 0ACE4C 800AC24C AFB00020 */ sw $s0, 0x20($sp) +/* 0ACE50 800AC250 E7B50018 */ swc1 $f21, 0x18($sp) +/* 0ACE54 800AC254 E7B4001C */ swc1 $f20, 0x1c($sp) +/* 0ACE58 800AC258 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 0ACE5C 800AC25C 44810000 */ mtc1 $at, $f0 +/* 0ACE60 800AC260 C444000C */ lwc1 $f4, 0xc($v0) +/* 0ACE64 800AC264 C44A0010 */ lwc1 $f10, 0x10($v0) +/* 0ACE68 800AC268 46002182 */ mul.s $f6, $f4, $f0 +/* 0ACE6C 800AC26C C4440014 */ lwc1 $f4, 0x14($v0) +/* 0ACE70 800AC270 3C14800E */ lui $s4, %hi(D_800E2908) # $s4, 0x800e +/* 0ACE74 800AC274 26942908 */ addiu $s4, %lo(D_800E2908) # addiu $s4, $s4, 0x2908 +/* 0ACE78 800AC278 444EF800 */ cfc1 $t6, $31 +/* 0ACE7C 800AC27C AE800000 */ sw $zero, ($s4) +/* 0ACE80 800AC280 35C10003 */ ori $at, $t6, 3 +/* 0ACE84 800AC284 38210002 */ xori $at, $at, 2 +/* 0ACE88 800AC288 44C1F800 */ ctc1 $at, $31 +/* 0ACE8C 800AC28C 3C198012 */ lui $t9, %hi(D_80127BB4) # $t9, 0x8012 +/* 0ACE90 800AC290 46003224 */ cvt.w.s $f8, $f6 +/* 0ACE94 800AC294 8F397BB4 */ lw $t9, %lo(D_80127BB4)($t9) +/* 0ACE98 800AC298 44CEF800 */ ctc1 $t6, $31 +/* 0ACE9C 800AC29C 44034000 */ mfc1 $v1, $f8 +/* 0ACEA0 800AC2A0 46005402 */ mul.s $f16, $f10, $f0 +/* 0ACEA4 800AC2A4 3C11800E */ lui $s1, %hi(D_800E2904) # $s1, 0x800e +/* 0ACEA8 800AC2A8 8E312904 */ lw $s1, %lo(D_800E2904)($s1) +/* 0ACEAC 800AC2AC 3C168012 */ lui $s6, %hi(D_80127BF8) # $s6, 0x8012 +/* 0ACEB0 800AC2B0 444FF800 */ cfc1 $t7, $31 +/* 0ACEB4 800AC2B4 3C17800E */ lui $s7, %hi(D_800E28D4) # $s7, 0x800e +/* 0ACEB8 800AC2B8 35E10003 */ ori $at, $t7, 3 +/* 0ACEBC 800AC2BC 38210002 */ xori $at, $at, 2 +/* 0ACEC0 800AC2C0 44C1F800 */ ctc1 $at, $31 +/* 0ACEC4 800AC2C4 3C1E8012 */ lui $fp, %hi(gWeatherCameraMatrix) # $fp, 0x8012 +/* 0ACEC8 800AC2C8 460084A4 */ cvt.w.s $f18, $f16 +/* 0ACECC 800AC2CC 27DE7C20 */ addiu $fp, %lo(gWeatherCameraMatrix) # addiu $fp, $fp, 0x7c20 +/* 0ACED0 800AC2D0 44CFF800 */ ctc1 $t7, $31 +/* 0ACED4 800AC2D4 44079000 */ mfc1 $a3, $f18 +/* 0ACED8 800AC2D8 46002182 */ mul.s $f6, $f4, $f0 +/* 0ACEDC 800AC2DC 26F728D4 */ addiu $s7, %lo(D_800E28D4) # addiu $s7, $s7, 0x28d4 +/* 0ACEE0 800AC2E0 26D67BF8 */ addiu $s6, %lo(D_80127BF8) # addiu $s6, $s6, 0x7bf8 +/* 0ACEE4 800AC2E4 3C10800E */ lui $s0, %hi(D_800E28D8) # $s0, 0x800e +/* 0ACEE8 800AC2E8 4458F800 */ cfc1 $t8, $31 +/* 0ACEEC 800AC2EC 00009025 */ move $s2, $zero +/* 0ACEF0 800AC2F0 37010003 */ ori $at, $t8, 3 +/* 0ACEF4 800AC2F4 38210002 */ xori $at, $at, 2 +/* 0ACEF8 800AC2F8 44C1F800 */ ctc1 $at, $31 +/* 0ACEFC 800AC2FC 3C013780 */ li $at, 0x37800000 # 0.000015 +/* 0ACF00 800AC300 46003224 */ cvt.w.s $f8, $f6 +/* 0ACF04 800AC304 00009825 */ move $s3, $zero +/* 0ACF08 800AC308 44084000 */ mfc1 $t0, $f8 +/* 0ACF0C 800AC30C 44D8F800 */ ctc1 $t8, $31 +/* 0ACF10 800AC310 1B200096 */ blez $t9, .L800AC56C +/* 0ACF14 800AC314 27B50064 */ addiu $s5, $sp, 0x64 +/* 0ACF18 800AC318 4481A000 */ mtc1 $at, $f20 +/* 0ACF1C 800AC31C AFA30058 */ sw $v1, 0x58($sp) +/* 0ACF20 800AC320 AFA70054 */ sw $a3, 0x54($sp) +/* 0ACF24 800AC324 AFA80050 */ sw $t0, 0x50($sp) +/* 0ACF28 800AC328 261028D8 */ addiu $s0, %lo(D_800E28D8) # addiu $s0, $s0, 0x28d8 +.L800AC32C: +/* 0ACF2C 800AC32C 8EE90000 */ lw $t1, ($s7) +/* 0ACF30 800AC330 8FA30058 */ lw $v1, 0x58($sp) +/* 0ACF34 800AC334 01331021 */ addu $v0, $t1, $s3 +/* 0ACF38 800AC338 8C4A0000 */ lw $t2, ($v0) +/* 0ACF3C 800AC33C 8E0C0018 */ lw $t4, 0x18($s0) +/* 0ACF40 800AC340 8E0E000C */ lw $t6, 0xc($s0) +/* 0ACF44 800AC344 01435823 */ subu $t3, $t2, $v1 +/* 0ACF48 800AC348 016C6824 */ and $t5, $t3, $t4 +/* 0ACF4C 800AC34C 01AE7821 */ addu $t7, $t5, $t6 +/* 0ACF50 800AC350 448F5000 */ mtc1 $t7, $f10 +/* 0ACF54 800AC354 8FA70054 */ lw $a3, 0x54($sp) +/* 0ACF58 800AC358 46805420 */ cvt.s.w $f16, $f10 +/* 0ACF5C 800AC35C 8E09001C */ lw $t1, 0x1c($s0) +/* 0ACF60 800AC360 8E0B0010 */ lw $t3, 0x10($s0) +/* 0ACF64 800AC364 46148482 */ mul.s $f18, $f16, $f20 +/* 0ACF68 800AC368 8FA80050 */ lw $t0, 0x50($sp) +/* 0ACF6C 800AC36C 8E0F0020 */ lw $t7, 0x20($s0) +/* 0ACF70 800AC370 8FC40000 */ lw $a0, ($fp) +/* 0ACF74 800AC374 E7B20064 */ swc1 $f18, 0x64($sp) +/* 0ACF78 800AC378 8C580004 */ lw $t8, 4($v0) +/* 0ACF7C 800AC37C 02A02825 */ move $a1, $s5 +/* 0ACF80 800AC380 0307C823 */ subu $t9, $t8, $a3 +/* 0ACF84 800AC384 03295024 */ and $t2, $t9, $t1 +/* 0ACF88 800AC388 014B6021 */ addu $t4, $t2, $t3 +/* 0ACF8C 800AC38C 448C2000 */ mtc1 $t4, $f4 +/* 0ACF90 800AC390 8E190014 */ lw $t9, 0x14($s0) +/* 0ACF94 800AC394 468021A0 */ cvt.s.w $f6, $f4 +/* 0ACF98 800AC398 02A03025 */ move $a2, $s5 +/* 0ACF9C 800AC39C 46143202 */ mul.s $f8, $f6, $f20 +/* 0ACFA0 800AC3A0 E7A80068 */ swc1 $f8, 0x68($sp) +/* 0ACFA4 800AC3A4 8C4D0008 */ lw $t5, 8($v0) +/* 0ACFA8 800AC3A8 00000000 */ nop +/* 0ACFAC 800AC3AC 01A87023 */ subu $t6, $t5, $t0 +/* 0ACFB0 800AC3B0 01CFC024 */ and $t8, $t6, $t7 +/* 0ACFB4 800AC3B4 03194821 */ addu $t1, $t8, $t9 +/* 0ACFB8 800AC3B8 44895000 */ mtc1 $t1, $f10 +/* 0ACFBC 800AC3BC 00000000 */ nop +/* 0ACFC0 800AC3C0 46805420 */ cvt.s.w $f16, $f10 +/* 0ACFC4 800AC3C4 46148482 */ mul.s $f18, $f16, $f20 +/* 0ACFC8 800AC3C8 0C01BDBB */ jal f32_matrix_dot +/* 0ACFCC 800AC3CC E7B2006C */ swc1 $f18, 0x6c($sp) +/* 0ACFD0 800AC3D0 444AF800 */ cfc1 $t2, $31 +/* 0ACFD4 800AC3D4 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 0ACFD8 800AC3D8 35410003 */ ori $at, $t2, 3 +/* 0ACFDC 800AC3DC 38210002 */ xori $at, $at, 2 +/* 0ACFE0 800AC3E0 44C1F800 */ ctc1 $at, $31 +/* 0ACFE4 800AC3E4 86CD0000 */ lh $t5, ($s6) +/* 0ACFE8 800AC3E8 460021A4 */ cvt.w.s $f6, $f4 +/* 0ACFEC 800AC3EC 44023000 */ mfc1 $v0, $f6 +/* 0ACFF0 800AC3F0 44CAF800 */ ctc1 $t2, $31 +/* 0ACFF4 800AC3F4 00025C00 */ sll $t3, $v0, 0x10 +/* 0ACFF8 800AC3F8 000B6403 */ sra $t4, $t3, 0x10 +/* 0ACFFC 800AC3FC 018D082A */ slt $at, $t4, $t5 +/* 0AD000 800AC400 10200054 */ beqz $at, .L800AC554 +/* 0AD004 800AC404 A7AC0074 */ sh $t4, 0x74($sp) +/* 0AD008 800AC408 8ECE0004 */ lw $t6, 4($s6) +/* 0AD00C 800AC40C A7AC0074 */ sh $t4, 0x74($sp) +/* 0AD010 800AC410 01CC082A */ slt $at, $t6, $t4 +/* 0AD014 800AC414 1020004F */ beqz $at, .L800AC554 +/* 0AD018 800AC418 00000000 */ nop +/* 0AD01C 800AC41C 444FF800 */ cfc1 $t7, $31 +/* 0AD020 800AC420 C7A80064 */ lwc1 $f8, 0x64($sp) +/* 0AD024 800AC424 35E10003 */ ori $at, $t7, 3 +/* 0AD028 800AC428 38210002 */ xori $at, $at, 2 +/* 0AD02C 800AC42C 44C1F800 */ ctc1 $at, $31 +/* 0AD030 800AC430 C7B00068 */ lwc1 $f16, 0x68($sp) +/* 0AD034 800AC434 460042A4 */ cvt.w.s $f10, $f8 +/* 0AD038 800AC438 860A0024 */ lh $t2, 0x24($s0) +/* 0AD03C 800AC43C 44CFF800 */ ctc1 $t7, $31 +/* 0AD040 800AC440 440C5000 */ mfc1 $t4, $f10 +/* 0AD044 800AC444 26310028 */ addiu $s1, $s1, 0x28 +/* 0AD048 800AC448 4459F800 */ cfc1 $t9, $31 +/* 0AD04C 800AC44C A7AC0070 */ sh $t4, 0x70($sp) +/* 0AD050 800AC450 37210003 */ ori $at, $t9, 3 +/* 0AD054 800AC454 38210002 */ xori $at, $at, 2 +/* 0AD058 800AC458 44C1F800 */ ctc1 $at, $31 +/* 0AD05C 800AC45C 018A6823 */ subu $t5, $t4, $t2 +/* 0AD060 800AC460 460084A4 */ cvt.w.s $f18, $f16 +/* 0AD064 800AC464 44099000 */ mfc1 $t1, $f18 +/* 0AD068 800AC468 44D9F800 */ ctc1 $t9, $31 +/* 0AD06C 800AC46C A7A90072 */ sh $t1, 0x72($sp) +/* 0AD070 800AC470 A62DFFD8 */ sh $t5, -0x28($s1) +/* 0AD074 800AC474 860F0026 */ lh $t7, 0x26($s0) +/* 0AD078 800AC478 87AE0072 */ lh $t6, 0x72($sp) +/* 0AD07C 800AC47C 00000000 */ nop +/* 0AD080 800AC480 01CFC821 */ addu $t9, $t6, $t7 +/* 0AD084 800AC484 A639FFDA */ sh $t9, -0x26($s1) +/* 0AD088 800AC488 87A90074 */ lh $t1, 0x74($sp) +/* 0AD08C 800AC48C 00000000 */ nop +/* 0AD090 800AC490 A629FFDC */ sh $t1, -0x24($s1) +/* 0AD094 800AC494 860B0024 */ lh $t3, 0x24($s0) +/* 0AD098 800AC498 87B80070 */ lh $t8, 0x70($sp) +/* 0AD09C 800AC49C 00000000 */ nop +/* 0AD0A0 800AC4A0 030B6021 */ addu $t4, $t8, $t3 +/* 0AD0A4 800AC4A4 A62CFFE2 */ sh $t4, -0x1e($s1) +/* 0AD0A8 800AC4A8 860D0026 */ lh $t5, 0x26($s0) +/* 0AD0AC 800AC4AC 87AA0072 */ lh $t2, 0x72($sp) +/* 0AD0B0 800AC4B0 00000000 */ nop +/* 0AD0B4 800AC4B4 014D7021 */ addu $t6, $t2, $t5 +/* 0AD0B8 800AC4B8 A62EFFE4 */ sh $t6, -0x1c($s1) +/* 0AD0BC 800AC4BC 87AF0074 */ lh $t7, 0x74($sp) +/* 0AD0C0 800AC4C0 00000000 */ nop +/* 0AD0C4 800AC4C4 A62FFFE6 */ sh $t7, -0x1a($s1) +/* 0AD0C8 800AC4C8 86090024 */ lh $t1, 0x24($s0) +/* 0AD0CC 800AC4CC 87B90070 */ lh $t9, 0x70($sp) +/* 0AD0D0 800AC4D0 00000000 */ nop +/* 0AD0D4 800AC4D4 0329C021 */ addu $t8, $t9, $t1 +/* 0AD0D8 800AC4D8 A638FFEC */ sh $t8, -0x14($s1) +/* 0AD0DC 800AC4DC 860C0026 */ lh $t4, 0x26($s0) +/* 0AD0E0 800AC4E0 87AB0072 */ lh $t3, 0x72($sp) +/* 0AD0E4 800AC4E4 00000000 */ nop +/* 0AD0E8 800AC4E8 016C5023 */ subu $t2, $t3, $t4 +/* 0AD0EC 800AC4EC A62AFFEE */ sh $t2, -0x12($s1) +/* 0AD0F0 800AC4F0 87AD0074 */ lh $t5, 0x74($sp) +/* 0AD0F4 800AC4F4 00000000 */ nop +/* 0AD0F8 800AC4F8 A62DFFF0 */ sh $t5, -0x10($s1) +/* 0AD0FC 800AC4FC 860F0024 */ lh $t7, 0x24($s0) +/* 0AD100 800AC500 87AE0070 */ lh $t6, 0x70($sp) +/* 0AD104 800AC504 00000000 */ nop +/* 0AD108 800AC508 01CFC823 */ subu $t9, $t6, $t7 +/* 0AD10C 800AC50C A639FFF6 */ sh $t9, -0xa($s1) +/* 0AD110 800AC510 86180026 */ lh $t8, 0x26($s0) +/* 0AD114 800AC514 87A90072 */ lh $t1, 0x72($sp) +/* 0AD118 800AC518 3C0E800E */ lui $t6, %hi(D_800E2910) # $t6, 0x800e +/* 0AD11C 800AC51C 01385823 */ subu $t3, $t1, $t8 +/* 0AD120 800AC520 A62BFFF8 */ sh $t3, -8($s1) +/* 0AD124 800AC524 87AC0074 */ lh $t4, 0x74($sp) +/* 0AD128 800AC528 00000000 */ nop +/* 0AD12C 800AC52C A62CFFFA */ sh $t4, -6($s1) +/* 0AD130 800AC530 8E8A0000 */ lw $t2, ($s4) +/* 0AD134 800AC534 00000000 */ nop +/* 0AD138 800AC538 254D0004 */ addiu $t5, $t2, 4 +/* 0AD13C 800AC53C AE8D0000 */ sw $t5, ($s4) +/* 0AD140 800AC540 8DCE2910 */ lw $t6, %lo(D_800E2910)($t6) +/* 0AD144 800AC544 000DC883 */ sra $t9, $t5, 2 +/* 0AD148 800AC548 00194840 */ sll $t1, $t9, 1 +/* 0AD14C 800AC54C 01C9C021 */ addu $t8, $t6, $t1 +/* 0AD150 800AC550 A7120000 */ sh $s2, ($t8) +.L800AC554: +/* 0AD154 800AC554 3C0B8012 */ lui $t3, %hi(D_80127BB4) # $t3, 0x8012 +/* 0AD158 800AC558 8D6B7BB4 */ lw $t3, %lo(D_80127BB4)($t3) +/* 0AD15C 800AC55C 26520001 */ addiu $s2, $s2, 1 +/* 0AD160 800AC560 024B082A */ slt $at, $s2, $t3 +/* 0AD164 800AC564 1420FF71 */ bnez $at, .L800AC32C +/* 0AD168 800AC568 26730010 */ addiu $s3, $s3, 0x10 +.L800AC56C: +/* 0AD16C 800AC56C 8FBF0044 */ lw $ra, 0x44($sp) +/* 0AD170 800AC570 C7B50018 */ lwc1 $f21, 0x18($sp) +/* 0AD174 800AC574 C7B4001C */ lwc1 $f20, 0x1c($sp) +/* 0AD178 800AC578 8FB00020 */ lw $s0, 0x20($sp) +/* 0AD17C 800AC57C 8FB10024 */ lw $s1, 0x24($sp) +/* 0AD180 800AC580 8FB20028 */ lw $s2, 0x28($sp) +/* 0AD184 800AC584 8FB3002C */ lw $s3, 0x2c($sp) +/* 0AD188 800AC588 8FB40030 */ lw $s4, 0x30($sp) +/* 0AD18C 800AC58C 8FB50034 */ lw $s5, 0x34($sp) +/* 0AD190 800AC590 8FB60038 */ lw $s6, 0x38($sp) +/* 0AD194 800AC594 8FB7003C */ lw $s7, 0x3c($sp) +/* 0AD198 800AC598 8FBE0040 */ lw $fp, 0x40($sp) +/* 0AD19C 800AC59C 03E00008 */ jr $ra +/* 0AD1A0 800AC5A0 27BD0078 */ addiu $sp, $sp, 0x78 + diff --git a/asm/non_matchings/weather/func_800ACA20.s b/asm/non_matchings/weather/func_800ACA20.s index c12aca29..d8bfb922 100644 --- a/asm/non_matchings/weather/func_800ACA20.s +++ b/asm/non_matchings/weather/func_800ACA20.s @@ -69,7 +69,7 @@ glabel func_800ACA20 /* 0AD72C 800ACB2C 0C019B37 */ jal func_80066CDC /* 0AD730 800ACB30 E7B200C8 */ swc1 $f18, 0xc8($sp) /* 0AD734 800ACB34 02202025 */ move $a0, $s1 -/* 0AD738 800ACB38 0C01A102 */ jal func_80068408 +/* 0AD738 800ACB38 0C01A102 */ jal matrix_world_origin /* 0AD73C 800ACB3C 02A02825 */ move $a1, $s5 /* 0AD740 800ACB40 3C014000 */ li $at, 0x40000000 # 2.000000 /* 0AD744 800ACB44 4481C000 */ mtc1 $at, $f24 diff --git a/asm/non_matchings/weather/render_rain_overlay.s b/asm/non_matchings/weather/render_rain_overlay.s index 68adc003..75857f2f 100644 --- a/asm/non_matchings/weather/render_rain_overlay.s +++ b/asm/non_matchings/weather/render_rain_overlay.s @@ -1,370 +1,370 @@ -glabel render_rain_overlay -/* 0AE8BC 800ADCBC 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* 0AE8C0 800ADCC0 AFBF0044 */ sw $ra, 0x44($sp) -/* 0AE8C4 800ADCC4 AFB30040 */ sw $s3, 0x40($sp) -/* 0AE8C8 800ADCC8 AFB2003C */ sw $s2, 0x3c($sp) -/* 0AE8CC 800ADCCC AFB10038 */ sw $s1, 0x38($sp) -/* 0AE8D0 800ADCD0 AFB00034 */ sw $s0, 0x34($sp) -/* 0AE8D4 800ADCD4 E7BB0028 */ swc1 $f27, 0x28($sp) -/* 0AE8D8 800ADCD8 E7BA002C */ swc1 $f26, 0x2c($sp) -/* 0AE8DC 800ADCDC E7B90020 */ swc1 $f25, 0x20($sp) -/* 0AE8E0 800ADCE0 E7B80024 */ swc1 $f24, 0x24($sp) -/* 0AE8E4 800ADCE4 E7B70018 */ swc1 $f23, 0x18($sp) -/* 0AE8E8 800ADCE8 E7B6001C */ swc1 $f22, 0x1c($sp) -/* 0AE8EC 800ADCEC E7B50010 */ swc1 $f21, 0x10($sp) -/* 0AE8F0 800ADCF0 E7B40014 */ swc1 $f20, 0x14($sp) -/* 0AE8F4 800ADCF4 AFA500A4 */ sw $a1, 0xa4($sp) -/* 0AE8F8 800ADCF8 8C82000C */ lw $v0, 0xc($a0) -/* 0AE8FC 800ADCFC 00808025 */ move $s0, $a0 -/* 0AE900 800ADD00 1040014A */ beqz $v0, .L800AE22C -/* 0AE904 800ADD04 8FBF0044 */ lw $ra, 0x44($sp) -/* 0AE908 800ADD08 90510000 */ lbu $s1, ($v0) -/* 0AE90C 800ADD0C 90520001 */ lbu $s2, 1($v0) -/* 0AE910 800ADD10 00117140 */ sll $t6, $s1, 5 -/* 0AE914 800ADD14 00127940 */ sll $t7, $s2, 5 -/* 0AE918 800ADD18 000E1840 */ sll $v1, $t6, 1 -/* 0AE91C 800ADD1C 000FC040 */ sll $t8, $t7, 1 -/* 0AE920 800ADD20 2463FFFF */ addiu $v1, $v1, -1 -/* 0AE924 800ADD24 2719FFFF */ addiu $t9, $t8, -1 -/* 0AE928 800ADD28 AFA3008C */ sw $v1, 0x8c($sp) -/* 0AE92C 800ADD2C AFB90088 */ sw $t9, 0x88($sp) -/* 0AE930 800ADD30 848D0008 */ lh $t5, 8($a0) -/* 0AE934 800ADD34 00409825 */ move $s3, $v0 -/* 0AE938 800ADD38 01A50019 */ multu $t5, $a1 -/* 0AE93C 800ADD3C 01C08825 */ move $s1, $t6 -/* 0AE940 800ADD40 01E09025 */ move $s2, $t7 -/* 0AE944 800ADD44 AFA3004C */ sw $v1, 0x4c($sp) -/* 0AE948 800ADD48 00002012 */ mflo $a0 -/* 0AE94C 800ADD4C 0C00322D */ jal normalise_time -/* 0AE950 800ADD50 00000000 */ nop -/* 0AE954 800ADD54 860F0000 */ lh $t7, ($s0) -/* 0AE958 800ADD58 8FA3004C */ lw $v1, 0x4c($sp) -/* 0AE95C 800ADD5C 004FC021 */ addu $t8, $v0, $t7 -/* 0AE960 800ADD60 0303C824 */ and $t9, $t8, $v1 -/* 0AE964 800ADD64 A6190000 */ sh $t9, ($s0) -/* 0AE968 800ADD68 8FAE00A4 */ lw $t6, 0xa4($sp) -/* 0AE96C 800ADD6C 860D000A */ lh $t5, 0xa($s0) -/* 0AE970 800ADD70 00000000 */ nop -/* 0AE974 800ADD74 01AE0019 */ multu $t5, $t6 -/* 0AE978 800ADD78 00002012 */ mflo $a0 -/* 0AE97C 800ADD7C 0C00322D */ jal normalise_time -/* 0AE980 800ADD80 00000000 */ nop -/* 0AE984 800ADD84 860E0004 */ lh $t6, 4($s0) -/* 0AE988 800ADD88 860F0002 */ lh $t7, 2($s0) -/* 0AE98C 800ADD8C 01D10019 */ multu $t6, $s1 -/* 0AE990 800ADD90 8FB90088 */ lw $t9, 0x88($sp) -/* 0AE994 800ADD94 004FC021 */ addu $t8, $v0, $t7 -/* 0AE998 800ADD98 03196824 */ and $t5, $t8, $t9 -/* 0AE99C 800ADD9C 86180006 */ lh $t8, 6($s0) -/* 0AE9A0 800ADDA0 A60D0002 */ sh $t5, 2($s0) -/* 0AE9A4 800ADDA4 3C0D800E */ lui $t5, %hi(D_800E2C6C) # $t5, 0x800e -/* 0AE9A8 800ADDA8 8DAD2C6C */ lw $t5, %lo(D_800E2C6C)($t5) -/* 0AE9AC 800ADDAC 3C028012 */ lui $v0, %hi(D_80127C1C) # $v0, 0x8012 -/* 0AE9B0 800ADDB0 000D7083 */ sra $t6, $t5, 2 -/* 0AE9B4 800ADDB4 00008812 */ mflo $s1 -/* 0AE9B8 800ADDB8 00117A03 */ sra $t7, $s1, 8 -/* 0AE9BC 800ADDBC 01E08825 */ move $s1, $t7 -/* 0AE9C0 800ADDC0 03120019 */ multu $t8, $s2 -/* 0AE9C4 800ADDC4 3C0F800E */ lui $t7, %hi(gLightningFrequency) # $t7, 0x800e -/* 0AE9C8 800ADDC8 8DEF2C60 */ lw $t7, %lo(gLightningFrequency)($t7) -/* 0AE9CC 800ADDCC 00009012 */ mflo $s2 -/* 0AE9D0 800ADDD0 0012CA03 */ sra $t9, $s2, 8 -/* 0AE9D4 800ADDD4 03209025 */ move $s2, $t9 -/* 0AE9D8 800ADDD8 01CF0019 */ multu $t6, $t7 -/* 0AE9DC 800ADDDC 92190016 */ lbu $t9, 0x16($s0) -/* 0AE9E0 800ADDE0 00117080 */ sll $t6, $s1, 2 -/* 0AE9E4 800ADDE4 00001812 */ mflo $v1 -/* 0AE9E8 800ADDE8 0003C383 */ sra $t8, $v1, 0xe -/* 0AE9EC 800ADDEC 00000000 */ nop -/* 0AE9F0 800ADDF0 03380019 */ multu $t9, $t8 -/* 0AE9F4 800ADDF4 00001812 */ mflo $v1 -/* 0AE9F8 800ADDF8 00036C03 */ sra $t5, $v1, 0x10 -/* 0AE9FC 800ADDFC 19A0010A */ blez $t5, .L800AE228 -/* 0AEA00 800ADE00 01A01825 */ move $v1, $t5 -/* 0AEA04 800ADE04 8C427C1C */ lw $v0, %lo(D_80127C1C)($v0) -/* 0AEA08 800ADE08 01D17023 */ subu $t6, $t6, $s1 -/* 0AEA0C 800ADE0C 844F0000 */ lh $t7, ($v0) -/* 0AEA10 800ADE10 000E7040 */ sll $t6, $t6, 1 -/* 0AEA14 800ADE14 01CF0019 */ multu $t6, $t7 -/* 0AEA18 800ADE18 860D0000 */ lh $t5, ($s0) -/* 0AEA1C 800ADE1C 860A0002 */ lh $t2, 2($s0) -/* 0AEA20 800ADE20 8FAF008C */ lw $t7, 0x8c($sp) -/* 0AEA24 800ADE24 84440004 */ lh $a0, 4($v0) -/* 0AEA28 800ADE28 AFA30084 */ sw $v1, 0x84($sp) -/* 0AEA2C 800ADE2C 024A9021 */ addu $s2, $s2, $t2 -/* 0AEA30 800ADE30 AFAA0098 */ sw $t2, 0x98($sp) -/* 0AEA34 800ADE34 0000C012 */ mflo $t8 -/* 0AEA38 800ADE38 0018CC03 */ sra $t9, $t8, 0x10 -/* 0AEA3C 800ADE3C 01B97021 */ addu $t6, $t5, $t9 -/* 0AEA40 800ADE40 01CF4024 */ and $t0, $t6, $t7 -/* 0AEA44 800ADE44 02288821 */ addu $s1, $s1, $t0 -/* 0AEA48 800ADE48 0C01C1F1 */ jal sins_f -/* 0AEA4C 800ADE4C AFA8009C */ sw $t0, 0x9c($sp) -/* 0AEA50 800ADE50 3C188012 */ lui $t8, %hi(D_80127C1C) # $t8, 0x8012 -/* 0AEA54 800ADE54 8F187C1C */ lw $t8, %lo(D_80127C1C)($t8) -/* 0AEA58 800ADE58 00000000 */ nop -/* 0AEA5C 800ADE5C 87040004 */ lh $a0, 4($t8) -/* 0AEA60 800ADE60 0C01C1FE */ jal coss_f -/* 0AEA64 800ADE64 E7A0007C */ swc1 $f0, 0x7c($sp) -/* 0AEA68 800ADE68 3C01800E */ lui $at, %hi(D_800E2A8C) # $at, 0x800e -/* 0AEA6C 800ADE6C C42C2A8C */ lwc1 $f12, %lo(D_800E2A8C)($at) -/* 0AEA70 800ADE70 3C01800E */ lui $at, %hi(D_800E2A9C) # $at, 0x800e -/* 0AEA74 800ADE74 46006102 */ mul.s $f4, $f12, $f0 -/* 0AEA78 800ADE78 C7A2007C */ lwc1 $f2, 0x7c($sp) -/* 0AEA7C 800ADE7C C42E2A90 */ lwc1 $f14, %lo(D_800E2A90)($at) -/* 0AEA80 800ADE80 C4302A94 */ lwc1 $f16, %lo(D_800E2A94)($at) -/* 0AEA84 800ADE84 46027182 */ mul.s $f6, $f14, $f2 -/* 0AEA88 800ADE88 C4322A98 */ lwc1 $f18, %lo(D_800E2A98)($at) -/* 0AEA8C 800ADE8C C4342A9C */ lwc1 $f20, %lo(D_800E2A9C)($at) -/* 0AEA90 800ADE90 3C01800E */ lui $at, %hi(D_800E2AA8) # $at, 0x800e -/* 0AEA94 800ADE94 46062201 */ sub.s $f8, $f4, $f6 -/* 0AEA98 800ADE98 C4362AA0 */ lwc1 $f22, %lo(D_800E2AA0)($at) -/* 0AEA9C 800ADE9C 444EF800 */ cfc1 $t6, $31 -/* 0AEAA0 800ADEA0 C4382AA4 */ lwc1 $f24, %lo(D_800E2AA4)($at) -/* 0AEAA4 800ADEA4 C43A2AA8 */ lwc1 $f26, %lo(D_800E2AA8)($at) -/* 0AEAA8 800ADEA8 35C10003 */ ori $at, $t6, 3 -/* 0AEAAC 800ADEAC 38210002 */ xori $at, $at, 2 -/* 0AEAB0 800ADEB0 44C1F800 */ ctc1 $at, $31 -/* 0AEAB4 800ADEB4 3C09800E */ lui $t1, %hi(D_800E2C90) # $t1, 0x800e -/* 0AEAB8 800ADEB8 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEABC 800ADEBC 25292C90 */ addiu $t1, %lo(D_800E2C90) # addiu $t1, $t1, 0x2c90 -/* 0AEAC0 800ADEC0 44CEF800 */ ctc1 $t6, $31 -/* 0AEAC4 800ADEC4 440F5000 */ mfc1 $t7, $f10 -/* 0AEAC8 800ADEC8 46026102 */ mul.s $f4, $f12, $f2 -/* 0AEACC 800ADECC 8D2D0000 */ lw $t5, ($t1) -/* 0AEAD0 800ADED0 3C0B800E */ lui $t3, %hi(D_800E2AAC) # $t3, 0x800e -/* 0AEAD4 800ADED4 000DC880 */ sll $t9, $t5, 2 -/* 0AEAD8 800ADED8 46007182 */ mul.s $f6, $f14, $f0 -/* 0AEADC 800ADEDC 032DC821 */ addu $t9, $t9, $t5 -/* 0AEAE0 800ADEE0 256B2AAC */ addiu $t3, %lo(D_800E2AAC) # addiu $t3, $t3, 0x2aac -/* 0AEAE4 800ADEE4 0019C840 */ sll $t9, $t9, 1 -/* 0AEAE8 800ADEE8 46062200 */ add.s $f8, $f4, $f6 -/* 0AEAEC 800ADEEC 01791021 */ addu $v0, $t3, $t9 -/* 0AEAF0 800ADEF0 4458F800 */ cfc1 $t8, $31 -/* 0AEAF4 800ADEF4 A44F0000 */ sh $t7, ($v0) -/* 0AEAF8 800ADEF8 37010003 */ ori $at, $t8, 3 -/* 0AEAFC 800ADEFC 38210002 */ xori $at, $at, 2 -/* 0AEB00 800ADF00 44C1F800 */ ctc1 $at, $31 -/* 0AEB04 800ADF04 3C0C8012 */ lui $t4, %hi(gCurrWeatherTriList) # $t4, 0x8012 -/* 0AEB08 800ADF08 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEB0C 800ADF0C 258C7C18 */ addiu $t4, %lo(gCurrWeatherTriList) # addiu $t4, $t4, 0x7c18 -/* 0AEB10 800ADF10 44D8F800 */ ctc1 $t8, $31 -/* 0AEB14 800ADF14 440D5000 */ mfc1 $t5, $f10 -/* 0AEB18 800ADF18 46008102 */ mul.s $f4, $f16, $f0 -/* 0AEB1C 800ADF1C A44D0002 */ sh $t5, 2($v0) -/* 0AEB20 800ADF20 8FAA0098 */ lw $t2, 0x98($sp) -/* 0AEB24 800ADF24 8FA30084 */ lw $v1, 0x84($sp) -/* 0AEB28 800ADF28 46029182 */ mul.s $f6, $f18, $f2 -/* 0AEB2C 800ADF2C 8FA8009C */ lw $t0, 0x9c($sp) -/* 0AEB30 800ADF30 27A40068 */ addiu $a0, $sp, 0x68 -/* 0AEB34 800ADF34 00002825 */ move $a1, $zero -/* 0AEB38 800ADF38 46062201 */ sub.s $f8, $f4, $f6 -/* 0AEB3C 800ADF3C 4459F800 */ cfc1 $t9, $31 -/* 0AEB40 800ADF40 00000000 */ nop -/* 0AEB44 800ADF44 37210003 */ ori $at, $t9, 3 -/* 0AEB48 800ADF48 38210002 */ xori $at, $at, 2 -/* 0AEB4C 800ADF4C 44C1F800 */ ctc1 $at, $31 -/* 0AEB50 800ADF50 00000000 */ nop -/* 0AEB54 800ADF54 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEB58 800ADF58 44D9F800 */ ctc1 $t9, $31 -/* 0AEB5C 800ADF5C 440E5000 */ mfc1 $t6, $f10 -/* 0AEB60 800ADF60 46028102 */ mul.s $f4, $f16, $f2 -/* 0AEB64 800ADF64 A44E000A */ sh $t6, 0xa($v0) -/* 0AEB68 800ADF68 46009182 */ mul.s $f6, $f18, $f0 -/* 0AEB6C 800ADF6C 46062200 */ add.s $f8, $f4, $f6 -/* 0AEB70 800ADF70 444FF800 */ cfc1 $t7, $31 -/* 0AEB74 800ADF74 00000000 */ nop -/* 0AEB78 800ADF78 35E10003 */ ori $at, $t7, 3 -/* 0AEB7C 800ADF7C 38210002 */ xori $at, $at, 2 -/* 0AEB80 800ADF80 44C1F800 */ ctc1 $at, $31 -/* 0AEB84 800ADF84 00000000 */ nop -/* 0AEB88 800ADF88 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEB8C 800ADF8C 44CFF800 */ ctc1 $t7, $31 -/* 0AEB90 800ADF90 44185000 */ mfc1 $t8, $f10 -/* 0AEB94 800ADF94 4600A102 */ mul.s $f4, $f20, $f0 -/* 0AEB98 800ADF98 A458000C */ sh $t8, 0xc($v0) -/* 0AEB9C 800ADF9C 4602B182 */ mul.s $f6, $f22, $f2 -/* 0AEBA0 800ADFA0 46062201 */ sub.s $f8, $f4, $f6 -/* 0AEBA4 800ADFA4 444DF800 */ cfc1 $t5, $31 -/* 0AEBA8 800ADFA8 00000000 */ nop -/* 0AEBAC 800ADFAC 35A10003 */ ori $at, $t5, 3 -/* 0AEBB0 800ADFB0 38210002 */ xori $at, $at, 2 -/* 0AEBB4 800ADFB4 44C1F800 */ ctc1 $at, $31 -/* 0AEBB8 800ADFB8 00000000 */ nop -/* 0AEBBC 800ADFBC 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEBC0 800ADFC0 44CDF800 */ ctc1 $t5, $31 -/* 0AEBC4 800ADFC4 44195000 */ mfc1 $t9, $f10 -/* 0AEBC8 800ADFC8 4602A102 */ mul.s $f4, $f20, $f2 -/* 0AEBCC 800ADFCC A4590014 */ sh $t9, 0x14($v0) -/* 0AEBD0 800ADFD0 4600B182 */ mul.s $f6, $f22, $f0 -/* 0AEBD4 800ADFD4 46062200 */ add.s $f8, $f4, $f6 -/* 0AEBD8 800ADFD8 444EF800 */ cfc1 $t6, $31 -/* 0AEBDC 800ADFDC 00000000 */ nop -/* 0AEBE0 800ADFE0 35C10003 */ ori $at, $t6, 3 -/* 0AEBE4 800ADFE4 38210002 */ xori $at, $at, 2 -/* 0AEBE8 800ADFE8 44C1F800 */ ctc1 $at, $31 -/* 0AEBEC 800ADFEC 00000000 */ nop -/* 0AEBF0 800ADFF0 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEBF4 800ADFF4 44CEF800 */ ctc1 $t6, $31 -/* 0AEBF8 800ADFF8 440F5000 */ mfc1 $t7, $f10 -/* 0AEBFC 800ADFFC 4600C102 */ mul.s $f4, $f24, $f0 -/* 0AEC00 800AE000 A44F0016 */ sh $t7, 0x16($v0) -/* 0AEC04 800AE004 3C0F8012 */ lui $t7, %hi(gCurrWeatherDisplayList) # $t7, 0x8012 -/* 0AEC08 800AE008 4602D182 */ mul.s $f6, $f26, $f2 -/* 0AEC0C 800AE00C 46062201 */ sub.s $f8, $f4, $f6 -/* 0AEC10 800AE010 4458F800 */ cfc1 $t8, $31 -/* 0AEC14 800AE014 00000000 */ nop -/* 0AEC18 800AE018 37010003 */ ori $at, $t8, 3 -/* 0AEC1C 800AE01C 38210002 */ xori $at, $at, 2 -/* 0AEC20 800AE020 44C1F800 */ ctc1 $at, $31 -/* 0AEC24 800AE024 00000000 */ nop -/* 0AEC28 800AE028 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEC2C 800AE02C 44D8F800 */ ctc1 $t8, $31 -/* 0AEC30 800AE030 440D5000 */ mfc1 $t5, $f10 -/* 0AEC34 800AE034 4602C102 */ mul.s $f4, $f24, $f2 -/* 0AEC38 800AE038 A44D001E */ sh $t5, 0x1e($v0) -/* 0AEC3C 800AE03C 3C184000 */ lui $t8, (0x40000102 >> 16) # lui $t8, 0x4000 -/* 0AEC40 800AE040 3C0D4002 */ lui $t5, (0x40020300 >> 16) # lui $t5, 0x4002 -/* 0AEC44 800AE044 4600D182 */ mul.s $f6, $f26, $f0 -/* 0AEC48 800AE048 37180102 */ ori $t8, (0x40000102 & 0xFFFF) # ori $t8, $t8, 0x102 -/* 0AEC4C 800AE04C 35AD0300 */ ori $t5, (0x40020300 & 0xFFFF) # ori $t5, $t5, 0x300 -/* 0AEC50 800AE050 46062200 */ add.s $f8, $f4, $f6 -/* 0AEC54 800AE054 4459F800 */ cfc1 $t9, $31 -/* 0AEC58 800AE058 00000000 */ nop -/* 0AEC5C 800AE05C 37210003 */ ori $at, $t9, 3 -/* 0AEC60 800AE060 38210002 */ xori $at, $at, 2 -/* 0AEC64 800AE064 44C1F800 */ ctc1 $at, $31 -/* 0AEC68 800AE068 00000000 */ nop -/* 0AEC6C 800AE06C 460042A4 */ cvt.w.s $f10, $f8 -/* 0AEC70 800AE070 440E5000 */ mfc1 $t6, $f10 -/* 0AEC74 800AE074 44D9F800 */ ctc1 $t9, $31 -/* 0AEC78 800AE078 A44E0020 */ sh $t6, 0x20($v0) -/* 0AEC7C 800AE07C 8DEF7C0C */ lw $t7, %lo(gCurrWeatherDisplayList)($t7) -/* 0AEC80 800AE080 8D820000 */ lw $v0, ($t4) -/* 0AEC84 800AE084 AFAF0068 */ sw $t7, 0x68($sp) -/* 0AEC88 800AE088 AC580000 */ sw $t8, ($v0) -/* 0AEC8C 800AE08C A4480004 */ sh $t0, 4($v0) -/* 0AEC90 800AE090 A44A0006 */ sh $t2, 6($v0) -/* 0AEC94 800AE094 A4510008 */ sh $s1, 8($v0) -/* 0AEC98 800AE098 A44A000A */ sh $t2, 0xa($v0) -/* 0AEC9C 800AE09C A451000C */ sh $s1, 0xc($v0) -/* 0AECA0 800AE0A0 A452000E */ sh $s2, 0xe($v0) -/* 0AECA4 800AE0A4 AC4D0010 */ sw $t5, 0x10($v0) -/* 0AECA8 800AE0A8 A4510014 */ sh $s1, 0x14($v0) -/* 0AECAC 800AE0AC A4520016 */ sh $s2, 0x16($v0) -/* 0AECB0 800AE0B0 A4480018 */ sh $t0, 0x18($v0) -/* 0AECB4 800AE0B4 A452001A */ sh $s2, 0x1a($v0) -/* 0AECB8 800AE0B8 A448001C */ sh $t0, 0x1c($v0) -/* 0AECBC 800AE0BC A44A001E */ sh $t2, 0x1e($v0) -/* 0AECC0 800AE0C0 92190010 */ lbu $t9, 0x10($s0) -/* 0AECC4 800AE0C4 920F0011 */ lbu $t7, 0x11($s0) -/* 0AECC8 800AE0C8 00197600 */ sll $t6, $t9, 0x18 -/* 0AECCC 800AE0CC 92190012 */ lbu $t9, 0x12($s0) -/* 0AECD0 800AE0D0 000FC400 */ sll $t8, $t7, 0x10 -/* 0AECD4 800AE0D4 01D86825 */ or $t5, $t6, $t8 -/* 0AECD8 800AE0D8 00197A00 */ sll $t7, $t9, 8 -/* 0AECDC 800AE0DC 92180013 */ lbu $t8, 0x13($s0) -/* 0AECE0 800AE0E0 01AF7025 */ or $t6, $t5, $t7 -/* 0AECE4 800AE0E4 920D0014 */ lbu $t5, 0x14($s0) -/* 0AECE8 800AE0E8 0018CE00 */ sll $t9, $t8, 0x18 -/* 0AECEC 800AE0EC 92180015 */ lbu $t8, 0x15($s0) -/* 0AECF0 800AE0F0 000D7C00 */ sll $t7, $t5, 0x10 -/* 0AECF4 800AE0F4 01C33025 */ or $a2, $t6, $v1 -/* 0AECF8 800AE0F8 032F7025 */ or $t6, $t9, $t7 -/* 0AECFC 800AE0FC 24420020 */ addiu $v0, $v0, 0x20 -/* 0AED00 800AE100 00186A00 */ sll $t5, $t8, 8 -/* 0AED04 800AE104 01CD3825 */ or $a3, $t6, $t5 -/* 0AED08 800AE108 0C01FD65 */ jal func_8007F594 -/* 0AED0C 800AE10C AFA20064 */ sw $v0, 0x64($sp) -/* 0AED10 800AE110 8FA30068 */ lw $v1, 0x68($sp) -/* 0AED14 800AE114 3C010700 */ lui $at, 0x700 -/* 0AED18 800AE118 246F0008 */ addiu $t7, $v1, 8 -/* 0AED1C 800AE11C AFAF0068 */ sw $t7, 0x68($sp) -/* 0AED20 800AE120 8664000A */ lh $a0, 0xa($s3) -/* 0AED24 800AE124 8FA20064 */ lw $v0, 0x64($sp) -/* 0AED28 800AE128 309800FF */ andi $t8, $a0, 0xff -/* 0AED2C 800AE12C 00187400 */ sll $t6, $t8, 0x10 -/* 0AED30 800AE130 0004C8C0 */ sll $t9, $a0, 3 -/* 0AED34 800AE134 332FFFFF */ andi $t7, $t9, 0xffff -/* 0AED38 800AE138 01C16825 */ or $t5, $t6, $at -/* 0AED3C 800AE13C 01AFC025 */ or $t8, $t5, $t7 -/* 0AED40 800AE140 AC780000 */ sw $t8, ($v1) -/* 0AED44 800AE144 8E6E000C */ lw $t6, 0xc($s3) -/* 0AED48 800AE148 3C088000 */ lui $t0, 0x8000 -/* 0AED4C 800AE14C 3C09800E */ lui $t1, %hi(D_800E2C90) # $t1, 0x800e -/* 0AED50 800AE150 01C8C821 */ addu $t9, $t6, $t0 -/* 0AED54 800AE154 25292C90 */ addiu $t1, %lo(D_800E2C90) # addiu $t1, $t1, 0x2c90 -/* 0AED58 800AE158 AC790004 */ sw $t9, 4($v1) -/* 0AED5C 800AE15C 8D380000 */ lw $t8, ($t1) -/* 0AED60 800AE160 240A000A */ li $t2, 10 -/* 0AED64 800AE164 030A0019 */ multu $t8, $t2 -/* 0AED68 800AE168 8FA50068 */ lw $a1, 0x68($sp) -/* 0AED6C 800AE16C 3C0B800E */ lui $t3, %hi(D_800E2AAC) # $t3, 0x800e -/* 0AED70 800AE170 256B2AAC */ addiu $t3, %lo(D_800E2AAC) # addiu $t3, $t3, 0x2aac -/* 0AED74 800AE174 24AF0008 */ addiu $t7, $a1, 8 -/* 0AED78 800AE178 AFAF0068 */ sw $t7, 0x68($sp) -/* 0AED7C 800AE17C 3C010400 */ lui $at, 0x400 -/* 0AED80 800AE180 3C0C8012 */ lui $t4, %hi(gCurrWeatherTriList) # $t4, 0x8012 -/* 0AED84 800AE184 258C7C18 */ addiu $t4, %lo(gCurrWeatherTriList) # addiu $t4, $t4, 0x7c18 -/* 0AED88 800AE188 00007012 */ mflo $t6 -/* 0AED8C 800AE18C 016EC821 */ addu $t9, $t3, $t6 -/* 0AED90 800AE190 03286821 */ addu $t5, $t9, $t0 -/* 0AED94 800AE194 31AF0006 */ andi $t7, $t5, 6 -/* 0AED98 800AE198 35F80018 */ ori $t8, $t7, 0x18 -/* 0AED9C 800AE19C 330E00FF */ andi $t6, $t8, 0xff -/* 0AEDA0 800AE1A0 000ECC00 */ sll $t9, $t6, 0x10 -/* 0AEDA4 800AE1A4 03216825 */ or $t5, $t9, $at -/* 0AEDA8 800AE1A8 35AF0050 */ ori $t7, $t5, 0x50 -/* 0AEDAC 800AE1AC ACAF0000 */ sw $t7, ($a1) -/* 0AEDB0 800AE1B0 8D380000 */ lw $t8, ($t1) -/* 0AEDB4 800AE1B4 3C018012 */ lui $at, %hi(gCurrWeatherDisplayList) # $at, 0x8012 -/* 0AEDB8 800AE1B8 030A0019 */ multu $t8, $t2 -/* 0AEDBC 800AE1BC 00007012 */ mflo $t6 -/* 0AEDC0 800AE1C0 016EC821 */ addu $t9, $t3, $t6 -/* 0AEDC4 800AE1C4 03286821 */ addu $t5, $t9, $t0 -/* 0AEDC8 800AE1C8 ACAD0004 */ sw $t5, 4($a1) -/* 0AEDCC 800AE1CC 8FAF0068 */ lw $t7, 0x68($sp) -/* 0AEDD0 800AE1D0 3C0E0511 */ lui $t6, (0x05110020 >> 16) # lui $t6, 0x511 -/* 0AEDD4 800AE1D4 25F80008 */ addiu $t8, $t7, 8 -/* 0AEDD8 800AE1D8 AFB80068 */ sw $t8, 0x68($sp) -/* 0AEDDC 800AE1DC 35CE0020 */ ori $t6, (0x05110020 & 0xFFFF) # ori $t6, $t6, 0x20 -/* 0AEDE0 800AE1E0 ADEE0000 */ sw $t6, ($t7) -/* 0AEDE4 800AE1E4 8D990000 */ lw $t9, ($t4) -/* 0AEDE8 800AE1E8 3C0EE700 */ lui $t6, 0xe700 -/* 0AEDEC 800AE1EC 03286821 */ addu $t5, $t9, $t0 -/* 0AEDF0 800AE1F0 ADED0004 */ sw $t5, 4($t7) -/* 0AEDF4 800AE1F4 8FAF0068 */ lw $t7, 0x68($sp) -/* 0AEDF8 800AE1F8 00000000 */ nop -/* 0AEDFC 800AE1FC 25F80008 */ addiu $t8, $t7, 8 -/* 0AEE00 800AE200 AFB80068 */ sw $t8, 0x68($sp) -/* 0AEE04 800AE204 ADE00004 */ sw $zero, 4($t7) -/* 0AEE08 800AE208 ADEE0000 */ sw $t6, ($t7) -/* 0AEE0C 800AE20C 8D390000 */ lw $t9, ($t1) -/* 0AEE10 800AE210 8FB80068 */ lw $t8, 0x68($sp) -/* 0AEE14 800AE214 272D0004 */ addiu $t5, $t9, 4 -/* 0AEE18 800AE218 31AF000F */ andi $t7, $t5, 0xf -/* 0AEE1C 800AE21C AD2F0000 */ sw $t7, ($t1) -/* 0AEE20 800AE220 AC387C0C */ sw $t8, %lo(gCurrWeatherDisplayList)($at) -/* 0AEE24 800AE224 AD820000 */ sw $v0, ($t4) -.L800AE228: -/* 0AEE28 800AE228 8FBF0044 */ lw $ra, 0x44($sp) -.L800AE22C: -/* 0AEE2C 800AE22C C7B50010 */ lwc1 $f21, 0x10($sp) -/* 0AEE30 800AE230 C7B40014 */ lwc1 $f20, 0x14($sp) -/* 0AEE34 800AE234 C7B70018 */ lwc1 $f23, 0x18($sp) -/* 0AEE38 800AE238 C7B6001C */ lwc1 $f22, 0x1c($sp) -/* 0AEE3C 800AE23C C7B90020 */ lwc1 $f25, 0x20($sp) -/* 0AEE40 800AE240 C7B80024 */ lwc1 $f24, 0x24($sp) -/* 0AEE44 800AE244 C7BB0028 */ lwc1 $f27, 0x28($sp) -/* 0AEE48 800AE248 C7BA002C */ lwc1 $f26, 0x2c($sp) -/* 0AEE4C 800AE24C 8FB00034 */ lw $s0, 0x34($sp) -/* 0AEE50 800AE250 8FB10038 */ lw $s1, 0x38($sp) -/* 0AEE54 800AE254 8FB2003C */ lw $s2, 0x3c($sp) -/* 0AEE58 800AE258 8FB30040 */ lw $s3, 0x40($sp) -/* 0AEE5C 800AE25C 03E00008 */ jr $ra -/* 0AEE60 800AE260 27BD00A0 */ addiu $sp, $sp, 0xa0 - -/* 0AEE64 800AE264 00000000 */ nop -/* 0AEE68 800AE268 00000000 */ nop -/* 0AEE6C 800AE26C 00000000 */ nop - +glabel render_rain_overlay +/* 0AE8BC 800ADCBC 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 0AE8C0 800ADCC0 AFBF0044 */ sw $ra, 0x44($sp) +/* 0AE8C4 800ADCC4 AFB30040 */ sw $s3, 0x40($sp) +/* 0AE8C8 800ADCC8 AFB2003C */ sw $s2, 0x3c($sp) +/* 0AE8CC 800ADCCC AFB10038 */ sw $s1, 0x38($sp) +/* 0AE8D0 800ADCD0 AFB00034 */ sw $s0, 0x34($sp) +/* 0AE8D4 800ADCD4 E7BB0028 */ swc1 $f27, 0x28($sp) +/* 0AE8D8 800ADCD8 E7BA002C */ swc1 $f26, 0x2c($sp) +/* 0AE8DC 800ADCDC E7B90020 */ swc1 $f25, 0x20($sp) +/* 0AE8E0 800ADCE0 E7B80024 */ swc1 $f24, 0x24($sp) +/* 0AE8E4 800ADCE4 E7B70018 */ swc1 $f23, 0x18($sp) +/* 0AE8E8 800ADCE8 E7B6001C */ swc1 $f22, 0x1c($sp) +/* 0AE8EC 800ADCEC E7B50010 */ swc1 $f21, 0x10($sp) +/* 0AE8F0 800ADCF0 E7B40014 */ swc1 $f20, 0x14($sp) +/* 0AE8F4 800ADCF4 AFA500A4 */ sw $a1, 0xa4($sp) +/* 0AE8F8 800ADCF8 8C82000C */ lw $v0, 0xc($a0) +/* 0AE8FC 800ADCFC 00808025 */ move $s0, $a0 +/* 0AE900 800ADD00 1040014A */ beqz $v0, .L800AE22C +/* 0AE904 800ADD04 8FBF0044 */ lw $ra, 0x44($sp) +/* 0AE908 800ADD08 90510000 */ lbu $s1, ($v0) +/* 0AE90C 800ADD0C 90520001 */ lbu $s2, 1($v0) +/* 0AE910 800ADD10 00117140 */ sll $t6, $s1, 5 +/* 0AE914 800ADD14 00127940 */ sll $t7, $s2, 5 +/* 0AE918 800ADD18 000E1840 */ sll $v1, $t6, 1 +/* 0AE91C 800ADD1C 000FC040 */ sll $t8, $t7, 1 +/* 0AE920 800ADD20 2463FFFF */ addiu $v1, $v1, -1 +/* 0AE924 800ADD24 2719FFFF */ addiu $t9, $t8, -1 +/* 0AE928 800ADD28 AFA3008C */ sw $v1, 0x8c($sp) +/* 0AE92C 800ADD2C AFB90088 */ sw $t9, 0x88($sp) +/* 0AE930 800ADD30 848D0008 */ lh $t5, 8($a0) +/* 0AE934 800ADD34 00409825 */ move $s3, $v0 +/* 0AE938 800ADD38 01A50019 */ multu $t5, $a1 +/* 0AE93C 800ADD3C 01C08825 */ move $s1, $t6 +/* 0AE940 800ADD40 01E09025 */ move $s2, $t7 +/* 0AE944 800ADD44 AFA3004C */ sw $v1, 0x4c($sp) +/* 0AE948 800ADD48 00002012 */ mflo $a0 +/* 0AE94C 800ADD4C 0C00322D */ jal normalise_time +/* 0AE950 800ADD50 00000000 */ nop +/* 0AE954 800ADD54 860F0000 */ lh $t7, ($s0) +/* 0AE958 800ADD58 8FA3004C */ lw $v1, 0x4c($sp) +/* 0AE95C 800ADD5C 004FC021 */ addu $t8, $v0, $t7 +/* 0AE960 800ADD60 0303C824 */ and $t9, $t8, $v1 +/* 0AE964 800ADD64 A6190000 */ sh $t9, ($s0) +/* 0AE968 800ADD68 8FAE00A4 */ lw $t6, 0xa4($sp) +/* 0AE96C 800ADD6C 860D000A */ lh $t5, 0xa($s0) +/* 0AE970 800ADD70 00000000 */ nop +/* 0AE974 800ADD74 01AE0019 */ multu $t5, $t6 +/* 0AE978 800ADD78 00002012 */ mflo $a0 +/* 0AE97C 800ADD7C 0C00322D */ jal normalise_time +/* 0AE980 800ADD80 00000000 */ nop +/* 0AE984 800ADD84 860E0004 */ lh $t6, 4($s0) +/* 0AE988 800ADD88 860F0002 */ lh $t7, 2($s0) +/* 0AE98C 800ADD8C 01D10019 */ multu $t6, $s1 +/* 0AE990 800ADD90 8FB90088 */ lw $t9, 0x88($sp) +/* 0AE994 800ADD94 004FC021 */ addu $t8, $v0, $t7 +/* 0AE998 800ADD98 03196824 */ and $t5, $t8, $t9 +/* 0AE99C 800ADD9C 86180006 */ lh $t8, 6($s0) +/* 0AE9A0 800ADDA0 A60D0002 */ sh $t5, 2($s0) +/* 0AE9A4 800ADDA4 3C0D800E */ lui $t5, %hi(D_800E2C6C) # $t5, 0x800e +/* 0AE9A8 800ADDA8 8DAD2C6C */ lw $t5, %lo(D_800E2C6C)($t5) +/* 0AE9AC 800ADDAC 3C028012 */ lui $v0, %hi(gWeatherCamera) # $v0, 0x8012 +/* 0AE9B0 800ADDB0 000D7083 */ sra $t6, $t5, 2 +/* 0AE9B4 800ADDB4 00008812 */ mflo $s1 +/* 0AE9B8 800ADDB8 00117A03 */ sra $t7, $s1, 8 +/* 0AE9BC 800ADDBC 01E08825 */ move $s1, $t7 +/* 0AE9C0 800ADDC0 03120019 */ multu $t8, $s2 +/* 0AE9C4 800ADDC4 3C0F800E */ lui $t7, %hi(gLightningFrequency) # $t7, 0x800e +/* 0AE9C8 800ADDC8 8DEF2C60 */ lw $t7, %lo(gLightningFrequency)($t7) +/* 0AE9CC 800ADDCC 00009012 */ mflo $s2 +/* 0AE9D0 800ADDD0 0012CA03 */ sra $t9, $s2, 8 +/* 0AE9D4 800ADDD4 03209025 */ move $s2, $t9 +/* 0AE9D8 800ADDD8 01CF0019 */ multu $t6, $t7 +/* 0AE9DC 800ADDDC 92190016 */ lbu $t9, 0x16($s0) +/* 0AE9E0 800ADDE0 00117080 */ sll $t6, $s1, 2 +/* 0AE9E4 800ADDE4 00001812 */ mflo $v1 +/* 0AE9E8 800ADDE8 0003C383 */ sra $t8, $v1, 0xe +/* 0AE9EC 800ADDEC 00000000 */ nop +/* 0AE9F0 800ADDF0 03380019 */ multu $t9, $t8 +/* 0AE9F4 800ADDF4 00001812 */ mflo $v1 +/* 0AE9F8 800ADDF8 00036C03 */ sra $t5, $v1, 0x10 +/* 0AE9FC 800ADDFC 19A0010A */ blez $t5, .L800AE228 +/* 0AEA00 800ADE00 01A01825 */ move $v1, $t5 +/* 0AEA04 800ADE04 8C427C1C */ lw $v0, %lo(gWeatherCamera)($v0) +/* 0AEA08 800ADE08 01D17023 */ subu $t6, $t6, $s1 +/* 0AEA0C 800ADE0C 844F0000 */ lh $t7, ($v0) +/* 0AEA10 800ADE10 000E7040 */ sll $t6, $t6, 1 +/* 0AEA14 800ADE14 01CF0019 */ multu $t6, $t7 +/* 0AEA18 800ADE18 860D0000 */ lh $t5, ($s0) +/* 0AEA1C 800ADE1C 860A0002 */ lh $t2, 2($s0) +/* 0AEA20 800ADE20 8FAF008C */ lw $t7, 0x8c($sp) +/* 0AEA24 800ADE24 84440004 */ lh $a0, 4($v0) +/* 0AEA28 800ADE28 AFA30084 */ sw $v1, 0x84($sp) +/* 0AEA2C 800ADE2C 024A9021 */ addu $s2, $s2, $t2 +/* 0AEA30 800ADE30 AFAA0098 */ sw $t2, 0x98($sp) +/* 0AEA34 800ADE34 0000C012 */ mflo $t8 +/* 0AEA38 800ADE38 0018CC03 */ sra $t9, $t8, 0x10 +/* 0AEA3C 800ADE3C 01B97021 */ addu $t6, $t5, $t9 +/* 0AEA40 800ADE40 01CF4024 */ and $t0, $t6, $t7 +/* 0AEA44 800ADE44 02288821 */ addu $s1, $s1, $t0 +/* 0AEA48 800ADE48 0C01C1F1 */ jal sins_f +/* 0AEA4C 800ADE4C AFA8009C */ sw $t0, 0x9c($sp) +/* 0AEA50 800ADE50 3C188012 */ lui $t8, %hi(gWeatherCamera) # $t8, 0x8012 +/* 0AEA54 800ADE54 8F187C1C */ lw $t8, %lo(gWeatherCamera)($t8) +/* 0AEA58 800ADE58 00000000 */ nop +/* 0AEA5C 800ADE5C 87040004 */ lh $a0, 4($t8) +/* 0AEA60 800ADE60 0C01C1FE */ jal coss_f +/* 0AEA64 800ADE64 E7A0007C */ swc1 $f0, 0x7c($sp) +/* 0AEA68 800ADE68 3C01800E */ lui $at, %hi(D_800E2A8C) # $at, 0x800e +/* 0AEA6C 800ADE6C C42C2A8C */ lwc1 $f12, %lo(D_800E2A8C)($at) +/* 0AEA70 800ADE70 3C01800E */ lui $at, %hi(D_800E2A9C) # $at, 0x800e +/* 0AEA74 800ADE74 46006102 */ mul.s $f4, $f12, $f0 +/* 0AEA78 800ADE78 C7A2007C */ lwc1 $f2, 0x7c($sp) +/* 0AEA7C 800ADE7C C42E2A90 */ lwc1 $f14, %lo(D_800E2A90)($at) +/* 0AEA80 800ADE80 C4302A94 */ lwc1 $f16, %lo(D_800E2A94)($at) +/* 0AEA84 800ADE84 46027182 */ mul.s $f6, $f14, $f2 +/* 0AEA88 800ADE88 C4322A98 */ lwc1 $f18, %lo(D_800E2A98)($at) +/* 0AEA8C 800ADE8C C4342A9C */ lwc1 $f20, %lo(D_800E2A9C)($at) +/* 0AEA90 800ADE90 3C01800E */ lui $at, %hi(D_800E2AA8) # $at, 0x800e +/* 0AEA94 800ADE94 46062201 */ sub.s $f8, $f4, $f6 +/* 0AEA98 800ADE98 C4362AA0 */ lwc1 $f22, %lo(D_800E2AA0)($at) +/* 0AEA9C 800ADE9C 444EF800 */ cfc1 $t6, $31 +/* 0AEAA0 800ADEA0 C4382AA4 */ lwc1 $f24, %lo(D_800E2AA4)($at) +/* 0AEAA4 800ADEA4 C43A2AA8 */ lwc1 $f26, %lo(D_800E2AA8)($at) +/* 0AEAA8 800ADEA8 35C10003 */ ori $at, $t6, 3 +/* 0AEAAC 800ADEAC 38210002 */ xori $at, $at, 2 +/* 0AEAB0 800ADEB0 44C1F800 */ ctc1 $at, $31 +/* 0AEAB4 800ADEB4 3C09800E */ lui $t1, %hi(D_800E2C90) # $t1, 0x800e +/* 0AEAB8 800ADEB8 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEABC 800ADEBC 25292C90 */ addiu $t1, %lo(D_800E2C90) # addiu $t1, $t1, 0x2c90 +/* 0AEAC0 800ADEC0 44CEF800 */ ctc1 $t6, $31 +/* 0AEAC4 800ADEC4 440F5000 */ mfc1 $t7, $f10 +/* 0AEAC8 800ADEC8 46026102 */ mul.s $f4, $f12, $f2 +/* 0AEACC 800ADECC 8D2D0000 */ lw $t5, ($t1) +/* 0AEAD0 800ADED0 3C0B800E */ lui $t3, %hi(D_800E2AAC) # $t3, 0x800e +/* 0AEAD4 800ADED4 000DC880 */ sll $t9, $t5, 2 +/* 0AEAD8 800ADED8 46007182 */ mul.s $f6, $f14, $f0 +/* 0AEADC 800ADEDC 032DC821 */ addu $t9, $t9, $t5 +/* 0AEAE0 800ADEE0 256B2AAC */ addiu $t3, %lo(D_800E2AAC) # addiu $t3, $t3, 0x2aac +/* 0AEAE4 800ADEE4 0019C840 */ sll $t9, $t9, 1 +/* 0AEAE8 800ADEE8 46062200 */ add.s $f8, $f4, $f6 +/* 0AEAEC 800ADEEC 01791021 */ addu $v0, $t3, $t9 +/* 0AEAF0 800ADEF0 4458F800 */ cfc1 $t8, $31 +/* 0AEAF4 800ADEF4 A44F0000 */ sh $t7, ($v0) +/* 0AEAF8 800ADEF8 37010003 */ ori $at, $t8, 3 +/* 0AEAFC 800ADEFC 38210002 */ xori $at, $at, 2 +/* 0AEB00 800ADF00 44C1F800 */ ctc1 $at, $31 +/* 0AEB04 800ADF04 3C0C8012 */ lui $t4, %hi(gCurrWeatherTriList) # $t4, 0x8012 +/* 0AEB08 800ADF08 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEB0C 800ADF0C 258C7C18 */ addiu $t4, %lo(gCurrWeatherTriList) # addiu $t4, $t4, 0x7c18 +/* 0AEB10 800ADF10 44D8F800 */ ctc1 $t8, $31 +/* 0AEB14 800ADF14 440D5000 */ mfc1 $t5, $f10 +/* 0AEB18 800ADF18 46008102 */ mul.s $f4, $f16, $f0 +/* 0AEB1C 800ADF1C A44D0002 */ sh $t5, 2($v0) +/* 0AEB20 800ADF20 8FAA0098 */ lw $t2, 0x98($sp) +/* 0AEB24 800ADF24 8FA30084 */ lw $v1, 0x84($sp) +/* 0AEB28 800ADF28 46029182 */ mul.s $f6, $f18, $f2 +/* 0AEB2C 800ADF2C 8FA8009C */ lw $t0, 0x9c($sp) +/* 0AEB30 800ADF30 27A40068 */ addiu $a0, $sp, 0x68 +/* 0AEB34 800ADF34 00002825 */ move $a1, $zero +/* 0AEB38 800ADF38 46062201 */ sub.s $f8, $f4, $f6 +/* 0AEB3C 800ADF3C 4459F800 */ cfc1 $t9, $31 +/* 0AEB40 800ADF40 00000000 */ nop +/* 0AEB44 800ADF44 37210003 */ ori $at, $t9, 3 +/* 0AEB48 800ADF48 38210002 */ xori $at, $at, 2 +/* 0AEB4C 800ADF4C 44C1F800 */ ctc1 $at, $31 +/* 0AEB50 800ADF50 00000000 */ nop +/* 0AEB54 800ADF54 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEB58 800ADF58 44D9F800 */ ctc1 $t9, $31 +/* 0AEB5C 800ADF5C 440E5000 */ mfc1 $t6, $f10 +/* 0AEB60 800ADF60 46028102 */ mul.s $f4, $f16, $f2 +/* 0AEB64 800ADF64 A44E000A */ sh $t6, 0xa($v0) +/* 0AEB68 800ADF68 46009182 */ mul.s $f6, $f18, $f0 +/* 0AEB6C 800ADF6C 46062200 */ add.s $f8, $f4, $f6 +/* 0AEB70 800ADF70 444FF800 */ cfc1 $t7, $31 +/* 0AEB74 800ADF74 00000000 */ nop +/* 0AEB78 800ADF78 35E10003 */ ori $at, $t7, 3 +/* 0AEB7C 800ADF7C 38210002 */ xori $at, $at, 2 +/* 0AEB80 800ADF80 44C1F800 */ ctc1 $at, $31 +/* 0AEB84 800ADF84 00000000 */ nop +/* 0AEB88 800ADF88 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEB8C 800ADF8C 44CFF800 */ ctc1 $t7, $31 +/* 0AEB90 800ADF90 44185000 */ mfc1 $t8, $f10 +/* 0AEB94 800ADF94 4600A102 */ mul.s $f4, $f20, $f0 +/* 0AEB98 800ADF98 A458000C */ sh $t8, 0xc($v0) +/* 0AEB9C 800ADF9C 4602B182 */ mul.s $f6, $f22, $f2 +/* 0AEBA0 800ADFA0 46062201 */ sub.s $f8, $f4, $f6 +/* 0AEBA4 800ADFA4 444DF800 */ cfc1 $t5, $31 +/* 0AEBA8 800ADFA8 00000000 */ nop +/* 0AEBAC 800ADFAC 35A10003 */ ori $at, $t5, 3 +/* 0AEBB0 800ADFB0 38210002 */ xori $at, $at, 2 +/* 0AEBB4 800ADFB4 44C1F800 */ ctc1 $at, $31 +/* 0AEBB8 800ADFB8 00000000 */ nop +/* 0AEBBC 800ADFBC 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEBC0 800ADFC0 44CDF800 */ ctc1 $t5, $31 +/* 0AEBC4 800ADFC4 44195000 */ mfc1 $t9, $f10 +/* 0AEBC8 800ADFC8 4602A102 */ mul.s $f4, $f20, $f2 +/* 0AEBCC 800ADFCC A4590014 */ sh $t9, 0x14($v0) +/* 0AEBD0 800ADFD0 4600B182 */ mul.s $f6, $f22, $f0 +/* 0AEBD4 800ADFD4 46062200 */ add.s $f8, $f4, $f6 +/* 0AEBD8 800ADFD8 444EF800 */ cfc1 $t6, $31 +/* 0AEBDC 800ADFDC 00000000 */ nop +/* 0AEBE0 800ADFE0 35C10003 */ ori $at, $t6, 3 +/* 0AEBE4 800ADFE4 38210002 */ xori $at, $at, 2 +/* 0AEBE8 800ADFE8 44C1F800 */ ctc1 $at, $31 +/* 0AEBEC 800ADFEC 00000000 */ nop +/* 0AEBF0 800ADFF0 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEBF4 800ADFF4 44CEF800 */ ctc1 $t6, $31 +/* 0AEBF8 800ADFF8 440F5000 */ mfc1 $t7, $f10 +/* 0AEBFC 800ADFFC 4600C102 */ mul.s $f4, $f24, $f0 +/* 0AEC00 800AE000 A44F0016 */ sh $t7, 0x16($v0) +/* 0AEC04 800AE004 3C0F8012 */ lui $t7, %hi(gCurrWeatherDisplayList) # $t7, 0x8012 +/* 0AEC08 800AE008 4602D182 */ mul.s $f6, $f26, $f2 +/* 0AEC0C 800AE00C 46062201 */ sub.s $f8, $f4, $f6 +/* 0AEC10 800AE010 4458F800 */ cfc1 $t8, $31 +/* 0AEC14 800AE014 00000000 */ nop +/* 0AEC18 800AE018 37010003 */ ori $at, $t8, 3 +/* 0AEC1C 800AE01C 38210002 */ xori $at, $at, 2 +/* 0AEC20 800AE020 44C1F800 */ ctc1 $at, $31 +/* 0AEC24 800AE024 00000000 */ nop +/* 0AEC28 800AE028 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEC2C 800AE02C 44D8F800 */ ctc1 $t8, $31 +/* 0AEC30 800AE030 440D5000 */ mfc1 $t5, $f10 +/* 0AEC34 800AE034 4602C102 */ mul.s $f4, $f24, $f2 +/* 0AEC38 800AE038 A44D001E */ sh $t5, 0x1e($v0) +/* 0AEC3C 800AE03C 3C184000 */ lui $t8, (0x40000102 >> 16) # lui $t8, 0x4000 +/* 0AEC40 800AE040 3C0D4002 */ lui $t5, (0x40020300 >> 16) # lui $t5, 0x4002 +/* 0AEC44 800AE044 4600D182 */ mul.s $f6, $f26, $f0 +/* 0AEC48 800AE048 37180102 */ ori $t8, (0x40000102 & 0xFFFF) # ori $t8, $t8, 0x102 +/* 0AEC4C 800AE04C 35AD0300 */ ori $t5, (0x40020300 & 0xFFFF) # ori $t5, $t5, 0x300 +/* 0AEC50 800AE050 46062200 */ add.s $f8, $f4, $f6 +/* 0AEC54 800AE054 4459F800 */ cfc1 $t9, $31 +/* 0AEC58 800AE058 00000000 */ nop +/* 0AEC5C 800AE05C 37210003 */ ori $at, $t9, 3 +/* 0AEC60 800AE060 38210002 */ xori $at, $at, 2 +/* 0AEC64 800AE064 44C1F800 */ ctc1 $at, $31 +/* 0AEC68 800AE068 00000000 */ nop +/* 0AEC6C 800AE06C 460042A4 */ cvt.w.s $f10, $f8 +/* 0AEC70 800AE070 440E5000 */ mfc1 $t6, $f10 +/* 0AEC74 800AE074 44D9F800 */ ctc1 $t9, $31 +/* 0AEC78 800AE078 A44E0020 */ sh $t6, 0x20($v0) +/* 0AEC7C 800AE07C 8DEF7C0C */ lw $t7, %lo(gCurrWeatherDisplayList)($t7) +/* 0AEC80 800AE080 8D820000 */ lw $v0, ($t4) +/* 0AEC84 800AE084 AFAF0068 */ sw $t7, 0x68($sp) +/* 0AEC88 800AE088 AC580000 */ sw $t8, ($v0) +/* 0AEC8C 800AE08C A4480004 */ sh $t0, 4($v0) +/* 0AEC90 800AE090 A44A0006 */ sh $t2, 6($v0) +/* 0AEC94 800AE094 A4510008 */ sh $s1, 8($v0) +/* 0AEC98 800AE098 A44A000A */ sh $t2, 0xa($v0) +/* 0AEC9C 800AE09C A451000C */ sh $s1, 0xc($v0) +/* 0AECA0 800AE0A0 A452000E */ sh $s2, 0xe($v0) +/* 0AECA4 800AE0A4 AC4D0010 */ sw $t5, 0x10($v0) +/* 0AECA8 800AE0A8 A4510014 */ sh $s1, 0x14($v0) +/* 0AECAC 800AE0AC A4520016 */ sh $s2, 0x16($v0) +/* 0AECB0 800AE0B0 A4480018 */ sh $t0, 0x18($v0) +/* 0AECB4 800AE0B4 A452001A */ sh $s2, 0x1a($v0) +/* 0AECB8 800AE0B8 A448001C */ sh $t0, 0x1c($v0) +/* 0AECBC 800AE0BC A44A001E */ sh $t2, 0x1e($v0) +/* 0AECC0 800AE0C0 92190010 */ lbu $t9, 0x10($s0) +/* 0AECC4 800AE0C4 920F0011 */ lbu $t7, 0x11($s0) +/* 0AECC8 800AE0C8 00197600 */ sll $t6, $t9, 0x18 +/* 0AECCC 800AE0CC 92190012 */ lbu $t9, 0x12($s0) +/* 0AECD0 800AE0D0 000FC400 */ sll $t8, $t7, 0x10 +/* 0AECD4 800AE0D4 01D86825 */ or $t5, $t6, $t8 +/* 0AECD8 800AE0D8 00197A00 */ sll $t7, $t9, 8 +/* 0AECDC 800AE0DC 92180013 */ lbu $t8, 0x13($s0) +/* 0AECE0 800AE0E0 01AF7025 */ or $t6, $t5, $t7 +/* 0AECE4 800AE0E4 920D0014 */ lbu $t5, 0x14($s0) +/* 0AECE8 800AE0E8 0018CE00 */ sll $t9, $t8, 0x18 +/* 0AECEC 800AE0EC 92180015 */ lbu $t8, 0x15($s0) +/* 0AECF0 800AE0F0 000D7C00 */ sll $t7, $t5, 0x10 +/* 0AECF4 800AE0F4 01C33025 */ or $a2, $t6, $v1 +/* 0AECF8 800AE0F8 032F7025 */ or $t6, $t9, $t7 +/* 0AECFC 800AE0FC 24420020 */ addiu $v0, $v0, 0x20 +/* 0AED00 800AE100 00186A00 */ sll $t5, $t8, 8 +/* 0AED04 800AE104 01CD3825 */ or $a3, $t6, $t5 +/* 0AED08 800AE108 0C01FD65 */ jal func_8007F594 +/* 0AED0C 800AE10C AFA20064 */ sw $v0, 0x64($sp) +/* 0AED10 800AE110 8FA30068 */ lw $v1, 0x68($sp) +/* 0AED14 800AE114 3C010700 */ lui $at, 0x700 +/* 0AED18 800AE118 246F0008 */ addiu $t7, $v1, 8 +/* 0AED1C 800AE11C AFAF0068 */ sw $t7, 0x68($sp) +/* 0AED20 800AE120 8664000A */ lh $a0, 0xa($s3) +/* 0AED24 800AE124 8FA20064 */ lw $v0, 0x64($sp) +/* 0AED28 800AE128 309800FF */ andi $t8, $a0, 0xff +/* 0AED2C 800AE12C 00187400 */ sll $t6, $t8, 0x10 +/* 0AED30 800AE130 0004C8C0 */ sll $t9, $a0, 3 +/* 0AED34 800AE134 332FFFFF */ andi $t7, $t9, 0xffff +/* 0AED38 800AE138 01C16825 */ or $t5, $t6, $at +/* 0AED3C 800AE13C 01AFC025 */ or $t8, $t5, $t7 +/* 0AED40 800AE140 AC780000 */ sw $t8, ($v1) +/* 0AED44 800AE144 8E6E000C */ lw $t6, 0xc($s3) +/* 0AED48 800AE148 3C088000 */ lui $t0, 0x8000 +/* 0AED4C 800AE14C 3C09800E */ lui $t1, %hi(D_800E2C90) # $t1, 0x800e +/* 0AED50 800AE150 01C8C821 */ addu $t9, $t6, $t0 +/* 0AED54 800AE154 25292C90 */ addiu $t1, %lo(D_800E2C90) # addiu $t1, $t1, 0x2c90 +/* 0AED58 800AE158 AC790004 */ sw $t9, 4($v1) +/* 0AED5C 800AE15C 8D380000 */ lw $t8, ($t1) +/* 0AED60 800AE160 240A000A */ li $t2, 10 +/* 0AED64 800AE164 030A0019 */ multu $t8, $t2 +/* 0AED68 800AE168 8FA50068 */ lw $a1, 0x68($sp) +/* 0AED6C 800AE16C 3C0B800E */ lui $t3, %hi(D_800E2AAC) # $t3, 0x800e +/* 0AED70 800AE170 256B2AAC */ addiu $t3, %lo(D_800E2AAC) # addiu $t3, $t3, 0x2aac +/* 0AED74 800AE174 24AF0008 */ addiu $t7, $a1, 8 +/* 0AED78 800AE178 AFAF0068 */ sw $t7, 0x68($sp) +/* 0AED7C 800AE17C 3C010400 */ lui $at, 0x400 +/* 0AED80 800AE180 3C0C8012 */ lui $t4, %hi(gCurrWeatherTriList) # $t4, 0x8012 +/* 0AED84 800AE184 258C7C18 */ addiu $t4, %lo(gCurrWeatherTriList) # addiu $t4, $t4, 0x7c18 +/* 0AED88 800AE188 00007012 */ mflo $t6 +/* 0AED8C 800AE18C 016EC821 */ addu $t9, $t3, $t6 +/* 0AED90 800AE190 03286821 */ addu $t5, $t9, $t0 +/* 0AED94 800AE194 31AF0006 */ andi $t7, $t5, 6 +/* 0AED98 800AE198 35F80018 */ ori $t8, $t7, 0x18 +/* 0AED9C 800AE19C 330E00FF */ andi $t6, $t8, 0xff +/* 0AEDA0 800AE1A0 000ECC00 */ sll $t9, $t6, 0x10 +/* 0AEDA4 800AE1A4 03216825 */ or $t5, $t9, $at +/* 0AEDA8 800AE1A8 35AF0050 */ ori $t7, $t5, 0x50 +/* 0AEDAC 800AE1AC ACAF0000 */ sw $t7, ($a1) +/* 0AEDB0 800AE1B0 8D380000 */ lw $t8, ($t1) +/* 0AEDB4 800AE1B4 3C018012 */ lui $at, %hi(gCurrWeatherDisplayList) # $at, 0x8012 +/* 0AEDB8 800AE1B8 030A0019 */ multu $t8, $t2 +/* 0AEDBC 800AE1BC 00007012 */ mflo $t6 +/* 0AEDC0 800AE1C0 016EC821 */ addu $t9, $t3, $t6 +/* 0AEDC4 800AE1C4 03286821 */ addu $t5, $t9, $t0 +/* 0AEDC8 800AE1C8 ACAD0004 */ sw $t5, 4($a1) +/* 0AEDCC 800AE1CC 8FAF0068 */ lw $t7, 0x68($sp) +/* 0AEDD0 800AE1D0 3C0E0511 */ lui $t6, (0x05110020 >> 16) # lui $t6, 0x511 +/* 0AEDD4 800AE1D4 25F80008 */ addiu $t8, $t7, 8 +/* 0AEDD8 800AE1D8 AFB80068 */ sw $t8, 0x68($sp) +/* 0AEDDC 800AE1DC 35CE0020 */ ori $t6, (0x05110020 & 0xFFFF) # ori $t6, $t6, 0x20 +/* 0AEDE0 800AE1E0 ADEE0000 */ sw $t6, ($t7) +/* 0AEDE4 800AE1E4 8D990000 */ lw $t9, ($t4) +/* 0AEDE8 800AE1E8 3C0EE700 */ lui $t6, 0xe700 +/* 0AEDEC 800AE1EC 03286821 */ addu $t5, $t9, $t0 +/* 0AEDF0 800AE1F0 ADED0004 */ sw $t5, 4($t7) +/* 0AEDF4 800AE1F4 8FAF0068 */ lw $t7, 0x68($sp) +/* 0AEDF8 800AE1F8 00000000 */ nop +/* 0AEDFC 800AE1FC 25F80008 */ addiu $t8, $t7, 8 +/* 0AEE00 800AE200 AFB80068 */ sw $t8, 0x68($sp) +/* 0AEE04 800AE204 ADE00004 */ sw $zero, 4($t7) +/* 0AEE08 800AE208 ADEE0000 */ sw $t6, ($t7) +/* 0AEE0C 800AE20C 8D390000 */ lw $t9, ($t1) +/* 0AEE10 800AE210 8FB80068 */ lw $t8, 0x68($sp) +/* 0AEE14 800AE214 272D0004 */ addiu $t5, $t9, 4 +/* 0AEE18 800AE218 31AF000F */ andi $t7, $t5, 0xf +/* 0AEE1C 800AE21C AD2F0000 */ sw $t7, ($t1) +/* 0AEE20 800AE220 AC387C0C */ sw $t8, %lo(gCurrWeatherDisplayList)($at) +/* 0AEE24 800AE224 AD820000 */ sw $v0, ($t4) +.L800AE228: +/* 0AEE28 800AE228 8FBF0044 */ lw $ra, 0x44($sp) +.L800AE22C: +/* 0AEE2C 800AE22C C7B50010 */ lwc1 $f21, 0x10($sp) +/* 0AEE30 800AE230 C7B40014 */ lwc1 $f20, 0x14($sp) +/* 0AEE34 800AE234 C7B70018 */ lwc1 $f23, 0x18($sp) +/* 0AEE38 800AE238 C7B6001C */ lwc1 $f22, 0x1c($sp) +/* 0AEE3C 800AE23C C7B90020 */ lwc1 $f25, 0x20($sp) +/* 0AEE40 800AE240 C7B80024 */ lwc1 $f24, 0x24($sp) +/* 0AEE44 800AE244 C7BB0028 */ lwc1 $f27, 0x28($sp) +/* 0AEE48 800AE248 C7BA002C */ lwc1 $f26, 0x2c($sp) +/* 0AEE4C 800AE24C 8FB00034 */ lw $s0, 0x34($sp) +/* 0AEE50 800AE250 8FB10038 */ lw $s1, 0x38($sp) +/* 0AEE54 800AE254 8FB2003C */ lw $s2, 0x3c($sp) +/* 0AEE58 800AE258 8FB30040 */ lw $s3, 0x40($sp) +/* 0AEE5C 800AE25C 03E00008 */ jr $ra +/* 0AEE60 800AE260 27BD00A0 */ addiu $sp, $sp, 0xa0 + +/* 0AEE64 800AE264 00000000 */ nop +/* 0AEE68 800AE268 00000000 */ nop +/* 0AEE6C 800AE26C 00000000 */ nop + diff --git a/include/PR/libaudio.h b/include/PR/libaudio.h index 1ed4123b..a8e0a356 100644 --- a/include/PR/libaudio.h +++ b/include/PR/libaudio.h @@ -643,7 +643,7 @@ typedef struct { u8 fxmix; /* current fx mix for this chan */ u8 sustain; /* current sustain pedal state */ f32 pitchBend; /* current pitch bend val in cents */ - u8 unk10; + u8 fade; u8 unk11; } ALChanState_Custom; diff --git a/include/structs.h b/include/structs.h index 6b3c24c7..58499c45 100644 --- a/include/structs.h +++ b/include/structs.h @@ -67,12 +67,12 @@ typedef struct Vec4f { typedef struct SoundMask { /* 0x00 */ Vec3f pos; /* 0x0C */ u16 soundId; - /* 0x0E */ u8 unkE; - /* 0x0F */ u8 unkF; + /* 0x0E */ u8 volume; + /* 0x0F */ u8 pitch; /* 0x10 */ u8 unk10; /* 0x11 */ u8 unk11; /* 0x12 */ u8 unk12; - /* 0x14 */ s32 unk14; + /* 0x14 */ s32 distance; /* 0x18 */ s32 unk18; /* 0x1C */ struct SoundMask **soundMask; /* 0x20 */ u8 unk20; @@ -1494,7 +1494,7 @@ typedef struct Object_NPC { /* 0x2A */ s16 unk2A; /* 0x2C */ s32 unk2C; /* 0x30 */ s32 unk30; - /* 0x34 */ u16 unk34; + /* 0x34 */ u16 musicFade; /* 0x36 */ s8 unk36; } Object_NPC; diff --git a/lib/src/mips1/al/unknown_064800.c b/lib/src/mips1/al/alCSPGetFadeIn.c similarity index 61% rename from lib/src/mips1/al/unknown_064800.c rename to lib/src/mips1/al/alCSPGetFadeIn.c index 876fc801..c69b955c 100644 --- a/lib/src/mips1/al/unknown_064800.c +++ b/lib/src/mips1/al/alCSPGetFadeIn.c @@ -5,6 +5,6 @@ #include "macros.h" #include "audio_internal.h" -u8 func_80063C00(ALCSPlayer *seqp, u8 chan) { - return ((ALChanState_Custom*)seqp->chanState)[chan].unk10; +u8 alCSPGetFadeIn(ALCSPlayer *seqp, u8 chan) { + return ((ALChanState_Custom*)seqp->chanState)[chan].fade; } diff --git a/lib/src/mips1/al/unknown_0647A0.c b/lib/src/mips1/al/alCSPSetFadeIn.c similarity index 81% rename from lib/src/mips1/al/unknown_0647A0.c rename to lib/src/mips1/al/alCSPSetFadeIn.c index 6c4987f9..7346168e 100644 --- a/lib/src/mips1/al/unknown_0647A0.c +++ b/lib/src/mips1/al/alCSPSetFadeIn.c @@ -5,8 +5,7 @@ #include "macros.h" #include "audio_internal.h" -//Could be ALCSPlayer instead of ALSeqPlayer -void func_80063BA0(ALSeqPlayer *seqp, u8 chan, ALPan pan) { +void alCSPSetFadeIn(ALSeqPlayer *seqp, u8 chan, ALPan pan) { ALEvent evt; evt.type = AL_SEQP_MIDI_EVT; diff --git a/lib/src/mips1/al/csplayer.c b/lib/src/mips1/al/csplayer.c index 218c219f..31649afb 100644 --- a/lib/src/mips1/al/csplayer.c +++ b/lib/src/mips1/al/csplayer.c @@ -207,7 +207,7 @@ ALMicroTime __CSPVoiceHandler(void *node) seqp->chanMask = 0xFFFF; for (chan = 0; chan < seqp->maxChannels; chan++) { - seqp->chanState[chan].unk10 = 0x7F; + seqp->chanState[chan].fade = 0x7F; seqp->chanState[chan].vol = seqp->chanState[chan].unk11; } @@ -632,13 +632,13 @@ void __CSPHandleMIDIMsg(ALCSPlayer_Custom *seqp, ALEvent *event) { f32 temp; seqp->chanState[chan].unk11 = byte2; - temp = seqp->chanState[chan].unk10; - if (seqp->chanState[chan].unk10 < 0) + temp = seqp->chanState[chan].fade; + if (seqp->chanState[chan].fade < 0) { temp += 0xFFFFFFFF; } - seqp->chanState[chan].vol = (temp * seqp->chanState[chan].unk10) / 127.0f; + seqp->chanState[chan].vol = (temp * seqp->chanState[chan].fade) / 127.0f; for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) { @@ -652,8 +652,8 @@ void __CSPHandleMIDIMsg(ALCSPlayer_Custom *seqp, ALEvent *event) } break; case (8): - seqp->chanState[chan].unk10 = byte2; - seqp->chanState[chan].vol = (seqp->chanState[chan].unk11 * seqp->chanState[chan].unk10) / 127.0f; + seqp->chanState[chan].fade = byte2; + seqp->chanState[chan].vol = (seqp->chanState[chan].unk11 * seqp->chanState[chan].fade) / 127.0f; for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) { if ((vs->channel == chan) && (vs->envPhase != AL_PHASE_RELEASE)) diff --git a/lib/src/mips1/al/reverb.c b/lib/src/mips1/al/reverb.c index 0eaaf997..b472ab35 100644 --- a/lib/src/mips1/al/reverb.c +++ b/lib/src/mips1/al/reverb.c @@ -38,7 +38,7 @@ Acmd *_filterBuffer(ALLowPass *lp, s32 buff, s32 count, Acmd *p); f32 _doModFunc(ALDelay *d, s32 count); void init_lpfilter(ALLowPass *lp); -u8 D_800DCEB0 = 1; +u8 alFXEnabled = TRUE; static s32 L_INC[] = { L0_INC, L1_INC, L2_INC }; /*********************************************************************** @@ -68,7 +68,7 @@ Acmd *alFxPull(void *filter, s16 *outp, s32 outCount, s32 sampleOffset, ptr = (*source->handler)(source, outp, outCount, sampleOffset, p); //Added by Rare Devs - if (D_800DCEB0 == 0) { + if (alFXEnabled == FALSE) { return ptr; } @@ -434,10 +434,10 @@ f32 _doModFunc(ALDelay *d, s32 count) return(d->rsgain * val); } -void func_8006492C(u8 arg0) { - D_800DCEB0 = arg0; +void alFxReverbSet(u8 setting) { + alFXEnabled = setting; } -u8 func_8006493C() { - return D_800DCEB0; +u8 _alFxEnabled() { + return alFXEnabled; } diff --git a/lib/src/mips1/al/unknown_0646F0.c b/lib/src/mips1/al/seqchannel.c similarity index 86% rename from lib/src/mips1/al/unknown_0646F0.c rename to lib/src/mips1/al/seqchannel.c index 7c5e0072..b052a260 100644 --- a/lib/src/mips1/al/unknown_0646F0.c +++ b/lib/src/mips1/al/seqchannel.c @@ -5,7 +5,7 @@ #include "macros.h" #include "audio_internal.h" -void func_80063AF0(ALSeqPlayer *seqp, u8 chan) { +void alSeqChOff(ALSeqPlayer *seqp, u8 chan) { ALEvent evt; evt.type = AL_SEQP_MIDI_EVT; @@ -16,7 +16,7 @@ void func_80063AF0(ALSeqPlayer *seqp, u8 chan) { alEvtqPostEvent(&seqp->evtq, &evt, 0); } -void func_80063B44(ALSeqPlayer *seqp, u8 chan) { +void alSeqChOn(ALSeqPlayer *seqp, u8 chan) { ALEvent evt; evt.type = AL_SEQP_MIDI_EVT; diff --git a/lib/src/mips1/al/seqchannel.h b/lib/src/mips1/al/seqchannel.h new file mode 100644 index 00000000..e8a5aba8 --- /dev/null +++ b/lib/src/mips1/al/seqchannel.h @@ -0,0 +1,11 @@ +#ifndef _SEQCHANNEL_H_ +#define _SEQCHANNEL_H_ + + +#include "types.h" +#include "audio_internal.h" + +void alSeqChOff(ALSeqPlayer *seqp, u8 chan); +void alSeqChOn(ALSeqPlayer *seqp, u8 chan); + +#endif diff --git a/lib/src/mips1/al/seqplayer.c b/lib/src/mips1/al/seqplayer.c index c794fdcc..6c153757 100644 --- a/lib/src/mips1/al/seqplayer.c +++ b/lib/src/mips1/al/seqplayer.c @@ -255,7 +255,7 @@ void __resetPerfChanState(ALSeqPlayer *seqp, s32 chan) ((ALChanState_Custom*)seqp->chanState)[chan].fxmix = AL_DEFAULT_FXMIX; ((ALChanState_Custom*)seqp->chanState)[chan].pan = AL_PAN_CENTER; ((ALChanState_Custom*)seqp->chanState)[chan].vol = AL_VOL_FULL; - ((ALChanState_Custom*)seqp->chanState)[chan].unk10 = AL_VOL_FULL; + ((ALChanState_Custom*)seqp->chanState)[chan].fade = AL_VOL_FULL; ((ALChanState_Custom*)seqp->chanState)[chan].priority = AL_DEFAULT_PRIORITY; ((ALChanState_Custom*)seqp->chanState)[chan].sustain = 0; ((ALChanState_Custom*)seqp->chanState)[chan].bendRange = 200; diff --git a/lib/src/mips1/al/unknown_0646F0.h b/lib/src/mips1/al/unknown_0646F0.h deleted file mode 100644 index 0da39795..00000000 --- a/lib/src/mips1/al/unknown_0646F0.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _UNKNOWN_0646F0_H_ -#define _UNKNOWN_0646F0_H_ - - -#include "types.h" -#include "audio_internal.h" - -void func_80063AF0(ALSeqPlayer *seqp, u8 chan); -void func_80063B44(ALSeqPlayer *seqp, u8 chan); - -#endif diff --git a/src/audio.c b/src/audio.c index 89e11e8f..88172515 100644 --- a/src/audio.c +++ b/src/audio.c @@ -12,80 +12,66 @@ #include "audiomgr.h" #include "audiosfx.h" #include "sched.h" -#include "lib/src/mips1/al/unknown_0646F0.h" +#include "lib/src/mips1/al/seqchannel.h" /************ .data ************/ ALSeqPlayer *gMusicPlayer = NULL; -ALSeqPlayer *gSndFxPlayer = NULL; -u8 musicRelativeVolume = 127; +ALSeqPlayer *gJinglePlayer = NULL; +u8 gMusicBaseVolume = 127; u8 sfxRelativeVolume = 127; -u8 D_800DC640 = 1; -u8 D_800DC644 = 0; -s32 D_800DC648 = 0; +u8 gCanPlayMusic = TRUE; +u8 gCanPlayJingle = FALSE; +s32 gBlockMusicChange = FALSE; s32 audioPrevCount = 0; f32 sMusicFadeVolume = 1.0f; -s32 musicVolumeSliderPercentage = 256; -s32 D_800DC658 = 0; -u8 D_800DC65C = 0; -u8 D_800DC660 = 0; +s32 gMusicSliderVolume = 256; +s32 gDelayedSoundsCount = 0; +u8 gMusicNextSeqID = SEQUENCE_NONE; +u8 gJingleNextSeqID = SEQUENCE_NONE; UNUSED s32 D_800DC664 = 0; UNUSED s32 D_800DC668 = 0; -s32 sMusicVolumeMultiplier = 256; // This is never not 256... -u8 D_800DC670 = 0; +s32 gGlobalMusicVolume = 256; // This is never not 256... +u8 gBlockVoiceLimitChange = FALSE; /*******************************/ -/************ .rodata ************/ - -// Debug strings -UNUSED const char sAudioErrorString_01[] = "amSndPlay: Illegal sound effects table index\n"; -UNUSED const char sAudioErrorString_02[] = "amSndPlayDirect: Somebody tried to play illegal sound %d\n"; -UNUSED const char sAudioErrorString_03[] = "Invalid midi sequence index\n"; - -/*********************************/ - /************ .bss ************/ -#define AUDIO_HEAP_SIZE 0x29D88 - // The audio heap is located at the start of the BSS section. u8 gBssSectionStart[AUDIO_HEAP_SIZE]; ALHeap gALHeap; -ALSeqFile *ALSeqFile_80115CF8; -void *D_80115CFC; - -void *D_80115D00; -u8 D_80115D04; -u8 D_80115D05; -s32 musicTempo; +ALSeqFile *gSequenceTable; +void *gMusicSequenceData; +void *gJingleSequenceData; +u8 gCurrentSequenceID; +u8 gCurrentJingleID; +s32 gMusicTempo; u32 *gSeqLengthTable; -ALBankFile *ALBankFile_80115D10; // And I have reason to believe these are voice clips. -ALBankFile *ALBankFile_80115D14; // These are sound effects, I do not know if it is ALL the sound effects. - -unk80115D18 *sSoundEffectsPool; -unk80115D1C *sMusicPool; - -s32 sSoundEffectsPoolCount; -s32 sMusicPoolCount; -u32 sSoundEffectsPoolSize; -u32 sMusicPoolSize; +ALBankFile *gSequenceBank; +ALBankFile *gSoundBank; +SoundData *gSoundTable; +MusicData *gSeqSoundTable; +s32 gSoundCount; +s32 gSeqSoundCount; +u32 gSoundTableSize; +u32 gSeqSoundTableSize; s16 sMusicTempo; -f32 D_80115D34; +f32 gMusicAnimationTick; s32 sMusicDelayTimer; s32 sMusicDelayLength; -u8 D_80115D40; -u8 D_80115D41; -unk80115D48 D_80115D48[8]; -ALCSeq D_80115D88; -ALCSeq D_80115E80; +u8 gMusicPlaying; +u8 gJinglePlaying; +DelayedSound gDelayedSounds[8]; +ALCSeq gMusicSequence; +ALCSeq gJingleSequence; u8 gSkipResetChannels; // Stored and used by a single function, but redundant. u8 gAudioVolumeSetting; -s32 D_80115F7C; -s32 *gGlobalSoundMask; -u32 *gSpatialSoundMask; -u32 D_80115F88; +u32 gDynamicMusicChannelMask; +SoundMask *gGlobalSoundMask; +SoundMask *gSpatialSoundMask; +SoundMask *gRacerSoundMask; /******************************/ @@ -106,35 +92,35 @@ void audio_init(OSSched *sc) { alHeapInit(&gALHeap, gBssSectionStart, sizeof(gBssSectionStart)); addrPtr = (s32 *) load_asset_section_from_rom(ASSET_AUDIO_TABLE); - ALBankFile_80115D14 = (ALBankFile *) allocate_from_main_pool_safe(addrPtr[ASSET_AUDIO_2] - addrPtr[ASSET_AUDIO_1], COLOUR_TAG_CYAN); - load_asset_to_address(ASSET_AUDIO, (u32) ALBankFile_80115D14, addrPtr[ASSET_AUDIO_1], addrPtr[ASSET_AUDIO_2] - addrPtr[ASSET_AUDIO_1]); - alBnkfNew(ALBankFile_80115D14, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[ASSET_AUDIO_2])); + gSoundBank = (ALBankFile *) allocate_from_main_pool_safe(addrPtr[ASSET_AUDIO_2] - addrPtr[ASSET_AUDIO_1], COLOUR_TAG_CYAN); + load_asset_to_address(ASSET_AUDIO, (u32) gSoundBank, addrPtr[ASSET_AUDIO_1], addrPtr[ASSET_AUDIO_2] - addrPtr[ASSET_AUDIO_1]); + alBnkfNew(gSoundBank, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[ASSET_AUDIO_2])); - sSoundEffectsPoolSize = addrPtr[ASSET_AUDIO_7] - addrPtr[ASSET_AUDIO_6]; - sSoundEffectsPool = (unk80115D18 *) allocate_from_main_pool_safe(sSoundEffectsPoolSize, COLOUR_TAG_CYAN); - load_asset_to_address(ASSET_AUDIO, (u32) sSoundEffectsPool, addrPtr[ASSET_AUDIO_6], sSoundEffectsPoolSize); - sSoundEffectsPoolCount = sSoundEffectsPoolSize / sizeof(unk80115D18); + gSoundTableSize = addrPtr[ASSET_AUDIO_7] - addrPtr[ASSET_AUDIO_6]; + gSoundTable = (SoundData *) allocate_from_main_pool_safe(gSoundTableSize, COLOUR_TAG_CYAN); + load_asset_to_address(ASSET_AUDIO, (u32) gSoundTable, addrPtr[ASSET_AUDIO_6], gSoundTableSize); + gSoundCount = gSoundTableSize / sizeof(SoundData); - sMusicPoolSize = addrPtr[ASSET_AUDIO_6] - addrPtr[ASSET_AUDIO_5]; - sMusicPool = (unk80115D1C *) allocate_from_main_pool_safe(sMusicPoolSize, COLOUR_TAG_CYAN); - load_asset_to_address(ASSET_AUDIO, (u32) sMusicPool, addrPtr[ASSET_AUDIO_5], sMusicPoolSize); - sMusicPoolCount = sMusicPoolSize / sizeof(unk80115D1C); + gSeqSoundTableSize = addrPtr[ASSET_AUDIO_6] - addrPtr[ASSET_AUDIO_5]; + gSeqSoundTable = (MusicData *) allocate_from_main_pool_safe(gSeqSoundTableSize, COLOUR_TAG_CYAN); + load_asset_to_address(ASSET_AUDIO, (u32) gSeqSoundTable, addrPtr[ASSET_AUDIO_5], gSeqSoundTableSize); + gSeqSoundCount = gSeqSoundTableSize / sizeof(MusicData); - ALBankFile_80115D10 = (ALBankFile *) allocate_from_main_pool_safe(addrPtr[ASSET_AUDIO_0], COLOUR_TAG_CYAN); - load_asset_to_address(ASSET_AUDIO, (u32) ALBankFile_80115D10, 0, addrPtr[ASSET_AUDIO_0]); - alBnkfNew(ALBankFile_80115D10, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[ASSET_AUDIO_0])); - ALSeqFile_80115CF8 = (ALSeqFile *) alHeapAlloc(&gALHeap, 1, 4); - load_asset_to_address(ASSET_AUDIO, (u32) ALSeqFile_80115CF8, addrPtr[ASSET_AUDIO_4], 4); + gSequenceBank = (ALBankFile *) allocate_from_main_pool_safe(addrPtr[ASSET_AUDIO_0], COLOUR_TAG_CYAN); + load_asset_to_address(ASSET_AUDIO, (u32) gSequenceBank, 0, addrPtr[ASSET_AUDIO_0]); + alBnkfNew(gSequenceBank, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[ASSET_AUDIO_0])); + gSequenceTable = (ALSeqFile *) alHeapAlloc(&gALHeap, 1, 4); + load_asset_to_address(ASSET_AUDIO, (u32) gSequenceTable, addrPtr[ASSET_AUDIO_4], 4); - seqfSize = (ALSeqFile_80115CF8->seqCount) * 8 + 4; - ALSeqFile_80115CF8 = allocate_from_main_pool_safe(seqfSize, COLOUR_TAG_CYAN); - load_asset_to_address(ASSET_AUDIO, (u32) ALSeqFile_80115CF8, addrPtr[ASSET_AUDIO_4], seqfSize); - alSeqFileNew(ALSeqFile_80115CF8, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[ASSET_AUDIO_4])); - gSeqLengthTable = (u32 *) allocate_from_main_pool_safe((ALSeqFile_80115CF8->seqCount) * 4, COLOUR_TAG_CYAN); + seqfSize = (gSequenceTable->seqCount) * 8 + 4; + gSequenceTable = allocate_from_main_pool_safe(seqfSize, COLOUR_TAG_CYAN); + load_asset_to_address(ASSET_AUDIO, (u32) gSequenceTable, addrPtr[ASSET_AUDIO_4], seqfSize); + alSeqFileNew(gSequenceTable, get_rom_offset_of_asset(ASSET_AUDIO, addrPtr[ASSET_AUDIO_4])); + gSeqLengthTable = (u32 *) allocate_from_main_pool_safe((gSequenceTable->seqCount) * 4, COLOUR_TAG_CYAN); - for (iCnt = 0; iCnt < ALSeqFile_80115CF8->seqCount; iCnt++) { - pad = (u32) (ALSeqFile_80115CF8 + 8 + iCnt * 8); // Fakematch - gSeqLengthTable[iCnt] = ALSeqFile_80115CF8->seqArray[iCnt].len; + for (iCnt = 0; iCnt < gSequenceTable->seqCount; iCnt++) { + pad = (u32) (gSequenceTable + 8 + iCnt * 8); // Fakematch + gSeqLengthTable[iCnt] = gSequenceTable->seqArray[iCnt].len; if (gSeqLengthTable[iCnt] & 1) { gSeqLengthTable[iCnt]++; } @@ -152,42 +138,45 @@ void audio_init(OSSched *sc) { synth_config.outputRate = 0; synth_config.heap = &gALHeap; amCreateAudioMgr(&synth_config, 12, sc); - gMusicPlayer = func_80002224(24, 120); + gMusicPlayer = sound_seqplayer_init(24, 120); set_voice_limit(gMusicPlayer, 18); - gSndFxPlayer = func_80002224(16, 50); - D_80115CFC = allocate_from_main_pool_safe(seqLength, COLOUR_TAG_CYAN); - D_80115D00 = allocate_from_main_pool_safe(seqLength, COLOUR_TAG_CYAN); + gJinglePlayer = sound_seqplayer_init(16, 50); + gMusicSequenceData = allocate_from_main_pool_safe(seqLength, COLOUR_TAG_CYAN); + gJingleSequenceData = allocate_from_main_pool_safe(seqLength, COLOUR_TAG_CYAN); audConfig.unk04 = 150; audConfig.unk00 = 32; - audConfig.maxChannels = 16; + audConfig.maxChannels = AUDIO_CHANNELS; audConfig.unk10 = 1; audConfig.hp = &gALHeap; alSndPNew(&audConfig); audioStartThread(); - adjust_audio_volume(VOLUME_NORMAL); + sound_volume_change(VOLUME_NORMAL); free_from_memory_pool(addrPtr); set_sound_channel_count(10); - D_800DC648 = 0; - D_80115D40 = 0; - D_80115D41 = 0; - D_800DC658 = 0; + gBlockMusicChange = FALSE; + gMusicPlaying = FALSE; + gJinglePlaying = FALSE; + gDelayedSoundsCount = 0; gSkipResetChannels = FALSE; gAudioVolumeSetting = VOLUME_NORMAL; +#ifdef AVOID_UB + gMusicAnimationTick = 1.0f; // Prevents a denorm crash on the character select screen. +#endif } /** * Depending on whether or not the audio volume is set to normal and the argument is false, reset sound effect channel volumes. */ -void reset_sound_volume(u8 skipReset) { +void sound_volume_reset(u8 skipReset) { if (gAudioVolumeSetting == VOLUME_NORMAL) { gSkipResetChannels = skipReset; if (gSkipResetChannels == FALSE) { - sMusicVolumeMultiplier = 256; - set_relative_volume_for_music(musicRelativeVolume); - set_sound_channel_volume(0, sMusicVolumeMultiplier * 128 - 1); - set_sound_channel_volume(1, sMusicVolumeMultiplier * 128 - 1); - set_sound_channel_volume(2, sMusicVolumeMultiplier * 128 - 1); - set_sound_channel_volume(4, sMusicVolumeMultiplier * 128 - 1); + gGlobalMusicVolume = 256; + music_volume_set(gMusicBaseVolume); + set_sound_channel_volume(0, gGlobalMusicVolume * 128 - 1); + set_sound_channel_volume(1, gGlobalMusicVolume * 128 - 1); + set_sound_channel_volume(2, gGlobalMusicVolume * 128 - 1); + set_sound_channel_volume(4, gGlobalMusicVolume * 128 - 1); } } } @@ -195,15 +184,15 @@ void reset_sound_volume(u8 skipReset) { /** * Changes the volume of each sound channel depending on what value is passed through. */ -void adjust_audio_volume(s32 behaviour) { +void sound_volume_change(s32 behaviour) { switch (behaviour) { case VOLUME_LOWER: // Mute most sound effects and half the volume of music. set_sound_channel_volume(0, 0); set_sound_channel_volume(1, 32767); set_sound_channel_volume(2, 0); set_sound_channel_volume(4, 0); - alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16) (musicRelativeVolume * musicVolumeSliderPercentage >> 2)); - alCSPSetVol((ALCSPlayer *) gSndFxPlayer, 0); + alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16) (gMusicBaseVolume * gMusicSliderVolume >> 2)); + alCSPSetVol((ALCSPlayer *) gJinglePlayer, 0); break; case VOLUME_LOWER_AMBIENT: // Mute the ambient channel, making course elements stop making noise. set_sound_channel_volume(0, 0); @@ -222,51 +211,73 @@ void adjust_audio_volume(s32 behaviour) { set_sound_channel_volume(1, 32767); set_sound_channel_volume(2, 32767); set_sound_channel_volume(4, 32767); - alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16) (musicRelativeVolume * musicVolumeSliderPercentage)); - alCSPSetVol((ALCSPlayer *) gSndFxPlayer, (s16) (get_sfx_volume_slider() * sfxRelativeVolume)); + alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16) (gMusicBaseVolume * gMusicSliderVolume)); + alCSPSetVol((ALCSPlayer *) gJinglePlayer, (s16) (get_sfx_volume_slider() * sfxRelativeVolume)); break; } gAudioVolumeSetting = behaviour; } -void func_80000B18(void) { - D_800DC648 = 1; +/** + * Prevents changing of background music. +*/ +void music_change_off(void) { + gBlockMusicChange = TRUE; } -void func_80000B28(void) { - D_800DC648 = 0; +/** + * Allows changing of background music. +*/ +void music_change_on(void) { + gBlockMusicChange = FALSE; } -void play_music(u8 seqID) { - if (D_800DC648 == 0 && musicVolumeSliderPercentage != 0) { - D_80115D04 = seqID; - musicRelativeVolume = 127; - if (D_800DC640 != 0) { - func_800022BC(D_80115D04, gMusicPlayer); +/** + * Queue a new music sequence to play if not blocked. + * Stops any playing existing music beforehand. +*/ +void music_play(u8 seqID) { + if (gBlockMusicChange == FALSE && gMusicSliderVolume != 0) { + gCurrentSequenceID = seqID; + gMusicBaseVolume = 127; + if (gCanPlayMusic) { + music_sequence_start(gCurrentSequenceID, gMusicPlayer); } - musicTempo = alCSPGetTempo((ALCSPlayer *) gMusicPlayer); + gMusicTempo = alCSPGetTempo((ALCSPlayer *) gMusicPlayer); audioPrevCount = osGetCount(); - D_80115D40 = 1; - D_80115F7C = -1; + gMusicPlaying = TRUE; + gDynamicMusicChannelMask = MUSIC_CHAN_MASK_NONE; } } -void set_music_player_voice_limit(u8 voiceLimit) { - if (D_800DC670 == 0) { +/** + * Update the background music voice limit if not prevented from doing so. +*/ +void music_voicelimit_set(u8 voiceLimit) { + if (gBlockVoiceLimitChange == FALSE) { set_voice_limit(gMusicPlayer, voiceLimit); } } -void func_80000C1C(void) { - D_800DC670 = 1; +/** + * Prevent the background music voice limit from being changed. +*/ +void music_voicelimit_change_off(void) { + gBlockVoiceLimitChange = TRUE; } -void func_80000C2C(void) { - D_800DC670 = 0; +/** + * Allow the background music voice limit to be changed. +*/ +void music_voicelimit_change_on(void) { + gBlockVoiceLimitChange = FALSE; } -void set_sndfx_player_voice_limit(u8 voiceLimit) { - set_voice_limit(gSndFxPlayer, voiceLimit); +/** + * Update the jingle players voice limit. +*/ +void music_jingle_voicelimit_set(u8 voiceLimit) { + set_voice_limit(gJinglePlayer, voiceLimit); } UNUSED void func_80000C68(u8 arg0) { @@ -277,167 +288,219 @@ UNUSED void func_80000C68(u8 arg0) { * Enables the timer to start fading in or out the background music. * Give it a positive number to fade in, otherwise, give it a negative one to fade out. */ -void set_music_fade_timer(s32 time) { +void music_fade(s32 time) { sMusicDelayTimer = 0; sMusicDelayLength = (time * 60) >> 8; } -void func_80000CBC(void) { +/** + * Sets the background music volume back to normal. +*/ +void music_volume_reset(void) { sMusicDelayTimer = 0; sMusicDelayLength = 0; sMusicFadeVolume = 1.0f; - set_relative_volume_for_music(musicRelativeVolume); + music_volume_set(gMusicBaseVolume); } -void handle_music_fade(u8 updateRate) { - s32 reg_s2; +/** + * Run every frame, this handles the transitions in and out of music sequences. + * If there's something in the queue, then begin to play that. + * Additionally, it also handles the delayed audio queue, counting down and playing any sounds. +*/ +void sound_update_queue(u8 updateRate) { + s32 i; s32 j; + if (sMusicDelayLength > 0) { - sMusicDelayTimer += updateRate; - sMusicFadeVolume = ((f32)sMusicDelayTimer) / ((f32)sMusicDelayLength); - + sMusicFadeVolume = ((f32) sMusicDelayTimer) / ((f32) sMusicDelayLength); if (sMusicFadeVolume > 1.0) { sMusicDelayTimer = 0; sMusicDelayLength = 0; sMusicFadeVolume = 1.0f; } - set_relative_volume_for_music(musicRelativeVolume); + music_volume_set(gMusicBaseVolume); } else if (sMusicDelayLength < 0) { - sMusicDelayTimer -= updateRate; - sMusicFadeVolume = 1.0f - ((f32)sMusicDelayTimer) / ((f32)sMusicDelayLength); + sMusicFadeVolume = 1.0f - ((f32) sMusicDelayTimer) / ((f32) sMusicDelayLength); if (sMusicFadeVolume < 0.0) { sMusicDelayTimer = 0; sMusicDelayLength = 0; sMusicFadeVolume = 0.0f; } - set_relative_volume_for_music(musicRelativeVolume); + music_volume_set(gMusicBaseVolume); } - if (D_800DC658 > 0) { - for (reg_s2 = 0; reg_s2 < D_800DC658;) { - D_80115D48[reg_s2].unk2 -= updateRate; - if (D_80115D48[reg_s2].unk2 <= 0) { - j = reg_s2; - play_sound_global(D_80115D48[reg_s2].soundId, (s32 *) D_80115D48[reg_s2].unk4); + if (gDelayedSoundsCount > 0) { + for (i = 0; i < gDelayedSoundsCount;) { + gDelayedSounds[i].timer -= updateRate; + if (gDelayedSounds[i].timer <= 0) { + j = i; + sound_play(gDelayedSounds[i].soundId, (s32 *) gDelayedSounds[i].soundMask); - D_800DC658 -= 1; - while (j < D_800DC658) { - D_80115D48[reg_s2].soundId = D_80115D48[reg_s2 + 1].soundId; - D_80115D48[reg_s2].unk2 = D_80115D48[reg_s2 + 1].unk2; - D_80115D48[reg_s2].unk4 = D_80115D48[reg_s2 + 1].unk4; + gDelayedSoundsCount -= 1; + while (j < gDelayedSoundsCount) { + gDelayedSounds[i].soundId = gDelayedSounds[i + 1].soundId; + gDelayedSounds[i].timer = gDelayedSounds[i + 1].timer; + gDelayedSounds[i].soundMask = gDelayedSounds[i + 1].soundMask; j++; } j++; } else { - reg_s2++; + i++; } } } - func_8000232C(gMusicPlayer, D_80115CFC, &D_800DC65C, &D_80115D88); - func_8000232C(gSndFxPlayer, D_80115D00, &D_800DC660, &D_80115E80); + music_sequence_init(gMusicPlayer, gMusicSequenceData, &gMusicNextSeqID, &gMusicSequence); + music_sequence_init(gJinglePlayer, gJingleSequenceData, &gJingleNextSeqID, &gJingleSequence); if (sMusicTempo == -1 && gMusicPlayer->target) { sMusicTempo = 60000000 / alCSPGetTempo((ALCSPlayer *) gMusicPlayer); } } -void func_80000FDC(u16 soundId, s32 arg1, f32 arg2) { - if (D_800DC658 < 8) { - D_80115D48[D_800DC658].soundId = soundId; - D_80115D48[D_800DC658].unk4 = arg1; - D_80115D48[D_800DC658].unk2 = arg2 * 60.0f; - D_800DC658++; +/** + * Add a sound to a queue to play after a set time has passed. + * Delay time is in seconds. (1.0f = 1 second) +*/ +void sound_play_delayed(u16 soundId, SoundMask *soundMask, f32 delayTime) { + if (gDelayedSoundsCount < 8) { + gDelayedSounds[gDelayedSoundsCount].soundId = soundId; + gDelayedSounds[gDelayedSoundsCount].soundMask = soundMask; + gDelayedSounds[gDelayedSoundsCount].timer = delayTime * 60.0f; + gDelayedSoundsCount++; } } -void func_80001050(void) { - D_800DC658 = 0; +/** + * Clear the delayed sound queue. +*/ +void sound_clear_delayed(void) { + gDelayedSoundsCount = 0; } -u16 musicGetChanMask(void) { +/** + * Return the channel mask of the music player. + * Official name: musicGetChanMask +*/ +u16 music_channel_get_mask(void) { return gMusicPlayer->chanMask; } -void func_80001074(u16 channel) { - u32 chan; - if (D_800DC65C) { - D_80115F7C = channel; +/** + * Sets the channels in the sequence on or off based on the channel mask given. +*/ +void music_dynamic_set(u16 channelMask) { + u32 i; + if (gMusicNextSeqID) { + gDynamicMusicChannelMask = channelMask; } else { - gMusicPlayer->chanMask = channel; - for (chan = 0; chan != 16; chan++) { - if (channel & (1 << chan)) { - func_80001170(chan); + gMusicPlayer->chanMask = channelMask; + for (i = 0; i != AUDIO_CHANNELS; i++) { + if (channelMask & (1 << i)) { + music_channel_on(i); } else { - func_80001114(chan); + music_channel_off(i); + } } } } -void func_80001114(u8 chan) { - if (chan < 16) { - func_80063AF0(gMusicPlayer, chan); +/** + * Mute the sequence channel, preventing it from playing any sound. +*/ +void music_channel_off(u8 channel) { + if (channel < AUDIO_CHANNELS) { + alSeqChOff(gMusicPlayer, channel); } } -s32 musicGetChnlActive(s32 arg0) { - return (gMusicPlayer->chanMask & (1 << arg0)) == 0; +/** + * Return true if the given channel is currently active. + * Official name: musicGetChnlActive +*/ +s32 music_channel_active(s32 channel) { + return (gMusicPlayer->chanMask & (1 << channel)) == 0; } -void func_80001170(u8 chan) { - if (chan < 16) { - func_80063B44(gMusicPlayer, chan); +/** + * Unmute the sequence channel so it can play sound. +*/ +void music_channel_on(u8 channel) { + if (channel < AUDIO_CHANNELS) { + alSeqChOn(gMusicPlayer, channel); } } -void musicSetChlPan(u8 chan, ALPan pan) { - if (chan < 16) { - alCSPSetChlPan((ALCSPlayer *) gMusicPlayer, chan, pan); +/** + * Set the panning level of the given channel for the music player. + * Official name: musicSetChlPan +*/ +void music_channel_pan_set(u8 channel, ALPan pan) { + if (channel < AUDIO_CHANNELS) { + alCSPSetChlPan((ALCSPlayer *) gMusicPlayer, channel, pan); } } -void musicSetChlVol(u8 chan, u8 vol) { - if (chan < 0x10) { - alCSPSetChlVol((ALCSPlayer *) gMusicPlayer, chan, vol); +/** + * Set the volume of the given channel for the music player. + * Official name musicSetChlVol +*/ +void music_channel_volume_set(u8 channel, u8 volume) { + if (channel < AUDIO_CHANNELS) { + alCSPSetChlVol((ALCSPlayer *) gMusicPlayer, channel, volume); } } -UNUSED u8 musicGetChlVol(u8 chan) { - if (chan >= 16) { +/** + * Return the volume of the given channel in the music player. + * Official name: musicGetChlVol +*/ +UNUSED u8 music_channel_volume(u8 channel) { + if (channel >= AUDIO_CHANNELS) { return 0; } else { - return alCSPGetChlVol((ALCSPlayer *) gMusicPlayer, chan); + return alCSPGetChlVol((ALCSPlayer *) gMusicPlayer, channel); } } -void func_80001268(u8 chan, ALPan pan) { - if (chan < 16) { - func_80063BA0(gMusicPlayer, chan, pan); +/** + * Set this channel to fade in over time. +*/ +void music_channel_fade_set(u8 channel, u8 fade) { + if (channel < AUDIO_CHANNELS) { + alCSPSetFadeIn(gMusicPlayer, channel, fade); } } -u8 func_800012A8(u8 chan) { - if (chan >= 16) { +/** + * Return the fade volume of the given channel. +*/ +u8 music_channel_fade(u8 channel) { + if (channel >= AUDIO_CHANNELS) { return 0; } - return func_80063C00((ALCSPlayer *) gMusicPlayer, chan); + return alCSPGetFadeIn((ALCSPlayer *) gMusicPlayer, channel); } -void func_800012E8(void) { - u32 chan; - if (!D_800DC648) { - for (chan = 0; chan < 16; chan++) { - func_80001170(chan); - func_80001268(chan, 127); - musicSetChlVol(chan, 127); +/** + * Resets all audio channels for the music player to the default state. + * This is being enabled, centre panning and at normal volume. +*/ +void music_channel_reset_all(void) { + u32 channel; + if (gBlockMusicChange == FALSE) { + for (channel = 0; channel < AUDIO_CHANNELS; channel++) { + music_channel_on(channel); + music_channel_fade_set(channel, 127); + music_channel_volume_set(channel, 127); } } - return; } -u8 func_80001358(u8 arg0, u8 arg1, s32 arg2) { +UNUSED u8 func_80001358(u8 arg0, u8 arg1, s32 arg2) { u8 val_1f; u8 val_1e; s32 updatedVol; @@ -452,7 +515,6 @@ u8 func_80001358(u8 arg0, u8 arg1, s32 arg2) { } if (arg1 != 100) { - updatedVol = alCSPGetChlVol((ALCSPlayer *) gMusicPlayer, arg1); val_1e = (updatedVol > arg2) ? updatedVol - arg2 : 0; alCSPSetChlVol((ALCSPlayer *) gMusicPlayer, arg1, val_1e); @@ -462,7 +524,7 @@ u8 func_80001358(u8 arg0, u8 arg1, s32 arg2) { } } -void func_80001440(u8 *arg0) { +UNUSED void func_80001440(u8 *arg0) { s32 s0 = 0; if (gMusicPlayer->maxChannels > 0) { do { @@ -474,16 +536,17 @@ void func_80001440(u8 *arg0) { /** * Multiplies the current tempo of the background music. - * Since it calls musicGetTempo and multiplies it by the result, calling this repeatedly can recursively change the music's speed. + * Since it calls music_tempo and multiplies it by the result, calling this repeatedly can recursively change the music's speed. */ -void multiply_music_tempo(f32 tempo) { - musicSetTempo((s32)((f32)(u32)(musicGetTempo() & 0xFF) * tempo)); +void music_tempo_set_relative(f32 tempo) { + music_tempo_set((s32)((f32)(u32)(music_tempo() & 0xFF) * tempo)); } /** * Set the tempo of the current playing background music. + * Official name: musicSetTempo */ -void musicSetTempo(s32 tempo) { +void music_tempo_set(s32 tempo) { if (tempo != 0) { f32 inv_tempo = (1.0f / tempo); alCSPSetTempo((ALCSPlayer *) gMusicPlayer, (s32)(inv_tempo * 60000000.0f)); @@ -493,131 +556,193 @@ void musicSetTempo(s32 tempo) { /** * Return the tempo of the current playing background music. + * Official name: musicGetTempo */ -s16 musicGetTempo(void) { +s16 music_tempo(void) { return sMusicTempo; } +/** + * Returns true if background music is currently playing. +*/ u8 music_is_playing(void) { return (alCSPGetState((ALCSPlayer *) gMusicPlayer) == AL_PLAYING); } -f32 audio_get_chr_select_anim_frac(void) { +/** + * Counts up using the internal timer. + * Loops itself round, so the final result will return 0.0f - 1.0f. +*/ +f32 music_animation_fraction(void) { f32 tmp; u32 cnt = osGetCount(); if ((u32) audioPrevCount < cnt) { - D_80115D34 += (f32) (cnt - audioPrevCount) / 46875.0f; + gMusicAnimationTick += (f32) (cnt - audioPrevCount) / 46875.0f; } else { - D_80115D34 += (f32) ((cnt - audioPrevCount) - 1) / 46875.0f; + gMusicAnimationTick += (f32) ((cnt - audioPrevCount) - 1) / 46875.0f; } - if (D_80115D40 == 0) { + if (gMusicPlaying == FALSE) { sMusicTempo = 182; } - for (tmp = 120000.0f / (f32) sMusicTempo; tmp < D_80115D34; D_80115D34 -= tmp) + for (tmp = 120000.0f / (f32) sMusicTempo; tmp < gMusicAnimationTick; gMusicAnimationTick -= tmp) ; audioPrevCount = (s32) cnt; - return D_80115D34 / tmp; + return gMusicAnimationTick / tmp; } -void func_80001728(u8 arg0, u8 *arg1, u8 *arg2, u8 *arg3) { - *arg1 = sMusicPool[arg0].unk1; - *arg2 = sMusicPool[arg0].unk0; - *arg3 = sMusicPool[arg0].unk2; +/** + * Writes the music and sound tempo, as well as the volume to the arguments. +*/ +UNUSED void sound_get_properties(u8 poolID, u8 *tempo, u8 *volume, u8 *reverb) { + *tempo = gSeqSoundTable[poolID].tempo; + *volume = gSeqSoundTable[poolID].volume; + *reverb = gSeqSoundTable[poolID].reverb; } -void func_80001784(u8 a0) { - if (!func_80001C08()) { - func_800022BC(D_80115D05 = a0, gSndFxPlayer); - D_80115D41 = 1; +/** + * Play a jingle, but only if there isn't one playing already. +*/ +void music_jingle_play_safe(u8 jingleID) { + if (music_jingle_playing() == SEQUENCE_NONE) { + music_sequence_start(gCurrentJingleID = jingleID, gJinglePlayer); + gJinglePlaying = TRUE; } } -void sfxSetTempo(s32 tempo) { +/** + * Sets the tempo for the jingle player. +*/ +void sound_jingle_tempo_set(s32 tempo) { f32 inv_tempo = (1.0f / tempo); - alCSPSetTempo((ALCSPlayer *) gSndFxPlayer, (s32)(inv_tempo * 60000000.0f)); + alCSPSetTempo((ALCSPlayer *) gJinglePlayer, (s32)(inv_tempo * 60000000.0f)); } -void func_80001844(void) { - if (!D_800DC648) { - func_80002570(gMusicPlayer); +/** + * Stops the background music. +*/ +void music_stop(void) { + if (gBlockMusicChange == FALSE) { + music_sequence_stop(gMusicPlayer); } - return; } -void func_80001878(u8 arg0) { - if (arg0 != D_800DC640) { - D_800DC640 = arg0; - if (arg0) { - play_music(D_80115D04); +/** + * Set background music to play or not. + * If the setting changed, then either stop or start music. +*/ +UNUSED void music_enabled_set(u8 setting) { + if (setting != gCanPlayMusic) { + gCanPlayMusic = setting; + if (setting) { + music_play(gCurrentSequenceID); } else { - func_80001844(); + music_stop(); } } } -u8 func_800018D0(void) { - return D_800DC640; +/** + * Return whether background music can be played. +*/ +u8 music_can_play(void) { + return gCanPlayMusic; } -void func_800018E0(void) { - if (func_80001C08() == 0) { - D_80115D05 = 0; - func_80002570(gSndFxPlayer); +/** + * Stops the currently playing jingle. +*/ +void music_jingle_stop(void) { + if (music_jingle_playing() == SEQUENCE_NONE) { + gCurrentJingleID = SEQUENCE_NONE; + music_sequence_stop(gJinglePlayer); } } -u8 func_80001918(void) { - if (D_80115D04 != 0 && gMusicPlayer->state == AL_PLAYING) { - return D_80115D04; +/** + * Return the currently playing music. +*/ +u8 music_current_sequence(void) { + if (gCurrentSequenceID != SEQUENCE_NONE && gMusicPlayer->state == AL_PLAYING) { + return gCurrentSequenceID; + } else { + return SEQUENCE_NONE; } - return 0; } -UNUSED u8 func_80001954(void) { - if (D_800DC65C != 0) { - return D_800DC65C; +/** + * Return the next music sequence to be played if there is one. + * Otherwise, return what's currently playing. +*/ +UNUSED u8 music_next(void) { + if (gMusicNextSeqID) { + return gMusicNextSeqID; + } else { + return gCurrentSequenceID; } - return D_80115D04; } -u8 func_80001980(void) { - return D_80115D05; +/** + * Return the currently playing jingle. +*/ +u8 music_jingle_current(void) { + return gCurrentJingleID; } -void set_relative_volume_for_music(u8 vol) { +/** + * Set the volume of the music. + * Update music volume with this new setting. +*/ +void music_volume_set(u8 volume) { f32 normalized_vol; - musicRelativeVolume = vol; - normalized_vol = musicVolumeSliderPercentage * musicRelativeVolume * sMusicFadeVolume; - alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16)((s32)(sMusicVolumeMultiplier * normalized_vol) >> 8)); + gMusicBaseVolume = volume; + normalized_vol = gMusicSliderVolume * gMusicBaseVolume * sMusicFadeVolume; + alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16)((s32)(gGlobalMusicVolume * normalized_vol) >> 8)); } -void set_music_volume_slider(u32 slider_val) { +/** + * Set the user configured music volume. + * Update music volume with this new setting. +*/ +void music_volume_config_set(u32 slider_val) { f32 normalized_vol; slider_val = (slider_val <= 256) ? slider_val : 256; - musicVolumeSliderPercentage = slider_val; - normalized_vol = musicVolumeSliderPercentage * musicRelativeVolume * sMusicFadeVolume; - alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16)((s32)(sMusicVolumeMultiplier * normalized_vol) >> 8)); + gMusicSliderVolume = slider_val; + normalized_vol = gMusicSliderVolume * gMusicBaseVolume * sMusicFadeVolume; + alCSPSetVol((ALCSPlayer *) gMusicPlayer, (s16)((s32)(gGlobalMusicVolume * normalized_vol) >> 8)); } -u8 musicGetRelativeVolume(void) { - return musicRelativeVolume; +/** + * Return the baseline music volume, unaffected by user config. +*/ +u8 music_volume(void) { + return gMusicBaseVolume; } -s32 musicGetVolSliderPercentage(void) { - return musicVolumeSliderPercentage; +/** + * Return the music volume set by the player. +*/ +s32 music_volume_config(void) { + return gMusicSliderVolume; } -void sfxSetRelativeVolume(u8 arg0) { +/** + * Set the volume for the jingle player. + * The jingle player scales with sfx volume rather than music volume. +*/ +void music_jingle_volume_set(u8 arg0) { sfxRelativeVolume = arg0; - alCSPSetVol((ALCSPlayer *) gSndFxPlayer, (s16)(get_sfx_volume_slider() * sfxRelativeVolume)); + alCSPSetVol((ALCSPlayer *) gJinglePlayer, (s16)(get_sfx_volume_slider() * sfxRelativeVolume)); } -void sfxSetPan(ALPan pan) { +/** + * Set the panning level for every channel in the jingle player. +*/ +void music_jingle_pan_set(ALPan pan) { u32 iChan; - for (iChan = 0; iChan < 16; iChan++) { - alCSPSetChlPan((ALCSPlayer *) gSndFxPlayer, iChan, pan); + for (iChan = 0; iChan < AUDIO_CHANNELS; iChan++) { + alCSPSetChlPan((ALCSPlayer *) gJinglePlayer, iChan, pan); } } @@ -625,70 +750,80 @@ void sfxSetPan(ALPan pan) { * Plays a sequence just once, allowing it to coexist with the music if necessary. * Examples include getting silver coins, challenge keys, or getting the locked message. */ -void play_sequence(u8 seqID) { - D_800DC644 = 1; - func_800022BC(D_80115D05 = seqID, gSndFxPlayer); -} - -u32 func_80001C08(void) { - if (D_80115D05 && D_800DC644 && (gSndFxPlayer->state == AL_PLAYING)) { - return D_80115D05; - } - D_800DC644 = 0; - return 0; +void music_jingle_play(u8 seqID) { + gCanPlayJingle = TRUE; + music_sequence_start(gCurrentJingleID = seqID, gJinglePlayer); } /** - * Sets the volume of what I presume is all sound channels + * If there's a jingle playing, return that, otherwise, return 0. */ -UNUSED void set_all_channel_volume(u16 volume) { +u32 music_jingle_playing(void) { + if (gCurrentJingleID && gCanPlayJingle && (gJinglePlayer->state == AL_PLAYING)) { + return gCurrentJingleID; + } + gCanPlayJingle = FALSE; + return SEQUENCE_NONE; +} + +/** + * Sets the volume for every sound channel. + * Tries to set up to 64, regardless of if there are 64 sound channels or not. + * !@bug: This can cause an out of bounds array index. +*/ +UNUSED void sound_channel_volume_all(u16 volume) { u32 i; for (i = 0; i < 64; i++) { set_sound_channel_volume(i, volume << 8); } } -u16 func_80001CB8(u16 soundId) { - if (soundId > sSoundEffectsPoolCount) { +/** + * Return the audible distance of the sound effect. +*/ +u16 sound_distance(u16 soundId) { + if (soundId > gSoundCount) { return 0; } - return sSoundEffectsPool[soundId].unk6; + return gSoundTable[soundId].distance; } /** * Add the requested sound to the queue and update the mask to show that this sound is playing at that source. * If no soundmask is provided, then instead use the global mask. */ -void play_sound_global(u16 soundID, s32 *soundMask) { - f32 volumeF; +void sound_play(u16 soundID, s32 *soundMask) { + f32 pitch; s32 soundBite; - if (soundID > sSoundEffectsPoolCount) { + if (soundID > gSoundCount) { if (soundMask != NULL) { *soundMask = NULL; } + stubbed_printf("amSndPlay: Illegal sound effects table index\n"); + return; + } + soundBite = gSoundTable[soundID].soundBite; + if (soundBite == NULL) { + if (soundMask != NULL) { + *soundMask = NULL; + } + stubbed_printf("amSndPlayDirect: Somebody tried to play illegal sound %d\n", soundID); + return; + } + pitch = gSoundTable[soundID].pitch / 100.0f; + if (soundMask != NULL) { + func_80004668(gSoundBank->bankArray[0], soundBite, gSoundTable[soundID].unk8, (SoundMask *) soundMask); + if (*soundMask != NULL) { + sound_event_update(*soundMask, AL_SNDP_VOL_EVT, gSoundTable[soundID].volume * 256); + sound_event_update(*soundMask, AL_SNDP_PITCH_EVT, *((u32*) &pitch)); + } } else { - soundBite = sSoundEffectsPool[soundID].unk0; - if (soundBite == NULL) { - if (soundMask != NULL) { - *soundMask = NULL; - } - } else { - volumeF = sSoundEffectsPool[soundID].unk4 / 100.0f; - if (soundMask != NULL) { - func_80004668(ALBankFile_80115D14->bankArray[0], soundBite, sSoundEffectsPool[soundID].unk8, (s32) soundMask); - if (*soundMask != NULL) { - func_800049F8(*soundMask, 8, sSoundEffectsPool[soundID].unk2 * 256); - func_800049F8(*soundMask, 16, *((u32*) &volumeF)); - } - } else { - soundMask = (s32 *) &gGlobalSoundMask; - func_80004668(ALBankFile_80115D14->bankArray[0], soundBite, sSoundEffectsPool[soundID].unk8, (s32) &gGlobalSoundMask); - if (*soundMask != NULL) { - func_800049F8(*soundMask, 8, sSoundEffectsPool[soundID].unk2 * 256); - func_800049F8(*soundMask, 16, *((u32*) &volumeF)); - } - } + soundMask = (s32 *) &gGlobalSoundMask; + func_80004668(gSoundBank->bankArray[0], soundBite, gSoundTable[soundID].unk8, (SoundMask *) &gGlobalSoundMask); + if (*soundMask != NULL) { + sound_event_update(*soundMask, AL_SNDP_VOL_EVT, gSoundTable[soundID].volume * 256); + sound_event_update(*soundMask, AL_SNDP_PITCH_EVT, *((u32*) &pitch)); } } } @@ -698,181 +833,220 @@ void play_sound_global(u16 soundID, s32 *soundMask) { * This then makes the audio pan around in 3D space. * If it is not given a mask, then it will use the global mask. */ -void play_sound_spatial(u16 soundID, f32 x, f32 y, f32 z, s32 **soundMask) { +void sound_play_spatial(u16 soundID, f32 x, f32 y, f32 z, s32 **soundMask) { if (soundMask == NULL) { soundMask = (s32 **) &gSpatialSoundMask; } - play_sound_global(soundID, (s32 *) soundMask); + sound_play(soundID, (s32 *) soundMask); if (*soundMask != NULL) { func_80009B7C(*soundMask, x, y, z); } } -void func_80001F14(u16 soundID, s32 *arg1) { - if (soundID <= 0 || ALBankFile_80115D14_GetSoundCount() < soundID) { - if (arg1) { - *arg1 = 0; +void func_80001F14(u16 soundID, s32 *soundMask) { + if (soundID <= 0 || sound_count() < soundID) { + if (soundMask) { + *soundMask = NULL; } + return; + } + if (soundMask) { + func_80004638(gSoundBank->bankArray[0], (s16) soundID, (SoundMask *) soundMask); } else { - if (arg1) { - func_80004638(ALBankFile_80115D14->bankArray[0], (s16) soundID, (s32) arg1); - } else { - func_80004638(ALBankFile_80115D14->bankArray[0], (s16) soundID, (s32) &D_80115F88); - } + func_80004638(gSoundBank->bankArray[0], (s16) soundID, (SoundMask *) &gRacerSoundMask); } } -void func_80001FB8(u16 soundID, void *soundState, u8 volume) { - s32 new_var = ((s32) (sSoundEffectsPool[soundID].unk2 * (volume / 127.0f))) * 256; +/** + * Set the volume of the sound relative to the baseline volume of the sound ID. +*/ +void sound_volume_set_relative(u16 soundID, void *soundState, u8 volume) { + s32 newVolume = ((s32) (gSoundTable[soundID].volume * (volume / 127.0f))) * 256; if (soundState) { - func_800049F8((s32) soundState, 8, new_var); + sound_event_update((s32) soundState, AL_SNDP_VOL_EVT, newVolume); } } -UNUSED void func_8000208C(void *sndState, u8 arg1) { - if (sndState != NULL) { - func_800049F8((s32) sndState, 8, arg1 << 8); +/** + * Updates the volume of the given sound mask. +*/ +UNUSED void sound_volume_set(SoundMask *soundMask, u8 arg1) { + if (soundMask != NULL) { + sound_event_update((s32) soundMask, AL_SNDP_VOL_EVT, arg1 * 256); } } -UNUSED void amSndSetPitchDirect(void *sndState, u32 arg1) { - u32 *temp = &arg1; - if (sndState != NULL) { - func_800049F8((s32) sndState, 16, *temp); +/** + * Updates the pitch of the given sound mask. + * Official name: amSndSetPitchDirect +*/ +UNUSED void sound_pitch_set(SoundMask *soundMask, u32 pitch) { + u32 *pitchAddr = &pitch; + if (soundMask != NULL) { + sound_event_update((s32) soundMask, AL_SNDP_PITCH_EVT, *pitchAddr); } } -u16 ALBankFile_80115D14_GetSoundCount(void) { - return ALBankFile_80115D14->bankArray[0]->instArray[0]->soundCount; +/** + * Return the number of playable sounds in the audio table. +*/ +u16 sound_count(void) { + return gSoundBank->bankArray[0]->instArray[0]->soundCount; } -u8 ALSeqFile_80115CF8_GetSeqCount(void) { - return ALSeqFile_80115CF8->seqCount; +/** + * Return mumber of playable sequences in the table. +*/ +u8 music_sequence_count(void) { + return gSequenceTable->seqCount; } -void func_80002128(unk80115D18 **arg0, s32 *arg1, s32 *arg2) { - if (arg0 != NULL) { - *arg0 = sSoundEffectsPool; +/** + * Writes the sound table address, size and element count into the arguments. +*/ +void sound_table_properties(SoundData **table, s32 *size, s32 *count) { + if (table != NULL) { + *table = gSoundTable; } - if (arg1 != NULL) { - *arg1 = sSoundEffectsPoolSize; + if (size != NULL) { + *size = gSoundTableSize; } - if (arg2 != NULL) { - *arg2 = sSoundEffectsPoolCount; + if (count != NULL) { + *count = gSoundCount; } } -UNUSED void func_8000216C(unk80115D1C **arg0, s32 *arg1, s32 *arg2) { - if (arg0 != NULL) { - *arg0 = sMusicPool; +/** + * Writes the music sound table address, size and element count into the arguments. +*/ +UNUSED void music_table_properties(MusicData **table, s32 *size, s32 *count) { + if (table != NULL) { + *table = gSeqSoundTable; } - if (arg1 != NULL) { - *arg1 = sMusicPoolSize; + if (size != NULL) { + *size = gSeqSoundTableSize; } - if (arg2 != NULL) { - *arg2 = sMusicPoolCount; + if (count != NULL) { + *count = gSeqSoundCount; } } -u8 ALBankFile_80115D14_GetSoundDecayTime(u16 soundID) { - if (soundID <= 0 || ALBankFile_80115D14->bankArray[0]->instArray[0]->soundCount < soundID) { +u8 gSoundBank_GetSoundDecayTime(u16 soundID) { + if (soundID <= 0 || gSoundBank->bankArray[0]->instArray[0]->soundCount < soundID) { return 0; } - return ((u32)(1 + ALBankFile_80115D14->bankArray[0]->instArray[0]->soundArray[soundID - 1]->envelope->decayTime) == 0); + return ((u32)(1 + gSoundBank->bankArray[0]->instArray[0]->soundArray[soundID - 1]->envelope->decayTime) == 0); } -ALSeqPlayer *func_80002224(s32 _max_voices, s32 _max_events) { +/** + * Allocate space, then initialise a sequence player for audio playback. +*/ +ALSeqPlayer *sound_seqplayer_init(s32 maxVoices, s32 maxEvents) { ALCSPlayer *cseqp; ALSeqpConfig config; - config.maxVoices = _max_voices; - config.maxEvents = _max_events; - config.unknown_0x10 = _max_voices; //this member doesn't exist in other versions of ALSeqpConfig - config.maxChannels = 16; + config.maxVoices = maxVoices; + config.maxEvents = maxEvents; + config.unknown_0x10 = maxVoices; //this member doesn't exist in other versions of ALSeqpConfig + config.maxChannels = AUDIO_CHANNELS; config.heap = &gALHeap; config.initOsc = NULL; config.updateOsc = NULL; config.stopOsc = NULL; - cseqp = (ALCSPlayer *)alHeapAlloc(&gALHeap, 1, sizeof(ALCSPlayer)); + cseqp = (ALCSPlayer *) alHeapAlloc(&gALHeap, 1, sizeof(ALCSPlayer)); alCSPNew(cseqp, &config); - alCSPSetBank(cseqp, ALBankFile_80115D10->bankArray[0]); - cseqp->unk36 = 0x7F; + alCSPSetBank(cseqp, gSequenceBank->bankArray[0]); + cseqp->unk36 = 127; return (ALSeqPlayer *) cseqp; } -void func_800022BC(u8 arg0, ALSeqPlayer *arg1) { - func_80002570(arg1); - if (arg0 < ALSeqFile_80115CF8->seqCount) { - if (arg1 == gMusicPlayer) { - D_800DC65C = arg0; - return; +/** + * Stop the current sequence then set the parameters for the next sequence. +*/ +void music_sequence_start(u8 seqID, ALSeqPlayer *seqPlayer) { + music_sequence_stop(seqPlayer); + if (seqID < gSequenceTable->seqCount) { + if (seqPlayer == gMusicPlayer) { + gMusicNextSeqID = seqID; + } else { + gJingleNextSeqID = seqID; } - D_800DC660 = arg0; + } else { + stubbed_printf("Invalid midi sequence index\n"); } } -void func_8000232C(ALSeqPlayer *seqp, void *arg1, u8 *arg2, ALCSeq *seq) { +/** + * If the sequence player is currently inactive, start a new sequence with the current properties. +*/ +void music_sequence_init(ALSeqPlayer *seqp, void *sequence, u8 *seqID, ALCSeq *seq) { s32 i; - u8 temp_a0; - u8 temp_a0_2; - if ((alCSPGetState((ALCSPlayer* ) seqp) == 0) && (*arg2 != 0)) { - load_asset_to_address(ASSET_AUDIO, (u32) arg1, ALSeqFile_80115CF8->seqArray[*arg2].offset - get_rom_offset_of_asset(ASSET_AUDIO, 0), (s32) gSeqLengthTable[*arg2]); - alCSeqNew(seq, arg1); + if ((alCSPGetState((ALCSPlayer* ) seqp) == AL_STOPPED) && (*seqID != 0)) { + load_asset_to_address(ASSET_AUDIO, (u32) sequence, gSequenceTable->seqArray[*seqID].offset - get_rom_offset_of_asset(ASSET_AUDIO, 0), (s32) gSeqLengthTable[*seqID]); + alCSeqNew(seq, sequence); alCSPSetSeq((ALCSPlayer* ) seqp, seq); alCSPPlay((ALCSPlayer* ) seqp); if (seqp == gMusicPlayer) { - set_relative_volume_for_music(sMusicPool[*arg2].unk0); - temp_a0 = sMusicPool[*arg2].unk1; - if (temp_a0 != 0) { - musicSetTempo((s32) temp_a0); + music_volume_set(gSeqSoundTable[*seqID].volume); + if (gSeqSoundTable[*seqID].tempo != 0) { + music_tempo_set(gSeqSoundTable[*seqID].tempo); } else { sMusicTempo = -1; } - func_80002608(sMusicPool[*arg2].unk2); - D_80115D04 = *arg2; - if (D_80115F7C != -1) { - for (i = 0; i < 16; i++) { - if ((1 << i) & D_80115F7C) { - func_80001170(i); + sound_reverb_set(gSeqSoundTable[*seqID].reverb); + gCurrentSequenceID = *seqID; + if (gDynamicMusicChannelMask != MUSIC_CHAN_MASK_NONE) { + for (i = 0; i < AUDIO_CHANNELS; i++) { + if ((1 << i) & gDynamicMusicChannelMask) { + music_channel_on(i); } else { - func_80001114(i); + music_channel_off(i); } } } } else { - sfxSetRelativeVolume(sMusicPool[*arg2].unk0); - temp_a0_2 = sMusicPool[*arg2].unk1; - if (temp_a0_2 != 0) { - sfxSetTempo(temp_a0_2); + music_jingle_volume_set(gSeqSoundTable[*seqID].volume); + if (gSeqSoundTable[*seqID].tempo != 0) { + sound_jingle_tempo_set(gSeqSoundTable[*seqID].tempo); } - D_80115D05 = *arg2; + gCurrentJingleID = *seqID; } - *arg2 = 0; + *seqID = SEQUENCE_NONE; } } -void func_80002570(ALSeqPlayer *seqp) { - if (gMusicPlayer == seqp && D_80115D40 != 0) { - alCSPStop((ALCSPlayer *) seqp); - D_80115D40 = 0; - D_80115D04 = 0; - D_800DC65C = 0; - } else if (gSndFxPlayer == seqp && D_80115D41 != 0) { - alCSPStop((ALCSPlayer *) seqp); - D_80115D41 = 0; - D_800DC660 = 0; +/** + * Stops the current playing sequence for the given sequence player. +*/ +void music_sequence_stop(ALSeqPlayer *seqPlayer) { + if (gMusicPlayer == seqPlayer && gMusicPlaying) { + alCSPStop((ALCSPlayer *) seqPlayer); + gMusicPlaying = FALSE; + gCurrentSequenceID = SEQUENCE_NONE; + gMusicNextSeqID = SEQUENCE_NONE; + } else if (gJinglePlayer == seqPlayer && gJinglePlaying) { + alCSPStop((ALCSPlayer *) seqPlayer); + gJinglePlaying = FALSE; + gJingleNextSeqID = SEQUENCE_NONE; } } -void func_80002608(u8 arg0) { - func_8006492C(arg0); +/** + * Enable or disable special audio effects. + * This includes reverb and echo. +*/ +void sound_reverb_set(u8 setting) { + alFxReverbSet(setting); } -u8 func_80002630(void) { - return sMusicPool[D_80115D04].unk2; +/** + * Returns whether or not reverb is currently enabled. +*/ +UNUSED u8 sound_reverb_enabled(void) { + return gSeqSoundTable[gCurrentSequenceID].reverb; } diff --git a/src/audio.h b/src/audio.h index 9a22a123..c546f0cd 100644 --- a/src/audio.h +++ b/src/audio.h @@ -4,6 +4,10 @@ #include "types.h" #include "audio_internal.h" #include "sched.h" +#include "structs.h" + +#define AUDIO_CHANNELS 16 +#define MUSIC_CHAN_MASK_NONE 0xFFFFFFFF enum AudioVolumeBehaviour { VOLUME_NORMAL, @@ -13,122 +17,111 @@ enum AudioVolumeBehaviour { }; /* Size: 0x0A bytes */ -typedef struct unk80115D18 { - u16 unk0; - u8 unk2; +typedef struct SoundData { + u16 soundBite; // Audio file index. + u8 volume; // Multiplied by 256. 128 = 32768, max volume. u8 unk3; - u8 unk4; + u8 pitch; // Fractional. 100 = 1.0f. u8 unk5; - u16 unk6; + u16 distance; // Ingame units distance, same as any other. u8 unk8; u8 unk9; -} unk80115D18; +} SoundData; /* Size: 0x03 bytes */ -typedef struct unk80115D1C { - u8 unk0; - u8 unk1; - u8 unk2; -} unk80115D1C; +typedef struct MusicData { + u8 volume; + u8 tempo; + u8 reverb; +} MusicData; /* Size: 0x08 bytes */ -typedef struct unk80115D48 { +typedef struct DelayedSound { /* 0x00 */ u16 soundId; - /* 0x02 */ s16 unk2; - /* 0x04 */ s32 unk4; -} unk80115D48; + /* 0x02 */ s16 timer; + /* 0x04 */ SoundMask *soundMask; +} DelayedSound; void alCSPNew(ALCSPlayer *seqp, ALSeqpConfig *config); //lib/src/al/csplayer.c void alCSPSetBank(ALCSPlayer *seqp, ALBank *b); //lib/src/unknown_0C8660.c void set_voice_limit(ALSeqPlayer *seqp, u8 voiceLimit); //lib/src/mips1/alseqplayer.c void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); //lib/src/al/alHeapDBAlloc.c -void alCSPSetChlPan(ALCSPlayer *seqp, u8 chan, ALPan pan); //lib/src/unknown_0C84E0.c -void alCSPSetChlVol(ALCSPlayer *, u8 chan, u8 vol); //lib/src/unknown_0C84E0.c -u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 chan); //lib/src/al -void func_80063BA0(ALSeqPlayer *seqp, u8 chan, ALPan pan); //lib/src/unknown_0647A0.c -u8 func_80063C00(ALCSPlayer *seqp, u8 chan); //lib/src/mips1/al/unknown_064800.c -u8 alSeqpGetChlFXMix(ALSeqPlayer *seqp, u8 chan); //lib/src/al/alSeqpGetChlFXMix.c -void func_8006492C(u8 arg0); //lib/src/mips1/al/reverb.c -u8 func_8006493C(); //lib/src/mips1/al/reverb.c +void alCSPSetChlPan(ALCSPlayer *seqp, u8 channel, ALPan pan); //lib/src/unknown_0C84E0.c +void alCSPSetChlVol(ALCSPlayer *, u8 channel, u8 volume); //lib/src/unknown_0C84E0.c +u8 alCSPGetChlVol(ALCSPlayer *seqp, u8 channel); //lib/src/al +void alCSPSetFadeIn(ALSeqPlayer *seqp, u8 channel, ALPan pan); //lib/src/unknown_0647A0.c +u8 alCSPGetFadeIn(ALCSPlayer *seqp, u8 channel); //lib/src/mips1/al/unknown_064800.c +u8 alSeqpGetChlFXMix(ALSeqPlayer *seqp, u8 channel); //lib/src/al/alSeqpGetChlFXMix.c +void alFxReverbSet(u8 arg0); //lib/src/mips1/al/reverb.c +u8 _alFxEnabled(); //lib/src/mips1/al/reverb.c void alHeapInit(ALHeap *hp, u8 *base, s32 len); //lib/src/al/alHeapInit.c void alBnkfNew(ALBankFile *ctl, u8 *tbl); //lib/src/al/global_asm.c -void alCSPSetVol(ALCSPlayer *seqp, s16 vol); //lib/src/al/alCSPSetVol.c +void alCSPSetVol(ALCSPlayer *seqp, s16 volume); //lib/src/al/alCSPSetVol.c void alCSPStop(ALCSPlayer *seqp); //lib/src/al/unknown_0C91A0.c s32 alCSPGetState(ALCSPlayer *seqp); //lib/src/unknown_0C8650.c void audio_init(OSSched *arg0); -void reset_sound_volume(u8 skipReset); -void adjust_audio_volume(s32 arg0); -void func_80000B18(void); -void func_80000B28(void); -void play_music(u8 seqID); -void set_music_player_voice_limit(u8 voiceLimit); -void func_80000C1C(void); -void func_80000C2C(void); -void set_sndfx_player_voice_limit(u8 voiceLimit); -void func_80000C68(u8 arg0); -void set_music_fade_timer(s32 time); -void func_80000CBC(void); -void handle_music_fade(u8 updateRate); -void func_80000FDC(u16 soundId, s32 arg1, f32 arg2); -void func_80001050(void); -u16 musicGetChanMask(void); -void func_80001074(u16 arg0); -void func_80001114(u8 chan); -s32 musicGetChnlActive(s32 arg0); -void func_80001170(u8 arg0); -void musicSetChlPan(u8 chan, ALPan pan); -void musicSetChlVol(u8 chan, u8 vol); -u8 musicGetChlVol(u8 arg0); -void func_80001268(u8 chan, ALPan pan); -u8 func_800012A8(u8 arg0); -void func_800012E8(void); -u8 func_80001358(u8 arg0, u8 arg1, s32 arg2); -void func_80001440(u8 *arg0); -void multiply_music_tempo(f32 tempo); -void musicSetTempo(s32 tempo); -s16 musicGetTempo(void); +void sound_volume_reset(u8 skipReset); +void sound_volume_change(s32 arg0); +void music_change_off(void); +void music_change_on(void); +void music_play(u8 seqID); +void music_voicelimit_set(u8 voiceLimit); +void music_voicelimit_change_off(void); +void music_voicelimit_change_on(void); +void music_jingle_voicelimit_set(u8 voiceLimit); +void music_fade(s32 time); +void music_volume_reset(void); +void sound_update_queue(u8 updateRate); +void sound_play_delayed(u16 soundId, SoundMask *soundMask, f32 delayTime); +void sound_clear_delayed(void); +u16 music_channel_get_mask(void); +void music_dynamic_set(u16 arg0); +void music_channel_off(u8 channel); +s32 music_channel_active(s32 channel); +void music_channel_on(u8 channel); +void music_channel_pan_set(u8 channel, ALPan pan); +void music_channel_volume_set(u8 channel, u8 volume); +void music_channel_fade_set(u8 channel, ALPan pan); +u8 music_channel_fade(u8 arg0); +void music_channel_reset_all(void); +void music_tempo_set_relative(f32 tempo); +void music_tempo_set(s32 tempo); +s16 music_tempo(void); u8 music_is_playing(void); -void func_80001728(u8 arg0, u8 *arg1, u8 *arg2, u8 *arg3); -void func_80001784(u8 a0); -void sfxSetTempo(s32 tempo); -void func_80001844(void); -void func_80001878(u8 arg0); -u8 func_800018D0(void); -void func_800018E0(void); -u8 func_80001918(void); -u8 func_80001954(void); -u8 func_80001980(void); -void set_relative_volume_for_music(u8 vol); -void set_music_volume_slider(u32 slider_val); -u8 musicGetRelativeVolume(void); -s32 musicGetVolSliderPercentage(void); -void sfxSetRelativeVolume(u8 arg0); -void sfxSetPan(ALPan pan); -void play_sequence(u8 seqID); -u32 func_80001C08(void); -void set_all_channel_volume(u16 arg0); -u16 func_80001CB8(u16 soundId); -void play_sound_spatial(u16 soundID, f32 x, f32 y, f32 z, s32 **arg4); -void func_80001F14(u16 soundID, s32 *arg1); -u16 ALBankFile_80115D14_GetSoundCount(void); -u8 ALSeqFile_80115CF8_GetSeqCount(void); -void func_80002128(unk80115D18 **arg0, s32 *arg1, s32 *arg2); -void func_8000216C(unk80115D1C **arg0, s32 *arg1, s32 *arg2); -u8 ALBankFile_80115D14_GetSoundDecayTime(u16 soundID); -ALSeqPlayer *func_80002224(s32 _max_voices, s32 _max_events); -void func_800022BC(u8 arg0, ALSeqPlayer *arg1); -void func_80002570(ALSeqPlayer *seqp); -void func_80002608(u8 arg0); -u8 func_80002630(void); +void music_jingle_play_safe(u8 a0); +void sound_jingle_tempo_set(s32 tempo); +void music_stop(void); +u8 music_can_play(void); +void music_jingle_stop(void); +u8 music_current_sequence(void); +u8 music_jingle_current(void); +void music_volume_set(u8 volume); +void music_volume_config_set(u32 slider_val); +u8 music_volume(void); +s32 music_volume_config(void); +void music_jingle_volume_set(u8 arg0); +void music_jingle_pan_set(ALPan pan); +void music_jingle_play(u8 seqID); +u32 music_jingle_playing(void); +u16 sound_distance(u16 soundId); +void sound_play_spatial(u16 soundID, f32 x, f32 y, f32 z, s32 **arg4); +void func_80001F14(u16 soundID, s32 *soundMask); +u16 sound_count(void); +u8 music_sequence_count(void); +void sound_table_properties(SoundData **table, s32 *size, s32 *count); +u8 gSoundBank_GetSoundDecayTime(u16 soundID); +ALSeqPlayer *sound_seqplayer_init(s32 _max_voices, s32 _max_events); +void music_sequence_start(u8 arg0, ALSeqPlayer *arg1); +void music_sequence_stop(ALSeqPlayer *seqp); +void sound_reverb_set(u8 arg0); void alSeqFileNew(ALSeqFile *file, u8 *base); -void func_80063A90(ALSeqPlayer *seqp, u8 chan); -void func_80001FB8(u16 soundID, void *soundState, u8 volume); -void func_8000232C(ALSeqPlayer* arg0, void* arg1, u8* arg2, ALCSeq* arg3); - -void play_sound_global(u16 soundID, s32* soundMask); //Non matching. -f32 audio_get_chr_select_anim_frac(void); -void func_80009B7C(s32 *arg0, f32 x, f32 y, f32 z); // Non Matching +void func_80063A90(ALSeqPlayer *seqp, u8 channel); +void sound_volume_set_relative(u16 soundID, void *soundState, u8 volume); +void music_sequence_init(ALSeqPlayer* arg0, void* arg1, u8* arg2, ALCSeq* arg3); +void sound_play(u16 soundID, s32* soundMask); +f32 music_animation_fraction(void); +void func_80009B7C(s32 *SoundMask, f32 x, f32 y, f32 z); #endif diff --git a/src/audio_spatial.c b/src/audio_spatial.c index b4dd96ab..866c50be 100644 --- a/src/audio_spatial.c +++ b/src/audio_spatial.c @@ -16,7 +16,7 @@ /************ .data ************/ -u16 D_800DC6E0 = 0; +u16 gUsedMasks = 0; /*******************************/ @@ -38,7 +38,7 @@ UNUSED const char D_800E4EDC[] = "Reverb line definition error (line=%d, vertex= /************ .bss ************/ extern s8 D_8011AC18; -extern unk80115D18 *D_80119C40; +extern SoundData *D_80119C40; extern unk80119C58 D_80119C58[]; extern unk8011A6D8 D_8011A6D8[]; @@ -48,19 +48,19 @@ extern unk8011A6D8 D_8011A6D8[]; void func_80008040(void) { s32 var_v0; - func_80002128(&D_80119C40, NULL, NULL); - D_80119C48 = allocate_from_main_pool_safe(0x5A0, COLOUR_TAG_CYAN); - D_80119C50 = allocate_from_main_pool_safe(0xA0, COLOUR_TAG_CYAN); - D_80119C44 = allocate_from_main_pool_safe(0xA0, COLOUR_TAG_CYAN); - D_800DC6E0 = 0; + sound_table_properties(&D_80119C40, NULL, NULL); + gSoundMaskHeap = allocate_from_main_pool_safe(0x5A0, COLOUR_TAG_CYAN); + gSoundMaskHeapFree = allocate_from_main_pool_safe(0xA0, COLOUR_TAG_CYAN); + gSoundMaskHeapUsed = allocate_from_main_pool_safe(0xA0, COLOUR_TAG_CYAN); + gUsedMasks = 0; for (var_v0 = 0; var_v0 < 7; var_v0++) { D_80119C58[var_v0].unk4 = NULL; } for (var_v0 = 0; var_v0 < 10; var_v0++) { - D_80119C48[var_v0]->unk18 = 0; - D_80119C48[var_v0]->unk3C = 0; - D_80119C48[var_v0]->unk60 = 0; - D_80119C48[var_v0]->unk84 = 0; + gSoundMaskHeap[var_v0]->unk18 = 0; + gSoundMaskHeap[var_v0]->unk3C = 0; + gSoundMaskHeap[var_v0]->unk60 = 0; + gSoundMaskHeap[var_v0]->unk84 = 0; } func_80008174(); } @@ -69,7 +69,7 @@ GLOBAL_ASM("asm/non_matchings/audio_spatial/func_80008040.s") #endif void func_80008140(void) { - func_800018E0(); + music_jingle_stop(); D_8011AC18 = 1; } @@ -85,18 +85,18 @@ void func_80008174(void) { s32 i; s32 j; - for (D_80119C4C = 0; D_80119C4C < 40; D_80119C4C++) { - D_80119C50[D_80119C4C] = D_80119C48[D_80119C4C]; + for (gFreeMasks = 0; gFreeMasks < 40; gFreeMasks++) { + gSoundMaskHeapFree[gFreeMasks] = gSoundMaskHeap[gFreeMasks]; } - D_80119C4C--; + gFreeMasks--; - for (i = 0; i < D_800DC6E0; i++) { - D_80119C44[i]->unk12 = 0; - if (D_80119C44[i]->unk18 != NULL) { - func_8000488C(D_80119C44[i]->unk18); + for (i = 0; i < gUsedMasks; i++) { + gSoundMaskHeapUsed[i]->unk12 = 0; + if (gSoundMaskHeapUsed[i]->unk18 != NULL) { + func_8000488C(gSoundMaskHeapUsed[i]->unk18); } } - D_800DC6E0 = 0; + gUsedMasks = 0; for (i = 0; i < ARRAY_COUNT(D_80119C60); i++) { D_80119C58[i].unk16C = 0; @@ -104,7 +104,7 @@ void func_80008174(void) { if (D_80119C58[i].unk0.unk0_02 == 0) { func_8000488C(D_80119C58[i].unk178); } else if (D_80119C58[i].unk0.unk0_02 == 1) { - func_800018E0(); + music_jingle_stop(); } D_80119C58[i].unk178 = 0; } @@ -218,8 +218,8 @@ s32 func_800092A8(f32 inX, f32 inY, f32 inZ, floatXYZVals *floatXYZ, f32 *outX, * Play Sound at position */ void play_sound_at_position(u16 soundId, f32 x, f32 y, f32 z, u8 arg4, SoundMask **soundMask) { - func_8000974C(D_80119C40[soundId].unk0, x, y, z, arg4, D_80119C40[soundId].unk3, - D_80119C40[soundId].unk2, D_80119C40[soundId].unk6, 0, D_80119C40[soundId].unk4, + func_8000974C(D_80119C40[soundId].soundBite, x, y, z, arg4, D_80119C40[soundId].unk3, + D_80119C40[soundId].volume, D_80119C40[soundId].distance, 0, D_80119C40[soundId].pitch, D_80119C40[soundId].unk8, soundMask); } @@ -237,43 +237,43 @@ void update_spatial_audio_position(SoundMask *arg0, f32 x, f32 y, f32 z) { void func_800096F8(SoundMask *arg0) { s32 i; for (i = 0; i < 40; i++) { - if (arg0 == D_80119C44[i]) { + if (arg0 == gSoundMaskHeapUsed[i]) { func_8000A2E8(i); break; } } } -void func_8000974C(u16 soundId, f32 x, f32 y, f32 z, u8 arg4, u8 arg5, u8 arg6, u16 arg7, u8 arg8, u8 arg9, u8 argA, SoundMask **soundMask) { - SoundMask *temp_v0; +void func_8000974C(u16 soundBite, f32 x, f32 y, f32 z, u8 arg4, u8 arg5, u8 volume, u16 distance, u8 arg8, u8 pitch, u8 argA, SoundMask **soundMask) { + SoundMask *newMask; if (soundMask != NULL) { - func_800245B4(soundId | 0xE000); + func_800245B4(soundBite | 0xE000); } - if (D_800DC6E0 == 40) { + if (gUsedMasks == 40) { if (soundMask != NULL) { - *soundMask = 0; + *soundMask = NULL; } func_800245B4(0xAA55); return; } - temp_v0 = D_80119C50[D_80119C4C--]; - temp_v0->pos.x = x; - temp_v0->pos.y = y; - temp_v0->pos.z = z; - temp_v0->soundId = soundId; - temp_v0->unk11 = arg4; - temp_v0->unk10 = arg5; - temp_v0->unkE = arg6; - temp_v0->unkF = arg9; - temp_v0->unk14 = arg7; - temp_v0->unk20 = arg8; - temp_v0->unk21 = argA; - temp_v0->unk22 = 0; - temp_v0->soundMask = soundMask; - D_80119C44[D_800DC6E0++] = temp_v0; + newMask = gSoundMaskHeapFree[gFreeMasks--]; + newMask->pos.x = x; + newMask->pos.y = y; + newMask->pos.z = z; + newMask->soundId = soundBite; + newMask->unk11 = arg4; + newMask->unk10 = arg5; + newMask->volume = volume; + newMask->pitch = pitch; + newMask->distance = distance; + newMask->unk20 = arg8; + newMask->unk21 = argA; + newMask->unk22 = 0; + newMask->soundMask = soundMask; + gSoundMaskHeapUsed[gUsedMasks++] = newMask; if (soundMask != NULL) { - *soundMask = temp_v0; + *soundMask = newMask; } } @@ -420,7 +420,7 @@ void func_80009B7C(s32 *soundState, f32 x, f32 y, f32 z) { } } if (soundState != NULL) { - func_800049F8((s32) soundState, 0x100, (u32) volume); + sound_event_update((s32) soundState, 0x100, (u32) volume); } } #else @@ -457,18 +457,18 @@ GLOBAL_ASM("asm/non_matchings/audio_spatial/func_8000A184.s") #endif void func_8000A2E8(s32 arg0) { - if (D_800DC6E0 != 0) { - if (D_80119C44[arg0]->unk18 != 0) { - func_8000488C(D_80119C44[arg0]->unk18); + if (gUsedMasks != 0) { + if (gSoundMaskHeapUsed[arg0]->unk18 != 0) { + func_8000488C(gSoundMaskHeapUsed[arg0]->unk18); } - if (D_80119C44[arg0]->soundMask != NULL) { - *D_80119C44[arg0]->soundMask = NULL; - func_800245B4(D_80119C44[arg0]->soundId | 0x5000); + if (gSoundMaskHeapUsed[arg0]->soundMask != NULL) { + *gSoundMaskHeapUsed[arg0]->soundMask = NULL; + func_800245B4(gSoundMaskHeapUsed[arg0]->soundId | 0x5000); } - D_80119C4C++; - D_80119C50[D_80119C4C] = D_80119C44[arg0]; - D_80119C44[arg0] = D_80119C44[D_800DC6E0 - 1]; - D_800DC6E0--; + gFreeMasks++; + gSoundMaskHeapFree[gFreeMasks] = gSoundMaskHeapUsed[arg0]; + gSoundMaskHeapUsed[arg0] = gSoundMaskHeapUsed[gUsedMasks - 1]; + gUsedMasks--; } } diff --git a/src/audio_vehicle.c b/src/audio_vehicle.c index a09fb711..d6225a77 100644 --- a/src/audio_vehicle.c +++ b/src/audio_vehicle.c @@ -28,11 +28,11 @@ s32 D_800DC6D8 = 1; // Currently unknown, might be a different type. VehicleSoundData *D_80119C30[2]; VehicleSoundData *gRacerSound; Object_Racer *gSoundRacerObj; -unk80115D18 *D_80119C40; // This should be in audio_spatial? -SoundMask **D_80119C44; -unk80119C48 **D_80119C48; //0x24 struct size - 0x5A0 total size - should be 40 elements -u8 D_80119C4C; -SoundMask **D_80119C50; +SoundData *D_80119C40; // This should be in audio_spatial? +SoundMask **gSoundMaskHeapUsed; +unk80119C48 **gSoundMaskHeap; //0x24 struct size - 0x5A0 total size - should be 40 elements +u8 gFreeMasks; +SoundMask **gSoundMaskHeapFree; s32 D_80119C54; //Padding? unk80119C58 **D_80119C58; //Struct of size in func_8000A184 = 0x180 = 384 bytes | Ambient Sounds unk80119C58 **D_80119C5C; //Struct of size in func_8000A184 = 0x180 = 384 bytes Likely the same as above @@ -335,7 +335,7 @@ void func_80005254(Object *obj, u32 buttonsPressed, u32 buttonsHeld, s32 updateR sp6C = (((var_f20 * 0.5) / 12.0) + 0.5); temp_a0_4 = gRacerSound->unkA8; if (temp_a0_4 != 0) { - func_800049F8(temp_a0_4, 16, *((u32*) &sp6C)); + sound_event_update(temp_a0_4, 16, *((u32*) &sp6C)); } gRacerSound->unkAC = 110; gRacerSound->unkD0 = 0; @@ -347,9 +347,9 @@ void func_80005254(Object *obj, u32 buttonsPressed, u32 buttonsHeld, s32 updateR gRacerSound->unkD0 = 0; } if (gRacerSound->unkD0 >= 10) { - func_800049F8(gRacerSound->unkA8, 8, 0); + sound_event_update(gRacerSound->unkA8, 8, 0); } else { - func_800049F8(gRacerSound->unkA8, 8, gRacerSound->unkAC << 8); + sound_event_update(gRacerSound->unkA8, 8, gRacerSound->unkAC << 8); func_80009B7C((s32 *) gRacerSound->unkA8, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position); } } @@ -550,7 +550,7 @@ void func_800063EC(Object *obj, UNUSED u32 buttonsPressed, u32 buttonsHeld, s32 gRacerSound->unk54[1] = 0.0f; if ((gSoundRacerObj->playerIndex != PLAYER_COMPUTER) && (gSoundRacerObj->spinout_timer != 0) && !gRacerSound->brakeSound) { gRacerSound->brakeSound = TRUE; - play_sound_global(SOUND_UNK_13D, &gRacerSound->brakeSoundMask); + sound_play(SOUND_UNK_13D, &gRacerSound->brakeSoundMask); } else if (gSoundRacerObj->spinout_timer == 0) { gRacerSound->brakeSound = FALSE; if (gRacerSound->brakeSoundMask != NULL) { @@ -727,10 +727,10 @@ void func_80006FC8(Object **objs, s32 numRacers, ObjectSegment *segment, u8 arg3 sp8C = temp_f0_3 + ((((f32) gRacerSound->unk39 / 100.0f) - temp_f0_3) * temp_f20_2); if (gRacerSound->unk50 != NULL) { func_80009B7C((s32 *) gRacerSound->unk50, objs[loopCount1]->segment.trans.x_position, objs[loopCount1]->segment.trans.y_position, objs[loopCount1]->segment.trans.z_position); - func_800049F8(gRacerSound->unk50, 8, temp_s3 << 8); - func_800049F8(gRacerSound->unk50, 16, *((u32*) &sp8C)); + sound_event_update(gRacerSound->unk50, 8, temp_s3 << 8); + sound_event_update(gRacerSound->unk50, 16, *((u32*) &sp8C)); func_80004604(gRacerSound->unk50, 80); - func_800049F8(gRacerSound->unk50, 4, gRacerSound->unk91[0]); + sound_event_update(gRacerSound->unk50, 4, gRacerSound->unk91[0]); } } else if (gRacerSound->unk50 != NULL) { func_8000488C(gRacerSound->unk50); @@ -761,13 +761,13 @@ void func_80006FC8(Object **objs, s32 numRacers, ObjectSegment *segment, u8 arg3 } if (gRacerSound->unk48[loopCount2] != NULL) { func_80009B7C((s32 *) gRacerSound->unk48[loopCount2], objs[loopCount1]->segment.trans.x_position, objs[loopCount1]->segment.trans.y_position, objs[loopCount1]->segment.trans.z_position); - func_800049F8(gRacerSound->unk48[loopCount2], 8, temp_s3 << 8); - func_800049F8(gRacerSound->unk48[loopCount2], 16, *((u32*) &sp8C)); + sound_event_update(gRacerSound->unk48[loopCount2], 8, temp_s3 << 8); + sound_event_update(gRacerSound->unk48[loopCount2], 16, *((u32*) &sp8C)); func_80004604(gRacerSound->unk48[loopCount2], 80); if (arg3 != 1) { gRacerSound->unk91[0] = 64; } - func_800049F8(gRacerSound->unk48[loopCount2], 4, gRacerSound->unk91[0]); + sound_event_update(gRacerSound->unk48[loopCount2], 4, gRacerSound->unk91[0]); } } } @@ -893,12 +893,12 @@ void func_80006FC8(Object **objs, s32 numRacers, ObjectSegment *segment, u8 arg3 } if (temp->unk48[0] != NULL) { func_80009B7C((s32 *) temp->unk48[0], temp->racerPos.x, temp->racerPos.y, temp->racerPos.z); - func_800049F8(temp->unk48[0], 8, temp->unk88 << 8); - func_800049F8(temp->unk48[0], 16, *((u32*) &temp->unk8C)); + sound_event_update(temp->unk48[0], 8, temp->unk88 << 8); + sound_event_update(temp->unk48[0], 16, *((u32*) &temp->unk8C)); if (arg3 != 1) { temp->unk91[0] = 64; } - func_800049F8(temp->unk48[0], 4, temp->unk91[0]); + sound_event_update(temp->unk48[0], 4, temp->unk91[0]); func_80004604(temp->unk48[0], 70); } } diff --git a/src/audio_vehicle.h b/src/audio_vehicle.h index 45e09c46..8b45cd84 100644 --- a/src/audio_vehicle.h +++ b/src/audio_vehicle.h @@ -132,11 +132,11 @@ typedef struct unkAudioAsset { extern u8 gVehicleSounds; extern s32 D_800DC6D8; extern s32 D_800DC6DC; -extern u16 D_800DC6E0; -extern unk80119C48 **D_80119C48; -extern SoundMask **D_80119C44; -extern SoundMask **D_80119C50; -extern u8 D_80119C4C; +extern u16 gUsedMasks; +extern unk80119C48 **gSoundMaskHeap; +extern SoundMask **gSoundMaskHeapUsed; +extern SoundMask **gSoundMaskHeapFree; +extern u8 gFreeMasks; void racer_sound_update(Object* obj, u32 buttonsPressed, u32 carInput, s32 updateRate); diff --git a/src/audiosfx.c b/src/audiosfx.c index c8b44bce..0fa7b90b 100644 --- a/src/audiosfx.c +++ b/src/audiosfx.c @@ -10,7 +10,7 @@ #include "objects.h" #include "PR/libaudio.h" -ALEventQueue *D_800DC6B0 = NULL; +ALSoundState *D_800DC6B0 = NULL; s32 D_800DC6B4 = 0; // Currently unknown, might be a different type. unk800DC6BC_40 *D_800DC6B8 = NULL; // Set but not used. unk800DC6BC gAlSndPlayer; @@ -44,6 +44,9 @@ void set_sound_channel_count(s32 numChannels) { } } +/** + * Initialise a sound player and ready it for use with the sound event system. +*/ void alSndPNew(audioMgrConfig *c) { u32 i; unk800DC6BC_40 *tmp1; @@ -148,8 +151,8 @@ static void _removeEvents(ALEventQueue *evtq, ALSoundState *state, u16 eventType thisNode = evtq->allocList.next; while( thisNode != 0 ) { nextNode = thisNode->next; - thisItem = (ALEventListItem *)thisNode; - nextItem = (ALEventListItem *)nextNode; + thisItem = (ALEventListItem *) thisNode; + nextItem = (ALEventListItem *) nextNode; thisEvent = (ALSndpEvent *) &thisItem->evt; if (thisEvent->common.state == state && (u16)thisEvent->msg.type & eventType){ if( nextItem ) @@ -171,13 +174,13 @@ u16 func_800042CC(u16 *lastAllocListIndex, u16 *lastFreeListIndex) { ALLink *nextAllocList; ALLink *nextFreeList; ALLink *prevFreeList; - ALEventQueue *queue; + ALSoundState *queue; mask = osSetIntMask(OS_IM_NONE); - queue = (ALEventQueue *) &D_800DC6B0; //D_800DC6B0 could be a different type? - nextFreeList = queue->freeList.next; - nextAllocList = queue->allocList.next; - prevFreeList = queue->freeList.prev; + queue = (ALSoundState *) &D_800DC6B0; + nextFreeList = (ALLink *) queue->next; + nextAllocList = (ALLink *) queue->unk8; + prevFreeList = (ALLink *) queue->prev; for (freeListNextIndex = 0; nextFreeList != 0; freeListNextIndex++) { nextFreeList = (ALLink *) nextFreeList->next; @@ -213,12 +216,12 @@ UNUSED u8 func_8000461C(u8 *arg0) { return 0; } -s32 func_80004638(ALBank *bnk, s16 sndIndx, s32 arg2) { - return func_80004668(bnk, sndIndx, 0, arg2); +s32 func_80004638(ALBank *bnk, s16 sndIndx, SoundMask *soundMask) { + return func_80004668(bnk, sndIndx, 0, soundMask); } #ifdef NON_EQUIVALENT -s32 func_80004668(ALBank *bnk, s16 sndIndx, u8 arg2, s32 arg3) { +s32 func_80004668(ALBank *bnk, s16 sndIndx, u8 arg2, SoundMask *soundMask) { } #else GLOBAL_ASM("asm/non_matchings/audiosfx/func_80004668.s") @@ -237,25 +240,48 @@ void func_8000488C(u8 *arg0) { } } -GLOBAL_ASM("asm/non_matchings/audiosfx/func_800048D8.s") +void func_800048D8(u8 event) { + u32 intMask; + ALEvent evt; + ALSoundState *queue; + + intMask = osSetIntMask(OS_IM_NONE); + queue = D_800DC6B0; + while (queue != NULL) { + evt.type = AL_SNDP_UNK_10_EVT; + evt.msg.end.ticks = (s32) queue; // TODO: find the correct value for this. + if ((queue->unk3E & event) == event) { + queue->unk3E &= ~AL_SNDP_PITCH_EVT; + alEvtqPostEvent(&gAlSndPlayerPtr->evtq, &evt, 0); + } + queue = (ALSoundState *) queue->next; + } + osSetIntMask(intMask); +} UNUSED void func_80004998(void) { - func_800048D8(1); + func_800048D8(AL_SNDP_PLAY_EVT); } UNUSED void func_800049B8(void) { - func_800048D8(17); + func_800048D8(AL_SNDP_PLAY_EVT | AL_SNDP_PITCH_EVT); } -void func_800049D8(void) { - func_800048D8(3); +/** + * Stops all sounds from playing. +*/ +void sound_stop_all(void) { + func_800048D8(AL_SNDP_PLAY_EVT | AL_SNDP_STOP_EVT); } -void func_800049F8(s32 soundMask, s16 type, u32 volume) { +/** + * Send a message to the sound player to update an existing property of the sound entry. +*/ +void sound_event_update(s32 soundMask, s16 type, u32 volume) { ALEvent2 sndEvt; sndEvt.snd_event.type = type; sndEvt.snd_event.state = (void *) soundMask; - sndEvt.snd_event.unk04 = volume; + sndEvt.snd_event.param = volume; if (soundMask) { alEvtqPostEvent(&(gAlSndPlayerPtr->evtq), (ALEvent *) &sndEvt, 0); } @@ -281,7 +307,7 @@ void set_sound_channel_volume(u8 channel, u16 volume) { ALEvent evt; mask = osSetIntMask(OS_IM_NONE); - queue = D_800DC6B0; + queue = (ALEventQueue *) D_800DC6B0; gSoundChannelVolume[channel] = volume; while (queue != NULL) { diff --git a/src/audiosfx.h b/src/audiosfx.h index 56f867ee..dca5b5e9 100644 --- a/src/audiosfx.h +++ b/src/audiosfx.h @@ -7,6 +7,7 @@ #include "asset_enums.h" #include "libultra_internal.h" #include "sched.h" +#include "structs.h" #define AL_SNDP_PLAY_EVT (1 << 0) #define AL_SNDP_STOP_EVT (1 << 1) @@ -22,7 +23,9 @@ #define AL_SNDP_UNK_11_EVT (1 << 11) typedef struct { - /* 0x00 */ s8 pad00[0x0C]; + struct ALSoundState *next; + struct ALSoundState *prev; + struct ALSoundState *unk8; /* 0x0C */ ALVoice voice; ALSound *sound; /* sound referenced here */ s16 priority; @@ -72,8 +75,8 @@ typedef union { struct{ s16 type; - void* state; - u32 unk04; + SoundMask *state; + u32 param; }snd_event; } ALEvent2; @@ -121,6 +124,13 @@ typedef struct audioMgrConfig_s{ u16 unk10; // Heap Size? } audioMgrConfig; +typedef struct AudQueueCustom { + ALEventQueue alQ; + struct TempAud *next; + u8 unk0[0x26]; + u8 unk3E; +} AudQueueCustom; + extern void *alHeapDBAlloc(u8 *file, s32 line, ALHeap *hp, s32 num, s32 size); //lib/src/al extern void alEvtqNew(ALEventQueue *evtq, ALEventListItem *items, s32 itemCount); //lib/src/unknown_0C9C90.c extern ALMicroTime alEvtqNextEvent(ALEventQueue *evtq, ALEvent *evt); //lib/src/unknown_0C9C90.c @@ -135,18 +145,18 @@ ALMicroTime _sndpVoiceHandler(void *node); void func_8000410C(ALSoundState *state); u16 func_800042CC(u16 *lastAllocListIndex, u16 *lastFreeListIndex); void func_80004604(u8 *arg0, u8 arg1); -s32 func_80004638(ALBank *bnk, s16 sndIndx, s32 arg2); -void func_800049D8(void); -void func_800049F8(s32 soundMask, s16 type, u32 volume); +s32 func_80004638(ALBank *bnk, s16 sndIndx, SoundMask *soundMask); +void sound_stop_all(void); +void sound_event_update(s32 soundMask, s16 type, u32 volume); u16 get_sound_channel_volume(u8 channel); void set_sound_channel_volume(u8 channel, u16 volume); void func_8000418C(ALVoiceState *voiceState); +void func_800048D8(u8 event); // Non Matching void func_80004520(ALSoundState *); -s32 func_80004668(ALBank *bnk, s16 sndIndx, u8, s32); +s32 func_80004668(ALBank *bnk, s16 sndIndx, u8, SoundMask *soundMask); INCONSISTENT void func_8000488C(); -void func_800048D8(s32); void _handleEvent(unk800DC6BC *sndp, ALSndpEvent *event); #endif diff --git a/src/camera.c b/src/camera.c index 61044455..457dcd36 100644 --- a/src/camera.c +++ b/src/camera.c @@ -95,7 +95,7 @@ Matrix gOrthoMatrixF = { { 0.0f, 0.0f, 0.0f, 160.0f }, }; -u8 D_800DD2F8[8] = { +u8 gCameraZoomLevels[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -132,7 +132,7 @@ Matrix gProjectionMatrixF; MatrixS gProjectionMatrixS; UNUSED MatrixS gUnusedProjectionMatrixS; // Copied to the same way as gProjectionMatrixS, but not actually used. Matrix gCurrentModelMatrixF; -Matrix D_801210A0; +Matrix gCurrentModelMatrixS; /******************************/ @@ -151,7 +151,7 @@ void camera_init(void) { for (j = 0; j < 8; j++) { gActiveCameraID = j; - func_800663DC(200, 200, 200, 0, 0, 180); + camera_reset(200, 200, 200, 0, 0, 180); } gCutsceneCameraActive = FALSE; @@ -179,10 +179,10 @@ void camera_init(void) { GLOBAL_ASM("asm/non_matchings/camera/camera_init.s") #endif -void func_80066060(s32 arg0, s32 arg1) { - if (arg0 >= 0 && arg0 < 4) { - D_800DD2F8[arg0] = arg1; - gCameraSegment[arg0].object.animationID = arg1; +void func_80066060(s32 cameraID, s32 zoomLevel) { + if (cameraID >= 0 && cameraID < 4) { + gCameraZoomLevels[cameraID] = zoomLevel; + gCameraSegment[cameraID].object.animationID = zoomLevel; } } @@ -232,8 +232,11 @@ UNUSED void calculate_camera_perspective(void) { f32_matrix_to_s16_matrix(&gPerspectiveMatrixF, &gProjectionMatrixS); } -UNUSED Matrix *func_80066204(void) { - return &D_801210A0; +/** + * Return the current fixed point model matrix. +*/ +UNUSED Matrix *matrix_get_model_s16(void) { + return &gCurrentModelMatrixS; } /** @@ -251,7 +254,10 @@ s32 get_current_viewport(void) { return gActiveCameraID; } -void func_80066230(Gfx **dlist, MatrixS **mats) { +/** + * Initialises the camera object for the tracks menu. +*/ +void camera_init_tracks_menu(Gfx **dList, MatrixS **mtxS) { ObjectSegment *cam; s16 angleY; s16 angleX; @@ -279,7 +285,7 @@ void func_80066230(Gfx **dlist, MatrixS **mats) { cam->trans.y_position = 0.0f; cam->trans.z_position = 0.0f; update_envmap_position(0.0f, 0.0f, -1.0f); - func_80066CDC(dlist, mats); + func_80066CDC(dList, mtxS); cam->camera.unk38 = sp24; cam->trans.y_rotation = angleY; cam->trans.x_rotation = angleX; @@ -308,20 +314,24 @@ f32 get_distance_to_active_camera(f32 xPos, f32 yPos, f32 zPos) { return sqrtf((dz * dz) + ((dx * dx) + (dy * dy))); } -void func_800663DC(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5) { - gCameraSegment[gActiveCameraID].trans.z_rotation = (s16) (arg3 * 0xB6); +/** + * Sets the position and angle of the active camera. + * Also sets the other properties of the camera to a default. +*/ +void camera_reset(s32 xPos, s32 yPos, s32 zPos, s32 angleZ, s32 angleX, s32 angleY) { + gCameraSegment[gActiveCameraID].trans.z_rotation = (s16) (angleZ * 0xB6); gCameraSegment[gActiveCameraID].trans.x_position = (f32) xPos; gCameraSegment[gActiveCameraID].trans.y_position = (f32) yPos; gCameraSegment[gActiveCameraID].trans.z_position = (f32) zPos; - gCameraSegment[gActiveCameraID].trans.x_rotation = (s16) (arg4 * 0xB6); - gCameraSegment[gActiveCameraID].camera.unk38 = (s16) 0; + gCameraSegment[gActiveCameraID].trans.x_rotation = (s16) (angleX * 0xB6); + gCameraSegment[gActiveCameraID].camera.unk38 = 0; gCameraSegment[gActiveCameraID].z_velocity = 0.0f; gCameraSegment[gActiveCameraID].unk28 = 0.0f; gCameraSegment[gActiveCameraID].camera.unk2C = 0.0f; gCameraSegment[gActiveCameraID].camera.distanceToCamera = 0.0f; gCameraSegment[gActiveCameraID].x_velocity = 160.0f; - gCameraSegment[gActiveCameraID].trans.y_rotation = (s16) (arg5 * 0xB6); - gCameraSegment[gActiveCameraID].object.animationID = D_800DD2F8[gActiveCameraID]; + gCameraSegment[gActiveCameraID].trans.y_rotation = (s16) (angleY * 0xB6); + gCameraSegment[gActiveCameraID].object.animationID = gCameraZoomLevels[gActiveCameraID]; } /** @@ -493,7 +503,7 @@ s32 check_viewport_background_flag(s32 viewPortIndex) { * Sets the intended viewport to the size passed through by arguments. * Official Name: camSetUserView */ -void resize_viewport(s32 viewPortIndex, s32 x1, s32 y1, s32 x2, s32 y2) { +void viewport_menu_set(s32 viewPortIndex, s32 x1, s32 y1, s32 x2, s32 y2) { s32 widthAndHeight, width, height; s32 temp; @@ -619,6 +629,7 @@ UNUSED void copy_framebuffer_size_to_coords(s32 *x1, s32 *y1, s32 *x2, s32 *y2) } #ifdef NON_EQUIVALENT +// viewport_main //Alternative attempt: https://decomp.me/scratch/rcJYo // Still a work-in-progress but it doesn't seem to cause any problems, // which is why it is labeled under NON_EQUIVALENT @@ -661,7 +672,7 @@ void func_80066CDC(Gfx **dlist, MatrixS **mats) { gScreenViewports[gActiveCameraID].scissorX2, gScreenViewports[gActiveCameraID].scissorY2 ); - func_80068158(dlist, 0, 0, 0, 0); + viewport_rsp_set(dlist, 0, 0, 0, 0); gActiveCameraID = tempCameraID; if (mats != 0) { func_80067D3C(dlist, mats); @@ -761,7 +772,7 @@ void func_80066CDC(Gfx **dlist, MatrixS **mats) { if (osTvType == TV_TYPE_PAL) { posX -= 4; } - func_80068158(dlist, sp54_x, sp58_y, posX, posY); + viewport_rsp_set(dlist, sp54_x, sp58_y, posX, posY); if (mats != NULL) { func_80067D3C(dlist, mats); } @@ -772,10 +783,10 @@ GLOBAL_ASM("asm/non_matchings/camera/func_80066CDC.s") #endif /** - * Takes the size of the screen as depicted by an active screen viewport, then sets the RDP scissor to match it. + * Takes the size of the screen as depicted by the active menu viewport, then sets the RDP scissor to match it. * Official Name: camSetScissor */ -void set_viewport_scissor(Gfx **dlist) { +void viewport_scissor(Gfx **dlist) { s32 size; s32 lrx; s32 lry; @@ -807,58 +818,52 @@ void set_viewport_scissor(Gfx **dlist) { temp4 = lrx >> 1; temp3 = lry >> 1; switch (numViewports) { + case 1: + switch (gActiveCameraID) { + case 0: + lry = temp3 - temp; + break; + default: + uly = temp3 + temp; + lry -= temp; + break; + } + break; + case 2: + switch (gActiveCameraID) { + case 0: + lrx = temp4 - temp2; + break; + default: + ulx = temp4 + temp2; + lrx -= temp2; + break; + } + break; + case 3: + switch (gActiveCameraID) { + case 0: + lrx = temp4 - temp2;\ + lry = temp3 - temp; + break; case 1: - switch (gActiveCameraID) { - case 0: - lry = temp3 - temp; - break; - default: - uly = temp3 + temp; - lry -= temp; - break; - } + ulx = temp4 + temp2; + lrx -= temp2; + lry = temp3 - temp; break; - case 2: - switch (gActiveCameraID) { - case 0: - lrx = temp4 - temp2; - break; - - default: - ulx = temp4 + temp2; - lrx -= temp2; - break; - } + uly = temp3 + temp; + lrx = temp4 - temp2;\ + lry -= temp; break; - case 3: - switch (gActiveCameraID) { - case 0: - lrx = temp4 - temp2;\ - lry = temp3 - temp; - break; - - case 1: - ulx = temp4 + temp2; - lrx -= temp2; - lry = temp3 - temp; - break; - - case 2: - uly = temp3 + temp; - lrx = temp4 - temp2;\ - lry -= temp; - break; - - case 3: - ulx = temp4 + temp2; \ - uly = temp3 + temp; - lrx -= temp2; \ - lry -= temp; - break; - } + ulx = temp4 + temp2; \ + uly = temp3 + temp; + lrx -= temp2; \ + lry -= temp; break; + } + break; } gDPSetScissor((*dlist)++, 0, ulx, uly, lrx, lry); return; @@ -961,8 +966,12 @@ void func_8006807C(Gfx **dlist, MatrixS **mtx) { gMatrixType = G_MTX_DKR_INDEX_0; } -//Official Name: camSetViewport? -void func_80068158(Gfx **dlist, s32 width, s32 height, s32 posX, s32 posY) { +/** + * Sets the RSP viewport onscreen to the given properties. + * Viewports have a centre position and a scale factor, rather than a standard four corners. + * Official Name: camSetViewport +*/ +void viewport_rsp_set(Gfx **dlist, s32 width, s32 height, s32 posX, s32 posY) { s32 tempWidth = (get_filtered_cheats() & CHEAT_MIRRORED_TRACKS) ? -width : width; // Antipiracy measure. Flips the screen upside down. if (gAntiPiracyViewport) { @@ -980,8 +989,12 @@ void func_80068158(Gfx **dlist, s32 width, s32 height, s32 posX, s32 posY) { } } -//Official Name: camResetView? -void func_800682AC(Gfx **dlist) { +/** + * Resets the viewport back to default. + * If in the track menu, or post-race, set it to a small screen view instead. + * Official Name: camResetView? +*/ +void viewport_reset(Gfx **dlist) { u32 widthAndHeight, width, height; gActiveCameraID = 4; widthAndHeight = get_video_width_and_height_as_s32(); @@ -989,16 +1002,20 @@ void func_800682AC(Gfx **dlist) { width = GET_VIDEO_WIDTH(widthAndHeight); if (!(gScreenViewports[gActiveCameraID].flags & VIEWPORT_EXTRA_BG)) { gDPSetScissor((*dlist)++, G_SC_NON_INTERLACE, 0, 0, width - 1, height - 1); - func_80068158(dlist, width >> 1, height >> 1, width >> 1, height >> 1); + viewport_rsp_set(dlist, width >> 1, height >> 1, width >> 1, height >> 1); } else { - set_viewport_scissor(dlist); - func_80068158(dlist, 0, 0, 0, 0); + viewport_scissor(dlist); + viewport_rsp_set(dlist, 0, 0, 0, 0); } gActiveCameraID = 0; } -//Official Name: camOffsetZero? -void func_80068408(Gfx **dlist, MatrixS **mtx) { +/** + * Sets the matrix position to the world origin (0, 0, 0) + * Used when the next thing rendered relies on there not being any matrix offset. + * Official Name: camOffsetZero? +*/ +void matrix_world_origin(Gfx **dlist, MatrixS **mtx) { f32_matrix_from_position(gModelMatrixF[gModelMatrixStackPos], 0.0f, 0.0f, 0.0f); f32_matrix_mult(gModelMatrixF[gModelMatrixStackPos], &gViewMatrixF, &gCurrentModelMatrixF); f32_matrix_to_s16_matrix(&gCurrentModelMatrixF, *mtx); @@ -1080,7 +1097,7 @@ s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Obj v->x = obj->segment.trans.x_position; v->y = obj->segment.trans.y_position; v->z = obj->segment.trans.z_position; - v->r = 255; + v->r = 255; // These don't actually do anything since vertex colours are disabled anyway. v->g = 255; v->b = 255; v->a = 255; @@ -1138,7 +1155,7 @@ void render_ortho_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, Objec temp_v1->x = segment->trans.x_position; temp_v1->y = segment->trans.y_position; temp_v1->z = segment->trans.z_position; - temp_v1->r = 255; + temp_v1->r = 255; // These don't actually do anything since vertex colours are disabled anyway. temp_v1->g = 255; temp_v1->b = 255; temp_v1->a = 255; @@ -1245,8 +1262,8 @@ void apply_object_shear_matrix(Gfx **dList, MatrixS **mtx, Object *arg2, Object matrix_mult[3][2] = (((-sinsf_y_arg3 * cossf_z_arg3) + (sinsf_z_arg3 * (sinsf_x_arg3 * cossf_y_arg3))) * arg2_xPos) + (arg2_yPos * ((-sinsf_z_arg3 * -sinsf_y_arg3) + (cossf_z_arg3 * (sinsf_x_arg3 * cossf_y_arg3)))) + (arg2_zPos * (cossf_x_arg3 * cossf_y_arg3)) + arg3_zPos; matrix_mult[3][3] = 1.0f; - f32_matrix_mult(&matrix_mult, &gViewMatrixF, &D_801210A0); - f32_matrix_to_s16_matrix(&D_801210A0, *mtx); + f32_matrix_mult(&matrix_mult, &gViewMatrixF, &gCurrentModelMatrixS); + f32_matrix_to_s16_matrix(&gCurrentModelMatrixS, *mtx); gSPMatrix((*dList)++, OS_PHYSICAL_TO_K0((*mtx)++), G_MTX_DKR_INDEX_1); } @@ -1268,8 +1285,8 @@ void camera_push_model_mtx(Gfx **dList, MatrixS **mtx, ObjectTransform *trans, f f32_matrix_scale(&gCurrentModelMatrixF, scale); } f32_matrix_mult(&gCurrentModelMatrixF, gModelMatrixF[gModelMatrixStackPos], gModelMatrixF[gModelMatrixStackPos + 1]); - f32_matrix_mult(gModelMatrixF[gModelMatrixStackPos + 1], &gViewMatrixF, &D_801210A0); - f32_matrix_to_s16_matrix(&D_801210A0, *mtx); + f32_matrix_mult(gModelMatrixF[gModelMatrixStackPos + 1], &gViewMatrixF, &gCurrentModelMatrixS); + f32_matrix_to_s16_matrix(&gCurrentModelMatrixS, *mtx); gModelMatrixStackPos++; gModelMatrixS[0, gModelMatrixStackPos] = *mtx; // Should be [gModelMatrixStackPos], but only matches with [0, gModelMatrixStackPos] if (1) { } if (1) { } if (1) { }; // Fakematch @@ -1340,7 +1357,7 @@ void apply_head_turning_matrix(Gfx **dlist, MatrixS **mtx, Object_68 *objGfx, s1 headMtxF[3][1] = (-f_unk16 * (coss_headAngle * sins_unk1C)) + (-f_unk18 * coss_unk1C) + (-f_unk1A * (sins_headAngle * sins_unk1C)) + f_unk18; headMtxF[3][2] = (-f_unk16 * -sins_headAngle) + (-f_unk1A * coss_headAngle) + f_unk1A; headMtxF[3][3] = 1.0f; - f32_matrix_mult(&headMtxF, &D_801210A0, &rotationMtxF); + f32_matrix_mult(&headMtxF, &gCurrentModelMatrixS, &rotationMtxF); f32_matrix_to_s16_matrix(&rotationMtxF, *mtx); gSPMatrix((*dlist)++, OS_PHYSICAL_TO_K0((*mtx)++), G_MTX_DKR_INDEX_2); gDkrInsertMatrix((*dlist)++, G_MWO_MATRIX_XX_XY_I, G_MTX_DKR_INDEX_1); diff --git a/src/camera.h b/src/camera.h index f30f2fb8..c8e49f51 100644 --- a/src/camera.h +++ b/src/camera.h @@ -85,12 +85,12 @@ void func_800660C0(void); void func_800660D0(void); UNUSED f32 get_current_camera_fov(void); void update_camera_fov(f32 camFieldOfView); -Matrix *func_80066204(void); +Matrix *matrix_get_model_s16(void); s32 get_viewport_count(void); s32 get_current_viewport(void); -void func_80066230(Gfx **dlist, MatrixS **arg1); +void camera_init_tracks_menu(Gfx **dlist, MatrixS **arg1); f32 get_distance_to_active_camera(f32 xPos, f32 yPos, f32 zPos); -void func_800663DC(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5); +void camera_reset(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5); void write_to_object_render_stack(s32 arg0, f32 xPos, f32 yPos, f32 zPos, s16 arg4, s16 arg5, s16 arg6); void disable_cutscene_camera(void); s8 check_if_showing_cutscene_camera(void); @@ -99,7 +99,7 @@ void set_active_camera(s32 arg0); void camEnableUserView(s32 viewPortIndex, s32 arg1); void camDisableUserView(s32 viewPortIndex, s32 arg1); s32 check_viewport_background_flag(s32 viewPortIndex); -void resize_viewport(s32 viewPortIndex, s32 x1, s32 y1, s32 x2, s32 y2); +void viewport_menu_set(s32 viewPortIndex, s32 x1, s32 y1, s32 x2, s32 y2); void set_viewport_properties(s32 viewPortIndex, s32 x1, s32 x2, s32 y1, s32 y2); s32 copy_viewport_background_size_to_coords(s32 viewPortIndex, s32 *x1, s32 *y1, s32 *x2, s32 *y2); void copy_viewport_frame_size_to_coords(s32 viewPortIndex, s32 *x1, s32 *y1, s32 *x2, s32 *y2); @@ -107,9 +107,9 @@ void copy_framebuffer_size_to_coords(s32 *x1, s32 *y1, s32 *x2, s32 *y2); void set_ortho_matrix_height(f32 value); void set_ortho_matrix_view(Gfx **dlist, MatrixS **mats); void func_8006807C(Gfx **dlist, MatrixS **mats); -void func_80068158(Gfx **dlist, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -void func_800682AC(Gfx **dlist); -void func_80068408(Gfx **dlist, MatrixS **mats); +void viewport_rsp_set(Gfx **dlist, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void viewport_reset(Gfx **dlist); +void matrix_world_origin(Gfx **dlist, MatrixS **mats); void func_80068508(s32 bool); ObjectSegment *get_active_camera_segment_no_cutscenes(void); ObjectSegment *get_active_camera_segment(void); @@ -124,7 +124,7 @@ void func_80067D3C(Gfx **dlist, MatrixS **mats); void render_ortho_triangle_image(Gfx **dList, MatrixS **mtx, Vertex **vtx, ObjectSegment *segment, Sprite *sprite, s32 flags); s32 render_sprite_billboard(Gfx **dlist, MatrixS **mtx, Vertex **vertexList, Object *obj, unk80068514_arg4 *arg4, s32 flags); void camera_push_model_mtx(Gfx **arg0, MatrixS **arg1, ObjectTransform *arg2, f32 scale, f32 scaleY); -void set_viewport_scissor(Gfx **dlist); +void viewport_scissor(Gfx **dlist); void apply_matrix_from_stack(Gfx **dlist); void copy_viewports_to_stack(void); void apply_head_turning_matrix(Gfx **dlist, MatrixS **mtx, Object_68 *obj68, s16 headAngle); diff --git a/src/font.c b/src/font.c index 6cbd95a4..39b9e21b 100644 --- a/src/font.c +++ b/src/font.c @@ -431,7 +431,7 @@ void render_text_string(Gfx **dList, DialogueBoxBackground *box, char *text, Ali box->ypos = ypos - box->textOffsetY; gDPPipeSync((*dList)++); if (box != gDialogueBoxBackground) { - set_viewport_scissor(dList); + viewport_scissor(dList); } reset_render_settings(dList); gDPPipeSync((*dList)++); diff --git a/src/game.c b/src/game.c index 214b6e37..8ec3958c 100644 --- a/src/game.c +++ b/src/game.c @@ -53,8 +53,8 @@ u8 gTwoPlayerAdvRace = FALSE; s32 gIsInRace = 0; // Updated automatically from calc_func_checksums.py -s32 gFunc80068158Checksum = 0x585E; -s32 gFunc80068158Length = 0x154; +s32 gViewportFuncChecksum = 0x585E; +s32 gViewportFuncLength = 0x154; s16 gLevelPropertyStackPos = 0; s16 D_800DD32C = 0; s8 D_800DD330 = 0; @@ -143,10 +143,10 @@ void init_level_globals(void) { free_from_memory_pool(gTempAssetTable); // Antipiracy measure checksumCount = 0; - for (j = 0; j < gFunc80068158Length; j++) { - checksumCount += ((u8 *) (&func_80068158))[j]; + for (j = 0; j < gViewportFuncLength; j++) { + checksumCount += ((u8 *) (&viewport_rsp_set))[j]; } - if (checksumCount != gFunc80068158Checksum) { + if (checksumCount != gViewportFuncChecksum) { disable_button_mask(); } } @@ -496,8 +496,8 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl if (numPlayers && gCurrentLevelHeader->race_type != RACETYPE_CUTSCENE_2) { gCurrentLevelHeader->race_type = RACETYPE_CUTSCENE_1; } - set_music_player_voice_limit(gCurrentLevelHeader->voiceLimit); - func_80000CBC(); + music_voicelimit_set(gCurrentLevelHeader->voiceLimit); + music_volume_reset(); setup_lights(32); var_s0 = VEHICLE_CAR; if (vehicleId >= VEHICLE_CAR && vehicleId < NUMBER_OF_PLAYER_VEHICLES) { @@ -578,7 +578,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl settings->courseId = levelId; if (gCurrentLevelHeader->weatherEnable > 0) { func_800AB4A8(gCurrentLevelHeader->weatherType, gCurrentLevelHeader->weatherEnable, gCurrentLevelHeader->weatherVelX << 8, gCurrentLevelHeader->weatherVelY << 8, gCurrentLevelHeader->weatherVelZ << 8, gCurrentLevelHeader->weatherIntensity * 257, gCurrentLevelHeader->weatherOpacity * 257); - set_weather_limits(-1, -0x200); + set_weather_limits(-1, -512); } if (gCurrentLevelHeader->skyDome == -1) { gCurrentLevelHeader->unkA4 = load_texture((s32) gCurrentLevelHeader->unkA4); @@ -600,10 +600,10 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl */ void start_level_music(f32 tempo) { if (gCurrentLevelHeader->music != SEQUENCE_NONE) { - func_800012E8(); - play_music(gCurrentLevelHeader->music); - multiply_music_tempo(tempo); - func_80001074(gCurrentLevelHeader->instruments); + music_channel_reset_all(); + music_play(gCurrentLevelHeader->music); + music_tempo_set_relative(tempo); + music_dynamic_set(gCurrentLevelHeader->instruments); } } @@ -644,7 +644,6 @@ char *get_level_name(s32 levelId) { u8 numberOfNullPointers = 0; if (levelId < 0 || levelId >= gNumberOfLevelHeaders) { - stubbed_printf("AITABLE Error: Table out of range\n"); return NULL; } @@ -682,14 +681,14 @@ void clear_audio_and_track(void) { free_ai_behaviour_table(); set_background_prim_colour(0, 0, 0); free_from_memory_pool(gCurrentLevelHeader); - func_800049D8(); - func_80001844(); - func_800018E0(); - func_800012E8(); + sound_stop_all(); + music_stop(); + music_jingle_stop(); + music_channel_reset_all(); free_lights(); free_track(); func_80008174(); - adjust_audio_volume(VOLUME_NORMAL); + sound_volume_change(VOLUME_NORMAL); if (gCurrentLevelHeader->weatherEnable > 0) { free_weather_memory(); } @@ -706,7 +705,7 @@ void clear_audio_and_track(void) { void set_ai_level(s8 *aiLevelTable) { s32 temp; UNUSED s32 temp2; - s16 phi_v1; + s16 tableIndexCount; s8 aiLevel; Settings *settings; @@ -737,12 +736,13 @@ void set_ai_level(s8 *aiLevelTable) { aiLevel = 5; } gTempAssetTable = (s32 *) load_asset_section_from_rom(ASSET_AI_BEHAVIOUR_TABLE); - phi_v1 = 0; - while (-1 != (s32) gTempAssetTable[phi_v1]) { - phi_v1++; + tableIndexCount = 0; + while (-1 != (s32) gTempAssetTable[tableIndexCount]) { + tableIndexCount++; } - phi_v1--; - if (aiLevel >= phi_v1) { + tableIndexCount--; + if (aiLevel >= tableIndexCount) { + stubbed_printf("AITABLE Error: Table out of range\n"); aiLevel = 0; } temp2 = gTempAssetTable[aiLevel]; diff --git a/src/game_ui.c b/src/game_ui.c index f3ba3bab..57353f22 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -349,11 +349,11 @@ void init_hud(UNUSED s32 viewportCount) { set_sound_channel_volume(0, 32767); set_sound_channel_volume(2, 32767); for(i = 0; i < 2; i++){ - D_800E2770[i].unk2 = 0; + D_800E2770[i].volume = 0; D_800E2770[i].unk3 = 0; - D_800E2770[i].unkC = -1; - if (D_800E2770[i].unk4 != 0) { - func_8000488C(D_800E2770[i].unk4); + D_800E2770[i].playerIndex = PLAYER_COMPUTER; + if (D_800E2770[i].soundMask) { + func_8000488C(D_800E2770[i].soundMask); } } } @@ -437,7 +437,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s if (gHUDNumPlayers == ONE_PLAYER) { if (get_buttons_pressed_from_player(D_80126D10) & D_CBUTTONS && racer->raceFinished == FALSE && ((gHudLevelHeader->race_type == RACETYPE_DEFAULT) || gHudLevelHeader->race_type == RACETYPE_HORSESHOE_GULCH) && D_80126D34) { gShowCourseDirections = 1 - gShowCourseDirections; - play_sound_global((SOUND_TING_HIGHER + gShowCourseDirections), NULL); + sound_play((SOUND_TING_HIGHER + gShowCourseDirections), NULL); if (gShowCourseDirections) { D_800E27B8 = 0x78; } else { @@ -450,24 +450,24 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s } else { D_800E2794[gHUDNumPlayers][racer->playerIndex] = PLAYER_ONE; } - play_sound_global((SOUND_TING_HIGHEST - (D_800E2794[gHUDNumPlayers][racer->playerIndex] == 0)), NULL); + sound_play((SOUND_TING_HIGHEST - (D_800E2794[gHUDNumPlayers][racer->playerIndex] == 0)), NULL); } if (get_buttons_pressed_from_player(D_80126D10) & R_CBUTTONS && racer->raceFinished == FALSE && D_80126D34 && D_80126CD0 == 0) { gHudToggleSettings[gHUDNumPlayers] = 1 - gHudToggleSettings[gHUDNumPlayers]; if (gHudToggleSettings[gHUDNumPlayers] == 0) { - play_sound_global(SOUND_TING_LOW, NULL); + sound_play(SOUND_TING_LOW, NULL); } else { - play_sound_global(SOUND_TING_HIGH, NULL); + sound_play(SOUND_TING_HIGH, NULL); } } } if (gRaceStartShowHudStep == 0) { if (gHudLevelHeader->race_type & RACETYPE_CHALLENGE || gHudLevelHeader->race_type == RACETYPE_DEFAULT || gHudLevelHeader->race_type == RACETYPE_HORSESHOE_GULCH || gHudLevelHeader->race_type == RACETYPE_BOSS) { - D_800E2770[0].unk2 = 0x7F; - D_800E2770[1].unk2 = 0x7F; - func_80001844(); - func_800012E8(); - play_music(SEQUENCE_RACE_START_FANFARE); + D_800E2770[0].volume = 127; + D_800E2770[1].volume = 127; + music_stop(); + music_channel_reset_all(); + music_play(SEQUENCE_RACE_START_FANFARE); set_sound_channel_count(12); } else { start_level_music(1.0f); @@ -494,7 +494,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s } } else { if (gRaceStartShowHudStep == 1) { - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); gRaceStartShowHudStep += 1; } D_80126D24 -= updateRate * 13; @@ -503,7 +503,7 @@ void render_hud(Gfx **dList, MatrixS **mtx, Vertex **vertexList, Object *arg3, s } if (D_80126D24 == 0) { D_80126D35 = 1; - play_sound_global(SOUND_EXPLOSION2, NULL); + sound_play(SOUND_EXPLOSION2, NULL); D_80126D28 = 0; } } @@ -585,10 +585,10 @@ block_95: void func_800A0B74(void) { s32 i; for (i = 0; i < 2; i++) { - if (D_800E2770[i].unk4 != 0) { - func_8000488C(D_800E2770[i].unk4); - D_800E2770[i].unk4 = 0; - D_800E2770[i].unk2 = 0; + if (D_800E2770[i].soundMask) { + func_8000488C(D_800E2770[i].soundMask); + D_800E2770[i].soundMask = NULL; + D_800E2770[i].volume = 0; } } } @@ -601,42 +601,42 @@ void func_800A0BD4(s32 updateRate) { gTimeTrialVoiceDelay -= updateRate; if (gTimeTrialVoiceDelay <= 0) { gTimeTrialVoiceDelay = 0; - if (gHUDVoiceSoundMask == 0) { - play_sound_global(gTimeTrialVoiceID, &gHUDVoiceSoundMask); + if (gHUDVoiceSoundMask == NULL) { + sound_play(gTimeTrialVoiceID, &gHUDVoiceSoundMask); } } } for(i = 0; i < 2; i++) { - if (D_800E2770[i].unk2) { - if (D_800E2770[i].unk4 == 0) { - play_sound_global(D_800E2770[i].unk0, (s32 *) &D_800E2770[i].unk4); + if (D_800E2770[i].volume) { + if (D_800E2770[i].soundMask == NULL) { + sound_play(D_800E2770[i].soundID, (s32 *) &D_800E2770[i].soundMask); } - func_80001FB8(D_800E2770[i].unk0, D_800E2770[i].unk4, D_800E2770[i].unk2); + sound_volume_set_relative(D_800E2770[i].soundID, D_800E2770[i].soundMask, D_800E2770[i].volume); if (D_800E2770[i].unk3 > 0) { temp = D_800E2770[i].unk3 * updateRate; - if ((127 - temp) >= D_800E2770[i].unk2) { - D_800E2770[i].unk2 += temp; + if ((127 - temp) >= D_800E2770[i].volume) { + D_800E2770[i].volume += temp; } else { D_800E2770[i].unk3 = 0; - D_800E2770[i].unk2 = 0x7F; + D_800E2770[i].volume = 0x7F; } } else if (D_800E2770[i].unk3 < 0) { temp = D_800E2770[i].unk3 * updateRate; - if (-temp < D_800E2770[i].unk2) { - D_800E2770[i].unk2 += temp; + if (-temp < D_800E2770[i].volume) { + D_800E2770[i].volume += temp; } else { D_800E2770[i].unk3 = 0; - D_800E2770[i].unk2 = 0; + D_800E2770[i].volume = 0; } } } else { - if (D_800E2770[i].unk4) { - func_8000488C(D_800E2770[i].unk4); - D_800E2770[i].unk4 = 0; + if (D_800E2770[i].soundMask) { + func_8000488C(D_800E2770[i].soundMask); + D_800E2770[i].soundMask = 0; } } } - if ((D_80126D70 != 0) && (D_800E2770[0].unk2 == 0)) { + if ((D_80126D70 != 0) && (D_800E2770[0].volume == 0)) { D_80126D70 = 0; if (gNumActivePlayers == 1) { set_sound_channel_count(8); @@ -1133,7 +1133,7 @@ void func_800A277C(s32 arg0, Object* playerRacerObj, s32 updateRate) { if ((gStopwatchFaceID == 4) && ((get_race_countdown()) || (!music_is_playing()))) { ttSWBodyObject->segment.animFrame = 16; } else if (gStopwatchFaceID == 4) { - posX = audio_get_chr_select_anim_frac(); + posX = music_animation_fraction(); temp_t6 = (obj68->objModel->animations[gStopwatchFaceID].unk4 - 1) << 4; if (posX == -1.0) { ttSWBodyObject->segment.animFrame = 0.0; @@ -1232,7 +1232,7 @@ void func_800A277C(s32 arg0, Object* playerRacerObj, s32 updateRate) { stopwatchEndSoundID = get_random_number_from_range(0, D_80126D64 + 2) + SOUND_VOICE_TT_OH_NO; } D_80126D48 = (u16) stopwatchEndSoundID; - play_sound_global(stopwatchEndSoundID, &gHUDVoiceSoundMask); + sound_play(stopwatchEndSoundID, &gHUDVoiceSoundMask); D_80126D64 = 1; } } @@ -1247,7 +1247,7 @@ void func_800A277C(s32 arg0, Object* playerRacerObj, s32 updateRate) { } } if (recordTime) { - play_sound_global(SOUND_VOICE_TT_LAP_RECORD, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_LAP_RECORD, &gHUDVoiceSoundMask); } } } @@ -1264,7 +1264,7 @@ void func_800A277C(s32 arg0, Object* playerRacerObj, s32 updateRate) { newLapSoundID = (get_random_number_from_range(0, 2) + SOUND_VOICE_TT_GO_FOR_IT); } D_80126D48 = newLapSoundID; - play_sound_global(newLapSoundID, &gHUDVoiceSoundMask); + sound_play(newLapSoundID, &gHUDVoiceSoundMask); D_80126D50 = get_random_number_from_range(120, 1200); } D_80126D50 -= updateRate; @@ -1444,7 +1444,7 @@ void render_speedometer(Object *obj, UNUSED s32 updateRate) { void render_race_start(s32 arg0, s32 updateRate) { if (!is_game_paused()) { - if (arg0 == 0 && D_800E2770[0].unkC == -1) { + if (arg0 == 0 && D_800E2770[0].playerIndex == PLAYER_COMPUTER) { D_800E2770[0].unk3 = -1; D_800E2770[1].unk3 = -1; } @@ -1457,7 +1457,7 @@ void render_race_start(s32 arg0, s32 updateRate) { func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &gCurrentHud->unk1A0); gDPSetPrimColor(gHUDCurrDisplayList++, 0, 0, 255, 255, 255, 255); if (gRaceStartShowHudStep == 2) { - play_sound_global(SOUND_VOICE_TT_GET_READY, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_GET_READY, &gHUDVoiceSoundMask); gRaceStartShowHudStep++; } } @@ -1487,17 +1487,17 @@ void render_race_start(s32 arg0, s32 updateRate) { if (gRaceStartShowHudStep == 4) { // Mute background music in 3/4 player. if (get_viewport_count() > TWO_PLAYERS) { - play_music(SEQUENCE_NONE); + music_play(SEQUENCE_NONE); } else { start_level_music(1.0f); } - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); gRaceStartShowHudStep++; } gCurrentHud->unk18C -= (updateRate * 8); } if (gRaceStartShowHudStep == 3) { - play_sound_global(SOUND_VOICE_TT_GO, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_GO, &gHUDVoiceSoundMask); if (get_time_trial_ghost() && unbeaten_staff_time() == FALSE) { set_time_trial_start_voice(SOUND_VOICE_TT_BEAT_MY_TIME, 1.7f, 0); set_delayed_text(ASSET_GAME_TEXT_82, 1.7f); // Now try and beat my time! @@ -1639,7 +1639,7 @@ void render_silver_coin_counter(Object_Racer *racer, s32 updateRate) { if (gCurrentHud->unk5DB >= 30) { gCurrentHud->unk5DA = 1; if (gHUDVoiceSoundMask == NULL) { - play_sound_global(SOUND_VOICE_TT_GO_FOR_IT, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_GO_FOR_IT, &gHUDVoiceSoundMask); } } } @@ -1664,13 +1664,13 @@ void render_race_finish_position(Object_Racer *racer, s32 updateRate) { drawPosition = FALSE; switch (temp_a3->unk1A) { case 0: - set_music_player_voice_limit(24); - play_music(SEQUENCE_FIRST_PLACE); - play_sound_global(SOUND_WHOOSH1, NULL); - play_sound_global(SOUND_VOICE_TT_FINISH, &gHUDVoiceSoundMask); - D_800E2770->unk2 = 127; + music_voicelimit_set(24); + music_play(SEQUENCE_FIRST_PLACE); + sound_play(SOUND_WHOOSH1, NULL); + sound_play(SOUND_VOICE_TT_FINISH, &gHUDVoiceSoundMask); + D_800E2770->volume = 127; D_800E2770->unk3 = 0; - D_800E2770->unkC = racer->playerIndex; + D_800E2770->playerIndex = racer->playerIndex; temp_a3->unk1A = 1; break; case 1: @@ -1691,8 +1691,8 @@ void render_race_finish_position(Object_Racer *racer, s32 updateRate) { } if (temp_a3->unk1C == 2) { temp_a3->unk1A = 2; - play_sound_global(SOUND_WHOOSH1, NULL); - if (D_800E2770->unkC == racer->playerIndex) { + sound_play(SOUND_WHOOSH1, NULL); + if (D_800E2770->playerIndex == racer->playerIndex) { D_800E2770->unk3 = -1; } } @@ -1824,7 +1824,7 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { gCurrentHud->unk3DA = 2; gCurrentHud->unk3DB = 1; gCurrentHud->unk3DD = 0; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); switch (gHUDNumPlayers) { case ONE_PLAYER: gCurrentHud->unk3DC = -21; @@ -1856,7 +1856,7 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { gCurrentHud->unk3DA = 3; gCurrentHud->unk3DB = -1; gCurrentHud->unk3DD = 0; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); switch (gHUDNumPlayers) { case ONE_PLAYER: gCurrentHud->unk3DC = 51; @@ -1901,11 +1901,11 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { } if (racer->lap_times[racer->lap] >= 60) { gCurrentHud->unk3DB = -1; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } if (gCurrentHud->unk3CC == ((0, gCurrentHud))->unk3DC && gCurrentHud->unk3EC == ((0, gCurrentHud))->unk3FC && gCurrentHud->unk3DD == 0) { if (gHUDVoiceSoundMask == NULL) { - play_sound_global(SOUND_VOICE_TT_LAP2, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_LAP2, &gHUDVoiceSoundMask); } gCurrentHud->unk3DD = 1; } @@ -1934,11 +1934,11 @@ void render_lap_count(Object_Racer *racer, s32 updateRate) { } if (racer->lap_times[racer->lap] >= 60) { gCurrentHud->unk3DB = 1; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } if (gCurrentHud->unk3CC == ((0, gCurrentHud))->unk3DC && gCurrentHud->unk3AC == ((0, gCurrentHud))->unk3BC && gCurrentHud->unk3DD == 0) { if (gHUDVoiceSoundMask == NULL) { - play_sound_global(SOUND_VOICE_TT_FINAL_LAP, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_FINAL_LAP, &gHUDVoiceSoundMask); } gCurrentHud->unk3DD = 1; } @@ -1976,11 +1976,11 @@ void render_wrong_way_text(Object_Racer *obj, s32 updateRate) { // 20% chance that T.T decides not to precede his nagging with "No no no!" if (gWrongWayNagPrefix || get_random_number_from_range(1, 10) >= 8) { gWrongWayNagPrefix = FALSE; - play_sound_global(SOUND_VOICE_TT_WRONG_WAY, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_WRONG_WAY, &gHUDVoiceSoundMask); gWrongWayNagTimer = get_random_number_from_range(1, 480) + 120; } else { gWrongWayNagPrefix = TRUE; - play_sound_global(SOUND_VOICE_TT_NONONO, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_NONONO, &gHUDVoiceSoundMask); } } gWrongWayNagTimer -= updateRate; @@ -2004,7 +2004,7 @@ void render_wrong_way_text(Object_Racer *obj, s32 updateRate) { } if (obj->unk1FC <= 90) { gCurrentHud->unk47A[1] = -1; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } } else if (gCurrentHud->unk47A[1] == -1) { textMoveSpeed = updateRate * 13; @@ -2041,7 +2041,7 @@ void render_wrong_way_text(Object_Racer *obj, s32 updateRate) { } gCurrentHud->unk48C = gCurrentHud->unk49C + 200; gCurrentHud->unk46C = gCurrentHud->unk49C - 200; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } sprite_opaque(FALSE); } @@ -2079,9 +2079,9 @@ void play_time_trial_end_message(s16 *playerID) { if (playerID != NULL) { if (settings->racers[*playerID].best_times & 0x80) { - play_sound_global(SOUND_VOICE_TT_RACE_RECORD, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_RACE_RECORD, &gHUDVoiceSoundMask); } else { - play_sound_global(SOUND_VOICE_TT_FINISH, &gHUDVoiceSoundMask); + sound_play(SOUND_VOICE_TT_FINISH, &gHUDVoiceSoundMask); } } } @@ -2094,10 +2094,10 @@ void render_time_trial_finish(Object_Racer *racer, s32 updateRate) { switch (gCurrentHud->unk1DA) { case 0: - D_800E2770->unk2 = 127; + D_800E2770->volume = 127; D_800E2770->unk3 = 0; - D_800E2770->unkC = (s8) racer->playerIndex; - play_sound_global(SOUND_WHOOSH1, NULL); + D_800E2770->playerIndex = (s8) racer->playerIndex; + sound_play(SOUND_WHOOSH1, NULL); if (gHUDNumPlayers == 0 || gHUDNumPlayers == 1) { gCurrentHud->unk1CC = -200.0f; gCurrentHud->unk1DD = 0; @@ -2139,7 +2139,7 @@ void render_time_trial_finish(Object_Racer *racer, s32 updateRate) { gCurrentHud->unk1DD = -40; } } - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } func_800AA600(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, &gCurrentHud->unk1C0); return; @@ -2185,7 +2185,7 @@ void render_balloon_count(UNUSED Object_Racer *racer) { balloonCount = *settings->balloonsPtr; if (get_cutscene_id() == 10) { if (get_balloon_cutscene_timer() < balloonTickTimer + 8 && D_80126D44 == 0) { - play_sound_global(SOUND_HUD_LAP_TICK, &D_80126D44); + sound_play(SOUND_HUD_LAP_TICK, &D_80126D44); } } } @@ -2218,7 +2218,7 @@ void render_balloon_count(UNUSED Object_Racer *racer) { */ UNUSED void play_hud_voice_line(u16 soundId) { if (gHUDVoiceSoundMask == NULL && !(is_game_paused())) { - play_sound_global(soundId, &gHUDVoiceSoundMask); + sound_play(soundId, &gHUDVoiceSoundMask); } } @@ -2345,7 +2345,7 @@ void render_magnet_reticle(Object *racerObj) { gAssetHudElementStaleCounter[hudElementIndex] = 0; hud = (unk80126CDC *) &hud->unk220; func_80066CDC(&gHUDCurrDisplayList, &gHUDCurrMatrix); - func_80068408(&gHUDCurrDisplayList, &gHUDCurrMatrix); + matrix_world_origin(&gHUDCurrDisplayList, &gHUDCurrMatrix); render_sprite_billboard(&gHUDCurrDisplayList, &gHUDCurrMatrix, &gHUDCurrVertex, (Object *) hud, entry, RENDER_Z_UPDATE); } } @@ -2401,7 +2401,7 @@ void render_race_time(Object_Racer *racer, s32 updateRate) { } else { if (gHideRaceTimer) { if (gHUDNumPlayers == ONE_PLAYER) { - play_sound_global(SOUND_HUD_LAP_TICK, NULL); + sound_play(SOUND_HUD_LAP_TICK, NULL); } gHideRaceTimer = FALSE; } diff --git a/src/game_ui.h b/src/game_ui.h index b5357adb..774237ca 100644 --- a/src/game_ui.h +++ b/src/game_ui.h @@ -407,12 +407,12 @@ typedef struct unk800E1E64 { /* Size: 0x10 bytes */ typedef struct unk800E2770 { - u16 unk0; - u8 unk2; + u16 soundID; + u8 volume; s8 unk3; - s32 *unk4; //soundmask? + SoundMask *soundMask; s32 unk8; - s8 unkC; + s8 playerIndex; s8 unkD; s8 unkE; s8 unkF; diff --git a/src/memory.c b/src/memory.c index 05754f26..3c2f9a4f 100644 --- a/src/memory.c +++ b/src/memory.c @@ -379,7 +379,11 @@ s32 func_80071478(u8 *address) { return FALSE; } -s32 func_80071538(u8 *address) { +/** + * Search the memory pool for the slot that's tied to the given address. + * Return true if it's found, otherwise return false. +*/ +s32 memory_slot_exists(u8 *address) { s32 slotIndex; MemoryPoolSlot *slot; MemoryPool *pool; diff --git a/src/memory.h b/src/memory.h index 6d37aec0..9b0f8a02 100644 --- a/src/memory.h +++ b/src/memory.h @@ -78,7 +78,7 @@ void free_from_memory_pool(void *data); void clear_free_queue(void); void add_to_free_queue(void *dataAddress); s32 func_80071478(u8 *address); -s32 func_80071538(u8 *address); +s32 memory_slot_exists(u8 *address); s32 get_memory_pool_index_containing_address(u8 *address); u8 *align16(u8 *address); u8 *align8(u8 *address); diff --git a/src/menu.c b/src/menu.c index 429e8730..7fba0982 100644 --- a/src/menu.c +++ b/src/menu.c @@ -2126,7 +2126,7 @@ void menu_init(u32 menuId) { //Needs to be one line for (i = 0; i < ARRAY_COUNT(D_80126808); i++) { D_80126808[i] = 0; } - func_80001844(); + music_stop(); switch (gCurrentMenuId) { case MENU_LOGOS: menu_logos_screen_init(); @@ -2424,7 +2424,7 @@ void func_80081E54(MenuElement *arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s3 gDrawElementsRegionYOffset = arg4; gDrawElementsYOffset = arg5; if (D_80126858 > 0) { - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } } @@ -2469,14 +2469,14 @@ s32 func_80081F4C(s32 updateRate) { gTrophyRankingsState = 2; buttonsPressedAllPlayers = 0; if (D_80126860 > D_80126854) { - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } } else { if (D_80126854 >= D_8012685C) { D_80126854 -= D_8012685C; gTrophyRankingsState = 2; if (D_80126854 < D_80126860) { - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } } else { scale = (f32) D_80126854 / (f32) D_8012685C; @@ -2707,10 +2707,10 @@ void menu_logos_screen_init(void) { sBootScreenTimer = 16.0f; set_background_fill_colour(0, 0, 0); if (osTvType == TV_TYPE_PAL) { - resize_viewport(0, 0, 38, SCREEN_WIDTH, SCREEN_HEIGHT - 16); + viewport_menu_set(0, 0, 38, SCREEN_WIDTH, SCREEN_HEIGHT - 16); set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT_PAL); } else { - resize_viewport(0, 0, 40, SCREEN_WIDTH, SCREEN_HEIGHT - 44); + viewport_menu_set(0, 0, 40, SCREEN_WIDTH, SCREEN_HEIGHT - 44); set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT); } copy_viewports_to_stack(); //Init viewports @@ -2900,8 +2900,8 @@ void menu_title_screen_init(void) { gTitleScreenCurrentOption = 0; gNumberOfActivePlayers = 4; initialise_player_ids(); - play_music(SEQUENCE_NONE2); - sMenuMusicVolume = musicGetRelativeVolume(); + music_play(SEQUENCE_NONE2); + sMenuMusicVolume = music_volume(); if (gResetTitleScale) { gTitleRevealTimer = 0; gResetTitleScale = FALSE; @@ -2914,11 +2914,11 @@ void menu_title_screen_init(void) { for (i = 0; i < 11; i++) { sGameTitleTileOffsets[i].texture = gMenuObjects[sGameTitleTileTextures[i]]; } - set_music_player_voice_limit(27); + music_voicelimit_set(27); func_800660C0(); set_text_font(ASSET_FONTS_FUNFONT); load_font(ASSET_FONTS_BIGFONT); - reset_sound_volume(FALSE); + sound_volume_reset(FALSE); set_time_trial_enabled(FALSE); gTitleDemoIndex = 0; sTitleScreenDemoIds = (s8 *) get_misc_asset(ASSET_MISC_TITLE_SCREEN_DEMO_IDS); @@ -3019,7 +3019,7 @@ s32 menu_title_screen_loop(s32 updateRate) { if (gTitleDemoTimer > 0) { gTitleDemoTimer -= updateRate; if (gTitleDemoTimer < 60 && gTitleDemoTimer + updateRate >= 60) { - set_music_fade_timer(-768); + music_fade(-768); sp28 = 0; transition_begin(&gFadeTitleScreenDemo); } @@ -3058,22 +3058,22 @@ s32 menu_title_screen_loop(s32 updateRate) { if (gTitleRevealTimer) { if (gTitleRevealTimer < 32) { if (gTitleRevealTimer == 1) { - play_sound_global(SOUND_WHOOSH1, 0); + sound_play(SOUND_WHOOSH1, 0); } gTitleRevealTimer += updateRate; if (gTitleRevealTimer >= 32) { gTitleRevealTimer = 32; sp18->object.distanceToCamera = 8.0f; - play_sound_global(SOUND_EXPLOSION, 0); + sound_play(SOUND_EXPLOSION, 0); } } else { if (gTitleAudioCounter < 6.0f) { gTitleAudioCounter += updateRateF; if (gTitleAudioCounter > 0.67f && gMenuOptionCount == 0) { - play_sound_global(SOUND_VOICE_TT_DIDDY_KONG_RACING, 0); + sound_play(SOUND_VOICE_TT_DIDDY_KONG_RACING, 0); gMenuOptionCount = 1; } else if ((gTitleAudioCounter > 2.83f) && (gMenuOptionCount == 1)) { - play_sound_global(SOUND_VOICE_TT_PRESS_START, 0); + sound_play(SOUND_VOICE_TT_PRESS_START, 0); gMenuOptionCount = 2; } } @@ -3081,13 +3081,13 @@ s32 menu_title_screen_loop(s32 updateRate) { } if (gTitleAudioCounter > 0.0f) { if (gTitleAudioCounter < 0.5f) { - set_relative_volume_for_music((s32) ((f32) sMenuMusicVolume * (1.0f - gTitleAudioCounter))); + music_volume_set((s32) ((f32) sMenuMusicVolume * (1.0f - gTitleAudioCounter))); } else if (gTitleAudioCounter < 4.5f) { - set_relative_volume_for_music(((s32) sMenuMusicVolume >> 1)); + music_volume_set(((s32) sMenuMusicVolume >> 1)); } else if (gTitleAudioCounter < 5.0f) { - set_relative_volume_for_music((s32) ((f32) sMenuMusicVolume * (gTitleAudioCounter - 4.0f))); + music_volume_set((s32) ((f32) sMenuMusicVolume * (gTitleAudioCounter - 4.0f))); } else { - set_relative_volume_for_music(*((s8*)&sMenuMusicVolume + 3)); + music_volume_set(*((s8*)&sMenuMusicVolume + 3)); } } if (gTitleRevealTimer == 0) { @@ -3104,7 +3104,7 @@ s32 menu_title_screen_loop(s32 updateRate) { gTitleScreenCurrentOption--; } if (temp0 != gTitleScreenCurrentOption) { - play_sound_global(SOUND_MENU_PICK2, (s32 *) (0 * contrIndex)); // TODO: The `* contrIndex` here is a fake match. + sound_play(SOUND_MENU_PICK2, (s32 *) (0 * contrIndex)); // TODO: The `* contrIndex` here is a fake match. } if (D_801267D8[4] & (A_BUTTON | START_BUTTON)) { for(contrIndex = 3; contrIndex > 0 && !(D_801267D8[contrIndex] & (A_BUTTON | START_BUTTON)); contrIndex--){} @@ -3112,7 +3112,7 @@ s32 menu_title_screen_loop(s32 updateRate) { gMenuDelay = 1; transition_begin(&sMenuTransitionFadeIn); enable_new_screen_transitions(); - play_sound_global(SOUND_SELECT2, 0); + sound_play(SOUND_SELECT2, 0); } } if (gMenuDelay > 30) { @@ -3145,10 +3145,10 @@ s32 menu_title_screen_loop(s32 updateRate) { */ void title_screen_exit(void) { func_8009C4A8(sGameTitleTileTextures); - set_music_player_voice_limit(16); + music_voicelimit_set(16); func_800660D0(); unload_font(ASSET_FONTS_BIGFONT); - reset_sound_volume(TRUE); + sound_volume_reset(TRUE); } /** @@ -3161,9 +3161,9 @@ void menu_options_init(void) { transition_begin(&sMenuTransitionFadeOut); load_font(ASSET_FONTS_BIGFONT); set_text_font(ASSET_FONTS_BIGFONT); - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - func_80000B18(); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_change_off(); } //Draws options menu screen @@ -3238,14 +3238,14 @@ s32 menu_options_loop(s32 updateRate) { } if ((buttonsPressed & B_BUTTON) || ((buttonsPressed & (A_BUTTON | START_BUTTON)) && gMenuCurIndex == 5)) { // Leave the option menu - set_music_fade_timer(-128); + music_fade(-128); gMenuDelay = -1; transition_begin(&sMenuTransitionFadeIn); - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if ((buttonsPressed & (A_BUTTON | START_BUTTON)) && gMenuCurIndex >= 2) { // Go to a sub-menu gMenuDelay = 31; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (gMenuCurIndex == 0 && analogueX != 0) { switch ((u64) get_language()) { @@ -3256,16 +3256,16 @@ s32 menu_options_loop(s32 updateRate) { set_language(LANGUAGE_ENGLISH); break; } - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } else if (gMenuCurIndex == 1 && analogueX != 0) { if (sEepromSettings & 0x2000000) { //0x2000000 SUBTITLES ENABLED? - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); unset_eeprom_settings_value(0x2000000); set_subtitles(0); gOptionMenuStrings[1] = gMenuText[ASSET_MENU_TEXT_SUBTITLESOFF]; } else { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); set_eeprom_settings_value(0x2000000); set_subtitles(1); gOptionMenuStrings[1] = gMenuText[ASSET_MENU_TEXT_SUBTITLESON]; @@ -3285,7 +3285,7 @@ s32 menu_options_loop(s32 updateRate) { } } if (prev_D_800DF460 != gMenuCurIndex) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } if (gMenuDelay > 30) { @@ -3306,7 +3306,7 @@ s32 menu_options_loop(s32 updateRate) { } if (gMenuDelay < -30) { // Change screen back to the title screen. - func_80000B28(); + music_change_on(); unload_big_font_1(); menu_init(MENU_TITLE); return MENU_RESULT_CONTINUE; @@ -3338,12 +3338,12 @@ void menu_audio_options_init(void) { assign_menu_arrow_textures(); transition_begin(&sMenuTransitionFadeOut); func_8007FFEC(2); - gMusicVolumeSliderValue = musicGetVolSliderPercentage(); + gMusicVolumeSliderValue = music_volume_config(); gSfxVolumeSliderValue = get_sfx_volume_slider(); if (gActiveMagicCodes & CHEAT_MUSIC_MENU) { // Check if "JUKEBOX" cheat is active gAudioMenuStrings[6].unkC = gMusicTestString; gAudioMenuStrings[3].unk2 = 212; - set_music_player_voice_limit(32); + music_voicelimit_set(32); gMenuOptionCount = 5; } else { gAudioMenuStrings[6].unkC = NULL; @@ -3403,7 +3403,7 @@ s32 menu_audio_options_loop(s32 updateRate) { gMenuDelay = -1; transition_begin(&sMenuTransitionFadeIn); if (gOpacityDecayTimer >= 0) { - set_music_fade_timer(-128); + music_fade(-128); } sp30 = 3; @@ -3443,16 +3443,16 @@ s32 menu_audio_options_loop(s32 updateRate) { } else if (gMusicVolumeSliderValue > 256) { gMusicVolumeSliderValue = 256; } - set_music_volume_slider(gMusicVolumeSliderValue); + music_volume_config_set(gMusicVolumeSliderValue); if (!music_is_playing()) { if (gOpacityDecayTimer >= 0) { - func_80000B28(); - play_music(gMusicTestSongIndex); + music_change_on(); + music_play(gMusicTestSongIndex); } else { - func_80000B28(); - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - func_80000B18(); + music_change_on(); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_change_off(); } } } @@ -3461,31 +3461,31 @@ s32 menu_audio_options_loop(s32 updateRate) { gMusicTestSongIndex--; sp30 = 1; } else if (contX > 0) { - if (gMusicTestSongIndex < (ALSeqFile_80115CF8_GetSeqCount() - 1)) { + if (gMusicTestSongIndex < (music_sequence_count() - 1)) { gMusicTestSongIndex++; sp30 = 1; } } if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - func_80000B28(); - set_music_player_voice_limit(24); - play_music(gMusicTestSongIndex); + music_change_on(); + music_voicelimit_set(24); + music_play(gMusicTestSongIndex); gOpacityDecayTimer = gMusicTestSongIndex; } } if (gOptionsMenuItemIndex == 1) { if (D_801269FC == NULL) { - play_sound_global(SOUND_VOICE_DIDDY_POSITIVE5, (s32 *) &D_801269FC); + sound_play(SOUND_VOICE_DIDDY_POSITIVE5, (s32 *) &D_801269FC); } } else if (D_801269FC != NULL) { func_8000488C((u8* ) D_801269FC); } if (sp30 == 3) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (sp30 == 2) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (sp30 == 1) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } } @@ -3503,10 +3503,10 @@ void func_800851FC(void) { func_8000488C(D_801269FC); } if (gOpacityDecayTimer >= 0) { - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - set_music_fade_timer(0x100); - func_80000B18(); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_fade(0x100); + music_change_off(); } func_8009C4A8(gOptionMenuTextures); unload_font(ASSET_FONTS_BIGFONT); @@ -4085,17 +4085,17 @@ s32 func_800874D0(s32 buttonsPressed, s32 arg1) { if (D_80126A10 != D_80126A14) { func_800871D8(CONTROLLER_PAK_SWITCH_TO_RUMBLE); } else { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); ret = -1; } } else if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gMenuOptionCount = 4; } else if ((arg1 < 0) && (D_80126BD4 > 0)) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); D_80126BD4--; } else if ((arg1 > 0) && (D_80126BD4 < (D_80126A08 - 1))) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); D_80126BD4++; } return ret; @@ -4103,16 +4103,16 @@ s32 func_800874D0(s32 buttonsPressed, s32 arg1) { s32 func_800875E4(s32 buttonsPressed, s32 arg1) { if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); gMenuOptionCount = 3; } else if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gMenuOptionCount = 6; } else if ((arg1 < 0) && (D_80126BE4 > 0)) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); D_80126BE4--; } else if ((arg1 > 0) && (D_80126BE4 < D_80126A00 - 1)) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); D_80126BE4++; } @@ -4121,10 +4121,10 @@ s32 func_800875E4(s32 buttonsPressed, s32 arg1) { s32 func_800876CC(s32 buttonsPressed, UNUSED s32 arg1) { if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); gMenuOptionCount = 5; } else if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gMenuOptionCount = 7; gOpacityDecayTimer = 0; } @@ -4151,7 +4151,7 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { } } if (buttonsPressed & B_BUTTON || (buttonsPressed & (START_BUTTON | A_BUTTON) && (u32) D_80126A74 == (u32) (D_80126A78 + 1))) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); gMenuOptionCount &= ~8; switch (sp1C) { case 0: @@ -4218,7 +4218,7 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { break; } } else if (buttonsPressed & (START_BUTTON | A_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gMenuOptionCount &= ~8; switch (D_800DFADC) { case CONTROLLER_PAK_WITH_BAD_ID: @@ -4247,10 +4247,10 @@ s32 func_80087734(s32 buttonsPressed, s32 yAxis) { break; } } else if (yAxis < 0 && D_80126A78 < (D_80126A74 - 1)) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); D_80126A78++; } else if (yAxis > 0 && D_80126A78 > 0) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); D_80126A78--; } return 0; @@ -4843,7 +4843,7 @@ s32 menu_controller_pak_loop(s32 updateRate) { } if (sControllerPakError != PAK_ERROR_NONE) { if ((sControllerPakError != PAK_ERROR_FATAL) && (pressedButtons & (A_BUTTON | START_BUTTON))) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); if (func_80087F14(&gMenuOption, 0) == CONTROLLER_PAK_GOOD) { sControllerPakError = PAK_ERROR_NONE; } else if (check_for_controller_pak_errors() == PAK_ERROR_NONE) { @@ -4956,13 +4956,13 @@ s32 menu_controller_pak_loop(s32 updateRate) { } if (playCancelSound) { //Menu Cancel Sound - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (playSelectedSound) { //Menu Item Selected Sound - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (playMoveSound) { //Menu Moving Sound - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } else { gMenuDelay += updateRate; @@ -5231,7 +5231,7 @@ s32 menu_magic_codes_loop(s32 updateRate) { someBool2 = TRUE; } if (someBool) { - play_sound_global(SOUND_BOUNCE, NULL); + sound_play(SOUND_BOUNCE, NULL); if (gCheatInputStringLength > 0) { gCheatInputStringLength--; D_80126C58[gCheatInputStringLength] = '\0'; @@ -5343,11 +5343,11 @@ s32 menu_magic_codes_loop(s32 updateRate) { } } if (playBackSound) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (playSelectSound) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (playPickSound) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } gIgnorePlayerInputTime = 0; @@ -5355,7 +5355,7 @@ s32 menu_magic_codes_loop(s32 updateRate) { unload_big_font_2(); if (gMenuDelay < 0) { if (gActiveMagicCodes & CHEAT_DISPLAY_CREDITS) { - func_80000B28(); + music_change_on(); gViewingCreditsFromCheat = TRUE; menu_init(MENU_CREDITS); gActiveMagicCodes &= ~CHEAT_DISPLAY_CREDITS; @@ -5499,7 +5499,7 @@ s32 menu_magic_codes_list_loop(s32 updateRate) { } if (((xAxis < 0) || (xAxis > 0)) && (numUnlockedCodes != gOptionsMenuItemIndex)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); code = 1 << D_80126C80[gOptionsMenuItemIndex]; gActiveMagicCodes ^= code; // Toggle active cheats? func_8008A8F8(code, 0x10, CHEAT_SMALL_CHARACTERS); // func_8008A8F8() = Clear flags? @@ -5544,7 +5544,7 @@ s32 menu_magic_codes_list_loop(s32 updateRate) { } if (gOptionsMenuItemIndex != previousMenuItemIndex) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } if ((buttonsPressed & (A_BUTTON | START_BUTTON)) && (numUnlockedCodes == gOptionsMenuItemIndex)) { @@ -5556,7 +5556,7 @@ s32 menu_magic_codes_list_loop(s32 updateRate) { if (delay != 0) { gMenuDelay = delay; transition_begin(&sMenuTransitionFadeIn); - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } if (gMenuDelay < -30) { func_8008AD1C(); @@ -5710,16 +5710,16 @@ void menu_character_select_init(void) { D_801263B8.channelIndex = -1; D_801263B8.unk2 = 0; D_801263B8.unk1 = 0; - play_music(SEQUENCE_CHOOSE_YOUR_RACER); + music_play(SEQUENCE_CHOOSE_YOUR_RACER); for (i = 0; i < NUM_CHARACTERS; i++) { channelVolumes = gCharacterVolumes[i]; if (i != gMenuCurrentCharacter.channelIndex) { - func_80001114(channelVolumes[0]); - func_80001114(channelVolumes[1]); + music_channel_off(channelVolumes[0]); + music_channel_off(channelVolumes[1]); } } - func_80001114(6); - func_80000B18(); + music_channel_off(6); + music_change_off(); func_8009C674(gCharSelectObjectIndices); allocate_menu_images(gCharSelectImageIndices); transition_begin(&sMenuTransitionFadeOut); @@ -5777,7 +5777,7 @@ void func_8008B358(void) { gMenuCurrentCharacter.channelIndex = (*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID; gMenuCurrentCharacter.unk2 = 0; gMenuCurrentCharacter.unk1 = 20; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } } } @@ -5810,9 +5810,9 @@ void func_8008B4C8(void) { if (D_80126808[characterSelected] != 0) { func_8000488C(D_80126808[characterSelected]); } - play_sound_global(((*gCurrCharacterSelectData)[gPlayersCharacterArray[characterSelected]].voiceID + SOUND_VOICE_CHARACTER_SELECTED), &D_80126808[characterSelected]); + sound_play(((*gCurrCharacterSelectData)[gPlayersCharacterArray[characterSelected]].voiceID + SOUND_VOICE_CHARACTER_SELECTED), &D_80126808[characterSelected]); if ((gNumberOfActivePlayers > 2) || ((gNumberOfActivePlayers > 1) && !(gActiveMagicCodes & CHEAT_TWO_PLAYER_ADVENTURE)) || (gEnteredCharSelectFrom == 1)) { - set_music_fade_timer(-128); + music_fade(-128); } } else { //Character Deselected @@ -5824,7 +5824,7 @@ void func_8008B4C8(void) { if (D_80126808[i] != 0) { func_8000488C(D_80126808[i]); } - play_sound_global(((*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID + SOUND_VOICE_CHARACTER_DESELECTED), &D_80126808[i]); + sound_play(((*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID + SOUND_VOICE_CHARACTER_DESELECTED), &D_80126808[i]); } } } @@ -5846,7 +5846,7 @@ void func_8008B758(s8 *activePlayers) { if (D_80126808[i] != 0) { func_8000488C(D_80126808[i]); } - play_sound_global(((*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID + SOUND_VOICE_CHARACTER_DESELECTED), &D_80126808[i]); + sound_play(((*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID + SOUND_VOICE_CHARACTER_DESELECTED), &D_80126808[i]); } } else { if (D_801267D8[i] & B_BUTTON) { @@ -5877,7 +5877,7 @@ void func_8008B758(s8 *activePlayers) { if (D_80126808[i] != 0) { func_8000488C(D_80126808[i]); } - play_sound_global(((*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID + SOUND_VOICE_CHARACTER_SELECT), &D_80126808[i]); + sound_play(((*gCurrCharacterSelectData)[gPlayersCharacterArray[i]].voiceID + SOUND_VOICE_CHARACTER_SELECT), &D_80126808[i]); } else { charSelectData = (*gCurrCharacterSelectData) + gPlayersCharacterArray[i]; if (D_80126830[i] > 0) { @@ -5990,7 +5990,7 @@ s32 menu_character_select_loop(s32 updateRate) { gIsInTracksMode = 1; if (phi_t3 >= gNumberOfActivePlayers) { - func_80000B18(); + music_change_off(); load_level_for_menu(ASSET_LEVEL_OPTIONSBACKGROUND, -1, 0); if (gNumberOfActivePlayers == 1 && !gPlayerHasSeenCautionMenu) { menu_init(MENU_CAUTION); @@ -5998,7 +5998,7 @@ s32 menu_character_select_loop(s32 updateRate) { menu_init(MENU_GAME_SELECT); } } else { - func_80000B28(); + music_change_on(); func_800828B8(); init_racer_headers(); menu_init(MENU_TRACK_SELECT); @@ -6007,7 +6007,7 @@ s32 menu_character_select_loop(s32 updateRate) { } else if (gMenuDelay < 0) { gMenuDelay -= updateRate; if (gMenuDelay < -30) { - func_80000B28(); + music_change_on(); func_8008C128(); gNumberOfActivePlayers = 1; menu_init(MENU_TITLE); @@ -6040,10 +6040,10 @@ void func_8008BFE8(s32 arg0, s8 *arg1, s32 arg2, u16 menuPickSoundId, u16 menuPi if (!sameCharSelected) { gPlayersCharacterArray[arg0] = arg1[j]; // menuPickSoundId seems to always be passed SOUND_MENU_PICK3? - play_sound_global(menuPickSoundId, NULL); + sound_play(menuPickSoundId, NULL); } else { // menuPickFailedSoundId seems to always be passed SOUND_HORN_DRUMSTICK? - play_sound_global(menuPickFailedSoundId, NULL); + sound_play(menuPickFailedSoundId, NULL); } } @@ -6060,8 +6060,8 @@ void func_8008C168(s32 updateRate) { gMenuCurrentCharacter.unk1 = gMenuCurrentCharacter.unk1 - updateRate; if (gMenuCurrentCharacter.unk1 <= 0) { if (D_801263B8.channelIndex >= 0) { - func_80001114(gCharacterVolumes[D_801263B8.channelIndex][0]); - func_80001114(gCharacterVolumes[0][D_801263B8.channelIndex * 2 + 1]); + music_channel_off(gCharacterVolumes[D_801263B8.channelIndex][0]); + music_channel_off(gCharacterVolumes[0][D_801263B8.channelIndex * 2 + 1]); } D_801263B8.channelIndex = gMenuSelectedCharacter.channelIndex; if (gMenuSelectedCharacter.channelIndex >= 0) { @@ -6070,8 +6070,8 @@ void func_8008C168(s32 updateRate) { gMenuSelectedCharacter.channelIndex = gMenuCurrentCharacter.channelIndex; if (gMenuSelectedCharacter.channelIndex >= 0) { gMenuSelectedCharacter.unk2 = gMenuCurrentCharacter.unk2; - func_80001170(gCharacterVolumes[gMenuSelectedCharacter.channelIndex][0]); - func_80001170(gCharacterVolumes[0][gMenuSelectedCharacter.channelIndex * 2 + 1]); + music_channel_on(gCharacterVolumes[gMenuSelectedCharacter.channelIndex][0]); + music_channel_on(gCharacterVolumes[0][gMenuSelectedCharacter.channelIndex * 2 + 1]); } } } @@ -6080,18 +6080,18 @@ void func_8008C168(s32 updateRate) { if (gMenuSelectedCharacter.unk2 > 127) { gMenuSelectedCharacter.unk2 = 127; } - func_80001268(gCharacterVolumes[gMenuSelectedCharacter.channelIndex][0], gMenuSelectedCharacter.unk2); - func_80001268(gCharacterVolumes[0][gMenuSelectedCharacter.channelIndex * 2 + 1], gMenuSelectedCharacter.unk3); + music_channel_fade_set(gCharacterVolumes[gMenuSelectedCharacter.channelIndex][0], gMenuSelectedCharacter.unk2); + music_channel_fade_set(gCharacterVolumes[0][gMenuSelectedCharacter.channelIndex * 2 + 1], gMenuSelectedCharacter.unk3); } if (D_801263B8.channelIndex >= 0) { D_801263B8.unk2 -= updateRate * 4; if (D_801263B8.channelIndex != gMenuSelectedCharacter.channelIndex) { if (D_801263B8.unk2 < 0) { - func_80001114(gCharacterVolumes[D_801263B8.channelIndex][0]); - func_80001114(gCharacterVolumes[0][D_801263B8.channelIndex * 2 + 1]); + music_channel_off(gCharacterVolumes[D_801263B8.channelIndex][0]); + music_channel_off(gCharacterVolumes[0][D_801263B8.channelIndex * 2 + 1]); } else { - func_80001268(gCharacterVolumes[D_801263B8.channelIndex][0], D_801263B8.unk2); - func_80001268(gCharacterVolumes[0][D_801263B8.channelIndex * 2 + 1], D_801263B8.unk3); + music_channel_fade_set(gCharacterVolumes[D_801263B8.channelIndex][0], D_801263B8.unk2); + music_channel_fade_set(gCharacterVolumes[0][D_801263B8.channelIndex * 2 + 1], D_801263B8.unk3); } } if (D_801263B8.unk2 < 0) { @@ -6120,7 +6120,7 @@ s32 menu_caution_loop(s32 updateRate) { if (gMenuDelay) { gMenuDelay += updateRate; } else if (gIgnorePlayerInputTime <= 0 && (get_buttons_pressed_from_player(PLAYER_ONE) & (A_BUTTON | B_BUTTON | START_BUTTON))) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gMenuDelay = 1; transition_begin(&sMenuTransitionFadeIn); } @@ -6162,17 +6162,17 @@ void menu_game_select_init(void) { func_8009C6D4(0x43); func_8007FFEC(3); load_font(ASSET_FONTS_BIGFONT); - play_music(SEQUENCE_CHOOSE_YOUR_RACER); + music_play(SEQUENCE_CHOOSE_YOUR_RACER); for (i = 0; i < NUM_CHARACTERS; i++) { if (i != gMenuSelectedCharacter.channelIndex) { - func_80001114(gCharacterVolumes[i][0]); - func_80001114(gCharacterVolumes[i][1]); + music_channel_off(gCharacterVolumes[i][0]); + music_channel_off(gCharacterVolumes[i][1]); } } - func_80001114(6); - func_80000B18(); + music_channel_off(6); + music_change_off(); if (is_adventure_two_unlocked()) { gGameSelectElements = gGameSelectTextElemsWithAdv2; gMenuOptionCount = 2; @@ -6248,7 +6248,7 @@ s32 menu_game_select_loop(s32 updateRate) { if (gMenuDelay > 30) { func_8008CACC(); if (gMenuCurIndex == gMenuOptionCount) { - func_80000B28(); + music_change_on(); gIsInTracksMode = TRUE; init_racer_headers(); load_level_for_menu((s32)SPECIAL_MAP_ID_NO_LEVEL, -1, 0); @@ -6286,11 +6286,11 @@ s32 menu_game_select_loop(s32 updateRate) { } if (playerInputs & (A_BUTTON | START_BUTTON)) { if (gMenuCurIndex == gMenuOptionCount) { - set_music_fade_timer(-0x80); + music_fade(-0x80); } transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (playerInputs & B_BUTTON) { transition_begin(&sMenuTransitionFadeIn); gMenuDelay = -1; @@ -6298,13 +6298,13 @@ s32 menu_game_select_loop(s32 updateRate) { if (playerYDir < 0) { if (gMenuCurIndex < gMenuOptionCount) { gMenuCurIndex++; - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } if (playerYDir > 0) { if (gMenuCurIndex > 0) { gMenuCurIndex--; - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } } @@ -6344,15 +6344,15 @@ void menu_file_select_init(void) { D_80126CC0 = FALSE; transition_begin(&sMenuTransitionFadeOut); load_font(ASSET_FONTS_BIGFONT); - play_music(SEQUENCE_CHOOSE_YOUR_RACER); + music_play(SEQUENCE_CHOOSE_YOUR_RACER); for (i = 0; i < NUM_CHARACTERS; i++) { if (i != gMenuSelectedCharacter.channelIndex) { - func_80001114(gCharacterVolumes[i][0]); - func_80001114(gCharacterVolumes[i][1]); + music_channel_off(gCharacterVolumes[i][0]); + music_channel_off(gCharacterVolumes[i][1]); } } - func_80001114(6); - func_80000B18(); + music_channel_off(6); + music_change_off(); } /** @@ -6537,20 +6537,20 @@ s32 func_8008D5F8(UNUSED s32 updateRate) { case 0: if (gSavefileInfo[gSaveFileIndex].isStarted) { if (gIsInAdventureTwo != gSavefileInfo[gSaveFileIndex].isAdventure2) { - play_sound_global(SOUND_HORN_DRUMSTICK, NULL); + sound_play(SOUND_HORN_DRUMSTICK, NULL); break; } } - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); return 1; case 1: - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gSaveFileIndex3 = gSaveFileIndex; D_80126484 = TRUE; D_80126494 = 0; return 0; case 2: - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gSaveFileIndex3 = gSaveFileIndex; D_80126488 = TRUE; D_80126494 = 0; @@ -6599,7 +6599,7 @@ s32 func_8008D5F8(UNUSED s32 updateRate) { } } if (temp_a0 != ((gMenuOptionCount << 8) | gSaveFileIndex)) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } return 0; } @@ -6622,19 +6622,19 @@ void func_8008D8BC(UNUSED s32 updateRate) { } if (D_80126494 == 0) { if (buttonsPressed & (B_BUTTON)) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); D_80126484 = FALSE; return; } if (buttonsPressed & (A_BUTTON | START_BUTTON)) { if (gSavefileInfo[gSaveFileIndex3].isStarted) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); mark_read_save_file(gSaveFileIndex3); gSaveFileIndex2 = gSaveFileIndex3; D_80126494 = 1; return; } - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); return; } prevValue = gSaveFileIndex3; @@ -6645,22 +6645,22 @@ void func_8008D8BC(UNUSED s32 updateRate) { gSaveFileIndex3++; } if (prevValue != gSaveFileIndex3) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } else if (D_80126494 == 1) { if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); gSaveFileIndex3 = gSaveFileIndex2; D_80126494 = 0; return; } if (buttonsPressed & (A_BUTTON | START_BUTTON)) { if (!gSavefileInfo[gSaveFileIndex2].isStarted) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); D_80126494 = 2; return; } - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); return; } prevValue = gSaveFileIndex2; @@ -6671,11 +6671,11 @@ void func_8008D8BC(UNUSED s32 updateRate) { gSaveFileIndex2++; } if (prevValue != gSaveFileIndex2) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } else { if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); force_mark_write_save_file(gSaveFileIndex2); gSavefileInfo[gSaveFileIndex2].isAdventure2 = FALSE; gSavefileInfo[gSaveFileIndex2].isStarted = TRUE; @@ -6691,7 +6691,7 @@ void func_8008D8BC(UNUSED s32 updateRate) { gMenuOptionCount = 0; D_80126484 = FALSE; } else if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); D_80126494 = 1; } } @@ -6712,16 +6712,16 @@ void func_8008DC7C(UNUSED s32 updateRate) { if (D_80126494 == 0) { if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); D_80126488 = FALSE; return; } else if (buttonsPressed & (A_BUTTON | START_BUTTON)) { if (gSavefileInfo[gSaveFileIndex3].isStarted != 0) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); D_80126494 = 1; return; } - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); return; } @@ -6742,11 +6742,11 @@ void func_8008DC7C(UNUSED s32 updateRate) { } if (gSaveFileIndex3 != temp) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } else { if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); mark_save_file_to_erase(gSaveFileIndex3); gSavefileInfo[gSaveFileIndex3].isAdventure2 = 0; gSavefileInfo[gSaveFileIndex3].isStarted = 0; @@ -6759,7 +6759,7 @@ void func_8008DC7C(UNUSED s32 updateRate) { gMenuOptionCount = 0; D_80126488 = FALSE; } else if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); D_80126494 = 0; } } @@ -6834,7 +6834,7 @@ s32 menu_file_select_loop(s32 updateRate) { gSavefileInfo[gSaveFileIndex].balloonCount = 0; settings->filename = compress_filename_string(gSavefileInfo[gSaveFileIndex].name, 3); mark_read_save_file(gSaveFileIndex); - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; } @@ -6843,9 +6843,9 @@ s32 menu_file_select_loop(s32 updateRate) { if (currentMenuDelay != 0) { if (currentMenuDelay > 0) { if (gSavefileInfo[gSaveFileIndex].isStarted != 0) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); mark_read_save_file(gSaveFileIndex); - set_music_fade_timer(-128); + music_fade(-128); } else { D_80126CC0 = TRUE; gIndexOfCurInputCharacter = 0; @@ -6878,7 +6878,7 @@ s32 menu_file_select_loop(s32 updateRate) { gNumberOfActivePlayers = 1; D_800E0FAC = 1; func_8008E428(); - func_80000B28(); + music_change_on(); init_racer_headers(); gTrophyRaceWorldId = 0; if (settings->newGame) { @@ -7060,7 +7060,7 @@ void menu_track_select_init(void) { } D_80126924 = 0; set_background_draw_function(func_8008F618); - resize_viewport(0, 80, gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY >> 1), SCREEN_HEIGHT, (gTrackSelectViewPortHalfY >> 1) + gTrackSelectViewPortHalfY); + viewport_menu_set(0, 80, gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY >> 1), SCREEN_HEIGHT, (gTrackSelectViewPortHalfY >> 1) + gTrackSelectViewPortHalfY); copy_viewports_to_stack(); camEnableUserView(0, 0); gIsInTracksMenu = TRUE; @@ -7127,11 +7127,11 @@ void menu_track_select_init(void) { D_80126840 = 0; D_80126848 = 0; sMenuMusicVolume = 0; - set_music_player_voice_limit(24); - func_80000C1C(); - play_music(SEQUENCE_MAIN_MENU); - set_relative_volume_for_music(sMenuMusicVolume); - func_80000B18(); + music_voicelimit_set(24); + music_voicelimit_change_off(); + music_play(SEQUENCE_MAIN_MENU); + music_volume_set(sMenuMusicVolume); + music_change_off(); set_gIntDisFlag(TRUE); // Set an interrupt? gIsInAdventureTwo = gTracksMenuAdventureHighlightIndex; gMultiplayerSelectedNumberOfRacersCopy = gMultiplayerSelectedNumberOfRacers; @@ -7227,13 +7227,13 @@ s32 menu_track_select_loop(s32 updateRate) { } if (sMenuMusicVolume < 0) { - set_relative_volume_for_music(0); + music_volume_set(0); } else { sMenuMusicVolume += updateRate * 2; if (sMenuMusicVolume >= 81) { sMenuMusicVolume = 80; } - set_relative_volume_for_music((u8)sMenuMusicVolume); + music_volume_set((u8)sMenuMusicVolume); } if (D_801267D0 < 0) { func_8008F534(); @@ -7294,9 +7294,9 @@ void func_8008F534(void) { } unload_font(ASSET_FONTS_BIGFONT); func_8007FF88(); - func_80000B28(); - func_80000C2C(); - func_80001844(); + music_change_on(); + music_voicelimit_change_on(); + music_stop(); set_gIntDisFlag(FALSE); } @@ -7325,7 +7325,7 @@ s32 func_8008F618(Gfx **dlist, MatrixS **mtx) { numVertices = 0; camDisableUserView(0, TRUE); - func_80066230(dlist, mtx); + camera_init_tracks_menu(dlist, mtx); set_ortho_matrix_view(dlist, mtx); reset_render_settings(dlist); gDPPipeSync((*dlist)++); @@ -7647,7 +7647,7 @@ void func_800904E8(s32 updateRate) { x2 = x1 + SCREEN_WIDTH_HALF; y1 = gTrackSelectViewPortHalfY - ((gSelectedTrackY * -gTrackSelectViewportY) - gTrackSelectY) - (gTrackSelectViewportY >> 2); y2 = y1 + gTrackSelectViewPortHalfY; - resize_viewport(0, x1, y1, x2, y2); + viewport_menu_set(0, x1, y1, x2, y2); copy_viewport_background_size_to_coords(0, &x1, &y1, &x2, &y2); camEnableUserView(0, 0); } @@ -7668,7 +7668,7 @@ void func_80090918(s32 updateRate) { if ((D_801269E8 - gTrackSelectX > 4.0f) || (D_801269E8 - gTrackSelectX < -4.0f) || ((D_801269EC - gTrackSelectY > 4.0f)) || (D_801269EC - gTrackSelectY < -4.0f)) { gMenuDelay = 1; } else if (D_800E1E1C) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); D_800E1E1C = 0; } var_t1 = gMenuDelay - 1; @@ -7683,7 +7683,7 @@ void func_80090918(s32 updateRate) { } var_t3 = (((var_t1 + 20) * gTrackSelectViewPortHalfY) / 40) + var_t0; var_a2 = var_t0 - (((var_t1 + 20) * gTrackSelectViewPortHalfY) / 40); - resize_viewport(0, (var_t2 - (var_t1 * 4)) - 80, var_a2, (var_t1 * 4) + var_t2 + 80, var_t3); + viewport_menu_set(0, (var_t2 - (var_t1 * 4)) - 80, var_a2, (var_t1 * 4) + var_t2 + 80, var_t3); gMenuImageStack[4].unk8 = (f32) (sMenuImageProperties[4].unk8 * (1.0f + ((f32) var_t1 / 20.0f))); gMenuImageStack[6].unk8 = (f32) (sMenuImageProperties[6].unk8 * (1.0f + ((f32) var_t1 / 20.0f))); gMenuImageStack[5].unk8 = (f32) (sMenuImageProperties[5].unk8 * (1.0f + ((f32) var_t1 / 20.0f))); @@ -7729,7 +7729,7 @@ void func_80090918(s32 updateRate) { gTrackIdToLoad = gTrackIdForPreview; D_800E1E1C = 1; } else { - play_sound_global(SOUND_UNK_6A, NULL); + sound_play(SOUND_UNK_6A, NULL); } } else if (D_801267D8[4] & B_BUTTON) { disable_new_screen_transitions(); @@ -7760,7 +7760,7 @@ void func_80090918(s32 updateRate) { } } if ((prevValue != D_801269C8) || (D_801269CC != prevValue2)) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); gTrackIdForPreview = D_801268E8[D_801269CC][D_801269C8]; gTrackSelectRow = D_801269CC + 1; D_801269E8 = (D_801269C8 * 320); @@ -7772,7 +7772,7 @@ void func_80090918(s32 updateRate) { void func_80090ED8(UNUSED s32 updateRate) { if (gMenuOptionCount == 1 && gTracksMenuTimeTrialHighlightIndex == 0 && D_80126840 == 0) { - play_sound_global(SOUND_VOICE_TT_SNORE, &D_80126840); + sound_play(SOUND_VOICE_TT_SNORE, &D_80126840); } } @@ -8125,17 +8125,17 @@ void menu_adventure_track_init(void) { if ((result == 5) || (result == 8) || (!(result & 0x40) && (!(settings->courseFlagsPtr[mapId] & RACE_CLEARED)))) { ttVoiceLine = gTTVoiceLines[mapId]; if (ttVoiceLine != -1) { - func_80000FDC(ttVoiceLine, 0, 1.0f); + sound_play_delayed(ttVoiceLine, NULL, 1.0f); } gMenuOptionCount = -1; } else { ttVoiceLine = gTTVoiceLines[mapId]; if (ttVoiceLine != -1) { - func_80000FDC(ttVoiceLine, 0, 0.5f); + sound_play_delayed(ttVoiceLine, NULL, 0.5f); } - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - func_80000B18(); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_change_off(); gMenuOptionCount = 0; func_8009C674(gAdvTrackInitObjectIndices); allocate_menu_images(gAdvTrackInitImageIndices); @@ -8330,9 +8330,9 @@ s32 menu_adventure_track_loop(s32 updateRate) { } gMenuDelay = 1; transition_begin(&sMenuTransitionFadeIn); - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (D_801267D8[0] & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); if (sp20 || sp28) { if (sp28) { set_current_text(0x2710); @@ -8345,12 +8345,12 @@ s32 menu_adventure_track_loop(s32 updateRate) { } } else { if (D_801267D8[0] & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); transition_begin(&sMenuTransitionFadeIn); gMenuDelay = -1; } else if (D_801267D8[0] & (A_BUTTON | START_BUTTON)) { gMenuOptionCount = 1; - play_sound_global(SOUND_CAR_REV2, NULL); + sound_play(SOUND_CAR_REV2, NULL); } else if (sp1C >= 2) { if (D_80126830[0] > 0) { do { @@ -8366,7 +8366,7 @@ s32 menu_adventure_track_loop(s32 updateRate) { vehicle = vehicle2; } if (vehicle != vehicle2) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); gPlayerSelectVehicle[PLAYER_ONE] = vehicle; } } @@ -8392,7 +8392,7 @@ s32 menu_adventure_track_loop(s32 updateRate) { void func_80093A0C(void) { func_8009C4A8((s16 *)&gAdvTrackInitObjectIndices); unload_font(ASSET_FONTS_BIGFONT); - func_80000B28(); + music_change_on(); } //Pause Menu @@ -8534,11 +8534,11 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { s32 buttonsPressed; if (gMenuOptionCap == 0) { - adjust_audio_volume(VOLUME_NORMAL); + sound_volume_change(VOLUME_NORMAL); return 0; } - adjust_audio_volume(VOLUME_LOWER); + sound_volume_change(VOLUME_LOWER); gOptionBlinkTimer = (gOptionBlinkTimer + updateRate) & 0x3F; update_controller_sticks(); @@ -8550,14 +8550,14 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { if (gMenuDelay == 0) { if (gMenuSubOption != 0) { if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); if (gMenuSubOption == 1) { gMenuDelay = 1; } else { gMenuSubOption = 0; } } else if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gMenuSubOption = 0; } else { temp = gMenuSubOption; @@ -8566,11 +8566,11 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { gMenuSubOption = 3 - gMenuSubOption; } if (temp != gMenuSubOption) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } } else if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); if ((gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_QUITGAME]) || ((gTrophyRaceWorldId != 0) && (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_QUITTROPHYRACE]))) { gMenuSubOption = 2; @@ -8594,7 +8594,7 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { gMenuOption = 0; } if (temp != gMenuOption) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } } else { @@ -8612,12 +8612,12 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { return 4; } if (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_CONTINUE]) { - adjust_audio_volume(VOLUME_NORMAL); + sound_volume_change(VOLUME_NORMAL); return 1; } if ((gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_RESTARTRACE]) || (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_RESTARTCHALLENGE])) { if ((gIsInTracksMode == 0) && (gTTVoiceLines[get_ingame_map_id()] != -1)) { - func_80000FDC(gTTVoiceLines[get_ingame_map_id()], 0, 1.0f); + sound_play_delayed(gTTVoiceLines[get_ingame_map_id()], NULL, 1.0f); } return 2; } @@ -8631,7 +8631,7 @@ s32 render_pause_menu(UNUSED Gfx **dl, s32 updateRate) { return 12; } if (gMenuOptionText[gMenuOption] == gMenuText[ASSET_MENU_TEXT_ABANDONCHALLENGE]) { - adjust_audio_volume(VOLUME_NORMAL); + sound_volume_change(VOLUME_NORMAL); return 7; } return 1; @@ -8753,9 +8753,9 @@ void func_80094688(s32 arg0, s32 arg1) { func_80078170(D_80126BB8, D_80126BBC, D_80126BC0); } camEnableUserView(0, 1); - resize_viewport(0, 0, 0, gTrackSelectViewPortX, gTrackSelectViewportY); + viewport_menu_set(0, 0, 0, gTrackSelectViewPortX, gTrackSelectViewportY); } - adjust_audio_volume(VOLUME_LOWER_AMBIENT); + sound_volume_change(VOLUME_LOWER_AMBIENT); } void func_80094A5C(void) { @@ -8808,15 +8808,15 @@ void func_80094C14(s32 updateRate) { switch (gMenuCurIndex) { case 0: if (normalise_time(240) < gOpacityDecayTimer) { - set_music_fade_timer(-256); + music_fade(-256); gMenuCurIndex = 1; } break; case 1: if (normalise_time(300) < gOpacityDecayTimer) { - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - set_music_fade_timer(256); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_fade(256); } break; } @@ -8857,7 +8857,7 @@ void func_80094D28(UNUSED s32 updateRate) { viewportULY = ((gTrackSelectViewPortHalfY - ((gTrackSelectViewPortHalfY * 4) / 5)) * temp) / 60; viewportLRY = gTrackSelectViewportY - (((gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY / 5)) * temp) / 60); viewportULX = (temp * 80) / 60; - resize_viewport(0, viewportULX, viewportULY, SCREEN_WIDTH - viewportULX, viewportLRY); + viewport_menu_set(0, viewportULX, viewportULY, SCREEN_WIDTH - viewportULX, viewportLRY); gMenuImageStack[4].unkC = 0.0f; gMenuImageStack[4].unk10 = gTrackSelectViewPortHalfY - ((viewportULY + viewportLRY) >> 1); gMenuImageStack[4].unk8 = sMenuImageProperties[4].unk8 * (2.0f - (temp / 60.0f)); @@ -9102,7 +9102,7 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update break; case 1: if (D_80126A94 > 60 || buttonsPressed & (A_BUTTON | START_BUTTON)) { - resize_viewport(0, 80, gTrackSelectViewPortHalfY - ((gTrackSelectViewPortHalfY * 4) / 5), SCREEN_HEIGHT, (gTrackSelectViewPortHalfY / 5) + gTrackSelectViewPortHalfY); + viewport_menu_set(0, 80, gTrackSelectViewPortHalfY - ((gTrackSelectViewPortHalfY * 4) / 5), SCREEN_HEIGHT, (gTrackSelectViewPortHalfY / 5) + gTrackSelectViewPortHalfY); gMenuImageStack[4].unkC = 0.0f; gMenuImageStack[4].unk10 = 36.0f; gMenuImageStack[4].unk8 = sMenuImageProperties[4].unk8; @@ -9125,7 +9125,7 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update case 2: if (func_80081F4C(updateRate) != 0) { if (gTrophyRaceWorldId != 0) { - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuOptionCount = 8; } else if (settings->display_times) { @@ -9178,12 +9178,12 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update if (D_80126A98 != 0) { D_80126A98++; if (D_80126A98 >= 5) { - adjust_audio_volume(3); + sound_volume_change(3); sp54 = func_8001B738(0); if ((sp54 & 0xFF) == 5) { sp54 = func_8001B738(0); } - adjust_audio_volume(2); + sound_volume_change(2); if (sp54 != 0) { func_80095624(sp54); sp54 = 1; @@ -9216,7 +9216,7 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update if (buttonsPressed & (A_BUTTON | START_BUTTON)) { if (gMenuSubOption == 1) { sp50 = 1; - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuOptionCount = 8; } else { @@ -9250,7 +9250,7 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update } else if (temp_v1_14 == gMenuText[ASSET_MENU_TEXT_QUIT]) { gMenuSubOption = 2; } else { - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuOptionCount = 8; } @@ -9274,16 +9274,16 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update } } if (sp54 != 0) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (sp50 != 0) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (sp4C != 0) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } break; case 7: if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuOptionCount = 8; } @@ -9318,7 +9318,7 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update temp_v1_14 = gResultOptionText[gMenuOption]; if (temp_v1_14 == gMenuText[ASSET_MENU_TEXT_TRYAGAIN]) { if (!gIsInTracksMode && gTTVoiceLines[get_ingame_map_id()] != -1) { - func_80000FDC(gTTVoiceLines[get_ingame_map_id()], 0, 1.0f); + sound_play_delayed(gTTVoiceLines[get_ingame_map_id()], NULL, 1.0f); } ret = 2; } else if (temp_v1_14 == gMenuText[ASSET_MENU_TEXT_SELECTTRACK]) { @@ -9365,7 +9365,7 @@ void func_80096790(void) { D_80126BBC = 0; unload_big_font_4(); - adjust_audio_volume(VOLUME_NORMAL); + sound_volume_change(VOLUME_NORMAL); } /** @@ -9404,9 +9404,9 @@ void menu_results_init(void) { assign_racer_portrait_textures(); load_font(ASSET_FONTS_BIGFONT); transition_begin(&sMenuTransitionFadeOut); - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - set_music_fade_timer(128); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_fade(128); } GLOBAL_ASM("asm/non_matchings/menu/func_80096978.s") @@ -9428,7 +9428,7 @@ s32 menu_results_loop(s32 updateRate) { gMenuOptionCount = 1; } else if (gMenuOptionCount < 0 && gOpacityDecayTimer > 20) { gMenuOptionCount = 0; - play_sound_global(SOUND_WHOOSH1, NULL); + sound_play(SOUND_WHOOSH1, NULL); } } if (gMenuDelay < 20) { @@ -9449,7 +9449,7 @@ s32 menu_results_loop(s32 updateRate) { if (D_801267D8[4] & (A_BUTTON | START_BUTTON)) { if (gMenuSubOption == 1) { playSelectSound = TRUE; - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; } else { @@ -9478,7 +9478,7 @@ s32 menu_results_loop(s32 updateRate) { } else { gMenuDelay = 1; transition_begin(&sMenuTransitionFadeIn); - set_music_fade_timer(-128); + music_fade(-128); } } else { prevOption = gMenuOption; @@ -9493,11 +9493,11 @@ s32 menu_results_loop(s32 updateRate) { } } if (playBackSound) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (playSelectSound) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if (playPickSound) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } else { @@ -9807,7 +9807,7 @@ s32 menu_enter_filename_loop(s32 updateRate) { D_80126C74[gCurrentFilenameChars] = gFileNameValidChars[*temp_a1]; gCurrentFilenameChars++; D_80126C74[gCurrentFilenameChars] = '\0'; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); if (gCurrentFilenameChars >= D_80126C78) { *D_80126C6C = 30; } @@ -9816,7 +9816,7 @@ s32 menu_enter_filename_loop(s32 updateRate) { gCurrentFilenameChars--; D_80126C74[gCurrentFilenameChars] = '\0'; } - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else { if ((gCurrentFilenameChars != 0) || (D_80126C74[0] == '\0')) { for (var_v1 = gCurrentFilenameChars; var_v1 < D_80126C78; var_v1++) { @@ -9824,7 +9824,7 @@ s32 menu_enter_filename_loop(s32 updateRate) { } } D_80126C74[D_80126C78] = '\0'; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); D_80126C48 = TRUE; } } else if (buttonsPressed & B_BUTTON) { @@ -9832,7 +9832,7 @@ s32 menu_enter_filename_loop(s32 updateRate) { gCurrentFilenameChars--; } D_80126C74[gCurrentFilenameChars] = '\0'; - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else { var_v0_2 = *temp_a1; if (joytickXAxis < 0) { @@ -9848,17 +9848,17 @@ s32 menu_enter_filename_loop(s32 updateRate) { var_v0_2 = 0; } if (var_v0_2 != *temp_a1) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); *D_80126C6C = var_v0_2; } } } else if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); D_80126C48 = TRUE; } else if (buttonsPressed & B_BUTTON) { gCurrentFilenameChars--; D_80126C74[gCurrentFilenameChars] = '\0'; - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } render_enter_filename_ui(updateRate); return D_80126C48; @@ -9919,9 +9919,9 @@ void menu_trophy_race_round_init(void) { gMenuDelay = 0; gTrackNameVoiceDelay = 10; load_font(ASSET_FONTS_BIGFONT); - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - set_music_fade_timer(256); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_fade(256); } /** @@ -9969,7 +9969,7 @@ s32 menu_trophy_race_round_loop(s32 updateRate) { temp = trackMenuIds[(((gTrophyRaceWorldId - 1) * 6) + gTrophyRaceRound)]; ttVoiceLine = gTTVoiceLines[temp]; if (ttVoiceLine != -1) { - play_sound_global(ttVoiceLine, NULL); + sound_play(ttVoiceLine, NULL); } gTrackNameVoiceDelay = 0; } @@ -9985,7 +9985,7 @@ s32 menu_trophy_race_round_loop(s32 updateRate) { if ((D_801267D8[4] & (A_BUTTON | START_BUTTON)) != 0) { transition_begin(&sMenuTransitionFadeIn); gMenuDelay = 1; - set_music_fade_timer(-128); + music_fade(-128); } } if (gMenuDelay >= 31) { @@ -10101,9 +10101,9 @@ void menu_trophy_race_rankings_init(void) { } } load_font(ASSET_FONTS_BIGFONT); - set_music_player_voice_limit(24); - play_music(SEQUENCE_MAIN_MENU); - set_music_fade_timer(256); + music_voicelimit_set(24); + music_play(SEQUENCE_MAIN_MENU); + music_fade(256); func_80098774(0); func_80081E54(*gTrophyRankingsTitle, 0.5f, 20.0f, 0.5f, 0, 0); } @@ -10180,7 +10180,7 @@ s32 menu_trophy_race_rankings_loop(s32 updateRate) { } } if (temp5) { - play_sound_global(SOUND_TING_HIGH, NULL); + sound_play(SOUND_TING_HIGH, NULL); } } @@ -10202,10 +10202,10 @@ s32 menu_trophy_race_rankings_loop(s32 updateRate) { gMenuOption = gResultOptionCount - 1; } if (temp1 != gMenuOption) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - set_music_fade_timer(-128); + music_fade(-128); transition_begin(&sMenuTransitionFadeIn); gMenuOptionCount = 3; for(i = 0; i < gRankingPlayerCount; i++){ @@ -10341,7 +10341,7 @@ s32 func_800998E0(s32 arg0) { result = 0; if (arg0 >= 0 && arg0 < D_801264D4) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); temp_s0 = D_80126540[arg0]; result = func_800753D8(D_801264D0, temp_s0); if (result == 0) { @@ -10593,11 +10593,11 @@ s32 menu_ghost_data_loop(s32 updateRate) { case 0: if ((pressedButtons & (START_BUTTON | A_BUTTON)) && (D_801264D4 > 0)) { gMenuOptionCount = 2; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else if ((pressedButtons & B_BUTTON) || ((pressedButtons & (START_BUTTON | A_BUTTON)) && (D_801264D4 == 0))) { gMenuDelay = 1; transition_begin(&sMenuTransitionFadeIn); - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else { temp = D_80126498; if (yStick < 0 && D_80126498 < (D_801264D4 - 1)) { @@ -10613,14 +10613,14 @@ s32 menu_ghost_data_loop(s32 updateRate) { } } if (temp != D_80126498) { - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } break; case 1: if (pressedButtons & B_BUTTON) { gMenuOptionCount = 0; - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else { if (pressedButtons & (START_BUTTON | A_BUTTON)) { if (func_800998E0(D_80126498) == 0) { @@ -10633,26 +10633,26 @@ s32 menu_ghost_data_loop(s32 updateRate) { if (D_80126498 < gOpacityDecayTimer) { gOpacityDecayTimer = D_80126498; } - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); } else { gMenuDelay = 1; transition_begin(&sMenuTransitionFadeIn); - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } gMenuOptionCount = 0; } else if (yStick < 0) { gMenuOptionCount = 2; - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } } break; case 2: if (pressedButtons & (START_BUTTON | A_BUTTON | B_BUTTON)) { gMenuOptionCount = 0; - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (yStick > 0) { gMenuOptionCount = 1; - play_sound_global(SOUND_MENU_PICK2, NULL); + sound_play(SOUND_MENU_PICK2, NULL); } break; } @@ -10721,7 +10721,7 @@ s32 menu_cinematic_loop(UNUSED s32 updateRate) { load_level_for_menu(D_801267EC[0], D_801267EC[1], D_801267EC[2]); } else { if (D_8012684C) { - func_80000B18(); + music_change_off(); } func_8009AF18(); return D_80126824; @@ -10774,10 +10774,10 @@ void menu_credits_init(void) { D_80126BE0 = 0; set_background_fill_colour(0, 0, 0); if (osTvType == TV_TYPE_PAL) { - resize_viewport(0, 0, 38, SCREEN_WIDTH, 224); + viewport_menu_set(0, 0, 38, SCREEN_WIDTH, 224); set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT_PAL); } else { - resize_viewport(0, 0, 40, SCREEN_WIDTH, 196); + viewport_menu_set(0, 0, 40, SCREEN_WIDTH, 196); set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT); } copy_viewports_to_stack(); @@ -10786,22 +10786,22 @@ void menu_credits_init(void) { allocate_menu_images(gCreditsImageIndices); assign_racer_portrait_textures(); load_font(ASSET_FONTS_BIGFONT); - set_music_player_voice_limit(24); + music_voicelimit_set(24); gCreditsControlData[130] = CREDITS_END; // DONT show developer times if (gViewingCreditsFromCheat) { - play_music(SEQUENCE_DARKMOON_CAVERNS); + music_play(SEQUENCE_DARKMOON_CAVERNS); gCreditsArray[84] = gCreditsLastMessageArray[2]; // "THE END" gCreditsArray[85] = gCreditsLastMessageArray[3]; // "NO CHEAT" gCreditsArray[86] = gCreditsLastMessageArray[4]; // "THIS TIME." gViewingCreditsFromCheat = FALSE; } else { if (settings->bosses & 0x20) { - play_music(SEQUENCE_CRESCENT_ISLAND); + music_play(SEQUENCE_CRESCENT_ISLAND); gCreditsArray[84] = gCreditsLastMessageArray[1]; // "TO BE CONTINUED ..." gCreditsControlData[130] = CREDITS_DEV_TIMES(CREDITS_DEV_TIMES_TIME); // Show developer times. D_80126BCC = 9; } else { - play_music(SEQUENCE_DARKMOON_CAVERNS); + music_play(SEQUENCE_DARKMOON_CAVERNS); gCreditsArray[84] = gCreditsLastMessageArray[0]; // "THE END?" } @@ -10818,7 +10818,7 @@ void menu_credits_init(void) { gCreditsArray[85] = (char *)(*gCheatsAssetData) + (cheatOffsets)[(cheatIndex << 1) + 1]; // Cheat name gCreditsArray[86] = (char *)(*gCheatsAssetData) + (cheatOffsets)[(cheatIndex << 1)]; // Cheat code } - func_80000B18(); + music_change_off(); enable_new_screen_transitions(); set_gIntDisFlag(TRUE); } @@ -10847,7 +10847,7 @@ void render_credits_fade(s32 x1, s32 y1, s32 x2, s32 y2, s32 a) { GLOBAL_ASM("asm/non_matchings/menu/menu_credits_loop.s") void func_8009BCF0(void) { - set_music_player_voice_limit(18); + music_voicelimit_set(18); disable_new_screen_transitions(); camDisableUserView(0, FALSE); set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, VIEWPORT_AUTO, VIEWPORT_AUTO); @@ -11475,10 +11475,10 @@ void render_dialogue_option(char *text, s32 yOffset, s32 optionID) { void handle_menu_joystick_input(void) { if (gControllersYAxisDirection[0] < 0) { gDialogueSubmenu = gDialogueSubmenu + 1; - play_sound_global(SOUND_MENU_PICK, NULL); + sound_play(SOUND_MENU_PICK, NULL); } else if (gControllersYAxisDirection[0] > 0) { gDialogueSubmenu = gDialogueSubmenu - 1; - play_sound_global(SOUND_MENU_PICK, NULL); + sound_play(SOUND_MENU_PICK, NULL); } if (gDialogueSubmenu < 0) { @@ -11585,9 +11585,9 @@ s32 taj_menu_loop(void) { handle_menu_joystick_input(); if (buttonsPressed & B_BUTTON) { sp2C = 3; - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); } else if (buttonsPressed & A_BUTTON) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); switch (gDialogueItemSelection) { case 1: sCurrentMenuID = 3; @@ -11608,7 +11608,7 @@ s32 taj_menu_loop(void) { case 2: handle_menu_joystick_input(); if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); play_taj_voice_clip(SOUND_VOICE_TAJ_MENUBACK, TRUE); sCurrentMenuID = 1; gDialogueSubmenu = 0; @@ -11626,13 +11626,13 @@ s32 taj_menu_loop(void) { case 3: handle_menu_joystick_input(); if ((buttonsPressed & B_BUTTON) || ((buttonsPressed & A_BUTTON) && (gDialogueItemSelection == 3))) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); play_taj_voice_clip(SOUND_VOICE_TAJ_MENUBACK2, TRUE); sCurrentMenuID = 1; gDialogueSubmenu = 3; } else if (buttonsPressed & A_BUTTON) { sp2C = gDialogueItemSelection | 0x40; - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); sCurrentMenuID = 0x63; } break; @@ -11705,7 +11705,7 @@ s32 dialogue_race_defeat(void) { render_dialogue_option(gMenuText[ASSET_MENU_TEXT_EXIT], 20, 1); // EXIT handle_menu_joystick_input(); if (playerInput & A_BUTTON) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); switch (gDialogueItemSelection) { case 0: state = 1; @@ -11787,13 +11787,13 @@ s32 tt_menu_loop(void) { if(gPreviousMenuID && !gPreviousMenuID && !gPreviousMenuID){} // Fakematch switch (gDialogueItemSelection) { case 1: - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gSaveGhostDelayCounter = 0; gPreviousMenuID = TT_MENU_ROOT; sCurrentMenuID = TT_MENU_SAVE_GHOST; break; case 3: - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); play_tt_voice_clip(SOUND_VOICE_TT_GAME_STATUS, TRUE); func_8009C674(D_800E1E2C); allocate_menu_images(D_800E1E40); @@ -11803,7 +11803,7 @@ s32 tt_menu_loop(void) { } currentOption = gDialogueItemSelection + 1; } else if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); currentOption = 3; } if (sCurrentMenuID == TT_MENU_GAME_STATUS) { @@ -11877,12 +11877,12 @@ s32 tt_menu_loop(void) { render_dialogue_text(1, POS_CENTRED, 50, gMenuText[ASSET_MENU_TEXT_INSERTDEVICE_4], 1, HORZ_ALIGN_CENTER); // the Controller Pak render_dialogue_text(1, POS_CENTRED, 66, gMenuText[ASSET_MENU_TEXT_INSERTDEVICE_6], 1, HORZ_ALIGN_CENTER); // insert it now! if (buttonsPressed & (A_BUTTON | START_BUTTON)) { - play_sound_global(SOUND_SELECT2, NULL); + sound_play(SOUND_SELECT2, NULL); gSaveGhostDelayCounter = 0; gPreviousMenuID = TT_MENU_INSERT_RUMBLE_PAK; sCurrentMenuID = TT_MENU_SAVE_GHOST; } else if (buttonsPressed & B_BUTTON) { - play_sound_global(SOUND_MENU_BACK3, NULL); + sound_play(SOUND_MENU_BACK3, NULL); sCurrentMenuID = TT_MENU_ROOT; } break; diff --git a/src/object_functions.c b/src/object_functions.c index 553ae4ff..ea5ff060 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -290,7 +290,7 @@ void obj_loop_fireball_octoweapon(Object *obj, s32 updateRate) { racer->bubbleTrapTimer = 60; obj->properties.fireball.timer = -60; obj->properties.fireball.obj = someObj; - play_sound_global(SOUND_BUBBLE_RISE, &weapon->soundMask); + sound_play(SOUND_BUBBLE_RISE, &weapon->soundMask); } } } @@ -656,27 +656,27 @@ void obj_loop_trophycab(Object *obj, s32 updateRate) { if (gfxData->unk4 == 0) { if (worldBalloons) { obj->properties.trophyCabinet.action = 1; - play_sound_global(SOUND_VOICE_TT_TROPHY_RACE, NULL); + sound_play(SOUND_VOICE_TT_TROPHY_RACE, NULL); func_800A3870(); } else { // Text for "TROPHY RACE" "TO ENTER THE TROPHY RACE, YOU MUST COMPLETE ALL THE TASKS FROM THIS WORLD. KEEP RACING!" set_current_text(ASSET_GAME_TEXT_4); gfxData->unk4 = 180; gfxData->unk0 = 140; - set_sndfx_player_voice_limit(16); - set_music_fade_timer(-8); - play_sequence(SEQUENCE_NO_TROPHY_FOR_YOU); + music_jingle_voicelimit_set(16); + music_fade(-8); + music_jingle_play(SEQUENCE_NO_TROPHY_FOR_YOU); } } } } - if (gfxData->unk0 && func_80001C08() == 0) { + if (gfxData->unk0 && music_jingle_playing() == 0) { if (updateRate < gfxData->unk0) { gfxData->unk0 -= updateRate; } else { gfxData->unk0 = 0; - set_music_fade_timer(8); - set_sndfx_player_voice_limit(6); + music_fade(8); + music_jingle_voicelimit_set(6); } } if (obj->unk5C->unk100 != NULL || func_800C3400()) { @@ -1033,7 +1033,7 @@ void obj_loop_groundzipper(Object *obj, UNUSED s32 updateRate) { diffZ = racerObj->segment.trans.z_position - obj->segment.trans.z_position; if ((s32) sqrtf((diffX * diffX) + (diffY * diffY) + (diffZ * diffZ)) < obj->properties.zipper.radius) { if (racer->playerIndex != PLAYER_COMPUTER) { - play_sound_spatial(SOUND_ZIP_PAD_BOOST, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, NULL); + sound_play_spatial(SOUND_ZIP_PAD_BOOST, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, NULL); } racer->boostTimer = normalise_time(45); racer->boostType = BOOST_LARGE; @@ -1246,8 +1246,8 @@ void obj_loop_stopwatchman(Object *obj, s32 updateRate) { obj->properties.npc.action = TT_MODE_APPROACH_PLAYER; get_fog_settings(PLAYER_ONE, &tt->fogNear, &tt->fogFar, &tt->fogR, &tt->fogG, &tt->fogB); slowly_change_fog(PLAYER_ONE, 128, 128, 255, 900, 998, 240); - func_800012E8(); - play_music(SEQUENCE_TTS_THEME); + music_channel_reset_all(); + music_play(SEQUENCE_TTS_THEME); if (racerObj != NULL) { racer_sound_free(racerObj); racer->vehicleSound = NULL; @@ -1341,8 +1341,8 @@ void obj_loop_stopwatchman(Object *obj, s32 updateRate) { play_tt_voice_clip(SOUND_VOICE_TT_OK, 1); } slowly_change_fog(PLAYER_ONE, tt->fogR, tt->fogG, tt->fogB, tt->fogNear, tt->fogFar, 180); - play_music(header->music); - func_80001074(header->instruments); + music_play(header->music); + music_dynamic_set(header->instruments); racer->vehicleSound = func_80004B40(racer->characterId, racer->vehicleID); } obj->properties.npc.timer = 180; @@ -1411,7 +1411,7 @@ void play_tt_voice_clip(u16 soundID, s32 interrupt) { gTTSoundMask = NULL; } if (gTTSoundMask == NULL) { - play_sound_global(soundID, &gTTSoundMask); + sound_play(soundID, &gTTSoundMask); } } @@ -2029,8 +2029,8 @@ void obj_loop_teleport(Object *obj, UNUSED s32 updateRate) { if (obj->interactObj->distance < 120) { begin_level_teleport(level_entry->levelID); obj->properties.lighthouse.active = FALSE; - play_sound_global(SOUND_WHOOSH2, NULL); - func_80000FDC(SOUND_VOICE_TT_FUTURE_FUN_LAND, 0, 1.0f); + sound_play(SOUND_WHOOSH2, NULL); + sound_play_delayed(SOUND_VOICE_TT_FUTURE_FUN_LAND, NULL, 1.0f); } } } @@ -2184,7 +2184,7 @@ void obj_init_parkwarden(Object *obj, UNUSED LevelObjectEntry_Parkwarden *entry) taj->unk0 = 0.0f; taj->unk28 = 0; taj->unk2C = 0; - taj->unk34 = 0; + taj->musicFade = 0; taj->unk36 = 0; gTajSoundMask = NULL; gTajSoundID = SOUND_VOICE_TAJ_HELLO; @@ -2279,9 +2279,9 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { } obj->interactObj->flags = INTERACT_FLAGS_SOLID; if ((should_taj_teleport() || var_a2) && (obj->properties.npc.action == TAJ_MODE_ROAM || obj->properties.npc.action == TAJ_MODE_UNK1F)) { - func_800012E8(); - set_music_player_voice_limit(24); - play_music(SEQUENCE_ENTRANCED); + music_channel_reset_all(); + music_voicelimit_set(24); + music_play(SEQUENCE_ENTRANCED); if (racerObj != NULL) { racer_sound_free(racerObj); racer->vehicleSound = NULL; @@ -2434,9 +2434,9 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { taj->unk1C = 0; play_taj_voice_clip(SOUND_VOICE_TAJ_BYE, TRUE); slowly_change_fog(PLAYER_ONE, taj->fogR, taj->fogG, taj->fogB, taj->fogNear, taj->fogFar, 180); - set_music_player_voice_limit(levelHeader->voiceLimit); - play_music(levelHeader->music); - func_80001074(levelHeader->instruments); + music_voicelimit_set(levelHeader->voiceLimit); + music_play(levelHeader->music); + music_dynamic_set(levelHeader->instruments); func_80008168(); } if (dialogueID & 0x80) { @@ -2485,7 +2485,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { racer->transparency = 0; despawn_player_racer(racerObj, gTajDialogueChoice & 0xF); obj->properties.npc.action = TAJ_MODE_TRANSFORM_END; - play_sound_global(SOUND_CYMBAL, NULL); + sound_play(SOUND_CYMBAL, NULL); transition_begin(&gTajTransformTransitionEnd); } } @@ -2510,7 +2510,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { transition_begin(&gTajTransition); sp6B = 1; obj->properties.npc.action = TAJ_MODE_SET_CHALLENGE; - play_sound_global(SOUND_WHOOSH4, NULL); + sound_play(SOUND_WHOOSH4, NULL); taj->animFrameF = 0.0f; } else { obj->properties.npc.action = TAJ_MODE_DIALOGUE; @@ -2536,7 +2536,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { ); } obj->properties.npc.action = TAJ_MODE_TELEPORT_AWAY_BEGIN; - play_sound_global(SOUND_WHOOSH4, NULL); + sound_play(SOUND_WHOOSH4, NULL); racer->vehicleSound = func_80004B40(racer->characterId, racer->vehicleID); } break; @@ -2556,7 +2556,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { if (obj->segment.object.opacity > var_a2) { obj->segment.object.opacity -= var_a2; } else { - play_sound_global(SOUND_WHOOSH4, NULL); + sound_play(SOUND_WHOOSH4, NULL); sp6B = 1; obj->segment.object.opacity = 0; obj->properties.npc.action = TAJ_MODE_TELEPORT_TO_PLAYER_END; @@ -2597,9 +2597,9 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { } else { racer->vehicleSound = func_80004B40(racer->characterId, racer->vehicleID); slowly_change_fog(PLAYER_ONE, taj->fogR, taj->fogG, taj->fogB, taj->fogNear, taj->fogFar, 180); - set_music_player_voice_limit(levelHeader->voiceLimit); - play_music(levelHeader->music); - func_80001074(levelHeader->instruments); + music_voicelimit_set(levelHeader->voiceLimit); + music_play(levelHeader->music); + music_dynamic_set(levelHeader->instruments); init_racer_for_challenge(racer->vehicleID); telepoint = find_furthest_telepoint(obj->segment.trans.x_position, obj->segment.trans.z_position); if (telepoint != NULL) { @@ -2709,38 +2709,38 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { zPosDiff = obj->segment.trans.z_position - temp_v0_22->trans.z_position; arctan = func_800090C0(xPosDiff, zPosDiff, temp_v0_22->trans.y_rotation); temp = arctan; - func_80001268(0xA, sp3C); - func_80001268(0xB, sp3C); - func_80001268(0xF, sp3C); - musicSetChlPan(0xA, temp); - musicSetChlPan(0xB, temp); - musicSetChlPan(0xF, temp); - func_80001170(0xA); - func_80001170(0xB); - func_80001170(0xF); - func_80001268(3, 0x7F - sp3C); + music_channel_fade_set(10, sp3C); + music_channel_fade_set(11, sp3C); + music_channel_fade_set(15, sp3C); + music_channel_pan_set(10, temp); + music_channel_pan_set(11, temp); + music_channel_pan_set(15, temp); + music_channel_on(10); + music_channel_on(11); + music_channel_on(15); + music_channel_fade_set(3, 127 - sp3C); } else { - func_80001114(0xA); - func_80001114(0xB); - func_80001114(0xF); + music_channel_off(10); + music_channel_off(11); + music_channel_off(15); } } switch (taj->unk36) { case 0: - if (taj->unk34 > updateRate << 7) { - taj->unk34 -= updateRate << 7; - func_80001170(14); - func_80001268(14, taj->unk34 >> 8); + if (taj->musicFade > updateRate << 7) { + taj->musicFade -= updateRate << 7; + music_channel_on(14); + music_channel_fade_set(14, taj->musicFade >> 8); taj->unk30 = 0; } else { - taj->unk34 = 0; - func_80001114(14); + taj->musicFade = 0; + music_channel_off(14); if (taj->unk30 == 0) { taj->unk30 = get_random_number_from_range(600, 900); taj->unk2C = 0; } } - if ((taj->unk30 != 0) && ((musicGetChanMask() & ~0x4000) == 0xB)) { + if ((taj->unk30 != 0) && ((music_channel_get_mask() & ~0x4000) == 0xB)) { taj->unk2C += updateRate; if (taj->unk30 < taj->unk2C) { taj->unk36 = 1; @@ -2752,17 +2752,17 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { } break; case 1: - if ((musicGetChanMask() & ~0x4000) == 0xB) { - taj->unk34 += (updateRate * 128); - if (taj->unk34 > 0x7F00) { - taj->unk34 = 0x7F00; + if ((music_channel_get_mask() & ~0x4000) == 0xB) { + taj->musicFade += (updateRate * 128); + if (taj->musicFade > 0x7F00) { + taj->musicFade = 0x7F00; } taj->unk2C -= updateRate; if (taj->unk2C < 0) { taj->unk36 = 0; } - func_80001170(0xE); - func_80001268(0xE, taj->unk34 >> 8); + music_channel_on(14); + music_channel_fade_set(14, taj->musicFade >> 8); } else { taj->unk36 = 0; taj->unk2C = 0; @@ -2770,7 +2770,7 @@ void obj_loop_parkwarden(Object *obj, s32 updateRate) { } break; } - taj->unk28 = musicGetChanMask() & 0xBFFF; + taj->unk28 = music_channel_get_mask() & 0xBFFF; break; } obj->segment.trans.y_position = tempPosY; @@ -2807,7 +2807,7 @@ void play_taj_voice_clip(u16 soundID, s32 interrupt) { gTajSoundMask = 0; } if (!gTajSoundMask) { - play_sound_global(soundID, &gTajSoundMask); + sound_play(soundID, &gTajSoundMask); } } @@ -2987,7 +2987,7 @@ void obj_loop_bonus(Object *obj, UNUSED s32 updateRate) { if (racer->bananas < 10) { racer->bananas = 10; play_sound_at_position(SOUND_SELECT, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, 4, NULL); - play_sound_spatial(racer->characterId + SOUND_UNK_7B, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, NULL); + sound_play_spatial(racer->characterId + SOUND_UNK_7B, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, NULL); } } } @@ -3088,7 +3088,7 @@ void obj_loop_goldenballoon(Object *obj, s32 updateRate) { } settings->courseFlagsPtr[settings->courseId] |= flag; if (1) {} // Fakematch - play_sound_spatial(SOUND_COLLECT_BALLOON, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); + sound_play_spatial(SOUND_COLLECT_BALLOON, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); obj->properties.npc.timer = 16; obj->unk74 = 2; obj->segment.trans.flags |= OBJ_FLAGS_INVISIBLE; @@ -3213,10 +3213,10 @@ void obj_loop_ttdoor(Object *obj, s32 updateRate) { racer = (Object_Racer *) racerObj->unk64; if (racer->playerIndex != PLAYER_COMPUTER && racerObj == obj->unk5C->unk100) { if (ttDoor->unk13 != -1 && func_800C3400() == 0 && ttDoor->unkC == 0) { - set_music_fade_timer(-8); + music_fade(-8); ttDoor->unk8 = 140; - set_sndfx_player_voice_limit(16); - play_sequence(SEQUENCE_NO_TROPHY_FOR_YOU); + music_jingle_voicelimit_set(16); + music_jingle_play(SEQUENCE_NO_TROPHY_FOR_YOU); set_current_text(ttDoor->unk13 & 0xFF); } ttDoor->unkC = 300; @@ -3226,13 +3226,13 @@ void obj_loop_ttdoor(Object *obj, s32 updateRate) { } } } - if (ttDoor->unk8 && func_80001C08() == 0) { + if (ttDoor->unk8 && music_jingle_playing() == 0) { if (updateRate < ttDoor->unk8) { ttDoor->unk8 -= updateRate; } else { ttDoor->unk8 = 0.0f; - set_music_fade_timer(8); - set_sndfx_player_voice_limit(6); + music_fade(8); + music_jingle_voicelimit_set(6); } } if (ttDoor->unkC > 0) { @@ -3656,7 +3656,7 @@ void obj_loop_flycoin(Object *obj, s32 updateRate) { } free_object(obj); if (racerObj->playerIndex != PLAYER_COMPUTER) { - play_sound_global(SOUND_SELECT, NULL); + sound_play(SOUND_SELECT, NULL); } } obj->segment.animFrame += updateRate * 8; @@ -3820,7 +3820,7 @@ void obj_loop_banana(Object *obj, s32 updateRate) { func_800096F8(prevSoundMask); } if (racer->playerIndex != PLAYER_COMPUTER && racer->bananas == 9) { - play_sound_spatial(racer->characterId + SOUND_UNK_7B, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, NULL); + sound_play_spatial(racer->characterId + SOUND_UNK_7B, racerObj->segment.trans.x_position, racerObj->segment.trans.y_position, racerObj->segment.trans.z_position, NULL); } racer->bananas++; if (banana->spawner != NULL) { @@ -3913,7 +3913,7 @@ void obj_loop_silvercoin(Object *obj, s32 updateRate) { obj->properties.npc.action |= SILVER_COIN_COLLECTED << racer->playerIndex; obj->properties.npc.timer = 16; obj->segment.trans.flags |= OBJ_FLAGS_INVIS_PLAYER1 << racer->playerIndex; - play_sequence(SEQUENCE_SILVER_COIN_1 + racer->silverCoinCount); + music_jingle_play(SEQUENCE_SILVER_COIN_1 + racer->silverCoinCount); racer->silverCoinCount++; } } @@ -3966,7 +3966,7 @@ void obj_loop_worldkey(Object *worldKeyObj, s32 updateRate) { Object_WorldKey *obj64 = &playerObj->unk64->world_key; if (obj64->unk0 != -1) { // Player has grabbed the key! - play_sequence(SEQUENCE_KEY_COLLECT); + music_jingle_play(SEQUENCE_KEY_COLLECT); settings = get_settings(); settings->keys |= 1 << worldKeyObj->properties.worldKey.keyID; // Set key flag free_object(worldKeyObj); // Makes the key unload. @@ -4119,7 +4119,7 @@ void obj_loop_weaponballoon(Object *obj, s32 updateRate) { if (racer->balloon_level > 2) { newvar = 2; } - play_sound_global(SOUND_COLLECT_ITEM + newvar, NULL); + sound_play(SOUND_COLLECT_ITEM + newvar, NULL); } else { play_sound_at_position(SOUND_BALLOON_POP, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 4, NULL); } @@ -4129,7 +4129,7 @@ void obj_loop_weaponballoon(Object *obj, s32 updateRate) { if (newvar > 0) { set_time_trial_start_voice(SOUND_VOICE_TT_POWERUP, 1.0f, racer->playerIndex); } - play_sound_global(SOUND_COLLECT_ITEM + racer->balloon_level, NULL); + sound_play(SOUND_COLLECT_ITEM + racer->balloon_level, NULL); } } obj->unk74 = 1; @@ -4491,7 +4491,7 @@ void play_rocket_trailing_sound(Object *obj, struct Object_Weapon *weapon, u16 s diffY = racer->segment.trans.y_position - obj->segment.trans.y_position; diffZ = racer->segment.trans.z_position - obj->segment.trans.z_position; distance = sqrtf((diffX * diffX) + (diffY * diffY) + (diffZ * diffZ)); - if (distance <= func_80001CB8(soundID)) { + if (distance <= sound_distance(soundID)) { shouldPlaySound = TRUE; } } @@ -4551,7 +4551,7 @@ void obj_init_audio(Object *obj, LevelObjectEntry_Audio *entry) { obj64->unk5 = entry->unkD; obj64->unkD = entry->unk10; obj64->soundMask = NULL; - if (ALBankFile_80115D14_GetSoundDecayTime(obj64->soundId)) { + if (gSoundBank_GetSoundDecayTime(obj64->soundId)) { func_8000974C(obj64->soundId, entry->common.x, entry->common.y, entry->common.z, 9, obj64->unk5, obj64->unk4, obj64->unk2, obj64->unkC, obj64->unk6, obj64->unkD, &obj64->soundMask); diff --git a/src/objects.c b/src/objects.c index 8e8c077a..d28f6b3a 100644 --- a/src/objects.c +++ b/src/objects.c @@ -3609,8 +3609,8 @@ void func_80016500(Object *obj, Object_Racer *racer) { angle = 127; } if (racer->unk1F6 == 0) { - play_sound_global(SOUND_CRASH_CHARACTER, &racer->unk220); - func_80001FB8(SOUND_CRASH_CHARACTER, (s32 *) racer->unk220, angle); + sound_play(SOUND_CRASH_CHARACTER, &racer->unk220); + sound_volume_set_relative(SOUND_CRASH_CHARACTER, (s32 *) racer->unk220, angle); } if (racer->unk1F6 == 0 && angle >= 56) { if (!racer->raceFinished) { @@ -4211,12 +4211,12 @@ void tt_ghost_beaten(s32 arg0, s16 *playerId) { //Check if TT has been beaten for all tracks. if ((get_eeprom_settings() & 0xFFFFF0) == 0xFFFFF0) { set_magic_code_flags(CHEAT_CONTROL_TT); - play_sound_global(SOUND_VOICE_TT_BEAT_ALL_TIMES, NULL); - func_80000FDC(SOUND_VOICE_TT_UNLOCKED, 0, 1.5f); + sound_play(SOUND_VOICE_TT_BEAT_ALL_TIMES, NULL); + sound_play_delayed(SOUND_VOICE_TT_UNLOCKED, NULL, 1.5f); set_current_text(ASSET_GAME_TEXT_84); //Text for "You have beaten all my times!" and then "Now you can PICK me!" } else { - play_sound_global(SOUND_VOICE_TT_WELL_DONE, NULL); - func_80000FDC(SOUND_VOICE_TT_TRY_ANOTHER_TRACK, 0, 1.0f); + sound_play(SOUND_VOICE_TT_WELL_DONE, NULL); + sound_play_delayed(SOUND_VOICE_TT_TRY_ANOTHER_TRACK, NULL, 1.0f); set_current_text(ASSET_GAME_TEXT_83); //Text for "Well Done! Now try another track." } gBeatStaffGhost = FALSE; @@ -5710,8 +5710,8 @@ void func_80022E18(s32 arg0) { obj->properties.common.unk0 = 0x1F; set_taj_status(2); } else { - func_80000B28(); - func_80001844(); + music_change_on(); + music_stop(); set_next_taj_challenge_menu(0); func_80008168(); if (arg0 == 2) { @@ -5721,7 +5721,7 @@ void func_80022E18(s32 arg0) { gEventStartTimer = 0; obj->properties.common.unk0 = 0x14; } - func_80000B28(); + music_change_on(); func_800A0B74(); start_level_music(1.0f); gIsTajChallenge = 0; diff --git a/src/particles.c b/src/particles.c index 441fe71a..d8f09732 100644 --- a/src/particles.c +++ b/src/particles.c @@ -298,7 +298,7 @@ void generate_particle_shape_triangle(ParticleModel *model, Vertex **vtx, Triang model->triangleCount = 1; model->triangles = *triangles; tempTri = *triangles; - tempTri->flags = RENDER_UNK_0000040; + tempTri->flags = RENDER_CLAMP_X; tempTri->vi0 = 2; tempTri->vi1 = 1; tempTri->vi2 = 0; @@ -335,7 +335,7 @@ void generate_particle_shape_quad(ParticleModel *model, Vertex **vtx, Triangle * model->triangleCount = 2; model->triangles = *triangles; tempTri = *triangles; - tempTri[0].flags = RENDER_UNK_0000040; + tempTri[0].flags = RENDER_CLAMP_X; tempTri[0].vi0 = 3; tempTri[0].uv0.u = 0; tempTri[0].vi1 = 1; @@ -343,7 +343,7 @@ void generate_particle_shape_quad(ParticleModel *model, Vertex **vtx, Triangle * tempTri[0].vi2 = 0; tempTri[0].uv2.u = 0; tempTri[0].uv2.v = 0; - tempTri[1].flags = RENDER_UNK_0000040; + tempTri[1].flags = RENDER_CLAMP_X; tempTri[1].vi0 = 3; tempTri[1].uv0.u = 0; tempTri[1].vi1 = 2; diff --git a/src/racer.c b/src/racer.c index 99e496b4..7c456503 100644 --- a/src/racer.c +++ b/src/racer.c @@ -111,9 +111,9 @@ s32 gSurfaceFlagTable4P[20] = { }; // Used to know how the AI should use a balloon when they have one. -s8 gRacerAIBalloonActionTable[NUM_WEAPON_TYPES - 1] = { +s8 gRacerAIBalloonActionTable[NUM_WEAPON_TYPES] = { 1, 1, 2, 2, 4, 3, 0, 6, - 4, 3, 2, 2, 5, 5, 5, + 4, 3, 2, 2, 5, 5, 5, 0 }; // Unused? @@ -872,7 +872,7 @@ void func_80046524(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r racer->steerVisualRotation += (var_v1 * updateRate) >> 3; if ((var_v1 < 0x400 && var_v1 > -0x400) || (racer->playerIndex == PLAYER_COMPUTER)) { if (racer->playerIndex != PLAYER_COMPUTER) { - play_sound_spatial(SOUND_ZIP_PAD_BOOST, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); + sound_play_spatial(SOUND_ZIP_PAD_BOOST, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); play_random_character_voice(obj, SOUND_VOICE_CHARACTER_POSITIVE, 8, (0x80 | 0x2)); } racer->boostTimer = normalise_time(45); @@ -1046,8 +1046,8 @@ void func_80046524(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r if (racer->unk1E0 != 0) { if (racer->groundedWheels) { if (((gRaceStartTimer != 100) && (racer->playerIndex != PLAYER_COMPUTER)) && (racer->unk1E0 >= 6)) { - play_sound_global(SOUND_BOUNCE, &racer->unk21C); - func_80001FB8(SOUND_BOUNCE, (void *) racer->unk21C, (racer->unk1E0 * 2) + 0x32); + sound_play(SOUND_BOUNCE, &racer->unk21C); + sound_volume_set_relative(SOUND_BOUNCE, (void *) racer->unk21C, (racer->unk1E0 * 2) + 0x32); } } else if (racer->approachTarget == 0) { @@ -2528,7 +2528,7 @@ void update_player_racer(Object *obj, s32 updateRate) { } if (tempRacer->playerIndex != PLAYER_COMPUTER && tempRacer->lap + 1 == header->laps && !D_8011D580 && get_current_level_race_type() == RACETYPE_DEFAULT) { - multiply_music_tempo(1.12f); + music_tempo_set_relative(1.12f); D_8011D580 = 1; } } @@ -2679,7 +2679,7 @@ void update_player_racer(Object *obj, s32 updateRate) { if (tempRacer->playerIndex == PLAYER_COMPUTER) { play_sound_at_position(tempRacer->delaySoundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 4, NULL); } else { - play_sound_spatial(tempRacer->delaySoundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); + sound_play_spatial(tempRacer->delaySoundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); } tempRacer->delaySoundID = SOUND_NONE; } @@ -3000,7 +3000,7 @@ void func_80050A28(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR } if (racer->drift_direction != 0 || racer->drifting != 0 || racer->unk1FB != 0) { if (racer->unk10 == 0) { - play_sound_spatial(SOUND_CAR_SLIDE, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, (s32 **) &racer->unk10); + sound_play_spatial(SOUND_CAR_SLIDE, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, (s32 **) &racer->unk10); } else { func_80009B7C((void *) racer->unk10, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position); } @@ -3185,7 +3185,7 @@ void func_80050A28(Object *obj, Object_Racer *racer, s32 updateRate, f32 updateR surfaceType = gSurfaceSoundTable[surfaceType]; soundID = surfaceType; if (racer->unk18 == NULL && soundID != SOUND_NONE && racer->velocity < -2.0) { - play_sound_global(soundID, &racer->unk18); + sound_play(soundID, &racer->unk18); } if (racer->unk18 != NULL && (soundID == SOUND_NONE || racer->velocity > -2.0)) { func_8000488C(racer->unk18); @@ -4611,7 +4611,7 @@ void handle_racer_items(Object *obj, Object_Racer *racer, UNUSED s32 updateRate) if (racer->weaponSoundMask) { func_8000488C(racer->weaponSoundMask); } - play_sound_spatial(soundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, (s32** ) &racer->weaponSoundMask); + sound_play_spatial(soundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, (s32** ) &racer->weaponSoundMask); } } } @@ -4672,7 +4672,7 @@ void racer_activate_magnet(Object *obj, Object_Racer *racer, s32 updateRate) { racer->boostType |= EMPOWER_BOOST; } if (racer->magnetSoundMask == NULL && racer->raceFinished == FALSE) { - play_sound_global(SOUND_MAGNET_HUM, (void *) &racer->magnetSoundMask); + sound_play(SOUND_MAGNET_HUM, (void *) &racer->magnetSoundMask); } } else { racer->magnetTimer = 0; @@ -4702,7 +4702,7 @@ void racer_activate_magnet(Object *obj, Object_Racer *racer, s32 updateRate) { void racer_play_sound(Object *obj, s32 soundID) { Object_Racer *racer = &obj->unk64->racer; if (gCurrentPlayerIndex != PLAYER_COMPUTER && racer->exitObj == NULL) { - play_sound_spatial(soundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); + sound_play_spatial(soundID, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, NULL); } } @@ -4987,13 +4987,13 @@ void update_player_camera(Object *obj, Object_Racer *racer, f32 updateRateF) { } switch (gCameraObject->zoom) { case ZOOM_MEDIUM: - play_sound_global(SOUND_MENU_BACK, NULL); + sound_play(SOUND_MENU_BACK, NULL); break; case ZOOM_FAR: - play_sound_global(SOUND_MENU_BACK2, NULL); + sound_play(SOUND_MENU_BACK2, NULL); break; default: - play_sound_global(SOUND_UNK_6A, NULL); + sound_play(SOUND_UNK_6A, NULL); break; } } @@ -5040,7 +5040,7 @@ void update_player_camera(Object *obj, Object_Racer *racer, f32 updateRateF) { gCameraObject->offsetX = (((obj->segment.trans.x_position + (91.75 * racer->ox1) + (90.0 * racer->ox3)) - gCameraObject->trans.x_position) * dialogueAngle); gCameraObject->offsetZ = (((obj->segment.trans.z_position + (91.75 * racer->oz1) + (90.0 * racer->oz3)) - gCameraObject->trans.z_position) * dialogueAngle); gCameraObject->offsetY = (((get_npc_pos_y() + 48.5) - gCameraObject->trans.y_position) * dialogueAngle); - gCameraObject->unk38 = -gCameraObject->trans.x_rotation * dialogueAngle; + gCameraObject->pitchOffset = -gCameraObject->trans.x_rotation * dialogueAngle; gCameraObject->trans.x_position += gCameraObject->offsetX; gCameraObject->trans.y_position += gCameraObject->offsetY + gCameraObject->unk30; gCameraObject->trans.z_position += gCameraObject->offsetZ; diff --git a/src/racer.h b/src/racer.h index 2798f2f0..581ebefc 100644 --- a/src/racer.h +++ b/src/racer.h @@ -134,7 +134,7 @@ typedef struct ObjectCamera { /* 0x0030 */ f32 unk30; /* 0x0034 */ s16 segmentIndex; /* 0x0036 */ s16 mode; - /* 0x0038 */ s16 unk38; + /* 0x0038 */ s16 pitchOffset; /* 0x003A */ s8 unk3A; /* 0x003B */ u8 zoom; /* 0x003C */ u8 unk3C; diff --git a/src/rcp.c b/src/rcp.c index d00fa6fe..32efdadc 100644 --- a/src/rcp.c +++ b/src/rcp.c @@ -457,7 +457,7 @@ void render_background(Gfx **dList, Matrix *mtx, s32 drawBG) { } } gDPPipeSync((*dList)++); - set_viewport_scissor(dList); + viewport_scissor(dList); } /** diff --git a/src/textures_sprites.h b/src/textures_sprites.h index bc21656f..a8c063c2 100644 --- a/src/textures_sprites.h +++ b/src/textures_sprites.h @@ -43,11 +43,11 @@ enum RenderFlags { RENDER_FOG_ACTIVE = (1 << 3), // Applies fog to the geometry. RENDER_CUTOUT = (1 << 4), // A surface with 1 bit alpha cut out for quick transparency. RENDER_COLOUR_INDEX = (1 << 5), // Enables palleted textures. - RENDER_UNK_0000040 = (1 << 6), - RENDER_UNK_0000080 = (1 << 7), + RENDER_CLAMP_X = (1 << 6), // Prevent texture repeating on the X axis. + RENDER_CLAMP_Y = (1 << 7), // Prevent texture repeating on the Y axis. RENDER_Z_UPDATE = (1 << 8), // Updates the depth buffer when rendering. RENDER_PRESERVE_COVERAGE = (1 << 9), // Coverage is used to help smooth the image. This won't write over existing coverage values. - RENDER_UNK_0000400 = (1 << 10), + RENDER_LINE_SWAP = (1 << 10), // Texture has swapped lines, for speed. Makes the load process slightly different. RENDER_DECAL = (1 << 11), // Projects a surface on existing geometry, taking precedent to not zfight. RENDER_UNK_0001000 = (1 << 12), RENDER_UNK_0002000 = (1 << 13), diff --git a/src/thread3_main.c b/src/thread3_main.c index ff670195..7845bfe6 100644 --- a/src/thread3_main.c +++ b/src/thread3_main.c @@ -304,7 +304,7 @@ void main_game_loop(void) { // This is a good spot to place custom text if you want it to overlay it over ALL the // menus & gameplay. - handle_music_fade(sLogicUpdateRate); + sound_update_queue(sLogicUpdateRate); print_debug_strings(&gCurrDisplayList); render_dialogue_boxes(&gCurrDisplayList, &gGameCurrMatrix, &gGameCurrVertexList); close_dialogue_box(4); @@ -519,7 +519,7 @@ void ingame_logic_loop(s32 updateRate) { gIsPaused = FALSE; break; case 1: - func_80001050(); + sound_clear_delayed(); reset_delayed_text(); if (func_80023568() != 0 && is_in_two_player_adventure()) { swap_lead_player(); @@ -527,7 +527,7 @@ void ingame_logic_loop(s32 updateRate) { buttonHeldInputs |= (L_TRIG | Z_TRIG); break; case 2: - func_80001050(); + sound_clear_delayed(); reset_delayed_text(); if (func_80023568() != 0 && is_in_two_player_adventure()) { swap_lead_player(); @@ -553,7 +553,7 @@ void ingame_logic_loop(s32 updateRate) { break; case 3: gDrumstickSceneLoadTimer = 0; - func_80001050(); + sound_clear_delayed(); reset_delayed_text(); clear_level_property_stack(); buttonHeldInputs |= (L_TRIG | R_TRIG); @@ -640,7 +640,7 @@ void ingame_logic_loop(s32 updateRate) { i = func_800214C4(); if ((i != 0) || ((buttonPressedInputs & A_BUTTON) && (sp3C != 0))) { if (sp3C != 0) { - func_80000B28(); + music_change_on(); } set_frame_blackout_timer(); pop_level_property_stack(&gPlayableMapId, &gGameCurrentEntrance, &i, &gGameCurrentCutscene); @@ -1025,7 +1025,7 @@ void menu_logic_loop(s32 updateRate) { gGameMode = GAMEMODE_INGAME; load_next_ingame_level(menuLoopResult, -1, gLevelDefaultVehicleID); if (gSettingsPtr->newGame && !is_in_tracks_mode()) { - func_80000B28(); + music_change_on(); gSettingsPtr->newGame = FALSE; } } diff --git a/src/tracks.c b/src/tracks.c index 895b4ff9..b0904c32 100644 --- a/src/tracks.c +++ b/src/tracks.c @@ -360,7 +360,7 @@ void render_scene(Gfx **dList, MatrixS **mtx, Vertex **vtx, TriangleList **tris, func_8002A31C(); // Show detailed skydome in single player. if (numViewports < 2) { - func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); + matrix_world_origin(&gSceneCurrDisplayList, &gSceneCurrMatrix); if (gCurrentLevelHeader2->skyDome == -1) { func_80028050(); } else { @@ -370,7 +370,7 @@ void render_scene(Gfx **dList, MatrixS **mtx, Vertex **vtx, TriangleList **tris, func_8006807C(&gSceneCurrDisplayList, &gSceneCurrMatrix); draw_gradient_background(); func_80067D3C(&gSceneCurrDisplayList, &gSceneCurrMatrix); - func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); + matrix_world_origin(&gSceneCurrDisplayList, &gSceneCurrMatrix); } gDPPipeSync(gSceneCurrDisplayList++); initialise_player_viewport_vars(updateRate); @@ -400,7 +400,7 @@ void render_scene(Gfx **dList, MatrixS **mtx, Vertex **vtx, TriangleList **tris, func_8006807C(&gSceneCurrDisplayList, &gSceneCurrMatrix); draw_gradient_background(); func_80067D3C(&gSceneCurrDisplayList, &gSceneCurrMatrix); - func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); + matrix_world_origin(&gSceneCurrDisplayList, &gSceneCurrMatrix); gDPPipeSync(gSceneCurrDisplayList++); initialise_player_viewport_vars(updateRate); set_weather_limits(-1, -512); @@ -420,7 +420,7 @@ void render_scene(Gfx **dList, MatrixS **mtx, Vertex **vtx, TriangleList **tris, func_800278E8(updateRate); } } - func_800682AC(&gSceneCurrDisplayList); + viewport_reset(&gSceneCurrDisplayList); gDPPipeSync(gSceneCurrDisplayList++); gDkrDisableBillboard(gSceneCurrDisplayList++); gShadowHeapFlip = 1 - gShadowHeapFlip; @@ -841,7 +841,7 @@ void render_skydome(void) { gSkydomeSegment->segment.trans.z_position = cam->trans.z_position; } - func_80068408(&gSceneCurrDisplayList, &gSceneCurrMatrix); + matrix_world_origin(&gSceneCurrDisplayList, &gSceneCurrMatrix); if (gSceneRenderSkyDome) { render_object(&gSceneCurrDisplayList, &gSceneCurrMatrix, &gSceneCurrVertexList, gSkydomeSegment); } diff --git a/src/vehicle_bluey.c b/src/vehicle_bluey.c index 17fe0bbf..f30b532b 100644 --- a/src/vehicle_bluey.c +++ b/src/vehicle_bluey.c @@ -110,7 +110,7 @@ void update_bluey(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *ra obj->segment.object.animationID = ANIM_BLUEY_DAMAGE; racer->animationSpeed = 0.0f; play_random_boss_sound(BOSS_SOUND_NEGATIVE); - play_sound_global(SOUND_EXPLOSION, NULL); + sound_play(SOUND_EXPLOSION, NULL); set_camera_shake(12.0f); racer->attackType = ATTACK_NONE; racer->velocity *= 0.3; diff --git a/src/vehicle_bubbler.c b/src/vehicle_bubbler.c index 2b8f2ec8..54cada0e 100644 --- a/src/vehicle_bubbler.c +++ b/src/vehicle_bubbler.c @@ -105,7 +105,7 @@ void update_bubbler(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer * obj->segment.object.animationID = ANIM_BUBBLER_DAMAGE; obj->segment.y_velocity += 7.5; play_random_boss_sound(BOSS_SOUND_NEGATIVE); - play_sound_global(SOUND_EXPLOSION, 0); + sound_play(SOUND_EXPLOSION, 0); set_camera_shake(12.0f); racer->velocity *= 0.3; racer->animationSpeed = 0.0f; diff --git a/src/vehicle_rocket.c b/src/vehicle_rocket.c index 03595a31..2eb5ab0f 100644 --- a/src/vehicle_rocket.c +++ b/src/vehicle_rocket.c @@ -103,7 +103,7 @@ void update_rocket(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r obj->segment.animFrame = animFrame; if (racer->attackType != ATTACK_NONE && obj->segment.object.animationID != ANIM_ROCKET_DAMAGE) { play_random_boss_sound(BOSS_SOUND_NEGATIVE); - play_sound_global(SOUND_EXPLOSION, NULL); + sound_play(SOUND_EXPLOSION, NULL); set_camera_shake(12.0f); obj->segment.x_velocity *= 0.4; obj->segment.object.animationID = ANIM_ROCKET_DAMAGE; diff --git a/src/vehicle_smokey.c b/src/vehicle_smokey.c index 31c70970..8e5f941a 100644 --- a/src/vehicle_smokey.c +++ b/src/vehicle_smokey.c @@ -108,7 +108,7 @@ void update_smokey(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r obj->segment.animFrame = animFrame; if (racer->attackType != ATTACK_NONE && obj->segment.object.animationID != ANIM_SMOKEY_DAMAGE) { play_random_boss_sound(BOSS_SOUND_NEGATIVE); - play_sound_global(SOUND_EXPLOSION, 0); + sound_play(SOUND_EXPLOSION, 0); set_camera_shake(12.0f); obj->segment.object.animationID = ANIM_SMOKEY_DAMAGE; obj->segment.x_velocity *= 0.27; diff --git a/src/vehicle_tricky.c b/src/vehicle_tricky.c index f6de5655..6b39fe97 100644 --- a/src/vehicle_tricky.c +++ b/src/vehicle_tricky.c @@ -126,7 +126,7 @@ void update_tricky(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r obj->segment.object.animationID = ANIM_TRICKY_DAMAGE; obj->segment.y_velocity += 7.5; play_random_boss_sound(BOSS_SOUND_NEGATIVE); - play_sound_global(SOUND_EXPLOSION, NULL); + sound_play(SOUND_EXPLOSION, NULL); set_camera_shake(12.0f); racer->velocity *= 0.3; racer->animationSpeed = 0.0f; @@ -246,7 +246,7 @@ void play_random_boss_sound(s32 offset) { randomOffset = 0; } offset += randomOffset; - play_sound_global(gBossSoundIDOffset[offset], NULL); + sound_play(gBossSoundIDOffset[offset], NULL); } // boss_race_finish @@ -294,9 +294,9 @@ void func_8005CB68(Object_Racer *racer, s8 *arg1) { racerUnk1AC = racer->unk1AC; if (arg1_ret == 1) { if (racerUnk1AC == 1) { - play_music(SEQUENCE_BATTLE_VICTORY); + music_play(SEQUENCE_BATTLE_VICTORY); } else { - play_music(SEQUENCE_BATTLE_LOSE); + music_play(SEQUENCE_BATTLE_LOSE); } if ((settings->worldId == WORLD_CENTRAL_AREA) || (settings->worldId == WORLD_FUTURE_FUN_LAND)) { if (racerUnk1AC == 1) { diff --git a/src/vehicle_wizpig.c b/src/vehicle_wizpig.c index f8a3b6e5..a055fe0d 100644 --- a/src/vehicle_wizpig.c +++ b/src/vehicle_wizpig.c @@ -107,7 +107,7 @@ void update_wizpig(s32 updateRate, f32 updateRateF, Object *obj, Object_Racer *r // Unused, since there are no weapon balloons in Wizpig 1. if (racer->attackType != ATTACK_NONE && obj->segment.object.animationID != ANIM_WIZPIG_DAMAGE) { play_random_boss_sound(BOSS_SOUND_NEGATIVE); - play_sound_global(SOUND_EXPLOSION, NULL); + sound_play(SOUND_EXPLOSION, NULL); set_camera_shake(12.0f); obj->segment.object.animationID = ANIM_WIZPIG_DAMAGE; obj->segment.x_velocity *= 0.4; diff --git a/src/video.c b/src/video.c index 7b6bfd51..a01a2334 100644 --- a/src/video.c +++ b/src/video.c @@ -24,8 +24,6 @@ VideoModeResolution gVideoModeResolutions[] = { // This value exists in order to make sure there are no out of bounds accesses of gVideoModeResolutions #define NUM_RESOLUTION_MODES ((sizeof(gVideoModeResolutions) / sizeof(VideoModeResolution)) - 1) -UNUSED s32 D_800DE7BC = 0; - /*******************************/ /************ .bss ************/ @@ -235,7 +233,7 @@ void init_vi_settings(void) { */ void init_framebuffer(s32 index) { if (gVideoFramebuffers[index] != 0) { - func_80071538((u8 *)gVideoFramebuffers[index]); + memory_slot_exists((u8 *)gVideoFramebuffers[index]); // Effectively unused. free_from_memory_pool(gVideoFramebuffers[index]); } gVideoFbWidths[index] = gVideoModeResolutions[gVideoModeIndex & NUM_RESOLUTION_MODES].width; diff --git a/src/weather.c b/src/weather.c index a659d6ba..77e53ad2 100644 --- a/src/weather.c +++ b/src/weather.c @@ -37,8 +37,8 @@ s32 D_800E2908 = 0; s32 *D_800E290C = NULL; s16 *D_800E2910 = NULL; Vertex *D_800E2914[2] = { NULL, NULL }; -s32 *D_800E291C = NULL; // List of Ids -s32 D_800E2920 = 0; +s32 *gWeatherAssetTable = NULL; // List of Ids +s32 gWeatherAssetTableLength = 0; // Set, but never read. Gfx D_800E2928[] = { gsDPPipeSync(), @@ -163,8 +163,8 @@ Gfx *gCurrWeatherDisplayList; MatrixS *gCurrWeatherMatrix; Vertex *gCurrWeatherVertexList; TriangleList *gCurrWeatherTriList; -ObjectSegment *D_80127C1C; -Matrix *D_80127C20; +ObjectSegment *gWeatherCamera; +Matrix *gWeatherCameraMatrix; s32 D_80127C24; s32 D_80127C28; Matrix *D_80127C2C; @@ -188,15 +188,15 @@ void init_weather(void) { D_800E2914[1] = 0; D_800E290C = 0; D_80127BF8.unk0 = -1; - D_80127BF8.unk2 = -0x200; + D_80127BF8.unk2 = -512; D_800E2A80 = NULL; D_800E2A84 = TRUE; D_800E2A88 = 0; - if (D_800E291C == NULL) { - D_800E291C = (s32 *)load_asset_section_from_rom(ASSET_WEATHER_PARTICLES); - D_800E2920 = 0; - while ((s32)D_800E291C[D_800E2920] != -1) { - D_800E2920++; + if (gWeatherAssetTable == NULL) { + gWeatherAssetTable = (s32 *)load_asset_section_from_rom(ASSET_WEATHER_PARTICLES); + gWeatherAssetTableLength = 0; + while ((s32) gWeatherAssetTable[gWeatherAssetTableLength] != -1) { + gWeatherAssetTableLength++; } } D_80127C08 = 0; @@ -271,7 +271,7 @@ void func_800ABB34(void) { phi_s1 += temp_v0; } - D_800E28D8.unk8 = load_texture(*D_800E291C); + D_800E28D8.unk8 = load_texture(*gWeatherAssetTable); } @@ -309,8 +309,8 @@ void process_weather(Gfx **currDisplayList, MatrixS **currHudMat, Vertex **currH gCurrWeatherMatrix = *currHudMat; gCurrWeatherVertexList = *currHudVerts; gCurrWeatherTriList = *currHudTris; - D_80127C1C = get_active_camera_segment(); - D_80127C20 = get_camera_matrix(); + gWeatherCamera = get_active_camera_segment(); + gWeatherCameraMatrix = get_camera_matrix(); if (gWeatherType != WEATHER_SNOW) { handle_weather_rain(updateRate); } else { @@ -376,15 +376,15 @@ void func_800AC21C(void) { s32 sp50; s32 i; - sp58 = (D_80127C1C->trans.x_position * 65536.0f); - sp54 = (D_80127C1C->trans.y_position * 65536.0f); - sp50 = (D_80127C1C->trans.z_position * 65536.0f); + sp58 = (gWeatherCamera->trans.x_position * 65536.0f); + sp54 = (gWeatherCamera->trans.y_position * 65536.0f); + sp50 = (gWeatherCamera->trans.z_position * 65536.0f); D_800E2908 = 0; for(i = 0; i < D_80127BB4; i++) { sp64[0][0] = (f32) (((D_800E28D4[i].unk0 - sp58) & D_800E28D8.unk18) + D_800E28D8.unkC) * (1.0f / 65536.0f); sp64[0][1] = (f32) (((D_800E28D4[i].unk4 - sp54) & D_800E28D8.unk1C) + D_800E28D8.unk10) * (1.0f / 65536.0f); sp64[0][2] = (f32) (((D_800E28D4[i].unk8 - sp50) & D_800E28D8.unk20) + D_800E28D8.unk14) * (1.0f / 65536.0f); - f32_matrix_dot(D_80127C20, &sp64, &sp64); + f32_matrix_dot(gWeatherCameraMatrix, &sp64, &sp64); zPos = sp64[0][2]; if ((zPos < D_80127BF8.unk0) && (D_80127BF8.unk4 < zPos)) { xPos = sp64[0][0]; @@ -576,9 +576,9 @@ void func_800AD144(s32 arg0, s32 arg1) { gThunderTimer = 0; D_800E2C84 = 0; D_800E2C90 = 0; - gRainGfx[0].tex = load_texture(D_800E291C[1]); - gRainGfx[1].tex = load_texture(D_800E291C[1]); - gRainSplashGfx = (Sprite *)func_8007C12C(D_800E291C[3], 0); + gRainGfx[0].tex = load_texture(gWeatherAssetTable[1]); + gRainGfx[1].tex = load_texture(gWeatherAssetTable[1]); + gRainSplashGfx = (Sprite *)func_8007C12C(gWeatherAssetTable[3], 0); gWeatherType = WEATHER_RAIN; } @@ -662,7 +662,7 @@ void handle_weather_rain(s32 updateRate) { gDPSetPrimColor(gCurrWeatherDisplayList++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(gCurrWeatherDisplayList++, 255, 255, 255, 0); reset_render_settings(&gCurrWeatherDisplayList); // Pipesync and some stuff idk yet - func_800682AC(&gCurrWeatherDisplayList); // Looks to create a viewport scissor. + viewport_reset(&gCurrWeatherDisplayList); // Looks to create a viewport scissor. } } } @@ -681,7 +681,7 @@ void handle_rain_lightning(s32 updateRate) { if (D_800E2C6C >= 32769 && check_fadeout_transition() == 0) { transition_begin(&gThunderTransition); } - play_sound_global(SOUND_LIGHTNING, NULL); + sound_play(SOUND_LIGHTNING, NULL); gThunderTimer = 0; } } else if (gLightningFrequency >= 48000) { @@ -689,7 +689,7 @@ void handle_rain_lightning(s32 updateRate) { gLightningTimer -= updateRate; return; } - play_sound_global(SOUND_THUNDER, NULL); + sound_play(SOUND_THUNDER, NULL); gThunderTimer = 600 - ((s32) (gLightningFrequency + -48000) >> 5); gLightningTimer = get_random_number_from_range(900, 1140) - ((s32) (gLightningFrequency + -48000) >> 5); } @@ -707,11 +707,11 @@ void handle_rain_sound(UNUSED s32 updateRate) { f32 sineOffset; length = 1152.0f - (f32) (gLightningFrequency >> 6); - cosOffset = sins_f(D_80127C1C->trans.y_rotation) * length; - sineOffset = coss_f(D_80127C1C->trans.y_rotation) * length; - xPos = D_80127C1C->trans.x_position + (sineOffset - cosOffset); - yPos = D_80127C1C->trans.y_position; - zPos = D_80127C1C->trans.z_position + (-sineOffset - cosOffset); + cosOffset = sins_f(gWeatherCamera->trans.y_rotation) * length; + sineOffset = coss_f(gWeatherCamera->trans.y_rotation) * length; + xPos = gWeatherCamera->trans.x_position + (sineOffset - cosOffset); + yPos = gWeatherCamera->trans.y_position; + zPos = gWeatherCamera->trans.z_position + (-sineOffset - cosOffset); if (gWeatherSoundMask) { update_spatial_audio_position(gWeatherSoundMask, xPos, yPos, zPos); } else { @@ -748,10 +748,10 @@ void render_rain_overlay(unk800E2C2C *arg0, s32 arg1) { if (opacity > 0) { altVertical = arg0->unk2; vertical = ((arg0->unk6 * vertical) >> 8) + arg0->unk2; - altHorizontal = (arg0->unk0 + ((horizontal * 6 * D_80127C1C->trans.y_rotation) >> 16)) & temp_v1; + altHorizontal = (arg0->unk0 + ((horizontal * 6 * gWeatherCamera->trans.y_rotation) >> 16)) & temp_v1; horizontal += altHorizontal; - zSins = sins_f(D_80127C1C->trans.z_rotation); - zCoss = coss_f(D_80127C1C->trans.z_rotation); + zSins = sins_f(gWeatherCamera->trans.z_rotation); + zCoss = coss_f(gWeatherCamera->trans.z_rotation); verts = &D_800E2AAC[D_800E2C90]; verts[0].x = ((D_800E2A8C * zCoss) - (D_800E2A9C * zSins)); verts[0].y = ((D_800E2A8C * zSins) + (D_800E2A9C * zCoss)); diff --git a/tools/python/calc_func_checksums.py b/tools/python/calc_func_checksums.py index 162e1041..4187838c 100644 --- a/tools/python/calc_func_checksums.py +++ b/tools/python/calc_func_checksums.py @@ -15,7 +15,7 @@ FUNCTIONS_TO_CALC = [ ('func_80019808', 'gFunc80019808Checksum', 'gFunc80019808Length'), ('render_scene', 'gTractionTableChecksum', 'gTrackRenderFuncLength'), ('obj_loop_goldenballoon', 'gObjLoopGoldenBalloonChecksum', 'gObjLoopGoldenBalloonLength'), - ('func_80068158', 'gFunc80068158Checksum', 'gFunc80068158Length') + ('viewport_rsp_set', 'gViewportFuncChecksum', 'gViewportFuncLength') ] def getMatches(string, regex):