Added new folder & file for the .data section. Also decompiled menu_caution_loop

This commit is contained in:
David Benepe
2020-07-16 02:52:53 -05:00
parent 09ce035927
commit a73991f52e
18 changed files with 16769 additions and 526 deletions
+1 -1
View File
@@ -64,7 +64,7 @@ TEXBUILDER = $(TOOLS_DIR)/dkr_texbuilder
COMPRESS = $(TOOLS_DIR)/dkr_decompressor -c
CHEAT_ENCRYPTOR = $(TOOLS_DIR)/dkr_cheats_encryptor
ASM_DIRS := asm asm/boot asm/assets
ASM_DIRS := asm asm/boot asm/assets data
SRC_DIRS := src src/mips1 src/mips2
ASSETS_DIRS := animations audio billboards bin cheats fonts levels objects particles text textures textures/2d textures/3d tt_ghosts ucode
+3 -10
View File
@@ -5,16 +5,9 @@
.incbin "\filename"
.endm
.incbin "./build/ucode/unknown_ucode.0d8200.bin"
.incbin "./build/ucode/ucode_boot.0d90c0.bin"
.incbin "./build/ucode/f3ddkr_dram.0d9190.bin"
.incbin "./build/ucode/f3ddkr_fifo.0da390.bin"
.incbin "./build/ucode/f3ddkr_xbus.0db570.bin"
.incbin "./build/ucode/unknown_ucode.0dc770.bin"
.incbin "./build/bin/unknown.0dd230.bin"
.incbin "./build/ucode/f3ddkr_dram_data.0ea7a0.bin"
.incbin "./build/ucode/f3ddkr_fifo_data.0eafa0.bin"
.incbin "./build/ucode/f3ddkr_xbus_data.0eb7a0.bin"
.incbin "./build/ucode/data_f3ddkr_dram.0ea7a0.bin"
.incbin "./build/ucode/data_f3ddkr_fifo.0eafa0.bin"
.incbin "./build/ucode/data_f3ddkr_xbus.0eb7a0.bin"
.incbin "./build/bin/unknown.0ebfa0.bin"
.incbin "./build/textures/3d/texture.0ecd50.CFS.00000008000.rgba16.bin"
.incbinaligned "./build/textures/3d/texture.0ed400.CFS.10000008000.rgba16.bin"
+8
View File
@@ -0,0 +1,8 @@
# This file was generated by generate_ld.py
.incbin "./build/ucode/ucode_unknown.0d8200.bin"
.incbin "./build/ucode/ucode_boot.0d90c0.bin"
.incbin "./build/ucode/ucode_f3ddkr_dram.0d9190.bin"
.incbin "./build/ucode/ucode_f3ddkr_fifo.0da390.bin"
.incbin "./build/ucode/ucode_f3ddkr_xbus.0db570.bin"
.incbin "./build/ucode/ucode_unknown.0dc770.bin"
@@ -1,66 +0,0 @@
glabel MenuCautionLoop
/* 08CFFC 8008C3FC 3C03800E */ lui $v1, %hi(D_800DF47C) # $v1, 0x800e
/* 08D000 8008C400 2463F47C */ addiu $v1, %lo(D_800DF47C) # addiu $v1, $v1, -0xb84
/* 08D004 8008C404 8C620000 */ lw $v0, ($v1)
/* 08D008 8008C408 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 08D00C 8008C40C AFBF0014 */ sw $ra, 0x14($sp)
/* 08D010 8008C410 10400004 */ beqz $v0, .L8008C424
/* 08D014 8008C414 AFA40018 */ sw $a0, 0x18($sp)
/* 08D018 8008C418 00447821 */ addu $t7, $v0, $a0
/* 08D01C 8008C41C 10000013 */ b .L8008C46C
/* 08D020 8008C420 AC6F0000 */ sw $t7, ($v1)
.L8008C424:
/* 08D024 8008C424 3C188012 */ lui $t8, %hi(D_801263C4) # $t8, 0x8012
/* 08D028 8008C428 8F1863C4 */ lw $t8, %lo(D_801263C4)($t8)
/* 08D02C 8008C42C 00000000 */ nop
/* 08D030 8008C430 1F00000E */ bgtz $t8, .L8008C46C
/* 08D034 8008C434 00000000 */ nop
/* 08D038 8008C438 0C01A955 */ jal func_8006A554
/* 08D03C 8008C43C 00002025 */ move $a0, $zero
/* 08D040 8008C440 3059D000 */ andi $t9, $v0, 0xd000
/* 08D044 8008C444 13200009 */ beqz $t9, .L8008C46C
/* 08D048 8008C448 240400EF */ li $a0, 239
/* 08D04C 8008C44C 0C000741 */ jal func_80001D04
/* 08D050 8008C450 00002825 */ move $a1, $zero
/* 08D054 8008C454 24080001 */ li $t0, 1
/* 08D058 8008C458 3C01800E */ lui $at, %hi(D_800DF47C) # $at, 0x800e
/* 08D05C 8008C45C 3C04800E */ lui $a0, %hi(D_800DF774) # $a0, 0x800e
/* 08D060 8008C460 AC28F47C */ sw $t0, %lo(D_800DF47C)($at)
/* 08D064 8008C464 0C030076 */ jal func_800C01D8
/* 08D068 8008C468 2484F774 */ addiu $a0, %lo(D_800DF774) # addiu $a0, $a0, -0x88c
.L8008C46C:
/* 08D06C 8008C46C 3C03800E */ lui $v1, %hi(D_800DF47C) # $v1, 0x800e
/* 08D070 8008C470 2463F47C */ addiu $v1, %lo(D_800DF47C) # addiu $v1, $v1, -0xb84
/* 08D074 8008C474 8C620000 */ lw $v0, ($v1)
/* 08D078 8008C478 24040001 */ li $a0, 1
/* 08D07C 8008C47C 28410014 */ slti $at, $v0, 0x14
/* 08D080 8008C480 10200007 */ beqz $at, .L8008C4A0
/* 08D084 8008C484 3C05800E */ lui $a1, %hi(D_800DFFD8) # $a1, 0x800e
/* 08D088 8008C488 24A5FFD8 */ addiu $a1, %lo(D_800DFFD8) # addiu $a1, $a1, -0x28
/* 08D08C 8008C48C 0C02087B */ jal DrawMenuText
/* 08D090 8008C490 3C063F80 */ lui $a2, 0x3f80
/* 08D094 8008C494 3C02800E */ lui $v0, %hi(D_800DF47C) # $v0, 0x800e
/* 08D098 8008C498 8C42F47C */ lw $v0, %lo(D_800DF47C)($v0)
/* 08D09C 8008C49C 00000000 */ nop
.L8008C4A0:
/* 08D0A0 8008C4A0 2841001F */ slti $at, $v0, 0x1f
/* 08D0A4 8008C4A4 14200005 */ bnez $at, .L8008C4BC
/* 08D0A8 8008C4A8 00000000 */ nop
/* 08D0AC 8008C4AC 0C02313A */ jal func_8008C4E8
/* 08D0B0 8008C4B0 00000000 */ nop
/* 08D0B4 8008C4B4 0C0204F4 */ jal MenuInit
/* 08D0B8 8008C4B8 24040013 */ li $a0, 19
.L8008C4BC:
/* 08D0BC 8008C4BC 3C038012 */ lui $v1, %hi(D_801263C4) # $v1, 0x8012
/* 08D0C0 8008C4C0 246363C4 */ addiu $v1, %lo(D_801263C4) # addiu $v1, $v1, 0x63c4
/* 08D0C4 8008C4C4 8C620000 */ lw $v0, ($v1)
/* 08D0C8 8008C4C8 8FA90018 */ lw $t1, 0x18($sp)
/* 08D0CC 8008C4CC 18400002 */ blez $v0, .L8008C4D8
/* 08D0D0 8008C4D0 00495023 */ subu $t2, $v0, $t1
/* 08D0D4 8008C4D4 AC6A0000 */ sw $t2, ($v1)
.L8008C4D8:
/* 08D0D8 8008C4D8 8FBF0014 */ lw $ra, 0x14($sp)
/* 08D0DC 8008C4DC 27BD0018 */ addiu $sp, $sp, 0x18
/* 08D0E0 8008C4E0 03E00008 */ jr $ra
/* 08D0E4 8008C4E4 00001025 */ move $v0, $zero
+1 -1
View File
@@ -126,7 +126,7 @@ glabel MenuLoop
/* 082394 80081794 10000005 */ b .L800817AC
/* 082398 80081798 AFA2001C */ sw $v0, 0x1c($sp)
/* 08239C 8008179C 8FA40030 */ lw $a0, 0x30($sp)
/* 0823A0 800817A0 0C0230FF */ jal MenuCautionLoop
/* 0823A0 800817A0 0C0230FF */ jal menu_caution_loop
/* 0823A4 800817A4 00000000 */ nop
/* 0823A8 800817A8 AFA2001C */ sw $v0, 0x1c($sp)
.L800817AC:
@@ -57,11 +57,11 @@ glabel func_800C69C4
.L800C6A8C:
/* 0C768C 800C6A8C 324A000F */ andi $t2, $s2, 0xf
/* 0C7690 800C6A90 254A0004 */ addiu $t2, $t2, 4
/* 0C7694 800C6A94 3C19800F */ lui $t9, %hi(D_800E93C0) # $t9, 0x800f
/* 0C7694 800C6A94 3C19800F */ lui $t9, %hi(gzip_border) # $t9, 0x800f
/* 0C7698 800C6A98 01129006 */ srlv $s2, $s2, $t0
/* 0C769C 800C6A9C 02689822 */ sub $s3, $s3, $t0
/* 0C76A0 800C6AA0 000A4825 */ or $t1, $zero, $t2
/* 0C76A4 800C6AA4 273993C0 */ addiu $t9, %lo(D_800E93C0) # addiu $t9, $t9, -0x6c40
/* 0C76A4 800C6AA4 273993C0 */ addiu $t9, %lo(gzip_border) # addiu $t9, $t9, -0x6c40
/* 0C76A8 800C6AA8 11400019 */ beqz $t2, .L800C6B10
/* 0C76AC 800C6AAC 23AF0044 */ addi $t7, $sp, 0x44
.L800C6AB0:
@@ -115,8 +115,8 @@ glabel func_800C69C4
/* 0C775C 800C6B5C AFA90018 */ sw $t1, 0x18($sp)
/* 0C7760 800C6B60 23A90038 */ addi $t1, $sp, 0x38
/* 0C7764 800C6B64 8D2D0000 */ lw $t5, ($t1)
/* 0C7768 800C6B68 3C02800F */ lui $v0, %hi(D_800E948C) # $v0, 0x800f
/* 0C776C 800C6B6C 2442948C */ addiu $v0, %lo(D_800E948C) # addiu $v0, $v0, -0x6b74
/* 0C7768 800C6B68 3C02800F */ lui $v0, %hi(gzip_mask_bits) # $v0, 0x800f
/* 0C776C 800C6B6C 2442948C */ addiu $v0, %lo(gzip_mask_bits) # addiu $v0, $v0, -0x6b74
/* 0C7770 800C6B70 000D1840 */ sll $v1, $t5, 1
/* 0C7774 800C6B74 23A80034 */ addi $t0, $sp, 0x34
/* 0C7778 800C6B78 00431020 */ add $v0, $v0, $v1
@@ -125,3 +125,171 @@ glabel func_800C69C4
/* 0C7784 800C6B84 84580000 */ lh $t8, ($v0)
/* 0C7788 800C6B88 23AF0044 */ addi $t7, $sp, 0x44
/* 0C778C 800C6B8C 240A0000 */ li $t2, 0
glabel func_800C6B90
/* 0C7790 800C6B90 1320005F */ beqz $t9, .L800C6D10
/* 0C7794 800C6B94 026D082B */ sltu $at, $s3, $t5
/* 0C7798 800C6B98 50200009 */ beql $at, $zero, .L800C6BC0
/* 0C779C 800C6B9C 02581024 */ and $v0, $s2, $t8
.L800C6BA0:
/* 0C77A0 800C6BA0 92820000 */ lbu $v0, ($s4)
/* 0C77A4 800C6BA4 26940001 */ addiu $s4, $s4, 1
/* 0C77A8 800C6BA8 02621004 */ sllv $v0, $v0, $s3
/* 0C77AC 800C6BAC 26730008 */ addiu $s3, $s3, 8
/* 0C77B0 800C6BB0 026D082A */ slt $at, $s3, $t5
/* 0C77B4 800C6BB4 1420FFFA */ bnez $at, .L800C6BA0
/* 0C77B8 800C6BB8 02429025 */ or $s2, $s2, $v0
/* 0C77BC 800C6BBC 02581024 */ and $v0, $s2, $t8
.L800C6BC0:
/* 0C77C0 800C6BC0 000210C0 */ sll $v0, $v0, 3
/* 0C77C4 800C6BC4 01C24821 */ addu $t1, $t6, $v0
/* 0C77C8 800C6BC8 95280004 */ lhu $t0, 4($t1)
/* 0C77CC 800C6BCC 91220001 */ lbu $v0, 1($t1)
/* 0C77D0 800C6BD0 29010010 */ slti $at, $t0, 0x10
/* 0C77D4 800C6BD4 00529006 */ srlv $s2, $s2, $v0
/* 0C77D8 800C6BD8 1420001C */ bnez $at, .L800C6C4C
/* 0C77DC 800C6BDC 02629822 */ sub $s3, $s3, $v0
/* 0C77E0 800C6BE0 24010010 */ li $at, 16
/* 0C77E4 800C6BE4 1101001E */ beq $t0, $at, .L800C6C60
/* 0C77E8 800C6BE8 24010011 */ li $at, 17
/* 0C77EC 800C6BEC 51010033 */ beql $t0, $at, .L800C6CBC
/* 0C77F0 800C6BF0 24080003 */ li $t0, 3
/* 0C77F4 800C6BF4 24080007 */ li $t0, 7
/* 0C77F8 800C6BF8 0268082B */ sltu $at, $s3, $t0
/* 0C77FC 800C6BFC 50200009 */ beql $at, $zero, .L800C6C24
/* 0C7800 800C6C00 3249007F */ andi $t1, $s2, 0x7f
.L800C6C04:
/* 0C7804 800C6C04 92820000 */ lbu $v0, ($s4)
/* 0C7808 800C6C08 26940001 */ addiu $s4, $s4, 1
/* 0C780C 800C6C0C 02621004 */ sllv $v0, $v0, $s3
/* 0C7810 800C6C10 26730008 */ addiu $s3, $s3, 8
/* 0C7814 800C6C14 0268082A */ slt $at, $s3, $t0
/* 0C7818 800C6C18 1420FFFA */ bnez $at, .L800C6C04
/* 0C781C 800C6C1C 02429025 */ or $s2, $s2, $v0
/* 0C7820 800C6C20 3249007F */ andi $t1, $s2, 0x7f
.L800C6C24:
/* 0C7824 800C6C24 2529000B */ addiu $t1, $t1, 0xb
/* 0C7828 800C6C28 01129006 */ srlv $s2, $s2, $t0
/* 0C782C 800C6C2C 02689822 */ sub $s3, $s3, $t0
/* 0C7830 800C6C30 0329C823 */ subu $t9, $t9, $t1
.L800C6C34:
/* 0C7834 800C6C34 2529FFFF */ addiu $t1, $t1, -1
/* 0C7838 800C6C38 ADE00000 */ sw $zero, ($t7)
/* 0C783C 800C6C3C 1520FFFD */ bnez $t1, .L800C6C34
/* 0C7840 800C6C40 25EF0004 */ addiu $t7, $t7, 4
/* 0C7844 800C6C44 08031AE4 */ j func_800C6B90
/* 0C7848 800C6C48 240A0000 */ li $t2, 0
.L800C6C4C:
/* 0C784C 800C6C4C ADE80000 */ sw $t0, ($t7)
/* 0C7850 800C6C50 25EF0004 */ addiu $t7, $t7, 4
/* 0C7854 800C6C54 2739FFFF */ addiu $t9, $t9, -1
/* 0C7858 800C6C58 08031AE4 */ j func_800C6B90
/* 0C785C 800C6C5C 00085025 */ or $t2, $zero, $t0
.L800C6C60:
/* 0C7860 800C6C60 24080002 */ li $t0, 2
/* 0C7864 800C6C64 0268082B */ sltu $at, $s3, $t0
/* 0C7868 800C6C68 50200009 */ beql $at, $zero, .L800C6C90
/* 0C786C 800C6C6C 32490003 */ andi $t1, $s2, 3
.L800C6C70:
/* 0C7870 800C6C70 92820000 */ lbu $v0, ($s4)
/* 0C7874 800C6C74 26940001 */ addiu $s4, $s4, 1
/* 0C7878 800C6C78 02621004 */ sllv $v0, $v0, $s3
/* 0C787C 800C6C7C 26730008 */ addiu $s3, $s3, 8
/* 0C7880 800C6C80 0268082A */ slt $at, $s3, $t0
/* 0C7884 800C6C84 1420FFFA */ bnez $at, .L800C6C70
/* 0C7888 800C6C88 02429025 */ or $s2, $s2, $v0
/* 0C788C 800C6C8C 32490003 */ andi $t1, $s2, 3
.L800C6C90:
/* 0C7890 800C6C90 21290003 */ addi $t1, $t1, 3
/* 0C7894 800C6C94 01129006 */ srlv $s2, $s2, $t0
/* 0C7898 800C6C98 02689822 */ sub $s3, $s3, $t0
/* 0C789C 800C6C9C 0329C823 */ subu $t9, $t9, $t1
.L800C6CA0:
/* 0C78A0 800C6CA0 2529FFFF */ addiu $t1, $t1, -1
/* 0C78A4 800C6CA4 ADEA0000 */ sw $t2, ($t7)
/* 0C78A8 800C6CA8 1520FFFD */ bnez $t1, .L800C6CA0
/* 0C78AC 800C6CAC 25EF0004 */ addiu $t7, $t7, 4
/* 0C78B0 800C6CB0 08031AE4 */ j func_800C6B90
/* 0C78B4 800C6CB4 00000000 */ nop
/* 0C78B8 800C6CB8 24080003 */ li $t0, 3
.L800C6CBC:
/* 0C78BC 800C6CBC 0268082B */ sltu $at, $s3, $t0
/* 0C78C0 800C6CC0 50200009 */ beql $at, $zero, .L800C6CE8
/* 0C78C4 800C6CC4 32490007 */ andi $t1, $s2, 7
.L800C6CC8:
/* 0C78C8 800C6CC8 92820000 */ lbu $v0, ($s4)
/* 0C78CC 800C6CCC 26940001 */ addiu $s4, $s4, 1
/* 0C78D0 800C6CD0 02621004 */ sllv $v0, $v0, $s3
/* 0C78D4 800C6CD4 26730008 */ addiu $s3, $s3, 8
/* 0C78D8 800C6CD8 0268082A */ slt $at, $s3, $t0
/* 0C78DC 800C6CDC 1420FFFA */ bnez $at, .L800C6CC8
/* 0C78E0 800C6CE0 02429025 */ or $s2, $s2, $v0
/* 0C78E4 800C6CE4 32490007 */ andi $t1, $s2, 7
.L800C6CE8:
/* 0C78E8 800C6CE8 21290003 */ addi $t1, $t1, 3
/* 0C78EC 800C6CEC 01129006 */ srlv $s2, $s2, $t0
/* 0C78F0 800C6CF0 02689822 */ sub $s3, $s3, $t0
/* 0C78F4 800C6CF4 0329C823 */ subu $t9, $t9, $t1
.L800C6CF8:
/* 0C78F8 800C6CF8 2529FFFF */ addiu $t1, $t1, -1
/* 0C78FC 800C6CFC ADE00000 */ sw $zero, ($t7)
/* 0C7900 800C6D00 1520FFFD */ bnez $t1, .L800C6CF8
/* 0C7904 800C6D04 25EF0004 */ addiu $t7, $t7, 4
/* 0C7908 800C6D08 08031AE4 */ j func_800C6B90
/* 0C790C 800C6D0C 240A0000 */ li $t2, 0
.L800C6D10:
/* 0C7910 800C6D10 3C01800E */ lui $at, %hi(D_800E3768) # $at, 0x800e
/* 0C7914 800C6D14 AC343768 */ sw $s4, %lo(D_800E3768)($at)
/* 0C7918 800C6D18 3C018013 */ lui $at, %hi(D_8012AAD0) # $at, 0x8013
/* 0C791C 800C6D1C 24080009 */ li $t0, 9
/* 0C7920 800C6D20 AC32AAD0 */ sw $s2, %lo(D_8012AAD0)($at)
/* 0C7924 800C6D24 AFA80038 */ sw $t0, 0x38($sp)
/* 0C7928 800C6D28 3C02800F */ lui $v0, %hi(gzip_cplext) # $v0, 0x800f
/* 0C792C 800C6D2C 3C018013 */ lui $at, %hi(D_8012AAD4) # $at, 0x8013
/* 0C7930 800C6D30 3C07800F */ lui $a3, %hi(gzip_cplens) # $a3, 0x800f
/* 0C7934 800C6D34 24429412 */ addiu $v0, %lo(gzip_cplext) # addiu $v0, $v0, -0x6bee
/* 0C7938 800C6D38 23A30034 */ addi $v1, $sp, 0x34
/* 0C793C 800C6D3C 23A80038 */ addi $t0, $sp, 0x38
/* 0C7940 800C6D40 AC33AAD4 */ sw $s3, %lo(D_8012AAD4)($at)
/* 0C7944 800C6D44 23A40044 */ addi $a0, $sp, 0x44
/* 0C7948 800C6D48 00112825 */ or $a1, $zero, $s1
/* 0C794C 800C6D4C 24060101 */ li $a2, 257
/* 0C7950 800C6D50 24E793D4 */ addiu $a3, %lo(gzip_cplens) # addiu $a3, $a3, -0x6c2c
/* 0C7954 800C6D54 AFA20010 */ sw $v0, 0x10($sp)
/* 0C7958 800C6D58 AFA30014 */ sw $v1, 0x14($sp)
/* 0C795C 800C6D5C 0C03189D */ jal func_800C6274
/* 0C7960 800C6D60 AFA80018 */ sw $t0, 0x18($sp)
/* 0C7964 800C6D64 23A40044 */ addi $a0, $sp, 0x44
/* 0C7968 800C6D68 00111080 */ sll $v0, $s1, 2
/* 0C796C 800C6D6C 24080006 */ li $t0, 6
/* 0C7970 800C6D70 00822021 */ addu $a0, $a0, $v0
/* 0C7974 800C6D74 AFA80040 */ sw $t0, 0x40($sp)
/* 0C7978 800C6D78 3C02800F */ lui $v0, %hi(gzip_cpdext) # $v0, 0x800f
/* 0C797C 800C6D7C 3C07800F */ lui $a3, %hi(gzip_cpdist) # $a3, 0x800f
/* 0C7980 800C6D80 2442946E */ addiu $v0, %lo(gzip_cpdext) # addiu $v0, $v0, -0x6b92
/* 0C7984 800C6D84 23A3003C */ addi $v1, $sp, 0x3c
/* 0C7988 800C6D88 23A80040 */ addi $t0, $sp, 0x40
/* 0C798C 800C6D8C 00102825 */ or $a1, $zero, $s0
/* 0C7990 800C6D90 24060000 */ li $a2, 0
/* 0C7994 800C6D94 24E79432 */ addiu $a3, %lo(gzip_cpdist) # addiu $a3, $a3, -0x6bce
/* 0C7998 800C6D98 AFA20010 */ sw $v0, 0x10($sp)
/* 0C799C 800C6D9C AFA30014 */ sw $v1, 0x14($sp)
/* 0C79A0 800C6DA0 0C03189D */ jal func_800C6274
/* 0C79A4 800C6DA4 AFA80018 */ sw $t0, 0x18($sp)
/* 0C79A8 800C6DA8 8FA40034 */ lw $a0, 0x34($sp)
/* 0C79AC 800C6DAC 8FA5003C */ lw $a1, 0x3c($sp)
/* 0C79B0 800C6DB0 8FA60038 */ lw $a2, 0x38($sp)
/* 0C79B4 800C6DB4 0C031C10 */ jal func_800C7040
/* 0C79B8 800C6DB8 8FA70040 */ lw $a3, 0x40($sp)
/* 0C79BC 800C6DBC 8FBF0030 */ lw $ra, 0x30($sp)
/* 0C79C0 800C6DC0 8FB4002C */ lw $s4, 0x2c($sp)
/* 0C79C4 800C6DC4 8FB30028 */ lw $s3, 0x28($sp)
/* 0C79C8 800C6DC8 8FB20024 */ lw $s2, 0x24($sp)
/* 0C79CC 800C6DCC 8FB10020 */ lw $s1, 0x20($sp)
/* 0C79D0 800C6DD0 8FB0001C */ lw $s0, 0x1c($sp)
/* 0C79D4 800C6DD4 03E00008 */ jr $ra
/* 0C79D8 800C6DD8 27BD0540 */ addiu $sp, $sp, 0x540
@@ -1,168 +0,0 @@
glabel func_800C6B90
/* 0C7790 800C6B90 1320005F */ beqz $t9, .L800C6D10
/* 0C7794 800C6B94 026D082B */ sltu $at, $s3, $t5
/* 0C7798 800C6B98 50200009 */ beql $at, $zero, .L800C6BC0
/* 0C779C 800C6B9C 02581024 */ and $v0, $s2, $t8
.L800C6BA0:
/* 0C77A0 800C6BA0 92820000 */ lbu $v0, ($s4)
/* 0C77A4 800C6BA4 26940001 */ addiu $s4, $s4, 1
/* 0C77A8 800C6BA8 02621004 */ sllv $v0, $v0, $s3
/* 0C77AC 800C6BAC 26730008 */ addiu $s3, $s3, 8
/* 0C77B0 800C6BB0 026D082A */ slt $at, $s3, $t5
/* 0C77B4 800C6BB4 1420FFFA */ bnez $at, .L800C6BA0
/* 0C77B8 800C6BB8 02429025 */ or $s2, $s2, $v0
/* 0C77BC 800C6BBC 02581024 */ and $v0, $s2, $t8
.L800C6BC0:
/* 0C77C0 800C6BC0 000210C0 */ sll $v0, $v0, 3
/* 0C77C4 800C6BC4 01C24821 */ addu $t1, $t6, $v0
/* 0C77C8 800C6BC8 95280004 */ lhu $t0, 4($t1)
/* 0C77CC 800C6BCC 91220001 */ lbu $v0, 1($t1)
/* 0C77D0 800C6BD0 29010010 */ slti $at, $t0, 0x10
/* 0C77D4 800C6BD4 00529006 */ srlv $s2, $s2, $v0
/* 0C77D8 800C6BD8 1420001C */ bnez $at, .L800C6C4C
/* 0C77DC 800C6BDC 02629822 */ sub $s3, $s3, $v0
/* 0C77E0 800C6BE0 24010010 */ li $at, 16
/* 0C77E4 800C6BE4 1101001E */ beq $t0, $at, .L800C6C60
/* 0C77E8 800C6BE8 24010011 */ li $at, 17
/* 0C77EC 800C6BEC 51010033 */ beql $t0, $at, .L800C6CBC
/* 0C77F0 800C6BF0 24080003 */ li $t0, 3
/* 0C77F4 800C6BF4 24080007 */ li $t0, 7
/* 0C77F8 800C6BF8 0268082B */ sltu $at, $s3, $t0
/* 0C77FC 800C6BFC 50200009 */ beql $at, $zero, .L800C6C24
/* 0C7800 800C6C00 3249007F */ andi $t1, $s2, 0x7f
.L800C6C04:
/* 0C7804 800C6C04 92820000 */ lbu $v0, ($s4)
/* 0C7808 800C6C08 26940001 */ addiu $s4, $s4, 1
/* 0C780C 800C6C0C 02621004 */ sllv $v0, $v0, $s3
/* 0C7810 800C6C10 26730008 */ addiu $s3, $s3, 8
/* 0C7814 800C6C14 0268082A */ slt $at, $s3, $t0
/* 0C7818 800C6C18 1420FFFA */ bnez $at, .L800C6C04
/* 0C781C 800C6C1C 02429025 */ or $s2, $s2, $v0
/* 0C7820 800C6C20 3249007F */ andi $t1, $s2, 0x7f
.L800C6C24:
/* 0C7824 800C6C24 2529000B */ addiu $t1, $t1, 0xb
/* 0C7828 800C6C28 01129006 */ srlv $s2, $s2, $t0
/* 0C782C 800C6C2C 02689822 */ sub $s3, $s3, $t0
/* 0C7830 800C6C30 0329C823 */ subu $t9, $t9, $t1
.L800C6C34:
/* 0C7834 800C6C34 2529FFFF */ addiu $t1, $t1, -1
/* 0C7838 800C6C38 ADE00000 */ sw $zero, ($t7)
/* 0C783C 800C6C3C 1520FFFD */ bnez $t1, .L800C6C34
/* 0C7840 800C6C40 25EF0004 */ addiu $t7, $t7, 4
/* 0C7844 800C6C44 08031AE4 */ j func_800C6B90
/* 0C7848 800C6C48 240A0000 */ li $t2, 0
.L800C6C4C:
/* 0C784C 800C6C4C ADE80000 */ sw $t0, ($t7)
/* 0C7850 800C6C50 25EF0004 */ addiu $t7, $t7, 4
/* 0C7854 800C6C54 2739FFFF */ addiu $t9, $t9, -1
/* 0C7858 800C6C58 08031AE4 */ j func_800C6B90
/* 0C785C 800C6C5C 00085025 */ or $t2, $zero, $t0
.L800C6C60:
/* 0C7860 800C6C60 24080002 */ li $t0, 2
/* 0C7864 800C6C64 0268082B */ sltu $at, $s3, $t0
/* 0C7868 800C6C68 50200009 */ beql $at, $zero, .L800C6C90
/* 0C786C 800C6C6C 32490003 */ andi $t1, $s2, 3
.L800C6C70:
/* 0C7870 800C6C70 92820000 */ lbu $v0, ($s4)
/* 0C7874 800C6C74 26940001 */ addiu $s4, $s4, 1
/* 0C7878 800C6C78 02621004 */ sllv $v0, $v0, $s3
/* 0C787C 800C6C7C 26730008 */ addiu $s3, $s3, 8
/* 0C7880 800C6C80 0268082A */ slt $at, $s3, $t0
/* 0C7884 800C6C84 1420FFFA */ bnez $at, .L800C6C70
/* 0C7888 800C6C88 02429025 */ or $s2, $s2, $v0
/* 0C788C 800C6C8C 32490003 */ andi $t1, $s2, 3
.L800C6C90:
/* 0C7890 800C6C90 21290003 */ addi $t1, $t1, 3
/* 0C7894 800C6C94 01129006 */ srlv $s2, $s2, $t0
/* 0C7898 800C6C98 02689822 */ sub $s3, $s3, $t0
/* 0C789C 800C6C9C 0329C823 */ subu $t9, $t9, $t1
.L800C6CA0:
/* 0C78A0 800C6CA0 2529FFFF */ addiu $t1, $t1, -1
/* 0C78A4 800C6CA4 ADEA0000 */ sw $t2, ($t7)
/* 0C78A8 800C6CA8 1520FFFD */ bnez $t1, .L800C6CA0
/* 0C78AC 800C6CAC 25EF0004 */ addiu $t7, $t7, 4
/* 0C78B0 800C6CB0 08031AE4 */ j func_800C6B90
/* 0C78B4 800C6CB4 00000000 */ nop
/* 0C78B8 800C6CB8 24080003 */ li $t0, 3
.L800C6CBC:
/* 0C78BC 800C6CBC 0268082B */ sltu $at, $s3, $t0
/* 0C78C0 800C6CC0 50200009 */ beql $at, $zero, .L800C6CE8
/* 0C78C4 800C6CC4 32490007 */ andi $t1, $s2, 7
.L800C6CC8:
/* 0C78C8 800C6CC8 92820000 */ lbu $v0, ($s4)
/* 0C78CC 800C6CCC 26940001 */ addiu $s4, $s4, 1
/* 0C78D0 800C6CD0 02621004 */ sllv $v0, $v0, $s3
/* 0C78D4 800C6CD4 26730008 */ addiu $s3, $s3, 8
/* 0C78D8 800C6CD8 0268082A */ slt $at, $s3, $t0
/* 0C78DC 800C6CDC 1420FFFA */ bnez $at, .L800C6CC8
/* 0C78E0 800C6CE0 02429025 */ or $s2, $s2, $v0
/* 0C78E4 800C6CE4 32490007 */ andi $t1, $s2, 7
.L800C6CE8:
/* 0C78E8 800C6CE8 21290003 */ addi $t1, $t1, 3
/* 0C78EC 800C6CEC 01129006 */ srlv $s2, $s2, $t0
/* 0C78F0 800C6CF0 02689822 */ sub $s3, $s3, $t0
/* 0C78F4 800C6CF4 0329C823 */ subu $t9, $t9, $t1
.L800C6CF8:
/* 0C78F8 800C6CF8 2529FFFF */ addiu $t1, $t1, -1
/* 0C78FC 800C6CFC ADE00000 */ sw $zero, ($t7)
/* 0C7900 800C6D00 1520FFFD */ bnez $t1, .L800C6CF8
/* 0C7904 800C6D04 25EF0004 */ addiu $t7, $t7, 4
/* 0C7908 800C6D08 08031AE4 */ j func_800C6B90
/* 0C790C 800C6D0C 240A0000 */ li $t2, 0
.L800C6D10:
/* 0C7910 800C6D10 3C01800E */ lui $at, %hi(D_800E3768) # $at, 0x800e
/* 0C7914 800C6D14 AC343768 */ sw $s4, %lo(D_800E3768)($at)
/* 0C7918 800C6D18 3C018013 */ lui $at, %hi(D_8012AAD0) # $at, 0x8013
/* 0C791C 800C6D1C 24080009 */ li $t0, 9
/* 0C7920 800C6D20 AC32AAD0 */ sw $s2, %lo(D_8012AAD0)($at)
/* 0C7924 800C6D24 AFA80038 */ sw $t0, 0x38($sp)
/* 0C7928 800C6D28 3C02800F */ lui $v0, %hi(D_800E9412) # $v0, 0x800f
/* 0C792C 800C6D2C 3C018013 */ lui $at, %hi(D_8012AAD4) # $at, 0x8013
/* 0C7930 800C6D30 3C07800F */ lui $a3, %hi(D_800E93D4) # $a3, 0x800f
/* 0C7934 800C6D34 24429412 */ addiu $v0, %lo(D_800E9412) # addiu $v0, $v0, -0x6bee
/* 0C7938 800C6D38 23A30034 */ addi $v1, $sp, 0x34
/* 0C793C 800C6D3C 23A80038 */ addi $t0, $sp, 0x38
/* 0C7940 800C6D40 AC33AAD4 */ sw $s3, %lo(D_8012AAD4)($at)
/* 0C7944 800C6D44 23A40044 */ addi $a0, $sp, 0x44
/* 0C7948 800C6D48 00112825 */ or $a1, $zero, $s1
/* 0C794C 800C6D4C 24060101 */ li $a2, 257
/* 0C7950 800C6D50 24E793D4 */ addiu $a3, %lo(D_800E93D4) # addiu $a3, $a3, -0x6c2c
/* 0C7954 800C6D54 AFA20010 */ sw $v0, 0x10($sp)
/* 0C7958 800C6D58 AFA30014 */ sw $v1, 0x14($sp)
/* 0C795C 800C6D5C 0C03189D */ jal func_800C6274
/* 0C7960 800C6D60 AFA80018 */ sw $t0, 0x18($sp)
/* 0C7964 800C6D64 23A40044 */ addi $a0, $sp, 0x44
/* 0C7968 800C6D68 00111080 */ sll $v0, $s1, 2
/* 0C796C 800C6D6C 24080006 */ li $t0, 6
/* 0C7970 800C6D70 00822021 */ addu $a0, $a0, $v0
/* 0C7974 800C6D74 AFA80040 */ sw $t0, 0x40($sp)
/* 0C7978 800C6D78 3C02800F */ lui $v0, %hi(D_800E946E) # $v0, 0x800f
/* 0C797C 800C6D7C 3C07800F */ lui $a3, %hi(D_800E9432) # $a3, 0x800f
/* 0C7980 800C6D80 2442946E */ addiu $v0, %lo(D_800E946E) # addiu $v0, $v0, -0x6b92
/* 0C7984 800C6D84 23A3003C */ addi $v1, $sp, 0x3c
/* 0C7988 800C6D88 23A80040 */ addi $t0, $sp, 0x40
/* 0C798C 800C6D8C 00102825 */ or $a1, $zero, $s0
/* 0C7990 800C6D90 24060000 */ li $a2, 0
/* 0C7994 800C6D94 24E79432 */ addiu $a3, %lo(D_800E9432) # addiu $a3, $a3, -0x6bce
/* 0C7998 800C6D98 AFA20010 */ sw $v0, 0x10($sp)
/* 0C799C 800C6D9C AFA30014 */ sw $v1, 0x14($sp)
/* 0C79A0 800C6DA0 0C03189D */ jal func_800C6274
/* 0C79A4 800C6DA4 AFA80018 */ sw $t0, 0x18($sp)
/* 0C79A8 800C6DA8 8FA40034 */ lw $a0, 0x34($sp)
/* 0C79AC 800C6DAC 8FA5003C */ lw $a1, 0x3c($sp)
/* 0C79B0 800C6DB0 8FA60038 */ lw $a2, 0x38($sp)
/* 0C79B4 800C6DB4 0C031C10 */ jal func_800C7040
/* 0C79B8 800C6DB8 8FA70040 */ lw $a3, 0x40($sp)
/* 0C79BC 800C6DBC 8FBF0030 */ lw $ra, 0x30($sp)
/* 0C79C0 800C6DC0 8FB4002C */ lw $s4, 0x2c($sp)
/* 0C79C4 800C6DC4 8FB30028 */ lw $s3, 0x28($sp)
/* 0C79C8 800C6DC8 8FB20024 */ lw $s2, 0x24($sp)
/* 0C79CC 800C6DCC 8FB10020 */ lw $s1, 0x20($sp)
/* 0C79D0 800C6DD0 8FB0001C */ lw $s0, 0x1c($sp)
/* 0C79D4 800C6DD4 03E00008 */ jr $ra
/* 0C79D8 800C6DD8 27BD0540 */ addiu $sp, $sp, 0x540
@@ -43,15 +43,15 @@ glabel func_800C6DDC
/* 0C7A74 800C6E74 AD69001C */ sw $t1, 0x1c($t3)
/* 0C7A78 800C6E78 24080007 */ li $t0, 7
/* 0C7A7C 800C6E7C AFA80038 */ sw $t0, 0x38($sp)
/* 0C7A80 800C6E80 3C02800F */ lui $v0, %hi(D_800E9412) # $v0, 0x800f
/* 0C7A84 800C6E84 3C07800F */ lui $a3, %hi(D_800E93D4) # $a3, 0x800f
/* 0C7A88 800C6E88 24429412 */ addiu $v0, %lo(D_800E9412) # addiu $v0, $v0, -0x6bee
/* 0C7A80 800C6E80 3C02800F */ lui $v0, %hi(gzip_cplext) # $v0, 0x800f
/* 0C7A84 800C6E84 3C07800F */ lui $a3, %hi(gzip_cplens) # $a3, 0x800f
/* 0C7A88 800C6E88 24429412 */ addiu $v0, %lo(gzip_cplext) # addiu $v0, $v0, -0x6bee
/* 0C7A8C 800C6E8C 23A30020 */ addi $v1, $sp, 0x20
/* 0C7A90 800C6E90 23A80024 */ addi $t0, $sp, 0x24
/* 0C7A94 800C6E94 23A40044 */ addi $a0, $sp, 0x44
/* 0C7A98 800C6E98 24050120 */ li $a1, 288
/* 0C7A9C 800C6E9C 24060101 */ li $a2, 257
/* 0C7AA0 800C6EA0 24E793D4 */ addiu $a3, %lo(D_800E93D4) # addiu $a3, $a3, -0x6c2c
/* 0C7AA0 800C6EA0 24E793D4 */ addiu $a3, %lo(gzip_cplens) # addiu $a3, $a3, -0x6c2c
/* 0C7AA4 800C6EA4 AFA20010 */ sw $v0, 0x10($sp)
/* 0C7AA8 800C6EA8 AFA30014 */ sw $v1, 0x14($sp)
/* 0C7AAC 800C6EAC 0C03189D */ jal func_800C6274
@@ -66,16 +66,16 @@ glabel func_800C6DDC
/* 0C7ACC 800C6ECC AD690008 */ sw $t1, 8($t3)
/* 0C7AD0 800C6ED0 1500FFFB */ bnez $t0, .L800C6EC0
/* 0C7AD4 800C6ED4 256B000C */ addiu $t3, $t3, 0xc
/* 0C7AD8 800C6ED8 3C02800F */ lui $v0, %hi(D_800E946E) # $v0, 0x800f
/* 0C7ADC 800C6EDC 3C07800F */ lui $a3, %hi(D_800E9432) # $a3, 0x800f
/* 0C7AE0 800C6EE0 2442946E */ addiu $v0, %lo(D_800E946E) # addiu $v0, $v0, -0x6b92
/* 0C7AD8 800C6ED8 3C02800F */ lui $v0, %hi(gzip_cpdext) # $v0, 0x800f
/* 0C7ADC 800C6EDC 3C07800F */ lui $a3, %hi(gzip_cpdist) # $a3, 0x800f
/* 0C7AE0 800C6EE0 2442946E */ addiu $v0, %lo(gzip_cpdext) # addiu $v0, $v0, -0x6b92
/* 0C7AE4 800C6EE4 23A30028 */ addi $v1, $sp, 0x28
/* 0C7AE8 800C6EE8 23A8002C */ addi $t0, $sp, 0x2c
/* 0C7AEC 800C6EEC AFA90040 */ sw $t1, 0x40($sp)
/* 0C7AF0 800C6EF0 23A40044 */ addi $a0, $sp, 0x44
/* 0C7AF4 800C6EF4 2405001E */ li $a1, 30
/* 0C7AF8 800C6EF8 24060000 */ li $a2, 0
/* 0C7AFC 800C6EFC 24E79432 */ addiu $a3, %lo(D_800E9432) # addiu $a3, $a3, -0x6bce
/* 0C7AFC 800C6EFC 24E79432 */ addiu $a3, %lo(gzip_cpdist) # addiu $a3, $a3, -0x6bce
/* 0C7B00 800C6F00 AFA20010 */ sw $v0, 0x10($sp)
/* 0C7B04 800C6F04 AFA30014 */ sw $v1, 0x14($sp)
/* 0C7B08 800C6F08 0C03189D */ jal func_800C6274
@@ -1,10 +1,10 @@
glabel func_800C7040
/* 0C7C40 800C7040 27BDFFF0 */ addiu $sp, $sp, -0x10
/* 0C7C44 800C7044 3C0B800F */ lui $t3, %hi(D_800E948C) # $t3, 0x800f
/* 0C7C44 800C7044 3C0B800F */ lui $t3, %hi(gzip_mask_bits) # $t3, 0x800f
/* 0C7C48 800C7048 AFB20008 */ sw $s2, 8($sp)
/* 0C7C4C 800C704C AFB10004 */ sw $s1, 4($sp)
/* 0C7C50 800C7050 AFB00000 */ sw $s0, ($sp)
/* 0C7C54 800C7054 256B948C */ addiu $t3, %lo(D_800E948C) # addiu $t3, $t3, -0x6b74
/* 0C7C54 800C7054 256B948C */ addiu $t3, %lo(gzip_mask_bits) # addiu $t3, $t3, -0x6b74
/* 0C7C58 800C7058 00061040 */ sll $v0, $a2, 1
/* 0C7C5C 800C705C 00074040 */ sll $t0, $a3, 1
/* 0C7C60 800C7060 3C12800E */ lui $s2, %hi(D_800E3768) # $s2, 0x800e
@@ -19,3 +19,198 @@ glabel func_800C7040
/* 0C7C84 800C7084 8E10AAD4 */ lw $s0, %lo(D_8012AAD4)($s0)
/* 0C7C88 800C7088 946D0000 */ lhu $t5, ($v1)
/* 0C7C8C 800C708C 952C0000 */ lhu $t4, ($t1)
glabel func_800C7090
/* 0C7C90 800C7090 0206082B */ sltu $at, $s0, $a2
.L800C7094:
/* 0C7C94 800C7094 50200009 */ beql $at, $zero, .L800C70BC
/* 0C7C98 800C7098 032D1024 */ and $v0, $t9, $t5
.L800C709C:
/* 0C7C9C 800C709C 92420000 */ lbu $v0, ($s2)
/* 0C7CA0 800C70A0 26520001 */ addiu $s2, $s2, 1
/* 0C7CA4 800C70A4 02021004 */ sllv $v0, $v0, $s0
/* 0C7CA8 800C70A8 26100008 */ addiu $s0, $s0, 8
/* 0C7CAC 800C70AC 0206082A */ slt $at, $s0, $a2
/* 0C7CB0 800C70B0 1420FFFA */ bnez $at, .L800C709C
/* 0C7CB4 800C70B4 0322C825 */ or $t9, $t9, $v0
/* 0C7CB8 800C70B8 032D1024 */ and $v0, $t9, $t5
.L800C70BC:
/* 0C7CBC 800C70BC 000210C0 */ sll $v0, $v0, 3
/* 0C7CC0 800C70C0 00827821 */ addu $t7, $a0, $v0
/* 0C7CC4 800C70C4 91F80000 */ lbu $t8, ($t7)
/* 0C7CC8 800C70C8 2B010011 */ slti $at, $t8, 0x11
/* 0C7CCC 800C70CC 5420001A */ bnezl $at, .L800C7138
/* 0C7CD0 800C70D0 91E20001 */ lbu $v0, 1($t7)
/* 0C7CD4 800C70D4 81E30001 */ lb $v1, 1($t7)
.L800C70D8:
/* 0C7CD8 800C70D8 2318FFF0 */ addi $t8, $t8, -0x10
/* 0C7CDC 800C70DC 02038022 */ sub $s0, $s0, $v1
/* 0C7CE0 800C70E0 0218082B */ sltu $at, $s0, $t8
/* 0C7CE4 800C70E4 10200008 */ beqz $at, .L800C7108
/* 0C7CE8 800C70E8 0079C806 */ srlv $t9, $t9, $v1
.L800C70EC:
/* 0C7CEC 800C70EC 92420000 */ lbu $v0, ($s2)
/* 0C7CF0 800C70F0 26520001 */ addiu $s2, $s2, 1
/* 0C7CF4 800C70F4 02021004 */ sllv $v0, $v0, $s0
/* 0C7CF8 800C70F8 26100008 */ addiu $s0, $s0, 8
/* 0C7CFC 800C70FC 0218082A */ slt $at, $s0, $t8
/* 0C7D00 800C7100 1420FFFA */ bnez $at, .L800C70EC
/* 0C7D04 800C7104 0322C825 */ or $t9, $t9, $v0
.L800C7108:
/* 0C7D08 800C7108 00181040 */ sll $v0, $t8, 1
/* 0C7D0C 800C710C 004B1021 */ addu $v0, $v0, $t3
/* 0C7D10 800C7110 94490000 */ lhu $t1, ($v0)
/* 0C7D14 800C7114 8DE80004 */ lw $t0, 4($t7)
/* 0C7D18 800C7118 01394824 */ and $t1, $t1, $t9
/* 0C7D1C 800C711C 000948C0 */ sll $t1, $t1, 3
/* 0C7D20 800C7120 01097820 */ add $t7, $t0, $t1
/* 0C7D24 800C7124 91F80000 */ lbu $t8, ($t7)
/* 0C7D28 800C7128 2F010011 */ sltiu $at, $t8, 0x11
/* 0C7D2C 800C712C 5020FFEA */ beql $at, $zero, .L800C70D8
/* 0C7D30 800C7130 81E30001 */ lb $v1, 1($t7)
/* 0C7D34 800C7134 91E20001 */ lbu $v0, 1($t7)
.L800C7138:
/* 0C7D38 800C7138 24010010 */ li $at, 16
/* 0C7D3C 800C713C 0059C806 */ srlv $t9, $t9, $v0
/* 0C7D40 800C7140 17010005 */ bne $t8, $at, .L800C7158
/* 0C7D44 800C7144 02028022 */ sub $s0, $s0, $v0
/* 0C7D48 800C7148 95E20004 */ lhu $v0, 4($t7)
/* 0C7D4C 800C714C 26310001 */ addiu $s1, $s1, 1
/* 0C7D50 800C7150 08031C24 */ j func_800C7090
/* 0C7D54 800C7154 A222FFFF */ sb $v0, -1($s1)
.L800C7158:
/* 0C7D58 800C7158 2401000F */ li $at, 15
/* 0C7D5C 800C715C 13010068 */ beq $t8, $at, .L800C7300
/* 0C7D60 800C7160 0218082B */ sltu $at, $s0, $t8
/* 0C7D64 800C7164 50200009 */ beql $at, $zero, .L800C718C
/* 0C7D68 800C7168 00181040 */ sll $v0, $t8, 1
.L800C716C:
/* 0C7D6C 800C716C 92420000 */ lbu $v0, ($s2)
/* 0C7D70 800C7170 26520001 */ addiu $s2, $s2, 1
/* 0C7D74 800C7174 02021004 */ sllv $v0, $v0, $s0
/* 0C7D78 800C7178 26100008 */ addiu $s0, $s0, 8
/* 0C7D7C 800C717C 0218082A */ slt $at, $s0, $t8
/* 0C7D80 800C7180 1420FFFA */ bnez $at, .L800C716C
/* 0C7D84 800C7184 0322C825 */ or $t9, $t9, $v0
/* 0C7D88 800C7188 00181040 */ sll $v0, $t8, 1
.L800C718C:
/* 0C7D8C 800C718C 004B1021 */ addu $v0, $v0, $t3
/* 0C7D90 800C7190 94490000 */ lhu $t1, ($v0)
/* 0C7D94 800C7194 95E80004 */ lhu $t0, 4($t7)
/* 0C7D98 800C7198 02188022 */ sub $s0, $s0, $t8
/* 0C7D9C 800C719C 0207082B */ sltu $at, $s0, $a3
/* 0C7DA0 800C71A0 01394824 */ and $t1, $t1, $t9
/* 0C7DA4 800C71A4 0319C806 */ srlv $t9, $t9, $t8
/* 0C7DA8 800C71A8 10200008 */ beqz $at, .L800C71CC
/* 0C7DAC 800C71AC 01097021 */ addu $t6, $t0, $t1
.L800C71B0:
/* 0C7DB0 800C71B0 92420000 */ lbu $v0, ($s2)
/* 0C7DB4 800C71B4 26520001 */ addiu $s2, $s2, 1
/* 0C7DB8 800C71B8 02021004 */ sllv $v0, $v0, $s0
/* 0C7DBC 800C71BC 26100008 */ addiu $s0, $s0, 8
/* 0C7DC0 800C71C0 0207082A */ slt $at, $s0, $a3
/* 0C7DC4 800C71C4 1420FFFA */ bnez $at, .L800C71B0
/* 0C7DC8 800C71C8 0322C825 */ or $t9, $t9, $v0
.L800C71CC:
/* 0C7DCC 800C71CC 01991024 */ and $v0, $t4, $t9
/* 0C7DD0 800C71D0 000210C0 */ sll $v0, $v0, 3
/* 0C7DD4 800C71D4 00A27821 */ addu $t7, $a1, $v0
/* 0C7DD8 800C71D8 91F80000 */ lbu $t8, ($t7)
/* 0C7DDC 800C71DC 2B010011 */ slti $at, $t8, 0x11
/* 0C7DE0 800C71E0 5420001A */ bnezl $at, .L800C724C
/* 0C7DE4 800C71E4 91E20001 */ lbu $v0, 1($t7)
/* 0C7DE8 800C71E8 91E80001 */ lbu $t0, 1($t7)
.L800C71EC:
/* 0C7DEC 800C71EC 2318FFF0 */ addi $t8, $t8, -0x10
/* 0C7DF0 800C71F0 02088022 */ sub $s0, $s0, $t0
/* 0C7DF4 800C71F4 0218082B */ sltu $at, $s0, $t8
/* 0C7DF8 800C71F8 10200008 */ beqz $at, .L800C721C
/* 0C7DFC 800C71FC 0119C806 */ srlv $t9, $t9, $t0
.L800C7200:
/* 0C7E00 800C7200 92420000 */ lbu $v0, ($s2)
/* 0C7E04 800C7204 26520001 */ addiu $s2, $s2, 1
/* 0C7E08 800C7208 02021004 */ sllv $v0, $v0, $s0
/* 0C7E0C 800C720C 26100008 */ addiu $s0, $s0, 8
/* 0C7E10 800C7210 0218082A */ slt $at, $s0, $t8
/* 0C7E14 800C7214 1420FFFA */ bnez $at, .L800C7200
/* 0C7E18 800C7218 0322C825 */ or $t9, $t9, $v0
.L800C721C:
/* 0C7E1C 800C721C 00181040 */ sll $v0, $t8, 1
/* 0C7E20 800C7220 004B1021 */ addu $v0, $v0, $t3
/* 0C7E24 800C7224 94490000 */ lhu $t1, ($v0)
/* 0C7E28 800C7228 8DE80004 */ lw $t0, 4($t7)
/* 0C7E2C 800C722C 01394824 */ and $t1, $t1, $t9
/* 0C7E30 800C7230 000948C0 */ sll $t1, $t1, 3
/* 0C7E34 800C7234 01097821 */ addu $t7, $t0, $t1
/* 0C7E38 800C7238 91F80000 */ lbu $t8, ($t7)
/* 0C7E3C 800C723C 2F010011 */ sltiu $at, $t8, 0x11
/* 0C7E40 800C7240 5020FFEA */ beql $at, $zero, .L800C71EC
/* 0C7E44 800C7244 91E80001 */ lbu $t0, 1($t7)
/* 0C7E48 800C7248 91E20001 */ lbu $v0, 1($t7)
.L800C724C:
/* 0C7E4C 800C724C 02028022 */ sub $s0, $s0, $v0
/* 0C7E50 800C7250 0218082B */ sltu $at, $s0, $t8
/* 0C7E54 800C7254 10200008 */ beqz $at, .L800C7278
/* 0C7E58 800C7258 0059C806 */ srlv $t9, $t9, $v0
.L800C725C:
/* 0C7E5C 800C725C 92420000 */ lbu $v0, ($s2)
/* 0C7E60 800C7260 26520001 */ addiu $s2, $s2, 1
/* 0C7E64 800C7264 02021004 */ sllv $v0, $v0, $s0
/* 0C7E68 800C7268 26100008 */ addiu $s0, $s0, 8
/* 0C7E6C 800C726C 0218082A */ slt $at, $s0, $t8
/* 0C7E70 800C7270 1420FFFA */ bnez $at, .L800C725C
/* 0C7E74 800C7274 0322C825 */ or $t9, $t9, $v0
.L800C7278:
/* 0C7E78 800C7278 00181040 */ sll $v0, $t8, 1
/* 0C7E7C 800C727C 004B1021 */ addu $v0, $v0, $t3
/* 0C7E80 800C7280 94490000 */ lhu $t1, ($v0)
/* 0C7E84 800C7284 95E30004 */ lhu $v1, 4($t7)
/* 0C7E88 800C7288 31C20003 */ andi $v0, $t6, 3
/* 0C7E8C 800C728C 01394824 */ and $t1, $t1, $t9
/* 0C7E90 800C7290 02234022 */ sub $t0, $s1, $v1
/* 0C7E94 800C7294 01094022 */ sub $t0, $t0, $t1
/* 0C7E98 800C7298 0319C806 */ srlv $t9, $t9, $t8
/* 0C7E9C 800C729C 1040000A */ beqz $v0, .L800C72C8
/* 0C7EA0 800C72A0 02188022 */ sub $s0, $s0, $t8
/* 0C7EA4 800C72A4 01C27022 */ sub $t6, $t6, $v0
.L800C72A8:
/* 0C7EA8 800C72A8 910A0000 */ lbu $t2, ($t0)
/* 0C7EAC 800C72AC 2042FFFF */ addi $v0, $v0, -1
/* 0C7EB0 800C72B0 21080001 */ addi $t0, $t0, 1
/* 0C7EB4 800C72B4 22310001 */ addi $s1, $s1, 1
/* 0C7EB8 800C72B8 1440FFFB */ bnez $v0, .L800C72A8
/* 0C7EBC 800C72BC A22AFFFF */ sb $t2, -1($s1)
/* 0C7EC0 800C72C0 51C0FF74 */ beql $t6, $zero, .L800C7094
/* 0C7EC4 800C72C4 0206082B */ sltu $at, $s0, $a2
.L800C72C8:
/* 0C7EC8 800C72C8 91020000 */ lbu $v0, ($t0)
/* 0C7ECC 800C72CC 25CEFFFC */ addiu $t6, $t6, -4
/* 0C7ED0 800C72D0 25080004 */ addiu $t0, $t0, 4
/* 0C7ED4 800C72D4 A2220000 */ sb $v0, ($s1)
/* 0C7ED8 800C72D8 9103FFFD */ lbu $v1, -3($t0)
/* 0C7EDC 800C72DC 26310004 */ addiu $s1, $s1, 4
/* 0C7EE0 800C72E0 A223FFFD */ sb $v1, -3($s1)
/* 0C7EE4 800C72E4 9109FFFE */ lbu $t1, -2($t0)
/* 0C7EE8 800C72E8 A229FFFE */ sb $t1, -2($s1)
/* 0C7EEC 800C72EC 910AFFFF */ lbu $t2, -1($t0)
/* 0C7EF0 800C72F0 15C0FFF5 */ bnez $t6, .L800C72C8
/* 0C7EF4 800C72F4 A22AFFFF */ sb $t2, -1($s1)
/* 0C7EF8 800C72F8 08031C24 */ j func_800C7090
/* 0C7EFC 800C72FC 00000000 */ nop
.L800C7300:
/* 0C7F00 800C7300 3C01800E */ lui $at, %hi(D_800E3768) # $at, 0x800e
/* 0C7F04 800C7304 AC323768 */ sw $s2, %lo(D_800E3768)($at)
/* 0C7F08 800C7308 3C01800E */ lui $at, %hi(D_800E376C) # $at, 0x800e
/* 0C7F0C 800C730C AC31376C */ sw $s1, %lo(D_800E376C)($at)
/* 0C7F10 800C7310 3C018013 */ lui $at, %hi(D_8012AAD0) # $at, 0x8013
/* 0C7F14 800C7314 AC39AAD0 */ sw $t9, %lo(D_8012AAD0)($at)
/* 0C7F18 800C7318 3C018013 */ lui $at, %hi(D_8012AAD4) # $at, 0x8013
/* 0C7F1C 800C731C AC30AAD4 */ sw $s0, %lo(D_8012AAD4)($at)
/* 0C7F20 800C7320 8FB20008 */ lw $s2, 8($sp)
/* 0C7F24 800C7324 8FB10004 */ lw $s1, 4($sp)
/* 0C7F28 800C7328 8FB00000 */ lw $s0, ($sp)
/* 0C7F2C 800C732C 03E00008 */ jr $ra
/* 0C7F30 800C7330 27BD0010 */ addiu $sp, $sp, 0x10
/* 0C7F34 800C7334 00000000 */ nop
/* 0C7F38 800C7338 00000000 */ nop
/* 0C7F3C 800C733C 00000000 */ nop
@@ -1,198 +0,0 @@
glabel func_800C7090
/* 0C7C90 800C7090 0206082B */ sltu $at, $s0, $a2
.L800C7094:
/* 0C7C94 800C7094 50200009 */ beql $at, $zero, .L800C70BC
/* 0C7C98 800C7098 032D1024 */ and $v0, $t9, $t5
.L800C709C:
/* 0C7C9C 800C709C 92420000 */ lbu $v0, ($s2)
/* 0C7CA0 800C70A0 26520001 */ addiu $s2, $s2, 1
/* 0C7CA4 800C70A4 02021004 */ sllv $v0, $v0, $s0
/* 0C7CA8 800C70A8 26100008 */ addiu $s0, $s0, 8
/* 0C7CAC 800C70AC 0206082A */ slt $at, $s0, $a2
/* 0C7CB0 800C70B0 1420FFFA */ bnez $at, .L800C709C
/* 0C7CB4 800C70B4 0322C825 */ or $t9, $t9, $v0
/* 0C7CB8 800C70B8 032D1024 */ and $v0, $t9, $t5
.L800C70BC:
/* 0C7CBC 800C70BC 000210C0 */ sll $v0, $v0, 3
/* 0C7CC0 800C70C0 00827821 */ addu $t7, $a0, $v0
/* 0C7CC4 800C70C4 91F80000 */ lbu $t8, ($t7)
/* 0C7CC8 800C70C8 2B010011 */ slti $at, $t8, 0x11
/* 0C7CCC 800C70CC 5420001A */ bnezl $at, .L800C7138
/* 0C7CD0 800C70D0 91E20001 */ lbu $v0, 1($t7)
/* 0C7CD4 800C70D4 81E30001 */ lb $v1, 1($t7)
.L800C70D8:
/* 0C7CD8 800C70D8 2318FFF0 */ addi $t8, $t8, -0x10
/* 0C7CDC 800C70DC 02038022 */ sub $s0, $s0, $v1
/* 0C7CE0 800C70E0 0218082B */ sltu $at, $s0, $t8
/* 0C7CE4 800C70E4 10200008 */ beqz $at, .L800C7108
/* 0C7CE8 800C70E8 0079C806 */ srlv $t9, $t9, $v1
.L800C70EC:
/* 0C7CEC 800C70EC 92420000 */ lbu $v0, ($s2)
/* 0C7CF0 800C70F0 26520001 */ addiu $s2, $s2, 1
/* 0C7CF4 800C70F4 02021004 */ sllv $v0, $v0, $s0
/* 0C7CF8 800C70F8 26100008 */ addiu $s0, $s0, 8
/* 0C7CFC 800C70FC 0218082A */ slt $at, $s0, $t8
/* 0C7D00 800C7100 1420FFFA */ bnez $at, .L800C70EC
/* 0C7D04 800C7104 0322C825 */ or $t9, $t9, $v0
.L800C7108:
/* 0C7D08 800C7108 00181040 */ sll $v0, $t8, 1
/* 0C7D0C 800C710C 004B1021 */ addu $v0, $v0, $t3
/* 0C7D10 800C7110 94490000 */ lhu $t1, ($v0)
/* 0C7D14 800C7114 8DE80004 */ lw $t0, 4($t7)
/* 0C7D18 800C7118 01394824 */ and $t1, $t1, $t9
/* 0C7D1C 800C711C 000948C0 */ sll $t1, $t1, 3
/* 0C7D20 800C7120 01097820 */ add $t7, $t0, $t1
/* 0C7D24 800C7124 91F80000 */ lbu $t8, ($t7)
/* 0C7D28 800C7128 2F010011 */ sltiu $at, $t8, 0x11
/* 0C7D2C 800C712C 5020FFEA */ beql $at, $zero, .L800C70D8
/* 0C7D30 800C7130 81E30001 */ lb $v1, 1($t7)
/* 0C7D34 800C7134 91E20001 */ lbu $v0, 1($t7)
.L800C7138:
/* 0C7D38 800C7138 24010010 */ li $at, 16
/* 0C7D3C 800C713C 0059C806 */ srlv $t9, $t9, $v0
/* 0C7D40 800C7140 17010005 */ bne $t8, $at, .L800C7158
/* 0C7D44 800C7144 02028022 */ sub $s0, $s0, $v0
/* 0C7D48 800C7148 95E20004 */ lhu $v0, 4($t7)
/* 0C7D4C 800C714C 26310001 */ addiu $s1, $s1, 1
/* 0C7D50 800C7150 08031C24 */ j func_800C7090
/* 0C7D54 800C7154 A222FFFF */ sb $v0, -1($s1)
.L800C7158:
/* 0C7D58 800C7158 2401000F */ li $at, 15
/* 0C7D5C 800C715C 13010068 */ beq $t8, $at, .L800C7300
/* 0C7D60 800C7160 0218082B */ sltu $at, $s0, $t8
/* 0C7D64 800C7164 50200009 */ beql $at, $zero, .L800C718C
/* 0C7D68 800C7168 00181040 */ sll $v0, $t8, 1
.L800C716C:
/* 0C7D6C 800C716C 92420000 */ lbu $v0, ($s2)
/* 0C7D70 800C7170 26520001 */ addiu $s2, $s2, 1
/* 0C7D74 800C7174 02021004 */ sllv $v0, $v0, $s0
/* 0C7D78 800C7178 26100008 */ addiu $s0, $s0, 8
/* 0C7D7C 800C717C 0218082A */ slt $at, $s0, $t8
/* 0C7D80 800C7180 1420FFFA */ bnez $at, .L800C716C
/* 0C7D84 800C7184 0322C825 */ or $t9, $t9, $v0
/* 0C7D88 800C7188 00181040 */ sll $v0, $t8, 1
.L800C718C:
/* 0C7D8C 800C718C 004B1021 */ addu $v0, $v0, $t3
/* 0C7D90 800C7190 94490000 */ lhu $t1, ($v0)
/* 0C7D94 800C7194 95E80004 */ lhu $t0, 4($t7)
/* 0C7D98 800C7198 02188022 */ sub $s0, $s0, $t8
/* 0C7D9C 800C719C 0207082B */ sltu $at, $s0, $a3
/* 0C7DA0 800C71A0 01394824 */ and $t1, $t1, $t9
/* 0C7DA4 800C71A4 0319C806 */ srlv $t9, $t9, $t8
/* 0C7DA8 800C71A8 10200008 */ beqz $at, .L800C71CC
/* 0C7DAC 800C71AC 01097021 */ addu $t6, $t0, $t1
.L800C71B0:
/* 0C7DB0 800C71B0 92420000 */ lbu $v0, ($s2)
/* 0C7DB4 800C71B4 26520001 */ addiu $s2, $s2, 1
/* 0C7DB8 800C71B8 02021004 */ sllv $v0, $v0, $s0
/* 0C7DBC 800C71BC 26100008 */ addiu $s0, $s0, 8
/* 0C7DC0 800C71C0 0207082A */ slt $at, $s0, $a3
/* 0C7DC4 800C71C4 1420FFFA */ bnez $at, .L800C71B0
/* 0C7DC8 800C71C8 0322C825 */ or $t9, $t9, $v0
.L800C71CC:
/* 0C7DCC 800C71CC 01991024 */ and $v0, $t4, $t9
/* 0C7DD0 800C71D0 000210C0 */ sll $v0, $v0, 3
/* 0C7DD4 800C71D4 00A27821 */ addu $t7, $a1, $v0
/* 0C7DD8 800C71D8 91F80000 */ lbu $t8, ($t7)
/* 0C7DDC 800C71DC 2B010011 */ slti $at, $t8, 0x11
/* 0C7DE0 800C71E0 5420001A */ bnezl $at, .L800C724C
/* 0C7DE4 800C71E4 91E20001 */ lbu $v0, 1($t7)
/* 0C7DE8 800C71E8 91E80001 */ lbu $t0, 1($t7)
.L800C71EC:
/* 0C7DEC 800C71EC 2318FFF0 */ addi $t8, $t8, -0x10
/* 0C7DF0 800C71F0 02088022 */ sub $s0, $s0, $t0
/* 0C7DF4 800C71F4 0218082B */ sltu $at, $s0, $t8
/* 0C7DF8 800C71F8 10200008 */ beqz $at, .L800C721C
/* 0C7DFC 800C71FC 0119C806 */ srlv $t9, $t9, $t0
.L800C7200:
/* 0C7E00 800C7200 92420000 */ lbu $v0, ($s2)
/* 0C7E04 800C7204 26520001 */ addiu $s2, $s2, 1
/* 0C7E08 800C7208 02021004 */ sllv $v0, $v0, $s0
/* 0C7E0C 800C720C 26100008 */ addiu $s0, $s0, 8
/* 0C7E10 800C7210 0218082A */ slt $at, $s0, $t8
/* 0C7E14 800C7214 1420FFFA */ bnez $at, .L800C7200
/* 0C7E18 800C7218 0322C825 */ or $t9, $t9, $v0
.L800C721C:
/* 0C7E1C 800C721C 00181040 */ sll $v0, $t8, 1
/* 0C7E20 800C7220 004B1021 */ addu $v0, $v0, $t3
/* 0C7E24 800C7224 94490000 */ lhu $t1, ($v0)
/* 0C7E28 800C7228 8DE80004 */ lw $t0, 4($t7)
/* 0C7E2C 800C722C 01394824 */ and $t1, $t1, $t9
/* 0C7E30 800C7230 000948C0 */ sll $t1, $t1, 3
/* 0C7E34 800C7234 01097821 */ addu $t7, $t0, $t1
/* 0C7E38 800C7238 91F80000 */ lbu $t8, ($t7)
/* 0C7E3C 800C723C 2F010011 */ sltiu $at, $t8, 0x11
/* 0C7E40 800C7240 5020FFEA */ beql $at, $zero, .L800C71EC
/* 0C7E44 800C7244 91E80001 */ lbu $t0, 1($t7)
/* 0C7E48 800C7248 91E20001 */ lbu $v0, 1($t7)
.L800C724C:
/* 0C7E4C 800C724C 02028022 */ sub $s0, $s0, $v0
/* 0C7E50 800C7250 0218082B */ sltu $at, $s0, $t8
/* 0C7E54 800C7254 10200008 */ beqz $at, .L800C7278
/* 0C7E58 800C7258 0059C806 */ srlv $t9, $t9, $v0
.L800C725C:
/* 0C7E5C 800C725C 92420000 */ lbu $v0, ($s2)
/* 0C7E60 800C7260 26520001 */ addiu $s2, $s2, 1
/* 0C7E64 800C7264 02021004 */ sllv $v0, $v0, $s0
/* 0C7E68 800C7268 26100008 */ addiu $s0, $s0, 8
/* 0C7E6C 800C726C 0218082A */ slt $at, $s0, $t8
/* 0C7E70 800C7270 1420FFFA */ bnez $at, .L800C725C
/* 0C7E74 800C7274 0322C825 */ or $t9, $t9, $v0
.L800C7278:
/* 0C7E78 800C7278 00181040 */ sll $v0, $t8, 1
/* 0C7E7C 800C727C 004B1021 */ addu $v0, $v0, $t3
/* 0C7E80 800C7280 94490000 */ lhu $t1, ($v0)
/* 0C7E84 800C7284 95E30004 */ lhu $v1, 4($t7)
/* 0C7E88 800C7288 31C20003 */ andi $v0, $t6, 3
/* 0C7E8C 800C728C 01394824 */ and $t1, $t1, $t9
/* 0C7E90 800C7290 02234022 */ sub $t0, $s1, $v1
/* 0C7E94 800C7294 01094022 */ sub $t0, $t0, $t1
/* 0C7E98 800C7298 0319C806 */ srlv $t9, $t9, $t8
/* 0C7E9C 800C729C 1040000A */ beqz $v0, .L800C72C8
/* 0C7EA0 800C72A0 02188022 */ sub $s0, $s0, $t8
/* 0C7EA4 800C72A4 01C27022 */ sub $t6, $t6, $v0
.L800C72A8:
/* 0C7EA8 800C72A8 910A0000 */ lbu $t2, ($t0)
/* 0C7EAC 800C72AC 2042FFFF */ addi $v0, $v0, -1
/* 0C7EB0 800C72B0 21080001 */ addi $t0, $t0, 1
/* 0C7EB4 800C72B4 22310001 */ addi $s1, $s1, 1
/* 0C7EB8 800C72B8 1440FFFB */ bnez $v0, .L800C72A8
/* 0C7EBC 800C72BC A22AFFFF */ sb $t2, -1($s1)
/* 0C7EC0 800C72C0 51C0FF74 */ beql $t6, $zero, .L800C7094
/* 0C7EC4 800C72C4 0206082B */ sltu $at, $s0, $a2
.L800C72C8:
/* 0C7EC8 800C72C8 91020000 */ lbu $v0, ($t0)
/* 0C7ECC 800C72CC 25CEFFFC */ addiu $t6, $t6, -4
/* 0C7ED0 800C72D0 25080004 */ addiu $t0, $t0, 4
/* 0C7ED4 800C72D4 A2220000 */ sb $v0, ($s1)
/* 0C7ED8 800C72D8 9103FFFD */ lbu $v1, -3($t0)
/* 0C7EDC 800C72DC 26310004 */ addiu $s1, $s1, 4
/* 0C7EE0 800C72E0 A223FFFD */ sb $v1, -3($s1)
/* 0C7EE4 800C72E4 9109FFFE */ lbu $t1, -2($t0)
/* 0C7EE8 800C72E8 A229FFFE */ sb $t1, -2($s1)
/* 0C7EEC 800C72EC 910AFFFF */ lbu $t2, -1($t0)
/* 0C7EF0 800C72F0 15C0FFF5 */ bnez $t6, .L800C72C8
/* 0C7EF4 800C72F4 A22AFFFF */ sb $t2, -1($s1)
/* 0C7EF8 800C72F8 08031C24 */ j func_800C7090
/* 0C7EFC 800C72FC 00000000 */ nop
.L800C7300:
/* 0C7F00 800C7300 3C01800E */ lui $at, %hi(D_800E3768) # $at, 0x800e
/* 0C7F04 800C7304 AC323768 */ sw $s2, %lo(D_800E3768)($at)
/* 0C7F08 800C7308 3C01800E */ lui $at, %hi(D_800E376C) # $at, 0x800e
/* 0C7F0C 800C730C AC31376C */ sw $s1, %lo(D_800E376C)($at)
/* 0C7F10 800C7310 3C018013 */ lui $at, %hi(D_8012AAD0) # $at, 0x8013
/* 0C7F14 800C7314 AC39AAD0 */ sw $t9, %lo(D_8012AAD0)($at)
/* 0C7F18 800C7318 3C018013 */ lui $at, %hi(D_8012AAD4) # $at, 0x8013
/* 0C7F1C 800C731C AC30AAD4 */ sw $s0, %lo(D_8012AAD4)($at)
/* 0C7F20 800C7320 8FB20008 */ lw $s2, 8($sp)
/* 0C7F24 800C7324 8FB10004 */ lw $s1, 4($sp)
/* 0C7F28 800C7328 8FB00000 */ lw $s0, ($sp)
/* 0C7F2C 800C732C 03E00008 */ jr $ra
/* 0C7F30 800C7330 27BD0010 */ addiu $sp, $sp, 0x10
/* 0C7F34 800C7334 00000000 */ nop
/* 0C7F38 800C7338 00000000 */ nop
/* 0C7F3C 800C733C 00000000 */ nop
+16211
View File
File diff suppressed because one or more lines are too long
+29 -48
View File
@@ -29,54 +29,50 @@ subfolder: "us_1.0"
[0xD7200]: "NoExtract"
# [0x0D8200, 0x0D90C0] = Unknown microcode
[0xEC0]: "Binary", "unknown_ucode", "ucode"
[0xEC0]: "Binary", "ucode_unknown", "ucode"
# [0x0D90C0, 0x0D9190] = Microcode boot code
[0xD0]: "Binary", "ucode_boot", "ucode"
# [0x0D9190, 0x0DA390] = DRAM Dump version of F3DDKR
[0x1200]: "Binary", "f3ddkr_dram", "ucode"
[0x1200]: "Binary", "ucode_f3ddkr_dram", "ucode"
# [0x0DA390, 0x0DB570] = FIFO version of F3DDKR
[0x11E0]: "Binary", "f3ddkr_fifo", "ucode"
[0x11E0]: "Binary", "ucode_f3ddkr_fifo", "ucode"
# [0x0DB570, 0x0DC770] = XBUS version of F3DDKR
[0x1200]: "Binary", "f3ddkr_xbus", "ucode"
[0x1200]: "Binary", "ucode_f3ddkr_xbus", "ucode"
# [0x0DC770, 0x0DD230] = Unknown microcode
[0xAC0]: "Binary", "unknown_ucode", "ucode"
[0xAC0]: "Binary", "ucode_unknown", "ucode"
# [0x0DD230, 0x0EA7A0] = Unknown (Might be .data section?)
[0xD570]: "Binary", "unknown", "bin"
# [0x0DD230, 0x0EA7A0] = .data section of the game code
[0xD570]: "NoExtract"
# [0x0EA7A0, 0x0EAFA0] = Data section of F3DDKR-DRAM
[0x800]: "Binary", "f3ddkr_dram_data", "ucode"
[0x800]: "Binary", "data_f3ddkr_dram", "ucode"
# [0x0EAFA0, 0x0EB7A0] = Data section of F3DDKR-FIFO
[0x800]: "Binary", "f3ddkr_fifo_data", "ucode"
[0x800]: "Binary", "data_f3ddkr_fifo", "ucode"
# [0x0EB7A0, 0x0EBFA0] = Data section of F3DDKR-XBUS
[0x800]: "Binary", "f3ddkr_xbus_data", "ucode"
[0x800]: "Binary", "data_f3ddkr_xbus", "ucode"
# [0x0EBFA0, 0x0ECD50] = Unknown
[0xDB0]: "Binary", "unknown", "bin"
# ---------------------- Textures ----------------------- #
# [0x0ECD50, 0x296CA0] = Textures for 3D models
include: "extract-textures/textures_3d-us-1.0.extract-config"
# [0x296CA0, 0x298290] = 3D Textures look-up table
# [0x296CA0, 0x298290] = 3D Textures lookup table
[0x15F0]: "Binary", "textures_3d_lut", "textures"
# [0x298290, 0x375D70] = Textures for HUD & billboards
include: "extract-textures/textures_2d-us-1.0.extract-config"
# [0x375D70, 0x376BA0] = 2D Textures look-up table
# [0x375D70, 0x376BA0] = 2D Textures lookup table
[0xE30]: "Binary", "textures_2d_lut", "textures"
# ------------------------ Text ------------------------- #
# [0x376BA0, 0x37E030] = Game Text (English, French, German)
[0x7490]: "Binary", "game_text", "text"
@@ -90,53 +86,49 @@ include: "extract-textures/textures_2d-us-1.0.extract-config"
# [0x3808C8, 0x380BB0] is 0xFF Padding
[0x1080]: "Binary", "menu_text_german", "text"
# ------------------------------------------------------- #
# [0x380BB0, 0x380BE0] = Unknown
[0x30]: "Binary", "unknown", "bin"
# [0x380BE0, 0x381AA0] = Billboards
# [0x380BE0, 0x381AA0] = Billboards (Probably needs to renamed to "Sprites")
include: "extract-billboards/billboards-us-1.0.extract-config"
# [0x381AA0, 0x381DB0] = Unknown
# [0x381AA0, 0x381DB0] = Billboards lookup table
[0x310]: "Binary", "billboards_lut", "billboards"
# [0x381DB0, 0x3833A0] = Unknown
[0x15F0]: "Binary", "unknown", "bin"
# [0x3833A0, 0x383760] = Unknown
# [0x3833A0, 0x383760] = Magic Codes
[0x3C0]: "Cheats", "magic_codes", "cheats"
# [0x383760, 0x383AA0] = Unknown
[0x340]: "Binary", "unknown", "bin"
# ------------------------------------------------------- #
# [0x383AA0, 0x383CD0] = Object placements map lut
# [0x383AA0, 0x383CD0] = Object placements map lookup table
[0x230]: "Binary", "level_object_maps_lut", "levels"
# [0x383CD0, 0x3A1440] = Object placements map
include: "extract-levels/object-maps-us-1.0.extract-config"
# [0x3A1440, 0x3A1550] = Level headers table
# [0x3A1440, 0x3A1550] = Level headers lookup table
[0x110]: "Binary", "level_headers_lut", "levels"
# [0x3A1550, 0x3A4820] = Level headers
include: "extract-levels/level_headers-us-1.0.extract-config"
# [0x3A4820, 0x3A4930] = Level names table
# [0x3A4820, 0x3A4930] = Level names lookup
[0x110]: "Binary", "level_names_lut", "levels"
# [0x3A4930, 0x3A5670] = Level names in each language
include: "extract-levels/level_names-us-1.0.extract-config"
# [0x3A5670, 0x3A5760] = Levels Look-up table
# [0x3A5670, 0x3A5760] = Levels lookup table
[0xF0]: "Binary", "levels_lut", "levels"
# [0x3A5760, 0x54F4B0] = Levels
include: "extract-levels/levels-us-1.0.extract-config"
# [0x54F4B0, 0x54FAD0] = Objects Look-up table
# [0x54F4B0, 0x54FAD0] = Objects lookup table
[0x620]: "Binary", "object_models_lut", "objects"
# [0x54FAD0, 0x61FA70] = Objects data
@@ -145,13 +137,13 @@ include: "extract-objects/objects-us-1.0.extract-config"
# [0x61FA70, 0x61FD80] = Unknown
[0x310]: "Binary", "unknown", "bin"
# [0x61FD80, 0x6204E0] = Animations look-up table
# [0x61FD80, 0x6204E0] = Animations lookup table
[0x760]: "Binary", "animations_lut", "animations"
# [0x6204E0, 0x6C0050] = Animations
include: "extract-animations/animations-us-1.0.extract-config"
# [0x6C0050, 0x6C0520] = Object headers table
# [0x6C0050, 0x6C0520] = Object headers lookup table
[0x4D0]: "Binary", "object_headers_lut", "objects"
# [0x6C0520, 0x6CBDE0] = Object headers
@@ -160,31 +152,29 @@ include: "extract-objects/object_headers-us-1.0.extract-config"
# [0x6CBDE0, 0x6CC1E0] = Level Object Map Id to Object Header Id translatation table.
[0x400]: "Binary", "level_object_translate_table", "levels"
# ------------------------------------------------------- #
# [0x6CC1E0, 0x6CC1F0] = Unknown.
[0x10]: "Binary", "unknown", "bin"
# [0x6CC1F0, 0x6CC1F0] = Unknown.
# [0x6CC1F0, 0x6CC1F0] = Header/Lookup table for the huge audio file.
[0x40]: "Binary", "audio_header", "audio"
# [0x6CC1E0, 0xAA6330] = Unknown.
# [0x6CC1E0, 0xAA6330] = Audio (Instruments, Sound effects, Music)
[0x3DA100]: "Binary", "audio", "audio"
# [0xAA6330, 0xAA6450] = Unknown.
# [0xAA6330, 0xAA6450] = Particles lookup table
[0x120]: "Binary", "particles_lut", "particles"
# [0xAA6450, 0xAA6AE0] = Unknown.
# [0xAA6450, 0xAA6AE0] = Particles
# [0x690]: "Binary", "particles", "particles"
include: "extract-particles/particles-us-1.0.extract-config"
# [0xAA6AE0, 0xAA6C20] = Unknown.
# [0xAA6AE0, 0xAA6C20] = Particle Behaviors lookup table
[0x140]: "Binary", "particle_behaviors_lut", "particles"
# [0xAA6C20, 0xAA9B00] = Unknown.
# [0xAA6C20, 0xAA9B00] = Particle Behaviors
include: "extract-particles/particle_behaviors-us-1.0.extract-config"
# [0xAA9B00, 0xAAAB00] = Unknown.
# [0xAA9B00, 0xAAAB00] = Fonts
include: "extract-fonts/fonts-us-1.0.extract-config"
# [0xAAAB00, 0xABBDA0] = Unused fontsheet?
@@ -200,12 +190,3 @@ include: "extract-tt_ghosts/tt_ghosts-us-1.0.extract-config"
[0x1369D0]: "NoExtract"
# -------------------------------------------------------------------------- #
+35 -8
View File
@@ -5,6 +5,33 @@
#include "types.h"
/* Size: 0x20 bytes */
typedef struct MenuElement {
/* 0x00 */ s16 unk0; // This is something related to position, not sure what though.
/* 0x02 */ s16 unk2; // This is something related to position, not sure what though.
/* 0x04 */ s16 screenX;
/* 0x06 */ s16 screenY;
/* 0x08 */ s16 unk6;
/* 0x0A */ s16 unk8;
/* 0x0C */ u8 filterRed;
/* 0x0D */ u8 filterGreen;
/* 0x0E */ u8 filterBlue;
/* 0x0F */ u8 filterAlpha; // 0 = no filter color, 0xFF = full color.
/* 0x10 */ u8 opacity;
/* 0x11 */ u8 textType;
/* 0x12 */ u8 textAlignFlags;
/* 0x13 */ u8 unk13; // Source type? 0 = ascii text, 7 = texture?
union {
/* 0x14 */ char* asciiText; // Pointer to ascii text to be displayed on the screen.
/* 0x14 */ u32* texture; // Pointer to texture to be displayed on the screen.
} source;
/* 0x18 */ u16 backgroundRed;
/* 0x1A */ u16 backgroundGreen;
/* 0x1C */ u16 backgroundBlue;
/* 0x1E */ u16 backgroundAlpha; // 0x0000 = No background, 0x00FF = full background color.
} MenuElement;
/* Size: 0x18 bytes */
typedef struct dkr_racer_t {
/* 0x00 */ u32 trophy_points;
/* 0x04 */ u8 best_times;
@@ -15,7 +42,6 @@ typedef struct dkr_racer_t {
/* 0x10 */ u16 course_time;
/* 0x12 */ u16 lap_times[3];
/* 0x14 */ u32 unk14;
/* Size: 0x18 */
} dkr_racer_t;
/* Unknown Size */
@@ -26,6 +52,7 @@ typedef struct Settings4C {
u8 unkF;
} Settings4C;
/* Size: 0x840 bytes */
typedef struct Settings {
/* 0x0000 */ void *balloonsPtr;
/* 0x0004 */ void *courseFlagsPtr;
@@ -58,9 +85,9 @@ typedef struct Settings {
/* 0x03AE */ u16 flapTimes[3][65];
/* 0x0534 */ u16 courseInitials[3][65];
/* 0x06BA */ u16 courseTimes[3][65];
/* Size: 0x0840 */
} Settings;
/* Size: 0xC8 bytes */
typedef struct {
/* 0x00 */ u8 world;
@@ -112,9 +139,9 @@ typedef struct {
u32 unk9C[11]; // Not an array. Unknown values.
/* Size: 0xC8 */
} dkr_level_header_t;
/* Size: 0x50 bytes */
typedef struct {
/* 0x00 */ u32 unk00;
/* 0x04 */ u32 unk04;
@@ -136,9 +163,10 @@ typedef struct {
/* 0x44 */ f32 unk44;
/* 0x48 */ f32 unk48;
/* 0x4C */ u32 unk4C;
/* Size: 0x50 */
} dkr_wave_t;
/* Size: 0x0630 bytes */
typedef struct {
/* 0x0000 */ u16 y_rotation;
/* 0x0002 */ u16 x_rotation;
@@ -199,9 +227,10 @@ typedef struct {
/* 0x0090 */ u32 unk90;
/* 0x0094 */ u32 unk94;
/* 0x0098 */ u16 unk98;
/* 0x0098 */ s16 playerIndex; // -1 = AI Controlled, 0 to 3 = Player controlled
/* 0x009A */ u8 unk9A;
/* 0x009B */ u8 minimap_color;
/* 0x009B */ u8 characterId; // Affects minimap color, horn, voice, etc.
/* 0x009C */ u32 unk9C;
/* 0x00A0 */ f32 unkA0;
@@ -394,8 +423,6 @@ typedef struct {
/* 0x0374 */ s32 unk374;
u32 unk378[174]; // Not an array. Unknown values.
/* Size: 0x0630 */
} dkr_player_t;
#endif
+1 -1
View File
@@ -10,4 +10,4 @@ fi
#echo "Replace $1 with $2?"
#read
grep -rl "$1" asm/**/*.s src/**/*.{c,h} include/*.h undefined_syms.txt | xargs sed -i "s/\b$1\b/$2/g"
grep -rl "$1" asm/**/*.s src/**/*.{c,h} include/*.h data/dkr.data.s undefined_syms.txt | xargs sed -i "s/\b$1\b/$2/g"
+65 -1
View File
@@ -5,6 +5,38 @@
#include "macros.h"
#include "structs.h"
typedef enum MENU_ID {
TITLE_SCREEN,
LOGOS_SCREEN,
UNUSED_2,
CHARACTER_SELECT,
UNUSED_4,
UNKNOWN_5,
FILE_SELECT,
UNUSED_7,
UNUSED_8,
UNUSED_9,
MAGIC_CODES,
MAGIC_CODES_LIST,
OPTIONS,
AUDIO_OPTIONS,
SAVE_OPTIONS,
TRACK_SELECT,
UNUSED_16,
RESULTS,
UNUSED_18,
GAME_SELECT,
TROPHY_RACE_ROUND,
TROPHY_RACE_RANKINGS,
UNUSED_22,
UNKNOWN_23,
GHOST_DATA,
CREDITS,
BOOT_SCREEN,
UNUSED_27,
CAUTION_MESSAGE
} MENU_ID;
extern s32 osTvType;
extern s8 D_800DF450;
@@ -34,6 +66,7 @@ extern s8 D_800DF4EC;
extern s32 gIsInTwoPlayerAdventure;
extern s32 gSaveFileIndex;
extern s16 D_800DF7C4[11];
extern s32 D_800DF774;
extern s32 D_800DF77C;
extern s32 D_800DFA2C;
extern s16 D_800DFC78[24];
@@ -500,7 +533,37 @@ void menu_caution_init(void) {
D_800DF498 = 1;
}
GLOBAL_ASM("asm/non_matchings/unknown_080500/MenuCautionLoop.s")
extern MenuElement D_800DFFD8[13];
void func_8008C4E8(void);
void DrawMenuText(s32, MenuElement*, f32);
s32 menu_caution_loop(s32 arg0) {
if (D_800DF47C != 0) {
D_800DF47C += arg0;
} else {
if (D_801263C4 <= 0) {
if (func_8006A554(0) & 0xD000) {
func_80001D04(0xEF, 0);
D_800DF47C = 1;
func_800C01D8(&D_800DF774);
}
}
}
if (D_800DF47C < 0x14) {
DrawMenuText(1, D_800DFFD8, 1.0f);
}
if (D_800DF47C >= 0x1F) {
func_8008C4E8();
MenuInit(GAME_SELECT);
}
if (D_801263C4 > 0) {
D_801263C4 = (s32) (D_801263C4 - arg0);
}
return 0;
}
void func_8008C4E8(void) {
func_800C422C(2);
@@ -558,6 +621,7 @@ void func_80090ED8(s32 arg0) {
}
GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80090F30.s")
GLOBAL_ASM("asm/non_matchings/unknown_080500/func_80092188.s")
#if 1
-2
View File
@@ -271,8 +271,6 @@ GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6274.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C68C0.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C69C4.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6B90.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6DDC.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C6F34.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C7040.s")
GLOBAL_ASM("asm/non_matchings/unknown_0B8920/func_800C7090.s")
+32 -2
View File
@@ -9,6 +9,7 @@ LD_NAME = 'dkr.ld'
ASM_DIR = './asm'
SRC_DIR = './src'
ASSETS_S_FILENAME = './asm/assets/assets.s'
ASSETS_UCODE_S_FILENAME = './asm/assets/ucode.s'
ASSETS_DIR = './assets/us_1.0'
ASSETS_START = 0x0D8200
@@ -49,6 +50,8 @@ class LD:
self.gen_line('romPos = 0x0;')
self.gen_boot_section()
self.gen_main_section()
self.gen_ucode_section()
self.gen_data_section()
self.gen_assets_section()
self.gen_discard()
self.gen_close_block()
@@ -71,6 +74,22 @@ class LD:
self.gen_line('romPos += SIZEOF(.main);')
self.gen_newline()
def gen_ucode_section(self):
self.gen_line('.ucode 0 : AT(romPos)')
self.gen_open_block()
self.gen_line('build/asm/assets/ucode.o(.text);')
self.gen_close_block()
self.gen_line('romPos += SIZEOF(.ucode);')
self.gen_newline()
def gen_data_section(self):
self.gen_line('.main_data 0x80000400 : AT(romPos) SUBALIGN(16)')
self.gen_open_block()
self.gen_line('build/data/dkr.data.o(.data);')
self.gen_close_block()
self.gen_line('romPos += SIZEOF(.main_data);')
self.gen_newline()
def gen_assets_section(self):
self.gen_line('.assets 0 : AT(romPos)')
self.gen_open_block()
@@ -161,6 +180,9 @@ class LD:
if matches is None:
raise Exception('Invalid filename: \"' + filename + '"')
matchedGroups = matches.groups()
isMicrocode = False
if matchedGroups[0].startswith('ucode/ucode_'):
isMicrocode = True
fileExtension = matchedGroups[3]
fileProperties = matchedGroups[1].split('.')
ramAddress = fileProperties[0]
@@ -170,7 +192,7 @@ class LD:
outFileExtension = '.bin'
outFilename = 'build/' + matchedGroups[0] + '.' + matchedGroups[1] + outFileExtension
if int(ramAddress, 16) >= ASSETS_START:
assetFiles.append((outFilename, ramAddress, fileExtension))
assetFiles.append((outFilename, ramAddress, fileExtension, isMicrocode))
assetFiles.sort(key = lambda x: x[1]) # Sort tuples by RAM address
return assetFiles
@@ -178,6 +200,7 @@ class LD:
assets = self.get_asset_files()
assetsText = '# This file was generated by generate_ld.py\n\n'
assetsText += '.macro .incbinaligned filename\n .balign 16\n .incbin "\\filename"\n.endm\n\n'
assetsUCodeText = '# This file was generated by generate_ld.py\n\n'
prevAssetMadeAlignment = False
for asset in assets:
if 'lut' in asset[0]:
@@ -186,7 +209,11 @@ class LD:
if prevAssetMadeAlignment:
assetsText += '.incbinaligned "./' + asset[0] + '"\n'
else:
assetsText += '.incbin "./' + asset[0] + '"\n'
if asset[3]:
assetsUCodeText += '.incbin "./' + asset[0] + '"\n'
else:
assetsText += '.incbin "./' + asset[0] + '"\n'
if asset[2] == '.png' or asset[2] == '.cbin' or 'lut' in asset[0]: # Make sure that compressed data ends on a 16-byte boundary
#assetsText += '.balign 16\n'
prevAssetMadeAlignment = True
@@ -194,6 +221,9 @@ class LD:
prevAssetMadeAlignment = False
with open(ASSETS_S_FILENAME, "w") as assetsFile:
assetsFile.write(assetsText)
with open(ASSETS_UCODE_S_FILENAME, "w") as assetsFile:
assetsFile.write(assetsUCodeText)
with open(LD_NAME, 'w') as ldFile:
+6 -6
View File
@@ -1682,12 +1682,12 @@ D_800E92BC = 0x800E92BC;
D_800E9308 = 0x800E9308;
D_800E930C = 0x800E930C;
D_800E932C = 0x800E932C;
D_800E93C0 = 0x800E93C0;
D_800E93D4 = 0x800E93D4;
D_800E9412 = 0x800E9412;
D_800E9432 = 0x800E9432;
D_800E946E = 0x800E946E;
D_800E948C = 0x800E948C;
gzip_border = 0x800E93C0;
gzip_cplens = 0x800E93D4;
gzip_cplext = 0x800E9412;
gzip_cpdist = 0x800E9432;
gzip_cpdext = 0x800E946E;
gzip_mask_bits = 0x800E948C;
D_800E94C0 = 0x800E94C0;
D_800E94C4 = 0x800E94C4;
D_800E94D0 = 0x800E94D0;