mirror of
https://github.com/n64decomp/mk64
synced 2026-06-09 20:10:49 -04:00
@@ -1,6 +1,3 @@
|
||||
[submodule "autodecompiler"]
|
||||
path = autodecompiler
|
||||
url = https://github.com/farisawan-2000/auto-decompiler
|
||||
[submodule "asm-differ"]
|
||||
path = tools/asm-differ
|
||||
url = https://github.com/simonlindholm/asm-differ
|
||||
|
||||
@@ -73,7 +73,9 @@ MIO0_DIR = bin
|
||||
|
||||
# Files with GLOBAL_ASM blocks
|
||||
GLOBAL_ASM_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/*.c)
|
||||
GLOBAL_ASM_AUDIO_C_FILES != grep -rl 'GLOBAL_ASM(' $(wildcard src/audio/*.c)
|
||||
GLOBAL_ASM_O_FILES = $(foreach file,$(GLOBAL_ASM_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GLOBAL_ASM_AUDIO_O_FILES = $(foreach file,$(GLOBAL_ASM_AUDIO_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
# GLOBAL_ASM_DEP = $(BUILD_DIR)/src/audio/non_matching_dep
|
||||
|
||||
COURSE_ASM_FILES := $(wildcard courses/*/*/packed.s)
|
||||
@@ -256,6 +258,8 @@ $(BUILD_DIR)/%.o: %.s $(MIO0_FILES) $(RAW_TEXTURE_FILES)
|
||||
|
||||
$(GLOBAL_ASM_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(GLOBAL_ASM_AUDIO_O_FILES): CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) #repeat for other files
|
||||
$(CPP) $(VERSION_CFLAGS) -DBUILD_DIR=$(BUILD_DIR) -MMD -MP -MT $@ -MF $@.d -o $@ $<
|
||||
|
||||
|
||||
@@ -1,781 +0,0 @@
|
||||
# Mario Kart 64 (U) disassembly and split file
|
||||
# generated by n64split v0.4a - N64 ROM splitter
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64
|
||||
|
||||
.include "macros.inc"
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
glabel func_800BDE50
|
||||
/* 0BEA50 800BDE50 8C820000 */ lw $v0, ($a0)
|
||||
/* 0BEA54 800BDE54 00003025 */ move $a2, $zero
|
||||
/* 0BEA58 800BDE58 00803825 */ move $a3, $a0
|
||||
/* 0BEA5C 800BDE5C 00027A40 */ sll $t7, $v0, 9
|
||||
/* 0BEA60 800BDE60 05E00003 */ bltz $t7, .L800BDE70
|
||||
/* 0BEA64 800BDE64 24090010 */ li $t1, 16
|
||||
/* 0BEA68 800BDE68 50A00016 */ beql $a1, $zero, .L800BDEC4
|
||||
/* 0BEA6C 800BDE6C 00027280 */ sll $t6, $v0, 0xa
|
||||
.L800BDE70:
|
||||
/* 0BEA70 800BDE70 C4840024 */ lwc1 $f4, 0x24($a0)
|
||||
/* 0BEA74 800BDE74 C4860020 */ lwc1 $f6, 0x20($a0)
|
||||
/* 0BEA78 800BDE78 8C820044 */ lw $v0, 0x44($a0)
|
||||
/* 0BEA7C 800BDE7C 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 0BEA80 800BDE80 C44A002C */ lwc1 $f10, 0x2c($v0)
|
||||
/* 0BEA84 800BDE84 8C580000 */ lw $t8, ($v0)
|
||||
/* 0BEA88 800BDE88 00185080 */ sll $t2, $t8, 2
|
||||
/* 0BEA8C 800BDE8C 460A4002 */ mul.s $f0, $f8, $f10
|
||||
/* 0BEA90 800BDE90 05410008 */ bgez $t2, .L800BDEB4
|
||||
/* 0BEA94 800BDE94 00000000 */ nop
|
||||
/* 0BEA98 800BDE98 908B0003 */ lbu $t3, 3($a0)
|
||||
/* 0BEA9C 800BDE9C 316C0020 */ andi $t4, $t3, 0x20
|
||||
/* 0BEAA0 800BDEA0 11800004 */ beqz $t4, .L800BDEB4
|
||||
/* 0BEAA4 800BDEA4 00000000 */ nop
|
||||
/* 0BEAA8 800BDEA8 C4500024 */ lwc1 $f16, 0x24($v0)
|
||||
/* 0BEAAC 800BDEAC 46008002 */ mul.s $f0, $f16, $f0
|
||||
/* 0BEAB0 800BDEB0 00000000 */ nop
|
||||
.L800BDEB4:
|
||||
/* 0BEAB4 800BDEB4 46000482 */ mul.s $f18, $f0, $f0
|
||||
/* 0BEAB8 800BDEB8 8C820000 */ lw $v0, ($a0)
|
||||
/* 0BEABC 800BDEBC E492002C */ swc1 $f18, 0x2c($a0)
|
||||
/* 0BEAC0 800BDEC0 00027280 */ sll $t6, $v0, 0xa
|
||||
.L800BDEC4:
|
||||
/* 0BEAC4 800BDEC4 05C10007 */ bgez $t6, .L800BDEE4
|
||||
/* 0BEAC8 800BDEC8 24080080 */ li $t0, 128
|
||||
/* 0BEACC 800BDECC 908F0009 */ lbu $t7, 9($a0)
|
||||
/* 0BEAD0 800BDED0 9098000A */ lbu $t8, 0xa($a0)
|
||||
/* 0BEAD4 800BDED4 01F80019 */ multu $t7, $t8
|
||||
/* 0BEAD8 800BDED8 0000C812 */ mflo $t9
|
||||
/* 0BEADC 800BDEDC AC990028 */ sw $t9, 0x28($a0)
|
||||
/* 0BEAE0 800BDEE0 00000000 */ nop
|
||||
.L800BDEE4:
|
||||
/* 0BEAE4 800BDEE4 8CE30048 */ lw $v1, 0x48($a3)
|
||||
/* 0BEAE8 800BDEE8 24C60004 */ addiu $a2, $a2, 4
|
||||
/* 0BEAEC 800BDEEC 1060003E */ beqz $v1, .L800BDFE8
|
||||
/* 0BEAF0 800BDEF0 00000000 */ nop
|
||||
/* 0BEAF4 800BDEF4 8C620000 */ lw $v0, ($v1)
|
||||
/* 0BEAF8 800BDEF8 000257C2 */ srl $t2, $v0, 0x1f
|
||||
/* 0BEAFC 800BDEFC 1140003A */ beqz $t2, .L800BDFE8
|
||||
/* 0BEB00 800BDF00 00000000 */ nop
|
||||
/* 0BEB04 800BDF04 8C6B0040 */ lw $t3, 0x40($v1)
|
||||
/* 0BEB08 800BDF08 00026940 */ sll $t5, $v0, 5
|
||||
/* 0BEB0C 800BDF0C 11600036 */ beqz $t3, .L800BDFE8
|
||||
/* 0BEB10 800BDF10 00000000 */ nop
|
||||
/* 0BEB14 800BDF14 05A30017 */ bgezl $t5, .L800BDF74
|
||||
/* 0BEB18 800BDF18 80980001 */ lb $t8, 1($a0)
|
||||
/* 0BEB1C 800BDF1C C4640024 */ lwc1 $f4, 0x24($v1)
|
||||
/* 0BEB20 800BDF20 C4860030 */ lwc1 $f6, 0x30($a0)
|
||||
/* 0BEB24 800BDF24 C46A0028 */ lwc1 $f10, 0x28($v1)
|
||||
/* 0BEB28 800BDF28 906E0005 */ lbu $t6, 5($v1)
|
||||
/* 0BEB2C 800BDF2C 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 0BEB30 800BDF30 906D0000 */ lbu $t5, ($v1)
|
||||
/* 0BEB34 800BDF34 E4680030 */ swc1 $f8, 0x30($v1)
|
||||
/* 0BEB38 800BDF38 C490002C */ lwc1 $f16, 0x2c($a0)
|
||||
/* 0BEB3C 800BDF3C 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 0BEB40 800BDF40 E472002C */ swc1 $f18, 0x2c($v1)
|
||||
/* 0BEB44 800BDF44 908F000A */ lbu $t7, 0xa($a0)
|
||||
/* 0BEB48 800BDF48 8C8A0028 */ lw $t2, 0x28($a0)
|
||||
/* 0BEB4C 800BDF4C 010FC023 */ subu $t8, $t0, $t7
|
||||
/* 0BEB50 800BDF50 01D80019 */ multu $t6, $t8
|
||||
/* 0BEB54 800BDF54 31AFFFFB */ andi $t7, $t5, 0xfffb
|
||||
/* 0BEB58 800BDF58 A06F0000 */ sb $t7, ($v1)
|
||||
/* 0BEB5C 800BDF5C 0000C812 */ mflo $t9
|
||||
/* 0BEB60 800BDF60 01595821 */ addu $t3, $t2, $t9
|
||||
/* 0BEB64 800BDF64 000B61C3 */ sra $t4, $t3, 7
|
||||
/* 0BEB68 800BDF68 1000001F */ b .L800BDFE8
|
||||
/* 0BEB6C 800BDF6C A06C0006 */ sb $t4, 6($v1)
|
||||
/* 0BEB70 800BDF70 80980001 */ lb $t8, 1($a0)
|
||||
.L800BDF74:
|
||||
/* 0BEB74 800BDF74 07030006 */ bgezl $t8, .L800BDF90
|
||||
/* 0BEB78 800BDF78 8C820000 */ lw $v0, ($a0)
|
||||
/* 0BEB7C 800BDF7C C4640024 */ lwc1 $f4, 0x24($v1)
|
||||
/* 0BEB80 800BDF80 C4860030 */ lwc1 $f6, 0x30($a0)
|
||||
/* 0BEB84 800BDF84 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 0BEB88 800BDF88 E4680030 */ swc1 $f8, 0x30($v1)
|
||||
/* 0BEB8C 800BDF8C 8C820000 */ lw $v0, ($a0)
|
||||
.L800BDF90:
|
||||
/* 0BEB90 800BDF90 0002CA40 */ sll $t9, $v0, 9
|
||||
/* 0BEB94 800BDF94 07220004 */ bltzl $t9, .L800BDFA8
|
||||
/* 0BEB98 800BDF98 C46A0028 */ lwc1 $f10, 0x28($v1)
|
||||
/* 0BEB9C 800BDF9C 50A00007 */ beql $a1, $zero, .L800BDFBC
|
||||
/* 0BEBA0 800BDFA0 00026280 */ sll $t4, $v0, 0xa
|
||||
/* 0BEBA4 800BDFA4 C46A0028 */ lwc1 $f10, 0x28($v1)
|
||||
.L800BDFA8:
|
||||
/* 0BEBA8 800BDFA8 C490002C */ lwc1 $f16, 0x2c($a0)
|
||||
/* 0BEBAC 800BDFAC 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 0BEBB0 800BDFB0 E472002C */ swc1 $f18, 0x2c($v1)
|
||||
/* 0BEBB4 800BDFB4 8C820000 */ lw $v0, ($a0)
|
||||
/* 0BEBB8 800BDFB8 00026280 */ sll $t4, $v0, 0xa
|
||||
.L800BDFBC:
|
||||
/* 0BEBBC 800BDFBC 0581000A */ bgez $t4, .L800BDFE8
|
||||
/* 0BEBC0 800BDFC0 00000000 */ nop
|
||||
/* 0BEBC4 800BDFC4 908F000A */ lbu $t7, 0xa($a0)
|
||||
/* 0BEBC8 800BDFC8 906D0005 */ lbu $t5, 5($v1)
|
||||
/* 0BEBCC 800BDFCC 8C8A0028 */ lw $t2, 0x28($a0)
|
||||
/* 0BEBD0 800BDFD0 010F7023 */ subu $t6, $t0, $t7
|
||||
/* 0BEBD4 800BDFD4 01AE0019 */ multu $t5, $t6
|
||||
/* 0BEBD8 800BDFD8 0000C012 */ mflo $t8
|
||||
/* 0BEBDC 800BDFDC 0158C821 */ addu $t9, $t2, $t8
|
||||
/* 0BEBE0 800BDFE0 001959C3 */ sra $t3, $t9, 7
|
||||
/* 0BEBE4 800BDFE4 A06B0006 */ sb $t3, 6($v1)
|
||||
.L800BDFE8:
|
||||
/* 0BEBE8 800BDFE8 14C9FFBE */ bne $a2, $t1, .L800BDEE4
|
||||
/* 0BEBEC 800BDFEC 24E70004 */ addiu $a3, $a3, 4
|
||||
/* 0BEBF0 800BDFF0 03E00008 */ jr $ra
|
||||
/* 0BEBF4 800BDFF4 A0800001 */ sb $zero, 1($a0)
|
||||
|
||||
glabel func_800BDFF8
|
||||
/* 0BEBF8 800BDFF8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0BEBFC 800BDFFC AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0BEC00 800BE000 AFB50028 */ sw $s5, 0x28($sp)
|
||||
/* 0BEC04 800BE004 AFB40024 */ sw $s4, 0x24($sp)
|
||||
/* 0BEC08 800BE008 AFB30020 */ sw $s3, 0x20($sp)
|
||||
/* 0BEC0C 800BE00C AFB2001C */ sw $s2, 0x1c($sp)
|
||||
/* 0BEC10 800BE010 AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 0BEC14 800BE014 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 0BEC18 800BE018 948E0010 */ lhu $t6, 0x10($a0)
|
||||
/* 0BEC1C 800BE01C 3C15803B */ lui $s5, %hi(D_803B5EF0) # $s5, 0x803b
|
||||
/* 0BEC20 800BE020 00809825 */ move $s3, $a0
|
||||
/* 0BEC24 800BE024 11C00025 */ beqz $t6, .L800BE0BC
|
||||
/* 0BEC28 800BE028 26B55EF0 */ addiu $s5, %lo(D_803B5EF0) # addiu $s5, $s5, 0x5ef0
|
||||
/* 0BEC2C 800BE02C C4840018 */ lwc1 $f4, 0x18($a0)
|
||||
/* 0BEC30 800BE030 C486001C */ lwc1 $f6, 0x1c($a0)
|
||||
/* 0BEC34 800BE034 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0BEC38 800BE038 44811000 */ mtc1 $at, $f2
|
||||
/* 0BEC3C 800BE03C 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 0BEC40 800BE040 90980000 */ lbu $t8, ($a0)
|
||||
/* 0BEC44 800BE044 E4880018 */ swc1 $f8, 0x18($a0)
|
||||
/* 0BEC48 800BE048 C4800018 */ lwc1 $f0, 0x18($a0)
|
||||
/* 0BEC4C 800BE04C 37190004 */ ori $t9, $t8, 4
|
||||
/* 0BEC50 800BE050 A0990000 */ sb $t9, ($a0)
|
||||
/* 0BEC54 800BE054 4600103C */ c.lt.s $f2, $f0
|
||||
/* 0BEC58 800BE058 00000000 */ nop
|
||||
/* 0BEC5C 800BE05C 45020004 */ bc1fl .L800BE070
|
||||
/* 0BEC60 800BE060 44801000 */ mtc1 $zero, $f2
|
||||
/* 0BEC64 800BE064 E4820018 */ swc1 $f2, 0x18($a0)
|
||||
/* 0BEC68 800BE068 C4800018 */ lwc1 $f0, 0x18($a0)
|
||||
/* 0BEC6C 800BE06C 44801000 */ mtc1 $zero, $f2
|
||||
.L800BE070:
|
||||
/* 0BEC70 800BE070 00000000 */ nop
|
||||
/* 0BEC74 800BE074 4602003C */ c.lt.s $f0, $f2
|
||||
/* 0BEC78 800BE078 00000000 */ nop
|
||||
/* 0BEC7C 800BE07C 45020003 */ bc1fl .L800BE08C
|
||||
/* 0BEC80 800BE080 96680010 */ lhu $t0, 0x10($s3)
|
||||
/* 0BEC84 800BE084 E6620018 */ swc1 $f2, 0x18($s3)
|
||||
/* 0BEC88 800BE088 96680010 */ lhu $t0, 0x10($s3)
|
||||
.L800BE08C:
|
||||
/* 0BEC8C 800BE08C 2509FFFF */ addiu $t1, $t0, -1
|
||||
/* 0BEC90 800BE090 312AFFFF */ andi $t2, $t1, 0xffff
|
||||
/* 0BEC94 800BE094 15400009 */ bnez $t2, .L800BE0BC
|
||||
/* 0BEC98 800BE098 A6690010 */ sh $t1, 0x10($s3)
|
||||
/* 0BEC9C 800BE09C 926B0001 */ lbu $t3, 1($s3)
|
||||
/* 0BECA0 800BE0A0 24010002 */ li $at, 2
|
||||
/* 0BECA4 800BE0A4 55610006 */ bnel $t3, $at, .L800BE0C0
|
||||
/* 0BECA8 800BE0A8 8E6C0000 */ lw $t4, ($s3)
|
||||
/* 0BECAC 800BE0AC 0C02FBCB */ jal func_800BEF2C
|
||||
/* 0BECB0 800BE0B0 02602025 */ move $a0, $s3
|
||||
/* 0BECB4 800BE0B4 10000020 */ b .L800BE138
|
||||
/* 0BECB8 800BE0B8 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
.L800BE0BC:
|
||||
/* 0BECBC 800BE0BC 8E6C0000 */ lw $t4, ($s3)
|
||||
.L800BE0C0:
|
||||
/* 0BECC0 800BE0C0 00008025 */ move $s0, $zero
|
||||
/* 0BECC4 800BE0C4 02608825 */ move $s1, $s3
|
||||
/* 0BECC8 800BE0C8 000C7140 */ sll $t6, $t4, 5
|
||||
/* 0BECCC 800BE0CC 05C10005 */ bgez $t6, .L800BE0E4
|
||||
/* 0BECD0 800BE0D0 24140040 */ li $s4, 64
|
||||
/* 0BECD4 800BE0D4 C66A0018 */ lwc1 $f10, 0x18($s3)
|
||||
/* 0BECD8 800BE0D8 C6700028 */ lwc1 $f16, 0x28($s3)
|
||||
/* 0BECDC 800BE0DC 46105482 */ mul.s $f18, $f10, $f16
|
||||
/* 0BECE0 800BE0E0 E672002C */ swc1 $f18, 0x2c($s3)
|
||||
.L800BE0E4:
|
||||
/* 0BECE4 800BE0E4 24120001 */ li $s2, 1
|
||||
.L800BE0E8:
|
||||
/* 0BECE8 800BE0E8 8E240030 */ lw $a0, 0x30($s1)
|
||||
/* 0BECEC 800BE0EC 02A47826 */ xor $t7, $s5, $a0
|
||||
/* 0BECF0 800BE0F0 000F782B */ sltu $t7, $zero, $t7
|
||||
/* 0BECF4 800BE0F4 564F000A */ bnel $s2, $t7, .L800BE120
|
||||
/* 0BECF8 800BE0F8 26100004 */ addiu $s0, $s0, 4
|
||||
/* 0BECFC 800BE0FC 8C980000 */ lw $t8, ($a0)
|
||||
/* 0BED00 800BE100 0018CFC2 */ srl $t9, $t8, 0x1f
|
||||
/* 0BED04 800BE104 56590006 */ bnel $s2, $t9, .L800BE120
|
||||
/* 0BED08 800BE108 26100004 */ addiu $s0, $s0, 4
|
||||
/* 0BED0C 800BE10C 8E650000 */ lw $a1, ($s3)
|
||||
/* 0BED10 800BE110 00054140 */ sll $t0, $a1, 5
|
||||
/* 0BED14 800BE114 0C02F794 */ jal func_800BDE50
|
||||
/* 0BED18 800BE118 00082FC2 */ srl $a1, $t0, 0x1f
|
||||
/* 0BED1C 800BE11C 26100004 */ addiu $s0, $s0, 4
|
||||
.L800BE120:
|
||||
/* 0BED20 800BE120 1614FFF1 */ bne $s0, $s4, .L800BE0E8
|
||||
/* 0BED24 800BE124 26310004 */ addiu $s1, $s1, 4
|
||||
/* 0BED28 800BE128 926A0000 */ lbu $t2, ($s3)
|
||||
/* 0BED2C 800BE12C 314BFFFB */ andi $t3, $t2, 0xfffb
|
||||
/* 0BED30 800BE130 A26B0000 */ sb $t3, ($s3)
|
||||
/* 0BED34 800BE134 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
.L800BE138:
|
||||
/* 0BED38 800BE138 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 0BED3C 800BE13C 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 0BED40 800BE140 8FB2001C */ lw $s2, 0x1c($sp)
|
||||
/* 0BED44 800BE144 8FB30020 */ lw $s3, 0x20($sp)
|
||||
/* 0BED48 800BE148 8FB40024 */ lw $s4, 0x24($sp)
|
||||
/* 0BED4C 800BE14C 8FB50028 */ lw $s5, 0x28($sp)
|
||||
/* 0BED50 800BE150 03E00008 */ jr $ra
|
||||
/* 0BED54 800BE154 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
glabel func_800BE158
|
||||
/* 0BED58 800BE158 C4840004 */ lwc1 $f4, 4($a0)
|
||||
/* 0BED5C 800BE15C C4860008 */ lwc1 $f6, 8($a0)
|
||||
/* 0BED60 800BE160 24020001 */ li $v0, 1
|
||||
/* 0BED64 800BE164 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
||||
/* 0BED68 800BE168 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 0BED6C 800BE16C E4880004 */ swc1 $f8, 4($a0)
|
||||
/* 0BED70 800BE170 444EF800 */ cfc1 $t6, $31
|
||||
/* 0BED74 800BE174 44C2F800 */ ctc1 $v0, $31
|
||||
/* 0BED78 800BE178 C48A0004 */ lwc1 $f10, 4($a0)
|
||||
/* 0BED7C 800BE17C 46005424 */ cvt.w.s $f16, $f10
|
||||
/* 0BED80 800BE180 4442F800 */ cfc1 $v0, $31
|
||||
/* 0BED84 800BE184 00000000 */ nop
|
||||
/* 0BED88 800BE188 30420078 */ andi $v0, $v0, 0x78
|
||||
/* 0BED8C 800BE18C 50400013 */ beql $v0, $zero, .L800BE1DC
|
||||
/* 0BED90 800BE190 44028000 */ mfc1 $v0, $f16
|
||||
/* 0BED94 800BE194 44818000 */ mtc1 $at, $f16
|
||||
/* 0BED98 800BE198 24020001 */ li $v0, 1
|
||||
/* 0BED9C 800BE19C 46105401 */ sub.s $f16, $f10, $f16
|
||||
/* 0BEDA0 800BE1A0 44C2F800 */ ctc1 $v0, $31
|
||||
/* 0BEDA4 800BE1A4 00000000 */ nop
|
||||
/* 0BEDA8 800BE1A8 46008424 */ cvt.w.s $f16, $f16
|
||||
/* 0BEDAC 800BE1AC 4442F800 */ cfc1 $v0, $31
|
||||
/* 0BEDB0 800BE1B0 00000000 */ nop
|
||||
/* 0BEDB4 800BE1B4 30420078 */ andi $v0, $v0, 0x78
|
||||
/* 0BEDB8 800BE1B8 14400005 */ bnez $v0, .L800BE1D0
|
||||
/* 0BEDBC 800BE1BC 00000000 */ nop
|
||||
/* 0BEDC0 800BE1C0 44028000 */ mfc1 $v0, $f16
|
||||
/* 0BEDC4 800BE1C4 3C018000 */ lui $at, 0x8000
|
||||
/* 0BEDC8 800BE1C8 10000007 */ b .L800BE1E8
|
||||
/* 0BEDCC 800BE1CC 00411025 */ or $v0, $v0, $at
|
||||
.L800BE1D0:
|
||||
/* 0BEDD0 800BE1D0 10000005 */ b .L800BE1E8
|
||||
/* 0BEDD4 800BE1D4 2402FFFF */ li $v0, -1
|
||||
/* 0BEDD8 800BE1D8 44028000 */ mfc1 $v0, $f16
|
||||
.L800BE1DC:
|
||||
/* 0BEDDC 800BE1DC 00000000 */ nop
|
||||
/* 0BEDE0 800BE1E0 0440FFFB */ bltz $v0, .L800BE1D0
|
||||
/* 0BEDE4 800BE1E4 00000000 */ nop
|
||||
.L800BE1E8:
|
||||
/* 0BEDE8 800BE1E8 44CEF800 */ ctc1 $t6, $31
|
||||
/* 0BEDEC 800BE1EC 2C410080 */ sltiu $at, $v0, 0x80
|
||||
/* 0BEDF0 800BE1F0 54200003 */ bnel $at, $zero, .L800BE200
|
||||
/* 0BEDF4 800BE1F4 3C013F80 */ lui $at, 0x3f80
|
||||
/* 0BEDF8 800BE1F8 2402007F */ li $v0, 127
|
||||
/* 0BEDFC 800BE1FC 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
.L800BE200:
|
||||
/* 0BEE00 800BE200 44816000 */ mtc1 $at, $f12
|
||||
/* 0BEE04 800BE204 3C01800F */ lui $at, %hi(gPitchBendFrequencyScale + 0x200)
|
||||
/* 0BEE08 800BE208 00027880 */ sll $t7, $v0, 2
|
||||
/* 0BEE0C 800BE20C 002F0821 */ addu $at, $at, $t7
|
||||
/* 0BEE10 800BE210 C4325E20 */ lwc1 $f18, %lo(gPitchBendFrequencyScale + 0x200)($at)
|
||||
/* 0BEE14 800BE214 C486000C */ lwc1 $f6, 0xc($a0)
|
||||
/* 0BEE18 800BE218 460C9101 */ sub.s $f4, $f18, $f12
|
||||
/* 0BEE1C 800BE21C 46062202 */ mul.s $f8, $f4, $f6
|
||||
/* 0BEE20 800BE220 460C4080 */ add.s $f2, $f8, $f12
|
||||
/* 0BEE24 800BE224 03E00008 */ jr $ra
|
||||
/* 0BEE28 800BE228 46001006 */ mov.s $f0, $f2
|
||||
|
||||
glabel func_800BE22C
|
||||
/* 0BEE2C 800BE22C C4840010 */ lwc1 $f4, 0x10($a0)
|
||||
/* 0BEE30 800BE230 8C8E0004 */ lw $t6, 4($a0)
|
||||
/* 0BEE34 800BE234 8C8A0008 */ lw $t2, 8($a0)
|
||||
/* 0BEE38 800BE238 4600218D */ trunc.w.s $f6, $f4
|
||||
/* 0BEE3C 800BE23C 44183000 */ mfc1 $t8, $f6
|
||||
/* 0BEE40 800BE240 00000000 */ nop
|
||||
/* 0BEE44 800BE244 01D8C821 */ addu $t9, $t6, $t8
|
||||
/* 0BEE48 800BE248 00194282 */ srl $t0, $t9, 0xa
|
||||
/* 0BEE4C 800BE24C 3109003F */ andi $t1, $t0, 0x3f
|
||||
/* 0BEE50 800BE250 00095840 */ sll $t3, $t1, 1
|
||||
/* 0BEE54 800BE254 AC990004 */ sw $t9, 4($a0)
|
||||
/* 0BEE58 800BE258 014B6021 */ addu $t4, $t2, $t3
|
||||
/* 0BEE5C 800BE25C 85820000 */ lh $v0, ($t4)
|
||||
/* 0BEE60 800BE260 00026A03 */ sra $t5, $v0, 8
|
||||
/* 0BEE64 800BE264 000D7C00 */ sll $t7, $t5, 0x10
|
||||
/* 0BEE68 800BE268 03E00008 */ jr $ra
|
||||
/* 0BEE6C 800BE26C 000F1403 */ sra $v0, $t7, 0x10
|
||||
|
||||
glabel func_800BE270
|
||||
/* 0BEE70 800BE270 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0BEE74 800BE274 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0BEE78 800BE278 9482001A */ lhu $v0, 0x1a($a0)
|
||||
/* 0BEE7C 800BE27C 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0BEE80 800BE280 10400004 */ beqz $v0, .L800BE294
|
||||
/* 0BEE84 800BE284 244EFFFF */ addiu $t6, $v0, -1
|
||||
/* 0BEE88 800BE288 44810000 */ mtc1 $at, $f0
|
||||
/* 0BEE8C 800BE28C 10000072 */ b .L800BE458
|
||||
/* 0BEE90 800BE290 A48E001A */ sh $t6, 0x1a($a0)
|
||||
.L800BE294:
|
||||
/* 0BEE94 800BE294 94820018 */ lhu $v0, 0x18($a0)
|
||||
/* 0BEE98 800BE298 24010001 */ li $at, 1
|
||||
/* 0BEE9C 800BE29C 5040001C */ beql $v0, $zero, .L800BE310
|
||||
/* 0BEEA0 800BE2A0 C48A000C */ lwc1 $f10, 0xc($a0)
|
||||
/* 0BEEA4 800BE2A4 14410009 */ bne $v0, $at, .L800BE2CC
|
||||
/* 0BEEA8 800BE2A8 00401825 */ move $v1, $v0
|
||||
/* 0BEEAC 800BE2AC 8C8F0000 */ lw $t7, ($a0)
|
||||
/* 0BEEB0 800BE2B0 94820018 */ lhu $v0, 0x18($a0)
|
||||
/* 0BEEB4 800BE2B4 95F80012 */ lhu $t8, 0x12($t7)
|
||||
/* 0BEEB8 800BE2B8 44982000 */ mtc1 $t8, $f4
|
||||
/* 0BEEBC 800BE2BC 00000000 */ nop
|
||||
/* 0BEEC0 800BE2C0 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0BEEC4 800BE2C4 1000000D */ b .L800BE2FC
|
||||
/* 0BEEC8 800BE2C8 E486000C */ swc1 $f6, 0xc($a0)
|
||||
.L800BE2CC:
|
||||
/* 0BEECC 800BE2CC 8C990000 */ lw $t9, ($a0)
|
||||
/* 0BEED0 800BE2D0 44839000 */ mtc1 $v1, $f18
|
||||
/* 0BEED4 800BE2D4 C480000C */ lwc1 $f0, 0xc($a0)
|
||||
/* 0BEED8 800BE2D8 97280012 */ lhu $t0, 0x12($t9)
|
||||
/* 0BEEDC 800BE2DC 46809120 */ cvt.s.w $f4, $f18
|
||||
/* 0BEEE0 800BE2E0 44884000 */ mtc1 $t0, $f8
|
||||
/* 0BEEE4 800BE2E4 00000000 */ nop
|
||||
/* 0BEEE8 800BE2E8 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 0BEEEC 800BE2EC 46005401 */ sub.s $f16, $f10, $f0
|
||||
/* 0BEEF0 800BE2F0 46048183 */ div.s $f6, $f16, $f4
|
||||
/* 0BEEF4 800BE2F4 46060200 */ add.s $f8, $f0, $f6
|
||||
/* 0BEEF8 800BE2F8 E488000C */ swc1 $f8, 0xc($a0)
|
||||
.L800BE2FC:
|
||||
/* 0BEEFC 800BE2FC 2449FFFF */ addiu $t1, $v0, -1
|
||||
/* 0BEF00 800BE300 A4890018 */ sh $t1, 0x18($a0)
|
||||
/* 0BEF04 800BE304 10000011 */ b .L800BE34C
|
||||
/* 0BEF08 800BE308 8C830000 */ lw $v1, ($a0)
|
||||
/* 0BEF0C 800BE30C C48A000C */ lwc1 $f10, 0xc($a0)
|
||||
.L800BE310:
|
||||
/* 0BEF10 800BE310 8C830000 */ lw $v1, ($a0)
|
||||
/* 0BEF14 800BE314 4600548D */ trunc.w.s $f18, $f10
|
||||
/* 0BEF18 800BE318 946C0012 */ lhu $t4, 0x12($v1)
|
||||
/* 0BEF1C 800BE31C 440B9000 */ mfc1 $t3, $f18
|
||||
/* 0BEF20 800BE320 00000000 */ nop
|
||||
/* 0BEF24 800BE324 516C000A */ beql $t3, $t4, .L800BE350
|
||||
/* 0BEF28 800BE328 94820016 */ lhu $v0, 0x16($a0)
|
||||
/* 0BEF2C 800BE32C 94620016 */ lhu $v0, 0x16($v1)
|
||||
/* 0BEF30 800BE330 14400006 */ bnez $v0, .L800BE34C
|
||||
/* 0BEF34 800BE334 A4820018 */ sh $v0, 0x18($a0)
|
||||
/* 0BEF38 800BE338 946D0012 */ lhu $t5, 0x12($v1)
|
||||
/* 0BEF3C 800BE33C 448D8000 */ mtc1 $t5, $f16
|
||||
/* 0BEF40 800BE340 00000000 */ nop
|
||||
/* 0BEF44 800BE344 46808120 */ cvt.s.w $f4, $f16
|
||||
/* 0BEF48 800BE348 E484000C */ swc1 $f4, 0xc($a0)
|
||||
.L800BE34C:
|
||||
/* 0BEF4C 800BE34C 94820016 */ lhu $v0, 0x16($a0)
|
||||
.L800BE350:
|
||||
/* 0BEF50 800BE350 24010001 */ li $at, 1
|
||||
/* 0BEF54 800BE354 50400018 */ beql $v0, $zero, .L800BE3B8
|
||||
/* 0BEF58 800BE358 C4920010 */ lwc1 $f18, 0x10($a0)
|
||||
/* 0BEF5C 800BE35C 14410008 */ bne $v0, $at, .L800BE380
|
||||
/* 0BEF60 800BE360 00402825 */ move $a1, $v0
|
||||
/* 0BEF64 800BE364 946E0010 */ lhu $t6, 0x10($v1)
|
||||
/* 0BEF68 800BE368 94820016 */ lhu $v0, 0x16($a0)
|
||||
/* 0BEF6C 800BE36C 448E3000 */ mtc1 $t6, $f6
|
||||
/* 0BEF70 800BE370 00000000 */ nop
|
||||
/* 0BEF74 800BE374 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 0BEF78 800BE378 1000000B */ b .L800BE3A8
|
||||
/* 0BEF7C 800BE37C E4880010 */ swc1 $f8, 0x10($a0)
|
||||
.L800BE380:
|
||||
/* 0BEF80 800BE380 946F0010 */ lhu $t7, 0x10($v1)
|
||||
/* 0BEF84 800BE384 44852000 */ mtc1 $a1, $f4
|
||||
/* 0BEF88 800BE388 C4800010 */ lwc1 $f0, 0x10($a0)
|
||||
/* 0BEF8C 800BE38C 448F5000 */ mtc1 $t7, $f10
|
||||
/* 0BEF90 800BE390 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0BEF94 800BE394 468054A0 */ cvt.s.w $f18, $f10
|
||||
/* 0BEF98 800BE398 46009401 */ sub.s $f16, $f18, $f0
|
||||
/* 0BEF9C 800BE39C 46068203 */ div.s $f8, $f16, $f6
|
||||
/* 0BEFA0 800BE3A0 46080280 */ add.s $f10, $f0, $f8
|
||||
/* 0BEFA4 800BE3A4 E48A0010 */ swc1 $f10, 0x10($a0)
|
||||
.L800BE3A8:
|
||||
/* 0BEFA8 800BE3A8 2458FFFF */ addiu $t8, $v0, -1
|
||||
/* 0BEFAC 800BE3AC 10000010 */ b .L800BE3F0
|
||||
/* 0BEFB0 800BE3B0 A4980016 */ sh $t8, 0x16($a0)
|
||||
/* 0BEFB4 800BE3B4 C4920010 */ lwc1 $f18, 0x10($a0)
|
||||
.L800BE3B8:
|
||||
/* 0BEFB8 800BE3B8 94690010 */ lhu $t1, 0x10($v1)
|
||||
/* 0BEFBC 800BE3BC 4600910D */ trunc.w.s $f4, $f18
|
||||
/* 0BEFC0 800BE3C0 44082000 */ mfc1 $t0, $f4
|
||||
/* 0BEFC4 800BE3C4 00000000 */ nop
|
||||
/* 0BEFC8 800BE3C8 5109000A */ beql $t0, $t1, .L800BE3F4
|
||||
/* 0BEFCC 800BE3CC 44804000 */ mtc1 $zero, $f8
|
||||
/* 0BEFD0 800BE3D0 94620014 */ lhu $v0, 0x14($v1)
|
||||
/* 0BEFD4 800BE3D4 14400006 */ bnez $v0, .L800BE3F0
|
||||
/* 0BEFD8 800BE3D8 A4820016 */ sh $v0, 0x16($a0)
|
||||
/* 0BEFDC 800BE3DC 946A0010 */ lhu $t2, 0x10($v1)
|
||||
/* 0BEFE0 800BE3E0 448A8000 */ mtc1 $t2, $f16
|
||||
/* 0BEFE4 800BE3E4 00000000 */ nop
|
||||
/* 0BEFE8 800BE3E8 468081A0 */ cvt.s.w $f6, $f16
|
||||
/* 0BEFEC 800BE3EC E4860010 */ swc1 $f6, 0x10($a0)
|
||||
.L800BE3F0:
|
||||
/* 0BEFF0 800BE3F0 44804000 */ mtc1 $zero, $f8
|
||||
.L800BE3F4:
|
||||
/* 0BEFF4 800BE3F4 C48A000C */ lwc1 $f10, 0xc($a0)
|
||||
/* 0BEFF8 800BE3F8 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0BEFFC 800BE3FC 460A4032 */ c.eq.s $f8, $f10
|
||||
/* 0BF000 800BE400 00000000 */ nop
|
||||
/* 0BF004 800BE404 45000004 */ bc1f .L800BE418
|
||||
/* 0BF008 800BE408 00000000 */ nop
|
||||
/* 0BF00C 800BE40C 44810000 */ mtc1 $at, $f0
|
||||
/* 0BF010 800BE410 10000012 */ b .L800BE45C
|
||||
/* 0BF014 800BE414 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800BE418:
|
||||
/* 0BF018 800BE418 0C02F88B */ jal func_800BE22C
|
||||
/* 0BF01C 800BE41C AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 0BF020 800BE420 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0BF024 800BE424 44817000 */ mtc1 $at, $f14
|
||||
/* 0BF028 800BE428 8FA40018 */ lw $a0, 0x18($sp)
|
||||
/* 0BF02C 800BE42C 3C013980 */ li $at, 0x39800000 # 0.000244
|
||||
/* 0BF030 800BE430 44812000 */ mtc1 $at, $f4
|
||||
/* 0BF034 800BE434 C492000C */ lwc1 $f18, 0xc($a0)
|
||||
/* 0BF038 800BE438 3C01800F */ lui $at, %hi(gPitchBendFrequencyScale + 0x200)
|
||||
/* 0BF03C 800BE43C 00025880 */ sll $t3, $v0, 2
|
||||
/* 0BF040 800BE440 002B0821 */ addu $at, $at, $t3
|
||||
/* 0BF044 800BE444 46049082 */ mul.s $f2, $f18, $f4
|
||||
/* 0BF048 800BE448 C4305E20 */ lwc1 $f16, %lo(gPitchBendFrequencyScale + 0x200)($at)
|
||||
/* 0BF04C 800BE44C 460E8181 */ sub.s $f6, $f16, $f14
|
||||
/* 0BF050 800BE450 46023202 */ mul.s $f8, $f6, $f2
|
||||
/* 0BF054 800BE454 460E4000 */ add.s $f0, $f8, $f14
|
||||
.L800BE458:
|
||||
/* 0BF058 800BE458 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800BE45C:
|
||||
/* 0BF05C 800BE45C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 0BF060 800BE460 03E00008 */ jr $ra
|
||||
/* 0BF064 800BE464 00000000 */ nop
|
||||
|
||||
glabel func_800BE468
|
||||
/* 0BF068 800BE468 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 0BF06C 800BE46C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0BF070 800BE470 908E007C */ lbu $t6, 0x7c($a0)
|
||||
/* 0BF074 800BE474 00802825 */ move $a1, $a0
|
||||
/* 0BF078 800BE478 2484007C */ addiu $a0, $a0, 0x7c
|
||||
/* 0BF07C 800BE47C 51C00006 */ beql $t6, $zero, .L800BE498
|
||||
/* 0BF080 800BE480 90AF00A0 */ lbu $t7, 0xa0($a1)
|
||||
/* 0BF084 800BE484 0C02F856 */ jal func_800BE158
|
||||
/* 0BF088 800BE488 AFA50018 */ sw $a1, 0x18($sp)
|
||||
/* 0BF08C 800BE48C 8FA50018 */ lw $a1, 0x18($sp)
|
||||
/* 0BF090 800BE490 E4A00038 */ swc1 $f0, 0x38($a1)
|
||||
/* 0BF094 800BE494 90AF00A0 */ lbu $t7, 0xa0($a1)
|
||||
.L800BE498:
|
||||
/* 0BF098 800BE498 51E0000B */ beql $t7, $zero, .L800BE4C8
|
||||
/* 0BF09C 800BE49C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0BF0A0 800BE4A0 8CB80044 */ lw $t8, 0x44($a1)
|
||||
/* 0BF0A4 800BE4A4 2401FFFF */ li $at, -1
|
||||
/* 0BF0A8 800BE4A8 24A4008C */ addiu $a0, $a1, 0x8c
|
||||
/* 0BF0AC 800BE4AC 53010006 */ beql $t8, $at, .L800BE4C8
|
||||
/* 0BF0B0 800BE4B0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0BF0B4 800BE4B4 0C02F89C */ jal func_800BE270
|
||||
/* 0BF0B8 800BE4B8 AFA50018 */ sw $a1, 0x18($sp)
|
||||
/* 0BF0BC 800BE4BC 8FA50018 */ lw $a1, 0x18($sp)
|
||||
/* 0BF0C0 800BE4C0 E4A0003C */ swc1 $f0, 0x3c($a1)
|
||||
/* 0BF0C4 800BE4C4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L800BE4C8:
|
||||
/* 0BF0C8 800BE4C8 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 0BF0CC 800BE4CC 03E00008 */ jr $ra
|
||||
/* 0BF0D0 800BE4D0 00000000 */ nop
|
||||
|
||||
glabel func_800BE4D4
|
||||
/* 0BF0D4 800BE4D4 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0BF0D8 800BE4D8 44810000 */ mtc1 $at, $f0
|
||||
/* 0BF0DC 800BE4DC 240E0001 */ li $t6, 1
|
||||
/* 0BF0E0 800BE4E0 A08E00A0 */ sb $t6, 0xa0($a0)
|
||||
/* 0BF0E4 800BE4E4 AC800090 */ sw $zero, 0x90($a0)
|
||||
/* 0BF0E8 800BE4E8 3C0F800F */ lui $t7, %hi(gWaveSamples + 8) # $t7, 0x800f
|
||||
/* 0BF0EC 800BE4EC E480003C */ swc1 $f0, 0x3c($a0)
|
||||
/* 0BF0F0 800BE4F0 E4800038 */ swc1 $f0, 0x38($a0)
|
||||
/* 0BF0F4 800BE4F4 8DEF5C08 */ lw $t7, %lo(gWaveSamples + 8)($t7)
|
||||
/* 0BF0F8 800BE4F8 8C980044 */ lw $t8, 0x44($a0)
|
||||
/* 0BF0FC 800BE4FC 2483008C */ addiu $v1, $a0, 0x8c
|
||||
/* 0BF100 800BE500 AC8F0094 */ sw $t7, 0x94($a0)
|
||||
/* 0BF104 800BE504 8F19004C */ lw $t9, 0x4c($t8)
|
||||
/* 0BF108 800BE508 AC99008C */ sw $t9, 0x8c($a0)
|
||||
/* 0BF10C 800BE50C 97220016 */ lhu $v0, 0x16($t9)
|
||||
/* 0BF110 800BE510 14400009 */ bnez $v0, .L800BE538
|
||||
/* 0BF114 800BE514 A48200A4 */ sh $v0, 0xa4($a0)
|
||||
/* 0BF118 800BE518 2483008C */ addiu $v1, $a0, 0x8c
|
||||
/* 0BF11C 800BE51C 8C650000 */ lw $a1, ($v1)
|
||||
/* 0BF120 800BE520 94A90012 */ lhu $t1, 0x12($a1)
|
||||
/* 0BF124 800BE524 44892000 */ mtc1 $t1, $f4
|
||||
/* 0BF128 800BE528 00000000 */ nop
|
||||
/* 0BF12C 800BE52C 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0BF130 800BE530 10000007 */ b .L800BE550
|
||||
/* 0BF134 800BE534 E466000C */ swc1 $f6, 0xc($v1)
|
||||
.L800BE538:
|
||||
/* 0BF138 800BE538 8C650000 */ lw $a1, ($v1)
|
||||
/* 0BF13C 800BE53C 94AA000E */ lhu $t2, 0xe($a1)
|
||||
/* 0BF140 800BE540 448A4000 */ mtc1 $t2, $f8
|
||||
/* 0BF144 800BE544 00000000 */ nop
|
||||
/* 0BF148 800BE548 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 0BF14C 800BE54C E46A000C */ swc1 $f10, 0xc($v1)
|
||||
.L800BE550:
|
||||
/* 0BF150 800BE550 94A20014 */ lhu $v0, 0x14($a1)
|
||||
/* 0BF154 800BE554 14400007 */ bnez $v0, .L800BE574
|
||||
/* 0BF158 800BE558 A4620016 */ sh $v0, 0x16($v1)
|
||||
/* 0BF15C 800BE55C 94AB0010 */ lhu $t3, 0x10($a1)
|
||||
/* 0BF160 800BE560 448B8000 */ mtc1 $t3, $f16
|
||||
/* 0BF164 800BE564 00000000 */ nop
|
||||
/* 0BF168 800BE568 468084A0 */ cvt.s.w $f18, $f16
|
||||
/* 0BF16C 800BE56C 10000006 */ b .L800BE588
|
||||
/* 0BF170 800BE570 E4720010 */ swc1 $f18, 0x10($v1)
|
||||
.L800BE574:
|
||||
/* 0BF174 800BE574 94AC000C */ lhu $t4, 0xc($a1)
|
||||
/* 0BF178 800BE578 448C2000 */ mtc1 $t4, $f4
|
||||
/* 0BF17C 800BE57C 00000000 */ nop
|
||||
/* 0BF180 800BE580 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0BF184 800BE584 E4660010 */ swc1 $f6, 0x10($v1)
|
||||
.L800BE588:
|
||||
/* 0BF188 800BE588 94AD0018 */ lhu $t5, 0x18($a1)
|
||||
/* 0BF18C 800BE58C 24820030 */ addiu $v0, $a0, 0x30
|
||||
/* 0BF190 800BE590 A46D001A */ sh $t5, 0x1a($v1)
|
||||
/* 0BF194 800BE594 8C4E0014 */ lw $t6, 0x14($v0)
|
||||
/* 0BF198 800BE598 8DC10008 */ lw $at, 8($t6)
|
||||
/* 0BF19C 800BE59C AC41004C */ sw $at, 0x4c($v0)
|
||||
/* 0BF1A0 800BE5A0 8DD8000C */ lw $t8, 0xc($t6)
|
||||
/* 0BF1A4 800BE5A4 AC580050 */ sw $t8, 0x50($v0)
|
||||
/* 0BF1A8 800BE5A8 8DC10010 */ lw $at, 0x10($t6)
|
||||
/* 0BF1AC 800BE5AC AC410054 */ sw $at, 0x54($v0)
|
||||
/* 0BF1B0 800BE5B0 8DD80014 */ lw $t8, 0x14($t6)
|
||||
/* 0BF1B4 800BE5B4 03E00008 */ jr $ra
|
||||
/* 0BF1B8 800BE5B8 AC580058 */ sw $t8, 0x58($v0)
|
||||
|
||||
glabel func_800BE5BC
|
||||
/* 0BF1BC 800BE5BC AFA60008 */ sw $a2, 8($sp)
|
||||
/* 0BF1C0 800BE5C0 44800000 */ mtc1 $zero, $f0
|
||||
/* 0BF1C4 800BE5C4 A0800000 */ sb $zero, ($a0)
|
||||
/* 0BF1C8 800BE5C8 A0800001 */ sb $zero, 1($a0)
|
||||
/* 0BF1CC 800BE5CC A4800004 */ sh $zero, 4($a0)
|
||||
/* 0BF1D0 800BE5D0 AC850020 */ sw $a1, 0x20($a0)
|
||||
/* 0BF1D4 800BE5D4 E4800008 */ swc1 $f0, 8($a0)
|
||||
/* 0BF1D8 800BE5D8 03E00008 */ jr $ra
|
||||
/* 0BF1DC 800BE5DC E4800014 */ swc1 $f0, 0x14($a0)
|
||||
|
||||
glabel func_800BE5E0
|
||||
/* 0BF1E0 800BE5E0 90830001 */ lbu $v1, 1($a0)
|
||||
/* 0BF1E4 800BE5E4 90820000 */ lbu $v0, ($a0)
|
||||
/* 0BF1E8 800BE5E8 2C610009 */ sltiu $at, $v1, 9
|
||||
/* 0BF1EC 800BE5EC 1020009D */ beqz $at, .L800BE864
|
||||
/* 0BF1F0 800BE5F0 00602825 */ move $a1, $v1
|
||||
/* 0BF1F4 800BE5F4 00037080 */ sll $t6, $v1, 2
|
||||
/* 0BF1F8 800BE5F8 3C01800F */ lui $at, %hi(D_800F2EE0)
|
||||
/* 0BF1FC 800BE5FC 002E0821 */ addu $at, $at, $t6
|
||||
/* 0BF200 800BE600 8C2E2EE0 */ lw $t6, %lo(D_800F2EE0)($at)
|
||||
/* 0BF204 800BE604 01C00008 */ jr $t6
|
||||
/* 0BF208 800BE608 00000000 */ nop
|
||||
glabel L800BE60C
|
||||
/* 0BF20C 800BE60C 44800000 */ mtc1 $zero, $f0
|
||||
/* 0BF210 800BE610 03E00008 */ jr $ra
|
||||
/* 0BF214 800BE614 00000000 */ nop
|
||||
|
||||
glabel L800BE618
|
||||
/* 0BF218 800BE618 304F0040 */ andi $t7, $v0, 0x40
|
||||
/* 0BF21C 800BE61C 11E00003 */ beqz $t7, .L800BE62C
|
||||
/* 0BF220 800BE620 24180005 */ li $t8, 5
|
||||
/* 0BF224 800BE624 1000008F */ b .L800BE864
|
||||
/* 0BF228 800BE628 A0980001 */ sb $t8, 1($a0)
|
||||
.L800BE62C:
|
||||
glabel L800BE62C
|
||||
/* 0BF22C 800BE62C 24190003 */ li $t9, 3
|
||||
/* 0BF230 800BE630 A4800002 */ sh $zero, 2($a0)
|
||||
/* 0BF234 800BE634 A0990001 */ sb $t9, 1($a0)
|
||||
.L800BE638:
|
||||
glabel L800BE638
|
||||
/* 0BF238 800BE638 84890002 */ lh $t1, 2($a0)
|
||||
/* 0BF23C 800BE63C 8C880020 */ lw $t0, 0x20($a0)
|
||||
/* 0BF240 800BE640 2401FFFD */ li $at, -3
|
||||
/* 0BF244 800BE644 00095080 */ sll $t2, $t1, 2
|
||||
/* 0BF248 800BE648 010A1821 */ addu $v1, $t0, $t2
|
||||
/* 0BF24C 800BE64C 846B0000 */ lh $t3, ($v1)
|
||||
/* 0BF250 800BE650 A48B0004 */ sh $t3, 4($a0)
|
||||
/* 0BF254 800BE654 84860004 */ lh $a2, 4($a0)
|
||||
/* 0BF258 800BE658 10C10010 */ beq $a2, $at, .L800BE69C
|
||||
/* 0BF25C 800BE65C 00C02825 */ move $a1, $a2
|
||||
/* 0BF260 800BE660 2401FFFE */ li $at, -2
|
||||
/* 0BF264 800BE664 10C1000A */ beq $a2, $at, .L800BE690
|
||||
/* 0BF268 800BE668 2401FFFF */ li $at, -1
|
||||
/* 0BF26C 800BE66C 50C10006 */ beql $a2, $at, .L800BE688
|
||||
/* 0BF270 800BE670 240C0005 */ li $t4, 5
|
||||
/* 0BF274 800BE674 14C0000C */ bnez $a2, .L800BE6A8
|
||||
/* 0BF278 800BE678 28C10004 */ slti $at, $a2, 4
|
||||
/* 0BF27C 800BE67C 10000041 */ b .L800BE784
|
||||
/* 0BF280 800BE680 A0800001 */ sb $zero, 1($a0)
|
||||
/* 0BF284 800BE684 240C0005 */ li $t4, 5
|
||||
.L800BE688:
|
||||
/* 0BF288 800BE688 1000003E */ b .L800BE784
|
||||
/* 0BF28C 800BE68C A08C0001 */ sb $t4, 1($a0)
|
||||
.L800BE690:
|
||||
/* 0BF290 800BE690 846D0002 */ lh $t5, 2($v1)
|
||||
/* 0BF294 800BE694 1000FFE8 */ b .L800BE638
|
||||
/* 0BF298 800BE698 A48D0002 */ sh $t5, 2($a0)
|
||||
.L800BE69C:
|
||||
/* 0BF29C 800BE69C 240E0001 */ li $t6, 1
|
||||
/* 0BF2A0 800BE6A0 10000038 */ b .L800BE784
|
||||
/* 0BF2A4 800BE6A4 A08E0001 */ sb $t6, 1($a0)
|
||||
.L800BE6A8:
|
||||
/* 0BF2A8 800BE6A8 14200019 */ bnez $at, .L800BE710
|
||||
/* 0BF2AC 800BE6AC 3C03803B */ lui $v1, %hi(D_803B7088) # $v1, 0x803b
|
||||
/* 0BF2B0 800BE6B0 24637088 */ addiu $v1, %lo(D_803B7088) # addiu $v1, $v1, 0x7088
|
||||
/* 0BF2B4 800BE6B4 846F000C */ lh $t7, 0xc($v1)
|
||||
/* 0BF2B8 800BE6B8 84790000 */ lh $t9, ($v1)
|
||||
/* 0BF2BC 800BE6BC 00CF0019 */ multu $a2, $t7
|
||||
/* 0BF2C0 800BE6C0 0000C012 */ mflo $t8
|
||||
/* 0BF2C4 800BE6C4 00000000 */ nop
|
||||
/* 0BF2C8 800BE6C8 00000000 */ nop
|
||||
/* 0BF2CC 800BE6CC 0319001A */ div $zero, $t8, $t9
|
||||
/* 0BF2D0 800BE6D0 17200002 */ bnez $t9, .L800BE6DC
|
||||
/* 0BF2D4 800BE6D4 00000000 */ nop
|
||||
/* 0BF2D8 800BE6D8 0007000D */ break 7
|
||||
.L800BE6DC:
|
||||
/* 0BF2DC 800BE6DC 2401FFFF */ li $at, -1
|
||||
/* 0BF2E0 800BE6E0 17210004 */ bne $t9, $at, .L800BE6F4
|
||||
/* 0BF2E4 800BE6E4 3C018000 */ lui $at, 0x8000
|
||||
/* 0BF2E8 800BE6E8 17010002 */ bne $t8, $at, .L800BE6F4
|
||||
/* 0BF2EC 800BE6EC 00000000 */ nop
|
||||
/* 0BF2F0 800BE6F0 0006000D */ break 6
|
||||
.L800BE6F4:
|
||||
/* 0BF2F4 800BE6F4 00004812 */ mflo $t1
|
||||
/* 0BF2F8 800BE6F8 05210003 */ bgez $t1, .L800BE708
|
||||
/* 0BF2FC 800BE6FC 00094083 */ sra $t0, $t1, 2
|
||||
/* 0BF300 800BE700 25210003 */ addiu $at, $t1, 3
|
||||
/* 0BF304 800BE704 00014083 */ sra $t0, $at, 2
|
||||
.L800BE708:
|
||||
/* 0BF308 800BE708 A4880004 */ sh $t0, 4($a0)
|
||||
/* 0BF30C 800BE70C 84860004 */ lh $a2, 4($a0)
|
||||
.L800BE710:
|
||||
/* 0BF310 800BE710 14C00003 */ bnez $a2, .L800BE720
|
||||
/* 0BF314 800BE714 240A0001 */ li $t2, 1
|
||||
/* 0BF318 800BE718 A48A0004 */ sh $t2, 4($a0)
|
||||
/* 0BF31C 800BE71C 84860004 */ lh $a2, 4($a0)
|
||||
.L800BE720:
|
||||
/* 0BF320 800BE720 84830002 */ lh $v1, 2($a0)
|
||||
/* 0BF324 800BE724 8C8B0020 */ lw $t3, 0x20($a0)
|
||||
/* 0BF328 800BE728 3C01800F */ lui $at, %hi(D_800F2F04) # $at, 0x800f
|
||||
/* 0BF32C 800BE72C 00036080 */ sll $t4, $v1, 2
|
||||
/* 0BF330 800BE730 016C6821 */ addu $t5, $t3, $t4
|
||||
/* 0BF334 800BE734 85AE0002 */ lh $t6, 2($t5)
|
||||
/* 0BF338 800BE738 C4282F04 */ lwc1 $f8, %lo(D_800F2F04)($at)
|
||||
/* 0BF33C 800BE73C 240F0004 */ li $t7, 4
|
||||
/* 0BF340 800BE740 448E2000 */ mtc1 $t6, $f4
|
||||
/* 0BF344 800BE744 24780001 */ addiu $t8, $v1, 1
|
||||
/* 0BF348 800BE748 A08F0001 */ sb $t7, 1($a0)
|
||||
/* 0BF34C 800BE74C 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0BF350 800BE750 C4840014 */ lwc1 $f4, 0x14($a0)
|
||||
/* 0BF354 800BE754 A4980002 */ sh $t8, 2($a0)
|
||||
/* 0BF358 800BE758 46083283 */ div.s $f10, $f6, $f8
|
||||
/* 0BF35C 800BE75C 44864000 */ mtc1 $a2, $f8
|
||||
/* 0BF360 800BE760 E48A0018 */ swc1 $f10, 0x18($a0)
|
||||
/* 0BF364 800BE764 C4800018 */ lwc1 $f0, 0x18($a0)
|
||||
/* 0BF368 800BE768 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 0BF36C 800BE76C 46000402 */ mul.s $f16, $f0, $f0
|
||||
/* 0BF370 800BE770 E4900018 */ swc1 $f16, 0x18($a0)
|
||||
/* 0BF374 800BE774 C4920018 */ lwc1 $f18, 0x18($a0)
|
||||
/* 0BF378 800BE778 46049181 */ sub.s $f6, $f18, $f4
|
||||
/* 0BF37C 800BE77C 460A3403 */ div.s $f16, $f6, $f10
|
||||
/* 0BF380 800BE780 E490000C */ swc1 $f16, 0xc($a0)
|
||||
.L800BE784:
|
||||
/* 0BF384 800BE784 90990001 */ lbu $t9, 1($a0)
|
||||
/* 0BF388 800BE788 24010004 */ li $at, 4
|
||||
/* 0BF38C 800BE78C 57210036 */ bnel $t9, $at, .L800BE868
|
||||
/* 0BF390 800BE790 44806000 */ mtc1 $zero, $f12
|
||||
glabel L800BE794
|
||||
/* 0BF394 800BE794 84890004 */ lh $t1, 4($a0)
|
||||
/* 0BF398 800BE798 C4920014 */ lwc1 $f18, 0x14($a0)
|
||||
/* 0BF39C 800BE79C C484000C */ lwc1 $f4, 0xc($a0)
|
||||
/* 0BF3A0 800BE7A0 2528FFFF */ addiu $t0, $t1, -1
|
||||
/* 0BF3A4 800BE7A4 A4880004 */ sh $t0, 4($a0)
|
||||
/* 0BF3A8 800BE7A8 46049200 */ add.s $f8, $f18, $f4
|
||||
/* 0BF3AC 800BE7AC 848A0004 */ lh $t2, 4($a0)
|
||||
/* 0BF3B0 800BE7B0 240B0003 */ li $t3, 3
|
||||
/* 0BF3B4 800BE7B4 1D40002B */ bgtz $t2, .L800BE864
|
||||
/* 0BF3B8 800BE7B8 E4880014 */ swc1 $f8, 0x14($a0)
|
||||
/* 0BF3BC 800BE7BC 10000029 */ b .L800BE864
|
||||
/* 0BF3C0 800BE7C0 A08B0001 */ sb $t3, 1($a0)
|
||||
glabel L800BE7C4
|
||||
/* 0BF3C4 800BE7C4 44806000 */ mtc1 $zero, $f12
|
||||
/* 0BF3C8 800BE7C8 C4800008 */ lwc1 $f0, 8($a0)
|
||||
/* 0BF3CC 800BE7CC C4860014 */ lwc1 $f6, 0x14($a0)
|
||||
/* 0BF3D0 800BE7D0 C48A0010 */ lwc1 $f10, 0x10($a0)
|
||||
/* 0BF3D4 800BE7D4 46006032 */ c.eq.s $f12, $f0
|
||||
/* 0BF3D8 800BE7D8 24010006 */ li $at, 6
|
||||
/* 0BF3DC 800BE7DC 460A3401 */ sub.s $f16, $f6, $f10
|
||||
/* 0BF3E0 800BE7E0 4501000E */ bc1t .L800BE81C
|
||||
/* 0BF3E4 800BE7E4 E4900014 */ swc1 $f16, 0x14($a0)
|
||||
/* 0BF3E8 800BE7E8 14A1000C */ bne $a1, $at, .L800BE81C
|
||||
/* 0BF3EC 800BE7EC 00000000 */ nop
|
||||
/* 0BF3F0 800BE7F0 C4920014 */ lwc1 $f18, 0x14($a0)
|
||||
/* 0BF3F4 800BE7F4 240C0080 */ li $t4, 128
|
||||
/* 0BF3F8 800BE7F8 240D0008 */ li $t5, 8
|
||||
/* 0BF3FC 800BE7FC 4600903C */ c.lt.s $f18, $f0
|
||||
/* 0BF400 800BE800 00000000 */ nop
|
||||
/* 0BF404 800BE804 45020018 */ bc1fl .L800BE868
|
||||
/* 0BF408 800BE808 44806000 */ mtc1 $zero, $f12
|
||||
/* 0BF40C 800BE80C E4800014 */ swc1 $f0, 0x14($a0)
|
||||
/* 0BF410 800BE810 A48C0004 */ sh $t4, 4($a0)
|
||||
/* 0BF414 800BE814 10000013 */ b .L800BE864
|
||||
/* 0BF418 800BE818 A08D0001 */ sb $t5, 1($a0)
|
||||
.L800BE81C:
|
||||
/* 0BF41C 800BE81C 3C01800F */ lui $at, %hi(D_800F2F08) # $at, 0x800f
|
||||
/* 0BF420 800BE820 C4282F08 */ lwc1 $f8, %lo(D_800F2F08)($at)
|
||||
/* 0BF424 800BE824 C4840014 */ lwc1 $f4, 0x14($a0)
|
||||
/* 0BF428 800BE828 4608203C */ c.lt.s $f4, $f8
|
||||
/* 0BF42C 800BE82C 00000000 */ nop
|
||||
/* 0BF430 800BE830 4502000D */ bc1fl .L800BE868
|
||||
/* 0BF434 800BE834 44806000 */ mtc1 $zero, $f12
|
||||
/* 0BF438 800BE838 E48C0014 */ swc1 $f12, 0x14($a0)
|
||||
/* 0BF43C 800BE83C 10000009 */ b .L800BE864
|
||||
/* 0BF440 800BE840 A0800001 */ sb $zero, 1($a0)
|
||||
glabel L800BE844
|
||||
/* 0BF444 800BE844 848E0004 */ lh $t6, 4($a0)
|
||||
/* 0BF448 800BE848 24190007 */ li $t9, 7
|
||||
/* 0BF44C 800BE84C 25CFFFFF */ addiu $t7, $t6, -1
|
||||
/* 0BF450 800BE850 A48F0004 */ sh $t7, 4($a0)
|
||||
/* 0BF454 800BE854 84980004 */ lh $t8, 4($a0)
|
||||
/* 0BF458 800BE858 57000003 */ bnel $t8, $zero, .L800BE868
|
||||
/* 0BF45C 800BE85C 44806000 */ mtc1 $zero, $f12
|
||||
/* 0BF460 800BE860 A0990001 */ sb $t9, 1($a0)
|
||||
.L800BE864:
|
||||
glabel L800BE864
|
||||
/* 0BF464 800BE864 44806000 */ mtc1 $zero, $f12
|
||||
.L800BE868:
|
||||
/* 0BF468 800BE868 30490020 */ andi $t1, $v0, 0x20
|
||||
/* 0BF46C 800BE86C 11200005 */ beqz $t1, .L800BE884
|
||||
/* 0BF470 800BE870 00401825 */ move $v1, $v0
|
||||
/* 0BF474 800BE874 24080006 */ li $t0, 6
|
||||
/* 0BF478 800BE878 304AFFDF */ andi $t2, $v0, 0xffdf
|
||||
/* 0BF47C 800BE87C A0880001 */ sb $t0, 1($a0)
|
||||
/* 0BF480 800BE880 A08A0000 */ sb $t2, ($a0)
|
||||
.L800BE884:
|
||||
/* 0BF484 800BE884 306B0010 */ andi $t3, $v1, 0x10
|
||||
/* 0BF488 800BE888 11600004 */ beqz $t3, .L800BE89C
|
||||
/* 0BF48C 800BE88C 240C0007 */ li $t4, 7
|
||||
/* 0BF490 800BE890 306DFFEF */ andi $t5, $v1, 0xffef
|
||||
/* 0BF494 800BE894 A08C0001 */ sb $t4, 1($a0)
|
||||
/* 0BF498 800BE898 A08D0000 */ sb $t5, ($a0)
|
||||
.L800BE89C:
|
||||
/* 0BF49C 800BE89C C4820014 */ lwc1 $f2, 0x14($a0)
|
||||
/* 0BF4A0 800BE8A0 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 0BF4A4 800BE8A4 460C103C */ c.lt.s $f2, $f12
|
||||
/* 0BF4A8 800BE8A8 00000000 */ nop
|
||||
/* 0BF4AC 800BE8AC 45020004 */ bc1fl .L800BE8C0
|
||||
/* 0BF4B0 800BE8B0 44816000 */ mtc1 $at, $f12
|
||||
/* 0BF4B4 800BE8B4 03E00008 */ jr $ra
|
||||
/* 0BF4B8 800BE8B8 46006006 */ mov.s $f0, $f12
|
||||
|
||||
/* 0BF4BC 800BE8BC 44816000 */ mtc1 $at, $f12
|
||||
.L800BE8C0:
|
||||
/* 0BF4C0 800BE8C0 00000000 */ nop
|
||||
/* 0BF4C4 800BE8C4 4602603C */ c.lt.s $f12, $f2
|
||||
/* 0BF4C8 800BE8C8 00000000 */ nop
|
||||
/* 0BF4CC 800BE8CC 45020004 */ bc1fl .L800BE8E0
|
||||
/* 0BF4D0 800BE8D0 46001006 */ mov.s $f0, $f2
|
||||
/* 0BF4D4 800BE8D4 03E00008 */ jr $ra
|
||||
/* 0BF4D8 800BE8D8 46006006 */ mov.s $f0, $f12
|
||||
|
||||
/* 0BF4DC 800BE8DC 46001006 */ mov.s $f0, $f2
|
||||
.L800BE8E0:
|
||||
/* 0BF4E0 800BE8E0 03E00008 */ jr $ra
|
||||
/* 0BF4E4 800BE8E4 00000000 */ nop
|
||||
|
||||
/* 0BF4E8 800BE8E8 00000000 */ nop
|
||||
/* 0BF4EC 800BE8EC 00000000 */ nop
|
||||
-11130
File diff suppressed because it is too large
Load Diff
-2048
File diff suppressed because it is too large
Load Diff
-1915
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,874 +0,0 @@
|
||||
# Mario Kart 64 (U) disassembly and split file
|
||||
# generated by n64split v0.4a - N64 ROM splitter
|
||||
|
||||
# assembler directives
|
||||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
.set gp=64
|
||||
|
||||
.include "macros.inc"
|
||||
|
||||
.section .text, "ax"
|
||||
|
||||
glabel create_next_audio_frame_task
|
||||
/* 0CBF30 800CB330 3C03803B */ lui $v1, %hi(D_803B70B8) # $v1, 0x803b
|
||||
/* 0CBF34 800CB334 246370B8 */ addiu $v1, %lo(D_803B70B8) # addiu $v1, $v1, 0x70b8
|
||||
/* 0CBF38 800CB338 8C620000 */ lw $v0, ($v1)
|
||||
/* 0CBF3C 800CB33C 3C18803B */ lui $t8, %hi(D_803B7088) # $t8, 0x803b
|
||||
/* 0CBF40 800CB340 27BDFF88 */ addiu $sp, $sp, -0x78
|
||||
/* 0CBF44 800CB344 244E0001 */ addiu $t6, $v0, 1
|
||||
/* 0CBF48 800CB348 AC6E0000 */ sw $t6, ($v1)
|
||||
/* 0CBF4C 800CB34C 8C6F0000 */ lw $t7, ($v1)
|
||||
/* 0CBF50 800CB350 87187088 */ lh $t8, %lo(D_803B7088)($t8)
|
||||
/* 0CBF54 800CB354 AFBE0030 */ sw $fp, 0x30($sp)
|
||||
/* 0CBF58 800CB358 03A0F025 */ move $fp, $sp
|
||||
/* 0CBF5C 800CB35C 01F8001A */ div $zero, $t7, $t8
|
||||
/* 0CBF60 800CB360 0000C810 */ mfhi $t9
|
||||
/* 0CBF64 800CB364 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 0CBF68 800CB368 AFB2002C */ sw $s2, 0x2c($sp)
|
||||
/* 0CBF6C 800CB36C AFB10028 */ sw $s1, 0x28($sp)
|
||||
/* 0CBF70 800CB370 AFB00024 */ sw $s0, 0x24($sp)
|
||||
/* 0CBF74 800CB374 17000002 */ bnez $t8, .L800CB380
|
||||
/* 0CBF78 800CB378 00000000 */ nop
|
||||
/* 0CBF7C 800CB37C 0007000D */ break 7
|
||||
.L800CB380:
|
||||
/* 0CBF80 800CB380 2401FFFF */ li $at, -1
|
||||
/* 0CBF84 800CB384 17010004 */ bne $t8, $at, .L800CB398
|
||||
/* 0CBF88 800CB388 3C018000 */ lui $at, 0x8000
|
||||
/* 0CBF8C 800CB38C 15E10002 */ bne $t7, $at, .L800CB398
|
||||
/* 0CBF90 800CB390 00000000 */ nop
|
||||
/* 0CBF94 800CB394 0006000D */ break 6
|
||||
.L800CB398:
|
||||
/* 0CBF98 800CB398 3C04800F */ lui $a0, %hi(D_800EA3A8) # $a0, 0x800f
|
||||
/* 0CBF9C 800CB39C 13200003 */ beqz $t9, .L800CB3AC
|
||||
/* 0CBFA0 800CB3A0 00003025 */ move $a2, $zero
|
||||
/* 0CBFA4 800CB3A4 10000114 */ b .L800CB7F8
|
||||
/* 0CBFA8 800CB3A8 00001025 */ move $v0, $zero
|
||||
.L800CB3AC:
|
||||
/* 0CBFAC 800CB3AC 8C84A3A8 */ lw $a0, %lo(D_800EA3A8)($a0)
|
||||
/* 0CBFB0 800CB3B0 0C033630 */ jal osSendMesg
|
||||
/* 0CBFB4 800CB3B4 8C650000 */ lw $a1, ($v1)
|
||||
/* 0CBFB8 800CB3B8 24030003 */ li $v1, 3
|
||||
/* 0CBFBC 800CB3BC 3C04803B */ lui $a0, %hi(D_803B70C4) # $a0, 0x803b
|
||||
/* 0CBFC0 800CB3C0 248470C4 */ addiu $a0, %lo(D_803B70C4) # addiu $a0, $a0, 0x70c4
|
||||
/* 0CBFC4 800CB3C4 8C8A0000 */ lw $t2, ($a0)
|
||||
/* 0CBFC8 800CB3C8 3C05803B */ lui $a1, %hi(D_803B70C0) # $a1, 0x803b
|
||||
/* 0CBFCC 800CB3CC 24A570C0 */ addiu $a1, %lo(D_803B70C0) # addiu $a1, $a1, 0x70c0
|
||||
/* 0CBFD0 800CB3D0 254B0001 */ addiu $t3, $t2, 1
|
||||
/* 0CBFD4 800CB3D4 0163001A */ div $zero, $t3, $v1
|
||||
/* 0CBFD8 800CB3D8 00006810 */ mfhi $t5
|
||||
/* 0CBFDC 800CB3DC 25AF0001 */ addiu $t7, $t5, 1
|
||||
/* 0CBFE0 800CB3E0 01606025 */ move $t4, $t3
|
||||
/* 0CBFE4 800CB3E4 01E3001A */ div $zero, $t7, $v1
|
||||
/* 0CBFE8 800CB3E8 8CA80000 */ lw $t0, ($a1)
|
||||
/* 0CBFEC 800CB3EC AC8B0000 */ sw $t3, ($a0)
|
||||
/* 0CBFF0 800CB3F0 00008010 */ mfhi $s0
|
||||
/* 0CBFF4 800CB3F4 39090001 */ xori $t1, $t0, 1
|
||||
/* 0CBFF8 800CB3F8 ACA90000 */ sw $t1, ($a1)
|
||||
/* 0CBFFC 800CB3FC 14600002 */ bnez $v1, .L800CB408
|
||||
/* 0CC000 800CB400 00000000 */ nop
|
||||
/* 0CC004 800CB404 0007000D */ break 7
|
||||
.L800CB408:
|
||||
/* 0CC008 800CB408 2401FFFF */ li $at, -1
|
||||
/* 0CC00C 800CB40C 14610004 */ bne $v1, $at, .L800CB420
|
||||
/* 0CC010 800CB410 3C018000 */ lui $at, 0x8000
|
||||
/* 0CC014 800CB414 15810002 */ bne $t4, $at, .L800CB420
|
||||
/* 0CC018 800CB418 00000000 */ nop
|
||||
/* 0CC01C 800CB41C 0006000D */ break 6
|
||||
.L800CB420:
|
||||
/* 0CC020 800CB420 AC8D0000 */ sw $t5, ($a0)
|
||||
/* 0CC024 800CB424 01A07025 */ move $t6, $t5
|
||||
/* 0CC028 800CB428 14600002 */ bnez $v1, .L800CB434
|
||||
/* 0CC02C 800CB42C 00000000 */ nop
|
||||
/* 0CC030 800CB430 0007000D */ break 7
|
||||
.L800CB434:
|
||||
/* 0CC034 800CB434 2401FFFF */ li $at, -1
|
||||
/* 0CC038 800CB438 14610004 */ bne $v1, $at, .L800CB44C
|
||||
/* 0CC03C 800CB43C 3C018000 */ lui $at, 0x8000
|
||||
/* 0CC040 800CB440 15E10002 */ bne $t7, $at, .L800CB44C
|
||||
/* 0CC044 800CB444 00000000 */ nop
|
||||
/* 0CC048 800CB448 0006000D */ break 6
|
||||
.L800CB44C:
|
||||
/* 0CC04C 800CB44C 0C034438 */ jal osAiGetLength
|
||||
/* 0CC050 800CB450 00000000 */ nop
|
||||
/* 0CC054 800CB454 0002C082 */ srl $t8, $v0, 2
|
||||
/* 0CC058 800CB458 0010C840 */ sll $t9, $s0, 1
|
||||
/* 0CC05C 800CB45C 3C03803B */ lui $v1, %hi(D_803B718C) # 0x803b
|
||||
/* 0CC060 800CB460 AFD80074 */ sw $t8, 0x74($fp)
|
||||
/* 0CC064 800CB464 00791821 */ addu $v1, $v1, $t9
|
||||
/* 0CC068 800CB468 8463718C */ lh $v1, %lo(D_803B718C)($v1) # 0x718c($v1)
|
||||
/* 0CC06C 800CB46C 00104080 */ sll $t0, $s0, 2
|
||||
/* 0CC070 800CB470 3C04803B */ lui $a0, %hi(D_803B7180) # 0x803b
|
||||
/* 0CC074 800CB474 10600004 */ beqz $v1, .L800CB488
|
||||
/* 0CC078 800CB478 00882021 */ addu $a0, $a0, $t0
|
||||
/* 0CC07C 800CB47C 8C847180 */ lw $a0, %lo(D_803B7180)($a0) # 0x7180($a0)
|
||||
/* 0CC080 800CB480 0C03443C */ jal osAiSetNextBuffer
|
||||
/* 0CC084 800CB484 00032880 */ sll $a1, $v1, 2
|
||||
.L800CB488:
|
||||
/* 0CC088 800CB488 3C02803B */ lui $v0, %hi(D_803B70BC) # $v0, 0x803b
|
||||
/* 0CC08C 800CB48C 8C5170BC */ lw $s1, %lo(D_803B70BC)($v0)
|
||||
/* 0CC090 800CB490 3C12803B */ lui $s2, %hi(D_803B6008) # $s2, 0x803b
|
||||
/* 0CC094 800CB494 26526008 */ addiu $s2, %lo(D_803B6008) # addiu $s2, $s2, 0x6008
|
||||
/* 0CC098 800CB498 1A20000D */ blez $s1, .L800CB4D0
|
||||
/* 0CC09C 800CB49C 00008025 */ move $s0, $zero
|
||||
/* 0CC0A0 800CB4A0 02402025 */ move $a0, $s2
|
||||
.L800CB4A4:
|
||||
/* 0CC0A4 800CB4A4 00002825 */ move $a1, $zero
|
||||
/* 0CC0A8 800CB4A8 0C0335D4 */ jal osRecvMesg
|
||||
/* 0CC0AC 800CB4AC 00003025 */ move $a2, $zero
|
||||
/* 0CC0B0 800CB4B0 14400002 */ bnez $v0, .L800CB4BC
|
||||
/* 0CC0B4 800CB4B4 3C09803B */ lui $t1, %hi(D_803B70BC) # $t1, 0x803b
|
||||
/* 0CC0B8 800CB4B8 2631FFFF */ addiu $s1, $s1, -1
|
||||
.L800CB4BC:
|
||||
/* 0CC0BC 800CB4BC 8D2970BC */ lw $t1, %lo(D_803B70BC)($t1)
|
||||
/* 0CC0C0 800CB4C0 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0CC0C4 800CB4C4 0209082A */ slt $at, $s0, $t1
|
||||
/* 0CC0C8 800CB4C8 5420FFF6 */ bnel $at, $zero, .L800CB4A4
|
||||
/* 0CC0CC 800CB4CC 02402025 */ move $a0, $s2
|
||||
.L800CB4D0:
|
||||
/* 0CC0D0 800CB4D0 3C12803B */ lui $s2, %hi(D_803B6008) # $s2, 0x803b
|
||||
/* 0CC0D4 800CB4D4 1220000A */ beqz $s1, .L800CB500
|
||||
/* 0CC0D8 800CB4D8 26526008 */ addiu $s2, %lo(D_803B6008) # addiu $s2, $s2, 0x6008
|
||||
/* 0CC0DC 800CB4DC 1A200008 */ blez $s1, .L800CB500
|
||||
/* 0CC0E0 800CB4E0 00008025 */ move $s0, $zero
|
||||
/* 0CC0E4 800CB4E4 02402025 */ move $a0, $s2
|
||||
.L800CB4E8:
|
||||
/* 0CC0E8 800CB4E8 00002825 */ move $a1, $zero
|
||||
/* 0CC0EC 800CB4EC 0C0335D4 */ jal osRecvMesg
|
||||
/* 0CC0F0 800CB4F0 24060001 */ li $a2, 1
|
||||
/* 0CC0F4 800CB4F4 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0CC0F8 800CB4F8 5611FFFB */ bnel $s0, $s1, .L800CB4E8
|
||||
/* 0CC0FC 800CB4FC 02402025 */ move $a0, $s2
|
||||
.L800CB500:
|
||||
/* 0CC100 800CB500 8E510008 */ lw $s1, 8($s2)
|
||||
/* 0CC104 800CB504 1220000A */ beqz $s1, .L800CB530
|
||||
/* 0CC108 800CB508 00000000 */ nop
|
||||
/* 0CC10C 800CB50C 1A200008 */ blez $s1, .L800CB530
|
||||
/* 0CC110 800CB510 00008025 */ move $s0, $zero
|
||||
/* 0CC114 800CB514 02402025 */ move $a0, $s2
|
||||
.L800CB518:
|
||||
/* 0CC118 800CB518 00002825 */ move $a1, $zero
|
||||
/* 0CC11C 800CB51C 0C0335D4 */ jal osRecvMesg
|
||||
/* 0CC120 800CB520 00003025 */ move $a2, $zero
|
||||
/* 0CC124 800CB524 26100001 */ addiu $s0, $s0, 1
|
||||
/* 0CC128 800CB528 5611FFFB */ bnel $s0, $s1, .L800CB518
|
||||
/* 0CC12C 800CB52C 02402025 */ move $a0, $s2
|
||||
.L800CB530:
|
||||
/* 0CC130 800CB530 3C01803B */ lui $at, %hi(D_803B70BC) # $at, 0x803b
|
||||
/* 0CC134 800CB534 0C02EB01 */ jal func_800BAC04
|
||||
/* 0CC138 800CB538 AC2070BC */ sw $zero, %lo(D_803B70BC)($at)
|
||||
/* 0CC13C 800CB53C 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f
|
||||
/* 0CC140 800CB540 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0)
|
||||
/* 0CC144 800CB544 27C50058 */ addiu $a1, $fp, 0x58
|
||||
/* 0CC148 800CB548 0C0335D4 */ jal osRecvMesg
|
||||
/* 0CC14C 800CB54C 00003025 */ move $a2, $zero
|
||||
/* 0CC150 800CB550 2401FFFF */ li $at, -1
|
||||
/* 0CC154 800CB554 10410007 */ beq $v0, $at, .L800CB574
|
||||
/* 0CC158 800CB558 3C10803B */ lui $s0, %hi(D_803B0500) # $s0, 0x803b
|
||||
/* 0CC15C 800CB55C 8FCA0058 */ lw $t2, 0x58($fp)
|
||||
/* 0CC160 800CB560 3C01803B */ lui $at, %hi(D_803B0501) # $at, 0x803b
|
||||
/* 0CC164 800CB564 26100500 */ addiu $s0, %lo(D_803B0500) # addiu $s0, $s0, 0x500
|
||||
/* 0CC168 800CB568 240B0005 */ li $t3, 5
|
||||
/* 0CC16C 800CB56C A02A0501 */ sb $t2, %lo(D_803B0501)($at)
|
||||
/* 0CC170 800CB570 A20B0000 */ sb $t3, ($s0)
|
||||
.L800CB574:
|
||||
/* 0CC174 800CB574 3C10803B */ lui $s0, %hi(D_803B0500) # $s0, 0x803b
|
||||
/* 0CC178 800CB578 26100500 */ addiu $s0, %lo(D_803B0500) # addiu $s0, $s0, 0x500
|
||||
/* 0CC17C 800CB57C 920C0000 */ lbu $t4, ($s0)
|
||||
/* 0CC180 800CB580 1180000F */ beqz $t4, .L800CB5C0
|
||||
/* 0CC184 800CB584 00000000 */ nop
|
||||
/* 0CC188 800CB588 0C02E803 */ jal func_800BA00C
|
||||
/* 0CC18C 800CB58C 00000000 */ nop
|
||||
/* 0CC190 800CB590 1440000B */ bnez $v0, .L800CB5C0
|
||||
/* 0CC194 800CB594 00000000 */ nop
|
||||
/* 0CC198 800CB598 920D0000 */ lbu $t5, ($s0)
|
||||
/* 0CC19C 800CB59C 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f
|
||||
/* 0CC1A0 800CB5A0 3C05803B */ lui $a1, %hi(D_803B0501) # $a1, 0x803b
|
||||
/* 0CC1A4 800CB5A4 15A00004 */ bnez $t5, .L800CB5B8
|
||||
/* 0CC1A8 800CB5A8 00003025 */ move $a2, $zero
|
||||
/* 0CC1AC 800CB5AC 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0)
|
||||
/* 0CC1B0 800CB5B0 0C033630 */ jal osSendMesg
|
||||
/* 0CC1B4 800CB5B4 90A50501 */ lbu $a1, %lo(D_803B0501)($a1)
|
||||
.L800CB5B8:
|
||||
/* 0CC1B8 800CB5B8 1000008F */ b .L800CB7F8
|
||||
/* 0CC1BC 800CB5BC 00001025 */ move $v0, $zero
|
||||
.L800CB5C0:
|
||||
/* 0CC1C0 800CB5C0 3C02803B */ lui $v0, %hi(D_803B70C0) # $v0, 0x803b
|
||||
/* 0CC1C4 800CB5C4 8C4270C0 */ lw $v0, %lo(D_803B70C0)($v0)
|
||||
/* 0CC1C8 800CB5C8 3C0F803B */ lui $t7, %hi(D_803B70D8) # $t7, 0x803b
|
||||
/* 0CC1CC 800CB5CC 3C12803B */ lui $s2, %hi(D_803B70D4) # $s2, 0x803b
|
||||
/* 0CC1D0 800CB5D0 00027080 */ sll $t6, $v0, 2
|
||||
/* 0CC1D4 800CB5D4 01C27021 */ addu $t6, $t6, $v0
|
||||
/* 0CC1D8 800CB5D8 000E7100 */ sll $t6, $t6, 4
|
||||
/* 0CC1DC 800CB5DC 25EF70D8 */ addiu $t7, %lo(D_803B70D8) # addiu $t7, $t7, 0x70d8
|
||||
/* 0CC1E0 800CB5E0 265270D4 */ addiu $s2, %lo(D_803B70D4) # addiu $s2, $s2, 0x70d4
|
||||
/* 0CC1E4 800CB5E4 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 0CC1E8 800CB5E8 AE580000 */ sw $t8, ($s2)
|
||||
/* 0CC1EC 800CB5EC 3C08803B */ lui $t0, %hi(D_803B70C8) # 0x803b
|
||||
/* 0CC1F0 800CB5F0 3C10803B */ lui $s0, %hi(D_803B70C4) # $s0, 0x803b
|
||||
/* 0CC1F4 800CB5F4 0002C880 */ sll $t9, $v0, 2
|
||||
/* 0CC1F8 800CB5F8 8E1070C4 */ lw $s0, %lo(D_803B70C4)($s0)
|
||||
/* 0CC1FC 800CB5FC 01194021 */ addu $t0, $t0, $t9
|
||||
/* 0CC200 800CB600 8D0870C8 */ lw $t0, %lo(D_803B70C8)($t0) # 0x70c8($t0)
|
||||
/* 0CC204 800CB604 3C0A803B */ lui $t2, %hi(D_803B7180) # $t2, 0x803b
|
||||
/* 0CC208 800CB608 3C01803B */ lui $at, %hi(D_803B70D0) # $at, 0x803b
|
||||
/* 0CC20C 800CB60C 254A7180 */ addiu $t2, %lo(D_803B7180) # addiu $t2, $t2, 0x7180
|
||||
/* 0CC210 800CB610 00104880 */ sll $t1, $s0, 2
|
||||
/* 0CC214 800CB614 012A3821 */ addu $a3, $t1, $t2
|
||||
/* 0CC218 800CB618 AC2870D0 */ sw $t0, %lo(D_803B70D0)($at)
|
||||
/* 0CC21C 800CB61C 8CEB0000 */ lw $t3, ($a3)
|
||||
/* 0CC220 800CB620 3C05803B */ lui $a1, %hi(D_803B7088) # $a1, 0x803b
|
||||
/* 0CC224 800CB624 24A57088 */ addiu $a1, %lo(D_803B7088) # addiu $a1, $a1, 0x7088
|
||||
/* 0CC228 800CB628 AFCB0060 */ sw $t3, 0x60($fp)
|
||||
/* 0CC22C 800CB62C 84AE0006 */ lh $t6, 6($a1)
|
||||
/* 0CC230 800CB630 8FCF0074 */ lw $t7, 0x74($fp)
|
||||
/* 0CC234 800CB634 3C0D803B */ lui $t5, %hi(D_803B718C) # $t5, 0x803b
|
||||
/* 0CC238 800CB638 25AD718C */ addiu $t5, %lo(D_803B718C) # addiu $t5, $t5, 0x718c
|
||||
/* 0CC23C 800CB63C 01CFC023 */ subu $t8, $t6, $t7
|
||||
/* 0CC240 800CB640 27190040 */ addiu $t9, $t8, 0x40
|
||||
/* 0CC244 800CB644 3328FFF0 */ andi $t0, $t9, 0xfff0
|
||||
/* 0CC248 800CB648 00106040 */ sll $t4, $s0, 1
|
||||
/* 0CC24C 800CB64C 018D8821 */ addu $s1, $t4, $t5
|
||||
/* 0CC250 800CB650 25090010 */ addiu $t1, $t0, 0x10
|
||||
/* 0CC254 800CB654 A6290000 */ sh $t1, ($s1)
|
||||
/* 0CC258 800CB658 86230000 */ lh $v1, ($s1)
|
||||
/* 0CC25C 800CB65C 84A4000A */ lh $a0, 0xa($a1)
|
||||
/* 0CC260 800CB660 00003025 */ move $a2, $zero
|
||||
/* 0CC264 800CB664 0064082A */ slt $at, $v1, $a0
|
||||
/* 0CC268 800CB668 50200004 */ beql $at, $zero, .L800CB67C
|
||||
/* 0CC26C 800CB66C 84A20008 */ lh $v0, 8($a1)
|
||||
/* 0CC270 800CB670 A6240000 */ sh $a0, ($s1)
|
||||
/* 0CC274 800CB674 86230000 */ lh $v1, ($s1)
|
||||
/* 0CC278 800CB678 84A20008 */ lh $v0, 8($a1)
|
||||
.L800CB67C:
|
||||
/* 0CC27C 800CB67C 27C50054 */ addiu $a1, $fp, 0x54
|
||||
/* 0CC280 800CB680 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f
|
||||
/* 0CC284 800CB684 0043082A */ slt $at, $v0, $v1
|
||||
/* 0CC288 800CB688 10200002 */ beqz $at, .L800CB694
|
||||
/* 0CC28C 800CB68C 00000000 */ nop
|
||||
/* 0CC290 800CB690 A6220000 */ sh $v0, ($s1)
|
||||
.L800CB694:
|
||||
/* 0CC294 800CB694 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0)
|
||||
/* 0CC298 800CB698 0C0335D4 */ jal osRecvMesg
|
||||
/* 0CC29C 800CB69C AFC70040 */ sw $a3, 0x40($fp)
|
||||
/* 0CC2A0 800CB6A0 3C10803B */ lui $s0, %hi(D_803B70D0) # $s0, 0x803b
|
||||
/* 0CC2A4 800CB6A4 2401FFFF */ li $at, -1
|
||||
/* 0CC2A8 800CB6A8 10410003 */ beq $v0, $at, .L800CB6B8
|
||||
/* 0CC2AC 800CB6AC 261070D0 */ addiu $s0, %lo(D_803B70D0) # addiu $s0, $s0, 0x70d0
|
||||
/* 0CC2B0 800CB6B0 0C032F2C */ jal func_800CBCB0
|
||||
/* 0CC2B4 800CB6B4 8FC40054 */ lw $a0, 0x54($fp)
|
||||
.L800CB6B8:
|
||||
/* 0CC2B8 800CB6B8 8E040000 */ lw $a0, ($s0)
|
||||
/* 0CC2BC 800CB6BC 27C50070 */ addiu $a1, $fp, 0x70
|
||||
/* 0CC2C0 800CB6C0 8FC60060 */ lw $a2, 0x60($fp)
|
||||
/* 0CC2C4 800CB6C4 0C02DC3B */ jal func_800B70EC
|
||||
/* 0CC2C8 800CB6C8 86270000 */ lh $a3, ($s1)
|
||||
/* 0CC2CC 800CB6CC 0C034468 */ jal osGetCount
|
||||
/* 0CC2D0 800CB6D0 AE020000 */ sw $v0, ($s0)
|
||||
/* 0CC2D4 800CB6D4 3C04803B */ lui $a0, %hi(D_803B7194) # $a0, 0x803b
|
||||
/* 0CC2D8 800CB6D8 3C07803B */ lui $a3, %hi(D_803B70B8) # $a3, 0x803b
|
||||
/* 0CC2DC 800CB6DC 24E770B8 */ addiu $a3, %lo(D_803B70B8) # addiu $a3, $a3, 0x70b8
|
||||
/* 0CC2E0 800CB6E0 24847194 */ addiu $a0, %lo(D_803B7194) # addiu $a0, $a0, 0x7194
|
||||
/* 0CC2E4 800CB6E4 8C8A0000 */ lw $t2, ($a0)
|
||||
/* 0CC2E8 800CB6E8 8CEB0000 */ lw $t3, ($a3)
|
||||
/* 0CC2EC 800CB6EC 8CF80000 */ lw $t8, ($a3)
|
||||
/* 0CC2F0 800CB6F0 3C10803B */ lui $s0, %hi(D_803B70C0) # $s0, 0x803b
|
||||
/* 0CC2F4 800CB6F4 014B6021 */ addu $t4, $t2, $t3
|
||||
/* 0CC2F8 800CB6F8 004C0019 */ multu $v0, $t4
|
||||
/* 0CC2FC 800CB6FC 331900FF */ andi $t9, $t8, 0xff
|
||||
/* 0CC300 800CB700 00194040 */ sll $t0, $t9, 1
|
||||
/* 0CC304 800CB704 3C06800F */ lui $a2, %hi(aspMainDataStart) # $a2, 0x800f
|
||||
/* 0CC308 800CB708 24C64D00 */ addiu $a2, %lo(aspMainDataStart) # addiu $a2, $a2, 0x4d00
|
||||
/* 0CC30C 800CB70C 3C05800E */ lui $a1, %hi(rspbootTextStart) # $a1, 0x800e
|
||||
/* 0CC310 800CB710 24180002 */ li $t8, 2
|
||||
/* 0CC314 800CB714 3C19800E */ lui $t9, %hi(rspbootTextEnd) # $t9, 0x800e
|
||||
/* 0CC318 800CB718 24A58F70 */ addiu $a1, %lo(rspbootTextStart) # addiu $a1, $a1, -0x7090
|
||||
/* 0CC31C 800CB71C 27399040 */ addiu $t9, %lo(rspbootTextEnd) # addiu $t9, $t9, -0x6fc0
|
||||
/* 0CC320 800CB720 00006812 */ mflo $t5
|
||||
/* 0CC324 800CB724 AC8D0000 */ sw $t5, ($a0)
|
||||
/* 0CC328 800CB728 8FCE0040 */ lw $t6, 0x40($fp)
|
||||
/* 0CC32C 800CB72C 8C8B0000 */ lw $t3, ($a0)
|
||||
/* 0CC330 800CB730 8E4D0000 */ lw $t5, ($s2)
|
||||
/* 0CC334 800CB734 8DCF0000 */ lw $t7, ($t6)
|
||||
/* 0CC338 800CB738 01E84821 */ addu $t1, $t7, $t0
|
||||
/* 0CC33C 800CB73C 852A0000 */ lh $t2, ($t1)
|
||||
/* 0CC340 800CB740 3C08800E */ lui $t0, %hi(aspMainTextStart) # $t0, 0x800e
|
||||
/* 0CC344 800CB744 03257823 */ subu $t7, $t9, $a1
|
||||
/* 0CC348 800CB748 014B6021 */ addu $t4, $t2, $t3
|
||||
/* 0CC34C 800CB74C AC8C0000 */ sw $t4, ($a0)
|
||||
/* 0CC350 800CB750 8E1070C0 */ lw $s0, %lo(D_803B70C0)($s0)
|
||||
/* 0CC354 800CB754 ADA00040 */ sw $zero, 0x40($t5)
|
||||
/* 0CC358 800CB758 8E4E0000 */ lw $t6, ($s2)
|
||||
/* 0CC35C 800CB75C 3C0A800F */ lui $t2, %hi(aspMainDataEnd) # $t2, 0x800f
|
||||
/* 0CC360 800CB760 254A5000 */ addiu $t2, %lo(aspMainDataEnd) # addiu $t2, $t2, 0x5000
|
||||
/* 0CC364 800CB764 ADC00044 */ sw $zero, 0x44($t6)
|
||||
/* 0CC368 800CB768 8E430000 */ lw $v1, ($s2)
|
||||
/* 0CC36C 800CB76C 01465823 */ subu $t3, $t2, $a2
|
||||
/* 0CC370 800CB770 000B60C3 */ sra $t4, $t3, 3
|
||||
/* 0CC374 800CB774 AC780000 */ sw $t8, ($v1)
|
||||
/* 0CC378 800CB778 2508B830 */ addiu $t0, %lo(aspMainTextStart) # addiu $t0, $t0, -0x47d0
|
||||
/* 0CC37C 800CB77C 24091000 */ li $t1, 4096
|
||||
/* 0CC380 800CB780 000C68C0 */ sll $t5, $t4, 3
|
||||
/* 0CC384 800CB784 3C18803B */ lui $t8, %hi(D_803B70C8) # 0x803b
|
||||
/* 0CC388 800CB788 00107080 */ sll $t6, $s0, 2
|
||||
/* 0CC38C 800CB78C 030EC021 */ addu $t8, $t8, $t6
|
||||
/* 0CC390 800CB790 AC600004 */ sw $zero, 4($v1)
|
||||
/* 0CC394 800CB794 AC650008 */ sw $a1, 8($v1)
|
||||
/* 0CC398 800CB798 AC6F000C */ sw $t7, 0xc($v1)
|
||||
/* 0CC39C 800CB79C AC680010 */ sw $t0, 0x10($v1)
|
||||
/* 0CC3A0 800CB7A0 AC660018 */ sw $a2, 0x18($v1)
|
||||
/* 0CC3A4 800CB7A4 AC690014 */ sw $t1, 0x14($v1)
|
||||
/* 0CC3A8 800CB7A8 AC6D001C */ sw $t5, 0x1c($v1)
|
||||
/* 0CC3AC 800CB7AC AC600020 */ sw $zero, 0x20($v1)
|
||||
/* 0CC3B0 800CB7B0 AC600024 */ sw $zero, 0x24($v1)
|
||||
/* 0CC3B4 800CB7B4 AC600028 */ sw $zero, 0x28($v1)
|
||||
/* 0CC3B8 800CB7B8 AC60002C */ sw $zero, 0x2c($v1)
|
||||
/* 0CC3BC 800CB7BC 8F1870C8 */ lw $t8, %lo(D_803B70C8)($t8) # 0x70c8($t8)
|
||||
/* 0CC3C0 800CB7C0 3C08800F */ lui $t0, %hi(D_800EA484) # $t0, 0x800f
|
||||
/* 0CC3C4 800CB7C4 AC780030 */ sw $t8, 0x30($v1)
|
||||
/* 0CC3C8 800CB7C8 8FD90070 */ lw $t9, 0x70($fp)
|
||||
/* 0CC3CC 800CB7CC AC600038 */ sw $zero, 0x38($v1)
|
||||
/* 0CC3D0 800CB7D0 AC60003C */ sw $zero, 0x3c($v1)
|
||||
/* 0CC3D4 800CB7D4 001978C0 */ sll $t7, $t9, 3
|
||||
/* 0CC3D8 800CB7D8 AC6F0034 */ sw $t7, 0x34($v1)
|
||||
/* 0CC3DC 800CB7DC 8FC90070 */ lw $t1, 0x70($fp)
|
||||
/* 0CC3E0 800CB7E0 8D08A484 */ lw $t0, %lo(D_800EA484)($t0)
|
||||
/* 0CC3E4 800CB7E4 0109082A */ slt $at, $t0, $t1
|
||||
/* 0CC3E8 800CB7E8 10200002 */ beqz $at, .L800CB7F4
|
||||
/* 0CC3EC 800CB7EC 3C01800F */ lui $at, %hi(D_800EA484) # $at, 0x800f
|
||||
/* 0CC3F0 800CB7F0 AC29A484 */ sw $t1, %lo(D_800EA484)($at)
|
||||
.L800CB7F4:
|
||||
/* 0CC3F4 800CB7F4 8E420000 */ lw $v0, ($s2)
|
||||
.L800CB7F8:
|
||||
/* 0CC3F8 800CB7F8 8FDF0034 */ lw $ra, 0x34($fp)
|
||||
/* 0CC3FC 800CB7FC 03C0E825 */ move $sp, $fp
|
||||
/* 0CC400 800CB800 8FD00024 */ lw $s0, 0x24($fp)
|
||||
/* 0CC404 800CB804 8FD10028 */ lw $s1, 0x28($fp)
|
||||
/* 0CC408 800CB808 8FD2002C */ lw $s2, 0x2c($fp)
|
||||
/* 0CC40C 800CB80C 8FDE0030 */ lw $fp, 0x30($fp)
|
||||
/* 0CC410 800CB810 03E00008 */ jr $ra
|
||||
/* 0CC414 800CB814 27BD0078 */ addiu $sp, $sp, 0x78
|
||||
|
||||
glabel func_800CB818
|
||||
/* 0CC418 800CB818 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0CC41C 800CB81C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0CC420 800CB820 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 0CC424 800CB824 90820000 */ lbu $v0, ($a0)
|
||||
/* 0CC428 800CB828 24010081 */ li $at, 129
|
||||
/* 0CC42C 800CB82C 03A0F025 */ move $fp, $sp
|
||||
/* 0CC430 800CB830 10410014 */ beq $v0, $at, .L800CB884
|
||||
/* 0CC434 800CB834 00803825 */ move $a3, $a0
|
||||
/* 0CC438 800CB838 24010082 */ li $at, 130
|
||||
/* 0CC43C 800CB83C 10410016 */ beq $v0, $at, .L800CB898
|
||||
/* 0CC440 800CB840 24010083 */ li $at, 131
|
||||
/* 0CC444 800CB844 1041001F */ beq $v0, $at, .L800CB8C4
|
||||
/* 0CC448 800CB848 24010088 */ li $at, 136
|
||||
/* 0CC44C 800CB84C 10410012 */ beq $v0, $at, .L800CB898
|
||||
/* 0CC450 800CB850 240100F0 */ li $at, 240
|
||||
/* 0CC454 800CB854 10410033 */ beq $v0, $at, .L800CB924
|
||||
/* 0CC458 800CB858 240100F1 */ li $at, 241
|
||||
/* 0CC45C 800CB85C 10410035 */ beq $v0, $at, .L800CB934
|
||||
/* 0CC460 800CB860 3C03803B */ lui $v1, %hi(D_803B1658) # 0x803b
|
||||
/* 0CC464 800CB864 240100F2 */ li $at, 242
|
||||
/* 0CC468 800CB868 10410046 */ beq $v0, $at, .L800CB984
|
||||
/* 0CC46C 800CB86C 3C03803B */ lui $v1, %hi(D_803B1658) # $v1, 0x803b
|
||||
/* 0CC470 800CB870 240100F3 */ li $at, 243
|
||||
/* 0CC474 800CB874 5041005C */ beql $v0, $at, .L800CB9E8
|
||||
/* 0CC478 800CB878 90E40001 */ lbu $a0, 1($a3)
|
||||
/* 0CC47C 800CB87C 1000005E */ b .L800CB9F8
|
||||
/* 0CC480 800CB880 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
.L800CB884:
|
||||
/* 0CC484 800CB884 90E40002 */ lbu $a0, 2($a3)
|
||||
/* 0CC488 800CB888 0C02EF77 */ jal func_800BBDDC
|
||||
/* 0CC48C 800CB88C 24050003 */ li $a1, 3
|
||||
/* 0CC490 800CB890 10000059 */ b .L800CB9F8
|
||||
/* 0CC494 800CB894 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
.L800CB898:
|
||||
/* 0CC498 800CB898 90E40001 */ lbu $a0, 1($a3)
|
||||
/* 0CC49C 800CB89C 90E50002 */ lbu $a1, 2($a3)
|
||||
/* 0CC4A0 800CB8A0 90E60003 */ lbu $a2, 3($a3)
|
||||
/* 0CC4A4 800CB8A4 0C02EFBC */ jal func_800BBEF0
|
||||
/* 0CC4A8 800CB8A8 AFC70030 */ sw $a3, 0x30($fp)
|
||||
/* 0CC4AC 800CB8AC 8FC70030 */ lw $a3, 0x30($fp)
|
||||
/* 0CC4B0 800CB8B0 90E40001 */ lbu $a0, 1($a3)
|
||||
/* 0CC4B4 800CB8B4 0C032E99 */ jal func_800CBA64
|
||||
/* 0CC4B8 800CB8B8 8CE50004 */ lw $a1, 4($a3)
|
||||
/* 0CC4BC 800CB8BC 1000004E */ b .L800CB9F8
|
||||
/* 0CC4C0 800CB8C0 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
.L800CB8C4:
|
||||
/* 0CC4C4 800CB8C4 90E20001 */ lbu $v0, 1($a3)
|
||||
/* 0CC4C8 800CB8C8 3C0F803B */ lui $t7, %hi(D_803B1510) # $t7, 0x803b
|
||||
/* 0CC4CC 800CB8CC 25EF1510 */ addiu $t7, %lo(D_803B1510) # addiu $t7, $t7, 0x1510
|
||||
/* 0CC4D0 800CB8D0 00027080 */ sll $t6, $v0, 2
|
||||
/* 0CC4D4 800CB8D4 01C27021 */ addu $t6, $t6, $v0
|
||||
/* 0CC4D8 800CB8D8 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 0CC4DC 800CB8DC 01C27021 */ addu $t6, $t6, $v0
|
||||
/* 0CC4E0 800CB8E0 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 0CC4E4 800CB8E4 01CF2021 */ addu $a0, $t6, $t7
|
||||
/* 0CC4E8 800CB8E8 8C980000 */ lw $t8, ($a0)
|
||||
/* 0CC4EC 800CB8EC 0018CFC2 */ srl $t9, $t8, 0x1f
|
||||
/* 0CC4F0 800CB8F0 53200041 */ beql $t9, $zero, .L800CB9F8
|
||||
/* 0CC4F4 800CB8F4 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
/* 0CC4F8 800CB8F8 8CE50004 */ lw $a1, 4($a3)
|
||||
/* 0CC4FC 800CB8FC 14A00005 */ bnez $a1, .L800CB914
|
||||
/* 0CC500 800CB900 00000000 */ nop
|
||||
/* 0CC504 800CB904 0C02FBCB */ jal func_800BEF2C
|
||||
/* 0CC508 800CB908 00000000 */ nop
|
||||
/* 0CC50C 800CB90C 1000003A */ b .L800CB9F8
|
||||
/* 0CC510 800CB910 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
.L800CB914:
|
||||
/* 0CC514 800CB914 0C032E82 */ jal func_800CBA08
|
||||
/* 0CC518 800CB918 00402025 */ move $a0, $v0
|
||||
/* 0CC51C 800CB91C 10000036 */ b .L800CB9F8
|
||||
/* 0CC520 800CB920 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
.L800CB924:
|
||||
/* 0CC524 800CB924 8CE80004 */ lw $t0, 4($a3)
|
||||
/* 0CC528 800CB928 3C01803B */ lui $at, %hi(D_803B70B6) # $at, 0x803b
|
||||
/* 0CC52C 800CB92C 10000031 */ b .L800CB9F4
|
||||
/* 0CC530 800CB930 A02870B6 */ sb $t0, %lo(D_803B70B6)($at)
|
||||
.L800CB934:
|
||||
/* 0CC534 800CB934 3C02803B */ lui $v0, %hi(D_803B1510) # $v0, 0x803b
|
||||
/* 0CC538 800CB938 904B1510 */ lbu $t3, %lo(D_803B1510)($v0)
|
||||
/* 0CC53C 800CB93C 90681658 */ lbu $t0, %lo(D_803B1658)($v1)
|
||||
/* 0CC540 800CB940 3C04803B */ lui $a0, %hi(D_803B17A0) # $a0, 0x803b
|
||||
/* 0CC544 800CB944 3C05803B */ lui $a1, %hi(D_803B18E8) # $a1, 0x803b
|
||||
/* 0CC548 800CB948 90AA18E8 */ lbu $t2, %lo(D_803B18E8)($a1)
|
||||
/* 0CC54C 800CB94C 908E17A0 */ lbu $t6, %lo(D_803B17A0)($a0)
|
||||
/* 0CC550 800CB950 3C01803B */ lui $at, %hi(D_803B1510) # $at, 0x803b
|
||||
/* 0CC554 800CB954 35620024 */ ori $v0, $t3, 0x24
|
||||
/* 0CC558 800CB958 A0221510 */ sb $v0, %lo(D_803B1510)($at)
|
||||
/* 0CC55C 800CB95C 3C01803B */ lui $at, %hi(D_803B1658) # $at, 0x803b
|
||||
/* 0CC560 800CB960 35030024 */ ori $v1, $t0, 0x24
|
||||
/* 0CC564 800CB964 A0231658 */ sb $v1, %lo(D_803B1658)($at)
|
||||
/* 0CC568 800CB968 3C01803B */ lui $at, %hi(D_803B17A0) # $at, 0x803b
|
||||
/* 0CC56C 800CB96C 35D80024 */ ori $t8, $t6, 0x24
|
||||
/* 0CC570 800CB970 A03817A0 */ sb $t8, %lo(D_803B17A0)($at)
|
||||
/* 0CC574 800CB974 3C01803B */ lui $at, %hi(D_803B18E8) # $at, 0x803b
|
||||
/* 0CC578 800CB978 354C0024 */ ori $t4, $t2, 0x24
|
||||
/* 0CC57C 800CB97C 1000001D */ b .L800CB9F4
|
||||
/* 0CC580 800CB980 A02C18E8 */ sb $t4, %lo(D_803B18E8)($at)
|
||||
.L800CB984:
|
||||
/* 0CC584 800CB984 3C02803B */ lui $v0, %hi(D_803B1510) # $v0, 0x803b
|
||||
/* 0CC588 800CB988 90421510 */ lbu $v0, %lo(D_803B1510)($v0)
|
||||
/* 0CC58C 800CB98C 90631658 */ lbu $v1, %lo(D_803B1658)($v1)
|
||||
/* 0CC590 800CB990 3C04803B */ lui $a0, %hi(D_803B17A0) # $a0, 0x803b
|
||||
/* 0CC594 800CB994 908417A0 */ lbu $a0, %lo(D_803B17A0)($a0)
|
||||
/* 0CC598 800CB998 3C05803B */ lui $a1, %hi(D_803B18E8) # $a1, 0x803b
|
||||
/* 0CC59C 800CB99C 304FFFDF */ andi $t7, $v0, 0xffdf
|
||||
/* 0CC5A0 800CB9A0 90A518E8 */ lbu $a1, %lo(D_803B18E8)($a1)
|
||||
/* 0CC5A4 800CB9A4 3C01803B */ lui $at, %hi(D_803B1510) # $at, 0x803b
|
||||
/* 0CC5A8 800CB9A8 35E20004 */ ori $v0, $t7, 4
|
||||
/* 0CC5AC 800CB9AC A0221510 */ sb $v0, %lo(D_803B1510)($at)
|
||||
/* 0CC5B0 800CB9B0 306AFFDF */ andi $t2, $v1, 0xffdf
|
||||
/* 0CC5B4 800CB9B4 35430004 */ ori $v1, $t2, 4
|
||||
/* 0CC5B8 800CB9B8 3C01803B */ lui $at, %hi(D_803B1658) # $at, 0x803b
|
||||
/* 0CC5BC 800CB9BC A0231658 */ sb $v1, %lo(D_803B1658)($at)
|
||||
/* 0CC5C0 800CB9C0 308FFFDF */ andi $t7, $a0, 0xffdf
|
||||
/* 0CC5C4 800CB9C4 35F90004 */ ori $t9, $t7, 4
|
||||
/* 0CC5C8 800CB9C8 3C01803B */ lui $at, %hi(D_803B17A0) # $at, 0x803b
|
||||
/* 0CC5CC 800CB9CC A03917A0 */ sb $t9, %lo(D_803B17A0)($at)
|
||||
/* 0CC5D0 800CB9D0 30AAFFDF */ andi $t2, $a1, 0xffdf
|
||||
/* 0CC5D4 800CB9D4 354C0004 */ ori $t4, $t2, 4
|
||||
/* 0CC5D8 800CB9D8 3C01803B */ lui $at, %hi(D_803B18E8) # $at, 0x803b
|
||||
/* 0CC5DC 800CB9DC 10000005 */ b .L800CB9F4
|
||||
/* 0CC5E0 800CB9E0 A02C18E8 */ sb $t4, %lo(D_803B18E8)($at)
|
||||
/* 0CC5E4 800CB9E4 90E40001 */ lbu $a0, 1($a3)
|
||||
.L800CB9E8:
|
||||
/* 0CC5E8 800CB9E8 90E50002 */ lbu $a1, 2($a3)
|
||||
/* 0CC5EC 800CB9EC 0C02ECE2 */ jal func_800BB388
|
||||
/* 0CC5F0 800CB9F0 90E60003 */ lbu $a2, 3($a3)
|
||||
.L800CB9F4:
|
||||
/* 0CC5F4 800CB9F4 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
.L800CB9F8:
|
||||
/* 0CC5F8 800CB9F8 03C0E825 */ move $sp, $fp
|
||||
/* 0CC5FC 800CB9FC 8FDE0028 */ lw $fp, 0x28($fp)
|
||||
/* 0CC600 800CBA00 03E00008 */ jr $ra
|
||||
/* 0CC604 800CBA04 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
glabel func_800CBA08
|
||||
/* 0CC608 800CBA08 14A00002 */ bnez $a1, .L800CBA14
|
||||
/* 0CC60C 800CBA0C 27ADFFF0 */ addiu $t5, $sp, -0x10
|
||||
/* 0CC610 800CBA10 24050001 */ li $a1, 1
|
||||
.L800CBA14:
|
||||
/* 0CC614 800CBA14 44853000 */ mtc1 $a1, $f6
|
||||
/* 0CC618 800CBA18 00047080 */ sll $t6, $a0, 2
|
||||
/* 0CC61C 800CBA1C 01C47021 */ addu $t6, $t6, $a0
|
||||
/* 0CC620 800CBA20 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 0CC624 800CBA24 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 0CC628 800CBA28 01C47021 */ addu $t6, $t6, $a0
|
||||
/* 0CC62C 800CBA2C 3C0F803B */ lui $t7, %hi(D_803B1510) # $t7, 0x803b
|
||||
/* 0CC630 800CBA30 25EF1510 */ addiu $t7, %lo(D_803B1510) # addiu $t7, $t7, 0x1510
|
||||
/* 0CC634 800CBA34 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 0CC638 800CBA38 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 0CC63C 800CBA3C C4440018 */ lwc1 $f4, 0x18($v0)
|
||||
/* 0CC640 800CBA40 24180002 */ li $t8, 2
|
||||
/* 0CC644 800CBA44 01A0E825 */ move $sp, $t5
|
||||
/* 0CC648 800CBA48 46082283 */ div.s $f10, $f4, $f8
|
||||
/* 0CC64C 800CBA4C A0580001 */ sb $t8, 1($v0)
|
||||
/* 0CC650 800CBA50 A4450010 */ sh $a1, 0x10($v0)
|
||||
/* 0CC654 800CBA54 25BD0010 */ addiu $sp, $t5, 0x10
|
||||
/* 0CC658 800CBA58 46005407 */ neg.s $f16, $f10
|
||||
/* 0CC65C 800CBA5C 03E00008 */ jr $ra
|
||||
/* 0CC660 800CBA60 E450001C */ swc1 $f16, 0x1c($v0)
|
||||
|
||||
glabel func_800CBA64
|
||||
/* 0CC664 800CBA64 10A00010 */ beqz $a1, .L800CBAA8
|
||||
/* 0CC668 800CBA68 27ADFFF0 */ addiu $t5, $sp, -0x10
|
||||
/* 0CC66C 800CBA6C 00047080 */ sll $t6, $a0, 2
|
||||
/* 0CC670 800CBA70 01C47021 */ addu $t6, $t6, $a0
|
||||
/* 0CC674 800CBA74 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 0CC678 800CBA78 01C47021 */ addu $t6, $t6, $a0
|
||||
/* 0CC67C 800CBA7C 3C0F803B */ lui $t7, %hi(D_803B1510) # $t7, 0x803b
|
||||
/* 0CC680 800CBA80 25EF1510 */ addiu $t7, %lo(D_803B1510) # addiu $t7, $t7, 0x1510
|
||||
/* 0CC684 800CBA84 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 0CC688 800CBA88 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 0CC68C 800CBA8C 44800000 */ mtc1 $zero, $f0
|
||||
/* 0CC690 800CBA90 24180001 */ li $t8, 1
|
||||
/* 0CC694 800CBA94 A0580001 */ sb $t8, 1($v0)
|
||||
/* 0CC698 800CBA98 A4450012 */ sh $a1, 0x12($v0)
|
||||
/* 0CC69C 800CBA9C A4450010 */ sh $a1, 0x10($v0)
|
||||
/* 0CC6A0 800CBAA0 E4400018 */ swc1 $f0, 0x18($v0)
|
||||
/* 0CC6A4 800CBAA4 E440001C */ swc1 $f0, 0x1c($v0)
|
||||
.L800CBAA8:
|
||||
/* 0CC6A8 800CBAA8 01A0E825 */ move $sp, $t5
|
||||
/* 0CC6AC 800CBAAC 03E00008 */ jr $ra
|
||||
/* 0CC6B0 800CBAB0 25BD0010 */ addiu $sp, $t5, 0x10
|
||||
|
||||
glabel func_800CBAB4
|
||||
/* 0CC6B4 800CBAB4 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0CC6B8 800CBAB8 3C01800F */ lui $at, %hi(D_800EA3A0) # $at, 0x800f
|
||||
/* 0CC6BC 800CBABC A020A3A0 */ sb $zero, %lo(D_800EA3A0)($at)
|
||||
/* 0CC6C0 800CBAC0 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0CC6C4 800CBAC4 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 0CC6C8 800CBAC8 3C01800F */ lui $at, %hi(D_800EA3A4) # $at, 0x800f
|
||||
/* 0CC6CC 800CBACC 3C04800F */ lui $a0, %hi(D_800EA3A8) # $a0, 0x800f
|
||||
/* 0CC6D0 800CBAD0 3C058019 */ lui $a1, %hi(D_80194020) # $a1, 0x8019
|
||||
/* 0CC6D4 800CBAD4 03A0F025 */ move $fp, $sp
|
||||
/* 0CC6D8 800CBAD8 A020A3A4 */ sb $zero, %lo(D_800EA3A4)($at)
|
||||
/* 0CC6DC 800CBADC 24A54020 */ addiu $a1, %lo(D_80194020) # addiu $a1, $a1, 0x4020
|
||||
/* 0CC6E0 800CBAE0 8C84A3A8 */ lw $a0, %lo(D_800EA3A8)($a0)
|
||||
/* 0CC6E4 800CBAE4 0C033358 */ jal osCreateMesgQueue
|
||||
/* 0CC6E8 800CBAE8 24060001 */ li $a2, 1
|
||||
/* 0CC6EC 800CBAEC 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f
|
||||
/* 0CC6F0 800CBAF0 3C058019 */ lui $a1, %hi(D_80194028) # $a1, 0x8019
|
||||
/* 0CC6F4 800CBAF4 24A54028 */ addiu $a1, %lo(D_80194028) # addiu $a1, $a1, 0x4028
|
||||
/* 0CC6F8 800CBAF8 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0)
|
||||
/* 0CC6FC 800CBAFC 0C033358 */ jal osCreateMesgQueue
|
||||
/* 0CC700 800CBB00 24060004 */ li $a2, 4
|
||||
/* 0CC704 800CBB04 3C04800F */ lui $a0, %hi(D_800EA3B0) # $a0, 0x800f
|
||||
/* 0CC708 800CBB08 3C058019 */ lui $a1, %hi(D_80194038) # $a1, 0x8019
|
||||
/* 0CC70C 800CBB0C 24A54038 */ addiu $a1, %lo(D_80194038) # addiu $a1, $a1, 0x4038
|
||||
/* 0CC710 800CBB10 8C84A3B0 */ lw $a0, %lo(D_800EA3B0)($a0)
|
||||
/* 0CC714 800CBB14 0C033358 */ jal osCreateMesgQueue
|
||||
/* 0CC718 800CBB18 24060001 */ li $a2, 1
|
||||
/* 0CC71C 800CBB1C 3C04800F */ lui $a0, %hi(D_800EA3B4) # $a0, 0x800f
|
||||
/* 0CC720 800CBB20 3C058019 */ lui $a1, %hi(D_8019403C) # $a1, 0x8019
|
||||
/* 0CC724 800CBB24 24A5403C */ addiu $a1, %lo(D_8019403C) # addiu $a1, $a1, 0x403c
|
||||
/* 0CC728 800CBB28 8C84A3B4 */ lw $a0, %lo(D_800EA3B4)($a0)
|
||||
/* 0CC72C 800CBB2C 0C033358 */ jal osCreateMesgQueue
|
||||
/* 0CC730 800CBB30 24060001 */ li $a2, 1
|
||||
/* 0CC734 800CBB34 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
/* 0CC738 800CBB38 03C0E825 */ move $sp, $fp
|
||||
/* 0CC73C 800CBB3C 8FDE0028 */ lw $fp, 0x28($fp)
|
||||
/* 0CC740 800CBB40 03E00008 */ jr $ra
|
||||
/* 0CC744 800CBB44 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
glabel func_800CBB48
|
||||
/* 0CC748 800CBB48 3C03800F */ lui $v1, %hi(D_800EA3A0) # $v1, 0x800f
|
||||
/* 0CC74C 800CBB4C 2463A3A0 */ addiu $v1, %lo(D_800EA3A0) # addiu $v1, $v1, -0x5c60
|
||||
/* 0CC750 800CBB50 906F0000 */ lbu $t7, ($v1)
|
||||
/* 0CC754 800CBB54 3C198019 */ lui $t9, %hi(D_80193820) # $t9, 0x8019
|
||||
/* 0CC758 800CBB58 27393820 */ addiu $t9, %lo(D_80193820) # addiu $t9, $t9, 0x3820
|
||||
/* 0CC75C 800CBB5C 000FC0C0 */ sll $t8, $t7, 3
|
||||
/* 0CC760 800CBB60 03191021 */ addu $v0, $t8, $t9
|
||||
/* 0CC764 800CBB64 AC440000 */ sw $a0, ($v0)
|
||||
/* 0CC768 800CBB68 8CA80000 */ lw $t0, ($a1)
|
||||
/* 0CC76C 800CBB6C 27BDFFF0 */ addiu $sp, $sp, -0x10
|
||||
/* 0CC770 800CBB70 AC480004 */ sw $t0, 4($v0)
|
||||
/* 0CC774 800CBB74 90690000 */ lbu $t1, ($v1)
|
||||
/* 0CC778 800CBB78 27BD0010 */ addiu $sp, $sp, 0x10
|
||||
/* 0CC77C 800CBB7C 252A0001 */ addiu $t2, $t1, 1
|
||||
/* 0CC780 800CBB80 03E00008 */ jr $ra
|
||||
/* 0CC784 800CBB84 A06A0000 */ sb $t2, ($v1)
|
||||
|
||||
glabel func_800CBB88
|
||||
/* 0CC788 800CBB88 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0CC78C 800CBB8C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0CC790 800CBB90 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 0CC794 800CBB94 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0CC798 800CBB98 03A0F025 */ move $fp, $sp
|
||||
/* 0CC79C 800CBB9C 0C032ED2 */ jal func_800CBB48
|
||||
/* 0CC7A0 800CBBA0 27A50034 */ addiu $a1, $sp, 0x34
|
||||
/* 0CC7A4 800CBBA4 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
/* 0CC7A8 800CBBA8 03C0E825 */ move $sp, $fp
|
||||
/* 0CC7AC 800CBBAC 8FDE0028 */ lw $fp, 0x28($fp)
|
||||
/* 0CC7B0 800CBBB0 03E00008 */ jr $ra
|
||||
/* 0CC7B4 800CBBB4 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
glabel func_800CBBB8
|
||||
/* 0CC7B8 800CBBB8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0CC7BC 800CBBBC AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0CC7C0 800CBBC0 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 0CC7C4 800CBBC4 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0CC7C8 800CBBC8 03A0F025 */ move $fp, $sp
|
||||
/* 0CC7CC 800CBBCC 0C032ED2 */ jal func_800CBB48
|
||||
/* 0CC7D0 800CBBD0 27A50034 */ addiu $a1, $sp, 0x34
|
||||
/* 0CC7D4 800CBBD4 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
/* 0CC7D8 800CBBD8 03C0E825 */ move $sp, $fp
|
||||
/* 0CC7DC 800CBBDC 8FDE0028 */ lw $fp, 0x28($fp)
|
||||
/* 0CC7E0 800CBBE0 03E00008 */ jr $ra
|
||||
/* 0CC7E4 800CBBE4 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
glabel func_800CBBE8
|
||||
/* 0CC7E8 800CBBE8 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 0CC7EC 800CBBEC 00A07025 */ move $t6, $a1
|
||||
/* 0CC7F0 800CBBF0 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0CC7F4 800CBBF4 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 0CC7F8 800CBBF8 AFA5003C */ sw $a1, 0x3c($sp)
|
||||
/* 0CC7FC 800CBBFC 000E7E00 */ sll $t7, $t6, 0x18
|
||||
/* 0CC800 800CBC00 03A0F025 */ move $fp, $sp
|
||||
/* 0CC804 800CBC04 AFAF0034 */ sw $t7, 0x34($sp)
|
||||
/* 0CC808 800CBC08 0C032ED2 */ jal func_800CBB48
|
||||
/* 0CC80C 800CBC0C 27A50034 */ addiu $a1, $sp, 0x34
|
||||
/* 0CC810 800CBC10 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
/* 0CC814 800CBC14 03C0E825 */ move $sp, $fp
|
||||
/* 0CC818 800CBC18 8FDE0028 */ lw $fp, 0x28($fp)
|
||||
/* 0CC81C 800CBC1C 03E00008 */ jr $ra
|
||||
/* 0CC820 800CBC20 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
|
||||
glabel func_800CBC24
|
||||
/* 0CC824 800CBC24 3C02800F */ lui $v0, %hi(D_800EA3A0) # $v0, 0x800f
|
||||
/* 0CC828 800CBC28 3C03800F */ lui $v1, %hi(D_800EA3A4) # $v1, 0x800f
|
||||
/* 0CC82C 800CBC2C 9063A3A4 */ lbu $v1, %lo(D_800EA3A4)($v1)
|
||||
/* 0CC830 800CBC30 9042A3A0 */ lbu $v0, %lo(D_800EA3A0)($v0)
|
||||
/* 0CC834 800CBC34 3C0F800F */ lui $t7, %hi(D_800EA4A4) # $t7, 0x800f
|
||||
/* 0CC838 800CBC38 8DEFA4A4 */ lw $t7, %lo(D_800EA4A4)($t7)
|
||||
/* 0CC83C 800CBC3C 00432023 */ subu $a0, $v0, $v1
|
||||
/* 0CC840 800CBC40 24840100 */ addiu $a0, $a0, 0x100
|
||||
/* 0CC844 800CBC44 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 0CC848 800CBC48 308E00FF */ andi $t6, $a0, 0xff
|
||||
/* 0CC84C 800CBC4C AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 0CC850 800CBC50 01EE082A */ slt $at, $t7, $t6
|
||||
/* 0CC854 800CBC54 03A0F025 */ move $fp, $sp
|
||||
/* 0CC858 800CBC58 10200003 */ beqz $at, .L800CBC68
|
||||
/* 0CC85C 800CBC5C AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 0CC860 800CBC60 3C01800F */ lui $at, %hi(D_800EA4A4) # $at, 0x800f
|
||||
/* 0CC864 800CBC64 AC2EA4A4 */ sw $t6, %lo(D_800EA4A4)($at)
|
||||
.L800CBC68:
|
||||
/* 0CC868 800CBC68 307800FF */ andi $t8, $v1, 0xff
|
||||
/* 0CC86C 800CBC6C 0018CA00 */ sll $t9, $t8, 8
|
||||
/* 0CC870 800CBC70 304800FF */ andi $t0, $v0, 0xff
|
||||
/* 0CC874 800CBC74 3C04800F */ lui $a0, %hi(D_800EA3AC) # $a0, 0x800f
|
||||
/* 0CC878 800CBC78 03282825 */ or $a1, $t9, $t0
|
||||
/* 0CC87C 800CBC7C 8C84A3AC */ lw $a0, %lo(D_800EA3AC)($a0)
|
||||
/* 0CC880 800CBC80 0C033630 */ jal osSendMesg
|
||||
/* 0CC884 800CBC84 00003025 */ move $a2, $zero
|
||||
/* 0CC888 800CBC88 3C09800F */ lui $t1, %hi(D_800EA3A0) # $t1, 0x800f
|
||||
/* 0CC88C 800CBC8C 9129A3A0 */ lbu $t1, %lo(D_800EA3A0)($t1)
|
||||
/* 0CC890 800CBC90 3C01800F */ lui $at, %hi(D_800EA3A4) # $at, 0x800f
|
||||
/* 0CC894 800CBC94 03C0E825 */ move $sp, $fp
|
||||
/* 0CC898 800CBC98 A029A3A4 */ sb $t1, %lo(D_800EA3A4)($at)
|
||||
/* 0CC89C 800CBC9C 8FDF002C */ lw $ra, 0x2c($fp)
|
||||
/* 0CC8A0 800CBCA0 8FDE0028 */ lw $fp, 0x28($fp)
|
||||
/* 0CC8A4 800CBCA4 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
/* 0CC8A8 800CBCA8 03E00008 */ jr $ra
|
||||
/* 0CC8AC 800CBCAC 00000000 */ nop
|
||||
|
||||
glabel func_800CBCB0
|
||||
/* 0CC8B0 800CBCB0 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||
/* 0CC8B4 800CBCB4 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 0CC8B8 800CBCB8 AFB5003C */ sw $s5, 0x3c($sp)
|
||||
/* 0CC8BC 800CBCBC AFB30034 */ sw $s3, 0x34($sp)
|
||||
/* 0CC8C0 800CBCC0 00809025 */ move $s2, $a0
|
||||
/* 0CC8C4 800CBCC4 AFBE0048 */ sw $fp, 0x48($sp)
|
||||
/* 0CC8C8 800CBCC8 AFB70044 */ sw $s7, 0x44($sp)
|
||||
/* 0CC8CC 800CBCCC AFB60040 */ sw $s6, 0x40($sp)
|
||||
/* 0CC8D0 800CBCD0 AFB40038 */ sw $s4, 0x38($sp)
|
||||
/* 0CC8D4 800CBCD4 AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 0CC8D8 800CBCD8 00047202 */ srl $t6, $a0, 8
|
||||
/* 0CC8DC 800CBCDC 325800FF */ andi $t8, $s2, 0xff
|
||||
/* 0CC8E0 800CBCE0 3C138019 */ lui $s3, %hi(D_80193820) # $s3, 0x8019
|
||||
/* 0CC8E4 800CBCE4 3C15803B */ lui $s5, %hi(D_803B1510) # $s5, 0x803b
|
||||
/* 0CC8E8 800CBCE8 03A0F025 */ move $fp, $sp
|
||||
/* 0CC8EC 800CBCEC AFBF004C */ sw $ra, 0x4c($sp)
|
||||
/* 0CC8F0 800CBCF0 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 0CC8F4 800CBCF4 31D100FF */ andi $s1, $t6, 0xff
|
||||
/* 0CC8F8 800CBCF8 26B51510 */ addiu $s5, %lo(D_803B1510) # addiu $s5, $s5, 0x1510
|
||||
/* 0CC8FC 800CBCFC 26733820 */ addiu $s3, %lo(D_80193820) # addiu $s3, $s3, 0x3820
|
||||
/* 0CC900 800CBD00 03009025 */ move $s2, $t8
|
||||
/* 0CC904 800CBD04 241400F0 */ li $s4, 240
|
||||
/* 0CC908 800CBD08 24160148 */ li $s6, 328
|
||||
/* 0CC90C 800CBD0C 24170041 */ li $s7, 65
|
||||
/* 0CC910 800CBD10 12510080 */ beq $s2, $s1, .L800CBF14
|
||||
/* 0CC914 800CBD14 02201025 */ move $v0, $s1
|
||||
.L800CBD18:
|
||||
/* 0CC918 800CBD18 305900FF */ andi $t9, $v0, 0xff
|
||||
/* 0CC91C 800CBD1C 001940C0 */ sll $t0, $t9, 3
|
||||
/* 0CC920 800CBD20 02688021 */ addu $s0, $s3, $t0
|
||||
/* 0CC924 800CBD24 92040000 */ lbu $a0, ($s0)
|
||||
/* 0CC928 800CBD28 26310001 */ addiu $s1, $s1, 1
|
||||
/* 0CC92C 800CBD2C 322900FF */ andi $t1, $s1, 0xff
|
||||
/* 0CC930 800CBD30 308A00F0 */ andi $t2, $a0, 0xf0
|
||||
/* 0CC934 800CBD34 168A0005 */ bne $s4, $t2, .L800CBD4C
|
||||
/* 0CC938 800CBD38 01208825 */ move $s1, $t1
|
||||
/* 0CC93C 800CBD3C 0C032E06 */ jal func_800CB818
|
||||
/* 0CC940 800CBD40 02002025 */ move $a0, $s0
|
||||
/* 0CC944 800CBD44 10000071 */ b .L800CBF0C
|
||||
/* 0CC948 800CBD48 02201025 */ move $v0, $s1
|
||||
.L800CBD4C:
|
||||
/* 0CC94C 800CBD4C 92020001 */ lbu $v0, 1($s0)
|
||||
/* 0CC950 800CBD50 28410004 */ slti $at, $v0, 4
|
||||
/* 0CC954 800CBD54 5020006D */ beql $at, $zero, .L800CBF0C
|
||||
/* 0CC958 800CBD58 02201025 */ move $v0, $s1
|
||||
/* 0CC95C 800CBD5C 00560019 */ multu $v0, $s6
|
||||
/* 0CC960 800CBD60 308C0080 */ andi $t4, $a0, 0x80
|
||||
/* 0CC964 800CBD64 308D0040 */ andi $t5, $a0, 0x40
|
||||
/* 0CC968 800CBD68 00005812 */ mflo $t3
|
||||
/* 0CC96C 800CBD6C 02AB1821 */ addu $v1, $s5, $t3
|
||||
/* 0CC970 800CBD70 11800005 */ beqz $t4, .L800CBD88
|
||||
/* 0CC974 800CBD74 00000000 */ nop
|
||||
/* 0CC978 800CBD78 0C032E06 */ jal func_800CB818
|
||||
/* 0CC97C 800CBD7C 02002025 */ move $a0, $s0
|
||||
/* 0CC980 800CBD80 10000062 */ b .L800CBF0C
|
||||
/* 0CC984 800CBD84 02201025 */ move $v0, $s1
|
||||
.L800CBD88:
|
||||
/* 0CC988 800CBD88 51A00020 */ beql $t5, $zero, .L800CBE0C
|
||||
/* 0CC98C 800CBD8C 8C6D0000 */ lw $t5, ($v1)
|
||||
/* 0CC990 800CBD90 10970009 */ beq $a0, $s7, .L800CBDB8
|
||||
/* 0CC994 800CBD94 24010046 */ li $at, 70
|
||||
/* 0CC998 800CBD98 10810016 */ beq $a0, $at, .L800CBDF4
|
||||
/* 0CC99C 800CBD9C 24010047 */ li $at, 71
|
||||
/* 0CC9A0 800CBDA0 1081000B */ beq $a0, $at, .L800CBDD0
|
||||
/* 0CC9A4 800CBDA4 24010048 */ li $at, 72
|
||||
/* 0CC9A8 800CBDA8 50810010 */ beql $a0, $at, .L800CBDEC
|
||||
/* 0CC9AC 800CBDAC 82090004 */ lb $t1, 4($s0)
|
||||
/* 0CC9B0 800CBDB0 10000056 */ b .L800CBF0C
|
||||
/* 0CC9B4 800CBDB4 02201025 */ move $v0, $s1
|
||||
.L800CBDB8:
|
||||
/* 0CC9B8 800CBDB8 906F0000 */ lbu $t7, ($v1)
|
||||
/* 0CC9BC 800CBDBC C6040004 */ lwc1 $f4, 4($s0)
|
||||
/* 0CC9C0 800CBDC0 35F80004 */ ori $t8, $t7, 4
|
||||
/* 0CC9C4 800CBDC4 A0780000 */ sb $t8, ($v1)
|
||||
/* 0CC9C8 800CBDC8 1000004F */ b .L800CBF08
|
||||
/* 0CC9CC 800CBDCC E4640028 */ swc1 $f4, 0x28($v1)
|
||||
.L800CBDD0:
|
||||
/* 0CC9D0 800CBDD0 8E190004 */ lw $t9, 4($s0)
|
||||
/* 0CC9D4 800CBDD4 00194080 */ sll $t0, $t9, 2
|
||||
/* 0CC9D8 800CBDD8 01194023 */ subu $t0, $t0, $t9
|
||||
/* 0CC9DC 800CBDDC 00084100 */ sll $t0, $t0, 4
|
||||
/* 0CC9E0 800CBDE0 10000049 */ b .L800CBF08
|
||||
/* 0CC9E4 800CBDE4 A4680008 */ sh $t0, 8($v1)
|
||||
/* 0CC9E8 800CBDE8 82090004 */ lb $t1, 4($s0)
|
||||
.L800CBDEC:
|
||||
/* 0CC9EC 800CBDEC 10000046 */ b .L800CBF08
|
||||
/* 0CC9F0 800CBDF0 A469000C */ sh $t1, 0xc($v1)
|
||||
.L800CBDF4:
|
||||
/* 0CC9F4 800CBDF4 920B0003 */ lbu $t3, 3($s0)
|
||||
/* 0CC9F8 800CBDF8 820A0004 */ lb $t2, 4($s0)
|
||||
/* 0CC9FC 800CBDFC 006B6021 */ addu $t4, $v1, $t3
|
||||
/* 0CCA00 800CBE00 10000041 */ b .L800CBF08
|
||||
/* 0CCA04 800CBE04 A18A0007 */ sb $t2, 7($t4)
|
||||
/* 0CCA08 800CBE08 8C6D0000 */ lw $t5, ($v1)
|
||||
.L800CBE0C:
|
||||
/* 0CCA0C 800CBE0C 000D77C2 */ srl $t6, $t5, 0x1f
|
||||
/* 0CCA10 800CBE10 51C0003E */ beql $t6, $zero, .L800CBF0C
|
||||
/* 0CCA14 800CBE14 02201025 */ move $v0, $s1
|
||||
/* 0CCA18 800CBE18 92050002 */ lbu $a1, 2($s0)
|
||||
/* 0CCA1C 800CBE1C 28A10010 */ slti $at, $a1, 0x10
|
||||
/* 0CCA20 800CBE20 10200039 */ beqz $at, .L800CBF08
|
||||
/* 0CCA24 800CBE24 00057880 */ sll $t7, $a1, 2
|
||||
/* 0CCA28 800CBE28 006FC021 */ addu $t8, $v1, $t7
|
||||
/* 0CCA2C 800CBE2C 8F020030 */ lw $v0, 0x30($t8)
|
||||
/* 0CCA30 800CBE30 3C19803B */ lui $t9, %hi(D_803B5EF0) # $t9, 0x803b
|
||||
/* 0CCA34 800CBE34 27395EF0 */ addiu $t9, %lo(D_803B5EF0) # addiu $t9, $t9, 0x5ef0
|
||||
/* 0CCA38 800CBE38 10590033 */ beq $v0, $t9, .L800CBF08
|
||||
/* 0CCA3C 800CBE3C 2488FFFF */ addiu $t0, $a0, -1
|
||||
/* 0CCA40 800CBE40 2D010008 */ sltiu $at, $t0, 8
|
||||
/* 0CCA44 800CBE44 10200030 */ beqz $at, .L800CBF08
|
||||
/* 0CCA48 800CBE48 00084080 */ sll $t0, $t0, 2
|
||||
/* 0CCA4C 800CBE4C 3C01800F */ lui $at, %hi(D_800F39C0)
|
||||
/* 0CCA50 800CBE50 00280821 */ addu $at, $at, $t0
|
||||
/* 0CCA54 800CBE54 8C2839C0 */ lw $t0, %lo(D_800F39C0)($at)
|
||||
/* 0CCA58 800CBE58 01000008 */ jr $t0
|
||||
/* 0CCA5C 800CBE5C 00000000 */ nop
|
||||
glabel L800CBE60
|
||||
/* 0CCA60 800CBE60 904B0001 */ lbu $t3, 1($v0)
|
||||
/* 0CCA64 800CBE64 C6060004 */ lwc1 $f6, 4($s0)
|
||||
/* 0CCA68 800CBE68 356A0040 */ ori $t2, $t3, 0x40
|
||||
/* 0CCA6C 800CBE6C A04A0001 */ sb $t2, 1($v0)
|
||||
/* 0CCA70 800CBE70 10000025 */ b .L800CBF08
|
||||
/* 0CCA74 800CBE74 E4460020 */ swc1 $f6, 0x20($v0)
|
||||
glabel L800CBE78
|
||||
/* 0CCA78 800CBE78 904D0001 */ lbu $t5, 1($v0)
|
||||
/* 0CCA7C 800CBE7C C6080004 */ lwc1 $f8, 4($s0)
|
||||
/* 0CCA80 800CBE80 35AE0040 */ ori $t6, $t5, 0x40
|
||||
/* 0CCA84 800CBE84 A04E0001 */ sb $t6, 1($v0)
|
||||
/* 0CCA88 800CBE88 1000001F */ b .L800CBF08
|
||||
/* 0CCA8C 800CBE8C E4480024 */ swc1 $f8, 0x24($v0)
|
||||
glabel L800CBE90
|
||||
/* 0CCA90 800CBE90 90590001 */ lbu $t9, 1($v0)
|
||||
/* 0CCA94 800CBE94 820F0004 */ lb $t7, 4($s0)
|
||||
/* 0CCA98 800CBE98 37280020 */ ori $t0, $t9, 0x20
|
||||
/* 0CCA9C 800CBE9C A0480001 */ sb $t0, 1($v0)
|
||||
/* 0CCAA0 800CBEA0 10000019 */ b .L800CBF08
|
||||
/* 0CCAA4 800CBEA4 A04F0009 */ sb $t7, 9($v0)
|
||||
glabel L800CBEA8
|
||||
/* 0CCAA8 800CBEA8 904B0001 */ lbu $t3, 1($v0)
|
||||
/* 0CCAAC 800CBEAC C60A0004 */ lwc1 $f10, 4($s0)
|
||||
/* 0CCAB0 800CBEB0 356A0080 */ ori $t2, $t3, 0x80
|
||||
/* 0CCAB4 800CBEB4 A04A0001 */ sb $t2, 1($v0)
|
||||
/* 0CCAB8 800CBEB8 10000013 */ b .L800CBF08
|
||||
/* 0CCABC 800CBEBC E44A0030 */ swc1 $f10, 0x30($v0)
|
||||
glabel L800CBEC0
|
||||
/* 0CCAC0 800CBEC0 820C0004 */ lb $t4, 4($s0)
|
||||
/* 0CCAC4 800CBEC4 10000010 */ b .L800CBF08
|
||||
/* 0CCAC8 800CBEC8 A04C0004 */ sb $t4, 4($v0)
|
||||
glabel L800CBECC
|
||||
/* 0CCACC 800CBECC 92030003 */ lbu $v1, 3($s0)
|
||||
/* 0CCAD0 800CBED0 28610008 */ slti $at, $v1, 8
|
||||
/* 0CCAD4 800CBED4 5020000D */ beql $at, $zero, .L800CBF0C
|
||||
/* 0CCAD8 800CBED8 02201025 */ move $v0, $s1
|
||||
/* 0CCADC 800CBEDC 820D0004 */ lb $t5, 4($s0)
|
||||
/* 0CCAE0 800CBEE0 00437021 */ addu $t6, $v0, $v1
|
||||
/* 0CCAE4 800CBEE4 10000008 */ b .L800CBF08
|
||||
/* 0CCAE8 800CBEE8 A1CD0058 */ sb $t5, 0x58($t6)
|
||||
glabel L800CBEEC
|
||||
/* 0CCAEC 800CBEEC 82180004 */ lb $t8, 4($s0)
|
||||
/* 0CCAF0 800CBEF0 90490000 */ lbu $t1, ($v0)
|
||||
/* 0CCAF4 800CBEF4 0018C900 */ sll $t9, $t8, 4
|
||||
/* 0CCAF8 800CBEF8 33280010 */ andi $t0, $t9, 0x10
|
||||
/* 0CCAFC 800CBEFC 312BFFEF */ andi $t3, $t1, 0xffef
|
||||
/* 0CCB00 800CBF00 010B5025 */ or $t2, $t0, $t3
|
||||
/* 0CCB04 800CBF04 A04A0000 */ sb $t2, ($v0)
|
||||
.L800CBF08:
|
||||
glabel L800CBF08
|
||||
/* 0CCB08 800CBF08 02201025 */ move $v0, $s1
|
||||
.L800CBF0C:
|
||||
/* 0CCB0C 800CBF0C 1651FF82 */ bne $s2, $s1, .L800CBD18
|
||||
/* 0CCB10 800CBF10 A2000000 */ sb $zero, ($s0)
|
||||
.L800CBF14:
|
||||
/* 0CCB14 800CBF14 8FDF004C */ lw $ra, 0x4c($fp)
|
||||
/* 0CCB18 800CBF18 03C0E825 */ move $sp, $fp
|
||||
/* 0CCB1C 800CBF1C 8FD00028 */ lw $s0, 0x28($fp)
|
||||
/* 0CCB20 800CBF20 8FD1002C */ lw $s1, 0x2c($fp)
|
||||
/* 0CCB24 800CBF24 8FD20030 */ lw $s2, 0x30($fp)
|
||||
/* 0CCB28 800CBF28 8FD30034 */ lw $s3, 0x34($fp)
|
||||
/* 0CCB2C 800CBF2C 8FD40038 */ lw $s4, 0x38($fp)
|
||||
/* 0CCB30 800CBF30 8FD5003C */ lw $s5, 0x3c($fp)
|
||||
/* 0CCB34 800CBF34 8FD60040 */ lw $s6, 0x40($fp)
|
||||
/* 0CCB38 800CBF38 8FD70044 */ lw $s7, 0x44($fp)
|
||||
/* 0CCB3C 800CBF3C 8FDE0048 */ lw $fp, 0x48($fp)
|
||||
/* 0CCB40 800CBF40 03E00008 */ jr $ra
|
||||
/* 0CCB44 800CBF44 27BD0050 */ addiu $sp, $sp, 0x50
|
||||
|
||||
glabel func_800CBF48
|
||||
/* 0CCB48 800CBF48 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0CCB4C 800CBF4C AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0CCB50 800CBF50 AFBE0020 */ sw $fp, 0x20($sp)
|
||||
/* 0CCB54 800CBF54 0C032EAD */ jal func_800CBAB4
|
||||
/* 0CCB58 800CBF58 03A0F025 */ move $fp, $sp
|
||||
/* 0CCB5C 800CBF5C 8FDF0024 */ lw $ra, 0x24($fp)
|
||||
/* 0CCB60 800CBF60 03C0E825 */ move $sp, $fp
|
||||
/* 0CCB64 800CBF64 8FDE0020 */ lw $fp, 0x20($fp)
|
||||
/* 0CCB68 800CBF68 03E00008 */ jr $ra
|
||||
/* 0CCB6C 800CBF6C 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,79 +0,0 @@
|
||||
glabel synthesis_load_reverb_ring_buffer
|
||||
/* 0B7A84 800B6E84 00074103 */ sra $t0, $a3, 4
|
||||
/* 0B7A88 800B6E88 AFA50004 */ sw $a1, 4($sp)
|
||||
/* 0B7A8C 800B6E8C 00A07025 */ move $t6, $a1
|
||||
/* 0B7A90 800B6E90 311800FF */ andi $t8, $t0, 0xff
|
||||
/* 0B7A94 800B6E94 01C02825 */ move $a1, $t6
|
||||
/* 0B7A98 800B6E98 AFA60008 */ sw $a2, 8($sp)
|
||||
/* 0B7A9C 800B6E9C 30CFFFFF */ andi $t7, $a2, 0xffff
|
||||
/* 0B7AA0 800B6EA0 0018CC00 */ sll $t9, $t8, 0x10
|
||||
/* 0B7AA4 800B6EA4 3C011400 */ lui $at, 0x1400
|
||||
/* 0B7AA8 800B6EA8 01E03025 */ move $a2, $t7
|
||||
/* 0B7AAC 800B6EAC 03214025 */ or $t0, $t9, $at
|
||||
/* 0B7AB0 800B6EB0 31CEFFFF */ andi $t6, $t6, 0xffff
|
||||
/* 0B7AB4 800B6EB4 010E7825 */ or $t7, $t0, $t6
|
||||
/* 0B7AB8 800B6EB8 AC8F0000 */ sw $t7, ($a0)
|
||||
/* 0B7ABC 800B6EBC 8FB80010 */ lw $t8, 0x10($sp)
|
||||
/* 0B7AC0 800B6EC0 3C0D803B */ lui $t5, %hi(gSynthesisReverbs) # $t5, 0x803b
|
||||
/* 0B7AC4 800B6EC4 25ADF790 */ addiu $t5, %lo(gSynthesisReverbs) # addiu $t5, $t5, -0x870
|
||||
/* 0B7AC8 800B6EC8 0018C940 */ sll $t9, $t8, 5
|
||||
/* 0B7ACC 800B6ECC 0338C821 */ addu $t9, $t9, $t8
|
||||
/* 0B7AD0 800B6ED0 0019C8C0 */ sll $t9, $t9, 3
|
||||
/* 0B7AD4 800B6ED4 032D4821 */ addu $t1, $t9, $t5
|
||||
/* 0B7AD8 800B6ED8 8D2E0018 */ lw $t6, 0x18($t1)
|
||||
/* 0B7ADC 800B6EDC 00065040 */ sll $t2, $a2, 1
|
||||
/* 0B7AE0 800B6EE0 3C0C8000 */ lui $t4, 0x8000
|
||||
/* 0B7AE4 800B6EE4 24B90180 */ addiu $t9, $a1, 0x180
|
||||
/* 0B7AE8 800B6EE8 01CA7821 */ addu $t7, $t6, $t2
|
||||
/* 0B7AEC 800B6EEC 01ECC021 */ addu $t8, $t7, $t4
|
||||
/* 0B7AF0 800B6EF0 332DFFFF */ andi $t5, $t9, 0xffff
|
||||
/* 0B7AF4 800B6EF4 AC980004 */ sw $t8, 4($a0)
|
||||
/* 0B7AF8 800B6EF8 248B0008 */ addiu $t3, $a0, 8
|
||||
/* 0B7AFC 800B6EFC 010D7025 */ or $t6, $t0, $t5
|
||||
/* 0B7B00 800B6F00 AD6E0000 */ sw $t6, ($t3)
|
||||
/* 0B7B04 800B6F04 8D2F001C */ lw $t7, 0x1c($t1)
|
||||
/* 0B7B08 800B6F08 25620008 */ addiu $v0, $t3, 8
|
||||
/* 0B7B0C 800B6F0C 01EAC021 */ addu $t8, $t7, $t2
|
||||
/* 0B7B10 800B6F10 030CC821 */ addu $t9, $t8, $t4
|
||||
/* 0B7B14 800B6F14 03E00008 */ jr $ra
|
||||
/* 0B7B18 800B6F18 AD790004 */ sw $t9, 4($t3)
|
||||
|
||||
glabel func_800B6F1C
|
||||
/* 0B7B1C 800B6F1C 00074103 */ sra $t0, $a3, 4
|
||||
/* 0B7B20 800B6F20 AFA50004 */ sw $a1, 4($sp)
|
||||
/* 0B7B24 800B6F24 00A07025 */ move $t6, $a1
|
||||
/* 0B7B28 800B6F28 311800FF */ andi $t8, $t0, 0xff
|
||||
/* 0B7B2C 800B6F2C 01C02825 */ move $a1, $t6
|
||||
/* 0B7B30 800B6F30 AFA60008 */ sw $a2, 8($sp)
|
||||
/* 0B7B34 800B6F34 30CFFFFF */ andi $t7, $a2, 0xffff
|
||||
/* 0B7B38 800B6F38 0018CC00 */ sll $t9, $t8, 0x10
|
||||
/* 0B7B3C 800B6F3C 3C011500 */ lui $at, 0x1500
|
||||
/* 0B7B40 800B6F40 01E03025 */ move $a2, $t7
|
||||
/* 0B7B44 800B6F44 03214025 */ or $t0, $t9, $at
|
||||
/* 0B7B48 800B6F48 31CEFFFF */ andi $t6, $t6, 0xffff
|
||||
/* 0B7B4C 800B6F4C 010E7825 */ or $t7, $t0, $t6
|
||||
/* 0B7B50 800B6F50 AC8F0000 */ sw $t7, ($a0)
|
||||
/* 0B7B54 800B6F54 8FB80010 */ lw $t8, 0x10($sp)
|
||||
/* 0B7B58 800B6F58 3C0D803B */ lui $t5, %hi(gSynthesisReverbs) # $t5, 0x803b
|
||||
/* 0B7B5C 800B6F5C 25ADF790 */ addiu $t5, %lo(gSynthesisReverbs) # addiu $t5, $t5, -0x870
|
||||
/* 0B7B60 800B6F60 0018C940 */ sll $t9, $t8, 5
|
||||
/* 0B7B64 800B6F64 0338C821 */ addu $t9, $t9, $t8
|
||||
/* 0B7B68 800B6F68 0019C8C0 */ sll $t9, $t9, 3
|
||||
/* 0B7B6C 800B6F6C 032D4821 */ addu $t1, $t9, $t5
|
||||
/* 0B7B70 800B6F70 8D2E0018 */ lw $t6, 0x18($t1)
|
||||
/* 0B7B74 800B6F74 00065040 */ sll $t2, $a2, 1
|
||||
/* 0B7B78 800B6F78 3C0C8000 */ lui $t4, 0x8000
|
||||
/* 0B7B7C 800B6F7C 24B90180 */ addiu $t9, $a1, 0x180
|
||||
/* 0B7B80 800B6F80 01CA7821 */ addu $t7, $t6, $t2
|
||||
/* 0B7B84 800B6F84 01ECC021 */ addu $t8, $t7, $t4
|
||||
/* 0B7B88 800B6F88 332DFFFF */ andi $t5, $t9, 0xffff
|
||||
/* 0B7B8C 800B6F8C AC980004 */ sw $t8, 4($a0)
|
||||
/* 0B7B90 800B6F90 248B0008 */ addiu $t3, $a0, 8
|
||||
/* 0B7B94 800B6F94 010D7025 */ or $t6, $t0, $t5
|
||||
/* 0B7B98 800B6F98 AD6E0000 */ sw $t6, ($t3)
|
||||
/* 0B7B9C 800B6F9C 8D2F001C */ lw $t7, 0x1c($t1)
|
||||
/* 0B7BA0 800B6FA0 25620008 */ addiu $v0, $t3, 8
|
||||
/* 0B7BA4 800B6FA4 01EAC021 */ addu $t8, $t7, $t2
|
||||
/* 0B7BA8 800B6FA8 030CC821 */ addu $t9, $t8, $t4
|
||||
/* 0B7BAC 800B6FAC 03E00008 */ jr $ra
|
||||
/* 0B7BB0 800B6FB0 AD790004 */ sw $t9, 4($t3)
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
root_dir = os.path.abspath(os.path.join(script_dir, ""))
|
||||
print(root_dir)
|
||||
src_dir = root_dir + "src/"
|
||||
|
||||
# Project-specific
|
||||
CPP_FLAGS = [
|
||||
"-Iinclude",
|
||||
"-Isrc",
|
||||
"-D_LANGUAGE_C",
|
||||
"-DF3DEX_GBI",
|
||||
"-D_MIPS_SZLONG=32",
|
||||
"-DSCRIPT(...)={}"
|
||||
"-D__attribute__(...)=",
|
||||
"-D__asm__(...)=",
|
||||
"-ffreestanding",
|
||||
]
|
||||
|
||||
def import_c_file(in_file) -> str:
|
||||
in_file = os.path.relpath(in_file, root_dir)
|
||||
cpp_command = ["gcc", "-E", "-P", "-dM", *CPP_FLAGS, in_file]
|
||||
cpp_command2 = ["gcc", "-E", "-P", *CPP_FLAGS, in_file]
|
||||
|
||||
out_text = ""
|
||||
try:
|
||||
out_text += subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8")
|
||||
out_text += subprocess.check_output(cpp_command2, cwd=root_dir, encoding="utf-8")
|
||||
except subprocess.CalledProcessError:
|
||||
print(
|
||||
"Failed to preprocess input file, when running command:\n"
|
||||
+ cpp_command,
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
if not out_text:
|
||||
print("Output is empty - aborting")
|
||||
sys.exit(1)
|
||||
return out_text
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="""Create a context file which can be used for mips_to_c"""
|
||||
)
|
||||
parser.add_argument(
|
||||
"c_file",
|
||||
help="""File from which to create context""",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
output = import_c_file(args.c_file)
|
||||
|
||||
with open(os.path.join(root_dir, "ctx.c"), "w", encoding="UTF-8") as f:
|
||||
f.write(output)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -88,14 +88,14 @@ SECTIONS
|
||||
BUILD_DIR/src/code_8008C1D0.o(.text);
|
||||
BUILD_DIR/src/code_80091750.o(.text);
|
||||
BUILD_DIR/src/code_800AF9B0.o(.text);
|
||||
BUILD_DIR/src/synthesis.o(.text);
|
||||
BUILD_DIR/asm/audio/heap.o(.text);
|
||||
BUILD_DIR/asm/audio/load.o(.text);
|
||||
BUILD_DIR/asm/audio/playback.o(.text);
|
||||
BUILD_DIR/asm/audio/effects.o(.text);
|
||||
BUILD_DIR/asm/audio/seqplayer.o(.text);
|
||||
BUILD_DIR/asm/audio/external.o(.text);
|
||||
BUILD_DIR/asm/audio/port_eu.o(.text);
|
||||
BUILD_DIR/src/audio/synthesis.o(.text);
|
||||
BUILD_DIR/src/audio/heap.o(.text);
|
||||
BUILD_DIR/src/audio/load.o(.text);
|
||||
BUILD_DIR/src/audio/playback.o(.text);
|
||||
BUILD_DIR/src/audio/effects.o(.text);
|
||||
BUILD_DIR/src/audio/seqplayer.o(.text);
|
||||
BUILD_DIR/src/audio/external.o(.text);
|
||||
BUILD_DIR/src/audio/port_eu.o(.text);
|
||||
|
||||
BUILD_DIR/src/os/osCreateThread.o(.text);
|
||||
BUILD_DIR/src/os/osInitialize.o(.text);
|
||||
@@ -331,7 +331,7 @@ SECTIONS
|
||||
. = SEG_AUDIO;
|
||||
BEGIN_NOLOAD(audio)
|
||||
{
|
||||
BUILD_DIR/src/synthesis.o(.bss*);
|
||||
BUILD_DIR/src/audio/synthesis.o(.bss*);
|
||||
}
|
||||
END_NOLOAD(audio)
|
||||
|
||||
|
||||
@@ -0,0 +1,327 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void func_800BDE50(void *arg0, s32 arg1) {
|
||||
f32 temp_f0;
|
||||
s32 temp_a2;
|
||||
u32 temp_v0_2;
|
||||
void *temp_v0;
|
||||
void *temp_v1;
|
||||
f32 phi_f0;
|
||||
void *phi_a3;
|
||||
s32 phi_a2;
|
||||
|
||||
phi_a3 = arg0;
|
||||
phi_a2 = 0;
|
||||
if (((arg0->unk0 << 9) < 0) || (arg1 != 0)) {
|
||||
temp_v0 = arg0->unk44;
|
||||
temp_f0 = arg0->unk24 * arg0->unk20 * temp_v0->unk2C;
|
||||
phi_f0 = temp_f0;
|
||||
if (((temp_v0->unk0 * 4) < 0) && ((arg0->unk3 & 0x20) != 0)) {
|
||||
phi_f0 = temp_v0->unk24 * temp_f0;
|
||||
}
|
||||
arg0->unk2C = phi_f0 * phi_f0;
|
||||
}
|
||||
if (arg0->unk0 & 0x200000) {
|
||||
arg0->unk28 = arg0->unk9 * arg0->unkA;
|
||||
}
|
||||
do {
|
||||
temp_v1 = phi_a3->unk48;
|
||||
temp_a2 = phi_a2 + 4;
|
||||
phi_a2 = temp_a2;
|
||||
if (temp_v1 != 0) {
|
||||
temp_v0_2 = temp_v1->unk0;
|
||||
if (((temp_v0_2 >> 0x1F) != 0) && (temp_v1->unk40 != 0)) {
|
||||
if (temp_v0_2 & 0x4000000) {
|
||||
temp_v1->unk30 = temp_v1->unk24 * arg0->unk30;
|
||||
temp_v1->unk2C = temp_v1->unk28 * arg0->unk2C;
|
||||
temp_v1->unk0 = temp_v1->unk0 & 0xFFFB;
|
||||
temp_v1->unk6 = (arg0->unk28 + (temp_v1->unk5 * (0x80 - arg0->unkA))) >> 7;
|
||||
} else {
|
||||
if (arg0->unk1 < 0) {
|
||||
temp_v1->unk30 = temp_v1->unk24 * arg0->unk30;
|
||||
}
|
||||
if (((arg0->unk0 << 9) < 0) || (arg1 != 0)) {
|
||||
temp_v1->unk2C = temp_v1->unk28 * arg0->unk2C;
|
||||
}
|
||||
if (arg0->unk0 & 0x200000) {
|
||||
temp_v1->unk6 = (arg0->unk28 + (temp_v1->unk5 * (0x80 - arg0->unkA))) >> 7;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
phi_a3 += 4;
|
||||
} while (temp_a2 != 0x10);
|
||||
arg0->unk1 = 0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BDE50.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BDE50(s32, u32); // extern
|
||||
? func_800BEF2C(void *); // extern
|
||||
extern ? D_803B5EF0;
|
||||
|
||||
void func_800BDFF8(void *arg0) {
|
||||
s32 temp_a0;
|
||||
s32 temp_s0;
|
||||
u16 temp_t1;
|
||||
void *phi_s1;
|
||||
s32 phi_s0;
|
||||
|
||||
if (arg0->unk10 != 0) {
|
||||
arg0->unk18 = arg0->unk18 + arg0->unk1C;
|
||||
arg0->unk0 = arg0->unk0 | 4;
|
||||
if (arg0->unk18 > 1.0f) {
|
||||
arg0->unk18 = 1.0f;
|
||||
}
|
||||
if (arg0->unk18 < 0.0f) {
|
||||
arg0->unk18 = 0.0f;
|
||||
}
|
||||
temp_t1 = arg0->unk10 - 1;
|
||||
arg0->unk10 = temp_t1;
|
||||
if (((temp_t1 & 0xFFFF) == 0) && (arg0->unk1 == 2)) {
|
||||
func_800BEF2C(arg0);
|
||||
return;
|
||||
}
|
||||
goto block_8;
|
||||
}
|
||||
block_8:
|
||||
phi_s1 = arg0;
|
||||
phi_s0 = 0;
|
||||
if (arg0->unk0 & 0x4000000) {
|
||||
arg0->unk2C = arg0->unk18 * arg0->unk28;
|
||||
}
|
||||
do {
|
||||
temp_a0 = phi_s1->unk30;
|
||||
if (((&D_803B5EF0 != temp_a0) == 1) && ((*temp_a0 >> 0x1F) == 1)) {
|
||||
func_800BDE50(temp_a0, (arg0->unk0 << 5) >> 0x1F);
|
||||
}
|
||||
temp_s0 = phi_s0 + 4;
|
||||
phi_s1 += 4;
|
||||
phi_s0 = temp_s0;
|
||||
} while (temp_s0 != 0x40);
|
||||
arg0->unk0 = arg0->unk0 & 0xFFFB;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BDFF8.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern ? gPitchBendFrequencyScale;
|
||||
|
||||
f32 func_800BE158(void *arg0) {
|
||||
u32 temp_v0;
|
||||
u32 phi_v0;
|
||||
|
||||
arg0->unk4 = arg0->unk4 + arg0->unk8;
|
||||
temp_v0 = arg0->unk4;
|
||||
phi_v0 = temp_v0;
|
||||
if (temp_v0 >= 0x80) {
|
||||
phi_v0 = 0x7F;
|
||||
}
|
||||
return ((*(&gPitchBendFrequencyScale + 0x200 + (phi_v0 * 4)) - 1.0f) * arg0->unkC) + 1.0f;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE158.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s16 func_800BE22C(void *arg0) {
|
||||
s32 temp_t3;
|
||||
u32 temp_t9;
|
||||
|
||||
temp_t9 = arg0->unk4 + arg0->unk10;
|
||||
temp_t3 = ((temp_t9 >> 0xA) & 0x3F) * 2;
|
||||
arg0->unk4 = temp_t9;
|
||||
return *(arg0->unk8 + temp_t3) >> 8;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE22C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800BE22C(u16); // extern
|
||||
extern ? gPitchBendFrequencyScale;
|
||||
|
||||
f32 func_800BE270(void *arg0, u16 arg1) {
|
||||
f32 temp_f0;
|
||||
f32 temp_f0_2;
|
||||
u16 temp_v0;
|
||||
u16 temp_v0_2;
|
||||
u16 temp_v0_3;
|
||||
u16 temp_v0_4;
|
||||
u16 temp_v0_5;
|
||||
void *temp_v1;
|
||||
u16 phi_a1;
|
||||
|
||||
temp_v0 = arg0->unk1A;
|
||||
phi_a1 = arg1;
|
||||
if (temp_v0 != 0) {
|
||||
arg0->unk1A = temp_v0 - 1;
|
||||
return 1.0f;
|
||||
}
|
||||
temp_v0_2 = arg0->unk18;
|
||||
if (temp_v0_2 != 0) {
|
||||
if (temp_v0_2 == 1) {
|
||||
arg0->unkC = arg0->unk0->unk12;
|
||||
} else {
|
||||
temp_f0 = arg0->unkC;
|
||||
arg0->unkC = temp_f0 + ((arg0->unk0->unk12 - temp_f0) / temp_v0_2);
|
||||
}
|
||||
arg0->unk18 = arg0->unk18 - 1;
|
||||
} else {
|
||||
temp_v1 = arg0->unk0;
|
||||
if (arg0->unkC != temp_v1->unk12) {
|
||||
temp_v0_3 = temp_v1->unk16;
|
||||
arg0->unk18 = temp_v0_3;
|
||||
if (temp_v0_3 == 0) {
|
||||
arg0->unkC = temp_v1->unk12;
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_v0_4 = arg0->unk16;
|
||||
if (temp_v0_4 != 0) {
|
||||
phi_a1 = temp_v0_4;
|
||||
if (temp_v0_4 == 1) {
|
||||
arg0->unk10 = arg0->unk0->unk10;
|
||||
} else {
|
||||
temp_f0_2 = arg0->unk10;
|
||||
arg0->unk10 = temp_f0_2 + ((arg0->unk0->unk10 - temp_f0_2) / temp_v0_4);
|
||||
}
|
||||
arg0->unk16 = arg0->unk16 - 1;
|
||||
} else if (arg0->unk10 != arg0->unk0->unk10) {
|
||||
temp_v0_5 = arg0->unk0->unk14;
|
||||
arg0->unk16 = temp_v0_5;
|
||||
if (temp_v0_5 == 0) {
|
||||
arg0->unk10 = arg0->unk0->unk10;
|
||||
}
|
||||
}
|
||||
if (arg0->unkC == 0.0f) {
|
||||
return 1.0f;
|
||||
}
|
||||
return ((*(&gPitchBendFrequencyScale + 0x200 + (func_800BE22C(phi_a1) * 4)) - 1.0f) * (arg0->unkC * 0.00024414062f)) + 1.0f;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE270.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
f32 func_800BE158(void *, void *); // extern
|
||||
f32 func_800BE270(void *, void *); // extern
|
||||
|
||||
void func_800BE468(void *arg0) {
|
||||
void *temp_a0;
|
||||
void *temp_a1;
|
||||
void *phi_a1;
|
||||
|
||||
temp_a1 = arg0;
|
||||
temp_a0 = arg0 + 0x7C;
|
||||
phi_a1 = temp_a1;
|
||||
if (arg0->unk7C != 0) {
|
||||
arg0 = temp_a1;
|
||||
arg0->unk38 = func_800BE158(temp_a0, temp_a1);
|
||||
phi_a1 = arg0;
|
||||
}
|
||||
if ((phi_a1->unkA0 != 0) && (phi_a1->unk44 != -1)) {
|
||||
arg0 = phi_a1;
|
||||
arg0->unk3C = func_800BE270(phi_a1 + 0x8C, phi_a1);
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE468.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern ? gWaveSamples;
|
||||
|
||||
void func_800BE4D4(void *arg0) {
|
||||
u16 temp_v0;
|
||||
u16 temp_v0_2;
|
||||
void *temp_a1;
|
||||
void *temp_a1_2;
|
||||
void *temp_t6;
|
||||
void *temp_t9;
|
||||
void *temp_v0_3;
|
||||
void *temp_v1;
|
||||
void *temp_v1_2;
|
||||
void *phi_a1;
|
||||
void *phi_v1;
|
||||
|
||||
arg0->unkA0 = 1;
|
||||
arg0->unk90 = 0;
|
||||
arg0->unk3C = 1.0f;
|
||||
arg0->unk38 = 1.0f;
|
||||
temp_v1 = arg0 + 0x8C;
|
||||
arg0->unk94 = *(&gWaveSamples + 8);
|
||||
temp_t9 = arg0->unk44->unk4C;
|
||||
arg0->unk8C = temp_t9;
|
||||
temp_v0 = temp_t9->unk16;
|
||||
arg0->unkA4 = temp_v0;
|
||||
phi_v1 = temp_v1;
|
||||
if (temp_v0 == 0) {
|
||||
temp_v1_2 = arg0 + 0x8C;
|
||||
temp_a1 = temp_v1_2->unk0;
|
||||
temp_v1_2->unkC = temp_a1->unk12;
|
||||
phi_a1 = temp_a1;
|
||||
phi_v1 = temp_v1_2;
|
||||
} else {
|
||||
temp_a1_2 = temp_v1->unk0;
|
||||
temp_v1->unkC = temp_a1_2->unkE;
|
||||
phi_a1 = temp_a1_2;
|
||||
}
|
||||
temp_v0_2 = phi_a1->unk14;
|
||||
phi_v1->unk16 = temp_v0_2;
|
||||
if (temp_v0_2 == 0) {
|
||||
phi_v1->unk10 = phi_a1->unk10;
|
||||
} else {
|
||||
phi_v1->unk10 = phi_a1->unkC;
|
||||
}
|
||||
temp_v0_3 = arg0 + 0x30;
|
||||
phi_v1->unk1A = phi_a1->unk18;
|
||||
temp_t6 = temp_v0_3->unk14;
|
||||
temp_v0_3->unk4C = temp_t6->unk8;
|
||||
temp_v0_3->unk50 = temp_t6->unkC;
|
||||
temp_v0_3->unk54 = temp_t6->unk10;
|
||||
temp_v0_3->unk58 = temp_t6->unk14;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE4D4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void func_800BE5BC(void *arg0, s32 arg1, ? arg2) {
|
||||
arg0->unk0 = 0;
|
||||
arg0->unk1 = 0;
|
||||
arg0->unk4 = 0;
|
||||
arg0->unk20 = arg1;
|
||||
arg0->unk8 = 0.0f;
|
||||
arg0->unk14 = 0.0f;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE5BC.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_800BE5E0:
|
||||
|
||||
Unable to determine jump table for jr instruction at func_800BE5E0.s line 11.
|
||||
|
||||
There must be a read of a variable in the same block as
|
||||
the instruction, which has a name starting with "jtbl"/"jpt_".
|
||||
*/
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/effects/func_800BE5E0.s")
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
+1087
File diff suppressed because it is too large
Load Diff
+1190
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,433 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800B70EC(s32, s32 *, s32, s16); // extern
|
||||
s32 func_800BA00C(); // extern
|
||||
? func_800BAC04(); // extern
|
||||
? func_800CBCB0(void *); // extern
|
||||
extern OSMesgQueue *D_800EA3A8;
|
||||
extern OSMesgQueue *D_800EA3AC;
|
||||
extern OSMesgQueue *D_800EA3B0;
|
||||
extern OSMesgQueue *D_800EA3B4;
|
||||
extern s32 D_800EA484;
|
||||
extern u8 D_803B0500;
|
||||
extern u8 D_803B0501;
|
||||
extern OSMesgQueue D_803B6008;
|
||||
extern ? D_803B7088;
|
||||
extern s32 D_803B70B8;
|
||||
extern s32 D_803B70BC;
|
||||
extern s32 D_803B70C0;
|
||||
extern s32 D_803B70C4;
|
||||
extern ? D_803B70C8;
|
||||
extern s32 D_803B70D0;
|
||||
extern void *D_803B70D4;
|
||||
extern ? D_803B70D8;
|
||||
extern ? D_803B7180;
|
||||
extern ? D_803B718C;
|
||||
extern s32 D_803B7194;
|
||||
extern ? aspMainDataEnd;
|
||||
extern ? aspMainDataStart;
|
||||
extern ? aspMainTextStart;
|
||||
extern ? rspbootTextEnd;
|
||||
extern ? rspbootTextStart;
|
||||
|
||||
void *create_next_audio_frame_task(void) {
|
||||
u32 sp74;
|
||||
s32 sp70;
|
||||
s32 sp60;
|
||||
void *sp58;
|
||||
void *sp54;
|
||||
s32 *sp40;
|
||||
s16 *temp_s1_3;
|
||||
s16 temp_a0;
|
||||
s16 temp_v0_2;
|
||||
s16 temp_v1;
|
||||
s32 *temp_a3;
|
||||
s32 temp_hi;
|
||||
s32 temp_s0;
|
||||
s32 temp_s0_2;
|
||||
s32 temp_s0_3;
|
||||
s32 temp_s0_4;
|
||||
s32 temp_s1;
|
||||
s32 temp_s1_2;
|
||||
s32 temp_t3;
|
||||
s32 temp_t5;
|
||||
s32 temp_v0;
|
||||
void *temp_v1_2;
|
||||
s32 phi_s0;
|
||||
s32 phi_s1;
|
||||
s32 phi_s0_2;
|
||||
s32 phi_s0_3;
|
||||
s32 phi_s1_2;
|
||||
s32 phi_s1_3;
|
||||
|
||||
D_803B70B8 = D_803B70B8 + 1;
|
||||
if ((D_803B70B8 % D_803B7088.unk0) != 0) {
|
||||
return NULL;
|
||||
}
|
||||
osSendMesg(D_800EA3A8, D_803B70B8, 0);
|
||||
temp_t3 = D_803B70C4 + 1;
|
||||
temp_t5 = temp_t3 % 3;
|
||||
temp_hi = (temp_t5 + 1) % 3;
|
||||
D_803B70C4 = temp_t3;
|
||||
D_803B70C0 = D_803B70C0 ^ 1;
|
||||
D_803B70C4 = temp_t5;
|
||||
sp74 = osAiGetLength() >> 2;
|
||||
temp_v1 = *(&D_803B718C + (temp_hi * 2));
|
||||
if (temp_v1 != 0) {
|
||||
osAiSetNextBuffer(*(&D_803B7180 + (temp_hi * 4)), temp_v1 * 4);
|
||||
}
|
||||
temp_s1 = D_803B70BC;
|
||||
phi_s0 = 0;
|
||||
phi_s1 = temp_s1;
|
||||
phi_s0_2 = 0;
|
||||
phi_s0_3 = 0;
|
||||
phi_s1_3 = temp_s1;
|
||||
if (temp_s1 > 0) {
|
||||
do {
|
||||
phi_s1_2 = phi_s1_3;
|
||||
if (osRecvMesg(&D_803B6008, NULL, 0) == 0) {
|
||||
phi_s1_2 = phi_s1_3 - 1;
|
||||
}
|
||||
temp_s0 = phi_s0 + 1;
|
||||
phi_s0 = temp_s0;
|
||||
phi_s1 = phi_s1_2;
|
||||
phi_s1_3 = phi_s1_2;
|
||||
} while (temp_s0 < D_803B70BC);
|
||||
}
|
||||
if ((phi_s1 != 0) && (phi_s1 > 0)) {
|
||||
do {
|
||||
osRecvMesg(&D_803B6008, NULL, 1);
|
||||
temp_s0_2 = phi_s0_2 + 1;
|
||||
phi_s0_2 = temp_s0_2;
|
||||
} while (temp_s0_2 != phi_s1);
|
||||
}
|
||||
temp_s1_2 = D_803B6008.validCount;
|
||||
if ((temp_s1_2 != 0) && (temp_s1_2 > 0)) {
|
||||
do {
|
||||
osRecvMesg(&D_803B6008, NULL, 0);
|
||||
temp_s0_3 = phi_s0_3 + 1;
|
||||
phi_s0_3 = temp_s0_3;
|
||||
} while (temp_s0_3 != temp_s1_2);
|
||||
}
|
||||
D_803B70BC = 0;
|
||||
func_800BAC04();
|
||||
if (osRecvMesg(D_800EA3B0, &sp58, 0) != -1) {
|
||||
D_803B0501 = sp58;
|
||||
D_803B0500 = 5;
|
||||
}
|
||||
if ((D_803B0500 != 0) && (func_800BA00C() == 0)) {
|
||||
if (D_803B0500 == 0) {
|
||||
osSendMesg(D_800EA3B4, D_803B0501, 0);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
temp_v0 = D_803B70C0;
|
||||
D_803B70D4 = (temp_v0 * 0x50) + &D_803B70D8;
|
||||
temp_s0_4 = D_803B70C4;
|
||||
temp_a3 = (temp_s0_4 * 4) + &D_803B7180;
|
||||
D_803B70D0 = *(&D_803B70C8 + (temp_v0 * 4));
|
||||
sp60 = *temp_a3;
|
||||
temp_s1_3 = (temp_s0_4 * 2) + &D_803B718C;
|
||||
*temp_s1_3 = (((D_803B7088.unk6 - sp74) + 0x40) & 0xFFF0) + 0x10;
|
||||
temp_a0 = D_803B7088.unkA;
|
||||
if (*temp_s1_3 < temp_a0) {
|
||||
*temp_s1_3 = temp_a0;
|
||||
}
|
||||
temp_v0_2 = D_803B7088.unk8;
|
||||
if (temp_v0_2 < *temp_s1_3) {
|
||||
*temp_s1_3 = temp_v0_2;
|
||||
}
|
||||
sp40 = temp_a3;
|
||||
if (osRecvMesg(D_800EA3AC, &sp54, 0) != -1) {
|
||||
func_800CBCB0(sp54);
|
||||
}
|
||||
D_803B70D0 = func_800B70EC(D_803B70D0, &sp70, sp60, *temp_s1_3);
|
||||
D_803B7194 = osGetCount() * (D_803B7194 + D_803B70B8);
|
||||
D_803B7194 = *(*sp40 + ((D_803B70B8 & 0xFF) * 2)) + D_803B7194;
|
||||
D_803B70D4->unk40 = 0;
|
||||
D_803B70D4->unk44 = 0;
|
||||
temp_v1_2 = D_803B70D4;
|
||||
temp_v1_2->unk0 = 2;
|
||||
temp_v1_2->unk4 = 0;
|
||||
temp_v1_2->unk8 = &rspbootTextStart;
|
||||
temp_v1_2->unkC = &rspbootTextEnd - &rspbootTextStart;
|
||||
temp_v1_2->unk10 = &aspMainTextStart;
|
||||
temp_v1_2->unk18 = &aspMainDataStart;
|
||||
temp_v1_2->unk14 = 0x1000;
|
||||
temp_v1_2->unk1C = ((&aspMainDataEnd - &aspMainDataStart) >> 3) * 8;
|
||||
temp_v1_2->unk20 = 0;
|
||||
temp_v1_2->unk24 = 0;
|
||||
temp_v1_2->unk28 = 0;
|
||||
temp_v1_2->unk2C = 0;
|
||||
temp_v1_2->unk30 = *(&D_803B70C8 + (D_803B70C0 * 4));
|
||||
temp_v1_2->unk38 = 0;
|
||||
temp_v1_2->unk3C = 0;
|
||||
temp_v1_2->unk34 = sp70 * 8;
|
||||
if (D_800EA484 < sp70) {
|
||||
D_800EA484 = sp70;
|
||||
}
|
||||
return D_803B70D4;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/create_next_audio_frame_task.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BB388(u8, u8, u8, void *); // extern
|
||||
? func_800BBDDC(u8, ?, void *); // extern
|
||||
? func_800BBEF0(u8, u8, u8, void *); // extern
|
||||
? func_800BEF2C(u32 *, s32, void *); // extern
|
||||
? func_800CBA08(u8, s32, void *); // extern
|
||||
? func_800CBA64(u8, s32); // extern
|
||||
extern u8 D_803B1510;
|
||||
extern u8 D_803B1658;
|
||||
extern u8 D_803B17A0;
|
||||
extern u8 D_803B18E8;
|
||||
extern s8 D_803B70B6;
|
||||
|
||||
void func_800CB818(void *arg0) {
|
||||
s32 temp_a1;
|
||||
u32 *temp_a0;
|
||||
u8 temp_a0_2;
|
||||
u8 temp_a1_2;
|
||||
u8 temp_a2;
|
||||
u8 temp_v0;
|
||||
u8 temp_v0_2;
|
||||
void *temp_a3;
|
||||
|
||||
temp_v0 = arg0->unk0;
|
||||
temp_a3 = arg0;
|
||||
if (temp_v0 != 0x81) {
|
||||
if (temp_v0 != 0x82) {
|
||||
if (temp_v0 != 0x83) {
|
||||
if (temp_v0 != 0x88) {
|
||||
if (temp_v0 != 0xF0) {
|
||||
if (temp_v0 != 0xF1) {
|
||||
if (temp_v0 != 0xF2) {
|
||||
if (temp_v0 != 0xF3) {
|
||||
return;
|
||||
}
|
||||
func_800BB388(temp_a3->unk1, temp_a3->unk2, temp_a3->unk3, temp_a3);
|
||||
// Duplicate return node #19. Try simplifying control flow for better match
|
||||
return;
|
||||
}
|
||||
D_803B1510 = (D_803B1510 & 0xFFDF) | 4;
|
||||
D_803B1658 = (D_803B1658 & 0xFFDF) | 4;
|
||||
D_803B17A0 = (D_803B17A0 & 0xFFDF) | 4;
|
||||
D_803B18E8 = (D_803B18E8 & 0xFFDF) | 4;
|
||||
return;
|
||||
}
|
||||
D_803B1510 = D_803B1510 | 0x24;
|
||||
D_803B1658 = D_803B1658 | 0x24;
|
||||
D_803B17A0 = D_803B17A0 | 0x24;
|
||||
D_803B18E8 = D_803B18E8 | 0x24;
|
||||
return;
|
||||
}
|
||||
D_803B70B6 = temp_a3->unk4;
|
||||
return;
|
||||
}
|
||||
goto block_10;
|
||||
}
|
||||
temp_v0_2 = temp_a3->unk1;
|
||||
temp_a0 = (temp_v0_2 * 0x148) + &D_803B1510;
|
||||
if ((*temp_a0 >> 0x1F) != 0) {
|
||||
temp_a1 = temp_a3->unk4;
|
||||
if (temp_a1 == 0) {
|
||||
func_800BEF2C(temp_a0, temp_a1, temp_a3);
|
||||
return;
|
||||
}
|
||||
func_800CBA08(temp_v0_2, temp_a1, temp_a3);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
block_10:
|
||||
temp_a0_2 = temp_a3->unk1;
|
||||
temp_a1_2 = temp_a3->unk2;
|
||||
temp_a2 = temp_a3->unk3;
|
||||
arg0 = temp_a3;
|
||||
func_800BBEF0(temp_a0_2, temp_a1_2, temp_a2, temp_a3);
|
||||
func_800CBA64(arg0->unk1, arg0->unk4);
|
||||
return;
|
||||
}
|
||||
func_800BBDDC(temp_a3->unk2, 3, temp_a3);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CB818.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern ? D_803B1510;
|
||||
|
||||
void func_800CBA08(s32 arg0, s16 arg1) {
|
||||
? sp-10;
|
||||
void *temp_v0;
|
||||
s16 phi_a1;
|
||||
|
||||
phi_a1 = arg1;
|
||||
if (arg1 == 0) {
|
||||
phi_a1 = 1;
|
||||
}
|
||||
temp_v0 = (arg0 * 0x148) + &D_803B1510;
|
||||
temp_v0->unk1 = 2;
|
||||
temp_v0->unk10 = phi_a1;
|
||||
temp_v0->unk1C = -(temp_v0->unk18 / phi_a1);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBA08.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern ? D_803B1510;
|
||||
|
||||
void func_800CBA64(s32 arg0, s16 arg1) {
|
||||
? sp-10;
|
||||
void *temp_v0;
|
||||
|
||||
if (arg1 != 0) {
|
||||
temp_v0 = (arg0 * 0x148) + &D_803B1510;
|
||||
temp_v0->unk1 = 1;
|
||||
temp_v0->unk12 = arg1;
|
||||
temp_v0->unk10 = arg1;
|
||||
temp_v0->unk18 = 0.0f;
|
||||
temp_v0->unk1C = 0.0f;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBA64.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern s8 D_800EA3A0;
|
||||
extern s8 D_800EA3A4;
|
||||
extern OSMesgQueue *D_800EA3A8;
|
||||
extern OSMesgQueue *D_800EA3AC;
|
||||
extern OSMesgQueue *D_800EA3B0;
|
||||
extern OSMesgQueue *D_800EA3B4;
|
||||
extern void *D_80194020;
|
||||
extern void *D_80194028;
|
||||
extern void *D_80194038;
|
||||
extern void *D_8019403C;
|
||||
|
||||
void func_800CBAB4(void) {
|
||||
D_800EA3A0 = 0;
|
||||
D_800EA3A4 = 0;
|
||||
osCreateMesgQueue(D_800EA3A8, &D_80194020, 1);
|
||||
osCreateMesgQueue(D_800EA3AC, &D_80194028, 4);
|
||||
osCreateMesgQueue(D_800EA3B0, &D_80194038, 1);
|
||||
osCreateMesgQueue(D_800EA3B4, &D_8019403C, 1);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBAB4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern u8 D_800EA3A0;
|
||||
extern ? D_80193820;
|
||||
|
||||
void func_800CBB48(s32 arg0, s32 *arg1) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_v0 = (D_800EA3A0 * 8) + &D_80193820;
|
||||
temp_v0->unk0 = arg0;
|
||||
temp_v0->unk4 = *arg1;
|
||||
D_800EA3A0 = D_800EA3A0 + 1;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBB48.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800CBB48(? *); // extern
|
||||
|
||||
void func_800CBB88(? arg1) {
|
||||
func_800CBB48(&arg1);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBB88.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800CBB48(? *); // extern
|
||||
|
||||
void func_800CBBB8(? arg1) {
|
||||
func_800CBB48(&arg1);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBBB8.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800CBB48(s32 *); // extern
|
||||
|
||||
void func_800CBBE8(s32 arg1) {
|
||||
s32 sp34;
|
||||
|
||||
sp34 = arg1 << 0x18;
|
||||
func_800CBB48(&sp34);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBBE8.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern u8 D_800EA3A0;
|
||||
extern u8 D_800EA3A4;
|
||||
extern OSMesgQueue *D_800EA3AC;
|
||||
extern s32 D_800EA4A4;
|
||||
|
||||
void func_800CBC24(void) {
|
||||
s32 temp_t6;
|
||||
u8 temp_v0;
|
||||
u8 temp_v1;
|
||||
|
||||
temp_v1 = D_800EA3A4;
|
||||
temp_v0 = D_800EA3A0;
|
||||
temp_t6 = ((temp_v0 - temp_v1) + 0x100) & 0xFF;
|
||||
if (D_800EA4A4 < temp_t6) {
|
||||
D_800EA4A4 = temp_t6;
|
||||
}
|
||||
osSendMesg(D_800EA3AC, ((temp_v1 & 0xFF) << 8) | (temp_v0 & 0xFF), 0);
|
||||
D_800EA3A4 = D_800EA3A0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBC24.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_800CBCB0:
|
||||
|
||||
Unable to determine jump table for jr instruction at func_800CBCB0.s line 116.
|
||||
|
||||
There must be a read of a variable in the same block as
|
||||
the instruction, which has a name starting with "jtbl"/"jpt_".
|
||||
*/
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBCB0.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_800CBF48:
|
||||
|
||||
Last instruction is missing a delay slot:
|
||||
jr $ra
|
||||
*/
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/port_eu/func_800CBF48.s")
|
||||
#endif
|
||||
@@ -0,0 +1,807 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BD318(void *, void *, s32); // extern
|
||||
|
||||
void func_800BE8F0(void *arg0) {
|
||||
s32 temp_a0;
|
||||
u8 temp_t0;
|
||||
u8 temp_t2;
|
||||
u8 temp_t4;
|
||||
u8 temp_t6;
|
||||
u8 temp_t8;
|
||||
u8 temp_t8_2;
|
||||
void *temp_v1;
|
||||
void *phi_v1;
|
||||
s32 phi_a0;
|
||||
|
||||
temp_t8 = arg0->unk0 & 0xFF7F;
|
||||
temp_t0 = temp_t8 & 0xBF;
|
||||
arg0->unk0 = temp_t8;
|
||||
temp_t2 = temp_t0 & 0xDF;
|
||||
arg0->unk0 = temp_t0;
|
||||
temp_t4 = temp_t2 & 0xEF;
|
||||
arg0->unk0 = temp_t2;
|
||||
temp_t6 = temp_t4 & 0xF7;
|
||||
arg0->unk0 = temp_t4;
|
||||
temp_t8_2 = temp_t6 & 0xFB;
|
||||
arg0->unk0 = temp_t6;
|
||||
arg0->unk0 = temp_t8_2;
|
||||
arg0->unk10 = 0x800;
|
||||
arg0->unkC = 0x800;
|
||||
arg0->unk1E = 0;
|
||||
arg0->unk0 = temp_t8_2 & 0xFD;
|
||||
arg0->unk8 = 0;
|
||||
arg0->unk1 = 0xFF;
|
||||
arg0->unk78 = 0;
|
||||
arg0->unk9 = 0x40;
|
||||
arg0->unkA = 0x80;
|
||||
arg0->unk38 = 0;
|
||||
arg0->unk7 = 0;
|
||||
arg0->unk4 = 0;
|
||||
arg0->unk5 = 3;
|
||||
arg0->unk1A = 0;
|
||||
arg0->unk80 = gDefaultEnvelope;
|
||||
arg0->unk7C = 0x20;
|
||||
arg0->unk7D = 0;
|
||||
arg0->unk12 = 0;
|
||||
arg0->unkE = 0;
|
||||
arg0->unk14 = 0;
|
||||
arg0->unk16 = 0;
|
||||
arg0->unk18 = 0;
|
||||
arg0->unk24 = 1.0f;
|
||||
arg0->unk20 = 1.0f;
|
||||
arg0->unk30 = 1.0f;
|
||||
phi_v1 = arg0;
|
||||
phi_a0 = 0;
|
||||
do {
|
||||
temp_a0 = phi_a0 + 4;
|
||||
phi_v1->unk59 = -1;
|
||||
phi_v1->unk5A = -1;
|
||||
phi_v1->unk5B = -1;
|
||||
temp_v1 = phi_v1 + 4;
|
||||
temp_v1->unk54 = -1;
|
||||
phi_v1 = temp_v1;
|
||||
phi_a0 = temp_a0;
|
||||
} while (temp_a0 != 8);
|
||||
arg0->unk0 = arg0->unk0 & 0xFFFE;
|
||||
func_800BD318(arg0 + 0x84, arg0, 8);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BE8F0.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BD120(s32, void *, s32); // extern
|
||||
s32 func_800BF044(? *, void *, s32); // extern
|
||||
extern ? D_803B5FB8;
|
||||
|
||||
? func_800BEA10(void *arg0, s32 arg1) {
|
||||
void *sp1C;
|
||||
s32 temp_a3;
|
||||
s32 temp_t7;
|
||||
s32 temp_v0;
|
||||
u8 temp_t0;
|
||||
u8 temp_t1;
|
||||
u8 temp_t5;
|
||||
u8 temp_t7_2;
|
||||
void *temp_a2;
|
||||
void *temp_v1;
|
||||
|
||||
temp_t7 = arg1 * 4;
|
||||
temp_a2 = arg0 + temp_t7;
|
||||
temp_a3 = temp_a2->unk48;
|
||||
if (temp_a3 == 0) {
|
||||
sp1C = temp_a2;
|
||||
temp_v0 = func_800BF044(&D_803B5FB8, temp_a2, temp_a3);
|
||||
temp_a2->unk48 = temp_v0;
|
||||
if (temp_v0 == 0) {
|
||||
temp_a2->unk48 = 0;
|
||||
return -1;
|
||||
}
|
||||
goto block_4;
|
||||
}
|
||||
sp1C = temp_a2;
|
||||
func_800BD120(temp_a3, temp_a2, temp_a3);
|
||||
block_4:
|
||||
temp_v1 = (arg0 + temp_t7)->unk48;
|
||||
temp_v1->unk4C = arg0;
|
||||
temp_t5 = temp_v1->unk0 | 0x80;
|
||||
temp_t7_2 = temp_t5 & 0xDF;
|
||||
temp_t0 = temp_t7_2 & 0xEF;
|
||||
temp_v1->unk18 = arg0->unk7C;
|
||||
temp_v1->unk0 = temp_t5;
|
||||
temp_v1->unk1C = arg0->unk80;
|
||||
temp_t1 = temp_t0 & 0xBF;
|
||||
temp_v1->unk0 = temp_t7_2;
|
||||
temp_v1->unk0 = temp_t0;
|
||||
temp_v1->unk0 = temp_t1;
|
||||
temp_v1->unk18 = 0;
|
||||
temp_v1->unk0 = temp_t1 & 0xFD;
|
||||
temp_v1->unk8 = 0;
|
||||
temp_v1->unk68 = 0;
|
||||
temp_v1->unk2 = 0;
|
||||
temp_v1->unk3 = 0x80;
|
||||
temp_v1->unk5 = 0x40;
|
||||
temp_v1->unk22 = 0;
|
||||
temp_v1->unk38 = 0;
|
||||
temp_v1->unk3A = 0;
|
||||
temp_v1->unk3C = 0;
|
||||
temp_v1->unk40 = 0;
|
||||
temp_v1->unk44 = 0;
|
||||
temp_v1->unk1 = 0xFF;
|
||||
temp_v1->unk28 = 0.0f;
|
||||
temp_v1->unk24 = 1.0f;
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEA10.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BD120(); // extern
|
||||
|
||||
void func_800BEB18(u8 *arg0) {
|
||||
u8 temp_t0;
|
||||
u8 temp_t9;
|
||||
|
||||
if (arg0 != 0) {
|
||||
func_800BD120();
|
||||
temp_t9 = *arg0 & 0xFF7F;
|
||||
temp_t0 = temp_t9 | 0x40;
|
||||
*arg0 = temp_t9;
|
||||
*arg0 = temp_t0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEB18.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BEB18(s32); // extern
|
||||
? func_800BF004(? *, s32, s32); // extern
|
||||
extern ? D_803B5FB8;
|
||||
|
||||
void func_800BEB54(s32 arg0, s32 arg1) {
|
||||
s32 sp1C;
|
||||
void *sp18;
|
||||
s32 temp_a2;
|
||||
void *temp_v0;
|
||||
|
||||
temp_v0 = arg0 + (arg1 * 4);
|
||||
temp_a2 = temp_v0->unk48;
|
||||
if (temp_a2 != 0) {
|
||||
sp18 = temp_v0;
|
||||
sp1C = temp_a2;
|
||||
func_800BF004(&D_803B5FB8, temp_a2 + 0x6C, temp_a2);
|
||||
func_800BEB18(sp1C);
|
||||
temp_v0->unk48 = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEB54.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BD418(s32); // extern
|
||||
? func_800BEB54(u8 *, s32); // extern
|
||||
|
||||
void func_800BEBA4(u8 *arg0) {
|
||||
s32 temp_s0;
|
||||
u8 temp_t9;
|
||||
s32 phi_s0;
|
||||
|
||||
phi_s0 = 0;
|
||||
do {
|
||||
func_800BEB54(arg0, phi_s0);
|
||||
temp_s0 = phi_s0 + 1;
|
||||
phi_s0 = temp_s0;
|
||||
} while (temp_s0 != 4);
|
||||
func_800BD418(arg0 + 0x84);
|
||||
temp_t9 = *arg0 & 0xFF7F;
|
||||
*arg0 = temp_t9;
|
||||
*arg0 = temp_t9 | 0x40;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEBA4.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
extern ? D_803B1A30;
|
||||
extern ? D_803B3EF0;
|
||||
extern ? D_803B5EF0;
|
||||
|
||||
? *func_800BEC10(void) {
|
||||
? *temp_v1;
|
||||
? *phi_v1;
|
||||
|
||||
phi_v1 = &D_803B1A30;
|
||||
loop_1:
|
||||
if (phi_v1->unk44 == 0) {
|
||||
return phi_v1;
|
||||
}
|
||||
if (phi_v1->unk108 == 0) {
|
||||
return phi_v1 + 0xC4;
|
||||
}
|
||||
if (phi_v1->unk1CC == 0) {
|
||||
return phi_v1 + 0x188;
|
||||
}
|
||||
if (phi_v1->unk290 == 0) {
|
||||
return phi_v1 + 0x24C;
|
||||
}
|
||||
temp_v1 = phi_v1 + 0x310;
|
||||
phi_v1 = temp_v1;
|
||||
if (temp_v1 == &D_803B3EF0) {
|
||||
return &D_803B5EF0;
|
||||
}
|
||||
goto loop_1;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEC10.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BE8F0(s32); // extern
|
||||
? func_800BEBA4(s32, s32); // extern
|
||||
s32 func_800BEC10(); // extern
|
||||
extern ? D_803B5EF0;
|
||||
extern s32 D_803B7198;
|
||||
|
||||
void func_800BEC8C(void *arg0, s32 arg1) {
|
||||
s32 temp_s0;
|
||||
s32 temp_s3;
|
||||
s32 temp_v0;
|
||||
void *temp_s2;
|
||||
s32 phi_a1;
|
||||
s32 phi_s3;
|
||||
|
||||
phi_a1 = arg1 & 0xFFFF;
|
||||
phi_s3 = 0;
|
||||
do {
|
||||
if ((phi_a1 & 1) != 0) {
|
||||
temp_s2 = arg0 + (phi_s3 * 4);
|
||||
temp_s0 = temp_s2->unk30;
|
||||
if (((temp_s0 != &D_803B5EF0) == 1) && (arg0 == temp_s0->unk44)) {
|
||||
func_800BEBA4(temp_s0, phi_a1);
|
||||
temp_s0->unk44 = 0;
|
||||
}
|
||||
temp_v0 = func_800BEC10();
|
||||
if (temp_v0 == &D_803B5EF0) {
|
||||
D_803B7198 = phi_s3 + 0x10000;
|
||||
temp_s2->unk30 = temp_v0;
|
||||
} else {
|
||||
func_800BE8F0(temp_v0);
|
||||
temp_s2->unk30 = temp_v0;
|
||||
temp_v0->unk44 = arg0;
|
||||
temp_v0->unk6 = arg0->unk5;
|
||||
temp_v0->unk3 = arg0->unk3;
|
||||
temp_v0->unk2 = arg0->unk2;
|
||||
}
|
||||
}
|
||||
temp_s3 = phi_s3 + 1;
|
||||
phi_a1 = (phi_a1 >> 1) & 0xFFFF;
|
||||
phi_s3 = temp_s3;
|
||||
} while (temp_s3 != 0x10);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEC8C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BEBA4(s32, s32); // extern
|
||||
extern ? D_803B5EF0;
|
||||
|
||||
void func_800BEDB8(s32 arg0, s32 arg1) {
|
||||
s32 temp_s0;
|
||||
s32 temp_s1;
|
||||
void *temp_s3;
|
||||
s32 phi_a1;
|
||||
s32 phi_s1;
|
||||
|
||||
phi_a1 = arg1 & 0xFFFF;
|
||||
phi_s1 = 0;
|
||||
do {
|
||||
if ((phi_a1 & 1) != 0) {
|
||||
temp_s3 = arg0 + (phi_s1 * 4);
|
||||
temp_s0 = temp_s3->unk30;
|
||||
if ((temp_s0 != &D_803B5EF0) == 1) {
|
||||
if (arg0 == temp_s0->unk44) {
|
||||
func_800BEBA4(temp_s0, phi_a1);
|
||||
temp_s0->unk44 = 0;
|
||||
}
|
||||
temp_s3->unk30 = &D_803B5EF0;
|
||||
}
|
||||
}
|
||||
temp_s1 = phi_s1 + 1;
|
||||
phi_a1 = (phi_a1 >> 1) & 0xFFFF;
|
||||
phi_s1 = temp_s1;
|
||||
} while (temp_s1 != 0x10);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEDB8.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BEB54(void *, s32); // extern
|
||||
extern ? D_803B5EF0;
|
||||
|
||||
void func_800BEE88(s32 arg0, s32 arg1, s32 arg2) {
|
||||
s32 temp_s0;
|
||||
u8 temp_t4;
|
||||
void *temp_s2;
|
||||
void *phi_s1;
|
||||
s32 phi_s0;
|
||||
|
||||
temp_s2 = (arg0 + ((arg1 & 0xFF) * 4))->unk30;
|
||||
phi_s0 = 0;
|
||||
if (temp_s2 != &D_803B5EF0) {
|
||||
temp_s2->unk78 = 0;
|
||||
temp_s2->unk60 = arg2;
|
||||
temp_t4 = temp_s2->unk0 | 0x80;
|
||||
temp_s2->unk0 = temp_t4;
|
||||
temp_s2->unk0 = temp_t4 & 0xBF;
|
||||
temp_s2->unk1A = 0;
|
||||
phi_s1 = temp_s2;
|
||||
do {
|
||||
if (phi_s1->unk48 != 0) {
|
||||
func_800BEB54(temp_s2, phi_s0);
|
||||
}
|
||||
temp_s0 = phi_s0 + 1;
|
||||
phi_s1 += 4;
|
||||
phi_s0 = temp_s0;
|
||||
} while (temp_s0 != 4);
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEE88.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BD418(s32); // extern
|
||||
? func_800BEDB8(?); // extern
|
||||
extern ? D_803AFE18;
|
||||
extern ? D_803B03C0;
|
||||
extern ? D_803B0400;
|
||||
|
||||
void func_800BEF2C(void *arg0) {
|
||||
u8 *temp_v0;
|
||||
u8 *temp_v1_2;
|
||||
u8 temp_a0;
|
||||
u8 temp_t0;
|
||||
u8 temp_t9;
|
||||
u8 temp_v1;
|
||||
|
||||
func_800BEDB8(0xFFFF);
|
||||
func_800BD418(arg0 + 0x94);
|
||||
temp_t9 = arg0->unk0 | 0x40;
|
||||
temp_t0 = temp_t9 & 0x7F;
|
||||
arg0->unk0 = temp_t9;
|
||||
arg0->unk0 = temp_t0;
|
||||
temp_v0 = arg0->unk4 + &D_803B0400;
|
||||
temp_v1 = *temp_v0;
|
||||
if ((temp_v1 >= 2) && (temp_v1 != 5)) {
|
||||
*temp_v0 = 3;
|
||||
}
|
||||
temp_v1_2 = arg0->unk5 + &D_803B03C0;
|
||||
temp_a0 = *temp_v1_2;
|
||||
if ((temp_a0 >= 2) && (temp_a0 != 5)) {
|
||||
*temp_v1_2 = 4;
|
||||
}
|
||||
if (arg0->unk5 == D_803AFE18.unk1B2) {
|
||||
D_803AFE18.unk194 = 1;
|
||||
return;
|
||||
}
|
||||
if (arg0->unk5 == D_803AFE18.unk1BE) {
|
||||
D_803AFE18.unk194 = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BEF2C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void func_800BF004(void *arg0, void *arg1) {
|
||||
if (arg1->unk0 == 0) {
|
||||
arg0->unk0->unk4 = arg1;
|
||||
arg1->unk4 = arg0;
|
||||
arg1->unk0 = arg0->unk0;
|
||||
arg0->unk0 = arg1;
|
||||
arg0->unk8 = arg0->unk8 + 1;
|
||||
arg1->unkC = arg0->unkC;
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF004.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s32 func_800BF044(void *arg0) {
|
||||
void *temp_v1;
|
||||
|
||||
temp_v1 = arg0->unk0;
|
||||
if (temp_v1 == arg0) {
|
||||
return 0;
|
||||
}
|
||||
temp_v1->unk0->unk4 = arg0;
|
||||
arg0->unk0 = temp_v1->unk0;
|
||||
temp_v1->unk0 = NULL;
|
||||
arg0->unk8 = arg0->unk8 - 1;
|
||||
return temp_v1->unk8;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF044.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BF004(? *, ? *); // extern
|
||||
extern ? D_803B3EF0;
|
||||
extern ? D_803B3F5C;
|
||||
extern ? D_803B5F5C;
|
||||
extern ? D_803B5FB8;
|
||||
|
||||
void func_800BF084(void) {
|
||||
? *temp_s1;
|
||||
? *phi_s0;
|
||||
? *phi_s1;
|
||||
|
||||
D_803B5FB8.unk0 = &D_803B5FB8;
|
||||
D_803B5FB8.unk4 = &D_803B5FB8;
|
||||
D_803B5FB8.unk8 = 0;
|
||||
D_803B5FB8.unkC = 0;
|
||||
phi_s0 = &D_803B3EF0;
|
||||
phi_s1 = &D_803B3F5C;
|
||||
do {
|
||||
phi_s0->unk74 = phi_s0;
|
||||
phi_s0->unk6C = 0;
|
||||
func_800BF004(&D_803B5FB8, phi_s1);
|
||||
temp_s1 = phi_s1 + 0x80;
|
||||
phi_s0 += 0x80;
|
||||
phi_s1 = temp_s1;
|
||||
} while (temp_s1 != &D_803B5F5C);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF084.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
u8 func_800BF108(u8 **arg0) {
|
||||
u8 *temp_a1;
|
||||
u8 temp_v0;
|
||||
|
||||
temp_a1 = *arg0;
|
||||
temp_v0 = *temp_a1;
|
||||
*arg0 = temp_a1 + 1;
|
||||
return temp_v0;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF108.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s16 func_800BF11C(u8 **arg0) {
|
||||
u8 *temp_a1;
|
||||
u8 *temp_t9;
|
||||
u8 temp_v1;
|
||||
|
||||
temp_a1 = *arg0;
|
||||
temp_v1 = *temp_a1;
|
||||
temp_t9 = temp_a1 + 1;
|
||||
*arg0 = temp_t9;
|
||||
*arg0 = temp_t9 + 1;
|
||||
return *temp_t9 | (temp_v1 << 8);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF11C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
u8 func_800BF14C(u8 **arg0) {
|
||||
u8 *temp_t6;
|
||||
u8 *temp_v0;
|
||||
u8 temp_v1;
|
||||
u8 phi_v1;
|
||||
|
||||
temp_v0 = *arg0;
|
||||
temp_v1 = *temp_v0;
|
||||
temp_t6 = temp_v0 + 1;
|
||||
*arg0 = temp_t6;
|
||||
phi_v1 = temp_v1;
|
||||
if ((temp_v1 & 0x80) != 0) {
|
||||
*arg0 = temp_t6 + 1;
|
||||
phi_v1 = (*temp_t6 | ((temp_v1 << 8) & 0x7F00)) & 0xFFFF;
|
||||
}
|
||||
return phi_v1;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF14C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_800BF190:
|
||||
|
||||
Unable to determine jump table for jr instruction at func_800BF190.s line 611.
|
||||
|
||||
There must be a read of a variable in the same block as
|
||||
the instruction, which has a name starting with "jtbl"/"jpt_".
|
||||
*/
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BF190.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void *func_800BC948(u8, u8); // extern
|
||||
|
||||
s32 func_800BFC68(void *arg0, u8 arg1, void **arg2, void *arg3) {
|
||||
void *temp_v0;
|
||||
|
||||
temp_v0 = func_800BC948(arg0->unk6, arg1);
|
||||
if (temp_v0 == 0) {
|
||||
*arg2 = NULL;
|
||||
return 0;
|
||||
}
|
||||
arg3->unk4 = temp_v0->unk4;
|
||||
arg3->unk0 = temp_v0->unk3;
|
||||
*arg2 = temp_v0;
|
||||
return (arg1 + 1) & 0xFF;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BFC68.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
s16 func_800BFC68(s32, void *, void *); // extern
|
||||
|
||||
void func_800BFCD8(u8 *arg0, s32 arg1) {
|
||||
s16 temp_v0;
|
||||
s32 temp_t6;
|
||||
|
||||
temp_t6 = arg1 & 0xFF;
|
||||
if (temp_t6 >= 0x80) {
|
||||
arg0->unk1C = temp_t6;
|
||||
arg0->unk40 = 0;
|
||||
goto block_6;
|
||||
}
|
||||
if (temp_t6 == 0x7F) {
|
||||
arg0->unk1C = 0;
|
||||
arg0->unk40 = 1;
|
||||
goto block_6;
|
||||
}
|
||||
temp_v0 = func_800BFC68(temp_t6, arg0 + 0x40, arg0 + 0x7C);
|
||||
arg0->unk1C = temp_v0;
|
||||
if (temp_v0 == 0) {
|
||||
arg0->unk0 = arg0->unk0 & 0xFFF7;
|
||||
return;
|
||||
}
|
||||
block_6:
|
||||
arg0->unk0 = arg0->unk0 | 8;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BFCD8.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
void func_800BFD6C(void *arg0, s32 arg1) {
|
||||
arg0->unk24 = (arg1 & 0xFF) / 127.0f;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BFD6C.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_800BFD90:
|
||||
|
||||
Unable to determine jump table for jr instruction at func_800BFD90.s line 639.
|
||||
|
||||
There must be a read of a variable in the same block as
|
||||
the instruction, which has a name starting with "jtbl"/"jpt_".
|
||||
*/
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800BFD90.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
/*
|
||||
Failed to decompile function func_800C08CC:
|
||||
|
||||
Unable to determine jump table for jr instruction at func_800C08CC.s line 530.
|
||||
|
||||
There must be a read of a variable in the same block as
|
||||
the instruction, which has a name starting with "jtbl"/"jpt_".
|
||||
*/
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800C08CC.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BCBC4(); // extern
|
||||
? func_800BDFF8(u32 *); // extern
|
||||
? func_800C08CC(u32 *); // extern
|
||||
extern u32 D_803B1510;
|
||||
extern ? D_803B1A30;
|
||||
|
||||
void func_800C1138(s32 arg0) {
|
||||
u32 *temp_s0;
|
||||
u32 *phi_s0;
|
||||
|
||||
phi_s0 = &D_803B1510;
|
||||
do {
|
||||
if ((*phi_s0 >> 0x1F) == 1) {
|
||||
func_800C08CC(phi_s0);
|
||||
func_800BDFF8(phi_s0);
|
||||
}
|
||||
temp_s0 = phi_s0 + 0x148;
|
||||
phi_s0 = temp_s0;
|
||||
} while (temp_s0 != &D_803B1A30);
|
||||
func_800BCBC4();
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800C1138.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BEF2C(void *); // extern
|
||||
extern ? D_803B1510;
|
||||
extern ? gDefaultShortNoteDurationTable;
|
||||
extern ? gDefaultShortNoteVelocityTable;
|
||||
|
||||
void func_800C11B0(s32 arg0) {
|
||||
void *sp18;
|
||||
void *temp_a0;
|
||||
|
||||
temp_a0 = (arg0 * 0x148) + &D_803B1510;
|
||||
sp18 = temp_a0;
|
||||
func_800BEF2C(temp_a0);
|
||||
temp_a0->unkE = 0;
|
||||
temp_a0->unk1 = 1;
|
||||
temp_a0->unk10 = 0;
|
||||
temp_a0->unk12 = 0;
|
||||
temp_a0->unkA = 0;
|
||||
temp_a0->unk8 = 0x1680;
|
||||
temp_a0->unkC = 0;
|
||||
temp_a0->unk2 = 0;
|
||||
temp_a0->unk8C = &gDefaultShortNoteVelocityTable;
|
||||
temp_a0->unk90 = &gDefaultShortNoteDurationTable;
|
||||
temp_a0->unk18 = 1.0f;
|
||||
temp_a0->unk28 = 1.0f;
|
||||
temp_a0->unk1C = 0.0f;
|
||||
temp_a0->unk20 = 0.0f;
|
||||
temp_a0->unk24 = 0.5f;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800C11B0.s")
|
||||
#endif
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
||||
? func_800BD318(? *); // extern
|
||||
? func_800BF084(s32, ? *, u32, u8 *); // extern
|
||||
? func_800C11B0(s32); // extern
|
||||
extern ? D_803B1510;
|
||||
extern ? D_803B15A4;
|
||||
extern ? D_803B1A30;
|
||||
extern u8 D_803B3EF0;
|
||||
extern ? D_803B5EF0;
|
||||
|
||||
void func_800C125C(void) {
|
||||
? *temp_a1;
|
||||
? *temp_v1;
|
||||
? *temp_v1_2;
|
||||
s32 temp_s3;
|
||||
s32 temp_v0;
|
||||
s32 temp_v0_3;
|
||||
u32 temp_a2;
|
||||
u8 *temp_v0_2;
|
||||
u8 temp_t4;
|
||||
u8 temp_t6;
|
||||
u8 temp_t8;
|
||||
? *phi_a1;
|
||||
? *phi_v1;
|
||||
s32 phi_v0;
|
||||
? *phi_a2;
|
||||
u8 *phi_v0_2;
|
||||
? *phi_v1_2;
|
||||
s32 phi_v0_3;
|
||||
? *phi_s1;
|
||||
? *phi_s5;
|
||||
s32 phi_s3;
|
||||
? *phi_s4;
|
||||
|
||||
phi_a1 = &D_803B1A30;
|
||||
phi_a2 = &D_803B1A30;
|
||||
do {
|
||||
phi_a1->unk44 = 0;
|
||||
phi_a1->unk0 = phi_a1->unk0 & 0xFF7F;
|
||||
phi_v1 = phi_a2;
|
||||
phi_v0 = 0;
|
||||
phi_v0_3 = 0;
|
||||
loop_2:
|
||||
temp_v0 = phi_v0 + 4;
|
||||
phi_v1->unk4C = 0;
|
||||
phi_v1->unk50 = 0;
|
||||
phi_v1->unk54 = 0;
|
||||
temp_v1 = phi_v1 + 0x10;
|
||||
temp_v1->unk38 = 0;
|
||||
phi_v1 = temp_v1;
|
||||
phi_v0 = temp_v0;
|
||||
if (temp_v0 != 0x40) {
|
||||
goto loop_2;
|
||||
}
|
||||
temp_a2 = phi_a2 + 0xC4;
|
||||
temp_a1 = phi_a1 + 0xC4;
|
||||
phi_a1 = temp_a1;
|
||||
phi_a2 = temp_a2;
|
||||
} while (temp_a2 < &D_803B3EF0);
|
||||
func_800BF084(0x40, temp_a1, temp_a2, &D_803B3EF0);
|
||||
phi_v0_2 = &D_803B3EF0;
|
||||
do {
|
||||
temp_v0_2 = phi_v0_2 + 0x80;
|
||||
temp_v0_2->unk-34 = 0;
|
||||
temp_v0_2->unk-80 = *phi_v0_2 & 0xFF7F;
|
||||
phi_v0_2 = temp_v0_2;
|
||||
} while (temp_v0_2 < &D_803B5EF0);
|
||||
phi_s1 = &D_803B1510;
|
||||
phi_s5 = &D_803B15A4;
|
||||
phi_s3 = 0;
|
||||
phi_s4 = &D_803B1510;
|
||||
do {
|
||||
phi_v1_2 = phi_s4;
|
||||
loop_8:
|
||||
temp_v0_3 = phi_v0_3 + 4;
|
||||
phi_v1_2->unk34 = &D_803B5EF0;
|
||||
phi_v1_2->unk38 = &D_803B5EF0;
|
||||
phi_v1_2->unk3C = &D_803B5EF0;
|
||||
temp_v1_2 = phi_v1_2 + 0x10;
|
||||
temp_v1_2->unk20 = &D_803B5EF0;
|
||||
phi_v1_2 = temp_v1_2;
|
||||
phi_v0_3 = temp_v0_3;
|
||||
if (temp_v0_3 != 0x10) {
|
||||
goto loop_8;
|
||||
}
|
||||
phi_s1->unk7 = -1;
|
||||
phi_s1->unk3 = 0xE0;
|
||||
temp_t4 = phi_s1->unk0 & 0xFF7F;
|
||||
temp_t6 = temp_t4 & 0xDF;
|
||||
phi_s1->unk0 = temp_t4;
|
||||
temp_t8 = temp_t6 & 0xF7;
|
||||
phi_s1->unk0 = temp_t6;
|
||||
phi_s1->unk0 = temp_t8;
|
||||
phi_s1->unk0 = temp_t8 & 0xEF;
|
||||
func_800BD318(phi_s5);
|
||||
func_800C11B0(phi_s3);
|
||||
temp_s3 = phi_s3 + 1;
|
||||
phi_s1 += 0x148;
|
||||
phi_s5 += 0x148;
|
||||
phi_s3 = temp_s3;
|
||||
phi_s4 += 0x148;
|
||||
} while (temp_s3 != 4);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/audio/seqplayer/func_800C125C.s")
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
-197
@@ -1,197 +0,0 @@
|
||||
#include <ultra64.h>
|
||||
#include <macros.h>
|
||||
#include "synthesis.h"
|
||||
//#include "heap.h"
|
||||
//#include "data.h"
|
||||
//#include "load.h"
|
||||
//#include "seqplayer.h"
|
||||
#include "internal.h"
|
||||
//#include "external.h"
|
||||
|
||||
|
||||
#define DMEM_ADDR_TEMP 0x0
|
||||
#define DMEM_ADDR_RESAMPLED 0x20
|
||||
#define DMEM_ADDR_RESAMPLED2 0x160
|
||||
#define DMEM_ADDR_UNCOMPRESSED_NOTE 0x180
|
||||
#define DMEM_ADDR_NOTE_PAN_TEMP 0x200
|
||||
#define DMEM_ADDR_STEREO_STRONG_TEMP_DRY 0x200
|
||||
#define DMEM_ADDR_STEREO_STRONG_TEMP_WET 0x340
|
||||
#define DMEM_ADDR_COMPRESSED_ADPCM_DATA 0x3f0
|
||||
#define DMEM_ADDR_LEFT_CH 0x4c0
|
||||
#define DMEM_ADDR_RIGHT_CH 0x600
|
||||
#define DMEM_ADDR_WET_LEFT_CH 0x740
|
||||
#define DMEM_ADDR_WET_RIGHT_CH 0x880
|
||||
|
||||
#define aSetLoadBufferPair(pkt, c, off) \
|
||||
aSetBuffer(pkt, 0, c + DMEM_ADDR_WET_LEFT_CH, 0, DEFAULT_LEN_1CH - c); \
|
||||
aLoadBuffer(pkt, VIRTUAL_TO_PHYSICAL2(gSynthesisReverb.ringBuffer.left + (off))); \
|
||||
aSetBuffer(pkt, 0, c + DMEM_ADDR_WET_RIGHT_CH, 0, DEFAULT_LEN_1CH - c); \
|
||||
aLoadBuffer(pkt, VIRTUAL_TO_PHYSICAL2(gSynthesisReverb.ringBuffer.right + (off)))
|
||||
|
||||
#define aSetSaveBufferPair(pkt, c, d, off) \
|
||||
aSetBuffer(pkt, 0, 0, c + DMEM_ADDR_WET_LEFT_CH, d); \
|
||||
aSaveBuffer(pkt, VIRTUAL_TO_PHYSICAL2(gSynthesisReverb.ringBuffer.left + (off))); \
|
||||
aSetBuffer(pkt, 0, 0, c + DMEM_ADDR_WET_RIGHT_CH, d); \
|
||||
aSaveBuffer(pkt, VIRTUAL_TO_PHYSICAL2(gSynthesisReverb.ringBuffer.right + (off)));
|
||||
|
||||
#define ALIGN(val, amnt) (((val) + (1 << amnt) - 1) & ~((1 << amnt) - 1))
|
||||
|
||||
struct VolumeChange {
|
||||
u16 sourceLeft;
|
||||
u16 sourceRight;
|
||||
u16 targetLeft;
|
||||
u16 targetRight;
|
||||
};
|
||||
|
||||
u64 *synthesis_do_one_audio_update(s16 *aiBuf, s32 bufLen, u64 *cmd, s32 updateIndex);
|
||||
u64 *synthesis_process_note(struct Note *note, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s16 *aiBuf, s32 bufLen, u64 *cmd);
|
||||
u64 *load_wave_samples(u64 *cmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s32 nSamplesToLoad);
|
||||
u64 *final_resample(u64 *cmd, struct NoteSynthesisState *synthesisState, s32 count, u16 pitch, u16 dmemIn, u32 flags);
|
||||
u64 *process_envelope(u64 *cmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s32 nSamples, u16 inBuf, s32 headsetPanSettings, u32 flags);
|
||||
u64 *note_apply_headset_pan_effects(u64 *cmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *note, s32 bufLen, s32 flags, s32 leftRight);
|
||||
|
||||
struct SynthesisReverb gSynthesisReverbs[4];
|
||||
u8 sAudioSynthesisPad[0x10];
|
||||
s16 gVolume;
|
||||
s8 gUseReverb;
|
||||
s8 gNumSynthesisReverbs;
|
||||
struct NoteSubEu *gNoteSubsEu;
|
||||
|
||||
extern struct Note *D_803B7088;
|
||||
extern s32 D_803B70B0;
|
||||
|
||||
f32 gLeftVolRampings[3][1024];
|
||||
f32 gRightVolRampings[3][1024];
|
||||
f32 *gCurrentLeftVolRamping; // Points to any of the three left buffers above
|
||||
f32 *gCurrentRightVolRamping; // Points to any of the three right buffers above
|
||||
|
||||
u8 audioString1[] = "pitch %x: delaybytes %d : olddelay %d\n";
|
||||
u8 audioString2[] = "cont %x: delaybytes %d : olddelay %d\n";
|
||||
|
||||
// Equivalent functionality as the US/JP version,
|
||||
// just that the reverb structure is chosen from an array with index
|
||||
void prepare_reverb_ring_buffer(s32 chunkLen, u32 updateIndex, s32 reverbIndex) {
|
||||
struct ReverbRingBufferItem *item;
|
||||
struct SynthesisReverb *reverb = &gSynthesisReverbs[reverbIndex];
|
||||
s32 srcPos;
|
||||
s32 dstPos;
|
||||
s32 nSamples;
|
||||
s32 excessiveSamples;
|
||||
s32 UNUSED pad[3];
|
||||
if (reverb->downsampleRate != 1) {
|
||||
if (reverb->framesLeftToIgnore == 0) {
|
||||
// Now that the RSP has finished, downsample the samples produced two frames ago by skipping
|
||||
// samples.
|
||||
item = &reverb->items[reverb->curFrame][updateIndex];
|
||||
|
||||
// Touches both left and right since they are adjacent in memory
|
||||
osInvalDCache(item->toDownsampleLeft, 0x300);
|
||||
|
||||
for (srcPos = 0, dstPos = 0; dstPos < item->lengthA / 2;
|
||||
srcPos += reverb->downsampleRate, dstPos++) {
|
||||
reverb->ringBuffer.left[item->startPos + dstPos] =
|
||||
item->toDownsampleLeft[srcPos];
|
||||
reverb->ringBuffer.right[item->startPos + dstPos] =
|
||||
item->toDownsampleRight[srcPos];
|
||||
}
|
||||
for (dstPos = 0; dstPos < item->lengthB / 2; srcPos += reverb->downsampleRate, dstPos++) {
|
||||
reverb->ringBuffer.left[dstPos] = item->toDownsampleLeft[srcPos];
|
||||
reverb->ringBuffer.right[dstPos] = item->toDownsampleRight[srcPos];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
item = &reverb->items[reverb->curFrame][updateIndex];
|
||||
nSamples = chunkLen / reverb->downsampleRate;
|
||||
excessiveSamples = (nSamples + reverb->nextRingBufferPos) - reverb->bufSizePerChannel;
|
||||
if (excessiveSamples < 0) {
|
||||
// There is space in the ring buffer before it wraps around
|
||||
item->lengthA = nSamples * 2;
|
||||
item->lengthB = 0;
|
||||
item->startPos = (s32) reverb->nextRingBufferPos;
|
||||
reverb->nextRingBufferPos += nSamples;
|
||||
} else {
|
||||
// Ring buffer wrapped around
|
||||
item->lengthA = (nSamples - excessiveSamples) * 2;
|
||||
item->lengthB = excessiveSamples * 2;
|
||||
item->startPos = reverb->nextRingBufferPos;
|
||||
reverb->nextRingBufferPos = excessiveSamples;
|
||||
}
|
||||
// These fields are never read later
|
||||
item->numSamplesAfterDownsampling = nSamples;
|
||||
item->chunkLen = chunkLen;
|
||||
}
|
||||
/* sm64
|
||||
u64 *synthesis_load_reverb_ring_buffer(u64 *cmd, u16 addr, u16 srcOffset, s32 len, s32 reverbIndex) {
|
||||
aSetBuffer(cmd++, 0, addr, 0, len&0xFF<<0x10);
|
||||
aLoadBuffer(cmd++, VIRTUAL_TO_PHYSICAL2(&gSynthesisReverbs[reverbIndex].ringBuffer.left[srcOffset]));
|
||||
|
||||
aSetBuffer(cmd++, 0, addr + DEFAULT_LEN_1CH, 0, len&0xFF<<0x10);
|
||||
aLoadBuffer(cmd++, VIRTUAL_TO_PHYSICAL2(&gSynthesisReverbs[reverbIndex].ringBuffer.right[srcOffset]));
|
||||
|
||||
return cmd;
|
||||
}
|
||||
*/
|
||||
/* mk64
|
||||
void *synthesis_load_reverb_ring_buffer(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
s32 temp_t0;
|
||||
s32 temp_t2;
|
||||
void *temp_t1;
|
||||
void *temp_t3;
|
||||
|
||||
temp_t0 = (((arg3 >> 4) & 0xFF) << 0x10) | 0x14000000;
|
||||
arg0->unk0 = (s32) (temp_t0 | (arg1 & 0xFFFF));
|
||||
temp_t1 = (arg4 * 0x108) + &gSynthesisReverbs;
|
||||
temp_t2 = (arg2 & 0xFFFF) * 2;
|
||||
arg0->unk4 = (s32) (temp_t1->unk18 + temp_t2 + 0x80000000);
|
||||
temp_t3 = arg0 + 8;
|
||||
temp_t3->unk0 = (s32) (temp_t0 | ((arg1 + 0x180) & 0xFFFF));
|
||||
temp_t3->unk4 = (s32) (temp_t1->unk1C + temp_t2 + 0x80000000);
|
||||
return temp_t3 + 8;
|
||||
}
|
||||
*/
|
||||
// includes 2 funcs
|
||||
GLOBAL_ASM("asm/non_matchings/audio/wip.s")
|
||||
|
||||
/* sm64
|
||||
void synthesis_load_note_subs_eu(s32 updateIndex) {
|
||||
struct NoteSubEu *src;
|
||||
struct NoteSubEu *dest;
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < D_803B70B0; i++) {
|
||||
src = &D_803B7088[i].noteSubEu;
|
||||
dest = &gNoteSubsEu[D_803B70B0 * updateIndex + i];
|
||||
if (src->enabled) {
|
||||
*dest = *src;
|
||||
src->needsInit = FALSE;
|
||||
} else {
|
||||
dest->enabled = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
// mk64 m2c (with minor edits) struct access appears quite different.
|
||||
void func_800B6FB4(s32 arg0, s32 arg1) {
|
||||
s32 *dest;
|
||||
s32 temp_v0;
|
||||
s32 temp_v0_2;
|
||||
s32 phi_v0;
|
||||
|
||||
temp_v0 = arg0 + 1;
|
||||
if (i = 0; temp_v0 < (s32) D_803B7088.unkC; i++) {
|
||||
phi_v0 = temp_v0;
|
||||
|
||||
for(i = 0; temp_v0_2 < (s32) D_803B7088.unkC; i++) {
|
||||
dest = &gNoteSubsEu[D_803B70B0 * phi_v0 + (arg1 * 0x10)];
|
||||
if ((*dest * 2) >= 0) {
|
||||
temp_v0_2 = phi_v0 + 1;
|
||||
*dest = (s8) ((u8) *dest & 0xFF7F);
|
||||
phi_v0 = temp_v0_2;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/audio/synthesis.s")
|
||||
Reference in New Issue
Block a user