mirror of
https://github.com/zeldaret/oot
synced 2026-05-31 01:15:53 -04:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -16,6 +16,23 @@ endif
|
||||
|
||||
PROJECT_DIR := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
|
||||
|
||||
MAKE = make
|
||||
CPPFLAGS = -P
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
$(error Native Windows builds not yet supported. Please use WSL, Docker or a Linux VM)
|
||||
else
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
DETECTED_OS=linux
|
||||
endif
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
DETECTED_OS=macos
|
||||
MAKE=gmake
|
||||
CPPFLAGS += -xc++
|
||||
endif
|
||||
endif
|
||||
|
||||
#### Tools ####
|
||||
ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0)
|
||||
MIPS_BINUTILS_PREFIX := mips-linux-gnu-
|
||||
@@ -23,8 +40,8 @@ else
|
||||
$(error Please install or build mips-linux-gnu)
|
||||
endif
|
||||
|
||||
CC := tools/ido_recomp/linux/7.1/cc
|
||||
CC_OLD := tools/ido_recomp/linux/5.3/cc
|
||||
CC := tools/ido_recomp/$(DETECTED_OS)/7.1/cc
|
||||
CC_OLD := tools/ido_recomp/$(DETECTED_OS)/5.3/cc
|
||||
|
||||
# if ORIG_COMPILER is 1, check that either QEMU_IRIX is set or qemu-irix package installed
|
||||
ifeq ($(ORIG_COMPILER),1)
|
||||
@@ -159,18 +176,18 @@ $(ELF): $(TEXTURE_FILES_OUT) $(O_FILES) build/ldscript.txt build/undefined_syms.
|
||||
$(LD) -T build/undefined_syms.txt -T build/ldscript.txt --no-check-sections --accept-unknown-input-arch --emit-relocs -Map build/z64.map -o $@
|
||||
|
||||
build/ldscript.txt: $(SPEC)
|
||||
$(CPP) -P $< > build/spec
|
||||
$(CPP) $(CPPFLAGS) $< > build/spec
|
||||
$(MKLDSCRIPT) build/spec $@
|
||||
|
||||
build/undefined_syms.txt: undefined_syms.txt
|
||||
$(CPP) -P $< > build/undefined_syms.txt
|
||||
$(CPP) $(CPPFLAGS) $< > build/undefined_syms.txt
|
||||
|
||||
clean:
|
||||
$(RM) -r $(ROM) $(ELF) build
|
||||
|
||||
setup:
|
||||
git submodule update --init --recursive
|
||||
make -C tools
|
||||
$(MAKE) -C tools
|
||||
python3 fixbaserom.py
|
||||
python3 extract_baserom.py
|
||||
python3 extract_assets.py
|
||||
|
||||
@@ -35,7 +35,20 @@ For older versions of Windows, install a Linux VM or refer to [Docker](#Docker)
|
||||
|
||||
### macOS
|
||||
|
||||
For macOS, install a Linux VM or refer to [Docker](#Docker) instructions.
|
||||
For macOS, use homebrew to install the following dependencies:
|
||||
* coreutils
|
||||
* make
|
||||
* python3
|
||||
```bash
|
||||
brew update
|
||||
brew install coreutils make python3
|
||||
```
|
||||
|
||||
You'll also need to [build and install mips-linux-binutils](docs/BUILDING_BINUTILS_MACOS.md).
|
||||
|
||||
Going forward in this guide, please use `gmake` whenever you encounter a `make` command.
|
||||
The `make` that comes with MacOS behaves differently than GNU make and is incompatible with this project.
|
||||
You should now be able to continue onto step 3.
|
||||
|
||||
### Linux (Native or under WSL / VM)
|
||||
|
||||
@@ -136,32 +149,12 @@ docker build . -t oot
|
||||
|
||||
#### 3. Start the container
|
||||
|
||||
##### Option A: With docker run
|
||||
|
||||
To start the container, you can mount your local filesystem into the docker container and run an interactive bash session.
|
||||
|
||||
```bash
|
||||
docker run -it --rm --mount type=bind,source="$(pwd)",destination=/oot oot /bin/bash
|
||||
```
|
||||
|
||||
##### Option B (only for macOS): With docker-sync
|
||||
|
||||
Prerequisite for this option: Install docker-sync with `gem install docker-sync`
|
||||
|
||||
To start docker-sync and the development container, use `docker-sync-stack start`
|
||||
|
||||
After a lot of waiting, you'll see something like "Attaching to oot_oot_1".
|
||||
This means the container is ready.
|
||||
|
||||
Then it's time to log into the container to begin working.
|
||||
Note that this will be done in another tab while you leave the docker-sync tab going.
|
||||
|
||||
To get the container id, use `docker container ls` and use the ID from the container with image oot:latest in the following command:
|
||||
|
||||
`docker exec -it <CONTAINER-ID> /bin/bash` You're in.
|
||||
|
||||
> Note: When done working, type Ctrl+c on the docker-sync tab to close the container and docker-sync.
|
||||
|
||||
#### 4. Setup and Build the ROM
|
||||
|
||||
Once inside the container, you can follow Step 6 and 7 of the Linux instructions to setup and build the ROM, or run any other command you need.
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
glabel Audio_Alloc
|
||||
/* B5557C 800DE3DC 8C860004 */ lw $a2, 4($a0)
|
||||
/* B55580 800DE3E0 8C8E0000 */ lw $t6, ($a0)
|
||||
/* B55584 800DE3E4 8C8F0008 */ lw $t7, 8($a0)
|
||||
/* B55588 800DE3E8 24A2000F */ addiu $v0, $a1, 0xf
|
||||
/* B5558C 800DE3EC 2401FFF0 */ li $at, -16
|
||||
/* B55590 800DE3F0 00411024 */ and $v0, $v0, $at
|
||||
/* B55594 800DE3F4 00C2C821 */ addu $t9, $a2, $v0
|
||||
/* B55598 800DE3F8 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* B5559C 800DE3FC 0319082B */ sltu $at, $t8, $t9
|
||||
/* B555A0 800DE400 14200004 */ bnez $at, .L800DE414
|
||||
/* B555A4 800DE404 00C01825 */ move $v1, $a2
|
||||
/* B555A8 800DE408 00C24021 */ addu $t0, $a2, $v0
|
||||
/* B555AC 800DE40C 10000003 */ b .L800DE41C
|
||||
/* B555B0 800DE410 AC880004 */ sw $t0, 4($a0)
|
||||
.L800DE414:
|
||||
/* B555B4 800DE414 03E00008 */ jr $ra
|
||||
/* B555B8 800DE418 00001025 */ move $v0, $zero
|
||||
|
||||
.L800DE41C:
|
||||
/* B555BC 800DE41C 8C89000C */ lw $t1, 0xc($a0)
|
||||
/* B555C0 800DE420 00601025 */ move $v0, $v1
|
||||
/* B555C4 800DE424 252A0001 */ addiu $t2, $t1, 1
|
||||
/* B555C8 800DE428 AC8A000C */ sw $t2, 0xc($a0)
|
||||
/* B555CC 800DE42C 03E00008 */ jr $ra
|
||||
/* B555D0 800DE430 00000000 */ nop
|
||||
|
||||
@@ -1,552 +0,0 @@
|
||||
glabel Audio_AllocBankOrSeq
|
||||
/* B55A80 800DE8E0 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* B55A84 800DE8E4 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B55A88 800DE8E8 00808025 */ move $s0, $a0
|
||||
/* B55A8C 800DE8EC AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* B55A90 800DE8F0 AFA50054 */ sw $a1, 0x54($sp)
|
||||
/* B55A94 800DE8F4 AFA7005C */ sw $a3, 0x5c($sp)
|
||||
/* B55A98 800DE8F8 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B55A9C 800DE8FC 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* B55AA0 800DE900 240A0002 */ li $t2, 2
|
||||
/* B55AA4 800DE904 24090001 */ li $t1, 1
|
||||
.L800DE908:
|
||||
/* B55AA8 800DE908 12000007 */ beqz $s0, .L800DE928
|
||||
/* B55AAC 800DE90C 8FA50054 */ lw $a1, 0x54($sp)
|
||||
/* B55AB0 800DE910 1209000A */ beq $s0, $t1, .L800DE93C
|
||||
/* B55AB4 800DE914 00000000 */ nop
|
||||
/* B55AB8 800DE918 120A000D */ beq $s0, $t2, .L800DE950
|
||||
/* B55ABC 800DE91C 00000000 */ nop
|
||||
/* B55AC0 800DE920 1000000F */ b .L800DE960
|
||||
/* B55AC4 800DE924 00000000 */ nop
|
||||
.L800DE928:
|
||||
/* B55AC8 800DE928 3C088017 */ lui $t0, %hi(gAudioContext+0x2a20) # $t0, 0x8017
|
||||
/* B55ACC 800DE92C 3C0B8017 */ lui $t3, %hi(gAudioContext+0x3498) # $t3, 0x8017
|
||||
/* B55AD0 800DE930 25081BA0 */ addiu $t0, %lo(gAudioContext+0x2a20) # addiu $t0, $t0, 0x1ba0
|
||||
/* B55AD4 800DE934 1000000A */ b .L800DE960
|
||||
/* B55AD8 800DE938 256B2618 */ addiu $t3, %lo(gAudioContext+0x3498) # addiu $t3, $t3, 0x2618
|
||||
.L800DE93C:
|
||||
/* B55ADC 800DE93C 3C088017 */ lui $t0, %hi(gAudioContext+0x2b30) # $t0, 0x8017
|
||||
/* B55AE0 800DE940 3C0B8017 */ lui $t3, %hi(gAudioContext+0x3468) # $t3, 0x8017
|
||||
/* B55AE4 800DE944 25081CB0 */ addiu $t0, %lo(gAudioContext+0x2b30) # addiu $t0, $t0, 0x1cb0
|
||||
/* B55AE8 800DE948 10000005 */ b .L800DE960
|
||||
/* B55AEC 800DE94C 256B25E8 */ addiu $t3, %lo(gAudioContext+0x3468) # addiu $t3, $t3, 0x25e8
|
||||
.L800DE950:
|
||||
/* B55AF0 800DE950 3C088017 */ lui $t0, %hi(gAudioContext+0x2c40) # $t0, 0x8017
|
||||
/* B55AF4 800DE954 3C0B8017 */ lui $t3, %hi(gAudioContext+0x3438) # $t3, 0x8017
|
||||
/* B55AF8 800DE958 25081DC0 */ addiu $t0, %lo(gAudioContext+0x2c40) # addiu $t0, $t0, 0x1dc0
|
||||
/* B55AFC 800DE95C 256B25B8 */ addiu $t3, %lo(gAudioContext+0x3438) # addiu $t3, $t3, 0x25b8
|
||||
.L800DE960:
|
||||
/* B55B00 800DE960 14C00192 */ bnez $a2, .L800DEFAC
|
||||
/* B55B04 800DE964 25040004 */ addiu $a0, $t0, 4
|
||||
/* B55B08 800DE968 8D0E00E0 */ lw $t6, 0xe0($t0)
|
||||
/* B55B0C 800DE96C 8FAF0054 */ lw $t7, 0x54($sp)
|
||||
/* B55B10 800DE970 250700D4 */ addiu $a3, $t0, 0xd4
|
||||
/* B55B14 800DE974 01CF082A */ slt $at, $t6, $t7
|
||||
/* B55B18 800DE978 50200004 */ beql $at, $zero, .L800DE98C
|
||||
/* B55B1C 800DE97C 84E6001E */ lh $a2, 0x1e($a3)
|
||||
/* B55B20 800DE980 100001B7 */ b .L800DF060
|
||||
/* B55B24 800DE984 00001025 */ move $v0, $zero
|
||||
/* B55B28 800DE988 84E6001E */ lh $a2, 0x1e($a3)
|
||||
.L800DE98C:
|
||||
/* B55B2C 800DE98C 2401FFFF */ li $at, -1
|
||||
/* B55B30 800DE990 14C10003 */ bne $a2, $at, .L800DE9A0
|
||||
/* B55B34 800DE994 00CBC021 */ addu $t8, $a2, $t3
|
||||
/* B55B38 800DE998 10000002 */ b .L800DE9A4
|
||||
/* B55B3C 800DE99C 00006025 */ move $t4, $zero
|
||||
.L800DE9A0:
|
||||
/* B55B40 800DE9A0 930C0000 */ lbu $t4, ($t8)
|
||||
.L800DE9A4:
|
||||
/* B55B44 800DE9A4 84E4002A */ lh $a0, 0x2a($a3)
|
||||
/* B55B48 800DE9A8 2401FFFF */ li $at, -1
|
||||
/* B55B4C 800DE9AC 14810003 */ bne $a0, $at, .L800DE9BC
|
||||
/* B55B50 800DE9B0 008BC821 */ addu $t9, $a0, $t3
|
||||
/* B55B54 800DE9B4 10000002 */ b .L800DE9C0
|
||||
/* B55B58 800DE9B8 00006825 */ move $t5, $zero
|
||||
.L800DE9BC:
|
||||
/* B55B5C 800DE9BC 932D0000 */ lbu $t5, ($t9)
|
||||
.L800DE9C0:
|
||||
/* B55B60 800DE9C0 16090047 */ bne $s0, $t1, .L800DEAE0
|
||||
/* B55B64 800DE9C4 24010004 */ li $at, 4
|
||||
/* B55B68 800DE9C8 15810020 */ bne $t4, $at, .L800DEA4C
|
||||
/* B55B6C 800DE9CC 3C058017 */ lui $a1, %hi(gAudioContext+0x2894) # $a1, 0x8017
|
||||
/* B55B70 800DE9D0 8CA51A14 */ lw $a1, %lo(gAudioContext+0x2894)($a1)
|
||||
/* B55B74 800DE9D4 00001825 */ move $v1, $zero
|
||||
/* B55B78 800DE9D8 3C028017 */ lui $v0, %hi(gAudioContext+0x352c) # $v0, 0x8017
|
||||
/* B55B7C 800DE9DC 18A0000D */ blez $a1, .L800DEA14
|
||||
/* B55B80 800DE9E0 00C02025 */ move $a0, $a2
|
||||
/* B55B84 800DE9E4 8C4226AC */ lw $v0, %lo(gAudioContext+0x352c)($v0)
|
||||
.L800DE9E8:
|
||||
/* B55B88 800DE9E8 904E0033 */ lbu $t6, 0x33($v0)
|
||||
/* B55B8C 800DE9EC 55C60006 */ bnel $t6, $a2, .L800DEA08
|
||||
/* B55B90 800DE9F0 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55B94 800DE9F4 8C4F00C0 */ lw $t7, 0xc0($v0)
|
||||
/* B55B98 800DE9F8 000FC7C2 */ srl $t8, $t7, 0x1f
|
||||
/* B55B9C 800DE9FC 17000005 */ bnez $t8, .L800DEA14
|
||||
/* B55BA0 800DEA00 00000000 */ nop
|
||||
/* B55BA4 800DEA04 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DEA08:
|
||||
/* B55BA8 800DEA08 0065082A */ slt $at, $v1, $a1
|
||||
/* B55BAC 800DEA0C 1420FFF6 */ bnez $at, .L800DE9E8
|
||||
/* B55BB0 800DEA10 244200E0 */ addiu $v0, $v0, 0xe0
|
||||
.L800DEA14:
|
||||
/* B55BB4 800DEA14 1465000D */ bne $v1, $a1, .L800DEA4C
|
||||
/* B55BB8 800DEA18 24050003 */ li $a1, 3
|
||||
/* B55BBC 800DEA1C AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B55BC0 800DEA20 AFA8004C */ sw $t0, 0x4c($sp)
|
||||
/* B55BC4 800DEA24 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B55BC8 800DEA28 0C038686 */ jal Audio_SetBankLoadStatus
|
||||
/* B55BCC 800DEA2C A3AD003A */ sb $t5, 0x3a($sp)
|
||||
/* B55BD0 800DEA30 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B55BD4 800DEA34 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* B55BD8 800DEA38 24090001 */ li $t1, 1
|
||||
/* B55BDC 800DEA3C 240A0002 */ li $t2, 2
|
||||
/* B55BE0 800DEA40 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B55BE4 800DEA44 93AD003A */ lbu $t5, 0x3a($sp)
|
||||
/* B55BE8 800DEA48 240C0003 */ li $t4, 3
|
||||
.L800DEA4C:
|
||||
/* B55BEC 800DEA4C 24010004 */ li $at, 4
|
||||
/* B55BF0 800DEA50 15A10023 */ bne $t5, $at, .L800DEAE0
|
||||
/* B55BF4 800DEA54 3C058017 */ lui $a1, %hi(gAudioContext+0x2894) # $a1, 0x8017
|
||||
/* B55BF8 800DEA58 8CA51A14 */ lw $a1, %lo(gAudioContext+0x2894)($a1)
|
||||
/* B55BFC 800DEA5C 00001825 */ move $v1, $zero
|
||||
/* B55C00 800DEA60 3C028017 */ lui $v0, %hi(gAudioContext+0x352c) # $v0, 0x8017
|
||||
/* B55C04 800DEA64 18A0000E */ blez $a1, .L800DEAA0
|
||||
/* B55C08 800DEA68 00000000 */ nop
|
||||
/* B55C0C 800DEA6C 8C4226AC */ lw $v0, %lo(gAudioContext+0x352c)($v0)
|
||||
/* B55C10 800DEA70 84E4002A */ lh $a0, 0x2a($a3)
|
||||
.L800DEA74:
|
||||
/* B55C14 800DEA74 90590033 */ lbu $t9, 0x33($v0)
|
||||
/* B55C18 800DEA78 57240006 */ bnel $t9, $a0, .L800DEA94
|
||||
/* B55C1C 800DEA7C 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55C20 800DEA80 8C4E00C0 */ lw $t6, 0xc0($v0)
|
||||
/* B55C24 800DEA84 000E7FC2 */ srl $t7, $t6, 0x1f
|
||||
/* B55C28 800DEA88 15E00005 */ bnez $t7, .L800DEAA0
|
||||
/* B55C2C 800DEA8C 00000000 */ nop
|
||||
/* B55C30 800DEA90 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DEA94:
|
||||
/* B55C34 800DEA94 0065082A */ slt $at, $v1, $a1
|
||||
/* B55C38 800DEA98 1420FFF6 */ bnez $at, .L800DEA74
|
||||
/* B55C3C 800DEA9C 244200E0 */ addiu $v0, $v0, 0xe0
|
||||
.L800DEAA0:
|
||||
/* B55C40 800DEAA0 1465000F */ bne $v1, $a1, .L800DEAE0
|
||||
/* B55C44 800DEAA4 00000000 */ nop
|
||||
/* B55C48 800DEAA8 84E4002A */ lh $a0, 0x2a($a3)
|
||||
/* B55C4C 800DEAAC A3AC003B */ sb $t4, 0x3b($sp)
|
||||
/* B55C50 800DEAB0 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B55C54 800DEAB4 AFA8004C */ sw $t0, 0x4c($sp)
|
||||
/* B55C58 800DEAB8 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B55C5C 800DEABC 0C038686 */ jal Audio_SetBankLoadStatus
|
||||
/* B55C60 800DEAC0 24050003 */ li $a1, 3
|
||||
/* B55C64 800DEAC4 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B55C68 800DEAC8 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* B55C6C 800DEACC 24090001 */ li $t1, 1
|
||||
/* B55C70 800DEAD0 240A0002 */ li $t2, 2
|
||||
/* B55C74 800DEAD4 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B55C78 800DEAD8 93AC003B */ lbu $t4, 0x3b($sp)
|
||||
/* B55C7C 800DEADC 240D0003 */ li $t5, 3
|
||||
.L800DEAE0:
|
||||
/* B55C80 800DEAE0 15800004 */ bnez $t4, .L800DEAF4
|
||||
/* B55C84 800DEAE4 0180F825 */ move $ra, $t4
|
||||
/* B55C88 800DEAE8 ACE00000 */ sw $zero, ($a3)
|
||||
/* B55C8C 800DEAEC 10000089 */ b .L800DED14
|
||||
/* B55C90 800DEAF0 00001025 */ move $v0, $zero
|
||||
.L800DEAF4:
|
||||
/* B55C94 800DEAF4 15A00004 */ bnez $t5, .L800DEB08
|
||||
/* B55C98 800DEAF8 01A06025 */ move $t4, $t5
|
||||
/* B55C9C 800DEAFC 24020001 */ li $v0, 1
|
||||
/* B55CA0 800DEB00 10000084 */ b .L800DED14
|
||||
/* B55CA4 800DEB04 ACE20000 */ sw $v0, ($a3)
|
||||
.L800DEB08:
|
||||
/* B55CA8 800DEB08 24020003 */ li $v0, 3
|
||||
/* B55CAC 800DEB0C 145F0005 */ bne $v0, $ra, .L800DEB24
|
||||
/* B55CB0 800DEB10 00000000 */ nop
|
||||
/* B55CB4 800DEB14 144C0003 */ bne $v0, $t4, .L800DEB24
|
||||
/* B55CB8 800DEB18 00000000 */ nop
|
||||
/* B55CBC 800DEB1C 1000007D */ b .L800DED14
|
||||
/* B55CC0 800DEB20 8CE20000 */ lw $v0, ($a3)
|
||||
.L800DEB24:
|
||||
/* B55CC4 800DEB24 145F0004 */ bne $v0, $ra, .L800DEB38
|
||||
/* B55CC8 800DEB28 00000000 */ nop
|
||||
/* B55CCC 800DEB2C ACE00000 */ sw $zero, ($a3)
|
||||
/* B55CD0 800DEB30 10000078 */ b .L800DED14
|
||||
/* B55CD4 800DEB34 00001025 */ move $v0, $zero
|
||||
.L800DEB38:
|
||||
/* B55CD8 800DEB38 144C0003 */ bne $v0, $t4, .L800DEB48
|
||||
/* B55CDC 800DEB3C 24020001 */ li $v0, 1
|
||||
/* B55CE0 800DEB40 10000074 */ b .L800DED14
|
||||
/* B55CE4 800DEB44 ACE20000 */ sw $v0, ($a3)
|
||||
.L800DEB48:
|
||||
/* B55CE8 800DEB48 1600002F */ bnez $s0, .L800DEC08
|
||||
/* B55CEC 800DEB4C 00000000 */ nop
|
||||
/* B55CF0 800DEB50 155F0016 */ bne $t2, $ra, .L800DEBAC
|
||||
/* B55CF4 800DEB54 3C048017 */ lui $a0, %hi(gAudioContext+0x285c) # $a0, 0x8017
|
||||
/* B55CF8 800DEB58 848419DC */ lh $a0, %lo(gAudioContext+0x285c)($a0)
|
||||
/* B55CFC 800DEB5C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B55D00 800DEB60 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B55D04 800DEB64 1880000D */ blez $a0, .L800DEB9C
|
||||
/* B55D08 800DEB68 00001825 */ move $v1, $zero
|
||||
.L800DEB6C:
|
||||
/* B55D0C 800DEB6C 8C4E3530 */ lw $t6, 0x3530($v0)
|
||||
/* B55D10 800DEB70 000E7FC2 */ srl $t7, $t6, 0x1f
|
||||
/* B55D14 800DEB74 51E00006 */ beql $t7, $zero, .L800DEB90
|
||||
/* B55D18 800DEB78 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55D1C 800DEB7C 90583534 */ lbu $t8, 0x3534($v0)
|
||||
/* B55D20 800DEB80 84F9001E */ lh $t9, 0x1e($a3)
|
||||
/* B55D24 800DEB84 13190005 */ beq $t8, $t9, .L800DEB9C
|
||||
/* B55D28 800DEB88 00000000 */ nop
|
||||
/* B55D2C 800DEB8C 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DEB90:
|
||||
/* B55D30 800DEB90 0064082A */ slt $at, $v1, $a0
|
||||
/* B55D34 800DEB94 1420FFF5 */ bnez $at, .L800DEB6C
|
||||
/* B55D38 800DEB98 24420160 */ addiu $v0, $v0, 0x160
|
||||
.L800DEB9C:
|
||||
/* B55D3C 800DEB9C 14640003 */ bne $v1, $a0, .L800DEBAC
|
||||
/* B55D40 800DEBA0 00001025 */ move $v0, $zero
|
||||
/* B55D44 800DEBA4 1000005B */ b .L800DED14
|
||||
/* B55D48 800DEBA8 ACE00000 */ sw $zero, ($a3)
|
||||
.L800DEBAC:
|
||||
/* B55D4C 800DEBAC 154C0048 */ bne $t2, $t4, .L800DECD0
|
||||
/* B55D50 800DEBB0 3C048017 */ lui $a0, %hi(gAudioContext+0x285c) # $a0, 0x8017
|
||||
/* B55D54 800DEBB4 848419DC */ lh $a0, %lo(gAudioContext+0x285c)($a0)
|
||||
/* B55D58 800DEBB8 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B55D5C 800DEBBC 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B55D60 800DEBC0 1880000D */ blez $a0, .L800DEBF8
|
||||
/* B55D64 800DEBC4 00001825 */ move $v1, $zero
|
||||
.L800DEBC8:
|
||||
/* B55D68 800DEBC8 8C4E3530 */ lw $t6, 0x3530($v0)
|
||||
/* B55D6C 800DEBCC 000E7FC2 */ srl $t7, $t6, 0x1f
|
||||
/* B55D70 800DEBD0 51E00006 */ beql $t7, $zero, .L800DEBEC
|
||||
/* B55D74 800DEBD4 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55D78 800DEBD8 90583534 */ lbu $t8, 0x3534($v0)
|
||||
/* B55D7C 800DEBDC 84F9002A */ lh $t9, 0x2a($a3)
|
||||
/* B55D80 800DEBE0 13190005 */ beq $t8, $t9, .L800DEBF8
|
||||
/* B55D84 800DEBE4 00000000 */ nop
|
||||
/* B55D88 800DEBE8 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DEBEC:
|
||||
/* B55D8C 800DEBEC 0064082A */ slt $at, $v1, $a0
|
||||
/* B55D90 800DEBF0 1420FFF5 */ bnez $at, .L800DEBC8
|
||||
/* B55D94 800DEBF4 24420160 */ addiu $v0, $v0, 0x160
|
||||
.L800DEBF8:
|
||||
/* B55D98 800DEBF8 14640035 */ bne $v1, $a0, .L800DECD0
|
||||
/* B55D9C 800DEBFC 24020001 */ li $v0, 1
|
||||
/* B55DA0 800DEC00 10000044 */ b .L800DED14
|
||||
/* B55DA4 800DEC04 ACE20000 */ sw $v0, ($a3)
|
||||
.L800DEC08:
|
||||
/* B55DA8 800DEC08 56090032 */ bnel $s0, $t1, .L800DECD4
|
||||
/* B55DAC 800DEC0C 8CE20000 */ lw $v0, ($a3)
|
||||
/* B55DB0 800DEC10 155F0017 */ bne $t2, $ra, .L800DEC70
|
||||
/* B55DB4 800DEC14 3C058017 */ lui $a1, %hi(gAudioContext+0x2894) # $a1, 0x8017
|
||||
/* B55DB8 800DEC18 8CA51A14 */ lw $a1, %lo(gAudioContext+0x2894)($a1)
|
||||
/* B55DBC 800DEC1C 00001825 */ move $v1, $zero
|
||||
/* B55DC0 800DEC20 3C028017 */ lui $v0, %hi(gAudioContext+0x352c) # $v0, 0x8017
|
||||
/* B55DC4 800DEC24 18A0000E */ blez $a1, .L800DEC60
|
||||
/* B55DC8 800DEC28 00000000 */ nop
|
||||
/* B55DCC 800DEC2C 8C4226AC */ lw $v0, %lo(gAudioContext+0x352c)($v0)
|
||||
/* B55DD0 800DEC30 84E6001E */ lh $a2, 0x1e($a3)
|
||||
.L800DEC34:
|
||||
/* B55DD4 800DEC34 904F0033 */ lbu $t7, 0x33($v0)
|
||||
/* B55DD8 800DEC38 55E60006 */ bnel $t7, $a2, .L800DEC54
|
||||
/* B55DDC 800DEC3C 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55DE0 800DEC40 8C5800C0 */ lw $t8, 0xc0($v0)
|
||||
/* B55DE4 800DEC44 0018CFC2 */ srl $t9, $t8, 0x1f
|
||||
/* B55DE8 800DEC48 17200005 */ bnez $t9, .L800DEC60
|
||||
/* B55DEC 800DEC4C 00000000 */ nop
|
||||
/* B55DF0 800DEC50 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DEC54:
|
||||
/* B55DF4 800DEC54 0065082A */ slt $at, $v1, $a1
|
||||
/* B55DF8 800DEC58 1420FFF6 */ bnez $at, .L800DEC34
|
||||
/* B55DFC 800DEC5C 244200E0 */ addiu $v0, $v0, 0xe0
|
||||
.L800DEC60:
|
||||
/* B55E00 800DEC60 14650003 */ bne $v1, $a1, .L800DEC70
|
||||
/* B55E04 800DEC64 00001025 */ move $v0, $zero
|
||||
/* B55E08 800DEC68 1000002A */ b .L800DED14
|
||||
/* B55E0C 800DEC6C ACE00000 */ sw $zero, ($a3)
|
||||
.L800DEC70:
|
||||
/* B55E10 800DEC70 154C0017 */ bne $t2, $t4, .L800DECD0
|
||||
/* B55E14 800DEC74 3C058017 */ lui $a1, %hi(gAudioContext+0x2894) # $a1, 0x8017
|
||||
/* B55E18 800DEC78 8CA51A14 */ lw $a1, %lo(gAudioContext+0x2894)($a1)
|
||||
/* B55E1C 800DEC7C 00001825 */ move $v1, $zero
|
||||
/* B55E20 800DEC80 3C028017 */ lui $v0, %hi(gAudioContext+0x352c) # $v0, 0x8017
|
||||
/* B55E24 800DEC84 18A0000E */ blez $a1, .L800DECC0
|
||||
/* B55E28 800DEC88 00000000 */ nop
|
||||
/* B55E2C 800DEC8C 8C4226AC */ lw $v0, %lo(gAudioContext+0x352c)($v0)
|
||||
/* B55E30 800DEC90 84E4002A */ lh $a0, 0x2a($a3)
|
||||
.L800DEC94:
|
||||
/* B55E34 800DEC94 904E0033 */ lbu $t6, 0x33($v0)
|
||||
/* B55E38 800DEC98 55C40006 */ bnel $t6, $a0, .L800DECB4
|
||||
/* B55E3C 800DEC9C 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55E40 800DECA0 8C4F00C0 */ lw $t7, 0xc0($v0)
|
||||
/* B55E44 800DECA4 000FC7C2 */ srl $t8, $t7, 0x1f
|
||||
/* B55E48 800DECA8 17000005 */ bnez $t8, .L800DECC0
|
||||
/* B55E4C 800DECAC 00000000 */ nop
|
||||
/* B55E50 800DECB0 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DECB4:
|
||||
/* B55E54 800DECB4 0065082A */ slt $at, $v1, $a1
|
||||
/* B55E58 800DECB8 1420FFF6 */ bnez $at, .L800DEC94
|
||||
/* B55E5C 800DECBC 244200E0 */ addiu $v0, $v0, 0xe0
|
||||
.L800DECC0:
|
||||
/* B55E60 800DECC0 14650003 */ bne $v1, $a1, .L800DECD0
|
||||
/* B55E64 800DECC4 24020001 */ li $v0, 1
|
||||
/* B55E68 800DECC8 10000012 */ b .L800DED14
|
||||
/* B55E6C 800DECCC ACE20000 */ sw $v0, ($a3)
|
||||
.L800DECD0:
|
||||
/* B55E70 800DECD0 8CE20000 */ lw $v0, ($a3)
|
||||
.L800DECD4:
|
||||
/* B55E74 800DECD4 14400007 */ bnez $v0, .L800DECF4
|
||||
/* B55E78 800DECD8 00000000 */ nop
|
||||
/* B55E7C 800DECDC 553F000E */ bnel $t1, $ra, .L800DED18
|
||||
/* B55E80 800DECE0 00027880 */ sll $t7, $v0, 2
|
||||
/* B55E84 800DECE4 112C0009 */ beq $t1, $t4, .L800DED0C
|
||||
/* B55E88 800DECE8 24020001 */ li $v0, 1
|
||||
/* B55E8C 800DECEC 10000009 */ b .L800DED14
|
||||
/* B55E90 800DECF0 ACE20000 */ sw $v0, ($a3)
|
||||
.L800DECF4:
|
||||
/* B55E94 800DECF4 552C0008 */ bnel $t1, $t4, .L800DED18
|
||||
/* B55E98 800DECF8 00027880 */ sll $t7, $v0, 2
|
||||
/* B55E9C 800DECFC 113F0003 */ beq $t1, $ra, .L800DED0C
|
||||
/* B55EA0 800DED00 00001025 */ move $v0, $zero
|
||||
/* B55EA4 800DED04 10000003 */ b .L800DED14
|
||||
/* B55EA8 800DED08 ACE00000 */ sw $zero, ($a3)
|
||||
.L800DED0C:
|
||||
/* B55EAC 800DED0C 100000D4 */ b .L800DF060
|
||||
/* B55EB0 800DED10 00001025 */ move $v0, $zero
|
||||
.L800DED14:
|
||||
/* B55EB4 800DED14 00027880 */ sll $t7, $v0, 2
|
||||
.L800DED18:
|
||||
/* B55EB8 800DED18 01E27823 */ subu $t7, $t7, $v0
|
||||
/* B55EBC 800DED1C 000F7880 */ sll $t7, $t7, 2
|
||||
/* B55EC0 800DED20 00EF2821 */ addu $a1, $a3, $t7
|
||||
/* B55EC4 800DED24 84A4001E */ lh $a0, 0x1e($a1)
|
||||
/* B55EC8 800DED28 2401FFFF */ li $at, -1
|
||||
/* B55ECC 800DED2C 00401825 */ move $v1, $v0
|
||||
/* B55ED0 800DED30 10810020 */ beq $a0, $at, .L800DEDB4
|
||||
/* B55ED4 800DED34 00000000 */ nop
|
||||
/* B55ED8 800DED38 560A0010 */ bnel $s0, $t2, .L800DED7C
|
||||
/* B55EDC 800DED3C 0164C021 */ addu $t8, $t3, $a0
|
||||
/* B55EE0 800DED40 AFA2002C */ sw $v0, 0x2c($sp)
|
||||
/* B55EE4 800DED44 AFA50020 */ sw $a1, 0x20($sp)
|
||||
/* B55EE8 800DED48 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B55EEC 800DED4C AFA8004C */ sw $t0, 0x4c($sp)
|
||||
/* B55EF0 800DED50 0C03839B */ jal func_800E0E6C
|
||||
/* B55EF4 800DED54 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B55EF8 800DED58 8FA50020 */ lw $a1, 0x20($sp)
|
||||
/* B55EFC 800DED5C 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* B55F00 800DED60 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B55F04 800DED64 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* B55F08 800DED68 24090001 */ li $t1, 1
|
||||
/* B55F0C 800DED6C 240A0002 */ li $t2, 2
|
||||
/* B55F10 800DED70 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B55F14 800DED74 84A4001E */ lh $a0, 0x1e($a1)
|
||||
/* B55F18 800DED78 0164C021 */ addu $t8, $t3, $a0
|
||||
.L800DED7C:
|
||||
/* B55F1C 800DED7C 1609000D */ bne $s0, $t1, .L800DEDB4
|
||||
/* B55F20 800DED80 A3000000 */ sb $zero, ($t8)
|
||||
/* B55F24 800DED84 84A4001E */ lh $a0, 0x1e($a1)
|
||||
/* B55F28 800DED88 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B55F2C 800DED8C AFA8004C */ sw $t0, 0x4c($sp)
|
||||
/* B55F30 800DED90 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B55F34 800DED94 0C037812 */ jal func_800DE048
|
||||
/* B55F38 800DED98 AFA3002C */ sw $v1, 0x2c($sp)
|
||||
/* B55F3C 800DED9C 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* B55F40 800DEDA0 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B55F44 800DEDA4 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* B55F48 800DEDA8 24090001 */ li $t1, 1
|
||||
/* B55F4C 800DEDAC 240A0002 */ li $t2, 2
|
||||
/* B55F50 800DEDB0 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
.L800DEDB4:
|
||||
/* B55F54 800DEDB4 10600005 */ beqz $v1, .L800DEDCC
|
||||
/* B55F58 800DEDB8 250200D8 */ addiu $v0, $t0, 0xd8
|
||||
/* B55F5C 800DEDBC 10690040 */ beq $v1, $t1, .L800DEEC0
|
||||
/* B55F60 800DEDC0 250200D8 */ addiu $v0, $t0, 0xd8
|
||||
/* B55F64 800DEDC4 100000A6 */ b .L800DF060
|
||||
/* B55F68 800DEDC8 00001025 */ move $v0, $zero
|
||||
.L800DEDCC:
|
||||
/* B55F6C 800DEDCC 8C590000 */ lw $t9, ($v0)
|
||||
/* B55F70 800DEDD0 2401FFFF */ li $at, -1
|
||||
/* B55F74 800DEDD4 ACF90014 */ sw $t9, 0x14($a3)
|
||||
/* B55F78 800DEDD8 8FAE005C */ lw $t6, 0x5c($sp)
|
||||
/* B55F7C 800DEDDC A4EE001E */ sh $t6, 0x1e($a3)
|
||||
/* B55F80 800DEDE0 8FAF0054 */ lw $t7, 0x54($sp)
|
||||
/* B55F84 800DEDE4 ACEF0018 */ sw $t7, 0x18($a3)
|
||||
/* B55F88 800DEDE8 8FB90054 */ lw $t9, 0x54($sp)
|
||||
/* B55F8C 800DEDEC 8C580000 */ lw $t8, ($v0)
|
||||
/* B55F90 800DEDF0 03197021 */ addu $t6, $t8, $t9
|
||||
/* B55F94 800DEDF4 AC4E0004 */ sw $t6, 4($v0)
|
||||
/* B55F98 800DEDF8 84E4002A */ lh $a0, 0x2a($a3)
|
||||
/* B55F9C 800DEDFC 5081002B */ beql $a0, $at, .L800DEEAC
|
||||
/* B55FA0 800DEE00 8CE30014 */ lw $v1, 0x14($a3)
|
||||
/* B55FA4 800DEE04 8CEF0020 */ lw $t7, 0x20($a3)
|
||||
/* B55FA8 800DEE08 01EE082B */ sltu $at, $t7, $t6
|
||||
/* B55FAC 800DEE0C 50200027 */ beql $at, $zero, .L800DEEAC
|
||||
/* B55FB0 800DEE10 8CE30014 */ lw $v1, 0x14($a3)
|
||||
/* B55FB4 800DEE14 560A000B */ bnel $s0, $t2, .L800DEE44
|
||||
/* B55FB8 800DEE18 0164C821 */ addu $t9, $t3, $a0
|
||||
/* B55FBC 800DEE1C AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* B55FC0 800DEE20 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B55FC4 800DEE24 0C03839B */ jal func_800E0E6C
|
||||
/* B55FC8 800DEE28 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B55FCC 800DEE2C 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B55FD0 800DEE30 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* B55FD4 800DEE34 24090001 */ li $t1, 1
|
||||
/* B55FD8 800DEE38 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B55FDC 800DEE3C 84E4002A */ lh $a0, 0x2a($a3)
|
||||
/* B55FE0 800DEE40 0164C821 */ addu $t9, $t3, $a0
|
||||
.L800DEE44:
|
||||
/* B55FE4 800DEE44 12000005 */ beqz $s0, .L800DEE5C
|
||||
/* B55FE8 800DEE48 A3200000 */ sb $zero, ($t9)
|
||||
/* B55FEC 800DEE4C 5209000B */ beql $s0, $t1, .L800DEE7C
|
||||
/* B55FF0 800DEE50 84E4002A */ lh $a0, 0x2a($a3)
|
||||
/* B55FF4 800DEE54 1000000F */ b .L800DEE94
|
||||
/* B55FF8 800DEE58 240EFFFF */ li $t6, -1
|
||||
.L800DEE5C:
|
||||
/* B55FFC 800DEE5C 84E4002A */ lh $a0, 0x2a($a3)
|
||||
/* B56000 800DEE60 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B56004 800DEE64 0C03786D */ jal func_800DE1B4
|
||||
/* B56008 800DEE68 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* B5600C 800DEE6C 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* B56010 800DEE70 10000007 */ b .L800DEE90
|
||||
/* B56014 800DEE74 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B56018 800DEE78 84E4002A */ lh $a0, 0x2a($a3)
|
||||
.L800DEE7C:
|
||||
/* B5601C 800DEE7C AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B56020 800DEE80 0C037812 */ jal func_800DE048
|
||||
/* B56024 800DEE84 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* B56028 800DEE88 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* B5602C 800DEE8C 8FA70024 */ lw $a3, 0x24($sp)
|
||||
.L800DEE90:
|
||||
/* B56030 800DEE90 240EFFFF */ li $t6, -1
|
||||
.L800DEE94:
|
||||
/* B56034 800DEE94 A4EE002A */ sh $t6, 0x2a($a3)
|
||||
/* B56038 800DEE98 8C580008 */ lw $t8, 8($v0)
|
||||
/* B5603C 800DEE9C 8C4F0000 */ lw $t7, ($v0)
|
||||
/* B56040 800DEEA0 01F8C821 */ addu $t9, $t7, $t8
|
||||
/* B56044 800DEEA4 ACF90020 */ sw $t9, 0x20($a3)
|
||||
/* B56048 800DEEA8 8CE30014 */ lw $v1, 0x14($a3)
|
||||
.L800DEEAC:
|
||||
/* B5604C 800DEEAC 8CEE0000 */ lw $t6, ($a3)
|
||||
/* B56050 800DEEB0 00601025 */ move $v0, $v1
|
||||
/* B56054 800DEEB4 39CF0001 */ xori $t7, $t6, 1
|
||||
/* B56058 800DEEB8 10000069 */ b .L800DF060
|
||||
/* B5605C 800DEEBC ACEF0000 */ sw $t7, ($a3)
|
||||
.L800DEEC0:
|
||||
/* B56060 800DEEC0 8C580000 */ lw $t8, ($v0)
|
||||
/* B56064 800DEEC4 8C590008 */ lw $t9, 8($v0)
|
||||
/* B56068 800DEEC8 8FAF0054 */ lw $t7, 0x54($sp)
|
||||
/* B5606C 800DEECC 2401FFF0 */ li $at, -16
|
||||
/* B56070 800DEED0 03197021 */ addu $t6, $t8, $t9
|
||||
/* B56074 800DEED4 01CFC023 */ subu $t8, $t6, $t7
|
||||
/* B56078 800DEED8 0301C824 */ and $t9, $t8, $at
|
||||
/* B5607C 800DEEDC ACF90020 */ sw $t9, 0x20($a3)
|
||||
/* B56080 800DEEE0 8FAE005C */ lw $t6, 0x5c($sp)
|
||||
/* B56084 800DEEE4 84E6001E */ lh $a2, 0x1e($a3)
|
||||
/* B56088 800DEEE8 2401FFFF */ li $at, -1
|
||||
/* B5608C 800DEEEC A4EE002A */ sh $t6, 0x2a($a3)
|
||||
/* B56090 800DEEF0 8FAF0054 */ lw $t7, 0x54($sp)
|
||||
/* B56094 800DEEF4 0320C025 */ move $t8, $t9
|
||||
/* B56098 800DEEF8 10C10028 */ beq $a2, $at, .L800DEF9C
|
||||
/* B5609C 800DEEFC ACEF0024 */ sw $t7, 0x24($a3)
|
||||
/* B560A0 800DEF00 8C590004 */ lw $t9, 4($v0)
|
||||
/* B560A4 800DEF04 0319082B */ sltu $at, $t8, $t9
|
||||
/* B560A8 800DEF08 10200024 */ beqz $at, .L800DEF9C
|
||||
/* B560AC 800DEF0C 00000000 */ nop
|
||||
/* B560B0 800DEF10 160A000A */ bne $s0, $t2, .L800DEF3C
|
||||
/* B560B4 800DEF14 00C02025 */ move $a0, $a2
|
||||
/* B560B8 800DEF18 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* B560BC 800DEF1C AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B560C0 800DEF20 0C03839B */ jal func_800E0E6C
|
||||
/* B560C4 800DEF24 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B560C8 800DEF28 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B560CC 800DEF2C 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* B560D0 800DEF30 24090001 */ li $t1, 1
|
||||
/* B560D4 800DEF34 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B560D8 800DEF38 84E6001E */ lh $a2, 0x1e($a3)
|
||||
.L800DEF3C:
|
||||
/* B560DC 800DEF3C 01667021 */ addu $t6, $t3, $a2
|
||||
/* B560E0 800DEF40 12000005 */ beqz $s0, .L800DEF58
|
||||
/* B560E4 800DEF44 A1C00000 */ sb $zero, ($t6)
|
||||
/* B560E8 800DEF48 5209000B */ beql $s0, $t1, .L800DEF78
|
||||
/* B560EC 800DEF4C 84E4001E */ lh $a0, 0x1e($a3)
|
||||
/* B560F0 800DEF50 1000000F */ b .L800DEF90
|
||||
/* B560F4 800DEF54 240FFFFF */ li $t7, -1
|
||||
.L800DEF58:
|
||||
/* B560F8 800DEF58 84E4001E */ lh $a0, 0x1e($a3)
|
||||
/* B560FC 800DEF5C AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B56100 800DEF60 0C03786D */ jal func_800DE1B4
|
||||
/* B56104 800DEF64 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* B56108 800DEF68 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* B5610C 800DEF6C 10000007 */ b .L800DEF8C
|
||||
/* B56110 800DEF70 8FA70024 */ lw $a3, 0x24($sp)
|
||||
/* B56114 800DEF74 84E4001E */ lh $a0, 0x1e($a3)
|
||||
.L800DEF78:
|
||||
/* B56118 800DEF78 AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B5611C 800DEF7C 0C037812 */ jal func_800DE048
|
||||
/* B56120 800DEF80 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* B56124 800DEF84 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* B56128 800DEF88 8FA70024 */ lw $a3, 0x24($sp)
|
||||
.L800DEF8C:
|
||||
/* B5612C 800DEF8C 240FFFFF */ li $t7, -1
|
||||
.L800DEF90:
|
||||
/* B56130 800DEF90 A4EF001E */ sh $t7, 0x1e($a3)
|
||||
/* B56134 800DEF94 8C580000 */ lw $t8, ($v0)
|
||||
/* B56138 800DEF98 AC580004 */ sw $t8, 4($v0)
|
||||
.L800DEF9C:
|
||||
/* B5613C 800DEF9C 1000FFC3 */ b .L800DEEAC
|
||||
/* B56140 800DEFA0 8CE30020 */ lw $v1, 0x20($a3)
|
||||
/* B56144 800DEFA4 1000002E */ b .L800DF060
|
||||
/* B56148 800DEFA8 00001025 */ move $v0, $zero
|
||||
.L800DEFAC:
|
||||
/* B5614C 800DEFAC AFA60058 */ sw $a2, 0x58($sp)
|
||||
/* B56150 800DEFB0 AFA8004C */ sw $t0, 0x4c($sp)
|
||||
/* B56154 800DEFB4 0C0378F7 */ jal Audio_Alloc
|
||||
/* B56158 800DEFB8 AFAB0030 */ sw $t3, 0x30($sp)
|
||||
/* B5615C 800DEFBC 8FA8004C */ lw $t0, 0x4c($sp)
|
||||
/* B56160 800DEFC0 2407000C */ li $a3, 12
|
||||
/* B56164 800DEFC4 8FA60058 */ lw $a2, 0x58($sp)
|
||||
/* B56168 800DEFC8 8D190000 */ lw $t9, ($t0)
|
||||
/* B5616C 800DEFCC 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* B56170 800DEFD0 24090001 */ li $t1, 1
|
||||
/* B56174 800DEFD4 03270019 */ multu $t9, $a3
|
||||
/* B56178 800DEFD8 240A0002 */ li $t2, 2
|
||||
/* B5617C 800DEFDC 00007012 */ mflo $t6
|
||||
/* B56180 800DEFE0 010E7821 */ addu $t7, $t0, $t6
|
||||
/* B56184 800DEFE4 1440000B */ bnez $v0, .L800DF014
|
||||
/* B56188 800DEFE8 ADE20014 */ sw $v0, 0x14($t7)
|
||||
/* B5618C 800DEFEC 10C00007 */ beqz $a2, .L800DF00C
|
||||
/* B56190 800DEFF0 00000000 */ nop
|
||||
/* B56194 800DEFF4 10C90005 */ beq $a2, $t1, .L800DF00C
|
||||
/* B56198 800DEFF8 00000000 */ nop
|
||||
/* B5619C 800DEFFC 54CA0006 */ bnel $a2, $t2, .L800DF018
|
||||
/* B561A0 800DF000 8D190000 */ lw $t9, ($t0)
|
||||
/* B561A4 800DF004 1000FE40 */ b .L800DE908
|
||||
/* B561A8 800DF008 00003025 */ move $a2, $zero
|
||||
.L800DF00C:
|
||||
/* B561AC 800DF00C 10000014 */ b .L800DF060
|
||||
/* B561B0 800DF010 00001025 */ move $v0, $zero
|
||||
.L800DF014:
|
||||
/* B561B4 800DF014 8D190000 */ lw $t9, ($t0)
|
||||
.L800DF018:
|
||||
/* B561B8 800DF018 8FB8005C */ lw $t8, 0x5c($sp)
|
||||
/* B561BC 800DF01C 03270019 */ multu $t9, $a3
|
||||
/* B561C0 800DF020 00007012 */ mflo $t6
|
||||
/* B561C4 800DF024 010E7821 */ addu $t7, $t0, $t6
|
||||
/* B561C8 800DF028 A5F8001E */ sh $t8, 0x1e($t7)
|
||||
/* B561CC 800DF02C 8D0E0000 */ lw $t6, ($t0)
|
||||
/* B561D0 800DF030 8FB90054 */ lw $t9, 0x54($sp)
|
||||
/* B561D4 800DF034 01C70019 */ multu $t6, $a3
|
||||
/* B561D8 800DF038 0000C012 */ mflo $t8
|
||||
/* B561DC 800DF03C 01187821 */ addu $t7, $t0, $t8
|
||||
/* B561E0 800DF040 ADF90018 */ sw $t9, 0x18($t7)
|
||||
/* B561E4 800DF044 8D030000 */ lw $v1, ($t0)
|
||||
/* B561E8 800DF048 00670019 */ multu $v1, $a3
|
||||
/* B561EC 800DF04C 24790001 */ addiu $t9, $v1, 1
|
||||
/* B561F0 800DF050 00007012 */ mflo $t6
|
||||
/* B561F4 800DF054 010EC021 */ addu $t8, $t0, $t6
|
||||
/* B561F8 800DF058 8F020014 */ lw $v0, 0x14($t8)
|
||||
/* B561FC 800DF05C AD190000 */ sw $t9, ($t0)
|
||||
.L800DF060:
|
||||
/* B56200 800DF060 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B56204 800DF064 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B56208 800DF068 27BD0050 */ addiu $sp, $sp, 0x50
|
||||
/* B5620C 800DF06C 03E00008 */ jr $ra
|
||||
/* B56210 800DF070 00000000 */ nop
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
glabel Audio_AllocDmaMemory
|
||||
/* B554A8 800DE308 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B554AC 800DE30C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B554B0 800DE310 0C0378F7 */ jal Audio_Alloc
|
||||
/* B554B4 800DE314 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* B554B8 800DE318 10400005 */ beqz $v0, .L800DE330
|
||||
/* B554BC 800DE31C 00402025 */ move $a0, $v0
|
||||
/* B554C0 800DE320 8FA50024 */ lw $a1, 0x24($sp)
|
||||
/* B554C4 800DE324 0C03788E */ jal func_800DE238
|
||||
/* B554C8 800DE328 AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* B554CC 800DE32C 8FA4001C */ lw $a0, 0x1c($sp)
|
||||
.L800DE330:
|
||||
/* B554D0 800DE330 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B554D4 800DE334 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* B554D8 800DE338 00801025 */ move $v0, $a0
|
||||
/* B554DC 800DE33C 03E00008 */ jr $ra
|
||||
/* B554E0 800DE340 00000000 */ nop
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
glabel Audio_AllocZeroed
|
||||
/* B55520 800DE380 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B55524 800DE384 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B55528 800DE388 0C0378F7 */ jal Audio_Alloc
|
||||
/* B5552C 800DE38C AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B55530 800DE390 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* B55534 800DE394 1040000C */ beqz $v0, .L800DE3C8
|
||||
/* B55538 800DE398 00402825 */ move $a1, $v0
|
||||
/* B5553C 800DE39C 8C8E0004 */ lw $t6, 4($a0)
|
||||
/* B55540 800DE3A0 00401825 */ move $v1, $v0
|
||||
/* B55544 800DE3A4 004E082B */ sltu $at, $v0, $t6
|
||||
/* B55548 800DE3A8 50200008 */ beql $at, $zero, .L800DE3CC
|
||||
/* B5554C 800DE3AC 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B55550 800DE3B0 A0600000 */ sb $zero, ($v1)
|
||||
.L800DE3B4:
|
||||
/* B55554 800DE3B4 8C8F0004 */ lw $t7, 4($a0)
|
||||
/* B55558 800DE3B8 24630001 */ addiu $v1, $v1, 1
|
||||
/* B5555C 800DE3BC 006F082B */ sltu $at, $v1, $t7
|
||||
/* B55560 800DE3C0 5420FFFC */ bnezl $at, .L800DE3B4
|
||||
/* B55564 800DE3C4 A0600000 */ sb $zero, ($v1)
|
||||
.L800DE3C8:
|
||||
/* B55568 800DE3C8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DE3CC:
|
||||
/* B5556C 800DE3CC 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B55570 800DE3D0 00A01025 */ move $v0, $a1
|
||||
/* B55574 800DE3D4 03E00008 */ jr $ra
|
||||
/* B55578 800DE3D8 00000000 */ nop
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
glabel Audio_InitMainPools
|
||||
/* B55790 800DE5F0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B55794 800DE5F4 00803025 */ move $a2, $a0
|
||||
/* B55798 800DE5F8 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B5579C 800DE5FC 3C048017 */ lui $a0, %hi(gAudioContext+0x29b0) # $a0, 0x8017
|
||||
/* B557A0 800DE600 3C058017 */ lui $a1, %hi(gAudioContext+0x3524) # $a1, 0x8017
|
||||
/* B557A4 800DE604 8CA526A4 */ lw $a1, %lo(gAudioContext+0x3524)($a1)
|
||||
/* B557A8 800DE608 24841B30 */ addiu $a0, %lo(gAudioContext+0x29b0) # addiu $a0, $a0, 0x1b30
|
||||
/* B557AC 800DE60C 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B557B0 800DE610 AFA60018 */ sw $a2, 0x18($sp)
|
||||
/* B557B4 800DE614 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B557B8 800DE618 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B557BC 800DE61C 8FA70018 */ lw $a3, 0x18($sp)
|
||||
/* B557C0 800DE620 8C4E3524 */ lw $t6, 0x3524($v0)
|
||||
/* B557C4 800DE624 8C4F3528 */ lw $t7, 0x3528($v0)
|
||||
/* B557C8 800DE628 3C048017 */ lui $a0, %hi(gAudioContext+0x2990) # $a0, 0x8017
|
||||
/* B557CC 800DE62C 24841B10 */ addiu $a0, %lo(gAudioContext+0x2990) # addiu $a0, $a0, 0x1b10
|
||||
/* B557D0 800DE630 01C72821 */ addu $a1, $t6, $a3
|
||||
/* B557D4 800DE634 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B557D8 800DE638 01E73023 */ subu $a2, $t7, $a3
|
||||
/* B557DC 800DE63C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B557E0 800DE640 3C018017 */ lui $at, %hi(gAudioContext+0x29a0) # $at, 0x8017
|
||||
/* B557E4 800DE644 AC201B20 */ sw $zero, %lo(gAudioContext+0x29a0)($at)
|
||||
/* B557E8 800DE648 03E00008 */ jr $ra
|
||||
/* B557EC 800DE64C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
glabel Audio_PersistentPoolClear
|
||||
/* B555FC 800DE45C 8C8E0004 */ lw $t6, 4($a0)
|
||||
/* B55600 800DE460 AC800010 */ sw $zero, 0x10($a0)
|
||||
/* B55604 800DE464 AC800000 */ sw $zero, ($a0)
|
||||
/* B55608 800DE468 03E00008 */ jr $ra
|
||||
/* B5560C 800DE46C AC8E0008 */ sw $t6, 8($a0)
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
glabel Audio_PersistentPoolsInit
|
||||
/* B558F8 800DE758 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B558FC 800DE75C 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B55900 800DE760 8C4E2A00 */ lw $t6, 0x2a00($v0)
|
||||
/* B55904 800DE764 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B55908 800DE768 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B5590C 800DE76C 00808025 */ move $s0, $a0
|
||||
/* B55910 800DE770 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* B55914 800DE774 3C048017 */ lui $a0, %hi(gAudioContext+0x2a00) # $a0, 0x8017
|
||||
/* B55918 800DE778 AC4E2A04 */ sw $t6, 0x2a04($v0)
|
||||
/* B5591C 800DE77C 8E050000 */ lw $a1, ($s0)
|
||||
/* B55920 800DE780 0C0378F7 */ jal Audio_Alloc
|
||||
/* B55924 800DE784 24841B80 */ addiu $a0, %lo(gAudioContext+0x2a00) # addiu $a0, $a0, 0x1b80
|
||||
/* B55928 800DE788 3C048017 */ lui $a0, %hi(gAudioContext+0x2a24) # $a0, 0x8017
|
||||
/* B5592C 800DE78C 24841BA4 */ addiu $a0, %lo(gAudioContext+0x2a24) # addiu $a0, $a0, 0x1ba4
|
||||
/* B55930 800DE790 00402825 */ move $a1, $v0
|
||||
/* B55934 800DE794 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B55938 800DE798 8E060000 */ lw $a2, ($s0)
|
||||
/* B5593C 800DE79C 3C048017 */ lui $a0, %hi(gAudioContext+0x2a00) # $a0, 0x8017
|
||||
/* B55940 800DE7A0 24841B80 */ addiu $a0, %lo(gAudioContext+0x2a00) # addiu $a0, $a0, 0x1b80
|
||||
/* B55944 800DE7A4 0C0378F7 */ jal Audio_Alloc
|
||||
/* B55948 800DE7A8 8E050004 */ lw $a1, 4($s0)
|
||||
/* B5594C 800DE7AC 3C048017 */ lui $a0, %hi(gAudioContext+0x2b34) # $a0, 0x8017
|
||||
/* B55950 800DE7B0 24841CB4 */ addiu $a0, %lo(gAudioContext+0x2b34) # addiu $a0, $a0, 0x1cb4
|
||||
/* B55954 800DE7B4 00402825 */ move $a1, $v0
|
||||
/* B55958 800DE7B8 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B5595C 800DE7BC 8E060004 */ lw $a2, 4($s0)
|
||||
/* B55960 800DE7C0 3C048017 */ lui $a0, %hi(gAudioContext+0x2a00) # $a0, 0x8017
|
||||
/* B55964 800DE7C4 24841B80 */ addiu $a0, %lo(gAudioContext+0x2a00) # addiu $a0, $a0, 0x1b80
|
||||
/* B55968 800DE7C8 0C0378F7 */ jal Audio_Alloc
|
||||
/* B5596C 800DE7CC 8E050008 */ lw $a1, 8($s0)
|
||||
/* B55970 800DE7D0 3C048017 */ lui $a0, %hi(gAudioContext+0x2c44) # $a0, 0x8017
|
||||
/* B55974 800DE7D4 24841DC4 */ addiu $a0, %lo(gAudioContext+0x2c44) # addiu $a0, $a0, 0x1dc4
|
||||
/* B55978 800DE7D8 00402825 */ move $a1, $v0
|
||||
/* B5597C 800DE7DC 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B55980 800DE7E0 8E060008 */ lw $a2, 8($s0)
|
||||
/* B55984 800DE7E4 3C048017 */ lui $a0, %hi(gAudioContext+0x2a20) # $a0, 0x8017
|
||||
/* B55988 800DE7E8 0C037917 */ jal Audio_PersistentPoolClear
|
||||
/* B5598C 800DE7EC 24841BA0 */ addiu $a0, %lo(gAudioContext+0x2a20) # addiu $a0, $a0, 0x1ba0
|
||||
/* B55990 800DE7F0 3C048017 */ lui $a0, %hi(gAudioContext+0x2b30) # $a0, 0x8017
|
||||
/* B55994 800DE7F4 0C037917 */ jal Audio_PersistentPoolClear
|
||||
/* B55998 800DE7F8 24841CB0 */ addiu $a0, %lo(gAudioContext+0x2b30) # addiu $a0, $a0, 0x1cb0
|
||||
/* B5599C 800DE7FC 3C048017 */ lui $a0, %hi(gAudioContext+0x2c40) # $a0, 0x8017
|
||||
/* B559A0 800DE800 0C037917 */ jal Audio_PersistentPoolClear
|
||||
/* B559A4 800DE804 24841DC0 */ addiu $a0, %lo(gAudioContext+0x2c40) # addiu $a0, $a0, 0x1dc0
|
||||
/* B559A8 800DE808 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B559AC 800DE80C 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B559B0 800DE810 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* B559B4 800DE814 03E00008 */ jr $ra
|
||||
/* B559B8 800DE818 00000000 */ nop
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
glabel Audio_SeqAndBankPoolInit
|
||||
/* B55874 800DE6D4 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B55878 800DE6D8 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B5587C 800DE6DC 8C4E29F0 */ lw $t6, 0x29f0($v0)
|
||||
/* B55880 800DE6E0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B55884 800DE6E4 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B55888 800DE6E8 8FAF0018 */ lw $t7, 0x18($sp)
|
||||
/* B5588C 800DE6EC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B55890 800DE6F0 3C048017 */ lui $a0, %hi(gAudioContext+0x29f0) # $a0, 0x8017
|
||||
/* B55894 800DE6F4 AC4E29F4 */ sw $t6, 0x29f4($v0)
|
||||
/* B55898 800DE6F8 24841B70 */ addiu $a0, %lo(gAudioContext+0x29f0) # addiu $a0, $a0, 0x1b70
|
||||
/* B5589C 800DE6FC 0C0378F7 */ jal Audio_Alloc
|
||||
/* B558A0 800DE700 8DE50000 */ lw $a1, ($t7)
|
||||
/* B558A4 800DE704 8FB80018 */ lw $t8, 0x18($sp)
|
||||
/* B558A8 800DE708 3C048017 */ lui $a0, %hi(gAudioContext+0x2a00) # $a0, 0x8017
|
||||
/* B558AC 800DE70C 24841B80 */ addiu $a0, %lo(gAudioContext+0x2a00) # addiu $a0, $a0, 0x1b80
|
||||
/* B558B0 800DE710 00402825 */ move $a1, $v0
|
||||
/* B558B4 800DE714 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B558B8 800DE718 8F060000 */ lw $a2, ($t8)
|
||||
/* B558BC 800DE71C 8FB90018 */ lw $t9, 0x18($sp)
|
||||
/* B558C0 800DE720 3C048017 */ lui $a0, %hi(gAudioContext+0x29f0) # $a0, 0x8017
|
||||
/* B558C4 800DE724 24841B70 */ addiu $a0, %lo(gAudioContext+0x29f0) # addiu $a0, $a0, 0x1b70
|
||||
/* B558C8 800DE728 0C0378F7 */ jal Audio_Alloc
|
||||
/* B558CC 800DE72C 8F250004 */ lw $a1, 4($t9)
|
||||
/* B558D0 800DE730 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* B558D4 800DE734 3C048017 */ lui $a0, %hi(gAudioContext+0x2a10) # $a0, 0x8017
|
||||
/* B558D8 800DE738 24841B90 */ addiu $a0, %lo(gAudioContext+0x2a10) # addiu $a0, $a0, 0x1b90
|
||||
/* B558DC 800DE73C 00402825 */ move $a1, $v0
|
||||
/* B558E0 800DE740 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B558E4 800DE744 8D060004 */ lw $a2, 4($t0)
|
||||
/* B558E8 800DE748 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B558EC 800DE74C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B558F0 800DE750 03E00008 */ jr $ra
|
||||
/* B558F4 800DE754 00000000 */ nop
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
glabel Audio_SessionPoolsInit
|
||||
/* B557F0 800DE650 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B557F4 800DE654 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B557F8 800DE658 8C4E2990 */ lw $t6, 0x2990($v0)
|
||||
/* B557FC 800DE65C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B55800 800DE660 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B55804 800DE664 8FAF0018 */ lw $t7, 0x18($sp)
|
||||
/* B55808 800DE668 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B5580C 800DE66C 3C048017 */ lui $a0, %hi(gAudioContext+0x2990) # $a0, 0x8017
|
||||
/* B55810 800DE670 AC4E2994 */ sw $t6, 0x2994($v0)
|
||||
/* B55814 800DE674 24841B10 */ addiu $a0, %lo(gAudioContext+0x2990) # addiu $a0, $a0, 0x1b10
|
||||
/* B55818 800DE678 0C0378F7 */ jal Audio_Alloc
|
||||
/* B5581C 800DE67C 8DE50000 */ lw $a1, ($t7)
|
||||
/* B55820 800DE680 8FB80018 */ lw $t8, 0x18($sp)
|
||||
/* B55824 800DE684 3C048017 */ lui $a0, %hi(gAudioContext+0x29c0) # $a0, 0x8017
|
||||
/* B55828 800DE688 24841B40 */ addiu $a0, %lo(gAudioContext+0x29c0) # addiu $a0, $a0, 0x1b40
|
||||
/* B5582C 800DE68C 00402825 */ move $a1, $v0
|
||||
/* B55830 800DE690 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B55834 800DE694 8F060000 */ lw $a2, ($t8)
|
||||
/* B55838 800DE698 8FB90018 */ lw $t9, 0x18($sp)
|
||||
/* B5583C 800DE69C 3C048017 */ lui $a0, %hi(gAudioContext+0x2990) # $a0, 0x8017
|
||||
/* B55840 800DE6A0 24841B10 */ addiu $a0, %lo(gAudioContext+0x2990) # addiu $a0, $a0, 0x1b10
|
||||
/* B55844 800DE6A4 0C0378F7 */ jal Audio_Alloc
|
||||
/* B55848 800DE6A8 8F25000C */ lw $a1, 0xc($t9)
|
||||
/* B5584C 800DE6AC 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* B55850 800DE6B0 3C048017 */ lui $a0, %hi(gAudioContext+0x29f0) # $a0, 0x8017
|
||||
/* B55854 800DE6B4 24841B70 */ addiu $a0, %lo(gAudioContext+0x29f0) # addiu $a0, $a0, 0x1b70
|
||||
/* B55858 800DE6B8 00402825 */ move $a1, $v0
|
||||
/* B5585C 800DE6BC 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B55860 800DE6C0 8D06000C */ lw $a2, 0xc($t0)
|
||||
/* B55864 800DE6C4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B55868 800DE6C8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B5586C 800DE6CC 03E00008 */ jr $ra
|
||||
/* B55870 800DE6D0 00000000 */ nop
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
glabel Audio_SoundAllocPoolInit
|
||||
/* B555D4 800DE434 24A2000F */ addiu $v0, $a1, 0xf
|
||||
/* B555D8 800DE438 2401FFF0 */ li $at, -16
|
||||
/* B555DC 800DE43C 30AE000F */ andi $t6, $a1, 0xf
|
||||
/* B555E0 800DE440 00411024 */ and $v0, $v0, $at
|
||||
/* B555E4 800DE444 00CE7823 */ subu $t7, $a2, $t6
|
||||
/* B555E8 800DE448 AC820000 */ sw $v0, ($a0)
|
||||
/* B555EC 800DE44C AC820004 */ sw $v0, 4($a0)
|
||||
/* B555F0 800DE450 AC8F0008 */ sw $t7, 8($a0)
|
||||
/* B555F4 800DE454 03E00008 */ jr $ra
|
||||
/* B555F8 800DE458 AC80000C */ sw $zero, 0xc($a0)
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
glabel Audio_TemporaryPoolClear
|
||||
/* B55610 800DE470 8C820004 */ lw $v0, 4($a0)
|
||||
/* B55614 800DE474 8C8E000C */ lw $t6, 0xc($a0)
|
||||
/* B55618 800DE478 2403FFFF */ li $v1, -1
|
||||
/* B5561C 800DE47C AC800010 */ sw $zero, 0x10($a0)
|
||||
/* B55620 800DE480 004E7821 */ addu $t7, $v0, $t6
|
||||
/* B55624 800DE484 AC800000 */ sw $zero, ($a0)
|
||||
/* B55628 800DE488 AC8F0020 */ sw $t7, 0x20($a0)
|
||||
/* B5562C 800DE48C A483001E */ sh $v1, 0x1e($a0)
|
||||
/* B55630 800DE490 A483002A */ sh $v1, 0x2a($a0)
|
||||
/* B55634 800DE494 AC820008 */ sw $v0, 8($a0)
|
||||
/* B55638 800DE498 03E00008 */ jr $ra
|
||||
/* B5563C 800DE49C AC820014 */ sw $v0, 0x14($a0)
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
glabel Audio_TemporaryPoolsInit
|
||||
/* B559BC 800DE81C 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
||||
/* B559C0 800DE820 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
||||
/* B559C4 800DE824 8C4E2A10 */ lw $t6, 0x2a10($v0)
|
||||
/* B559C8 800DE828 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B559CC 800DE82C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B559D0 800DE830 00808025 */ move $s0, $a0
|
||||
/* B559D4 800DE834 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* B559D8 800DE838 3C048017 */ lui $a0, %hi(gAudioContext+0x2a10) # $a0, 0x8017
|
||||
/* B559DC 800DE83C AC4E2A14 */ sw $t6, 0x2a14($v0)
|
||||
/* B559E0 800DE840 8E050000 */ lw $a1, ($s0)
|
||||
/* B559E4 800DE844 0C0378F7 */ jal Audio_Alloc
|
||||
/* B559E8 800DE848 24841B90 */ addiu $a0, %lo(gAudioContext+0x2a10) # addiu $a0, $a0, 0x1b90
|
||||
/* B559EC 800DE84C 3C048017 */ lui $a0, %hi(gAudioContext+0x2af8) # $a0, 0x8017
|
||||
/* B559F0 800DE850 24841C78 */ addiu $a0, %lo(gAudioContext+0x2af8) # addiu $a0, $a0, 0x1c78
|
||||
/* B559F4 800DE854 00402825 */ move $a1, $v0
|
||||
/* B559F8 800DE858 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B559FC 800DE85C 8E060000 */ lw $a2, ($s0)
|
||||
/* B55A00 800DE860 3C048017 */ lui $a0, %hi(gAudioContext+0x2a10) # $a0, 0x8017
|
||||
/* B55A04 800DE864 24841B90 */ addiu $a0, %lo(gAudioContext+0x2a10) # addiu $a0, $a0, 0x1b90
|
||||
/* B55A08 800DE868 0C0378F7 */ jal Audio_Alloc
|
||||
/* B55A0C 800DE86C 8E050004 */ lw $a1, 4($s0)
|
||||
/* B55A10 800DE870 3C048017 */ lui $a0, %hi(gAudioContext+0x2c08) # $a0, 0x8017
|
||||
/* B55A14 800DE874 24841D88 */ addiu $a0, %lo(gAudioContext+0x2c08) # addiu $a0, $a0, 0x1d88
|
||||
/* B55A18 800DE878 00402825 */ move $a1, $v0
|
||||
/* B55A1C 800DE87C 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B55A20 800DE880 8E060004 */ lw $a2, 4($s0)
|
||||
/* B55A24 800DE884 3C048017 */ lui $a0, %hi(gAudioContext+0x2a10) # $a0, 0x8017
|
||||
/* B55A28 800DE888 24841B90 */ addiu $a0, %lo(gAudioContext+0x2a10) # addiu $a0, $a0, 0x1b90
|
||||
/* B55A2C 800DE88C 0C0378F7 */ jal Audio_Alloc
|
||||
/* B55A30 800DE890 8E050008 */ lw $a1, 8($s0)
|
||||
/* B55A34 800DE894 3C048017 */ lui $a0, %hi(gAudioContext+0x2d18) # $a0, 0x8017
|
||||
/* B55A38 800DE898 24841E98 */ addiu $a0, %lo(gAudioContext+0x2d18) # addiu $a0, $a0, 0x1e98
|
||||
/* B55A3C 800DE89C 00402825 */ move $a1, $v0
|
||||
/* B55A40 800DE8A0 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B55A44 800DE8A4 8E060008 */ lw $a2, 8($s0)
|
||||
/* B55A48 800DE8A8 3C048017 */ lui $a0, %hi(gAudioContext+0x2af4) # $a0, 0x8017
|
||||
/* B55A4C 800DE8AC 0C03791C */ jal Audio_TemporaryPoolClear
|
||||
/* B55A50 800DE8B0 24841C74 */ addiu $a0, %lo(gAudioContext+0x2af4) # addiu $a0, $a0, 0x1c74
|
||||
/* B55A54 800DE8B4 3C048017 */ lui $a0, %hi(gAudioContext+0x2c04) # $a0, 0x8017
|
||||
/* B55A58 800DE8B8 0C03791C */ jal Audio_TemporaryPoolClear
|
||||
/* B55A5C 800DE8BC 24841D84 */ addiu $a0, %lo(gAudioContext+0x2c04) # addiu $a0, $a0, 0x1d84
|
||||
/* B55A60 800DE8C0 3C048017 */ lui $a0, %hi(gAudioContext+0x2d14) # $a0, 0x8017
|
||||
/* B55A64 800DE8C4 0C03791C */ jal Audio_TemporaryPoolClear
|
||||
/* B55A68 800DE8C8 24841E94 */ addiu $a0, %lo(gAudioContext+0x2d14) # addiu $a0, $a0, 0x1e94
|
||||
/* B55A6C 800DE8CC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B55A70 800DE8D0 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B55A74 800DE8D4 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* B55A78 800DE8D8 03E00008 */ jr $ra
|
||||
/* B55A7C 800DE8DC 00000000 */ nop
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
glabel func_800DDE20
|
||||
/* B54FC0 800DDE20 3C014380 */ li $at, 0x43800000 # 0.000000
|
||||
/* B54FC4 800DDE24 44812000 */ mtc1 $at, $f4
|
||||
/* B54FC8 800DDE28 3C018017 */ lui $at, %hi(gAudioContext+0x2868)
|
||||
/* B54FCC 800DDE2C C42619E8 */ lwc1 $f6, %lo(gAudioContext+0x2868)($at)
|
||||
/* B54FD0 800DDE30 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* B54FD4 800DDE34 03E00008 */ jr $ra
|
||||
/* B54FD8 800DDE38 460C4003 */ div.s $f0, $f8, $f12
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_801493F0
|
||||
.float 0.33
|
||||
|
||||
glabel D_801493F4
|
||||
.float 0.66
|
||||
|
||||
.text
|
||||
glabel func_800DDE3C
|
||||
/* B54FDC 800DDE3C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* B54FE0 800DDE40 3C013E80 */ li $at, 0x3E800000 # 0.000000
|
||||
/* B54FE4 800DDE44 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* B54FE8 800DDE48 44816000 */ mtc1 $at, $f12
|
||||
/* B54FEC 800DDE4C AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* B54FF0 800DDE50 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* B54FF4 800DDE54 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* B54FF8 800DDE58 0C037788 */ jal func_800DDE20
|
||||
/* B54FFC 800DDE5C AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* B55000 800DDE60 3C138017 */ lui $s3, %hi(gAudioContext) # $s3, 0x8017
|
||||
/* B55004 800DDE64 2673F180 */ addiu $s3, %lo(gAudioContext) # addiu $s3, $s3, -0xe80
|
||||
/* B55008 800DDE68 8E6E3520 */ lw $t6, 0x3520($s3)
|
||||
/* B5500C 800DDE6C 3C018015 */ lui $at, %hi(D_801493F0)
|
||||
/* B55010 800DDE70 E5C003FC */ swc1 $f0, 0x3fc($t6)
|
||||
/* B55014 800DDE74 0C037788 */ jal func_800DDE20
|
||||
/* B55018 800DDE78 C42C93F0 */ lwc1 $f12, %lo(D_801493F0)($at)
|
||||
/* B5501C 800DDE7C 8E6F3520 */ lw $t7, 0x3520($s3)
|
||||
/* B55020 800DDE80 3C013F00 */ li $at, 0x3F000000 # 0.000000
|
||||
/* B55024 800DDE84 44816000 */ mtc1 $at, $f12
|
||||
/* B55028 800DDE88 0C037788 */ jal func_800DDE20
|
||||
/* B5502C 800DDE8C E5E003F8 */ swc1 $f0, 0x3f8($t7)
|
||||
/* B55030 800DDE90 8E783520 */ lw $t8, 0x3520($s3)
|
||||
/* B55034 800DDE94 3C018015 */ lui $at, %hi(D_801493F4)
|
||||
/* B55038 800DDE98 E70003F4 */ swc1 $f0, 0x3f4($t8)
|
||||
/* B5503C 800DDE9C 0C037788 */ jal func_800DDE20
|
||||
/* B55040 800DDEA0 C42C93F4 */ lwc1 $f12, %lo(D_801493F4)($at)
|
||||
/* B55044 800DDEA4 8E793520 */ lw $t9, 0x3520($s3)
|
||||
/* B55048 800DDEA8 3C013F40 */ li $at, 0x3F400000 # 0.000000
|
||||
/* B5504C 800DDEAC 44816000 */ mtc1 $at, $f12
|
||||
/* B55050 800DDEB0 0C037788 */ jal func_800DDE20
|
||||
/* B55054 800DDEB4 E72003F0 */ swc1 $f0, 0x3f0($t9)
|
||||
/* B55058 800DDEB8 8E683520 */ lw $t0, 0x3520($s3)
|
||||
/* B5505C 800DDEBC 24110080 */ li $s1, 128
|
||||
/* B55060 800DDEC0 24100200 */ li $s0, 512
|
||||
/* B55064 800DDEC4 241200FB */ li $s2, 251
|
||||
/* B55068 800DDEC8 E50003EC */ swc1 $f0, 0x3ec($t0)
|
||||
.L800DDECC:
|
||||
/* B5506C 800DDECC 02514823 */ subu $t1, $s2, $s1
|
||||
/* B55070 800DDED0 44892000 */ mtc1 $t1, $f4
|
||||
/* B55074 800DDED4 0C037788 */ jal func_800DDE20
|
||||
/* B55078 800DDED8 46802320 */ cvt.s.w $f12, $f4
|
||||
/* B5507C 800DDEDC 8E6A3520 */ lw $t2, 0x3520($s3)
|
||||
/* B55080 800DDEE0 26310001 */ addiu $s1, $s1, 1
|
||||
/* B55084 800DDEE4 2A2100FB */ slti $at, $s1, 0xfb
|
||||
/* B55088 800DDEE8 01505821 */ addu $t3, $t2, $s0
|
||||
/* B5508C 800DDEEC 26100004 */ addiu $s0, $s0, 4
|
||||
/* B55090 800DDEF0 1420FFF6 */ bnez $at, .L800DDECC
|
||||
/* B55094 800DDEF4 E5600000 */ swc1 $f0, ($t3)
|
||||
/* B55098 800DDEF8 24100040 */ li $s0, 64
|
||||
/* B5509C 800DDEFC 241201FC */ li $s2, 508
|
||||
.L800DDF00:
|
||||
/* B550A0 800DDF00 44923000 */ mtc1 $s2, $f6
|
||||
/* B550A4 800DDF04 0C037788 */ jal func_800DDE20
|
||||
/* B550A8 800DDF08 46803320 */ cvt.s.w $f12, $f6
|
||||
/* B550AC 800DDF0C 8E6C3520 */ lw $t4, 0x3520($s3)
|
||||
/* B550B0 800DDF10 2652FFFC */ addiu $s2, $s2, -4
|
||||
/* B550B4 800DDF14 2A41003D */ slti $at, $s2, 0x3d
|
||||
/* B550B8 800DDF18 01906821 */ addu $t5, $t4, $s0
|
||||
/* B550BC 800DDF1C 26100004 */ addiu $s0, $s0, 4
|
||||
/* B550C0 800DDF20 1020FFF7 */ beqz $at, .L800DDF00
|
||||
/* B550C4 800DDF24 E5A00000 */ swc1 $f0, ($t5)
|
||||
/* B550C8 800DDF28 24100004 */ li $s0, 4
|
||||
/* B550CC 800DDF2C 24120528 */ li $s2, 1320
|
||||
/* B550D0 800DDF30 241101A4 */ li $s1, 420
|
||||
.L800DDF34:
|
||||
/* B550D4 800DDF34 44924000 */ mtc1 $s2, $f8
|
||||
/* B550D8 800DDF38 0C037788 */ jal func_800DDE20
|
||||
/* B550DC 800DDF3C 46804320 */ cvt.s.w $f12, $f8
|
||||
/* B550E0 800DDF40 8E6E3520 */ lw $t6, 0x3520($s3)
|
||||
/* B550E4 800DDF44 2652FFC4 */ addiu $s2, $s2, -0x3c
|
||||
/* B550E8 800DDF48 01D07821 */ addu $t7, $t6, $s0
|
||||
/* B550EC 800DDF4C 26100004 */ addiu $s0, $s0, 4
|
||||
/* B550F0 800DDF50 1632FFF8 */ bne $s1, $s2, .L800DDF34
|
||||
/* B550F4 800DDF54 E5E00000 */ swc1 $f0, ($t7)
|
||||
/* B550F8 800DDF58 44805000 */ mtc1 $zero, $f10
|
||||
/* B550FC 800DDF5C 8E783520 */ lw $t8, 0x3520($s3)
|
||||
/* B55100 800DDF60 E70A0000 */ swc1 $f10, ($t8)
|
||||
/* B55104 800DDF64 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* B55108 800DDF68 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* B5510C 800DDF6C 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* B55110 800DDF70 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* B55114 800DDF74 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* B55118 800DDF78 03E00008 */ jr $ra
|
||||
/* B5511C 800DDF7C 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
glabel func_800DDF80
|
||||
/* B55120 800DDF80 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
|
||||
/* B55124 800DDF84 3C028017 */ lui $v0, %hi(gAudioContext+0x30) # $v0, 0x8017
|
||||
/* B55128 800DDF88 2442F1B0 */ addiu $v0, %lo(gAudioContext+0x30) # addiu $v0, $v0, -0xe50
|
||||
/* B5512C 800DDF8C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
|
||||
/* B55130 800DDF90 24040005 */ li $a0, 5
|
||||
/* B55134 800DDF94 906E3468 */ lbu $t6, 0x3468($v1)
|
||||
.L800DDF98:
|
||||
/* B55138 800DDF98 508E0003 */ beql $a0, $t6, .L800DDFA8
|
||||
/* B5513C 800DDF9C 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55140 800DDFA0 A0603468 */ sb $zero, 0x3468($v1)
|
||||
/* B55144 800DDFA4 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DDFA8:
|
||||
/* B55148 800DDFA8 0062082B */ sltu $at, $v1, $v0
|
||||
/* B5514C 800DDFAC 5420FFFA */ bnezl $at, .L800DDF98
|
||||
/* B55150 800DDFB0 906E3468 */ lbu $t6, 0x3468($v1)
|
||||
/* B55154 800DDFB4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
|
||||
/* B55158 800DDFB8 3C028017 */ lui $v0, %hi(gAudioContext+0x30) # $v0, 0x8017
|
||||
/* B5515C 800DDFBC 2442F1B0 */ addiu $v0, %lo(gAudioContext+0x30) # addiu $v0, $v0, -0xe50
|
||||
/* B55160 800DDFC0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
|
||||
/* B55164 800DDFC4 906F3438 */ lbu $t7, 0x3438($v1)
|
||||
.L800DDFC8:
|
||||
/* B55168 800DDFC8 508F0003 */ beql $a0, $t7, .L800DDFD8
|
||||
/* B5516C 800DDFCC 24630001 */ addiu $v1, $v1, 1
|
||||
/* B55170 800DDFD0 A0603438 */ sb $zero, 0x3438($v1)
|
||||
/* B55174 800DDFD4 24630001 */ addiu $v1, $v1, 1
|
||||
.L800DDFD8:
|
||||
/* B55178 800DDFD8 0062082B */ sltu $at, $v1, $v0
|
||||
/* B5517C 800DDFDC 5420FFFA */ bnezl $at, .L800DDFC8
|
||||
/* B55180 800DDFE0 906F3438 */ lbu $t7, 0x3438($v1)
|
||||
/* B55184 800DDFE4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
|
||||
/* B55188 800DDFE8 3C028017 */ lui $v0, %hi(gAudioContext+0x80) # $v0, 0x8017
|
||||
/* B5518C 800DDFEC 2442F200 */ addiu $v0, %lo(gAudioContext+0x80) # addiu $v0, $v0, -0xe00
|
||||
/* B55190 800DDFF0 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
|
||||
/* B55194 800DDFF4 90783498 */ lbu $t8, 0x3498($v1)
|
||||
.L800DDFF8:
|
||||
/* B55198 800DDFF8 50980003 */ beql $a0, $t8, .L800DE008
|
||||
/* B5519C 800DDFFC 90793499 */ lbu $t9, 0x3499($v1)
|
||||
/* B551A0 800DE000 A0603498 */ sb $zero, 0x3498($v1)
|
||||
/* B551A4 800DE004 90793499 */ lbu $t9, 0x3499($v1)
|
||||
.L800DE008:
|
||||
/* B551A8 800DE008 50990003 */ beql $a0, $t9, .L800DE018
|
||||
/* B551AC 800DE00C 9068349A */ lbu $t0, 0x349a($v1)
|
||||
/* B551B0 800DE010 A0603499 */ sb $zero, 0x3499($v1)
|
||||
/* B551B4 800DE014 9068349A */ lbu $t0, 0x349a($v1)
|
||||
.L800DE018:
|
||||
/* B551B8 800DE018 50880003 */ beql $a0, $t0, .L800DE028
|
||||
/* B551BC 800DE01C 9069349B */ lbu $t1, 0x349b($v1)
|
||||
/* B551C0 800DE020 A060349A */ sb $zero, 0x349a($v1)
|
||||
/* B551C4 800DE024 9069349B */ lbu $t1, 0x349b($v1)
|
||||
.L800DE028:
|
||||
/* B551C8 800DE028 50890003 */ beql $a0, $t1, .L800DE038
|
||||
/* B551CC 800DE02C 24630004 */ addiu $v1, $v1, 4
|
||||
/* B551D0 800DE030 A060349B */ sb $zero, 0x349b($v1)
|
||||
/* B551D4 800DE034 24630004 */ addiu $v1, $v1, 4
|
||||
.L800DE038:
|
||||
/* B551D8 800DE038 5462FFEF */ bnel $v1, $v0, .L800DDFF8
|
||||
/* B551DC 800DE03C 90783498 */ lbu $t8, 0x3498($v1)
|
||||
/* B551E0 800DE040 03E00008 */ jr $ra
|
||||
/* B551E4 800DE044 00000000 */ nop
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
glabel func_800DE048
|
||||
/* B551E8 800DE048 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* B551EC 800DE04C AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* B551F0 800DE050 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
|
||||
/* B551F4 800DE054 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
|
||||
/* B551F8 800DE058 8EA22894 */ lw $v0, 0x2894($s5)
|
||||
/* B551FC 800DE05C AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* B55200 800DE060 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* B55204 800DE064 0080A025 */ move $s4, $a0
|
||||
/* B55208 800DE068 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* B5520C 800DE06C AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* B55210 800DE070 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* B55214 800DE074 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* B55218 800DE078 18400023 */ blez $v0, .L800DE108
|
||||
/* B5521C 800DE07C 00008825 */ move $s1, $zero
|
||||
/* B55220 800DE080 3C138017 */ lui $s3, %hi(gNoteFreeLists) # $s3, 0x8017
|
||||
/* B55224 800DE084 26734D18 */ addiu $s3, %lo(gNoteFreeLists) # addiu $s3, $s3, 0x4d18
|
||||
/* B55228 800DE088 00009025 */ move $s2, $zero
|
||||
.L800DE08C:
|
||||
/* B5522C 800DE08C 8EAE352C */ lw $t6, 0x352c($s5)
|
||||
/* B55230 800DE090 024E8021 */ addu $s0, $s2, $t6
|
||||
/* B55234 800DE094 920F0033 */ lbu $t7, 0x33($s0)
|
||||
/* B55238 800DE098 568F0018 */ bnel $s4, $t7, .L800DE0FC
|
||||
/* B5523C 800DE09C 26310001 */ addiu $s1, $s1, 1
|
||||
/* B55240 800DE0A0 92180034 */ lbu $t8, 0x34($s0)
|
||||
/* B55244 800DE0A4 1700000C */ bnez $t8, .L800DE0D8
|
||||
/* B55248 800DE0A8 00000000 */ nop
|
||||
/* B5524C 800DE0AC 92190030 */ lbu $t9, 0x30($s0)
|
||||
/* B55250 800DE0B0 13200009 */ beqz $t9, .L800DE0D8
|
||||
/* B55254 800DE0B4 00000000 */ nop
|
||||
/* B55258 800DE0B8 8E020044 */ lw $v0, 0x44($s0)
|
||||
/* B5525C 800DE0BC 90480000 */ lbu $t0, ($v0)
|
||||
/* B55260 800DE0C0 3109FF7F */ andi $t1, $t0, 0xff7f
|
||||
/* B55264 800DE0C4 A0490000 */ sb $t1, ($v0)
|
||||
/* B55268 800DE0C8 8E020044 */ lw $v0, 0x44($s0)
|
||||
/* B5526C 800DE0CC 904B0000 */ lbu $t3, ($v0)
|
||||
/* B55270 800DE0D0 356C0040 */ ori $t4, $t3, 0x40
|
||||
/* B55274 800DE0D4 A04C0000 */ sb $t4, ($v0)
|
||||
.L800DE0D8:
|
||||
/* B55278 800DE0D8 0C039BCA */ jal Audio_NoteDisable
|
||||
/* B5527C 800DE0DC 02002025 */ move $a0, $s0
|
||||
/* B55280 800DE0E0 0C03A037 */ jal Audio_AudioListRemove
|
||||
/* B55284 800DE0E4 02002025 */ move $a0, $s0
|
||||
/* B55288 800DE0E8 02602025 */ move $a0, $s3
|
||||
/* B5528C 800DE0EC 0C03A70A */ jal Audio_AudioListPushBack
|
||||
/* B55290 800DE0F0 02002825 */ move $a1, $s0
|
||||
/* B55294 800DE0F4 8EA22894 */ lw $v0, 0x2894($s5)
|
||||
/* B55298 800DE0F8 26310001 */ addiu $s1, $s1, 1
|
||||
.L800DE0FC:
|
||||
/* B5529C 800DE0FC 0222082A */ slt $at, $s1, $v0
|
||||
/* B552A0 800DE100 1420FFE2 */ bnez $at, .L800DE08C
|
||||
/* B552A4 800DE104 265200E0 */ addiu $s2, $s2, 0xe0
|
||||
.L800DE108:
|
||||
/* B552A8 800DE108 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* B552AC 800DE10C 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* B552B0 800DE110 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* B552B4 800DE114 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* B552B8 800DE118 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* B552BC 800DE11C 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* B552C0 800DE120 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* B552C4 800DE124 03E00008 */ jr $ra
|
||||
/* B552C8 800DE128 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
glabel func_800DE12C
|
||||
/* B552CC 800DE12C 3C088017 */ lui $t0, %hi(gAudioContext) # $t0, 0x8017
|
||||
/* B552D0 800DE130 2508F180 */ addiu $t0, %lo(gAudioContext) # addiu $t0, $t0, -0xe80
|
||||
/* B552D4 800DE134 8D032894 */ lw $v1, 0x2894($t0)
|
||||
/* B552D8 800DE138 00803825 */ move $a3, $a0
|
||||
/* B552DC 800DE13C 00001025 */ move $v0, $zero
|
||||
/* B552E0 800DE140 1860001A */ blez $v1, .L800DE1AC
|
||||
/* B552E4 800DE144 00002825 */ move $a1, $zero
|
||||
/* B552E8 800DE148 240A0001 */ li $t2, 1
|
||||
/* B552EC 800DE14C 24090006 */ li $t1, 6
|
||||
.L800DE150:
|
||||
/* B552F0 800DE150 8D0E352C */ lw $t6, 0x352c($t0)
|
||||
/* B552F4 800DE154 24420001 */ addiu $v0, $v0, 1
|
||||
/* B552F8 800DE158 00AE2021 */ addu $a0, $a1, $t6
|
||||
/* B552FC 800DE15C 908F0033 */ lbu $t7, 0x33($a0)
|
||||
/* B55300 800DE160 24860030 */ addiu $a2, $a0, 0x30
|
||||
/* B55304 800DE164 54EF000F */ bnel $a3, $t7, .L800DE1A4
|
||||
/* B55308 800DE168 0043082A */ slt $at, $v0, $v1
|
||||
/* B5530C 800DE16C 90D80000 */ lbu $t8, ($a2)
|
||||
/* B55310 800DE170 5300000C */ beql $t8, $zero, .L800DE1A4
|
||||
/* B55314 800DE174 0043082A */ slt $at, $v0, $v1
|
||||
/* B55318 800DE178 90C40040 */ lbu $a0, 0x40($a2)
|
||||
/* B5531C 800DE17C 3099000F */ andi $t9, $a0, 0xf
|
||||
/* B55320 800DE180 55390008 */ bnel $t1, $t9, .L800DE1A4
|
||||
/* B55324 800DE184 0043082A */ slt $at, $v0, $v1
|
||||
/* B55328 800DE188 A0CA0000 */ sb $t2, ($a2)
|
||||
/* B5532C 800DE18C C5042864 */ lwc1 $f4, 0x2864($t0)
|
||||
/* B55330 800DE190 348C0010 */ ori $t4, $a0, 0x10
|
||||
/* B55334 800DE194 A0CC0040 */ sb $t4, 0x40($a2)
|
||||
/* B55338 800DE198 E4C4004C */ swc1 $f4, 0x4c($a2)
|
||||
/* B5533C 800DE19C 8D032894 */ lw $v1, 0x2894($t0)
|
||||
/* B55340 800DE1A0 0043082A */ slt $at, $v0, $v1
|
||||
.L800DE1A4:
|
||||
/* B55344 800DE1A4 1420FFEA */ bnez $at, .L800DE150
|
||||
/* B55348 800DE1A8 24A500E0 */ addiu $a1, $a1, 0xe0
|
||||
.L800DE1AC:
|
||||
/* B5534C 800DE1AC 03E00008 */ jr $ra
|
||||
/* B55350 800DE1B0 00000000 */ nop
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
glabel func_800DE1B4
|
||||
/* B55354 800DE1B4 3C028017 */ lui $v0, %hi(gAudioContext+0x285c) # $v0, 0x8017
|
||||
/* B55358 800DE1B8 844219DC */ lh $v0, %lo(gAudioContext+0x285c)($v0)
|
||||
/* B5535C 800DE1BC 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* B55360 800DE1C0 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* B55364 800DE1C4 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* B55368 800DE1C8 00809025 */ move $s2, $a0
|
||||
/* B5536C 800DE1CC AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* B55370 800DE1D0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B55374 800DE1D4 18400012 */ blez $v0, .L800DE220
|
||||
/* B55378 800DE1D8 00008825 */ move $s1, $zero
|
||||
/* B5537C 800DE1DC 3C108017 */ lui $s0, %hi(gAudioContext) # $s0, 0x8017
|
||||
/* B55380 800DE1E0 2610F180 */ addiu $s0, %lo(gAudioContext) # addiu $s0, $s0, -0xe80
|
||||
.L800DE1E4:
|
||||
/* B55384 800DE1E4 8E0E3530 */ lw $t6, 0x3530($s0)
|
||||
/* B55388 800DE1E8 000E7FC2 */ srl $t7, $t6, 0x1f
|
||||
/* B5538C 800DE1EC 51E00009 */ beql $t7, $zero, .L800DE214
|
||||
/* B55390 800DE1F0 26310001 */ addiu $s1, $s1, 1
|
||||
/* B55394 800DE1F4 92183534 */ lbu $t8, 0x3534($s0)
|
||||
/* B55398 800DE1F8 56580006 */ bnel $s2, $t8, .L800DE214
|
||||
/* B5539C 800DE1FC 26310001 */ addiu $s1, $s1, 1
|
||||
/* B553A0 800DE200 0C03A6DB */ jal Audio_SequencePlayerDisable
|
||||
/* B553A4 800DE204 26043530 */ addiu $a0, $s0, 0x3530
|
||||
/* B553A8 800DE208 3C028017 */ lui $v0, %hi(gAudioContext+0x285c) # $v0, 0x8017
|
||||
/* B553AC 800DE20C 844219DC */ lh $v0, %lo(gAudioContext+0x285c)($v0)
|
||||
/* B553B0 800DE210 26310001 */ addiu $s1, $s1, 1
|
||||
.L800DE214:
|
||||
/* B553B4 800DE214 0222082A */ slt $at, $s1, $v0
|
||||
/* B553B8 800DE218 1420FFF2 */ bnez $at, .L800DE1E4
|
||||
/* B553BC 800DE21C 26100160 */ addiu $s0, $s0, 0x160
|
||||
.L800DE220:
|
||||
/* B553C0 800DE220 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* B553C4 800DE224 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B553C8 800DE228 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* B553CC 800DE22C 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* B553D0 800DE230 03E00008 */ jr $ra
|
||||
/* B553D4 800DE234 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
glabel func_800DE238
|
||||
/* B553D8 800DE238 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B553DC 800DE23C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B553E0 800DE240 0C039A20 */ jal func_800E6880
|
||||
/* B553E4 800DE244 00000000 */ nop
|
||||
/* B553E8 800DE248 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B553EC 800DE24C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B553F0 800DE250 03E00008 */ jr $ra
|
||||
/* B553F4 800DE254 00000000 */ nop
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
glabel func_800DE258
|
||||
/* B553F8 800DE258 3C0E8017 */ lui $t6, %hi(gAudioContext+0x29a0) # $t6, 0x8017
|
||||
/* B553FC 800DE25C 8DCE1B20 */ lw $t6, %lo(gAudioContext+0x29a0)($t6)
|
||||
/* B55400 800DE260 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B55404 800DE264 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B55408 800DE268 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B5540C 800DE26C AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* B55410 800DE270 11C00005 */ beqz $t6, .L800DE288
|
||||
/* B55414 800DE274 00001825 */ move $v1, $zero
|
||||
/* B55418 800DE278 3C048017 */ lui $a0, %hi(gAudioContext+0x29a0) # $a0, 0x8017
|
||||
/* B5541C 800DE27C 0C0378E0 */ jal Audio_AllocZeroed
|
||||
/* B55420 800DE280 24841B20 */ addiu $a0, %lo(gAudioContext+0x29a0) # addiu $a0, $a0, 0x1b20
|
||||
/* B55424 800DE284 00401825 */ move $v1, $v0
|
||||
.L800DE288:
|
||||
/* B55428 800DE288 14600004 */ bnez $v1, .L800DE29C
|
||||
/* B5542C 800DE28C 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* B55430 800DE290 0C0378E0 */ jal Audio_AllocZeroed
|
||||
/* B55434 800DE294 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* B55438 800DE298 00401825 */ move $v1, $v0
|
||||
.L800DE29C:
|
||||
/* B5543C 800DE29C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B55440 800DE2A0 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B55444 800DE2A4 00601025 */ move $v0, $v1
|
||||
/* B55448 800DE2A8 03E00008 */ jr $ra
|
||||
/* B5544C 800DE2AC 00000000 */ nop
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
glabel func_800DE2B0
|
||||
/* B55450 800DE2B0 3C0E8017 */ lui $t6, %hi(gAudioContext+0x29a0) # $t6, 0x8017
|
||||
/* B55454 800DE2B4 8DCE1B20 */ lw $t6, %lo(gAudioContext+0x29a0)($t6)
|
||||
/* B55458 800DE2B8 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B5545C 800DE2BC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B55460 800DE2C0 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B55464 800DE2C4 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* B55468 800DE2C8 11C00005 */ beqz $t6, .L800DE2E0
|
||||
/* B5546C 800DE2CC 00001825 */ move $v1, $zero
|
||||
/* B55470 800DE2D0 3C048017 */ lui $a0, %hi(gAudioContext+0x29a0) # $a0, 0x8017
|
||||
/* B55474 800DE2D4 0C0378F7 */ jal Audio_Alloc
|
||||
/* B55478 800DE2D8 24841B20 */ addiu $a0, %lo(gAudioContext+0x29a0) # addiu $a0, $a0, 0x1b20
|
||||
/* B5547C 800DE2DC 00401825 */ move $v1, $v0
|
||||
.L800DE2E0:
|
||||
/* B55480 800DE2E0 14600004 */ bnez $v1, .L800DE2F4
|
||||
/* B55484 800DE2E4 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* B55488 800DE2E8 0C0378F7 */ jal Audio_Alloc
|
||||
/* B5548C 800DE2EC 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* B55490 800DE2F0 00401825 */ move $v1, $v0
|
||||
.L800DE2F4:
|
||||
/* B55494 800DE2F4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B55498 800DE2F8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B5549C 800DE2FC 00601025 */ move $v0, $v1
|
||||
/* B554A0 800DE300 03E00008 */ jr $ra
|
||||
/* B554A4 800DE304 00000000 */ nop
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
glabel func_800DE344
|
||||
/* B554E4 800DE344 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B554E8 800DE348 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B554EC 800DE34C 0C0378E0 */ jal Audio_AllocZeroed
|
||||
/* B554F0 800DE350 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* B554F4 800DE354 10400005 */ beqz $v0, .L800DE36C
|
||||
/* B554F8 800DE358 00402025 */ move $a0, $v0
|
||||
/* B554FC 800DE35C 8FA50024 */ lw $a1, 0x24($sp)
|
||||
/* B55500 800DE360 0C03788E */ jal func_800DE238
|
||||
/* B55504 800DE364 AFA2001C */ sw $v0, 0x1c($sp)
|
||||
/* B55508 800DE368 8FA4001C */ lw $a0, 0x1c($sp)
|
||||
.L800DE36C:
|
||||
/* B5550C 800DE36C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B55510 800DE370 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* B55514 800DE374 00801025 */ move $v0, $a0
|
||||
/* B55518 800DE378 03E00008 */ jr $ra
|
||||
/* B5551C 800DE37C 00000000 */ nop
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
glabel func_800DE4A0
|
||||
/* B55640 800DE4A0 8C8E0000 */ lw $t6, ($a0)
|
||||
/* B55644 800DE4A4 AC80000C */ sw $zero, 0xc($a0)
|
||||
/* B55648 800DE4A8 03E00008 */ jr $ra
|
||||
/* B5564C 800DE4AC AC8E0004 */ sw $t6, 4($a0)
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
glabel func_800DE4B0
|
||||
/* B55650 800DE4B0 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* B55654 800DE4B4 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B55658 800DE4B8 10800009 */ beqz $a0, .L800DE4E0
|
||||
/* B5565C 800DE4BC 00803025 */ move $a2, $a0
|
||||
/* B55660 800DE4C0 24010001 */ li $at, 1
|
||||
/* B55664 800DE4C4 1081000C */ beq $a0, $at, .L800DE4F8
|
||||
/* B55668 800DE4C8 3C038017 */ lui $v1, %hi(gAudioContext+0x2b30)
|
||||
/* B5566C 800DE4CC 24010002 */ li $at, 2
|
||||
/* B55670 800DE4D0 1081000E */ beq $a0, $at, .L800DE50C
|
||||
/* B55674 800DE4D4 3C038017 */ lui $v1, %hi(gAudioContext+0x2c40)
|
||||
/* B55678 800DE4D8 10000010 */ b .L800DE51C
|
||||
/* B5567C 800DE4DC 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
.L800DE4E0:
|
||||
/* B55680 800DE4E0 3C0E8017 */ lui $t6, %hi(gAudioContext+0x3498) # $t6, 0x8017
|
||||
/* B55684 800DE4E4 3C038017 */ lui $v1, %hi(gAudioContext+0x2a20) # $v1, 0x8017
|
||||
/* B55688 800DE4E8 25CE2618 */ addiu $t6, %lo(gAudioContext+0x3498) # addiu $t6, $t6, 0x2618
|
||||
/* B5568C 800DE4EC 24631BA0 */ addiu $v1, %lo(gAudioContext+0x2a20) # addiu $v1, $v1, 0x1ba0
|
||||
/* B55690 800DE4F0 1000000A */ b .L800DE51C
|
||||
/* B55694 800DE4F4 AFAE001C */ sw $t6, 0x1c($sp)
|
||||
.L800DE4F8:
|
||||
/* B55698 800DE4F8 3C0F8017 */ lui $t7, %hi(gAudioContext+0x3468) # $t7, 0x8017
|
||||
/* B5569C 800DE4FC 25EF25E8 */ addiu $t7, %lo(gAudioContext+0x3468) # addiu $t7, $t7, 0x25e8
|
||||
/* B556A0 800DE500 24631CB0 */ addiu $v1, %lo(gAudioContext+0x2b30)
|
||||
/* B556A4 800DE504 10000005 */ b .L800DE51C
|
||||
/* B556A8 800DE508 AFAF001C */ sw $t7, 0x1c($sp)
|
||||
.L800DE50C:
|
||||
/* B556AC 800DE50C 3C188017 */ lui $t8, %hi(gAudioContext+0x3438) # $t8, 0x8017
|
||||
/* B556B0 800DE510 271825B8 */ addiu $t8, %lo(gAudioContext+0x3438) # addiu $t8, $t8, 0x25b8
|
||||
/* B556B4 800DE514 24631DC0 */ addiu $v1, %lo(gAudioContext+0x2c40)
|
||||
/* B556B8 800DE518 AFB8001C */ sw $t8, 0x1c($sp)
|
||||
.L800DE51C:
|
||||
/* B556BC 800DE51C 8C650000 */ lw $a1, ($v1)
|
||||
/* B556C0 800DE520 24620004 */ addiu $v0, $v1, 4
|
||||
/* B556C4 800DE524 24010002 */ li $at, 2
|
||||
/* B556C8 800DE528 10A0002D */ beqz $a1, .L800DE5E0
|
||||
/* B556CC 800DE52C 0005C880 */ sll $t9, $a1, 2
|
||||
/* B556D0 800DE530 0325C823 */ subu $t9, $t9, $a1
|
||||
/* B556D4 800DE534 8C49000C */ lw $t1, 0xc($v0)
|
||||
/* B556D8 800DE538 0019C880 */ sll $t9, $t9, 2
|
||||
/* B556DC 800DE53C 00794021 */ addu $t0, $v1, $t9
|
||||
/* B556E0 800DE540 8D040008 */ lw $a0, 8($t0)
|
||||
/* B556E4 800DE544 252AFFFF */ addiu $t2, $t1, -1
|
||||
/* B556E8 800DE548 AC4A000C */ sw $t2, 0xc($v0)
|
||||
/* B556EC 800DE54C 14C1000C */ bne $a2, $at, .L800DE580
|
||||
/* B556F0 800DE550 AC440004 */ sw $a0, 4($v0)
|
||||
/* B556F4 800DE554 8C6B0000 */ lw $t3, ($v1)
|
||||
/* B556F8 800DE558 000B6080 */ sll $t4, $t3, 2
|
||||
/* B556FC 800DE55C 018B6023 */ subu $t4, $t4, $t3
|
||||
/* B55700 800DE560 000C6080 */ sll $t4, $t4, 2
|
||||
/* B55704 800DE564 006C6821 */ addu $t5, $v1, $t4
|
||||
/* B55708 800DE568 85A40012 */ lh $a0, 0x12($t5)
|
||||
/* B5570C 800DE56C AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* B55710 800DE570 0C03839B */ jal func_800E0E6C
|
||||
/* B55714 800DE574 AFA3002C */ sw $v1, 0x2c($sp)
|
||||
/* B55718 800DE578 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* B5571C 800DE57C 8FA60030 */ lw $a2, 0x30($sp)
|
||||
.L800DE580:
|
||||
/* B55720 800DE580 24010001 */ li $at, 1
|
||||
/* B55724 800DE584 54C1000B */ bnel $a2, $at, .L800DE5B4
|
||||
/* B55728 800DE588 8C680000 */ lw $t0, ($v1)
|
||||
/* B5572C 800DE58C 8C6E0000 */ lw $t6, ($v1)
|
||||
/* B55730 800DE590 000E7880 */ sll $t7, $t6, 2
|
||||
/* B55734 800DE594 01EE7823 */ subu $t7, $t7, $t6
|
||||
/* B55738 800DE598 000F7880 */ sll $t7, $t7, 2
|
||||
/* B5573C 800DE59C 006FC021 */ addu $t8, $v1, $t7
|
||||
/* B55740 800DE5A0 87040012 */ lh $a0, 0x12($t8)
|
||||
/* B55744 800DE5A4 0C037812 */ jal func_800DE048
|
||||
/* B55748 800DE5A8 AFA3002C */ sw $v1, 0x2c($sp)
|
||||
/* B5574C 800DE5AC 8FA3002C */ lw $v1, 0x2c($sp)
|
||||
/* B55750 800DE5B0 8C680000 */ lw $t0, ($v1)
|
||||
.L800DE5B4:
|
||||
/* B55754 800DE5B4 8FB9001C */ lw $t9, 0x1c($sp)
|
||||
/* B55758 800DE5B8 00084880 */ sll $t1, $t0, 2
|
||||
/* B5575C 800DE5BC 01284823 */ subu $t1, $t1, $t0
|
||||
/* B55760 800DE5C0 00094880 */ sll $t1, $t1, 2
|
||||
/* B55764 800DE5C4 00695021 */ addu $t2, $v1, $t1
|
||||
/* B55768 800DE5C8 854B0012 */ lh $t3, 0x12($t2)
|
||||
/* B5576C 800DE5CC 032B6021 */ addu $t4, $t9, $t3
|
||||
/* B55770 800DE5D0 A1800000 */ sb $zero, ($t4)
|
||||
/* B55774 800DE5D4 8C6D0000 */ lw $t5, ($v1)
|
||||
/* B55778 800DE5D8 25AEFFFF */ addiu $t6, $t5, -1
|
||||
/* B5577C 800DE5DC AC6E0000 */ sw $t6, ($v1)
|
||||
.L800DE5E0:
|
||||
/* B55780 800DE5E0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B55784 800DE5E4 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* B55788 800DE5E8 03E00008 */ jr $ra
|
||||
/* B5578C 800DE5EC 00000000 */ nop
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
glabel func_800DF074
|
||||
/* B56214 800DF074 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B56218 800DF078 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B5621C 800DF07C AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* B56220 800DF080 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B56224 800DF084 AFA60020 */ sw $a2, 0x20($sp)
|
||||
/* B56228 800DF088 0C03813A */ jal func_800E04E8
|
||||
/* B5622C 800DF08C 00C02825 */ move $a1, $a2
|
||||
/* B56230 800DF090 10400003 */ beqz $v0, .L800DF0A0
|
||||
/* B56234 800DF094 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* B56238 800DF098 10000009 */ b .L800DF0C0
|
||||
/* B5623C 800DF09C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF0A0:
|
||||
/* B56240 800DF0A0 24010003 */ li $at, 3
|
||||
/* B56244 800DF0A4 14A10003 */ bne $a1, $at, .L800DF0B4
|
||||
/* B56248 800DF0A8 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* B5624C 800DF0AC 10000003 */ b .L800DF0BC
|
||||
/* B56250 800DF0B0 00001025 */ move $v0, $zero
|
||||
.L800DF0B4:
|
||||
/* B56254 800DF0B4 0C037C33 */ jal func_800DF0CC
|
||||
/* B56258 800DF0B8 8FA60020 */ lw $a2, 0x20($sp)
|
||||
.L800DF0BC:
|
||||
/* B5625C 800DF0BC 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF0C0:
|
||||
/* B56260 800DF0C0 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B56264 800DF0C4 03E00008 */ jr $ra
|
||||
/* B56268 800DF0C8 00000000 */ nop
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
glabel func_800DF0CC
|
||||
/* B5626C 800DF0CC 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B56270 800DF0D0 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B56274 800DF0D4 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* B56278 800DF0D8 10800009 */ beqz $a0, .L800DF100
|
||||
/* B5627C 800DF0DC 00803825 */ move $a3, $a0
|
||||
/* B56280 800DF0E0 24010001 */ li $at, 1
|
||||
/* B56284 800DF0E4 10810009 */ beq $a0, $at, .L800DF10C
|
||||
/* B56288 800DF0E8 3C058017 */ lui $a1, %hi(gAudioContext+0x2b30)
|
||||
/* B5628C 800DF0EC 24010002 */ li $at, 2
|
||||
/* B56290 800DF0F0 10810008 */ beq $a0, $at, .L800DF114
|
||||
/* B56294 800DF0F4 3C058017 */ lui $a1, %hi(gAudioContext+0x2c40)
|
||||
/* B56298 800DF0F8 10000007 */ b .L800DF118
|
||||
/* B5629C 800DF0FC 8FA50018 */ lw $a1, 0x18($sp)
|
||||
.L800DF100:
|
||||
/* B562A0 800DF100 3C058017 */ lui $a1, %hi(gAudioContext+0x2a20) # $a1, 0x8017
|
||||
/* B562A4 800DF104 10000004 */ b .L800DF118
|
||||
/* B562A8 800DF108 24A51BA0 */ addiu $a1, %lo(gAudioContext+0x2a20) # addiu $a1, $a1, 0x1ba0
|
||||
.L800DF10C:
|
||||
/* B562AC 800DF10C 10000002 */ b .L800DF118
|
||||
/* B562B0 800DF110 24A51CB0 */ addiu $a1, %lo(gAudioContext+0x2b30)
|
||||
.L800DF114:
|
||||
/* B562B4 800DF114 24A51DC0 */ addiu $a1, %lo(gAudioContext+0x2c40)
|
||||
.L800DF118:
|
||||
/* B562B8 800DF118 8FAE0024 */ lw $t6, 0x24($sp)
|
||||
/* B562BC 800DF11C 24A300D4 */ addiu $v1, $a1, 0xd4
|
||||
/* B562C0 800DF120 55C00011 */ bnezl $t6, .L800DF168
|
||||
/* B562C4 800DF124 8CA80000 */ lw $t0, ($a1)
|
||||
/* B562C8 800DF128 846F001E */ lh $t7, 0x1e($v1)
|
||||
/* B562CC 800DF12C 24180001 */ li $t8, 1
|
||||
/* B562D0 800DF130 54CF0005 */ bnel $a2, $t7, .L800DF148
|
||||
/* B562D4 800DF134 8479002A */ lh $t9, 0x2a($v1)
|
||||
/* B562D8 800DF138 AC780000 */ sw $t8, ($v1)
|
||||
/* B562DC 800DF13C 10000022 */ b .L800DF1C8
|
||||
/* B562E0 800DF140 8C620014 */ lw $v0, 0x14($v1)
|
||||
/* B562E4 800DF144 8479002A */ lh $t9, 0x2a($v1)
|
||||
.L800DF148:
|
||||
/* B562E8 800DF148 14D90004 */ bne $a2, $t9, .L800DF15C
|
||||
/* B562EC 800DF14C 00000000 */ nop
|
||||
/* B562F0 800DF150 AC600000 */ sw $zero, ($v1)
|
||||
/* B562F4 800DF154 1000001C */ b .L800DF1C8
|
||||
/* B562F8 800DF158 8C620020 */ lw $v0, 0x20($v1)
|
||||
.L800DF15C:
|
||||
/* B562FC 800DF15C 1000001A */ b .L800DF1C8
|
||||
/* B56300 800DF160 00001025 */ move $v0, $zero
|
||||
/* B56304 800DF164 8CA80000 */ lw $t0, ($a1)
|
||||
.L800DF168:
|
||||
/* B56308 800DF168 00A02025 */ move $a0, $a1
|
||||
/* B5630C 800DF16C 00001025 */ move $v0, $zero
|
||||
/* B56310 800DF170 1100000C */ beqz $t0, .L800DF1A4
|
||||
/* B56314 800DF174 00A01825 */ move $v1, $a1
|
||||
/* B56318 800DF178 8469001E */ lh $t1, 0x1e($v1)
|
||||
.L800DF17C:
|
||||
/* B5631C 800DF17C 54C90004 */ bnel $a2, $t1, .L800DF190
|
||||
/* B56320 800DF180 8C8A0000 */ lw $t2, ($a0)
|
||||
/* B56324 800DF184 10000010 */ b .L800DF1C8
|
||||
/* B56328 800DF188 8C620014 */ lw $v0, 0x14($v1)
|
||||
/* B5632C 800DF18C 8C8A0000 */ lw $t2, ($a0)
|
||||
.L800DF190:
|
||||
/* B56330 800DF190 24420001 */ addiu $v0, $v0, 1
|
||||
/* B56334 800DF194 2463000C */ addiu $v1, $v1, 0xc
|
||||
/* B56338 800DF198 004A082B */ sltu $at, $v0, $t2
|
||||
/* B5633C 800DF19C 5420FFF7 */ bnezl $at, .L800DF17C
|
||||
/* B56340 800DF1A0 8469001E */ lh $t1, 0x1e($v1)
|
||||
.L800DF1A4:
|
||||
/* B56344 800DF1A4 8FAB0024 */ lw $t3, 0x24($sp)
|
||||
/* B56348 800DF1A8 24010002 */ li $at, 2
|
||||
/* B5634C 800DF1AC 00E02025 */ move $a0, $a3
|
||||
/* B56350 800DF1B0 15610005 */ bne $t3, $at, .L800DF1C8
|
||||
/* B56354 800DF1B4 00001025 */ move $v0, $zero
|
||||
/* B56358 800DF1B8 0C037C1D */ jal func_800DF074
|
||||
/* B5635C 800DF1BC 00002825 */ move $a1, $zero
|
||||
/* B56360 800DF1C0 10000002 */ b .L800DF1CC
|
||||
/* B56364 800DF1C4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF1C8:
|
||||
/* B56368 800DF1C8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF1CC:
|
||||
/* B5636C 800DF1CC 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* B56370 800DF1D0 03E00008 */ jr $ra
|
||||
/* B56374 800DF1D4 00000000 */ nop
|
||||
|
||||
@@ -1,272 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_801493F8
|
||||
.float 262159
|
||||
|
||||
.text
|
||||
glabel func_800DF1D8
|
||||
/* B56378 800DF1D8 3C018015 */ lui $at, %hi(D_801493F8)
|
||||
/* B5637C 800DF1DC C42093F8 */ lwc1 $f0, %lo(D_801493F8)($at)
|
||||
/* B56380 800DF1E0 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* B56384 800DF1E4 27A40014 */ addiu $a0, $sp, 0x14
|
||||
/* B56388 800DF1E8 46007102 */ mul.s $f4, $f14, $f0
|
||||
/* B5638C 800DF1EC 27A2002C */ addiu $v0, $sp, 0x2c
|
||||
/* B56390 800DF1F0 24C30004 */ addiu $v1, $a2, 4
|
||||
/* B56394 800DF1F4 46006182 */ mul.s $f6, $f12, $f0
|
||||
/* B56398 800DF1F8 00000000 */ nop
|
||||
/* B5639C 800DF1FC 460C7202 */ mul.s $f8, $f14, $f12
|
||||
/* B563A0 800DF200 E7A4000C */ swc1 $f4, 0xc($sp)
|
||||
/* B563A4 800DF204 E7A6002C */ swc1 $f6, 0x2c($sp)
|
||||
/* B563A8 800DF208 46004282 */ mul.s $f10, $f8, $f0
|
||||
/* B563AC 800DF20C 00000000 */ nop
|
||||
/* B563B0 800DF210 460C6402 */ mul.s $f16, $f12, $f12
|
||||
/* B563B4 800DF214 E7AA0010 */ swc1 $f10, 0x10($sp)
|
||||
/* B563B8 800DF218 460E8480 */ add.s $f18, $f16, $f14
|
||||
/* B563BC 800DF21C 46009102 */ mul.s $f4, $f18, $f0
|
||||
/* B563C0 800DF220 E7A40030 */ swc1 $f4, 0x30($sp)
|
||||
.L800DF224:
|
||||
/* B563C4 800DF224 C486FFFC */ lwc1 $f6, -4($a0)
|
||||
/* B563C8 800DF228 C48AFFF8 */ lwc1 $f10, -8($a0)
|
||||
/* B563CC 800DF22C 240F0001 */ li $t7, 1
|
||||
/* B563D0 800DF230 460C3202 */ mul.s $f8, $f6, $f12
|
||||
/* B563D4 800DF234 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
||||
/* B563D8 800DF238 460A7402 */ mul.s $f16, $f14, $f10
|
||||
/* B563DC 800DF23C 46104480 */ add.s $f18, $f8, $f16
|
||||
/* B563E0 800DF240 444EF800 */ cfc1 $t6, $31
|
||||
/* B563E4 800DF244 44CFF800 */ ctc1 $t7, $31
|
||||
/* B563E8 800DF248 00000000 */ nop
|
||||
/* B563EC 800DF24C 46009124 */ cvt.w.s $f4, $f18
|
||||
/* B563F0 800DF250 444FF800 */ cfc1 $t7, $31
|
||||
/* B563F4 800DF254 00000000 */ nop
|
||||
/* B563F8 800DF258 31EF0078 */ andi $t7, $t7, 0x78
|
||||
/* B563FC 800DF25C 51E00013 */ beql $t7, $zero, .L800DF2AC
|
||||
/* B56400 800DF260 440F2000 */ mfc1 $t7, $f4
|
||||
/* B56404 800DF264 44812000 */ mtc1 $at, $f4
|
||||
/* B56408 800DF268 240F0001 */ li $t7, 1
|
||||
/* B5640C 800DF26C 46049101 */ sub.s $f4, $f18, $f4
|
||||
/* B56410 800DF270 44CFF800 */ ctc1 $t7, $31
|
||||
/* B56414 800DF274 00000000 */ nop
|
||||
/* B56418 800DF278 46002124 */ cvt.w.s $f4, $f4
|
||||
/* B5641C 800DF27C 444FF800 */ cfc1 $t7, $31
|
||||
/* B56420 800DF280 00000000 */ nop
|
||||
/* B56424 800DF284 31EF0078 */ andi $t7, $t7, 0x78
|
||||
/* B56428 800DF288 15E00005 */ bnez $t7, .L800DF2A0
|
||||
/* B5642C 800DF28C 00000000 */ nop
|
||||
/* B56430 800DF290 440F2000 */ mfc1 $t7, $f4
|
||||
/* B56434 800DF294 3C018000 */ lui $at, 0x8000
|
||||
/* B56438 800DF298 10000007 */ b .L800DF2B8
|
||||
/* B5643C 800DF29C 01E17825 */ or $t7, $t7, $at
|
||||
.L800DF2A0:
|
||||
/* B56440 800DF2A0 10000005 */ b .L800DF2B8
|
||||
/* B56444 800DF2A4 240FFFFF */ li $t7, -1
|
||||
/* B56448 800DF2A8 440F2000 */ mfc1 $t7, $f4
|
||||
.L800DF2AC:
|
||||
/* B5644C 800DF2AC 00000000 */ nop
|
||||
/* B56450 800DF2B0 05E0FFFB */ bltz $t7, .L800DF2A0
|
||||
/* B56454 800DF2B4 00000000 */ nop
|
||||
.L800DF2B8:
|
||||
/* B56458 800DF2B8 A46F0000 */ sh $t7, ($v1)
|
||||
/* B5645C 800DF2BC 44CEF800 */ ctc1 $t6, $31
|
||||
/* B56460 800DF2C0 C486001C */ lwc1 $f6, 0x1c($a0)
|
||||
/* B56464 800DF2C4 C4880018 */ lwc1 $f8, 0x18($a0)
|
||||
/* B56468 800DF2C8 24190001 */ li $t9, 1
|
||||
/* B5646C 800DF2CC 460C3282 */ mul.s $f10, $f6, $f12
|
||||
/* B56470 800DF2D0 24840004 */ addiu $a0, $a0, 4
|
||||
/* B56474 800DF2D4 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
||||
/* B56478 800DF2D8 46087402 */ mul.s $f16, $f14, $f8
|
||||
/* B5647C 800DF2DC 46105480 */ add.s $f18, $f10, $f16
|
||||
/* B56480 800DF2E0 4458F800 */ cfc1 $t8, $31
|
||||
/* B56484 800DF2E4 44D9F800 */ ctc1 $t9, $31
|
||||
/* B56488 800DF2E8 00000000 */ nop
|
||||
/* B5648C 800DF2EC 46009124 */ cvt.w.s $f4, $f18
|
||||
/* B56490 800DF2F0 4459F800 */ cfc1 $t9, $31
|
||||
/* B56494 800DF2F4 00000000 */ nop
|
||||
/* B56498 800DF2F8 33390078 */ andi $t9, $t9, 0x78
|
||||
/* B5649C 800DF2FC 53200013 */ beql $t9, $zero, .L800DF34C
|
||||
/* B564A0 800DF300 44192000 */ mfc1 $t9, $f4
|
||||
/* B564A4 800DF304 44812000 */ mtc1 $at, $f4
|
||||
/* B564A8 800DF308 24190001 */ li $t9, 1
|
||||
/* B564AC 800DF30C 46049101 */ sub.s $f4, $f18, $f4
|
||||
/* B564B0 800DF310 44D9F800 */ ctc1 $t9, $31
|
||||
/* B564B4 800DF314 00000000 */ nop
|
||||
/* B564B8 800DF318 46002124 */ cvt.w.s $f4, $f4
|
||||
/* B564BC 800DF31C 4459F800 */ cfc1 $t9, $31
|
||||
/* B564C0 800DF320 00000000 */ nop
|
||||
/* B564C4 800DF324 33390078 */ andi $t9, $t9, 0x78
|
||||
/* B564C8 800DF328 17200005 */ bnez $t9, .L800DF340
|
||||
/* B564CC 800DF32C 00000000 */ nop
|
||||
/* B564D0 800DF330 44192000 */ mfc1 $t9, $f4
|
||||
/* B564D4 800DF334 3C018000 */ lui $at, 0x8000
|
||||
/* B564D8 800DF338 10000007 */ b .L800DF358
|
||||
/* B564DC 800DF33C 0321C825 */ or $t9, $t9, $at
|
||||
.L800DF340:
|
||||
/* B564E0 800DF340 10000005 */ b .L800DF358
|
||||
/* B564E4 800DF344 2419FFFF */ li $t9, -1
|
||||
/* B564E8 800DF348 44192000 */ mfc1 $t9, $f4
|
||||
.L800DF34C:
|
||||
/* B564EC 800DF34C 00000000 */ nop
|
||||
/* B564F0 800DF350 0720FFFB */ bltz $t9, .L800DF340
|
||||
/* B564F4 800DF354 00000000 */ nop
|
||||
.L800DF358:
|
||||
/* B564F8 800DF358 0082082B */ sltu $at, $a0, $v0
|
||||
/* B564FC 800DF35C 44D8F800 */ ctc1 $t8, $31
|
||||
/* B56500 800DF360 24630002 */ addiu $v1, $v1, 2
|
||||
/* B56504 800DF364 1420FFAF */ bnez $at, .L800DF224
|
||||
/* B56508 800DF368 A479000E */ sh $t9, 0xe($v1)
|
||||
/* B5650C 800DF36C 00C01825 */ move $v1, $a2
|
||||
/* B56510 800DF370 27A4000C */ addiu $a0, $sp, 0xc
|
||||
/* B56514 800DF374 27A2004C */ addiu $v0, $sp, 0x4c
|
||||
.L800DF378:
|
||||
/* B56518 800DF378 4448F800 */ cfc1 $t0, $31
|
||||
/* B5651C 800DF37C 24090001 */ li $t1, 1
|
||||
/* B56520 800DF380 44C9F800 */ ctc1 $t1, $31
|
||||
/* B56524 800DF384 C4860000 */ lwc1 $f6, ($a0)
|
||||
/* B56528 800DF388 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
||||
/* B5652C 800DF38C 46003224 */ cvt.w.s $f8, $f6
|
||||
/* B56530 800DF390 4449F800 */ cfc1 $t1, $31
|
||||
/* B56534 800DF394 00000000 */ nop
|
||||
/* B56538 800DF398 31290078 */ andi $t1, $t1, 0x78
|
||||
/* B5653C 800DF39C 51200013 */ beql $t1, $zero, .L800DF3EC
|
||||
/* B56540 800DF3A0 44094000 */ mfc1 $t1, $f8
|
||||
/* B56544 800DF3A4 44814000 */ mtc1 $at, $f8
|
||||
/* B56548 800DF3A8 24090001 */ li $t1, 1
|
||||
/* B5654C 800DF3AC 46083201 */ sub.s $f8, $f6, $f8
|
||||
/* B56550 800DF3B0 44C9F800 */ ctc1 $t1, $31
|
||||
/* B56554 800DF3B4 00000000 */ nop
|
||||
/* B56558 800DF3B8 46004224 */ cvt.w.s $f8, $f8
|
||||
/* B5655C 800DF3BC 4449F800 */ cfc1 $t1, $31
|
||||
/* B56560 800DF3C0 00000000 */ nop
|
||||
/* B56564 800DF3C4 31290078 */ andi $t1, $t1, 0x78
|
||||
/* B56568 800DF3C8 15200005 */ bnez $t1, .L800DF3E0
|
||||
/* B5656C 800DF3CC 00000000 */ nop
|
||||
/* B56570 800DF3D0 44094000 */ mfc1 $t1, $f8
|
||||
/* B56574 800DF3D4 3C018000 */ lui $at, 0x8000
|
||||
/* B56578 800DF3D8 10000007 */ b .L800DF3F8
|
||||
/* B5657C 800DF3DC 01214825 */ or $t1, $t1, $at
|
||||
.L800DF3E0:
|
||||
/* B56580 800DF3E0 10000005 */ b .L800DF3F8
|
||||
/* B56584 800DF3E4 2409FFFF */ li $t1, -1
|
||||
/* B56588 800DF3E8 44094000 */ mfc1 $t1, $f8
|
||||
.L800DF3EC:
|
||||
/* B5658C 800DF3EC 00000000 */ nop
|
||||
/* B56590 800DF3F0 0520FFFB */ bltz $t1, .L800DF3E0
|
||||
/* B56594 800DF3F4 00000000 */ nop
|
||||
.L800DF3F8:
|
||||
/* B56598 800DF3F8 44C8F800 */ ctc1 $t0, $31
|
||||
/* B5659C 800DF3FC 240B0001 */ li $t3, 1
|
||||
/* B565A0 800DF400 A4690000 */ sh $t1, ($v1)
|
||||
/* B565A4 800DF404 C48A0004 */ lwc1 $f10, 4($a0)
|
||||
/* B565A8 800DF408 444AF800 */ cfc1 $t2, $31
|
||||
/* B565AC 800DF40C 44CBF800 */ ctc1 $t3, $31
|
||||
/* B565B0 800DF410 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
||||
/* B565B4 800DF414 46005424 */ cvt.w.s $f16, $f10
|
||||
/* B565B8 800DF418 444BF800 */ cfc1 $t3, $31
|
||||
/* B565BC 800DF41C 00000000 */ nop
|
||||
/* B565C0 800DF420 316B0078 */ andi $t3, $t3, 0x78
|
||||
/* B565C4 800DF424 51600013 */ beql $t3, $zero, .L800DF474
|
||||
/* B565C8 800DF428 440B8000 */ mfc1 $t3, $f16
|
||||
/* B565CC 800DF42C 44818000 */ mtc1 $at, $f16
|
||||
/* B565D0 800DF430 240B0001 */ li $t3, 1
|
||||
/* B565D4 800DF434 46105401 */ sub.s $f16, $f10, $f16
|
||||
/* B565D8 800DF438 44CBF800 */ ctc1 $t3, $31
|
||||
/* B565DC 800DF43C 00000000 */ nop
|
||||
/* B565E0 800DF440 46008424 */ cvt.w.s $f16, $f16
|
||||
/* B565E4 800DF444 444BF800 */ cfc1 $t3, $31
|
||||
/* B565E8 800DF448 00000000 */ nop
|
||||
/* B565EC 800DF44C 316B0078 */ andi $t3, $t3, 0x78
|
||||
/* B565F0 800DF450 15600005 */ bnez $t3, .L800DF468
|
||||
/* B565F4 800DF454 00000000 */ nop
|
||||
/* B565F8 800DF458 440B8000 */ mfc1 $t3, $f16
|
||||
/* B565FC 800DF45C 3C018000 */ lui $at, 0x8000
|
||||
/* B56600 800DF460 10000007 */ b .L800DF480
|
||||
/* B56604 800DF464 01615825 */ or $t3, $t3, $at
|
||||
.L800DF468:
|
||||
/* B56608 800DF468 10000005 */ b .L800DF480
|
||||
/* B5660C 800DF46C 240BFFFF */ li $t3, -1
|
||||
/* B56610 800DF470 440B8000 */ mfc1 $t3, $f16
|
||||
.L800DF474:
|
||||
/* B56614 800DF474 00000000 */ nop
|
||||
/* B56618 800DF478 0560FFFB */ bltz $t3, .L800DF468
|
||||
/* B5661C 800DF47C 00000000 */ nop
|
||||
.L800DF480:
|
||||
/* B56620 800DF480 44CAF800 */ ctc1 $t2, $31
|
||||
/* B56624 800DF484 A46B0002 */ sh $t3, 2($v1)
|
||||
/* B56628 800DF488 240D0001 */ li $t5, 1
|
||||
/* B5662C 800DF48C C4920008 */ lwc1 $f18, 8($a0)
|
||||
/* B56630 800DF490 444CF800 */ cfc1 $t4, $31
|
||||
/* B56634 800DF494 44CDF800 */ ctc1 $t5, $31
|
||||
/* B56638 800DF498 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
||||
/* B5663C 800DF49C 46009124 */ cvt.w.s $f4, $f18
|
||||
/* B56640 800DF4A0 444DF800 */ cfc1 $t5, $31
|
||||
/* B56644 800DF4A4 00000000 */ nop
|
||||
/* B56648 800DF4A8 31AD0078 */ andi $t5, $t5, 0x78
|
||||
/* B5664C 800DF4AC 51A00013 */ beql $t5, $zero, .L800DF4FC
|
||||
/* B56650 800DF4B0 440D2000 */ mfc1 $t5, $f4
|
||||
/* B56654 800DF4B4 44812000 */ mtc1 $at, $f4
|
||||
/* B56658 800DF4B8 240D0001 */ li $t5, 1
|
||||
/* B5665C 800DF4BC 46049101 */ sub.s $f4, $f18, $f4
|
||||
/* B56660 800DF4C0 44CDF800 */ ctc1 $t5, $31
|
||||
/* B56664 800DF4C4 00000000 */ nop
|
||||
/* B56668 800DF4C8 46002124 */ cvt.w.s $f4, $f4
|
||||
/* B5666C 800DF4CC 444DF800 */ cfc1 $t5, $31
|
||||
/* B56670 800DF4D0 00000000 */ nop
|
||||
/* B56674 800DF4D4 31AD0078 */ andi $t5, $t5, 0x78
|
||||
/* B56678 800DF4D8 15A00005 */ bnez $t5, .L800DF4F0
|
||||
/* B5667C 800DF4DC 00000000 */ nop
|
||||
/* B56680 800DF4E0 440D2000 */ mfc1 $t5, $f4
|
||||
/* B56684 800DF4E4 3C018000 */ lui $at, 0x8000
|
||||
/* B56688 800DF4E8 10000007 */ b .L800DF508
|
||||
/* B5668C 800DF4EC 01A16825 */ or $t5, $t5, $at
|
||||
.L800DF4F0:
|
||||
/* B56690 800DF4F0 10000005 */ b .L800DF508
|
||||
/* B56694 800DF4F4 240DFFFF */ li $t5, -1
|
||||
/* B56698 800DF4F8 440D2000 */ mfc1 $t5, $f4
|
||||
.L800DF4FC:
|
||||
/* B5669C 800DF4FC 00000000 */ nop
|
||||
/* B566A0 800DF500 05A0FFFB */ bltz $t5, .L800DF4F0
|
||||
/* B566A4 800DF504 00000000 */ nop
|
||||
.L800DF508:
|
||||
/* B566A8 800DF508 44CCF800 */ ctc1 $t4, $31
|
||||
/* B566AC 800DF50C A46D0004 */ sh $t5, 4($v1)
|
||||
/* B566B0 800DF510 240F0001 */ li $t7, 1
|
||||
/* B566B4 800DF514 C486000C */ lwc1 $f6, 0xc($a0)
|
||||
/* B566B8 800DF518 444EF800 */ cfc1 $t6, $31
|
||||
/* B566BC 800DF51C 44CFF800 */ ctc1 $t7, $31
|
||||
/* B566C0 800DF520 24840010 */ addiu $a0, $a0, 0x10
|
||||
/* B566C4 800DF524 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
||||
/* B566C8 800DF528 46003224 */ cvt.w.s $f8, $f6
|
||||
/* B566CC 800DF52C 444FF800 */ cfc1 $t7, $31
|
||||
/* B566D0 800DF530 00000000 */ nop
|
||||
/* B566D4 800DF534 31EF0078 */ andi $t7, $t7, 0x78
|
||||
/* B566D8 800DF538 51E00013 */ beql $t7, $zero, .L800DF588
|
||||
/* B566DC 800DF53C 440F4000 */ mfc1 $t7, $f8
|
||||
/* B566E0 800DF540 44814000 */ mtc1 $at, $f8
|
||||
/* B566E4 800DF544 240F0001 */ li $t7, 1
|
||||
/* B566E8 800DF548 46083201 */ sub.s $f8, $f6, $f8
|
||||
/* B566EC 800DF54C 44CFF800 */ ctc1 $t7, $31
|
||||
/* B566F0 800DF550 00000000 */ nop
|
||||
/* B566F4 800DF554 46004224 */ cvt.w.s $f8, $f8
|
||||
/* B566F8 800DF558 444FF800 */ cfc1 $t7, $31
|
||||
/* B566FC 800DF55C 00000000 */ nop
|
||||
/* B56700 800DF560 31EF0078 */ andi $t7, $t7, 0x78
|
||||
/* B56704 800DF564 15E00005 */ bnez $t7, .L800DF57C
|
||||
/* B56708 800DF568 00000000 */ nop
|
||||
/* B5670C 800DF56C 440F4000 */ mfc1 $t7, $f8
|
||||
/* B56710 800DF570 3C018000 */ lui $at, 0x8000
|
||||
/* B56714 800DF574 10000007 */ b .L800DF594
|
||||
/* B56718 800DF578 01E17825 */ or $t7, $t7, $at
|
||||
.L800DF57C:
|
||||
/* B5671C 800DF57C 10000005 */ b .L800DF594
|
||||
/* B56720 800DF580 240FFFFF */ li $t7, -1
|
||||
/* B56724 800DF584 440F4000 */ mfc1 $t7, $f8
|
||||
.L800DF588:
|
||||
/* B56728 800DF588 00000000 */ nop
|
||||
/* B5672C 800DF58C 05E0FFFB */ bltz $t7, .L800DF57C
|
||||
/* B56730 800DF590 00000000 */ nop
|
||||
.L800DF594:
|
||||
/* B56734 800DF594 44CEF800 */ ctc1 $t6, $31
|
||||
/* B56738 800DF598 A46F0006 */ sh $t7, 6($v1)
|
||||
/* B5673C 800DF59C 1482FF76 */ bne $a0, $v0, .L800DF378
|
||||
/* B56740 800DF5A0 24630008 */ addiu $v1, $v1, 8
|
||||
/* B56744 800DF5A4 03E00008 */ jr $ra
|
||||
/* B56748 800DF5A8 27BD0050 */ addiu $sp, $sp, 0x50
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
glabel func_800DF5AC
|
||||
/* B5674C 800DF5AC 00801825 */ move $v1, $a0
|
||||
/* B56750 800DF5B0 24040008 */ li $a0, 8
|
||||
/* B56754 800DF5B4 00001025 */ move $v0, $zero
|
||||
.L800DF5B8:
|
||||
/* B56758 800DF5B8 24420004 */ addiu $v0, $v0, 4
|
||||
/* B5675C 800DF5BC A4600002 */ sh $zero, 2($v1)
|
||||
/* B56760 800DF5C0 A4600004 */ sh $zero, 4($v1)
|
||||
/* B56764 800DF5C4 A4600006 */ sh $zero, 6($v1)
|
||||
/* B56768 800DF5C8 24630008 */ addiu $v1, $v1, 8
|
||||
/* B5676C 800DF5CC 1444FFFA */ bne $v0, $a0, .L800DF5B8
|
||||
/* B56770 800DF5D0 A460FFF8 */ sh $zero, -8($v1)
|
||||
/* B56774 800DF5D4 03E00008 */ jr $ra
|
||||
/* B56778 800DF5D8 00000000 */ nop
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
glabel func_800DF5DC
|
||||
/* B5677C 800DF5DC 3C188013 */ lui $t8, %hi(D_80130228) # $t8, 0x8013
|
||||
/* B56780 800DF5E0 27180228 */ addiu $t8, %lo(D_80130228) # addiu $t8, $t8, 0x228
|
||||
/* B56784 800DF5E4 00801825 */ move $v1, $a0
|
||||
/* B56788 800DF5E8 00057900 */ sll $t7, $a1, 4
|
||||
/* B5678C 800DF5EC 01F83021 */ addu $a2, $t7, $t8
|
||||
/* B56790 800DF5F0 24040008 */ li $a0, 8
|
||||
/* B56794 800DF5F4 00001025 */ move $v0, $zero
|
||||
.L800DF5F8:
|
||||
/* B56798 800DF5F8 84D90000 */ lh $t9, ($a2)
|
||||
/* B5679C 800DF5FC 24420004 */ addiu $v0, $v0, 4
|
||||
/* B567A0 800DF600 24630008 */ addiu $v1, $v1, 8
|
||||
/* B567A4 800DF604 A479FFF8 */ sh $t9, -8($v1)
|
||||
/* B567A8 800DF608 84C80002 */ lh $t0, 2($a2)
|
||||
/* B567AC 800DF60C 24C60008 */ addiu $a2, $a2, 8
|
||||
/* B567B0 800DF610 A468FFFA */ sh $t0, -6($v1)
|
||||
/* B567B4 800DF614 84C9FFFC */ lh $t1, -4($a2)
|
||||
/* B567B8 800DF618 A469FFFC */ sh $t1, -4($v1)
|
||||
/* B567BC 800DF61C 84CAFFFE */ lh $t2, -2($a2)
|
||||
/* B567C0 800DF620 1444FFF5 */ bne $v0, $a0, .L800DF5F8
|
||||
/* B567C4 800DF624 A46AFFFE */ sh $t2, -2($v1)
|
||||
/* B567C8 800DF628 03E00008 */ jr $ra
|
||||
/* B567CC 800DF62C 00000000 */ nop
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
glabel func_800DF630
|
||||
/* B567D0 800DF630 00057900 */ sll $t7, $a1, 4
|
||||
/* B567D4 800DF634 3C198013 */ lui $t9, %hi(D_80130328) # $t9, 0x8013
|
||||
/* B567D8 800DF638 27390328 */ addiu $t9, %lo(D_80130328) # addiu $t9, $t9, 0x328
|
||||
/* B567DC 800DF63C 25F8FFF0 */ addiu $t8, $t7, -0x10
|
||||
/* B567E0 800DF640 00801825 */ move $v1, $a0
|
||||
/* B567E4 800DF644 24040008 */ li $a0, 8
|
||||
/* B567E8 800DF648 03193021 */ addu $a2, $t8, $t9
|
||||
/* B567EC 800DF64C 00001025 */ move $v0, $zero
|
||||
.L800DF650:
|
||||
/* B567F0 800DF650 84C80000 */ lh $t0, ($a2)
|
||||
/* B567F4 800DF654 24420004 */ addiu $v0, $v0, 4
|
||||
/* B567F8 800DF658 24630008 */ addiu $v1, $v1, 8
|
||||
/* B567FC 800DF65C A468FFF8 */ sh $t0, -8($v1)
|
||||
/* B56800 800DF660 84C90002 */ lh $t1, 2($a2)
|
||||
/* B56804 800DF664 24C60008 */ addiu $a2, $a2, 8
|
||||
/* B56808 800DF668 A469FFFA */ sh $t1, -6($v1)
|
||||
/* B5680C 800DF66C 84CAFFFC */ lh $t2, -4($a2)
|
||||
/* B56810 800DF670 A46AFFFC */ sh $t2, -4($v1)
|
||||
/* B56814 800DF674 84CBFFFE */ lh $t3, -2($a2)
|
||||
/* B56818 800DF678 1444FFF5 */ bne $v0, $a0, .L800DF650
|
||||
/* B5681C 800DF67C A46BFFFE */ sh $t3, -2($v1)
|
||||
/* B56820 800DF680 03E00008 */ jr $ra
|
||||
/* B56824 800DF684 00000000 */ nop
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
glabel func_800DF688
|
||||
/* B56828 800DF688 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B5682C 800DF68C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B56830 800DF690 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B56834 800DF694 14A00007 */ bnez $a1, .L800DF6B4
|
||||
/* B56838 800DF698 00A03825 */ move $a3, $a1
|
||||
/* B5683C 800DF69C 14C00005 */ bnez $a2, .L800DF6B4
|
||||
/* B56840 800DF6A0 00000000 */ nop
|
||||
/* B56844 800DF6A4 0C037D77 */ jal func_800DF5DC
|
||||
/* B56848 800DF6A8 00002825 */ move $a1, $zero
|
||||
/* B5684C 800DF6AC 10000040 */ b .L800DF7B0
|
||||
/* B56850 800DF6B0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF6B4:
|
||||
/* B56854 800DF6B4 14C00005 */ bnez $a2, .L800DF6CC
|
||||
/* B56858 800DF6B8 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* B5685C 800DF6BC 0C037D77 */ jal func_800DF5DC
|
||||
/* B56860 800DF6C0 00E02825 */ move $a1, $a3
|
||||
/* B56864 800DF6C4 1000003A */ b .L800DF7B0
|
||||
/* B56868 800DF6C8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF6CC:
|
||||
/* B5686C 800DF6CC 14E00006 */ bnez $a3, .L800DF6E8
|
||||
/* B56870 800DF6D0 00002825 */ move $a1, $zero
|
||||
/* B56874 800DF6D4 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* B56878 800DF6D8 0C037D8C */ jal func_800DF630
|
||||
/* B5687C 800DF6DC 00C02825 */ move $a1, $a2
|
||||
/* B56880 800DF6E0 10000033 */ b .L800DF7B0
|
||||
/* B56884 800DF6E4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF6E8:
|
||||
/* B56888 800DF6E8 00C07025 */ move $t6, $a2
|
||||
/* B5688C 800DF6EC 000E7900 */ sll $t7, $t6, 4
|
||||
/* B56890 800DF6F0 3C198013 */ lui $t9, %hi(D_80130328) # $t9, 0x8013
|
||||
/* B56894 800DF6F4 3C0A8013 */ lui $t2, %hi(D_80130228) # $t2, 0x8013
|
||||
/* B56898 800DF6F8 254A0228 */ addiu $t2, %lo(D_80130228) # addiu $t2, $t2, 0x228
|
||||
/* B5689C 800DF6FC 27390328 */ addiu $t9, %lo(D_80130328) # addiu $t9, $t9, 0x328
|
||||
/* B568A0 800DF700 25F8FFF0 */ addiu $t8, $t7, -0x10
|
||||
/* B568A4 800DF704 00074900 */ sll $t1, $a3, 4
|
||||
/* B568A8 800DF708 012A2021 */ addu $a0, $t1, $t2
|
||||
/* B568AC 800DF70C 03191821 */ addu $v1, $t8, $t9
|
||||
/* B568B0 800DF710 24060008 */ li $a2, 8
|
||||
/* B568B4 800DF714 8FA20018 */ lw $v0, 0x18($sp)
|
||||
.L800DF718:
|
||||
/* B568B8 800DF718 846B0000 */ lh $t3, ($v1)
|
||||
/* B568BC 800DF71C 848C0000 */ lh $t4, ($a0)
|
||||
/* B568C0 800DF720 24A50004 */ addiu $a1, $a1, 4
|
||||
/* B568C4 800DF724 24420008 */ addiu $v0, $v0, 8
|
||||
/* B568C8 800DF728 016C6821 */ addu $t5, $t3, $t4
|
||||
/* B568CC 800DF72C 05A10003 */ bgez $t5, .L800DF73C
|
||||
/* B568D0 800DF730 000D7043 */ sra $t6, $t5, 1
|
||||
/* B568D4 800DF734 25A10001 */ addiu $at, $t5, 1
|
||||
/* B568D8 800DF738 00017043 */ sra $t6, $at, 1
|
||||
.L800DF73C:
|
||||
/* B568DC 800DF73C A44EFFF8 */ sh $t6, -8($v0)
|
||||
/* B568E0 800DF740 84980002 */ lh $t8, 2($a0)
|
||||
/* B568E4 800DF744 846F0002 */ lh $t7, 2($v1)
|
||||
/* B568E8 800DF748 24630008 */ addiu $v1, $v1, 8
|
||||
/* B568EC 800DF74C 24840008 */ addiu $a0, $a0, 8
|
||||
/* B568F0 800DF750 01F8C821 */ addu $t9, $t7, $t8
|
||||
/* B568F4 800DF754 07210003 */ bgez $t9, .L800DF764
|
||||
/* B568F8 800DF758 00194043 */ sra $t0, $t9, 1
|
||||
/* B568FC 800DF75C 27210001 */ addiu $at, $t9, 1
|
||||
/* B56900 800DF760 00014043 */ sra $t0, $at, 1
|
||||
.L800DF764:
|
||||
/* B56904 800DF764 A448FFFA */ sh $t0, -6($v0)
|
||||
/* B56908 800DF768 848AFFFC */ lh $t2, -4($a0)
|
||||
/* B5690C 800DF76C 8469FFFC */ lh $t1, -4($v1)
|
||||
/* B56910 800DF770 012A5821 */ addu $t3, $t1, $t2
|
||||
/* B56914 800DF774 05610003 */ bgez $t3, .L800DF784
|
||||
/* B56918 800DF778 000B6043 */ sra $t4, $t3, 1
|
||||
/* B5691C 800DF77C 25610001 */ addiu $at, $t3, 1
|
||||
/* B56920 800DF780 00016043 */ sra $t4, $at, 1
|
||||
.L800DF784:
|
||||
/* B56924 800DF784 A44CFFFC */ sh $t4, -4($v0)
|
||||
/* B56928 800DF788 848EFFFE */ lh $t6, -2($a0)
|
||||
/* B5692C 800DF78C 846DFFFE */ lh $t5, -2($v1)
|
||||
/* B56930 800DF790 01AE7821 */ addu $t7, $t5, $t6
|
||||
/* B56934 800DF794 05E10003 */ bgez $t7, .L800DF7A4
|
||||
/* B56938 800DF798 000FC043 */ sra $t8, $t7, 1
|
||||
/* B5693C 800DF79C 25E10001 */ addiu $at, $t7, 1
|
||||
/* B56940 800DF7A0 0001C043 */ sra $t8, $at, 1
|
||||
.L800DF7A4:
|
||||
/* B56944 800DF7A4 14A6FFDC */ bne $a1, $a2, .L800DF718
|
||||
/* B56948 800DF7A8 A458FFFE */ sh $t8, -2($v0)
|
||||
/* B5694C 800DF7AC 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800DF7B0:
|
||||
/* B56950 800DF7B0 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B56954 800DF7B4 03E00008 */ jr $ra
|
||||
/* B56958 800DF7B8 00000000 */ nop
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
glabel func_800DF7BC
|
||||
/* B5695C 800DF7BC 03E00008 */ jr $ra
|
||||
/* B56960 800DF7C0 AFA40000 */ sw $a0, ($sp)
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
glabel func_800DF7C4
|
||||
/* B56964 800DF7C4 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
|
||||
/* B56968 800DF7C8 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
|
||||
/* B5696C 800DF7CC 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* B56970 800DF7D0 846E2848 */ lh $t6, 0x2848($v1)
|
||||
/* B56974 800DF7D4 24010002 */ li $at, 2
|
||||
/* B56978 800DF7D8 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* B5697C 800DF7DC AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* B56980 800DF7E0 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* B56984 800DF7E4 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* B56988 800DF7E8 15C10003 */ bne $t6, $at, .L800DF7F8
|
||||
/* B5698C 800DF7EC AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* B56990 800DF7F0 10000002 */ b .L800DF7FC
|
||||
/* B56994 800DF7F4 24120002 */ li $s2, 2
|
||||
.L800DF7F8:
|
||||
/* B56998 800DF7F8 24120001 */ li $s2, 1
|
||||
.L800DF7FC:
|
||||
/* B5699C 800DF7FC 80620001 */ lb $v0, 1($v1)
|
||||
/* B569A0 800DF800 00009825 */ move $s3, $zero
|
||||
/* B569A4 800DF804 5840001A */ blezl $v0, .L800DF870
|
||||
/* B569A8 800DF808 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L800DF80C:
|
||||
/* B569AC 800DF80C 1A400013 */ blez $s2, .L800DF85C
|
||||
/* B569B0 800DF810 00008025 */ move $s0, $zero
|
||||
/* B569B4 800DF814 00137880 */ sll $t7, $s3, 2
|
||||
/* B569B8 800DF818 01F37823 */ subu $t7, $t7, $s3
|
||||
/* B569BC 800DF81C 000F7880 */ sll $t7, $t7, 2
|
||||
/* B569C0 800DF820 01F37823 */ subu $t7, $t7, $s3
|
||||
/* B569C4 800DF824 000F78C0 */ sll $t7, $t7, 3
|
||||
/* B569C8 800DF828 01F37821 */ addu $t7, $t7, $s3
|
||||
/* B569CC 800DF82C 000F78C0 */ sll $t7, $t7, 3
|
||||
/* B569D0 800DF830 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017
|
||||
/* B569D4 800DF834 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80
|
||||
/* B569D8 800DF838 25F80018 */ addiu $t8, $t7, 0x18
|
||||
/* B569DC 800DF83C 03198821 */ addu $s1, $t8, $t9
|
||||
.L800DF840:
|
||||
/* B569E0 800DF840 0C037DEF */ jal func_800DF7BC
|
||||
/* B569E4 800DF844 02202025 */ move $a0, $s1
|
||||
/* B569E8 800DF848 26100001 */ addiu $s0, $s0, 1
|
||||
/* B569EC 800DF84C 1612FFFC */ bne $s0, $s2, .L800DF840
|
||||
/* B569F0 800DF850 00000000 */ nop
|
||||
/* B569F4 800DF854 3C028017 */ lui $v0, %hi(gAudioContext+0x1) # $v0, 0x8017
|
||||
/* B569F8 800DF858 8042F181 */ lb $v0, %lo(gAudioContext+0x1)($v0)
|
||||
.L800DF85C:
|
||||
/* B569FC 800DF85C 26730001 */ addiu $s3, $s3, 1
|
||||
/* B56A00 800DF860 0262082A */ slt $at, $s3, $v0
|
||||
/* B56A04 800DF864 1420FFE9 */ bnez $at, .L800DF80C
|
||||
/* B56A08 800DF868 00000000 */ nop
|
||||
/* B56A0C 800DF86C 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L800DF870:
|
||||
/* B56A10 800DF870 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* B56A14 800DF874 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* B56A18 800DF878 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* B56A1C 800DF87C 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* B56A20 800DF880 03E00008 */ jr $ra
|
||||
/* B56A24 800DF884 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
glabel func_800DF888
|
||||
/* B56A28 800DF888 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
|
||||
/* B56A2C 800DF88C 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
|
||||
/* B56A30 800DF890 8CC228A8 */ lw $v0, 0x28a8($a2)
|
||||
/* B56A34 800DF894 84CE2852 */ lh $t6, 0x2852($a2)
|
||||
/* B56A38 800DF898 00002825 */ move $a1, $zero
|
||||
/* B56A3C 800DF89C 00027840 */ sll $t7, $v0, 1
|
||||
/* B56A40 800DF8A0 0002C880 */ sll $t9, $v0, 2
|
||||
/* B56A44 800DF8A4 00CFC021 */ addu $t8, $a2, $t7
|
||||
/* B56A48 800DF8A8 00D92021 */ addu $a0, $a2, $t9
|
||||
/* B56A4C 800DF8AC 24020B00 */ li $v0, 2816
|
||||
/* B56A50 800DF8B0 A70E2974 */ sh $t6, 0x2974($t8)
|
||||
.L800DF8B4:
|
||||
/* B56A54 800DF8B4 8C882968 */ lw $t0, 0x2968($a0)
|
||||
/* B56A58 800DF8B8 01054821 */ addu $t1, $t0, $a1
|
||||
/* B56A5C 800DF8BC A5200000 */ sh $zero, ($t1)
|
||||
/* B56A60 800DF8C0 8C8A2968 */ lw $t2, 0x2968($a0)
|
||||
/* B56A64 800DF8C4 01455821 */ addu $t3, $t2, $a1
|
||||
/* B56A68 800DF8C8 A5600002 */ sh $zero, 2($t3)
|
||||
/* B56A6C 800DF8CC 8C8C2968 */ lw $t4, 0x2968($a0)
|
||||
/* B56A70 800DF8D0 01856821 */ addu $t5, $t4, $a1
|
||||
/* B56A74 800DF8D4 A5A00004 */ sh $zero, 4($t5)
|
||||
/* B56A78 800DF8D8 8C8F2968 */ lw $t7, 0x2968($a0)
|
||||
/* B56A7C 800DF8DC 01E57021 */ addu $t6, $t7, $a1
|
||||
/* B56A80 800DF8E0 24A50008 */ addiu $a1, $a1, 8
|
||||
/* B56A84 800DF8E4 14A2FFF3 */ bne $a1, $v0, .L800DF8B4
|
||||
/* B56A88 800DF8E8 A5C00006 */ sh $zero, 6($t6)
|
||||
/* B56A8C 800DF8EC 03E00008 */ jr $ra
|
||||
/* B56A90 800DF8F0 00000000 */ nop
|
||||
|
||||
@@ -1,230 +0,0 @@
|
||||
.late_rodata
|
||||
glabel jtbl_801493FC
|
||||
.word L800DFB54
|
||||
.word L800DFB18
|
||||
.word L800DFAB0
|
||||
.word L800DF9DC
|
||||
.word L800DF954
|
||||
|
||||
.text
|
||||
glabel func_800DF8F4
|
||||
/* B56A94 800DF8F4 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* B56A98 800DF8F8 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* B56A9C 800DF8FC 3C118017 */ lui $s1, %hi(gAudioContext) # $s1, 0x8017
|
||||
/* B56AA0 800DF900 2631F180 */ addiu $s1, %lo(gAudioContext) # addiu $s1, $s1, -0xe80
|
||||
/* B56AA4 800DF904 862E2848 */ lh $t6, 0x2848($s1)
|
||||
/* B56AA8 800DF908 24010002 */ li $at, 2
|
||||
/* B56AAC 800DF90C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* B56AB0 800DF910 15C10004 */ bne $t6, $at, .L800DF924
|
||||
/* B56AB4 800DF914 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* B56AB8 800DF918 240F0002 */ li $t7, 2
|
||||
/* B56ABC 800DF91C 10000003 */ b .L800DF92C
|
||||
/* B56AC0 800DF920 AFAF0024 */ sw $t7, 0x24($sp)
|
||||
.L800DF924:
|
||||
/* B56AC4 800DF924 24180001 */ li $t8, 1
|
||||
/* B56AC8 800DF928 AFB80024 */ sw $t8, 0x24($sp)
|
||||
.L800DF92C:
|
||||
/* B56ACC 800DF92C 92393518 */ lbu $t9, 0x3518($s1)
|
||||
/* B56AD0 800DF930 2728FFFF */ addiu $t0, $t9, -1
|
||||
/* B56AD4 800DF934 2D010005 */ sltiu $at, $t0, 5
|
||||
/* B56AD8 800DF938 102000A3 */ beqz $at, .L800DFBC8
|
||||
/* B56ADC 800DF93C 00084080 */ sll $t0, $t0, 2
|
||||
/* B56AE0 800DF940 3C018015 */ lui $at, %hi(jtbl_801493FC)
|
||||
/* B56AE4 800DF944 00280821 */ addu $at, $at, $t0
|
||||
/* B56AE8 800DF948 8C2893FC */ lw $t0, %lo(jtbl_801493FC)($at)
|
||||
/* B56AEC 800DF94C 01000008 */ jr $t0
|
||||
/* B56AF0 800DF950 00000000 */ nop
|
||||
glabel L800DF954
|
||||
/* B56AF4 800DF954 8629285C */ lh $t1, 0x285c($s1)
|
||||
/* B56AF8 800DF958 00002825 */ move $a1, $zero
|
||||
/* B56AFC 800DF95C 5920000E */ blezl $t1, .L800DF998
|
||||
/* B56B00 800DF960 8FAB0024 */ lw $t3, 0x24($sp)
|
||||
/* B56B04 800DF964 3C108017 */ lui $s0, %hi(gAudioContext+0x3530) # $s0, 0x8017
|
||||
/* B56B08 800DF968 261026B0 */ addiu $s0, %lo(gAudioContext+0x3530) # addiu $s0, $s0, 0x26b0
|
||||
/* B56B0C 800DF96C 02002025 */ move $a0, $s0
|
||||
.L800DF970:
|
||||
/* B56B10 800DF970 0C03A6D1 */ jal Audio_SequencePlayerDisableAsFinished
|
||||
/* B56B14 800DF974 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* B56B18 800DF978 8FA5002C */ lw $a1, 0x2c($sp)
|
||||
/* B56B1C 800DF97C 862A285C */ lh $t2, 0x285c($s1)
|
||||
/* B56B20 800DF980 26100160 */ addiu $s0, $s0, 0x160
|
||||
/* B56B24 800DF984 24A50001 */ addiu $a1, $a1, 1
|
||||
/* B56B28 800DF988 00AA082A */ slt $at, $a1, $t2
|
||||
/* B56B2C 800DF98C 5420FFF8 */ bnezl $at, .L800DF970
|
||||
/* B56B30 800DF990 02002025 */ move $a0, $s0
|
||||
/* B56B34 800DF994 8FAB0024 */ lw $t3, 0x24($sp)
|
||||
.L800DF998:
|
||||
/* B56B38 800DF998 240C0002 */ li $t4, 2
|
||||
/* B56B3C 800DF99C 92223518 */ lbu $v0, 0x3518($s1)
|
||||
/* B56B40 800DF9A0 018B001A */ div $zero, $t4, $t3
|
||||
/* B56B44 800DF9A4 00006812 */ mflo $t5
|
||||
/* B56B48 800DF9A8 244EFFFF */ addiu $t6, $v0, -1
|
||||
/* B56B4C 800DF9AC 15600002 */ bnez $t3, .L800DF9B8
|
||||
/* B56B50 800DF9B0 00000000 */ nop
|
||||
/* B56B54 800DF9B4 0007000D */ break 7
|
||||
.L800DF9B8:
|
||||
/* B56B58 800DF9B8 2401FFFF */ li $at, -1
|
||||
/* B56B5C 800DF9BC 15610004 */ bne $t3, $at, .L800DF9D0
|
||||
/* B56B60 800DF9C0 3C018000 */ lui $at, 0x8000
|
||||
/* B56B64 800DF9C4 15810002 */ bne $t4, $at, .L800DF9D0
|
||||
/* B56B68 800DF9C8 00000000 */ nop
|
||||
/* B56B6C 800DF9CC 0006000D */ break 6
|
||||
.L800DF9D0:
|
||||
/* B56B70 800DF9D0 AE2D351C */ sw $t5, 0x351c($s1)
|
||||
/* B56B74 800DF9D4 1000007C */ b .L800DFBC8
|
||||
/* B56B78 800DF9D8 A22E3518 */ sb $t6, 0x3518($s1)
|
||||
glabel L800DF9DC
|
||||
/* B56B7C 800DF9DC 8E22351C */ lw $v0, 0x351c($s1)
|
||||
/* B56B80 800DF9E0 10400005 */ beqz $v0, .L800DF9F8
|
||||
/* B56B84 800DF9E4 244FFFFF */ addiu $t7, $v0, -1
|
||||
/* B56B88 800DF9E8 0C037DF1 */ jal func_800DF7C4
|
||||
/* B56B8C 800DF9EC AE2F351C */ sw $t7, 0x351c($s1)
|
||||
/* B56B90 800DF9F0 10000076 */ b .L800DFBCC
|
||||
/* B56B94 800DF9F4 922F3518 */ lbu $t7, 0x3518($s1)
|
||||
.L800DF9F8:
|
||||
/* B56B98 800DF9F8 8E242894 */ lw $a0, 0x2894($s1)
|
||||
/* B56B9C 800DF9FC 00002825 */ move $a1, $zero
|
||||
/* B56BA0 800DFA00 5880001A */ blezl $a0, .L800DFA6C
|
||||
/* B56BA4 800DFA04 8FAF0024 */ lw $t7, 0x24($sp)
|
||||
/* B56BA8 800DFA08 00001825 */ move $v1, $zero
|
||||
.L800DFA0C:
|
||||
/* B56BAC 800DFA0C 8E38352C */ lw $t8, 0x352c($s1)
|
||||
/* B56BB0 800DFA10 24A50001 */ addiu $a1, $a1, 1
|
||||
/* B56BB4 800DFA14 03031021 */ addu $v0, $t8, $v1
|
||||
/* B56BB8 800DFA18 8C5900C0 */ lw $t9, 0xc0($v0)
|
||||
/* B56BBC 800DFA1C 001947C2 */ srl $t0, $t9, 0x1f
|
||||
/* B56BC0 800DFA20 5100000F */ beql $t0, $zero, .L800DFA60
|
||||
/* B56BC4 800DFA24 00A4082A */ slt $at, $a1, $a0
|
||||
/* B56BC8 800DFA28 90490070 */ lbu $t1, 0x70($v0)
|
||||
/* B56BCC 800DFA2C 312A000F */ andi $t2, $t1, 0xf
|
||||
/* B56BD0 800DFA30 5140000B */ beql $t2, $zero, .L800DFA60
|
||||
/* B56BD4 800DFA34 00A4082A */ slt $at, $a1, $a0
|
||||
/* B56BD8 800DFA38 C6242864 */ lwc1 $f4, 0x2864($s1)
|
||||
/* B56BDC 800DFA3C E444007C */ swc1 $f4, 0x7c($v0)
|
||||
/* B56BE0 800DFA40 8E2C352C */ lw $t4, 0x352c($s1)
|
||||
/* B56BE4 800DFA44 01831021 */ addu $v0, $t4, $v1
|
||||
/* B56BE8 800DFA48 904B0070 */ lbu $t3, 0x70($v0)
|
||||
/* B56BEC 800DFA4C 316DFFEF */ andi $t5, $t3, 0xffef
|
||||
/* B56BF0 800DFA50 35AE0010 */ ori $t6, $t5, 0x10
|
||||
/* B56BF4 800DFA54 A04E0070 */ sb $t6, 0x70($v0)
|
||||
/* B56BF8 800DFA58 8E242894 */ lw $a0, 0x2894($s1)
|
||||
/* B56BFC 800DFA5C 00A4082A */ slt $at, $a1, $a0
|
||||
.L800DFA60:
|
||||
/* B56C00 800DFA60 1420FFEA */ bnez $at, .L800DFA0C
|
||||
/* B56C04 800DFA64 246300E0 */ addiu $v1, $v1, 0xe0
|
||||
/* B56C08 800DFA68 8FAF0024 */ lw $t7, 0x24($sp)
|
||||
.L800DFA6C:
|
||||
/* B56C0C 800DFA6C 24180008 */ li $t8, 8
|
||||
/* B56C10 800DFA70 92223518 */ lbu $v0, 0x3518($s1)
|
||||
/* B56C14 800DFA74 030F001A */ div $zero, $t8, $t7
|
||||
/* B56C18 800DFA78 0000C812 */ mflo $t9
|
||||
/* B56C1C 800DFA7C 2448FFFF */ addiu $t0, $v0, -1
|
||||
/* B56C20 800DFA80 15E00002 */ bnez $t7, .L800DFA8C
|
||||
/* B56C24 800DFA84 00000000 */ nop
|
||||
/* B56C28 800DFA88 0007000D */ break 7
|
||||
.L800DFA8C:
|
||||
/* B56C2C 800DFA8C 2401FFFF */ li $at, -1
|
||||
/* B56C30 800DFA90 15E10004 */ bne $t7, $at, .L800DFAA4
|
||||
/* B56C34 800DFA94 3C018000 */ lui $at, 0x8000
|
||||
/* B56C38 800DFA98 17010002 */ bne $t8, $at, .L800DFAA4
|
||||
/* B56C3C 800DFA9C 00000000 */ nop
|
||||
/* B56C40 800DFAA0 0006000D */ break 6
|
||||
.L800DFAA4:
|
||||
/* B56C44 800DFAA4 AE39351C */ sw $t9, 0x351c($s1)
|
||||
/* B56C48 800DFAA8 10000047 */ b .L800DFBC8
|
||||
/* B56C4C 800DFAAC A2283518 */ sb $t0, 0x3518($s1)
|
||||
glabel L800DFAB0
|
||||
/* B56C50 800DFAB0 8E22351C */ lw $v0, 0x351c($s1)
|
||||
/* B56C54 800DFAB4 8FAA0024 */ lw $t2, 0x24($sp)
|
||||
/* B56C58 800DFAB8 240C0002 */ li $t4, 2
|
||||
/* B56C5C 800DFABC 10400006 */ beqz $v0, .L800DFAD8
|
||||
/* B56C60 800DFAC0 00000000 */ nop
|
||||
/* B56C64 800DFAC4 2449FFFF */ addiu $t1, $v0, -1
|
||||
/* B56C68 800DFAC8 0C037DF1 */ jal func_800DF7C4
|
||||
/* B56C6C 800DFACC AE29351C */ sw $t1, 0x351c($s1)
|
||||
/* B56C70 800DFAD0 1000003E */ b .L800DFBCC
|
||||
/* B56C74 800DFAD4 922F3518 */ lbu $t7, 0x3518($s1)
|
||||
.L800DFAD8:
|
||||
/* B56C78 800DFAD8 018A001A */ div $zero, $t4, $t2
|
||||
/* B56C7C 800DFADC 92223518 */ lbu $v0, 0x3518($s1)
|
||||
/* B56C80 800DFAE0 00005812 */ mflo $t3
|
||||
/* B56C84 800DFAE4 AE2B351C */ sw $t3, 0x351c($s1)
|
||||
/* B56C88 800DFAE8 15400002 */ bnez $t2, .L800DFAF4
|
||||
/* B56C8C 800DFAEC 00000000 */ nop
|
||||
/* B56C90 800DFAF0 0007000D */ break 7
|
||||
.L800DFAF4:
|
||||
/* B56C94 800DFAF4 2401FFFF */ li $at, -1
|
||||
/* B56C98 800DFAF8 15410004 */ bne $t2, $at, .L800DFB0C
|
||||
/* B56C9C 800DFAFC 3C018000 */ lui $at, 0x8000
|
||||
/* B56CA0 800DFB00 15810002 */ bne $t4, $at, .L800DFB0C
|
||||
/* B56CA4 800DFB04 00000000 */ nop
|
||||
/* B56CA8 800DFB08 0006000D */ break 6
|
||||
.L800DFB0C:
|
||||
/* B56CAC 800DFB0C 244DFFFF */ addiu $t5, $v0, -1
|
||||
/* B56CB0 800DFB10 1000002D */ b .L800DFBC8
|
||||
/* B56CB4 800DFB14 A22D3518 */ sb $t5, 0x3518($s1)
|
||||
glabel L800DFB18
|
||||
/* B56CB8 800DFB18 0C037E22 */ jal func_800DF888
|
||||
/* B56CBC 800DFB1C 00000000 */ nop
|
||||
/* B56CC0 800DFB20 8E22351C */ lw $v0, 0x351c($s1)
|
||||
/* B56CC4 800DFB24 10400003 */ beqz $v0, .L800DFB34
|
||||
/* B56CC8 800DFB28 244EFFFF */ addiu $t6, $v0, -1
|
||||
/* B56CCC 800DFB2C 10000026 */ b .L800DFBC8
|
||||
/* B56CD0 800DFB30 AE2E351C */ sw $t6, 0x351c($s1)
|
||||
.L800DFB34:
|
||||
/* B56CD4 800DFB34 92223518 */ lbu $v0, 0x3518($s1)
|
||||
/* B56CD8 800DFB38 2458FFFF */ addiu $t8, $v0, -1
|
||||
/* B56CDC 800DFB3C 0C03832F */ jal func_800E0CBC
|
||||
/* B56CE0 800DFB40 A2383518 */ sb $t8, 0x3518($s1)
|
||||
/* B56CE4 800DFB44 0C038452 */ jal func_800E1148
|
||||
/* B56CE8 800DFB48 00000000 */ nop
|
||||
/* B56CEC 800DFB4C 1000001F */ b .L800DFBCC
|
||||
/* B56CF0 800DFB50 922F3518 */ lbu $t7, 0x3518($s1)
|
||||
glabel L800DFB54
|
||||
/* B56CF4 800DFB54 0C037EFE */ jal func_800DFBF8
|
||||
/* B56CF8 800DFB58 00000000 */ nop
|
||||
/* B56CFC 800DFB5C 3C0F8017 */ lui $t7, %hi(gAudioContext)
|
||||
/* B56D00 800DFB60 25E3F180 */ addiu $v1, $t7, %lo(gAudioContext)
|
||||
/* B56D04 800DFB64 3C078017 */ lui $a3, %hi(gAudioContext+0xc) # $a3, 0x8017
|
||||
/* B56D08 800DFB68 A2203518 */ sb $zero, 0x3518($s1)
|
||||
/* B56D0C 800DFB6C 24E7F18C */ addiu $a3, %lo(gAudioContext+0xc) # addiu $a3, $a3, -0xe74
|
||||
/* B56D10 800DFB70 00603025 */ move $a2, $v1
|
||||
/* B56D14 800DFB74 24040B00 */ li $a0, 2816
|
||||
.L800DFB78:
|
||||
/* B56D18 800DFB78 86392850 */ lh $t9, 0x2850($s1)
|
||||
/* B56D1C 800DFB7C 00001025 */ move $v0, $zero
|
||||
/* B56D20 800DFB80 A4D92974 */ sh $t9, 0x2974($a2)
|
||||
.L800DFB84:
|
||||
/* B56D24 800DFB84 8C682968 */ lw $t0, 0x2968($v1)
|
||||
/* B56D28 800DFB88 01024821 */ addu $t1, $t0, $v0
|
||||
/* B56D2C 800DFB8C A5200000 */ sh $zero, ($t1)
|
||||
/* B56D30 800DFB90 8C6C2968 */ lw $t4, 0x2968($v1)
|
||||
/* B56D34 800DFB94 01825021 */ addu $t2, $t4, $v0
|
||||
/* B56D38 800DFB98 A5400002 */ sh $zero, 2($t2)
|
||||
/* B56D3C 800DFB9C 8C6B2968 */ lw $t3, 0x2968($v1)
|
||||
/* B56D40 800DFBA0 01626821 */ addu $t5, $t3, $v0
|
||||
/* B56D44 800DFBA4 A5A00004 */ sh $zero, 4($t5)
|
||||
/* B56D48 800DFBA8 8C6E2968 */ lw $t6, 0x2968($v1)
|
||||
/* B56D4C 800DFBAC 01C2C021 */ addu $t8, $t6, $v0
|
||||
/* B56D50 800DFBB0 24420008 */ addiu $v0, $v0, 8
|
||||
/* B56D54 800DFBB4 1444FFF3 */ bne $v0, $a0, .L800DFB84
|
||||
/* B56D58 800DFBB8 A7000006 */ sh $zero, 6($t8)
|
||||
/* B56D5C 800DFBBC 24630004 */ addiu $v1, $v1, 4
|
||||
/* B56D60 800DFBC0 1467FFED */ bne $v1, $a3, .L800DFB78
|
||||
/* B56D64 800DFBC4 24C60002 */ addiu $a2, $a2, 2
|
||||
.L800DFBC8:
|
||||
/* B56D68 800DFBC8 922F3518 */ lbu $t7, 0x3518($s1)
|
||||
.L800DFBCC:
|
||||
/* B56D6C 800DFBCC 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* B56D70 800DFBD0 24020001 */ li $v0, 1
|
||||
/* B56D74 800DFBD4 29E10003 */ slti $at, $t7, 3
|
||||
/* B56D78 800DFBD8 10200003 */ beqz $at, .L800DFBE8
|
||||
/* B56D7C 800DFBDC 00000000 */ nop
|
||||
/* B56D80 800DFBE0 10000001 */ b .L800DFBE8
|
||||
/* B56D84 800DFBE4 00001025 */ move $v0, $zero
|
||||
.L800DFBE8:
|
||||
/* B56D88 800DFBE8 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* B56D8C 800DFBEC 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* B56D90 800DFBF0 03E00008 */ jr $ra
|
||||
/* B56D94 800DFBF4 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
@@ -9,8 +9,8 @@ glabel func_800DFBF8
|
||||
/* B56DA0 800DFC00 3C168017 */ lui $s6, %hi(gAudioContext) # $s6, 0x8017
|
||||
/* B56DA4 800DFC04 26D6F180 */ addiu $s6, %lo(gAudioContext) # addiu $s6, $s6, -0xe80
|
||||
/* B56DA8 800DFC08 92CE3519 */ lbu $t6, 0x3519($s6)
|
||||
/* B56DAC 800DFC0C 3C188013 */ lui $t8, %hi(D_801337C8) # $t8, 0x8013
|
||||
/* B56DB0 800DFC10 271837C8 */ addiu $t8, %lo(D_801337C8) # addiu $t8, $t8, 0x37c8
|
||||
/* B56DAC 800DFC0C 3C188013 */ lui $t8, %hi(gAudioSessionPresets) # $t8, 0x8013
|
||||
/* B56DB0 800DFC10 271837C8 */ addiu $t8, %lo(gAudioSessionPresets) # addiu $t8, $t8, 0x37c8
|
||||
/* B56DB4 800DFC14 000E78C0 */ sll $t7, $t6, 3
|
||||
/* B56DB8 800DFC18 01EE7823 */ subu $t7, $t7, $t6
|
||||
/* B56DBC 800DFC1C 000F78C0 */ sll $t7, $t7, 3
|
||||
@@ -120,10 +120,10 @@ glabel func_800DFBF8
|
||||
/* B56F4C 800DFDAC A6D9285C */ sh $t9, 0x285c($s6)
|
||||
.L800DFDB0:
|
||||
/* B56F50 800DFDB0 950A0014 */ lhu $t2, 0x14($t0)
|
||||
/* B56F54 800DFDB4 3C0B8015 */ lui $t3, %hi(D_8014A6C0+2) # $t3, 0x8015
|
||||
/* B56F54 800DFDB4 3C0B8015 */ lui $t3, %hi(gTatumsPerBeat) # $t3, 0x8015
|
||||
/* B56F58 800DFDB8 3C018015 */ lui $at, %hi(D_80149410)
|
||||
/* B56F5C 800DFDBC A6CA0002 */ sh $t2, 2($s6)
|
||||
/* B56F60 800DFDC0 856BA6C2 */ lh $t3, %lo(D_8014A6C0+2)($t3)
|
||||
/* B56F60 800DFDC0 856BA6C2 */ lh $t3, %lo(gTatumsPerBeat)($t3)
|
||||
/* B56F64 800DFDC4 C4329410 */ lwc1 $f18, %lo(D_80149410)($at)
|
||||
/* B56F68 800DFDC8 C6D02960 */ lwc1 $f16, 0x2960($s6)
|
||||
/* B56F6C 800DFDCC 448B2000 */ mtc1 $t3, $f4
|
||||
@@ -281,7 +281,7 @@ glabel func_800DFBF8
|
||||
/* B571B4 800E0014 8C4F002C */ lw $t7, 0x2c($v0)
|
||||
/* B571B8 800E0018 0C037A07 */ jal Audio_TemporaryPoolsInit
|
||||
/* B571BC 800E001C AECF3434 */ sw $t7, 0x3434($s6)
|
||||
/* B571C0 800E0020 0C0377E0 */ jal func_800DDF80
|
||||
/* B571C0 800E0020 0C0377E0 */ jal Audio_ResetLoadStatus
|
||||
/* B571C4 800E0024 00000000 */ nop
|
||||
/* B571C8 800E0028 8EC52894 */ lw $a1, 0x2894($s6)
|
||||
/* B571CC 800E002C 3C138017 */ lui $s3, %hi(gAudioContext+0x29c0) # $s3, 0x8017
|
||||
@@ -312,7 +312,7 @@ glabel func_800DFBF8
|
||||
.L800E0090:
|
||||
/* B57230 800E0090 8EC52890 */ lw $a1, 0x2890($s6)
|
||||
/* B57234 800E0094 02602025 */ move $a0, $s3
|
||||
/* B57238 800E0098 0C0378D1 */ jal func_800DE344
|
||||
/* B57238 800E0098 0C0378D1 */ jal Audio_AllocDmaMemoryZeroed
|
||||
/* B5723C 800E009C 000528C0 */ sll $a1, $a1, 3
|
||||
/* B57240 800E00A0 26100004 */ addiu $s0, $s0, 4
|
||||
/* B57244 800E00A4 1611FFFA */ bne $s0, $s1, .L800E0090
|
||||
@@ -504,7 +504,7 @@ glabel func_800DFBF8
|
||||
/* B57508 800E0368 51A0000F */ beql $t5, $zero, .L800E03A8
|
||||
/* B5750C 800E036C AE400270 */ sw $zero, 0x270($s2)
|
||||
/* B57510 800E0370 02602025 */ move $a0, $s3
|
||||
/* B57514 800E0374 0C0378D1 */ jal func_800DE344
|
||||
/* B57514 800E0374 0C0378D1 */ jal Audio_AllocDmaMemoryZeroed
|
||||
/* B57518 800E0378 24050040 */ li $a1, 64
|
||||
/* B5751C 800E037C AE420278 */ sw $v0, 0x278($s2)
|
||||
/* B57520 800E0380 02602025 */ move $a0, $s3
|
||||
@@ -523,7 +523,7 @@ glabel func_800DFBF8
|
||||
/* B5754C 800E03AC 5180000F */ beql $t4, $zero, .L800E03EC
|
||||
/* B57550 800E03B0 AE400274 */ sw $zero, 0x274($s2)
|
||||
/* B57554 800E03B4 02602025 */ move $a0, $s3
|
||||
/* B57558 800E03B8 0C0378D1 */ jal func_800DE344
|
||||
/* B57558 800E03B8 0C0378D1 */ jal Audio_AllocDmaMemoryZeroed
|
||||
/* B5755C 800E03BC 24050040 */ li $a1, 64
|
||||
/* B57560 800E03C0 AE42027C */ sw $v0, 0x27c($s2)
|
||||
/* B57564 800E03C4 02602025 */ move $a0, $s3
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
glabel func_800E04E8
|
||||
/* B57688 800E04E8 3C038017 */ lui $v1, %hi(gAudioContext+0x2d5c) # $v1, 0x8017
|
||||
/* B5768C 800E04EC 8C631EDC */ lw $v1, %lo(gAudioContext+0x2d5c)($v1)
|
||||
/* B57690 800E04F0 00A03025 */ move $a2, $a1
|
||||
/* B57694 800E04F4 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
|
||||
/* B57698 800E04F8 1860000E */ blez $v1, .L800E0534
|
||||
/* B5769C 800E04FC 00001025 */ move $v0, $zero
|
||||
/* B576A0 800E0500 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
||||
.L800E0504:
|
||||
/* B576A4 800E0504 84AE2D68 */ lh $t6, 0x2d68($a1)
|
||||
/* B576A8 800E0508 24420001 */ addiu $v0, $v0, 1
|
||||
/* B576AC 800E050C 0043082A */ slt $at, $v0, $v1
|
||||
/* B576B0 800E0510 148E0006 */ bne $a0, $t6, .L800E052C
|
||||
/* B576B4 800E0514 00000000 */ nop
|
||||
/* B576B8 800E0518 84AF2D6A */ lh $t7, 0x2d6a($a1)
|
||||
/* B576BC 800E051C 14CF0003 */ bne $a2, $t7, .L800E052C
|
||||
/* B576C0 800E0520 00000000 */ nop
|
||||
/* B576C4 800E0524 03E00008 */ jr $ra
|
||||
/* B576C8 800E0528 8CA22D60 */ lw $v0, 0x2d60($a1)
|
||||
|
||||
.L800E052C:
|
||||
/* B576CC 800E052C 1420FFF5 */ bnez $at, .L800E0504
|
||||
/* B576D0 800E0530 24A5000C */ addiu $a1, $a1, 0xc
|
||||
.L800E0534:
|
||||
/* B576D4 800E0534 00001025 */ move $v0, $zero
|
||||
/* B576D8 800E0538 03E00008 */ jr $ra
|
||||
/* B576DC 800E053C 00000000 */ nop
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
glabel func_800E0540
|
||||
/* B576E0 800E0540 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* B576E4 800E0544 3C0E8017 */ lui $t6, %hi(gAudioContext+0x2d5c) # $t6, 0x8017
|
||||
/* B576E8 800E0548 8DCE1EDC */ lw $t6, %lo(gAudioContext+0x2d5c)($t6)
|
||||
/* B576EC 800E054C AFA40020 */ sw $a0, 0x20($sp)
|
||||
/* B576F0 800E0550 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B576F4 800E0554 AFA50024 */ sw $a1, 0x24($sp)
|
||||
/* B576F8 800E0558 3C048017 */ lui $a0, %hi(gAudioContext+0x2d50) # $a0, 0x8017
|
||||
/* B576FC 800E055C AFA60028 */ sw $a2, 0x28($sp)
|
||||
/* B57700 800E0560 24841ED0 */ addiu $a0, %lo(gAudioContext+0x2d50) # addiu $a0, $a0, 0x1ed0
|
||||
/* B57704 800E0564 00C02825 */ move $a1, $a2
|
||||
/* B57708 800E0568 0C0378F7 */ jal Audio_Alloc
|
||||
/* B5770C 800E056C AFAE0018 */ sw $t6, 0x18($sp)
|
||||
/* B57710 800E0570 8FAF0018 */ lw $t7, 0x18($sp)
|
||||
/* B57714 800E0574 3C198017 */ lui $t9, %hi(gAudioContext) # $t9, 0x8017
|
||||
/* B57718 800E0578 2739F180 */ addiu $t9, %lo(gAudioContext) # addiu $t9, $t9, -0xe80
|
||||
/* B5771C 800E057C 000FC080 */ sll $t8, $t7, 2
|
||||
/* B57720 800E0580 030FC023 */ subu $t8, $t8, $t7
|
||||
/* B57724 800E0584 0018C080 */ sll $t8, $t8, 2
|
||||
/* B57728 800E0588 03191821 */ addu $v1, $t8, $t9
|
||||
/* B5772C 800E058C 14400003 */ bnez $v0, .L800E059C
|
||||
/* B57730 800E0590 AC622D60 */ sw $v0, 0x2d60($v1)
|
||||
/* B57734 800E0594 10000007 */ b .L800E05B4
|
||||
/* B57738 800E0598 00001025 */ move $v0, $zero
|
||||
.L800E059C:
|
||||
/* B5773C 800E059C 8FA80020 */ lw $t0, 0x20($sp)
|
||||
/* B57740 800E05A0 8FA90024 */ lw $t1, 0x24($sp)
|
||||
/* B57744 800E05A4 8FAA0028 */ lw $t2, 0x28($sp)
|
||||
/* B57748 800E05A8 A4682D68 */ sh $t0, 0x2d68($v1)
|
||||
/* B5774C 800E05AC A4692D6A */ sh $t1, 0x2d6a($v1)
|
||||
/* B57750 800E05B0 AC6A2D64 */ sw $t2, 0x2d64($v1)
|
||||
.L800E05B4:
|
||||
/* B57754 800E05B4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B57758 800E05B8 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* B5775C 800E05BC 03E00008 */ jr $ra
|
||||
/* B57760 800E05C0 00000000 */ nop
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
glabel func_800E05C4
|
||||
/* B57764 800E05C4 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B57768 800E05C8 8FAE0028 */ lw $t6, 0x28($sp)
|
||||
/* B5776C 800E05CC AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B57770 800E05D0 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* B57774 800E05D4 AFA60020 */ sw $a2, 0x20($sp)
|
||||
/* B57778 800E05D8 15C00005 */ bnez $t6, .L800E05F0
|
||||
/* B5777C 800E05DC AFA70024 */ sw $a3, 0x24($sp)
|
||||
/* B57780 800E05E0 0C0381B3 */ jal func_800E06CC
|
||||
/* B57784 800E05E4 00000000 */ nop
|
||||
/* B57788 800E05E8 10000004 */ b .L800E05FC
|
||||
/* B5778C 800E05EC 00401825 */ move $v1, $v0
|
||||
.L800E05F0:
|
||||
/* B57790 800E05F0 0C0382FE */ jal func_800E0BF8
|
||||
/* B57794 800E05F4 00000000 */ nop
|
||||
/* B57798 800E05F8 00401825 */ move $v1, $v0
|
||||
.L800E05FC:
|
||||
/* B5779C 800E05FC 10400008 */ beqz $v0, .L800E0620
|
||||
/* B577A0 800E0600 8FAF001C */ lw $t7, 0x1c($sp)
|
||||
/* B577A4 800E0604 A06F0002 */ sb $t7, 2($v1)
|
||||
/* B577A8 800E0608 8FB80020 */ lw $t8, 0x20($sp)
|
||||
/* B577AC 800E060C 8C620008 */ lw $v0, 8($v1)
|
||||
/* B577B0 800E0610 AC78000C */ sw $t8, 0xc($v1)
|
||||
/* B577B4 800E0614 83B90027 */ lb $t9, 0x27($sp)
|
||||
/* B577B8 800E0618 10000002 */ b .L800E0624
|
||||
/* B577BC 800E061C A0790001 */ sb $t9, 1($v1)
|
||||
.L800E0620:
|
||||
/* B577C0 800E0620 00001025 */ move $v0, $zero
|
||||
.L800E0624:
|
||||
/* B577C4 800E0624 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B577C8 800E0628 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B577CC 800E062C 03E00008 */ jr $ra
|
||||
/* B577D0 800E0630 00000000 */ nop
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
glabel func_800E0634
|
||||
/* B577D4 800E0634 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B577D8 800E0638 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B577DC 800E063C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B577E0 800E0640 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* B577E4 800E0644 3C048017 */ lui $a0, %hi(gAudioContext+0x29c0) # $a0, 0x8017
|
||||
/* B577E8 800E0648 24841B40 */ addiu $a0, %lo(gAudioContext+0x29c0) # addiu $a0, $a0, 0x1b40
|
||||
/* B577EC 800E064C 0C0378AC */ jal func_800DE2B0
|
||||
/* B577F0 800E0650 8FA50018 */ lw $a1, 0x18($sp)
|
||||
/* B577F4 800E0654 14400004 */ bnez $v0, .L800E0668
|
||||
/* B577F8 800E0658 00402825 */ move $a1, $v0
|
||||
/* B577FC 800E065C 3C018017 */ lui $at, %hi(gAudioContext+0x2ee8) # $at, 0x8017
|
||||
/* B57800 800E0660 10000005 */ b .L800E0678
|
||||
/* B57804 800E0664 AC202068 */ sw $zero, %lo(gAudioContext+0x2ee8)($at)
|
||||
.L800E0668:
|
||||
/* B57808 800E0668 3C048017 */ lui $a0, %hi(gAudioContext+0x2ee0) # $a0, 0x8017
|
||||
/* B5780C 800E066C 24842060 */ addiu $a0, %lo(gAudioContext+0x2ee0) # addiu $a0, $a0, 0x2060
|
||||
/* B57810 800E0670 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B57814 800E0674 8FA60018 */ lw $a2, 0x18($sp)
|
||||
.L800E0678:
|
||||
/* B57818 800E0678 3C048017 */ lui $a0, %hi(gAudioContext+0x29c0) # $a0, 0x8017
|
||||
/* B5781C 800E067C 24841B40 */ addiu $a0, %lo(gAudioContext+0x29c0) # addiu $a0, $a0, 0x1b40
|
||||
/* B57820 800E0680 0C0378AC */ jal func_800DE2B0
|
||||
/* B57824 800E0684 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* B57828 800E0688 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
|
||||
/* B5782C 800E068C 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
|
||||
/* B57830 800E0690 14400003 */ bnez $v0, .L800E06A0
|
||||
/* B57834 800E0694 00402825 */ move $a1, $v0
|
||||
/* B57838 800E0698 10000007 */ b .L800E06B8
|
||||
/* B5783C 800E069C AC60317C */ sw $zero, 0x317c($v1)
|
||||
.L800E06A0:
|
||||
/* B57840 800E06A0 3C048017 */ lui $a0, %hi(gAudioContext+0x3174) # $a0, 0x8017
|
||||
/* B57844 800E06A4 248422F4 */ addiu $a0, %lo(gAudioContext+0x3174) # addiu $a0, $a0, 0x22f4
|
||||
/* B57848 800E06A8 0C03790D */ jal Audio_SoundAllocPoolInit
|
||||
/* B5784C 800E06AC 8FA6001C */ lw $a2, 0x1c($sp)
|
||||
/* B57850 800E06B0 3C038017 */ lui $v1, %hi(gAudioContext) # $v1, 0x8017
|
||||
/* B57854 800E06B4 2463F180 */ addiu $v1, %lo(gAudioContext) # addiu $v1, $v1, -0xe80
|
||||
.L800E06B8:
|
||||
/* B57858 800E06B8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B5785C 800E06BC AC603170 */ sw $zero, 0x3170($v1)
|
||||
/* B57860 800E06C0 AC603404 */ sw $zero, 0x3404($v1)
|
||||
/* B57864 800E06C4 03E00008 */ jr $ra
|
||||
/* B57868 800E06C8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
|
||||
@@ -1,185 +0,0 @@
|
||||
glabel func_800E06CC
|
||||
/* B5786C 800E06CC 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* B57870 800E06D0 AFB6002C */ sw $s6, 0x2c($sp)
|
||||
/* B57874 800E06D4 AFA40048 */ sw $a0, 0x48($sp)
|
||||
/* B57878 800E06D8 3C048017 */ lui $a0, %hi(gAudioContext+0x3174) # $a0, 0x8017
|
||||
/* B5787C 800E06DC 3C168017 */ lui $s6, %hi(gAudioContext) # $s6, 0x8017
|
||||
/* B57880 800E06E0 26D6F180 */ addiu $s6, %lo(gAudioContext) # addiu $s6, $s6, -0xe80
|
||||
/* B57884 800E06E4 248422F4 */ addiu $a0, %lo(gAudioContext+0x3174) # addiu $a0, $a0, 0x22f4
|
||||
/* B57888 800E06E8 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* B5788C 800E06EC AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* B57890 800E06F0 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* B57894 800E06F4 AFB70030 */ sw $s7, 0x30($sp)
|
||||
/* B57898 800E06F8 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* B5789C 800E06FC AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* B578A0 800E0700 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* B578A4 800E0704 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* B578A8 800E0708 0080A025 */ move $s4, $a0
|
||||
/* B578AC 800E070C 8ED33178 */ lw $s3, 0x3178($s6)
|
||||
/* B578B0 800E0710 0C0378F7 */ jal Audio_Alloc
|
||||
/* B578B4 800E0714 8FA50048 */ lw $a1, 0x48($sp)
|
||||
/* B578B8 800E0718 14400013 */ bnez $v0, .L800E0768
|
||||
/* B578BC 800E071C AFA2003C */ sw $v0, 0x3c($sp)
|
||||
/* B578C0 800E0720 3C0E8017 */ lui $t6, %hi(gAudioContext+0x3174) # $t6, 0x8017
|
||||
/* B578C4 800E0724 8DCE22F4 */ lw $t6, %lo(gAudioContext+0x3174)($t6)
|
||||
/* B578C8 800E0728 3C108017 */ lui $s0, %hi(gAudioContext+0x3178) # $s0, 0x8017
|
||||
/* B578CC 800E072C 8E1022F8 */ lw $s0, %lo(gAudioContext+0x3178)($s0)
|
||||
/* B578D0 800E0730 3C018017 */ lui $at, %hi(gAudioContext+0x3178) # $at, 0x8017
|
||||
/* B578D4 800E0734 3C048017 */ lui $a0, %hi(gAudioContext+0x3174) # $a0, 0x8017
|
||||
/* B578D8 800E0738 248422F4 */ addiu $a0, %lo(gAudioContext+0x3174) # addiu $a0, $a0, 0x22f4
|
||||
/* B578DC 800E073C 8FA50048 */ lw $a1, 0x48($sp)
|
||||
/* B578E0 800E0740 0C0378F7 */ jal Audio_Alloc
|
||||
/* B578E4 800E0744 AC2E22F8 */ sw $t6, %lo(gAudioContext+0x3178)($at)
|
||||
/* B578E8 800E0748 14400005 */ bnez $v0, .L800E0760
|
||||
/* B578EC 800E074C AFA2003C */ sw $v0, 0x3c($sp)
|
||||
/* B578F0 800E0750 3C018017 */ lui $at, %hi(gAudioContext+0x3178) # $at, 0x8017
|
||||
/* B578F4 800E0754 AC3022F8 */ sw $s0, %lo(gAudioContext+0x3178)($at)
|
||||
/* B578F8 800E0758 10000077 */ b .L800E0938
|
||||
/* B578FC 800E075C 00001025 */ move $v0, $zero
|
||||
.L800E0760:
|
||||
/* B57900 800E0760 3C138017 */ lui $s3, %hi(gAudioContext+0x3174) # $s3, 0x8017
|
||||
/* B57904 800E0764 8E7322F4 */ lw $s3, %lo(gAudioContext+0x3174)($s3)
|
||||
.L800E0768:
|
||||
/* B57908 800E0768 8EC7176C */ lw $a3, 0x176c($s6)
|
||||
/* B5790C 800E076C 3C128017 */ lui $s2, %hi(gAudioContext+0x3178) # $s2, 0x8017
|
||||
/* B57910 800E0770 8E5222F8 */ lw $s2, %lo(gAudioContext+0x3178)($s2)
|
||||
/* B57914 800E0774 2415FFFF */ li $s5, -1
|
||||
/* B57918 800E0778 18E00034 */ blez $a3, .L800E084C
|
||||
/* B5791C 800E077C 00008825 */ move $s1, $zero
|
||||
/* B57920 800E0780 3C068017 */ lui $a2, %hi(gAudioContext) # $a2, 0x8017
|
||||
/* B57924 800E0784 24C6F180 */ addiu $a2, %lo(gAudioContext) # addiu $a2, $a2, -0xe80
|
||||
/* B57928 800E0788 24170001 */ li $s7, 1
|
||||
/* B5792C 800E078C 8CCF0D78 */ lw $t7, 0xd78($a2)
|
||||
.L800E0790:
|
||||
/* B57930 800E0790 3C0E8017 */ lui $t6, %hi(gAudioContext) # $t6, 0x8017
|
||||
/* B57934 800E0794 25CEF180 */ addiu $t6, %lo(gAudioContext) # addiu $t6, $t6, -0xe80
|
||||
/* B57938 800E0798 15E00023 */ bnez $t7, .L800E0828
|
||||
/* B5793C 800E079C 24C40D68 */ addiu $a0, $a2, 0xd68
|
||||
/* B57940 800E07A0 8C980004 */ lw $t8, 4($a0)
|
||||
/* B57944 800E07A4 8C820008 */ lw $v0, 8($a0)
|
||||
/* B57948 800E07A8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
||||
/* B5794C 800E07AC 8F190000 */ lw $t9, ($t8)
|
||||
/* B57950 800E07B0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
||||
/* B57954 800E07B4 00401825 */ move $v1, $v0
|
||||
/* B57958 800E07B8 03214024 */ and $t0, $t9, $at
|
||||
/* B5795C 800E07BC 00482821 */ addu $a1, $v0, $t0
|
||||
/* B57960 800E07C0 24A5FFFF */ addiu $a1, $a1, -1
|
||||
/* B57964 800E07C4 00B3082B */ sltu $at, $a1, $s3
|
||||
/* B57968 800E07C8 10200009 */ beqz $at, .L800E07F0
|
||||
/* B5796C 800E07CC 0053082B */ sltu $at, $v0, $s3
|
||||
/* B57970 800E07D0 10200007 */ beqz $at, .L800E07F0
|
||||
/* B57974 800E07D4 00074880 */ sll $t1, $a3, 2
|
||||
/* B57978 800E07D8 01274821 */ addu $t1, $t1, $a3
|
||||
/* B5797C 800E07DC 3C0A8017 */ lui $t2, %hi(gAudioContext) # $t2, 0x8017
|
||||
/* B57980 800E07E0 254AF180 */ addiu $t2, %lo(gAudioContext) # addiu $t2, $t2, -0xe80
|
||||
/* B57984 800E07E4 00094880 */ sll $t1, $t1, 2
|
||||
/* B57988 800E07E8 10000013 */ b .L800E0838
|
||||
/* B5798C 800E07EC 012A1021 */ addu $v0, $t1, $t2
|
||||
.L800E07F0:
|
||||
/* B57990 800E07F0 00B2082B */ sltu $at, $a1, $s2
|
||||
/* B57994 800E07F4 14200009 */ bnez $at, .L800E081C
|
||||
/* B57998 800E07F8 0072082B */ sltu $at, $v1, $s2
|
||||
/* B5799C 800E07FC 14200007 */ bnez $at, .L800E081C
|
||||
/* B579A0 800E0800 00075880 */ sll $t3, $a3, 2
|
||||
/* B579A4 800E0804 01675821 */ addu $t3, $t3, $a3
|
||||
/* B579A8 800E0808 3C0C8017 */ lui $t4, %hi(gAudioContext) # $t4, 0x8017
|
||||
/* B579AC 800E080C 258CF180 */ addiu $t4, %lo(gAudioContext) # addiu $t4, $t4, -0xe80
|
||||
/* B579B0 800E0810 000B5880 */ sll $t3, $t3, 2
|
||||
/* B579B4 800E0814 10000008 */ b .L800E0838
|
||||
/* B579B8 800E0818 016C1021 */ addu $v0, $t3, $t4
|
||||
.L800E081C:
|
||||
/* B579BC 800E081C AC970010 */ sw $s7, 0x10($a0)
|
||||
/* B579C0 800E0820 3C078017 */ lui $a3, %hi(gAudioContext+0x176c) # $a3, 0x8017
|
||||
/* B579C4 800E0824 8CE708EC */ lw $a3, %lo(gAudioContext+0x176c)($a3)
|
||||
.L800E0828:
|
||||
/* B579C8 800E0828 00076880 */ sll $t5, $a3, 2
|
||||
/* B579CC 800E082C 01A76821 */ addu $t5, $t5, $a3
|
||||
/* B579D0 800E0830 000D6880 */ sll $t5, $t5, 2
|
||||
/* B579D4 800E0834 01AE1021 */ addu $v0, $t5, $t6
|
||||
.L800E0838:
|
||||
/* B579D8 800E0838 24C60014 */ addiu $a2, $a2, 0x14
|
||||
/* B579DC 800E083C 00C2082B */ sltu $at, $a2, $v0
|
||||
/* B579E0 800E0840 5420FFD3 */ bnezl $at, .L800E0790
|
||||
/* B579E4 800E0844 8CCF0D78 */ lw $t7, 0xd78($a2)
|
||||
/* B579E8 800E0848 00008825 */ move $s1, $zero
|
||||
.L800E084C:
|
||||
/* B579EC 800E084C 3C0F8017 */ lui $t7, %hi(gAudioContext+0x3404) # $t7, 0x8017
|
||||
/* B579F0 800E0850 8DEF2584 */ lw $t7, %lo(gAudioContext+0x3404)($t7)
|
||||
/* B579F4 800E0854 3C108017 */ lui $s0, %hi(gAudioContext+0x3174) # $s0, 0x8017
|
||||
/* B579F8 800E0858 24170001 */ li $s7, 1
|
||||
/* B579FC 800E085C 19E00023 */ blez $t7, .L800E08EC
|
||||
/* B57A00 800E0860 261022F4 */ addiu $s0, %lo(gAudioContext+0x3174) # addiu $s0, $s0, 0x22f4
|
||||
/* B57A04 800E0864 2416FFFF */ li $s6, -1
|
||||
.L800E0868:
|
||||
/* B57A08 800E0868 82180010 */ lb $t8, 0x10($s0)
|
||||
/* B57A0C 800E086C 57000004 */ bnezl $t8, .L800E0880
|
||||
/* B57A10 800E0870 8E030018 */ lw $v1, 0x18($s0)
|
||||
/* B57A14 800E0874 10000019 */ b .L800E08DC
|
||||
/* B57A18 800E0878 8E820290 */ lw $v0, 0x290($s4)
|
||||
/* B57A1C 800E087C 8E030018 */ lw $v1, 0x18($s0)
|
||||
.L800E0880:
|
||||
/* B57A20 800E0880 8E190020 */ lw $t9, 0x20($s0)
|
||||
/* B57A24 800E0884 03232821 */ addu $a1, $t9, $v1
|
||||
/* B57A28 800E0888 24A5FFFF */ addiu $a1, $a1, -1
|
||||
/* B57A2C 800E088C 00B3082B */ sltu $at, $a1, $s3
|
||||
/* B57A30 800E0890 10200005 */ beqz $at, .L800E08A8
|
||||
/* B57A34 800E0894 0073082B */ sltu $at, $v1, $s3
|
||||
/* B57A38 800E0898 50200004 */ beql $at, $zero, .L800E08AC
|
||||
/* B57A3C 800E089C 00B2082B */ sltu $at, $a1, $s2
|
||||
/* B57A40 800E08A0 1000000E */ b .L800E08DC
|
||||
/* B57A44 800E08A4 8E820290 */ lw $v0, 0x290($s4)
|
||||
.L800E08A8:
|
||||
/* B57A48 800E08A8 00B2082B */ sltu $at, $a1, $s2
|
||||
.L800E08AC:
|
||||
/* B57A4C 800E08AC 14200005 */ bnez $at, .L800E08C4
|
||||
/* B57A50 800E08B0 0072082B */ sltu $at, $v1, $s2
|
||||
/* B57A54 800E08B4 14200003 */ bnez $at, .L800E08C4
|
||||
/* B57A58 800E08B8 00000000 */ nop
|
||||
/* B57A5C 800E08BC 10000007 */ b .L800E08DC
|
||||
/* B57A60 800E08C0 8E820290 */ lw $v0, 0x290($s4)
|
||||
.L800E08C4:
|
||||
/* B57A64 800E08C4 0C0382B6 */ jal func_800E0AD8
|
||||
/* B57A68 800E08C8 26040010 */ addiu $a0, $s0, 0x10
|
||||
/* B57A6C 800E08CC 56B60003 */ bnel $s5, $s6, .L800E08DC
|
||||
/* B57A70 800E08D0 8E820290 */ lw $v0, 0x290($s4)
|
||||
/* B57A74 800E08D4 0220A825 */ move $s5, $s1
|
||||
/* B57A78 800E08D8 8E820290 */ lw $v0, 0x290($s4)
|
||||
.L800E08DC:
|
||||
/* B57A7C 800E08DC 26310001 */ addiu $s1, $s1, 1
|
||||
/* B57A80 800E08E0 0222082A */ slt $at, $s1, $v0
|
||||
/* B57A84 800E08E4 1420FFE0 */ bnez $at, .L800E0868
|
||||
/* B57A88 800E08E8 26100014 */ addiu $s0, $s0, 0x14
|
||||
.L800E08EC:
|
||||
/* B57A8C 800E08EC 2416FFFF */ li $s6, -1
|
||||
/* B57A90 800E08F0 16B60006 */ bne $s5, $s6, .L800E090C
|
||||
/* B57A94 800E08F4 3C0B8017 */ lui $t3, %hi(gAudioContext+0x3174) # $t3, 0x8017
|
||||
/* B57A98 800E08F8 3C088017 */ lui $t0, %hi(gAudioContext+0x3404) # $t0, 0x8017
|
||||
/* B57A9C 800E08FC 8D152584 */ lw $s5, %lo(gAudioContext+0x3404)($t0)
|
||||
/* B57AA0 800E0900 3C018017 */ lui $at, %hi(gAudioContext+0x3404) # $at, 0x8017
|
||||
/* B57AA4 800E0904 26A90001 */ addiu $t1, $s5, 1
|
||||
/* B57AA8 800E0908 AC292584 */ sw $t1, %lo(gAudioContext+0x3404)($at)
|
||||
.L800E090C:
|
||||
/* B57AAC 800E090C 00155080 */ sll $t2, $s5, 2
|
||||
/* B57AB0 800E0910 01555021 */ addu $t2, $t2, $s5
|
||||
/* B57AB4 800E0914 000A5080 */ sll $t2, $t2, 2
|
||||
/* B57AB8 800E0918 256B22F4 */ addiu $t3, %lo(gAudioContext+0x3174) # addiu $t3, $t3, 0x22f4
|
||||
/* B57ABC 800E091C 014B1821 */ addu $v1, $t2, $t3
|
||||
/* B57AC0 800E0920 8FAC003C */ lw $t4, 0x3c($sp)
|
||||
/* B57AC4 800E0924 8FAD0048 */ lw $t5, 0x48($sp)
|
||||
/* B57AC8 800E0928 A0770010 */ sb $s7, 0x10($v1)
|
||||
/* B57ACC 800E092C 24620010 */ addiu $v0, $v1, 0x10
|
||||
/* B57AD0 800E0930 AC6C0018 */ sw $t4, 0x18($v1)
|
||||
/* B57AD4 800E0934 AC6D0020 */ sw $t5, 0x20($v1)
|
||||
.L800E0938:
|
||||
/* B57AD8 800E0938 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* B57ADC 800E093C 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* B57AE0 800E0940 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* B57AE4 800E0944 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* B57AE8 800E0948 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* B57AEC 800E094C 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* B57AF0 800E0950 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* B57AF4 800E0954 8FB6002C */ lw $s6, 0x2c($sp)
|
||||
/* B57AF8 800E0958 8FB70030 */ lw $s7, 0x30($sp)
|
||||
/* B57AFC 800E095C 03E00008 */ jr $ra
|
||||
/* B57B00 800E0960 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
glabel func_800E0964
|
||||
/* B57B04 800E0964 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* B57B08 800E0968 AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* B57B0C 800E096C 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
|
||||
/* B57B10 800E0970 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
|
||||
/* B57B14 800E0974 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* B57B18 800E0978 8EAE2844 */ lw $t6, 0x2844($s5)
|
||||
/* B57B1C 800E097C 00059880 */ sll $s3, $a1, 2
|
||||
/* B57B20 800E0980 02659821 */ addu $s3, $s3, $a1
|
||||
/* B57B24 800E0984 00139880 */ sll $s3, $s3, 2
|
||||
/* B57B28 800E0988 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* B57B2C 800E098C AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* B57B30 800E0990 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* B57B34 800E0994 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* B57B38 800E0998 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* B57B3C 800E099C AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B57B40 800E09A0 01D31021 */ addu $v0, $t6, $s3
|
||||
/* B57B44 800E09A4 904F0000 */ lbu $t7, ($v0)
|
||||
/* B57B48 800E09A8 00809025 */ move $s2, $a0
|
||||
/* B57B4C 800E09AC 00A0A025 */ move $s4, $a1
|
||||
/* B57B50 800E09B0 19E0001D */ blez $t7, .L800E0A28
|
||||
/* B57B54 800E09B4 00008825 */ move $s1, $zero
|
||||
/* B57B58 800E09B8 2416007F */ li $s6, 127
|
||||
/* B57B5C 800E09BC 02802025 */ move $a0, $s4
|
||||
.L800E09C0:
|
||||
/* B57B60 800E09C0 0C039D26 */ jal Audio_GetInstrumentInner
|
||||
/* B57B64 800E09C4 02202825 */ move $a1, $s1
|
||||
/* B57B68 800E09C8 10400010 */ beqz $v0, .L800E0A0C
|
||||
/* B57B6C 800E09CC 00408025 */ move $s0, $v0
|
||||
/* B57B70 800E09D0 90580001 */ lbu $t8, 1($v0)
|
||||
/* B57B74 800E09D4 02402025 */ move $a0, $s2
|
||||
/* B57B78 800E09D8 53000004 */ beql $t8, $zero, .L800E09EC
|
||||
/* B57B7C 800E09DC 92190002 */ lbu $t9, 2($s0)
|
||||
/* B57B80 800E09E0 0C0382ED */ jal func_800E0BB4
|
||||
/* B57B84 800E09E4 8C450008 */ lw $a1, 8($v0)
|
||||
/* B57B88 800E09E8 92190002 */ lbu $t9, 2($s0)
|
||||
.L800E09EC:
|
||||
/* B57B8C 800E09EC 02402025 */ move $a0, $s2
|
||||
/* B57B90 800E09F0 52D90004 */ beql $s6, $t9, .L800E0A04
|
||||
/* B57B94 800E09F4 02402025 */ move $a0, $s2
|
||||
/* B57B98 800E09F8 0C0382ED */ jal func_800E0BB4
|
||||
/* B57B9C 800E09FC 8E050018 */ lw $a1, 0x18($s0)
|
||||
/* B57BA0 800E0A00 02402025 */ move $a0, $s2
|
||||
.L800E0A04:
|
||||
/* B57BA4 800E0A04 0C0382ED */ jal func_800E0BB4
|
||||
/* B57BA8 800E0A08 8E050010 */ lw $a1, 0x10($s0)
|
||||
.L800E0A0C:
|
||||
/* B57BAC 800E0A0C 8EA82844 */ lw $t0, 0x2844($s5)
|
||||
/* B57BB0 800E0A10 26310001 */ addiu $s1, $s1, 1
|
||||
/* B57BB4 800E0A14 01131021 */ addu $v0, $t0, $s3
|
||||
/* B57BB8 800E0A18 90490000 */ lbu $t1, ($v0)
|
||||
/* B57BBC 800E0A1C 0229082A */ slt $at, $s1, $t1
|
||||
/* B57BC0 800E0A20 5420FFE7 */ bnezl $at, .L800E09C0
|
||||
/* B57BC4 800E0A24 02802025 */ move $a0, $s4
|
||||
.L800E0A28:
|
||||
/* B57BC8 800E0A28 904A0001 */ lbu $t2, 1($v0)
|
||||
/* B57BCC 800E0A2C 00008025 */ move $s0, $zero
|
||||
/* B57BD0 800E0A30 1940000E */ blez $t2, .L800E0A6C
|
||||
/* B57BD4 800E0A34 02802025 */ move $a0, $s4
|
||||
.L800E0A38:
|
||||
/* B57BD8 800E0A38 0C039D5B */ jal Audio_GetDrum
|
||||
/* B57BDC 800E0A3C 02002825 */ move $a1, $s0
|
||||
/* B57BE0 800E0A40 10400003 */ beqz $v0, .L800E0A50
|
||||
/* B57BE4 800E0A44 02402025 */ move $a0, $s2
|
||||
/* B57BE8 800E0A48 0C0382ED */ jal func_800E0BB4
|
||||
/* B57BEC 800E0A4C 8C450004 */ lw $a1, 4($v0)
|
||||
.L800E0A50:
|
||||
/* B57BF0 800E0A50 8EAB2844 */ lw $t3, 0x2844($s5)
|
||||
/* B57BF4 800E0A54 26100001 */ addiu $s0, $s0, 1
|
||||
/* B57BF8 800E0A58 01731021 */ addu $v0, $t3, $s3
|
||||
/* B57BFC 800E0A5C 904C0001 */ lbu $t4, 1($v0)
|
||||
/* B57C00 800E0A60 020C082A */ slt $at, $s0, $t4
|
||||
/* B57C04 800E0A64 5420FFF4 */ bnezl $at, .L800E0A38
|
||||
/* B57C08 800E0A68 02802025 */ move $a0, $s4
|
||||
.L800E0A6C:
|
||||
/* B57C0C 800E0A6C 944D0004 */ lhu $t5, 4($v0)
|
||||
/* B57C10 800E0A70 00008025 */ move $s0, $zero
|
||||
/* B57C14 800E0A74 19A0000E */ blez $t5, .L800E0AB0
|
||||
/* B57C18 800E0A78 02802025 */ move $a0, $s4
|
||||
.L800E0A7C:
|
||||
/* B57C1C 800E0A7C 0C039D94 */ jal Audio_GetUnkInstrument
|
||||
/* B57C20 800E0A80 02002825 */ move $a1, $s0
|
||||
/* B57C24 800E0A84 10400003 */ beqz $v0, .L800E0A94
|
||||
/* B57C28 800E0A88 02402025 */ move $a0, $s2
|
||||
/* B57C2C 800E0A8C 0C0382ED */ jal func_800E0BB4
|
||||
/* B57C30 800E0A90 8C450000 */ lw $a1, ($v0)
|
||||
.L800E0A94:
|
||||
/* B57C34 800E0A94 8EAE2844 */ lw $t6, 0x2844($s5)
|
||||
/* B57C38 800E0A98 26100001 */ addiu $s0, $s0, 1
|
||||
/* B57C3C 800E0A9C 01D37821 */ addu $t7, $t6, $s3
|
||||
/* B57C40 800E0AA0 95F80004 */ lhu $t8, 4($t7)
|
||||
/* B57C44 800E0AA4 0218082A */ slt $at, $s0, $t8
|
||||
/* B57C48 800E0AA8 5420FFF4 */ bnezl $at, .L800E0A7C
|
||||
/* B57C4C 800E0AAC 02802025 */ move $a0, $s4
|
||||
.L800E0AB0:
|
||||
/* B57C50 800E0AB0 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* B57C54 800E0AB4 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B57C58 800E0AB8 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* B57C5C 800E0ABC 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* B57C60 800E0AC0 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* B57C64 800E0AC4 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* B57C68 800E0AC8 8FB5002C */ lw $s5, 0x2c($sp)
|
||||
/* B57C6C 800E0ACC 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* B57C70 800E0AD0 03E00008 */ jr $ra
|
||||
/* B57C74 800E0AD4 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
glabel func_800E0AD8
|
||||
/* B57C78 800E0AD8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* B57C7C 800E0ADC AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* B57C80 800E0AE0 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
|
||||
/* B57C84 800E0AE4 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
|
||||
/* B57C88 800E0AE8 8EAE2834 */ lw $t6, 0x2834($s5)
|
||||
/* B57C8C 800E0AEC AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* B57C90 800E0AF0 AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* B57C94 800E0AF4 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* B57C98 800E0AF8 AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* B57C9C 800E0AFC AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* B57CA0 800E0B00 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* B57CA4 800E0B04 85D40000 */ lh $s4, ($t6)
|
||||
/* B57CA8 800E0B08 00809025 */ move $s2, $a0
|
||||
/* B57CAC 800E0B0C 00008025 */ move $s0, $zero
|
||||
/* B57CB0 800E0B10 1A80001F */ blez $s4, .L800E0B90
|
||||
/* B57CB4 800E0B14 00008825 */ move $s1, $zero
|
||||
/* B57CB8 800E0B18 241300FF */ li $s3, 255
|
||||
.L800E0B1C:
|
||||
/* B57CBC 800E0B1C 8EAF2844 */ lw $t7, 0x2844($s5)
|
||||
/* B57CC0 800E0B20 82450002 */ lb $a1, 2($s2)
|
||||
/* B57CC4 800E0B24 01F11021 */ addu $v0, $t7, $s1
|
||||
/* B57CC8 800E0B28 90430002 */ lbu $v1, 2($v0)
|
||||
/* B57CCC 800E0B2C 90440003 */ lbu $a0, 3($v0)
|
||||
/* B57CD0 800E0B30 10730003 */ beq $v1, $s3, .L800E0B40
|
||||
/* B57CD4 800E0B34 00000000 */ nop
|
||||
/* B57CD8 800E0B38 50650007 */ beql $v1, $a1, .L800E0B58
|
||||
/* B57CDC 800E0B3C 24040001 */ li $a0, 1
|
||||
.L800E0B40:
|
||||
/* B57CE0 800E0B40 10930003 */ beq $a0, $s3, .L800E0B50
|
||||
/* B57CE4 800E0B44 00000000 */ nop
|
||||
/* B57CE8 800E0B48 50850003 */ beql $a0, $a1, .L800E0B58
|
||||
/* B57CEC 800E0B4C 24040001 */ li $a0, 1
|
||||
.L800E0B50:
|
||||
/* B57CF0 800E0B50 14A0000C */ bnez $a1, .L800E0B84
|
||||
/* B57CF4 800E0B54 24040001 */ li $a0, 1
|
||||
.L800E0B58:
|
||||
/* B57CF8 800E0B58 24050002 */ li $a1, 2
|
||||
/* B57CFC 800E0B5C 0C037C1D */ jal func_800DF074
|
||||
/* B57D00 800E0B60 02003025 */ move $a2, $s0
|
||||
/* B57D04 800E0B64 50400008 */ beql $v0, $zero, .L800E0B88
|
||||
/* B57D08 800E0B68 26100001 */ addiu $s0, $s0, 1
|
||||
/* B57D0C 800E0B6C 0C03862C */ jal Audio_IsBankLoadComplete
|
||||
/* B57D10 800E0B70 02002025 */ move $a0, $s0
|
||||
/* B57D14 800E0B74 10400003 */ beqz $v0, .L800E0B84
|
||||
/* B57D18 800E0B78 02402025 */ move $a0, $s2
|
||||
/* B57D1C 800E0B7C 0C038259 */ jal func_800E0964
|
||||
/* B57D20 800E0B80 02002825 */ move $a1, $s0
|
||||
.L800E0B84:
|
||||
/* B57D24 800E0B84 26100001 */ addiu $s0, $s0, 1
|
||||
.L800E0B88:
|
||||
/* B57D28 800E0B88 1614FFE4 */ bne $s0, $s4, .L800E0B1C
|
||||
/* B57D2C 800E0B8C 26310014 */ addiu $s1, $s1, 0x14
|
||||
.L800E0B90:
|
||||
/* B57D30 800E0B90 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* B57D34 800E0B94 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* B57D38 800E0B98 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* B57D3C 800E0B9C 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* B57D40 800E0BA0 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* B57D44 800E0BA4 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* B57D48 800E0BA8 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* B57D4C 800E0BAC 03E00008 */ jr $ra
|
||||
/* B57D50 800E0BB0 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
glabel func_800E0BB4
|
||||
/* B57D54 800E0BB4 10A0000E */ beqz $a1, .L800E0BF0
|
||||
/* B57D58 800E0BB8 00000000 */ nop
|
||||
/* B57D5C 800E0BBC 8C8E0008 */ lw $t6, 8($a0)
|
||||
/* B57D60 800E0BC0 8CAF0004 */ lw $t7, 4($a1)
|
||||
/* B57D64 800E0BC4 15CF000A */ bne $t6, $t7, .L800E0BF0
|
||||
/* B57D68 800E0BC8 00000000 */ nop
|
||||
/* B57D6C 800E0BCC 8C98000C */ lw $t8, 0xc($a0)
|
||||
/* B57D70 800E0BD0 90AB0000 */ lbu $t3, ($a1)
|
||||
/* B57D74 800E0BD4 ACB80004 */ sw $t8, 4($a1)
|
||||
/* B57D78 800E0BD8 80880001 */ lb $t0, 1($a0)
|
||||
/* B57D7C 800E0BDC 316CFFF3 */ andi $t4, $t3, 0xfff3
|
||||
/* B57D80 800E0BE0 00084880 */ sll $t1, $t0, 2
|
||||
/* B57D84 800E0BE4 312A000C */ andi $t2, $t1, 0xc
|
||||
/* B57D88 800E0BE8 014C6825 */ or $t5, $t2, $t4
|
||||
/* B57D8C 800E0BEC A0AD0000 */ sb $t5, ($a1)
|
||||
.L800E0BF0:
|
||||
/* B57D90 800E0BF0 03E00008 */ jr $ra
|
||||
/* B57D94 800E0BF4 00000000 */ nop
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
glabel func_800E0BF8
|
||||
/* B57D98 800E0BF8 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B57D9C 800E0BFC AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* B57DA0 800E0C00 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B57DA4 800E0C04 3C048017 */ lui $a0, %hi(gAudioContext+0x2ee0) # $a0, 0x8017
|
||||
/* B57DA8 800E0C08 24842060 */ addiu $a0, %lo(gAudioContext+0x2ee0) # addiu $a0, $a0, 0x2060
|
||||
/* B57DAC 800E0C0C 0C0378F7 */ jal Audio_Alloc
|
||||
/* B57DB0 800E0C10 8FA50018 */ lw $a1, 0x18($sp)
|
||||
/* B57DB4 800E0C14 14400003 */ bnez $v0, .L800E0C24
|
||||
/* B57DB8 800E0C18 00402025 */ move $a0, $v0
|
||||
/* B57DBC 800E0C1C 10000014 */ b .L800E0C70
|
||||
/* B57DC0 800E0C20 00001025 */ move $v0, $zero
|
||||
.L800E0C24:
|
||||
/* B57DC4 800E0C24 3C0E8017 */ lui $t6, %hi(gAudioContext+0x3170) # $t6, 0x8017
|
||||
/* B57DC8 800E0C28 8DCE22F0 */ lw $t6, %lo(gAudioContext+0x3170)($t6)
|
||||
/* B57DCC 800E0C2C 3C198017 */ lui $t9, %hi(gAudioContext+0x2ee0) # $t9, 0x8017
|
||||
/* B57DD0 800E0C30 27392060 */ addiu $t9, %lo(gAudioContext+0x2ee0) # addiu $t9, $t9, 0x2060
|
||||
/* B57DD4 800E0C34 000E7880 */ sll $t7, $t6, 2
|
||||
/* B57DD8 800E0C38 01EE7821 */ addu $t7, $t7, $t6
|
||||
/* B57DDC 800E0C3C 000F7880 */ sll $t7, $t7, 2
|
||||
/* B57DE0 800E0C40 25F80010 */ addiu $t8, $t7, 0x10
|
||||
/* B57DE4 800E0C44 03191021 */ addu $v0, $t8, $t9
|
||||
/* B57DE8 800E0C48 24080001 */ li $t0, 1
|
||||
/* B57DEC 800E0C4C A0480000 */ sb $t0, ($v0)
|
||||
/* B57DF0 800E0C50 AC440008 */ sw $a0, 8($v0)
|
||||
/* B57DF4 800E0C54 8FA90018 */ lw $t1, 0x18($sp)
|
||||
/* B57DF8 800E0C58 3C0A8017 */ lui $t2, %hi(gAudioContext+0x3170) # $t2, 0x8017
|
||||
/* B57DFC 800E0C5C 3C018017 */ lui $at, %hi(gAudioContext+0x3170) # $at, 0x8017
|
||||
/* B57E00 800E0C60 AC490010 */ sw $t1, 0x10($v0)
|
||||
/* B57E04 800E0C64 8D4A22F0 */ lw $t2, %lo(gAudioContext+0x3170)($t2)
|
||||
/* B57E08 800E0C68 254B0001 */ addiu $t3, $t2, 1
|
||||
/* B57E0C 800E0C6C AC2B22F0 */ sw $t3, %lo(gAudioContext+0x3170)($at)
|
||||
.L800E0C70:
|
||||
/* B57E10 800E0C70 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B57E14 800E0C74 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B57E18 800E0C78 03E00008 */ jr $ra
|
||||
/* B57E1C 800E0C7C 00000000 */ nop
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
glabel func_800E0C80
|
||||
/* B57E20 800E0C80 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B57E24 800E0C84 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B57E28 800E0C88 80820002 */ lb $v0, 2($a0)
|
||||
/* B57E2C 800E0C8C 10A20005 */ beq $a1, $v0, .L800E0CA4
|
||||
/* B57E30 800E0C90 00000000 */ nop
|
||||
/* B57E34 800E0C94 10C20003 */ beq $a2, $v0, .L800E0CA4
|
||||
/* B57E38 800E0C98 00000000 */ nop
|
||||
/* B57E3C 800E0C9C 54400004 */ bnezl $v0, .L800E0CB0
|
||||
/* B57E40 800E0CA0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800E0CA4:
|
||||
/* B57E44 800E0CA4 0C038259 */ jal func_800E0964
|
||||
/* B57E48 800E0CA8 00E02825 */ move $a1, $a3
|
||||
/* B57E4C 800E0CAC 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800E0CB0:
|
||||
/* B57E50 800E0CB0 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B57E54 800E0CB4 03E00008 */ jr $ra
|
||||
/* B57E58 800E0CB8 00000000 */ nop
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
glabel func_800E0CBC
|
||||
/* B57E5C 800E0CBC 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* B57E60 800E0CC0 AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* B57E64 800E0CC4 3C158017 */ lui $s5, %hi(gAudioContext) # $s5, 0x8017
|
||||
/* B57E68 800E0CC8 26B5F180 */ addiu $s5, %lo(gAudioContext) # addiu $s5, $s5, -0xe80
|
||||
/* B57E6C 800E0CCC 8EAE2834 */ lw $t6, 0x2834($s5)
|
||||
/* B57E70 800E0CD0 AFBF003C */ sw $ra, 0x3c($sp)
|
||||
/* B57E74 800E0CD4 AFBE0038 */ sw $fp, 0x38($sp)
|
||||
/* B57E78 800E0CD8 AFB70034 */ sw $s7, 0x34($sp)
|
||||
/* B57E7C 800E0CDC AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* B57E80 800E0CE0 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* B57E84 800E0CE4 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* B57E88 800E0CE8 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* B57E8C 800E0CEC AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* B57E90 800E0CF0 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B57E94 800E0CF4 85DE0000 */ lh $fp, ($t6)
|
||||
/* B57E98 800E0CF8 0000A025 */ move $s4, $zero
|
||||
/* B57E9C 800E0CFC 0000B025 */ move $s6, $zero
|
||||
/* B57EA0 800E0D00 1BC00036 */ blez $fp, .L800E0DDC
|
||||
/* B57EA4 800E0D04 241700FF */ li $s7, 255
|
||||
.L800E0D08:
|
||||
/* B57EA8 800E0D08 8EAF2844 */ lw $t7, 0x2844($s5)
|
||||
/* B57EAC 800E0D0C 24040001 */ li $a0, 1
|
||||
/* B57EB0 800E0D10 24050003 */ li $a1, 3
|
||||
/* B57EB4 800E0D14 01F61021 */ addu $v0, $t7, $s6
|
||||
/* B57EB8 800E0D18 90520002 */ lbu $s2, 2($v0)
|
||||
/* B57EBC 800E0D1C 90530003 */ lbu $s3, 3($v0)
|
||||
/* B57EC0 800E0D20 16570003 */ bne $s2, $s7, .L800E0D30
|
||||
/* B57EC4 800E0D24 00000000 */ nop
|
||||
/* B57EC8 800E0D28 5277002A */ beql $s3, $s7, .L800E0DD4
|
||||
/* B57ECC 800E0D2C 26940001 */ addiu $s4, $s4, 1
|
||||
.L800E0D30:
|
||||
/* B57ED0 800E0D30 0C037C1D */ jal func_800DF074
|
||||
/* B57ED4 800E0D34 02803025 */ move $a2, $s4
|
||||
/* B57ED8 800E0D38 50400026 */ beql $v0, $zero, .L800E0DD4
|
||||
/* B57EDC 800E0D3C 26940001 */ addiu $s4, $s4, 1
|
||||
/* B57EE0 800E0D40 0C03862C */ jal Audio_IsBankLoadComplete
|
||||
/* B57EE4 800E0D44 02802025 */ move $a0, $s4
|
||||
/* B57EE8 800E0D48 50400022 */ beql $v0, $zero, .L800E0DD4
|
||||
/* B57EEC 800E0D4C 26940001 */ addiu $s4, $s4, 1
|
||||
/* B57EF0 800E0D50 8EB83170 */ lw $t8, 0x3170($s5)
|
||||
/* B57EF4 800E0D54 3C118017 */ lui $s1, %hi(gAudioContext+0x2ef0) # $s1, 0x8017
|
||||
/* B57EF8 800E0D58 26312070 */ addiu $s1, %lo(gAudioContext+0x2ef0) # addiu $s1, $s1, 0x2070
|
||||
/* B57EFC 800E0D5C 1B00000D */ blez $t8, .L800E0D94
|
||||
/* B57F00 800E0D60 00008025 */ move $s0, $zero
|
||||
/* B57F04 800E0D64 02202025 */ move $a0, $s1
|
||||
.L800E0D68:
|
||||
/* B57F08 800E0D68 02402825 */ move $a1, $s2
|
||||
/* B57F0C 800E0D6C 02603025 */ move $a2, $s3
|
||||
/* B57F10 800E0D70 0C038320 */ jal func_800E0C80
|
||||
/* B57F14 800E0D74 02803825 */ move $a3, $s4
|
||||
/* B57F18 800E0D78 8EB93170 */ lw $t9, 0x3170($s5)
|
||||
/* B57F1C 800E0D7C 26100001 */ addiu $s0, $s0, 1
|
||||
/* B57F20 800E0D80 26310014 */ addiu $s1, $s1, 0x14
|
||||
/* B57F24 800E0D84 0219082A */ slt $at, $s0, $t9
|
||||
/* B57F28 800E0D88 5420FFF7 */ bnezl $at, .L800E0D68
|
||||
/* B57F2C 800E0D8C 02202025 */ move $a0, $s1
|
||||
/* B57F30 800E0D90 00008025 */ move $s0, $zero
|
||||
.L800E0D94:
|
||||
/* B57F34 800E0D94 8EA83404 */ lw $t0, 0x3404($s5)
|
||||
/* B57F38 800E0D98 3C118017 */ lui $s1, %hi(gAudioContext+0x3184) # $s1, 0x8017
|
||||
/* B57F3C 800E0D9C 26312304 */ addiu $s1, %lo(gAudioContext+0x3184) # addiu $s1, $s1, 0x2304
|
||||
/* B57F40 800E0DA0 1900000B */ blez $t0, .L800E0DD0
|
||||
/* B57F44 800E0DA4 02202025 */ move $a0, $s1
|
||||
.L800E0DA8:
|
||||
/* B57F48 800E0DA8 02402825 */ move $a1, $s2
|
||||
/* B57F4C 800E0DAC 02603025 */ move $a2, $s3
|
||||
/* B57F50 800E0DB0 0C038320 */ jal func_800E0C80
|
||||
/* B57F54 800E0DB4 02803825 */ move $a3, $s4
|
||||
/* B57F58 800E0DB8 8EA93404 */ lw $t1, 0x3404($s5)
|
||||
/* B57F5C 800E0DBC 26100001 */ addiu $s0, $s0, 1
|
||||
/* B57F60 800E0DC0 26310014 */ addiu $s1, $s1, 0x14
|
||||
/* B57F64 800E0DC4 0209082A */ slt $at, $s0, $t1
|
||||
/* B57F68 800E0DC8 5420FFF7 */ bnezl $at, .L800E0DA8
|
||||
/* B57F6C 800E0DCC 02202025 */ move $a0, $s1
|
||||
.L800E0DD0:
|
||||
/* B57F70 800E0DD0 26940001 */ addiu $s4, $s4, 1
|
||||
.L800E0DD4:
|
||||
/* B57F74 800E0DD4 169EFFCC */ bne $s4, $fp, .L800E0D08
|
||||
/* B57F78 800E0DD8 26D60014 */ addiu $s6, $s6, 0x14
|
||||
.L800E0DDC:
|
||||
/* B57F7C 800E0DDC 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
/* B57F80 800E0DE0 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B57F84 800E0DE4 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* B57F88 800E0DE8 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* B57F8C 800E0DEC 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* B57F90 800E0DF0 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* B57F94 800E0DF4 8FB5002C */ lw $s5, 0x2c($sp)
|
||||
/* B57F98 800E0DF8 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* B57F9C 800E0DFC 8FB70034 */ lw $s7, 0x34($sp)
|
||||
/* B57FA0 800E0E00 8FBE0038 */ lw $fp, 0x38($sp)
|
||||
/* B57FA4 800E0E04 03E00008 */ jr $ra
|
||||
/* B57FA8 800E0E08 27BD0040 */ addiu $sp, $sp, 0x40
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
glabel func_800E0E0C
|
||||
/* B57FAC 800E0E0C 10A00015 */ beqz $a1, .L800E0E64
|
||||
/* B57FB0 800E0E10 00000000 */ nop
|
||||
/* B57FB4 800E0E14 8C830000 */ lw $v1, ($a0)
|
||||
/* B57FB8 800E0E18 8CA70004 */ lw $a3, 4($a1)
|
||||
/* B57FBC 800E0E1C 8C8E0008 */ lw $t6, 8($a0)
|
||||
/* B57FC0 800E0E20 00E3082B */ sltu $at, $a3, $v1
|
||||
/* B57FC4 800E0E24 1420000F */ bnez $at, .L800E0E64
|
||||
/* B57FC8 800E0E28 006E3021 */ addu $a2, $v1, $t6
|
||||
/* B57FCC 800E0E2C 00E6082B */ sltu $at, $a3, $a2
|
||||
/* B57FD0 800E0E30 1020000C */ beqz $at, .L800E0E64
|
||||
/* B57FD4 800E0E34 00000000 */ nop
|
||||
/* B57FD8 800E0E38 8C980004 */ lw $t8, 4($a0)
|
||||
/* B57FDC 800E0E3C 00E37823 */ subu $t7, $a3, $v1
|
||||
/* B57FE0 800E0E40 90AD0000 */ lbu $t5, ($a1)
|
||||
/* B57FE4 800E0E44 01F8C821 */ addu $t9, $t7, $t8
|
||||
/* B57FE8 800E0E48 ACB90004 */ sw $t9, 4($a1)
|
||||
/* B57FEC 800E0E4C 908A000C */ lbu $t2, 0xc($a0)
|
||||
/* B57FF0 800E0E50 31AEFFF3 */ andi $t6, $t5, 0xfff3
|
||||
/* B57FF4 800E0E54 000A5880 */ sll $t3, $t2, 2
|
||||
/* B57FF8 800E0E58 316C000C */ andi $t4, $t3, 0xc
|
||||
/* B57FFC 800E0E5C 018E7825 */ or $t7, $t4, $t6
|
||||
/* B58000 800E0E60 A0AF0000 */ sb $t7, ($a1)
|
||||
.L800E0E64:
|
||||
/* B58004 800E0E64 03E00008 */ jr $ra
|
||||
/* B58008 800E0E68 00000000 */ nop
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
glabel func_800E0E6C
|
||||
/* B5800C 800E0E6C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B58010 800E0E70 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B58014 800E0E74 00802825 */ move $a1, $a0
|
||||
/* B58018 800E0E78 0C0383AD */ jal func_800E0EB4
|
||||
/* B5801C 800E0E7C 00002025 */ move $a0, $zero
|
||||
/* B58020 800E0E80 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B58024 800E0E84 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B58028 800E0E88 03E00008 */ jr $ra
|
||||
/* B5802C 800E0E8C 00000000 */ nop
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
glabel func_800E0E90
|
||||
/* B58030 800E0E90 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* B58034 800E0E94 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* B58038 800E0E98 00802825 */ move $a1, $a0
|
||||
/* B5803C 800E0E9C 0C0383AD */ jal func_800E0EB4
|
||||
/* B58040 800E0EA0 24040001 */ li $a0, 1
|
||||
/* B58044 800E0EA4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B58048 800E0EA8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* B5804C 800E0EAC 03E00008 */ jr $ra
|
||||
/* B58050 800E0EB0 00000000 */ nop
|
||||
|
||||
@@ -1,188 +0,0 @@
|
||||
glabel func_800E0EB4
|
||||
/* B58054 800E0EB4 27BDFF60 */ addiu $sp, $sp, -0xa0
|
||||
/* B58058 800E0EB8 AFB70034 */ sw $s7, 0x34($sp)
|
||||
/* B5805C 800E0EBC 3C178017 */ lui $s7, %hi(gAudioContext) # $s7, 0x8017
|
||||
/* B58060 800E0EC0 26F7F180 */ addiu $s7, %lo(gAudioContext) # addiu $s7, $s7, -0xe80
|
||||
/* B58064 800E0EC4 8EEE2834 */ lw $t6, 0x2834($s7)
|
||||
/* B58068 800E0EC8 AFBF003C */ sw $ra, 0x3c($sp)
|
||||
/* B5806C 800E0ECC AFBE0038 */ sw $fp, 0x38($sp)
|
||||
/* B58070 800E0ED0 AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* B58074 800E0ED4 AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* B58078 800E0ED8 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* B5807C 800E0EDC AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* B58080 800E0EE0 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* B58084 800E0EE4 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* B58088 800E0EE8 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B5808C 800E0EEC AFA500A4 */ sw $a1, 0xa4($sp)
|
||||
/* B58090 800E0EF0 85CF0000 */ lh $t7, ($t6)
|
||||
/* B58094 800E0EF4 00808825 */ move $s1, $a0
|
||||
/* B58098 800E0EF8 8EF02838 */ lw $s0, 0x2838($s7)
|
||||
/* B5809C 800E0EFC 24040002 */ li $a0, 2
|
||||
/* B580A0 800E0F00 8FA600A4 */ lw $a2, 0xa4($sp)
|
||||
/* B580A4 800E0F04 24050002 */ li $a1, 2
|
||||
/* B580A8 800E0F08 0C037C1D */ jal func_800DF074
|
||||
/* B580AC 800E0F0C AFAF0094 */ sw $t7, 0x94($sp)
|
||||
/* B580B0 800E0F10 10400081 */ beqz $v0, .L800E1118
|
||||
/* B580B4 800E0F14 AFA20078 */ sw $v0, 0x78($sp)
|
||||
/* B580B8 800E0F18 8FB800A4 */ lw $t8, 0xa4($sp)
|
||||
/* B580BC 800E0F1C 24010002 */ li $at, 2
|
||||
/* B580C0 800E0F20 0000B025 */ move $s6, $zero
|
||||
/* B580C4 800E0F24 0018C900 */ sll $t9, $t8, 4
|
||||
/* B580C8 800E0F28 02191021 */ addu $v0, $s0, $t9
|
||||
/* B580CC 800E0F2C 8C480014 */ lw $t0, 0x14($v0)
|
||||
/* B580D0 800E0F30 241E007F */ li $fp, 127
|
||||
/* B580D4 800E0F34 27B40078 */ addiu $s4, $sp, 0x78
|
||||
/* B580D8 800E0F38 AFA80080 */ sw $t0, 0x80($sp)
|
||||
/* B580DC 800E0F3C 80490018 */ lb $t1, 0x18($v0)
|
||||
/* B580E0 800E0F40 312300FF */ andi $v1, $t1, 0xff
|
||||
/* B580E4 800E0F44 10610004 */ beq $v1, $at, .L800E0F58
|
||||
/* B580E8 800E0F48 A3A90084 */ sb $t1, 0x84($sp)
|
||||
/* B580EC 800E0F4C 24010003 */ li $at, 3
|
||||
/* B580F0 800E0F50 54610005 */ bnel $v1, $at, .L800E0F68
|
||||
/* B580F4 800E0F54 AFA0007C */ sw $zero, 0x7c($sp)
|
||||
.L800E0F58:
|
||||
/* B580F8 800E0F58 8C4A0010 */ lw $t2, 0x10($v0)
|
||||
/* B580FC 800E0F5C 10000002 */ b .L800E0F68
|
||||
/* B58100 800E0F60 AFAA007C */ sw $t2, 0x7c($sp)
|
||||
/* B58104 800E0F64 AFA0007C */ sw $zero, 0x7c($sp)
|
||||
.L800E0F68:
|
||||
/* B58108 800E0F68 12200007 */ beqz $s1, .L800E0F88
|
||||
/* B5810C 800E0F6C 24010001 */ li $at, 1
|
||||
/* B58110 800E0F70 16210005 */ bne $s1, $at, .L800E0F88
|
||||
/* B58114 800E0F74 8FA2007C */ lw $v0, 0x7c($sp)
|
||||
/* B58118 800E0F78 8FAB0078 */ lw $t3, 0x78($sp)
|
||||
/* B5811C 800E0F7C AFA20078 */ sw $v0, 0x78($sp)
|
||||
/* B58120 800E0F80 A3A00084 */ sb $zero, 0x84($sp)
|
||||
/* B58124 800E0F84 AFAB007C */ sw $t3, 0x7c($sp)
|
||||
.L800E0F88:
|
||||
/* B58128 800E0F88 8FAC0094 */ lw $t4, 0x94($sp)
|
||||
/* B5812C 800E0F8C 0000A825 */ move $s5, $zero
|
||||
/* B58130 800E0F90 59800062 */ blezl $t4, .L800E111C
|
||||
/* B58134 800E0F94 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
/* B58138 800E0F98 8EED2844 */ lw $t5, 0x2844($s7)
|
||||
.L800E0F9C:
|
||||
/* B5813C 800E0F9C 240100FF */ li $at, 255
|
||||
/* B58140 800E0FA0 01B61021 */ addu $v0, $t5, $s6
|
||||
/* B58144 800E0FA4 90500002 */ lbu $s0, 2($v0)
|
||||
/* B58148 800E0FA8 90510003 */ lbu $s1, 3($v0)
|
||||
/* B5814C 800E0FAC 16010003 */ bne $s0, $at, .L800E0FBC
|
||||
/* B58150 800E0FB0 240100FF */ li $at, 255
|
||||
/* B58154 800E0FB4 52210054 */ beql $s1, $at, .L800E1108
|
||||
/* B58158 800E0FB8 8FA90094 */ lw $t1, 0x94($sp)
|
||||
.L800E0FBC:
|
||||
/* B5815C 800E0FBC 0C03862C */ jal Audio_IsBankLoadComplete
|
||||
/* B58160 800E0FC0 02A02025 */ move $a0, $s5
|
||||
/* B58164 800E0FC4 1040004F */ beqz $v0, .L800E1104
|
||||
/* B58168 800E0FC8 24040001 */ li $a0, 1
|
||||
/* B5816C 800E0FCC 24050002 */ li $a1, 2
|
||||
/* B58170 800E0FD0 0C037C1D */ jal func_800DF074
|
||||
/* B58174 800E0FD4 02A03025 */ move $a2, $s5
|
||||
/* B58178 800E0FD8 1040004A */ beqz $v0, .L800E1104
|
||||
/* B5817C 800E0FDC 8FAE00A4 */ lw $t6, 0xa4($sp)
|
||||
/* B58180 800E0FE0 160E0005 */ bne $s0, $t6, .L800E0FF8
|
||||
/* B58184 800E0FE4 8FAF00A4 */ lw $t7, 0xa4($sp)
|
||||
/* B58188 800E0FE8 00008825 */ move $s1, $zero
|
||||
/* B5818C 800E0FEC 00009025 */ move $s2, $zero
|
||||
/* B58190 800E0FF0 10000005 */ b .L800E1008
|
||||
/* B58194 800E0FF4 00009825 */ move $s3, $zero
|
||||
.L800E0FF8:
|
||||
/* B58198 800E0FF8 162F0042 */ bne $s1, $t7, .L800E1104
|
||||
/* B5819C 800E0FFC 00009025 */ move $s2, $zero
|
||||
/* B581A0 800E1000 00008825 */ move $s1, $zero
|
||||
/* B581A4 800E1004 00009825 */ move $s3, $zero
|
||||
.L800E1008:
|
||||
/* B581A8 800E1008 8EF82844 */ lw $t8, 0x2844($s7)
|
||||
/* B581AC 800E100C 03161021 */ addu $v0, $t8, $s6
|
||||
/* B581B0 800E1010 90590000 */ lbu $t9, ($v0)
|
||||
/* B581B4 800E1014 1B20001B */ blez $t9, .L800E1084
|
||||
/* B581B8 800E1018 02A02025 */ move $a0, $s5
|
||||
.L800E101C:
|
||||
/* B581BC 800E101C 0C039D26 */ jal Audio_GetInstrumentInner
|
||||
/* B581C0 800E1020 02202825 */ move $a1, $s1
|
||||
/* B581C4 800E1024 10400010 */ beqz $v0, .L800E1068
|
||||
/* B581C8 800E1028 00408025 */ move $s0, $v0
|
||||
/* B581CC 800E102C 90480001 */ lbu $t0, 1($v0)
|
||||
/* B581D0 800E1030 02802025 */ move $a0, $s4
|
||||
/* B581D4 800E1034 51000004 */ beql $t0, $zero, .L800E1048
|
||||
/* B581D8 800E1038 92090002 */ lbu $t1, 2($s0)
|
||||
/* B581DC 800E103C 0C038383 */ jal func_800E0E0C
|
||||
/* B581E0 800E1040 8C450008 */ lw $a1, 8($v0)
|
||||
/* B581E4 800E1044 92090002 */ lbu $t1, 2($s0)
|
||||
.L800E1048:
|
||||
/* B581E8 800E1048 02802025 */ move $a0, $s4
|
||||
/* B581EC 800E104C 53C90004 */ beql $fp, $t1, .L800E1060
|
||||
/* B581F0 800E1050 02802025 */ move $a0, $s4
|
||||
/* B581F4 800E1054 0C038383 */ jal func_800E0E0C
|
||||
/* B581F8 800E1058 8E050018 */ lw $a1, 0x18($s0)
|
||||
/* B581FC 800E105C 02802025 */ move $a0, $s4
|
||||
.L800E1060:
|
||||
/* B58200 800E1060 0C038383 */ jal func_800E0E0C
|
||||
/* B58204 800E1064 8E050010 */ lw $a1, 0x10($s0)
|
||||
.L800E1068:
|
||||
/* B58208 800E1068 8EEA2844 */ lw $t2, 0x2844($s7)
|
||||
/* B5820C 800E106C 26310001 */ addiu $s1, $s1, 1
|
||||
/* B58210 800E1070 01561021 */ addu $v0, $t2, $s6
|
||||
/* B58214 800E1074 904B0000 */ lbu $t3, ($v0)
|
||||
/* B58218 800E1078 022B082A */ slt $at, $s1, $t3
|
||||
/* B5821C 800E107C 5420FFE7 */ bnezl $at, .L800E101C
|
||||
/* B58220 800E1080 02A02025 */ move $a0, $s5
|
||||
.L800E1084:
|
||||
/* B58224 800E1084 904C0001 */ lbu $t4, 1($v0)
|
||||
/* B58228 800E1088 1980000E */ blez $t4, .L800E10C4
|
||||
/* B5822C 800E108C 02A02025 */ move $a0, $s5
|
||||
.L800E1090:
|
||||
/* B58230 800E1090 0C039D5B */ jal Audio_GetDrum
|
||||
/* B58234 800E1094 02402825 */ move $a1, $s2
|
||||
/* B58238 800E1098 10400003 */ beqz $v0, .L800E10A8
|
||||
/* B5823C 800E109C 02802025 */ move $a0, $s4
|
||||
/* B58240 800E10A0 0C038383 */ jal func_800E0E0C
|
||||
/* B58244 800E10A4 8C450004 */ lw $a1, 4($v0)
|
||||
.L800E10A8:
|
||||
/* B58248 800E10A8 8EED2844 */ lw $t5, 0x2844($s7)
|
||||
/* B5824C 800E10AC 26520001 */ addiu $s2, $s2, 1
|
||||
/* B58250 800E10B0 01B61021 */ addu $v0, $t5, $s6
|
||||
/* B58254 800E10B4 904E0001 */ lbu $t6, 1($v0)
|
||||
/* B58258 800E10B8 024E082A */ slt $at, $s2, $t6
|
||||
/* B5825C 800E10BC 5420FFF4 */ bnezl $at, .L800E1090
|
||||
/* B58260 800E10C0 02A02025 */ move $a0, $s5
|
||||
.L800E10C4:
|
||||
/* B58264 800E10C4 944F0004 */ lhu $t7, 4($v0)
|
||||
/* B58268 800E10C8 19E0000E */ blez $t7, .L800E1104
|
||||
/* B5826C 800E10CC 02A02025 */ move $a0, $s5
|
||||
.L800E10D0:
|
||||
/* B58270 800E10D0 0C039D94 */ jal Audio_GetUnkInstrument
|
||||
/* B58274 800E10D4 02602825 */ move $a1, $s3
|
||||
/* B58278 800E10D8 10400003 */ beqz $v0, .L800E10E8
|
||||
/* B5827C 800E10DC 02802025 */ move $a0, $s4
|
||||
/* B58280 800E10E0 0C038383 */ jal func_800E0E0C
|
||||
/* B58284 800E10E4 8C450000 */ lw $a1, ($v0)
|
||||
.L800E10E8:
|
||||
/* B58288 800E10E8 8EF82844 */ lw $t8, 0x2844($s7)
|
||||
/* B5828C 800E10EC 26730001 */ addiu $s3, $s3, 1
|
||||
/* B58290 800E10F0 0316C821 */ addu $t9, $t8, $s6
|
||||
/* B58294 800E10F4 97280004 */ lhu $t0, 4($t9)
|
||||
/* B58298 800E10F8 0268082A */ slt $at, $s3, $t0
|
||||
/* B5829C 800E10FC 5420FFF4 */ bnezl $at, .L800E10D0
|
||||
/* B582A0 800E1100 02A02025 */ move $a0, $s5
|
||||
.L800E1104:
|
||||
/* B582A4 800E1104 8FA90094 */ lw $t1, 0x94($sp)
|
||||
.L800E1108:
|
||||
/* B582A8 800E1108 26B50001 */ addiu $s5, $s5, 1
|
||||
/* B582AC 800E110C 26D60014 */ addiu $s6, $s6, 0x14
|
||||
/* B582B0 800E1110 56A9FFA2 */ bnel $s5, $t1, .L800E0F9C
|
||||
/* B582B4 800E1114 8EED2844 */ lw $t5, 0x2844($s7)
|
||||
.L800E1118:
|
||||
/* B582B8 800E1118 8FBF003C */ lw $ra, 0x3c($sp)
|
||||
.L800E111C:
|
||||
/* B582BC 800E111C 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B582C0 800E1120 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* B582C4 800E1124 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* B582C8 800E1128 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* B582CC 800E112C 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* B582D0 800E1130 8FB5002C */ lw $s5, 0x2c($sp)
|
||||
/* B582D4 800E1134 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* B582D8 800E1138 8FB70034 */ lw $s7, 0x34($sp)
|
||||
/* B582DC 800E113C 8FBE0038 */ lw $fp, 0x38($sp)
|
||||
/* B582E0 800E1140 03E00008 */ jr $ra
|
||||
/* B582E4 800E1144 27BD00A0 */ addiu $sp, $sp, 0xa0
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
glabel func_800E1148
|
||||
/* B582E8 800E1148 3C0E8017 */ lui $t6, %hi(gAudioContext+0x2d32) # $t6, 0x8017
|
||||
/* B582EC 800E114C 85CE1EB2 */ lh $t6, %lo(gAudioContext+0x2d32)($t6)
|
||||
/* B582F0 800E1150 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* B582F4 800E1154 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* B582F8 800E1158 2410FFFF */ li $s0, -1
|
||||
/* B582FC 800E115C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* B58300 800E1160 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* B58304 800E1164 120E0003 */ beq $s0, $t6, .L800E1174
|
||||
/* B58308 800E1168 AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* B5830C 800E116C 0C03839B */ jal func_800E0E6C
|
||||
/* B58310 800E1170 01C02025 */ move $a0, $t6
|
||||
.L800E1174:
|
||||
/* B58314 800E1174 3C048017 */ lui $a0, %hi(gAudioContext+0x2d3e) # $a0, 0x8017
|
||||
/* B58318 800E1178 84841EBE */ lh $a0, %lo(gAudioContext+0x2d3e)($a0)
|
||||
/* B5831C 800E117C 12040003 */ beq $s0, $a0, .L800E118C
|
||||
/* B58320 800E1180 00000000 */ nop
|
||||
/* B58324 800E1184 0C03839B */ jal func_800E0E6C
|
||||
/* B58328 800E1188 00000000 */ nop
|
||||
.L800E118C:
|
||||
/* B5832C 800E118C 3C188017 */ lui $t8, %hi(gAudioContext+0x2c40) # $t8, 0x8017
|
||||
/* B58330 800E1190 8F181DC0 */ lw $t8, %lo(gAudioContext+0x2c40)($t8)
|
||||
/* B58334 800E1194 3C0F8017 */ lui $t7, %hi(gAudioContext+0x2c40) # $t7, 0x8017
|
||||
/* B58338 800E1198 25EF1DC0 */ addiu $t7, %lo(gAudioContext+0x2c40) # addiu $t7, $t7, 0x1dc0
|
||||
/* B5833C 800E119C 01E09025 */ move $s2, $t7
|
||||
/* B58340 800E11A0 1300000A */ beqz $t8, .L800E11CC
|
||||
/* B58344 800E11A4 00008025 */ move $s0, $zero
|
||||
/* B58348 800E11A8 01E08825 */ move $s1, $t7
|
||||
.L800E11AC:
|
||||
/* B5834C 800E11AC 0C03839B */ jal func_800E0E6C
|
||||
/* B58350 800E11B0 8624001E */ lh $a0, 0x1e($s1)
|
||||
/* B58354 800E11B4 8E590000 */ lw $t9, ($s2)
|
||||
/* B58358 800E11B8 26100001 */ addiu $s0, $s0, 1
|
||||
/* B5835C 800E11BC 2631000C */ addiu $s1, $s1, 0xc
|
||||
/* B58360 800E11C0 0219082B */ sltu $at, $s0, $t9
|
||||
/* B58364 800E11C4 1420FFF9 */ bnez $at, .L800E11AC
|
||||
/* B58368 800E11C8 00000000 */ nop
|
||||
.L800E11CC:
|
||||
/* B5836C 800E11CC 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* B58370 800E11D0 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* B58374 800E11D4 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* B58378 800E11D8 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* B5837C 800E11DC 03E00008 */ jr $ra
|
||||
/* B58380 800E11E0 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
@@ -40,7 +40,7 @@ glabel func_800E202C
|
||||
/* B59254 800E20B4 5420FFF8 */ bnezl $at, .L800E2098
|
||||
/* B59258 800E20B8 844A001E */ lh $t2, 0x1e($v0)
|
||||
.L800E20BC:
|
||||
/* B5925C 800E20BC 0C037812 */ jal func_800DE048
|
||||
/* B5925C 800E20BC 0C037812 */ jal Audio_DiscardBank
|
||||
/* B59260 800E20C0 00C02025 */ move $a0, $a2
|
||||
/* B59264 800E20C4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* B59268 800E20C8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
|
||||
@@ -168,7 +168,7 @@ glabel func_800E3094
|
||||
/* B5A498 800E32F8 240F0001 */ li $t7, 1
|
||||
/* B5A49C 800E32FC A2203519 */ sb $zero, 0x3519($s1)
|
||||
/* B5A4A0 800E3300 A22F3518 */ sb $t7, 0x3518($s1)
|
||||
/* B5A4A4 800E3304 0C037E3D */ jal func_800DF8F4
|
||||
/* B5A4A4 800E3304 0C037E3D */ jal Audio_ResetStep
|
||||
/* B5A4A8 800E3308 A62D2840 */ sh $t5, 0x2840($s1)
|
||||
/* B5A4AC 800E330C 3C050004 */ lui $a1, %hi(_AudioseqSegmentRomStart) # $a1, 4
|
||||
/* B5A4B0 800E3310 24A54DF0 */ addiu $a1, %lo(_AudioseqSegmentRomStart) # addiu $a1, $a1, 0x4df0
|
||||
|
||||
@@ -27,7 +27,7 @@ glabel func_800E35E0
|
||||
/* B5A7D8 800E3638 10000008 */ b .L800E365C
|
||||
/* B5A7DC 800E363C 8C430004 */ lw $v1, 4($v0)
|
||||
.L800E3640:
|
||||
/* B5A7E0 800E3640 0C039D94 */ jal Audio_GetUnkInstrument
|
||||
/* B5A7E0 800E3640 0C039D94 */ jal Audio_GetSfx
|
||||
/* B5A7E4 800E3644 24C5FF00 */ addiu $a1, $a2, -0x100
|
||||
/* B5A7E8 800E3648 54400004 */ bnezl $v0, .L800E365C
|
||||
/* B5A7EC 800E364C 8C430000 */ lw $v1, ($v0)
|
||||
|
||||
@@ -81,7 +81,7 @@ glabel func_800E4918
|
||||
/* B5BBD0 800E4A30 1B20000B */ blez $t9, .L800E4A60
|
||||
/* B5BBD4 800E4A34 02202025 */ move $a0, $s1
|
||||
.L800E4A38:
|
||||
/* B5BBD8 800E4A38 0C039D94 */ jal Audio_GetUnkInstrument
|
||||
/* B5BBD8 800E4A38 0C039D94 */ jal Audio_GetSfx
|
||||
/* B5BBDC 800E4A3C 02402825 */ move $a1, $s2
|
||||
/* B5BBE0 800E4A40 10400003 */ beqz $v0, .L800E4A50
|
||||
/* B5BBE4 800E4A44 00402025 */ move $a0, $v0
|
||||
|
||||
@@ -187,7 +187,7 @@ glabel func_800E5000
|
||||
/* B5C434 800E5294 924D3518 */ lbu $t5, 0x3518($s2)
|
||||
/* B5C438 800E5298 51A00011 */ beql $t5, $zero, .L800E52E0
|
||||
/* B5C43C 800E529C 8E4F2984 */ lw $t7, 0x2984($s2)
|
||||
/* B5C440 800E52A0 0C037E3D */ jal func_800DF8F4
|
||||
/* B5C440 800E52A0 0C037E3D */ jal Audio_ResetStep
|
||||
/* B5C444 800E52A4 00000000 */ nop
|
||||
/* B5C448 800E52A8 5440000D */ bnezl $v0, .L800E52E0
|
||||
/* B5C44C 800E52AC 8E4F2984 */ lw $t7, 0x2984($s2)
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
glabel BgPoSyokudai_Destroy
|
||||
/* 0029C 808A834C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 002A0 808A8350 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 002A4 808A8354 8FAE0018 */ lw $t6, 0x0018($sp)
|
||||
/* 002A8 808A8358 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 002AC 808A835C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
|
||||
/* 002B0 808A8360 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 002B4 808A8364 8DC60150 */ lw $a2, 0x0150($t6) ## 00000150
|
||||
/* 002B8 808A8368 AFA7001C */ sw $a3, 0x001C($sp)
|
||||
/* 002BC 808A836C 0C01E9F1 */ jal LightContext_RemoveLight
|
||||
/* 002C0 808A8370 24A507A8 */ addiu $a1, $a1, 0x07A8 ## $a1 = 000007A8
|
||||
/* 002C4 808A8374 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 002C8 808A8378 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 002CC 808A837C 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 002D0 808A8380 24A50164 */ addiu $a1, $a1, 0x0164 ## $a1 = 00000164
|
||||
/* 002D4 808A8384 8FA7001C */ lw $a3, 0x001C($sp)
|
||||
/* 002D8 808A8388 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
|
||||
/* 002DC 808A838C 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
|
||||
/* 002E0 808A8390 01E77821 */ addu $t7, $t7, $a3
|
||||
/* 002E4 808A8394 91EF0AE3 */ lbu $t7, 0x0AE3($t7) ## 00010AE3
|
||||
/* 002E8 808A8398 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
|
||||
/* 002EC 808A839C 11E10003 */ beq $t7, $at, .L808A83AC
|
||||
/* 002F0 808A83A0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 002F4 808A83A4 00270821 */ addu $at, $at, $a3
|
||||
/* 002F8 808A83A8 A0380AE3 */ sb $t8, 0x0AE3($at) ## 00010AE3
|
||||
.L808A83AC:
|
||||
/* 002FC 808A83AC 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00300 808A83B0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00304 808A83B4 03E00008 */ jr $ra
|
||||
/* 00308 808A83B8 00000000 */ nop
|
||||
@@ -1,375 +0,0 @@
|
||||
.rdata
|
||||
glabel D_808A89D0
|
||||
.asciz "../z_bg_po_syokudai.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A89E8
|
||||
.asciz "../z_bg_po_syokudai.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A8A00
|
||||
.asciz "../z_bg_po_syokudai.c"
|
||||
.balign 4
|
||||
|
||||
glabel D_808A8A18
|
||||
.asciz "../z_bg_po_syokudai.c"
|
||||
.balign 4
|
||||
|
||||
.late_rodata
|
||||
glabel D_808A8A34
|
||||
.float 0.3
|
||||
|
||||
glabel D_808A8A38
|
||||
.float 0.7
|
||||
|
||||
glabel D_808A8A3C
|
||||
.float 9.58738019108e-05
|
||||
|
||||
glabel D_808A8A40
|
||||
.float 0.0027
|
||||
|
||||
.text
|
||||
glabel BgPoSyokudai_Draw
|
||||
/* 00390 808A8440 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
|
||||
/* 00394 808A8444 AFB10038 */ sw $s1, 0x0038($sp)
|
||||
/* 00398 808A8448 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 0039C 808A844C AFBF003C */ sw $ra, 0x003C($sp)
|
||||
/* 003A0 808A8450 AFB00034 */ sw $s0, 0x0034($sp)
|
||||
/* 003A4 808A8454 AFA40090 */ sw $a0, 0x0090($sp)
|
||||
/* 003A8 808A8458 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
|
||||
/* 003AC 808A845C 3C06808B */ lui $a2, %hi(D_808A89D0) ## $a2 = 808B0000
|
||||
/* 003B0 808A8460 24C689D0 */ addiu $a2, $a2, %lo(D_808A89D0) ## $a2 = 808A89D0
|
||||
/* 003B4 808A8464 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
|
||||
/* 003B8 808A8468 2407013B */ addiu $a3, $zero, 0x013B ## $a3 = 0000013B
|
||||
/* 003BC 808A846C 0C031AB1 */ jal Graph_OpenDisps
|
||||
/* 003C0 808A8470 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
|
||||
/* 003C4 808A8474 0C024F46 */ jal func_80093D18
|
||||
/* 003C8 808A8478 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 003CC 808A847C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 003D0 808A8480 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
|
||||
/* 003D4 808A8484 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
|
||||
/* 003D8 808A8488 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
|
||||
/* 003DC 808A848C AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
|
||||
/* 003E0 808A8490 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
|
||||
/* 003E4 808A8494 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 003E8 808A8498 3C05808B */ lui $a1, %hi(D_808A89E8) ## $a1 = 808B0000
|
||||
/* 003EC 808A849C 24A589E8 */ addiu $a1, $a1, %lo(D_808A89E8) ## $a1 = 808A89E8
|
||||
/* 003F0 808A84A0 2406013F */ addiu $a2, $zero, 0x013F ## $a2 = 0000013F
|
||||
/* 003F4 808A84A4 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 003F8 808A84A8 AFA2006C */ sw $v0, 0x006C($sp)
|
||||
/* 003FC 808A84AC 8FA3006C */ lw $v1, 0x006C($sp)
|
||||
/* 00400 808A84B0 3C090600 */ lui $t1, 0x0600 ## $t1 = 06000000
|
||||
/* 00404 808A84B4 252903A0 */ addiu $t1, $t1, 0x03A0 ## $t1 = 060003A0
|
||||
/* 00408 808A84B8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 0040C 808A84BC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
|
||||
/* 00410 808A84C0 3C19DE00 */ lui $t9, 0xDE00 ## $t9 = DE000000
|
||||
/* 00414 808A84C4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00418 808A84C8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
|
||||
/* 0041C 808A84CC AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
|
||||
/* 00420 808A84D0 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
|
||||
/* 00424 808A84D4 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
|
||||
/* 00428 808A84D8 8FAA0090 */ lw $t2, 0x0090($sp)
|
||||
/* 0042C 808A84DC 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00430 808A84E0 8545001C */ lh $a1, 0x001C($t2) ## 0000001C
|
||||
/* 00434 808A84E4 10400113 */ beq $v0, $zero, .L808A8934
|
||||
/* 00438 808A84E8 8FAB0090 */ lw $t3, 0x0090($sp)
|
||||
/* 0043C 808A84EC 9162014C */ lbu $v0, 0x014C($t3) ## 0000014C
|
||||
/* 00440 808A84F0 3C0C808B */ lui $t4, %hi(D_808A898C) ## $t4 = 808B0000
|
||||
/* 00444 808A84F4 3C0D808B */ lui $t5, %hi(D_808A899C) ## $t5 = 808B0000
|
||||
/* 00448 808A84F8 00021080 */ sll $v0, $v0, 2
|
||||
/* 0044C 808A84FC 258C898C */ addiu $t4, $t4, %lo(D_808A898C) ## $t4 = 808A898C
|
||||
/* 00450 808A8500 25AD899C */ addiu $t5, $t5, %lo(D_808A899C) ## $t5 = 808A899C
|
||||
/* 00454 808A8504 004C4021 */ addu $t0, $v0, $t4
|
||||
/* 00458 808A8508 004D7021 */ addu $t6, $v0, $t5
|
||||
/* 0045C 808A850C AFAE0060 */ sw $t6, 0x0060($sp)
|
||||
/* 00460 808A8510 0C03F66B */ jal Math_Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00464 808A8514 AFA80064 */ sw $t0, 0x0064($sp)
|
||||
/* 00468 808A8518 3C01808B */ lui $at, %hi(D_808A8A34) ## $at = 808B0000
|
||||
/* 0046C 808A851C C4248A34 */ lwc1 $f4, %lo(D_808A8A34)($at)
|
||||
/* 00470 808A8520 8FA80064 */ lw $t0, 0x0064($sp)
|
||||
/* 00474 808A8524 3C01808B */ lui $at, %hi(D_808A8A38) ## $at = 808B0000
|
||||
/* 00478 808A8528 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 0047C 808A852C 910F0000 */ lbu $t7, 0x0000($t0) ## 00000000
|
||||
/* 00480 808A8530 C4288A38 */ lwc1 $f8, %lo(D_808A8A38)($at)
|
||||
/* 00484 808A8534 8FA40090 */ lw $a0, 0x0090($sp)
|
||||
/* 00488 808A8538 448F5000 */ mtc1 $t7, $f10 ## $f10 = 0.00
|
||||
/* 0048C 808A853C 240C00C8 */ addiu $t4, $zero, 0x00C8 ## $t4 = 000000C8
|
||||
/* 00490 808A8540 24840154 */ addiu $a0, $a0, 0x0154 ## $a0 = 00000154
|
||||
/* 00494 808A8544 46083080 */ add.s $f2, $f6, $f8
|
||||
/* 00498 808A8548 05E10005 */ bgez $t7, .L808A8560
|
||||
/* 0049C 808A854C 46805420 */ cvt.s.w $f16, $f10
|
||||
/* 004A0 808A8550 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
|
||||
/* 004A4 808A8554 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
|
||||
/* 004A8 808A8558 00000000 */ nop
|
||||
/* 004AC 808A855C 46128400 */ add.s $f16, $f16, $f18
|
||||
.L808A8560:
|
||||
/* 004B0 808A8560 46028102 */ mul.s $f4, $f16, $f2
|
||||
/* 004B4 808A8564 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
|
||||
/* 004B8 808A8568 4458F800 */ cfc1 $t8, $31
|
||||
/* 004BC 808A856C 44C5F800 */ ctc1 $a1, $31
|
||||
/* 004C0 808A8570 00000000 */ nop
|
||||
/* 004C4 808A8574 460021A4 */ cvt.w.s $f6, $f4
|
||||
/* 004C8 808A8578 4445F800 */ cfc1 $a1, $31
|
||||
/* 004CC 808A857C 00000000 */ nop
|
||||
/* 004D0 808A8580 30A50078 */ andi $a1, $a1, 0x0078 ## $a1 = 00000000
|
||||
/* 004D4 808A8584 10A00012 */ beq $a1, $zero, .L808A85D0
|
||||
/* 004D8 808A8588 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
|
||||
/* 004DC 808A858C 44813000 */ mtc1 $at, $f6 ## $f6 = 2147483648.00
|
||||
/* 004E0 808A8590 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
|
||||
/* 004E4 808A8594 46062181 */ sub.s $f6, $f4, $f6
|
||||
/* 004E8 808A8598 44C5F800 */ ctc1 $a1, $31
|
||||
/* 004EC 808A859C 00000000 */ nop
|
||||
/* 004F0 808A85A0 460031A4 */ cvt.w.s $f6, $f6
|
||||
/* 004F4 808A85A4 4445F800 */ cfc1 $a1, $31
|
||||
/* 004F8 808A85A8 00000000 */ nop
|
||||
/* 004FC 808A85AC 30A50078 */ andi $a1, $a1, 0x0078 ## $a1 = 00000000
|
||||
/* 00500 808A85B0 14A00005 */ bne $a1, $zero, .L808A85C8
|
||||
/* 00504 808A85B4 00000000 */ nop
|
||||
/* 00508 808A85B8 44053000 */ mfc1 $a1, $f6
|
||||
/* 0050C 808A85BC 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
||||
/* 00510 808A85C0 10000007 */ beq $zero, $zero, .L808A85E0
|
||||
/* 00514 808A85C4 00A12825 */ or $a1, $a1, $at ## $a1 = 80000000
|
||||
.L808A85C8:
|
||||
/* 00518 808A85C8 10000005 */ beq $zero, $zero, .L808A85E0
|
||||
/* 0051C 808A85CC 2405FFFF */ addiu $a1, $zero, 0xFFFF ## $a1 = FFFFFFFF
|
||||
.L808A85D0:
|
||||
/* 00520 808A85D0 44053000 */ mfc1 $a1, $f6
|
||||
/* 00524 808A85D4 00000000 */ nop
|
||||
/* 00528 808A85D8 04A0FFFB */ bltz $a1, .L808A85C8
|
||||
/* 0052C 808A85DC 00000000 */ nop
|
||||
.L808A85E0:
|
||||
/* 00530 808A85E0 91190001 */ lbu $t9, 0x0001($t0) ## 00000001
|
||||
/* 00534 808A85E4 44D8F800 */ ctc1 $t8, $31
|
||||
/* 00538 808A85E8 30A500FF */ andi $a1, $a1, 0x00FF ## $a1 = 000000FF
|
||||
/* 0053C 808A85EC 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00
|
||||
/* 00540 808A85F0 07210005 */ bgez $t9, .L808A8608
|
||||
/* 00544 808A85F4 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 00548 808A85F8 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
|
||||
/* 0054C 808A85FC 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
|
||||
/* 00550 808A8600 00000000 */ nop
|
||||
/* 00554 808A8604 46125280 */ add.s $f10, $f10, $f18
|
||||
.L808A8608:
|
||||
/* 00558 808A8608 46025402 */ mul.s $f16, $f10, $f2
|
||||
/* 0055C 808A860C 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 00560 808A8610 4449F800 */ cfc1 $t1, $31
|
||||
/* 00564 808A8614 44C6F800 */ ctc1 $a2, $31
|
||||
/* 00568 808A8618 00000000 */ nop
|
||||
/* 0056C 808A861C 46008124 */ cvt.w.s $f4, $f16
|
||||
/* 00570 808A8620 4446F800 */ cfc1 $a2, $31
|
||||
/* 00574 808A8624 00000000 */ nop
|
||||
/* 00578 808A8628 30C60078 */ andi $a2, $a2, 0x0078 ## $a2 = 00000000
|
||||
/* 0057C 808A862C 10C00012 */ beq $a2, $zero, .L808A8678
|
||||
/* 00580 808A8630 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
|
||||
/* 00584 808A8634 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00
|
||||
/* 00588 808A8638 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
|
||||
/* 0058C 808A863C 46048101 */ sub.s $f4, $f16, $f4
|
||||
/* 00590 808A8640 44C6F800 */ ctc1 $a2, $31
|
||||
/* 00594 808A8644 00000000 */ nop
|
||||
/* 00598 808A8648 46002124 */ cvt.w.s $f4, $f4
|
||||
/* 0059C 808A864C 4446F800 */ cfc1 $a2, $31
|
||||
/* 005A0 808A8650 00000000 */ nop
|
||||
/* 005A4 808A8654 30C60078 */ andi $a2, $a2, 0x0078 ## $a2 = 00000000
|
||||
/* 005A8 808A8658 14C00005 */ bne $a2, $zero, .L808A8670
|
||||
/* 005AC 808A865C 00000000 */ nop
|
||||
/* 005B0 808A8660 44062000 */ mfc1 $a2, $f4
|
||||
/* 005B4 808A8664 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
||||
/* 005B8 808A8668 10000007 */ beq $zero, $zero, .L808A8688
|
||||
/* 005BC 808A866C 00C13025 */ or $a2, $a2, $at ## $a2 = 80000000
|
||||
.L808A8670:
|
||||
/* 005C0 808A8670 10000005 */ beq $zero, $zero, .L808A8688
|
||||
/* 005C4 808A8674 2406FFFF */ addiu $a2, $zero, 0xFFFF ## $a2 = FFFFFFFF
|
||||
.L808A8678:
|
||||
/* 005C8 808A8678 44062000 */ mfc1 $a2, $f4
|
||||
/* 005CC 808A867C 00000000 */ nop
|
||||
/* 005D0 808A8680 04C0FFFB */ bltz $a2, .L808A8670
|
||||
/* 005D4 808A8684 00000000 */ nop
|
||||
.L808A8688:
|
||||
/* 005D8 808A8688 910A0002 */ lbu $t2, 0x0002($t0) ## 00000002
|
||||
/* 005DC 808A868C 44C9F800 */ ctc1 $t1, $31
|
||||
/* 005E0 808A8690 30C600FF */ andi $a2, $a2, 0x00FF ## $a2 = 000000FF
|
||||
/* 005E4 808A8694 448A3000 */ mtc1 $t2, $f6 ## $f6 = 0.00
|
||||
/* 005E8 808A8698 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
|
||||
/* 005EC 808A869C 05410004 */ bgez $t2, .L808A86B0
|
||||
/* 005F0 808A86A0 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 005F4 808A86A4 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
|
||||
/* 005F8 808A86A8 00000000 */ nop
|
||||
/* 005FC 808A86AC 46124200 */ add.s $f8, $f8, $f18
|
||||
.L808A86B0:
|
||||
/* 00600 808A86B0 46024282 */ mul.s $f10, $f8, $f2
|
||||
/* 00604 808A86B4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 00608 808A86B8 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
|
||||
/* 0060C 808A86BC 444BF800 */ cfc1 $t3, $31
|
||||
/* 00610 808A86C0 44C7F800 */ ctc1 $a3, $31
|
||||
/* 00614 808A86C4 00000000 */ nop
|
||||
/* 00618 808A86C8 46005424 */ cvt.w.s $f16, $f10
|
||||
/* 0061C 808A86CC 4447F800 */ cfc1 $a3, $31
|
||||
/* 00620 808A86D0 00000000 */ nop
|
||||
/* 00624 808A86D4 30E70078 */ andi $a3, $a3, 0x0078 ## $a3 = 00000000
|
||||
/* 00628 808A86D8 50E00013 */ beql $a3, $zero, .L808A8728
|
||||
/* 0062C 808A86DC 44078000 */ mfc1 $a3, $f16
|
||||
/* 00630 808A86E0 44818000 */ mtc1 $at, $f16 ## $f16 = 2147483648.00
|
||||
/* 00634 808A86E4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 00638 808A86E8 46105401 */ sub.s $f16, $f10, $f16
|
||||
/* 0063C 808A86EC 44C7F800 */ ctc1 $a3, $31
|
||||
/* 00640 808A86F0 00000000 */ nop
|
||||
/* 00644 808A86F4 46008424 */ cvt.w.s $f16, $f16
|
||||
/* 00648 808A86F8 4447F800 */ cfc1 $a3, $31
|
||||
/* 0064C 808A86FC 00000000 */ nop
|
||||
/* 00650 808A8700 30E70078 */ andi $a3, $a3, 0x0078 ## $a3 = 00000000
|
||||
/* 00654 808A8704 14E00005 */ bne $a3, $zero, .L808A871C
|
||||
/* 00658 808A8708 00000000 */ nop
|
||||
/* 0065C 808A870C 44078000 */ mfc1 $a3, $f16
|
||||
/* 00660 808A8710 3C018000 */ lui $at, 0x8000 ## $at = 80000000
|
||||
/* 00664 808A8714 10000007 */ beq $zero, $zero, .L808A8734
|
||||
/* 00668 808A8718 00E13825 */ or $a3, $a3, $at ## $a3 = 80000000
|
||||
.L808A871C:
|
||||
/* 0066C 808A871C 10000005 */ beq $zero, $zero, .L808A8734
|
||||
/* 00670 808A8720 2407FFFF */ addiu $a3, $zero, 0xFFFF ## $a3 = FFFFFFFF
|
||||
/* 00674 808A8724 44078000 */ mfc1 $a3, $f16
|
||||
.L808A8728:
|
||||
/* 00678 808A8728 00000000 */ nop
|
||||
/* 0067C 808A872C 04E0FFFB */ bltz $a3, .L808A871C
|
||||
/* 00680 808A8730 00000000 */ nop
|
||||
.L808A8734:
|
||||
/* 00684 808A8734 44CBF800 */ ctc1 $t3, $31
|
||||
/* 00688 808A8738 30E700FF */ andi $a3, $a3, 0x00FF ## $a3 = 000000FF
|
||||
/* 0068C 808A873C 0C01E796 */ jal Lights_PointSetColorAndRadius
|
||||
/* 00690 808A8740 AFAC0010 */ sw $t4, 0x0010($sp)
|
||||
/* 00694 808A8744 0C024F61 */ jal func_80093D84
|
||||
/* 00698 808A8748 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 0069C 808A874C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 006A0 808A8750 8FA80064 */ lw $t0, 0x0064($sp)
|
||||
/* 006A4 808A8754 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000
|
||||
/* 006A8 808A8758 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
|
||||
/* 006AC 808A875C AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
|
||||
/* 006B0 808A8760 35CE0020 */ ori $t6, $t6, 0x0020 ## $t6 = DB060020
|
||||
/* 006B4 808A8764 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
|
||||
/* 006B8 808A8768 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 006BC 808A876C 8FA90090 */ lw $t1, 0x0090($sp)
|
||||
/* 006C0 808A8770 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
|
||||
/* 006C4 808A8774 24180040 */ addiu $t8, $zero, 0x0040 ## $t8 = 00000040
|
||||
/* 006C8 808A8778 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
|
||||
/* 006CC 808A877C AFB90018 */ sw $t9, 0x0018($sp)
|
||||
/* 006D0 808A8780 AFB80014 */ sw $t8, 0x0014($sp)
|
||||
/* 006D4 808A8784 AFAF0010 */ sw $t7, 0x0010($sp)
|
||||
/* 006D8 808A8788 AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 006DC 808A878C 852A014E */ lh $t2, 0x014E($t1) ## 0000014E
|
||||
/* 006E0 808A8790 240E0080 */ addiu $t6, $zero, 0x0080 ## $t6 = 00000080
|
||||
/* 006E4 808A8794 240D0020 */ addiu $t5, $zero, 0x0020 ## $t5 = 00000020
|
||||
/* 006E8 808A8798 000A0823 */ subu $at, $zero, $t2
|
||||
/* 006EC 808A879C 00015880 */ sll $t3, $at, 2
|
||||
/* 006F0 808A87A0 01615821 */ addu $t3, $t3, $at
|
||||
/* 006F4 808A87A4 000B5880 */ sll $t3, $t3, 2
|
||||
/* 006F8 808A87A8 316C01FF */ andi $t4, $t3, 0x01FF ## $t4 = 00000000
|
||||
/* 006FC 808A87AC AFAC0020 */ sw $t4, 0x0020($sp)
|
||||
/* 00700 808A87B0 AFAD0024 */ sw $t5, 0x0024($sp)
|
||||
/* 00704 808A87B4 AFAE0028 */ sw $t6, 0x0028($sp)
|
||||
/* 00708 808A87B8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 0070C 808A87BC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
|
||||
/* 00710 808A87C0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
|
||||
/* 00714 808A87C4 AFA2005C */ sw $v0, 0x005C($sp)
|
||||
/* 00718 808A87C8 0C0253D0 */ jal Gfx_TwoTexScroll
|
||||
/* 0071C 808A87CC AFA80064 */ sw $t0, 0x0064($sp)
|
||||
/* 00720 808A87D0 8FA3005C */ lw $v1, 0x005C($sp)
|
||||
/* 00724 808A87D4 8FA80064 */ lw $t0, 0x0064($sp)
|
||||
/* 00728 808A87D8 3C18FA00 */ lui $t8, 0xFA00 ## $t8 = FA000000
|
||||
/* 0072C 808A87DC AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 00730 808A87E0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00734 808A87E4 37188080 */ ori $t8, $t8, 0x8080 ## $t8 = FA008080
|
||||
/* 00738 808A87E8 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
|
||||
/* 0073C 808A87EC 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
|
||||
/* 00740 808A87F0 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
|
||||
/* 00744 808A87F4 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
|
||||
/* 00748 808A87F8 910C0001 */ lbu $t4, 0x0001($t0) ## 00000001
|
||||
/* 0074C 808A87FC 91090000 */ lbu $t1, 0x0000($t0) ## 00000000
|
||||
/* 00750 808A8800 91180002 */ lbu $t8, 0x0002($t0) ## 00000002
|
||||
/* 00754 808A8804 000C6C00 */ sll $t5, $t4, 16
|
||||
/* 00758 808A8808 00095600 */ sll $t2, $t1, 24
|
||||
/* 0075C 808A880C 014D7025 */ or $t6, $t2, $t5 ## $t6 = 00000000
|
||||
/* 00760 808A8810 0018CA00 */ sll $t9, $t8, 8
|
||||
/* 00764 808A8814 01D94825 */ or $t1, $t6, $t9 ## $t1 = 00000000
|
||||
/* 00768 808A8818 352B00FF */ ori $t3, $t1, 0x00FF ## $t3 = 000000FF
|
||||
/* 0076C 808A881C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
|
||||
/* 00770 808A8820 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00774 808A8824 8FA40060 */ lw $a0, 0x0060($sp)
|
||||
/* 00778 808A8828 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000
|
||||
/* 0077C 808A882C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
|
||||
/* 00780 808A8830 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
|
||||
/* 00784 808A8834 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
|
||||
/* 00788 808A8838 90990001 */ lbu $t9, 0x0001($a0) ## 00000001
|
||||
/* 0078C 808A883C 908F0000 */ lbu $t7, 0x0000($a0) ## 00000000
|
||||
/* 00790 808A8840 908A0002 */ lbu $t2, 0x0002($a0) ## 00000002
|
||||
/* 00794 808A8844 00194C00 */ sll $t1, $t9, 16
|
||||
/* 00798 808A8848 000FC600 */ sll $t8, $t7, 24
|
||||
/* 0079C 808A884C 03095825 */ or $t3, $t8, $t1 ## $t3 = FA008080
|
||||
/* 007A0 808A8850 000A6A00 */ sll $t5, $t2, 8
|
||||
/* 007A4 808A8854 016D7825 */ or $t7, $t3, $t5 ## $t7 = FA008080
|
||||
/* 007A8 808A8858 3C014250 */ lui $at, 0x4250 ## $at = 42500000
|
||||
/* 007AC 808A885C 35EE00FF */ ori $t6, $t7, 0x00FF ## $t6 = FA0080FF
|
||||
/* 007B0 808A8860 44817000 */ mtc1 $at, $f14 ## $f14 = 52.00
|
||||
/* 007B4 808A8864 44066000 */ mfc1 $a2, $f12
|
||||
/* 007B8 808A8868 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 007BC 808A886C 0C034261 */ jal Matrix_Translate
|
||||
/* 007C0 808A8870 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
|
||||
/* 007C4 808A8874 863907A0 */ lh $t9, 0x07A0($s1) ## 000007A0
|
||||
/* 007C8 808A8878 0019C080 */ sll $t8, $t9, 2
|
||||
/* 007CC 808A887C 02384821 */ addu $t1, $s1, $t8
|
||||
/* 007D0 808A8880 0C016A7D */ jal func_8005A9F4
|
||||
/* 007D4 808A8884 8D240790 */ lw $a0, 0x0790($t1) ## 00000790
|
||||
/* 007D8 808A8888 8FAC0090 */ lw $t4, 0x0090($sp)
|
||||
/* 007DC 808A888C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
|
||||
/* 007E0 808A8890 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
|
||||
/* 007E4 808A8894 858A00B6 */ lh $t2, 0x00B6($t4) ## 000000B6
|
||||
/* 007E8 808A8898 004A5823 */ subu $t3, $v0, $t2
|
||||
/* 007EC 808A889C 01616821 */ addu $t5, $t3, $at
|
||||
/* 007F0 808A88A0 000D7C00 */ sll $t7, $t5, 16
|
||||
/* 007F4 808A88A4 000F7403 */ sra $t6, $t7, 16
|
||||
/* 007F8 808A88A8 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00
|
||||
/* 007FC 808A88AC 3C01808B */ lui $at, %hi(D_808A8A3C) ## $at = 808B0000
|
||||
/* 00800 808A88B0 C4328A3C */ lwc1 $f18, %lo(D_808A8A3C)($at)
|
||||
/* 00804 808A88B4 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 00808 808A88B8 46123302 */ mul.s $f12, $f6, $f18
|
||||
/* 0080C 808A88BC 0C034348 */ jal Matrix_RotateY
|
||||
/* 00810 808A88C0 00000000 */ nop
|
||||
/* 00814 808A88C4 3C01808B */ lui $at, %hi(D_808A8A40) ## $at = 808B0000
|
||||
/* 00818 808A88C8 C42C8A40 */ lwc1 $f12, %lo(D_808A8A40)($at)
|
||||
/* 0081C 808A88CC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
|
||||
/* 00820 808A88D0 44066000 */ mfc1 $a2, $f12
|
||||
/* 00824 808A88D4 0C0342A3 */ jal Matrix_Scale
|
||||
/* 00828 808A88D8 46006386 */ mov.s $f14, $f12
|
||||
/* 0082C 808A88DC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00830 808A88E0 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
|
||||
/* 00834 808A88E4 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
|
||||
/* 00838 808A88E8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
|
||||
/* 0083C 808A88EC AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
|
||||
/* 00840 808A88F0 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
|
||||
/* 00844 808A88F4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
|
||||
/* 00848 808A88F8 3C05808B */ lui $a1, %hi(D_808A8A00) ## $a1 = 808B0000
|
||||
/* 0084C 808A88FC 24A58A00 */ addiu $a1, $a1, %lo(D_808A8A00) ## $a1 = 808A8A00
|
||||
/* 00850 808A8900 24060170 */ addiu $a2, $zero, 0x0170 ## $a2 = 00000170
|
||||
/* 00854 808A8904 0C0346A2 */ jal Matrix_NewMtx
|
||||
/* 00858 808A8908 AFA20050 */ sw $v0, 0x0050($sp)
|
||||
/* 0085C 808A890C 8FA30050 */ lw $v1, 0x0050($sp)
|
||||
/* 00860 808A8910 3C0A0405 */ lui $t2, 0x0405 ## $t2 = 04050000
|
||||
/* 00864 808A8914 254AD4E0 */ addiu $t2, $t2, 0xD4E0 ## $t2 = 0404D4E0
|
||||
/* 00868 808A8918 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
|
||||
/* 0086C 808A891C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
|
||||
/* 00870 808A8920 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
|
||||
/* 00874 808A8924 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
|
||||
/* 00878 808A8928 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
|
||||
/* 0087C 808A892C AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
|
||||
/* 00880 808A8930 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
|
||||
.L808A8934:
|
||||
/* 00884 808A8934 3C06808B */ lui $a2, %hi(D_808A8A18) ## $a2 = 808B0000
|
||||
/* 00888 808A8938 24C68A18 */ addiu $a2, $a2, %lo(D_808A8A18) ## $a2 = 808A8A18
|
||||
/* 0088C 808A893C 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
|
||||
/* 00890 808A8940 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
|
||||
/* 00894 808A8944 0C031AD5 */ jal Graph_CloseDisps
|
||||
/* 00898 808A8948 24070175 */ addiu $a3, $zero, 0x0175 ## $a3 = 00000175
|
||||
/* 0089C 808A894C 8FBF003C */ lw $ra, 0x003C($sp)
|
||||
/* 008A0 808A8950 8FB00034 */ lw $s0, 0x0034($sp)
|
||||
/* 008A4 808A8954 8FB10038 */ lw $s1, 0x0038($sp)
|
||||
/* 008A8 808A8958 03E00008 */ jr $ra
|
||||
/* 008AC 808A895C 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000
|
||||
@@ -1,189 +0,0 @@
|
||||
.late_rodata
|
||||
glabel D_808A8A30
|
||||
.word 0xC4C3C000
|
||||
|
||||
.text
|
||||
glabel BgPoSyokudai_Init
|
||||
/* 00000 808A80B0 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
|
||||
/* 00004 808A80B4 AFB10030 */ sw $s1, 0x0030($sp)
|
||||
/* 00008 808A80B8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
|
||||
/* 0000C 808A80BC AFBF0034 */ sw $ra, 0x0034($sp)
|
||||
/* 00010 808A80C0 AFB0002C */ sw $s0, 0x002C($sp)
|
||||
/* 00014 808A80C4 3C05808B */ lui $a1, %hi(D_808A89CC) ## $a1 = 808B0000
|
||||
/* 00018 808A80C8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 0001C 808A80CC 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 00020 808A80D0 24A589CC */ addiu $a1, $a1, %lo(D_808A89CC) ## $a1 = 808A89CC
|
||||
/* 00024 808A80D4 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
|
||||
/* 00028 808A80D8 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
|
||||
/* 0002C 808A80DC 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF
|
||||
/* 00030 808A80E0 000EC203 */ sra $t8, $t6, 8
|
||||
/* 00034 808A80E4 3328003F */ andi $t0, $t9, 0x003F ## $t0 = 00000000
|
||||
/* 00038 808A80E8 A218014C */ sb $t8, 0x014C($s0) ## 0000014C
|
||||
/* 0003C 808A80EC A608001C */ sh $t0, 0x001C($s0) ## 0000001C
|
||||
/* 00040 808A80F0 A20900AE */ sb $t1, 0x00AE($s0) ## 000000AE
|
||||
/* 00044 808A80F4 26060154 */ addiu $a2, $s0, 0x0154 ## $a2 = 00000154
|
||||
/* 00048 808A80F8 AFA6003C */ sw $a2, 0x003C($sp)
|
||||
/* 0004C 808A80FC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00050 808A8100 0C01E9D9 */ jal LightContext_InsertLight
|
||||
/* 00054 808A8104 262507A8 */ addiu $a1, $s1, 0x07A8 ## $a1 = 000007A8
|
||||
/* 00058 808A8108 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
|
||||
/* 0005C 808A810C C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
|
||||
/* 00060 808A8110 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
|
||||
/* 00064 808A8114 4600428D */ trunc.w.s $f10, $f8
|
||||
/* 00068 808A8118 AE020150 */ sw $v0, 0x0150($s0) ## 00000150
|
||||
/* 0006C 808A811C AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00070 808A8120 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 00074 808A8124 44065000 */ mfc1 $a2, $f10
|
||||
/* 00078 808A8128 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 0007C 808A812C 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00080 808A8130 44053000 */ mfc1 $a1, $f6
|
||||
/* 00084 808A8134 00063400 */ sll $a2, $a2, 16
|
||||
/* 00088 808A8138 00063403 */ sra $a2, $a2, 16
|
||||
/* 0008C 808A813C 44079000 */ mfc1 $a3, $f18
|
||||
/* 00090 808A8140 24C60041 */ addiu $a2, $a2, 0x0041 ## $a2 = 00000041
|
||||
/* 00094 808A8144 00063400 */ sll $a2, $a2, 16
|
||||
/* 00098 808A8148 00052C00 */ sll $a1, $a1, 16
|
||||
/* 0009C 808A814C 00073C00 */ sll $a3, $a3, 16
|
||||
/* 000A0 808A8150 00073C03 */ sra $a3, $a3, 16
|
||||
/* 000A4 808A8154 00052C03 */ sra $a1, $a1, 16
|
||||
/* 000A8 808A8158 00063403 */ sra $a2, $a2, 16
|
||||
/* 000AC 808A815C AFA00014 */ sw $zero, 0x0014($sp)
|
||||
/* 000B0 808A8160 AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 000B4 808A8164 0C01E77C */ jal Lights_PointGlowSetInfo
|
||||
/* 000B8 808A8168 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 000BC 808A816C 26050164 */ addiu $a1, $s0, 0x0164 ## $a1 = 00000164
|
||||
/* 000C0 808A8170 AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 000C4 808A8174 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 000C8 808A8178 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 000CC 808A817C 3C07808B */ lui $a3, %hi(D_808A8960) ## $a3 = 808B0000
|
||||
/* 000D0 808A8180 8FA5003C */ lw $a1, 0x003C($sp)
|
||||
/* 000D4 808A8184 24E78960 */ addiu $a3, $a3, %lo(D_808A8960) ## $a3 = 808A8960
|
||||
/* 000D8 808A8188 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 000DC 808A818C 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 000E0 808A8190 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 000E4 808A8194 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
|
||||
/* 000E8 808A8198 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
|
||||
/* 000EC 808A819C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
|
||||
/* 000F0 808A81A0 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 000F4 808A81A4 9209014C */ lbu $t1, 0x014C($s0) ## 0000014C
|
||||
/* 000F8 808A81A8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 000FC 808A81AC 4600428D */ trunc.w.s $f10, $f8
|
||||
/* 00100 808A81B0 440E3000 */ mfc1 $t6, $f6
|
||||
/* 00104 808A81B4 4600848D */ trunc.w.s $f18, $f16
|
||||
/* 00108 808A81B8 44185000 */ mfc1 $t8, $f10
|
||||
/* 0010C 808A81BC A60E01AA */ sh $t6, 0x01AA($s0) ## 000001AA
|
||||
/* 00110 808A81C0 44089000 */ mfc1 $t0, $f18
|
||||
/* 00114 808A81C4 A61801AC */ sh $t8, 0x01AC($s0) ## 000001AC
|
||||
/* 00118 808A81C8 15200025 */ bne $t1, $zero, .L808A8260
|
||||
/* 0011C 808A81CC A60801AE */ sh $t0, 0x01AE($s0) ## 000001AE
|
||||
/* 00120 808A81D0 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00124 808A81D4 2405001F */ addiu $a1, $zero, 0x001F ## $a1 = 0000001F
|
||||
/* 00128 808A81D8 10400021 */ beq $v0, $zero, .L808A8260
|
||||
/* 0012C 808A81DC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00130 808A81E0 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00134 808A81E4 2405001E */ addiu $a1, $zero, 0x001E ## $a1 = 0000001E
|
||||
/* 00138 808A81E8 1040001D */ beq $v0, $zero, .L808A8260
|
||||
/* 0013C 808A81EC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00140 808A81F0 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00144 808A81F4 2405001D */ addiu $a1, $zero, 0x001D ## $a1 = 0000001D
|
||||
/* 00148 808A81F8 10400019 */ beq $v0, $zero, .L808A8260
|
||||
/* 0014C 808A81FC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00150 808A8200 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00154 808A8204 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 00158 808A8208 14400015 */ bne $v0, $zero, .L808A8260
|
||||
/* 0015C 808A820C 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
|
||||
/* 00160 808A8210 3C014361 */ lui $at, 0x4361 ## $at = 43610000
|
||||
/* 00164 808A8214 44812000 */ mtc1 $at, $f4 ## $f4 = 225.00
|
||||
/* 00168 808A8218 3C01808B */ lui $at, %hi(D_808A8A30) ## $at = 808B0000
|
||||
/* 0016C 808A821C C4268A30 */ lwc1 $f6, %lo(D_808A8A30)($at)
|
||||
/* 00170 808A8220 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 00174 808A8224 AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00178 808A8228 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 0017C 808A822C E7A40010 */ swc1 $f4, 0x0010($sp)
|
||||
/* 00180 808A8230 E7A60014 */ swc1 $f6, 0x0014($sp)
|
||||
/* 00184 808A8234 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
|
||||
/* 00188 808A8238 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 0018C 808A823C 24060091 */ addiu $a2, $zero, 0x0091 ## $a2 = 00000091
|
||||
/* 00190 808A8240 3C0742EE */ lui $a3, 0x42EE ## $a3 = 42EE0000
|
||||
/* 00194 808A8244 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 00198 808A8248 AFAA0024 */ sw $t2, 0x0024($sp)
|
||||
/* 0019C 808A824C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 001A0 808A8250 00310821 */ addu $at, $at, $s1
|
||||
/* 001A4 808A8254 240B0004 */ addiu $t3, $zero, 0x0004 ## $t3 = 00000004
|
||||
/* 001A8 808A8258 1000002D */ beq $zero, $zero, .L808A8310
|
||||
/* 001AC 808A825C A02B0AE3 */ sb $t3, 0x0AE3($at) ## 00010AE3
|
||||
.L808A8260:
|
||||
/* 001B0 808A8260 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 001B4 808A8264 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 001B8 808A8268 2405001C */ addiu $a1, $zero, 0x001C ## $a1 = 0000001C
|
||||
/* 001BC 808A826C 1440001B */ bne $v0, $zero, .L808A82DC
|
||||
/* 001C0 808A8270 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 001C4 808A8274 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 001C8 808A8278 2405001B */ addiu $a1, $zero, 0x001B ## $a1 = 0000001B
|
||||
/* 001CC 808A827C 14400017 */ bne $v0, $zero, .L808A82DC
|
||||
/* 001D0 808A8280 3C014250 */ lui $at, 0x4250 ## $at = 42500000
|
||||
/* 001D4 808A8284 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
|
||||
/* 001D8 808A8288 44815000 */ mtc1 $at, $f10 ## $f10 = 52.00
|
||||
/* 001DC 808A828C 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
|
||||
/* 001E0 808A8290 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
|
||||
/* 001E4 808A8294 460A4400 */ add.s $f16, $f8, $f10
|
||||
/* 001E8 808A8298 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
|
||||
/* 001EC 808A829C 24060091 */ addiu $a2, $zero, 0x0091 ## $a2 = 00000091
|
||||
/* 001F0 808A82A0 E7B00010 */ swc1 $f16, 0x0010($sp)
|
||||
/* 001F4 808A82A4 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
|
||||
/* 001F8 808A82A8 AFA00020 */ sw $zero, 0x0020($sp)
|
||||
/* 001FC 808A82AC AFA0001C */ sw $zero, 0x001C($sp)
|
||||
/* 00200 808A82B0 AFA00018 */ sw $zero, 0x0018($sp)
|
||||
/* 00204 808A82B4 E7B20014 */ swc1 $f18, 0x0014($sp)
|
||||
/* 00208 808A82B8 920C014C */ lbu $t4, 0x014C($s0) ## 0000014C
|
||||
/* 0020C 808A82BC 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
|
||||
/* 00210 808A82C0 000C6A00 */ sll $t5, $t4, 8
|
||||
/* 00214 808A82C4 01AE7821 */ addu $t7, $t5, $t6
|
||||
/* 00218 808A82C8 25F81000 */ addiu $t8, $t7, 0x1000 ## $t8 = 00001000
|
||||
/* 0021C 808A82CC 0C00C7D4 */ jal Actor_Spawn
|
||||
## ActorSpawn
|
||||
/* 00220 808A82D0 AFB80024 */ sw $t8, 0x0024($sp)
|
||||
/* 00224 808A82D4 1000000E */ beq $zero, $zero, .L808A8310
|
||||
/* 00228 808A82D8 00000000 */ nop
|
||||
.L808A82DC:
|
||||
/* 0022C 808A82DC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
|
||||
/* 00230 808A82E0 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00234 808A82E4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 00238 808A82E8 14400009 */ bne $v0, $zero, .L808A8310
|
||||
/* 0023C 808A82EC 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
|
||||
/* 00240 808A82F0 0331C821 */ addu $t9, $t9, $s1
|
||||
/* 00244 808A82F4 93390AE3 */ lbu $t9, 0x0AE3($t9) ## 00010AE3
|
||||
/* 00248 808A82F8 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
|
||||
/* 0024C 808A82FC 24080004 */ addiu $t0, $zero, 0x0004 ## $t0 = 00000004
|
||||
/* 00250 808A8300 17210003 */ bne $t9, $at, .L808A8310
|
||||
/* 00254 808A8304 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00258 808A8308 00310821 */ addu $at, $at, $s1
|
||||
/* 0025C 808A830C A0280AE3 */ sb $t0, 0x0AE3($at) ## 00010AE3
|
||||
.L808A8310:
|
||||
/* 00260 808A8310 0C03F66B */ jal Math_Rand_ZeroOne
|
||||
## Rand.Next() float
|
||||
/* 00264 808A8314 00000000 */ nop
|
||||
/* 00268 808A8318 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
|
||||
/* 0026C 808A831C 44812000 */ mtc1 $at, $f4 ## $f4 = 20.00
|
||||
/* 00270 808A8320 00000000 */ nop
|
||||
/* 00274 808A8324 46040182 */ mul.s $f6, $f0, $f4
|
||||
/* 00278 808A8328 4600320D */ trunc.w.s $f8, $f6
|
||||
/* 0027C 808A832C 440A4000 */ mfc1 $t2, $f8
|
||||
/* 00280 808A8330 00000000 */ nop
|
||||
/* 00284 808A8334 A60A014E */ sh $t2, 0x014E($s0) ## 0000014E
|
||||
/* 00288 808A8338 8FBF0034 */ lw $ra, 0x0034($sp)
|
||||
/* 0028C 808A833C 8FB10030 */ lw $s1, 0x0030($sp)
|
||||
/* 00290 808A8340 8FB0002C */ lw $s0, 0x002C($sp)
|
||||
/* 00294 808A8344 03E00008 */ jr $ra
|
||||
/* 00298 808A8348 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
|
||||
@@ -1,38 +0,0 @@
|
||||
glabel BgPoSyokudai_Update
|
||||
/* 0030C 808A83BC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 00310 808A83C0 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00314 808A83C4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00318 808A83C8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 0031C 808A83CC 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
|
||||
/* 00320 808A83D0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00324 808A83D4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00328 808A83D8 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 0032C 808A83DC 00A12821 */ addu $a1, $a1, $at
|
||||
/* 00330 808A83E0 26060164 */ addiu $a2, $s0, 0x0164 ## $a2 = 00000164
|
||||
/* 00334 808A83E4 AFA60020 */ sw $a2, 0x0020($sp)
|
||||
/* 00338 808A83E8 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 0033C 808A83EC 0C01767D */ jal CollisionCheck_SetAC
|
||||
## CollisionCheck_setAC
|
||||
/* 00340 808A83F0 AFA70034 */ sw $a3, 0x0034($sp)
|
||||
/* 00344 808A83F4 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00348 808A83F8 8FA60020 */ lw $a2, 0x0020($sp)
|
||||
/* 0034C 808A83FC 0C017713 */ jal CollisionCheck_SetOC
|
||||
## CollisionCheck_setOT
|
||||
/* 00350 808A8400 8FA40034 */ lw $a0, 0x0034($sp)
|
||||
/* 00354 808A8404 8FA40034 */ lw $a0, 0x0034($sp)
|
||||
/* 00358 808A8408 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 0035C 808A840C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 00360 808A8410 10400003 */ beq $v0, $zero, .L808A8420
|
||||
/* 00364 808A8414 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00368 808A8418 0C00BE5D */ jal func_8002F974
|
||||
/* 0036C 808A841C 24052031 */ addiu $a1, $zero, 0x2031 ## $a1 = 00002031
|
||||
.L808A8420:
|
||||
/* 00370 808A8420 860E014E */ lh $t6, 0x014E($s0) ## 0000014E
|
||||
/* 00374 808A8424 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
|
||||
/* 00378 808A8428 A60F014E */ sh $t7, 0x014E($s0) ## 0000014E
|
||||
/* 0037C 808A842C 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00380 808A8430 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 00384 808A8434 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 00388 808A8438 03E00008 */ jr $ra
|
||||
/* 0038C 808A843C 00000000 */ nop
|
||||
@@ -1,14 +0,0 @@
|
||||
glabel BgSpot18Shutter_Destroy
|
||||
/* 001AC 808B957C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 001B0 808B9580 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 001B4 808B9584 8FAE0018 */ lw $t6, 0x0018($sp)
|
||||
/* 001B8 808B9588 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 001BC 808B958C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 001C0 808B9590 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
|
||||
/* 001C4 808B9594 0C00FB56 */ jal DynaPolyInfo_Free
|
||||
## DynaPolyInfo_delReserve
|
||||
/* 001C8 808B9598 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
|
||||
/* 001CC 808B959C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 001D0 808B95A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 001D4 808B95A4 03E00008 */ jr $ra
|
||||
/* 001D8 808B95A8 00000000 */ nop
|
||||
@@ -1,15 +0,0 @@
|
||||
glabel BgSpot18Shutter_Draw
|
||||
/* 0044C 808B981C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00450 808B9820 AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 00454 808B9824 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00458 808B9828 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 0045C 808B982C 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
|
||||
/* 00460 808B9830 0C00D498 */ jal Gfx_DrawDListOpa
|
||||
|
||||
/* 00464 808B9834 24A50420 */ addiu $a1, $a1, 0x0420 ## $a1 = 06000420
|
||||
/* 00468 808B9838 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0046C 808B983C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00470 808B9840 03E00008 */ jr $ra
|
||||
/* 00474 808B9844 00000000 */ nop
|
||||
/* 00478 808B9848 00000000 */ nop
|
||||
/* 0047C 808B984C 00000000 */ nop
|
||||
@@ -1,121 +0,0 @@
|
||||
glabel BgSpot18Shutter_Init
|
||||
/* 00000 808B93D0 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00004 808B93D4 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00008 808B93D8 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 0000C 808B93DC AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00010 808B93E0 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
|
||||
/* 00014 808B93E4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00018 808B93E8 AFA00028 */ sw $zero, 0x0028($sp)
|
||||
/* 0001C 808B93EC 000E7A03 */ sra $t7, $t6, 8
|
||||
/* 00020 808B93F0 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
|
||||
/* 00024 808B93F4 AFB8002C */ sw $t8, 0x002C($sp)
|
||||
/* 00028 808B93F8 0C010D20 */ jal DynaPolyInfo_SetActorMove
|
||||
|
||||
/* 0002C 808B93FC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 00030 808B9400 3C05808C */ lui $a1, %hi(D_808B9870) ## $a1 = 808C0000
|
||||
/* 00034 808B9404 24A59870 */ addiu $a1, $a1, %lo(D_808B9870) ## $a1 = 808B9870
|
||||
/* 00038 808B9408 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 0003C 808B940C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00040 808B9410 8FB9002C */ lw $t9, 0x002C($sp)
|
||||
/* 00044 808B9414 3C038016 */ lui $v1, %hi(gSaveContext)
|
||||
/* 00048 808B9418 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
|
||||
/* 0004C 808B941C 1720002D */ bne $t9, $zero, .L808B94D4
|
||||
/* 00050 808B9420 2463E660 */ addiu $v1, %lo(gSaveContext)
|
||||
/* 00054 808B9424 3C038016 */ lui $v1, %hi(gSaveContext)
|
||||
/* 00058 808B9428 2463E660 */ addiu $v1, %lo(gSaveContext)
|
||||
/* 0005C 808B942C 8C680004 */ lw $t0, 0x0004($v1) ## 8015E664
|
||||
/* 00060 808B9430 24020011 */ addiu $v0, $zero, 0x0011 ## $v0 = 00000011
|
||||
/* 00064 808B9434 11000003 */ beq $t0, $zero, .L808B9444
|
||||
/* 00068 808B9438 00000000 */ nop
|
||||
/* 0006C 808B943C 10000001 */ beq $zero, $zero, .L808B9444
|
||||
/* 00070 808B9440 24020005 */ addiu $v0, $zero, 0x0005 ## $v0 = 00000005
|
||||
.L808B9444:
|
||||
/* 00074 808B9444 54410012 */ bnel $v0, $at, .L808B9490
|
||||
/* 00078 808B9448 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
/* 0007C 808B944C 94690F18 */ lhu $t1, 0x0F18($v1) ## 8015F578
|
||||
/* 00080 808B9450 3C0C808C */ lui $t4, %hi(func_808B9618) ## $t4 = 808C0000
|
||||
/* 00084 808B9454 3C014334 */ lui $at, 0x4334 ## $at = 43340000
|
||||
/* 00088 808B9458 312A0200 */ andi $t2, $t1, 0x0200 ## $t2 = 00000000
|
||||
/* 0008C 808B945C 11400009 */ beq $t2, $zero, .L808B9484
|
||||
/* 00090 808B9460 258C9618 */ addiu $t4, $t4, %lo(func_808B9618) ## $t4 = 808B9618
|
||||
/* 00094 808B9464 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
|
||||
/* 00098 808B9468 44813000 */ mtc1 $at, $f6 ## $f6 = 180.00
|
||||
/* 0009C 808B946C 3C0B808C */ lui $t3, %hi(func_808B95AC) ## $t3 = 808C0000
|
||||
/* 000A0 808B9470 256B95AC */ addiu $t3, $t3, %lo(func_808B95AC) ## $t3 = 808B95AC
|
||||
/* 000A4 808B9474 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 000A8 808B9478 AE0B0164 */ sw $t3, 0x0164($s0) ## 00000164
|
||||
/* 000AC 808B947C 10000030 */ beq $zero, $zero, .L808B9540
|
||||
/* 000B0 808B9480 E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
|
||||
.L808B9484:
|
||||
/* 000B4 808B9484 1000002E */ beq $zero, $zero, .L808B9540
|
||||
/* 000B8 808B9488 AE0C0164 */ sw $t4, 0x0164($s0) ## 00000164
|
||||
/* 000BC 808B948C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
|
||||
.L808B9490:
|
||||
/* 000C0 808B9490 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 000C4 808B9494 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 000C8 808B9498 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
|
||||
/* 000CC 808B949C 1040000A */ beq $v0, $zero, .L808B94C8
|
||||
/* 000D0 808B94A0 3C0E808C */ lui $t6, %hi(func_808B95B8) ## $t6 = 808C0000
|
||||
/* 000D4 808B94A4 3C014334 */ lui $at, 0x4334 ## $at = 43340000
|
||||
/* 000D8 808B94A8 44818000 */ mtc1 $at, $f16 ## $f16 = 180.00
|
||||
/* 000DC 808B94AC C60A0028 */ lwc1 $f10, 0x0028($s0) ## 00000028
|
||||
/* 000E0 808B94B0 3C0D808C */ lui $t5, %hi(func_808B95AC) ## $t5 = 808C0000
|
||||
/* 000E4 808B94B4 25AD95AC */ addiu $t5, $t5, %lo(func_808B95AC) ## $t5 = 808B95AC
|
||||
/* 000E8 808B94B8 46105480 */ add.s $f18, $f10, $f16
|
||||
/* 000EC 808B94BC AE0D0164 */ sw $t5, 0x0164($s0) ## 00000164
|
||||
/* 000F0 808B94C0 1000001F */ beq $zero, $zero, .L808B9540
|
||||
/* 000F4 808B94C4 E6120028 */ swc1 $f18, 0x0028($s0) ## 00000028
|
||||
.L808B94C8:
|
||||
/* 000F8 808B94C8 25CE95B8 */ addiu $t6, $t6, %lo(func_808B95B8) ## $t6 = 808B95B8
|
||||
/* 000FC 808B94CC 1000001C */ beq $zero, $zero, .L808B9540
|
||||
/* 00100 808B94D0 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
|
||||
.L808B94D4:
|
||||
/* 00104 808B94D4 946F0F18 */ lhu $t7, 0x0F18($v1) ## 00000F18
|
||||
/* 00108 808B94D8 3C08808C */ lui $t0, %hi(func_808B9618) ## $t0 = 808C0000
|
||||
/* 0010C 808B94DC 25089618 */ addiu $t0, $t0, %lo(func_808B9618) ## $t0 = 808B9618
|
||||
/* 00110 808B94E0 31F80200 */ andi $t8, $t7, 0x0200 ## $t8 = 00000000
|
||||
/* 00114 808B94E4 53000016 */ beql $t8, $zero, .L808B9540
|
||||
/* 00118 808B94E8 AE080164 */ sw $t0, 0x0164($s0) ## 00000164
|
||||
/* 0011C 808B94EC 0C01DE0D */ jal Math_Coss
|
||||
## coss?
|
||||
/* 00120 808B94F0 86040032 */ lh $a0, 0x0032($s0) ## 00000032
|
||||
/* 00124 808B94F4 3C0142FA */ lui $at, 0x42FA ## $at = 42FA0000
|
||||
/* 00128 808B94F8 44813000 */ mtc1 $at, $f6 ## $f6 = 125.00
|
||||
/* 0012C 808B94FC C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
|
||||
/* 00130 808B9500 86040032 */ lh $a0, 0x0032($s0) ## 00000032
|
||||
/* 00134 808B9504 46003202 */ mul.s $f8, $f6, $f0
|
||||
/* 00138 808B9508 46082280 */ add.s $f10, $f4, $f8
|
||||
/* 0013C 808B950C 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 00140 808B9510 E60A0024 */ swc1 $f10, 0x0024($s0) ## 00000024
|
||||
/* 00144 808B9514 3C0142FA */ lui $at, 0x42FA ## $at = 42FA0000
|
||||
/* 00148 808B9518 44819000 */ mtc1 $at, $f18 ## $f18 = 125.00
|
||||
/* 0014C 808B951C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
|
||||
/* 00150 808B9520 3C19808C */ lui $t9, %hi(func_808B95AC) ## $t9 = 808C0000
|
||||
/* 00154 808B9524 46009182 */ mul.s $f6, $f18, $f0
|
||||
/* 00158 808B9528 273995AC */ addiu $t9, $t9, %lo(func_808B95AC) ## $t9 = 808B95AC
|
||||
/* 0015C 808B952C AE190164 */ sw $t9, 0x0164($s0) ## 00000164
|
||||
/* 00160 808B9530 46068101 */ sub.s $f4, $f16, $f6
|
||||
/* 00164 808B9534 10000002 */ beq $zero, $zero, .L808B9540
|
||||
/* 00168 808B9538 E604002C */ swc1 $f4, 0x002C($s0) ## 0000002C
|
||||
/* 0016C 808B953C AE080164 */ sw $t0, 0x0164($s0) ## 00000164
|
||||
.L808B9540:
|
||||
/* 00170 808B9540 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
|
||||
/* 00174 808B9544 24840534 */ addiu $a0, $a0, 0x0534 ## $a0 = 06000534
|
||||
/* 00178 808B9548 0C010620 */ jal DynaPolyInfo_Alloc
|
||||
|
||||
/* 0017C 808B954C 27A50028 */ addiu $a1, $sp, 0x0028 ## $a1 = FFFFFFF0
|
||||
/* 00180 808B9550 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00184 808B9554 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 00188 808B9558 8FA70028 */ lw $a3, 0x0028($sp)
|
||||
/* 0018C 808B955C 0C00FA9D */ jal DynaPolyInfo_RegisterActor
|
||||
## DynaPolyInfo_setActor
|
||||
/* 00190 808B9560 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
|
||||
/* 00194 808B9564 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
|
||||
/* 00198 808B9568 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 0019C 808B956C 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 001A0 808B9570 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
/* 001A4 808B9574 03E00008 */ jr $ra
|
||||
/* 001A8 808B9578 00000000 */ nop
|
||||
@@ -1,10 +0,0 @@
|
||||
glabel BgSpot18Shutter_Update
|
||||
/* 00428 808B97F8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 0042C 808B97FC AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00430 808B9800 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
|
||||
/* 00434 808B9804 0320F809 */ jalr $ra, $t9
|
||||
/* 00438 808B9808 00000000 */ nop
|
||||
/* 0043C 808B980C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00440 808B9810 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00444 808B9814 03E00008 */ jr $ra
|
||||
/* 00448 808B9818 00000000 */ nop
|
||||
@@ -1,4 +0,0 @@
|
||||
glabel func_808B95AC
|
||||
/* 001DC 808B95AC AFA40000 */ sw $a0, 0x0000($sp)
|
||||
/* 001E0 808B95B0 03E00008 */ jr $ra
|
||||
/* 001E4 808B95B4 AFA50004 */ sw $a1, 0x0004($sp)
|
||||
@@ -1,28 +0,0 @@
|
||||
glabel func_808B95B8
|
||||
/* 001E8 808B95B8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 001EC 808B95BC AFA40018 */ sw $a0, 0x0018($sp)
|
||||
/* 001F0 808B95C0 8FAE0018 */ lw $t6, 0x0018($sp)
|
||||
/* 001F4 808B95C4 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 001F8 808B95C8 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 001FC 808B95CC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00200 808B95D0 85C5001C */ lh $a1, 0x001C($t6) ## 0000001C
|
||||
/* 00204 808B95D4 0C00B2D0 */ jal Flags_GetSwitch
|
||||
|
||||
/* 00208 808B95D8 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000
|
||||
/* 0020C 808B95DC 1040000A */ beq $v0, $zero, .L808B9608
|
||||
/* 00210 808B95E0 8FA40018 */ lw $a0, 0x0018($sp)
|
||||
/* 00214 808B95E4 0C00B56E */ jal Actor_SetHeight
|
||||
|
||||
/* 00218 808B95E8 3C05428C */ lui $a1, 0x428C ## $a1 = 428C0000
|
||||
/* 0021C 808B95EC 8FA4001C */ lw $a0, 0x001C($sp)
|
||||
/* 00220 808B95F0 0C020120 */ jal func_80080480
|
||||
/* 00224 808B95F4 8FA50018 */ lw $a1, 0x0018($sp)
|
||||
/* 00228 808B95F8 8FB80018 */ lw $t8, 0x0018($sp)
|
||||
/* 0022C 808B95FC 3C0F808C */ lui $t7, %hi(func_808B9698) ## $t7 = 808C0000
|
||||
/* 00230 808B9600 25EF9698 */ addiu $t7, $t7, %lo(func_808B9698) ## $t7 = 808B9698
|
||||
/* 00234 808B9604 AF0F0164 */ sw $t7, 0x0164($t8) ## 00000164
|
||||
.L808B9608:
|
||||
/* 00238 808B9608 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 0023C 808B960C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00240 808B9610 03E00008 */ jr $ra
|
||||
/* 00244 808B9614 00000000 */ nop
|
||||
@@ -1,36 +0,0 @@
|
||||
glabel func_808B9618
|
||||
/* 00248 808B9618 3C0E8016 */ lui $t6, %hi(gSaveContext+0xf18)
|
||||
/* 0024C 808B961C 95CEF578 */ lhu $t6, %lo(gSaveContext+0xf18)($t6)
|
||||
/* 00250 808B9620 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
|
||||
/* 00254 808B9624 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00258 808B9628 31CF0200 */ andi $t7, $t6, 0x0200 ## $t7 = 00000000
|
||||
/* 0025C 808B962C AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00260 808B9630 11E00015 */ beq $t7, $zero, .L808B9688
|
||||
/* 00264 808B9634 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 00268 808B9638 3C05428C */ lui $a1, 0x428C ## $a1 = 428C0000
|
||||
/* 0026C 808B963C 0C00B56E */ jal Actor_SetHeight
|
||||
|
||||
/* 00270 808B9640 AFA70020 */ sw $a3, 0x0020($sp)
|
||||
/* 00274 808B9644 8FA70020 */ lw $a3, 0x0020($sp)
|
||||
/* 00278 808B9648 3C0A808C */ lui $t2, %hi(func_808B971C) ## $t2 = 808C0000
|
||||
/* 0027C 808B964C 3C09808C */ lui $t1, %hi(func_808B9698) ## $t1 = 808C0000
|
||||
/* 00280 808B9650 84F8001C */ lh $t8, 0x001C($a3) ## 0000001C
|
||||
/* 00284 808B9654 254A971C */ addiu $t2, $t2, %lo(func_808B971C) ## $t2 = 808B971C
|
||||
/* 00288 808B9658 2405107D */ addiu $a1, $zero, 0x107D ## $a1 = 0000107D
|
||||
/* 0028C 808B965C 0018CA03 */ sra $t9, $t8, 8
|
||||
/* 00290 808B9660 33280001 */ andi $t0, $t9, 0x0001 ## $t0 = 00000000
|
||||
/* 00294 808B9664 15000004 */ bne $t0, $zero, .L808B9678
|
||||
/* 00298 808B9668 2406008C */ addiu $a2, $zero, 0x008C ## $a2 = 0000008C
|
||||
/* 0029C 808B966C 25299698 */ addiu $t1, $t1, %lo(func_808B9698) ## $t1 = 808B9698
|
||||
/* 002A0 808B9670 10000005 */ beq $zero, $zero, .L808B9688
|
||||
/* 002A4 808B9674 ACE90164 */ sw $t1, 0x0164($a3) ## 00000164
|
||||
.L808B9678:
|
||||
/* 002A8 808B9678 ACEA0164 */ sw $t2, 0x0164($a3) ## 00000164
|
||||
/* 002AC 808B967C AFA00010 */ sw $zero, 0x0010($sp)
|
||||
/* 002B0 808B9680 0C02003E */ jal func_800800F8
|
||||
/* 002B4 808B9684 8FA40024 */ lw $a0, 0x0024($sp)
|
||||
.L808B9688:
|
||||
/* 002B8 808B9688 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 002BC 808B968C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
|
||||
/* 002C0 808B9690 03E00008 */ jr $ra
|
||||
/* 002C4 808B9694 00000000 */ nop
|
||||
@@ -1,38 +0,0 @@
|
||||
glabel func_808B9698
|
||||
/* 002C8 808B9698 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 002CC 808B969C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 002D0 808B96A0 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 002D4 808B96A4 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 002D8 808B96A8 3C014334 */ lui $at, 0x4334 ## $at = 43340000
|
||||
/* 002DC 808B96AC 44813000 */ mtc1 $at, $f6 ## $f6 = 180.00
|
||||
/* 002E0 808B96B0 C4E4000C */ lwc1 $f4, 0x000C($a3) ## 0000000C
|
||||
/* 002E4 808B96B4 3C063FB8 */ lui $a2, 0x3FB8 ## $a2 = 3FB80000
|
||||
/* 002E8 808B96B8 34C651EC */ ori $a2, $a2, 0x51EC ## $a2 = 3FB851EC
|
||||
/* 002EC 808B96BC 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 002F0 808B96C0 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 002F4 808B96C4 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
|
||||
/* 002F8 808B96C8 44054000 */ mfc1 $a1, $f8
|
||||
/* 002FC 808B96CC 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 00300 808B96D0 00000000 */ nop
|
||||
/* 00304 808B96D4 1040000A */ beq $v0, $zero, .L808B9700
|
||||
/* 00308 808B96D8 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 0030C 808B96DC 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
|
||||
/* 00310 808B96E0 24052893 */ addiu $a1, $zero, 0x2893 ## $a1 = 00002893
|
||||
/* 00314 808B96E4 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 00318 808B96E8 AFA70018 */ sw $a3, 0x0018($sp)
|
||||
/* 0031C 808B96EC 8FA70018 */ lw $a3, 0x0018($sp)
|
||||
/* 00320 808B96F0 3C0E808C */ lui $t6, %hi(func_808B95AC) ## $t6 = 808C0000
|
||||
/* 00324 808B96F4 25CE95AC */ addiu $t6, $t6, %lo(func_808B95AC) ## $t6 = 808B95AC
|
||||
/* 00328 808B96F8 10000004 */ beq $zero, $zero, .L808B970C
|
||||
/* 0032C 808B96FC ACEE0164 */ sw $t6, 0x0164($a3) ## 00000164
|
||||
.L808B9700:
|
||||
/* 00330 808B9700 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
|
||||
/* 00334 808B9704 0C00BE5D */ jal func_8002F974
|
||||
/* 00338 808B9708 2405201E */ addiu $a1, $zero, 0x201E ## $a1 = 0000201E
|
||||
.L808B970C:
|
||||
/* 0033C 808B970C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00340 808B9710 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00344 808B9714 03E00008 */ jr $ra
|
||||
/* 00348 808B9718 00000000 */ nop
|
||||
@@ -1,63 +0,0 @@
|
||||
glabel func_808B971C
|
||||
/* 0034C 808B971C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
|
||||
/* 00350 808B9720 AFB00018 */ sw $s0, 0x0018($sp)
|
||||
/* 00354 808B9724 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00358 808B9728 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 0035C 808B972C AFA50034 */ sw $a1, 0x0034($sp)
|
||||
/* 00360 808B9730 0C01DE1C */ jal Math_Sins
|
||||
## sins?
|
||||
/* 00364 808B9734 84840032 */ lh $a0, 0x0032($a0) ## 00000032
|
||||
/* 00368 808B9738 E7A0002C */ swc1 $f0, 0x002C($sp)
|
||||
/* 0036C 808B973C 0C01DE0D */ jal Math_Coss
|
||||
## coss?
|
||||
/* 00370 808B9740 86040032 */ lh $a0, 0x0032($s0) ## 00000032
|
||||
/* 00374 808B9744 3C0142FA */ lui $at, 0x42FA ## $at = 42FA0000
|
||||
/* 00378 808B9748 44813000 */ mtc1 $at, $f6 ## $f6 = 125.00
|
||||
/* 0037C 808B974C 46000086 */ mov.s $f2, $f0
|
||||
/* 00380 808B9750 C6040008 */ lwc1 $f4, 0x0008($s0) ## 00000008
|
||||
/* 00384 808B9754 46023202 */ mul.s $f8, $f6, $f2
|
||||
/* 00388 808B9758 46000005 */ abs.s $f0, $f0
|
||||
/* 0038C 808B975C 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
|
||||
/* 00390 808B9760 44060000 */ mfc1 $a2, $f0
|
||||
/* 00394 808B9764 46082280 */ add.s $f10, $f4, $f8
|
||||
/* 00398 808B9768 44055000 */ mfc1 $a1, $f10
|
||||
/* 0039C 808B976C 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 003A0 808B9770 00000000 */ nop
|
||||
/* 003A4 808B9774 3C0142FA */ lui $at, 0x42FA ## $at = 42FA0000
|
||||
/* 003A8 808B9778 C7A2002C */ lwc1 $f2, 0x002C($sp)
|
||||
/* 003AC 808B977C 44819000 */ mtc1 $at, $f18 ## $f18 = 125.00
|
||||
/* 003B0 808B9780 C6100010 */ lwc1 $f16, 0x0010($s0) ## 00000010
|
||||
/* 003B4 808B9784 46001005 */ abs.s $f0, $f2
|
||||
/* 003B8 808B9788 46029182 */ mul.s $f6, $f18, $f2
|
||||
/* 003BC 808B978C 30430001 */ andi $v1, $v0, 0x0001 ## $v1 = 00000000
|
||||
/* 003C0 808B9790 44060000 */ mfc1 $a2, $f0
|
||||
/* 003C4 808B9794 AFA30024 */ sw $v1, 0x0024($sp)
|
||||
/* 003C8 808B9798 2604002C */ addiu $a0, $s0, 0x002C ## $a0 = 0000002C
|
||||
/* 003CC 808B979C 46068101 */ sub.s $f4, $f16, $f6
|
||||
/* 003D0 808B97A0 44052000 */ mfc1 $a1, $f4
|
||||
/* 003D4 808B97A4 0C01DE80 */ jal Math_ApproxF
|
||||
|
||||
/* 003D8 808B97A8 00000000 */ nop
|
||||
/* 003DC 808B97AC 8FA30024 */ lw $v1, 0x0024($sp)
|
||||
/* 003E0 808B97B0 24052893 */ addiu $a1, $zero, 0x2893 ## $a1 = 00002893
|
||||
/* 003E4 808B97B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 003E8 808B97B8 00621824 */ and $v1, $v1, $v0
|
||||
/* 003EC 808B97BC 10600007 */ beq $v1, $zero, .L808B97DC
|
||||
/* 003F0 808B97C0 00000000 */ nop
|
||||
/* 003F4 808B97C4 0C00BE0A */ jal Audio_PlayActorSound2
|
||||
|
||||
/* 003F8 808B97C8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 003FC 808B97CC 3C0E808C */ lui $t6, %hi(func_808B95AC) ## $t6 = 808C0000
|
||||
/* 00400 808B97D0 25CE95AC */ addiu $t6, $t6, %lo(func_808B95AC) ## $t6 = 808B95AC
|
||||
/* 00404 808B97D4 10000003 */ beq $zero, $zero, .L808B97E4
|
||||
/* 00408 808B97D8 AE0E0164 */ sw $t6, 0x0164($s0) ## 00000164
|
||||
.L808B97DC:
|
||||
/* 0040C 808B97DC 0C00BE5D */ jal func_8002F974
|
||||
/* 00410 808B97E0 2405201E */ addiu $a1, $zero, 0x201E ## $a1 = 0000201E
|
||||
.L808B97E4:
|
||||
/* 00414 808B97E4 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 00418 808B97E8 8FB00018 */ lw $s0, 0x0018($sp)
|
||||
/* 0041C 808B97EC 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
|
||||
/* 00420 808B97F0 03E00008 */ jr $ra
|
||||
/* 00424 808B97F4 00000000 */ nop
|
||||
@@ -1,21 +0,0 @@
|
||||
glabel ObjHana_Destroy
|
||||
/* 000F8 80B93958 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 000FC 80B9395C AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00100 80B93960 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
|
||||
/* 00104 80B93964 3C1980B9 */ lui $t9, %hi(D_80B93AB0) ## $t9 = 80B90000
|
||||
/* 00108 80B93968 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
|
||||
/* 0010C 80B9396C 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
|
||||
/* 00110 80B93970 000FC100 */ sll $t8, $t7, 4
|
||||
/* 00114 80B93974 0338C821 */ addu $t9, $t9, $t8
|
||||
/* 00118 80B93978 87393AB0 */ lh $t9, %lo(D_80B93AB0)($t9)
|
||||
/* 0011C 80B9397C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 00120 80B93980 07220004 */ bltzl $t9, .L80B93994
|
||||
/* 00124 80B93984 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00128 80B93988 0C0170EB */ jal Collider_DestroyCylinder
|
||||
|
||||
/* 0012C 80B9398C 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
|
||||
/* 00130 80B93990 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L80B93994:
|
||||
/* 00134 80B93994 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 00138 80B93998 03E00008 */ jr $ra
|
||||
/* 0013C 80B9399C 00000000 */ nop
|
||||
@@ -1,18 +0,0 @@
|
||||
glabel ObjHana_Draw
|
||||
/* 001B0 80B93A10 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 001B4 80B93A14 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 001B8 80B93A18 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 001BC 80B93A1C 84EE001C */ lh $t6, 0x001C($a3) ## 0000001C
|
||||
/* 001C0 80B93A20 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 001C4 80B93A24 3C0580B9 */ lui $a1, %hi(D_80B93AA4) ## $a1 = 80B90000
|
||||
/* 001C8 80B93A28 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
|
||||
/* 001CC 80B93A2C 000FC100 */ sll $t8, $t7, 4
|
||||
/* 001D0 80B93A30 00B82821 */ addu $a1, $a1, $t8
|
||||
/* 001D4 80B93A34 0C00D498 */ jal Gfx_DrawDListOpa
|
||||
|
||||
/* 001D8 80B93A38 8CA53AA4 */ lw $a1, %lo(D_80B93AA4)($a1)
|
||||
/* 001DC 80B93A3C 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 001E0 80B93A40 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 001E4 80B93A44 03E00008 */ jr $ra
|
||||
/* 001E8 80B93A48 00000000 */ nop
|
||||
/* 001EC 80B93A4C 00000000 */ nop
|
||||
@@ -1,72 +0,0 @@
|
||||
glabel ObjHana_Init
|
||||
/* 00000 80B93860 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
|
||||
/* 00004 80B93864 AFBF001C */ sw $ra, 0x001C($sp)
|
||||
/* 00008 80B93868 AFB10018 */ sw $s1, 0x0018($sp)
|
||||
/* 0000C 80B9386C AFB00014 */ sw $s0, 0x0014($sp)
|
||||
/* 00010 80B93870 AFA5003C */ sw $a1, 0x003C($sp)
|
||||
/* 00014 80B93874 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
|
||||
/* 00018 80B93878 3C0580B9 */ lui $a1, %hi(D_80B93AD4) ## $a1 = 80B90000
|
||||
/* 0001C 80B9387C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
|
||||
/* 00020 80B93880 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
|
||||
/* 00024 80B93884 A7AF0032 */ sh $t7, 0x0032($sp)
|
||||
/* 00028 80B93888 0C01E037 */ jal Actor_ProcessInitChain
|
||||
|
||||
/* 0002C 80B9388C 24A53AD4 */ addiu $a1, $a1, %lo(D_80B93AD4) ## $a1 = 80B93AD4
|
||||
/* 00030 80B93890 87B80032 */ lh $t8, 0x0032($sp)
|
||||
/* 00034 80B93894 3C0880B9 */ lui $t0, %hi(D_80B93AA4) ## $t0 = 80B90000
|
||||
/* 00038 80B93898 25083AA4 */ addiu $t0, $t0, %lo(D_80B93AA4) ## $t0 = 80B93AA4
|
||||
/* 0003C 80B9389C 0018C900 */ sll $t9, $t8, 4
|
||||
/* 00040 80B938A0 03288821 */ addu $s1, $t9, $t0
|
||||
/* 00044 80B938A4 8E250004 */ lw $a1, 0x0004($s1) ## 00000004
|
||||
/* 00048 80B938A8 0C00B58B */ jal Actor_SetScale
|
||||
|
||||
/* 0004C 80B938AC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00050 80B938B0 C6240008 */ lwc1 $f4, 0x0008($s1) ## 00000008
|
||||
/* 00054 80B938B4 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
|
||||
/* 00058 80B938B8 E60400BC */ swc1 $f4, 0x00BC($s0) ## 000000BC
|
||||
/* 0005C 80B938BC 8629000C */ lh $t1, 0x000C($s1) ## 0000000C
|
||||
/* 00060 80B938C0 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00064 80B938C4 05200015 */ bltz $t1, .L80B9391C
|
||||
/* 00068 80B938C8 00000000 */ nop
|
||||
/* 0006C 80B938CC 0C0170D9 */ jal Collider_InitCylinder
|
||||
|
||||
/* 00070 80B938D0 AFA50024 */ sw $a1, 0x0024($sp)
|
||||
/* 00074 80B938D4 3C0780B9 */ lui $a3, %hi(D_80B93A70) ## $a3 = 80B90000
|
||||
/* 00078 80B938D8 24E73A70 */ addiu $a3, $a3, %lo(D_80B93A70) ## $a3 = 80B93A70
|
||||
/* 0007C 80B938DC 8FA4003C */ lw $a0, 0x003C($sp)
|
||||
/* 00080 80B938E0 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00084 80B938E4 0C01712B */ jal Collider_SetCylinder
|
||||
|
||||
/* 00088 80B938E8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
|
||||
/* 0008C 80B938EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
/* 00090 80B938F0 0C0189B7 */ jal Collider_CylinderUpdate
|
||||
|
||||
/* 00094 80B938F4 8FA50024 */ lw $a1, 0x0024($sp)
|
||||
/* 00098 80B938F8 862A000C */ lh $t2, 0x000C($s1) ## 0000000C
|
||||
/* 0009C 80B938FC 3C0680B9 */ lui $a2, %hi(D_80B93A9C) ## $a2 = 80B90000
|
||||
/* 000A0 80B93900 24C63A9C */ addiu $a2, $a2, %lo(D_80B93A9C) ## $a2 = 80B93A9C
|
||||
/* 000A4 80B93904 A60A018C */ sh $t2, 0x018C($s0) ## 0000018C
|
||||
/* 000A8 80B93908 862B000E */ lh $t3, 0x000E($s1) ## 0000000E
|
||||
/* 000AC 80B9390C 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
|
||||
/* 000B0 80B93910 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
|
||||
/* 000B4 80B93914 0C0187B5 */ jal func_80061ED4
|
||||
/* 000B8 80B93918 A60B018E */ sh $t3, 0x018E($s0) ## 0000018E
|
||||
.L80B9391C:
|
||||
/* 000BC 80B9391C 3C0C80B9 */ lui $t4, %hi(D_80B93AC4) ## $t4 = 80B90000
|
||||
/* 000C0 80B93920 258C3AC4 */ addiu $t4, $t4, %lo(D_80B93AC4) ## $t4 = 80B93AC4
|
||||
/* 000C4 80B93924 162C0007 */ bne $s1, $t4, .L80B93944
|
||||
/* 000C8 80B93928 3C0D8016 */ lui $t5, %hi(gSaveContext+0xedc)
|
||||
/* 000CC 80B9392C 95ADF53C */ lhu $t5, %lo(gSaveContext+0xedc)($t5)
|
||||
/* 000D0 80B93930 31AE0001 */ andi $t6, $t5, 0x0001 ## $t6 = 00000000
|
||||
/* 000D4 80B93934 51C00004 */ beql $t6, $zero, .L80B93948
|
||||
/* 000D8 80B93938 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
/* 000DC 80B9393C 0C00B55C */ jal Actor_Kill
|
||||
|
||||
/* 000E0 80B93940 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
|
||||
.L80B93944:
|
||||
/* 000E4 80B93944 8FBF001C */ lw $ra, 0x001C($sp)
|
||||
.L80B93948:
|
||||
/* 000E8 80B93948 8FB00014 */ lw $s0, 0x0014($sp)
|
||||
/* 000EC 80B9394C 8FB10018 */ lw $s1, 0x0018($sp)
|
||||
/* 000F0 80B93950 03E00008 */ jr $ra
|
||||
/* 000F4 80B93954 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
|
||||
@@ -1,31 +0,0 @@
|
||||
glabel ObjHana_Update
|
||||
/* 00140 80B939A0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
|
||||
/* 00144 80B939A4 AFBF0014 */ sw $ra, 0x0014($sp)
|
||||
/* 00148 80B939A8 AFA5001C */ sw $a1, 0x001C($sp)
|
||||
/* 0014C 80B939AC 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
|
||||
/* 00150 80B939B0 3C1980B9 */ lui $t9, %hi(D_80B93AB0) ## $t9 = 80B90000
|
||||
/* 00154 80B939B4 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000
|
||||
/* 00158 80B939B8 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
|
||||
/* 0015C 80B939BC 000FC100 */ sll $t8, $t7, 4
|
||||
/* 00160 80B939C0 0338C821 */ addu $t9, $t9, $t8
|
||||
/* 00164 80B939C4 87393AB0 */ lh $t9, %lo(D_80B93AB0)($t9)
|
||||
/* 00168 80B939C8 3C0143C8 */ lui $at, 0x43C8 ## $at = 43C80000
|
||||
/* 0016C 80B939CC 0722000D */ bltzl $t9, .L80B93A04
|
||||
/* 00170 80B939D0 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00174 80B939D4 C4840090 */ lwc1 $f4, 0x0090($a0) ## 00000090
|
||||
/* 00178 80B939D8 44813000 */ mtc1 $at, $f6 ## $f6 = 400.00
|
||||
/* 0017C 80B939DC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
|
||||
/* 00180 80B939E0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
|
||||
/* 00184 80B939E4 4606203C */ c.lt.s $f4, $f6
|
||||
/* 00188 80B939E8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
|
||||
/* 0018C 80B939EC 00A12821 */ addu $a1, $a1, $at
|
||||
/* 00190 80B939F0 45020004 */ bc1fl .L80B93A04
|
||||
/* 00194 80B939F4 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
/* 00198 80B939F8 0C017713 */ jal CollisionCheck_SetOC
|
||||
## CollisionCheck_setOT
|
||||
/* 0019C 80B939FC 24E6014C */ addiu $a2, $a3, 0x014C ## $a2 = 0000014C
|
||||
/* 001A0 80B93A00 8FBF0014 */ lw $ra, 0x0014($sp)
|
||||
.L80B93A04:
|
||||
/* 001A4 80B93A04 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
|
||||
/* 001A8 80B93A08 03E00008 */ jr $ra
|
||||
/* 001AC 80B93A0C 00000000 */ nop
|
||||
@@ -63,7 +63,7 @@ glabel D_801336F0
|
||||
glabel D_80133738
|
||||
.incbin "baserom.z64", 0xBAA8D8, 0x90
|
||||
|
||||
glabel D_801337C8
|
||||
glabel gAudioSessionPresets
|
||||
.incbin "baserom.z64", 0xBAA968, 0x5
|
||||
|
||||
glabel D_801337CD
|
||||
|
||||
@@ -48,6 +48,8 @@ glabel jtbl_8014A680
|
||||
|
||||
glabel D_8014A6C0
|
||||
.half 0x1C00
|
||||
|
||||
glabel gTatumsPerBeat
|
||||
.half 0x0030
|
||||
|
||||
glabel D_8014A6C4
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 16
|
||||
|
||||
glabel D_808A8960
|
||||
.word 0x09000D39, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x000C003C, 0x00000000, 0x00000000
|
||||
glabel D_808A898C
|
||||
.word 0xFFAAFFFF, 0xFFC800FF, 0x00AAFFFF, 0xAAFF00FF
|
||||
glabel D_808A899C
|
||||
.word 0x6400FFFF, 0xFF0000FF, 0x0000FFFF, 0x009600FF
|
||||
glabel Bg_Po_Syokudai_InitVars
|
||||
.word 0x01050600, 0x00000000, 0x00A40000, 0x000001B0
|
||||
.word BgPoSyokudai_Init
|
||||
.word BgPoSyokudai_Destroy
|
||||
.word BgPoSyokudai_Update
|
||||
.word BgPoSyokudai_Draw
|
||||
glabel D_808A89CC
|
||||
.word 0x485003E8
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
|
||||
.section .rodata
|
||||
|
||||
.balign 16
|
||||
|
||||
glabel D_808A8A50
|
||||
.incbin "baserom/ovl_Bg_Po_Syokudai", 0x9A0, 0x00000090
|
||||
@@ -1,20 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 16
|
||||
|
||||
glabel Bg_Spot18_Shutter_InitVars
|
||||
.word 0x01C40600, 0x00000030, 0x00AF0000, 0x00000168
|
||||
.word BgSpot18Shutter_Init
|
||||
.word BgSpot18Shutter_Destroy
|
||||
.word BgSpot18Shutter_Update
|
||||
.word BgSpot18Shutter_Draw
|
||||
glabel D_808B9870
|
||||
.word 0x48500064, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
|
||||
.section .rodata
|
||||
|
||||
.balign 16
|
||||
|
||||
glabel D_808B9880
|
||||
.incbin "baserom/ovl_Bg_Spot18_Shutter", 0x4B0, 0x00000090
|
||||
@@ -1,30 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
|
||||
.section .data
|
||||
|
||||
.balign 16
|
||||
|
||||
glabel Obj_Hana_InitVars
|
||||
.word 0x014F0600, 0x00000000, 0x00020000, 0x00000198
|
||||
.word ObjHana_Init
|
||||
.word ObjHana_Destroy
|
||||
.word ObjHana_Update
|
||||
.word ObjHana_Draw
|
||||
glabel D_80B93A70
|
||||
.word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x0008000A, 0x00000000, 0x00000000
|
||||
glabel D_80B93A9C
|
||||
.word 0x0000000C, 0x003CFF00
|
||||
glabel D_80B93AA4
|
||||
.word 0x05000500, 0x3C23D70A, 0x00000000
|
||||
glabel D_80B93AB0
|
||||
.word 0xFFFF0000, 0x0500A880, 0x3DCCCCCD, 0x42680000, 0x000A0012
|
||||
glabel D_80B93AC4
|
||||
.word 0x0500B9D0, 0x3ECCCCCD, 0x00000000, 0x000C002C
|
||||
glabel D_80B93AD4
|
||||
.word 0xC850000A, 0xB0F40384, 0xB0F8003C, 0x30FC0320, 0x00000000, 0x00000000, 0x00000000
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
.include "macro.inc"
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64 # allow use of 64-bit general purpose registers
|
||||
|
||||
.section .rodata
|
||||
|
||||
.balign 16
|
||||
|
||||
glabel D_80B93AF0
|
||||
.incbin "baserom/ovl_Obj_Hana", 0x290, 0x00000070
|
||||
@@ -1,47 +1,71 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
import ast
|
||||
import argparse
|
||||
import subprocess
|
||||
import difflib
|
||||
import string
|
||||
import itertools
|
||||
import threading
|
||||
import queue
|
||||
import time
|
||||
|
||||
|
||||
def fail(msg):
|
||||
print(msg, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
MISSING_PREREQUISITES = (
|
||||
"Missing prerequisite python module {}. "
|
||||
"Run `python3 -m pip install --user colorama ansiwrap attrs watchdog python-Levenshtein` to install prerequisites (python-Levenshtein only needed for --algorithm=levenshtein)."
|
||||
)
|
||||
|
||||
try:
|
||||
import attr
|
||||
from colorama import Fore, Style, Back
|
||||
import ansiwrap
|
||||
import watchdog
|
||||
except ModuleNotFoundError as e:
|
||||
fail(MISSING_PREREQUISITES.format(e.name))
|
||||
|
||||
# Prefer to use diff_settings.py from the current working directory
|
||||
sys.path.insert(0, ".")
|
||||
try:
|
||||
import diff_settings
|
||||
except ModuleNotFoundError:
|
||||
fail("Unable to find diff_settings.py in the same directory.")
|
||||
sys.path.pop(0)
|
||||
|
||||
# ==== CONFIG ====
|
||||
# ==== COMMAND-LINE ====
|
||||
|
||||
try:
|
||||
import argcomplete # type: ignore
|
||||
except ModuleNotFoundError:
|
||||
argcomplete = None
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description="Diff MIPS assembly.")
|
||||
parser.add_argument("start", help="Function name or address to start diffing from.")
|
||||
|
||||
start_argument = parser.add_argument("start", help="Function name or address to start diffing from.")
|
||||
if argcomplete:
|
||||
def complete_symbol(**kwargs):
|
||||
prefix = kwargs["prefix"]
|
||||
if prefix == "":
|
||||
# skip reading the map file, which would
|
||||
# result in a lot of useless completions
|
||||
return []
|
||||
parsed_args = kwargs["parsed_args"]
|
||||
config = {}
|
||||
diff_settings.apply(config, parsed_args)
|
||||
mapfile = config.get("mapfile")
|
||||
if not mapfile:
|
||||
return []
|
||||
completes = []
|
||||
with open(mapfile) as f:
|
||||
data = f.read()
|
||||
# assume symbols are prefixed by a space character
|
||||
search = f" {prefix}"
|
||||
pos = data.find(search)
|
||||
while pos != -1:
|
||||
# skip the space character in the search string
|
||||
pos += 1
|
||||
# assume symbols are suffixed by either a space
|
||||
# character or a (unix-style) line return
|
||||
spacePos = data.find(" ", pos)
|
||||
lineReturnPos = data.find("\n", pos)
|
||||
if lineReturnPos == -1:
|
||||
endPos = spacePos
|
||||
elif spacePos == -1:
|
||||
endPos = lineReturnPos
|
||||
else:
|
||||
endPos = min(spacePos, lineReturnPos)
|
||||
if endPos == -1:
|
||||
match = data[pos:]
|
||||
pos = -1
|
||||
else:
|
||||
match = data[pos:endPos]
|
||||
pos = data.find(search, endPos)
|
||||
completes.append(match)
|
||||
return completes
|
||||
start_argument.completer = complete_symbol
|
||||
|
||||
parser.add_argument("end", nargs="?", help="Address to end diff at.")
|
||||
parser.add_argument(
|
||||
"-o",
|
||||
@@ -49,6 +73,22 @@ parser.add_argument(
|
||||
action="store_true",
|
||||
help="Diff .o files rather than a whole binary. This makes it possible to see symbol names. (Recommended)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-e",
|
||||
"--elf",
|
||||
dest="diff_elf_symbol",
|
||||
help="Diff a given function in two ELFs, one being stripped and the other one non-stripped. Requires objdump from binutils 2.33+.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--source",
|
||||
action="store_true",
|
||||
help="Show source code (if possible). Only works with -o and -e.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--inlines",
|
||||
action="store_true",
|
||||
help="Show inline function calls (if possible). Only works with -o and -e.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--base-asm",
|
||||
dest="base_asm",
|
||||
@@ -116,6 +156,14 @@ parser.add_argument(
|
||||
help="Automatically update when source/object files change. "
|
||||
"Recommended in combination with -m.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"-3",
|
||||
"--threeway",
|
||||
dest="threeway",
|
||||
action="store_true",
|
||||
help="Show a three-way diff between target asm, current asm, and asm "
|
||||
"prior to -w rebuild. Requires -w.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--width",
|
||||
dest="column_width",
|
||||
@@ -126,28 +174,70 @@ parser.add_argument(
|
||||
parser.add_argument(
|
||||
"--algorithm",
|
||||
dest="algorithm",
|
||||
default="difflib",
|
||||
default="levenshtein",
|
||||
choices=["levenshtein", "difflib"],
|
||||
help="Diff algorithm to use.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--max-size",
|
||||
"--max-lines",
|
||||
dest="max_lines",
|
||||
type=int,
|
||||
default=1024,
|
||||
help="The maximum length of the diff, in lines.",
|
||||
)
|
||||
|
||||
# Project-specific flags, e.g. different versions/make arguments.
|
||||
if hasattr(diff_settings, "add_custom_arguments"):
|
||||
diff_settings.add_custom_arguments(parser)
|
||||
diff_settings.add_custom_arguments(parser) # type: ignore
|
||||
|
||||
if argcomplete:
|
||||
argcomplete.autocomplete(parser)
|
||||
|
||||
# ==== IMPORTS ====
|
||||
|
||||
import re
|
||||
import os
|
||||
import ast
|
||||
import subprocess
|
||||
import difflib
|
||||
import string
|
||||
import itertools
|
||||
import threading
|
||||
import queue
|
||||
import time
|
||||
from typing import Any, Dict, List, NamedTuple, Optional, Set, Tuple, Union
|
||||
|
||||
|
||||
MISSING_PREREQUISITES = (
|
||||
"Missing prerequisite python module {}. "
|
||||
"Run `python3 -m pip install --user colorama ansiwrap watchdog python-Levenshtein cxxfilt` to install prerequisites (cxxfilt only needed with --source)."
|
||||
)
|
||||
|
||||
try:
|
||||
from colorama import Fore, Style, Back # type: ignore
|
||||
import ansiwrap # type: ignore
|
||||
import watchdog # type: ignore
|
||||
except ModuleNotFoundError as e:
|
||||
fail(MISSING_PREREQUISITES.format(e.name))
|
||||
|
||||
# ==== CONFIG ====
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Set imgs, map file and make flags in a project-specific manner.
|
||||
config = {}
|
||||
config: Dict[str, Any] = {}
|
||||
diff_settings.apply(config, args)
|
||||
|
||||
arch = config.get("arch", "mips")
|
||||
baseimg = config.get("baseimg", None)
|
||||
myimg = config.get("myimg", None)
|
||||
mapfile = config.get("mapfile", None)
|
||||
makeflags = config.get("makeflags", [])
|
||||
source_directories = config.get("source_directories", None)
|
||||
objdump_executable = config.get("objdump_executable", None)
|
||||
|
||||
MAX_FUNCTION_SIZE_LINES = 4096
|
||||
MAX_FUNCTION_SIZE_LINES = args.max_lines
|
||||
MAX_FUNCTION_SIZE_BYTES = MAX_FUNCTION_SIZE_LINES * 4
|
||||
|
||||
COLOR_ROTATION = [
|
||||
@@ -163,7 +253,7 @@ COLOR_ROTATION = [
|
||||
]
|
||||
|
||||
BUFFER_CMD = ["tail", "-c", str(10 ** 9)]
|
||||
LESS_CMD = ["less", "-Ric"]
|
||||
LESS_CMD = ["less", "-SRic", "-#6"]
|
||||
|
||||
DEBOUNCE_DELAY = 0.1
|
||||
FS_WATCH_EXTENSIONS = [".c", ".h"]
|
||||
@@ -172,29 +262,34 @@ FS_WATCH_EXTENSIONS = [".c", ".h"]
|
||||
|
||||
if args.algorithm == "levenshtein":
|
||||
try:
|
||||
import Levenshtein
|
||||
import Levenshtein # type: ignore
|
||||
except ModuleNotFoundError as e:
|
||||
fail(MISSING_PREREQUISITES.format(e.name))
|
||||
|
||||
binutils_prefix = None
|
||||
|
||||
for binutils_cand in ["mips-linux-gnu-", "mips64-elf-"]:
|
||||
if args.source:
|
||||
try:
|
||||
subprocess.check_call(
|
||||
[binutils_cand + "objdump", "--version"],
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
)
|
||||
binutils_prefix = binutils_cand
|
||||
break
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
import cxxfilt # type: ignore
|
||||
except ModuleNotFoundError as e:
|
||||
fail(MISSING_PREREQUISITES.format(e.name))
|
||||
|
||||
if not binutils_prefix:
|
||||
if objdump_executable is None:
|
||||
for objdump_cand in ["mips-linux-gnu-objdump", "mips64-elf-objdump"]:
|
||||
try:
|
||||
subprocess.check_call(
|
||||
[objdump_cand, "--version"],
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
)
|
||||
objdump_executable = objdump_cand
|
||||
break
|
||||
except subprocess.CalledProcessError:
|
||||
pass
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
if not objdump_executable:
|
||||
fail(
|
||||
"Missing binutils; please ensure mips-linux-gnu-objdump or mips64-elf-objdump exist."
|
||||
"Missing binutils; please ensure mips-linux-gnu-objdump or mips64-elf-objdump exist, or configure objdump_executable."
|
||||
)
|
||||
|
||||
|
||||
@@ -210,6 +305,10 @@ def eval_int(expr, emsg=None):
|
||||
return None
|
||||
|
||||
|
||||
def eval_line_num(expr):
|
||||
return int(expr.strip().replace(":", ""), 16)
|
||||
|
||||
|
||||
def run_make(target, capture_output=False):
|
||||
if capture_output:
|
||||
return subprocess.run(
|
||||
@@ -235,10 +334,26 @@ def restrict_to_function(dump, fn_name):
|
||||
return "\n".join(out)
|
||||
|
||||
|
||||
def maybe_get_objdump_source_flags():
|
||||
if not args.source:
|
||||
return []
|
||||
|
||||
flags = [
|
||||
"--source",
|
||||
"--source-comment=| ",
|
||||
"-l",
|
||||
]
|
||||
|
||||
if args.inlines:
|
||||
flags.append("--inlines")
|
||||
|
||||
return flags
|
||||
|
||||
|
||||
def run_objdump(cmd):
|
||||
flags, target, restrict = cmd
|
||||
out = subprocess.check_output(
|
||||
[binutils_prefix + "objdump"] + flags + [target], universal_newlines=True
|
||||
[objdump_executable] + arch_flags + flags + [target], universal_newlines=True
|
||||
)
|
||||
if restrict is not None:
|
||||
return restrict_to_function(out, restrict)
|
||||
@@ -291,6 +406,36 @@ def search_map_file(fn_name):
|
||||
return None, None
|
||||
|
||||
|
||||
def dump_elf():
|
||||
if not baseimg or not myimg:
|
||||
fail("Missing myimg/baseimg in config.")
|
||||
if base_shift:
|
||||
fail("--base-shift not compatible with -e")
|
||||
|
||||
start_addr = eval_int(args.start, "Start address must be an integer expression.")
|
||||
|
||||
if args.end is not None:
|
||||
end_addr = eval_int(args.end, "End address must be an integer expression.")
|
||||
else:
|
||||
end_addr = start_addr + MAX_FUNCTION_SIZE_BYTES
|
||||
|
||||
flags1 = [
|
||||
f"--start-address={start_addr}",
|
||||
f"--stop-address={end_addr}",
|
||||
]
|
||||
|
||||
flags2 = [
|
||||
f"--disassemble={args.diff_elf_symbol}",
|
||||
]
|
||||
|
||||
objdump_flags = ["-drz", "-j", ".text"]
|
||||
return (
|
||||
myimg,
|
||||
(objdump_flags + flags1, baseimg, None),
|
||||
(objdump_flags + flags2 + maybe_get_objdump_source_flags(), myimg, None),
|
||||
)
|
||||
|
||||
|
||||
def dump_objfile():
|
||||
if base_shift:
|
||||
fail("--base-shift not compatible with -o")
|
||||
@@ -317,7 +462,7 @@ def dump_objfile():
|
||||
return (
|
||||
objfile,
|
||||
(objdump_flags, refobjfile, args.start),
|
||||
(objdump_flags, objfile, args.start),
|
||||
(objdump_flags + maybe_get_objdump_source_flags(), objfile, args.start),
|
||||
)
|
||||
|
||||
|
||||
@@ -357,29 +502,47 @@ def ansi_ljust(s, width):
|
||||
return s
|
||||
|
||||
|
||||
re_int = re.compile(r"[0-9]+")
|
||||
re_comments = re.compile(r"<.*?>")
|
||||
re_regs = re.compile(r"\$?\b(a[0-3]|t[0-9]|s[0-8]|at|v[01]|f[12]?[0-9]|f3[01]|fp)\b")
|
||||
re_sprel = re.compile(r",([1-9][0-9]*|0x[1-9a-f][0-9a-f]*)\(sp\)")
|
||||
re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}")
|
||||
re_imm = re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(sp)|%(lo|hi)\([^)]*\)")
|
||||
forbidden = set(string.ascii_letters + "_")
|
||||
branch_likely_instructions = {
|
||||
"beql",
|
||||
"bnel",
|
||||
"beqzl",
|
||||
"bnezl",
|
||||
"bgezl",
|
||||
"bgtzl",
|
||||
"blezl",
|
||||
"bltzl",
|
||||
"bc1tl",
|
||||
"bc1fl",
|
||||
}
|
||||
branch_instructions = branch_likely_instructions.union(
|
||||
{"b", "beq", "bne", "beqz", "bnez", "bgez", "bgtz", "blez", "bltz", "bc1t", "bc1f"}
|
||||
)
|
||||
jump_instructions = branch_instructions.union({"jal", "j"})
|
||||
if arch == "mips":
|
||||
re_int = re.compile(r"[0-9]+")
|
||||
re_comment = re.compile(r"<.*?>")
|
||||
re_reg = re.compile(r"\$?\b(a[0-3]|t[0-9]|s[0-8]|at|v[01]|f[12]?[0-9]|f3[01]|k[01]|fp|ra)\b")
|
||||
re_sprel = re.compile(r"(?<=,)([0-9]+|0x[0-9a-f]+)\(sp\)")
|
||||
re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}")
|
||||
re_imm = re.compile(r"(\b|-)([0-9]+|0x[0-9a-fA-F]+)\b(?!\(sp)|%(lo|hi)\([^)]*\)")
|
||||
forbidden = set(string.ascii_letters + "_")
|
||||
arch_flags = ["-m", "mips:4300"]
|
||||
branch_likely_instructions = {
|
||||
"beql",
|
||||
"bnel",
|
||||
"beqzl",
|
||||
"bnezl",
|
||||
"bgezl",
|
||||
"bgtzl",
|
||||
"blezl",
|
||||
"bltzl",
|
||||
"bc1tl",
|
||||
"bc1fl",
|
||||
}
|
||||
branch_instructions = branch_likely_instructions.union(
|
||||
{"b", "beq", "bne", "beqz", "bnez", "bgez", "bgtz", "blez", "bltz", "bc1t", "bc1f"}
|
||||
)
|
||||
instructions_with_address_immediates = branch_instructions.union({"jal", "j"})
|
||||
elif arch == "aarch64":
|
||||
re_int = re.compile(r"[0-9]+")
|
||||
re_comment = re.compile(r"(<.*?>|//.*$)")
|
||||
# GPRs and FP registers: X0-X30, W0-W30, [DSHQ]0..31
|
||||
# The zero registers and SP should not be in this list.
|
||||
re_reg = re.compile(r"\$?\b([dshq][12]?[0-9]|[dshq]3[01]|[xw][12]?[0-9]|[xw]30)\b")
|
||||
re_sprel = re.compile(r"sp, #-?(0x[0-9a-fA-F]+|[0-9]+)\b")
|
||||
re_large_imm = re.compile(r"-?[1-9][0-9]{2,}|-?0x[0-9a-f]{3,}")
|
||||
re_imm = re.compile(r"(?<!sp, )#-?(0x[0-9a-fA-F]+|[0-9]+)\b")
|
||||
arch_flags = []
|
||||
forbidden = set(string.ascii_letters + "_")
|
||||
branch_likely_instructions = set()
|
||||
branch_instructions = {"bl", "b", "b.eq", "b.ne", "b.cs", "b.hs", "b.cc", "b.lo", "b.mi", "b.pl", "b.vs", "b.vc", "b.hi", "b.ls", "b.ge", "b.lt", "b.gt", "b.le", "cbz", "cbnz", "tbz", "tbnz"}
|
||||
instructions_with_address_immediates = branch_instructions.union({"adrp"})
|
||||
else:
|
||||
fail("Unknown architecture.")
|
||||
|
||||
|
||||
def hexify_int(row, pat):
|
||||
@@ -412,11 +575,18 @@ def parse_relocated_line(line):
|
||||
return before, imm, after
|
||||
|
||||
|
||||
def process_reloc(row, prev):
|
||||
def process_mips_reloc(row, prev):
|
||||
before, imm, after = parse_relocated_line(prev)
|
||||
repl = row.split()[-1]
|
||||
if imm != "0":
|
||||
if before.strip() == "jal" and not imm.startswith("0x"):
|
||||
# MIPS uses relocations with addends embedded in the code as immediates.
|
||||
# If there is an immediate, show it as part of the relocation. Ideally
|
||||
# we'd show this addend in both %lo/%hi, but annoyingly objdump's output
|
||||
# doesn't include enough information to pair up %lo's and %hi's...
|
||||
# TODO: handle unambiguous cases where all addends for a symbol are the
|
||||
# same, or show "+???".
|
||||
mnemonic = prev.split()[0]
|
||||
if mnemonic in instructions_with_address_immediates and not imm.startswith("0x"):
|
||||
imm = "0x" + imm
|
||||
repl += "+" + imm if int(imm, 0) > 0 else imm
|
||||
if "R_MIPS_LO16" in row:
|
||||
@@ -431,38 +601,63 @@ def process_reloc(row, prev):
|
||||
return before + repl + after
|
||||
|
||||
|
||||
def pad_mnemonic(line):
|
||||
if "\t" not in line:
|
||||
return line
|
||||
mn, args = line.split("\t", 1)
|
||||
return f"{mn:<7s} {args}"
|
||||
|
||||
|
||||
class Line(NamedTuple):
|
||||
mnemonic: str
|
||||
diff_row: str
|
||||
original: str
|
||||
line_num: str
|
||||
branch_target: Optional[str]
|
||||
source_lines: List[str]
|
||||
comment: Optional[str]
|
||||
|
||||
|
||||
def process(lines):
|
||||
mnemonics = []
|
||||
diff_rows = []
|
||||
rows_with_imms = []
|
||||
skip_next = False
|
||||
originals = []
|
||||
line_nums = []
|
||||
branch_targets = []
|
||||
source_lines = []
|
||||
if not args.diff_obj:
|
||||
lines = lines[7:]
|
||||
if lines and not lines[-1]:
|
||||
lines.pop()
|
||||
|
||||
output = []
|
||||
stop_after_delay_slot = False
|
||||
for row in lines:
|
||||
if args.diff_obj and (">:" in row or not row):
|
||||
continue
|
||||
|
||||
if "R_MIPS_" in row:
|
||||
# N.B. Don't transform the diff rows, they already ignore immediates
|
||||
# if diff_rows[-1] != '<delay-slot>':
|
||||
# diff_rows[-1] = process_reloc(row, rows_with_imms[-1])
|
||||
originals[-1] = process_reloc(row, originals[-1])
|
||||
if args.source and (row and row[0] != " "):
|
||||
source_lines.append(row)
|
||||
continue
|
||||
|
||||
row = re.sub(re_comments, "", row)
|
||||
if "R_AARCH64_" in row:
|
||||
# TODO: handle relocation
|
||||
continue
|
||||
|
||||
if "R_MIPS_" in row:
|
||||
# N.B. Don't transform the diff rows, they already ignore immediates
|
||||
# if output[-1].diff_row != "<delay-slot>":
|
||||
# output[-1] = output[-1].replace(diff_row=process_mips_reloc(row, output[-1].row_with_imm))
|
||||
new_original = process_mips_reloc(row, output[-1].original)
|
||||
output[-1] = output[-1]._replace(original=new_original)
|
||||
continue
|
||||
|
||||
m_comment = re.search(re_comment, row)
|
||||
comment = m_comment[0] if m_comment else None
|
||||
row = re.sub(re_comment, "", row)
|
||||
row = row.rstrip()
|
||||
tabs = row.split("\t")
|
||||
row = "\t".join(tabs[2:])
|
||||
line_num = tabs[0].strip()
|
||||
row_parts = row.split("\t", 1)
|
||||
mnemonic = row_parts[0].strip()
|
||||
if mnemonic not in jump_instructions:
|
||||
if mnemonic not in instructions_with_address_immediates:
|
||||
row = re.sub(re_int, lambda s: hexify_int(row, s), row)
|
||||
original = row
|
||||
if skip_next:
|
||||
@@ -471,42 +666,46 @@ def process(lines):
|
||||
mnemonic = "<delay-slot>"
|
||||
if mnemonic in branch_likely_instructions:
|
||||
skip_next = True
|
||||
row = re.sub(re_regs, "<reg>", row)
|
||||
row = re.sub(re_sprel, ",addr(sp)", row)
|
||||
row = re.sub(re_reg, "<reg>", row)
|
||||
row = re.sub(re_sprel, "addr(sp)", row)
|
||||
row_with_imm = row
|
||||
if mnemonic in jump_instructions:
|
||||
if mnemonic in instructions_with_address_immediates:
|
||||
row = row.strip()
|
||||
row, _ = split_off_branch(row)
|
||||
row += "<imm>"
|
||||
else:
|
||||
row = re.sub(re_imm, "<imm>", row)
|
||||
row = normalize_imms(row)
|
||||
|
||||
mnemonics.append(mnemonic)
|
||||
rows_with_imms.append(row_with_imm)
|
||||
diff_rows.append(row)
|
||||
originals.append(original)
|
||||
line_nums.append(line_num)
|
||||
branch_target = None
|
||||
if mnemonic in branch_instructions:
|
||||
target = row_parts[1].strip().split(",")[-1]
|
||||
if mnemonic in branch_likely_instructions:
|
||||
target = hex(int(target, 16) - 4)[2:]
|
||||
branch_targets.append(target)
|
||||
else:
|
||||
branch_targets.append(None)
|
||||
branch_target = target.strip()
|
||||
|
||||
output.append(
|
||||
Line(
|
||||
mnemonic=mnemonic,
|
||||
diff_row=row,
|
||||
original=original,
|
||||
line_num=line_num,
|
||||
branch_target=branch_target,
|
||||
source_lines=source_lines,
|
||||
comment=comment,
|
||||
)
|
||||
)
|
||||
source_lines = []
|
||||
|
||||
if args.stop_jrra and mnemonic == "jr" and row_parts[1].strip() == "ra":
|
||||
stop_after_delay_slot = True
|
||||
elif stop_after_delay_slot:
|
||||
break
|
||||
|
||||
# Cleanup whitespace
|
||||
originals = [original.strip() for original in originals]
|
||||
originals = [
|
||||
"".join(f"{o:<8s}" for o in original.split("\t")) for original in originals
|
||||
]
|
||||
# return diff_rows, diff_rows, line_nums
|
||||
return mnemonics, diff_rows, originals, line_nums, branch_targets
|
||||
return output
|
||||
|
||||
|
||||
def format_single_line_diff(line1, line2, column_width):
|
||||
return f"{ansi_ljust(line1,column_width)}{ansi_ljust(line2,column_width)}"
|
||||
return f"{ansi_ljust(line1,column_width)}{line2}"
|
||||
|
||||
|
||||
class SymbolColorer:
|
||||
@@ -535,10 +734,14 @@ def normalize_imms(row):
|
||||
return re.sub(re_imm, "<imm>", row)
|
||||
|
||||
|
||||
def normalize_stack(row):
|
||||
return re.sub(re_sprel, "addr(sp)", row)
|
||||
|
||||
|
||||
def split_off_branch(line):
|
||||
parts = line.split(",")
|
||||
if len(parts) < 2:
|
||||
parts = line.split()
|
||||
parts = line.split(None, 1)
|
||||
off = len(line) - len(parts[-1])
|
||||
return line[:off], line[off:]
|
||||
|
||||
@@ -600,21 +803,30 @@ def diff_sequences(seq1, seq2):
|
||||
return Levenshtein.opcodes(seq1, seq2)
|
||||
|
||||
|
||||
def do_diff(basedump, mydump):
|
||||
asm_lines1 = basedump.split("\n")
|
||||
asm_lines2 = mydump.split("\n")
|
||||
class OutputLine:
|
||||
base: Optional[str]
|
||||
fmt2: str
|
||||
key2: str
|
||||
|
||||
output = []
|
||||
def __init__(self, base: Optional[str], fmt2: str, key2: str) -> None:
|
||||
self.base = base
|
||||
self.fmt2 = fmt2
|
||||
self.key2 = key2
|
||||
|
||||
# TODO: status line?
|
||||
# output.append(sha1sum(mydump))
|
||||
def __eq__(self, other: object) -> bool:
|
||||
if not isinstance(other, OutputLine):
|
||||
return NotImplemented
|
||||
return self.key2 == other.key2
|
||||
|
||||
mnemonics1, asm_lines1, originals1, line_nums1, branch_targets1 = process(
|
||||
asm_lines1
|
||||
)
|
||||
mnemonics2, asm_lines2, originals2, line_nums2, branch_targets2 = process(
|
||||
asm_lines2
|
||||
)
|
||||
def __hash__(self) -> int:
|
||||
return hash(self.key2)
|
||||
|
||||
|
||||
def do_diff(basedump: str, mydump: str) -> List[OutputLine]:
|
||||
output: List[OutputLine] = []
|
||||
|
||||
lines1 = process(basedump.split("\n"))
|
||||
lines2 = process(mydump.split("\n"))
|
||||
|
||||
sc1 = SymbolColorer(0)
|
||||
sc2 = SymbolColorer(0)
|
||||
@@ -622,141 +834,227 @@ def do_diff(basedump, mydump):
|
||||
sc4 = SymbolColorer(4)
|
||||
sc5 = SymbolColorer(0)
|
||||
sc6 = SymbolColorer(0)
|
||||
bts1 = set()
|
||||
bts2 = set()
|
||||
bts1: Set[str] = set()
|
||||
bts2: Set[str] = set()
|
||||
|
||||
if args.show_branches:
|
||||
for (bts, btset, sc) in [
|
||||
(branch_targets1, bts1, sc5),
|
||||
(branch_targets2, bts2, sc6),
|
||||
for (lines, btset, sc) in [
|
||||
(lines1, bts1, sc5),
|
||||
(lines2, bts2, sc6),
|
||||
]:
|
||||
for bt in bts:
|
||||
for line in lines:
|
||||
bt = line.branch_target
|
||||
if bt is not None:
|
||||
btset.add(bt + ":")
|
||||
sc.color_symbol(bt + ":")
|
||||
|
||||
for (tag, i1, i2, j1, j2) in diff_sequences(mnemonics1, mnemonics2):
|
||||
lines1 = asm_lines1[i1:i2]
|
||||
lines2 = asm_lines2[j1:j2]
|
||||
|
||||
for k, (line1, line2) in enumerate(itertools.zip_longest(lines1, lines2)):
|
||||
for (tag, i1, i2, j1, j2) in diff_sequences(
|
||||
[line.mnemonic for line in lines1], [line.mnemonic for line in lines2]
|
||||
):
|
||||
for line1, line2 in itertools.zip_longest(lines1[i1:i2], lines2[j1:j2]):
|
||||
if tag == "replace":
|
||||
if line1 is None:
|
||||
tag = "insert"
|
||||
elif line2 is None:
|
||||
tag = "delete"
|
||||
|
||||
try:
|
||||
original1 = originals1[i1 + k]
|
||||
line_num1 = line_nums1[i1 + k]
|
||||
except:
|
||||
original1 = ""
|
||||
line_num1 = ""
|
||||
try:
|
||||
original2 = originals2[j1 + k]
|
||||
line_num2 = line_nums2[j1 + k]
|
||||
except:
|
||||
original2 = ""
|
||||
line_num2 = ""
|
||||
elif tag == "insert":
|
||||
assert line1 is None
|
||||
elif tag == "delete":
|
||||
assert line2 is None
|
||||
|
||||
line_color1 = line_color2 = sym_color = Fore.RESET
|
||||
line_prefix = " "
|
||||
if line1 == line2:
|
||||
if maybe_normalize_large_imms(original1) == maybe_normalize_large_imms(
|
||||
original2
|
||||
):
|
||||
out1 = f"{original1}"
|
||||
out2 = f"{original2}"
|
||||
elif line1 == "<delay-slot>":
|
||||
out1 = f"{Style.DIM}{original1}"
|
||||
out2 = f"{Style.DIM}{original2}"
|
||||
if line1 and line2 and line1.diff_row == line2.diff_row:
|
||||
if maybe_normalize_large_imms(
|
||||
line1.original
|
||||
) == maybe_normalize_large_imms(line2.original):
|
||||
out1 = line1.original
|
||||
out2 = line2.original
|
||||
elif line1.diff_row == "<delay-slot>":
|
||||
out1 = f"{Style.BRIGHT}{Fore.LIGHTBLACK_EX}{line1.original}"
|
||||
out2 = f"{Style.BRIGHT}{Fore.LIGHTBLACK_EX}{line2.original}"
|
||||
else:
|
||||
mnemonic = original1.split()[0]
|
||||
out1, out2 = original1, original2
|
||||
mnemonic = line1.original.split()[0]
|
||||
out1, out2 = line1.original, line2.original
|
||||
branch1 = branch2 = ""
|
||||
if mnemonic in jump_instructions:
|
||||
out1, branch1 = split_off_branch(original1)
|
||||
out2, branch2 = split_off_branch(original2)
|
||||
if mnemonic in instructions_with_address_immediates:
|
||||
out1, branch1 = split_off_branch(line1.original)
|
||||
out2, branch2 = split_off_branch(line2.original)
|
||||
branchless1 = out1
|
||||
branchless2 = out2
|
||||
out1, out2 = color_imms(out1, out2)
|
||||
branch1, branch2 = color_branch_imms(branch1, branch2)
|
||||
|
||||
same_relative_target = False
|
||||
if line1.branch_target is not None and line2.branch_target is not None:
|
||||
relative_target1 = eval_line_num(line1.branch_target) - eval_line_num(line1.line_num)
|
||||
relative_target2 = eval_line_num(line2.branch_target) - eval_line_num(line2.line_num)
|
||||
same_relative_target = relative_target1 == relative_target2
|
||||
|
||||
if not same_relative_target:
|
||||
branch1, branch2 = color_branch_imms(branch1, branch2)
|
||||
|
||||
out1 += branch1
|
||||
out2 += branch2
|
||||
if normalize_imms(branchless1) == normalize_imms(branchless2):
|
||||
# only imms differences
|
||||
sym_color = Fore.LIGHTBLUE_EX
|
||||
line_prefix = "i"
|
||||
if not same_relative_target:
|
||||
# only imms differences
|
||||
sym_color = Fore.LIGHTBLUE_EX
|
||||
line_prefix = "i"
|
||||
else:
|
||||
# regs differences and maybe imms as well
|
||||
line_color1 = line_color2 = sym_color = Fore.YELLOW
|
||||
line_prefix = "r"
|
||||
out1 = re.sub(
|
||||
re_regs, lambda s: sc1.color_symbol(s.group()), out1
|
||||
re_sprel, lambda s: sc3.color_symbol(s.group()), out1,
|
||||
)
|
||||
out2 = re.sub(
|
||||
re_regs, lambda s: sc2.color_symbol(s.group()), out2
|
||||
re_sprel, lambda s: sc4.color_symbol(s.group()), out2,
|
||||
)
|
||||
out1 = re.sub(
|
||||
re_sprel, lambda s: sc3.color_symbol(s.group()), out1
|
||||
)
|
||||
out2 = re.sub(
|
||||
re_sprel, lambda s: sc4.color_symbol(s.group()), out2
|
||||
)
|
||||
out1 = f"{Fore.YELLOW}{out1}{Style.RESET_ALL}"
|
||||
out2 = f"{Fore.YELLOW}{out2}{Style.RESET_ALL}"
|
||||
elif tag in ["replace", "equal"]:
|
||||
if normalize_stack(branchless1) == normalize_stack(branchless2):
|
||||
# only stack differences (luckily stack and imm
|
||||
# differences can't be combined in MIPS, so we
|
||||
# don't have to think about that case)
|
||||
sym_color = Fore.YELLOW
|
||||
line_prefix = "s"
|
||||
else:
|
||||
# regs differences and maybe imms as well
|
||||
out1 = re.sub(
|
||||
re_reg, lambda s: sc1.color_symbol(s.group()), out1
|
||||
)
|
||||
out2 = re.sub(
|
||||
re_reg, lambda s: sc2.color_symbol(s.group()), out2
|
||||
)
|
||||
line_color1 = line_color2 = sym_color = Fore.YELLOW
|
||||
line_prefix = "r"
|
||||
elif line1 and line2:
|
||||
line_prefix = "|"
|
||||
line_color1 = Fore.LIGHTBLUE_EX
|
||||
line_color2 = Fore.LIGHTBLUE_EX
|
||||
sym_color = Fore.LIGHTBLUE_EX
|
||||
out1 = f"{Fore.LIGHTBLUE_EX}{original1}{Style.RESET_ALL}"
|
||||
out2 = f"{Fore.LIGHTBLUE_EX}{original2}{Style.RESET_ALL}"
|
||||
elif tag == "delete":
|
||||
out1 = line1.original
|
||||
out2 = line2.original
|
||||
elif line1:
|
||||
line_prefix = "<"
|
||||
line_color1 = line_color2 = sym_color = Fore.RED
|
||||
out1 = f"{Fore.RED}{original1}{Style.RESET_ALL}"
|
||||
line_color1 = sym_color = Fore.RED
|
||||
out1 = line1.original
|
||||
out2 = ""
|
||||
elif tag == "insert":
|
||||
elif line2:
|
||||
line_prefix = ">"
|
||||
line_color1 = line_color2 = sym_color = Fore.GREEN
|
||||
line_color2 = sym_color = Fore.GREEN
|
||||
out1 = ""
|
||||
out2 = f"{Fore.GREEN}{original2}{Style.RESET_ALL}"
|
||||
out2 = line2.original
|
||||
|
||||
in_arrow1 = " "
|
||||
in_arrow2 = " "
|
||||
out_arrow1 = ""
|
||||
out_arrow2 = ""
|
||||
line_num1 = line_num1 if out1 else ""
|
||||
line_num2 = line_num2 if out2 else ""
|
||||
if args.source and line2 and line2.comment:
|
||||
out2 += f" {line2.comment}"
|
||||
|
||||
if args.show_branches and out1:
|
||||
if line_num1 in bts1:
|
||||
in_arrow1 = sc5.color_symbol(line_num1, "~>")
|
||||
if branch_targets1[i1 + k] is not None:
|
||||
out_arrow1 = " " + sc5.color_symbol(
|
||||
branch_targets1[i1 + k] + ":", "~>"
|
||||
)
|
||||
if args.show_branches and out2:
|
||||
if line_num2 in bts2:
|
||||
in_arrow2 = sc6.color_symbol(line_num2, "~>")
|
||||
if branch_targets2[j1 + k] is not None:
|
||||
out_arrow2 = " " + sc6.color_symbol(
|
||||
branch_targets2[j1 + k] + ":", "~>"
|
||||
)
|
||||
def format_part(out: str, line: Optional[Line], line_color: str, btset: Set[str], sc: SymbolColorer) -> Optional[str]:
|
||||
if line is None:
|
||||
return None
|
||||
in_arrow = " "
|
||||
out_arrow = ""
|
||||
if args.show_branches:
|
||||
if line.line_num in btset:
|
||||
in_arrow = sc.color_symbol(line.line_num, "~>") + line_color
|
||||
if line.branch_target is not None:
|
||||
out_arrow = " " + sc.color_symbol(line.branch_target + ":", "~>")
|
||||
out = pad_mnemonic(out)
|
||||
return f"{line_color}{line.line_num} {in_arrow} {out}{Style.RESET_ALL}{out_arrow}"
|
||||
|
||||
if sym_color == line_color2:
|
||||
line_color2 = ""
|
||||
out1 = f"{line_color1}{line_num1} {in_arrow1} {out1}{Style.RESET_ALL}{out_arrow1}"
|
||||
out2 = f"{sym_color}{line_prefix} {line_color2}{line_num2} {in_arrow2} {out2}{Style.RESET_ALL}{out_arrow2}"
|
||||
output.append(format_single_line_diff(out1, out2, args.column_width))
|
||||
part1 = format_part(out1, line1, line_color1, bts1, sc5)
|
||||
part2 = format_part(out2, line2, line_color2, bts2, sc6)
|
||||
key2 = line2.original if line2 else ""
|
||||
|
||||
return output[args.skip_lines :]
|
||||
mid = f"{sym_color}{line_prefix}"
|
||||
|
||||
if line2:
|
||||
for source_line in line2.source_lines:
|
||||
color = Style.DIM
|
||||
# File names and function names
|
||||
if source_line and source_line[0] != "|":
|
||||
color += Style.BRIGHT
|
||||
# Function names
|
||||
if source_line.endswith("():"):
|
||||
# Underline. Colorama does not provide this feature, unfortunately.
|
||||
color += "\u001b[4m"
|
||||
try:
|
||||
source_line = cxxfilt.demangle(
|
||||
source_line[:-3], external_only=False
|
||||
)
|
||||
except:
|
||||
pass
|
||||
output.append(OutputLine(None, f" {color}{source_line}{Style.RESET_ALL}", source_line))
|
||||
|
||||
fmt2 = mid + " " + (part2 or "")
|
||||
output.append(OutputLine(part1, fmt2, key2))
|
||||
|
||||
return output
|
||||
|
||||
|
||||
def chunk_diff(diff: List[OutputLine]) -> List[Union[List[OutputLine], OutputLine]]:
|
||||
cur_right: List[OutputLine] = []
|
||||
chunks: List[Union[List[OutputLine], OutputLine]] = []
|
||||
for output_line in diff:
|
||||
if output_line.base is not None:
|
||||
chunks.append(cur_right)
|
||||
chunks.append(output_line)
|
||||
cur_right = []
|
||||
else:
|
||||
cur_right.append(output_line)
|
||||
chunks.append(cur_right)
|
||||
return chunks
|
||||
|
||||
|
||||
def format_diff(old_diff: List[OutputLine], new_diff: List[OutputLine]) -> Tuple[str, List[str]]:
|
||||
old_chunks = chunk_diff(old_diff)
|
||||
new_chunks = chunk_diff(new_diff)
|
||||
output: List[Tuple[str, OutputLine, OutputLine]] = []
|
||||
assert len(old_chunks) == len(new_chunks), "same target"
|
||||
empty = OutputLine("", "", "")
|
||||
for old_chunk, new_chunk in zip(old_chunks, new_chunks):
|
||||
if isinstance(old_chunk, list):
|
||||
assert isinstance(new_chunk, list)
|
||||
if not old_chunk and not new_chunk:
|
||||
# Most of the time lines sync up without insertions/deletions,
|
||||
# and there's no interdiffing to be done.
|
||||
continue
|
||||
differ = difflib.SequenceMatcher(a=old_chunk, b=new_chunk, autojunk=False)
|
||||
for (tag, i1, i2, j1, j2) in differ.get_opcodes():
|
||||
if tag in ["equal", "replace"]:
|
||||
for i, j in zip(range(i1, i2), range(j1, j2)):
|
||||
output.append(("", old_chunk[i], new_chunk[j]))
|
||||
elif tag == "insert":
|
||||
for j in range(j1, j2):
|
||||
output.append(("", empty, new_chunk[j]))
|
||||
else:
|
||||
for i in range(i1, i2):
|
||||
output.append(("", old_chunk[i], empty))
|
||||
else:
|
||||
assert isinstance(new_chunk, OutputLine)
|
||||
# old_chunk.base and new_chunk.base have the same text since
|
||||
# both diffs are based on the same target, but they might
|
||||
# differ in color. Use the new version.
|
||||
output.append((new_chunk.base or "", old_chunk, new_chunk))
|
||||
|
||||
# TODO: status line, with e.g. approximate permuter score?
|
||||
width = args.column_width
|
||||
if args.threeway:
|
||||
header_line = "TARGET".ljust(width) + " CURRENT".ljust(width) + " PREVIOUS"
|
||||
diff_lines = [
|
||||
ansi_ljust(base, width)
|
||||
+ ansi_ljust(new.fmt2, width)
|
||||
+ (old.fmt2 or "-" if old != new else "")
|
||||
for (base, old, new) in output
|
||||
]
|
||||
else:
|
||||
header_line = ""
|
||||
diff_lines = [
|
||||
ansi_ljust(base, width) + new.fmt2
|
||||
for (base, old, new) in output
|
||||
if base or new.key2
|
||||
]
|
||||
return header_line, diff_lines
|
||||
|
||||
|
||||
def debounced_fs_watch(targets, outq, debounce_delay):
|
||||
import watchdog.events
|
||||
import watchdog.observers
|
||||
import watchdog.events # type: ignore
|
||||
import watchdog.observers # type: ignore
|
||||
|
||||
class WatchEventHandler(watchdog.events.FileSystemEventHandler):
|
||||
def __init__(self, queue, file_targets):
|
||||
@@ -827,12 +1125,18 @@ class Display:
|
||||
self.basedump = basedump
|
||||
self.mydump = mydump
|
||||
self.emsg = None
|
||||
self.last_diff_output = None
|
||||
|
||||
def run_less(self):
|
||||
if self.emsg is not None:
|
||||
output = self.emsg
|
||||
else:
|
||||
output = "\n".join(do_diff(self.basedump, self.mydump))
|
||||
diff_output = do_diff(self.basedump, self.mydump)
|
||||
last_diff_output = self.last_diff_output or diff_output
|
||||
self.last_diff_output = diff_output
|
||||
header, diff_lines = format_diff(last_diff_output, diff_output)
|
||||
header_lines = [header] if header else []
|
||||
output = "\n".join(header_lines + diff_lines[args.skip_lines :])
|
||||
|
||||
# Pipe the output through 'tail' and only then to less, to ensure the
|
||||
# write call doesn't block. ('tail' has to buffer all its input before
|
||||
@@ -912,14 +1216,16 @@ class Display:
|
||||
|
||||
|
||||
def main():
|
||||
if args.diff_obj:
|
||||
if args.diff_elf_symbol:
|
||||
make_target, basecmd, mycmd = dump_elf()
|
||||
elif args.diff_obj:
|
||||
make_target, basecmd, mycmd = dump_objfile()
|
||||
else:
|
||||
make_target, basecmd, mycmd = dump_binary()
|
||||
|
||||
if args.write_asm is not None:
|
||||
mydump = run_objdump(mycmd)
|
||||
with open(args.write_asm) as f:
|
||||
with open(args.write_asm, "w") as f:
|
||||
f.write(mydump)
|
||||
print(f"Wrote assembly to {args.write_asm}.")
|
||||
sys.exit(0)
|
||||
@@ -980,4 +1286,4 @@ def main():
|
||||
display.terminate()
|
||||
|
||||
|
||||
main()
|
||||
main()
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
version: "2"
|
||||
|
||||
syncs:
|
||||
oot-sync:
|
||||
src: '.'
|
||||
@@ -0,0 +1,47 @@
|
||||
# Building mips-linux-binutils on MacOS
|
||||
|
||||
The following instructions are written for MacOS users but should apply to any unix-like system, with maybe some modifications at the end regarding the bash_profile.
|
||||
|
||||
Create destination dir for binutils
|
||||
```bash
|
||||
sudo mkdir -p /opt/cross
|
||||
```
|
||||
|
||||
Create and enter local working dir
|
||||
```bash
|
||||
mkdir ~/binutils-tmp
|
||||
cd ~/binutils-tmp
|
||||
```
|
||||
|
||||
Get and extract binutils source
|
||||
```bash
|
||||
wget https://ftp.gnu.org/gnu/binutils/binutils-2.35.tar.bz2
|
||||
tar xjf binutils-2.35.tar.bz2
|
||||
```
|
||||
|
||||
Create and enter build dir
|
||||
```bash
|
||||
mkdir build-binutils
|
||||
cd build-binutils
|
||||
```
|
||||
|
||||
Configure the build
|
||||
```bash
|
||||
../binutils-2.35/configure --target=mips-linux-gnu --prefix=/opt/cross --disable-gprof --disable-gdb --disable-werror
|
||||
```
|
||||
|
||||
Make and install binutils
|
||||
```bash
|
||||
make -j
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Edit your ~/.bash_profile to add the new binutils binaries to the system PATH
|
||||
```bash
|
||||
echo "export PATH=$PATH:/opt/cross/bin" >> ~/.bash_profile
|
||||
```
|
||||
|
||||
Reload ~/.bash_profile (or just launch a new terminal tab)
|
||||
```bash
|
||||
source ~/.bash_profile
|
||||
```
|
||||
+46
-48
@@ -1931,57 +1931,55 @@ void FaultDrawer_SetDefault();
|
||||
// ? func_800DD6CC(?);
|
||||
// ? func_800DD9F4(?);
|
||||
// ? func_800DDB64(?);
|
||||
// ? func_800DDE20(?);
|
||||
// ? func_800DDE3C(?);
|
||||
// ? func_800DDF80(?);
|
||||
// ? func_800DE048(?);
|
||||
// ? func_800DE1B4(?);
|
||||
// ? func_800DE238(?);
|
||||
// ? func_800DE258(?);
|
||||
// ? func_800DE2B0(?);
|
||||
f32 func_800DDE20(f32 arg0);
|
||||
void func_800DDE3C(void);
|
||||
void Audio_ResetLoadStatus(void);
|
||||
void Audio_DiscardBank(s32 bankId);
|
||||
void Audio_DiscardSequence(s32 seqId);
|
||||
void func_800DE238(void* mem, u32 size);
|
||||
void* func_800DE258(SoundAllocPool* pool, u32 size);
|
||||
void* func_800DE2B0(SoundAllocPool* pool, u32 size);
|
||||
void* Audio_AllocDmaMemory(SoundAllocPool* pool, u32 size);
|
||||
// ? func_800DE344(?);
|
||||
void* Audio_AllocDmaMemoryZeroed(SoundAllocPool *pool, u32 size);
|
||||
void* Audio_AllocZeroed(SoundAllocPool* pool, u32 size);
|
||||
void* Audio_Alloc(SoundAllocPool* pool, u32 size);
|
||||
void Audio_SoundAllocPoolInit(SoundAllocPool* pool, void* memAddr, u32 size);
|
||||
void Audio_PersistentPoolClear(PersistentPool* persistent);
|
||||
void Audio_TemporaryPoolClear(TemporaryPool* temporary);
|
||||
void func_800DE4B0(SoundAllocPool* pool);
|
||||
void func_800DE4B0(s32 poolIdx);
|
||||
void Audio_InitMainPools(s32 sizeForAudioInitPool);
|
||||
// void Audio_SessionPoolsInit(?);
|
||||
// void Audio_SeqAndBankPoolInit(?);
|
||||
// void Audio_PersistentPoolsInit(?);
|
||||
// void Audio_TemporaryPoolsInit(?);
|
||||
// void* Audio_AllocBankOrSeq(?);
|
||||
// ? func_800DF074(?);
|
||||
// ? func_800DF0CC(?);
|
||||
// ? func_800DF5DC(?);
|
||||
// ? func_800DF630(?);
|
||||
// ? func_800DF688(?);
|
||||
// ? func_800DF7BC(?);
|
||||
// ? func_800DF7C4(?);
|
||||
// ? func_800DF888(?);
|
||||
// ? func_800DF8F4(?);
|
||||
// ? func_800DFBF8(?);
|
||||
// ? func_800E04E8(?);
|
||||
void Audio_SessionPoolsInit(AudioPoolSplit4* split);
|
||||
void Audio_SeqAndBankPoolInit(AudioPoolSplit2* split);
|
||||
void Audio_PersistentPoolsInit(AudioPoolSplit3* split);
|
||||
void Audio_TemporaryPoolsInit(AudioPoolSplit3* split);
|
||||
void* Audio_AllocBankOrSeq(s32 poolIdx, s32 size, s32 arg2, s32 id);
|
||||
void* func_800DF074(s32 poolIdx, s32 arg1, s32 id);
|
||||
void* func_800DF0CC(s32 poolIdx, s32 arg1, s32 id);
|
||||
void func_800DF5DC(s16* arg0, s32 arg1);
|
||||
void func_800DF630(s16* arg0, s32 arg1);
|
||||
void func_800DF688(s16* arg0, s32 arg1, s32 arg2);
|
||||
void func_800DF7C4(void);
|
||||
void func_800DF888(void);
|
||||
s32 Audio_ResetStep(void);
|
||||
void func_800DFBF8(void);
|
||||
void* func_800E04E8(s32 poolIdx, s32 id);
|
||||
// ? func_800E0540(?);
|
||||
// ? func_800E05C4(?);
|
||||
// ? func_800E0634(?);
|
||||
// ? func_800E06CC(?);
|
||||
// ? func_800E0964(?);
|
||||
// ? func_800E0AD8(?);
|
||||
// ? func_800E0BB4(?);
|
||||
// ? func_800E0BF8(?);
|
||||
void* func_800E05C4(u32 size, s32 arg1, void* arg2, s8 arg3, s32 arg4);
|
||||
void func_800E0634(u32 arg0, u32 arg1);
|
||||
UnkHeapEntry* func_800E06CC(u32 size);
|
||||
void func_800E0964(UnkHeapEntry* entry, s32 bankId);
|
||||
void func_800E0AD8(UnkHeapEntry* entry);
|
||||
void func_800E0BB4(UnkHeapEntry* entry, AudioBankSample* sample);
|
||||
UnkHeapEntry* func_800E0BF8(u32 size);
|
||||
// ? func_800E0C80(?);
|
||||
// ? func_800E0CBC(?);
|
||||
// ? func_800E0E0C(?);
|
||||
// ? func_800E0E6C(?);
|
||||
// ? func_800E0E90(?);
|
||||
// ? func_800E0EB4(?);
|
||||
// ? func_800E1148(?);
|
||||
void func_800E0CBC(void);
|
||||
void func_800E0E6C(s32 id);
|
||||
void func_800E0E90(s32 id);
|
||||
void func_800E0EB4(s32 arg0, s32 id);
|
||||
void func_800E1148(void);
|
||||
// ? func_800E11F0(?);
|
||||
// ? func_800E12DC(?);
|
||||
// ? func_800E1618(?);
|
||||
void func_800E1618(s32 arg0);
|
||||
s32 Audio_IsBankLoadComplete(s32 bankId);
|
||||
s32 Audio_IsSeqLoadComplete(s32 seqId);
|
||||
void Audio_SetBankLoadStatus(s32 bankId, u8 status);
|
||||
@@ -2020,7 +2018,7 @@ void Audio_SetSeqLoadStatus(s32 seqId, u8 status);
|
||||
void func_800E301C(void* callback);
|
||||
// ? func_800E3034(?);
|
||||
// ? func_800E3094(?);
|
||||
// ? func_800E3400(?);
|
||||
void func_800E3400(void);
|
||||
// ? func_800E3414(?);
|
||||
// ? func_800E35E0(?);
|
||||
// ? func_800E3678(?);
|
||||
@@ -2028,7 +2026,7 @@ void func_800E301C(void* callback);
|
||||
// ? func_800E3874(?);
|
||||
// ? func_800E38F8(?);
|
||||
// ? func_800E390C(?);
|
||||
// ? func_800E3A14(?);
|
||||
void func_800E3A14(void);
|
||||
// ? func_800E3A44(?);
|
||||
// ? func_800E3AC8(?);
|
||||
// ? func_800E3BEC(?);
|
||||
@@ -2043,10 +2041,10 @@ void func_800E301C(void* callback);
|
||||
// ? func_800E4744(?);
|
||||
// ? func_800E48C0(?);
|
||||
// ? func_800E4918(?);
|
||||
// ? func_800E4D94(?);
|
||||
void func_800E4D94(void);
|
||||
// ? func_800E4EEC(?);
|
||||
// ? func_800E4F58(?);
|
||||
// ? func_800E4FB0(?);
|
||||
void func_800E4FB0(void);
|
||||
// ? func_800E4FE0(?);
|
||||
// ? func_800E5000(?);
|
||||
// ? func_800E5584(?);
|
||||
@@ -2075,7 +2073,7 @@ void func_800E301C(void* callback);
|
||||
// ? func_800E67C0(?);
|
||||
// ? func_800E6818(?);
|
||||
// ? func_800E6840(?);
|
||||
// ? func_800E6880(?);
|
||||
void func_800E6880(void* mem, s32 size);
|
||||
s32 osAiSetNextBuffer(void*, u32);
|
||||
void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb);
|
||||
void Audio_NoteSetResamplingRate(NoteSubEu* noteSubEu, f32 resamplingRateInput);
|
||||
@@ -2085,8 +2083,8 @@ void Audio_ProcessNotes(void);
|
||||
AudioBankSound* Audio_InstrumentGetAudioBankSound(Instrument* instrument, s32 semitone);
|
||||
Instrument* Audio_GetInstrumentInner(s32 bankId, s32 instId);
|
||||
Drum* Audio_GetDrum(s32 bankId, s32 drumId);
|
||||
UnkInstrument* Audio_GetUnkInstrument(s32 bankId, s32 unkInstrumentId);
|
||||
s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, UnkInstrument* arg3);
|
||||
AudioBankSound* Audio_GetSfx(s32 bankId, s32 sfxId);
|
||||
s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, void* arg3);
|
||||
void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target);
|
||||
void Audio_SeqChanLayerNoteDecay(SequenceChannelLayer* seqLayer);
|
||||
void Audio_SeqChanLayerNoteRelease(SequenceChannelLayer* seqLayer);
|
||||
@@ -2461,7 +2459,7 @@ void guPosition(Mtx*, f32, f32, f32, f32, f32, f32, f32);
|
||||
// ? osSpTaskYielded(?);
|
||||
// ? guRotateF(?);
|
||||
void guRotate(Mtx*, f32 angle, f32 x, f32 y, f32 z);
|
||||
// ? osAiSetFrequency(?);
|
||||
s32 osAiSetFrequency(u32 frequency);
|
||||
// ? __osGetActiveQueue(?);
|
||||
// ? guNormalize(?);
|
||||
u32 osDpGetStatus(void);
|
||||
|
||||
+4
-4
@@ -608,8 +608,8 @@ extern f32 gStereoPanVolume[128];
|
||||
//extern ? D_80130004;
|
||||
//extern ? D_80130006;
|
||||
extern f32 gDefaultPanVolume[128];
|
||||
//extern ? D_80130228;
|
||||
//extern ? D_80130328;
|
||||
extern s16 D_80130228[];
|
||||
extern s16 D_80130328[];
|
||||
//extern ? D_801304A0;
|
||||
//extern ? D_801304AC;
|
||||
//extern ? D_801304C0;
|
||||
@@ -786,7 +786,7 @@ extern u32 D_801333E8;
|
||||
//extern ? D_8013340C;
|
||||
//extern ? D_80133414;
|
||||
//extern ? D_80133418;
|
||||
//extern ? D_801337C8;
|
||||
extern AudioSessionSettings gAudioSessionPresets[];
|
||||
extern s32 gOverlayLogSeverity;
|
||||
//extern ? D_80134480;
|
||||
//extern ? D_80134484;
|
||||
@@ -2976,7 +2976,7 @@ extern char D_80146238[];
|
||||
//extern ? D_8014A450;
|
||||
//extern ? D_8014A45C;
|
||||
//extern ? D_8014A460;
|
||||
//extern ? D_8014A6C2;
|
||||
extern s16 gTatumsPerBeat;
|
||||
//extern ? D_8014A6C4;
|
||||
//extern ? D_8014A6C8;
|
||||
//extern ? D_8014A6CC;
|
||||
|
||||
+220
-54
@@ -79,7 +79,7 @@ typedef struct {
|
||||
/*?0x08 */ u32 count;
|
||||
/*?0x0C */ char unk_0C[0x4];
|
||||
/*?0x10 */ s16 state[16]; // only exists if count != 0. 8-byte aligned
|
||||
} AdpcmLoop;
|
||||
} AdpcmLoop; // size = 0x30
|
||||
|
||||
typedef struct {
|
||||
/*?0x00 */ s32 order;
|
||||
@@ -90,12 +90,12 @@ typedef struct {
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 bits4 : 4;
|
||||
/* 0x00 */ u8 bits2 : 2;
|
||||
/*?0x01 */ u8 loaded;
|
||||
/*?0x04 */ u8* sampleAddr;
|
||||
/* 0x00 */ u8 unk_bits2 : 2;
|
||||
/* 0x01 */ u32 bits24 : 24;
|
||||
/* 0x04 */ u8* sampleAddr;
|
||||
/* 0x08 */ AdpcmLoop* loop;
|
||||
/*?0x0C */ AdpcmBook* book;
|
||||
/*?0x10 */ u32 sampleSize; // never read. either 0 or 1 mod 9, depending on padding
|
||||
} AudioBankSample;
|
||||
} AudioBankSample; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ AudioBankSample* sample;
|
||||
@@ -103,10 +103,52 @@ typedef struct {
|
||||
} AudioBankSound; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
// contained within a larger struct, struct might not start at offset zero
|
||||
/* 0x00 */ AudioBankSound sound; // offset might be wrong
|
||||
/* 0x10 */ u8 pad[0x2c0];
|
||||
} LargeSound; // size = 0x2C8
|
||||
/*?0x00 */ s16 numSamplesAfterDownsampling;
|
||||
/*?0x02 */ s16 chunkLen; // never read
|
||||
/* 0x04 */ s16* toDownsampleLeft;
|
||||
/* 0x08 */ s16* toDownsampleRight; // data pointed to by left and right are adjacent in memory
|
||||
/*?0x0C */ s32 startPos; // start pos in ring buffer
|
||||
/*?0x10 */ s16 lengthA; // first length in ring buffer (from startPos, at most until end)
|
||||
/*?0x12 */ s16 lengthB; // second length in ring buffer (from pos 0)
|
||||
/* 0x14 */ u8 pad[8];
|
||||
} ReverbRingBufferItem; // size = 0x1C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ u8 unk_00;
|
||||
/* 0x001 */ u8 useReverb;
|
||||
/* 0x002 */ u8 unk_02;
|
||||
/* 0x003 */ u8 unk_03;
|
||||
/* 0x004 */ u8 downsampleRate;
|
||||
/* 0x005 */ u8 unk_05;
|
||||
/* 0x006 */ u16 windowSize;
|
||||
/* 0x008 */ u16 unk_08;
|
||||
/* 0x00A */ u16 unk_0A;
|
||||
/* 0x00C */ u16 unk_0C;
|
||||
/* 0x00E */ u16 unk_0E;
|
||||
/* 0x010 */ u16 unk_10;
|
||||
/* 0x012 */ u16 unk_12;
|
||||
/* 0x014 */ u16 unk_14;
|
||||
/* 0x016 */ u16 unk_16;
|
||||
/* 0x018 */ u8 unk_18;
|
||||
/* 0x01C */ s32 unk_1C;
|
||||
/* 0x020 */ s32 unk_20;
|
||||
/* 0x024 */ s32 unk_24;
|
||||
/* 0x028 */ s16* unk_28;
|
||||
/* 0x02C */ s16* unk_2C;
|
||||
/* 0x030 */ void* unk_30;
|
||||
/* 0x034 */ void* unk_34;
|
||||
/* 0x038 */ void* unk_38;
|
||||
/* 0x03C */ void* unk_3C;
|
||||
/* 0x040 */ ReverbRingBufferItem items[2][5];
|
||||
/*?0x158 */ ReverbRingBufferItem items2[2][5];
|
||||
/* 0x270 */ s16* unk_270;
|
||||
/* 0x274 */ s16* unk_274;
|
||||
/* 0x278 */ void* unk_278;
|
||||
/* 0x27C */ void* unk_27C;
|
||||
/* 0x280 */ AudioBankSound sound;
|
||||
/* 0x288 */ AudioBankSample sample;
|
||||
/* 0x298 */ AdpcmLoop loop;
|
||||
} SynthesisReverb; // size = 0x2C8
|
||||
|
||||
typedef struct {
|
||||
/*?0x00 */ u8 loaded;
|
||||
@@ -127,19 +169,15 @@ typedef struct {
|
||||
/* 0x14 */ AdsrEnvelope *envelope;
|
||||
} Drum; // size >= 0x14
|
||||
|
||||
typedef struct {
|
||||
u32 unk_0;
|
||||
u32 unk_4;
|
||||
} UnkInstrument; // TODO: probably the same as AudioBankSound
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 numInstruments;
|
||||
/* 0x01 */ u8 numDrums;
|
||||
/* 0x02 */ char unk_02[0x02];
|
||||
/* 0x04 */ u16 numUnkInstruments;
|
||||
/* 0x02 */ u8 unk_02;
|
||||
/* 0x03 */ u8 unk_03;
|
||||
/* 0x04 */ u16 numSfx;
|
||||
/* 0x08 */ Instrument** instruments;
|
||||
/* 0x0C */ Drum** drums;
|
||||
/* 0x10 */ UnkInstrument* unkInstruments;
|
||||
/* 0x10 */ AudioBankSound* soundEffects;
|
||||
} CtlEntry; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
@@ -473,42 +511,95 @@ typedef struct Note {
|
||||
} Note; // size = 0xE0
|
||||
|
||||
typedef struct {
|
||||
// everything here is wildly wrong, and the struct might not start at
|
||||
// zero (it's embedded into another struct)
|
||||
/*?0x00 */ s16 presetUnk4; // audio frames per vsync?
|
||||
/*?0x02 */ u16 frequency;
|
||||
/*?0x04 */ u16 aiFrequency; // ?16
|
||||
/*?0x06 */ s16 samplesPerFrameTarget;
|
||||
/* 0x08 */ s16 unk_08; // maxAiBufferLength;
|
||||
/*?0x0A */ s16 minAiBufferLength;
|
||||
/*?0x0C */ s16 updatesPerFrame;
|
||||
/*?0x0E */ s16 samplesPerUpdate;
|
||||
/* 0x10 */ s16 unk_10; // samplesPerUpdateMax;
|
||||
/*?0x12 */ s16 samplesPerUpdateMin;
|
||||
/* 0x14 */ f32 resampleRate; // contains 32000.0f / frequency
|
||||
/* 0x18 */ f32 updatesPerFrameInv; // 1.0f / updatesPerFrame
|
||||
/*?0x1C */ f32 unkUpdatesPerFrameScaled; // 3.0f / (1280.0f * updatesPerFrame)
|
||||
} AudioBufferParametersEU;
|
||||
/* 0x00 */ u8 downsampleRate;
|
||||
/* 0x02 */ u16 windowSize;
|
||||
/* 0x04 */ u16 unk_4;
|
||||
/* 0x06 */ u16 unk_6;
|
||||
/* 0x08 */ u16 unk_8;
|
||||
/* 0x0A */ u16 unk_A;
|
||||
/* 0x0C */ u16 unk_C;
|
||||
/* 0x0E */ u16 unk_E;
|
||||
/* 0x10 */ s8 unk_10;
|
||||
/* 0x12 */ u16 unk_12;
|
||||
/* 0x14 */ s16 unk_14;
|
||||
/* 0x16 */ s16 unk_16;
|
||||
} ReverbSettings; // size = 0x18
|
||||
|
||||
typedef struct {
|
||||
/*?0x00 */ u32 frequency;
|
||||
/*?0x04 */ u8 unk_04;
|
||||
/* 0x05 */ u8 maxSimultaneousNotes;
|
||||
/* 0x06 */ u8 numSequencePlayers;
|
||||
/* 0x07 */ u8 pad_07[2];
|
||||
/* 0x09 */ u8 numReverbs;
|
||||
/* 0x0A */ u8 pad_0A[2];
|
||||
/* 0x0C */ ReverbSettings* reverbSettings;
|
||||
/* 0x10 */ u16 unk_10;
|
||||
/* 0x12 */ u16 unk_12;
|
||||
/* 0x14 */ u16 unk_14;
|
||||
/* 0x18 */ u32 persistentSeqMem;
|
||||
/* 0x1C */ u32 persistentBankMem;
|
||||
/* 0x20 */ u32 persistentUnusedMem;
|
||||
/* 0x24 */ u32 temporarySeqMem;
|
||||
/* 0x28 */ u32 temporaryBankMem;
|
||||
/* 0x2C */ u32 temporaryUnusedMem;
|
||||
/* 0x30 */ s32 unk_30;
|
||||
/* 0x34 */ s32 unk_34;
|
||||
} AudioSessionSettings; // size = 0x38
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 presetUnk4;
|
||||
/* 0x02 */ u16 frequency;
|
||||
/* 0x04 */ u16 aiFrequency;
|
||||
/* 0x06 */ s16 samplesPerFrameTarget;
|
||||
/* 0x08 */ s16 maxAiBufferLength;
|
||||
/* 0x0A */ s16 minAiBufferLength;
|
||||
/* 0x0C */ s16 updatesPerFrame;
|
||||
/* 0x0E */ s16 samplesPerUpdate;
|
||||
/* 0x10 */ s16 samplesPerUpdateMax;
|
||||
/* 0x12 */ s16 samplesPerUpdateMin;
|
||||
/* 0x14 */ s16 numSequencePlayers;
|
||||
/* 0x18 */ f32 resampleRate;
|
||||
/* 0x1C */ f32 updatesPerFrameInv;
|
||||
/* 0x20 */ f32 unkUpdatesPerFrameScaled;
|
||||
/* 0x24 */ f32 unk_24;
|
||||
} AudioBufferParameters;
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8* start;
|
||||
/* 0x4 */ u8* cur;
|
||||
/* 0x8 */ u32 size;
|
||||
/* 0x8 */ s32 size;
|
||||
/* 0xC */ s32 unused; // set to 0, never read
|
||||
} SoundAllocPool; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 *ptr;
|
||||
/*?0x4 */ u32 size;
|
||||
/* */ u16 pad;
|
||||
/* 0x4 */ u32 size;
|
||||
/* 0x8 */ s16 poolIndex;
|
||||
/* 0xA */ s16 id; // seqId or bankId
|
||||
} SeqOrBankEntry; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s8 unk_00;
|
||||
/* 0x01 */ s8 unk_01;
|
||||
/* 0x02 */ s8 unk_02;
|
||||
/* 0x03 */ char pad[0x5];
|
||||
/* 0x08 */ u8* unk_08;
|
||||
/* 0x0C */ void* unk_0C;
|
||||
/* 0x10 */ u32 size;
|
||||
} UnkHeapEntry; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ SoundAllocPool pool;
|
||||
/* 0x010 */ UnkHeapEntry entries[32];
|
||||
/* 0x290 */ s32 size;
|
||||
} UnkPool; // size = 0x294
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* 0x00*/ u32 numEntries;
|
||||
/* 0x04*/ SoundAllocPool pool;
|
||||
/*?0x14*/ SeqOrBankEntry entries[16];
|
||||
/* 0x14*/ SeqOrBankEntry entries[16];
|
||||
} PersistentPool; // size = 0xD4
|
||||
|
||||
typedef struct
|
||||
@@ -526,42 +617,117 @@ typedef struct
|
||||
} SoundMultiPool; // size = 0x110
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ char unk_0000[0x14];
|
||||
u32 wantPersistent;
|
||||
u32 wantTemporary;
|
||||
} AudioPoolSplit2; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
u32 wantSeq;
|
||||
u32 wantBank;
|
||||
u32 wantUnused;
|
||||
} AudioPoolSplit3; // size = 0xC
|
||||
|
||||
typedef struct {
|
||||
u32 wantSeq;
|
||||
u32 wantBank;
|
||||
u32 wantUnused;
|
||||
u32 wantCustom;
|
||||
} AudioPoolSplit4; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
u8* unk_0;
|
||||
u8* unk_4;
|
||||
u32 unk_8;
|
||||
s8 unk_C;
|
||||
} Struct_800E0E0C_2;
|
||||
|
||||
typedef struct {
|
||||
char pad[0xC];
|
||||
Struct_800E0E0C_2 unk_C[1]; // unknown size
|
||||
} ManyStruct_800E0E0C_2;
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ AudioBankSample* sample;
|
||||
/* 0x08 */ u8* unk_08;
|
||||
/* 0x0C */ s32 pad;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
} AudioStruct0D68; // size = 0x14
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ char unk_0000;
|
||||
/* 0x0001 */ s8 gNumSynthesisReverbs;
|
||||
/* 0x0002 */ u16 unk_2;
|
||||
/* 0x0004 */ u16 unk_4;
|
||||
/* 0x0006 */ char unk_0006[0x0e];
|
||||
/* 0x0014 */ NoteSubEu* gNoteSubsEu;
|
||||
/* 0x0018 */ char unk_0018[0x280];
|
||||
/*?0x0298 */ LargeSound largeSounds[1]; // size <= 14, offset might be wrong
|
||||
/* 0x0560 */ char unk_0560[0x22E4];
|
||||
/* 0x0018 */ SynthesisReverb gSynthesisReverbs[4];
|
||||
/* 0x0B38 */ char unk_0B38[0x230];
|
||||
/* 0x0D68 */ AudioStruct0D68 unk_0D68[128]; // guessing at size
|
||||
/* 0x1768 */ char unk_1768[4];
|
||||
/* 0x176C */ s32 unk_176C;
|
||||
/* 0x1770 */ char unk_1770[0xEB0];
|
||||
/* 0x2620 */ s32 gSampleDmaNumListItems;
|
||||
/* 0x2624 */ char unk_2624[0x210];
|
||||
/* 0x2834 */ s16* unk_2834;
|
||||
/* 0x2838 */ ManyStruct_800E0E0C_2* unk_2838;
|
||||
/* 0x283C */ char unk_283C[0x8];
|
||||
/* 0x2844 */ CtlEntry* gCtlEntries;
|
||||
/* 0x2848 */ char unk_2848[0x4];
|
||||
/*?0x284C */ AudioBufferParametersEU gAudioBufferParameters; // offset might be wrong
|
||||
/* 0x286C */ f32 unk_286C;
|
||||
/* 0x2848 */ AudioBufferParameters gAudioBufferParameters;
|
||||
/* 0x2870 */ f32 unk_2870;
|
||||
/* 0x2874 */ char unk_2874[0x20];
|
||||
/* 0x2874 */ s32 unk_2874;
|
||||
/* 0x2874 */ s32 unk_2878;
|
||||
/* 0x287C */ char unk_287C[0x14];
|
||||
/* 0x2890 */ s32 gMaxAudioCmds;
|
||||
/* 0x2894 */ s32 gMaxSimultaneousNotes; // (bad name)
|
||||
/* 0x2898 */ s16 unk_2898;
|
||||
/* 0x2898 */ s16 gTempoInternalToExternal;
|
||||
/* 0x289A */ s8 gSoundMode;
|
||||
/* 0x289B */ char unk_289B[0xE1];
|
||||
/* 0x289B */ char unk_289B[0xD];
|
||||
/* 0x28A8 */ s32 unk_28A8;
|
||||
/* 0x28AC */ u64* gAudioCmdBuffers[2];
|
||||
/* 0x28B4 */ char unk_28B4[0xAC];
|
||||
/* 0x2960 */ f32 unk_2960;
|
||||
/* 0x2964 */ s32 gRefreshRate;
|
||||
/* 0x2968 */ s16* unk_2968[3];
|
||||
/* 0x2974 */ s16 unk_2974[3];
|
||||
/* 0x297C */ u32 gAudioRandom;
|
||||
/* 0x2980 */ s32 gAudioErrorFlags;
|
||||
/* 0x2984 */ char unk_2984[0x3C];
|
||||
/* 0x2984 */ char unk_2984[0xC];
|
||||
/* 0x2990 */ SoundAllocPool gAudioSessionPool;
|
||||
/* 0x29A0 */ SoundAllocPool gUnkPool;
|
||||
/* 0x29B0 */ SoundAllocPool gAudioInitPool;
|
||||
/* 0x29C0 */ SoundAllocPool gNotesAndBuffersPool;
|
||||
/* 0x29D0 */ char unk_29D0[0x20]; // probably two unused pools
|
||||
/* 0x29F0 */ SoundAllocPool gSeqAndBankPool;
|
||||
/* 0x2A00 */ SoundAllocPool gTemporaryCommonPool;
|
||||
/* 0x2A10 */ SoundAllocPool gPersistentCommonPool;
|
||||
/* 0x2A00 */ SoundAllocPool gPersistentCommonPool;
|
||||
/* 0x2A10 */ SoundAllocPool gTemporaryCommonPool;
|
||||
/* 0x2A20 */ SoundMultiPool gSeqLoadedPool;
|
||||
/* 0x2B30 */ SoundMultiPool gBankLoadedPool;
|
||||
/* 0x2C40 */ SoundMultiPool gUnusedLoadedPool;
|
||||
/* 0x2D50 */ char unk_2D50[0x7D0];
|
||||
/* 0x2C40 */ SoundMultiPool gUnusedLoadedPool; // rename after we figure out what this is
|
||||
/* 0x2D50 */ SoundAllocPool unk_2D50;
|
||||
/* 0x2D60 */ SeqOrBankEntry unk_2D60[32];
|
||||
/* 0x2EE0 */ UnkPool unk_2EE0;
|
||||
/* 0x3174 */ UnkPool unk_3174;
|
||||
/* 0x3408 */ AudioPoolSplit4 sSessionPoolSplit;
|
||||
/* 0x3418 */ AudioPoolSplit2 sSeqAndBankPoolSplit;
|
||||
/* 0x3420 */ AudioPoolSplit3 sPersistentCommonPoolSplit;
|
||||
/* 0x342C */ AudioPoolSplit3 sTemporaryCommonPoolSplit;
|
||||
/* 0x3438 */ u8 gUnusedLoadStatus[0x30];
|
||||
/* 0x3468 */ u8 gBankLoadStatus[0x30];
|
||||
/* 0x3498 */ u8 gSeqLoadStatus[0x80];
|
||||
/* 0x3518 */ volatile u8 gAudioResetStatus;
|
||||
/* 0x3519 */ u8 gAudioResetPresetIdToLoad;
|
||||
/* 0x351C */ s32 gAudioResetFadeOutFramesLeft;
|
||||
/* 0x3520 */ f32* unk_3520;
|
||||
/* 0x3524 */ char unk_3524[8];
|
||||
/* 0x3524 */ u8* gAudioHeap;
|
||||
/* 0x3528 */ u32 gAudioHeapSize;
|
||||
/* 0x352C */ Note* gNotes;
|
||||
/* 0x3530 */ SequencePlayer gSequencePlayers[4];
|
||||
/* 0x3AB0 */ SequenceChannelLayer gSequenceLayers[64];
|
||||
/* 0x5AB0 */ SequenceChannel gSequenceChannelNone;
|
||||
/* 0x5B84 */ s32 gNoteSubEuOffset;
|
||||
/* 0x5B88 */ AudioListItem gLayerFreeList;
|
||||
} AudioContext; // might be bigger
|
||||
} AudioContext; // size >= 0x5c50
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u8 reverb; // i.e. volume
|
||||
|
||||
@@ -172,8 +172,7 @@ endseg
|
||||
beginseg
|
||||
name "icon_item_nes_static"
|
||||
romalign 0x1000
|
||||
include "build/baserom/icon_item_nes_static.o"
|
||||
//include "build/assets/textures/icon_item_nes_static/icon_item_nes_static.o"
|
||||
include "build/baserom/icon_item_nes_static.o" //include "build/assets/textures/icon_item_nes_static/icon_item_nes_static.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -1164,8 +1163,7 @@ endseg
|
||||
beginseg
|
||||
name "ovl_Bg_Po_Syokudai"
|
||||
include "build/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o"
|
||||
include "build/data/overlays/actors/z_bg_po_syokudai.data.o"
|
||||
include "build/data/overlays/actors/z_bg_po_syokudai.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -1363,8 +1361,7 @@ endseg
|
||||
beginseg
|
||||
name "ovl_Bg_Spot18_Shutter"
|
||||
include "build/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.o"
|
||||
include "build/data/overlays/actors/z_bg_spot18_shutter.data.o"
|
||||
include "build/data/overlays/actors/z_bg_spot18_shutter.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Bg_Spot18_Shutter/ovl_Bg_Spot18_Shutter_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
@@ -3529,8 +3526,7 @@ endseg
|
||||
beginseg
|
||||
name "ovl_Obj_Hana"
|
||||
include "build/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.o"
|
||||
include "build/data/overlays/actors/z_obj_hana.data.o"
|
||||
include "build/data/overlays/actors/z_obj_hana.reloc.o"
|
||||
include "build/src/overlays/actors/ovl_Obj_Hana/ovl_Obj_Hana_reloc.o"
|
||||
endseg
|
||||
|
||||
beginseg
|
||||
|
||||
@@ -21,7 +21,7 @@ void Audio_SequenceChannelProcessSound(SequenceChannel* seqChannel, s32 recalcul
|
||||
chanFreqScale = seqChannel->freqScale;
|
||||
if (b != 0) {
|
||||
chanFreqScale *= seqChannel->seqPlayer->unk_34;
|
||||
seqChannel->changes.s.freqScale = 1;
|
||||
seqChannel->changes.s.freqScale = true;
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
@@ -31,7 +31,7 @@ void Audio_SequenceChannelProcessSound(SequenceChannel* seqChannel, s32 recalcul
|
||||
layer->noteFreqScale = layer->freqScale * chanFreqScale;
|
||||
layer->noteVelocity = layer->velocitySquare2 * seqChannel->appliedVolume;
|
||||
layer->notePan = (seqChannel->pan + layer->pan * (0x80 - seqChannel->panChannelWeight)) >> 7;
|
||||
layer->notePropertiesNeedInit = 0;
|
||||
layer->notePropertiesNeedInit = false;
|
||||
} else {
|
||||
if (seqChannel->changes.s.freqScale) {
|
||||
layer->noteFreqScale = layer->freqScale * chanFreqScale;
|
||||
@@ -53,7 +53,7 @@ void Audio_SequencePlayerProcessSound(SequencePlayer* seqPlayer) {
|
||||
|
||||
if (seqPlayer->fadeTimer != 0) {
|
||||
seqPlayer->fadeVolume += seqPlayer->fadeVelocity;
|
||||
seqPlayer->recalculateVolume = 1;
|
||||
seqPlayer->recalculateVolume = true;
|
||||
|
||||
if (seqPlayer->fadeVolume > 1.0f) {
|
||||
seqPlayer->fadeVolume = 1.0f;
|
||||
@@ -78,7 +78,7 @@ void Audio_SequencePlayerProcessSound(SequencePlayer* seqPlayer) {
|
||||
}
|
||||
}
|
||||
|
||||
seqPlayer->recalculateVolume = 0;
|
||||
seqPlayer->recalculateVolume = false;
|
||||
}
|
||||
|
||||
f32 Audio_GetPortamentoFreqScale(Portamento* p) {
|
||||
@@ -258,7 +258,7 @@ f32 Audio_AdsrUpdate(AdsrState* adsr) {
|
||||
break;
|
||||
|
||||
default:
|
||||
adsr->delay *= gAudioContext.unk_286C;
|
||||
adsr->delay *= gAudioContext.gAudioBufferParameters.unk_24;
|
||||
if (adsr->delay == 0) {
|
||||
adsr->delay = 1;
|
||||
}
|
||||
@@ -313,12 +313,12 @@ f32 Audio_AdsrUpdate(AdsrState* adsr) {
|
||||
|
||||
if (adsr->action.s.decay) {
|
||||
adsr->action.s.state = ADSR_STATE_DECAY;
|
||||
adsr->action.s.decay = 0;
|
||||
adsr->action.s.decay = false;
|
||||
}
|
||||
|
||||
if (adsr->action.s.release) {
|
||||
adsr->action.s.state = ADSR_STATE_RELEASE;
|
||||
adsr->action.s.release = 0;
|
||||
adsr->action.s.release = false;
|
||||
}
|
||||
|
||||
if (adsr->current < 0.0f) {
|
||||
|
||||
+1329
-51
File diff suppressed because it is too large
Load Diff
+42
-42
@@ -27,8 +27,8 @@ void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb) {
|
||||
|
||||
pan &= 0x7F;
|
||||
|
||||
sub->bitField0.s.stereoStrongRight = 0;
|
||||
sub->bitField0.s.stereoStrongLeft = 0;
|
||||
sub->bitField0.s.stereoStrongRight = false;
|
||||
sub->bitField0.s.stereoStrongLeft = false;
|
||||
sub->bitField0.s.stereoHeadsetEffects = sp24.stereoHeadsetEffects;
|
||||
sub->bitField0.s.usesHeadsetPanEffects = sp24.usesHeadsetPanEffects;
|
||||
if (stereoHeadsetEffects && gAudioContext.gSoundMode == 1) {
|
||||
@@ -39,7 +39,7 @@ void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb) {
|
||||
|
||||
sub->headsetPanLeft = gHeadsetPanQuantization[smallPanIndex];
|
||||
sub->headsetPanRight = gHeadsetPanQuantization[0x3f - smallPanIndex];
|
||||
sub->bitField1.s.hasTwoAdpcmParts = 1;
|
||||
sub->bitField1.s.hasTwoAdpcmParts = true;
|
||||
|
||||
volLeft = gHeadsetPanVolume[pan];
|
||||
volRight = gHeadsetPanVolume[0x7f - pan];
|
||||
@@ -47,7 +47,7 @@ void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb) {
|
||||
strongLeft = strongRight = 0;
|
||||
sub->headsetPanRight = 0;
|
||||
sub->headsetPanLeft = 0;
|
||||
sub->bitField1.s.hasTwoAdpcmParts = 0;
|
||||
sub->bitField1.s.hasTwoAdpcmParts = false;
|
||||
|
||||
volLeft = gStereoPanVolume[pan];
|
||||
volRight = gStereoPanVolume[0x7f - pan];
|
||||
@@ -78,8 +78,8 @@ void Audio_NoteSetVelPanReverb(Note* note, NoteSubEu* sub, Reverb* reverb) {
|
||||
}
|
||||
|
||||
} else if (gAudioContext.gSoundMode == 3) {
|
||||
sub->bitField0.s.stereoHeadsetEffects = 0;
|
||||
sub->bitField0.s.usesHeadsetPanEffects = 0;
|
||||
sub->bitField0.s.stereoHeadsetEffects = false;
|
||||
sub->bitField0.s.usesHeadsetPanEffects = false;
|
||||
volLeft = 0.707f;
|
||||
volRight = 0.707f;
|
||||
} else {
|
||||
@@ -106,7 +106,7 @@ void Audio_NoteSetResamplingRate(NoteSubEu* noteSubEu, f32 resamplingRateInput)
|
||||
f32 resamplingRate = 0.0f;
|
||||
|
||||
if (resamplingRateInput < 2.0f) {
|
||||
noteSubEu->bitField1.s.isSyntheticWave = 0;
|
||||
noteSubEu->bitField1.s.isSyntheticWave = false;
|
||||
|
||||
if (1.99998f < resamplingRateInput) {
|
||||
resamplingRate = 1.99998f;
|
||||
@@ -115,7 +115,7 @@ void Audio_NoteSetResamplingRate(NoteSubEu* noteSubEu, f32 resamplingRateInput)
|
||||
}
|
||||
|
||||
} else {
|
||||
noteSubEu->bitField1.s.isSyntheticWave = 1;
|
||||
noteSubEu->bitField1.s.isSyntheticWave = true;
|
||||
if (3.99996f < resamplingRateInput) {
|
||||
resamplingRate = 1.99998f;
|
||||
} else {
|
||||
@@ -140,13 +140,13 @@ void Audio_NoteInit(Note* note) {
|
||||
}
|
||||
|
||||
void Audio_NoteDisable(Note* note) {
|
||||
if (note->noteSubEu.bitField0.s.needsInit == 1) {
|
||||
note->noteSubEu.bitField0.s.needsInit = 0;
|
||||
if (note->noteSubEu.bitField0.s.needsInit == true) {
|
||||
note->noteSubEu.bitField0.s.needsInit = false;
|
||||
}
|
||||
note->playbackState.priority = 0;
|
||||
note->noteSubEu.bitField0.s.enabled = 0;
|
||||
note->noteSubEu.bitField0.s.enabled = false;
|
||||
note->playbackState.unk_04 = 0;
|
||||
note->noteSubEu.bitField0.s.finished = 0;
|
||||
note->noteSubEu.bitField0.s.finished = false;
|
||||
note->playbackState.parentLayer = NO_LAYER;
|
||||
note->playbackState.prevParentLayer = NO_LAYER;
|
||||
note->playbackState.adsr.action.s.state = ADSR_STATE_DISABLED;
|
||||
@@ -175,7 +175,7 @@ void Audio_ProcessNotes(void) {
|
||||
}
|
||||
|
||||
if (note != playbackState->parentLayer->note && playbackState->unk_04 == 0) {
|
||||
playbackState->adsr.action.s.release = 1;
|
||||
playbackState->adsr.action.s.release = true;
|
||||
playbackState->adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
|
||||
playbackState->priority = 1;
|
||||
playbackState->unk_04 = 2;
|
||||
@@ -229,7 +229,7 @@ void Audio_ProcessNotes(void) {
|
||||
}
|
||||
} else {
|
||||
if (playbackState->parentLayer != NO_LAYER) {
|
||||
playbackState->parentLayer->bit1 = 1;
|
||||
playbackState->parentLayer->bit1 = true;
|
||||
}
|
||||
Audio_NoteDisable(note);
|
||||
Audio_AudioListRemove(¬e->listItem);
|
||||
@@ -239,7 +239,7 @@ void Audio_ProcessNotes(void) {
|
||||
}
|
||||
} else if (playbackState->adsr.action.s.state == ADSR_STATE_DISABLED) {
|
||||
if (playbackState->parentLayer != NO_LAYER) {
|
||||
playbackState->parentLayer->bit1 = 1;
|
||||
playbackState->parentLayer->bit1 = true;
|
||||
}
|
||||
Audio_NoteDisable(note);
|
||||
Audio_AudioListRemove(¬e->listItem);
|
||||
@@ -362,8 +362,8 @@ Drum* Audio_GetDrum(s32 bankId, s32 drumId) {
|
||||
return drum;
|
||||
}
|
||||
|
||||
UnkInstrument* Audio_GetUnkInstrument(s32 bankId, s32 unkInstrumentId) {
|
||||
UnkInstrument* unkInstrument;
|
||||
AudioBankSound* Audio_GetSfx(s32 bankId, s32 sfxId) {
|
||||
AudioBankSound* sfx;
|
||||
|
||||
if (bankId == 0xFF) {
|
||||
return NULL;
|
||||
@@ -374,29 +374,29 @@ UnkInstrument* Audio_GetUnkInstrument(s32 bankId, s32 unkInstrumentId) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (unkInstrumentId >= gAudioContext.gCtlEntries[bankId].numUnkInstruments) {
|
||||
gAudioContext.gAudioErrorFlags = ((bankId << 8) + unkInstrumentId) + 0x4000000;
|
||||
if (sfxId >= gAudioContext.gCtlEntries[bankId].numSfx) {
|
||||
gAudioContext.gAudioErrorFlags = ((bankId << 8) + sfxId) + 0x4000000;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((u32)gAudioContext.gCtlEntries[bankId].unkInstruments < 0x80000000U) {
|
||||
if ((u32)gAudioContext.gCtlEntries[bankId].soundEffects < 0x80000000U) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
unkInstrument = &gAudioContext.gCtlEntries[bankId].unkInstruments[unkInstrumentId];
|
||||
sfx = &gAudioContext.gCtlEntries[bankId].soundEffects[sfxId];
|
||||
|
||||
if (unkInstrument == NULL) {
|
||||
gAudioContext.gAudioErrorFlags = ((bankId << 8) + unkInstrumentId) + 0x5000000;
|
||||
if (sfx == NULL) {
|
||||
gAudioContext.gAudioErrorFlags = ((bankId << 8) + sfxId) + 0x5000000;
|
||||
}
|
||||
|
||||
if (unkInstrument->unk_0 == 0) {
|
||||
if (sfx->sample == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return unkInstrument;
|
||||
return sfx;
|
||||
}
|
||||
|
||||
s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, UnkInstrument* arg3) {
|
||||
s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, void* arg3) {
|
||||
if (bankId == 0xFF) {
|
||||
return -1;
|
||||
}
|
||||
@@ -410,21 +410,21 @@ s32 func_800E7744(s32 instrument, s32 bankId, s32 instId, UnkInstrument* arg3) {
|
||||
if (instId >= gAudioContext.gCtlEntries[bankId].numDrums) {
|
||||
return -3;
|
||||
}
|
||||
gAudioContext.gCtlEntries[bankId].drums[instId] = (void*)arg3;
|
||||
gAudioContext.gCtlEntries[bankId].drums[instId] = arg3;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (instId >= gAudioContext.gCtlEntries[bankId].numUnkInstruments) {
|
||||
if (instId >= gAudioContext.gCtlEntries[bankId].numSfx) {
|
||||
return -3;
|
||||
}
|
||||
gAudioContext.gCtlEntries[bankId].unkInstruments[instId] = *arg3;
|
||||
gAudioContext.gCtlEntries[bankId].soundEffects[instId] = *(AudioBankSound*)arg3;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (instId >= gAudioContext.gCtlEntries[bankId].numInstruments) {
|
||||
return -3;
|
||||
}
|
||||
gAudioContext.gCtlEntries[bankId].instruments[instId] = (void*)arg3;
|
||||
gAudioContext.gCtlEntries[bankId].instruments[instId] = arg3;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -441,7 +441,7 @@ void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target)
|
||||
return;
|
||||
}
|
||||
|
||||
seqLayer->bit3 = 0;
|
||||
seqLayer->bit3 = false;
|
||||
|
||||
if (seqLayer->note == NULL) {
|
||||
return;
|
||||
@@ -458,7 +458,7 @@ void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target)
|
||||
if (note->playbackState.parentLayer == NO_LAYER && note->playbackState.wantedParentLayer == NO_LAYER &&
|
||||
note->playbackState.prevParentLayer == seqLayer && target != ADSR_STATE_DECAY) {
|
||||
note->playbackState.adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
|
||||
note->playbackState.adsr.action.s.release = 1;
|
||||
note->playbackState.adsr.action.s.release = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -484,7 +484,7 @@ void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target)
|
||||
attributes->unk_6 = chan->unk_20;
|
||||
attributes->unk_4 = chan->unk_0F;
|
||||
if (chan->seqPlayer->muted && (chan->muteBehavior & 8)) {
|
||||
note->noteSubEu.bitField0.s.finished = 1;
|
||||
note->noteSubEu.bitField0.s.finished = true;
|
||||
}
|
||||
|
||||
if (seqLayer->reverbBits.asByte == 0) {
|
||||
@@ -502,11 +502,11 @@ void Audio_SeqChanLayerDecayRelease(SequenceChannelLayer* seqLayer, s32 target)
|
||||
note->playbackState.parentLayer = NO_LAYER;
|
||||
if (target == ADSR_STATE_RELEASE) {
|
||||
note->playbackState.adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
|
||||
note->playbackState.adsr.action.s.release = 1;
|
||||
note->playbackState.adsr.action.s.release = true;
|
||||
note->playbackState.unk_04 = 2;
|
||||
} else {
|
||||
note->playbackState.unk_04 = 1;
|
||||
note->playbackState.adsr.action.s.decay = 1;
|
||||
note->playbackState.adsr.action.s.decay = true;
|
||||
if (seqLayer->adsr.releaseRate == 0) {
|
||||
note->playbackState.adsr.fadeOutVel = gAudioContext.unk_3520[seqLayer->seqChannel->adsr.releaseRate];
|
||||
} else {
|
||||
@@ -753,8 +753,8 @@ void Audio_NoteInitForLayer(Note* note, SequenceChannelLayer* seqLayer) {
|
||||
note->playbackState.prevParentLayer = NO_LAYER;
|
||||
note->playbackState.parentLayer = seqLayer;
|
||||
playback->priority = seqLayer->seqChannel->notePriority;
|
||||
seqLayer->notePropertiesNeedInit = 1;
|
||||
seqLayer->bit3 = 1;
|
||||
seqLayer->notePropertiesNeedInit = true;
|
||||
seqLayer->bit3 = true;
|
||||
seqLayer->note = note;
|
||||
seqLayer->seqChannel->noteUnused = note;
|
||||
seqLayer->seqChannel->layerUnused = seqLayer;
|
||||
@@ -768,9 +768,9 @@ void Audio_NoteInitForLayer(Note* note, SequenceChannelLayer* seqLayer) {
|
||||
sub->sound.audioBankSound = seqLayer->sound;
|
||||
|
||||
if (instId >= 0x80 && instId < 0xC0) {
|
||||
sub->bitField1.s.bit2 = 1;
|
||||
sub->bitField1.s.bit2 = true;
|
||||
} else {
|
||||
sub->bitField1.s.bit2 = 0;
|
||||
sub->bitField1.s.bit2 = false;
|
||||
}
|
||||
|
||||
if (sub->bitField1.s.bit2) {
|
||||
@@ -792,7 +792,7 @@ void Audio_NoteReleaseAndTakeOwnership(Note* note, SequenceChannelLayer* seqLaye
|
||||
note->playbackState.priority = seqLayer->seqChannel->notePriority;
|
||||
|
||||
note->playbackState.adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv;
|
||||
note->playbackState.adsr.action.s.release = 1;
|
||||
note->playbackState.adsr.action.s.release = true;
|
||||
}
|
||||
|
||||
Note* Audio_AllocNoteFromDisabled(NotePool* pool, SequenceChannelLayer* seqLayer) {
|
||||
@@ -906,7 +906,7 @@ Note* Audio_AllocNote(SequenceChannelLayer* seqLayer) {
|
||||
return ret;
|
||||
|
||||
null_return:
|
||||
seqLayer->bit3 = 1;
|
||||
seqLayer->bit3 = true;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -929,7 +929,7 @@ void Audio_NoteInitAll(void) {
|
||||
note->vibratoState.active = 0;
|
||||
note->portamento.cur = 0;
|
||||
note->portamento.speed = 0;
|
||||
note->playbackState.stereoHeadsetEffects = 0;
|
||||
note->playbackState.stereoHeadsetEffects = false;
|
||||
note->unk_BC = 0;
|
||||
note->synthesisState.synthesisBuffers = Audio_AllocDmaMemory(&gAudioContext.gNotesAndBuffersPool, 0x1E0);
|
||||
}
|
||||
|
||||
+61
-61
@@ -110,14 +110,14 @@ void Audio_SequenceChannelInit(SequenceChannel* seqChannel) {
|
||||
return;
|
||||
}
|
||||
|
||||
seqChannel->enabled = 0;
|
||||
seqChannel->finished = 0;
|
||||
seqChannel->stopScript = 0;
|
||||
seqChannel->stopSomething2 = 0;
|
||||
seqChannel->hasInstrument = 0;
|
||||
seqChannel->stereoHeadsetEffects = 0;
|
||||
seqChannel->enabled = false;
|
||||
seqChannel->finished = false;
|
||||
seqChannel->stopScript = false;
|
||||
seqChannel->stopSomething2 = false;
|
||||
seqChannel->hasInstrument = false;
|
||||
seqChannel->stereoHeadsetEffects = false;
|
||||
seqChannel->transposition = 0;
|
||||
seqChannel->largeNotes = 0;
|
||||
seqChannel->largeNotes = false;
|
||||
seqChannel->bookOffset = 0;
|
||||
seqChannel->reverbBits.asByte = 0;
|
||||
seqChannel->changes.asByte = 0xff;
|
||||
@@ -154,7 +154,7 @@ void Audio_SequenceChannelInit(SequenceChannel* seqChannel) {
|
||||
seqChannel->soundScriptIO[i] = -1;
|
||||
}
|
||||
|
||||
seqChannel->unused = 0;
|
||||
seqChannel->unused = false;
|
||||
Audio_InitNoteLists(&seqChannel->notePool);
|
||||
}
|
||||
|
||||
@@ -177,14 +177,14 @@ s32 Audio_SeqChannelSetLayer(SequenceChannel* seqChannel, s32 layerIdx) {
|
||||
layer->seqChannel = seqChannel;
|
||||
layer->adsr = seqChannel->adsr;
|
||||
layer->adsr.releaseRate = 0;
|
||||
layer->enabled = 1;
|
||||
layer->finished = 0;
|
||||
layer->stopSomething = 0;
|
||||
layer->continuousNotes = 0;
|
||||
layer->bit3 = 0;
|
||||
layer->ignoreDrumPan = 0;
|
||||
layer->bit1 = 0;
|
||||
layer->notePropertiesNeedInit = 0;
|
||||
layer->enabled = true;
|
||||
layer->finished = false;
|
||||
layer->stopSomething = false;
|
||||
layer->continuousNotes = false;
|
||||
layer->bit3 = false;
|
||||
layer->ignoreDrumPan = false;
|
||||
layer->bit1 = false;
|
||||
layer->notePropertiesNeedInit = false;
|
||||
layer->reverbBits.asByte = 0;
|
||||
layer->portamento.mode = 0;
|
||||
layer->scriptState.depth = 0;
|
||||
@@ -210,8 +210,8 @@ void Audio_SeqChannelLayerDisable(SequenceChannelLayer* layer) {
|
||||
} else {
|
||||
Audio_SeqChanLayerNoteDecay(layer);
|
||||
}
|
||||
layer->enabled = 0;
|
||||
layer->finished = 1;
|
||||
layer->enabled = false;
|
||||
layer->finished = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,8 +232,8 @@ void Audio_SequenceChannelDisable(SequenceChannel* seqChannel) {
|
||||
}
|
||||
|
||||
Audio_NotePoolClear(&seqChannel->notePool);
|
||||
seqChannel->enabled = 0;
|
||||
seqChannel->finished = 1;
|
||||
seqChannel->enabled = false;
|
||||
seqChannel->finished = true;
|
||||
}
|
||||
|
||||
void Audio_SequencePlayerInitChannels(SequencePlayer* seqPlayer, u16 channelBits) {
|
||||
@@ -267,8 +267,8 @@ void Audio_SequenceChannelEnable(SequencePlayer* seqPlayer, u8 channelIdx, void*
|
||||
SequenceChannel* seqChannel = seqPlayer->channels[channelIdx];
|
||||
s32 i;
|
||||
|
||||
seqChannel->enabled = 1;
|
||||
seqChannel->finished = 0;
|
||||
seqChannel->enabled = true;
|
||||
seqChannel->finished = false;
|
||||
seqChannel->scriptState.depth = 0;
|
||||
seqChannel->scriptState.pc = script;
|
||||
seqChannel->delay = 0;
|
||||
@@ -280,7 +280,7 @@ void Audio_SequenceChannelEnable(SequencePlayer* seqPlayer, u8 channelIdx, void*
|
||||
}
|
||||
|
||||
void Audio_SequencePlayerDisableAsFinished(SequencePlayer* seqPlayer) {
|
||||
seqPlayer->finished = 1;
|
||||
seqPlayer->finished = true;
|
||||
Audio_SequencePlayerDisable(seqPlayer);
|
||||
}
|
||||
|
||||
@@ -290,8 +290,8 @@ void Audio_SequencePlayerDisable(SequencePlayer* seqPlayer) {
|
||||
if (!seqPlayer->enabled) {
|
||||
return;
|
||||
}
|
||||
seqPlayer->enabled = 0;
|
||||
seqPlayer->finished = 1;
|
||||
seqPlayer->enabled = false;
|
||||
seqPlayer->finished = true;
|
||||
|
||||
if (Audio_IsSeqLoadComplete(seqPlayer->seqId)) {
|
||||
Audio_SetSeqLoadStatus(seqPlayer->seqId, 3);
|
||||
@@ -381,7 +381,7 @@ void Audio_SeqChannelLayerProcessScript(SequenceChannelLayer* layer) {
|
||||
layer->delay--;
|
||||
if (!layer->stopSomething && layer->delay <= layer->duration) {
|
||||
Audio_SeqChanLayerNoteDecay(layer);
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -418,13 +418,13 @@ void func_800E9ED8(SequenceChannelLayer* layer) {
|
||||
PORTAMENTO_MODE(layer->portamento) == PORTAMENTO_MODE_2) {
|
||||
layer->portamento.mode = 0;
|
||||
}
|
||||
layer->notePropertiesNeedInit = 1;
|
||||
layer->notePropertiesNeedInit = true;
|
||||
}
|
||||
|
||||
s32 func_800E9F64(SequenceChannelLayer* layer, s32 arg1) {
|
||||
if (!layer->stopSomething && layer->sound != NULL && layer->sound->sample->bits4 == 2 &&
|
||||
layer->sound->sample->bits2 != 0) {
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -503,11 +503,11 @@ s32 func_800EA0C0(SequenceChannelLayer* layer) {
|
||||
case 0xC4: // layer_continuousnoteson
|
||||
case 0xC5: // layer_continuousnotesoff
|
||||
if (cmd == 0xC4) {
|
||||
layer->continuousNotes = 1;
|
||||
layer->continuousNotes = true;
|
||||
} else {
|
||||
layer->continuousNotes = 0;
|
||||
layer->continuousNotes = false;
|
||||
}
|
||||
layer->bit1 = 0;
|
||||
layer->bit1 = false;
|
||||
Audio_SeqChanLayerNoteDecay(layer);
|
||||
break;
|
||||
|
||||
@@ -578,7 +578,7 @@ s32 func_800EA0C0(SequenceChannelLayer* layer) {
|
||||
break;
|
||||
|
||||
case 0xCC:
|
||||
layer->ignoreDrumPan = 1;
|
||||
layer->ignoreDrumPan = true;
|
||||
break;
|
||||
|
||||
case 0xCD:
|
||||
@@ -617,11 +617,11 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
AudioBankSound* sound;
|
||||
Instrument* instrument;
|
||||
Drum* drum;
|
||||
AudioBankSound* unkInstrument;
|
||||
s32 pad;
|
||||
SequenceChannel* seqChannel;
|
||||
SequencePlayer* seqPlayer;
|
||||
u8 cmd;
|
||||
u16 unkInstrumentId;
|
||||
u16 sfxId;
|
||||
s32 cmd2;
|
||||
s32 vel;
|
||||
f32 time;
|
||||
@@ -647,7 +647,7 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
layer->semitone = cmd;
|
||||
drum = Audio_GetDrum(seqChannel->bankId, cmd);
|
||||
if (drum == NULL) {
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
layer->delay2 = layer->delay;
|
||||
return -1;
|
||||
}
|
||||
@@ -663,10 +663,10 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
|
||||
case 1:
|
||||
layer->semitone = cmd;
|
||||
unkInstrumentId = (layer->transposition << 6) + cmd;
|
||||
sound = (AudioBankSound*)Audio_GetUnkInstrument(seqChannel->bankId, unkInstrumentId);
|
||||
sfxId = (layer->transposition << 6) + cmd;
|
||||
sound = Audio_GetSfx(seqChannel->bankId, sfxId);
|
||||
if (sound == NULL) {
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
layer->delay2 = layer->delay + 1;
|
||||
return -1;
|
||||
}
|
||||
@@ -679,7 +679,7 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
cmd2 = cmd;
|
||||
layer->semitone = cmd;
|
||||
if (cmd >= 0x80) {
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
return -1;
|
||||
}
|
||||
if (layer->instOrWave == 0xFF) {
|
||||
@@ -701,7 +701,7 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
layer->sound = NULL;
|
||||
tuning = 1.0f;
|
||||
if (instOrWave >= 0xC0) {
|
||||
layer->sound = &gAudioContext.largeSounds[instOrWave - 0xC0].sound;
|
||||
layer->sound = &gAudioContext.gSynthesisReverbs[instOrWave - 0xC0].sound;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -729,12 +729,12 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
portamento->extent = (freqScale2 / freqScale) - 1.0f;
|
||||
|
||||
if (PORTAMENTO_IS_SPECIAL(*portamento)) {
|
||||
speed = seqPlayer->tempo * 0x8000 / gAudioContext.unk_2898;
|
||||
speed = seqPlayer->tempo * 0x8000 / gAudioContext.gTempoInternalToExternal;
|
||||
if (layer->delay != 0) {
|
||||
speed = speed * 0x100 / (layer->delay * layer->portamentoTime);
|
||||
}
|
||||
} else {
|
||||
speed = 0x20000 / (layer->portamentoTime * gAudioContext.gAudioBufferParameters.unk_08);
|
||||
speed = 0x20000 / (layer->portamentoTime * gAudioContext.gAudioBufferParameters.updatesPerFrame);
|
||||
}
|
||||
|
||||
if (speed >= 0x7FFF) {
|
||||
@@ -761,7 +761,7 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
layer->sound = NULL;
|
||||
layer->freqScale = gNoteFrequencies[cmd2];
|
||||
if (instOrWave >= 0xC0) {
|
||||
layer->sound = &gAudioContext.largeSounds[instOrWave - 0xC0].sound;
|
||||
layer->sound = &gAudioContext.gSynthesisReverbs[instOrWave - 0xC0].sound;
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -788,7 +788,7 @@ s32 func_800EA440(SequenceChannelLayer* layer, s32 arg1) {
|
||||
// set when this is reached...)
|
||||
if (PORTAMENTO_IS_SPECIAL(*portamento)) {
|
||||
s32 speed2;
|
||||
speed2 = seqPlayer->tempo * 0x8000 / gAudioContext.unk_2898;
|
||||
speed2 = seqPlayer->tempo * 0x8000 / gAudioContext.gTempoInternalToExternal;
|
||||
speed2 = speed2 * 0x100 / (layer->delay * layer->portamentoTime);
|
||||
if (speed2 >= 0x7FFF) {
|
||||
speed2 = 0x7FFF;
|
||||
@@ -817,12 +817,12 @@ s32 func_800EAAE0(SequenceChannelLayer* layer, s32 arg1) {
|
||||
|
||||
if (arg1 == 0xC0) {
|
||||
layer->delay = Audio_M64ReadCompressedU16(state);
|
||||
layer->stopSomething = 1;
|
||||
layer->bit1 = 0;
|
||||
layer->stopSomething = true;
|
||||
layer->bit1 = false;
|
||||
return -1;
|
||||
}
|
||||
|
||||
layer->stopSomething = 0;
|
||||
layer->stopSomething = false;
|
||||
if (seqChannel->largeNotes == 1) {
|
||||
switch (arg1 & 0xC0) {
|
||||
case 0:
|
||||
@@ -902,11 +902,11 @@ s32 func_800EAAE0(SequenceChannelLayer* layer, s32 arg1) {
|
||||
}
|
||||
|
||||
if ((seqPlayer->muted && (seqChannel->muteBehavior & (0x40 | 0x10)) != 0) || seqChannel->stopSomething2) {
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
return -1;
|
||||
}
|
||||
if (seqPlayer->unk_DC != 0) {
|
||||
layer->stopSomething = 1;
|
||||
layer->stopSomething = true;
|
||||
return -1;
|
||||
}
|
||||
return arg1;
|
||||
@@ -947,10 +947,10 @@ void Audio_SetInstrument(SequenceChannel* seqChannel, u8 instId) {
|
||||
seqChannel->instrument = (Instrument*)2;
|
||||
} else if ((seqChannel->instOrWave =
|
||||
Audio_GetInstrument(seqChannel, instId, &seqChannel->instrument, &seqChannel->adsr)) == 0) {
|
||||
seqChannel->hasInstrument = 0;
|
||||
seqChannel->hasInstrument = false;
|
||||
return;
|
||||
}
|
||||
seqChannel->hasInstrument = 1;
|
||||
seqChannel->hasInstrument = true;
|
||||
}
|
||||
|
||||
void Audio_SequenceChannelSetVolume(SequenceChannel* seqChannel, u8 volume) {
|
||||
@@ -970,8 +970,8 @@ void Audio_ProcessSequences(s32 arg0) {
|
||||
u32 i;
|
||||
|
||||
gAudioContext.gNoteSubEuOffset =
|
||||
(gAudioContext.gAudioBufferParameters.unk_08 - arg0 - 1) * gAudioContext.gMaxSimultaneousNotes;
|
||||
for (i = 0; i < (u32)gAudioContext.gAudioBufferParameters.unk_10; i++) {
|
||||
(gAudioContext.gAudioBufferParameters.updatesPerFrame - arg0 - 1) * gAudioContext.gMaxSimultaneousNotes;
|
||||
for (i = 0; i < (u32)gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) {
|
||||
seqPlayer = &gAudioContext.gSequencePlayers[i];
|
||||
if (seqPlayer->enabled == 1) {
|
||||
Audio_SequencePlayerProcessSequence(seqPlayer);
|
||||
@@ -993,7 +993,7 @@ void Audio_ResetSequencePlayer(SequencePlayer* seqPlayer) {
|
||||
s32 i;
|
||||
|
||||
Audio_SequencePlayerDisable(seqPlayer);
|
||||
seqPlayer->unk_0b2 = 0;
|
||||
seqPlayer->unk_0b2 = false;
|
||||
seqPlayer->delay = 0;
|
||||
seqPlayer->state = 1;
|
||||
seqPlayer->fadeTimer = 0;
|
||||
@@ -1029,7 +1029,7 @@ void func_800EC734(s32 seqPlayerIdx) {
|
||||
} else {
|
||||
seqChannel = seqPlayer->channels[i];
|
||||
seqChannel->seqPlayer = seqPlayer;
|
||||
seqChannel->enabled = 0;
|
||||
seqChannel->enabled = false;
|
||||
for (j = 0; j < 4; j++) {
|
||||
seqChannel->layers[j] = NULL;
|
||||
}
|
||||
@@ -1045,11 +1045,11 @@ void Audio_InitSequencePlayer(SequencePlayer* seqPlayer) {
|
||||
seqPlayer->channels[i] = &gAudioContext.gSequenceChannelNone;
|
||||
}
|
||||
|
||||
seqPlayer->enabled = 0;
|
||||
seqPlayer->muted = 0;
|
||||
seqPlayer->bankDmaInProgress = 0;
|
||||
seqPlayer->seqDmaInProgress = 0;
|
||||
seqPlayer->unk_0b1 = 0;
|
||||
seqPlayer->enabled = false;
|
||||
seqPlayer->muted = false;
|
||||
seqPlayer->bankDmaInProgress = false;
|
||||
seqPlayer->seqDmaInProgress = false;
|
||||
seqPlayer->unk_0b1 = false;
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
seqPlayer->unk_158[j] = -1;
|
||||
@@ -1067,7 +1067,7 @@ void Audio_InitSequencePlayers(void) {
|
||||
Audio_InitLayerFreelist();
|
||||
for (i = 0; i < 64; i++) {
|
||||
gAudioContext.gSequenceLayers[i].seqChannel = NULL;
|
||||
gAudioContext.gSequenceLayers[i].enabled = 0;
|
||||
gAudioContext.gSequenceLayers[i].enabled = false;
|
||||
}
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
|
||||
@@ -1,15 +1,49 @@
|
||||
/*
|
||||
* File: z_bg_po_syokudai.c
|
||||
* Overlay: ovl_Bg_Po_Syokudai
|
||||
* Description: Golden Torch Stand (Poe Sisters)
|
||||
*/
|
||||
|
||||
#include "z_bg_po_syokudai.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
#define THIS ((BgPoSyokudai*)thisx)
|
||||
|
||||
typedef enum {
|
||||
POE_FLAME_PURPLE, // Meg
|
||||
POE_FLAME_RED, // Joelle
|
||||
POE_FLAME_BLUE, // Beth
|
||||
POE_FLAME_GREEN // Amy
|
||||
} PoeFlameColor;
|
||||
|
||||
#define POE_TORCH_FLAG 0x1C
|
||||
|
||||
void BgPoSyokudai_Init(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgPoSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgPoSyokudai_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgPoSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{ COLTYPE_METAL_SHIELD, 0x00, 0x0D, 0x39, 0x20, COLSHAPE_CYLINDER },
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
|
||||
{ 12, 60, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
static Color_RGBA8 sPrimColors[] = {
|
||||
{ 255, 170, 255, 255 },
|
||||
{ 255, 200, 0, 255 },
|
||||
{ 0, 170, 255, 255 },
|
||||
{ 170, 255, 0, 255 },
|
||||
};
|
||||
|
||||
static Color_RGBA8 sEnvColors[] = {
|
||||
{ 100, 0, 255, 255 },
|
||||
{ 255, 0, 0, 255 },
|
||||
{ 0, 0, 255, 255 },
|
||||
{ 0, 150, 0, 255 },
|
||||
};
|
||||
|
||||
const ActorInit Bg_Po_Syokudai_InitVars = {
|
||||
ACTOR_BG_PO_SYOKUDAI,
|
||||
ACTORTYPE_PROP,
|
||||
@@ -21,11 +55,124 @@ const ActorInit Bg_Po_Syokudai_InitVars = {
|
||||
(ActorFunc)BgPoSyokudai_Update,
|
||||
(ActorFunc)BgPoSyokudai_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Destroy.s")
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Update.s")
|
||||
extern Gfx D_060003A0[];
|
||||
extern Gfx D_0404D4E0[];
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Draw.s")
|
||||
void BgPoSyokudai_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgPoSyokudai* this = THIS;
|
||||
s32 pad;
|
||||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
|
||||
this->flameColor = (THIS->actor.params >> 8) & 0xFF;
|
||||
this->actor.params &= 0x3F;
|
||||
|
||||
this->actor.colChkInfo.mass = 0xFF;
|
||||
|
||||
this->lightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &this->lightInfo);
|
||||
Lights_PointGlowSetInfo(&this->lightInfo, this->actor.posRot.pos.x, (s16)this->actor.posRot.pos.y + 65,
|
||||
this->actor.posRot.pos.z, 0, 0, 0, 0);
|
||||
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
||||
this->collider.dim.pos.x = this->actor.posRot.pos.x;
|
||||
this->collider.dim.pos.y = this->actor.posRot.pos.y;
|
||||
this->collider.dim.pos.z = this->actor.posRot.pos.z;
|
||||
|
||||
if (this->flameColor == POE_FLAME_PURPLE && Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_GREEN) &&
|
||||
Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_BLUE) &&
|
||||
Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_RED) && !Flags_GetSwitch(globalCtx, this->actor.params)) {
|
||||
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_PO_SISTERS, 119.0f, 225.0f, -1566.0f, 0, 0, 0,
|
||||
this->actor.params);
|
||||
globalCtx->envCtx.unk_BF = 0x4;
|
||||
|
||||
} else if (!Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_PURPLE) && !Flags_GetSwitch(globalCtx, 0x1B)) {
|
||||
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_PO_SISTERS, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y + 52.0f, this->actor.posRot.pos.z, 0, 0, 0,
|
||||
(this->flameColor << 8) + this->actor.params + 0x1000);
|
||||
|
||||
} else if (!Flags_GetSwitch(globalCtx, this->actor.params)) {
|
||||
if (globalCtx->envCtx.unk_BF == 0xFF) {
|
||||
globalCtx->envCtx.unk_BF = 4;
|
||||
}
|
||||
}
|
||||
|
||||
this->flameTextureScroll = (s16)(Math_Rand_ZeroOne() * 20.0f);
|
||||
}
|
||||
|
||||
void BgPoSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgPoSyokudai* this = THIS;
|
||||
|
||||
LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, this->lightNode);
|
||||
Collider_DestroyCylinder(globalCtx, &this->collider);
|
||||
|
||||
if (globalCtx->envCtx.unk_BF != 0xFF) {
|
||||
globalCtx->envCtx.unk_BF = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
void BgPoSyokudai_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgPoSyokudai* this = THIS;
|
||||
s32 pad;
|
||||
|
||||
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
|
||||
func_8002F974(&this->actor, NA_SE_EV_TORCH - SFX_FLAG);
|
||||
}
|
||||
this->flameTextureScroll++;
|
||||
}
|
||||
|
||||
void BgPoSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgPoSyokudai* this = THIS;
|
||||
f32 lightBrightness;
|
||||
u8 red;
|
||||
u8 green;
|
||||
u8 blue;
|
||||
|
||||
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 315);
|
||||
|
||||
func_80093D18(globalCtx->state.gfxCtx);
|
||||
gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 319),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(oGfxCtx->polyOpa.p++, D_060003A0);
|
||||
|
||||
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
|
||||
Color_RGBA8* primColor = &sPrimColors[this->flameColor];
|
||||
Color_RGBA8* envColor = &sEnvColors[this->flameColor];
|
||||
|
||||
lightBrightness = (0.3f * Math_Rand_ZeroOne()) + 0.7f;
|
||||
|
||||
red = (u8)(primColor->r * lightBrightness);
|
||||
green = (u8)(primColor->g * lightBrightness);
|
||||
blue = (u8)(primColor->b * lightBrightness);
|
||||
|
||||
Lights_PointSetColorAndRadius(&this->lightInfo, red, green, blue, 200);
|
||||
|
||||
func_80093D84(globalCtx->state.gfxCtx);
|
||||
gSPSegment(oGfxCtx->polyXlu.p++, 0x08,
|
||||
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 64, 1, 0,
|
||||
(this->flameTextureScroll * -20) & 0x1FF, 32, 128));
|
||||
|
||||
gDPSetPrimColor(oGfxCtx->polyXlu.p++, 0x80, 0x80, primColor->r, primColor->g, primColor->b, 255);
|
||||
gDPSetEnvColor(oGfxCtx->polyXlu.p++, envColor->r, envColor->g, envColor->b, 255);
|
||||
|
||||
Matrix_Translate(0.0f, 52.0f, 0.0f, MTXMODE_APPLY);
|
||||
Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000),
|
||||
MTXMODE_APPLY);
|
||||
Matrix_Scale(0.0027f, 0.0027f, 0.0027f, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 368),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(oGfxCtx->polyXlu.p++, D_0404D4E0);
|
||||
}
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 373);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,11 @@ struct BgPoSyokudai;
|
||||
|
||||
typedef struct BgPoSyokudai {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x64];
|
||||
/* 0x014C */ u8 flameColor;
|
||||
/* 0x014E */ s16 flameTextureScroll;
|
||||
/* 0x0150 */ LightNode* lightNode;
|
||||
/* 0x0154 */ LightInfo lightInfo;
|
||||
/* 0x0164 */ ColliderCylinder collider;
|
||||
} BgPoSyokudai; // size = 0x01B0
|
||||
|
||||
extern const ActorInit Bg_Po_Syokudai_InitVars;
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* File: z_bg_spot18_shutter.c
|
||||
* Overlay: Bg_Spot18_Shutter
|
||||
* Description:
|
||||
*/
|
||||
|
||||
#include "z_bg_spot18_shutter.h"
|
||||
|
||||
#define FLAGS 0x00000030
|
||||
@@ -9,7 +15,12 @@ void BgSpot18Shutter_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgSpot18Shutter_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void BgSpot18Shutter_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
void func_808B95AC(BgSpot18Shutter* this, GlobalContext* globalCtx);
|
||||
void func_808B95B8(BgSpot18Shutter* this, GlobalContext* globalCtx);
|
||||
void func_808B9618(BgSpot18Shutter* this, GlobalContext* globalCtx);
|
||||
void func_808B9698(BgSpot18Shutter* this, GlobalContext* globalCtx);
|
||||
void func_808B971C(BgSpot18Shutter* this, GlobalContext* globalCtx);
|
||||
|
||||
const ActorInit Bg_Spot18_Shutter_InitVars = {
|
||||
ACTOR_BG_SPOT18_SHUTTER,
|
||||
ACTORTYPE_PROP,
|
||||
@@ -21,21 +32,114 @@ const ActorInit Bg_Spot18_Shutter_InitVars = {
|
||||
(ActorFunc)BgSpot18Shutter_Update,
|
||||
(ActorFunc)BgSpot18Shutter_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Destroy.s")
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95AC.s")
|
||||
extern Gfx D_06000420[];
|
||||
extern UNK_TYPE D_06000534;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95B8.s")
|
||||
void BgSpot18Shutter_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
s32 pad;
|
||||
BgSpot18Shutter* this = THIS;
|
||||
s32 param = (this->dyna.actor.params >> 8) & 1;
|
||||
s32 localC = 0;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9618.s")
|
||||
DynaPolyInfo_SetActorMove(&this->dyna, DPM_UNK);
|
||||
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9698.s")
|
||||
if (param == 0) {
|
||||
if (LINK_AGE_IN_YEARS == YEARS_ADULT) {
|
||||
if (gSaveContext.infTable[16] & 0x200) {
|
||||
this->actionFunc = func_808B95AC;
|
||||
this->dyna.actor.posRot.pos.y += 180.0f;
|
||||
} else {
|
||||
this->actionFunc = func_808B9618;
|
||||
}
|
||||
} else {
|
||||
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
|
||||
this->actionFunc = func_808B95AC;
|
||||
this->dyna.actor.posRot.pos.y += 180.0f;
|
||||
} else {
|
||||
this->actionFunc = func_808B95B8;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (gSaveContext.infTable[16] & 0x200) {
|
||||
this->dyna.actor.posRot.pos.x += 125.0f * Math_Coss(this->dyna.actor.posRot.rot.y);
|
||||
this->dyna.actor.posRot.pos.z -= 125.0f * Math_Sins(this->dyna.actor.posRot.rot.y);
|
||||
this->actionFunc = func_808B95AC;
|
||||
} else {
|
||||
this->actionFunc = func_808B9618;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B971C.s")
|
||||
DynaPolyInfo_Alloc(&D_06000534, &localC);
|
||||
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, localC);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Update.s")
|
||||
void BgSpot18Shutter_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot18Shutter* this = THIS;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Draw.s")
|
||||
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
|
||||
}
|
||||
|
||||
void func_808B95AC(BgSpot18Shutter* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808B95B8(BgSpot18Shutter* this, GlobalContext* globalCtx) {
|
||||
if (Flags_GetSwitch(globalCtx, this->dyna.actor.params & 0x3F)) {
|
||||
Actor_SetHeight(&this->dyna.actor, 70.0f);
|
||||
func_80080480(globalCtx, this);
|
||||
this->actionFunc = func_808B9698;
|
||||
}
|
||||
}
|
||||
|
||||
void func_808B9618(BgSpot18Shutter* this, GlobalContext* globalCtx) {
|
||||
if (gSaveContext.infTable[16] & 0x200) {
|
||||
Actor_SetHeight(&this->dyna.actor, 70.0f);
|
||||
if (((this->dyna.actor.params >> 8) & 1) == 0) {
|
||||
this->actionFunc = func_808B9698;
|
||||
} else {
|
||||
this->actionFunc = func_808B971C;
|
||||
func_800800F8(globalCtx, 0x107D, 0x8C, &this->dyna.actor, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void func_808B9698(BgSpot18Shutter* this, GlobalContext* globalCtx) {
|
||||
if (Math_ApproxF(&this->dyna.actor.posRot.pos.y, this->dyna.actor.initPosRot.pos.y + 180.0f, 1.44f)) {
|
||||
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP);
|
||||
this->actionFunc = func_808B95AC;
|
||||
} else {
|
||||
func_8002F974(&this->dyna.actor, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG);
|
||||
}
|
||||
}
|
||||
|
||||
void func_808B971C(BgSpot18Shutter* this, GlobalContext* globalCtx) {
|
||||
f32 sin = Math_Sins(this->dyna.actor.posRot.rot.y);
|
||||
f32 cos = Math_Coss(this->dyna.actor.posRot.rot.y);
|
||||
s32 flag =
|
||||
Math_ApproxF(&this->dyna.actor.posRot.pos.x, this->dyna.actor.initPosRot.pos.x + (125.0f * cos), fabsf(cos)) &
|
||||
1;
|
||||
flag &=
|
||||
Math_ApproxF(&this->dyna.actor.posRot.pos.z, this->dyna.actor.initPosRot.pos.z - (125.0f * sin), fabsf(sin));
|
||||
|
||||
if (flag) {
|
||||
Audio_PlayActorSound2(&this->dyna.actor, NA_SE_EV_STONEDOOR_STOP);
|
||||
this->actionFunc = func_808B95AC;
|
||||
} else {
|
||||
func_8002F974(&this->dyna.actor, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG);
|
||||
}
|
||||
}
|
||||
|
||||
void BgSpot18Shutter_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
BgSpot18Shutter* this = THIS;
|
||||
|
||||
this->actionFunc(this, globalCtx);
|
||||
}
|
||||
|
||||
void BgSpot18Shutter_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, D_06000420);
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@
|
||||
|
||||
struct BgSpot18Shutter;
|
||||
|
||||
typedef void (*BgSpot18ShutterActionFunc)(struct BgSpot18Shutter*, GlobalContext*);
|
||||
|
||||
typedef struct BgSpot18Shutter {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x1C];
|
||||
/* 0x0000 */ DynaPolyActor dyna;
|
||||
/* 0x0164 */ BgSpot18ShutterActionFunc actionFunc;
|
||||
} BgSpot18Shutter; // size = 0x0168
|
||||
|
||||
extern const ActorInit Bg_Spot18_Shutter_InitVars;
|
||||
|
||||
@@ -15,7 +15,6 @@ void ObjHana_Destroy(Actor* thisx, GlobalContext* globalCtx);
|
||||
void ObjHana_Update(Actor* thisx, GlobalContext* globalCtx);
|
||||
void ObjHana_Draw(Actor* thisx, GlobalContext* globalCtx);
|
||||
|
||||
/*
|
||||
const ActorInit Obj_Hana_InitVars = {
|
||||
ACTOR_OBJ_HANA,
|
||||
ACTORTYPE_PROP,
|
||||
@@ -27,11 +26,74 @@ const ActorInit Obj_Hana_InitVars = {
|
||||
(ActorFunc)ObjHana_Update,
|
||||
(ActorFunc)ObjHana_Draw,
|
||||
};
|
||||
*/
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Init.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Destroy.s")
|
||||
static ColliderCylinderInit sCylinderInit = {
|
||||
{ COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER },
|
||||
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
|
||||
{ 8, 10, 0, { 0, 0, 0 } },
|
||||
};
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Update.s")
|
||||
static CollisionCheckInfoInit sColChkInfoInit = { 0, 0xC, 0x3C, 0xFF };
|
||||
|
||||
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Draw.s")
|
||||
typedef struct {
|
||||
/* 0x00 */ Gfx* dList;
|
||||
/* 0x04 */ f32 scale;
|
||||
/* 0x08 */ f32 yOffset;
|
||||
/* 0x0C */ s16 radius;
|
||||
/* 0x0E */ s16 height;
|
||||
} HanaParams; // size = 0x10
|
||||
|
||||
static HanaParams sHanaParams[] = {
|
||||
{ 0x05000500, 0.01f, 0.0f, -1, 0 },
|
||||
{ 0x0500A880, 0.1f, 58.0f, 10, 18 },
|
||||
{ 0x0500B9D0, 0.4f, 0.0f, 12, 44 },
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
ICHAIN_VEC3F_DIV1000(scale, 10, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneForward, 900, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneScale, 60, ICHAIN_CONTINUE),
|
||||
ICHAIN_F32(uncullZoneDownward, 800, ICHAIN_STOP),
|
||||
};
|
||||
|
||||
void ObjHana_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ObjHana* this = THIS;
|
||||
s16 type = this->actor.params & 3;
|
||||
HanaParams* params = &sHanaParams[type];
|
||||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
Actor_SetScale(&this->actor, params->scale);
|
||||
this->actor.shape.unk_08 = params->yOffset;
|
||||
if (params->radius >= 0) {
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
Collider_CylinderUpdate(&this->actor, &this->collider);
|
||||
this->collider.dim.radius = params->radius;
|
||||
this->collider.dim.height = params->height;
|
||||
func_80061ED4(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
|
||||
}
|
||||
|
||||
if (type == 2 && (gSaveContext.eventChkInf[4] & 1)) {
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void ObjHana_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ObjHana* this = THIS;
|
||||
|
||||
if (sHanaParams[this->actor.params & 3].radius >= 0) {
|
||||
Collider_DestroyCylinder(globalCtx, &this->collider);
|
||||
}
|
||||
}
|
||||
|
||||
void ObjHana_Update(Actor* thisx, GlobalContext* globalCtx) {
|
||||
ObjHana* this = THIS;
|
||||
|
||||
if (sHanaParams[this->actor.params & 3].radius >= 0 && this->actor.xzDistFromLink < 400.0f) {
|
||||
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
|
||||
}
|
||||
}
|
||||
|
||||
void ObjHana_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Gfx_DrawDListOpa(globalCtx, sHanaParams[thisx->params & 3].dList);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user