diff --git a/Makefile b/Makefile index b2fd593094..9775e9bef5 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/README.md b/README.md index 1ce07d2ae8..49fed6c535 100644 --- a/README.md +++ b/README.md @@ -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 /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. diff --git a/asm/non_matchings/code/audio_heap/Audio_Alloc.s b/asm/non_matchings/code/audio_heap/Audio_Alloc.s deleted file mode 100644 index 12bf776e96..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_Alloc.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_AllocBankOrSeq.s b/asm/non_matchings/code/audio_heap/Audio_AllocBankOrSeq.s deleted file mode 100644 index 9d26ecbc9d..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_AllocBankOrSeq.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_AllocDmaMemory.s b/asm/non_matchings/code/audio_heap/Audio_AllocDmaMemory.s deleted file mode 100644 index 47b2007521..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_AllocDmaMemory.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_AllocZeroed.s b/asm/non_matchings/code/audio_heap/Audio_AllocZeroed.s deleted file mode 100644 index a7bc257b7b..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_AllocZeroed.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_InitMainPools.s b/asm/non_matchings/code/audio_heap/Audio_InitMainPools.s deleted file mode 100644 index 96a4432375..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_InitMainPools.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_PersistentPoolClear.s b/asm/non_matchings/code/audio_heap/Audio_PersistentPoolClear.s deleted file mode 100644 index 1c418fc681..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_PersistentPoolClear.s +++ /dev/null @@ -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) - diff --git a/asm/non_matchings/code/audio_heap/Audio_PersistentPoolsInit.s b/asm/non_matchings/code/audio_heap/Audio_PersistentPoolsInit.s deleted file mode 100644 index fccda65a66..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_PersistentPoolsInit.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_SeqAndBankPoolInit.s b/asm/non_matchings/code/audio_heap/Audio_SeqAndBankPoolInit.s deleted file mode 100644 index b5a6590575..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_SeqAndBankPoolInit.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_SessionPoolsInit.s b/asm/non_matchings/code/audio_heap/Audio_SessionPoolsInit.s deleted file mode 100644 index ff9b330830..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_SessionPoolsInit.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/Audio_SoundAllocPoolInit.s b/asm/non_matchings/code/audio_heap/Audio_SoundAllocPoolInit.s deleted file mode 100644 index e66f114661..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_SoundAllocPoolInit.s +++ /dev/null @@ -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) - diff --git a/asm/non_matchings/code/audio_heap/Audio_TemporaryPoolClear.s b/asm/non_matchings/code/audio_heap/Audio_TemporaryPoolClear.s deleted file mode 100644 index 6f233e71fc..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_TemporaryPoolClear.s +++ /dev/null @@ -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) - diff --git a/asm/non_matchings/code/audio_heap/Audio_TemporaryPoolsInit.s b/asm/non_matchings/code/audio_heap/Audio_TemporaryPoolsInit.s deleted file mode 100644 index 7f24e4476d..0000000000 --- a/asm/non_matchings/code/audio_heap/Audio_TemporaryPoolsInit.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DDE20.s b/asm/non_matchings/code/audio_heap/func_800DDE20.s deleted file mode 100644 index 6ed91b3a7d..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DDE20.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DDE3C.s b/asm/non_matchings/code/audio_heap/func_800DDE3C.s deleted file mode 100644 index cce349771f..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DDE3C.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DDF80.s b/asm/non_matchings/code/audio_heap/func_800DDF80.s deleted file mode 100644 index fa6a373c65..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DDF80.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE048.s b/asm/non_matchings/code/audio_heap/func_800DE048.s deleted file mode 100644 index 82e4abb39a..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE048.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE12C.s b/asm/non_matchings/code/audio_heap/func_800DE12C.s deleted file mode 100644 index bd586e0679..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE12C.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE1B4.s b/asm/non_matchings/code/audio_heap/func_800DE1B4.s deleted file mode 100644 index d22a3d5f4a..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE1B4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE238.s b/asm/non_matchings/code/audio_heap/func_800DE238.s deleted file mode 100644 index a7129d69a5..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE238.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE258.s b/asm/non_matchings/code/audio_heap/func_800DE258.s deleted file mode 100644 index 040e3305bb..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE258.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE2B0.s b/asm/non_matchings/code/audio_heap/func_800DE2B0.s deleted file mode 100644 index b259d12f33..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE2B0.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE344.s b/asm/non_matchings/code/audio_heap/func_800DE344.s deleted file mode 100644 index 189cc0f6f5..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE344.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DE4A0.s b/asm/non_matchings/code/audio_heap/func_800DE4A0.s deleted file mode 100644 index 6a1ce439a5..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE4A0.s +++ /dev/null @@ -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) - diff --git a/asm/non_matchings/code/audio_heap/func_800DE4B0.s b/asm/non_matchings/code/audio_heap/func_800DE4B0.s deleted file mode 100644 index 6c84cda114..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DE4B0.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF074.s b/asm/non_matchings/code/audio_heap/func_800DF074.s deleted file mode 100644 index c8c5ac4a89..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF074.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF0CC.s b/asm/non_matchings/code/audio_heap/func_800DF0CC.s deleted file mode 100644 index 9f13048913..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF0CC.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF1D8.s b/asm/non_matchings/code/audio_heap/func_800DF1D8.s deleted file mode 100644 index 759aaaabd8..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF1D8.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF5AC.s b/asm/non_matchings/code/audio_heap/func_800DF5AC.s deleted file mode 100644 index 9ec1cddef7..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF5AC.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF5DC.s b/asm/non_matchings/code/audio_heap/func_800DF5DC.s deleted file mode 100644 index 1fb6f7e76c..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF5DC.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF630.s b/asm/non_matchings/code/audio_heap/func_800DF630.s deleted file mode 100644 index e1c25ce732..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF630.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF688.s b/asm/non_matchings/code/audio_heap/func_800DF688.s deleted file mode 100644 index 6cf04bb170..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF688.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF7BC.s b/asm/non_matchings/code/audio_heap/func_800DF7BC.s deleted file mode 100644 index 6bb4c40f69..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF7BC.s +++ /dev/null @@ -1,4 +0,0 @@ -glabel func_800DF7BC -/* B5695C 800DF7BC 03E00008 */ jr $ra -/* B56960 800DF7C0 AFA40000 */ sw $a0, ($sp) - diff --git a/asm/non_matchings/code/audio_heap/func_800DF7C4.s b/asm/non_matchings/code/audio_heap/func_800DF7C4.s deleted file mode 100644 index 26ba9d328f..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF7C4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF888.s b/asm/non_matchings/code/audio_heap/func_800DF888.s deleted file mode 100644 index 1774fd28c2..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF888.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DF8F4.s b/asm/non_matchings/code/audio_heap/func_800DF8F4.s deleted file mode 100644 index 26b522f32b..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800DF8F4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800DFBF8.s b/asm/non_matchings/code/audio_heap/func_800DFBF8.s index f6e1ab2a9e..8f79f84a2e 100644 --- a/asm/non_matchings/code/audio_heap/func_800DFBF8.s +++ b/asm/non_matchings/code/audio_heap/func_800DFBF8.s @@ -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 diff --git a/asm/non_matchings/code/audio_heap/func_800E04E8.s b/asm/non_matchings/code/audio_heap/func_800E04E8.s deleted file mode 100644 index 43e77f8210..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E04E8.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0540.s b/asm/non_matchings/code/audio_heap/func_800E0540.s deleted file mode 100644 index ce08fcba94..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0540.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E05C4.s b/asm/non_matchings/code/audio_heap/func_800E05C4.s deleted file mode 100644 index 64979e99e9..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E05C4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0634.s b/asm/non_matchings/code/audio_heap/func_800E0634.s deleted file mode 100644 index 060ca424f1..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0634.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E06CC.s b/asm/non_matchings/code/audio_heap/func_800E06CC.s deleted file mode 100644 index ccd5ebd986..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E06CC.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0964.s b/asm/non_matchings/code/audio_heap/func_800E0964.s deleted file mode 100644 index 8950d333f1..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0964.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0AD8.s b/asm/non_matchings/code/audio_heap/func_800E0AD8.s deleted file mode 100644 index de4abced89..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0AD8.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0BB4.s b/asm/non_matchings/code/audio_heap/func_800E0BB4.s deleted file mode 100644 index 84ee5695b9..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0BB4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0BF8.s b/asm/non_matchings/code/audio_heap/func_800E0BF8.s deleted file mode 100644 index 3fe03293ee..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0BF8.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0C80.s b/asm/non_matchings/code/audio_heap/func_800E0C80.s deleted file mode 100644 index 732dd7a785..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0C80.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0CBC.s b/asm/non_matchings/code/audio_heap/func_800E0CBC.s deleted file mode 100644 index 9905371771..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0CBC.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0E0C.s b/asm/non_matchings/code/audio_heap/func_800E0E0C.s deleted file mode 100644 index e133e6cebd..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0E0C.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0E6C.s b/asm/non_matchings/code/audio_heap/func_800E0E6C.s deleted file mode 100644 index 46ba289e26..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0E6C.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0E90.s b/asm/non_matchings/code/audio_heap/func_800E0E90.s deleted file mode 100644 index e26e460eb0..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0E90.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E0EB4.s b/asm/non_matchings/code/audio_heap/func_800E0EB4.s deleted file mode 100644 index a1cd0adda1..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E0EB4.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/audio_heap/func_800E1148.s b/asm/non_matchings/code/audio_heap/func_800E1148.s deleted file mode 100644 index 79c78ea554..0000000000 --- a/asm/non_matchings/code/audio_heap/func_800E1148.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/code_800E11F0/func_800E202C.s b/asm/non_matchings/code/code_800E11F0/func_800E202C.s index 7b9e9928b7..6794f0b33d 100644 --- a/asm/non_matchings/code/code_800E11F0/func_800E202C.s +++ b/asm/non_matchings/code/code_800E11F0/func_800E202C.s @@ -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 diff --git a/asm/non_matchings/code/code_800E11F0/func_800E3094.s b/asm/non_matchings/code/code_800E11F0/func_800E3094.s index e5b342177e..0a3541c0fb 100644 --- a/asm/non_matchings/code/code_800E11F0/func_800E3094.s +++ b/asm/non_matchings/code/code_800E11F0/func_800E3094.s @@ -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 diff --git a/asm/non_matchings/code/code_800E11F0/func_800E35E0.s b/asm/non_matchings/code/code_800E11F0/func_800E35E0.s index 2fce6b1a61..b2043f1684 100644 --- a/asm/non_matchings/code/code_800E11F0/func_800E35E0.s +++ b/asm/non_matchings/code/code_800E11F0/func_800E35E0.s @@ -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) diff --git a/asm/non_matchings/code/code_800E11F0/func_800E4918.s b/asm/non_matchings/code/code_800E11F0/func_800E4918.s index 5b8ebc89f8..c4affc16fb 100644 --- a/asm/non_matchings/code/code_800E11F0/func_800E4918.s +++ b/asm/non_matchings/code/code_800E11F0/func_800E4918.s @@ -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 diff --git a/asm/non_matchings/code/code_800E11F0/func_800E5000.s b/asm/non_matchings/code/code_800E11F0/func_800E5000.s index 52a3e49105..0757b56beb 100644 --- a/asm/non_matchings/code/code_800E11F0/func_800E5000.s +++ b/asm/non_matchings/code/code_800E11F0/func_800E5000.s @@ -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) diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Destroy.s deleted file mode 100644 index b1ec8fd61d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Destroy.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Draw.s deleted file mode 100644 index 530e2bddf9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Draw.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Init.s deleted file mode 100644 index 34e87938f8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Init.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Update.s deleted file mode 100644 index 3bfbce1ab3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Update.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Destroy.s deleted file mode 100644 index 47977c4093..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Destroy.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Draw.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Draw.s deleted file mode 100644 index cf3d77590a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Draw.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Init.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Init.s deleted file mode 100644 index e26ad944c0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Init.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Update.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Update.s deleted file mode 100644 index b512af4b17..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/BgSpot18Shutter_Update.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95AC.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95AC.s deleted file mode 100644 index 1bf5301379..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95AC.s +++ /dev/null @@ -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) diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95B8.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95B8.s deleted file mode 100644 index 2d21d16c20..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B95B8.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9618.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9618.s deleted file mode 100644 index e6ac094f75..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9618.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9698.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9698.s deleted file mode 100644 index 4596db2bb7..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B9698.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B971C.s b/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B971C.s deleted file mode 100644 index 076597848f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Bg_Spot18_Shutter/func_808B971C.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Destroy.s deleted file mode 100644 index dec12cff5e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Destroy.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Draw.s b/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Draw.s deleted file mode 100644 index 7077d39575..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Draw.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Init.s b/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Init.s deleted file mode 100644 index c2563c1746..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Init.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Update.s b/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Update.s deleted file mode 100644 index 238f2481f8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Hana/ObjHana_Update.s +++ /dev/null @@ -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 diff --git a/data/code_800F9280.data.s b/data/code_800F9280.data.s index b381115d49..8ca21f6843 100644 --- a/data/code_800F9280.data.s +++ b/data/code_800F9280.data.s @@ -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 diff --git a/data/code_800F9280.rodata.s b/data/code_800F9280.rodata.s index 382efb8ece..0cf27c9dfd 100644 --- a/data/code_800F9280.rodata.s +++ b/data/code_800F9280.rodata.s @@ -48,6 +48,8 @@ glabel jtbl_8014A680 glabel D_8014A6C0 .half 0x1C00 + +glabel gTatumsPerBeat .half 0x0030 glabel D_8014A6C4 diff --git a/data/overlays/actors/z_bg_po_syokudai.data.s b/data/overlays/actors/z_bg_po_syokudai.data.s deleted file mode 100644 index a84bfc6f8e..0000000000 --- a/data/overlays/actors/z_bg_po_syokudai.data.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_bg_po_syokudai.reloc.s b/data/overlays/actors/z_bg_po_syokudai.reloc.s deleted file mode 100644 index 53e7b48eb3..0000000000 --- a/data/overlays/actors/z_bg_po_syokudai.reloc.s +++ /dev/null @@ -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 diff --git a/data/overlays/actors/z_bg_spot18_shutter.data.s b/data/overlays/actors/z_bg_spot18_shutter.data.s deleted file mode 100644 index 740733c40f..0000000000 --- a/data/overlays/actors/z_bg_spot18_shutter.data.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_bg_spot18_shutter.reloc.s b/data/overlays/actors/z_bg_spot18_shutter.reloc.s deleted file mode 100644 index 8e0a9bd514..0000000000 --- a/data/overlays/actors/z_bg_spot18_shutter.reloc.s +++ /dev/null @@ -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 diff --git a/data/overlays/actors/z_obj_hana.data.s b/data/overlays/actors/z_obj_hana.data.s deleted file mode 100644 index 3522d7b9a8..0000000000 --- a/data/overlays/actors/z_obj_hana.data.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_obj_hana.reloc.s b/data/overlays/actors/z_obj_hana.reloc.s deleted file mode 100644 index 1b82ef9223..0000000000 --- a/data/overlays/actors/z_obj_hana.reloc.s +++ /dev/null @@ -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 diff --git a/diff.py b/diff.py index 8dec9ef182..0e1da09deb 100755 --- a/diff.py +++ b/diff.py @@ -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"(? 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] != '': - # 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 != "": + # 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 = "" if mnemonic in branch_likely_instructions: skip_next = True - row = re.sub(re_regs, "", row) - row = re.sub(re_sprel, ",addr(sp)", row) + row = re.sub(re_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 += "" else: - row = re.sub(re_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, "", 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 == "": - 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 == "": + 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() \ No newline at end of file +main() diff --git a/docker-sync.yml b/docker-sync.yml deleted file mode 100644 index 089afe26f8..0000000000 --- a/docker-sync.yml +++ /dev/null @@ -1,5 +0,0 @@ -version: "2" - -syncs: - oot-sync: - src: '.' diff --git a/docs/BUILDING_BINUTILS_MACOS.md b/docs/BUILDING_BINUTILS_MACOS.md new file mode 100644 index 0000000000..c03a1b909b --- /dev/null +++ b/docs/BUILDING_BINUTILS_MACOS.md @@ -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 +``` diff --git a/include/functions.h b/include/functions.h index 1d9bafbb04..418dcf5fcb 100644 --- a/include/functions.h +++ b/include/functions.h @@ -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); diff --git a/include/variables.h b/include/variables.h index 627fe1a489..9577cceed3 100644 --- a/include/variables.h +++ b/include/variables.h @@ -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; diff --git a/include/z64audio.h b/include/z64audio.h index 2561891cd6..68d3108bb3 100644 --- a/include/z64audio.h +++ b/include/z64audio.h @@ -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 diff --git a/spec b/spec index 4fd25b2877..99c8dabaaf 100644 --- a/spec +++ b/spec @@ -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 diff --git a/src/code/audio_effects.c b/src/code/audio_effects.c index 180f80abaf..41f7277718 100644 --- a/src/code/audio_effects.c +++ b/src/code/audio_effects.c @@ -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) { diff --git a/src/code/audio_heap.c b/src/code/audio_heap.c index 04d4ae7f68..974f5eb561 100644 --- a/src/code/audio_heap.c +++ b/src/code/audio_heap.c @@ -1,106 +1,1384 @@ #include #include -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DDE20.s") +f32 func_800DDE20(f32 arg0) { + return 256.0f * gAudioContext.gAudioBufferParameters.unkUpdatesPerFrameScaled / arg0; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DDE3C.s") +void func_800DDE3C(void) { + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DDF80.s") + gAudioContext.unk_3520[255] = func_800DDE20(0.25f); + gAudioContext.unk_3520[254] = func_800DDE20(0.33f); + gAudioContext.unk_3520[253] = func_800DDE20(0.5f); + gAudioContext.unk_3520[252] = func_800DDE20(0.66f); + gAudioContext.unk_3520[251] = func_800DDE20(0.75f); -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE048.s") + for (i = 128; i < 251; i++) { + gAudioContext.unk_3520[i] = func_800DDE20(251 - i); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE12C.s") + for (i = 16; i < 128; i++) { + gAudioContext.unk_3520[i] = func_800DDE20(4 * (143 - i)); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE1B4.s") + for (i = 1; i < 16; i++) { + gAudioContext.unk_3520[i] = func_800DDE20(60 * (23 - i)); + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE238.s") + gAudioContext.unk_3520[0] = 0.0f; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE258.s") +void Audio_ResetLoadStatus(void) { + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE2B0.s") + for (i = 0; i < 0x30; i++) { + if (gAudioContext.gBankLoadStatus[i] != 5) { + gAudioContext.gBankLoadStatus[i] = 0; + } + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_AllocDmaMemory.s") + for (i = 0; i < 0x30; i++) { + if (gAudioContext.gUnusedLoadStatus[i] != 5) { + gAudioContext.gUnusedLoadStatus[i] = 0; + } + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE344.s") + for (i = 0; i < 0x80; i++) { + if (gAudioContext.gSeqLoadStatus[i] != 5) { + gAudioContext.gSeqLoadStatus[i] = 0; + } + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_AllocZeroed.s") +void Audio_DiscardBank(s32 bankId) { + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_Alloc.s") + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + Note* note = &gAudioContext.gNotes[i]; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_SoundAllocPoolInit.s") + if (note->playbackState.bankId == bankId) { + if (note->playbackState.unk_04 == 0 && note->playbackState.priority != 0) { + note->playbackState.parentLayer->enabled = false; + note->playbackState.parentLayer->finished = true; + } + Audio_NoteDisable(note); + Audio_AudioListRemove(¬e->listItem); + Audio_AudioListPushBack(&gNoteFreeLists.disabled, ¬e->listItem); + } + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_PersistentPoolClear.s") +void func_800DE12C(s32 bankId) { + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_TemporaryPoolClear.s") + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + Note* note = &gAudioContext.gNotes[i]; + NotePlaybackState* state = ¬e->playbackState; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE4A0.s") + if (state->bankId == bankId) { + if (state->priority != 0 && state->adsr.action.s.state == ADSR_STATE_DECAY) { + state->priority = 1; + state->adsr.fadeOutVel = gAudioContext.gAudioBufferParameters.updatesPerFrameInv; + state->adsr.action.s.release = true; + } + } + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DE4B0.s") +void Audio_DiscardSequence(s32 seqId) { + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_InitMainPools.s") + for (i = 0; i < gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) { + if (gAudioContext.gSequencePlayers[i].enabled && gAudioContext.gSequencePlayers[i].seqId == seqId) { + Audio_SequencePlayerDisable(&gAudioContext.gSequencePlayers[i]); + } + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_SessionPoolsInit.s") +void func_800DE238(void* mem, u32 size) { + func_800E6880(mem, size); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_SeqAndBankPoolInit.s") +void* func_800DE258(SoundAllocPool* pool, u32 size) { + void* ret = NULL; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_PersistentPoolsInit.s") + if (gAudioContext.gUnkPool.start != 0) { + ret = Audio_AllocZeroed(&gAudioContext.gUnkPool, size); + } + if (ret == NULL) { + ret = Audio_AllocZeroed(pool, size); + } + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_TemporaryPoolsInit.s") +void* func_800DE2B0(SoundAllocPool* pool, u32 size) { + void* ret = NULL; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/Audio_AllocBankOrSeq.s") + if (gAudioContext.gUnkPool.start != NULL) { + ret = Audio_Alloc(&gAudioContext.gUnkPool, size); + } + if (ret == NULL) { + ret = Audio_Alloc(pool, size); + } + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF074.s") +void* Audio_AllocDmaMemory(SoundAllocPool* pool, u32 size) { + void* ret; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF0CC.s") + ret = Audio_Alloc(pool, size); + if (ret != NULL) { + func_800DE238(ret, size); + } + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF1D8.s") +void* Audio_AllocDmaMemoryZeroed(SoundAllocPool* pool, u32 size) { + void* ret; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF5AC.s") + ret = Audio_AllocZeroed(pool, size); + if (ret != NULL) { + func_800DE238(ret, size); + } + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF5DC.s") +void* Audio_AllocZeroed(SoundAllocPool* pool, u32 size) { + u8* ret = Audio_Alloc(pool, size); + u8* ptr; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF630.s") + if (ret != NULL) { + for (ptr = ret; ptr < pool->cur; ptr++) { + *ptr = 0; + } + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF688.s") + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF7BC.s") +void* Audio_Alloc(SoundAllocPool* pool, u32 size) { + u32 aligned = ALIGN16(size); + u8* ret = pool->cur; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF7C4.s") + if (pool->start + pool->size >= pool->cur + aligned) { + pool->cur += aligned; + } else { + return NULL; + } + pool->unused++; + return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF888.s") +void Audio_SoundAllocPoolInit(SoundAllocPool* pool, void* memAddr, u32 size) { + pool->cur = pool->start = (u8*)ALIGN16((u32)memAddr); + pool->size = size - ((u32)memAddr & 0xF); + pool->unused = 0; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DF8F4.s") +void Audio_PersistentPoolClear(PersistentPool* persistent) { + persistent->pool.unused = 0; + persistent->numEntries = 0; + persistent->pool.cur = persistent->pool.start; +} +void Audio_TemporaryPoolClear(TemporaryPool* temporary) { + temporary->pool.unused = 0; + temporary->pool.cur = temporary->pool.start; + temporary->nextSide = 0; + temporary->entries[0].ptr = temporary->pool.start; + temporary->entries[1].ptr = temporary->pool.start + temporary->pool.size; + temporary->entries[0].id = -1; + temporary->entries[1].id = -1; +} + +void func_800DE4A0(SoundAllocPool* pool) { + pool->unused = 0; + pool->cur = pool->start; +} + +void func_800DE4B0(s32 poolIdx) { + SoundMultiPool* loadedPool; + SoundAllocPool* persistentPool; + PersistentPool* persistent; + void* entryPtr; + u8* table; + + switch (poolIdx) { + case 0: + loadedPool = &gAudioContext.gSeqLoadedPool; + table = gAudioContext.gSeqLoadStatus; + break; + case 1: + loadedPool = &gAudioContext.gBankLoadedPool; + table = gAudioContext.gBankLoadStatus; + break; + case 2: + loadedPool = &gAudioContext.gUnusedLoadedPool; + table = gAudioContext.gUnusedLoadStatus; + break; + } + + persistent = &loadedPool->persistent; + persistentPool = &persistent->pool; + + if (persistent->numEntries == 0) { + return; + } + + entryPtr = persistent->entries[persistent->numEntries - 1].ptr; + persistentPool->cur = entryPtr; + persistentPool->unused--; + + if (poolIdx == 2) { + func_800E0E6C(persistent->entries[persistent->numEntries - 1].id); + } + if (poolIdx == 1) { + Audio_DiscardBank(persistent->entries[persistent->numEntries - 1].id); + } + table[persistent->entries[persistent->numEntries - 1].id] = 0; + persistent->numEntries--; +} + +void Audio_InitMainPools(s32 sizeForAudioInitPool) { + Audio_SoundAllocPoolInit(&gAudioContext.gAudioInitPool, gAudioContext.gAudioHeap, sizeForAudioInitPool); + Audio_SoundAllocPoolInit(&gAudioContext.gAudioSessionPool, gAudioContext.gAudioHeap + sizeForAudioInitPool, + gAudioContext.gAudioHeapSize - sizeForAudioInitPool); + gAudioContext.gUnkPool.start = NULL; +} + +void Audio_SessionPoolsInit(AudioPoolSplit4* split) { + gAudioContext.gAudioSessionPool.cur = gAudioContext.gAudioSessionPool.start; + Audio_SoundAllocPoolInit(&gAudioContext.gNotesAndBuffersPool, + Audio_Alloc(&gAudioContext.gAudioSessionPool, split->wantSeq), split->wantSeq); + Audio_SoundAllocPoolInit(&gAudioContext.gSeqAndBankPool, + Audio_Alloc(&gAudioContext.gAudioSessionPool, split->wantCustom), split->wantCustom); +} + +void Audio_SeqAndBankPoolInit(AudioPoolSplit2* split) { + gAudioContext.gSeqAndBankPool.cur = gAudioContext.gSeqAndBankPool.start; + Audio_SoundAllocPoolInit(&gAudioContext.gPersistentCommonPool, + Audio_Alloc(&gAudioContext.gSeqAndBankPool, split->wantPersistent), split->wantPersistent); + Audio_SoundAllocPoolInit(&gAudioContext.gTemporaryCommonPool, + Audio_Alloc(&gAudioContext.gSeqAndBankPool, split->wantTemporary), split->wantTemporary); +} + +void Audio_PersistentPoolsInit(AudioPoolSplit3* split) { + gAudioContext.gPersistentCommonPool.cur = gAudioContext.gPersistentCommonPool.start; + Audio_SoundAllocPoolInit(&gAudioContext.gSeqLoadedPool.persistent.pool, + Audio_Alloc(&gAudioContext.gPersistentCommonPool, split->wantSeq), split->wantSeq); + Audio_SoundAllocPoolInit(&gAudioContext.gBankLoadedPool.persistent.pool, + Audio_Alloc(&gAudioContext.gPersistentCommonPool, split->wantBank), split->wantBank); + Audio_SoundAllocPoolInit(&gAudioContext.gUnusedLoadedPool.persistent.pool, + Audio_Alloc(&gAudioContext.gPersistentCommonPool, split->wantUnused), split->wantUnused); + Audio_PersistentPoolClear(&gAudioContext.gSeqLoadedPool.persistent); + Audio_PersistentPoolClear(&gAudioContext.gBankLoadedPool.persistent); + Audio_PersistentPoolClear(&gAudioContext.gUnusedLoadedPool.persistent); +} + +void Audio_TemporaryPoolsInit(AudioPoolSplit3* split) { + gAudioContext.gTemporaryCommonPool.cur = gAudioContext.gTemporaryCommonPool.start; + Audio_SoundAllocPoolInit(&gAudioContext.gSeqLoadedPool.temporary.pool, + Audio_Alloc(&gAudioContext.gTemporaryCommonPool, split->wantSeq), split->wantSeq); + Audio_SoundAllocPoolInit(&gAudioContext.gBankLoadedPool.temporary.pool, + Audio_Alloc(&gAudioContext.gTemporaryCommonPool, split->wantBank), split->wantBank); + Audio_SoundAllocPoolInit(&gAudioContext.gUnusedLoadedPool.temporary.pool, + Audio_Alloc(&gAudioContext.gTemporaryCommonPool, split->wantUnused), split->wantUnused); + Audio_TemporaryPoolClear(&gAudioContext.gSeqLoadedPool.temporary); + Audio_TemporaryPoolClear(&gAudioContext.gBankLoadedPool.temporary); + Audio_TemporaryPoolClear(&gAudioContext.gUnusedLoadedPool.temporary); +} + +void* Audio_AllocBankOrSeq(s32 poolIdx, s32 size, s32 arg2, s32 id) { + SoundMultiPool* loadedPool; + TemporaryPool* tp; + SoundAllocPool* pool; + void* mem; + void* ret; + u8 firstVal; + u8 secondVal; + s32 i; + u8* table; + s32 side; + + switch (poolIdx) { + case 0: + loadedPool = &gAudioContext.gSeqLoadedPool; + table = gAudioContext.gSeqLoadStatus; + break; + case 1: + loadedPool = &gAudioContext.gBankLoadedPool; + table = gAudioContext.gBankLoadStatus; + break; + case 2: + loadedPool = &gAudioContext.gUnusedLoadedPool; + table = gAudioContext.gUnusedLoadStatus; + break; + } + + if (arg2 == 0) { + tp = &loadedPool->temporary; + pool = &tp->pool; + + if (pool->size < size) { + return NULL; + } + + firstVal = (tp->entries[0].id == -1) ? 0 : table[tp->entries[0].id]; + secondVal = (tp->entries[1].id == -1) ? 0 : table[tp->entries[1].id]; + + if (poolIdx == 1) { + if (firstVal == 4) { + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + if (gAudioContext.gNotes[i].playbackState.bankId == tp->entries[0].id && + gAudioContext.gNotes[i].noteSubEu.bitField0.s.enabled != 0) { + break; + } + } + + if (i == gAudioContext.gMaxSimultaneousNotes) { + Audio_SetBankLoadStatus(tp->entries[0].id, 3); + firstVal = 3; + } + } + + if (secondVal == 4) { + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + if (gAudioContext.gNotes[i].playbackState.bankId == tp->entries[1].id && + gAudioContext.gNotes[i].noteSubEu.bitField0.s.enabled != 0) { + break; + } + } + + if (i == gAudioContext.gMaxSimultaneousNotes) { + Audio_SetBankLoadStatus(tp->entries[1].id, 3); + secondVal = 3; + } + } + } + + if (firstVal == 0) { + tp->nextSide = 0; + } else if (secondVal == 0) { + tp->nextSide = 1; + } else if (firstVal == 3 && secondVal == 3) { + // Use the opposite side from last time. + } else if (firstVal == 3) { + tp->nextSide = 0; + } else if (secondVal == 3) { + tp->nextSide = 1; + } else { + // Check if there is a side which isn't in active use, if so, evict that one. + if (poolIdx == 0) { + if (firstVal == 2) { + for (i = 0; i < gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) { + if (gAudioContext.gSequencePlayers[i].enabled != 0 && + gAudioContext.gSequencePlayers[i].seqId == tp->entries[0].id) { + break; + } + } + + if (i == gAudioContext.gAudioBufferParameters.numSequencePlayers) { + tp->nextSide = 0; + goto done; + } + } + + if (secondVal == 2) { + for (i = 0; i < gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) { + if (gAudioContext.gSequencePlayers[i].enabled != 0 && + gAudioContext.gSequencePlayers[i].seqId == tp->entries[1].id) { + break; + } + } + + if (i == gAudioContext.gAudioBufferParameters.numSequencePlayers) { + tp->nextSide = 1; + goto done; + } + } + } else if (poolIdx == 1) { + if (firstVal == 2) { + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + if (gAudioContext.gNotes[i].playbackState.bankId == tp->entries[0].id && + gAudioContext.gNotes[i].noteSubEu.bitField0.s.enabled != 0) { + break; + } + } + if (i == gAudioContext.gMaxSimultaneousNotes) { + tp->nextSide = 0; + goto done; + } + } + + if (secondVal == 2) { + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + if (gAudioContext.gNotes[i].playbackState.bankId == tp->entries[1].id && + gAudioContext.gNotes[i].noteSubEu.bitField0.s.enabled != 0) { + break; + } + } + if (i == gAudioContext.gMaxSimultaneousNotes) { + tp->nextSide = 1; + goto done; + } + } + } + + // No such luck. Evict the side that wasn't chosen last time, except + // if it is being loaded into. + if (tp->nextSide == 0) { + if (firstVal == 1) { + if (secondVal == 1) { + goto fail; + } + tp->nextSide = 1; + } + } else { + if (secondVal == 1) { + if (firstVal == 1) { + goto fail; + } + tp->nextSide = 0; + } + } + + if (0) { + fail: + // Both sides are being loaded into. + return NULL; + } + } + done: + + side = tp->nextSide; + + if (tp->entries[side].id != -1) { + if (poolIdx == 2) { + func_800E0E6C(tp->entries[side].id); + } + table[tp->entries[side].id] = 0; + if (poolIdx == 1) { + Audio_DiscardBank(tp->entries[side].id); + } + } + + switch (side) { + case 0: + tp->entries[0].ptr = pool->start; + tp->entries[0].id = id; + tp->entries[0].size = size; + pool->cur = pool->start + size; + + if (tp->entries[1].id != -1 && tp->entries[1].ptr < pool->cur) { + if (poolIdx == 2) { + func_800E0E6C(tp->entries[1].id); + } + + table[tp->entries[1].id] = 0; + switch (poolIdx) { + case 0: + Audio_DiscardSequence((s32)tp->entries[1].id); + break; + case 1: + Audio_DiscardBank((s32)tp->entries[1].id); + break; + } + + tp->entries[1].id = -1; + tp->entries[1].ptr = pool->start + pool->size; + } + + ret = tp->entries[0].ptr; + break; + + case 1: + tp->entries[1].ptr = (u8*)((u32)(pool->start + pool->size - size) & ~0xF); + tp->entries[1].id = id; + tp->entries[1].size = size; + if (tp->entries[0].id != -1 && tp->entries[1].ptr < pool->cur) { + if (poolIdx == 2) { + func_800E0E6C(tp->entries[0].id); + } + + table[tp->entries[0].id] = 0; + switch (poolIdx) { + case 0: + Audio_DiscardSequence(tp->entries[0].id); + break; + case 1: + Audio_DiscardBank(tp->entries[0].id); + break; + } + + tp->entries[0].id = -1; + pool->cur = pool->start; + } + ret = tp->entries[1].ptr; + break; + + default: + return NULL; + } + + tp->nextSide ^= 1; + return ret; + } + + mem = Audio_Alloc(&loadedPool->persistent.pool, size); + loadedPool->persistent.entries[loadedPool->persistent.numEntries].ptr = mem; + + if (mem == NULL) { + switch (arg2) { + case 2: + return Audio_AllocBankOrSeq(poolIdx, size, 0, id); + + case 0: + case 1: + return NULL; + } + } + + loadedPool->persistent.entries[loadedPool->persistent.numEntries].id = id; + loadedPool->persistent.entries[loadedPool->persistent.numEntries].size = size; + return loadedPool->persistent.entries[loadedPool->persistent.numEntries++].ptr; +} + +void* func_800DF074(s32 poolIdx, s32 arg1, s32 id) { + void* ret; + + ret = func_800E04E8(poolIdx, id); + if (ret != NULL) { + return ret; + } + if (arg1 == 3) { + return NULL; + } + return func_800DF0CC(poolIdx, arg1, id); +} + +void* func_800DF0CC(s32 poolIdx, s32 arg1, s32 bankId) { + u32 i; + SoundMultiPool* loadedPool; + TemporaryPool* temporary; + PersistentPool* persistent; + + switch (poolIdx) { + case 0: + loadedPool = &gAudioContext.gSeqLoadedPool; + break; + case 1: + loadedPool = &gAudioContext.gBankLoadedPool; + break; + case 2: + loadedPool = &gAudioContext.gUnusedLoadedPool; + break; + } + + temporary = &loadedPool->temporary; + if (arg1 == 0) { + if (temporary->entries[0].id == bankId) { + temporary->nextSide = 1; + return temporary->entries[0].ptr; + } else if (temporary->entries[1].id == bankId) { + temporary->nextSide = 0; + return temporary->entries[1].ptr; + } else { + return NULL; + } + } + + persistent = &loadedPool->persistent; + for (i = 0; i < persistent->numEntries; i++) { + if (persistent->entries[i].id == bankId) { + return persistent->entries[i].ptr; + } + } + + if (arg1 == 2) { + return func_800DF074(poolIdx, 0, bankId); + } + return NULL; +} + +void func_800DF1D8(f32 arg0, f32 arg1, u16* arg2) { + s32 i; + f32 tmp[16]; + + tmp[0] = (f32)(arg1 * 262159.0f); + tmp[8] = (f32)(arg0 * 262159.0f); + tmp[1] = (f32)((arg1 * arg0) * 262159.0f); + tmp[9] = (f32)(((arg0 * arg0) + arg1) * 262159.0f); + + for (i = 2; i < 8; i++) { + //! @bug value was probably meant to be stored to tmp[i] and tmp[8 + i] + arg2[i] = arg1 * tmp[i - 2] + arg0 * tmp[i - 1]; + arg2[8 + i] = arg1 * tmp[6 + i] + arg0 * tmp[7 + i]; + } + + for (i = 0; i < 16; i++) { + arg2[i] = tmp[i]; + } +} + +void func_800DF5AC(s16* arg0) { + s32 i; + + for (i = 0; i < 8; i++) { + arg0[i] = 0; + } +} + +void func_800DF5DC(s16* arg0, s32 arg1) { + s32 i; + s16* ptr = &D_80130228[8 * arg1]; + + for (i = 0; i < 8; i++) { + arg0[i] = ptr[i]; + } +} + +void func_800DF630(s16* arg0, s32 arg1) { + s32 i; + s16* ptr = &D_80130328[8 * (arg1 - 1)]; + + for (i = 0; i < 8; i++) { + arg0[i] = ptr[i]; + } +} + +void func_800DF688(s16* arg0, s32 arg1, s32 arg2) { + s32 i; + + if (arg1 == 0 && arg2 == 0) { + func_800DF5DC(arg0, 0); + } else if (arg2 == 0) { + func_800DF5DC(arg0, arg1); + } else if (arg1 == 0) { + func_800DF630(arg0, arg2); + } else { + s16* ptr1 = &D_80130228[8 * arg1]; + s16* ptr2 = &D_80130328[8 * (arg2 - 1)]; + for (i = 0; i < 8; i++) { + arg0[i] = (ptr1[i] + ptr2[i]) / 2; + } + } +} + +void func_800DF7BC(SynthesisReverb* reverb) { +} + +void func_800DF7C4(void) { + s32 count; + s32 i; + s32 j; + + if (gAudioContext.gAudioBufferParameters.presetUnk4 == 2) { + count = 2; + } else { + count = 1; + } + + for (i = 0; i < gAudioContext.gNumSynthesisReverbs; i++) { + for (j = 0; j < count; j++) { + func_800DF7BC(&gAudioContext.gSynthesisReverbs[i]); + } + } +} + +void func_800DF888(void) { + s32 ind; + s32 i; + + ind = gAudioContext.unk_28A8; + gAudioContext.unk_2974[ind] = gAudioContext.gAudioBufferParameters.minAiBufferLength; + + for (i = 0; i < 0x580; i++) { + gAudioContext.unk_2968[ind][i] = 0; + } +} + +s32 Audio_ResetStep(void) { + s32 i; + s32 j; + s32 sp24; + + if (gAudioContext.gAudioBufferParameters.presetUnk4 == 2) { + sp24 = 2; + } else { + sp24 = 1; + } + + switch (gAudioContext.gAudioResetStatus) { + case 5: + for (i = 0; i < gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) { + Audio_SequencePlayerDisableAsFinished(&gAudioContext.gSequencePlayers[i]); + } + gAudioContext.gAudioResetFadeOutFramesLeft = 2 / sp24; + gAudioContext.gAudioResetStatus--; + break; + + case 4: + if (gAudioContext.gAudioResetFadeOutFramesLeft != 0) { + gAudioContext.gAudioResetFadeOutFramesLeft--; + func_800DF7C4(); + } else { + for (i = 0; i < gAudioContext.gMaxSimultaneousNotes; i++) { + if (gAudioContext.gNotes[i].noteSubEu.bitField0.s.enabled && + gAudioContext.gNotes[i].playbackState.adsr.action.s.state != ADSR_STATE_DISABLED) { + gAudioContext.gNotes[i].playbackState.adsr.fadeOutVel = + gAudioContext.gAudioBufferParameters.updatesPerFrameInv; + gAudioContext.gNotes[i].playbackState.adsr.action.s.release = true; + } + } + gAudioContext.gAudioResetFadeOutFramesLeft = 8 / sp24; + gAudioContext.gAudioResetStatus--; + } + break; + + case 3: + if (gAudioContext.gAudioResetFadeOutFramesLeft != 0) { + gAudioContext.gAudioResetFadeOutFramesLeft--; + func_800DF7C4(); + } else { + gAudioContext.gAudioResetFadeOutFramesLeft = 2 / sp24; + gAudioContext.gAudioResetStatus--; + } + break; + + case 2: + func_800DF888(); + if (gAudioContext.gAudioResetFadeOutFramesLeft != 0) { + gAudioContext.gAudioResetFadeOutFramesLeft--; + } else { + gAudioContext.gAudioResetStatus--; + func_800E0CBC(); + func_800E1148(); + } + break; + + case 1: + func_800DFBF8(); + gAudioContext.gAudioResetStatus = 0; + for (i = 0; i < 3; i++) { + gAudioContext.unk_2974[i] = gAudioContext.gAudioBufferParameters.maxAiBufferLength; + for (j = 0; j < 0x580; j++) { + gAudioContext.unk_2968[i][j] = 0; + } + } + break; + } + + if (gAudioContext.gAudioResetStatus < 3) { + return 0; + } + + return 1; +} + +#ifdef NON_EQUIVALENT +// first half matches, reorderings and regalloc in second half +void func_800DFBF8(void) { + s32 pad[6]; + s32 i; + s32 j; + s16* mem; + u16 windowSize; + s32 persistentMem; + s32 temporaryMem; + s32 totalMem; + AudioSessionSettings* preset; + s32 wantMisc; + u32 intMask; + + preset = &gAudioSessionPresets[gAudioContext.gAudioResetPresetIdToLoad]; + gAudioContext.gSampleDmaNumListItems = 0; + gAudioContext.gAudioBufferParameters.frequency = preset->frequency; + gAudioContext.gAudioBufferParameters.aiFrequency = osAiSetFrequency(gAudioContext.gAudioBufferParameters.frequency); + gAudioContext.gAudioBufferParameters.samplesPerFrameTarget = + ((gAudioContext.gAudioBufferParameters.frequency / gAudioContext.gRefreshRate) + 0xF) & 0xFFF0; + gAudioContext.gAudioBufferParameters.minAiBufferLength = + gAudioContext.gAudioBufferParameters.samplesPerFrameTarget - 0x10; + gAudioContext.gAudioBufferParameters.maxAiBufferLength = + gAudioContext.gAudioBufferParameters.samplesPerFrameTarget + 0x10; + gAudioContext.gAudioBufferParameters.updatesPerFrame = + ((gAudioContext.gAudioBufferParameters.samplesPerFrameTarget + 0x10) / 0xD0) + 1; + gAudioContext.gAudioBufferParameters.samplesPerUpdate = + (gAudioContext.gAudioBufferParameters.samplesPerFrameTarget / + gAudioContext.gAudioBufferParameters.updatesPerFrame) & + ~7; + gAudioContext.gAudioBufferParameters.samplesPerUpdateMax = + gAudioContext.gAudioBufferParameters.samplesPerUpdate + 8; + gAudioContext.gAudioBufferParameters.samplesPerUpdateMin = + gAudioContext.gAudioBufferParameters.samplesPerUpdate - 8; + gAudioContext.gAudioBufferParameters.resampleRate = 32000.0f / (s32)gAudioContext.gAudioBufferParameters.frequency; + gAudioContext.gAudioBufferParameters.unkUpdatesPerFrameScaled = + (1.0f / 256.0f) / gAudioContext.gAudioBufferParameters.updatesPerFrame; + gAudioContext.gAudioBufferParameters.unk_24 = gAudioContext.gAudioBufferParameters.updatesPerFrame * 0.25f; + gAudioContext.gAudioBufferParameters.updatesPerFrameInv = + 1.0f / gAudioContext.gAudioBufferParameters.updatesPerFrame; + gAudioContext.unk_2874 = preset->unk_10; + gAudioContext.unk_2878 = preset->unk_12; + + gAudioContext.gMaxSimultaneousNotes = preset->maxSimultaneousNotes; + gAudioContext.gAudioBufferParameters.numSequencePlayers = preset->numSequencePlayers; + if (gAudioContext.gAudioBufferParameters.numSequencePlayers > 4) { + gAudioContext.gAudioBufferParameters.numSequencePlayers = 4; + } + gAudioContext.unk_2 = preset->unk_14; + gAudioContext.gTempoInternalToExternal = (u32)(gAudioContext.gAudioBufferParameters.updatesPerFrame * 2880000.0f / + gTatumsPerBeat / gAudioContext.unk_2960); + + gAudioContext.unk_2870 = gAudioContext.gRefreshRate; + gAudioContext.unk_2870 *= gAudioContext.gAudioBufferParameters.updatesPerFrame; + gAudioContext.unk_2870 /= gAudioContext.gAudioBufferParameters.aiFrequency; + gAudioContext.unk_2870 /= gAudioContext.gTempoInternalToExternal; + + gAudioContext.gAudioBufferParameters.presetUnk4 = preset->unk_04; + gAudioContext.gAudioBufferParameters.samplesPerFrameTarget *= gAudioContext.gAudioBufferParameters.presetUnk4; + gAudioContext.gAudioBufferParameters.maxAiBufferLength *= gAudioContext.gAudioBufferParameters.presetUnk4; + gAudioContext.gAudioBufferParameters.minAiBufferLength *= gAudioContext.gAudioBufferParameters.presetUnk4; + gAudioContext.gAudioBufferParameters.updatesPerFrame *= gAudioContext.gAudioBufferParameters.presetUnk4; + + if (gAudioContext.gAudioBufferParameters.presetUnk4 >= 2) { + gAudioContext.gAudioBufferParameters.maxAiBufferLength -= 0x10; + } + + gAudioContext.gMaxAudioCmds = + gAudioContext.gMaxSimultaneousNotes * 0x10 * gAudioContext.gAudioBufferParameters.updatesPerFrame + + preset->numReverbs * 0x18 + 0x140; + + persistentMem = preset->persistentSeqMem + preset->persistentBankMem + preset->persistentUnusedMem + 0x10; + temporaryMem = preset->temporarySeqMem + preset->temporaryBankMem + preset->temporaryUnusedMem + 0x10; + totalMem = persistentMem + temporaryMem; + wantMisc = gAudioContext.gAudioSessionPool.size - totalMem - 0x100; + + if (gAudioContext.gUnkPool.start != NULL) { + gAudioContext.gUnkPool.cur = gAudioContext.gUnkPool.start; + } + + gAudioContext.sSessionPoolSplit.wantSeq = wantMisc; + gAudioContext.sSessionPoolSplit.wantCustom = totalMem; + Audio_SessionPoolsInit(&gAudioContext.sSessionPoolSplit); + gAudioContext.sSeqAndBankPoolSplit.wantPersistent = persistentMem; + gAudioContext.sSeqAndBankPoolSplit.wantTemporary = temporaryMem; + Audio_SeqAndBankPoolInit(&gAudioContext.sSeqAndBankPoolSplit); + gAudioContext.sPersistentCommonPoolSplit.wantSeq = preset->persistentSeqMem; + gAudioContext.sPersistentCommonPoolSplit.wantBank = preset->persistentBankMem; + gAudioContext.sPersistentCommonPoolSplit.wantUnused = preset->persistentUnusedMem; + Audio_PersistentPoolsInit(&gAudioContext.sPersistentCommonPoolSplit); + gAudioContext.sTemporaryCommonPoolSplit.wantSeq = preset->temporarySeqMem; + gAudioContext.sTemporaryCommonPoolSplit.wantBank = preset->temporaryBankMem; + gAudioContext.sTemporaryCommonPoolSplit.wantUnused = preset->temporaryUnusedMem; + Audio_TemporaryPoolsInit(&gAudioContext.sTemporaryCommonPoolSplit); + + Audio_ResetLoadStatus(); + gAudioContext.gNotes = + Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, gAudioContext.gMaxSimultaneousNotes * sizeof(Note)); + Audio_NoteInitAll(); + Audio_InitNoteFreeList(); + gAudioContext.gNoteSubsEu = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, + gAudioContext.gAudioBufferParameters.updatesPerFrame * + gAudioContext.gMaxSimultaneousNotes * sizeof(NoteSubEu)); + + for (i = 0; i != 2; i++) { + gAudioContext.gAudioCmdBuffers[i] = + Audio_AllocDmaMemoryZeroed(&gAudioContext.gNotesAndBuffersPool, gAudioContext.gMaxAudioCmds * sizeof(u64)); + } + + gAudioContext.unk_3520 = Audio_Alloc(&gAudioContext.gNotesAndBuffersPool, 0x100 * sizeof(f32)); + func_800DDE3C(); + for (i = 0; i < 4; i++) { + gAudioContext.gSynthesisReverbs[i].useReverb = 0; + } + + gAudioContext.gNumSynthesisReverbs = preset->numReverbs; + for (i = 0; i < gAudioContext.gNumSynthesisReverbs; i++) { + SynthesisReverb* reverb = &gAudioContext.gSynthesisReverbs[i]; + ReverbSettings* settings = &preset->reverbSettings[i]; + reverb->downsampleRate = settings->downsampleRate; + reverb->windowSize = settings->windowSize * 64; + reverb->windowSize /= reverb->downsampleRate; + reverb->unk_0C = settings->unk_4; + reverb->unk_0A = settings->unk_A; + reverb->unk_14 = settings->unk_6 * 64; + reverb->unk_16 = settings->unk_8; + reverb->unk_18 = 0; + reverb->unk_10 = settings->unk_C; + reverb->unk_12 = settings->unk_E; + reverb->unk_05 = settings->unk_10; + reverb->unk_08 = settings->unk_12; + reverb->useReverb = 8; + reverb->unk_28 = func_800DE258(&gAudioContext.gNotesAndBuffersPool, reverb->windowSize * sizeof(s16)); + reverb->unk_2C = func_800DE258(&gAudioContext.gNotesAndBuffersPool, reverb->windowSize * sizeof(s16)); + reverb->unk_1C = 0; + reverb->unk_20 = 0; + reverb->unk_03 = 0; + reverb->unk_02 = 2; + reverb->unk_00 = 1; + reverb->unk_24 = reverb->windowSize; + reverb->sound.sample = &reverb->sample; + reverb->sample.loop = &reverb->loop; + reverb->sample.bits4 = 4; + reverb->sample.bits2 = 0; + reverb->sample.bits24 = reverb->windowSize * 2; + reverb->loop.start = 0; + reverb->loop.count = 1; + reverb->loop.end = reverb->windowSize; + reverb->sound.tuning = 1.0f; + reverb->sample.sampleAddr = (u8*)reverb->unk_28; + + if (reverb->downsampleRate != 1) { + reverb->unk_0E = 0x8000 / reverb->downsampleRate; + reverb->unk_30 = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20); + reverb->unk_34 = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20); + reverb->unk_38 = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20); + reverb->unk_3C = Audio_AllocZeroed(&gAudioContext.gNotesAndBuffersPool, 0x20); + reverb = reverb; + for (j = 0; j < gAudioContext.gAudioBufferParameters.updatesPerFrame; j++) { + mem = func_800DE258(&gAudioContext.gNotesAndBuffersPool, 0x340); + reverb->items[0][j].toDownsampleLeft = mem; + reverb->items[0][j].toDownsampleRight = mem + 0x1A0 / sizeof(s16); + mem = func_800DE258(&gAudioContext.gNotesAndBuffersPool, 0x340); + reverb->items[1][j].toDownsampleLeft = mem; + reverb->items[1][j].toDownsampleRight = mem + 0x1A0 / sizeof(s16); + } + } + + if (settings->unk_14 != 0) { + reverb->unk_278 = Audio_AllocDmaMemoryZeroed(&gAudioContext.gNotesAndBuffersPool, 0x40); + reverb->unk_270 = Audio_AllocDmaMemory(&gAudioContext.gNotesAndBuffersPool, 8 * sizeof(s16)); + func_800DF5DC(reverb->unk_270, settings->unk_14); + } else { + reverb->unk_270 = NULL; + } + + if (settings->unk_16 != 0) { + reverb->unk_27C = Audio_AllocDmaMemoryZeroed(&gAudioContext.gNotesAndBuffersPool, 0x40); + reverb->unk_274 = Audio_AllocDmaMemory(&gAudioContext.gNotesAndBuffersPool, 8 * sizeof(s16)); + func_800DF5DC(reverb->unk_274, settings->unk_16); + } else { + reverb->unk_274 = NULL; + } + } + + Audio_InitSequencePlayers(); + for (i = 0; i < gAudioContext.gAudioBufferParameters.numSequencePlayers; i++) { + func_800EC734(i); + Audio_ResetSequencePlayer(&gAudioContext.gSequencePlayers[i]); + } + + func_800E0634(preset->unk_30, preset->unk_34); + func_800E1618(gAudioContext.gMaxSimultaneousNotes); + gAudioContext.unk_176C = 0; + func_800E3400(); + func_800E4FB0(); + func_800E3A14(); + gAudioContext.unk_4 = 0x1000; + func_800E4D94(); + intMask = osSetIntMask(1); + osWritebackDCacheAll(); + osSetIntMask(intMask); +} +#else #pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800DFBF8.s") +#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E04E8.s") +void* func_800E04E8(s32 poolIdx, s32 id) { + s32 i; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0540.s") + for (i = 0; i < gAudioContext.unk_2D50.unused; i++) { + if (gAudioContext.unk_2D60[i].poolIndex == poolIdx && gAudioContext.unk_2D60[i].id == id) { + return gAudioContext.unk_2D60[i].ptr; + } + } + return NULL; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E05C4.s") +void* func_800E0540(s32 poolIdx, s32 id, u32 size) { + void* ret; + s32 sp18; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0634.s") + sp18 = gAudioContext.unk_2D50.unused; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E06CC.s") + ret = Audio_Alloc(&gAudioContext.unk_2D50, size); + gAudioContext.unk_2D60[sp18].ptr = ret; + if (ret == NULL) { + return NULL; + } + gAudioContext.unk_2D60[sp18].poolIndex = poolIdx; + gAudioContext.unk_2D60[sp18].id = id; + gAudioContext.unk_2D60[sp18].size = size; + // @bug UB: missing return. "ret" is in v0 at this point, but doing an + // explicit return uses an additional register. + // return ret; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0964.s") +void* func_800E05C4(u32 size, s32 arg1, void* arg2, s8 arg3, s32 arg4) { + UnkHeapEntry* entry; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0AD8.s") + if (arg4 == 0) { + entry = func_800E06CC(size); + } else { + entry = func_800E0BF8(size); + } + if (entry != NULL) { + entry->unk_02 = arg1; + entry->unk_0C = arg2; + entry->unk_01 = arg3; + return entry->unk_08; + } + return NULL; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0BB4.s") +void func_800E0634(u32 arg0, u32 arg1) { + void* mem; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0BF8.s") + mem = func_800DE2B0(&gAudioContext.gNotesAndBuffersPool, arg0); + if (mem == NULL) { + gAudioContext.unk_2EE0.pool.size = 0; + } else { + Audio_SoundAllocPoolInit(&gAudioContext.unk_2EE0.pool, mem, arg0); + } + mem = func_800DE2B0(&gAudioContext.gNotesAndBuffersPool, arg1); + if (mem == NULL) { + gAudioContext.unk_3174.pool.size = 0; + } else { + Audio_SoundAllocPoolInit(&gAudioContext.unk_3174.pool, mem, arg1); + } + gAudioContext.unk_2EE0.size = 0; + gAudioContext.unk_3174.size = 0; +} -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0C80.s") +UnkHeapEntry* func_800E06CC(u32 size) { + u8* allocAfter; + u8* allocBefore; + void* mem; + s32 index; + s32 i; + UnkHeapEntry* ret; + AudioStruct0D68* thing; + UnkPool* unkPool; + u8* start; + u8* end; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0CBC.s") + unkPool = &gAudioContext.unk_3174; + allocBefore = unkPool->pool.cur; + mem = Audio_Alloc(&unkPool->pool, size); + if (mem == NULL) { + u8* old = unkPool->pool.cur; + unkPool->pool.cur = unkPool->pool.start; + mem = Audio_Alloc(&unkPool->pool, size); + if (mem == NULL) { + unkPool->pool.cur = old; + return NULL; + } + allocBefore = unkPool->pool.start; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0E0C.s") + allocAfter = unkPool->pool.cur; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0E6C.s") + index = -1; + for (i = 0; i < gAudioContext.unk_176C; i++) { + thing = &gAudioContext.unk_0D68[i]; + if (thing->unk_10 == 0) { + start = thing->unk_08; + end = thing->unk_08 + thing->sample->bits24 - 1; -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0E90.s") + if (end < allocBefore && start < allocBefore) { + continue; + } + if (end >= allocAfter && start >= allocAfter) { + continue; + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E0EB4.s") + // Overlap + thing->unk_10 = 1; + } + } -#pragma GLOBAL_ASM("asm/non_matchings/code/audio_heap/func_800E1148.s") + for (i = 0; i < unkPool->size; i++) { + if (unkPool->entries[i].unk_00 == 0) { + continue; + } + + start = unkPool->entries[i].unk_08; + end = start + unkPool->entries[i].size - 1; + + if (end < allocBefore && start < allocBefore) { + continue; + } + if (end >= allocAfter && start >= allocAfter) { + continue; + } + + // Overlap. Discard existing entry? + func_800E0AD8(&unkPool->entries[i]); + if (index == -1) { + index = i; + } + } + + if (index == -1) { + index = unkPool->size++; + } + + ret = &unkPool->entries[index]; + ret->unk_00 = 1; + ret->unk_08 = mem; + ret->size = size; + return ret; +} + +void func_800E0964(UnkHeapEntry* entry, s32 bankId) { + Drum* drum; + Instrument* inst; + AudioBankSound* sfx; + s32 instId; + s32 drumId; + s32 sfxId; + + for (instId = 0; instId < gAudioContext.gCtlEntries[bankId].numInstruments; instId++) { + inst = Audio_GetInstrumentInner(bankId, instId); + if (inst != NULL) { + if (inst->normalRangeLo != 0) { + func_800E0BB4(entry, inst->lowNotesSound.sample); + } + if (inst->normalRangeHi != 0x7F) { + func_800E0BB4(entry, inst->highNotesSound.sample); + } + func_800E0BB4(entry, inst->normalNotesSound.sample); + } + } + + for (drumId = 0; drumId < gAudioContext.gCtlEntries[bankId].numDrums; drumId++) { + drum = Audio_GetDrum(bankId, drumId); + if (drum != NULL) { + func_800E0BB4(entry, drum->sound.sample); + } + } + + for (sfxId = 0; sfxId < gAudioContext.gCtlEntries[bankId].numSfx; sfxId++) { + sfx = Audio_GetSfx(bankId, sfxId); + if (sfx != NULL) { + func_800E0BB4(entry, sfx->sample); + } + } +} + +void func_800E0AD8(UnkHeapEntry* entry) { + s32 numBanks; + s32 unk2; + s32 unk3; + s32 bankId; + + numBanks = *gAudioContext.unk_2834; + for (bankId = 0; bankId < numBanks; bankId++) { + unk2 = gAudioContext.gCtlEntries[bankId].unk_02; + unk3 = gAudioContext.gCtlEntries[bankId].unk_03; + if (((unk2 != 0xFF) && (entry->unk_02 == unk2)) || ((unk3 != 0xFF) && (entry->unk_02 == unk3)) || + entry->unk_02 == 0) { + if (func_800DF074(1, 2, bankId) != NULL) { + if (Audio_IsBankLoadComplete(bankId) != 0) { + func_800E0964(entry, bankId); + } + } + } + } +} + +void func_800E0BB4(UnkHeapEntry* entry, AudioBankSample* sample) { + if (sample != NULL) { + if (sample->sampleAddr == entry->unk_08) { + sample->sampleAddr = entry->unk_0C; + sample->bits2 = entry->unk_01; + } + } +} + +UnkHeapEntry* func_800E0BF8(u32 size) { + UnkPool* pool; + UnkHeapEntry* entry; + void* mem; + + pool = &gAudioContext.unk_2EE0; + mem = Audio_Alloc(&pool->pool, size); + if (mem == NULL) { + return NULL; + } + entry = &pool->entries[pool->size]; + entry->unk_00 = 1; + entry->unk_08 = mem; + entry->size = size; + pool->size++; + return entry; +} + +void func_800E0C80(UnkHeapEntry* entry, s32 arg1, s32 arg2, s32 bankId) { + if ((entry->unk_02 == arg1) || (entry->unk_02 == arg2) || (entry->unk_02 == 0)) { + func_800E0964(entry, bankId); + } +} + +void func_800E0CBC(void) { + s32 numBanks; + s32 unk2; + s32 unk3; + s32 bankId; + s32 j; + + numBanks = *gAudioContext.unk_2834; + for (bankId = 0; bankId < numBanks; bankId++) { + unk2 = gAudioContext.gCtlEntries[bankId].unk_02; + unk3 = gAudioContext.gCtlEntries[bankId].unk_03; + if ((unk2 == 0xFF) && (unk3 == 0xFF)) { + continue; + } + if (func_800DF074(1, 3, bankId) == NULL || !Audio_IsBankLoadComplete(bankId)) { + continue; + } + + for (j = 0; j < gAudioContext.unk_2EE0.size; j++) { + func_800E0C80(&gAudioContext.unk_2EE0.entries[j], unk2, unk3, bankId); + } + for (j = 0; j < gAudioContext.unk_3174.size; j++) { + func_800E0C80(&gAudioContext.unk_3174.entries[j], unk2, unk3, bankId); + } + } +} + +typedef struct { + u8* unk_0; + u8* unk_4; + u32 unk_8; + u8 unk_C; +} Struct_800E0E0C; + +void func_800E0E0C(Struct_800E0E0C* arg0, AudioBankSample* sample) { + if (sample != NULL) { + u8* start = arg0->unk_0; + u8* end = arg0->unk_0 + arg0->unk_8; + u8* sampleAddr = sample->sampleAddr; + if (start <= sampleAddr && sampleAddr < end) { + sample->sampleAddr = sampleAddr - start + arg0->unk_4; + sample->bits2 = arg0->unk_C & 0xFF; + } + } +} + +void func_800E0E6C(s32 id) { + func_800E0EB4(0, id); +} + +void func_800E0E90(s32 id) { + func_800E0EB4(1, id); +} + +void func_800E0EB4(s32 arg0, s32 id) { + ManyStruct_800E0E0C_2* manyThing; + Struct_800E0E0C_2* thing; + s32 numBanks; + s32 instId; + s32 drumId; + s32 sfxId; + Struct_800E0E0C sp78; + s32 unk2; + s32 unk3; + s32 bankId; + Drum* drum; + Instrument* inst; + AudioBankSound* sfx; + u8** fakematch; + s32 pad[4]; + + manyThing = gAudioContext.unk_2838; + numBanks = *gAudioContext.unk_2834; + sp78.unk_0 = func_800DF074(2, 2, id); + if (sp78.unk_0 == NULL) { + return; + } + + thing = &manyThing->unk_C[id]; + sp78.unk_8 = thing->unk_8; + sp78.unk_C = thing->unk_C; + + if ((sp78.unk_C == 2) || (sp78.unk_C == 3)) { + sp78.unk_4 = thing->unk_4; + } else { + sp78.unk_4 = NULL; + } + + fakematch = &sp78.unk_0; + if ((arg0 != 0) && (arg0 == 1)) { + u8* temp = sp78.unk_4; + sp78.unk_4 = *fakematch; + sp78.unk_0 = temp; + sp78.unk_C = 0; + } + + for (bankId = 0; bankId < numBanks; bankId++) { + unk2 = gAudioContext.gCtlEntries[bankId].unk_02; + unk3 = gAudioContext.gCtlEntries[bankId].unk_03; + if ((unk2 != 0xFF) || (unk3 != 0xFF)) { + if (!Audio_IsBankLoadComplete(bankId) || func_800DF074(1, 2, bankId) == NULL) { + continue; + } + + if (unk2 == id) { + } else if (unk3 == id) { + } else { + continue; + } + + for (instId = 0; instId < gAudioContext.gCtlEntries[bankId].numInstruments; instId++) { + inst = Audio_GetInstrumentInner(bankId, instId); + if (inst != NULL) { + if (inst->normalRangeLo != 0) { + func_800E0E0C(&sp78, inst->lowNotesSound.sample); + } + if (inst->normalRangeHi != 0x7F) { + func_800E0E0C(&sp78, inst->highNotesSound.sample); + } + func_800E0E0C(&sp78, inst->normalNotesSound.sample); + } + } + + for (drumId = 0; drumId < gAudioContext.gCtlEntries[bankId].numDrums; drumId++) { + drum = Audio_GetDrum(bankId, drumId); + if (drum != NULL) { + func_800E0E0C(&sp78, drum->sound.sample); + } + } + + for (sfxId = 0; sfxId < gAudioContext.gCtlEntries[bankId].numSfx; sfxId++) { + sfx = Audio_GetSfx(bankId, sfxId); + if (sfx != NULL) { + func_800E0E0C(&sp78, sfx->sample); + } + } + } + } +} + +void func_800E1148(void) { + SoundMultiPool* pool; + PersistentPool* persistent; + TemporaryPool* temporary; + u32 i; + + pool = &gAudioContext.gUnusedLoadedPool; + temporary = &pool->temporary; + + if (temporary->entries[0].id != -1) { + func_800E0E6C(temporary->entries[0].id); + } + + if (temporary->entries[1].id != -1) { + func_800E0E6C(temporary->entries[1].id); + } + + persistent = &pool->persistent; + for (i = 0; i < persistent->numEntries; i++) { + func_800E0E6C(persistent->entries[i].id); + } +} diff --git a/src/code/audio_playback.c b/src/code/audio_playback.c index 08e3b2ca77..d5e71ff9c6 100644 --- a/src/code/audio_playback.c +++ b/src/code/audio_playback.c @@ -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); } diff --git a/src/code/audio_seqplayer.c b/src/code/audio_seqplayer.c index da5a2ff5c9..0092249b20 100644 --- a/src/code/audio_seqplayer.c +++ b/src/code/audio_seqplayer.c @@ -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++) { diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c index 83bdf7d54d..1d84919ee0 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c @@ -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); +} diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.h b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.h index 44b9acc24e..27128ff372 100644 --- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.h +++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.h @@ -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; diff --git a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c index 967bfea161..8a266d7577 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c @@ -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); +} diff --git a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.h b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.h index 773f9d345d..003174c0ba 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.h +++ b/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.h @@ -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; diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c index b3e424e035..11d0898405 100644 --- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c +++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c @@ -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); +} diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.h b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.h index 775394f71a..cffc9036ad 100644 --- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.h +++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.h @@ -8,7 +8,7 @@ struct ObjHana; typedef struct ObjHana { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x4C]; + /* 0x014C */ ColliderCylinder collider; } ObjHana; // size = 0x0198 extern const ActorInit Obj_Hana_InitVars; diff --git a/tools/ichaindis.py b/tools/ichaindis.py index 896dd87f01..017b1ba0d8 100755 --- a/tools/ichaindis.py +++ b/tools/ichaindis.py @@ -4,6 +4,8 @@ import os import sys import struct import argparse +import re +from overlayhelpers.filemap import FileResult, GetFromVRam, GetFromRom ICHAIN_MACROS = [ 'ICHAIN_U8', @@ -19,11 +21,55 @@ ICHAIN_MACROS = [ 'ICHAIN_VEC3S', ] +Z64_ACTOR_PATH = "../include/z64actor.h" + +def get_rom_address(offset): + + if offset.startswith("D_"): + offset = offset[2:] + + offset = int(offset, 16) + + if offset >= 0x80000000: + result = GetFromVRam(offset) + offset = result.vrom.start + result.offset + + return hex(offset) + +def get_actor_var_names(): + in_actor = False + actor_vars = {} + with open(os.path.dirname(os.path.realpath(__file__)) + "/" + Z64_ACTOR_PATH) as actor_h: + for line in actor_h: + if in_actor: + if "}" in line: + # Reached the end of the actor struct so break out + break + + # Parse out the memory address (from the comment) and the variable name + regex = r'.*\/\* (.*) \*\/\s+(struct)?\s*.+\s+(.+);.*' + actor_var_info = re.match(regex, line) + + if actor_var_info: + # Strip off the 0x0* part and store it + new_var_index = re.sub('0x0*', '', actor_var_info[1]) + actor_vars[new_var_index] = actor_var_info[3] + + elif "typedef struct Actor {" in line: + # Found the Actor struct + in_actor = True + return actor_vars + def main(): parser = argparse.ArgumentParser(description='Decompiles an InitChain') parser.add_argument('filename', help='ROM file path') - parser.add_argument('offset', help='ROM offset to an InitChain') + parser.add_argument('offset', help='ROM offset or symbol of an InitChain') + parser.add_argument('--names', action="store_true", help='Retrieve variable names from the actor struct') args = parser.parse_args() + + # Get the ROM address, if the offset is already a ROM address it will just be returned. + args.offset = get_rom_address(args.offset) + romOff = int(args.offset, 16) try: @@ -34,6 +80,10 @@ def main(): sys.exit(1) print ('static InitChainEntry sInitChain[] = {') + + if args.names: + actor_variable_names = get_actor_var_names() + while True: entry = struct.unpack('>I', romData[romOff:romOff+4])[0] romOff += 4 @@ -43,7 +93,14 @@ def main(): offset = ((entry) >> 16) & 0x7FF value = (entry) & 0xFFFF - print(' {0}(unk_{1:X}, {2}, {3}),'.format(ICHAIN_MACROS[t], offset, value, ('ICHAIN_CONTINUE' if cont == 1 else 'ICHAIN_STOP'))) + var_name = '{0:X}'.format(offset) + + if args.names and var_name in actor_variable_names: + var_name = actor_variable_names[var_name] + else: + var_name = "unk_" + var_name + + print(' {0}({1}, {2}, {3}),'.format(ICHAIN_MACROS[t], var_name, value, ('ICHAIN_CONTINUE' if cont == 1 else 'ICHAIN_STOP'))) if cont == 0: break print ('};') diff --git a/tools/ido_recomp/macos/5.3/as1 b/tools/ido_recomp/macos/5.3/as1 new file mode 100755 index 0000000000..692fe600c2 Binary files /dev/null and b/tools/ido_recomp/macos/5.3/as1 differ diff --git a/tools/ido_recomp/macos/5.3/cc b/tools/ido_recomp/macos/5.3/cc new file mode 100755 index 0000000000..90ffc74096 Binary files /dev/null and b/tools/ido_recomp/macos/5.3/cc differ diff --git a/tools/ido_recomp/macos/5.3/cfe b/tools/ido_recomp/macos/5.3/cfe new file mode 100755 index 0000000000..753be0d6c7 Binary files /dev/null and b/tools/ido_recomp/macos/5.3/cfe differ diff --git a/tools/ido_recomp/macos/5.3/err.english.cc b/tools/ido_recomp/macos/5.3/err.english.cc new file mode 100644 index 0000000000..6976e38a95 --- /dev/null +++ b/tools/ido_recomp/macos/5.3/err.english.cc @@ -0,0 +1,1260 @@ +@ + 358 358 358 + 6464 6482 6553 + 6553 6593 6728 + 6728 6746 6803 + 6803 6808 6808 + 6808 6818 6818 + 6818 6826 6826 + 6826 6847 6847 + 6847 6875 6922 + 6922 6930 6930 + 6930 6939 6939 + 6939 6948 6948 + 6948 6974 7120 + 7120 7149 7204 + 7210 7248 7311 + 7317 7350 7442 + 7450 7497 7627 + 7635 7709 7930 + 7938 7975 8063 + 8071 8113 8253 + 8261 8289 8289 + 8298 8338 8445 + 8460 8502 8635 + 8650 8690 8819 + 8834 8857 8965 + 8965 9008 9113 + 9119 9142 9227 + 9235 9282 9451 + 9451 9462 9462 + 9462 9477 9477 + 9477 9497 9497 + 9497 9545 9545 + 9545 9584 9584 + 9584 9604 9662 + 9662 9682 9720 + 9720 9749 9749 + 9749 9788 9788 + 9788 9802 9802 + 9802 9829 9829 + 9829 9861 9861 + 9861 9904 9904 + 9904 9920 9920 + 9920 9962 9962 + 9962 9988 9988 + 9988 10014 10014 +10014 10035 10035 +10035 10054 10097 +10097 10115 10115 +10115 10147 10147 +10147 10183 10183 +10183 10208 10208 +10208 10236 10236 +10236 10269 10269 +10269 10304 10304 +10304 10328 10328 +10328 10351 10351 +10351 10371 10371 +10371 10402 10402 +10402 10447 10447 +10447 10497 10497 +10497 10533 10533 +10533 10598 10598 +10606 10630 10630 +10640 10671 10671 +10690 10719 10719 +10728 10752 10795 +10795 10837 10837 +10837 10876 10876 +10876 10900 10900 +10900 10948 10948 +10960 11021 11103 +11103 11128 11128 +11128 11153 11153 +11153 11216 11216 +11216 11239 11239 +11239 11303 11303 +11303 11347 11347 +11357 11393 11393 +11393 11432 11432 +11442 11494 11494 +11494 11536 11536 +11536 11595 11595 +11595 11622 11622 +11622 11684 11684 +11684 11726 11726 +11738 11778 11778 +11782 11813 11813 +11813 11850 11850 +11850 11900 12087 +12111 12120 12120 +12120 12129 12129 +12129 12158 12158 +12158 12192 12192 +12192 12237 12237 +12237 12273 12273 +12273 12326 12326 +12330 12366 12366 +12366 12423 12423 +12427 12482 12482 +12486 12560 12560 +12568 12631 12631 +12637 12691 12691 +12691 12743 12743 +12743 12785 12785 +12785 12826 12826 +12826 12865 12865 +12865 12883 12883 +12883 12946 12946 +12956 12995 12995 +13005 13066 13066 +13077 13163 13163 +13163 13211 13211 +13211 13270 13270 +13270 13318 13318 +13318 13350 13350 +13350 13387 13387 +13387 13428 13428 +13428 13464 13533 +13533 13580 13737 +13737 13776 13854 +13854 13913 13913 +13913 13950 13950 +13950 14118 14118 +14118 14150 14150 +14150 14163 14194 +14194 14224 14255 +14255 14275 14319 +14319 14353 14458 +14466 14484 14530 +14534 14567 14567 +14567 14635 14682 +14690 14742 14742 +14742 14789 14789 +14801 14875 14875 +14886 14947 14947 +14947 14992 14992 +14992 15035 15085 +15085 15134 15205 +15214 15267 15448 +15454 15496 16810 +16822 16875 16960 +16972 17053 17179 +17191 17236 17332 +17344 17491 17841 +17853 17939 18304 +18316 18471 18774 +18786 18952 19323 +19335 19364 19496 +19500 19527 19598 +19598 19613 19776 +19797 19808 19837 +19837 19862 19862 +19868 19927 20026 +20034 20075 20179 +20187 20223 20223 +20223 20290 20382 +20392 20441 20589 +20601 20656 20656 +20656 20699 20818 +20826 20860 21038 +21046 21094 21191 +21203 21236 21314 +21326 21395 21457 +21469 21502 21502 +21502 21587 21731 +21756 21789 21864 +21875 21901 21976 +22013 22059 22220 +22257 22397 22561 +22561 22595 22595 +22603 22623 22623 +22631 22667 22828 +22865 22919 22994 +23031 23059 23120 +23132 23201 23201 +23212 23274 23274 +23285 23345 23345 +23356 23393 23393 +23399 23431 23532 +23542 23587 23646 +23656 23697 23745 +23755 23796 23844 +23854 23876 23928 +23942 23971 24153 +24160 24243 24243 +24247 24273 24743 +24755 24784 24984 +24996 25034 25034 +25034 25075 25273 +25281 25332 25410 +25420 25467 25544 +25554 25583 25744 +25754 25783 26061 +26071 26111 26185 +26194 26239 26525 +26535 26568 26914 +26924 26951 26998 +27008 27035 27082 +27093 27120 27167 +27178 27206 27251 +27261 27289 27334 +27345 27391 27931 +27938 27959 28007 +28019 28037 28037 +28043 28069 28069 +28077 28147 28199 +28207 28266 28266 +28274 28306 28306 +28314 28339 28339 +28347 28404 28510 +28518 28567 28682 +28690 28728 28728 +28736 28782 29023 +29033 29085 29234 +29246 29303 29383 +29395 29432 29570 +29592 29631 29644 +29644 29693 29758 +29767 29810 29875 +29875 29911 29976 +29984 30014 30014 +30027 30086 30151 +30157 30223 30293 +30301 30369 30445 +30457 30511 30568 +30580 30630 30743 +30755 30812 30874 +30886 30959 31035 +31043 31076 31175 +31183 31243 31243 +31251 31323 31323 +31331 31433 31433 +31445 31544 31686 +31698 31740 31740 +31740 31783 31783 +31783 31824 31824 +31824 31873 31996 +32008 32056 32164 +32176 32210 32210 +32229 32271 32271 +32279 32323 32569 +32581 32642 32718 +32739 32779 32916 +32926 32953 33047 +33057 33116 33315 +33325 33373 33373 +33373 33407 33469 +33494 33527 33527 +33536 33573 33573 +33584 33650 33697 +33705 33763 33763 +33763 33797 33797 +33797 33829 33906 +33915 33976 33976 +33985 34016 34098 +34098 34133 34198 +34198 34261 34261 +34269 34312 34312 +34324 34363 34438 +34444 34530 34530 +34538 34596 34626 +34636 34675 34754 +34764 34821 34821 +34821 34867 34950 +34959 35016 35135 +35145 35198 35198 +35208 35266 35344 +35355 35382 35537 +35547 35576 35629 +35637 35705 35705 +35713 35764 35764 +35764 35784 35876 +35888 35932 35950 +35950 36013 36138 +36150 36191 36280 +36286 36314 36419 +36431 36516 36516 +36516 36554 36642 +36642 36689 36808 +36818 36881 37105 +37113 37183 37204 +37204 37225 37225 +37225 37255 37348 +37348 37388 37388 +37388 37454 37454 +37454 37518 37518 +37518 37584 37584 +37584 37717 37717 +37717 37752 37752 +37752 37783 37889 +37901 37928 38034 +38046 38115 38115 +38115 38140 38187 +38195 38219 38339 +38351 38422 38422 +38422 38486 38486 +38486 38555 38555 +38555 38619 38619 +38619 38641 38641 +38641 38758 38758 +38758 38929 38929 +38929 38975 39043 +39055 39084 39133 +39133 39175 39265 +39275 39310 39494 +39504 39547 39576 +39587 39614 39668 +39674 39697 39797 +39797 39845 40094 +40094 40158 40264 +40264 40369 40523 +40523 40593 40593 +40593 40629 40876 +40876 40911 40971 +40977 41026 41026 +41038 41077 41077 +41077 41116 41116 +41116 41156 41156 +41156 41195 41195 +41195 41237 41237 +41237 41285 41285 +41285 41304 41304 +41304 41371 41371 +41371 41429 41429 +41429 41491 41491 +41491 41519 41519 +41519 41572 41572 +41572 41642 41642 +41642 41676 41676 +41676 41713 41713 +41713 41751 41751 +41751 41792 41792 +41792 41856 41856 +41856 41881 41881 +41881 41936 41936 +41936 41977 41977 +41977 42018 42018 +42018 42090 42090 +42090 42162 42162 +42162 42205 42205 +42205 42267 42267 +42267 42294 42294 +42294 42309 42309 +42309 42338 42386 +42393 42425 42522 +42530 42577 42577 +42577 42623 42623 +42623 42643 42725 +42725 42748 42748 +42748 42829 42897 +42901 42952 42952 +42952 42978 43025 +43025 43116 43116 +43116 43171 43171 +43171 43204 43376 +43386 43453 43471 +43471 43547 43780 +43798 43921 44116 +44120 44120 44120 +Out of memory: %s +There is no more memory left in the system for compiling this program. +Internal Error Unknown Error Message %s +1) An internal error, while attempting to print an unavailable message +2) The error message file is inaccessible or has other problems +Unknown Signal %s +1) An unknown signal has been caught +2) 2 Nested signals +line +Warning: +Fatal: +Source not available +Too many errors... goodbye. +There is a limit of 30 errors before aborting. +Error: +reserved +reserved +Unknown Control Statement +1) The line begins with a '#' and is not of the form: + # "" +2) Please compile this program with the preprocessor enabled. +Unknown character %s ignored +The character is not part of the source character set. +2.2.1 +Unknown control character \%s ignored +The control character is not part of the source character set. +2.2.1 +Illegal character %s in exponent +1) Digits or sign expected after 'e' or 'E'. +2) Digits are expected after sign in exponent. +3.1.3.1 +Constant is out of range and may be truncated. +The constant is too large to be accurately represented and may be +truncated. The limits are in the system include file limits.h. +2.2.4.2 +Constant is out of range for a 32-bit data type, but accepted as written. +The constant is too large to fit in a 32-bit data type, but will be +accurately represented in a wider data type. The value may be truncated, +depending on its context. The limits are in the system include file +limits.h. +2.2.4.2 +Character constant size out of range +1) No characters in a character constant. +2) More than 4 bytes in a character constant. +3.1.3.4 +Wide character constant size out of range +1) No characters in the multibyte sequence (0 assumed). +2) More than 1 byte in the multi-byte sequence (only the first byte was converted). +3.1.3.4 +Invalid multibyte character +4.10.7.2 +Newline in string or character constant +1) Terminate your string or character constant with closing quotes. +2) Put a backslash before the newline. +3.1.3.4, 3.1.4 +Octal character escape too large: %s > %s +1) Terminate end of octal sequence with a non-octal character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Hex character escape too large: %s > %s +1) Terminate end of hex sequence with a non-hex character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Unexpected End-of-file +1) Unterminated string or character constant +2) Missing closing comment marker (*/) +3) File system problems +Unrecognized escape sequence in string \%s +Recognized escape sequences are \a, \b, \f, \n, \r, \t, and \v. +Character will be treated as un-escaped. +3.9.2 +Illegal octal digit %s +Octal constants, beginning with 0, must only have digits between 0 and 7, +inclusive. +3.1.3.2 +Unable to open temporary file for compiling %s +1) TMPDIR environment variable is set to a directory that you have no + permissions for. +2) The file system is full. +3) System errors beyond the scope of the compiler. +%s: Hangup +%s: Interrupt +%s: Quit (ASCII FS) +%s: Illegal instruction (not reset when caught) +%s: Trace trap (not reset when caught) +%s: IOT instruction +Also SIGABRT, used by abort, replace SIGIOT in the future +%s: EMT instruction +Also SIGXCPU, Exceeded CPU time limit +%s: Floating point exception +%s: Kill (cannot be caught or ignored) +%s: Bus error +%s: Segmentation violation +%s: Bad argument to system call +%s: Write on a pipe with no one to read it +%s: Alarm clock +%s: Software termination signal from kill +%s: User defined signal 1 +%s: User defined signal 2 +%s: Death of a child +Power-fail restart +%s: Also SIGXFSZ, exceeded file size limit +%s: Window change +%s: Handset, line status change +%s: Sendablestop signalnot from tty +%s: Stop signal from tty +%s: Pollable event occurred +%s: Input/Output possible signal +%s: Urgent condition on IO channel +%s: Window size changes +%s: Virtual time alarm +%s: Profiling alarm +%s: Continue a stopped process +%s: To readers pgrp upon background tty read +%s: Like TTIN for output if (tp->t_local<OSTOP) +%s: Resource lost (eg, record-lock) +'auto' and 'register' are not allowed in an external declaration +3.7(10) +must have function type +3.7.1(30) +Functions cannot return arrays +3.7.1(33), 3.3.2.2 +Declaration list not allowed +3.7.1(5) +Too many input files %s +The command line may contain only one file +cpp internal error: input stack underflow +cpp internal error: if stack underflow +Cannot open the file %s +No new-line character at the end of the file %s +2.1.1.2(30) +Fatal: Exceeded the limit of nesting level for #include file +Fatal: Exceeded the limit of nesting level for #include file. This limit +is 200. +Fail to read the file %s +Cannot write the file %s +%s: %s: An if directive is not terminated properly in the file +%s: %s: nested comment +%s:%s: Illegal macro name %s; macro name shall be an identifier +%s:%s: Illegal preprocessing token sequence +3.8.3(35) +%s:%s: Illegal macro parameter name +%s:%s: Non-unique macro parameter name +3.8.3(18) +%s:%s: Missing ')' in parameter list for #define %s +%s:%s: Missing ')' in macro instantiation +%s:%s: Bad punctuator in the parameter list for #define %s +%s:%s: Macro %s redefined. +%s:%s: # operator should be followed by a macro argument name +%s:%s: Badly formed constant expression%s +3.4(9), 3.8 +%s:%s: Division by zero in #if or #elif +3.8 +unknown command line option %s +extraneous input/output file name %s +%s: %s: Unterminated string or character constant +A preprocessing string or character constant token was not +terminated. Note that preprocessing directives are processed +after the source file has been divided into preprocessing tokens. +2.1.1.2(30) 3.1(18) 3.8 +%s: %s: +%s: %s: +%s: %s: Unterminated comment +%s: %s: Unknown directive type %s +%s: %s: #elif or #else after #else directive +%s: %s: Bad identifier after the %s +%s: %s: #%s accepts only one identifier as parameter +3.8 +%s: %s: Bad identifier after the %s +%s: %s: text following #%s violates the ANSI C standard. +3.8 +%s: %s: Bad character %s occurs after the # directive. +3.8 +%s: %s: the ## operator shall not be the %s token in the replacement list +3.8.3.3 +%s: %s: the defined operator takes identifier as operand only. +3.8.1 +%s: %s: Not in a conditional directive while using %s +%s: %s: Illegal filename specification for #include +%s: %s: Invalid file name %s for #include +%s: %s: Cannot open file %s for #include +%s: %s: Bad argument for #line command +%s: %s: #error %s +%s: %s: Tried to redefine predefined macro %s, attempt ignored +3.8.7(22) +%s: %s: Undefining predefined macro %s +3.8.7(22) +%s: %s: Undefined the ANSI standard library defined macro %s +4.1.2.1(9) +%s: %s: The number of arguments in the macro invocation does not match the definition +%s: %s: Illegal character %s in preprocessor if +%s: %s: Illegal character %s for number in preprocessor if +%s: %s: No string is allowed in preprocessor if +%s: %s: Not supported pragma %s +%s: %s: Not supported #pragma format +%s: %s: ANSI C does not allow #ident; %s +%s: %s: Not supported #ident format +This cpp extension accepts the following format: +#ident "any string" +%s: %s: Not supported #assert/#unassert format +This cpp extension accepts the following format: +#assert identifier +#assert identifier ( pp-tokens ) +#unassert identifier +#unassert identifier ( pp-tokens ) +%s: %s: Bad assertion predicate format +The correct syntax for this cpp extension is: +#assert identifier ( pp-token ) +%s: %s: directive is an upward-compatible ANSI C extension +%s: This option requires an argument +%s: %s: A macro has expanded recursively more than %s times. Further expansion will be disabled! Use command-line option: -Wp,-max_rec_depth=depth to recurse deeper. +A status return from cpp to cfe +Syntax Error +The token read was unexpected. +Syntax Error -- cannot backup +The token read was unexpected. +Yacc stack overflow +The expression is too complicated to parse. +Trailing comma in enumerator list +The use of a trailing comma in an enumerator list is not standard C. There +may be portability problems. +3.5.2.2 +Empty declaration +Empty declarations are invalid in standard C. +3.5 +%s declared, but not referenced. +redeclaration of '%s'; previous declaration at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +'%s' undefined; reoccurrences will not be reported. +Non-function name referenced in function call. +3.3.2.2(18) +The number of arguments doesn't agree with the number in the declaration. +3.3.2.2(5) +'%s' section name longer than 8 characters. Name truncated. +'%s' is already placed by pragma alloc_text. +Cannot write ucode file while compiling %s +1) The file system is full +2) Permissions problem +Must have corresponding formal argument for '%s' +Parameter found in the declaration part, but not in the argument list. +3.7.1(7) +Non-prototype declaration is an obsolescent feature. +The use of function definitions with separate parameter identifier +and declaration lists (not prototype-format parameter type and +identifier declarators) is an obsolescent feature. +3.9.5 +Incompatible function declarations for %s +For two function types to be compatible, both shall specify compatible +return types. Moreover, the parameter type lists, if both are present, +shall agree in the number of parameters and in use of the ellipsis +terminator; corresponding parameters shall have compatible types. If +one type has a parameter type list and the other type is specified by +a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. If one type has a parameter type list and the +other is specified by a function definition that contains a (possibly +empty) identifier list, both shall agree in the number of parameters, +and the type of each prototype parameter shall be compatible with the +type that results from application of the default argument promotions +to the type of the corresponding identifier. (For each parameter +declared with function or array type, its type for these comparisons +is the one that results from conversion to a pointer type. For each +parameter declared with qualified type, its type for these comparisons +is the unqualified version of its declared type.) There you have it! +3.5.4.3(15) +Incompatible function return type for this function. +For two function types to be compatible, both shall specify compatible +return types. +3.5.4.3(15) +The number of parameters for function is different from the previous declaration +The parameter type lists, if both are present, shall agree in the +number of parameters and in use of the ellipsis terminator. +3.5.4.3(15) +Incompatible type for the function parameter +If both parameter type lists are present, corresponding +parameters shall have compatible types. +3.5.4.3(15) +Function %s is redeclared with an incompatible argument type (after default argument promotion), which could lead to undefined run-time behaviour. +The redeclaration could cause arguments at a call site to be passed +inconsistently with what the function implementation expects, and +parameters would therefore be accessed erroneously when executing the +function body. Note that a float argument is promoted to a double +when passed (potentially through fp registers) to an unprototyped +function. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, ellipsis terminator not allowed +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the type of each parameter shall be +compatible with the type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype declaration and non-prototype definition found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other is specified by a +function definition that contains a (possibly empty) identifier list, +both shall agree in the number of parameters, and the type of each +prototype parameter shall be compatible with the type that results +from application of the default argument promotions to the type of the +corresponding identifier. +3.5.4.3(15) +Empty declaration specifiers +Standard C requires at least a storage class specifier, type specifier, +or a type qualifier in declarations. 'extern int' assumed. +3.5 +Can't write to the file %s +1) The output file cannot be opened for writing. +2) Out of file space. +Duplicate '%s' +typedef, extern, static, auto, register, const, volatile may not +appear more than once in the same specifier list or qualifier list. +Duplicate occurrence ignored. +3.5.1(10) , 3.5.3(5) +Null input +There is nothing to compile. +Illegal type combination +3.5.2 +Missing ';' at end of structure / union member declaration +In standard C, each member declaration must be terminated by a ';'. A +terminating ';' is assumed. +3.5.2.1 +Missing member name in structure / union +In standard C, each member declaration have a member name. The missing +member is assumed to not exist. +3.5.2.1 +This variable is initialized twice. +Neither 'const' or 'volatile' have any effect on function results. +Qualifiers only apply to expressions designating an object that +can be altered or examined. +3.5.3(10) +An integer constant expression is required here. +The expression that defines the value of an enumeration constant +shall be an integral constant expression that has a value +representable as an int. +3.5.2.2(28) +(previous declaration of '%s' at line %s in file '%s') +Must be an integer type greater than zero. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +Array size cannot be a long long. +Arrays with more than 2^32 elements are not yet supported. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +bit-field '%s' width is not an integer constant +The expression that specifies the width of a bit-field shall be an +integral constant expression. +3.5.2.1(15) +bit-field '%s' width is negative +The expression that specifies the width of a bit-field shall be +non-negative. +3.5.2.1(15) +bit-field '%s' type required to be int, unsigned int, or signed int. +A bit-field shall have type int, unsigned int, or signed int. +3.5.2.1(30) +bit-field %s's type not integer. +Non-scalar type or pointer type to a non-object for increment or decrement operator. +The operand of the prefix/postfix increment or decrement operator shall have scalar type; if it is of pointer type, it must point to an object. +3.3.2.4(37), 3.3.3.1(25) +Assign value to a function type. +An assignment operator shall have a modifiable lvalue as its left operand. +3.2.2.1(5) +Assign value to an array. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for variable of incomplete type. +The operand of increment and decrement operator shall be a modifiable +scalar lvalue. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +The left-hand side of the '.' operator must be an addressable lvalue, when a bit-field is not contained within a unit of 32 bits alignment. +This is a restriction in our implementation, which can be worked +around by always accessing long long bit-fields indirectly (i.e. +by means of the '->' operator). +This expression is not an lvalue. +3.2.2.1 +Modified an rvalue. +3.2.2.1 +Change value for constant variable. +The operand of increment and decrement operators shall be modifiable +scalar lvalues. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for constant field of a struct or union. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Dereferenced a non-pointer. +The operand of the unary * operator shall have pointer type. +3.3.3.2(39) +The operand of the unary + or - operator shall have arithmetic type. +3.3.3.3(6) +The operand of the unary ~ operator shall have integral type. +3.3.3.3(6) +The operand of the unary ! operator shall have scalar type. +3.3.3.3(6) +Constants must have arithmetic type. +3.1.3 +Bad type name for cast operator +The type name for the cast operator should either be void or a +qualified or unqualified scalar type. +3.3.4(22) +Improper cast of non-scalar type expression. +The operand for the cast operator shall be of scalar type. +3.3.4(23) +Cast a pointer into a non-integral type. +A pointer may be converted to an integral type. +3.3.4(31) +Cast a non-integral type into a pointer. +An integral type may be converted to a pointer. +3.3.4(31) +Duplicate member '%s' +Two members of a struct may not have the same name. +3.1.2.2(7,25) +Invalid constant expression. +Constant expressions shall not contain assignment, increment, decrement, +function-call, or comma operators, except when they are contained within +the operand of the sizeof operator. +3.4(9) +Constant expressions must be derived from a constant value or a constant +variable. +3.4 +Dangerous operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. This operand is NOT an lvalue, but we let it pass. +Note that a segmentation error with possible core dump will result +when the resulting address does not denote a valid (declared) +storage location. This feature will be discontinued in future +releases of the compiler! +3.3.3.2(36) +Unacceptable operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. +3.3.3.2(36) +'&' before array or function; ignored +Unacceptable operand of sizeof operator. +The sizeof operator shall not be applied to an expression that has +function type or an incomplete type, to the parenthesized name of such +a type, or to an lvalue that designates a bit-field object. +3.3.3.4 +Unacceptable operand of a multiplicative operator. +Each of the operands of a multiplicative operator shall have arithmetic type. +3.3.5(18) +Unacceptable operand of the remainder operator +Each of the operands of the remainder (%) operator shall have integral type. +3.3.5(18) +Unacceptable operand of '+'. +For the + operator, either both operands shall have arithmetic type, or +one operand shall be a pointer to an object type and the other shall +have integral type. +3.3.6(39) +Unacceptable operand of '-'. +For the subtraction operator, one of the following shall hold: both operands +have arithmetic type; operands are pointers to qualified or unqualified +versions of compatible object types; or the left operand is a pointer +to an object type and the right operand has integral type. +3.3.6(39) +Unacceptable operand of shift operator. +Each of the operands of bitwise shift operators shall have integral type. +3.3.7(9) +Unacceptable operand of relational operator. +For relational operators, one of the following shall hold: both +operands have arithmetic type; both operands are pointers to qualified +or unqualified versions of compatible object types; or both operands +are pointers to qualified or unqualified versions of compatible +incomplete types. +3.3.8(32) +Unacceptable operand of == or != +For the == or != operator, one of the following shall hold: both operands +are pointers to qualified or unqualified versions of compatible types; one +operand is a pointer to an object or incomplete type and the other is a +pointer to a qualified or unqualified version of void; or one operand is +a pointer and the other is a null pointer constant. +3.3.9(21) +Unacceptable operand of &. +Each of the operands shall have integral type. +3.3.10(7) +Unacceptable operand of ^. +Each of the operands shall have integral type. +3.3.11(18) +Unacceptable operand of |. +Each of the operands shall have integral type. +3.3.12(30) +Unacceptable operand of &&. +Each of the operands shall have scalar type. +3.3.13(7) +Unacceptable operand of ||. +Each of the operands shall have scalar type. +3.3.14(20) +Unacceptable operand of conditional operator. +The first operand of conditional operator shall have scalar type. One +of the following shall hold for the second and third operands: +both operands have arithmetic type; both operands have compatible +structure or union types; both operands have void type; both operands +are pointers to qualified or unqualified versions of compatible types; +one operand is a pointer and the other is a null pointer constant; or +one operand is pointer to an object or incomplete type and the other +is a pointer to a qualified or unqualified version of void. +3.3.15 +Duplicate label '%s' +A label name can only occur once in a function. +3.1.2.1(25) +Division by zero. +3.3.5 +Subscripting a non-array. +3.3.2.1 +Subscripting an array of incomplete type which is not an object type. +The element of the array shall have an object type. +3.3.2.1 +Should only subscript an array with an integral expression +3.3.2.1 +Subscripting an unbounded array +3.3.2.1 +Array index out of range +3.3.2.1 +Selector requires struct/union pointer as left hand side +In K&R mode the expression is implicitly converted to the '.' selector +for a struct/union left-hand side. +3.3.2.3 +Selector requires struct/union as left hand side +In K&R mode the expression is implicitly converted to the '->' selector +for a struct/union pointer left-hand side. +3.3.2.3 +member of structure or union required +3.3.2.3 +types have different qualifier specifications +For two qualified types to be compatible, both shall have the +identically qualified version of a compatible type; qualified +and unqualified versions of a type are distinct types. For two +types to be compatible their types must be the same. +3.5.3(26) +Incompatible array type due to different array size +For two array types to be compatible, both shall have compatible element +types; if both size specifiers are present, they shall have the +same value. +3.5.4.2(11) +Incompatible array type due to incompatible element type +For two array types to be compatible, both shall have compatible element +types. +3.5.4.2(11) +Incompatible pointer type assignment +The type pointed to by the left-hand side of simple assignment +statement is incompatible with the type pointed to by the right-hand side. +3.3.16.1, 3.5.4.1(21) +Incompatible base type of pointer type +K&R feature. +Type %s of %s is incompatible with type %s of %s +Incompatible types can be resolved by casting or by other means. +3.3.16.1 +illegal combination of pointer and integer +Assigning an integral expression to a pointer is a bad practice. +Type for %s is incompatible with %s +Incompatible types can be resolved by casting or by other means. +3.1.2.6 +Bad operand type for += or -= +3.3.16.2(26) +A case or default label appears outside a switch statement +A case or default label shall appear only in a switch statement. +3.6.1 +The controlling expression of the if statement is not scalar type +The controlling expression of an if statement shall have scalar type. +3.6.4.1 +The controlling expression of switch statement is not integral type +The controlling expression of an switch statement shall have integral type. +3.6.4.2(20) +The case label is not an integral constant expression +The case label shall be an integral constant expression. +3.6.4.2(22) +Duplicate case label in the same switch statement +No two of the case constant expressions in the same switch statement +shall have the same value after conversion. +3.6.4.2(22) +More than one default label in the same switch statement +There may be at most one default label in a switch statement. +3.6.4.2(23) +The controlling expression of the iteration statement is not scalar +type +The controlling expression of a iteration statement shall have scalar +type. +3.6.5.1 +label '%s' used, but not defined +The identifier in a goto statement shall name a label located +somewhere in the enclosing function. +3.6.6.1 +A continue statement shall appear only in or as a loop body +3.6.6.2 +A break statement shall appear only in or as a switch body or loop body +3.6.6.3 +A return statement with an expression should not appear +in a function '%s', whose return type is void +3.6.6.4(24) +A return statement without an expression appears in a +function '%s', whose return type is not void +If a return statement without an expression is executed, and the value +of the function call is used by the caller, the behavior is undefined. +3.6.6.4(33) +Internal Error: statement stack underflow +Long double not supported; double assumed. +Long float not standard; double assumed. +Only 'register' allowed in parameter declaration +The only storage-class specifier that shall occur in a parameter +declaration is 'register'; illegal storage class ignored. +3.5.4.3(25) +Name(s) without types in a function declaration +An old-style function declaration is not allowed to have names +in the parameter list; useless names ignored +3.5.4.3(26) +Functions cannot return functions +3.7.1(33), 3.3.2.2 +Functions cannot return a non-object type +3.3.2.2 +enum declaration must contain enum literals +Although structs or unions may delay the declaration of their members, +a similar construction with enum does not exist and is not necessary, +as there can be no mutual dependencies between the declaration of an +enumerated type and any other type. +3.5.2.3(27) +Register qualification has no effect for this type of object +Register declarations for array, struct, and function types have +no effect. +3.5.1(16), 3.5.1(19) +Functions cannot be declared 'register' +The declaration of an identifier for a function that has block +scope shall have no explicit storage-class specifier other than +'extern'. +3.5.1(19) +'%s' cannot be initialized +The type of the entity to be initialized shall be an object type +or an array of unknown size. +3.5.7(32) +Cannot initialize 'extern' variable '%s' within a function +If the declaration of an identifier has block scope, and the +identifier has 'extern' or 'static' linkage, the declaration +shall have no initializer for the identifier; initialization +allowed anyway. +3.5.7(35) +initializing an 'extern' is an ANSI C extension +conflicting declarations for '%s' +'static' and 'extern' declarations conflict. Which is meant? +3.1.2.2(15), 3.1.2.2(27) +Too many initial values for '%s' +3.5.7(1) +incompatible types in initialization +3.3.16(35) +redefinition of '%s'; previous definition at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +bit-fields as members of a union are an ANSI C invention. +storage size for '%s' isn't known +type mismatch in initialization +Missing braces in a union initialization or illegally formed +initialization. +3.5.7(5) +union '%s' only allowed one initializer for the first member +3.5.7(5) +width of '%s' exceeds its type +the specified bitfield width is too large to be contained within a +bitfield type. +structure has no member named '%s' +This is allowed for compatibility with AT&T pcc-based compilers. +Reference of an expression of void type or an incomplete type. +3.2.2.1 +element size of an array shall not be zero +3.2.2.5(25) +invalid combination of type specifiers +Although order is unimportant, not all type specifiers can occur together. +3.5.2 +declaration must at least declare an identifier, tag, or the member of an enumeration +3.5(16) +at most one storage class may be given in the declaration +Duplicate occurrence ignored. +3.5.1(10) +size of function's return type is zero +The return type of a function must be void or an object type other than array. +3.7.1(33) +Expecting an integral return type from the main function +identifier missing from parameter declaration +Prototypes for function definitions require identifiers in parameter +declarations. +3.7.1(4) +only 'register' allowed for storage class for parameters +The declarations in the declaration list shall contain no storage class +other than 'register', and no initializations. +3.7.1(10) +parameters declarations can not have initializations +3.7.1(10) +only one instance of 'void' allowed in the parameter list +'void' must occur by itself (specifying that the function has no parameters). +3.5.4.3(1) +%s must have function type +1) An argument list must be explicitly present in the declarator; it cannot + be inherited from a typedef (3.5.4.3). +2) The declarator is not a function. +3.7.1(30) +Illegal hexadecimal constant +You have no digits after the 0x or 0X. 0x0 assumed. +3.1.3.2 +value overflows its type in this context. Value is set to be '%s'! +3.2.1.4 +value is outside range representable for type '%s' +missing member name +K&R mode permits a missing member name; otherwise, only bitfields can omit +the member name. +3.5.2.1(10) +useless keyword or type name in declaration +Type was ignored. +'%s' declared within and is limited to this function prototype +Possible program error, since parameter type checking will always fail +unless the type declaration is visible to the caller. +3.1.2.1(35) +Extra spaces within operator, %s assumed +In ANSI C, the compound assignment operator cannot have embedded +white space characters. +3.1.5 +missing size for array '%s' +Incomplete types permitted for identifiers with internal or +external linkage, but not automatic linkage. +3.1.2.5(10) +can't jump into (from outside of) the body of a 'try' or into either type of handler +'%s' missing, please #include excpt.h +excpt.h required to declare exception statements, intrinsics or compiler +runtime names. +local function declarations cannot be 'static' +A function declaration can only contain the storage-class 'static' +if it is at file scope. Declaration made 'extern'. +3.5.1(19) +static function '%s' declared and referenced, but not defined. +If an identifier declared with internal linkage is used in an +expression (other than as a part of the operand of a sizeof +operator), there shall be exactly one external definition for +the identifier in the translation unit. +3.7(12) +pragma argument '%s' must be declared prior to being used in a pragma +Pragma name ignored. +Pragma not supported +'%s' not enabled as intrinsic +It may have already appeared in a function pragma, or never occurred in +an intrinsic pragma. +'%s' is already enabled as an intrinsic +weak definition for '%s' is later redefined; pragma weak ignored. +definition of primary name '%s' not found; pragma weak ignored. +definition of secondary name '%s' not found; pragma weak ignored. +primary name '%s' is declared as a common or external, and is not defined +with initial value within this file; pragma weak ignored. +useless '%s' storage class ignored +array of functions not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +array of voids not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +argument for pragma pack must be an integer constant; pragma ignored +'%s' has wrong tag type. +Identifier redeclared in the same scope/block. +3.1.2.3 +missing dimension bound +For multidimensional arrays, the constant bounds of the array may be +omitted only for the first member of the sequence. +3.1.2.5(23) +Internal error in parameters to function substr; loc: '%s'; len: '%s'. +Internal error in parameters to function insertstr; indx: '%s'. +Internal error in function get_tag_name; input is a non-tagged type. +Internal error in function gen_type_str -- not a type tree '%s' +Cannot open file '%s' +Prototype should be moved after tag or a typedef declaration. +Please look for comments in the extracted header file. +The extracted header file includes prototypes for static functions, +which should be removed, if you wish to include the header in a source file +other than the originator. +ANSI C requires formal parameter before "..." +This extension is meant to be used for compatibility with varargs.h +3.5.4.3(35) +syntax error: "&..." invalid +extension used to access "..." formal arguments. +function '%s' initialized like a variable +The type of entity to be initialized shall be an object type or an +array of unknown size. +3.5.7(31) +initializer not an array aggregate +The initializer for an object that has aggregate type shall be a +brace-enclosed list of initializers for the members of the aggregate, +written in increasing subscript or member order. +3.5.7(20) +'%s' type is incomplete; cannot initialize +Was the struct ever defined? +3.5.7.(31) +'%s' is not standard ANSI. +This keyword/type is not defined in strict ANSI mode. +3.1.1 +not a legal asm string +The first operand of an asm string should be, after argument substitution, +a legal assembly string. +The -float option will be ignored in ANSI mode. +The -float option is ignored, since otherwise program semantics would +violate the ANSI standard. In particular, fp constants are always +'double' with ANSI-C, while with -float the type of fp constants will +depend on the context and may be 'float'. +ANSI C support unavailable with C compiler bundled with RISC/os +The C compiler bundled with RISC/os does not support ANSI C. ANSI +C support requires a separate license. +Ignored invalid warning number(s) in -woff option, %s%s ! +Warning numbers must be in the range %s to %s. +The set of warning numbers in cfe is disjoint from the set of warning numbers +in accom, since accom warnings cannot be mapped one-to-one to cfe warnings. +'%s' not handled as an intrinsic due to incompatible argument types . +'__unalign' only qualifies pointers +'__unalign' indicates the object pointed at by pointer is unaligned (e.g., +int * __unalign p). This is an extension to ANSI C and like 'volatile' +and 'const' can follow the '*' in pointer declarations, but unlike both +cannot qualify a base type. +index expression is an anachronism +ANSI C++ doesn't support array index expressions in delete. +5.3.4 +member cannot be of function or incomplete type. +3.5.2.1(12) +Illegal lint option, '%s', is ignored. +cannot open header message buffer file +cannot write header message buffer file +cannot read header message buffer file +cannot seek in header message buffer file +struct/union/enum '%s' is used, but not defined +static '%s' unused +nonportable character comparison (chars may be signed or unsigned) +redundant comparison of unsigned with constant expression +redundant statement, control flow cannot reach this statement +'%s' may be used before set +function parameter '%s' is not used in function '%s' +'%s' can be const qualified, since it is not set within its lifetime. +'%s' is not used in function '%s' +'%s' set but unused in function '%s' +control may fall through %s statement +function '%s' has return(e); and return; +function '%s' may return random value to place of invocation %s +label without goto: '%s' +width of %s constant is smaller than size of type (%s) +explicit conversion from '%s' to '%s' %s +implicit conversion from '%s' to '%s' %s +'%s' may be indistinguishable from '%s' due to internal name truncation +Promoted formal parameter and promoted argument have incompatible types +No prototype for the definition of '%s' %s +References to '%s' are substituted by its literal initializer + (as included in %s) +============== +unsupported language linkage +string-literal specifies an unsupported linkage +7.4(1) +No prototype for the call to %s +To achieve better type-checking, there should be a full prototype for +the function being called. +3.5.4.3 +'inline' only applies to function declarations +leave statment can occur only within try body +Microsoft extension +Use of a Microsoft extension detected without usage of the +compiler option -msft. +No parameter mentioned +A file with no declarations or definitions is accepted as an extension to ANSI C +The translation unit must contain at least one external definition. +3.7 +Incompatible signed and unsigned version of a type +Yacc initialization error +Internal error: yacc cannot initialize itself. +The cfe option %s may not be in future releases. We suggest that you not use this option! +Incompatible char and unsigned char versions of a type +Lshift with undefined behaviour. +Lshift with a negative right operand, or a right operand that is greater +than or equal to the width in bits of the promoted left operand, results +in undefined behaviour. +3.3.7(11) +useless type name in declaration, possibly a semicolon is missing. +Type was ignored. +constant initializer expression is invalid (refers to automatic variables). +All the expressions in an initializer for an object that has static storage +duration or in the initializer list for an object that has aggregate or +union type shall be constant expressions. Otherwise, unexpected results +may occur. +3.5.7(32) and 3.4 +invalid explicit or implicit conversion of an address constant to an integral value in a constant initializing expression. +An address constant in a constant initializing expression can neither +initialize a bit-field nor be directly or indirectly converted to an +integral type of size different from an address type. +6.4 diff --git a/tools/ido_recomp/macos/5.3/ugen b/tools/ido_recomp/macos/5.3/ugen new file mode 100755 index 0000000000..c7020aa493 Binary files /dev/null and b/tools/ido_recomp/macos/5.3/ugen differ diff --git a/tools/ido_recomp/macos/5.3/uopt b/tools/ido_recomp/macos/5.3/uopt new file mode 100755 index 0000000000..e23f6beda8 Binary files /dev/null and b/tools/ido_recomp/macos/5.3/uopt differ diff --git a/tools/ido_recomp/macos/7.1/as1 b/tools/ido_recomp/macos/7.1/as1 new file mode 100755 index 0000000000..358712e331 Binary files /dev/null and b/tools/ido_recomp/macos/7.1/as1 differ diff --git a/tools/ido_recomp/macos/7.1/cc b/tools/ido_recomp/macos/7.1/cc new file mode 100755 index 0000000000..fb68103471 Binary files /dev/null and b/tools/ido_recomp/macos/7.1/cc differ diff --git a/tools/ido_recomp/macos/7.1/cfe b/tools/ido_recomp/macos/7.1/cfe new file mode 100755 index 0000000000..1e13228628 Binary files /dev/null and b/tools/ido_recomp/macos/7.1/cfe differ diff --git a/tools/ido_recomp/macos/7.1/err.english.cc b/tools/ido_recomp/macos/7.1/err.english.cc new file mode 100644 index 0000000000..b5d5be36ef --- /dev/null +++ b/tools/ido_recomp/macos/7.1/err.english.cc @@ -0,0 +1,1260 @@ +@ + 358 358 358 + 6464 6482 6553 + 6553 6593 6728 + 6728 6746 6803 + 6803 6808 6808 + 6808 6818 6818 + 6818 6826 6826 + 6826 6847 6847 + 6847 6875 6922 + 6922 6930 6930 + 6930 6939 6939 + 6939 6948 6948 + 6948 6974 7120 + 7120 7149 7204 + 7210 7248 7311 + 7317 7350 7442 + 7450 7497 7627 + 7635 7709 7930 + 7938 7975 8063 + 8071 8113 8253 + 8261 8289 8289 + 8298 8338 8445 + 8460 8502 8635 + 8650 8690 8819 + 8834 8857 8965 + 8965 9008 9113 + 9119 9142 9227 + 9235 9282 9451 + 9451 9462 9462 + 9462 9477 9477 + 9477 9497 9497 + 9497 9545 9545 + 9545 9584 9584 + 9584 9604 9662 + 9662 9682 9720 + 9720 9749 9749 + 9749 9788 9788 + 9788 9802 9802 + 9802 9829 9829 + 9829 9861 9861 + 9861 9904 9904 + 9904 9920 9920 + 9920 9962 9962 + 9962 9988 9988 + 9988 10014 10014 +10014 10035 10035 +10035 10054 10097 +10097 10115 10115 +10115 10147 10147 +10147 10183 10183 +10183 10208 10208 +10208 10236 10236 +10236 10269 10269 +10269 10304 10304 +10304 10328 10328 +10328 10351 10351 +10351 10371 10371 +10371 10402 10402 +10402 10447 10447 +10447 10497 10497 +10497 10533 10533 +10533 10598 10598 +10606 10630 10630 +10640 10671 10671 +10690 10719 10719 +10728 10752 10795 +10795 10837 10837 +10837 10876 10876 +10876 10900 10900 +10900 10948 10948 +10960 11021 11103 +11103 11128 11128 +11128 11153 11153 +11153 11216 11216 +11216 11239 11239 +11239 11303 11303 +11303 11347 11347 +11357 11393 11393 +11393 11432 11432 +11442 11494 11494 +11494 11536 11536 +11536 11595 11595 +11595 11622 11622 +11622 11684 11684 +11684 11726 11726 +11738 11778 11778 +11782 11813 11813 +11813 11850 11850 +11850 11900 12087 +12111 12120 12120 +12120 12129 12129 +12129 12158 12158 +12158 12192 12192 +12192 12237 12237 +12237 12273 12273 +12273 12326 12326 +12330 12366 12366 +12366 12423 12423 +12427 12482 12482 +12486 12560 12560 +12568 12631 12631 +12637 12691 12691 +12691 12743 12743 +12743 12785 12785 +12785 12826 12826 +12826 12865 12865 +12865 12883 12883 +12883 12946 12946 +12956 12995 12995 +13005 13066 13066 +13077 13163 13163 +13163 13211 13211 +13211 13270 13270 +13270 13318 13318 +13318 13350 13350 +13350 13387 13387 +13387 13428 13428 +13428 13464 13533 +13533 13580 13737 +13737 13776 13854 +13854 13913 13913 +13913 13950 13950 +13950 14118 14118 +14118 14150 14150 +14150 14163 14194 +14194 14224 14255 +14255 14275 14319 +14319 14353 14458 +14466 14484 14530 +14534 14567 14567 +14567 14635 14682 +14690 14742 14742 +14742 14789 14789 +14801 14875 14875 +14886 14947 14947 +14947 14992 14992 +14992 15035 15085 +15085 15134 15205 +15214 15267 15448 +15454 15496 16810 +16822 16875 16960 +16972 17053 17179 +17191 17236 17332 +17344 17491 17841 +17853 17939 18304 +18316 18471 18774 +18786 18952 19323 +19335 19364 19496 +19500 19527 19598 +19598 19613 19776 +19797 19808 19837 +19837 19862 19862 +19868 19927 20026 +20034 20075 20179 +20187 20223 20223 +20223 20290 20382 +20392 20441 20589 +20601 20656 20656 +20656 20699 20818 +20826 20860 21038 +21046 21094 21191 +21203 21236 21314 +21326 21395 21457 +21469 21502 21502 +21502 21587 21731 +21756 21789 21864 +21875 21901 21976 +22013 22059 22220 +22257 22397 22561 +22561 22595 22595 +22603 22623 22623 +22631 22667 22828 +22865 22919 22994 +23031 23059 23120 +23132 23201 23201 +23212 23274 23274 +23285 23345 23345 +23356 23393 23393 +23399 23431 23532 +23542 23587 23646 +23656 23697 23745 +23755 23796 23844 +23854 23876 23928 +23942 23971 24153 +24160 24243 24243 +24247 24273 24743 +24755 24784 24984 +24996 25034 25034 +25034 25075 25273 +25281 25332 25410 +25420 25467 25544 +25554 25583 25744 +25754 25783 26061 +26071 26111 26185 +26194 26239 26525 +26535 26568 26914 +26924 26951 26998 +27008 27035 27082 +27093 27120 27167 +27178 27206 27251 +27261 27289 27334 +27345 27391 27931 +27938 27959 28007 +28019 28037 28037 +28043 28069 28069 +28077 28147 28199 +28207 28266 28266 +28274 28306 28306 +28314 28339 28339 +28347 28404 28510 +28518 28567 28682 +28690 28728 28728 +28736 28782 29023 +29033 29085 29234 +29246 29303 29383 +29395 29432 29570 +29592 29631 29644 +29644 29693 29758 +29767 29810 29875 +29875 29911 29976 +29984 30014 30014 +30027 30086 30151 +30157 30223 30293 +30301 30369 30445 +30457 30511 30568 +30580 30630 30743 +30755 30812 30874 +30886 30959 31035 +31043 31076 31175 +31183 31243 31243 +31251 31323 31323 +31331 31433 31433 +31445 31544 31686 +31698 31740 31740 +31740 31783 31783 +31783 31824 31824 +31824 31873 31996 +32008 32056 32164 +32176 32210 32210 +32229 32271 32271 +32279 32323 32569 +32581 32642 32718 +32739 32779 32916 +32926 32953 33047 +33057 33116 33315 +33325 33373 33373 +33373 33407 33469 +33494 33527 33527 +33536 33573 33573 +33584 33650 33697 +33705 33763 33763 +33763 33797 33797 +33797 33829 33906 +33915 33976 33976 +33985 34016 34098 +34098 34133 34198 +34198 34261 34261 +34269 34312 34312 +34324 34363 34438 +34444 34530 34530 +34538 34596 34626 +34636 34675 34754 +34764 34821 34821 +34821 34867 34950 +34959 35016 35135 +35145 35198 35198 +35208 35266 35344 +35355 35382 35537 +35547 35576 35629 +35637 35705 35705 +35713 35764 35764 +35764 35784 35876 +35888 35932 35950 +35950 36013 36138 +36150 36191 36280 +36286 36314 36419 +36431 36516 36516 +36516 36554 36642 +36642 36689 36808 +36818 36881 37105 +37113 37183 37204 +37204 37225 37225 +37225 37255 37348 +37348 37388 37388 +37388 37454 37454 +37454 37518 37518 +37518 37584 37584 +37584 37717 37717 +37717 37752 37752 +37752 37783 37889 +37901 37928 38034 +38046 38115 38115 +38115 38140 38187 +38195 38219 38339 +38351 38422 38422 +38422 38486 38486 +38486 38555 38555 +38555 38619 38619 +38619 38641 38641 +38641 38758 38758 +38758 38929 38929 +38929 38975 39043 +39055 39084 39133 +39133 39175 39265 +39275 39310 39494 +39504 39547 39576 +39587 39614 39668 +39674 39697 39797 +39797 39845 40094 +40094 40158 40264 +40264 40369 40523 +40523 40593 40593 +40593 40629 40876 +40876 40911 40971 +40977 41026 41026 +41038 41077 41077 +41077 41116 41116 +41116 41156 41156 +41156 41195 41195 +41195 41237 41237 +41237 41285 41285 +41285 41304 41304 +41304 41371 41371 +41371 41429 41429 +41429 41491 41491 +41491 41519 41519 +41519 41572 41572 +41572 41642 41642 +41642 41676 41676 +41676 41713 41713 +41713 41751 41751 +41751 41792 41792 +41792 41856 41856 +41856 41881 41881 +41881 41944 41944 +41944 41985 41985 +41985 42026 42026 +42026 42098 42098 +42098 42170 42170 +42170 42213 42213 +42213 42275 42275 +42275 42302 42302 +42302 42317 42317 +42317 42346 42394 +42401 42433 42530 +42538 42585 42585 +42585 42631 42631 +42631 42651 42733 +42733 42756 42756 +42756 42837 42905 +42909 42960 42960 +42960 42986 43033 +43033 43124 43124 +43124 43179 43179 +43179 43212 43384 +43394 43461 43479 +43479 43555 43788 +43806 43929 44124 +44128 44128 44128 +Out of memory: %s +There is no more memory left in the system for compiling this program. +Internal Error Unknown Error Message %s +1) An internal error, while attempting to print an unavailable message +2) The error message file is inaccessible or has other problems +Unknown Signal %s +1) An unknown signal has been caught +2) 2 Nested signals +line +Warning: +Fatal: +Source not available +Too many errors... goodbye. +There is a limit of 30 errors before aborting. +Error: +reserved +reserved +Unknown Control Statement +1) The line begins with a '#' and is not of the form: + # "" +2) Please compile this program with the preprocessor enabled. +Unknown character %s ignored +The character is not part of the source character set. +2.2.1 +Unknown control character \%s ignored +The control character is not part of the source character set. +2.2.1 +Illegal character %s in exponent +1) Digits or sign expected after 'e' or 'E'. +2) Digits are expected after sign in exponent. +3.1.3.1 +Constant is out of range and may be truncated. +The constant is too large to be accurately represented and may be +truncated. The limits are in the system include file limits.h. +2.2.4.2 +Constant is out of range for a 32-bit data type, but accepted as written. +The constant is too large to fit in a 32-bit data type, but will be +accurately represented in a wider data type. The value may be truncated, +depending on its context. The limits are in the system include file +limits.h. +2.2.4.2 +Character constant size out of range +1) No characters in a character constant. +2) More than 4 bytes in a character constant. +3.1.3.4 +Wide character constant size out of range +1) No characters in the multibyte sequence (0 assumed). +2) More than 1 byte in the multi-byte sequence (only the first byte was converted). +3.1.3.4 +Invalid multibyte character +4.10.7.2 +Newline in string or character constant +1) Terminate your string or character constant with closing quotes. +2) Put a backslash before the newline. +3.1.3.4, 3.1.4 +Octal character escape too large: %s > %s +1) Terminate end of octal sequence with a non-octal character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Hex character escape too large: %s > %s +1) Terminate end of hex sequence with a non-hex character. +2) Select a character value within the limits. +Value may be truncated +3.1.3.4, 3.1.4 +Unexpected End-of-file +1) Unterminated string or character constant +2) Missing closing comment marker (*/) +3) File system problems +Unrecognized escape sequence in string \%s +Recognized escape sequences are \a, \b, \f, \n, \r, \t, and \v. +Character will be treated as un-escaped. +3.9.2 +Illegal octal digit %s +Octal constants, beginning with 0, must only have digits between 0 and 7, +inclusive. +3.1.3.2 +Unable to open temporary file for compiling %s +1) TMPDIR environment variable is set to a directory that you have no + permissions for. +2) The file system is full. +3) System errors beyond the scope of the compiler. +%s: Hangup +%s: Interrupt +%s: Quit (ASCII FS) +%s: Illegal instruction (not reset when caught) +%s: Trace trap (not reset when caught) +%s: IOT instruction +Also SIGABRT, used by abort, replace SIGIOT in the future +%s: EMT instruction +Also SIGXCPU, Exceeded CPU time limit +%s: Floating point exception +%s: Kill (cannot be caught or ignored) +%s: Bus error +%s: Segmentation violation +%s: Bad argument to system call +%s: Write on a pipe with no one to read it +%s: Alarm clock +%s: Software termination signal from kill +%s: User defined signal 1 +%s: User defined signal 2 +%s: Death of a child +Power-fail restart +%s: Also SIGXFSZ, exceeded file size limit +%s: Window change +%s: Handset, line status change +%s: Sendablestop signalnot from tty +%s: Stop signal from tty +%s: Pollable event occurred +%s: Input/Output possible signal +%s: Urgent condition on IO channel +%s: Window size changes +%s: Virtual time alarm +%s: Profiling alarm +%s: Continue a stopped process +%s: To readers pgrp upon background tty read +%s: Like TTIN for output if (tp->t_local<OSTOP) +%s: Resource lost (eg, record-lock) +'auto' and 'register' are not allowed in an external declaration +3.7(10) +must have function type +3.7.1(30) +Functions cannot return arrays +3.7.1(33), 3.3.2.2 +Declaration list not allowed +3.7.1(5) +Too many input files %s +The command line may contain only one file +cpp internal error: input stack underflow +cpp internal error: if stack underflow +Cannot open the file %s +No new-line character at the end of the file %s +2.1.1.2(30) +Fatal: Exceeded the limit of nesting level for #include file +Fatal: Exceeded the limit of nesting level for #include file. This limit +is 200. +Fail to read the file %s +Cannot write the file %s +%s: %s: An if directive is not terminated properly in the file +%s: %s: nested comment +%s:%s: Illegal macro name %s; macro name shall be an identifier +%s:%s: Illegal preprocessing token sequence +3.8.3(35) +%s:%s: Illegal macro parameter name +%s:%s: Non-unique macro parameter name +3.8.3(18) +%s:%s: Missing ')' in parameter list for #define %s +%s:%s: Missing ')' in macro instantiation +%s:%s: Bad punctuator in the parameter list for #define %s +%s:%s: Macro %s redefined. +%s:%s: # operator should be followed by a macro argument name +%s:%s: Badly formed constant expression%s +3.4(9), 3.8 +%s:%s: Division by zero in #if or #elif +3.8 +unknown command line option %s +extraneous input/output file name %s +%s: %s: Unterminated string or character constant +A preprocessing string or character constant token was not +terminated. Note that preprocessing directives are processed +after the source file has been divided into preprocessing tokens. +2.1.1.2(30) 3.1(18) 3.8 +%s: %s: +%s: %s: +%s: %s: Unterminated comment +%s: %s: Unknown directive type %s +%s: %s: #elif or #else after #else directive +%s: %s: Bad identifier after the %s +%s: %s: #%s accepts only one identifier as parameter +3.8 +%s: %s: Bad identifier after the %s +%s: %s: text following #%s violates the ANSI C standard. +3.8 +%s: %s: Bad character %s occurs after the # directive. +3.8 +%s: %s: the ## operator shall not be the %s token in the replacement list +3.8.3.3 +%s: %s: the defined operator takes identifier as operand only. +3.8.1 +%s: %s: Not in a conditional directive while using %s +%s: %s: Illegal filename specification for #include +%s: %s: Invalid file name %s for #include +%s: %s: Cannot open file %s for #include +%s: %s: Bad argument for #line command +%s: %s: #error %s +%s: %s: Tried to redefine predefined macro %s, attempt ignored +3.8.7(22) +%s: %s: Undefining predefined macro %s +3.8.7(22) +%s: %s: Undefined the ANSI standard library defined macro %s +4.1.2.1(9) +%s: %s: The number of arguments in the macro invocation does not match the definition +%s: %s: Illegal character %s in preprocessor if +%s: %s: Illegal character %s for number in preprocessor if +%s: %s: No string is allowed in preprocessor if +%s: %s: Not supported pragma %s +%s: %s: Not supported #pragma format +%s: %s: ANSI C does not allow #ident; %s +%s: %s: Not supported #ident format +This cpp extension accepts the following format: +#ident "any string" +%s: %s: Not supported #assert/#unassert format +This cpp extension accepts the following format: +#assert identifier +#assert identifier ( pp-tokens ) +#unassert identifier +#unassert identifier ( pp-tokens ) +%s: %s: Bad assertion predicate format +The correct syntax for this cpp extension is: +#assert identifier ( pp-token ) +%s: %s: directive is an upward-compatible ANSI C extension +%s: This option requires an argument +%s: %s: A macro has expanded recursively more than %s times. Further expansion will be disabled! Use command-line option: -Wp,-max_rec_depth=depth to recurse deeper. +A status return from cpp to cfe +Syntax Error +The token read was unexpected. +Syntax Error -- cannot backup +The token read was unexpected. +Yacc stack overflow +The expression is too complicated to parse. +Trailing comma in enumerator list +The use of a trailing comma in an enumerator list is not standard C. There +may be portability problems. +3.5.2.2 +Empty declaration +Empty declarations are invalid in standard C. +3.5 +%s declared, but not referenced. +redeclaration of '%s'; previous declaration at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +'%s' undefined; reoccurrences will not be reported. +Non-function name referenced in function call. +3.3.2.2(18) +The number of arguments doesn't agree with the number in the declaration. +3.3.2.2(5) +'%s' section name longer than 8 characters. Name truncated. +'%s' is already placed by pragma alloc_text. +Cannot write ucode file while compiling %s +1) The file system is full +2) Permissions problem +Must have corresponding formal argument for '%s' +Parameter found in the declaration part, but not in the argument list. +3.7.1(7) +Non-prototype declaration is an obsolescent feature. +The use of function definitions with separate parameter identifier +and declaration lists (not prototype-format parameter type and +identifier declarators) is an obsolescent feature. +3.9.5 +Incompatible function declarations for %s +For two function types to be compatible, both shall specify compatible +return types. Moreover, the parameter type lists, if both are present, +shall agree in the number of parameters and in use of the ellipsis +terminator; corresponding parameters shall have compatible types. If +one type has a parameter type list and the other type is specified by +a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. If one type has a parameter type list and the +other is specified by a function definition that contains a (possibly +empty) identifier list, both shall agree in the number of parameters, +and the type of each prototype parameter shall be compatible with the +type that results from application of the default argument promotions +to the type of the corresponding identifier. (For each parameter +declared with function or array type, its type for these comparisons +is the one that results from conversion to a pointer type. For each +parameter declared with qualified type, its type for these comparisons +is the unqualified version of its declared type.) There you have it! +3.5.4.3(15) +Incompatible function return type for this function. +For two function types to be compatible, both shall specify compatible +return types. +3.5.4.3(15) +The number of parameters for function is different from the previous declaration +The parameter type lists, if both are present, shall agree in the +number of parameters and in use of the ellipsis terminator. +3.5.4.3(15) +Incompatible type for the function parameter +If both parameter type lists are present, corresponding +parameters shall have compatible types. +3.5.4.3(15) +Function %s is redeclared with an incompatible argument type (after default argument promotion), which could lead to undefined run-time behaviour. +The redeclaration could cause arguments at a call site to be passed +inconsistently with what the function implementation expects, and +parameters would therefore be accessed erroneously when executing the +function body. Note that a float argument is promoted to a double +when passed (potentially through fp registers) to an unprototyped +function. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, ellipsis terminator not allowed +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the parameter list shall not have +an ellipsis terminator and the type of each parameter shall be +compatible with they type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype and non-prototype declaration found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other type is specified +by a function declarator that is not part of a function definition and +contains an empty identifier list, the type of each parameter shall be +compatible with the type that results from application of the default +argument promotions. +3.5.4.3(15) +prototype declaration and non-prototype definition found for %s, the type of this parameter is not compatible with the type after applying default argument promotion +If one type has a parameter type list and the other is specified by a +function definition that contains a (possibly empty) identifier list, +both shall agree in the number of parameters, and the type of each +prototype parameter shall be compatible with the type that results +from application of the default argument promotions to the type of the +corresponding identifier. +3.5.4.3(15) +Empty declaration specifiers +Standard C requires at least a storage class specifier, type specifier, +or a type qualifier in declarations. 'extern int' assumed. +3.5 +Can't write to the file %s +1) The output file cannot be opened for writing. +2) Out of file space. +Duplicate '%s' +typedef, extern, static, auto, register, const, volatile may not +appear more than once in the same specifier list or qualifier list. +Duplicate occurrence ignored. +3.5.1(10) , 3.5.3(5) +Null input +There is nothing to compile. +Illegal type combination +3.5.2 +Missing ';' at end of structure / union member declaration +In standard C, each member declaration must be terminated by a ';'. A +terminating ';' is assumed. +3.5.2.1 +Missing member name in structure / union +In standard C, each member declaration have a member name. The missing +member is assumed to not exist. +3.5.2.1 +This variable is initialized twice. +Neither 'const' or 'volatile' have any effect on function results. +Qualifiers only apply to expressions designating an object that +can be altered or examined. +3.5.3(10) +An integer constant expression is required here. +The expression that defines the value of an enumeration constant +shall be an integral constant expression that has a value +representable as an int. +3.5.2.2(28) +(previous declaration of '%s' at line %s in file '%s') +Must be an integer type greater than zero. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +Array size cannot be a long long. +Arrays with more than 2^32 elements are not yet supported. +The array size must be either a char, signed or unsigned integer or +an enumerated type with a value greater than zero. +3.5.4.2 +bit-field '%s' width is not an integer constant +The expression that specifies the width of a bit-field shall be an +integral constant expression. +3.5.2.1(15) +bit-field '%s' width is negative +The expression that specifies the width of a bit-field shall be +non-negative. +3.5.2.1(15) +bit-field '%s' type required to be int, unsigned int, or signed int. +A bit-field shall have type int, unsigned int, or signed int. +3.5.2.1(30) +bit-field %s's type not integer. +Non-scalar type or pointer type to a non-object for increment or decrement operator. +The operand of the prefix/postfix increment or decrement operator shall have scalar type; if it is of pointer type, it must point to an object. +3.3.2.4(37), 3.3.3.1(25) +Assign value to a function type. +An assignment operator shall have a modifiable lvalue as its left operand. +3.2.2.1(5) +Assign value to an array. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for variable of incomplete type. +The operand of increment and decrement operator shall be a modifiable +scalar lvalue. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +The left-hand side of the '.' operator must be an addressable lvalue, when a bit-field is not contained within a unit of 32 bits alignment. +This is a restriction in our implementation, which can be worked +around by always accessing long long bit-fields indirectly (i.e. +by means of the '->' operator). +This expression is not an lvalue. +3.2.2.1 +Modified an rvalue. +3.2.2.1 +Change value for constant variable. +The operand of increment and decrement operators shall be modifiable +scalar lvalues. An assignment operator shall have a modifiable lvalue +as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Change value for constant field of a struct or union. +An assignment operator shall have a modifiable lvalue as its left operand. +3.3.2.4(36), 3.3.3.1(24), 3.2.2.1(5) +Dereferenced a non-pointer. +The operand of the unary * operator shall have pointer type. +3.3.3.2(39) +The operand of the unary + or - operator shall have arithmetic type. +3.3.3.3(6) +The operand of the unary ~ operator shall have integral type. +3.3.3.3(6) +The operand of the unary ! operator shall have scalar type. +3.3.3.3(6) +Constants must have arithmetic type. +3.1.3 +Bad type name for cast operator +The type name for the cast operator should either be void or a +qualified or unqualified scalar type. +3.3.4(22) +Improper cast of non-scalar type expression. +The operand for the cast operator shall be of scalar type. +3.3.4(23) +Cast a pointer into a non-integral type. +A pointer may be converted to an integral type. +3.3.4(31) +Cast a non-integral type into a pointer. +An integral type may be converted to a pointer. +3.3.4(31) +Duplicate member '%s' +Two members of a struct may not have the same name. +3.1.2.2(7,25) +Invalid constant expression. +Constant expressions shall not contain assignment, increment, decrement, +function-call, or comma operators, except when they are contained within +the operand of the sizeof operator. +3.4(9) +Constant expressions must be derived from a constant value or a constant +variable. +3.4 +Dangerous operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. This operand is NOT an lvalue, but we let it pass. +Note that a segmentation error with possible core dump will result +when the resulting address does not denote a valid (declared) +storage location. This feature will be discontinued in future +releases of the compiler! +3.3.3.2(36) +Unacceptable operand of '&'. +The operand of the unary & operator shall be either a function +designator or an lvalue that designates an object that is not a +bit-field and is not declared with the register storage-class +specifier. +3.3.3.2(36) +'&' before array or function; ignored +Unacceptable operand of sizeof operator. +The sizeof operator shall not be applied to an expression that has +function type or an incomplete type, to the parenthesized name of such +a type, or to an lvalue that designates a bit-field object. +3.3.3.4 +Unacceptable operand of a multiplicative operator. +Each of the operands of a multiplicative operator shall have arithmetic type. +3.3.5(18) +Unacceptable operand of the remainder operator +Each of the operands of the remainder (%) operator shall have integral type. +3.3.5(18) +Unacceptable operand of '+'. +For the + operator, either both operands shall have arithmetic type, or +one operand shall be a pointer to an object type and the other shall +have integral type. +3.3.6(39) +Unacceptable operand of '-'. +For the subtraction operator, one of the following shall hold: both operands +have arithmetic type; operands are pointers to qualified or unqualified +versions of compatible object types; or the left operand is a pointer +to an object type and the right operand has integral type. +3.3.6(39) +Unacceptable operand of shift operator. +Each of the operands of bitwise shift operators shall have integral type. +3.3.7(9) +Unacceptable operand of relational operator. +For relational operators, one of the following shall hold: both +operands have arithmetic type; both operands are pointers to qualified +or unqualified versions of compatible object types; or both operands +are pointers to qualified or unqualified versions of compatible +incomplete types. +3.3.8(32) +Unacceptable operand of == or != +For the == or != operator, one of the following shall hold: both operands +are pointers to qualified or unqualified versions of compatible types; one +operand is a pointer to an object or incomplete type and the other is a +pointer to a qualified or unqualified version of void; or one operand is +a pointer and the other is a null pointer constant. +3.3.9(21) +Unacceptable operand of &. +Each of the operands shall have integral type. +3.3.10(7) +Unacceptable operand of ^. +Each of the operands shall have integral type. +3.3.11(18) +Unacceptable operand of |. +Each of the operands shall have integral type. +3.3.12(30) +Unacceptable operand of &&. +Each of the operands shall have scalar type. +3.3.13(7) +Unacceptable operand of ||. +Each of the operands shall have scalar type. +3.3.14(20) +Unacceptable operand of conditional operator. +The first operand of conditional operator shall have scalar type. One +of the following shall hold for the second and third operands: +both operands have arithmetic type; both operands have compatible +structure or union types; both operands have void type; both operands +are pointers to qualified or unqualified versions of compatible types; +one operand is a pointer and the other is a null pointer constant; or +one operand is pointer to an object or incomplete type and the other +is a pointer to a qualified or unqualified version of void. +3.3.15 +Duplicate label '%s' +A label name can only occur once in a function. +3.1.2.1(25) +Division by zero. +3.3.5 +Subscripting a non-array. +3.3.2.1 +Subscripting an array of incomplete type which is not an object type. +The element of the array shall have an object type. +3.3.2.1 +Should only subscript an array with an integral expression +3.3.2.1 +Subscripting an unbounded array +3.3.2.1 +Array index out of range +3.3.2.1 +Selector requires struct/union pointer as left hand side +In K&R mode the expression is implicitly converted to the '.' selector +for a struct/union left-hand side. +3.3.2.3 +Selector requires struct/union as left hand side +In K&R mode the expression is implicitly converted to the '->' selector +for a struct/union pointer left-hand side. +3.3.2.3 +member of structure or union required +3.3.2.3 +types have different qualifier specifications +For two qualified types to be compatible, both shall have the +identically qualified version of a compatible type; qualified +and unqualified versions of a type are distinct types. For two +types to be compatible their types must be the same. +3.5.3(26) +Incompatible array type due to different array size +For two array types to be compatible, both shall have compatible element +types; if both size specifiers are present, they shall have the +same value. +3.5.4.2(11) +Incompatible array type due to incompatible element type +For two array types to be compatible, both shall have compatible element +types. +3.5.4.2(11) +Incompatible pointer type assignment +The type pointed to by the left-hand side of simple assignment +statement is incompatible with the type pointed to by the right-hand side. +3.3.16.1, 3.5.4.1(21) +Incompatible base type of pointer type +K&R feature. +Type %s of %s is incompatible with type %s of %s +Incompatible types can be resolved by casting or by other means. +3.3.16.1 +illegal combination of pointer and integer +Assigning an integral expression to a pointer is a bad practice. +Type for %s is incompatible with %s +Incompatible types can be resolved by casting or by other means. +3.1.2.6 +Bad operand type for += or -= +3.3.16.2(26) +A case or default label appears outside a switch statement +A case or default label shall appear only in a switch statement. +3.6.1 +The controlling expression of the if statement is not scalar type +The controlling expression of an if statement shall have scalar type. +3.6.4.1 +The controlling expression of switch statement is not integral type +The controlling expression of an switch statement shall have integral type. +3.6.4.2(20) +The case label is not an integral constant expression +The case label shall be an integral constant expression. +3.6.4.2(22) +Duplicate case label in the same switch statement +No two of the case constant expressions in the same switch statement +shall have the same value after conversion. +3.6.4.2(22) +More than one default label in the same switch statement +There may be at most one default label in a switch statement. +3.6.4.2(23) +The controlling expression of the iteration statement is not scalar +type +The controlling expression of a iteration statement shall have scalar +type. +3.6.5.1 +label '%s' used, but not defined +The identifier in a goto statement shall name a label located +somewhere in the enclosing function. +3.6.6.1 +A continue statement shall appear only in or as a loop body +3.6.6.2 +A break statement shall appear only in or as a switch body or loop body +3.6.6.3 +A return statement with an expression should not appear +in a function '%s', whose return type is void +3.6.6.4(24) +A return statement without an expression appears in a +function '%s', whose return type is not void +If a return statement without an expression is executed, and the value +of the function call is used by the caller, the behavior is undefined. +3.6.6.4(33) +Internal Error: statement stack underflow +Long double not supported; double assumed. +Long float not standard; double assumed. +Only 'register' allowed in parameter declaration +The only storage-class specifier that shall occur in a parameter +declaration is 'register'; illegal storage class ignored. +3.5.4.3(25) +Name(s) without types in a function declaration +An old-style function declaration is not allowed to have names +in the parameter list; useless names ignored +3.5.4.3(26) +Functions cannot return functions +3.7.1(33), 3.3.2.2 +Functions cannot return a non-object type +3.3.2.2 +enum declaration must contain enum literals +Although structs or unions may delay the declaration of their members, +a similar construction with enum does not exist and is not necessary, +as there can be no mutual dependencies between the declaration of an +enumerated type and any other type. +3.5.2.3(27) +Register qualification has no effect for this type of object +Register declarations for array, struct, and function types have +no effect. +3.5.1(16), 3.5.1(19) +Functions cannot be declared 'register' +The declaration of an identifier for a function that has block +scope shall have no explicit storage-class specifier other than +'extern'. +3.5.1(19) +'%s' cannot be initialized +The type of the entity to be initialized shall be an object type +or an array of unknown size. +3.5.7(32) +Cannot initialize 'extern' variable '%s' within a function +If the declaration of an identifier has block scope, and the +identifier has 'extern' or 'static' linkage, the declaration +shall have no initializer for the identifier; initialization +allowed anyway. +3.5.7(35) +initializing an 'extern' is an ANSI C extension +conflicting declarations for '%s' +'static' and 'extern' declarations conflict. Which is meant? +3.1.2.2(15), 3.1.2.2(27) +Too many initial values for '%s' +3.5.7(1) +incompatible types in initialization +3.3.16(35) +redefinition of '%s'; previous definition at line %s in file '%s' +Identifier redeclared in the same scope/block. +3.1.2.3 +bit-fields as members of a union are an ANSI C invention. +storage size for '%s' isn't known +type mismatch in initialization +Missing braces in a union initialization or illegally formed +initialization. +3.5.7(5) +union '%s' only allowed one initializer for the first member +3.5.7(5) +width of '%s' exceeds its type +the specified bitfield width is too large to be contained within a +bitfield type. +structure has no member named '%s' +This is allowed for compatibility with AT&T pcc-based compilers. +Reference of an expression of void type or an incomplete type. +3.2.2.1 +element size of an array shall not be zero +3.2.2.5(25) +invalid combination of type specifiers +Although order is unimportant, not all type specifiers can occur together. +3.5.2 +declaration must at least declare an identifier, tag, or the member of an enumeration +3.5(16) +at most one storage class may be given in the declaration +Duplicate occurrence ignored. +3.5.1(10) +size of function's return type is zero +The return type of a function must be void or an object type other than array. +3.7.1(33) +Expecting an integral return type from the main function +identifier missing from parameter declaration +Prototypes for function definitions require identifiers in parameter +declarations. +3.7.1(4) +only 'register' allowed for storage class for parameters +The declarations in the declaration list shall contain no storage class +other than 'register', and no initializations. +3.7.1(10) +parameters declarations can not have initializations +3.7.1(10) +only one instance of 'void' allowed in the parameter list +'void' must occur by itself (specifying that the function has no parameters). +3.5.4.3(1) +%s must have function type +1) An argument list must be explicitly present in the declarator; it cannot + be inherited from a typedef (3.5.4.3). +2) The declarator is not a function. +3.7.1(30) +Illegal hexadecimal constant +You have no digits after the 0x or 0X. 0x0 assumed. +3.1.3.2 +value overflows its type in this context. Value is set to be '%s'! +3.2.1.4 +value is outside range representable for type '%s' +missing member name +K&R mode permits a missing member name; otherwise, only bitfields can omit +the member name. +3.5.2.1(10) +useless keyword or type name in declaration +Type was ignored. +'%s' declared within and is limited to this function prototype +Possible program error, since parameter type checking will always fail +unless the type declaration is visible to the caller. +3.1.2.1(35) +Extra spaces within operator, %s assumed +In ANSI C, the compound assignment operator cannot have embedded +white space characters. +3.1.5 +missing size for array '%s' +Incomplete types permitted for identifiers with internal or +external linkage, but not automatic linkage. +3.1.2.5(10) +can't jump into (from outside of) the body of a 'try' or into either type of handler +'%s' missing, please #include excpt.h +excpt.h required to declare exception statements, intrinsics or compiler +runtime names. +local function declarations cannot be 'static' +A function declaration can only contain the storage-class 'static' +if it is at file scope. Declaration made 'extern'. +3.5.1(19) +static function '%s' declared and referenced, but not defined. +If an identifier declared with internal linkage is used in an +expression (other than as a part of the operand of a sizeof +operator), there shall be exactly one external definition for +the identifier in the translation unit. +3.7(12) +pragma argument '%s' must be declared prior to being used in a pragma +Pragma name ignored. +Pragma not supported +'%s' not enabled as intrinsic +It may have already appeared in a function pragma, or never occurred in +an intrinsic pragma. +'%s' is already enabled as an intrinsic +weak definition for '%s' is later redefined; pragma weak ignored. +definition of primary name '%s' not found; pragma weak ignored. +definition of secondary name '%s' not found; pragma weak ignored. +primary name '%s' is declared as a common or external, and is not defined +with initial value within this file; pragma weak ignored. +useless '%s' storage class ignored +array of functions not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +array of voids not allowed +The element type must be an object type representing a region +of data storage which can represent values. +3.1.2.5(23) +argument for pragma pack must be an integer constant; pragma ignored +'%s' has wrong tag type. +Identifier redeclared in the same scope/block. +3.1.2.3 +missing dimension bound +For multidimensional arrays, the constant bounds of the array may be +omitted only for the first member of the sequence. +3.1.2.5(23) +Internal error in parameters to function substr; loc: '%s'; len: '%s'. +Internal error in parameters to function insertstr; indx: '%s'. +Internal error in function get_tag_name; input is a non-tagged type. +Internal error in function gen_type_str -- not a type tree '%s' +Cannot open file '%s' +Prototype should be moved after tag or a typedef declaration. +Please look for comments in the extracted header file. +The extracted header file includes prototypes for static functions, +which should be removed, if you wish to include the header in a source file +other than the originator. +ANSI C requires formal parameter before "..." +This extension is meant to be used for compatibility with varargs.h +3.5.4.3(35) +syntax error: "&..." invalid +extension used to access "..." formal arguments. +function '%s' initialized like a variable +The type of entity to be initialized shall be an object type or an +array of unknown size. +3.5.7(31) +initializer not an array aggregate +The initializer for an object that has aggregate type shall be a +brace-enclosed list of initializers for the members of the aggregate, +written in increasing subscript or member order. +3.5.7(20) +'%s' type is incomplete; cannot initialize +Was the struct ever defined? +3.5.7.(31) +'%s' is not standard ANSI. +This keyword/type is not defined in strict ANSI mode. +3.1.1 +not a legal asm string +The first operand of an asm string should be, after argument substitution, +a legal assembly string. +The -float option will be ignored in ANSI mode. +The -float option is ignored, since otherwise program semantics would +violate the ANSI standard. In particular, fp constants are always +'double' with ANSI-C, while with -float the type of fp constants will +depend on the context and may be 'float'. +ANSI C support unavailable with C compiler bundled with RISC/os +The C compiler bundled with RISC/os does not support ANSI C. ANSI +C support requires a separate license. +Ignored invalid warning number(s) in -woff option, %s%s ! +Warning numbers must be in the range %s to %s. +The set of warning numbers in cfe is disjoint from the set of warning numbers +in accom, since accom warnings cannot be mapped one-to-one to cfe warnings. +'%s' not handled as an intrinsic due to incompatible argument types . +'__unalign' only qualifies pointers +'__unalign' indicates the object pointed at by pointer is unaligned (e.g., +int * __unalign p). This is an extension to ANSI C and like 'volatile' +and 'const' can follow the '*' in pointer declarations, but unlike both +cannot qualify a base type. +index expression is an anachronism +ANSI C++ doesn't support array index expressions in delete. +5.3.4 +member cannot be of function or incomplete type. +3.5.2.1(12) +Illegal lint option, '%s', is ignored. +cannot open header message buffer file +cannot write header message buffer file +cannot read header message buffer file +cannot seek in header message buffer file +struct/union/enum '%s' is used, but not defined +static '%s' unused +nonportable character comparison (chars may be signed or unsigned) +redundant comparison of unsigned with constant expression +redundant statement, control flow cannot reach this statement +'%s' may be used before set +function parameter '%s' is not used in function '%s' +'%s' can be const qualified, since it is not set within its lifetime. +'%s' is not used in function '%s' +'%s' set but unused in function '%s' +control may fall through %s statement +function '%s' has return(e); and return; +function '%s' may return random value to place of invocation %s +label without goto: '%s' +only %s bits of '%s' constant (type '%s') are explicitly given +explicit conversion from '%s' to '%s' %s +implicit conversion from '%s' to '%s' %s +'%s' may be indistinguishable from '%s' due to internal name truncation +Promoted formal parameter and promoted argument have incompatible types +No prototype for the definition of '%s' %s +References to '%s' are substituted by its literal initializer + (as included in %s) +============== +unsupported language linkage +string-literal specifies an unsupported linkage +7.4(1) +No prototype for the call to %s +To achieve better type-checking, there should be a full prototype for +the function being called. +3.5.4.3 +'inline' only applies to function declarations +leave statment can occur only within try body +Microsoft extension +Use of a Microsoft extension detected without usage of the +compiler option -msft. +No parameter mentioned +A file with no declarations or definitions is accepted as an extension to ANSI C +The translation unit must contain at least one external definition. +3.7 +Incompatible signed and unsigned version of a type +Yacc initialization error +Internal error: yacc cannot initialize itself. +The cfe option %s may not be in future releases. We suggest that you not use this option! +Incompatible char and unsigned char versions of a type +Lshift with undefined behaviour. +Lshift with a negative right operand, or a right operand that is greater +than or equal to the width in bits of the promoted left operand, results +in undefined behaviour. +3.3.7(11) +useless type name in declaration, possibly a semicolon is missing. +Type was ignored. +constant initializer expression is invalid (refers to automatic variables). +All the expressions in an initializer for an object that has static storage +duration or in the initializer list for an object that has aggregate or +union type shall be constant expressions. Otherwise, unexpected results +may occur. +3.5.7(32) and 3.4 +invalid explicit or implicit conversion of an address constant to an integral value in a constant initializing expression. +An address constant in a constant initializing expression can neither +initialize a bit-field nor be directly or indirectly converted to an +integral type of size different from an address type. +6.4 diff --git a/tools/ido_recomp/macos/7.1/ugen b/tools/ido_recomp/macos/7.1/ugen new file mode 100755 index 0000000000..fe90904a43 Binary files /dev/null and b/tools/ido_recomp/macos/7.1/ugen differ diff --git a/tools/ido_recomp/macos/7.1/uopt b/tools/ido_recomp/macos/7.1/uopt new file mode 100755 index 0000000000..bb68f5d53a Binary files /dev/null and b/tools/ido_recomp/macos/7.1/uopt differ diff --git a/undefined_syms.txt b/undefined_syms.txt index 8ea77292ad..a0b6acb0f5 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -321,6 +321,9 @@ D_0600238C = 0x0600238C; D_06000368 = 0x06000368; D_06000150 = 0x06000150; +// z_bg_spot18_shutter +D_06000534 = 0x06000534; + // z_bg_umajump D_06001438 = 0x06001438; D_06001220 = 0x06001220; @@ -1025,6 +1028,10 @@ D_0600FE40 = 0x0600FE40; D_0400CD80 = 0x0400CD80; D_040184B0 = 0x040184B0; +// z_bg_po_syokudai +D_060003A0 = 0x060003A0; +D_0404D4E0 = 0x0404D4E0; + // z_item_ocarina D_0200F870 = 0x0200F870;