Decompiled staff_ghosts.c (Plus lots more) (#39)

* Decompiled staff_ghosts.c

* started on 80296A50.c

* Matched some of main.c

* Added framebuffers.c

* Added structs such as Camera
This commit is contained in:
CoderStig
2021-10-26 11:55:42 -06:00
committed by GitHub
parent caaea76c42
commit f3788f7ac4
40 changed files with 6358 additions and 2665 deletions
+2 -25
View File
@@ -220,7 +220,7 @@ $(BUILD_DIR)/%.mio0.s: $(BUILD_DIR)/%.mio0
printf ".section .data\n\n.incbin \"$<\"\n" > $@
$(BUILD_DIR)/src/crash_screen.o: src/crash_screen.c
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/crash_screen/crash_screen_font.ia1.inc.c -g textures/crash_screen/crash_screen_font.ia1.png -f ia1 -s u32
$(N64GRAPHICS) -i $(BUILD_DIR)/textures/crash_screen/crash_screen_font.ia1.inc.c -g textures/crash_screen/crash_screen_font.ia1.png -f ia1 -s u8
@$(CC_CHECK) -MMD -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
$(PYTHON) tools/set_o32abi_bit.py $@
@@ -434,7 +434,7 @@ $(battle)/skyscraper/%.inc.mio0.o: courses/battle/skyscraper/%.inc.c
printf ".include \"macros.inc\"\n\n.section .data\n\n.balign 4\n\n.incbin \"build/us/courses/battle/skyscraper/model.inc.mio0\"\n\n.balign 4\n\nglabel d_course_skyscraper_packed\n\n.incbin \"bin/course_skyscraper_packed.bin\"\n" > build/us/courses/battle/skyscraper/model.inc.mio0.s
$(AS) $(ASFLAGS) -o $(battle)/skyscraper/$*.inc.mio0.o $(battle)/skyscraper/$*.inc.mio0.s
#################### #####################
#################### STAFF GHOSTS #####################
# startup_logo.c
@@ -455,31 +455,8 @@ $(BUILD_DIR)/src/trophy_model.inc.mio0.o: src/trophy_model.inc.c
printf ".include \"macros.inc\"\n\n.data\n\n.align 2, 0x00\n\nglabel trophy_model\n\n.incbin \"build/us/src/trophy_model.inc.mio0\"\n" > build/us/src/trophy_model.inc.mio0.s
$(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.s
#$(BUILD_DIR)/src/trophy_model.inc.bin: src/trophy_model.inc.c
# $(LD) -t -e 0 -Ttext=0B000000 -Map $(BUILD_DIR)/src/trophy_model.inc.elf.map -o $(BUILD_DIR)/src/trophy_model.inc.elf $(BUILD_DIR)/src/trophy_model.inc.o --no-check-sections
# $(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/trophy_model.inc.elf $(BUILD_DIR)/src/trophy_model.inc.bin
#$(BUILD_DIR)/data/trophy_path_data.inc.bin: data/trophy_path_data.inc.s
# $(AS) $(ASFLAGS) -o $(BUILD_DIR)/data/trophy_path_data.inc.o data/trophy_path_data.inc.s
# $(LD) -t -e 0 -Ttext=0B000000 -Map $(BUILD_DIR)/data/trophy_path_data.inc.elf.map -o $(BUILD_DIR)/data/trophy_path_data.inc.elf $(BUILD_DIR)/data/trophy_path_data.inc.o --no-check-sections
# $(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/data/trophy_path_data.inc.elf $(BUILD_DIR)/data/trophy_path_data.inc.bin
#$(BUILD_DIR)/src/trophy_model.inc.mio0.o: $(BUILD_DIR)/src/trophy_model.inc.bin $(BUILD_DIR)/data/trophy_path_data.inc.bin
# printf ".include \"macros.inc\"\n\n.data\n\n\n\nglabel trophy_model\n\n.incbin \"build/us/src/trophy_model.inc.bin\"\n\n\n\n.incbin \"build/us/data/trophy_path_data.inc.bin\"\n" > build/us/src/trophy_model_combined.inc.s
# $(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/trophy_model_combined.inc.o $(BUILD_DIR)/src/trophy_model_combined.inc.s
# $(LD) -t -e 0 -Ttext=0B000000 -Map $(BUILD_DIR)/src/trophy_model_combined.inc.elf.map -o $(BUILD_DIR)/src/trophy_model_combined.inc.elf $(BUILD_DIR)/src/trophy_model_combined.inc.o --no-check-sections
# $(V)$(EXTRACT_DATA_FOR_MIO) $(BUILD_DIR)/src/trophy_model_combined.inc.elf $(BUILD_DIR)/src/trophy_model_combined.inc.bin
# $(REMOVE_BYTES) $(BUILD_DIR)/src/trophy_model_combined.inc.bin 8
# $(MIO0TOOL) -c $(BUILD_DIR)/src/trophy_model_combined.inc.bin $(BUILD_DIR)/src/trophy_model_combined.inc.mio0
# printf ".include \"macros.inc\"\n\n.data\n\n.align 2, 0x00\n\nglabel trophy_model\n\n.incbin \"build/us/src/trophy_model_combined.inc.mio0\"\n" > build/us/src/trophy_model.inc.mio0.s
# $(AS) $(ASFLAGS) -o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.s
$(BUILD_DIR)/$(TARGET).elf: $(O_FILES) $(COURSE_MIO0_OBJ_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/src/startup_logo.inc.mio0.o $(BUILD_DIR)/src/trophy_model.inc.mio0.o $(LD_COURSE_VERTEX_DEPENDENCIES) undefined_syms.txt
$(LD) $(LDFLAGS) -o $@
# -R $(mushroom_cup)/luigi_raceway/model.inc.elf -R $(mushroom_cup)/moo_moo_farm/model.inc.elf -R $(mushroom_cup)/koopa_beach/model.inc.elf -R $(mushroom_cup)/kalimari_desert/model.inc.elf \
-R $(flower_cup)/toads_turnpike/model.inc.elf -R $(flower_cup)/frappe_snowland/model.inc.elf -R $(flower_cup)/choco_mountain/model.inc.elf -R $(flower_cup)/mario_raceway/model.inc.elf \
-R $(star_cup)/wario_stadium/model.inc.elf -R $(star_cup)/sherbet_land/model.inc.elf -R $(star_cup)/royal_raceway/model.inc.elf -R $(star_cup)/bowsers_castle/model.inc.elf \
-R $(special_cup)/dks_jungle_parkway/model.inc.elf -R $(special_cup)/yoshi_valley/model.inc.elf -R $(special_cup)/banshee_boardwalk/model.inc.elf -R $(special_cup)/rainbow_road/model.inc.elf \
+1 -1
View File
@@ -38,7 +38,7 @@ Run the following commands after pulling:
## Progress
The Mario Kart 64 code-base contains thirty-five C files, around twenty-seven files remain for decompilation. This does not account for other kinds of files such as data. The source is in a 'shiftable' state that may allow modding but glitches may exist. Keep in-mind the code-base will alter significantly overtime. Feedback that raises awareness of new shift issues are welcome as a comment on issue #6. Note that some segments must be moved manually to prevent them colliding into each other.
The Mario Kart 64 code-base contains thirty-five C files, around twenty-six files remain for decompilation. This does not account for other kinds of files such as data. The source is in a 'shiftable' state that may allow modding but glitches may exist. Keep in-mind the code-base will alter significantly overtime. Feedback that raises awareness of new shift issues are welcome as a comment on issue #6. Note that some segments must be moved manually to prevent them colliding into each other.
Some menu textures are compressed using a format called tkmk00. A byte-matching compressor/decompressor does not yet exist.
-108
View File
@@ -1,108 +0,0 @@
.include "macros.inc"
.section .bss
glabel D_80162D80
.skip 4
glabel D_80162D84
.skip 2
glabel D_80162D86
.skip 2
glabel D_80162D88
.skip 4
glabel D_80162D8C
.skip 4
glabel D_80162D90
.skip 4
glabel D_80162D94
.skip 4
glabel D_80162D98
.skip 4
glabel D_80162D9C
.skip 4
glabel D_80162DA0
.skip 4
glabel D_80162DA4
.skip 4
glabel D_80162DA8
.skip 4
glabel D_80162DAC
.skip 4
glabel D_80162DB0
.skip 4
glabel D_80162DB4
.skip 4
glabel D_80162DB8
.skip 4
glabel D_80162DBC
.skip 4
glabel D_80162DC0
.skip 4
glabel D_80162DC4
.skip 4
glabel D_80162DC8
.skip 4
glabel D_80162DCC
.skip 4
glabel D_80162DD0
.skip 4
glabel D_80162DD4
.skip 2
glabel D_80162DD6
.skip 2
glabel D_80162DD8
.skip 4
glabel D_80162DDC
.skip 4
glabel D_80162DE0
.skip 4
glabel D_80162DE4
.skip 4
glabel D_80162DE8
.skip 4
glabel D_80162DEC
.skip 4
glabel D_80162DF0
.skip 4
glabel D_80162DF4
.skip 4
glabel D_80162DF8
.skip 4
glabel D_80162DFC
.skip 4
glabel D_80162E00
.skip 112
+2 -2
View File
@@ -1,7 +1,7 @@
.include "macros.inc"
.section .bss
.skip 96
glabel D_80162E70
.skip 64
@@ -306,4 +306,4 @@ glabel D_801635BC
.skip 8
glabel D_801635C4
.skip 220
.skip 220
+42 -2
View File
@@ -33,6 +33,46 @@ glabel D_802BA27C
.skip 4
glabel D_802BA280
.skip 16
.skip 875776 # 16
glabel D_802BA290
#glabel D_802BA290
#.skip 22768 # 100592
#glabel D_802BFB80
#.skip 77824
#glabel D_802D2B80
#.skip 32768
#glabel D_802DAB80
#.skip 20480
#glabel D_802DFB80
#.skip 74752
#glabel D_802F1F80
#.skip 32768
#glabel gZBuffer
#.skip 153600
#glabel gFramebuffer0
#.skip 153600
#glabel gFramebuffer1
#.skip 153600
#glabel gFramebuffer2
#.skip 153600
## Audio
glabel gGfxSPTaskOutputBuffer # 0x8038FF80
.skip 129024
glabel gGfxSPTaskOutputBufferSize # 0x803AF780
@@ -0,0 +1,97 @@
glabel func_8000599C
/* 00659C 8000599C 3C098016 */ lui $t1, %hi(D_80162DB8) # $t1, 0x8016
/* 0065A0 800059A0 25292DB8 */ addiu $t1, %lo(D_80162DB8) # addiu $t1, $t1, 0x2db8
/* 0065A4 800059A4 85220000 */ lh $v0, ($t1)
/* 0065A8 800059A8 3C0E800E */ lui $t6, %hi(D_800DC4DC) # $t6, 0x800e
/* 0065AC 800059AC 24190001 */ li $t9, 1
/* 0065B0 800059B0 28411000 */ slti $at, $v0, 0x1000
/* 0065B4 800059B4 10200008 */ beqz $at, .L800059D8
/* 0065B8 800059B8 00000000 */ nop
/* 0065BC 800059BC 8DCEC4DC */ lw $t6, %lo(D_800DC4DC)($t6)
/* 0065C0 800059C0 85C300CA */ lh $v1, 0xca($t6)
/* 0065C4 800059C4 306F0002 */ andi $t7, $v1, 2
/* 0065C8 800059C8 15E00003 */ bnez $t7, .L800059D8
/* 0065CC 800059CC 30780008 */ andi $t8, $v1, 8
/* 0065D0 800059D0 13000004 */ beqz $t8, .L800059E4
/* 0065D4 800059D4 3C04800E */ lui $a0, %hi(D_800DC4BC) # 0x800e
.L800059D8:
/* 0065D8 800059D8 3C018016 */ lui $at, %hi(D_80162DF8) # 0x8016
/* 0065DC 800059DC 03E00008 */ jr $ra
/* 0065E0 800059E0 AC392DF8 */ sw $t9, %lo(D_80162DF8)($at) # 0x2df8($at)
.L800059E4:
/* 0065E4 800059E4 8C84C4BC */ lw $a0, %lo(D_800DC4BC)($a0) # -0x3b44($a0)
/* 0065E8 800059E8 00003825 */ move $a3, $zero
/* 0065EC 800059EC 00026080 */ sll $t4, $v0, 2
/* 0065F0 800059F0 84830000 */ lh $v1, ($a0)
/* 0065F4 800059F4 84850002 */ lh $a1, 2($a0)
/* 0065F8 800059F8 84860004 */ lh $a2, 4($a0)
/* 0065FC 800059FC 306A00FF */ andi $t2, $v1, 0xff
/* 006600 80005A00 30AB00FF */ andi $t3, $a1, 0xff
/* 006604 80005A04 30CD8000 */ andi $t5, $a2, 0x8000
/* 006608 80005A08 01401825 */ move $v1, $t2
/* 00660C 80005A0C 11A00002 */ beqz $t5, .L80005A18
/* 006610 80005A10 000B2A00 */ sll $a1, $t3, 8
/* 006614 80005A14 3C078000 */ lui $a3, 0x8000
.L80005A18:
/* 006618 80005A18 30CE4000 */ andi $t6, $a2, 0x4000
/* 00661C 80005A1C 11C00004 */ beqz $t6, .L80005A30
/* 006620 80005A20 30D82000 */ andi $t8, $a2, 0x2000
/* 006624 80005A24 3C014000 */ lui $at, 0x4000
/* 006628 80005A28 00E17825 */ or $t7, $a3, $at
/* 00662C 80005A2C 01E03825 */ move $a3, $t7
.L80005A30:
/* 006630 80005A30 13000004 */ beqz $t8, .L80005A44
/* 006634 80005A34 30CA0010 */ andi $t2, $a2, 0x10
/* 006638 80005A38 3C012000 */ lui $at, 0x2000
/* 00663C 80005A3C 00E1C825 */ or $t9, $a3, $at
/* 006640 80005A40 03203825 */ move $a3, $t9
.L80005A44:
/* 006644 80005A44 11400004 */ beqz $t2, .L80005A58
/* 006648 80005A48 3C068016 */ lui $a2, %hi(D_80162DBC) # $a2, 0x8016
/* 00664C 80005A4C 3C011000 */ lui $at, 0x1000
/* 006650 80005A50 00E15825 */ or $t3, $a3, $at
/* 006654 80005A54 01603825 */ move $a3, $t3
.L80005A58:
/* 006658 80005A58 8CC62DBC */ lw $a2, %lo(D_80162DBC)($a2)
/* 00665C 80005A5C 00E33825 */ or $a3, $a3, $v1
/* 006660 80005A60 2401FFFF */ li $at, -1
/* 006664 80005A64 8CCD0000 */ lw $t5, ($a2)
/* 006668 80005A68 00CC4021 */ addu $t0, $a2, $t4
/* 00666C 80005A6C 00E53825 */ or $a3, $a3, $a1
/* 006670 80005A70 15A10003 */ bne $t5, $at, .L80005A80
/* 006674 80005A74 8D040000 */ lw $a0, ($t0)
/* 006678 80005A78 03E00008 */ jr $ra
/* 00667C 80005A7C AD070000 */ sw $a3, ($t0)
.L80005A80:
/* 006680 80005A80 3C01FF00 */ lui $at, (0xFF00FFFF >> 16) # lui $at, 0xff00
/* 006684 80005A84 3421FFFF */ ori $at, (0xFF00FFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 006688 80005A88 00817024 */ and $t6, $a0, $at
/* 00668C 80005A8C 15C7000F */ bne $t6, $a3, .L80005ACC
/* 006690 80005A90 244C0001 */ addiu $t4, $v0, 1
/* 006694 80005A94 3C0300FF */ lui $v1, 0xff
/* 006698 80005A98 00837824 */ and $t7, $a0, $v1
/* 00669C 80005A9C 146F0007 */ bne $v1, $t7, .L80005ABC
/* 0066A0 80005AA0 24580001 */ addiu $t8, $v0, 1
/* 0066A4 80005AA4 A5380000 */ sh $t8, ($t1)
/* 0066A8 80005AA8 85390000 */ lh $t9, ($t1)
/* 0066AC 80005AAC 00195080 */ sll $t2, $t9, 2
/* 0066B0 80005AB0 00CA5821 */ addu $t3, $a2, $t2
/* 0066B4 80005AB4 03E00008 */ jr $ra
/* 0066B8 80005AB8 AD670000 */ sw $a3, ($t3)
.L80005ABC:
/* 0066BC 80005ABC 3C010001 */ lui $at, 1
/* 0066C0 80005AC0 00812021 */ addu $a0, $a0, $at
/* 0066C4 80005AC4 03E00008 */ jr $ra
/* 0066C8 80005AC8 AD040000 */ sw $a0, ($t0)
.L80005ACC:
/* 0066CC 80005ACC A52C0000 */ sh $t4, ($t1)
/* 0066D0 80005AD0 852D0000 */ lh $t5, ($t1)
/* 0066D4 80005AD4 000D7080 */ sll $t6, $t5, 2
/* 0066D8 80005AD8 00CE7821 */ addu $t7, $a2, $t6
/* 0066DC 80005ADC ADE70000 */ sw $a3, ($t7)
/* 0066E0 80005AE0 03E00008 */ jr $ra
/* 0066E4 80005AE4 00000000 */ nop
@@ -0,0 +1,224 @@
glabel func_80005B18
/* 006718 80005B18 3C04800E */ lui $a0, %hi(gModeSelection) # $a0, 0x800e
/* 00671C 80005B1C 8C84C53C */ lw $a0, %lo(gModeSelection)($a0)
/* 006720 80005B20 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 006724 80005B24 24030001 */ li $v1, 1
/* 006728 80005B28 146400CC */ bne $v1, $a0, .L80005E5C
/* 00672C 80005B2C AFBF0014 */ sw $ra, 0x14($sp)
/* 006730 80005B30 3C088016 */ lui $t0, %hi(lapCount) # $t0, 0x8016
/* 006734 80005B34 25084390 */ addiu $t0, %lo(lapCount) # addiu $t0, $t0, 0x4390
/* 006738 80005B38 8D020000 */ lw $v0, ($t0)
/* 00673C 80005B3C 24060003 */ li $a2, 3
/* 006740 80005B40 3C058016 */ lui $a1, %hi(D_80162DDC) # $a1, 0x8016
/* 006744 80005B44 14C20072 */ bne $a2, $v0, .L80005D10
/* 006748 80005B48 24A52DDC */ addiu $a1, %lo(D_80162DDC) # addiu $a1, $a1, 0x2ddc
/* 00674C 80005B4C 8CAE0000 */ lw $t6, ($a1)
/* 006750 80005B50 3C0F8016 */ lui $t7, %hi(D_80162DF8) # $t7, 0x8016
/* 006754 80005B54 15C0006E */ bnez $t6, .L80005D10
/* 006758 80005B58 00000000 */ nop
/* 00675C 80005B5C 8DEF2DF8 */ lw $t7, %lo(D_80162DF8)($t7)
/* 006760 80005B60 3C078016 */ lui $a3, %hi(D_80162DD4) # $a3, 0x8016
/* 006764 80005B64 24E72DD4 */ addiu $a3, %lo(D_80162DD4) # addiu $a3, $a3, 0x2dd4
/* 006768 80005B68 106F0069 */ beq $v1, $t7, .L80005D10
/* 00676C 80005B6C 00000000 */ nop
/* 006770 80005B70 94F80000 */ lhu $t8, ($a3)
/* 006774 80005B74 3C198016 */ lui $t9, %hi(D_80162DCC) # $t9, 0x8016
/* 006778 80005B78 54780023 */ bnel $v1, $t8, .L80005C08
/* 00677C 80005B7C 8D0C0004 */ lw $t4, 4($t0)
/* 006780 80005B80 8F392DCC */ lw $t9, %lo(D_80162DCC)($t9)
/* 006784 80005B84 3C018016 */ lui $at, %hi(D_80162DD0) # $at, 0x8016
/* 006788 80005B88 0C0014A9 */ jal func_800052A4
/* 00678C 80005B8C AC392DD0 */ sw $t9, %lo(D_80162DD0)($at)
/* 006790 80005B90 3C058016 */ lui $a1, %hi(D_80162DDC) # $a1, 0x8016
/* 006794 80005B94 3C078016 */ lui $a3, %hi(D_80162DD4) # $a3, 0x8016
/* 006798 80005B98 24E72DD4 */ addiu $a3, %lo(D_80162DD4) # addiu $a3, $a3, 0x2dd4
/* 00679C 80005B9C 24A52DDC */ addiu $a1, %lo(D_80162DDC) # addiu $a1, $a1, 0x2ddc
/* 0067A0 80005BA0 24030001 */ li $v1, 1
/* 0067A4 80005BA4 A4E00000 */ sh $zero, ($a3)
/* 0067A8 80005BA8 ACA30000 */ sw $v1, ($a1)
/* 0067AC 80005BAC 3C02800E */ lui $v0, %hi(D_800DC4DC) # $v0, 0x800e
/* 0067B0 80005BB0 8C42C4DC */ lw $v0, %lo(D_800DC4DC)($v0)
/* 0067B4 80005BB4 3C018016 */ lui $at, %hi(D_80162DE0) # $at, 0x8016
/* 0067B8 80005BB8 3C0B8019 */ lui $t3, %hi(D_8018CA78) # $t3, 0x8019
/* 0067BC 80005BBC 94490254 */ lhu $t1, 0x254($v0)
/* 0067C0 80005BC0 8D6BCA78 */ lw $t3, %lo(D_8018CA78)($t3)
/* 0067C4 80005BC4 3C04800E */ lui $a0, %hi(D_800DC4E0) # $a0, 0x800e
/* 0067C8 80005BC8 AC292DE0 */ sw $t1, %lo(D_80162DE0)($at)
/* 0067CC 80005BCC 944A0254 */ lhu $t2, 0x254($v0)
/* 0067D0 80005BD0 3C018016 */ lui $at, %hi(D_80162DE8) # $at, 0x8016
/* 0067D4 80005BD4 8C84C4E0 */ lw $a0, %lo(D_800DC4E0)($a0)
/* 0067D8 80005BD8 AC2A2DE8 */ sw $t2, %lo(D_80162DE8)($at)
/* 0067DC 80005BDC 3C018016 */ lui $at, %hi(D_80162E00) # $at, 0x8016
/* 0067E0 80005BE0 AC202E00 */ sw $zero, %lo(D_80162E00)($at)
/* 0067E4 80005BE4 3C018016 */ lui $at, %hi(D_80162DFC) # $at, 0x8016
/* 0067E8 80005BE8 0C0016BA */ jal func_80005AE8
/* 0067EC 80005BEC AC2B2DFC */ sw $t3, %lo(D_80162DFC)($at)
/* 0067F0 80005BF0 3C04800E */ lui $a0, %hi(D_800DC4E4) # $a0, 0x800e
/* 0067F4 80005BF4 0C0016BA */ jal func_80005AE8
/* 0067F8 80005BF8 8C84C4E4 */ lw $a0, %lo(D_800DC4E4)($a0)
/* 0067FC 80005BFC 10000098 */ b .L80005E60
/* 006800 80005C00 8FBF0014 */ lw $ra, 0x14($sp)
/* 006804 80005C04 8D0C0004 */ lw $t4, 4($t0)
.L80005C08:
/* 006808 80005C08 3C0B802C */ lui $t3, %hi(D_802BFB80) # $t3, 0x802c
/* 00680C 80005C0C 256BFB80 */ addiu $t3, %lo(D_802BFB80) # addiu $t3, $t3, -0x480
/* 006810 80005C10 10CC0020 */ beq $a2, $t4, .L80005C94
/* 006814 80005C14 3C198016 */ lui $t9, %hi(D_80162DC8) # $t9, 0x8016
/* 006818 80005C18 3C0D8016 */ lui $t5, %hi(D_80162DCC) # $t5, 0x8016
/* 00681C 80005C1C 8DAD2DCC */ lw $t5, %lo(D_80162DCC)($t5)
/* 006820 80005C20 3C018016 */ lui $at, %hi(D_80162DD0) # $at, 0x8016
/* 006824 80005C24 0C0014A9 */ jal func_800052A4
/* 006828 80005C28 AC2D2DD0 */ sw $t5, %lo(D_80162DD0)($at)
/* 00682C 80005C2C 3C058016 */ lui $a1, %hi(D_80162DDC) # $a1, 0x8016
/* 006830 80005C30 24A52DDC */ addiu $a1, %lo(D_80162DDC) # addiu $a1, $a1, 0x2ddc
/* 006834 80005C34 24030001 */ li $v1, 1
/* 006838 80005C38 ACA30000 */ sw $v1, ($a1)
/* 00683C 80005C3C 3C02800E */ lui $v0, %hi(D_800DC4DC) # $v0, 0x800e
/* 006840 80005C40 8C42C4DC */ lw $v0, %lo(D_800DC4DC)($v0)
/* 006844 80005C44 3C0F8019 */ lui $t7, %hi(D_8018CA78) # $t7, 0x8019
/* 006848 80005C48 8DEFCA78 */ lw $t7, %lo(D_8018CA78)($t7)
/* 00684C 80005C4C 944E0254 */ lhu $t6, 0x254($v0)
/* 006850 80005C50 3C018016 */ lui $at, %hi(D_80162DE0) # $at, 0x8016
/* 006854 80005C54 3C04800E */ lui $a0, %hi(D_800DC4E0) # $a0, 0x800e
/* 006858 80005C58 AC2E2DE0 */ sw $t6, %lo(D_80162DE0)($at)
/* 00685C 80005C5C 3C018016 */ lui $at, %hi(D_80162DFC) # $at, 0x8016
/* 006860 80005C60 AC2F2DFC */ sw $t7, %lo(D_80162DFC)($at)
/* 006864 80005C64 3C018016 */ lui $at, %hi(D_80162E00) # $at, 0x8016
/* 006868 80005C68 AC202E00 */ sw $zero, %lo(D_80162E00)($at)
/* 00686C 80005C6C 94580254 */ lhu $t8, 0x254($v0)
/* 006870 80005C70 3C018016 */ lui $at, %hi(D_80162DE8) # $at, 0x8016
/* 006874 80005C74 8C84C4E0 */ lw $a0, %lo(D_800DC4E0)($a0)
/* 006878 80005C78 0C0016BA */ jal func_80005AE8
/* 00687C 80005C7C AC382DE8 */ sw $t8, %lo(D_80162DE8)($at)
/* 006880 80005C80 3C04800E */ lui $a0, %hi(D_800DC4E4) # $a0, 0x800e
/* 006884 80005C84 0C0016BA */ jal func_80005AE8
/* 006888 80005C88 8C84C4E4 */ lw $a0, %lo(D_800DC4E4)($a0)
/* 00688C 80005C8C 10000074 */ b .L80005E60
/* 006890 80005C90 8FBF0014 */ lw $ra, 0x14($sp)
.L80005C94:
/* 006894 80005C94 8F392DC8 */ lw $t9, %lo(D_80162DC8)($t9)
/* 006898 80005C98 3C0D8016 */ lui $t5, %hi(D_80162D84+0x2) # $t5, 0x8016
/* 00689C 80005C9C 85AD2D86 */ lh $t5, %lo(D_80162D84+0x2)($t5)
/* 0068A0 80005CA0 00194BC0 */ sll $t1, $t9, 0xf
/* 0068A4 80005CA4 252A3000 */ addiu $t2, $t1, 0x3000
/* 0068A8 80005CA8 014B6021 */ addu $t4, $t2, $t3
/* 0068AC 80005CAC 3C018016 */ lui $at, %hi(D_80162D80) # $at, 0x8016
/* 0068B0 80005CB0 AC2C2D80 */ sw $t4, %lo(D_80162D80)($at)
/* 0068B4 80005CB4 3C0E8016 */ lui $t6, %hi(D_80162DCC) # $t6, 0x8016
/* 0068B8 80005CB8 8DCE2DCC */ lw $t6, %lo(D_80162DCC)($t6)
/* 0068BC 80005CBC 3C018016 */ lui $at, %hi(D_80162D84) # $at, 0x8016
/* 0068C0 80005CC0 3C0F800E */ lui $t7, %hi(D_800DC4DC) # $t7, 0x800e
/* 0068C4 80005CC4 8DEFC4DC */ lw $t7, %lo(D_800DC4DC)($t7)
/* 0068C8 80005CC8 A42D2D84 */ sh $t5, %lo(D_80162D84)($at)
/* 0068CC 80005CCC 3C018016 */ lui $at, %hi(D_80162DD0) # $at, 0x8016
/* 0068D0 80005CD0 AC2E2DD0 */ sw $t6, %lo(D_80162DD0)($at)
/* 0068D4 80005CD4 95F80254 */ lhu $t8, 0x254($t7)
/* 0068D8 80005CD8 3C018016 */ lui $at, %hi(D_80162DE8) # $at, 0x8016
/* 0068DC 80005CDC 3C04800E */ lui $a0, %hi(D_800DC4E0) # $a0, 0x800e
/* 0068E0 80005CE0 AC382DE8 */ sw $t8, %lo(D_80162DE8)($at)
/* 0068E4 80005CE4 3C018016 */ lui $at, %hi(D_80162DD8) # $at, 0x8016
/* 0068E8 80005CE8 A4202DD8 */ sh $zero, %lo(D_80162DD8)($at)
/* 0068EC 80005CEC A4E00000 */ sh $zero, ($a3)
/* 0068F0 80005CF0 ACA30000 */ sw $v1, ($a1)
/* 0068F4 80005CF4 0C0016BA */ jal func_80005AE8
/* 0068F8 80005CF8 8C84C4E0 */ lw $a0, %lo(D_800DC4E0)($a0)
/* 0068FC 80005CFC 3C04800E */ lui $a0, %hi(D_800DC4E4) # $a0, 0x800e
/* 006900 80005D00 0C0016BA */ jal func_80005AE8
/* 006904 80005D04 8C84C4E4 */ lw $a0, %lo(D_800DC4E4)($a0)
/* 006908 80005D08 10000055 */ b .L80005E60
/* 00690C 80005D0C 8FBF0014 */ lw $ra, 0x14($sp)
.L80005D10:
/* 006910 80005D10 3C058016 */ lui $a1, %hi(D_80162DDC) # $a1, 0x8016
/* 006914 80005D14 14C20015 */ bne $a2, $v0, .L80005D6C
/* 006918 80005D18 24A52DDC */ addiu $a1, %lo(D_80162DDC) # addiu $a1, $a1, 0x2ddc
/* 00691C 80005D1C 8CB90000 */ lw $t9, ($a1)
/* 006920 80005D20 3C098016 */ lui $t1, %hi(D_80162DF8) # $t1, 0x8016
/* 006924 80005D24 17200011 */ bnez $t9, .L80005D6C
/* 006928 80005D28 00000000 */ nop
/* 00692C 80005D2C 8D292DF8 */ lw $t1, %lo(D_80162DF8)($t1)
/* 006930 80005D30 3C0D802C */ lui $t5, %hi(D_802BFB80) # $t5, 0x802c
/* 006934 80005D34 25ADFB80 */ addiu $t5, %lo(D_802BFB80) # addiu $t5, $t5, -0x480
/* 006938 80005D38 1469000C */ bne $v1, $t1, .L80005D6C
/* 00693C 80005D3C 3C0A8016 */ lui $t2, %hi(D_80162DC8) # $t2, 0x8016
/* 006940 80005D40 8D4A2DC8 */ lw $t2, %lo(D_80162DC8)($t2)
/* 006944 80005D44 3C0F8016 */ lui $t7, %hi(D_80162D84+0x2) # $t7, 0x8016
/* 006948 80005D48 85EF2D86 */ lh $t7, %lo(D_80162D84+0x2)($t7)
/* 00694C 80005D4C 000A5BC0 */ sll $t3, $t2, 0xf
/* 006950 80005D50 256C3000 */ addiu $t4, $t3, 0x3000
/* 006954 80005D54 018D7021 */ addu $t6, $t4, $t5
/* 006958 80005D58 3C018016 */ lui $at, %hi(D_80162D80) # $at, 0x8016
/* 00695C 80005D5C AC2E2D80 */ sw $t6, %lo(D_80162D80)($at)
/* 006960 80005D60 3C018016 */ lui $at, %hi(D_80162D84) # $at, 0x8016
/* 006964 80005D64 A42F2D84 */ sh $t7, %lo(D_80162D84)($at)
/* 006968 80005D68 ACA30000 */ sw $v1, ($a1)
.L80005D6C:
/* 00696C 80005D6C 3C18800E */ lui $t8, %hi(D_800DC4DC) # $t8, 0x800e
/* 006970 80005D70 8F18C4DC */ lw $t8, %lo(D_800DC4DC)($t8)
/* 006974 80005D74 24010800 */ li $at, 2048
/* 006978 80005D78 3C028016 */ lui $v0, %hi(D_80162DEC) # $v0, 0x8016
/* 00697C 80005D7C 97190000 */ lhu $t9, ($t8)
/* 006980 80005D80 24422DEC */ addiu $v0, %lo(D_80162DEC) # addiu $v0, $v0, 0x2dec
/* 006984 80005D84 33290800 */ andi $t1, $t9, 0x800
/* 006988 80005D88 5521000A */ bnel $t1, $at, .L80005DB4
/* 00698C 80005D8C 8C4A0000 */ lw $t2, ($v0)
/* 006990 80005D90 3C04800E */ lui $a0, %hi(D_800DC4E0) # $a0, 0x800e
/* 006994 80005D94 0C0016BA */ jal func_80005AE8
/* 006998 80005D98 8C84C4E0 */ lw $a0, %lo(D_800DC4E0)($a0)
/* 00699C 80005D9C 3C04800E */ lui $a0, %hi(D_800DC4E4) # $a0, 0x800e
/* 0069A0 80005DA0 0C0016BA */ jal func_80005AE8
/* 0069A4 80005DA4 8C84C4E4 */ lw $a0, %lo(D_800DC4E4)($a0)
/* 0069A8 80005DA8 1000002D */ b .L80005E60
/* 0069AC 80005DAC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0069B0 80005DB0 8C4A0000 */ lw $t2, ($v0)
.L80005DB4:
/* 0069B4 80005DB4 240D0064 */ li $t5, 100
/* 0069B8 80005DB8 3C0E800E */ lui $t6, %hi(D_800DC52C) # $t6, 0x800e
/* 0069BC 80005DBC 254B0001 */ addiu $t3, $t2, 1
/* 0069C0 80005DC0 29610065 */ slti $at, $t3, 0x65
/* 0069C4 80005DC4 14200002 */ bnez $at, .L80005DD0
/* 0069C8 80005DC8 AC4B0000 */ sw $t3, ($v0)
/* 0069CC 80005DCC AC4D0000 */ sw $t5, ($v0)
.L80005DD0:
/* 0069D0 80005DD0 54640023 */ bnel $v1, $a0, .L80005E60
/* 0069D4 80005DD4 8FBF0014 */ lw $ra, 0x14($sp)
/* 0069D8 80005DD8 8DCEC52C */ lw $t6, %lo(D_800DC52C)($t6)
/* 0069DC 80005DDC 3C078016 */ lui $a3, %hi(D_80162DD4) # $a3, 0x8016
/* 0069E0 80005DE0 24E72DD4 */ addiu $a3, %lo(D_80162DD4) # addiu $a3, $a3, 0x2dd4
/* 0069E4 80005DE4 55C0001E */ bnel $t6, $zero, .L80005E60
/* 0069E8 80005DE8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0069EC 80005DEC 94EF0000 */ lhu $t7, ($a3)
/* 0069F0 80005DF0 15E00009 */ bnez $t7, .L80005E18
/* 0069F4 80005DF4 00000000 */ nop
/* 0069F8 80005DF8 8D180004 */ lw $t8, 4($t0)
/* 0069FC 80005DFC 10D80006 */ beq $a2, $t8, .L80005E18
/* 006A00 80005E00 00000000 */ nop
/* 006A04 80005E04 0C0015F7 */ jal func_800057DC
/* 006A08 80005E08 00000000 */ nop
/* 006A0C 80005E0C 3C088016 */ lui $t0, %hi(lapCount) # $t0, 0x8016
/* 006A10 80005E10 25084390 */ addiu $t0, %lo(lapCount) # addiu $t0, $t0, 0x4390
/* 006A14 80005E14 24060003 */ li $a2, 3
.L80005E18:
/* 006A18 80005E18 3C198016 */ lui $t9, %hi(D_80162DD4+0x2) # $t9, 0x8016
/* 006A1C 80005E1C 97392DD6 */ lhu $t9, %lo(D_80162DD4+0x2)($t9)
/* 006A20 80005E20 17200006 */ bnez $t9, .L80005E3C
/* 006A24 80005E24 00000000 */ nop
/* 006A28 80005E28 8D090008 */ lw $t1, 8($t0)
/* 006A2C 80005E2C 10C90003 */ beq $a2, $t1, .L80005E3C
/* 006A30 80005E30 00000000 */ nop
/* 006A34 80005E34 0C001587 */ jal func_8000561C
/* 006A38 80005E38 00000000 */ nop
.L80005E3C:
/* 006A3C 80005E3C 3C0A800E */ lui $t2, %hi(D_800DC4DC) # $t2, 0x800e
/* 006A40 80005E40 8D4AC4DC */ lw $t2, %lo(D_800DC4DC)($t2)
/* 006A44 80005E44 954B0000 */ lhu $t3, ($t2)
/* 006A48 80005E48 316C0800 */ andi $t4, $t3, 0x800
/* 006A4C 80005E4C 55800004 */ bnel $t4, $zero, .L80005E60
/* 006A50 80005E50 8FBF0014 */ lw $ra, 0x14($sp)
/* 006A54 80005E54 0C001667 */ jal func_8000599C
/* 006A58 80005E58 00000000 */ nop
.L80005E5C:
/* 006A5C 80005E5C 8FBF0014 */ lw $ra, 0x14($sp)
.L80005E60:
/* 006A60 80005E60 27BD0018 */ addiu $sp, $sp, 0x18
/* 006A64 80005E64 03E00008 */ jr $ra
/* 006A68 80005E68 00000000 */ nop
@@ -1,908 +1,3 @@
# 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_80296A50
/* 100060 80296A50 3C098016 */ lui $t1, %hi(D_8015F900) # $t1, 0x8016
/* 100064 80296A54 9529F900 */ lhu $t1, %lo(D_8015F900)($t1)
/* 100068 80296A58 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 10006C 80296A5C AFBF0014 */ sw $ra, 0x14($sp)
/* 100070 80296A60 29210064 */ slti $at, $t1, 0x64
/* 100074 80296A64 10200027 */ beqz $at, .L80296B04
/* 100078 80296A68 01203025 */ move $a2, $t1
/* 10007C 80296A6C 000670C0 */ sll $t6, $a2, 3
/* 100080 80296A70 01C67023 */ subu $t6, $t6, $a2
/* 100084 80296A74 3C0F8016 */ lui $t7, %hi(D_8015F9B8) # $t7, 0x8016
/* 100088 80296A78 25EFF9B8 */ addiu $t7, %lo(D_8015F9B8) # addiu $t7, $t7, -0x648
/* 10008C 80296A7C 000E7100 */ sll $t6, $t6, 4
/* 100090 80296A80 01CF2821 */ addu $a1, $t6, $t7
/* 100094 80296A84 24030007 */ li $v1, 7
.L80296A88:
/* 100098 80296A88 5085001A */ beql $a0, $a1, .L80296AF4
/* 10009C 80296A8C 24C60001 */ addiu $a2, $a2, 1
/* 1000A0 80296A90 84B80002 */ lh $t8, 2($a1)
/* 1000A4 80296A94 3319000F */ andi $t9, $t8, 0xf
/* 1000A8 80296A98 57200016 */ bnel $t9, $zero, .L80296AF4
/* 1000AC 80296A9C 24C60001 */ addiu $a2, $a2, 1
/* 1000B0 80296AA0 84AA0000 */ lh $t2, ($a1)
/* 1000B4 80296AA4 546A0013 */ bnel $v1, $t2, .L80296AF4
/* 1000B8 80296AA8 24C60001 */ addiu $a2, $a2, 1
/* 1000BC 80296AAC 84AB0006 */ lh $t3, 6($a1)
/* 1000C0 80296AB0 24070002 */ li $a3, 2
/* 1000C4 80296AB4 00C02025 */ move $a0, $a2
/* 1000C8 80296AB8 14EB0004 */ bne $a3, $t3, .L80296ACC
/* 1000CC 80296ABC 00000000 */ nop
/* 1000D0 80296AC0 0C003B96 */ jal func_8000EE58
/* 1000D4 80296AC4 AFA5001C */ sw $a1, 0x1c($sp)
/* 1000D8 80296AC8 8FA5001C */ lw $a1, 0x1c($sp)
.L80296ACC:
/* 1000DC 80296ACC 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1000E0 80296AD0 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1000E4 80296AD4 944C0000 */ lhu $t4, ($v0)
/* 1000E8 80296AD8 00A02025 */ move $a0, $a1
/* 1000EC 80296ADC 258DFFFF */ addiu $t5, $t4, -1
/* 1000F0 80296AE0 0C0A7A15 */ jal func_8029E854
/* 1000F4 80296AE4 A44D0000 */ sh $t5, ($v0)
/* 1000F8 80296AE8 10000086 */ b .L80296D04
/* 1000FC 80296AEC 8FBF0014 */ lw $ra, 0x14($sp)
/* 100100 80296AF0 24C60001 */ addiu $a2, $a2, 1
.L80296AF4:
/* 100104 80296AF4 28C10064 */ slti $at, $a2, 0x64
/* 100108 80296AF8 1420FFE3 */ bnez $at, .L80296A88
/* 10010C 80296AFC 24A50070 */ addiu $a1, $a1, 0x70
/* 100110 80296B00 01203025 */ move $a2, $t1
.L80296B04:
/* 100114 80296B04 28C10064 */ slti $at, $a2, 0x64
/* 100118 80296B08 1020002D */ beqz $at, .L80296BC0
/* 10011C 80296B0C 24030007 */ li $v1, 7
/* 100120 80296B10 000670C0 */ sll $t6, $a2, 3
/* 100124 80296B14 01C67023 */ subu $t6, $t6, $a2
/* 100128 80296B18 3C0F8016 */ lui $t7, %hi(D_8015F9B8) # $t7, 0x8016
/* 10012C 80296B1C 25EFF9B8 */ addiu $t7, %lo(D_8015F9B8) # addiu $t7, $t7, -0x648
/* 100130 80296B20 000E7100 */ sll $t6, $t6, 4
/* 100134 80296B24 01CF2821 */ addu $a1, $t6, $t7
/* 100138 80296B28 24080008 */ li $t0, 8
.L80296B2C:
/* 10013C 80296B2C 50850020 */ beql $a0, $a1, .L80296BB0
/* 100140 80296B30 24C60001 */ addiu $a2, $a2, 1
/* 100144 80296B34 84B80002 */ lh $t8, 2($a1)
/* 100148 80296B38 3319000F */ andi $t9, $t8, 0xf
/* 10014C 80296B3C 5720001C */ bnel $t9, $zero, .L80296BB0
/* 100150 80296B40 24C60001 */ addiu $a2, $a2, 1
/* 100154 80296B44 84AA0000 */ lh $t2, ($a1)
/* 100158 80296B48 550A0019 */ bnel $t0, $t2, .L80296BB0
/* 10015C 80296B4C 24C60001 */ addiu $a2, $a2, 1
/* 100160 80296B50 84AB0006 */ lh $t3, 6($a1)
/* 100164 80296B54 256CFFFE */ addiu $t4, $t3, -2
/* 100168 80296B58 2D810008 */ sltiu $at, $t4, 8
/* 10016C 80296B5C 10200013 */ beqz $at, .L80296BAC
/* 100170 80296B60 000C6080 */ sll $t4, $t4, 2
/* 100174 80296B64 3C01802C */ lui $at, %hi(D_802B9500)
/* 100178 80296B68 002C0821 */ addu $at, $at, $t4
/* 10017C 80296B6C 8C2C9500 */ lw $t4, %lo(D_802B9500)($at)
/* 100180 80296B70 01800008 */ jr $t4
/* 100184 80296B74 00000000 */ nop
glabel L80296B78
/* 100188 80296B78 00C02025 */ move $a0, $a2
/* 10018C 80296B7C 0C003B96 */ jal func_8000EE58
/* 100190 80296B80 AFA5001C */ sw $a1, 0x1c($sp)
/* 100194 80296B84 8FA5001C */ lw $a1, 0x1c($sp)
glabel L80296B88
/* 100198 80296B88 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10019C 80296B8C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1001A0 80296B90 944D0000 */ lhu $t5, ($v0)
/* 1001A4 80296B94 00A02025 */ move $a0, $a1
/* 1001A8 80296B98 25AEFFFF */ addiu $t6, $t5, -1
/* 1001AC 80296B9C 0C0A7A15 */ jal func_8029E854
/* 1001B0 80296BA0 A44E0000 */ sh $t6, ($v0)
/* 1001B4 80296BA4 10000057 */ b .L80296D04
/* 1001B8 80296BA8 8FBF0014 */ lw $ra, 0x14($sp)
.L80296BAC:
glabel L80296BAC
/* 1001BC 80296BAC 24C60001 */ addiu $a2, $a2, 1
.L80296BB0:
/* 1001C0 80296BB0 28C10064 */ slti $at, $a2, 0x64
/* 1001C4 80296BB4 1420FFDD */ bnez $at, .L80296B2C
/* 1001C8 80296BB8 24A50070 */ addiu $a1, $a1, 0x70
/* 1001CC 80296BBC 01203025 */ move $a2, $t1
.L80296BC0:
/* 1001D0 80296BC0 28C10064 */ slti $at, $a2, 0x64
/* 1001D4 80296BC4 10200026 */ beqz $at, .L80296C60
/* 1001D8 80296BC8 24080008 */ li $t0, 8
/* 1001DC 80296BCC 000678C0 */ sll $t7, $a2, 3
/* 1001E0 80296BD0 01E67823 */ subu $t7, $t7, $a2
/* 1001E4 80296BD4 3C188016 */ lui $t8, %hi(D_8015F9B8) # $t8, 0x8016
/* 1001E8 80296BD8 2718F9B8 */ addiu $t8, %lo(D_8015F9B8) # addiu $t8, $t8, -0x648
/* 1001EC 80296BDC 000F7900 */ sll $t7, $t7, 4
/* 1001F0 80296BE0 01F82821 */ addu $a1, $t7, $t8
/* 1001F4 80296BE4 24070002 */ li $a3, 2
.L80296BE8:
/* 1001F8 80296BE8 50850019 */ beql $a0, $a1, .L80296C50
/* 1001FC 80296BEC 24C60001 */ addiu $a2, $a2, 1
/* 100200 80296BF0 84B90000 */ lh $t9, ($a1)
/* 100204 80296BF4 54790016 */ bnel $v1, $t9, .L80296C50
/* 100208 80296BF8 24C60001 */ addiu $a2, $a2, 1
/* 10020C 80296BFC 84A20006 */ lh $v0, 6($a1)
/* 100210 80296C00 50470006 */ beql $v0, $a3, .L80296C1C
/* 100214 80296C04 00C02025 */ move $a0, $a2
/* 100218 80296C08 10430007 */ beq $v0, $v1, .L80296C28
/* 10021C 80296C0C 00000000 */ nop
/* 100220 80296C10 1000000F */ b .L80296C50
/* 100224 80296C14 24C60001 */ addiu $a2, $a2, 1
/* 100228 80296C18 00C02025 */ move $a0, $a2
.L80296C1C:
/* 10022C 80296C1C 0C003B96 */ jal func_8000EE58
/* 100230 80296C20 AFA5001C */ sw $a1, 0x1c($sp)
/* 100234 80296C24 8FA5001C */ lw $a1, 0x1c($sp)
.L80296C28:
/* 100238 80296C28 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10023C 80296C2C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 100240 80296C30 944A0000 */ lhu $t2, ($v0)
/* 100244 80296C34 00A02025 */ move $a0, $a1
/* 100248 80296C38 254BFFFF */ addiu $t3, $t2, -1
/* 10024C 80296C3C 0C0A7A15 */ jal func_8029E854
/* 100250 80296C40 A44B0000 */ sh $t3, ($v0)
/* 100254 80296C44 1000002F */ b .L80296D04
/* 100258 80296C48 8FBF0014 */ lw $ra, 0x14($sp)
/* 10025C 80296C4C 24C60001 */ addiu $a2, $a2, 1
.L80296C50:
/* 100260 80296C50 28C10064 */ slti $at, $a2, 0x64
/* 100264 80296C54 1420FFE4 */ bnez $at, .L80296BE8
/* 100268 80296C58 24A50070 */ addiu $a1, $a1, 0x70
/* 10026C 80296C5C 01203025 */ move $a2, $t1
.L80296C60:
/* 100270 80296C60 28C10064 */ slti $at, $a2, 0x64
/* 100274 80296C64 10200026 */ beqz $at, .L80296D00
/* 100278 80296C68 000660C0 */ sll $t4, $a2, 3
/* 10027C 80296C6C 01866023 */ subu $t4, $t4, $a2
/* 100280 80296C70 3C0D8016 */ lui $t5, %hi(D_8015F9B8) # $t5, 0x8016
/* 100284 80296C74 25ADF9B8 */ addiu $t5, %lo(D_8015F9B8) # addiu $t5, $t5, -0x648
/* 100288 80296C78 000C6100 */ sll $t4, $t4, 4
/* 10028C 80296C7C 018D2821 */ addu $a1, $t4, $t5
.L80296C80:
/* 100290 80296C80 5085001C */ beql $a0, $a1, .L80296CF4
/* 100294 80296C84 24C60001 */ addiu $a2, $a2, 1
/* 100298 80296C88 84AE0000 */ lh $t6, ($a1)
/* 10029C 80296C8C 550E0019 */ bnel $t0, $t6, .L80296CF4
/* 1002A0 80296C90 24C60001 */ addiu $a2, $a2, 1
/* 1002A4 80296C94 84AF0006 */ lh $t7, 6($a1)
/* 1002A8 80296C98 25F8FFFE */ addiu $t8, $t7, -2
/* 1002AC 80296C9C 2F010008 */ sltiu $at, $t8, 8
/* 1002B0 80296CA0 10200013 */ beqz $at, .L80296CF0
/* 1002B4 80296CA4 0018C080 */ sll $t8, $t8, 2
/* 1002B8 80296CA8 3C01802C */ lui $at, %hi(D_802B9520)
/* 1002BC 80296CAC 00380821 */ addu $at, $at, $t8
/* 1002C0 80296CB0 8C389520 */ lw $t8, %lo(D_802B9520)($at)
/* 1002C4 80296CB4 03000008 */ jr $t8
/* 1002C8 80296CB8 00000000 */ nop
glabel L80296CBC
/* 1002CC 80296CBC 00C02025 */ move $a0, $a2
/* 1002D0 80296CC0 0C003B96 */ jal func_8000EE58
/* 1002D4 80296CC4 AFA5001C */ sw $a1, 0x1c($sp)
/* 1002D8 80296CC8 8FA5001C */ lw $a1, 0x1c($sp)
glabel L80296CCC
/* 1002DC 80296CCC 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1002E0 80296CD0 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1002E4 80296CD4 94590000 */ lhu $t9, ($v0)
/* 1002E8 80296CD8 00A02025 */ move $a0, $a1
/* 1002EC 80296CDC 272AFFFF */ addiu $t2, $t9, -1
/* 1002F0 80296CE0 0C0A7A15 */ jal func_8029E854
/* 1002F4 80296CE4 A44A0000 */ sh $t2, ($v0)
/* 1002F8 80296CE8 10000006 */ b .L80296D04
/* 1002FC 80296CEC 8FBF0014 */ lw $ra, 0x14($sp)
.L80296CF0:
glabel L80296CF0
/* 100300 80296CF0 24C60001 */ addiu $a2, $a2, 1
.L80296CF4:
/* 100304 80296CF4 28C10064 */ slti $at, $a2, 0x64
/* 100308 80296CF8 1420FFE1 */ bnez $at, .L80296C80
/* 10030C 80296CFC 24A50070 */ addiu $a1, $a1, 0x70
.L80296D00:
/* 100310 80296D00 8FBF0014 */ lw $ra, 0x14($sp)
.L80296D04:
/* 100314 80296D04 27BD0030 */ addiu $sp, $sp, 0x30
/* 100318 80296D08 03E00008 */ jr $ra
/* 10031C 80296D0C 00000000 */ nop
glabel func_80296D10
/* 100320 80296D10 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 100324 80296D14 AFB00020 */ sw $s0, 0x20($sp)
/* 100328 80296D18 00808025 */ move $s0, $a0
/* 10032C 80296D1C AFBF0024 */ sw $ra, 0x24($sp)
/* 100330 80296D20 AFA60038 */ sw $a2, 0x38($sp)
/* 100334 80296D24 AFA7003C */ sw $a3, 0x3c($sp)
/* 100338 80296D28 0C0AD4B6 */ jal func_802B52D8
/* 10033C 80296D2C 24840018 */ addiu $a0, $a0, 0x18
/* 100340 80296D30 26040010 */ addiu $a0, $s0, 0x10
/* 100344 80296D34 0C0AD4C1 */ jal func_802B5304
/* 100348 80296D38 8FA50038 */ lw $a1, 0x38($sp)
/* 10034C 80296D3C 26040024 */ addiu $a0, $s0, 0x24
/* 100350 80296D40 0C0AD4B6 */ jal func_802B52D8
/* 100354 80296D44 8FA5003C */ lw $a1, 0x3c($sp)
/* 100358 80296D48 87AE0042 */ lh $t6, 0x42($sp)
/* 10035C 80296D4C 44800000 */ mtc1 $zero, $f0
/* 100360 80296D50 240F8000 */ li $t7, -32768
/* 100364 80296D54 A60F0002 */ sh $t7, 2($s0)
/* 100368 80296D58 A6000004 */ sh $zero, 4($s0)
/* 10036C 80296D5C A6000006 */ sh $zero, 6($s0)
/* 100370 80296D60 26040030 */ addiu $a0, $s0, 0x30
/* 100374 80296D64 A60E0000 */ sh $t6, ($s0)
/* 100378 80296D68 E6000008 */ swc1 $f0, 8($s0)
/* 10037C 80296D6C E600000C */ swc1 $f0, 0xc($s0)
/* 100380 80296D70 0C0AAAAB */ jal func_802AAAAC
/* 100384 80296D74 AFA4002C */ sw $a0, 0x2c($sp)
/* 100388 80296D78 87B80042 */ lh $t8, 0x42($sp)
/* 10038C 80296D7C 24028000 */ li $v0, -32768
/* 100390 80296D80 8FA4002C */ lw $a0, 0x2c($sp)
/* 100394 80296D84 2719FFFE */ addiu $t9, $t8, -2
/* 100398 80296D88 2F21002C */ sltiu $at, $t9, 0x2c
/* 10039C 80296D8C 10200123 */ beqz $at, .L8029721C
/* 1003A0 80296D90 0019C880 */ sll $t9, $t9, 2
/* 1003A4 80296D94 3C01802C */ lui $at, %hi(D_802B9540)
/* 1003A8 80296D98 00390821 */ addu $at, $at, $t9
/* 1003AC 80296D9C 8C399540 */ lw $t9, %lo(D_802B9540)($at)
/* 1003B0 80296DA0 03200008 */ jr $t9
/* 1003B4 80296DA4 00000000 */ nop
glabel L80296DA8
/* 1003B8 80296DA8 3C03802C */ lui $v1, %hi(D_802BA260) # $v1, 0x802c
/* 1003BC 80296DAC 2463A260 */ addiu $v1, %lo(D_802BA260) # addiu $v1, $v1, -0x5da0
/* 1003C0 80296DB0 94620000 */ lhu $v0, ($v1)
/* 1003C4 80296DB4 28410003 */ slti $at, $v0, 3
/* 1003C8 80296DB8 54200004 */ bnel $at, $zero, .L80296DCC
/* 1003CC 80296DBC A6020006 */ sh $v0, 6($s0)
/* 1003D0 80296DC0 A4600000 */ sh $zero, ($v1)
/* 1003D4 80296DC4 3002FFFF */ andi $v0, $zero, 0xffff
/* 1003D8 80296DC8 A6020006 */ sh $v0, 6($s0)
.L80296DCC:
/* 1003DC 80296DCC 94680000 */ lhu $t0, ($v1)
/* 1003E0 80296DD0 25090001 */ addiu $t1, $t0, 1
/* 1003E4 80296DD4 10000111 */ b .L8029721C
/* 1003E8 80296DD8 A4690000 */ sh $t1, ($v1)
glabel L80296DDC
/* 1003EC 80296DDC 3C01428C */ li $at, 0x428C0000 # 70.000000
/* 1003F0 80296DE0 44810000 */ mtc1 $at, $f0
/* 1003F4 80296DE4 C60A0020 */ lwc1 $f10, 0x20($s0)
/* 1003F8 80296DE8 860A0002 */ lh $t2, 2($s0)
/* 1003FC 80296DEC 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 100400 80296DF0 46005400 */ add.s $f16, $f10, $f0
/* 100404 80296DF4 44812000 */ mtc1 $at, $f4
/* 100408 80296DF8 C6060018 */ lwc1 $f6, 0x18($s0)
/* 10040C 80296DFC C608001C */ lwc1 $f8, 0x1c($s0)
/* 100410 80296E00 354B4000 */ ori $t3, $t2, 0x4000
/* 100414 80296E04 A60B0002 */ sh $t3, 2($s0)
/* 100418 80296E08 E610002C */ swc1 $f16, 0x2c($s0)
/* 10041C 80296E0C E6000008 */ swc1 $f0, 8($s0)
/* 100420 80296E10 E604000C */ swc1 $f4, 0xc($s0)
/* 100424 80296E14 E6060024 */ swc1 $f6, 0x24($s0)
/* 100428 80296E18 10000100 */ b .L8029721C
/* 10042C 80296E1C E6080028 */ swc1 $f8, 0x28($s0)
glabel L80296E20
/* 100430 80296E20 3C014000 */ li $at, 0x40000000 # 2.000000
/* 100434 80296E24 44819000 */ mtc1 $at, $f18
/* 100438 80296E28 A6000006 */ sh $zero, 6($s0)
/* 10043C 80296E2C A6000010 */ sh $zero, 0x10($s0)
/* 100440 80296E30 A6000012 */ sh $zero, 0x12($s0)
/* 100444 80296E34 A6000014 */ sh $zero, 0x14($s0)
/* 100448 80296E38 100000F8 */ b .L8029721C
/* 10044C 80296E3C E612000C */ swc1 $f18, 0xc($s0)
glabel L80296E40
/* 100450 80296E40 860C0002 */ lh $t4, 2($s0)
/* 100454 80296E44 3C014120 */ li $at, 0x41200000 # 10.000000
/* 100458 80296E48 44812000 */ mtc1 $at, $f4
/* 10045C 80296E4C 358D4000 */ ori $t5, $t4, 0x4000
/* 100460 80296E50 A60D0002 */ sh $t5, 2($s0)
/* 100464 80296E54 100000F1 */ b .L8029721C
/* 100468 80296E58 E604000C */ swc1 $f4, 0xc($s0)
glabel L80296E5C
/* 10046C 80296E5C 3C014120 */ li $at, 0x41200000 # 10.000000
/* 100470 80296E60 44813000 */ mtc1 $at, $f6
/* 100474 80296E64 100000ED */ b .L8029721C
/* 100478 80296E68 E6060008 */ swc1 $f6, 8($s0)
glabel L80296E6C
/* 10047C 80296E6C 860F0002 */ lh $t7, 2($s0)
/* 100480 80296E70 3C014000 */ li $at, 0x40000000 # 2.000000
/* 100484 80296E74 44814000 */ mtc1 $at, $f8
/* 100488 80296E78 35F85000 */ ori $t8, $t7, 0x5000
/* 10048C 80296E7C A6180002 */ sh $t8, 2($s0)
/* 100490 80296E80 100000E6 */ b .L8029721C
/* 100494 80296E84 E608000C */ swc1 $f8, 0xc($s0)
glabel L80296E88
/* 100498 80296E88 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10049C 80296E8C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1004A0 80296E90 94590000 */ lhu $t9, ($v0)
/* 1004A4 80296E94 3C014080 */ li $at, 0x40800000 # 4.000000
/* 1004A8 80296E98 44815000 */ mtc1 $at, $f10
/* 1004AC 80296E9C 27280001 */ addiu $t0, $t9, 1
/* 1004B0 80296EA0 A4480000 */ sh $t0, ($v0)
/* 1004B4 80296EA4 860B0002 */ lh $t3, 2($s0)
/* 1004B8 80296EA8 A6000004 */ sh $zero, 4($s0)
/* 1004BC 80296EAC E60A000C */ swc1 $f10, 0xc($s0)
/* 1004C0 80296EB0 356C7000 */ ori $t4, $t3, 0x7000
/* 1004C4 80296EB4 A60C0002 */ sh $t4, 2($s0)
/* 1004C8 80296EB8 944D0000 */ lhu $t5, ($v0)
/* 1004CC 80296EBC 29A10015 */ slti $at, $t5, 0x15
/* 1004D0 80296EC0 542000D7 */ bnel $at, $zero, .L80297220
/* 1004D4 80296EC4 8FBF0024 */ lw $ra, 0x24($sp)
/* 1004D8 80296EC8 0C0A5A94 */ jal func_80296A50
/* 1004DC 80296ECC 02002025 */ move $a0, $s0
/* 1004E0 80296ED0 100000D3 */ b .L80297220
/* 1004E4 80296ED4 8FBF0024 */ lw $ra, 0x24($sp)
glabel L80296ED8
/* 1004E8 80296ED8 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1004EC 80296EDC 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1004F0 80296EE0 944E0000 */ lhu $t6, ($v0)
/* 1004F4 80296EE4 3C014080 */ li $at, 0x40800000 # 4.000000
/* 1004F8 80296EE8 44818000 */ mtc1 $at, $f16
/* 1004FC 80296EEC 25CF0001 */ addiu $t7, $t6, 1
/* 100500 80296EF0 A44F0000 */ sh $t7, ($v0)
/* 100504 80296EF4 86080002 */ lh $t0, 2($s0)
/* 100508 80296EF8 A6000004 */ sh $zero, 4($s0)
/* 10050C 80296EFC E610000C */ swc1 $f16, 0xc($s0)
/* 100510 80296F00 35097000 */ ori $t1, $t0, 0x7000
/* 100514 80296F04 A6090002 */ sh $t1, 2($s0)
/* 100518 80296F08 944A0000 */ lhu $t2, ($v0)
/* 10051C 80296F0C 29410015 */ slti $at, $t2, 0x15
/* 100520 80296F10 542000C3 */ bnel $at, $zero, .L80297220
/* 100524 80296F14 8FBF0024 */ lw $ra, 0x24($sp)
/* 100528 80296F18 0C0A5A94 */ jal func_80296A50
/* 10052C 80296F1C 02002025 */ move $a0, $s0
/* 100530 80296F20 100000BF */ b .L80297220
/* 100534 80296F24 8FBF0024 */ lw $ra, 0x24($sp)
glabel L80296F28
/* 100538 80296F28 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10053C 80296F2C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 100540 80296F30 944B0000 */ lhu $t3, ($v0)
/* 100544 80296F34 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100548 80296F38 44819000 */ mtc1 $at, $f18
/* 10054C 80296F3C 256C0001 */ addiu $t4, $t3, 1
/* 100550 80296F40 A44C0000 */ sh $t4, ($v0)
/* 100554 80296F44 860D0002 */ lh $t5, 2($s0)
/* 100558 80296F48 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 10055C 80296F4C 44812000 */ mtc1 $at, $f4
/* 100560 80296F50 240F0043 */ li $t7, 67
/* 100564 80296F54 35AE4000 */ ori $t6, $t5, 0x4000
/* 100568 80296F58 A60E0002 */ sh $t6, 2($s0)
/* 10056C 80296F5C A60F0006 */ sh $t7, 6($s0)
/* 100570 80296F60 E612000C */ swc1 $f18, 0xc($s0)
/* 100574 80296F64 100000AD */ b .L8029721C
/* 100578 80296F68 E6040008 */ swc1 $f4, 8($s0)
glabel L80296F6C
/* 10057C 80296F6C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100580 80296F70 86180002 */ lh $t8, 2($s0)
/* 100584 80296F74 44813000 */ mtc1 $at, $f6
/* 100588 80296F78 3C0141B8 */ li $at, 0x41B80000 # 23.000000
/* 10058C 80296F7C 44814000 */ mtc1 $at, $f8
/* 100590 80296F80 24080043 */ li $t0, 67
/* 100594 80296F84 37194000 */ ori $t9, $t8, 0x4000
/* 100598 80296F88 A6190002 */ sh $t9, 2($s0)
/* 10059C 80296F8C A6080006 */ sh $t0, 6($s0)
/* 1005A0 80296F90 E606000C */ swc1 $f6, 0xc($s0)
/* 1005A4 80296F94 100000A1 */ b .L8029721C
/* 1005A8 80296F98 E6080008 */ swc1 $f8, 8($s0)
glabel L80296F9C
/* 1005AC 80296F9C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1005B0 80296FA0 86090002 */ lh $t1, 2($s0)
/* 1005B4 80296FA4 44815000 */ mtc1 $at, $f10
/* 1005B8 80296FA8 3C014188 */ li $at, 0x41880000 # 17.000000
/* 1005BC 80296FAC 44818000 */ mtc1 $at, $f16
/* 1005C0 80296FB0 240B0043 */ li $t3, 67
/* 1005C4 80296FB4 352A4000 */ ori $t2, $t1, 0x4000
/* 1005C8 80296FB8 A60A0002 */ sh $t2, 2($s0)
/* 1005CC 80296FBC A60B0006 */ sh $t3, 6($s0)
/* 1005D0 80296FC0 E60A000C */ swc1 $f10, 0xc($s0)
/* 1005D4 80296FC4 10000095 */ b .L8029721C
/* 1005D8 80296FC8 E6100008 */ swc1 $f16, 8($s0)
glabel L80296FCC
/* 1005DC 80296FCC 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1005E0 80296FD0 44819000 */ mtc1 $at, $f18
/* 1005E4 80296FD4 3C014188 */ li $at, 0x41880000 # 17.000000
/* 1005E8 80296FD8 44812000 */ mtc1 $at, $f4
/* 1005EC 80296FDC 240C0043 */ li $t4, 67
/* 1005F0 80296FE0 A60C0006 */ sh $t4, 6($s0)
/* 1005F4 80296FE4 A6020002 */ sh $v0, 2($s0)
/* 1005F8 80296FE8 E612000C */ swc1 $f18, 0xc($s0)
/* 1005FC 80296FEC 1000008B */ b .L8029721C
/* 100600 80296FF0 E6040008 */ swc1 $f4, 8($s0)
glabel L80296FF4
/* 100604 80296FF4 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100608 80296FF8 860D0002 */ lh $t5, 2($s0)
/* 10060C 80296FFC 44813000 */ mtc1 $at, $f6
/* 100610 80297000 3C014188 */ li $at, 0x41880000 # 17.000000
/* 100614 80297004 44814000 */ mtc1 $at, $f8
/* 100618 80297008 240F0043 */ li $t7, 67
/* 10061C 8029700C 35AE4000 */ ori $t6, $t5, 0x4000
/* 100620 80297010 A60E0002 */ sh $t6, 2($s0)
/* 100624 80297014 A60F0006 */ sh $t7, 6($s0)
/* 100628 80297018 E606000C */ swc1 $f6, 0xc($s0)
/* 10062C 8029701C 1000007F */ b .L8029721C
/* 100630 80297020 E6080008 */ swc1 $f8, 8($s0)
glabel L80297024
/* 100634 80297024 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100638 80297028 44815000 */ mtc1 $at, $f10
/* 10063C 8029702C 3C014188 */ li $at, 0x41880000 # 17.000000
/* 100640 80297030 44818000 */ mtc1 $at, $f16
/* 100644 80297034 24180043 */ li $t8, 67
/* 100648 80297038 A6180006 */ sh $t8, 6($s0)
/* 10064C 8029703C A6020002 */ sh $v0, 2($s0)
/* 100650 80297040 E60A000C */ swc1 $f10, 0xc($s0)
/* 100654 80297044 10000075 */ b .L8029721C
/* 100658 80297048 E6100008 */ swc1 $f16, 8($s0)
glabel L8029704C
/* 10065C 8029704C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100660 80297050 86190002 */ lh $t9, 2($s0)
/* 100664 80297054 44819000 */ mtc1 $at, $f18
/* 100668 80297058 3C014188 */ li $at, 0x41880000 # 17.000000
/* 10066C 8029705C 44812000 */ mtc1 $at, $f4
/* 100670 80297060 24090043 */ li $t1, 67
/* 100674 80297064 37284000 */ ori $t0, $t9, 0x4000
/* 100678 80297068 A6080002 */ sh $t0, 2($s0)
/* 10067C 8029706C A6090006 */ sh $t1, 6($s0)
/* 100680 80297070 E612000C */ swc1 $f18, 0xc($s0)
/* 100684 80297074 10000069 */ b .L8029721C
/* 100688 80297078 E6040008 */ swc1 $f4, 8($s0)
glabel L8029707C
/* 10068C 8029707C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100690 80297080 860A0002 */ lh $t2, 2($s0)
/* 100694 80297084 44813000 */ mtc1 $at, $f6
/* 100698 80297088 3C014188 */ li $at, 0x41880000 # 17.000000
/* 10069C 8029708C 44814000 */ mtc1 $at, $f8
/* 1006A0 80297090 240C0043 */ li $t4, 67
/* 1006A4 80297094 354B4000 */ ori $t3, $t2, 0x4000
/* 1006A8 80297098 A60B0002 */ sh $t3, 2($s0)
/* 1006AC 8029709C A60C0006 */ sh $t4, 6($s0)
/* 1006B0 802970A0 E606000C */ swc1 $f6, 0xc($s0)
/* 1006B4 802970A4 1000005D */ b .L8029721C
/* 1006B8 802970A8 E6080008 */ swc1 $f8, 8($s0)
glabel L802970AC
/* 1006BC 802970AC 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1006C0 802970B0 860D0002 */ lh $t5, 2($s0)
/* 1006C4 802970B4 44815000 */ mtc1 $at, $f10
/* 1006C8 802970B8 3C0140E0 */ li $at, 0x40E00000 # 7.000000
/* 1006CC 802970BC 44818000 */ mtc1 $at, $f16
/* 1006D0 802970C0 240F0019 */ li $t7, 25
/* 1006D4 802970C4 35AE4000 */ ori $t6, $t5, 0x4000
/* 1006D8 802970C8 A60E0002 */ sh $t6, 2($s0)
/* 1006DC 802970CC A60F0006 */ sh $t7, 6($s0)
/* 1006E0 802970D0 E60A000C */ swc1 $f10, 0xc($s0)
/* 1006E4 802970D4 10000051 */ b .L8029721C
/* 1006E8 802970D8 E6100008 */ swc1 $f16, 8($s0)
glabel L802970DC
/* 1006EC 802970DC 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1006F0 802970E0 86180002 */ lh $t8, 2($s0)
/* 1006F4 802970E4 44819000 */ mtc1 $at, $f18
/* 1006F8 802970E8 3C0140E0 */ li $at, 0x40E00000 # 7.000000
/* 1006FC 802970EC 44812000 */ mtc1 $at, $f4
/* 100700 802970F0 24080019 */ li $t0, 25
/* 100704 802970F4 37194000 */ ori $t9, $t8, 0x4000
/* 100708 802970F8 A6190002 */ sh $t9, 2($s0)
/* 10070C 802970FC A6080006 */ sh $t0, 6($s0)
/* 100710 80297100 E612000C */ swc1 $f18, 0xc($s0)
/* 100714 80297104 10000045 */ b .L8029721C
/* 100718 80297108 E6040008 */ swc1 $f4, 8($s0)
glabel L8029710C
/* 10071C 8029710C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100720 80297110 86090002 */ lh $t1, 2($s0)
/* 100724 80297114 44813000 */ mtc1 $at, $f6
/* 100728 80297118 3C0140E0 */ li $at, 0x40E00000 # 7.000000
/* 10072C 8029711C 44814000 */ mtc1 $at, $f8
/* 100730 80297120 240B0019 */ li $t3, 25
/* 100734 80297124 352A4000 */ ori $t2, $t1, 0x4000
/* 100738 80297128 A60A0002 */ sh $t2, 2($s0)
/* 10073C 8029712C A60B0006 */ sh $t3, 6($s0)
/* 100740 80297130 E606000C */ swc1 $f6, 0xc($s0)
/* 100744 80297134 10000039 */ b .L8029721C
/* 100748 80297138 E6080008 */ swc1 $f8, 8($s0)
glabel L8029713C
/* 10074C 8029713C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100750 80297140 860C0002 */ lh $t4, 2($s0)
/* 100754 80297144 44815000 */ mtc1 $at, $f10
/* 100758 80297148 3C014150 */ li $at, 0x41500000 # 13.000000
/* 10075C 8029714C 44818000 */ mtc1 $at, $f16
/* 100760 80297150 240E003C */ li $t6, 60
/* 100764 80297154 358D4000 */ ori $t5, $t4, 0x4000
/* 100768 80297158 A60D0002 */ sh $t5, 2($s0)
/* 10076C 8029715C A60E0006 */ sh $t6, 6($s0)
/* 100770 80297160 E60A000C */ swc1 $f10, 0xc($s0)
/* 100774 80297164 1000002D */ b .L8029721C
/* 100778 80297168 E6100008 */ swc1 $f16, 8($s0)
glabel L8029716C
/* 10077C 8029716C 86180002 */ lh $t8, 2($s0)
/* 100780 80297170 3C01802C */ lui $at, %hi(D_802B95F0) # $at, 0x802c
/* 100784 80297174 C42095F0 */ lwc1 $f0, %lo(D_802B95F0)($at)
/* 100788 80297178 37195000 */ ori $t9, $t8, 0x5000
/* 10078C 8029717C A6190002 */ sh $t9, 2($s0)
/* 100790 80297180 3C01802C */ lui $at, %hi(D_802B95F4) # $at, 0x802c
/* 100794 80297184 C43295F4 */ lwc1 $f18, %lo(D_802B95F4)($at)
/* 100798 80297188 C6040020 */ lwc1 $f4, 0x20($s0)
/* 10079C 8029718C 8E060018 */ lw $a2, 0x18($s0)
/* 1007A0 80297190 8E07001C */ lw $a3, 0x1c($s0)
/* 1007A4 80297194 E600000C */ swc1 $f0, 0xc($s0)
/* 1007A8 80297198 44050000 */ mfc1 $a1, $f0
/* 1007AC 8029719C E6120008 */ swc1 $f18, 8($s0)
/* 1007B0 802971A0 0C0AB772 */ jal func_802ADDC8
/* 1007B4 802971A4 E7A40010 */ swc1 $f4, 0x10($sp)
/* 1007B8 802971A8 1000001D */ b .L80297220
/* 1007BC 802971AC 8FBF0024 */ lw $ra, 0x24($sp)
glabel L802971B0
/* 1007C0 802971B0 86080002 */ lh $t0, 2($s0)
/* 1007C4 802971B4 3C0140B0 */ li $at, 0x40B00000 # 5.500000
/* 1007C8 802971B8 44813000 */ mtc1 $at, $f6
/* 1007CC 802971BC 240A0005 */ li $t2, 5
/* 1007D0 802971C0 35094000 */ ori $t1, $t0, 0x4000
/* 1007D4 802971C4 A6090002 */ sh $t1, 2($s0)
/* 1007D8 802971C8 A6000004 */ sh $zero, 4($s0)
/* 1007DC 802971CC A60A0006 */ sh $t2, 6($s0)
/* 1007E0 802971D0 10000012 */ b .L8029721C
/* 1007E4 802971D4 E606000C */ swc1 $f6, 0xc($s0)
glabel L802971D8
/* 1007E8 802971D8 860B0002 */ lh $t3, 2($s0)
/* 1007EC 802971DC 3C0140B0 */ li $at, 0x40B00000 # 5.500000
/* 1007F0 802971E0 44814000 */ mtc1 $at, $f8
/* 1007F4 802971E4 356C4000 */ ori $t4, $t3, 0x4000
/* 1007F8 802971E8 A60C0002 */ sh $t4, 2($s0)
/* 1007FC 802971EC A6000004 */ sh $zero, 4($s0)
/* 100800 802971F0 A6000006 */ sh $zero, 6($s0)
/* 100804 802971F4 10000009 */ b .L8029721C
/* 100808 802971F8 E608000C */ swc1 $f8, 0xc($s0)
glabel L802971FC
/* 10080C 802971FC 860D0002 */ lh $t5, 2($s0)
/* 100810 80297200 3C0140A0 */ li $at, 0x40A00000 # 5.000000
/* 100814 80297204 44815000 */ mtc1 $at, $f10
/* 100818 80297208 240F001E */ li $t7, 30
/* 10081C 8029720C 35AE4000 */ ori $t6, $t5, 0x4000
/* 100820 80297210 A60E0002 */ sh $t6, 2($s0)
/* 100824 80297214 A60F0006 */ sh $t7, 6($s0)
/* 100828 80297218 E60A000C */ swc1 $f10, 0xc($s0)
.L8029721C:
glabel L8029721C
/* 10082C 8029721C 8FBF0024 */ lw $ra, 0x24($sp)
.L80297220:
/* 100830 80297220 8FB00020 */ lw $s0, 0x20($sp)
/* 100834 80297224 27BD0030 */ addiu $sp, $sp, 0x30
/* 100838 80297228 03E00008 */ jr $ra
/* 10083C 8029722C 00000000 */ nop
glabel func_80297230
/* 100840 80297230 3C0E800E */ lui $t6, %hi(D_800DDB40) # $t6, 0x800e
/* 100844 80297234 8DCEDB40 */ lw $t6, %lo(D_800DDB40)($t6)
/* 100848 80297238 240100B8 */ li $at, 184
/* 10084C 8029723C 008E1023 */ subu $v0, $a0, $t6
/* 100850 80297240 0041001A */ div $zero, $v0, $at
/* 100854 80297244 00007812 */ mflo $t7
/* 100858 80297248 24010001 */ li $at, 1
/* 10085C 8029724C 51E0000A */ beql $t7, $zero, .L80297278
/* 100860 80297250 84B80002 */ lh $t8, 2($a1)
/* 100864 80297254 11E1000B */ beq $t7, $at, .L80297284
/* 100868 80297258 24010002 */ li $at, 2
/* 10086C 8029725C 11E1000D */ beq $t7, $at, .L80297294
/* 100870 80297260 24010003 */ li $at, 3
/* 100874 80297264 51E10010 */ beql $t7, $at, .L802972A8
/* 100878 80297268 84AC0002 */ lh $t4, 2($a1)
/* 10087C 8029726C 03E00008 */ jr $ra
/* 100880 80297270 00000000 */ nop
/* 100884 80297274 84B80002 */ lh $t8, 2($a1)
.L80297278:
/* 100888 80297278 3319FFFE */ andi $t9, $t8, 0xfffe
/* 10088C 8029727C 03E00008 */ jr $ra
/* 100890 80297280 A4B90002 */ sh $t9, 2($a1)
.L80297284:
/* 100894 80297284 84A80002 */ lh $t0, 2($a1)
/* 100898 80297288 3109FFFD */ andi $t1, $t0, 0xfffd
/* 10089C 8029728C 03E00008 */ jr $ra
/* 1008A0 80297290 A4A90002 */ sh $t1, 2($a1)
.L80297294:
/* 1008A4 80297294 84AA0002 */ lh $t2, 2($a1)
/* 1008A8 80297298 314BFFFB */ andi $t3, $t2, 0xfffb
/* 1008AC 8029729C 03E00008 */ jr $ra
/* 1008B0 802972A0 A4AB0002 */ sh $t3, 2($a1)
/* 1008B4 802972A4 84AC0002 */ lh $t4, 2($a1)
.L802972A8:
/* 1008B8 802972A8 318DFFF7 */ andi $t5, $t4, 0xfff7
/* 1008BC 802972AC A4AD0002 */ sh $t5, 2($a1)
/* 1008C0 802972B0 03E00008 */ jr $ra
/* 1008C4 802972B4 00000000 */ nop
glabel func_802972B8
/* 1008C8 802972B8 3C0E800E */ lui $t6, %hi(D_800DDB40) # $t6, 0x800e
/* 1008CC 802972BC 8DCEDB40 */ lw $t6, %lo(D_800DDB40)($t6)
/* 1008D0 802972C0 240100B8 */ li $at, 184
/* 1008D4 802972C4 008E1023 */ subu $v0, $a0, $t6
/* 1008D8 802972C8 0041001A */ div $zero, $v0, $at
/* 1008DC 802972CC 00007812 */ mflo $t7
/* 1008E0 802972D0 24010001 */ li $at, 1
/* 1008E4 802972D4 51E0000A */ beql $t7, $zero, .L80297300
/* 1008E8 802972D8 84B80002 */ lh $t8, 2($a1)
/* 1008EC 802972DC 11E1000B */ beq $t7, $at, .L8029730C
/* 1008F0 802972E0 24010002 */ li $at, 2
/* 1008F4 802972E4 11E1000D */ beq $t7, $at, .L8029731C
/* 1008F8 802972E8 24010003 */ li $at, 3
/* 1008FC 802972EC 51E10010 */ beql $t7, $at, .L80297330
/* 100900 802972F0 84AC0002 */ lh $t4, 2($a1)
/* 100904 802972F4 03E00008 */ jr $ra
/* 100908 802972F8 00000000 */ nop
/* 10090C 802972FC 84B80002 */ lh $t8, 2($a1)
.L80297300:
/* 100910 80297300 37190001 */ ori $t9, $t8, 1
/* 100914 80297304 03E00008 */ jr $ra
/* 100918 80297308 A4B90002 */ sh $t9, 2($a1)
.L8029730C:
/* 10091C 8029730C 84A80002 */ lh $t0, 2($a1)
/* 100920 80297310 35090002 */ ori $t1, $t0, 2
/* 100924 80297314 03E00008 */ jr $ra
/* 100928 80297318 A4A90002 */ sh $t1, 2($a1)
.L8029731C:
/* 10092C 8029731C 84AA0002 */ lh $t2, 2($a1)
/* 100930 80297320 354B0004 */ ori $t3, $t2, 4
/* 100934 80297324 03E00008 */ jr $ra
/* 100938 80297328 A4AB0002 */ sh $t3, 2($a1)
/* 10093C 8029732C 84AC0002 */ lh $t4, 2($a1)
.L80297330:
/* 100940 80297330 358D0008 */ ori $t5, $t4, 8
/* 100944 80297334 A4AD0002 */ sh $t5, 2($a1)
/* 100948 80297338 03E00008 */ jr $ra
/* 10094C 8029733C 00000000 */ nop
glabel func_80297340
/* 100950 80297340 3C058016 */ lui $a1, %hi(D_8015F8D0) # $a1, 0x8016
/* 100954 80297344 24A5F8D0 */ addiu $a1, %lo(D_8015F8D0) # addiu $a1, $a1, -0x730
/* 100958 80297348 C4A40008 */ lwc1 $f4, 8($a1)
/* 10095C 8029734C 3C18800E */ lui $t8, %hi(D_800DC50C) # $t8, 0x800e
/* 100960 80297350 8F18C50C */ lw $t8, %lo(D_800DC50C)($t8)
/* 100964 80297354 4600218D */ trunc.w.s $f6, $f4
/* 100968 80297358 27BDFF88 */ addiu $sp, $sp, -0x78
/* 10096C 8029735C 24010009 */ li $at, 9
/* 100970 80297360 AFBF0014 */ sw $ra, 0x14($sp)
/* 100974 80297364 440F3000 */ mfc1 $t7, $f6
/* 100978 80297368 AFA40078 */ sw $a0, 0x78($sp)
/* 10097C 8029736C 13010069 */ beq $t8, $at, .L80297514
/* 100980 80297370 A7AF0036 */ sh $t7, 0x36($sp)
/* 100984 80297374 0C0AD548 */ jal func_802B5520
/* 100988 80297378 27A40038 */ addiu $a0, $sp, 0x38
/* 10098C 8029737C 27A40038 */ addiu $a0, $sp, 0x38
/* 100990 80297380 0C0AD3FE */ jal func_802B4FF8
/* 100994 80297384 00002825 */ move $a1, $zero
/* 100998 80297388 10400062 */ beqz $v0, .L80297514
/* 10099C 8029738C 87B90036 */ lh $t9, 0x36($sp)
/* 1009A0 80297390 44994000 */ mtc1 $t9, $f8
/* 1009A4 80297394 8FA80078 */ lw $t0, 0x78($sp)
/* 1009A8 80297398 3C09800E */ lui $t1, %hi(D_800DC5BC) # $t1, 0x800e
/* 1009AC 8029739C 468042A0 */ cvt.s.w $f10, $f8
/* 1009B0 802973A0 C5100008 */ lwc1 $f16, 8($t0)
/* 1009B4 802973A4 3C08800E */ lui $t0, %hi(D_800DC5BC) # $t0, 0x800e
/* 1009B8 802973A8 4610503C */ c.lt.s $f10, $f16
/* 1009BC 802973AC 00000000 */ nop
/* 1009C0 802973B0 4500002D */ bc1f .L80297468
/* 1009C4 802973B4 00000000 */ nop
/* 1009C8 802973B8 9529C5BC */ lhu $t1, %lo(D_800DC5BC)($t1)
/* 1009CC 802973BC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 1009D0 802973C0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 1009D4 802973C4 11200020 */ beqz $t1, .L80297448
/* 1009D8 802973C8 3C0A0D00 */ lui $t2, 0xd00
/* 1009DC 802973CC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 1009E0 802973D0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 1009E4 802973D4 8C620000 */ lw $v0, ($v1)
/* 1009E8 802973D8 3C0BF800 */ lui $t3, 0xf800
/* 1009EC 802973DC 3C0F8016 */ lui $t7, %hi(D_801625F4) # $t7, 0x8016
/* 1009F0 802973E0 244A0008 */ addiu $t2, $v0, 8
/* 1009F4 802973E4 AC6A0000 */ sw $t2, ($v1)
/* 1009F8 802973E8 AC4B0000 */ sw $t3, ($v0)
/* 1009FC 802973EC 8DEF25F4 */ lw $t7, %lo(D_801625F4)($t7)
/* 100A00 802973F0 3C0C8016 */ lui $t4, %hi(D_801625EC) # $t4, 0x8016
/* 100A04 802973F4 3C098016 */ lui $t1, %hi(D_801625F0) # $t1, 0x8016
/* 100A08 802973F8 8D2925F0 */ lw $t1, %lo(D_801625F0)($t1)
/* 100A0C 802973FC 8D8D25EC */ lw $t5, %lo(D_801625EC)($t4)
/* 100A10 80297400 31F800FF */ andi $t8, $t7, 0xff
/* 100A14 80297404 0018CC00 */ sll $t9, $t8, 0x10
/* 100A18 80297408 312A00FF */ andi $t2, $t1, 0xff
/* 100A1C 8029740C 000D7600 */ sll $t6, $t5, 0x18
/* 100A20 80297410 01D94025 */ or $t0, $t6, $t9
/* 100A24 80297414 000A5A00 */ sll $t3, $t2, 8
/* 100A28 80297418 010B6025 */ or $t4, $t0, $t3
/* 100A2C 8029741C 358D00FF */ ori $t5, $t4, 0xff
/* 100A30 80297420 AC4D0004 */ sw $t5, 4($v0)
/* 100A34 80297424 8C620000 */ lw $v0, ($v1)
/* 100A38 80297428 3C0E0D00 */ lui $t6, %hi(D_0D001C20) # $t6, 0xd00
/* 100A3C 8029742C 25CE1C20 */ addiu $t6, %lo(D_0D001C20) # addiu $t6, $t6, 0x1c20
/* 100A40 80297430 244F0008 */ addiu $t7, $v0, 8
/* 100A44 80297434 AC6F0000 */ sw $t7, ($v1)
/* 100A48 80297438 3C180600 */ lui $t8, 0x600
/* 100A4C 8029743C AC580000 */ sw $t8, ($v0)
/* 100A50 80297440 10000034 */ b .L80297514
/* 100A54 80297444 AC4E0004 */ sw $t6, 4($v0)
.L80297448:
/* 100A58 80297448 8C620000 */ lw $v0, ($v1)
/* 100A5C 8029744C 3C090600 */ lui $t1, 0x600
/* 100A60 80297450 254A1B90 */ addiu $t2, $t2, 0x1b90
/* 100A64 80297454 24590008 */ addiu $t9, $v0, 8
/* 100A68 80297458 AC790000 */ sw $t9, ($v1)
/* 100A6C 8029745C AC4A0004 */ sw $t2, 4($v0)
/* 100A70 80297460 1000002C */ b .L80297514
/* 100A74 80297464 AC490000 */ sw $t1, ($v0)
.L80297468:
/* 100A78 80297468 9508C5BC */ lhu $t0, %lo(D_800DC5BC)($t0)
/* 100A7C 8029746C 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 100A80 80297470 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 100A84 80297474 11000020 */ beqz $t0, .L802974F8
/* 100A88 80297478 3C0B0D00 */ lui $t3, 0xd00
/* 100A8C 8029747C 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 100A90 80297480 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 100A94 80297484 8C620000 */ lw $v0, ($v1)
/* 100A98 80297488 3C0CF800 */ lui $t4, 0xf800
/* 100A9C 8029748C 3C0E8016 */ lui $t6, %hi(D_801625F4) # $t6, 0x8016
/* 100AA0 80297490 244B0008 */ addiu $t3, $v0, 8
/* 100AA4 80297494 AC6B0000 */ sw $t3, ($v1)
/* 100AA8 80297498 AC4C0000 */ sw $t4, ($v0)
/* 100AAC 8029749C 8DCE25F4 */ lw $t6, %lo(D_801625F4)($t6)
/* 100AB0 802974A0 3C0D8016 */ lui $t5, %hi(D_801625EC) # $t5, 0x8016
/* 100AB4 802974A4 3C088016 */ lui $t0, %hi(D_801625F0) # $t0, 0x8016
/* 100AB8 802974A8 8D0825F0 */ lw $t0, %lo(D_801625F0)($t0)
/* 100ABC 802974AC 8DAF25EC */ lw $t7, %lo(D_801625EC)($t5)
/* 100AC0 802974B0 31D900FF */ andi $t9, $t6, 0xff
/* 100AC4 802974B4 00194C00 */ sll $t1, $t9, 0x10
/* 100AC8 802974B8 310B00FF */ andi $t3, $t0, 0xff
/* 100ACC 802974BC 000FC600 */ sll $t8, $t7, 0x18
/* 100AD0 802974C0 03095025 */ or $t2, $t8, $t1
/* 100AD4 802974C4 000B6200 */ sll $t4, $t3, 8
/* 100AD8 802974C8 014C6825 */ or $t5, $t2, $t4
/* 100ADC 802974CC 35AF00FF */ ori $t7, $t5, 0xff
/* 100AE0 802974D0 AC4F0004 */ sw $t7, 4($v0)
/* 100AE4 802974D4 8C620000 */ lw $v0, ($v1)
/* 100AE8 802974D8 3C180D00 */ lui $t8, %hi(D_0D001C88) # $t8, 0xd00
/* 100AEC 802974DC 27181C88 */ addiu $t8, %lo(D_0D001C88) # addiu $t8, $t8, 0x1c88
/* 100AF0 802974E0 244E0008 */ addiu $t6, $v0, 8
/* 100AF4 802974E4 AC6E0000 */ sw $t6, ($v1)
/* 100AF8 802974E8 3C190600 */ lui $t9, 0x600
/* 100AFC 802974EC AC590000 */ sw $t9, ($v0)
/* 100B00 802974F0 10000008 */ b .L80297514
/* 100B04 802974F4 AC580004 */ sw $t8, 4($v0)
.L802974F8:
/* 100B08 802974F8 8C620000 */ lw $v0, ($v1)
/* 100B0C 802974FC 3C080600 */ lui $t0, 0x600
/* 100B10 80297500 256B1BD8 */ addiu $t3, $t3, 0x1bd8
/* 100B14 80297504 24490008 */ addiu $t1, $v0, 8
/* 100B18 80297508 AC690000 */ sw $t1, ($v1)
/* 100B1C 8029750C AC4B0004 */ sw $t3, 4($v0)
/* 100B20 80297510 AC480000 */ sw $t0, ($v0)
.L80297514:
/* 100B24 80297514 8FBF0014 */ lw $ra, 0x14($sp)
/* 100B28 80297518 27BD0078 */ addiu $sp, $sp, 0x78
/* 100B2C 8029751C 03E00008 */ jr $ra
/* 100B30 80297520 00000000 */ nop
/* 100B34 80297524 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 100B38 80297528 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 100B3C 8029752C 8C620000 */ lw $v0, ($v1)
/* 100B40 80297530 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 100B44 80297534 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 100B48 80297538 244E0008 */ addiu $t6, $v0, 8
/* 100B4C 8029753C AC6E0000 */ sw $t6, ($v1)
/* 100B50 80297540 0081C024 */ and $t8, $a0, $at
/* 100B54 80297544 3C0FFD10 */ lui $t7, 0xfd10
/* 100B58 80297548 AC4F0000 */ sw $t7, ($v0)
/* 100B5C 8029754C AC580004 */ sw $t8, 4($v0)
/* 100B60 80297550 8C620000 */ lw $v0, ($v1)
/* 100B64 80297554 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708
/* 100B68 80297558 3C08F510 */ lui $t0, 0xf510
/* 100B6C 8029755C 24590008 */ addiu $t9, $v0, 8
/* 100B70 80297560 AC790000 */ sw $t9, ($v1)
/* 100B74 80297564 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200
/* 100B78 80297568 00A60019 */ multu $a1, $a2
/* 100B7C 8029756C AC4E0004 */ sw $t6, 4($v0)
/* 100B80 80297570 AC480000 */ sw $t0, ($v0)
/* 100B84 80297574 8C620000 */ lw $v0, ($v1)
/* 100B88 80297578 3C18E600 */ lui $t8, 0xe600
/* 100B8C 8029757C 3C0EF300 */ lui $t6, 0xf300
/* 100B90 80297580 244F0008 */ addiu $t7, $v0, 8
/* 100B94 80297584 AC6F0000 */ sw $t7, ($v1)
/* 100B98 80297588 AC400004 */ sw $zero, 4($v0)
/* 100B9C 8029758C AC580000 */ sw $t8, ($v0)
/* 100BA0 80297590 8C670000 */ lw $a3, ($v1)
/* 100BA4 80297594 00006012 */ mflo $t4
/* 100BA8 80297598 258CFFFF */ addiu $t4, $t4, -1
/* 100BAC 8029759C 24F90008 */ addiu $t9, $a3, 8
/* 100BB0 802975A0 AC790000 */ sw $t9, ($v1)
/* 100BB4 802975A4 298107FF */ slti $at, $t4, 0x7ff
/* 100BB8 802975A8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 100BBC 802975AC 10200003 */ beqz $at, .L802975BC
/* 100BC0 802975B0 ACEE0000 */ sw $t6, ($a3)
/* 100BC4 802975B4 10000002 */ b .L802975C0
/* 100BC8 802975B8 01802025 */ move $a0, $t4
.L802975BC:
/* 100BCC 802975BC 240407FF */ li $a0, 2047
.L802975C0:
/* 100BD0 802975C0 00054840 */ sll $t1, $a1, 1
/* 100BD4 802975C4 05210003 */ bgez $t1, .L802975D4
/* 100BD8 802975C8 000910C3 */ sra $v0, $t1, 3
/* 100BDC 802975CC 25210007 */ addiu $at, $t1, 7
/* 100BE0 802975D0 000110C3 */ sra $v0, $at, 3
.L802975D4:
/* 100BE4 802975D4 1C400003 */ bgtz $v0, .L802975E4
/* 100BE8 802975D8 00405025 */ move $t2, $v0
/* 100BEC 802975DC 10000001 */ b .L802975E4
/* 100BF0 802975E0 240A0001 */ li $t2, 1
.L802975E4:
/* 100BF4 802975E4 1C400003 */ bgtz $v0, .L802975F4
/* 100BF8 802975E8 254F07FF */ addiu $t7, $t2, 0x7ff
/* 100BFC 802975EC 10000002 */ b .L802975F8
/* 100C00 802975F0 240B0001 */ li $t3, 1
.L802975F4:
/* 100C04 802975F4 00405825 */ move $t3, $v0
.L802975F8:
/* 100C08 802975F8 01EB001A */ div $zero, $t7, $t3
/* 100C0C 802975FC 15600002 */ bnez $t3, .L80297608
/* 100C10 80297600 00000000 */ nop
/* 100C14 80297604 0007000D */ break 7
.L80297608:
/* 100C18 80297608 2401FFFF */ li $at, -1
/* 100C1C 8029760C 15610004 */ bne $t3, $at, .L80297620
/* 100C20 80297610 3C018000 */ lui $at, 0x8000
/* 100C24 80297614 15E10002 */ bne $t7, $at, .L80297620
/* 100C28 80297618 00000000 */ nop
/* 100C2C 8029761C 0006000D */ break 6
.L80297620:
/* 100C30 80297620 0000C012 */ mflo $t8
/* 100C34 80297624 33190FFF */ andi $t9, $t8, 0xfff
/* 100C38 80297628 3C010700 */ lui $at, 0x700
/* 100C3C 8029762C 308F0FFF */ andi $t7, $a0, 0xfff
/* 100C40 80297630 000FC300 */ sll $t8, $t7, 0xc
/* 100C44 80297634 03217025 */ or $t6, $t9, $at
/* 100C48 80297638 01D8C825 */ or $t9, $t6, $t8
/* 100C4C 8029763C ACF90004 */ sw $t9, 4($a3)
/* 100C50 80297640 8C620000 */ lw $v0, ($v1)
/* 100C54 80297644 3C0EE700 */ lui $t6, 0xe700
/* 100C58 80297648 25390007 */ addiu $t9, $t1, 7
/* 100C5C 8029764C 244F0008 */ addiu $t7, $v0, 8
/* 100C60 80297650 AC6F0000 */ sw $t7, ($v1)
/* 100C64 80297654 AC400004 */ sw $zero, 4($v0)
/* 100C68 80297658 AC4E0000 */ sw $t6, ($v0)
/* 100C6C 8029765C 00406025 */ move $t4, $v0
/* 100C70 80297660 8C620000 */ lw $v0, ($v1)
/* 100C74 80297664 001978C3 */ sra $t7, $t9, 3
/* 100C78 80297668 31EE01FF */ andi $t6, $t7, 0x1ff
/* 100C7C 8029766C 24580008 */ addiu $t8, $v0, 8
/* 100C80 80297670 AC780000 */ sw $t8, ($v1)
/* 100C84 80297674 000EC240 */ sll $t8, $t6, 9
/* 100C88 80297678 3C0F0008 */ lui $t7, (0x00080200 >> 16) # lui $t7, 8
/* 100C8C 8029767C 35EF0200 */ ori $t7, (0x00080200 & 0xFFFF) # ori $t7, $t7, 0x200
/* 100C90 80297680 0308C825 */ or $t9, $t8, $t0
/* 100C94 80297684 AC590000 */ sw $t9, ($v0)
/* 100C98 80297688 AC4F0004 */ sw $t7, 4($v0)
/* 100C9C 8029768C 00406825 */ move $t5, $v0
/* 100CA0 80297690 8C620000 */ lw $v0, ($v1)
/* 100CA4 80297694 24AFFFFF */ addiu $t7, $a1, -1
/* 100CA8 80297698 3C18F200 */ lui $t8, 0xf200
/* 100CAC 8029769C 244E0008 */ addiu $t6, $v0, 8
/* 100CB0 802976A0 AC6E0000 */ sw $t6, ($v1)
/* 100CB4 802976A4 AFA20004 */ sw $v0, 4($sp)
/* 100CB8 802976A8 000F7080 */ sll $t6, $t7, 2
/* 100CBC 802976AC AC580000 */ sw $t8, ($v0)
/* 100CC0 802976B0 31D80FFF */ andi $t8, $t6, 0xfff
/* 100CC4 802976B4 00187B00 */ sll $t7, $t8, 0xc
/* 100CC8 802976B8 24CEFFFF */ addiu $t6, $a2, -1
/* 100CCC 802976BC 000EC080 */ sll $t8, $t6, 2
/* 100CD0 802976C0 330E0FFF */ andi $t6, $t8, 0xfff
/* 100CD4 802976C4 01EEC025 */ or $t8, $t7, $t6
/* 100CD8 802976C8 27BD0020 */ addiu $sp, $sp, 0x20
/* 100CDC 802976CC AC580004 */ sw $t8, 4($v0)
/* 100CE0 802976D0 03E00008 */ jr $ra
/* 100CE4 802976D4 0040C825 */ move $t9, $v0
glabel func_802976D8
/* 100CE8 802976D8 240E4000 */ li $t6, 16384
/* 100CEC 802976DC A48E0000 */ sh $t6, ($a0)
@@ -0,0 +1,201 @@
glabel func_80296A50
/* 100060 80296A50 3C098016 */ lui $t1, %hi(D_8015F900) # $t1, 0x8016
/* 100064 80296A54 9529F900 */ lhu $t1, %lo(D_8015F900)($t1)
/* 100068 80296A58 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 10006C 80296A5C AFBF0014 */ sw $ra, 0x14($sp)
/* 100070 80296A60 29210064 */ slti $at, $t1, 0x64
/* 100074 80296A64 10200027 */ beqz $at, .L80296B04
/* 100078 80296A68 01203025 */ move $a2, $t1
/* 10007C 80296A6C 000670C0 */ sll $t6, $a2, 3
/* 100080 80296A70 01C67023 */ subu $t6, $t6, $a2
/* 100084 80296A74 3C0F8016 */ lui $t7, %hi(D_8015F9B8) # $t7, 0x8016
/* 100088 80296A78 25EFF9B8 */ addiu $t7, %lo(D_8015F9B8) # addiu $t7, $t7, -0x648
/* 10008C 80296A7C 000E7100 */ sll $t6, $t6, 4
/* 100090 80296A80 01CF2821 */ addu $a1, $t6, $t7
/* 100094 80296A84 24030007 */ li $v1, 7
.L80296A88:
/* 100098 80296A88 5085001A */ beql $a0, $a1, .L80296AF4
/* 10009C 80296A8C 24C60001 */ addiu $a2, $a2, 1
/* 1000A0 80296A90 84B80002 */ lh $t8, 2($a1)
/* 1000A4 80296A94 3319000F */ andi $t9, $t8, 0xf
/* 1000A8 80296A98 57200016 */ bnel $t9, $zero, .L80296AF4
/* 1000AC 80296A9C 24C60001 */ addiu $a2, $a2, 1
/* 1000B0 80296AA0 84AA0000 */ lh $t2, ($a1)
/* 1000B4 80296AA4 546A0013 */ bnel $v1, $t2, .L80296AF4
/* 1000B8 80296AA8 24C60001 */ addiu $a2, $a2, 1
/* 1000BC 80296AAC 84AB0006 */ lh $t3, 6($a1)
/* 1000C0 80296AB0 24070002 */ li $a3, 2
/* 1000C4 80296AB4 00C02025 */ move $a0, $a2
/* 1000C8 80296AB8 14EB0004 */ bne $a3, $t3, .L80296ACC
/* 1000CC 80296ABC 00000000 */ nop
/* 1000D0 80296AC0 0C003B96 */ jal func_8000EE58
/* 1000D4 80296AC4 AFA5001C */ sw $a1, 0x1c($sp)
/* 1000D8 80296AC8 8FA5001C */ lw $a1, 0x1c($sp)
.L80296ACC:
/* 1000DC 80296ACC 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1000E0 80296AD0 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1000E4 80296AD4 944C0000 */ lhu $t4, ($v0)
/* 1000E8 80296AD8 00A02025 */ move $a0, $a1
/* 1000EC 80296ADC 258DFFFF */ addiu $t5, $t4, -1
/* 1000F0 80296AE0 0C0A7A15 */ jal func_8029E854
/* 1000F4 80296AE4 A44D0000 */ sh $t5, ($v0)
/* 1000F8 80296AE8 10000086 */ b .L80296D04
/* 1000FC 80296AEC 8FBF0014 */ lw $ra, 0x14($sp)
/* 100100 80296AF0 24C60001 */ addiu $a2, $a2, 1
.L80296AF4:
/* 100104 80296AF4 28C10064 */ slti $at, $a2, 0x64
/* 100108 80296AF8 1420FFE3 */ bnez $at, .L80296A88
/* 10010C 80296AFC 24A50070 */ addiu $a1, $a1, 0x70
/* 100110 80296B00 01203025 */ move $a2, $t1
.L80296B04:
/* 100114 80296B04 28C10064 */ slti $at, $a2, 0x64
/* 100118 80296B08 1020002D */ beqz $at, .L80296BC0
/* 10011C 80296B0C 24030007 */ li $v1, 7
/* 100120 80296B10 000670C0 */ sll $t6, $a2, 3
/* 100124 80296B14 01C67023 */ subu $t6, $t6, $a2
/* 100128 80296B18 3C0F8016 */ lui $t7, %hi(D_8015F9B8) # $t7, 0x8016
/* 10012C 80296B1C 25EFF9B8 */ addiu $t7, %lo(D_8015F9B8) # addiu $t7, $t7, -0x648
/* 100130 80296B20 000E7100 */ sll $t6, $t6, 4
/* 100134 80296B24 01CF2821 */ addu $a1, $t6, $t7
/* 100138 80296B28 24080008 */ li $t0, 8
.L80296B2C:
/* 10013C 80296B2C 50850020 */ beql $a0, $a1, .L80296BB0
/* 100140 80296B30 24C60001 */ addiu $a2, $a2, 1
/* 100144 80296B34 84B80002 */ lh $t8, 2($a1)
/* 100148 80296B38 3319000F */ andi $t9, $t8, 0xf
/* 10014C 80296B3C 5720001C */ bnel $t9, $zero, .L80296BB0
/* 100150 80296B40 24C60001 */ addiu $a2, $a2, 1
/* 100154 80296B44 84AA0000 */ lh $t2, ($a1)
/* 100158 80296B48 550A0019 */ bnel $t0, $t2, .L80296BB0
/* 10015C 80296B4C 24C60001 */ addiu $a2, $a2, 1
/* 100160 80296B50 84AB0006 */ lh $t3, 6($a1)
/* 100164 80296B54 256CFFFE */ addiu $t4, $t3, -2
/* 100168 80296B58 2D810008 */ sltiu $at, $t4, 8
/* 10016C 80296B5C 10200013 */ beqz $at, .L80296BAC
/* 100170 80296B60 000C6080 */ sll $t4, $t4, 2
/* 100174 80296B64 3C01802C */ lui $at, %hi(D_802B9500)
/* 100178 80296B68 002C0821 */ addu $at, $at, $t4
/* 10017C 80296B6C 8C2C9500 */ lw $t4, %lo(D_802B9500)($at)
/* 100180 80296B70 01800008 */ jr $t4
/* 100184 80296B74 00000000 */ nop
glabel L80296B78
/* 100188 80296B78 00C02025 */ move $a0, $a2
/* 10018C 80296B7C 0C003B96 */ jal func_8000EE58
/* 100190 80296B80 AFA5001C */ sw $a1, 0x1c($sp)
/* 100194 80296B84 8FA5001C */ lw $a1, 0x1c($sp)
glabel L80296B88
/* 100198 80296B88 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10019C 80296B8C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1001A0 80296B90 944D0000 */ lhu $t5, ($v0)
/* 1001A4 80296B94 00A02025 */ move $a0, $a1
/* 1001A8 80296B98 25AEFFFF */ addiu $t6, $t5, -1
/* 1001AC 80296B9C 0C0A7A15 */ jal func_8029E854
/* 1001B0 80296BA0 A44E0000 */ sh $t6, ($v0)
/* 1001B4 80296BA4 10000057 */ b .L80296D04
/* 1001B8 80296BA8 8FBF0014 */ lw $ra, 0x14($sp)
.L80296BAC:
glabel L80296BAC
/* 1001BC 80296BAC 24C60001 */ addiu $a2, $a2, 1
.L80296BB0:
/* 1001C0 80296BB0 28C10064 */ slti $at, $a2, 0x64
/* 1001C4 80296BB4 1420FFDD */ bnez $at, .L80296B2C
/* 1001C8 80296BB8 24A50070 */ addiu $a1, $a1, 0x70
/* 1001CC 80296BBC 01203025 */ move $a2, $t1
.L80296BC0:
/* 1001D0 80296BC0 28C10064 */ slti $at, $a2, 0x64
/* 1001D4 80296BC4 10200026 */ beqz $at, .L80296C60
/* 1001D8 80296BC8 24080008 */ li $t0, 8
/* 1001DC 80296BCC 000678C0 */ sll $t7, $a2, 3
/* 1001E0 80296BD0 01E67823 */ subu $t7, $t7, $a2
/* 1001E4 80296BD4 3C188016 */ lui $t8, %hi(D_8015F9B8) # $t8, 0x8016
/* 1001E8 80296BD8 2718F9B8 */ addiu $t8, %lo(D_8015F9B8) # addiu $t8, $t8, -0x648
/* 1001EC 80296BDC 000F7900 */ sll $t7, $t7, 4
/* 1001F0 80296BE0 01F82821 */ addu $a1, $t7, $t8
/* 1001F4 80296BE4 24070002 */ li $a3, 2
.L80296BE8:
/* 1001F8 80296BE8 50850019 */ beql $a0, $a1, .L80296C50
/* 1001FC 80296BEC 24C60001 */ addiu $a2, $a2, 1
/* 100200 80296BF0 84B90000 */ lh $t9, ($a1)
/* 100204 80296BF4 54790016 */ bnel $v1, $t9, .L80296C50
/* 100208 80296BF8 24C60001 */ addiu $a2, $a2, 1
/* 10020C 80296BFC 84A20006 */ lh $v0, 6($a1)
/* 100210 80296C00 50470006 */ beql $v0, $a3, .L80296C1C
/* 100214 80296C04 00C02025 */ move $a0, $a2
/* 100218 80296C08 10430007 */ beq $v0, $v1, .L80296C28
/* 10021C 80296C0C 00000000 */ nop
/* 100220 80296C10 1000000F */ b .L80296C50
/* 100224 80296C14 24C60001 */ addiu $a2, $a2, 1
/* 100228 80296C18 00C02025 */ move $a0, $a2
.L80296C1C:
/* 10022C 80296C1C 0C003B96 */ jal func_8000EE58
/* 100230 80296C20 AFA5001C */ sw $a1, 0x1c($sp)
/* 100234 80296C24 8FA5001C */ lw $a1, 0x1c($sp)
.L80296C28:
/* 100238 80296C28 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10023C 80296C2C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 100240 80296C30 944A0000 */ lhu $t2, ($v0)
/* 100244 80296C34 00A02025 */ move $a0, $a1
/* 100248 80296C38 254BFFFF */ addiu $t3, $t2, -1
/* 10024C 80296C3C 0C0A7A15 */ jal func_8029E854
/* 100250 80296C40 A44B0000 */ sh $t3, ($v0)
/* 100254 80296C44 1000002F */ b .L80296D04
/* 100258 80296C48 8FBF0014 */ lw $ra, 0x14($sp)
/* 10025C 80296C4C 24C60001 */ addiu $a2, $a2, 1
.L80296C50:
/* 100260 80296C50 28C10064 */ slti $at, $a2, 0x64
/* 100264 80296C54 1420FFE4 */ bnez $at, .L80296BE8
/* 100268 80296C58 24A50070 */ addiu $a1, $a1, 0x70
/* 10026C 80296C5C 01203025 */ move $a2, $t1
.L80296C60:
/* 100270 80296C60 28C10064 */ slti $at, $a2, 0x64
/* 100274 80296C64 10200026 */ beqz $at, .L80296D00
/* 100278 80296C68 000660C0 */ sll $t4, $a2, 3
/* 10027C 80296C6C 01866023 */ subu $t4, $t4, $a2
/* 100280 80296C70 3C0D8016 */ lui $t5, %hi(D_8015F9B8) # $t5, 0x8016
/* 100284 80296C74 25ADF9B8 */ addiu $t5, %lo(D_8015F9B8) # addiu $t5, $t5, -0x648
/* 100288 80296C78 000C6100 */ sll $t4, $t4, 4
/* 10028C 80296C7C 018D2821 */ addu $a1, $t4, $t5
.L80296C80:
/* 100290 80296C80 5085001C */ beql $a0, $a1, .L80296CF4
/* 100294 80296C84 24C60001 */ addiu $a2, $a2, 1
/* 100298 80296C88 84AE0000 */ lh $t6, ($a1)
/* 10029C 80296C8C 550E0019 */ bnel $t0, $t6, .L80296CF4
/* 1002A0 80296C90 24C60001 */ addiu $a2, $a2, 1
/* 1002A4 80296C94 84AF0006 */ lh $t7, 6($a1)
/* 1002A8 80296C98 25F8FFFE */ addiu $t8, $t7, -2
/* 1002AC 80296C9C 2F010008 */ sltiu $at, $t8, 8
/* 1002B0 80296CA0 10200013 */ beqz $at, .L80296CF0
/* 1002B4 80296CA4 0018C080 */ sll $t8, $t8, 2
/* 1002B8 80296CA8 3C01802C */ lui $at, %hi(D_802B9520)
/* 1002BC 80296CAC 00380821 */ addu $at, $at, $t8
/* 1002C0 80296CB0 8C389520 */ lw $t8, %lo(D_802B9520)($at)
/* 1002C4 80296CB4 03000008 */ jr $t8
/* 1002C8 80296CB8 00000000 */ nop
glabel L80296CBC
/* 1002CC 80296CBC 00C02025 */ move $a0, $a2
/* 1002D0 80296CC0 0C003B96 */ jal func_8000EE58
/* 1002D4 80296CC4 AFA5001C */ sw $a1, 0x1c($sp)
/* 1002D8 80296CC8 8FA5001C */ lw $a1, 0x1c($sp)
glabel L80296CCC
/* 1002DC 80296CCC 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1002E0 80296CD0 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1002E4 80296CD4 94590000 */ lhu $t9, ($v0)
/* 1002E8 80296CD8 00A02025 */ move $a0, $a1
/* 1002EC 80296CDC 272AFFFF */ addiu $t2, $t9, -1
/* 1002F0 80296CE0 0C0A7A15 */ jal func_8029E854
/* 1002F4 80296CE4 A44A0000 */ sh $t2, ($v0)
/* 1002F8 80296CE8 10000006 */ b .L80296D04
/* 1002FC 80296CEC 8FBF0014 */ lw $ra, 0x14($sp)
.L80296CF0:
glabel L80296CF0
/* 100300 80296CF0 24C60001 */ addiu $a2, $a2, 1
.L80296CF4:
/* 100304 80296CF4 28C10064 */ slti $at, $a2, 0x64
/* 100308 80296CF8 1420FFE1 */ bnez $at, .L80296C80
/* 10030C 80296CFC 24A50070 */ addiu $a1, $a1, 0x70
.L80296D00:
/* 100310 80296D00 8FBF0014 */ lw $ra, 0x14($sp)
.L80296D04:
/* 100314 80296D04 27BD0030 */ addiu $sp, $sp, 0x30
/* 100318 80296D08 03E00008 */ jr $ra
/* 10031C 80296D0C 00000000 */ nop
@@ -0,0 +1,357 @@
glabel func_80296D10
/* 100320 80296D10 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 100324 80296D14 AFB00020 */ sw $s0, 0x20($sp)
/* 100328 80296D18 00808025 */ move $s0, $a0
/* 10032C 80296D1C AFBF0024 */ sw $ra, 0x24($sp)
/* 100330 80296D20 AFA60038 */ sw $a2, 0x38($sp)
/* 100334 80296D24 AFA7003C */ sw $a3, 0x3c($sp)
/* 100338 80296D28 0C0AD4B6 */ jal func_802B52D8
/* 10033C 80296D2C 24840018 */ addiu $a0, $a0, 0x18
/* 100340 80296D30 26040010 */ addiu $a0, $s0, 0x10
/* 100344 80296D34 0C0AD4C1 */ jal func_802B5304
/* 100348 80296D38 8FA50038 */ lw $a1, 0x38($sp)
/* 10034C 80296D3C 26040024 */ addiu $a0, $s0, 0x24
/* 100350 80296D40 0C0AD4B6 */ jal func_802B52D8
/* 100354 80296D44 8FA5003C */ lw $a1, 0x3c($sp)
/* 100358 80296D48 87AE0042 */ lh $t6, 0x42($sp)
/* 10035C 80296D4C 44800000 */ mtc1 $zero, $f0
/* 100360 80296D50 240F8000 */ li $t7, -32768
/* 100364 80296D54 A60F0002 */ sh $t7, 2($s0)
/* 100368 80296D58 A6000004 */ sh $zero, 4($s0)
/* 10036C 80296D5C A6000006 */ sh $zero, 6($s0)
/* 100370 80296D60 26040030 */ addiu $a0, $s0, 0x30
/* 100374 80296D64 A60E0000 */ sh $t6, ($s0)
/* 100378 80296D68 E6000008 */ swc1 $f0, 8($s0)
/* 10037C 80296D6C E600000C */ swc1 $f0, 0xc($s0)
/* 100380 80296D70 0C0AAAAB */ jal func_802AAAAC
/* 100384 80296D74 AFA4002C */ sw $a0, 0x2c($sp)
/* 100388 80296D78 87B80042 */ lh $t8, 0x42($sp)
/* 10038C 80296D7C 24028000 */ li $v0, -32768
/* 100390 80296D80 8FA4002C */ lw $a0, 0x2c($sp)
/* 100394 80296D84 2719FFFE */ addiu $t9, $t8, -2
/* 100398 80296D88 2F21002C */ sltiu $at, $t9, 0x2c
/* 10039C 80296D8C 10200123 */ beqz $at, .L8029721C
/* 1003A0 80296D90 0019C880 */ sll $t9, $t9, 2
/* 1003A4 80296D94 3C01802C */ lui $at, %hi(D_802B9540)
/* 1003A8 80296D98 00390821 */ addu $at, $at, $t9
/* 1003AC 80296D9C 8C399540 */ lw $t9, %lo(D_802B9540)($at)
/* 1003B0 80296DA0 03200008 */ jr $t9
/* 1003B4 80296DA4 00000000 */ nop
glabel L80296DA8
/* 1003B8 80296DA8 3C03802C */ lui $v1, %hi(D_802BA260) # $v1, 0x802c
/* 1003BC 80296DAC 2463A260 */ addiu $v1, %lo(D_802BA260) # addiu $v1, $v1, -0x5da0
/* 1003C0 80296DB0 94620000 */ lhu $v0, ($v1)
/* 1003C4 80296DB4 28410003 */ slti $at, $v0, 3
/* 1003C8 80296DB8 54200004 */ bnel $at, $zero, .L80296DCC
/* 1003CC 80296DBC A6020006 */ sh $v0, 6($s0)
/* 1003D0 80296DC0 A4600000 */ sh $zero, ($v1)
/* 1003D4 80296DC4 3002FFFF */ andi $v0, $zero, 0xffff
/* 1003D8 80296DC8 A6020006 */ sh $v0, 6($s0)
.L80296DCC:
/* 1003DC 80296DCC 94680000 */ lhu $t0, ($v1)
/* 1003E0 80296DD0 25090001 */ addiu $t1, $t0, 1
/* 1003E4 80296DD4 10000111 */ b .L8029721C
/* 1003E8 80296DD8 A4690000 */ sh $t1, ($v1)
glabel L80296DDC
/* 1003EC 80296DDC 3C01428C */ li $at, 0x428C0000 # 70.000000
/* 1003F0 80296DE0 44810000 */ mtc1 $at, $f0
/* 1003F4 80296DE4 C60A0020 */ lwc1 $f10, 0x20($s0)
/* 1003F8 80296DE8 860A0002 */ lh $t2, 2($s0)
/* 1003FC 80296DEC 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 100400 80296DF0 46005400 */ add.s $f16, $f10, $f0
/* 100404 80296DF4 44812000 */ mtc1 $at, $f4
/* 100408 80296DF8 C6060018 */ lwc1 $f6, 0x18($s0)
/* 10040C 80296DFC C608001C */ lwc1 $f8, 0x1c($s0)
/* 100410 80296E00 354B4000 */ ori $t3, $t2, 0x4000
/* 100414 80296E04 A60B0002 */ sh $t3, 2($s0)
/* 100418 80296E08 E610002C */ swc1 $f16, 0x2c($s0)
/* 10041C 80296E0C E6000008 */ swc1 $f0, 8($s0)
/* 100420 80296E10 E604000C */ swc1 $f4, 0xc($s0)
/* 100424 80296E14 E6060024 */ swc1 $f6, 0x24($s0)
/* 100428 80296E18 10000100 */ b .L8029721C
/* 10042C 80296E1C E6080028 */ swc1 $f8, 0x28($s0)
glabel L80296E20
/* 100430 80296E20 3C014000 */ li $at, 0x40000000 # 2.000000
/* 100434 80296E24 44819000 */ mtc1 $at, $f18
/* 100438 80296E28 A6000006 */ sh $zero, 6($s0)
/* 10043C 80296E2C A6000010 */ sh $zero, 0x10($s0)
/* 100440 80296E30 A6000012 */ sh $zero, 0x12($s0)
/* 100444 80296E34 A6000014 */ sh $zero, 0x14($s0)
/* 100448 80296E38 100000F8 */ b .L8029721C
/* 10044C 80296E3C E612000C */ swc1 $f18, 0xc($s0)
glabel L80296E40
/* 100450 80296E40 860C0002 */ lh $t4, 2($s0)
/* 100454 80296E44 3C014120 */ li $at, 0x41200000 # 10.000000
/* 100458 80296E48 44812000 */ mtc1 $at, $f4
/* 10045C 80296E4C 358D4000 */ ori $t5, $t4, 0x4000
/* 100460 80296E50 A60D0002 */ sh $t5, 2($s0)
/* 100464 80296E54 100000F1 */ b .L8029721C
/* 100468 80296E58 E604000C */ swc1 $f4, 0xc($s0)
glabel L80296E5C
/* 10046C 80296E5C 3C014120 */ li $at, 0x41200000 # 10.000000
/* 100470 80296E60 44813000 */ mtc1 $at, $f6
/* 100474 80296E64 100000ED */ b .L8029721C
/* 100478 80296E68 E6060008 */ swc1 $f6, 8($s0)
glabel L80296E6C
/* 10047C 80296E6C 860F0002 */ lh $t7, 2($s0)
/* 100480 80296E70 3C014000 */ li $at, 0x40000000 # 2.000000
/* 100484 80296E74 44814000 */ mtc1 $at, $f8
/* 100488 80296E78 35F85000 */ ori $t8, $t7, 0x5000
/* 10048C 80296E7C A6180002 */ sh $t8, 2($s0)
/* 100490 80296E80 100000E6 */ b .L8029721C
/* 100494 80296E84 E608000C */ swc1 $f8, 0xc($s0)
glabel L80296E88
/* 100498 80296E88 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10049C 80296E8C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1004A0 80296E90 94590000 */ lhu $t9, ($v0)
/* 1004A4 80296E94 3C014080 */ li $at, 0x40800000 # 4.000000
/* 1004A8 80296E98 44815000 */ mtc1 $at, $f10
/* 1004AC 80296E9C 27280001 */ addiu $t0, $t9, 1
/* 1004B0 80296EA0 A4480000 */ sh $t0, ($v0)
/* 1004B4 80296EA4 860B0002 */ lh $t3, 2($s0)
/* 1004B8 80296EA8 A6000004 */ sh $zero, 4($s0)
/* 1004BC 80296EAC E60A000C */ swc1 $f10, 0xc($s0)
/* 1004C0 80296EB0 356C7000 */ ori $t4, $t3, 0x7000
/* 1004C4 80296EB4 A60C0002 */ sh $t4, 2($s0)
/* 1004C8 80296EB8 944D0000 */ lhu $t5, ($v0)
/* 1004CC 80296EBC 29A10015 */ slti $at, $t5, 0x15
/* 1004D0 80296EC0 542000D7 */ bnel $at, $zero, .L80297220
/* 1004D4 80296EC4 8FBF0024 */ lw $ra, 0x24($sp)
/* 1004D8 80296EC8 0C0A5A94 */ jal func_80296A50
/* 1004DC 80296ECC 02002025 */ move $a0, $s0
/* 1004E0 80296ED0 100000D3 */ b .L80297220
/* 1004E4 80296ED4 8FBF0024 */ lw $ra, 0x24($sp)
glabel L80296ED8
/* 1004E8 80296ED8 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 1004EC 80296EDC 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 1004F0 80296EE0 944E0000 */ lhu $t6, ($v0)
/* 1004F4 80296EE4 3C014080 */ li $at, 0x40800000 # 4.000000
/* 1004F8 80296EE8 44818000 */ mtc1 $at, $f16
/* 1004FC 80296EEC 25CF0001 */ addiu $t7, $t6, 1
/* 100500 80296EF0 A44F0000 */ sh $t7, ($v0)
/* 100504 80296EF4 86080002 */ lh $t0, 2($s0)
/* 100508 80296EF8 A6000004 */ sh $zero, 4($s0)
/* 10050C 80296EFC E610000C */ swc1 $f16, 0xc($s0)
/* 100510 80296F00 35097000 */ ori $t1, $t0, 0x7000
/* 100514 80296F04 A6090002 */ sh $t1, 2($s0)
/* 100518 80296F08 944A0000 */ lhu $t2, ($v0)
/* 10051C 80296F0C 29410015 */ slti $at, $t2, 0x15
/* 100520 80296F10 542000C3 */ bnel $at, $zero, .L80297220
/* 100524 80296F14 8FBF0024 */ lw $ra, 0x24($sp)
/* 100528 80296F18 0C0A5A94 */ jal func_80296A50
/* 10052C 80296F1C 02002025 */ move $a0, $s0
/* 100530 80296F20 100000BF */ b .L80297220
/* 100534 80296F24 8FBF0024 */ lw $ra, 0x24($sp)
glabel L80296F28
/* 100538 80296F28 3C028016 */ lui $v0, %hi(D_8015F6FE) # $v0, 0x8016
/* 10053C 80296F2C 2442F6FE */ addiu $v0, %lo(D_8015F6FE) # addiu $v0, $v0, -0x902
/* 100540 80296F30 944B0000 */ lhu $t3, ($v0)
/* 100544 80296F34 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100548 80296F38 44819000 */ mtc1 $at, $f18
/* 10054C 80296F3C 256C0001 */ addiu $t4, $t3, 1
/* 100550 80296F40 A44C0000 */ sh $t4, ($v0)
/* 100554 80296F44 860D0002 */ lh $t5, 2($s0)
/* 100558 80296F48 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 10055C 80296F4C 44812000 */ mtc1 $at, $f4
/* 100560 80296F50 240F0043 */ li $t7, 67
/* 100564 80296F54 35AE4000 */ ori $t6, $t5, 0x4000
/* 100568 80296F58 A60E0002 */ sh $t6, 2($s0)
/* 10056C 80296F5C A60F0006 */ sh $t7, 6($s0)
/* 100570 80296F60 E612000C */ swc1 $f18, 0xc($s0)
/* 100574 80296F64 100000AD */ b .L8029721C
/* 100578 80296F68 E6040008 */ swc1 $f4, 8($s0)
glabel L80296F6C
/* 10057C 80296F6C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100580 80296F70 86180002 */ lh $t8, 2($s0)
/* 100584 80296F74 44813000 */ mtc1 $at, $f6
/* 100588 80296F78 3C0141B8 */ li $at, 0x41B80000 # 23.000000
/* 10058C 80296F7C 44814000 */ mtc1 $at, $f8
/* 100590 80296F80 24080043 */ li $t0, 67
/* 100594 80296F84 37194000 */ ori $t9, $t8, 0x4000
/* 100598 80296F88 A6190002 */ sh $t9, 2($s0)
/* 10059C 80296F8C A6080006 */ sh $t0, 6($s0)
/* 1005A0 80296F90 E606000C */ swc1 $f6, 0xc($s0)
/* 1005A4 80296F94 100000A1 */ b .L8029721C
/* 1005A8 80296F98 E6080008 */ swc1 $f8, 8($s0)
glabel L80296F9C
/* 1005AC 80296F9C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1005B0 80296FA0 86090002 */ lh $t1, 2($s0)
/* 1005B4 80296FA4 44815000 */ mtc1 $at, $f10
/* 1005B8 80296FA8 3C014188 */ li $at, 0x41880000 # 17.000000
/* 1005BC 80296FAC 44818000 */ mtc1 $at, $f16
/* 1005C0 80296FB0 240B0043 */ li $t3, 67
/* 1005C4 80296FB4 352A4000 */ ori $t2, $t1, 0x4000
/* 1005C8 80296FB8 A60A0002 */ sh $t2, 2($s0)
/* 1005CC 80296FBC A60B0006 */ sh $t3, 6($s0)
/* 1005D0 80296FC0 E60A000C */ swc1 $f10, 0xc($s0)
/* 1005D4 80296FC4 10000095 */ b .L8029721C
/* 1005D8 80296FC8 E6100008 */ swc1 $f16, 8($s0)
glabel L80296FCC
/* 1005DC 80296FCC 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1005E0 80296FD0 44819000 */ mtc1 $at, $f18
/* 1005E4 80296FD4 3C014188 */ li $at, 0x41880000 # 17.000000
/* 1005E8 80296FD8 44812000 */ mtc1 $at, $f4
/* 1005EC 80296FDC 240C0043 */ li $t4, 67
/* 1005F0 80296FE0 A60C0006 */ sh $t4, 6($s0)
/* 1005F4 80296FE4 A6020002 */ sh $v0, 2($s0)
/* 1005F8 80296FE8 E612000C */ swc1 $f18, 0xc($s0)
/* 1005FC 80296FEC 1000008B */ b .L8029721C
/* 100600 80296FF0 E6040008 */ swc1 $f4, 8($s0)
glabel L80296FF4
/* 100604 80296FF4 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100608 80296FF8 860D0002 */ lh $t5, 2($s0)
/* 10060C 80296FFC 44813000 */ mtc1 $at, $f6
/* 100610 80297000 3C014188 */ li $at, 0x41880000 # 17.000000
/* 100614 80297004 44814000 */ mtc1 $at, $f8
/* 100618 80297008 240F0043 */ li $t7, 67
/* 10061C 8029700C 35AE4000 */ ori $t6, $t5, 0x4000
/* 100620 80297010 A60E0002 */ sh $t6, 2($s0)
/* 100624 80297014 A60F0006 */ sh $t7, 6($s0)
/* 100628 80297018 E606000C */ swc1 $f6, 0xc($s0)
/* 10062C 8029701C 1000007F */ b .L8029721C
/* 100630 80297020 E6080008 */ swc1 $f8, 8($s0)
glabel L80297024
/* 100634 80297024 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100638 80297028 44815000 */ mtc1 $at, $f10
/* 10063C 8029702C 3C014188 */ li $at, 0x41880000 # 17.000000
/* 100640 80297030 44818000 */ mtc1 $at, $f16
/* 100644 80297034 24180043 */ li $t8, 67
/* 100648 80297038 A6180006 */ sh $t8, 6($s0)
/* 10064C 8029703C A6020002 */ sh $v0, 2($s0)
/* 100650 80297040 E60A000C */ swc1 $f10, 0xc($s0)
/* 100654 80297044 10000075 */ b .L8029721C
/* 100658 80297048 E6100008 */ swc1 $f16, 8($s0)
glabel L8029704C
/* 10065C 8029704C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100660 80297050 86190002 */ lh $t9, 2($s0)
/* 100664 80297054 44819000 */ mtc1 $at, $f18
/* 100668 80297058 3C014188 */ li $at, 0x41880000 # 17.000000
/* 10066C 8029705C 44812000 */ mtc1 $at, $f4
/* 100670 80297060 24090043 */ li $t1, 67
/* 100674 80297064 37284000 */ ori $t0, $t9, 0x4000
/* 100678 80297068 A6080002 */ sh $t0, 2($s0)
/* 10067C 8029706C A6090006 */ sh $t1, 6($s0)
/* 100680 80297070 E612000C */ swc1 $f18, 0xc($s0)
/* 100684 80297074 10000069 */ b .L8029721C
/* 100688 80297078 E6040008 */ swc1 $f4, 8($s0)
glabel L8029707C
/* 10068C 8029707C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100690 80297080 860A0002 */ lh $t2, 2($s0)
/* 100694 80297084 44813000 */ mtc1 $at, $f6
/* 100698 80297088 3C014188 */ li $at, 0x41880000 # 17.000000
/* 10069C 8029708C 44814000 */ mtc1 $at, $f8
/* 1006A0 80297090 240C0043 */ li $t4, 67
/* 1006A4 80297094 354B4000 */ ori $t3, $t2, 0x4000
/* 1006A8 80297098 A60B0002 */ sh $t3, 2($s0)
/* 1006AC 8029709C A60C0006 */ sh $t4, 6($s0)
/* 1006B0 802970A0 E606000C */ swc1 $f6, 0xc($s0)
/* 1006B4 802970A4 1000005D */ b .L8029721C
/* 1006B8 802970A8 E6080008 */ swc1 $f8, 8($s0)
glabel L802970AC
/* 1006BC 802970AC 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1006C0 802970B0 860D0002 */ lh $t5, 2($s0)
/* 1006C4 802970B4 44815000 */ mtc1 $at, $f10
/* 1006C8 802970B8 3C0140E0 */ li $at, 0x40E00000 # 7.000000
/* 1006CC 802970BC 44818000 */ mtc1 $at, $f16
/* 1006D0 802970C0 240F0019 */ li $t7, 25
/* 1006D4 802970C4 35AE4000 */ ori $t6, $t5, 0x4000
/* 1006D8 802970C8 A60E0002 */ sh $t6, 2($s0)
/* 1006DC 802970CC A60F0006 */ sh $t7, 6($s0)
/* 1006E0 802970D0 E60A000C */ swc1 $f10, 0xc($s0)
/* 1006E4 802970D4 10000051 */ b .L8029721C
/* 1006E8 802970D8 E6100008 */ swc1 $f16, 8($s0)
glabel L802970DC
/* 1006EC 802970DC 3C014040 */ li $at, 0x40400000 # 3.000000
/* 1006F0 802970E0 86180002 */ lh $t8, 2($s0)
/* 1006F4 802970E4 44819000 */ mtc1 $at, $f18
/* 1006F8 802970E8 3C0140E0 */ li $at, 0x40E00000 # 7.000000
/* 1006FC 802970EC 44812000 */ mtc1 $at, $f4
/* 100700 802970F0 24080019 */ li $t0, 25
/* 100704 802970F4 37194000 */ ori $t9, $t8, 0x4000
/* 100708 802970F8 A6190002 */ sh $t9, 2($s0)
/* 10070C 802970FC A6080006 */ sh $t0, 6($s0)
/* 100710 80297100 E612000C */ swc1 $f18, 0xc($s0)
/* 100714 80297104 10000045 */ b .L8029721C
/* 100718 80297108 E6040008 */ swc1 $f4, 8($s0)
glabel L8029710C
/* 10071C 8029710C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100720 80297110 86090002 */ lh $t1, 2($s0)
/* 100724 80297114 44813000 */ mtc1 $at, $f6
/* 100728 80297118 3C0140E0 */ li $at, 0x40E00000 # 7.000000
/* 10072C 8029711C 44814000 */ mtc1 $at, $f8
/* 100730 80297120 240B0019 */ li $t3, 25
/* 100734 80297124 352A4000 */ ori $t2, $t1, 0x4000
/* 100738 80297128 A60A0002 */ sh $t2, 2($s0)
/* 10073C 8029712C A60B0006 */ sh $t3, 6($s0)
/* 100740 80297130 E606000C */ swc1 $f6, 0xc($s0)
/* 100744 80297134 10000039 */ b .L8029721C
/* 100748 80297138 E6080008 */ swc1 $f8, 8($s0)
glabel L8029713C
/* 10074C 8029713C 3C014040 */ li $at, 0x40400000 # 3.000000
/* 100750 80297140 860C0002 */ lh $t4, 2($s0)
/* 100754 80297144 44815000 */ mtc1 $at, $f10
/* 100758 80297148 3C014150 */ li $at, 0x41500000 # 13.000000
/* 10075C 8029714C 44818000 */ mtc1 $at, $f16
/* 100760 80297150 240E003C */ li $t6, 60
/* 100764 80297154 358D4000 */ ori $t5, $t4, 0x4000
/* 100768 80297158 A60D0002 */ sh $t5, 2($s0)
/* 10076C 8029715C A60E0006 */ sh $t6, 6($s0)
/* 100770 80297160 E60A000C */ swc1 $f10, 0xc($s0)
/* 100774 80297164 1000002D */ b .L8029721C
/* 100778 80297168 E6100008 */ swc1 $f16, 8($s0)
glabel L8029716C
/* 10077C 8029716C 86180002 */ lh $t8, 2($s0)
/* 100780 80297170 3C01802C */ lui $at, %hi(D_802B95F0) # $at, 0x802c
/* 100784 80297174 C42095F0 */ lwc1 $f0, %lo(D_802B95F0)($at)
/* 100788 80297178 37195000 */ ori $t9, $t8, 0x5000
/* 10078C 8029717C A6190002 */ sh $t9, 2($s0)
/* 100790 80297180 3C01802C */ lui $at, %hi(D_802B95F4) # $at, 0x802c
/* 100794 80297184 C43295F4 */ lwc1 $f18, %lo(D_802B95F4)($at)
/* 100798 80297188 C6040020 */ lwc1 $f4, 0x20($s0)
/* 10079C 8029718C 8E060018 */ lw $a2, 0x18($s0)
/* 1007A0 80297190 8E07001C */ lw $a3, 0x1c($s0)
/* 1007A4 80297194 E600000C */ swc1 $f0, 0xc($s0)
/* 1007A8 80297198 44050000 */ mfc1 $a1, $f0
/* 1007AC 8029719C E6120008 */ swc1 $f18, 8($s0)
/* 1007B0 802971A0 0C0AB772 */ jal func_802ADDC8
/* 1007B4 802971A4 E7A40010 */ swc1 $f4, 0x10($sp)
/* 1007B8 802971A8 1000001D */ b .L80297220
/* 1007BC 802971AC 8FBF0024 */ lw $ra, 0x24($sp)
glabel L802971B0
/* 1007C0 802971B0 86080002 */ lh $t0, 2($s0)
/* 1007C4 802971B4 3C0140B0 */ li $at, 0x40B00000 # 5.500000
/* 1007C8 802971B8 44813000 */ mtc1 $at, $f6
/* 1007CC 802971BC 240A0005 */ li $t2, 5
/* 1007D0 802971C0 35094000 */ ori $t1, $t0, 0x4000
/* 1007D4 802971C4 A6090002 */ sh $t1, 2($s0)
/* 1007D8 802971C8 A6000004 */ sh $zero, 4($s0)
/* 1007DC 802971CC A60A0006 */ sh $t2, 6($s0)
/* 1007E0 802971D0 10000012 */ b .L8029721C
/* 1007E4 802971D4 E606000C */ swc1 $f6, 0xc($s0)
glabel L802971D8
/* 1007E8 802971D8 860B0002 */ lh $t3, 2($s0)
/* 1007EC 802971DC 3C0140B0 */ li $at, 0x40B00000 # 5.500000
/* 1007F0 802971E0 44814000 */ mtc1 $at, $f8
/* 1007F4 802971E4 356C4000 */ ori $t4, $t3, 0x4000
/* 1007F8 802971E8 A60C0002 */ sh $t4, 2($s0)
/* 1007FC 802971EC A6000004 */ sh $zero, 4($s0)
/* 100800 802971F0 A6000006 */ sh $zero, 6($s0)
/* 100804 802971F4 10000009 */ b .L8029721C
/* 100808 802971F8 E608000C */ swc1 $f8, 0xc($s0)
glabel L802971FC
/* 10080C 802971FC 860D0002 */ lh $t5, 2($s0)
/* 100810 80297200 3C0140A0 */ li $at, 0x40A00000 # 5.000000
/* 100814 80297204 44815000 */ mtc1 $at, $f10
/* 100818 80297208 240F001E */ li $t7, 30
/* 10081C 8029720C 35AE4000 */ ori $t6, $t5, 0x4000
/* 100820 80297210 A60E0002 */ sh $t6, 2($s0)
/* 100824 80297214 A60F0006 */ sh $t7, 6($s0)
/* 100828 80297218 E60A000C */ swc1 $f10, 0xc($s0)
.L8029721C:
glabel L8029721C
/* 10082C 8029721C 8FBF0024 */ lw $ra, 0x24($sp)
.L80297220:
/* 100830 80297220 8FB00020 */ lw $s0, 0x20($sp)
/* 100834 80297224 27BD0030 */ addiu $sp, $sp, 0x30
/* 100838 80297228 03E00008 */ jr $ra
/* 10083C 8029722C 00000000 */ nop
@@ -0,0 +1,39 @@
glabel func_80297230
/* 100840 80297230 3C0E800E */ lui $t6, %hi(D_800DDB40) # $t6, 0x800e
/* 100844 80297234 8DCEDB40 */ lw $t6, %lo(D_800DDB40)($t6)
/* 100848 80297238 240100B8 */ li $at, 184
/* 10084C 8029723C 008E1023 */ subu $v0, $a0, $t6
/* 100850 80297240 0041001A */ div $zero, $v0, $at
/* 100854 80297244 00007812 */ mflo $t7
/* 100858 80297248 24010001 */ li $at, 1
/* 10085C 8029724C 51E0000A */ beql $t7, $zero, .L80297278
/* 100860 80297250 84B80002 */ lh $t8, 2($a1)
/* 100864 80297254 11E1000B */ beq $t7, $at, .L80297284
/* 100868 80297258 24010002 */ li $at, 2
/* 10086C 8029725C 11E1000D */ beq $t7, $at, .L80297294
/* 100870 80297260 24010003 */ li $at, 3
/* 100874 80297264 51E10010 */ beql $t7, $at, .L802972A8
/* 100878 80297268 84AC0002 */ lh $t4, 2($a1)
/* 10087C 8029726C 03E00008 */ jr $ra
/* 100880 80297270 00000000 */ nop
/* 100884 80297274 84B80002 */ lh $t8, 2($a1)
.L80297278:
/* 100888 80297278 3319FFFE */ andi $t9, $t8, 0xfffe
/* 10088C 8029727C 03E00008 */ jr $ra
/* 100890 80297280 A4B90002 */ sh $t9, 2($a1)
.L80297284:
/* 100894 80297284 84A80002 */ lh $t0, 2($a1)
/* 100898 80297288 3109FFFD */ andi $t1, $t0, 0xfffd
/* 10089C 8029728C 03E00008 */ jr $ra
/* 1008A0 80297290 A4A90002 */ sh $t1, 2($a1)
.L80297294:
/* 1008A4 80297294 84AA0002 */ lh $t2, 2($a1)
/* 1008A8 80297298 314BFFFB */ andi $t3, $t2, 0xfffb
/* 1008AC 8029729C 03E00008 */ jr $ra
/* 1008B0 802972A0 A4AB0002 */ sh $t3, 2($a1)
/* 1008B4 802972A4 84AC0002 */ lh $t4, 2($a1)
.L802972A8:
/* 1008B8 802972A8 318DFFF7 */ andi $t5, $t4, 0xfff7
/* 1008BC 802972AC A4AD0002 */ sh $t5, 2($a1)
/* 1008C0 802972B0 03E00008 */ jr $ra
/* 1008C4 802972B4 00000000 */ nop
@@ -0,0 +1,43 @@
glabel func_802972B8
/* 1008C8 802972B8 3C0E800E */ lui $t6, %hi(D_800DDB40) # $t6, 0x800e
/* 1008CC 802972BC 8DCEDB40 */ lw $t6, %lo(D_800DDB40)($t6)
/* 1008D0 802972C0 240100B8 */ li $at, 184
/* 1008D4 802972C4 008E1023 */ subu $v0, $a0, $t6
/* 1008D8 802972C8 0041001A */ div $zero, $v0, $at
/* 1008DC 802972CC 00007812 */ mflo $t7
/* 1008E0 802972D0 24010001 */ li $at, 1
/* 1008E4 802972D4 51E0000A */ beql $t7, $zero, .L80297300
/* 1008E8 802972D8 84B80002 */ lh $t8, 2($a1)
/* 1008EC 802972DC 11E1000B */ beq $t7, $at, .L8029730C
/* 1008F0 802972E0 24010002 */ li $at, 2
/* 1008F4 802972E4 11E1000D */ beq $t7, $at, .L8029731C
/* 1008F8 802972E8 24010003 */ li $at, 3
/* 1008FC 802972EC 51E10010 */ beql $t7, $at, .L80297330
/* 100900 802972F0 84AC0002 */ lh $t4, 2($a1)
/* 100904 802972F4 03E00008 */ jr $ra
/* 100908 802972F8 00000000 */ nop
/* 10090C 802972FC 84B80002 */ lh $t8, 2($a1)
.L80297300:
/* 100910 80297300 37190001 */ ori $t9, $t8, 1
/* 100914 80297304 03E00008 */ jr $ra
/* 100918 80297308 A4B90002 */ sh $t9, 2($a1)
.L8029730C:
/* 10091C 8029730C 84A80002 */ lh $t0, 2($a1)
/* 100920 80297310 35090002 */ ori $t1, $t0, 2
/* 100924 80297314 03E00008 */ jr $ra
/* 100928 80297318 A4A90002 */ sh $t1, 2($a1)
.L8029731C:
/* 10092C 8029731C 84AA0002 */ lh $t2, 2($a1)
/* 100930 80297320 354B0004 */ ori $t3, $t2, 4
/* 100934 80297324 03E00008 */ jr $ra
/* 100938 80297328 A4AB0002 */ sh $t3, 2($a1)
/* 10093C 8029732C 84AC0002 */ lh $t4, 2($a1)
.L80297330:
/* 100940 80297330 358D0008 */ ori $t5, $t4, 8
/* 100944 80297334 A4AD0002 */ sh $t5, 2($a1)
/* 100948 80297338 03E00008 */ jr $ra
/* 10094C 8029733C 00000000 */ nop
@@ -0,0 +1,244 @@
glabel func_80297340
/* 100950 80297340 3C058016 */ lui $a1, %hi(D_8015F8D0) # $a1, 0x8016
/* 100954 80297344 24A5F8D0 */ addiu $a1, %lo(D_8015F8D0) # addiu $a1, $a1, -0x730
/* 100958 80297348 C4A40008 */ lwc1 $f4, 8($a1)
/* 10095C 8029734C 3C18800E */ lui $t8, %hi(D_800DC50C) # $t8, 0x800e
/* 100960 80297350 8F18C50C */ lw $t8, %lo(D_800DC50C)($t8)
/* 100964 80297354 4600218D */ trunc.w.s $f6, $f4
/* 100968 80297358 27BDFF88 */ addiu $sp, $sp, -0x78
/* 10096C 8029735C 24010009 */ li $at, 9
/* 100970 80297360 AFBF0014 */ sw $ra, 0x14($sp)
/* 100974 80297364 440F3000 */ mfc1 $t7, $f6
/* 100978 80297368 AFA40078 */ sw $a0, 0x78($sp)
/* 10097C 8029736C 13010069 */ beq $t8, $at, .L80297514
/* 100980 80297370 A7AF0036 */ sh $t7, 0x36($sp)
/* 100984 80297374 0C0AD548 */ jal func_802B5520
/* 100988 80297378 27A40038 */ addiu $a0, $sp, 0x38
/* 10098C 8029737C 27A40038 */ addiu $a0, $sp, 0x38
/* 100990 80297380 0C0AD3FE */ jal func_802B4FF8
/* 100994 80297384 00002825 */ move $a1, $zero
/* 100998 80297388 10400062 */ beqz $v0, .L80297514
/* 10099C 8029738C 87B90036 */ lh $t9, 0x36($sp)
/* 1009A0 80297390 44994000 */ mtc1 $t9, $f8
/* 1009A4 80297394 8FA80078 */ lw $t0, 0x78($sp)
/* 1009A8 80297398 3C09800E */ lui $t1, %hi(D_800DC5BC) # $t1, 0x800e
/* 1009AC 8029739C 468042A0 */ cvt.s.w $f10, $f8
/* 1009B0 802973A0 C5100008 */ lwc1 $f16, 8($t0)
/* 1009B4 802973A4 3C08800E */ lui $t0, %hi(D_800DC5BC) # $t0, 0x800e
/* 1009B8 802973A8 4610503C */ c.lt.s $f10, $f16
/* 1009BC 802973AC 00000000 */ nop
/* 1009C0 802973B0 4500002D */ bc1f .L80297468
/* 1009C4 802973B4 00000000 */ nop
/* 1009C8 802973B8 9529C5BC */ lhu $t1, %lo(D_800DC5BC)($t1)
/* 1009CC 802973BC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 1009D0 802973C0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 1009D4 802973C4 11200020 */ beqz $t1, .L80297448
/* 1009D8 802973C8 3C0A0D00 */ lui $t2, 0xd00
/* 1009DC 802973CC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 1009E0 802973D0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 1009E4 802973D4 8C620000 */ lw $v0, ($v1)
/* 1009E8 802973D8 3C0BF800 */ lui $t3, 0xf800
/* 1009EC 802973DC 3C0F8016 */ lui $t7, %hi(D_801625F4) # $t7, 0x8016
/* 1009F0 802973E0 244A0008 */ addiu $t2, $v0, 8
/* 1009F4 802973E4 AC6A0000 */ sw $t2, ($v1)
/* 1009F8 802973E8 AC4B0000 */ sw $t3, ($v0)
/* 1009FC 802973EC 8DEF25F4 */ lw $t7, %lo(D_801625F4)($t7)
/* 100A00 802973F0 3C0C8016 */ lui $t4, %hi(D_801625EC) # $t4, 0x8016
/* 100A04 802973F4 3C098016 */ lui $t1, %hi(D_801625F0) # $t1, 0x8016
/* 100A08 802973F8 8D2925F0 */ lw $t1, %lo(D_801625F0)($t1)
/* 100A0C 802973FC 8D8D25EC */ lw $t5, %lo(D_801625EC)($t4)
/* 100A10 80297400 31F800FF */ andi $t8, $t7, 0xff
/* 100A14 80297404 0018CC00 */ sll $t9, $t8, 0x10
/* 100A18 80297408 312A00FF */ andi $t2, $t1, 0xff
/* 100A1C 8029740C 000D7600 */ sll $t6, $t5, 0x18
/* 100A20 80297410 01D94025 */ or $t0, $t6, $t9
/* 100A24 80297414 000A5A00 */ sll $t3, $t2, 8
/* 100A28 80297418 010B6025 */ or $t4, $t0, $t3
/* 100A2C 8029741C 358D00FF */ ori $t5, $t4, 0xff
/* 100A30 80297420 AC4D0004 */ sw $t5, 4($v0)
/* 100A34 80297424 8C620000 */ lw $v0, ($v1)
/* 100A38 80297428 3C0E0D00 */ lui $t6, %hi(D_0D001C20) # $t6, 0xd00
/* 100A3C 8029742C 25CE1C20 */ addiu $t6, %lo(D_0D001C20) # addiu $t6, $t6, 0x1c20
/* 100A40 80297430 244F0008 */ addiu $t7, $v0, 8
/* 100A44 80297434 AC6F0000 */ sw $t7, ($v1)
/* 100A48 80297438 3C180600 */ lui $t8, 0x600
/* 100A4C 8029743C AC580000 */ sw $t8, ($v0)
/* 100A50 80297440 10000034 */ b .L80297514
/* 100A54 80297444 AC4E0004 */ sw $t6, 4($v0)
.L80297448:
/* 100A58 80297448 8C620000 */ lw $v0, ($v1)
/* 100A5C 8029744C 3C090600 */ lui $t1, 0x600
/* 100A60 80297450 254A1B90 */ addiu $t2, $t2, 0x1b90
/* 100A64 80297454 24590008 */ addiu $t9, $v0, 8
/* 100A68 80297458 AC790000 */ sw $t9, ($v1)
/* 100A6C 8029745C AC4A0004 */ sw $t2, 4($v0)
/* 100A70 80297460 1000002C */ b .L80297514
/* 100A74 80297464 AC490000 */ sw $t1, ($v0)
.L80297468:
/* 100A78 80297468 9508C5BC */ lhu $t0, %lo(D_800DC5BC)($t0)
/* 100A7C 8029746C 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 100A80 80297470 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 100A84 80297474 11000020 */ beqz $t0, .L802974F8
/* 100A88 80297478 3C0B0D00 */ lui $t3, 0xd00
/* 100A8C 8029747C 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 100A90 80297480 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 100A94 80297484 8C620000 */ lw $v0, ($v1)
/* 100A98 80297488 3C0CF800 */ lui $t4, 0xf800
/* 100A9C 8029748C 3C0E8016 */ lui $t6, %hi(D_801625F4) # $t6, 0x8016
/* 100AA0 80297490 244B0008 */ addiu $t3, $v0, 8
/* 100AA4 80297494 AC6B0000 */ sw $t3, ($v1)
/* 100AA8 80297498 AC4C0000 */ sw $t4, ($v0)
/* 100AAC 8029749C 8DCE25F4 */ lw $t6, %lo(D_801625F4)($t6)
/* 100AB0 802974A0 3C0D8016 */ lui $t5, %hi(D_801625EC) # $t5, 0x8016
/* 100AB4 802974A4 3C088016 */ lui $t0, %hi(D_801625F0) # $t0, 0x8016
/* 100AB8 802974A8 8D0825F0 */ lw $t0, %lo(D_801625F0)($t0)
/* 100ABC 802974AC 8DAF25EC */ lw $t7, %lo(D_801625EC)($t5)
/* 100AC0 802974B0 31D900FF */ andi $t9, $t6, 0xff
/* 100AC4 802974B4 00194C00 */ sll $t1, $t9, 0x10
/* 100AC8 802974B8 310B00FF */ andi $t3, $t0, 0xff
/* 100ACC 802974BC 000FC600 */ sll $t8, $t7, 0x18
/* 100AD0 802974C0 03095025 */ or $t2, $t8, $t1
/* 100AD4 802974C4 000B6200 */ sll $t4, $t3, 8
/* 100AD8 802974C8 014C6825 */ or $t5, $t2, $t4
/* 100ADC 802974CC 35AF00FF */ ori $t7, $t5, 0xff
/* 100AE0 802974D0 AC4F0004 */ sw $t7, 4($v0)
/* 100AE4 802974D4 8C620000 */ lw $v0, ($v1)
/* 100AE8 802974D8 3C180D00 */ lui $t8, %hi(D_0D001C88) # $t8, 0xd00
/* 100AEC 802974DC 27181C88 */ addiu $t8, %lo(D_0D001C88) # addiu $t8, $t8, 0x1c88
/* 100AF0 802974E0 244E0008 */ addiu $t6, $v0, 8
/* 100AF4 802974E4 AC6E0000 */ sw $t6, ($v1)
/* 100AF8 802974E8 3C190600 */ lui $t9, 0x600
/* 100AFC 802974EC AC590000 */ sw $t9, ($v0)
/* 100B00 802974F0 10000008 */ b .L80297514
/* 100B04 802974F4 AC580004 */ sw $t8, 4($v0)
.L802974F8:
/* 100B08 802974F8 8C620000 */ lw $v0, ($v1)
/* 100B0C 802974FC 3C080600 */ lui $t0, 0x600
/* 100B10 80297500 256B1BD8 */ addiu $t3, $t3, 0x1bd8
/* 100B14 80297504 24490008 */ addiu $t1, $v0, 8
/* 100B18 80297508 AC690000 */ sw $t1, ($v1)
/* 100B1C 8029750C AC4B0004 */ sw $t3, 4($v0)
/* 100B20 80297510 AC480000 */ sw $t0, ($v0)
.L80297514:
/* 100B24 80297514 8FBF0014 */ lw $ra, 0x14($sp)
/* 100B28 80297518 27BD0078 */ addiu $sp, $sp, 0x78
/* 100B2C 8029751C 03E00008 */ jr $ra
/* 100B30 80297520 00000000 */ nop
/* 100B34 80297524 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 100B38 80297528 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 100B3C 8029752C 8C620000 */ lw $v0, ($v1)
/* 100B40 80297530 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff
/* 100B44 80297534 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 100B48 80297538 244E0008 */ addiu $t6, $v0, 8
/* 100B4C 8029753C AC6E0000 */ sw $t6, ($v1)
/* 100B50 80297540 0081C024 */ and $t8, $a0, $at
/* 100B54 80297544 3C0FFD10 */ lui $t7, 0xfd10
/* 100B58 80297548 AC4F0000 */ sw $t7, ($v0)
/* 100B5C 8029754C AC580004 */ sw $t8, 4($v0)
/* 100B60 80297550 8C620000 */ lw $v0, ($v1)
/* 100B64 80297554 3C0E0708 */ lui $t6, (0x07080200 >> 16) # lui $t6, 0x708
/* 100B68 80297558 3C08F510 */ lui $t0, 0xf510
/* 100B6C 8029755C 24590008 */ addiu $t9, $v0, 8
/* 100B70 80297560 AC790000 */ sw $t9, ($v1)
/* 100B74 80297564 35CE0200 */ ori $t6, (0x07080200 & 0xFFFF) # ori $t6, $t6, 0x200
/* 100B78 80297568 00A60019 */ multu $a1, $a2
/* 100B7C 8029756C AC4E0004 */ sw $t6, 4($v0)
/* 100B80 80297570 AC480000 */ sw $t0, ($v0)
/* 100B84 80297574 8C620000 */ lw $v0, ($v1)
/* 100B88 80297578 3C18E600 */ lui $t8, 0xe600
/* 100B8C 8029757C 3C0EF300 */ lui $t6, 0xf300
/* 100B90 80297580 244F0008 */ addiu $t7, $v0, 8
/* 100B94 80297584 AC6F0000 */ sw $t7, ($v1)
/* 100B98 80297588 AC400004 */ sw $zero, 4($v0)
/* 100B9C 8029758C AC580000 */ sw $t8, ($v0)
/* 100BA0 80297590 8C670000 */ lw $a3, ($v1)
/* 100BA4 80297594 00006012 */ mflo $t4
/* 100BA8 80297598 258CFFFF */ addiu $t4, $t4, -1
/* 100BAC 8029759C 24F90008 */ addiu $t9, $a3, 8
/* 100BB0 802975A0 AC790000 */ sw $t9, ($v1)
/* 100BB4 802975A4 298107FF */ slti $at, $t4, 0x7ff
/* 100BB8 802975A8 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 100BBC 802975AC 10200003 */ beqz $at, .L802975BC
/* 100BC0 802975B0 ACEE0000 */ sw $t6, ($a3)
/* 100BC4 802975B4 10000002 */ b .L802975C0
/* 100BC8 802975B8 01802025 */ move $a0, $t4
.L802975BC:
/* 100BCC 802975BC 240407FF */ li $a0, 2047
.L802975C0:
/* 100BD0 802975C0 00054840 */ sll $t1, $a1, 1
/* 100BD4 802975C4 05210003 */ bgez $t1, .L802975D4
/* 100BD8 802975C8 000910C3 */ sra $v0, $t1, 3
/* 100BDC 802975CC 25210007 */ addiu $at, $t1, 7
/* 100BE0 802975D0 000110C3 */ sra $v0, $at, 3
.L802975D4:
/* 100BE4 802975D4 1C400003 */ bgtz $v0, .L802975E4
/* 100BE8 802975D8 00405025 */ move $t2, $v0
/* 100BEC 802975DC 10000001 */ b .L802975E4
/* 100BF0 802975E0 240A0001 */ li $t2, 1
.L802975E4:
/* 100BF4 802975E4 1C400003 */ bgtz $v0, .L802975F4
/* 100BF8 802975E8 254F07FF */ addiu $t7, $t2, 0x7ff
/* 100BFC 802975EC 10000002 */ b .L802975F8
/* 100C00 802975F0 240B0001 */ li $t3, 1
.L802975F4:
/* 100C04 802975F4 00405825 */ move $t3, $v0
.L802975F8:
/* 100C08 802975F8 01EB001A */ div $zero, $t7, $t3
/* 100C0C 802975FC 15600002 */ bnez $t3, .L80297608
/* 100C10 80297600 00000000 */ nop
/* 100C14 80297604 0007000D */ break 7
.L80297608:
/* 100C18 80297608 2401FFFF */ li $at, -1
/* 100C1C 8029760C 15610004 */ bne $t3, $at, .L80297620
/* 100C20 80297610 3C018000 */ lui $at, 0x8000
/* 100C24 80297614 15E10002 */ bne $t7, $at, .L80297620
/* 100C28 80297618 00000000 */ nop
/* 100C2C 8029761C 0006000D */ break 6
.L80297620:
/* 100C30 80297620 0000C012 */ mflo $t8
/* 100C34 80297624 33190FFF */ andi $t9, $t8, 0xfff
/* 100C38 80297628 3C010700 */ lui $at, 0x700
/* 100C3C 8029762C 308F0FFF */ andi $t7, $a0, 0xfff
/* 100C40 80297630 000FC300 */ sll $t8, $t7, 0xc
/* 100C44 80297634 03217025 */ or $t6, $t9, $at
/* 100C48 80297638 01D8C825 */ or $t9, $t6, $t8
/* 100C4C 8029763C ACF90004 */ sw $t9, 4($a3)
/* 100C50 80297640 8C620000 */ lw $v0, ($v1)
/* 100C54 80297644 3C0EE700 */ lui $t6, 0xe700
/* 100C58 80297648 25390007 */ addiu $t9, $t1, 7
/* 100C5C 8029764C 244F0008 */ addiu $t7, $v0, 8
/* 100C60 80297650 AC6F0000 */ sw $t7, ($v1)
/* 100C64 80297654 AC400004 */ sw $zero, 4($v0)
/* 100C68 80297658 AC4E0000 */ sw $t6, ($v0)
/* 100C6C 8029765C 00406025 */ move $t4, $v0
/* 100C70 80297660 8C620000 */ lw $v0, ($v1)
/* 100C74 80297664 001978C3 */ sra $t7, $t9, 3
/* 100C78 80297668 31EE01FF */ andi $t6, $t7, 0x1ff
/* 100C7C 8029766C 24580008 */ addiu $t8, $v0, 8
/* 100C80 80297670 AC780000 */ sw $t8, ($v1)
/* 100C84 80297674 000EC240 */ sll $t8, $t6, 9
/* 100C88 80297678 3C0F0008 */ lui $t7, (0x00080200 >> 16) # lui $t7, 8
/* 100C8C 8029767C 35EF0200 */ ori $t7, (0x00080200 & 0xFFFF) # ori $t7, $t7, 0x200
/* 100C90 80297680 0308C825 */ or $t9, $t8, $t0
/* 100C94 80297684 AC590000 */ sw $t9, ($v0)
/* 100C98 80297688 AC4F0004 */ sw $t7, 4($v0)
/* 100C9C 8029768C 00406825 */ move $t5, $v0
/* 100CA0 80297690 8C620000 */ lw $v0, ($v1)
/* 100CA4 80297694 24AFFFFF */ addiu $t7, $a1, -1
/* 100CA8 80297698 3C18F200 */ lui $t8, 0xf200
/* 100CAC 8029769C 244E0008 */ addiu $t6, $v0, 8
/* 100CB0 802976A0 AC6E0000 */ sw $t6, ($v1)
/* 100CB4 802976A4 AFA20004 */ sw $v0, 4($sp)
/* 100CB8 802976A8 000F7080 */ sll $t6, $t7, 2
/* 100CBC 802976AC AC580000 */ sw $t8, ($v0)
/* 100CC0 802976B0 31D80FFF */ andi $t8, $t6, 0xfff
/* 100CC4 802976B4 00187B00 */ sll $t7, $t8, 0xc
/* 100CC8 802976B8 24CEFFFF */ addiu $t6, $a2, -1
/* 100CCC 802976BC 000EC080 */ sll $t8, $t6, 2
/* 100CD0 802976C0 330E0FFF */ andi $t6, $t8, 0xfff
/* 100CD4 802976C4 01EEC025 */ or $t8, $t7, $t6
/* 100CD8 802976C8 27BD0020 */ addiu $sp, $sp, 0x20
/* 100CDC 802976CC AC580004 */ sw $t8, 4($v0)
/* 100CE0 802976D0 03E00008 */ jr $ra
/* 100CE4 802976D4 0040C825 */ move $t9, $v0
@@ -156,12 +156,12 @@ glabel crash_screen_draw_info
/* 004F5C 8000435C 2405006C */ li $a1, 108
/* 004F60 80004360 00001012 */ mflo $v0
/* 004F64 80004364 24500035 */ addiu $s0, $v0, 0x35
/* 004F68 80004368 0C001030 */ jal func_800040C0
/* 004F68 80004368 0C001030 */ jal crash_screen_draw_glyph
/* 004F6C 8000436C 02003025 */ move $a2, $s0
/* 004F70 80004370 02A02025 */ move $a0, $s5
/* 004F74 80004374 24050074 */ li $a1, 116
/* 004F78 80004378 02003025 */ move $a2, $s0
/* 004F7C 8000437C 0C001030 */ jal func_800040C0
/* 004F7C 8000437C 0C001030 */ jal crash_screen_draw_glyph
/* 004F80 80004380 24070010 */ li $a3, 16
/* 004F84 80004384 26720020 */ addiu $s2, $s3, 0x20
/* 004F88 80004388 8E5400FC */ lw $s4, 0xfc($s2)
@@ -170,7 +170,7 @@ glabel crash_screen_draw_info
/* 004F90 80004390 02A02025 */ move $a0, $s5
/* 004F94 80004394 02202825 */ move $a1, $s1
/* 004F98 80004398 02003025 */ move $a2, $s0
/* 004F9C 8000439C 0C001030 */ jal func_800040C0
/* 004F9C 8000439C 0C001030 */ jal crash_screen_draw_glyph
/* 004FA0 800043A0 3287000F */ andi $a3, $s4, 0xf
/* 004FA4 800043A4 2631FFF8 */ addiu $s1, $s1, -8
/* 004FA8 800043A8 2A21007C */ slti $at, $s1, 0x7c
@@ -183,17 +183,17 @@ glabel crash_screen_draw_info
/* 004FC4 800043C4 00117082 */ srl $t6, $s1, 2
/* 004FC8 800043C8 31D1001F */ andi $s1, $t6, 0x1f
/* 004FCC 800043CC 02003025 */ move $a2, $s0
/* 004FD0 800043D0 0C001030 */ jal func_800040C0
/* 004FD0 800043D0 0C001030 */ jal crash_screen_draw_glyph
/* 004FD4 800043D4 24070010 */ li $a3, 16
/* 004FD8 800043D8 02A02025 */ move $a0, $s5
/* 004FDC 800043DC 240500C4 */ li $a1, 196
/* 004FE0 800043E0 02003025 */ move $a2, $s0
/* 004FE4 800043E4 0C001030 */ jal func_800040C0
/* 004FE4 800043E4 0C001030 */ jal crash_screen_draw_glyph
/* 004FE8 800043E8 00113902 */ srl $a3, $s1, 4
/* 004FEC 800043EC 02A02025 */ move $a0, $s5
/* 004FF0 800043F0 240500CC */ li $a1, 204
/* 004FF4 800043F4 02003025 */ move $a2, $s0
/* 004FF8 800043F8 0C001030 */ jal func_800040C0
/* 004FF8 800043F8 0C001030 */ jal crash_screen_draw_glyph
/* 004FFC 800043FC 3227000F */ andi $a3, $s1, 0xf
/* 005000 80004400 8E5400E4 */ lw $s4, 0xe4($s2)
/* 005004 80004404 241100B4 */ li $s1, 180
@@ -201,7 +201,7 @@ glabel crash_screen_draw_info
/* 005008 80004408 02A02025 */ move $a0, $s5
/* 00500C 8000440C 02202825 */ move $a1, $s1
/* 005010 80004410 24060049 */ li $a2, 73
/* 005014 80004414 0C001030 */ jal func_800040C0
/* 005014 80004414 0C001030 */ jal crash_screen_draw_glyph
/* 005018 80004418 3287000F */ andi $a3, $s4, 0xf
/* 00501C 8000441C 2631FFF8 */ addiu $s1, $s1, -8
/* 005020 80004420 2A21007C */ slti $at, $s1, 0x7c
@@ -226,7 +226,7 @@ glabel crash_screen_draw_info
/* 005068 80004468 02A02025 */ move $a0, $s5
/* 00506C 8000446C 02202825 */ move $a1, $s1
/* 005070 80004470 2406005D */ li $a2, 93
/* 005074 80004474 0C001030 */ jal func_800040C0
/* 005074 80004474 0C001030 */ jal crash_screen_draw_glyph
/* 005078 80004478 3287000F */ andi $a3, $s4, 0xf
/* 00507C 8000447C 2631FFF8 */ addiu $s1, $s1, -8
/* 005080 80004480 2A21007C */ slti $at, $s1, 0x7c
@@ -1,37 +0,0 @@
glabel func_800040C0
/* 004CC0 800040C0 27BDFFF8 */ addiu $sp, $sp, -8
/* 004CC4 800040C4 000770C0 */ sll $t6, $a3, 3
/* 004CC8 800040C8 3C0F800E */ lui $t7, %hi(crashScreenFont) # $t7, 0x800e
/* 004CCC 800040CC AFB00004 */ sw $s0, 4($sp)
/* 004CD0 800040D0 25EFC674 */ addiu $t7, %lo(crashScreenFont) # addiu $t7, $t7, -0x398c
/* 004CD4 800040D4 00808025 */ move $s0, $a0
/* 004CD8 800040D8 01CF4021 */ addu $t0, $t6, $t7
/* 004CDC 800040DC 24070140 */ li $a3, 320
/* 004CE0 800040E0 00001025 */ move $v0, $zero
/* 004CE4 800040E4 240A0008 */ li $t2, 8
/* 004CE8 800040E8 3409FFFF */ li $t1, 65535
.L800040EC:
/* 004CEC 800040EC 91030000 */ lbu $v1, ($t0)
/* 004CF0 800040F0 24040005 */ li $a0, 5
.L800040F4:
/* 004CF4 800040F4 30780001 */ andi $t8, $v1, 1
/* 004CF8 800040F8 13000008 */ beqz $t8, .L8000411C
/* 004CFC 800040FC 00C2C821 */ addu $t9, $a2, $v0
/* 004D00 80004100 03270019 */ multu $t9, $a3
/* 004D04 80004104 00005812 */ mflo $t3
/* 004D08 80004108 01656021 */ addu $t4, $t3, $a1
/* 004D0C 8000410C 01846821 */ addu $t5, $t4, $a0
/* 004D10 80004110 000D7040 */ sll $t6, $t5, 1
/* 004D14 80004114 020E7821 */ addu $t7, $s0, $t6
/* 004D18 80004118 A5E90000 */ sh $t1, ($t7)
.L8000411C:
/* 004D1C 8000411C 2484FFFF */ addiu $a0, $a0, -1
/* 004D20 80004120 0003C043 */ sra $t8, $v1, 1
/* 004D24 80004124 0481FFF3 */ bgez $a0, .L800040F4
/* 004D28 80004128 03001825 */ move $v1, $t8
/* 004D2C 8000412C 24420001 */ addiu $v0, $v0, 1
/* 004D30 80004130 144AFFEE */ bne $v0, $t2, .L800040EC
/* 004D34 80004134 25080001 */ addiu $t0, $t0, 1
/* 004D38 80004138 8FB00004 */ lw $s0, 4($sp)
/* 004D3C 8000413C 03E00008 */ jr $ra
/* 004D40 80004140 27BD0008 */ addiu $sp, $sp, 8
-71
View File
@@ -1,71 +0,0 @@
glabel dma_copy
/* 001D58 80001158 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 001D5C 8000115C AFB2002C */ sw $s2, 0x2c($sp)
/* 001D60 80001160 00A09025 */ move $s2, $a1
/* 001D64 80001164 AFBF003C */ sw $ra, 0x3c($sp)
/* 001D68 80001168 AFB10028 */ sw $s1, 0x28($sp)
/* 001D6C 8000116C AFB00024 */ sw $s0, 0x24($sp)
/* 001D70 80001170 00C08025 */ move $s0, $a2
/* 001D74 80001174 00808825 */ move $s1, $a0
/* 001D78 80001178 AFB50038 */ sw $s5, 0x38($sp)
/* 001D7C 8000117C AFB40034 */ sw $s4, 0x34($sp)
/* 001D80 80001180 AFB30030 */ sw $s3, 0x30($sp)
/* 001D84 80001184 0C0336E0 */ jal osInvalDCache
/* 001D88 80001188 00C02825 */ move $a1, $a2
/* 001D8C 8000118C 2E010101 */ sltiu $at, $s0, 0x101
/* 001D90 80001190 14200018 */ bnez $at, .L800011F4
/* 001D94 80001194 3C158015 */ lui $s5, %hi(D_8014F098) # $s5, 0x8015
/* 001D98 80001198 3C148015 */ lui $s4, %hi(D_8014F0A0) # $s4, 0x8015
/* 001D9C 8000119C 3C138015 */ lui $s3, %hi(D_8014EF58) # $s3, 0x8015
/* 001DA0 800011A0 2673EF58 */ addiu $s3, %lo(D_8014EF58) # addiu $s3, $s3, -0x10a8
/* 001DA4 800011A4 2694F0A0 */ addiu $s4, %lo(D_8014F0A0) # addiu $s4, $s4, -0xf60
/* 001DA8 800011A8 26B5F098 */ addiu $s5, %lo(D_8014F098) # addiu $s5, $s5, -0xf68
.L800011AC:
/* 001DAC 800011AC 240E0100 */ li $t6, 256
/* 001DB0 800011B0 AFAE0014 */ sw $t6, 0x14($sp)
/* 001DB4 800011B4 02802025 */ move $a0, $s4
/* 001DB8 800011B8 00002825 */ move $a1, $zero
/* 001DBC 800011BC 00003025 */ move $a2, $zero
/* 001DC0 800011C0 02403825 */ move $a3, $s2
/* 001DC4 800011C4 AFB10010 */ sw $s1, 0x10($sp)
/* 001DC8 800011C8 0C03370C */ jal osPiStartDma
/* 001DCC 800011CC AFB30018 */ sw $s3, 0x18($sp)
/* 001DD0 800011D0 02602025 */ move $a0, $s3
/* 001DD4 800011D4 02A02825 */ move $a1, $s5
/* 001DD8 800011D8 0C0335D4 */ jal osRecvMesg
/* 001DDC 800011DC 24060001 */ li $a2, 1
/* 001DE0 800011E0 2610FF00 */ addiu $s0, $s0, -0x100
/* 001DE4 800011E4 2E010101 */ sltiu $at, $s0, 0x101
/* 001DE8 800011E8 26520100 */ addiu $s2, $s2, 0x100
/* 001DEC 800011EC 1020FFEF */ beqz $at, .L800011AC
/* 001DF0 800011F0 26310100 */ addiu $s1, $s1, 0x100
.L800011F4:
/* 001DF4 800011F4 3C138015 */ lui $s3, %hi(D_8014EF58) # $s3, 0x8015
/* 001DF8 800011F8 3C148015 */ lui $s4, %hi(D_8014F0A0) # $s4, 0x8015
/* 001DFC 800011FC 3C158015 */ lui $s5, %hi(D_8014F098) # $s5, 0x8015
/* 001E00 80001200 26B5F098 */ addiu $s5, %lo(D_8014F098) # addiu $s5, $s5, -0xf68
/* 001E04 80001204 2694F0A0 */ addiu $s4, %lo(D_8014F0A0) # addiu $s4, $s4, -0xf60
/* 001E08 80001208 1200000D */ beqz $s0, .L80001240
/* 001E0C 8000120C 2673EF58 */ addiu $s3, %lo(D_8014EF58) # addiu $s3, $s3, -0x10a8
/* 001E10 80001210 02802025 */ move $a0, $s4
/* 001E14 80001214 00002825 */ move $a1, $zero
/* 001E18 80001218 00003025 */ move $a2, $zero
/* 001E1C 8000121C 02403825 */ move $a3, $s2
/* 001E20 80001220 AFB10010 */ sw $s1, 0x10($sp)
/* 001E24 80001224 AFB00014 */ sw $s0, 0x14($sp)
/* 001E28 80001228 0C03370C */ jal osPiStartDma
/* 001E2C 8000122C AFB30018 */ sw $s3, 0x18($sp)
/* 001E30 80001230 02602025 */ move $a0, $s3
/* 001E34 80001234 02A02825 */ move $a1, $s5
/* 001E38 80001238 0C0335D4 */ jal osRecvMesg
/* 001E3C 8000123C 24060001 */ li $a2, 1
.L80001240:
/* 001E40 80001240 8FBF003C */ lw $ra, 0x3c($sp)
/* 001E44 80001244 8FB00024 */ lw $s0, 0x24($sp)
/* 001E48 80001248 8FB10028 */ lw $s1, 0x28($sp)
/* 001E4C 8000124C 8FB2002C */ lw $s2, 0x2c($sp)
/* 001E50 80001250 8FB30030 */ lw $s3, 0x30($sp)
/* 001E54 80001254 8FB40034 */ lw $s4, 0x34($sp)
/* 001E58 80001258 8FB50038 */ lw $s5, 0x38($sp)
/* 001E5C 8000125C 03E00008 */ jr $ra
/* 001E60 80001260 27BD0040 */ addiu $sp, $sp, 0x40
-105
View File
@@ -1,105 +0,0 @@
glabel init_game
/* 001E64 80001264 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 001E68 80001268 AFBF0024 */ sw $ra, 0x24($sp)
/* 001E6C 8000126C 0C000433 */ jal func_800010CC
/* 001E70 80001270 00000000 */ nop
/* 001E74 80001274 3C0E8028 */ lui $t6, (0x8028DF00 >> 16) # lui $t6, 0x8028
/* 001E78 80001278 35CEDF00 */ ori $t6, (0x8028DF00 & 0xFFFF) # ori $t6, $t6, 0xdf00
/* 001E7C 8000127C 3C018016 */ lui $at, %hi(gHeapEndPtr) # $at, 0x8016
/* 001E80 80001280 AC2EF72C */ sw $t6, %lo(gHeapEndPtr)($at)
/* 001E84 80001284 00002025 */ move $a0, $zero
/* 001E88 80001288 0C0A9EE5 */ jal set_segment_base_addr
/* 001E8C 8000128C 3C058000 */ lui $a1, 0x8000
/* 001E90 80001290 3C048019 */ lui $a0, %hi(D_801978D0) # $a0, 0x8019
/* 001E94 80001294 3C058024 */ lui $a1, (0x80242F00 >> 16) # lui $a1, 0x8024
/* 001E98 80001298 34A52F00 */ ori $a1, (0x80242F00 & 0xFFFF) # ori $a1, $a1, 0x2f00
/* 001E9C 8000129C 0C0A9F3C */ jal func_802A7CF0
/* 001EA0 800012A0 248478D0 */ addiu $a0, %lo(D_801978D0) # addiu $a0, $a0, 0x78d0
/* 001EA4 800012A4 0C0002FB */ jal func_80000BEC
/* 001EA8 800012A8 00000000 */ nop
/* 001EAC 800012AC 3C04802B */ lui $a0, (0x802BA370 >> 16) # lui $a0, 0x802b
/* 001EB0 800012B0 3484A370 */ ori $a0, (0x802BA370 & 0xFFFF) # ori $a0, $a0, 0xa370
/* 001EB4 800012B4 0C0336E0 */ jal osInvalDCache
/* 001EB8 800012B8 24055810 */ li $a1, 22544
/* 001EBC 800012BC 3C0F802B */ lui $t7, (0x802BA370 >> 16) # lui $t7, 0x802b
/* 001EC0 800012C0 3C198015 */ lui $t9, %hi(D_8014EF58) # $t9, 0x8015
/* 001EC4 800012C4 2739EF58 */ addiu $t9, %lo(D_8014EF58) # addiu $t9, $t9, -0x10a8
/* 001EC8 800012C8 35EFA370 */ ori $t7, (0x802BA370 & 0xFFFF) # ori $t7, $t7, 0xa370
/* 001ECC 800012CC 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 001ED0 800012D0 3C070072 */ lui $a3, %hi(_data_802BA370SegmentRomStart) # $a3, 0x72
/* 001ED4 800012D4 24185810 */ li $t8, 22544
/* 001ED8 800012D8 AFB80014 */ sw $t8, 0x14($sp)
/* 001EDC 800012DC 24E74220 */ addiu $a3, %lo(_data_802BA370SegmentRomStart) # addiu $a3, $a3, 0x4220
/* 001EE0 800012E0 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 001EE4 800012E4 AFAF0010 */ sw $t7, 0x10($sp)
/* 001EE8 800012E8 AFB90018 */ sw $t9, 0x18($sp)
/* 001EEC 800012EC 00002825 */ move $a1, $zero
/* 001EF0 800012F0 0C03370C */ jal osPiStartDma
/* 001EF4 800012F4 00003025 */ move $a2, $zero
/* 001EF8 800012F8 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 001EFC 800012FC 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001F00 80001300 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001F04 80001304 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 001F08 80001308 0C0335D4 */ jal osRecvMesg
/* 001F0C 8000130C 24060001 */ li $a2, 1
/* 001F10 80001310 3C040013 */ lui $a0, %hi(_data_segment2SegmentRomStart) # $a0, 0x13
/* 001F14 80001314 3C050013 */ lui $a1, %hi(_data_segment2SegmentRomEnd) # $a1, 0x13
/* 001F18 80001318 24A52B50 */ addiu $a1, %lo(_data_segment2SegmentRomEnd) # addiu $a1, $a1, 0x2b50
/* 001F1C 8000131C 0C0A9F5C */ jal func_802A7D70
/* 001F20 80001320 2484AAE0 */ addiu $a0, %lo(_data_segment2SegmentRomStart) # addiu $a0, $a0, -0x5520
/* 001F24 80001324 24040002 */ li $a0, 2
/* 001F28 80001328 0C0A9EE5 */ jal set_segment_base_addr
/* 001F2C 8000132C 00402825 */ move $a1, $v0
/* 001F30 80001330 3C070013 */ lui $a3, %hi(_common_texturesSegmentRomStart) # $a3, 0x13
/* 001F34 80001334 3C090014 */ lui $t1, %hi(_common_texturesSegmentRomEnd) # $t1, 0x14
/* 001F38 80001338 25295470 */ addiu $t1, %lo(_common_texturesSegmentRomEnd) # addiu $t1, $t1, 0x5470
/* 001F3C 8000133C 24E72B50 */ addiu $a3, %lo(_common_texturesSegmentRomStart) # addiu $a3, $a3, 0x2b50
/* 001F40 80001340 01271823 */ subu $v1, $t1, $a3
/* 001F44 80001344 2463000F */ addiu $v1, $v1, 0xf
/* 001F48 80001348 2401FFF0 */ li $at, -16
/* 001F4C 8000134C 3C0B8028 */ lui $t3, (0x8028DF00 >> 16) # lui $t3, 0x8028
/* 001F50 80001350 356BDF00 */ ori $t3, (0x8028DF00 & 0xFFFF) # ori $t3, $t3, 0xdf00
/* 001F54 80001354 00615024 */ and $t2, $v1, $at
/* 001F58 80001358 3C0C8015 */ lui $t4, %hi(D_8014EF58) # $t4, 0x8015
/* 001F5C 8000135C 258CEF58 */ addiu $t4, %lo(D_8014EF58) # addiu $t4, $t4, -0x10a8
/* 001F60 80001360 016A4023 */ subu $t0, $t3, $t2
/* 001F64 80001364 3C048015 */ lui $a0, %hi(D_8014F0A0) # $a0, 0x8015
/* 001F68 80001368 2484F0A0 */ addiu $a0, %lo(D_8014F0A0) # addiu $a0, $a0, -0xf60
/* 001F6C 8000136C AFA80010 */ sw $t0, 0x10($sp)
/* 001F70 80001370 AFA8002C */ sw $t0, 0x2c($sp)
/* 001F74 80001374 AFAC0018 */ sw $t4, 0x18($sp)
/* 001F78 80001378 01401825 */ move $v1, $t2
/* 001F7C 8000137C AFAA0014 */ sw $t2, 0x14($sp)
/* 001F80 80001380 00002825 */ move $a1, $zero
/* 001F84 80001384 0C03370C */ jal osPiStartDma
/* 001F88 80001388 00003025 */ move $a2, $zero
/* 001F8C 8000138C 3C048015 */ lui $a0, %hi(D_8014EF58) # $a0, 0x8015
/* 001F90 80001390 3C058015 */ lui $a1, %hi(D_8014F098) # $a1, 0x8015
/* 001F94 80001394 24A5F098 */ addiu $a1, %lo(D_8014F098) # addiu $a1, $a1, -0xf68
/* 001F98 80001398 2484EF58 */ addiu $a0, %lo(D_8014EF58) # addiu $a0, $a0, -0x10a8
/* 001F9C 8000139C 0C0335D4 */ jal osRecvMesg
/* 001FA0 800013A0 24060001 */ li $a2, 1
/* 001FA4 800013A4 8FA4002C */ lw $a0, 0x2c($sp)
/* 001FA8 800013A8 3C058016 */ lui $a1, %hi(gPrevLoadedAddress) # $a1, 0x8016
/* 001FAC 800013AC 8CA5F728 */ lw $a1, %lo(gPrevLoadedAddress)($a1)
/* 001FB0 800013B0 8C830004 */ lw $v1, 4($a0)
/* 001FB4 800013B4 2401FFF0 */ li $at, -16
/* 001FB8 800013B8 AFA50038 */ sw $a1, 0x38($sp)
/* 001FBC 800013BC 2463000F */ addiu $v1, $v1, 0xf
/* 001FC0 800013C0 00616824 */ and $t5, $v1, $at
/* 001FC4 800013C4 0C010034 */ jal mio0decode
/* 001FC8 800013C8 AFAD0040 */ sw $t5, 0x40($sp)
/* 001FCC 800013CC 8FA50038 */ lw $a1, 0x38($sp)
/* 001FD0 800013D0 0C0A9EE5 */ jal set_segment_base_addr
/* 001FD4 800013D4 2404000D */ li $a0, 13
/* 001FD8 800013D8 3C048016 */ lui $a0, %hi(gPrevLoadedAddress) # $a0, 0x8016
/* 001FDC 800013DC 2484F728 */ addiu $a0, %lo(gPrevLoadedAddress) # addiu $a0, $a0, -0x8d8
/* 001FE0 800013E0 8FA30040 */ lw $v1, 0x40($sp)
/* 001FE4 800013E4 8C8E0000 */ lw $t6, ($a0)
/* 001FE8 800013E8 8FBF0024 */ lw $ra, 0x24($sp)
/* 001FEC 800013EC 3C018016 */ lui $at, %hi(D_8015F734) # $at, 0x8016
/* 001FF0 800013F0 01C37821 */ addu $t7, $t6, $v1
/* 001FF4 800013F4 AC8F0000 */ sw $t7, ($a0)
/* 001FF8 800013F8 AC2FF734 */ sw $t7, %lo(D_8015F734)($at)
/* 001FFC 800013FC 03E00008 */ jr $ra
/* 002000 80001400 27BD0050 */ addiu $sp, $sp, 0x50
-114
View File
@@ -1,114 +0,0 @@
glabel read_controllers
/* 001628 80000A28 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 00162C 80000A2C AFBF0014 */ sw $ra, 0x14($sp)
/* 001630 80000A30 3C048015 */ lui $a0, %hi(gSIEventMesgQueue) # $a0, 0x8015
/* 001634 80000A34 0C03353C */ jal osContStartReadData
/* 001638 80000A38 2484F0B8 */ addiu $a0, %lo(gSIEventMesgQueue) # addiu $a0, $a0, -0xf48
/* 00163C 80000A3C 3C048015 */ lui $a0, %hi(gSIEventMesgQueue) # $a0, 0x8015
/* 001640 80000A40 2484F0B8 */ addiu $a0, %lo(gSIEventMesgQueue) # addiu $a0, $a0, -0xf48
/* 001644 80000A44 27A5001C */ addiu $a1, $sp, 0x1c
/* 001648 80000A48 0C0335D4 */ jal osRecvMesg
/* 00164C 80000A4C 24060001 */ li $a2, 1
/* 001650 80000A50 3C048015 */ lui $a0, %hi(gControllerPads) # $a0, 0x8015
/* 001654 80000A54 0C03356D */ jal osContGetReadData
/* 001658 80000A58 2484F0F0 */ addiu $a0, %lo(gControllerPads) # addiu $a0, $a0, -0xf10
/* 00165C 80000A5C 0C00024D */ jal func_80000934
/* 001660 80000A60 00002025 */ move $a0, $zero
/* 001664 80000A64 0C00024D */ jal func_80000934
/* 001668 80000A68 24040001 */ li $a0, 1
/* 00166C 80000A6C 0C00024D */ jal func_80000934
/* 001670 80000A70 24040002 */ li $a0, 2
/* 001674 80000A74 0C00024D */ jal func_80000934
/* 001678 80000A78 24040003 */ li $a0, 3
/* 00167C 80000A7C 3C03800E */ lui $v1, %hi(D_800DC4BC) # $v1, 0x800e
/* 001680 80000A80 3C04800E */ lui $a0, %hi(D_800DC4C0) # $a0, 0x800e
/* 001684 80000A84 2484C4C0 */ addiu $a0, %lo(D_800DC4C0) # addiu $a0, $a0, -0x3b40
/* 001688 80000A88 2463C4BC */ addiu $v1, %lo(D_800DC4BC) # addiu $v1, $v1, -0x3b44
/* 00168C 80000A8C 3C05800E */ lui $a1, %hi(D_800DC4C4) # $a1, 0x800e
/* 001690 80000A90 8C6E0000 */ lw $t6, ($v1)
/* 001694 80000A94 8C980000 */ lw $t8, ($a0)
/* 001698 80000A98 24A5C4C4 */ addiu $a1, %lo(D_800DC4C4) # addiu $a1, $a1, -0x3b3c
/* 00169C 80000A9C 3C06800E */ lui $a2, %hi(D_800DC4C8) # $a2, 0x800e
/* 0016A0 80000AA0 8CA90000 */ lw $t1, ($a1)
/* 0016A4 80000AA4 24C6C4C8 */ addiu $a2, %lo(D_800DC4C8) # addiu $a2, $a2, -0x3b38
/* 0016A8 80000AA8 8CCC0000 */ lw $t4, ($a2)
/* 0016AC 80000AAC 95CF0004 */ lhu $t7, 4($t6)
/* 0016B0 80000AB0 97190004 */ lhu $t9, 4($t8)
/* 0016B4 80000AB4 952A0004 */ lhu $t2, 4($t1)
/* 0016B8 80000AB8 3C02800E */ lui $v0, %hi(D_800DC4CC) # $v0, 0x800e
/* 0016BC 80000ABC 958D0004 */ lhu $t5, 4($t4)
/* 0016C0 80000AC0 2442C4CC */ addiu $v0, %lo(D_800DC4CC) # addiu $v0, $v0, -0x3b34
/* 0016C4 80000AC4 8C580000 */ lw $t8, ($v0)
/* 0016C8 80000AC8 01F94025 */ or $t0, $t7, $t9
/* 0016CC 80000ACC 010A5825 */ or $t3, $t0, $t2
/* 0016D0 80000AD0 016D7025 */ or $t6, $t3, $t5
/* 0016D4 80000AD4 A70E0004 */ sh $t6, 4($t8)
/* 0016D8 80000AD8 8C890000 */ lw $t1, ($a0)
/* 0016DC 80000ADC 8C6F0000 */ lw $t7, ($v1)
/* 0016E0 80000AE0 8CAC0000 */ lw $t4, ($a1)
/* 0016E4 80000AE4 8CCE0000 */ lw $t6, ($a2)
/* 0016E8 80000AE8 95280006 */ lhu $t0, 6($t1)
/* 0016EC 80000AEC 95F90006 */ lhu $t9, 6($t7)
/* 0016F0 80000AF0 958B0006 */ lhu $t3, 6($t4)
/* 0016F4 80000AF4 95D80006 */ lhu $t8, 6($t6)
/* 0016F8 80000AF8 8C490000 */ lw $t1, ($v0)
/* 0016FC 80000AFC 03285025 */ or $t2, $t9, $t0
/* 001700 80000B00 014B6825 */ or $t5, $t2, $t3
/* 001704 80000B04 01B87825 */ or $t7, $t5, $t8
/* 001708 80000B08 A52F0006 */ sh $t7, 6($t1)
/* 00170C 80000B0C 8C8C0000 */ lw $t4, ($a0)
/* 001710 80000B10 8C790000 */ lw $t9, ($v1)
/* 001714 80000B14 8CAE0000 */ lw $t6, ($a1)
/* 001718 80000B18 8CCF0000 */ lw $t7, ($a2)
/* 00171C 80000B1C 958A0008 */ lhu $t2, 8($t4)
/* 001720 80000B20 97280008 */ lhu $t0, 8($t9)
/* 001724 80000B24 95CD0008 */ lhu $t5, 8($t6)
/* 001728 80000B28 95E90008 */ lhu $t1, 8($t7)
/* 00172C 80000B2C 8C4C0000 */ lw $t4, ($v0)
/* 001730 80000B30 010A5825 */ or $t3, $t0, $t2
/* 001734 80000B34 016DC025 */ or $t8, $t3, $t5
/* 001738 80000B38 0309C825 */ or $t9, $t8, $t1
/* 00173C 80000B3C A5990008 */ sh $t9, 8($t4)
/* 001740 80000B40 8C8E0000 */ lw $t6, ($a0)
/* 001744 80000B44 8C680000 */ lw $t0, ($v1)
/* 001748 80000B48 8CAF0000 */ lw $t7, ($a1)
/* 00174C 80000B4C 8CD90000 */ lw $t9, ($a2)
/* 001750 80000B50 95CB000A */ lhu $t3, 0xa($t6)
/* 001754 80000B54 950A000A */ lhu $t2, 0xa($t0)
/* 001758 80000B58 95F8000A */ lhu $t8, 0xa($t7)
/* 00175C 80000B5C 972C000A */ lhu $t4, 0xa($t9)
/* 001760 80000B60 8C4E0000 */ lw $t6, ($v0)
/* 001764 80000B64 014B6825 */ or $t5, $t2, $t3
/* 001768 80000B68 01B84825 */ or $t1, $t5, $t8
/* 00176C 80000B6C 012C4025 */ or $t0, $t1, $t4
/* 001770 80000B70 A5C8000A */ sh $t0, 0xa($t6)
/* 001774 80000B74 8C8F0000 */ lw $t7, ($a0)
/* 001778 80000B78 8C6A0000 */ lw $t2, ($v1)
/* 00177C 80000B7C 8CB90000 */ lw $t9, ($a1)
/* 001780 80000B80 8CC80000 */ lw $t0, ($a2)
/* 001784 80000B84 95ED000C */ lhu $t5, 0xc($t7)
/* 001788 80000B88 954B000C */ lhu $t3, 0xc($t2)
/* 00178C 80000B8C 9729000C */ lhu $t1, 0xc($t9)
/* 001790 80000B90 950E000C */ lhu $t6, 0xc($t0)
/* 001794 80000B94 8C4F0000 */ lw $t7, ($v0)
/* 001798 80000B98 016DC025 */ or $t8, $t3, $t5
/* 00179C 80000B9C 03096025 */ or $t4, $t8, $t1
/* 0017A0 80000BA0 018E5025 */ or $t2, $t4, $t6
/* 0017A4 80000BA4 A5EA000C */ sh $t2, 0xc($t7)
/* 0017A8 80000BA8 8C990000 */ lw $t9, ($a0)
/* 0017AC 80000BAC 8C6B0000 */ lw $t3, ($v1)
/* 0017B0 80000BB0 8CA80000 */ lw $t0, ($a1)
/* 0017B4 80000BB4 8CCA0000 */ lw $t2, ($a2)
/* 0017B8 80000BB8 9738000E */ lhu $t8, 0xe($t9)
/* 0017BC 80000BBC 956D000E */ lhu $t5, 0xe($t3)
/* 0017C0 80000BC0 950C000E */ lhu $t4, 0xe($t0)
/* 0017C4 80000BC4 954F000E */ lhu $t7, 0xe($t2)
/* 0017C8 80000BC8 8C590000 */ lw $t9, ($v0)
/* 0017CC 80000BCC 01B84825 */ or $t1, $t5, $t8
/* 0017D0 80000BD0 012C7025 */ or $t6, $t1, $t4
/* 0017D4 80000BD4 01CF5825 */ or $t3, $t6, $t7
/* 0017D8 80000BD8 A72B000E */ sh $t3, 0xe($t9)
/* 0017DC 80000BDC 8FBF0014 */ lw $ra, 0x14($sp)
/* 0017E0 80000BE0 27BD0020 */ addiu $sp, $sp, 0x20
/* 0017E4 80000BE4 03E00008 */ jr $ra
/* 0017E8 80000BE8 00000000 */ nop
+10 -10
View File
@@ -2,17 +2,17 @@ glabel thread3_video
/* 002FE4 800023E4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 002FE8 800023E8 3C038015 */ lui $v1, %hi(gPhysicalFramebuffers) # $v1, 0x8015
/* 002FEC 800023EC 246302A8 */ addiu $v1, %lo(gPhysicalFramebuffers) # addiu $v1, $v1, 0x2a8
/* 002FF0 800023F0 3C0E8032 */ lui $t6, %hi(D_8031F780) # $t6, 0x8032
/* 002FF4 800023F4 3C0F8034 */ lui $t7, %hi(D_80344F80) # $t7, 0x8034
/* 002FF8 800023F8 3C188037 */ lui $t8, %hi(D_8036A780) # $t8, 0x8037
/* 002FFC 800023FC 25CEF780 */ addiu $t6, %lo(D_8031F780) # addiu $t6, $t6, -0x880
/* 003000 80002400 25EF4F80 */ addiu $t7, %lo(D_80344F80) # addiu $t7, $t7, 0x4f80
/* 003004 80002404 2718A780 */ addiu $t8, %lo(D_8036A780) # addiu $t8, $t8, -0x5880
/* 002FF0 800023F0 3C0E8032 */ lui $t6, %hi(gFramebuffer0) # $t6, 0x8032
/* 002FF4 800023F4 3C0F8034 */ lui $t7, %hi(gFramebuffer1) # $t7, 0x8034
/* 002FF8 800023F8 3C188037 */ lui $t8, %hi(gFramebuffer2) # $t8, 0x8037
/* 002FFC 800023FC 25CEF780 */ addiu $t6, %lo(gFramebuffer0) # addiu $t6, $t6, -0x880
/* 003000 80002400 25EF4F80 */ addiu $t7, %lo(gFramebuffer1) # addiu $t7, $t7, 0x4f80
/* 003004 80002404 2718A780 */ addiu $t8, %lo(gFramebuffer2) # addiu $t8, $t8, -0x5880
/* 003008 80002408 AC6E0000 */ sw $t6, ($v1)
/* 00300C 8000240C AC6F0004 */ sw $t7, 4($v1)
/* 003010 80002410 AC780008 */ sw $t8, 8($v1)
/* 003014 80002414 3C038037 */ lui $v1, %hi(D_8036A780) # $v1, 0x8037
/* 003018 80002418 3C028034 */ lui $v0, %hi(D_80344F80) # $v0, 0x8034
/* 003014 80002414 3C038037 */ lui $v1, %hi(gFramebuffer2) # $v1, 0x8037
/* 003018 80002418 3C028034 */ lui $v0, %hi(gFramebuffer1) # $v0, 0x8034
/* 00301C 8000241C AFBF0034 */ sw $ra, 0x34($sp)
/* 003020 80002420 AFB50030 */ sw $s5, 0x30($sp)
/* 003024 80002424 AFB4002C */ sw $s4, 0x2c($sp)
@@ -21,8 +21,8 @@ glabel thread3_video
/* 003030 80002430 AFB10020 */ sw $s1, 0x20($sp)
/* 003034 80002434 AFB0001C */ sw $s0, 0x1c($sp)
/* 003038 80002438 AFA40060 */ sw $a0, 0x60($sp)
/* 00303C 8000243C 24424F80 */ addiu $v0, %lo(D_80344F80) # addiu $v0, $v0, 0x4f80
/* 003040 80002440 2463A780 */ addiu $v1, %lo(D_8036A780) # addiu $v1, $v1, -0x5880
/* 00303C 8000243C 24424F80 */ addiu $v0, %lo(gFramebuffer1) # addiu $v0, $v0, 0x4f80
/* 003040 80002440 2463A780 */ addiu $v1, %lo(gFramebuffer2) # addiu $v1, $v1, -0x5880
.L80002444:
/* 003044 80002444 240A0000 */ li $t2, 0
/* 003048 80002448 240B0000 */ li $t3, 0
@@ -0,0 +1,936 @@
{0x00, 4, 3, 254},
{0x00, 29, 2, 254},
{0x00, 1, 1, 254},
{0x00, 22, 0, 254},
{0x00, 67, 1, 254},
{0x80, 16, 1, 254},
{0x80, 0, 1, 255},
{0x80, 0, 1, 30},
{0x90, 5, 250, 78},
{0x90, 0, 250, 23},
{0x90, 0, 2, 194},
{0x90, 3, 7, 180},
{0x90, 0, 6, 180},
{0x90, 5, 4, 180},
{0x90, 0, 0, 196},
{0x90, 0, 0, 3},
{0x90, 0, 252, 74},
{0x90, 4, 249, 77},
{0x90, 0, 250, 76},
{0x90, 0, 2, 242},
{0x90, 0, 20, 183},
{0x90, 2, 21, 182},
{0x90, 0, 16, 208},
{0x90, 0, 3, 29},
{0x90, 2, 2, 77},
{0x90, 0, 2, 67},
{0x80, 11, 1, 0},
{0x80, 0, 2, 16},
{0x80, 0, 3, 77},
{0x80, 0, 3, 79},
{0x90, 4, 3, 79},
{0x90, 0, 251, 69},
{0x90, 0, 250, 248},
{0x90, 0, 251, 190},
{0x90, 17, 0, 177},
{0x90, 0, 0, 178},
{0x90, 0, 255, 252},
{0x90, 0, 251, 61},
{0x90, 2, 246, 76},
{0x90, 0, 247, 43},
{0x90, 0, 254, 236},
{0x90, 0, 13, 182},
{0x90, 2, 11, 180},
{0x90, 0, 10, 187},
{0x90, 0, 0, 1},
{0x90, 0, 0, 42},
{0x90, 20, 0, 79},
{0x80, 10, 0, 79},
{0x80, 0, 253, 36},
{0x80, 0, 252, 235},
{0x80, 0, 252, 180},
{0x80, 4, 252, 178},
{0x90, 9, 252, 178},
{0x90, 0, 252, 201},
{0x90, 0, 252, 232},
{0x90, 0, 252, 224},
{0x90, 0, 252, 203},
{0x90, 0, 252, 201},
{0x90, 0, 252, 179},
{0x90, 1, 252, 180},
{0x90, 0, 252, 186},
{0x90, 0, 252, 221},
{0x90, 1, 254, 228},
{0x90, 0, 254, 235},
{0x90, 2, 1, 255},
{0x90, 0, 1, 254},
{0x90, 0, 0, 248},
{0x90, 2, 254, 248},
{0x90, 0, 254, 243},
{0x90, 0, 254, 214},
{0x90, 0, 254, 206},
{0x90, 0, 254, 216},
{0x80, 1, 255, 255},
{0x80, 0, 255, 236},
{0x80, 0, 255, 218},
{0x80, 0, 255, 220},
{0x80, 19, 255, 255},
{0x80, 2, 255, 254},
{0x80, 5, 255, 252},
{0x80, 0, 255, 248},
{0x80, 0, 254, 227},
{0x80, 0, 247, 182},
{0x80, 0, 245, 179},
{0x90, 0, 245, 179},
{0x90, 0, 243, 180},
{0x90, 2, 241, 180},
{0x90, 0, 244, 189},
{0x90, 0, 16, 2},
{0x90, 0, 63, 64},
{0x90, 9, 67, 66},
{0x90, 0, 67, 65},
{0x90, 0, 16, 249},
{0x90, 0, 228, 184},
{0x90, 1, 219, 184},
{0x90, 0, 235, 214},
{0x90, 0, 8, 20},
{0x90, 0, 34, 73},
{0x90, 11, 43, 71},
{0x90, 0, 28, 42},
{0x90, 0, 253, 239},
{0x90, 0, 238, 180},
{0x90, 6, 239, 180},
{0x80, 2, 239, 180},
{0x80, 0, 237, 185},
{0x80, 0, 237, 221},
{0x80, 0, 253, 252},
{0x80, 10, 255, 254},
{0x80, 0, 0, 254},
{0x80, 0, 8, 9},
{0x80, 0, 23, 65},
{0x80, 0, 26, 73},
{0x90, 5, 26, 73},
{0x90, 0, 14, 66},
{0x90, 0, 246, 235},
{0x90, 1, 240, 179},
{0x90, 8, 240, 180},
{0x90, 0, 239, 186},
{0x90, 0, 253, 255},
{0x90, 0, 254, 24},
{0x90, 0, 254, 78},
{0x90, 3, 254, 79},
{0x90, 0, 247, 20},
{0x90, 0, 244, 207},
{0x90, 2, 245, 180},
{0x90, 0, 247, 180},
{0x90, 0, 1, 183},
{0x90, 0, 8, 0},
{0x90, 0, 21, 37},
{0x90, 23, 31, 73},
{0x80, 19, 31, 73},
{0x80, 0, 27, 58},
{0x80, 0, 0, 0},
{0x80, 0, 0, 253},
{0x80, 0, 254, 218},
{0x80, 0, 243, 187},
{0x80, 5, 239, 182},
{0x90, 1, 239, 182},
{0x90, 0, 237, 182},
{0x90, 1, 235, 182},
{0x90, 0, 235, 191},
{0x90, 0, 3, 3},
{0x90, 0, 51, 70},
{0x90, 10, 59, 67},
{0x90, 0, 23, 18},
{0x90, 0, 243, 200},
{0x90, 0, 223, 183},
{0x90, 0, 213, 185},
{0x90, 2, 212, 185},
{0x90, 0, 212, 192},
{0x90, 0, 250, 2},
{0x90, 0, 35, 44},
{0x90, 0, 64, 66},
{0x90, 3, 65, 66},
{0x90, 0, 26, 19},
{0x90, 0, 248, 178},
{0x90, 0, 245, 178},
{0x90, 0, 0, 179},
{0x90, 0, 11, 206},
{0x90, 0, 18, 63},
{0x90, 2, 19, 74},
{0x80, 18, 19, 74},
{0x80, 0, 15, 41},
{0x80, 60, 0, 255},
{0x80, 0, 4, 23},
{0x80, 0, 8, 77},
{0x80, 0, 9, 76},
{0x90, 20, 9, 76},
{0x90, 0, 9, 68},
{0x90, 0, 4, 245},
{0x90, 0, 10, 180},
{0x90, 0, 12, 180},
{0x90, 0, 4, 180},
{0x90, 4, 2, 180},
{0x90, 0, 13, 220},
{0x90, 0, 31, 39},
{0x90, 23, 42, 69},
{0x90, 0, 9, 246},
{0x90, 0, 0, 180},
{0x90, 0, 1, 178},
{0x90, 0, 254, 178},
{0x90, 1, 248, 179},
{0x90, 0, 247, 179},
{0x90, 1, 244, 179},
{0x90, 0, 244, 188},
{0x90, 0, 1, 6},
{0x90, 0, 20, 76},
{0x90, 5, 19, 74},
{0x90, 0, 13, 17},
{0x90, 1, 2, 255},
{0x90, 0, 2, 6},
{0x90, 0, 6, 34},
{0x90, 0, 7, 47},
{0x90, 0, 8, 56},
{0x90, 5, 8, 58},
{0x90, 0, 9, 58},
{0x90, 0, 13, 75},
{0x90, 0, 13, 76},
{0x80, 2, 13, 76},
{0x80, 0, 3, 53},
{0x80, 0, 255, 0},
{0x80, 1, 0, 254},
{0x80, 0, 255, 253},
{0x80, 0, 246, 230},
{0x80, 0, 241, 210},
{0x80, 2, 233, 180},
{0x80, 0, 233, 181},
{0x90, 5, 233, 181},
{0x90, 0, 232, 181},
{0x90, 12, 231, 182},
{0x90, 0, 238, 196},
{0x90, 0, 16, 0},
{0x90, 0, 60, 66},
{0x90, 8, 64, 66},
{0x90, 0, 24, 255},
{0x90, 0, 3, 181},
{0x90, 0, 240, 180},
{0x90, 0, 220, 183},
{0x90, 2, 214, 184},
{0x90, 0, 216, 184},
{0x90, 0, 252, 1},
{0x90, 0, 33, 48},
{0x90, 0, 61, 66},
{0x90, 1, 63, 66},
{0x90, 0, 61, 66},
{0x90, 0, 36, 35},
{0x90, 0, 255, 190},
{0x90, 1, 1, 178},
{0x90, 0, 249, 179},
{0x90, 0, 243, 180},
{0x90, 0, 242, 231},
{0x90, 0, 0, 0},
{0x90, 0, 1, 0},
{0x80, 0, 1, 1},
{0x80, 1, 2, 3},
{0x80, 0, 4, 6},
{0x80, 0, 10, 22},
{0x80, 0, 14, 67},
{0x80, 3, 17, 75},
{0x80, 0, 16, 72},
{0x80, 0, 8, 10},
{0x80, 5, 1, 255},
{0x80, 0, 1, 9},
{0x80, 0, 1, 28},
{0x80, 3, 1, 30},
{0x80, 0, 1, 29},
{0x80, 0, 1, 27},
{0xa0, 0, 1, 27},
{0xa0, 0, 3, 27},
{0xa0, 0, 5, 26},
{0xa0, 0, 6, 14},
{0x80, 0, 0, 255},
{0x80, 63, 255, 255},
{0x80, 0, 8, 34},
{0x80, 0, 11, 76},
{0x90, 7, 11, 76},
{0x90, 0, 11, 75},
{0x90, 0, 254, 249},
{0x90, 0, 248, 180},
{0x90, 1, 250, 179},
{0x90, 0, 248, 179},
{0x90, 4, 247, 179},
{0x90, 0, 253, 244},
{0x90, 0, 18, 47},
{0x90, 5, 24, 73},
{0x90, 0, 11, 39},
{0x90, 0, 250, 229},
{0x90, 9, 246, 179},
{0x90, 0, 251, 242},
{0x90, 0, 4, 11},
{0x90, 0, 19, 64},
{0x90, 8, 24, 73},
{0x90, 0, 23, 73},
{0x90, 0, 15, 25},
{0x80, 6, 2, 255},
{0x80, 0, 1, 255},
{0x80, 0, 0, 252},
{0x80, 0, 247, 233},
{0x80, 0, 244, 209},
{0x80, 0, 244, 207},
{0x80, 0, 244, 209},
{0x80, 0, 246, 240},
{0x80, 0, 255, 253},
{0x80, 4, 255, 254},
{0x80, 0, 255, 234},
{0x80, 0, 255, 213},
{0x80, 0, 255, 212},
{0x80, 0, 255, 218},
{0x80, 0, 255, 254},
{0x80, 3, 255, 253},
{0x80, 0, 255, 247},
{0x80, 0, 255, 241},
{0x80, 0, 255, 224},
{0x80, 0, 255, 217},
{0x80, 0, 255, 225},
{0x80, 0, 255, 253},
{0x80, 18, 255, 254},
{0x80, 0, 0, 3},
{0x80, 0, 14, 62},
{0x90, 5, 18, 75},
{0x90, 0, 254, 10},
{0x90, 0, 240, 189},
{0x90, 0, 239, 179},
{0x90, 4, 239, 180},
{0x90, 5, 236, 181},
{0x90, 0, 234, 182},
{0x90, 0, 228, 183},
{0x90, 0, 223, 192},
{0x90, 0, 242, 21},
{0x90, 0, 3, 79},
{0x90, 1, 9, 76},
{0x90, 0, 8, 73},
{0x90, 0, 245, 225},
{0x90, 2, 247, 180},
{0x90, 1, 246, 180},
{0x90, 4, 245, 180},
{0x90, 0, 244, 180},
{0x90, 0, 241, 180},
{0x90, 0, 238, 189},
{0x90, 0, 1, 1},
{0x90, 0, 33, 59},
{0x90, 0, 45, 70},
{0x90, 1, 46, 70},
{0x90, 0, 44, 67},
{0x90, 0, 13, 9},
{0x80, 4, 0, 254},
{0x80, 0, 0, 1},
{0x80, 1, 0, 3},
{0x80, 0, 5, 6},
{0x80, 0, 7, 10},
{0x80, 0, 13, 31},
{0x80, 1, 19, 74},
{0x90, 7, 19, 74},
{0x90, 0, 9, 28},
{0x90, 0, 251, 190},
{0x90, 1, 249, 180},
{0x90, 0, 247, 180},
{0x90, 4, 245, 180},
{0x90, 0, 244, 180},
{0x90, 7, 243, 180},
{0x90, 0, 0, 255},
{0x90, 0, 25, 70},
{0x90, 6, 24, 73},
{0x90, 0, 24, 72},
{0x90, 0, 1, 248},
{0x90, 0, 252, 178},
{0x90, 0, 252, 177},
{0x90, 2, 252, 178},
{0x90, 0, 255, 183},
{0x90, 0, 7, 11},
{0x90, 0, 24, 73},
{0x90, 21, 25, 74},
{0x80, 2, 25, 74},
{0x80, 0, 22, 72},
{0x80, 0, 6, 10},
{0x80, 4, 1, 0},
{0x80, 0, 0, 252},
{0x80, 0, 246, 194},
{0x80, 1, 240, 180},
{0x80, 0, 236, 181},
{0x80, 0, 233, 181},
{0x90, 19, 231, 182},
{0x90, 0, 231, 189},
{0x90, 0, 231, 200},
{0x90, 0, 233, 221},
{0x90, 0, 247, 250},
{0x90, 6, 1, 0},
{0x90, 0, 1, 255},
{0x90, 2, 1, 254},
{0x80, 8, 1, 254},
{0x80, 0, 1, 255},
{0x80, 0, 1, 0},
{0x80, 0, 4, 20},
{0x80, 0, 7, 69},
{0x80, 4, 8, 75},
{0x80, 0, 4, 58},
{0x80, 7, 1, 254},
{0x80, 0, 240, 201},
{0x80, 2, 234, 181},
{0x90, 3, 234, 181},
{0x90, 1, 230, 182},
{0x90, 0, 242, 227},
{0x90, 0, 29, 29},
{0x90, 0, 66, 66},
{0x90, 11, 68, 66},
{0x90, 0, 61, 57},
{0x90, 0, 14, 231},
{0x90, 0, 235, 182},
{0x90, 0, 214, 184},
{0x90, 1, 211, 185},
{0x90, 0, 243, 253},
{0x90, 0, 11, 15},
{0x90, 0, 45, 68},
{0x90, 7, 52, 68},
{0x90, 0, 26, 25},
{0x90, 0, 0, 246},
{0x90, 0, 249, 224},
{0x90, 0, 235, 204},
{0x90, 0, 223, 187},
{0x90, 10, 220, 186},
{0x90, 0, 223, 191},
{0x80, 0, 240, 242},
{0x80, 6, 1, 0},
{0x80, 2, 1, 1},
{0x80, 1, 1, 2},
{0x80, 0, 6, 13},
{0x80, 1, 18, 74},
{0x90, 8, 18, 74},
{0x90, 0, 253, 33},
{0x90, 0, 228, 196},
{0x90, 5, 228, 183},
{0x90, 0, 227, 183},
{0x90, 2, 226, 183},
{0x90, 0, 225, 183},
{0x90, 0, 224, 183},
{0x90, 0, 223, 183},
{0x90, 0, 223, 184},
{0x90, 0, 2, 9},
{0x90, 0, 31, 73},
{0x90, 3, 35, 71},
{0x90, 0, 10, 10},
{0x90, 0, 243, 200},
{0x90, 2, 241, 179},
{0x90, 0, 243, 181},
{0x90, 0, 11, 251},
{0x90, 0, 29, 59},
{0x90, 22, 32, 72},
{0x80, 19, 32, 72},
{0x80, 0, 32, 70},
{0x80, 0, 8, 3},
{0x80, 2, 1, 254},
{0x80, 0, 0, 254},
{0x80, 0, 252, 247},
{0x80, 0, 235, 219},
{0x80, 0, 218, 184},
{0x80, 2, 219, 183},
{0x90, 5, 219, 183},
{0x90, 0, 219, 189},
{0x90, 0, 252, 255},
{0x90, 0, 12, 12},
{0x90, 0, 42, 47},
{0x90, 0, 59, 67},
{0x90, 6, 60, 67},
{0x90, 0, 36, 33},
{0x90, 0, 244, 183},
{0x90, 0, 235, 183},
{0x90, 0, 231, 183},
{0x90, 0, 224, 183},
{0x90, 0, 223, 183},
{0x90, 0, 228, 204},
{0x90, 0, 1, 5},
{0x90, 0, 44, 69},
{0x90, 2, 54, 67},
{0x90, 0, 39, 53},
{0x90, 0, 242, 223},
{0x90, 0, 235, 180},
{0x90, 0, 241, 180},
{0x90, 0, 253, 183},
{0x90, 0, 11, 21},
{0x90, 0, 25, 73},
{0x90, 1, 25, 72},
{0x80, 13, 25, 72},
{0x80, 0, 20, 30},
{0x80, 0, 1, 255},
{0x80, 10, 1, 254},
{0x80, 45, 1, 255},
{0x80, 0, 2, 9},
{0x80, 0, 4, 36},
{0x80, 0, 6, 55},
{0x80, 2, 9, 76},
{0x90, 11, 9, 76},
{0x90, 0, 4, 254},
{0x90, 0, 8, 208},
{0x90, 0, 8, 180},
{0x90, 0, 3, 180},
{0x90, 8, 0, 180},
{0x90, 0, 0, 197},
{0x90, 0, 0, 1},
{0x90, 0, 14, 21},
{0x90, 0, 39, 70},
{0x90, 26, 38, 71},
{0x90, 0, 2, 255},
{0x90, 0, 244, 189},
{0x90, 7, 238, 180},
{0x90, 0, 244, 184},
{0x90, 0, 1, 254},
{0x90, 0, 20, 43},
{0x90, 3, 28, 74},
{0x90, 0, 24, 61},
{0x90, 0, 2, 0},
{0x90, 5, 1, 0},
{0x90, 0, 1, 5},
{0x90, 0, 4, 11},
{0x90, 0, 7, 19},
{0x90, 0, 10, 29},
{0x90, 0, 13, 34},
{0x90, 0, 13, 37},
{0x90, 0, 15, 67},
{0x90, 4, 17, 74},
{0x80, 10, 17, 74},
{0x80, 0, 17, 65},
{0x80, 0, 0, 1},
{0x80, 0, 1, 253},
{0x80, 0, 252, 244},
{0x80, 0, 239, 186},
{0x80, 2, 235, 180},
{0x80, 1, 235, 181},
{0x90, 7, 235, 181},
{0x90, 0, 234, 181},
{0x90, 0, 232, 181},
{0x90, 1, 231, 182},
{0x90, 0, 229, 183},
{0x90, 2, 228, 183},
{0x90, 0, 1, 9},
{0x90, 0, 36, 71},
{0x90, 7, 48, 69},
{0x90, 0, 25, 17},
{0x90, 0, 251, 192},
{0x90, 0, 234, 180},
{0x90, 0, 228, 182},
{0x90, 0, 213, 185},
{0x90, 0, 208, 186},
{0x90, 2, 207, 186},
{0x90, 0, 208, 195},
{0x90, 0, 0, 0},
{0x90, 0, 26, 34},
{0x90, 0, 52, 66},
{0x90, 3, 60, 67},
{0x90, 0, 27, 23},
{0x90, 0, 249, 198},
{0x90, 5, 244, 180},
{0x90, 0, 246, 209},
{0x90, 0, 0, 253},
{0x80, 3, 0, 254},
{0x80, 0, 0, 1},
{0x80, 0, 9, 13},
{0x80, 0, 17, 39},
{0x80, 6, 22, 73},
{0x80, 0, 20, 56},
{0x80, 6, 2, 0},
{0x80, 0, 1, 255},
{0x80, 0, 249, 238},
{0x80, 0, 243, 219},
{0x80, 0, 242, 209},
{0x80, 1, 242, 207},
{0x80, 0, 247, 229},
{0x80, 0, 248, 238},
{0x80, 1, 249, 218},
{0x80, 0, 254, 252},
{0x80, 0, 1, 255},
{0x80, 0, 0, 249},
{0x80, 0, 255, 217},
{0x80, 0, 255, 216},
{0x80, 0, 255, 242},
{0x80, 1, 255, 254},
{0xa0, 1, 255, 254},
{0x80, 5, 255, 254},
{0x80, 0, 252, 219},
{0x80, 0, 250, 180},
{0x80, 0, 250, 179},
{0x80, 0, 250, 203},
{0x80, 0, 1, 0},
{0x80, 46, 0, 0},
{0x80, 0, 5, 10},
{0x80, 0, 15, 60},
{0x80, 0, 19, 75},
{0x90, 7, 19, 75},
{0x90, 0, 13, 68},
{0x90, 0, 243, 225},
{0x90, 0, 236, 181},
{0x90, 1, 236, 182},
{0x90, 1, 233, 182},
{0x90, 0, 230, 182},
{0x90, 1, 229, 182},
{0x90, 0, 239, 226},
{0x90, 0, 12, 31},
{0x90, 0, 34, 72},
{0x90, 12, 36, 72},
{0x90, 0, 29, 62},
{0x90, 0, 253, 232},
{0x90, 0, 239, 180},
{0x90, 0, 239, 179},
{0x90, 1, 239, 180},
{0x90, 0, 9, 0},
{0x90, 0, 47, 62},
{0x90, 5, 48, 68},
{0x90, 0, 46, 54},
{0x80, 0, 0, 0},
{0x80, 2, 255, 255},
{0x80, 0, 252, 248},
{0x80, 0, 244, 239},
{0x80, 0, 232, 200},
{0x80, 1, 225, 184},
{0x80, 0, 225, 188},
{0x80, 0, 245, 247},
{0x80, 0, 255, 254},
{0x80, 4, 255, 255},
{0x80, 0, 251, 240},
{0x80, 2, 247, 226},
{0x80, 0, 247, 227},
{0x80, 0, 247, 235},
{0x80, 0, 247, 225},
{0x80, 1, 247, 211},
{0x80, 0, 251, 246},
{0x80, 29, 1, 255},
{0x80, 0, 2, 5},
{0x80, 0, 18, 53},
{0x80, 0, 21, 74},
{0x90, 5, 21, 74},
{0x90, 0, 255, 253},
{0x90, 0, 242, 180},
{0x90, 0, 240, 179},
{0x90, 0, 240, 180},
{0x90, 4, 239, 180},
{0x90, 0, 238, 180},
{0x90, 0, 236, 181},
{0x90, 0, 234, 215},
{0x90, 0, 248, 21},
{0x90, 0, 3, 79},
{0x90, 2, 4, 77},
{0x90, 0, 255, 67},
{0x90, 0, 236, 229},
{0x90, 0, 231, 181},
{0x90, 0, 231, 180},
{0x90, 3, 231, 181},
{0x90, 0, 231, 185},
{0x90, 0, 231, 191},
{0x90, 0, 249, 241},
{0x90, 0, 3, 9},
{0x90, 0, 21, 74},
{0x90, 1, 22, 75},
{0x90, 0, 19, 72},
{0x90, 0, 0, 1},
{0x90, 1, 1, 253},
{0x90, 1, 0, 253},
{0x80, 12, 0, 253},
{0x80, 0, 0, 1},
{0x80, 0, 2, 3},
{0x80, 0, 20, 64},
{0x80, 0, 24, 74},
{0x90, 2, 24, 74},
{0x90, 0, 3, 33},
{0x90, 0, 249, 235},
{0x90, 0, 236, 182},
{0x90, 0, 233, 182},
{0x90, 0, 224, 183},
{0x90, 0, 221, 184},
{0x90, 5, 220, 184},
{0x90, 0, 220, 193},
{0x90, 0, 247, 18},
{0x90, 0, 254, 79},
{0x90, 0, 0, 77},
{0x90, 6, 4, 77},
{0x90, 0, 5, 77},
{0x90, 0, 5, 69},
{0x90, 0, 248, 236},
{0x90, 0, 237, 181},
{0x90, 0, 237, 179},
{0x90, 0, 237, 180},
{0x90, 3, 236, 181},
{0x90, 0, 235, 181},
{0x90, 0, 239, 237},
{0x90, 0, 3, 8},
{0x90, 22, 28, 73},
{0x80, 6, 28, 73},
{0x80, 0, 16, 51},
{0x80, 0, 0, 254},
{0x80, 4, 1, 254},
{0x80, 0, 248, 231},
{0x80, 2, 235, 180},
{0x80, 1, 235, 181},
{0x90, 3, 234, 181},
{0x90, 0, 232, 182},
{0x90, 0, 229, 182},
{0x90, 0, 228, 182},
{0x90, 0, 228, 183},
{0x90, 2, 227, 183},
{0x90, 1, 226, 183},
{0x90, 8, 225, 184},
{0x90, 0, 226, 203},
{0x90, 0, 230, 226},
{0x90, 0, 234, 230},
{0x90, 0, 244, 245},
{0x90, 7, 0, 0},
{0x80, 4, 0, 0},
{0x80, 0, 6, 9},
{0x80, 0, 18, 66},
{0x80, 3, 21, 73},
{0x80, 0, 19, 65},
{0x80, 0, 14, 18},
{0x80, 9, 255, 254},
{0x80, 0, 250, 246},
{0x80, 0, 223, 189},
{0x80, 0, 219, 185},
{0x80, 0, 215, 185},
{0x90, 0, 214, 185},
{0x90, 0, 210, 187},
{0x90, 0, 205, 187},
{0x90, 0, 202, 187},
{0x90, 0, 202, 188},
{0x90, 0, 216, 220},
{0x90, 0, 2, 3},
{0x90, 0, 49, 55},
{0x90, 17, 65, 65},
{0x90, 0, 12, 239},
{0x90, 0, 228, 182},
{0x90, 0, 207, 187},
{0x90, 1, 203, 187},
{0x90, 0, 244, 0},
{0x90, 0, 26, 44},
{0x90, 0, 47, 70},
{0x90, 9, 52, 69},
{0x90, 0, 40, 55},
{0x90, 0, 0, 248},
{0x90, 0, 251, 219},
{0x90, 0, 237, 185},
{0x90, 1, 231, 183},
{0x90, 0, 228, 183},
{0x90, 5, 227, 183},
{0x90, 1, 226, 183},
{0x90, 0, 226, 204},
{0x80, 0, 232, 213},
{0x80, 0, 239, 239},
{0x80, 0, 248, 248},
{0x80, 7, 0, 0},
{0x80, 0, 6, 8},
{0x80, 0, 21, 45},
{0x80, 1, 29, 73},
{0x90, 6, 29, 73},
{0x90, 0, 18, 46},
{0x90, 0, 242, 210},
{0x90, 0, 234, 182},
{0x90, 0, 232, 183},
{0x90, 0, 223, 183},
{0x90, 0, 219, 184},
{0x90, 9, 218, 184},
{0x90, 0, 234, 234},
{0x90, 0, 0, 45},
{0x90, 3, 12, 75},
{0x90, 0, 255, 24},
{0x90, 0, 246, 207},
{0x90, 5, 243, 180},
{0x90, 0, 6, 232},
{0x90, 0, 35, 59},
{0x90, 35, 37, 70},
{0x80, 7, 37, 70},
{0x80, 0, 28, 56},
{0x80, 6, 0, 254},
{0x80, 0, 247, 240},
{0x80, 0, 229, 181},
{0x80, 2, 227, 184},
{0x80, 0, 224, 184},
{0x90, 1, 224, 184},
{0x90, 0, 220, 184},
{0x90, 0, 214, 184},
{0x90, 0, 212, 185},
{0x90, 0, 211, 186},
{0x90, 0, 252, 1},
{0x90, 0, 36, 56},
{0x90, 0, 53, 68},
{0x90, 9, 54, 68},
{0x90, 0, 36, 44},
{0x90, 0, 240, 204},
{0x90, 0, 229, 183},
{0x90, 0, 228, 183},
{0x90, 0, 214, 185},
{0x90, 0, 211, 186},
{0x90, 0, 222, 215},
{0x90, 0, 0, 3},
{0x90, 0, 40, 55},
{0x90, 0, 60, 66},
{0x90, 1, 61, 66},
{0x90, 0, 20, 15},
{0x90, 0, 233, 182},
{0x90, 1, 234, 181},
{0x90, 0, 236, 181},
{0x90, 0, 4, 6},
{0x90, 0, 49, 69},
{0x90, 5, 54, 67},
{0x80, 14, 54, 67},
{0x80, 0, 53, 67},
{0x80, 0, 27, 22},
{0x80, 4, 0, 0},
{0x80, 0, 0, 4},
{0x80, 0, 5, 16},
{0x80, 0, 8, 25},
{0x80, 0, 12, 44},
{0x80, 2, 17, 70},
{0x80, 0, 11, 11},
{0x80, 4, 2, 254},
{0x80, 36, 1, 254},
{0x80, 0, 1, 0},
{0x80, 0, 2, 34},
{0x90, 14, 9, 76},
{0x90, 0, 2, 61},
{0x90, 0, 0, 249},
{0x90, 0, 248, 179},
{0x90, 7, 245, 179},
{0x90, 0, 245, 204},
{0x90, 0, 1, 254},
{0x90, 0, 1, 0},
{0x90, 0, 2, 6},
{0x90, 0, 13, 23},
{0x90, 0, 31, 73},
{0x90, 17, 32, 73},
{0x90, 0, 25, 61},
{0x90, 0, 1, 248},
{0x90, 0, 240, 201},
{0x90, 0, 232, 180},
{0x90, 0, 232, 181},
{0x90, 0, 228, 182},
{0x90, 0, 225, 183},
{0x90, 3, 224, 183},
{0x90, 0, 239, 240},
{0x90, 0, 2, 6},
{0x90, 0, 20, 44},
{0x90, 4, 35, 71},
{0x90, 0, 27, 31},
{0x90, 0, 0, 255},
{0x90, 2, 0, 0},
{0x90, 0, 4, 8},
{0x90, 4, 4, 10},
{0x90, 0, 7, 19},
{0x90, 0, 10, 39},
{0x90, 0, 11, 68},
{0x90, 3, 15, 76},
{0x80, 12, 15, 76},
{0x80, 0, 4, 65},
{0x80, 1, 0, 254},
{0x80, 0, 253, 254},
{0x80, 0, 236, 220},
{0x80, 0, 226, 183},
{0x80, 2, 226, 182},
{0x90, 5, 226, 182},
{0x90, 0, 225, 183},
{0x90, 1, 224, 183},
{0x90, 0, 224, 184},
{0x90, 0, 12, 0},
{0x90, 0, 54, 67},
{0x90, 0, 60, 66},
{0x90, 6, 59, 66},
{0x90, 0, 17, 6},
{0x90, 0, 252, 178},
{0x90, 0, 251, 180},
{0x90, 0, 246, 180},
{0x90, 0, 238, 180},
{0x90, 0, 232, 181},
{0x90, 0, 223, 182},
{0x90, 0, 216, 183},
{0x90, 1, 212, 184},
{0x90, 0, 211, 184},
{0x90, 0, 210, 184},
{0x90, 0, 210, 185},
{0x90, 0, 228, 197},
{0x90, 0, 24, 38},
{0x90, 0, 59, 65},
{0x90, 3, 63, 65},
{0x90, 0, 24, 236},
{0x90, 0, 17, 183},
{0x90, 0, 1, 180},
{0x90, 5, 254, 180},
{0x90, 0, 0, 224},
{0x90, 0, 1, 0},
{0x80, 30, 1, 0},
{0xa0, 0, 1, 253},
{0xa0, 0, 8, 233},
{0xa0, 1, 16, 226},
{0x80, 0, 3, 252},
{0x80, 6, 255, 255},
{0x80, 0, 255, 241},
{0x80, 0, 255, 210},
{0x80, 0, 255, 199},
{0x80, 0, 255, 203},
{0x80, 0, 255, 250},
{0x80, 3, 255, 253},
{0x80, 0, 255, 238},
{0x80, 1, 255, 231},
{0x80, 0, 255, 242},
{0x80, 0, 255, 253},
{0x80, 1, 255, 254},
{0x80, 0, 255, 251},
{0x80, 1, 255, 231},
{0x80, 0, 255, 244},
{0x80, 0, 255, 254},
{0x80, 0, 255, 238},
{0x80, 1, 255, 224},
{0x80, 0, 255, 246},
{0x80, 0, 255, 254},
{0x80, 0, 255, 246},
{0x80, 1, 255, 226},
{0x80, 0, 255, 242},
{0x80, 0, 255, 231},
{0x80, 0, 255, 212},
{0x80, 0, 255, 217},
{0x80, 0, 255, 255},
{0x80, 23, 255, 253},
{0x80, 0, 255, 254},
{0x80, 0, 0, 255},
{0x80, 0, 6, 16},
{0x80, 0, 16, 76},
{0x80, 0, 15, 75},
{0x90, 6, 15, 75},
{0x90, 0, 255, 30},
{0x90, 1, 245, 181},
{0x90, 0, 244, 181},
{0x90, 0, 236, 181},
{0x90, 2, 233, 182},
{0x90, 0, 232, 182},
{0x90, 1, 231, 182},
{0x90, 0, 240, 231},
{0x90, 0, 16, 66},
{0x90, 5, 24, 73},
{0x90, 0, 5, 17},
{0x90, 0, 240, 198},
{0x90, 0, 238, 179},
{0x90, 0, 238, 180},
{0x90, 1, 237, 181},
{0x90, 0, 244, 181},
{0x90, 0, 0, 242},
{0x90, 0, 11, 48},
{0x90, 0, 28, 72},
{0x90, 8, 30, 72},
{0x90, 0, 30, 71},
{0x90, 0, 24, 28},
{0x90, 0, 0, 255},
{0x80, 10, 0, 255},
{0x80, 0, 1, 0},
{0x80, 0, 10, 20},
{0x80, 0, 16, 40},
{0x80, 3, 16, 42},
{0x80, 1, 16, 40},
{0x80, 0, 16, 39},
{0x80, 6, 16, 36},
{0x80, 0, 8, 20},
{0x80, 4, 0, 1},
{0x00, 0, 0, 0},
File diff suppressed because it is too large Load Diff
+29
View File
@@ -0,0 +1,29 @@
#include <ultra64.h>
#include <macros.h>
#include "types.h"
#include "common_structs.h"
/*
* This file is required for data alignment
*
*/
StaffGhost d_mario_raceway_staff_ghost[] = {
#include "courses/flower_cup/mario_raceway/staff_ghost.inc.c"
};
StaffGhost d_luigi_raceway_staff_ghost[1046] = {
#include "courses/mushroom_cup/luigi_raceway/staff_ghost.inc.c"
};
StaffGhost d_royal_raceway_staff_ghost[] = {
#include "courses/star_cup/royal_raceway/staff_ghost.inc.c"
};
// Unknown data. Perhaps colour or lights
s32 D_0F4FCAD0[] = {
0x00000000, 0xc8c8c8c8,
0xc8c80000, 0x00007b39, 0x6f6f6f6f, 0x6f6f6f6f,
0x3f7b0000, 0x0000c8c8, 0xc8c8c8c8, 0xc8000000
};
File diff suppressed because it is too large Load Diff
+5 -9
View File
@@ -5,15 +5,11 @@
.section .data
#glabel D_800DC6FC
#.hword 0x0020, 0x0800, 0x0200, 0x0400, 0x0100, 0x0010
#.hword 0x0020, 0x4000, 0x8000, 0xffff
#glabel D_800DC710
#.word D_802D2B80
glabel D_800DC710
.word D_802D2B80
glabel D_800DC714
.word D_802DAB80, 0x00000000, 0x00000000
#glabel D_800DC714
#.word D_802DAB80, 0x00000000, 0x00000000
glabel D_800DC720
.word D_0D008F28, D_0D008F80, D_0D008FB8, D_0D009058
@@ -329,7 +325,7 @@ glabel D_800DDB50
.byte 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02
glabel D_800DDB58
.word 0x00000000, D_8031F780, D_80344F80, D_8036A780
.word 0x00000000, gFramebuffer0, gFramebuffer1, gFramebuffer2
glabel D_800DDB68
.word D_800ED600, D_800ED608, D_800ED610, D_800ED618
View File
-992
View File
@@ -1,992 +0,0 @@
# Mario Kart 64 (U) disassembly and split file
# generated by n64split v0.4a - N64 ROM splitter
.include "macros.inc"
.data
# TODO: determine purpose of table
# 63E280-641F70: some offsets table
.balign 16
glabel D_0F4F8E10
.word 0x000403fe, 0x001d02fe
.word 0x000101fe, 0x001600fe, 0x004301fe, 0x801001fe
.word 0x800001ff, 0x8000011e, 0x9005fa4e, 0x9000fa17
.word 0x900002c2, 0x900307b4, 0x900006b4, 0x900504b4
.word 0x900000c4, 0x90000003, 0x9000fc4a, 0x9004f94d
.word 0x9000fa4c, 0x900002f2, 0x900014b7, 0x900215b6
.word 0x900010d0, 0x9000031d, 0x9002024d, 0x90000243
.word 0x800b0100, 0x80000210, 0x8000034d, 0x8000034f
.word 0x9004034f, 0x9000fb45, 0x9000faf8, 0x9000fbbe
.word 0x901100b1, 0x900000b2, 0x9000fffc, 0x9000fb3d
.word 0x9002f64c, 0x9000f72b, 0x9000feec, 0x90000db6
.word 0x90020bb4, 0x90000abb, 0x90000001, 0x9000002a
.word 0x9014004f, 0x800a004f, 0x8000fd24, 0x8000fceb
.word 0x8000fcb4, 0x8004fcb2, 0x9009fcb2, 0x9000fcc9
.word 0x9000fce8, 0x9000fce0, 0x9000fccb, 0x9000fcc9
.word 0x9000fcb3, 0x9001fcb4, 0x9000fcba, 0x9000fcdd
.word 0x9001fee4, 0x9000feeb, 0x900201ff, 0x900001fe
.word 0x900000f8, 0x9002fef8, 0x9000fef3, 0x9000fed6
.word 0x9000fece, 0x9000fed8, 0x8001ffff, 0x8000ffec
.word 0x8000ffda, 0x8000ffdc, 0x8013ffff, 0x8002fffe
.word 0x8005fffc, 0x8000fff8, 0x8000fee3, 0x8000f7b6
.word 0x8000f5b3, 0x9000f5b3, 0x9000f3b4, 0x9002f1b4
.word 0x9000f4bd, 0x90001002, 0x90003f40, 0x90094342
.word 0x90004341, 0x900010f9, 0x9000e4b8, 0x9001dbb8
.word 0x9000ebd6, 0x90000814, 0x90002249, 0x900b2b47
.word 0x90001c2a, 0x9000fdef, 0x9000eeb4, 0x9006efb4
.word 0x8002efb4, 0x8000edb9, 0x8000eddd, 0x8000fdfc
.word 0x800afffe, 0x800000fe, 0x80000809, 0x80001741
.word 0x80001a49, 0x90051a49, 0x90000e42, 0x9000f6eb
.word 0x9001f0b3, 0x9008f0b4, 0x9000efba, 0x9000fdff
.word 0x9000fe18, 0x9000fe4e, 0x9003fe4f, 0x9000f714
.word 0x9000f4cf, 0x9002f5b4, 0x9000f7b4, 0x900001b7
.word 0x90000800, 0x90001525, 0x90171f49, 0x80131f49
.word 0x80001b3a, 0x80000000, 0x800000fd, 0x8000feda
.word 0x8000f3bb, 0x8005efb6, 0x9001efb6, 0x9000edb6
.word 0x9001ebb6, 0x9000ebbf, 0x90000303, 0x90003346
.word 0x900a3b43, 0x90001712, 0x9000f3c8, 0x9000dfb7
.word 0x9000d5b9, 0x9002d4b9, 0x9000d4c0, 0x9000fa02
.word 0x9000232c, 0x90004042, 0x90034142, 0x90001a13
.word 0x9000f8b2, 0x9000f5b2, 0x900000b3, 0x90000bce
.word 0x9000123f, 0x9002134a, 0x8012134a, 0x80000f29
.word 0x803c00ff, 0x80000417, 0x8000084d, 0x8000094c
.word 0x9014094c, 0x90000944, 0x900004f5, 0x90000ab4
.word 0x90000cb4, 0x900004b4, 0x900402b4, 0x90000ddc
.word 0x90001f27, 0x90172a45, 0x900009f6, 0x900000b4
.word 0x900001b2, 0x9000feb2, 0x9001f8b3, 0x9000f7b3
.word 0x9001f4b3, 0x9000f4bc, 0x90000106, 0x9000144c
.word 0x9005134a, 0x90000d11, 0x900102ff, 0x90000206
.word 0x90000622, 0x9000072f, 0x90000838, 0x9005083a
.word 0x9000093a, 0x90000d4b, 0x90000d4c, 0x80020d4c
.word 0x80000335, 0x8000ff00, 0x800100fe, 0x8000fffd
.word 0x8000f6e6, 0x8000f1d2, 0x8002e9b4, 0x8000e9b5
.word 0x9005e9b5, 0x9000e8b5, 0x900ce7b6, 0x9000eec4
.word 0x90001000, 0x90003c42, 0x90084042, 0x900018ff
.word 0x900003b5, 0x9000f0b4, 0x9000dcb7, 0x9002d6b8
.word 0x9000d8b8, 0x9000fc01, 0x90002130, 0x90003d42
.word 0x90013f42, 0x90003d42, 0x90002423, 0x9000ffbe
.word 0x900101b2, 0x9000f9b3, 0x9000f3b4, 0x9000f2e7
.word 0x90000000, 0x90000100, 0x80000101, 0x80010203
.word 0x80000406, 0x80000a16, 0x80000e43, 0x8003114b
.word 0x80001048, 0x8000080a, 0x800501ff, 0x80000109
.word 0x8000011c, 0x8003011e, 0x8000011d, 0x8000011b
.word 0xa000011b, 0xa000031b, 0xa000051a, 0xa000060e
.word 0x800000ff, 0x803fffff, 0x80000822, 0x80000b4c
.word 0x90070b4c, 0x90000b4b, 0x9000fef9, 0x9000f8b4
.word 0x9001fab3, 0x9000f8b3, 0x9004f7b3, 0x9000fdf4
.word 0x9000122f, 0x90051849, 0x90000b27, 0x9000fae5
.word 0x9009f6b3, 0x9000fbf2, 0x9000040b, 0x90001340
.word 0x90081849, 0x90001749, 0x90000f19, 0x800602ff
.word 0x800001ff, 0x800000fc, 0x8000f7e9, 0x8000f4d1
.word 0x8000f4cf, 0x8000f4d1, 0x8000f6f0, 0x8000fffd
.word 0x8004fffe, 0x8000ffea, 0x8000ffd5, 0x8000ffd4
.word 0x8000ffda, 0x8000fffe, 0x8003fffd, 0x8000fff7
.word 0x8000fff1, 0x8000ffe0, 0x8000ffd9, 0x8000ffe1
.word 0x8000fffd, 0x8012fffe, 0x80000003, 0x80000e3e
.word 0x9005124b, 0x9000fe0a, 0x9000f0bd, 0x9000efb3
.word 0x9004efb4, 0x9005ecb5, 0x9000eab6, 0x9000e4b7
.word 0x9000dfc0, 0x9000f215, 0x9000034f, 0x9001094c
.word 0x90000849, 0x9000f5e1, 0x9002f7b4, 0x9001f6b4
.word 0x9004f5b4, 0x9000f4b4, 0x9000f1b4, 0x9000eebd
.word 0x90000101, 0x9000213b, 0x90002d46, 0x90012e46
.word 0x90002c43, 0x90000d09, 0x800400fe, 0x80000001
.word 0x80010003, 0x80000506, 0x8000070a, 0x80000d1f
.word 0x8001134a, 0x9007134a, 0x9000091c, 0x9000fbbe
.word 0x9001f9b4, 0x9000f7b4, 0x9004f5b4, 0x9000f4b4
.word 0x9007f3b4, 0x900000ff, 0x90001946, 0x90061849
.word 0x90001848, 0x900001f8, 0x9000fcb2, 0x9000fcb1
.word 0x9002fcb2, 0x9000ffb7, 0x9000070b, 0x90001849
.word 0x9015194a, 0x8002194a, 0x80001648, 0x8000060a
.word 0x80040100, 0x800000fc, 0x8000f6c2, 0x8001f0b4
.word 0x8000ecb5, 0x8000e9b5, 0x9013e7b6, 0x9000e7bd
.word 0x9000e7c8, 0x9000e9dd, 0x9000f7fa, 0x90060100
.word 0x900001ff, 0x900201fe, 0x800801fe, 0x800001ff
.word 0x80000100, 0x80000414, 0x80000745, 0x8004084b
.word 0x8000043a, 0x800701fe, 0x8000f0c9, 0x8002eab5
.word 0x9003eab5, 0x9001e6b6, 0x9000f2e3, 0x90001d1d
.word 0x90004242, 0x900b4442, 0x90003d39, 0x90000ee7
.word 0x9000ebb6, 0x9000d6b8, 0x9001d3b9, 0x9000f3fd
.word 0x90000b0f, 0x90002d44, 0x90073444, 0x90001a19
.word 0x900000f6, 0x9000f9e0, 0x9000ebcc, 0x9000dfbb
.word 0x900adcba, 0x9000dfbf, 0x8000f0f2, 0x80060100
.word 0x80020101, 0x80010102, 0x8000060d, 0x8001124a
.word 0x9008124a, 0x9000fd21, 0x9000e4c4, 0x9005e4b7
.word 0x9000e3b7, 0x9002e2b7, 0x9000e1b7, 0x9000e0b7
.word 0x9000dfb7, 0x9000dfb8, 0x90000209, 0x90001f49
.word 0x90032347, 0x90000a0a, 0x9000f3c8, 0x9002f1b3
.word 0x9000f3b5, 0x90000bfb, 0x90001d3b, 0x90162048
.word 0x80132048, 0x80002046, 0x80000803, 0x800201fe
.word 0x800000fe, 0x8000fcf7, 0x8000ebdb, 0x8000dab8
.word 0x8002dbb7, 0x9005dbb7, 0x9000dbbd, 0x9000fcff
.word 0x90000c0c, 0x90002a2f, 0x90003b43, 0x90063c43
.word 0x90002421, 0x9000f4b7, 0x9000ebb7, 0x9000e7b7
.word 0x9000e0b7, 0x9000dfb7, 0x9000e4cc, 0x90000105
.word 0x90002c45, 0x90023643, 0x90002735, 0x9000f2df
.word 0x9000ebb4, 0x9000f1b4, 0x9000fdb7, 0x90000b15
.word 0x90001949, 0x90011948, 0x800d1948, 0x8000141e
.word 0x800001ff, 0x800a01fe, 0x802d01ff, 0x80000209
.word 0x80000424, 0x80000637, 0x8002094c, 0x900b094c
.word 0x900004fe, 0x900008d0, 0x900008b4, 0x900003b4
.word 0x900800b4, 0x900000c5, 0x90000001, 0x90000e15
.word 0x90002746, 0x901a2647, 0x900002ff, 0x9000f4bd
.word 0x9007eeb4, 0x9000f4b8, 0x900001fe, 0x9000142b
.word 0x90031c4a, 0x9000183d, 0x90000200, 0x90050100
.word 0x90000105, 0x9000040b, 0x90000713, 0x90000a1d
.word 0x90000d22, 0x90000d25, 0x90000f43, 0x9004114a
.word 0x800a114a, 0x80001141, 0x80000001, 0x800001fd
.word 0x8000fcf4, 0x8000efba, 0x8002ebb4, 0x8001ebb5
.word 0x9007ebb5, 0x9000eab5, 0x9000e8b5, 0x9001e7b6
.word 0x9000e5b7, 0x9002e4b7, 0x90000109, 0x90002447
.word 0x90073045, 0x90001911, 0x9000fbc0, 0x9000eab4
.word 0x9000e4b6, 0x9000d5b9, 0x9000d0ba, 0x9002cfba
.word 0x9000d0c3, 0x90000000, 0x90001a22, 0x90003442
.word 0x90033c43, 0x90001b17, 0x9000f9c6, 0x9005f4b4
.word 0x9000f6d1, 0x900000fd, 0x800300fe, 0x80000001
.word 0x8000090d, 0x80001127, 0x80061649, 0x80001438
.word 0x80060200, 0x800001ff, 0x8000f9ee, 0x8000f3db
.word 0x8000f2d1, 0x8001f2cf, 0x8000f7e5, 0x8000f8ee
.word 0x8001f9da, 0x8000fefc, 0x800001ff, 0x800000f9
.word 0x8000ffd9, 0x8000ffd8, 0x8000fff2, 0x8001fffe
.word 0xa001fffe, 0x8005fffe, 0x8000fcdb, 0x8000fab4
.word 0x8000fab3, 0x8000facb, 0x80000100, 0x802e0000
.word 0x8000050a, 0x80000f3c, 0x8000134b, 0x9007134b
.word 0x90000d44, 0x9000f3e1, 0x9000ecb5, 0x9001ecb6
.word 0x9001e9b6, 0x9000e6b6, 0x9001e5b6, 0x9000efe2
.word 0x90000c1f, 0x90002248, 0x900c2448, 0x90001d3e
.word 0x9000fde8, 0x9000efb4, 0x9000efb3, 0x9001efb4
.word 0x90000900, 0x90002f3e, 0x90053044, 0x90002e36
.word 0x80000000, 0x8002ffff, 0x8000fcf8, 0x8000f4ef
.word 0x8000e8c8, 0x8001e1b8, 0x8000e1bc, 0x8000f5f7
.word 0x8000fffe, 0x8004ffff, 0x8000fbf0, 0x8002f7e2
.word 0x8000f7e3, 0x8000f7eb, 0x8000f7e1, 0x8001f7d3
.word 0x8000fbf6, 0x801d01ff, 0x80000205, 0x80001235
.word 0x8000154a, 0x9005154a, 0x9000fffd, 0x9000f2b4
.word 0x9000f0b3, 0x9000f0b4, 0x9004efb4, 0x9000eeb4
.word 0x9000ecb5, 0x9000ead7, 0x9000f815, 0x9000034f
.word 0x9002044d, 0x9000ff43, 0x9000ece5, 0x9000e7b5
.word 0x9000e7b4, 0x9003e7b5, 0x9000e7b9, 0x9000e7bf
.word 0x9000f9f1, 0x90000309, 0x9000154a, 0x9001164b
.word 0x90001348, 0x90000001, 0x900101fd, 0x900100fd
.word 0x800c00fd, 0x80000001, 0x80000203, 0x80001440
.word 0x8000184a, 0x9002184a, 0x90000321, 0x9000f9eb
.word 0x9000ecb6, 0x9000e9b6, 0x9000e0b7, 0x9000ddb8
.word 0x9005dcb8, 0x9000dcc1, 0x9000f712, 0x9000fe4f
.word 0x9000004d, 0x9006044d, 0x9000054d, 0x90000545
.word 0x9000f8ec, 0x9000edb5, 0x9000edb3, 0x9000edb4
.word 0x9003ecb5, 0x9000ebb5, 0x9000efed, 0x90000308
.word 0x90161c49, 0x80061c49, 0x80001033, 0x800000fe
.word 0x800401fe, 0x8000f8e7, 0x8002ebb4, 0x8001ebb5
.word 0x9003eab5, 0x9000e8b6, 0x9000e5b6, 0x9000e4b6
.word 0x9000e4b7, 0x9002e3b7, 0x9001e2b7, 0x9008e1b8
.word 0x9000e2cb, 0x9000e6e2, 0x9000eae6, 0x9000f4f5
.word 0x90070000, 0x80040000, 0x80000609, 0x80001242
.word 0x80031549, 0x80001341, 0x80000e12, 0x8009fffe
.word 0x8000faf6, 0x8000dfbd, 0x8000dbb9, 0x8000d7b9
.word 0x9000d6b9, 0x9000d2bb, 0x9000cdbb, 0x9000cabb
.word 0x9000cabc, 0x9000d8dc, 0x90000203, 0x90003137
.word 0x90114141, 0x90000cef, 0x9000e4b6, 0x9000cfbb
.word 0x9001cbbb, 0x9000f400, 0x90001a2c, 0x90002f46
.word 0x90093445, 0x90002837, 0x900000f8, 0x9000fbdb
.word 0x9000edb9, 0x9001e7b7, 0x9000e4b7, 0x9005e3b7
.word 0x9001e2b7, 0x9000e2cc, 0x8000e8d5, 0x8000efef
.word 0x8000f8f8, 0x80070000, 0x80000608, 0x8000152d
.word 0x80011d49, 0x90061d49, 0x9000122e, 0x9000f2d2
.word 0x9000eab6, 0x9000e8b7, 0x9000dfb7, 0x9000dbb8
.word 0x9009dab8, 0x9000eaea, 0x9000002d, 0x90030c4b
.word 0x9000ff18, 0x9000f6cf, 0x9005f3b4, 0x900006e8
.word 0x9000233b, 0x90232546, 0x80072546, 0x80001c38
.word 0x800600fe, 0x8000f7f0, 0x8000e5b5, 0x8002e3b8
.word 0x8000e0b8, 0x9001e0b8, 0x9000dcb8, 0x9000d6b8
.word 0x9000d4b9, 0x9000d3ba, 0x9000fc01, 0x90002438
.word 0x90003544, 0x90093644, 0x9000242c, 0x9000f0cc
.word 0x9000e5b7, 0x9000e4b7, 0x9000d6b9, 0x9000d3ba
.word 0x9000ded7, 0x90000003, 0x90002837, 0x90003c42
.word 0x90013d42, 0x9000140f, 0x9000e9b6, 0x9001eab5
.word 0x9000ecb5, 0x90000406, 0x90003145, 0x90053643
.word 0x800e3643, 0x80003543, 0x80001b16, 0x80040000
.word 0x80000004, 0x80000510, 0x80000819, 0x80000c2c
.word 0x80021146, 0x80000b0b, 0x800402fe, 0x802401fe
.word 0x80000100, 0x80000222, 0x900e094c, 0x9000023d
.word 0x900000f9, 0x9000f8b3, 0x9007f5b3, 0x9000f5cc
.word 0x900001fe, 0x90000100, 0x90000206, 0x90000d17
.word 0x90001f49, 0x90112049, 0x9000193d, 0x900001f8
.word 0x9000f0c9, 0x9000e8b4, 0x9000e8b5, 0x9000e4b6
.word 0x9000e1b7, 0x9003e0b7, 0x9000eff0, 0x90000206
.word 0x9000142c, 0x90042347, 0x90001b1f, 0x900000ff
.word 0x90020000, 0x90000408, 0x9004040a, 0x90000713
.word 0x90000a27, 0x90000b44, 0x90030f4c, 0x800c0f4c
.word 0x80000441, 0x800100fe, 0x8000fdfe, 0x8000ecdc
.word 0x8000e2b7, 0x8002e2b6, 0x9005e2b6, 0x9000e1b7
.word 0x9001e0b7, 0x9000e0b8, 0x90000c00, 0x90003643
.word 0x90003c42, 0x90063b42, 0x90001106, 0x9000fcb2
.word 0x9000fbb4, 0x9000f6b4, 0x9000eeb4, 0x9000e8b5
.word 0x9000dfb6, 0x9000d8b7, 0x9001d4b8, 0x9000d3b8
.word 0x9000d2b8, 0x9000d2b9, 0x9000e4c5, 0x90001826
.word 0x90003b41, 0x90033f41, 0x900018ec, 0x900011b7
.word 0x900001b4, 0x9005feb4, 0x900000e0, 0x90000100
.word 0x801e0100, 0xa00001fd, 0xa00008e9, 0xa00110e2
.word 0x800003fc, 0x8006ffff, 0x8000fff1, 0x8000ffd2
.word 0x8000ffc7, 0x8000ffcb, 0x8000fffa, 0x8003fffd
.word 0x8000ffee, 0x8001ffe7, 0x8000fff2, 0x8000fffd
.word 0x8001fffe, 0x8000fffb, 0x8001ffe7, 0x8000fff4
.word 0x8000fffe, 0x8000ffee, 0x8001ffe0, 0x8000fff6
.word 0x8000fffe, 0x8000fff6, 0x8001ffe2, 0x8000fff2
.word 0x8000ffe7, 0x8000ffd4, 0x8000ffd9, 0x8000ffff
.word 0x8017fffd, 0x8000fffe, 0x800000ff, 0x80000610
.word 0x8000104c, 0x80000f4b, 0x90060f4b, 0x9000ff1e
.word 0x9001f5b5, 0x9000f4b5, 0x9000ecb5, 0x9002e9b6
.word 0x9000e8b6, 0x9001e7b6, 0x9000f0e7, 0x90001042
.word 0x90051849, 0x90000511, 0x9000f0c6, 0x9000eeb3
.word 0x9000eeb4, 0x9001edb5, 0x9000f4b5, 0x900000f2
.word 0x90000b30, 0x90001c48, 0x90081e48, 0x90001e47
.word 0x9000181c, 0x900000ff, 0x800a00ff, 0x80000100
.word 0x80000a14, 0x80001028, 0x8003102a, 0x80011028
.word 0x80001027, 0x80061024, 0x80000814, 0x80040001
.word 0x00000000
glabel D_0F4F9CAC
.word 0x00010001, 0x00050002, 0x00000001
.word 0x002c0000, 0x00480001, 0x80000002, 0x8000fe00
.word 0x8002fe01, 0x8013fe00, 0x8009feff, 0x80a3fe00
.word 0x8000fefc, 0x8000fefb, 0x8000fef5, 0x8000feef
.word 0x8000feea, 0x8000fee6, 0x8000fee1, 0x8006fedf
.word 0x9000fed5, 0x9000fec7, 0x9000ffbd, 0x9002ffbc
.word 0x900000bc, 0x900007c2, 0x90000a01, 0x90000b13
.word 0x90000f3c, 0x900e1251, 0x90001740, 0x900022db
.word 0x90002cb9, 0x90012cbb, 0x90002fbe, 0x900027f2
.word 0x9000202c, 0x9017204f, 0x90002624, 0x900032cb
.word 0x900039bd, 0x900039bc, 0x900032da, 0x90001f28
.word 0x9000202c, 0x8000202c, 0x80001d20, 0x8000100a
.word 0x80000300, 0x80050101, 0x8000ffe0, 0x8001ffb4
.word 0x9004ffb4, 0x900003b8, 0x90000601, 0x90000621
.word 0x90000753, 0x90080751, 0x90000f30, 0x900018ca
.word 0x90001db6, 0x90011db8, 0x900022cd, 0x90001518
.word 0x90001546, 0x90001550, 0x900d1551, 0x90001930
.word 0x900022dc, 0x90002db8, 0x90012dba, 0x90002dbf
.word 0x90001c15, 0x90001b4f, 0x90091b4e, 0x80001b4e
.word 0x80001a4e, 0x8000152b, 0x8000090b, 0x80000200
.word 0x800001ff, 0x800001fe, 0x800001d0, 0x800005b2
.word 0x900605b4, 0x900009de, 0x9000040f, 0x90000454
.word 0x90080452, 0x9000064d, 0x900010e0, 0x900016b5
.word 0x900016b6, 0x900017b7, 0x900014fd, 0x90000e47
.word 0x90000953, 0x900f0952, 0x900014f7, 0x900023b8
.word 0x900024b9, 0x900025bd, 0x90001916, 0x90001152
.word 0x900f1151, 0x80001141, 0x8000ff00, 0x8000fffd
.word 0x8000ffed, 0x800000d3, 0x800103c2, 0x800003c3
.word 0x800005d6, 0x800005f6, 0x800005fb, 0x800005e6
.word 0x800005bf, 0x800006b5, 0x800406b4, 0x800008bb
.word 0x800209c3, 0x800009dd, 0x800005fd, 0x80020002
.word 0x80020001, 0x800000fe, 0x800000f7, 0x800000e7
.word 0x800000d6, 0x800000c9, 0x800000c2, 0x800001c1
.word 0x800001c3, 0x800004e3, 0x800004fc, 0x800103ff
.word 0x800003fe, 0x800003f9, 0x800003f1, 0x800003ef
.word 0x800003ee, 0x800003ed, 0x800003de, 0x800003cb
.word 0x800204c2, 0x800007df, 0x800006fc, 0x800005fe
.word 0x800104fe, 0x800102fe, 0x801d01fe, 0x801001ff
.word 0x80000408, 0x90000b2c, 0x90000b4f, 0x90030b52
.word 0x90000b25, 0x900000ff, 0x900000d6, 0x900004b4
.word 0x901505b5, 0x900008b8, 0x90000a11, 0x90010d51
.word 0x900007f6, 0x90000cb4, 0x90010db4, 0x90000cb4
.word 0x900d0bb4, 0x90000eb8, 0x90001414, 0x90001850
.word 0x9000184f, 0x90001e27, 0x900018f5, 0x800016ef
.word 0x80000bfa, 0x800c0002, 0x80000004, 0x80000314
.word 0x80000424, 0x80010529, 0x80000520, 0x80000405
.word 0x80020101, 0x80000102, 0x80000108, 0x80000420
.word 0x80010524, 0x80000521, 0x80000517, 0x8000050e
.word 0x8003050a, 0x8000050f, 0x80000716, 0x8000081c
.word 0x8005081d, 0x8000091d, 0x90000d2f, 0x90000f40
.word 0x9000104b, 0x9001104c, 0x9000103f, 0x90000400
.word 0x900004f0, 0x900004c2, 0x900006b4, 0x901806b3
.word 0xb0000bb5, 0xb0001ed0, 0xb00025ea, 0xa00024ee
.word 0xa00023ef, 0xa0001df0, 0x800018f4, 0x800015ff
.word 0x80001404, 0x80001417, 0x80001e35, 0x8000244c
.word 0x8004244d, 0x80001e1d, 0x80001511, 0x80041410
.word 0x80001417, 0x80001a31, 0x80001d47, 0x80051e48
.word 0x80001e45, 0x80001a1b, 0x80000c04, 0x800108ff
.word 0x800007ff, 0x800106ff, 0x800105ff, 0x800205fe
.word 0x800b04fe, 0x800004f7, 0x800006ef, 0x800008e4
.word 0x800208e0, 0x800008ee, 0x800007fe, 0x80000400
.word 0x80030300, 0x800003ff, 0x800003f1, 0x800005e4
.word 0x800006d9, 0x800206d7, 0x800007db, 0x800108e1
.word 0x800009e5, 0x80000aeb, 0x80000aed, 0x80040aee
.word 0x80060aef, 0x80060aee, 0x80000ae7, 0x80000ade
.word 0x80000ad1, 0x80000ac4, 0x80000bb8, 0x90030bb4
.word 0x90000eb6, 0x900017f0, 0x90000f11, 0x90001525
.word 0x90001643, 0x900d1850, 0x90001938, 0x900018da
.word 0x90001cb6, 0x90031bb8, 0x90001ef0, 0x90001921
.word 0x900e1b4f, 0x90001c38, 0x90001bd4, 0x900022b7
.word 0x900122b9, 0x90001608, 0x90001315, 0x80001319
.word 0x80000f10, 0x800002ff, 0x8001ffff, 0x8000ffea
.word 0x800000c8, 0x800001b3, 0x800001b2, 0x900901b2
.word 0x900002b2, 0x900016f6, 0x9000193d, 0x9000194f
.word 0x9007194e, 0x90000eec, 0x900114b5, 0x900213b5
.word 0x900013c1, 0x9000121d, 0x90001451, 0x900a144f
.word 0x90001426, 0x900015c3, 0x900018b6, 0x900118b8
.word 0x90001fef, 0x90001f4d, 0x9009204d, 0x80001817
.word 0x800006fe, 0x800005fd, 0x800005fc, 0x800005f3
.word 0x800002c0, 0x800001b2, 0x900801b3, 0x90000d00
.word 0x90000f32, 0x90001150, 0x9005114f, 0x9000114e
.word 0x90000cfd, 0x90000fb3, 0x900310b6, 0x900013db
.word 0x90001236, 0x90001250, 0x900e124f, 0x90001013
.word 0x90000cc3, 0x90000fb6, 0x900012b7, 0x900019fe
.word 0x90001851, 0x900a174f, 0x8003174f, 0x8000174e
.word 0x8000141a, 0x80000e10, 0x80000a0d, 0x80000301
.word 0x800200ff, 0x800000fd, 0x800000f3, 0x800000eb
.word 0x800000d8, 0x800000c0, 0x800000be, 0x800000bf
.word 0x800000d4, 0x800000ef, 0x80000000, 0x80050001
.word 0x80000004, 0x80000111, 0x80010217, 0x80000207
.word 0x80840100, 0x800001fc, 0x800001e3, 0x800101dc
.word 0x800002f3, 0x80000101, 0x80760102, 0x80160101
.word 0x80000100, 0x800001f8, 0x800001e3, 0x800001c3
.word 0x900003b5, 0x900302b4, 0x900008b7, 0x900013f3
.word 0x90000d0b, 0x9000182a, 0x90001c4f, 0x90131d4d
.word 0x90001af7, 0x900026b7, 0x900126b9, 0x900022f6
.word 0x9000203c, 0x9000224f, 0x9018224e, 0x90001e46
.word 0x90000afa, 0x900012b8, 0x900216b7, 0x900012ff
.word 0x90001643, 0x90001650, 0x9000164e, 0x80001548
.word 0x80000f13, 0x80000609, 0x80000408, 0x80000102
.word 0x80040101, 0x800000f6, 0x800000b2, 0x800000b3
.word 0x900700b4, 0x90000c02, 0x90001053, 0x9000104f
.word 0x900d1050, 0x9000104f, 0x90000eff, 0x900011b6
.word 0x900313b7, 0x90001805, 0x90001d4f, 0x90101d4e
.word 0x90001d4b, 0x90001fd8, 0x900027b8, 0x900027b9
.word 0x90002ae6, 0x90002133, 0x9000223a, 0x90001f26
.word 0x800000ff, 0x8003feff, 0x8000feeb, 0x8000fedd
.word 0x8000feda, 0x8000fecf, 0x8000febd, 0x8000feb4
.word 0x8001feb2, 0x9002feb2, 0x900003c6, 0x90000602
.word 0x90000504, 0x90000b29, 0x90000f4f, 0x90070e51
.word 0x900007fe, 0x900005d0, 0x900005b4, 0x900105b5
.word 0x900704b5, 0x900006b7, 0x90001014, 0x90001950
.word 0x9016184f, 0x9000163c, 0x90000ccc, 0x90000cb5
.word 0x90020cb6, 0x90001ce2, 0x90001b43, 0x90151d4d
.word 0x90000efd, 0x900111b6, 0x900110b6, 0x90000be9
.word 0x90000a50, 0x90040a51, 0x80000a51, 0x80000a45
.word 0x80000506, 0x800afe00, 0x8000fefc, 0x8000fed9
.word 0x8000fecc, 0x8000fec5, 0x8001ffc4, 0x800003cf
.word 0x800005fe, 0x80030202, 0x80270102, 0x80000612
.word 0x90000b3b, 0x90000e51, 0x90020d51, 0x90000d43
.word 0x90000706, 0x9000ff00, 0x900000ea, 0x900000b2
.word 0x901100b4, 0x900005b5, 0x90001305, 0x90001850
.word 0x90001a4d, 0x90001944, 0x900012de, 0x900012b4
.word 0x900012b7, 0x900011b6, 0x900a10b6, 0x90040fb6
.word 0x900012b7, 0x90001a02, 0x90001e4e, 0x90001f4c
.word 0x90001f37, 0x900014ed, 0x900014e0, 0x900014df
.word 0x900011f2, 0x80000302, 0x80010002, 0x80000000
.word 0x800000e4, 0x800000d8, 0x800000be, 0x800000b2
.word 0x800300b4, 0x800003f9, 0x80000207, 0x80000b17
.word 0x8000101e, 0x8000163e, 0x80021850, 0x80001629
.word 0x80000f10, 0x80000706, 0x80000203, 0x80020103
.word 0x80010102, 0x80020101, 0x80120102, 0x80000103
.word 0x8000061d, 0x90000c53, 0x90010c50, 0x90000c40
.word 0x900001ff, 0x900002e8, 0x900002b7, 0x901402b4
.word 0x90000dd4, 0x900013e6, 0xb00016e9, 0xb0001ae9
.word 0xb0001de9, 0xa0011fe9, 0xa00120e9, 0xa00020fa
.word 0xa0001f01, 0x80001e01, 0x80011d01, 0x80001d16
.word 0x8000202e, 0x80002341, 0x80032342, 0x80042442
.word 0x80002440, 0x80001914, 0x80000aff, 0x80000afa
.word 0x80000def, 0x80010fec, 0x80000eef, 0x80000df4
.word 0x80000901, 0x80000803, 0x80020703, 0x80000708
.word 0x80000916, 0x80000c26, 0x8000103a, 0x8001113e
.word 0x80001020, 0x80000807, 0x80000400, 0x80000300
.word 0x80010200, 0x80000201, 0x8000040e, 0x80000b34
.word 0x80010d44, 0x80000d1d, 0x80000100, 0x8001ff00
.word 0x800001f5, 0x800003d7, 0x800005c0, 0x800006bd
.word 0x800006c0, 0x800006fe, 0x8022fe01, 0x8000fe00
.word 0x8000fefd, 0x8000feec, 0x8000fecf, 0x9000feb1
.word 0x9005feb2, 0x90000cff, 0x90000f22, 0x9000164e
.word 0x90081651, 0x90001650, 0x90000ce8, 0x900010b4
.word 0x900210b6, 0x900011b7, 0x90001707, 0x90001f4c
.word 0x900c1e4f, 0x90001c19, 0x90001ccd, 0x900020b7
.word 0x900120b9, 0x900023c5, 0x90002329, 0x9000294e
.word 0x9008294d, 0x9000273a, 0x8000130b, 0x80000cfd
.word 0x80000bfd, 0x80000afe, 0x800008fe, 0x800008e1
.word 0x800008b4, 0x800108b3, 0x900708b3, 0x90000cbb
.word 0x90001215, 0x9000194d, 0x9007194f, 0x9000194b
.word 0x900014e3, 0x900017b5, 0x900117b7, 0x900019f7
.word 0x90001c37, 0x90011e4a, 0x9006204c, 0x900018dc
.word 0x90001fb6, 0x90051fb8, 0x900020b8, 0x90002dde
.word 0x90002b3b, 0x90102e4c, 0x80002420, 0x80000a00
.word 0x80000801, 0x80000800, 0x800008f5, 0x800006c5
.word 0x800005b3, 0x900805b5, 0x900013fd, 0x90001a3b
.word 0x90001f4f, 0x90061f4e, 0x900011fc, 0x900614b6
.word 0x900017bd, 0x90001f1e, 0x9000274c, 0x900e274b
.word 0x90001ce4, 0x900027b8, 0x900028ba, 0x90002de4
.word 0x9000254e, 0x9014254b, 0x800a254b, 0x8000233c
.word 0x800007fe, 0x800005f7, 0x800007ce, 0x80000ab6
.word 0x800409b5, 0x80000bbc, 0x800009fc, 0x8000ff00
.word 0x8007ff01, 0x8000fff1, 0x8000ffde, 0x8001ffd8
.word 0x8000fffc, 0x800fff02, 0x8000ff01, 0x8000ffff
.word 0x8000fff3, 0x8000ffe0, 0x8000ffdd, 0x8000ffde
.word 0x800000ff, 0x8059ff01, 0x8000ff02, 0x80000007
.word 0x80000310, 0x80000519, 0x8001061d, 0x80000515
.word 0x80000303, 0x80030101, 0x80000103, 0x8000010a
.word 0x80000529, 0x8000082d, 0x8000072d, 0x80000616
.word 0x8007feff, 0x8000fef1, 0x8000fedc, 0x8000feda
.word 0x8000fee2, 0x8075fe01, 0x8001fe00, 0x8000feff
.word 0x8000fefc, 0x8000fef2, 0x8000fed5, 0x8000feb1
.word 0x9006feb3, 0x9000ffb4, 0x90000c00, 0x90000e1c
.word 0x9000174f, 0x901a184f, 0x9000143b, 0x900008db
.word 0x900008b5, 0x900108b4, 0x90000a09, 0x90000b52
.word 0x90110a52, 0x90000826, 0x900008c9, 0x90000ab4
.word 0x900010b6, 0x90000c12, 0x90000e42, 0x90010f45
.word 0x80010f45, 0x80000e41, 0x80000622, 0x8004fe00
.word 0x8000fef2, 0x8001fbb2, 0x9007fbb2, 0x900008d6
.word 0x90001029, 0x900f134f, 0x900002f2, 0x900106b2
.word 0x900205b2, 0x90000bc8, 0x9000122b, 0x90001350
.word 0x900c1351, 0x90000dee, 0x900012c6, 0x900012c2
.word 0x900019df, 0x90001739, 0x9000184d, 0x9000184e
.word 0x8000184e, 0x8000102b, 0x80010c12, 0x80000b12
.word 0x80000911, 0x8000080f, 0x80000409, 0x80000103
.word 0x80000102, 0x8000ffdc, 0x8000fdb2, 0x8000fdb4
.word 0x9005fdb4, 0x900007c5, 0x90000e12, 0x90001950
.word 0x900e184e, 0x90000bec, 0x90000cb4, 0x90000cb5
.word 0x90040cb6, 0x90001206, 0x90001a4f, 0x900c1a4e
.word 0x90001a44, 0x900011dd, 0x900012b5, 0x900112b7
.word 0x900017f0, 0x90001d4e, 0x90131c4d, 0x9000110d
.word 0x900008f4, 0x900008e1, 0x900208de, 0x800008db
.word 0x800008d0, 0x800108cc, 0x800008e1, 0x80000402
.word 0x80010302, 0x80020202, 0x80020102, 0x80060101
.word 0x800001fc, 0x800001e5, 0x800000d9, 0x800000d2
.word 0x800100ce, 0x800000dd, 0x800000e5, 0x800400e6
.word 0x800000f3, 0x80300101, 0x80000207, 0x8000081d
.word 0x80000c39, 0x90001046, 0x90001250, 0x90001150
.word 0x9000114f, 0x90000c10, 0x900001ff, 0x900003e9
.word 0x900002c4, 0x900002b5, 0x901302b4, 0x900009d6
.word 0x90001123, 0x90001750, 0x9000164f, 0x90000ce6
.word 0x90000bb4, 0x90000bb5, 0x900d0bb6, 0x90000bc0
.word 0x90001219, 0x90001a4f, 0x90001a4e, 0x900010fa
.word 0x900014d8, 0x900014d4, 0x900012f0, 0x90000402
.word 0x80000301, 0x8013ff01, 0x8000fe02, 0x80000009
.word 0x8000021a, 0x8004041e, 0x8004051e, 0x8000071f
.word 0x80000e2f, 0x80001351, 0x9003144e, 0x90001442
.word 0x90000905, 0x900004ff, 0x900004ee, 0x900004ba
.word 0x901b04b4, 0x900c03b4, 0x900004c2, 0x90000809
.word 0x90000c15, 0xa0000e0e, 0xa0001601, 0xa0001d00
.word 0xa0001e00, 0xa0001e05, 0xa0001e17, 0x80002127
.word 0x80002535, 0x8000263a, 0x8000293c, 0x8000324b
.word 0x80043248, 0x80002f3f, 0x80001f1b, 0x8000110a
.word 0x80000c04, 0x80010801, 0x800008f6, 0x800008e4
.word 0x800008c1, 0x800108ba, 0x800009c4, 0x80000802
.word 0x800b0302, 0x80010202, 0x80170102, 0x80000104
.word 0x8000010b, 0x8000010c, 0x8000010b, 0x80000107
.word 0x80060105, 0x80000104, 0x800b0103, 0x80010003
.word 0x80020002, 0x80000001, 0x8000fffc, 0x8000fce4
.word 0x8000f8ba, 0x9006f7b2, 0x9000fab6, 0x90000705
.word 0x9000134d, 0x9001144e, 0x900f144f, 0x90001346
.word 0x900007cc, 0x900007b5, 0x900506b4, 0x90000dd4
.word 0x9000184d, 0x9000184f, 0x90071850, 0x9000163c
.word 0x90000bd9, 0x90000ab5, 0x90000ab6, 0x90000ac0
.word 0x90001338, 0x9000164d, 0x900a164e, 0x80001235
.word 0x80000204, 0x8002fe00, 0x8000fefb, 0x8000f4c2
.word 0x8000f4b4, 0x8000f4b5, 0x9006f4b5, 0x9001f5b5
.word 0x900004cc, 0x90000e1d, 0x90001450, 0x9006144f
.word 0x90001446, 0x900009e0, 0x900005b2, 0x900405b4
.word 0x90001400, 0x90001a49, 0x90001d4c, 0x90041c4c
.word 0x90001b2b, 0x90000fdc, 0x90000fb9, 0x90000fbb
.word 0x9000110b, 0x9000174d, 0x90091751, 0x80011751
.word 0x8000132f, 0x800001ff, 0x8000fe01, 0x8000fefc
.word 0x8000fef1, 0x8000fee8, 0x8000fedd, 0x8002feb2
.word 0x9007feb2, 0x90000cc9, 0x90001316, 0x90001c4f
.word 0x90091c4d, 0x90000cff, 0x90000db9, 0x90010db4
.word 0x900017dd, 0x90001d2c, 0x9000234d, 0x9001234c
.word 0x9000234b, 0x90002341, 0x90001d19, 0x900017de
.word 0x900018b7, 0x900018b6, 0x90001fc5, 0x90001a27
.word 0x90001c4d, 0x90171c4f, 0x80071c4f, 0x80000b04
.word 0x800004e2, 0x800004be, 0x800204b4, 0x800004f6
.word 0x80040102, 0x80000310, 0x80000c52, 0x80020b50
.word 0x80000115, 0x8001ffff, 0x8000fdef, 0x8000fcd0
.word 0x8001fcc4, 0x8000fcf1, 0x80030102, 0x8000fdf0
.word 0x8000fcc8, 0x8000fcb4, 0x8000fcb3, 0x8000fce7
.word 0x8000fe03, 0x8005feff, 0x8000ff18, 0x80000253
.word 0x80000353, 0x80000240, 0x8000ff04, 0x80000003
.word 0x80020002, 0x80000116, 0x80000436, 0x80000544
.word 0x80000538, 0x8000020b, 0x8000fe00, 0x8006fe01
.word 0x8000fee9, 0x8000fed4, 0x8000fecb, 0x8000fecc
.word 0x8000fdef, 0x8000ff02, 0x8005fe02, 0x8000fe01
.word 0x8000fefd, 0x8000feea, 0x8000fee4, 0x8000fedc
.word 0x8000fedd, 0x8000fef7, 0x8005feff, 0x8000fefb
.word 0x8000fee0, 0x8000fec6, 0x8000fec5, 0x8000fef0
.word 0x00000000, 0x00000000, 0x00000000
glabel D_0F4FAD04
.word 0x007aff00, 0x805bff00
.word 0x800c0000, 0x8007ff00, 0x800000f7
.word 0x8000fece, 0x8000feb4, 0x9004feb4, 0x900003f2
.word 0x9000091a, 0x90000f4c, 0x90040f4b, 0x90050e4b
.word 0x90030d4b, 0x9000093b, 0x9000fdd6, 0x9000fdb5
.word 0x9000fdb4, 0x9000fdb6, 0x90000202, 0x9000033a
.word 0x9007014e, 0x900000fb, 0x9001feb4, 0x9000ffb4
.word 0x90000300, 0x90000235, 0x9002014e, 0x90000146
.word 0x9000ff14, 0x8000ff01, 0x80060000, 0x80000002
.word 0x80000220, 0x8003034d, 0x8000034a, 0x8000043a
.word 0x80000623, 0x80010202, 0x80160102, 0x80000100
.word 0x800000e3, 0x8000feb5, 0x9004feb5, 0x9000ffe4
.word 0x9000030d, 0x9000074c, 0x900e074d, 0x9000064b
.word 0x9000fef2, 0x9000fcb3, 0x9002fcb4, 0x9000fdce
.word 0x90000008, 0x9000024d, 0x9001014e, 0x9000fefc
.word 0x9000f6c2, 0x9009f6b6, 0x9000f6ba, 0x9000f6c2
.word 0x9001f7c2, 0x9000facb, 0x9000fdde, 0x9000fded
.word 0x9001fdf3, 0x9000fdd7, 0x9000fbbb, 0x9003fbb4
.word 0x9000fed3, 0x9000042f, 0x9000084d, 0x9000064d
.word 0x9000f6ea, 0x900cefb6, 0x900001ff, 0x90000b4d
.word 0x90010d4c, 0x90000844, 0x9000f7cd, 0x9003fab5
.word 0x9000fab9, 0x90000322, 0x9000084c, 0x9009074c
.word 0x800b074c, 0x9006074c, 0x90000533, 0x9000fef0
.word 0x9009feb4, 0x9000ffcd, 0x90000b30, 0x9000104b
.word 0x90000f4b, 0x90020e4b, 0x900e0d4b, 0x90000c4b
.word 0x90000b4b, 0x80010a4b, 0x90120a4b, 0x80000a4b
.word 0x90060a4b, 0x80000043, 0x8000ff03, 0x8000fe00
.word 0x8000fdf7, 0x8000f7d3, 0x8000f3b6, 0x8000f3b5
.word 0x8000f3c3, 0x8000fdfc, 0x800001ff, 0x800200ff
.word 0x80160000, 0x80040100, 0x80000101, 0x80000103
.word 0x80000107, 0x8000031e, 0x90000642, 0x9003054c
.word 0x9000054a, 0x90000300, 0x9000fff0, 0x900ffeb4
.word 0x9000feb5, 0x9000fffc, 0x9000011b, 0x90000139
.word 0x9000013b, 0x90000105, 0x9000fde1, 0x9008fbb5
.word 0x9000fbda, 0x90000312, 0x90000339, 0x90030342
.word 0x9000033c, 0x90050339, 0x90000337, 0x9000032a
.word 0x9000031b, 0x9000030b, 0x90000303, 0x90090302
.word 0x90000201, 0x8000fef6, 0x8000f8d0, 0x8000f5b5
.word 0x8002f5b6, 0x8000f5bb, 0x8000f5eb, 0x80170000
.word 0x80000100, 0x80000102, 0x80000104, 0x8000010a
.word 0x80000320, 0x90000535, 0x90000541, 0x90000544
.word 0x90000545, 0x90000544, 0x90000302, 0x900000ff
.word 0x900000e7, 0x900000d6, 0x900000c9, 0x900000c0
.word 0x900000b8, 0x900000b6, 0x900300b5, 0x900000bb
.word 0x900000f2, 0x90000102, 0x90000423, 0x9002074c
.word 0x90000203, 0x900000f8, 0x9000fed0, 0x9000fdb6
.word 0x9008fcb4, 0x9000fcc4, 0x90000002, 0x90000113
.word 0x90010226, 0x90000201, 0x9000ffec, 0x9000feb8
.word 0x9007fdb4, 0x9000fdb5, 0x9000fee6, 0x90050200
.word 0x800a0200, 0x80000201, 0x80010203, 0x80010205
.word 0x80060206, 0x80000204, 0x80030203, 0x80060202
.word 0x800002ff, 0x8000fee3, 0x8000feb3, 0x9003feb4
.word 0x9000fed2, 0x90000102, 0x90000218, 0x9000054d
.word 0x900b064d, 0x90000332, 0x9000fbda, 0x9001fbb4
.word 0x9000fcb4, 0x9000fefa, 0x90000327, 0x9000024d
.word 0x9005024e, 0x90000246, 0x9000fbe8, 0x9000fcb5
.word 0x9000fcb4, 0x9000fdb4, 0x9000fff7, 0x9000032a
.word 0x9000054d, 0x900e034d, 0x80000338, 0x80000301
.word 0x801b0200, 0x800002ff, 0x800001f6, 0x800000e2
.word 0x8000ffd6, 0x8000ffd5, 0x8000fff0, 0x801f0200
.word 0x8000020a, 0x8000023a, 0x8000034d, 0x9003034d
.word 0x9000033b, 0x9000fdfa, 0x9000fec3, 0x9009feb5
.word 0x9000feb6, 0x9000fffc, 0x90000311, 0x90000241
.word 0x9001024e, 0x90000241, 0x9000fef8, 0x9000fcc2
.word 0x9004fcb4, 0x9000fcc2, 0x90000000, 0x90000008
.word 0x90000227, 0x90000343, 0x90010346, 0x90000246
.word 0x90000240, 0x90000226, 0x9003021e, 0x90000218
.word 0x90060214, 0x90000218, 0x9000021d, 0x90000224
.word 0x9000022a, 0x90000230, 0x90000234, 0x900e0235
.word 0x90000236, 0x90000237, 0x900f0238, 0x9000022c
.word 0x90000208, 0x90000201, 0x80080201, 0x80000207
.word 0x8000021e, 0x80000232, 0x80090237, 0x8000022f
.word 0x8000020a, 0x80030200, 0x800002ff, 0x800000f0
.word 0x8000ffd8, 0x8000ffcf, 0x8000ffcd, 0x8000ffce
.word 0x8000ffe5, 0x8000ff00, 0x80030001, 0x800000f7
.word 0x800000e6, 0x800300e2, 0x800000de, 0x800100d8
.word 0x800000e4, 0x800200f0, 0x800000f6, 0x800000fe
.word 0x802400ff, 0x800000fd, 0x800000f7, 0x800000ec
.word 0x800000e7, 0x800000e6, 0x800000ea, 0x800000fc
.word 0x80040000, 0x800000ff, 0x800000f7, 0x800000ec
.word 0x800000e0, 0x800100de, 0x800000f3, 0x800a0001
.word 0x800000fd, 0x800000ef, 0x800400e8, 0x800000f8
.word 0x80080000, 0x800000f9, 0x800000ea, 0x800000e1
.word 0x800000e0, 0x800000e1, 0x800000f9, 0x802a0000
.word 0x80000100, 0x80010101, 0x80000102, 0x80020103
.word 0x80000104, 0x80000106, 0x80000109, 0x8002010b
.word 0x80000108, 0x80020102, 0x80000104, 0x80050105
.word 0x80000107, 0x80040108, 0x800d0109, 0x8003010a
.word 0x8000010b, 0x800d010d, 0x8000010c, 0x80000107
.word 0x80060106, 0x80010105, 0x80020104, 0x80040103
.word 0x805a0102, 0x80000101, 0x800001fc, 0x8000ffd7
.word 0x9004feb4, 0x9000feb5, 0x90000200, 0x9000031f
.word 0x9000094d, 0x900c074c, 0x900000fc, 0x9000fdbb
.word 0x9001fdb4, 0x9000fef9, 0x9000032c, 0x9005034d
.word 0x9000012f, 0x9000fef4, 0x9000fdb8, 0x9005fdb4
.word 0x9000fdb9, 0x9000fdd8, 0x9000feea, 0x9001feed
.word 0x9000fee4, 0x9000fed4, 0x9000fecc, 0x9001fecb
.word 0x9000fede, 0x9001fee8, 0x9000fedd, 0x9000fecd
.word 0x9000fec8, 0x9001fec7, 0x9000fecb, 0x9000fecc
.word 0x9001fecd, 0x9000fed0, 0x9000fed4, 0x9000fed9
.word 0x9000fedf, 0x9000fee4, 0x9000fee5, 0x9004fee6
.word 0x9000fee3, 0x9000fedc, 0x9000fed0, 0x9000fece
.word 0x9000fecf, 0x9000fee9, 0x800000ff, 0x80020001
.word 0x80000102, 0x80000108, 0x8000011e, 0x8000012a
.word 0x80000235, 0x8000023d, 0x80000241, 0x90000244
.word 0x9000034a, 0x9004034d, 0x90000332, 0x9000fef2
.word 0x9000fdb4, 0x9009fdb5, 0x9000feed, 0x9000042c
.word 0x9000094d, 0x9000074d, 0x90000747, 0x9000fefc
.word 0x9000fbd0, 0x9004fbb4, 0x900001f6, 0x90000105
.word 0x9001020e, 0x90000205, 0x80080200, 0x8000fff4
.word 0x8000fcd4, 0x8000f7b8, 0x8004f7b4, 0x900ff7b4
.word 0x8001f6b4, 0x8000f5b4, 0x9003f5b4, 0x8004f5b4
.word 0x9011f5b4, 0x9000f5b5, 0x9000f5d5, 0x8000fe00
.word 0x80000201, 0x8000020d, 0x80000328, 0x8000074b
.word 0x8000094b, 0x8007084b, 0x9004084b, 0x8002084b
.word 0x9002084b, 0x900c084c, 0xb000084c, 0xa0000b4c
.word 0xa0000e4c, 0xa0000f4c, 0x80000f47, 0x80000527
.word 0x80000200, 0x8000fffb, 0x8000fbd9, 0x8009f7b4
.word 0x9003f7b4, 0x900000d5, 0x9000040d, 0x9000124a
.word 0x900a134b, 0x9009124b, 0x90001149, 0x900002e7
.word 0x900101b4, 0x900001b5, 0x900002ff, 0x90000233
.word 0x9008024d, 0x900002ff, 0x9000ffb9, 0x9001fdb3
.word 0x9000ffc0, 0x9000020c, 0x90000b4d, 0x90010b4c
.word 0x90000a4b, 0x90000201, 0x9000fff3, 0x9000ffc1
.word 0x9003ffb3, 0x9000ffb9, 0x9000ffea, 0x90040001
.word 0x900001fa, 0x900001e6, 0x900001d7, 0x900001d4
.word 0x900001d9, 0x900001fc, 0x90040101, 0x80040101
.word 0x8000030b, 0x8000062a, 0x80000849, 0x8001094c
.word 0x8000084b, 0x80000525, 0x80090300, 0x800002fc
.word 0x800001f5, 0x800001f0, 0x800001e4, 0x8000ffcc
.word 0x8001ffc3, 0x8000ffd9, 0x8000ff00, 0x80600001
.word 0x800000fe, 0x800000d7, 0x9003fdb5, 0x9000fdc7
.word 0x90000006, 0x90000236, 0x9011064d, 0x90000209
.word 0x9000ffce, 0x9001ffb3, 0x9000fff6, 0x9000021b
.word 0x9000024d, 0x900a024e, 0x900002fd, 0x9000fed1
.word 0x9000fec9, 0x900002ec, 0x90000113, 0x900d024e
.word 0x90000245, 0x80000218, 0x80080200, 0x800002ff
.word 0x800001fa, 0x800000e8, 0x800000d7, 0x800100ce
.word 0x800000e0, 0x800e0001, 0x80000000, 0x800000f0
.word 0x8000fdc7, 0x8000fbb5, 0x9004fbb5, 0x9000fbc4
.word 0x90000303, 0x9000032e, 0x9000074d, 0x900f064d
.word 0x9000053e, 0x9000feea, 0x9000feb5, 0x9000feb3
.word 0x9000fec1, 0x90000106, 0x9000013f, 0x9007014d
.word 0x9000012b, 0x9000fde8, 0x9000fdb5, 0x9003fdb4
.word 0x9000fdc8, 0x9000fde8, 0x9000fdea, 0x9000fdda
.word 0x9000fdc3, 0x9000fdb9, 0x9001fdb8, 0x9000fdbc
.word 0x9000fdc9, 0x9000fdcc, 0x9000fdd2, 0x9004fdd4
.word 0x9000fdd5, 0x9003fdd6, 0x9000fddc, 0x9000fde2
.word 0x9000fde3, 0x900afee4, 0x9000fee2, 0x9000fedf
.word 0x9000fedd, 0x9000fedc, 0x9000fed9, 0x9000fed8
.word 0x9004fed7, 0x9000fed9, 0x9000feef, 0x90000301
.word 0x80000301, 0x80000303, 0x80000307, 0x8000030d
.word 0x80000312, 0x80020313, 0x80000327, 0x80000346
.word 0x8002034d, 0x9006034d, 0x9000033d, 0x9000fff7
.word 0x9000febb, 0x9007feb4, 0x9000fec0, 0x90000106
.word 0x9000074e, 0x900c094d, 0x900f084d, 0x9001074d
.word 0x8002074d, 0x9010074d, 0x8000012a, 0x80050000
.word 0x800100ff, 0x801d0000, 0x80000101, 0x80000216
.word 0x80000342, 0x9004034c, 0x90000101, 0x9000fbd7
.word 0x901bf9b5, 0x9000f9cf, 0x90000116, 0x9000014e
.word 0x9008014d, 0x90000144, 0x9000f9e3, 0x9002f7b4
.word 0x9000f7bf, 0x90000002, 0x90000223, 0x9003024e
.word 0x9000024c, 0x90000225, 0x900a0000, 0x80070000
.word 0x800000fd, 0x800000f0, 0x800000e7, 0x800000e5
.word 0x800000e8, 0x80000000, 0x80100001, 0x80000107
.word 0x80000443, 0x9002034d, 0x9000034b, 0x90000200
.word 0x900000f1, 0x9000febc, 0x9011feb4, 0x9000feb5
.word 0x900000ff, 0x9000021c, 0x9001013b, 0x90000128
.word 0x900001fc, 0x9000feda, 0x9000fdb9, 0x9006fdb4
.word 0x9000fec9, 0x90000203, 0x90000523, 0x9002084c
.word 0x9000051c, 0x90000000, 0x900400ff, 0x900000fb
.word 0x9000fed6, 0x9000fdb4, 0x9000fcb4, 0x8002fcb4
.word 0x8000fbbc, 0x8000fbec, 0x80030000, 0x80000100
.word 0x8000050e, 0x80000b3e, 0x80030d4b, 0x80000d49
.word 0x80000c2c, 0x800000ff, 0x800c0002, 0x80000001
.word 0x80000000, 0x800000f1, 0x8000ffc8, 0x8000fdb4
.word 0x8000fdb3, 0x9003fdb3, 0x9000fdd6, 0x90000105
.word 0x90000220, 0x90000648, 0x900c074c, 0x90000302
.word 0x900001dc, 0x900001b5, 0x900001b3, 0x900001c7
.word 0x90000204, 0x90000537, 0x9007064d, 0x90000306
.word 0x900000cb, 0x900100b4, 0x900001c4, 0x90000305
.word 0x9000062e, 0x900f084d, 0x8000084d, 0x80000834
.word 0x80000000, 0x80020001, 0x800000fa, 0x800000e7
.word 0x800000d9, 0x800000d7, 0x800000e2, 0x80050001
.word 0x800000fc, 0x8000ffde, 0x8000ffce, 0x8000ffcb
.word 0x8000ffd3, 0x8000fffe, 0x80000001, 0x800000fb
.word 0x800000e6, 0x800000e0, 0x800000e3, 0x80000200
.word 0x80060300, 0x800002fe, 0x800102fc, 0x800002fe
.word 0x801b02ff, 0x80000200, 0x80000201, 0x8000030e
.word 0x80000533, 0x8000064b, 0x9003074b, 0x90000307
.word 0x9000fffa, 0x9000ffc9, 0x9011ffb3, 0x900000d4
.word 0x9000011a, 0x900a044e, 0x90000213, 0x9000fcd6
.word 0x9000fcb4, 0x9001fcb3, 0x9000fee2, 0x90000210
.word 0x9000023d, 0x9007024e, 0x9000023e, 0x90000216
.word 0x90020200, 0x90000201, 0x90000207, 0x90000221
.word 0x90000237, 0x90000249, 0x9003024c, 0x9001024a
.word 0x90000249, 0x90000248, 0x90000242, 0x90000230
.word 0x90000210, 0x90010205, 0x90000206, 0x90000210
.word 0x90000223, 0x90000234, 0x90000241, 0x90020246
.word 0x9000023d, 0x9000022b, 0x90000220, 0x90000215
.word 0x90000209, 0x90020202, 0x90000203, 0x90000206
.word 0x90000210, 0x9000021e, 0x90040224, 0x90070225
.word 0x90000224, 0x90000221, 0x90000217, 0x80000201
.word 0x80060200, 0x80000201, 0x80030203, 0x801d0202
.word 0x80000200, 0x800002f9, 0x800001ee, 0x800101e8
.word 0x800001eb, 0x80000100, 0x80010101, 0x80000100
.word 0x800001f1, 0x800001e4, 0x800001e2, 0x800001e6
.word 0x800001ff, 0x80010100, 0x800001fb, 0x800001f3
.word 0x800001ee, 0x800001eb, 0x800001e5, 0x800001d5
.word 0x800001cf, 0x800001d3, 0x800001fa, 0x800a0101
.word 0x80010102, 0x80000103, 0x80020105, 0x80ff0100
.word 0x80060100, 0x9000fce6, 0x9000f8b4, 0x9003f7b5
.word 0x9000f7bf, 0x90000304, 0x90000328, 0x900c064d
.word 0x9000fcf9, 0x9000f9b4, 0x9001f9b5, 0x9000ffef
.word 0x90000325, 0x9000074d, 0x9004074c, 0x90000312
.word 0x9000fef2, 0x9000fec0, 0x9003feb3, 0x9000feb4
.word 0x9000fec4, 0x9000fecd, 0x9002fed1, 0x9000fed4
.word 0x9000fede, 0x9000fee7, 0x9001ffee, 0x9000fff0
.word 0x9000fff2, 0x9000fff3, 0x9003fff4, 0x9000ffee
.word 0x9000ffe8, 0x9000ffe6, 0x9000ffe5, 0x9000ffdb
.word 0x9000ffd0, 0x9000ffc8, 0x9003ffc5, 0x9008ffc6
.word 0x9000ffc7, 0x9000ffda, 0x9000fffd, 0x80000201
.word 0x80030102, 0x80050101, 0x80010102, 0x80000107
.word 0x80000625, 0x80000946, 0x80010a4c, 0x90070a4c
.word 0x90000929, 0x900000dc, 0x9000feb4, 0x9001feb3
.word 0x9000fecc, 0x90000215, 0x9000094c, 0x9006084d
.word 0x90000745, 0x9000fbef, 0x9007fbb4, 0x8003fbb4
.word 0x8000fbbd, 0x8000feef, 0x80010101, 0x800001fc
.word 0x800000e4, 0x8000fecc, 0x8000fbb4, 0x8001fbb5
.word 0x9005fbb5, 0x900002eb, 0x9000091c, 0x9000134b
.word 0x9001124b, 0x90000b34, 0x9000fefc, 0x9000fbba
.word 0x9007f7b5, 0x8002f7b5, 0x9004f7b5, 0x8003f7b5
.word 0x900ff7b5, 0x9000f8b5, 0x900001ff, 0x8000082b
.word 0x8000134a, 0x8002124a, 0x9008124a, 0x8002124a
.word 0x900f124a, 0x80001544, 0xa0002337, 0xa0012c34
.word 0x80002121, 0x80000c0a, 0x80020000, 0x800000fe
.word 0x800000fa, 0x800000f0, 0x8000fbd3, 0x8000f3b6
.word 0x8003f2b5, 0x9006f2b5, 0x9000f4b9, 0x9000050c
.word 0x9000124a, 0x9014124b, 0x90000a28, 0x900000d4
.word 0x900101b9, 0x900002f3, 0x9006014d, 0x90000127
.word 0x9000fbc6, 0x9008fcb3, 0x9000fdc4, 0x900003ff
.word 0x90000302, 0x9000080f, 0x9000090f, 0x9000080a
.word 0x90000100, 0x90130000, 0x80050000, 0x80020100
.word 0x80000102, 0x80000104, 0x80000208, 0x8000030d
.word 0x8000030e, 0x8000030f, 0x80000419, 0x80000527
.word 0x80000630, 0x80020631, 0x80000622, 0x80000610
.word 0x8002060b, 0x80000611, 0x80000618, 0x8002061b
.word 0x80000405, 0x80590300, 0x800002fc, 0x8000ffd0
.word 0x9003fdb4, 0x9000fec9, 0x90000216, 0x9000044e
.word 0x9010054e, 0x9000054d, 0x9000ff0e, 0x9000fbd5
.word 0x9001fbb3, 0x9000fbb7, 0x90000102, 0x90000336
.word 0x900a034e, 0x90000121, 0x9000fac8, 0x9001fab3
.word 0x9000fecb, 0x9000020f, 0x9000024c, 0x9008024e
.word 0x80000243, 0x8000020c, 0x80060200, 0x800002fd
.word 0x8000fed7, 0x8002feb4, 0x8000fec4, 0x80000303
.word 0x801c0100, 0x8000fff1, 0x8000f8b4, 0x9002f6b5
.word 0x9000f6b7, 0x90000200, 0x90000627, 0x90000c4c
.word 0x900b0b4c, 0x90000202, 0x9000ffc9, 0x9001fdb4
.word 0x900000d4, 0x90000216, 0x9000074d, 0x9007074c
.word 0x90000133, 0x9000fff9, 0x9000feb9, 0x9009feb5
.word 0x9000feb7, 0x9000fec8, 0x9000ffe4, 0x9000fff3
.word 0x900100f5, 0x9000ffdf, 0x9000ffbf, 0x9005feb4
.word 0x9000febc, 0x9000fed1, 0x9000fedd, 0x9000fedc
.word 0x9000fecb, 0x9002fec0, 0x9000feca, 0x9000ffde
.word 0x900100e8, 0x900100e9, 0x900000e8, 0x900000e3
.word 0x900300e0, 0x900000e1, 0x900000e3, 0x900000e5
.word 0x900000ed, 0x900000ff, 0x90000001, 0x800b0001
.word 0x80000101, 0x80000117, 0x8002034d, 0x9004034d
.word 0x90000102, 0x900001d3, 0x9006ffb4, 0x9000ffcb
.word 0x90000305, 0x9000033a, 0x9024034d, 0x8003034d
.word 0x900c034d, 0x90000346, 0x80000313, 0x80050200
.word 0x8000ffed, 0x8000fcd6, 0x8000fbc0, 0x8000fbbe
.word 0x8000fbd3, 0x80000000, 0x80170300, 0x80000301
.word 0x8000030a, 0x80000336, 0x9003034d, 0x9000030c
.word 0x9000fef0, 0x9000febb, 0x900dfdb4, 0x9000fdba
.word 0x90000307, 0x9000064d, 0x9001074d, 0x90000536
.word 0x9000fffc, 0x900001bf, 0x900701b3, 0x900001c0
.word 0x90000301, 0x90000823, 0x90010c4b, 0x90000c42
.word 0x90000100, 0x90030000, 0x90000101, 0x90000206
.word 0x90000312, 0x9000053a, 0x9003054c, 0x9000022c
.word 0x90000201, 0x90000200, 0x90000201, 0x9000020b
.word 0x9000022b, 0x90000245, 0x90010249, 0x90000220
.word 0x90040100, 0x80060100, 0x801c0101, 0x8000010c
.word 0x8000032e, 0x8000034d, 0x9002034d, 0x90000330
.word 0x9000ffff, 0x9000fff3, 0x9000fece, 0x900dfbb4
.word 0x9000fbb6, 0x9000fffe, 0x90000118, 0x9001034a
.word 0x90000329, 0x9000fff8, 0x9000ffc3, 0x900cfeb4
.word 0x9000fec6, 0x90000301, 0x90000311, 0x90000427
.word 0x9001052c, 0x9000052a, 0x9000051f, 0x9000050c
.word 0x90080302, 0x90000306, 0x90000308, 0x90000309
.word 0x8000030b, 0x8000030c, 0x80000313, 0x8000031e
.word 0x80000327, 0x80010329, 0x80000327, 0x80000304
.word 0x80000300, 0x80000301, 0x8000030a, 0x80000330
.word 0x8002034c, 0x80000028, 0x8000fe01, 0x800e0000
.word 0x800000fc, 0x800000ef, 0x8000fec4, 0x8000fbb5
.word 0x9004fbb5, 0x9000fdbd, 0x90000404, 0x90000a38
.word 0x90000f4b, 0x90030e4b, 0x90070d4b, 0x90000409
.word 0x900001d0, 0x900100b4, 0x900000c9, 0x9000020c
.word 0x90000247, 0x9005024d, 0x90000217, 0x9000ffde
.word 0x9001ffb3, 0x900001d0, 0x90000216, 0x9000054c
.word 0x900f054d, 0x80000539, 0x80000302, 0x80010300
.word 0x800001fc, 0x8000ffe5, 0x8000ffcd, 0x8000ffc8
.word 0x8000ffd2, 0x80000100, 0x80050201, 0x800002fe
.word 0x8000fee9, 0x8000fed8, 0x8001fec4, 0x8000fee9
.word 0x80000200, 0x800e0100, 0x80000101, 0x80000104
.word 0x80000112, 0x8000021e, 0x8000021f, 0x8000021e
.word 0x80090200, 0x80000201, 0x80000202, 0x800c0203
.word 0x80000205, 0x8000021e, 0x80000243, 0x8000024d
.word 0x9004024d, 0x90000227, 0x900001fe, 0x9000ffd1
.word 0x9000fdb4, 0x900dfcb4, 0x9000fcb7, 0x9000fefa
.word 0x9000011d, 0x90000246, 0x90000247, 0x9000022c
.word 0x9000fff7, 0x9000fbc2, 0x900efab4, 0x9000fbd0
.word 0x9000030d, 0x90000344, 0x9007044d, 0x90000444
.word 0x90000424, 0x90000410, 0x9001040d, 0x90000415
.word 0x90000424, 0x90000434, 0x9000043f, 0x90000448
.word 0x9000044b, 0x9009044c, 0x9000043e, 0x9000041f
.word 0x90010416, 0x90000420, 0x90000430, 0x9000033e
.word 0x90000347, 0x9005034c, 0x90000346, 0x9000032e
.word 0x90000310, 0x90020303, 0x90000305, 0x90000306
.word 0x90000308, 0x9000030d, 0x90000316, 0x90000320
.word 0x90000335, 0x9000033b, 0x9001033c, 0x9000032f
.word 0x90000326, 0x90000316, 0x90000300, 0x804d0300
.word 0x800001f9, 0x800000e5, 0x800100de, 0x800000fb
.word 0x800d0001, 0x800000fb, 0x8000ffe2, 0x8001ffdc
.word 0x8000ffde, 0x8000fff3, 0x800300ff, 0x800000f1
.word 0x800000eb, 0x800000ef, 0x80290001, 0x80c70002
.word 0x80000000, 0x8000fdd5, 0x9004f9b4, 0x9000f9bb
.word 0x90000005, 0x9000022b, 0x900f094d, 0x9000011d
.word 0x9000f9c5, 0x9001f9b4, 0x9000f9bf, 0x90000306
.word 0x90000346, 0x9003054c, 0x90000142, 0x9000fbf1
.word 0x9000f8b5, 0x9006f8b4, 0x9000f8bb, 0x9001f8bd
.word 0x9000f8ba, 0x9001f8b8, 0x9000fbd5, 0x9000fffc
.word 0x90010201, 0x900002ff, 0x9000ffe6, 0x9000f7bb
.word 0x9007f4b6, 0x9000f6c7, 0x9000fdf2, 0x90050201
.word 0x900002fb, 0x9000fedb, 0x9000f9b5, 0x9003f8b6
.word 0x9000f9be, 0x9000ffef, 0x90010201, 0x80010201
.word 0x80000213, 0x8000023f, 0x8000024c, 0x8003034c
.word 0x9005034c, 0x90000327, 0x9000fbe0, 0x9008f7b4
.word 0x9000fad9, 0x9000041f, 0x90000b4c, 0x90000a4b
.word 0x90000a3c, 0x900001fb, 0x9000febc, 0x9003feb4
.word 0x9000fec2, 0x90000606, 0x90000d31, 0x90011144
.word 0x80000300, 0x800e0200, 0x800002ff, 0x8000fddd
.word 0x8000f8b6, 0x8000f7b4, 0x9004f7b4, 0x8002f7b4
.word 0x900ef7b4, 0x9000f6b4, 0x8000f5b4, 0x8001f4b4
.word 0x9002f4b4, 0x8005f4b4, 0x900bf4b4, 0x8000f4cb
.word 0x8000fe18, 0x8000014e, 0x8003004e, 0x9003004e
.word 0x8006004e, 0x9004004e, 0x8003004e, 0x9003004f
.word 0x9002004e, 0x8000004e, 0xa003004e, 0x8000004e
.word 0x80000333, 0x8000fffd, 0x8000ffd1, 0x8009f9b5
.word 0x8000fef8, 0x90000005, 0x9001010f, 0x90000101
.word 0x9000fceb, 0x9000fbe6, 0x90000201, 0x90001149
.word 0x9000134a, 0x9007124a, 0x90001245, 0x90001040
.word 0x9000090b, 0x9000feb8, 0x900000b3, 0x9001ffb3
.word 0x9000090d, 0x90000f4b, 0x900c0f4c, 0x90000b45
.word 0x9000ffd9, 0x9001feb4, 0x9000feb5, 0x9000fff6
.word 0x90000437, 0x9003074d, 0x90000211, 0x9000fec0
.word 0x9005fdb4, 0x9000fdc0, 0x9000fde3, 0x9000fff7
.word 0x9001fffa, 0x9000fff8, 0x9004fff1, 0x9000fff3
.word 0x900000fd, 0x900100ff, 0x900000f3, 0x9000ffce
.word 0x9000febe, 0x9000febd, 0x9000fede, 0x90000201
.word 0x90000001, 0x80030001, 0x80000101, 0x80000318
.word 0x80000537, 0x80000547, 0x80020548, 0x80000539
.word 0x80000100, 0x8000ff24, 0x8001ff25, 0x8000fffe
.word 0x8067ffff, 0x8000ffee, 0x8000ffb1, 0x9000fead
.word 0x9003ffad, 0x9000ffc3, 0x90000102, 0x9000022c
.word 0x900d064a, 0x9000fffe, 0x9000fbaf, 0x9000faad
.word 0x9000fbad, 0x900001bd, 0x90000112, 0x9002044a
.word 0x90000138, 0x9000fff6, 0x9000fbc5, 0x9005fcae
.word 0x9000fdae, 0x9000feae, 0x9000feb7, 0x9001fec3
.word 0x9000febf, 0x9001feb9, 0x9000febd, 0x900000e1
.word 0x900001f6, 0x900201fb, 0x900000f8, 0x9000fee8
.word 0x9000fecf, 0x9000febd, 0x9001feb9, 0x9000fec6
.word 0x9004fecd, 0x9000fed2, 0x9000fed7, 0x9000ffd9
.word 0x9000ffdf, 0x9000fff1, 0x9005fffe, 0x8000fffe
.word 0x800400fe, 0x80000001, 0x80000113, 0x80000033
.word 0x8003024a, 0x9004024a, 0x90000230, 0x9000fffa
.word 0x9000fccd, 0x9000fcaf, 0x9007fcae, 0x9000ffce
.word 0x90000010, 0x90000347, 0x90000349, 0x90000346
.word 0x900000fd, 0x9000f9d5, 0x9000f9ae, 0x9002fab0
.word 0x9000fcee, 0x90000129, 0x9001014a, 0x90000148
.word 0x900000fe, 0x9000fefe, 0x9000fffe, 0x800b00fe
.word 0x8000fdee, 0x8000fcd1, 0x8000fcba, 0x8000fbae
.word 0x9004fbae, 0x8003fbae, 0x9000fbae, 0x9002faae
.word 0x8000faae, 0x8000f8ae, 0x8000f7ae, 0x8000f7af
.word 0x9004f7af, 0x8003f7af, 0x9004f7af, 0x8002f6af
.word 0x9008f6af, 0x9000f5b1, 0x8000f7ca, 0x8000f8cc
.word 0x8000f7c9, 0x8000f6be, 0x8000f5bb, 0x8000f5bd
.word 0x800000fd, 0x8000003e, 0x8004004a, 0x9003004a
.word 0x8005004a, 0x9002004a, 0x8004004a, 0x9003004a
.word 0xb003004a, 0x8005004a, 0x80000034, 0x800000fe
.word 0x8000fae5, 0x8000fac0, 0x8000f7b0, 0x8000f8b0
.word 0xa000f8b0, 0xa000fdaf, 0xa000ffaf, 0xa00003b0
.word 0x800000b0, 0x8000f9b2, 0x8000fbb4, 0x8000fbbe
.word 0x8000fcd8, 0x8000fced, 0x8000fcf0, 0x9000fcdd
.word 0x9000f7af, 0x9000f4b0, 0x9001f5b0, 0x900001ff
.word 0x90000649, 0x90010849, 0x9000074a, 0x9000064a
.word 0x9004054a, 0x9010044a, 0x9000034a, 0x9000fefa
.word 0x9000f8ad, 0x9001f7ae, 0x9000fdcc, 0x9000001c
.word 0x90020449, 0x90000349, 0x90020249, 0x9000003e
.word 0x9000fad4, 0x900bf7af, 0x900001c7, 0x90000af7
.word 0x90000600, 0x90000400, 0x90000300, 0x90000200
.word 0x90000100, 0x900001ff, 0x90000100, 0x900001ff
.word 0x900000fe, 0x9000fffa, 0x9001fefa, 0x9000fffb
.word 0x9000fefa, 0x9000f4e5, 0x8000f0db, 0x8000f2e4
.word 0x8000feff, 0x800600ff, 0x80000100, 0x8000010b
.word 0x8000011a, 0x80000129, 0x80000339, 0x80020446
.word 0x80000433, 0x80000100, 0x8000ffff, 0x900000c8
.word 0x900002b7, 0x900202b6, 0x800002b6, 0x800002da
.word 0x800001fd, 0x800002fe, 0x800001f4, 0x800001be
.word 0x800201b5, 0x800001bc, 0x800301be, 0x800101bf
.word 0x800001c1, 0x800001ea, 0x80000100, 0x80000102
.word 0x80000115, 0x8000033e, 0x8002034d, 0x9007034d
.word 0x90000349, 0x90000339, 0x9005032c, 0x9000032f
.word 0x90000335, 0x9000033a, 0x9001033b, 0x9002033c
.word 0x9000032a, 0x90000201, 0x90040200, 0x900001fc
.word 0x900001f6, 0x900001ea, 0x800000d9, 0x800000b8
.word 0x800400b3, 0x900200b3, 0x900200b4, 0x900000b6
.word 0x900000c8, 0x900001f1, 0x900001f3, 0x900001ef
.word 0x900000cf, 0x900001b7, 0x900e01b5, 0x900001bf
.word 0x900001c6, 0x900001c7, 0x900001bc, 0x900601b4
.word 0x800d01b4, 0x800001b6, 0x800001e1, 0x80000102
.word 0x80000101, 0x80000110, 0x8000053b, 0x8000064c
.word 0x900a064c, 0x8002064c, 0x80000649, 0x80020648
.word 0x80000545, 0x80000436, 0x80000422, 0x8001041d
.word 0x8001031d, 0x8000032c, 0x8000043b, 0x80000546
.word 0x80040548, 0x80000330, 0xa0000313, 0xa0010312
.word 0xa0010313, 0x80010313, 0x80000303, 0x80020201
.word 0x80030200, 0x80000201, 0x80000304, 0x80000311
.word 0x8000032d, 0x8001033b, 0x80000336, 0x80000308
.word 0x80000101, 0x800a0201, 0x80020200, 0x800002fe
.word 0x800001fa, 0x800001e3, 0x800000c8, 0x900001b7
.word 0x900402b4, 0x900001c3, 0x90000101, 0x90000203
.word 0x9000021a, 0x90000237, 0x9007024d, 0x90000342
.word 0x9000fffd, 0x900000cf, 0x900502b4, 0x900002da
.word 0x90000204, 0x9000022a, 0x9002034d, 0x9000033c
.word 0x9000fffc, 0x900000ce, 0x900201b4, 0x900001cc
.word 0x90000100, 0x90000113, 0x9000024d, 0x9001034d
.word 0x9000034b, 0x900000ff, 0x900001e2, 0x900002ba
.word 0x900003b4, 0x900003b5, 0x900002ed, 0x90000101
.word 0x90000201, 0x90010203, 0x90000201, 0x900001fe
.word 0x800002de, 0x800002c5, 0x800002c2, 0x800002cd
.word 0x80000102, 0x80000202, 0x80000203, 0x80000205
.word 0x80000209, 0x80000221, 0x8000063e, 0x8002064d
.word 0x80000640, 0x80000423, 0x80000301, 0x80070200
.word 0x80000201, 0x80000305, 0x8000051c, 0x80000535
.word 0x80000537, 0x8000052c, 0x80000102, 0x80040201
.word 0x800000f6, 0x800000e1, 0x800000d2, 0x800100cd
.word 0x800000de, 0x80000001, 0x80000201, 0x900301b9
.word 0x900200b9, 0x900300b8, 0x900201b8, 0x800000b8
.word 0x800000ba, 0x800000c8, 0x800000d2, 0x800200d4
.word 0x800001e9, 0x80000101, 0x80000201, 0x80000301
.word 0x80000307, 0x8000031f, 0x80000332, 0x80000344
.word 0x8001044d, 0x9001044d, 0x90000445, 0x9000032a
.word 0x90000319, 0x90000313, 0x90060312, 0x90000313
.word 0x9000031b, 0x90000323, 0x90030424, 0x9000043a
.word 0x9000044d, 0x800b044d, 0x8000044b, 0x8000043a
.word 0x80000321, 0x80000314, 0x80000303, 0x80010201
.word 0x80030202, 0x80000201, 0x800001fa, 0x800000e1
.word 0x800000d3, 0x800300d0, 0x800000d5, 0x8000fff3
.word 0x80020100, 0x80030200, 0x800002ff, 0x800001fe
.word 0x800001fd, 0x800001fc, 0x800001f6, 0x800000ea
.word 0x800000da, 0x800000d2, 0x800000ca, 0x800000c4
.word 0x900000c3, 0x900000c2, 0x900000b7, 0x900100b4
.word 0x900100b5, 0x900000bb, 0x900002f3, 0x90000101
.word 0x90000311, 0x90000530, 0x900b074c, 0x90000737
.word 0x90000102, 0x900001f2, 0x900002bb, 0x900102b4
.word 0x900002ba, 0x900003fc, 0x9000020a, 0x90000541
.word 0x9007074c, 0x90000a2c, 0x900003f7, 0x900004cf
.word 0x900004c1, 0x900104c0, 0x90000201, 0x9000052b
.word 0x9003064c, 0x9000061f, 0x900002fd, 0x900002d4
.word 0x900002b6, 0x900002b4, 0x800002b4, 0x800001bc
.word 0x800001e0, 0xa00002f2, 0xa00102f5, 0xa00002fa
.word 0x800202fe, 0x800001f4, 0x800001ee, 0x800001df
.word 0x800000d3, 0x800100d0, 0x800000d1, 0x800000d3
.word 0x800000e2, 0x800000f7, 0x800001fd, 0x800001fc
.word 0x800000f0, 0x800000de, 0x800100d8, 0x800000d1
.word 0x800100cf, 0x800700d5, 0x800000da, 0x800000f0
.word 0x00000000, 0x00000000, 0x00000000, 0xc8c8c8c8
.word 0xc8c80000, 0x00007b39, 0x6f6f6f6f, 0x6f6f6f6f
.word 0x3f7b0000, 0x0000c8c8, 0xc8c8c8c8, 0xc8000000
+82 -9
View File
@@ -32,6 +32,79 @@ typedef enum {
/* 0x15 */ NUM_COURSES
} COURSES;
typedef enum {
A = 0x80,
B = 0x40,
Z = 0x20,
R = 0x10
} GhostController;
typedef struct {
u8 button;
s8 frameDuration;
s8 stickY;
s8 stickX;
} StaffGhost;
// 80160ADC Banana's remaining
typedef struct {
s32 unk0;
s32 unk2;
s32 shellPos1; // BF8 = empty
s32 shellPos2; // 422 full
s32 shellPos3; // 422C full
} Item; // Inventory?
typedef struct {
// B4 long
f32 posX;
f32 posY;
f32 posZ;
f32 unk; // lookat? faceangle?
f32 unk1;
f32 unk2;
f32 angleX;
f32 angleY;
f32 angleZ;
f32 rotX;
f32 rotY;
f32 rotZ;
s32 unk3; // zero
s32 unk4; // 0x4119999A
s32 unk5; // 0xC20C bit flag?
s32 unk6; // 0
s32 unk7; // 0
s32 unk8; // 0x41F
s32 unk9; // 0
s32 unk10; // 0
s32 unk11; // 0
s32 unk12; // 0
s32 unk13; // 0x103F7
s32 unk14; // 0x05BC00## Surface camera is over?
f32 collisionX;
f32 collisionY;
f32 collisionZ;
f32 unk15;
f32 unk16;
f32 unk17;
f32 unk18;
f32 unk19;
f32 unk20;
f32 unkAngleX;
f32 unkAngleY;
f32 unkAngleZ;
s32 unk21; // zero
f32 collision;
s32 unk22; // zero
s32 unk23; // zero
s32 unk24; // zero
s32 unk25; // zero
s32 unk26; // zero
s32 unk27; // 8
s32 unk28; // zero
s32 unk29; // 422
} Camera;
typedef struct {
/* 0x0000 */ u16 unk_000;
/* 0x0002 */ s16 unk_002;
@@ -41,12 +114,12 @@ typedef struct {
/* 0x000A */ char unk_00A[0x2];
/* 0x000C */ s32 unk_00C;
/* 0x0010 */ char unk_010[0x4];
/* 0x0014 */ f32 unk_014;
/* 0x0018 */ f32 unk_018;
/* 0x001C */ f32 unk_01C;
/* 0x0020 */ f32 unk_020;
/* 0x0024 */ f32 unk_024;
/* 0x0028 */ f32 unk_028;
/* 0x0014 */ f32 posX;
/* 0x0018 */ f32 posY;
/* 0x001C */ f32 posZ;
/* 0x0020 */ f32 rotX;
/* 0x0024 */ f32 rotY;
/* 0x0028 */ f32 rotZ;
/* 0x002C */ s16 unk_02C;
/* 0x002E */ s16 unk_02E;
/* 0x0030 */ s16 unk_030;
@@ -79,10 +152,10 @@ typedef struct {
/* 0x0098 */ f32 unk_098;
/* 0x009C */ f32 unk_09C;
/* 0x00A0 */ f32 unk_0A0;
/* 0x00A4 */ f32 posX;
/* 0x00A8 */ s16 posY;
/* 0x00A4 */ f32 unk_0A4;
/* 0x00A8 */ s16 unk_0A8;
/* 0x00AA */ s16 unk_0AA;
/* 0x00AC */ s16 posZ;
/* 0x00AC */ s16 unk_0AC;
/* 0x00AE */ s16 unk_0AE;
/* 0x00B0 */ s16 unk_0B0;
/* 0x00B2 */ s16 unk_0B2;
+1
View File
@@ -5,5 +5,6 @@
#define SEG_80280000 0x80280000
#define SEG_8028DF00 0x8028DF00
#define SEG_802BA370 0x802BA370
#define SEG_FRAMEBUFFERS 0x802BA290
#endif
+1 -8
View File
@@ -10,10 +10,6 @@ extern s32 gPlayerCountSelection1;
extern f32 gKartFrictionTable[];
extern f32 gKartBoundingBoxTable[];
extern f32 gKartGravityTable[];
extern f32 gPlayer1PosX;
extern f32 gPlayer1PosY;
extern s32 gPlayer1PosZ;
extern s16 gPlayer1Rotation;
extern struct_D_802874D8 D_802874D8;
extern s16 D_801650D0[4][8];
@@ -58,8 +54,7 @@ extern s32 D_80162DE0;
extern s32 D_80162DE4;
extern s32 D_80162DE8;
extern u16 D_8015F890;
extern u16 D_80162DD4;
extern u16 D_80162DD6;
extern u16 D_80162DD4[];
extern u16 D_80162DD8;
extern s16* D_80164550;
extern f32 D_80165210[];
@@ -92,7 +87,5 @@ extern s32 D_800DDB44;
extern s32 D_800DDB48;
extern s32 D_800DDB4C;
extern s32 D_8016524C;
extern Player D_800F7768;
extern Player D_800F8540;
#endif
+16 -7
View File
@@ -66,7 +66,7 @@ SECTIONS
BUILD_DIR/src/profiler.o(.text);
BUILD_DIR/src/crash_screen.o(.text);
BUILD_DIR/asm/code_80004740.o(.text);
BUILD_DIR/asm/code_80004EF0.o(.text);
BUILD_DIR/src/staff_ghosts.o(.text);
BUILD_DIR/asm/unused_overflow_check.o(.text);
BUILD_DIR/src/code_80005FD0.o(.text);
BUILD_DIR/asm/code_8001C4D0.o(.text);
@@ -218,6 +218,7 @@ SECTIONS
BUILD_DIR/src/main.o(.data);
BUILD_DIR/data/data_0DD0A0.o(.data);
BUILD_DIR/src/crash_screen.o(.data);
BUILD_DIR/src/staff_ghosts.o(.data);
BUILD_DIR/data/data_0DD0A0_1.o(.data);
BUILD_DIR/src/kart_attributes.inc.o(.data);
BUILD_DIR/data/data_0DD0A0_2.o(.rodata);
@@ -257,7 +258,7 @@ SECTIONS
BUILD_DIR/src/crash_screen.o(.bss);
BUILD_DIR/asm/bss_800040C0.o(.bss);
BUILD_DIR/asm/bss_80004740.o(.bss);
BUILD_DIR/asm/bss_80004EF0.o(.bss);
BUILD_DIR/src/staff_ghosts.o(.bss);
BUILD_DIR/asm/bss_80005FD0.o(.bss);
BUILD_DIR/asm/bss_MainSeg.o(.bss);
BUILD_DIR/src/os/osCreateViManager.o(.bss);
@@ -277,12 +278,21 @@ SECTIONS
_mainSegmentNoloadSizeHi = _mainSegmentNoloadSize >> 16;
_mainSegmentNoloadSizeLo = _mainSegmentNoloadSize & 0xFFFF;
. = SEG_FRAMEBUFFERS;
BEGIN_NOLOAD(framebuffers)
{
BUILD_DIR/src/framebuffers.o(.bss*);
}
END_NOLOAD(framebuffers)
/* 0x8028DF00 0F7510-123640 [2C130] */
BEGIN_SEG(code_8028DF00, SEG_8028DF00)
{
BUILD_DIR/src/code_8028DF00.o(.text);
BUILD_DIR/asm/code_80290C20.o(.text);
BUILD_DIR/asm/code_80296A50.o(.text);
BUILD_DIR/src/code_80296A50.o(.text);
BUILD_DIR/asm/code_802A3730.o(.text);
BUILD_DIR/src/memory.o(.text);
BUILD_DIR/asm/code_802B0210.o(.text);
@@ -291,13 +301,12 @@ SECTIONS
BUILD_DIR/courses/courseTable.inc.o(.data);
BUILD_DIR/data/data_121DA0_2.o(.data);
//BUILD_DIR/src/code_8028DF00.o(.rodata);
BUILD_DIR/data/data_121DA0_2_1.o(.data);
}
END_SEG(code_8028DF00)
BEGIN_NOLOAD(code_8028DF00) {
BUILD_DIR/src/code_8028DF00.o(.bss);
BUILD_DIR/asm/bss_8028DF00.o(.bss);
BUILD_DIR/src/code_8028DF00.o(.bss);
BUILD_DIR/asm/bss_8028DF00.o(.bss);
}
END_NOLOAD(code_8028DF00)
@@ -341,7 +350,7 @@ SECTIONS
BEGIN_SEG(kart_textures, 0x0F000000)
{
BUILD_DIR/data/kart_textures.o(.data);
BUILD_DIR/data/data_63E278.o(.data);
BUILD_DIR/courses/staff_ghosts.inc.o(.data);
. = ALIGN(0x10);
}
END_SEG(kart_textures)
+40 -40
View File
@@ -47,18 +47,18 @@ void spawn_player(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg
break;
}
player->unk_014 = arg2;
player->posX = arg2;
ret = func_802AE1C0(arg2, arg4 + 50.0f, arg3) + player->unk_070;
player->unk_01C = arg3;
player->unk_018 = ret;
player->unk_020 = arg2;
player->unk_024 = ret;
player->posZ = arg3;
player->posY = ret;
player->rotX = arg2;
player->rotY = ret;
D_80164510[arg1] = ret;
player->unk_02C = 0;
player->unk_028 = arg3;
player->rotZ = arg3;
player->unk_05C = 1.0f;
player->unk_058 = 0.0f;
player->unk_060 = 0.0f;
@@ -114,9 +114,9 @@ void spawn_player(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg
player->unk_042 = 0;
player->unk_078 = 0;
player->posY = 0;
player->unk_0A8 = 0;
player->unk_0AA = 0;
player->posZ = 0;
player->unk_0AC = 0;
player->unk_0AE = 0;
player->unk_0B0 = 0;
player->unk_0B2 = 0;
@@ -166,7 +166,7 @@ void spawn_player(Player *player, s8 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg
player->unk_098 = 0.0f;
player->unk_09C = 0.0f;
player->unk_0A0 = 0.0f;
player->posX = 0.0f;
player->unk_0A4 = 0.0f;
player->unk_0B8 = 0.0f;
player->unk_0E4 = 0.0f;
player->unk_0E8 = 0.0f;
@@ -473,12 +473,12 @@ void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) {
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
} else if (D_8015F890 != 1) {
spawn_player(D_800DC4FC, 0, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], -0x2000);
if (D_80162DD4 == 0) {
if (D_80162DD4[0] == 0) {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE0, -0x1F00);
} else {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], 0x3000);
}
if (D_80162DD6 == 0) {
if (D_80162DD4[1] == 0) {
spawn_player(D_800DC4E4, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, -0x1F00);
} else {
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
@@ -490,7 +490,7 @@ void func_8003A59C(f32 *arg0, f32 *arg1, f32 arg2) {
} else {
spawn_player(D_800DC4E0, 1, arg0[0], arg1[0], arg2, 32768.0f, D_800E86A8[0], 0x3000);
}
if (D_80162DD6 == 0) {
if (D_80162DD4[1] == 0) {
spawn_player(D_800DC4E4, 2, arg0[0], arg1[0], arg2, 32768.0f, D_80162DE4, -0x1F00);
} else {
spawn_player(D_800DC4E4, 2, arg0[1], arg1[1], arg2, 32768.0f, D_800E86A8[0], 0x3000);
@@ -1057,7 +1057,7 @@ void func_8003CD98(Player *player, s32 arg1, s8 arg2, s8 arg3) {
D_801650D0[arg3][arg2] = player->unk_244[arg3];
D_80165110[arg3][arg2] = player->unk_24C[arg3];
D_80165150[arg3][arg2] = player->posY;
D_80165150[arg3][arg2] = player->unk_0A8;
D_801651D0[arg3][arg2] = 0;
func_800267AC(player, arg2, arg3);
}
@@ -1082,18 +1082,18 @@ void func_8003D080(void) {
switch (gModeSelection) {
case 0:
if (gCurrentCourseId == COURSE_TOADS_TURNPIKE) {
func_8001C4D0(0.0f, D_800DC4DC->posY, D_8016524C, D_800DC4DC->unk_0BC, 8, 0);
func_8001C4D0(0.0f, D_800DC4DC->unk_0A8, D_8016524C, D_800DC4DC->unk_0BC, 8, 0);
} else {
func_8001C4D0((D_80165210[6] + D_80165210[7]) / 2, D_800DC4DC->posY, D_8016524C, D_800DC4DC->unk_0BC, 8, 0);
func_8001C4D0((D_80165210[6] + D_80165210[7]) / 2, D_800DC4DC->unk_0A8, D_8016524C, D_800DC4DC->unk_0BC, 8, 0);
}
break;
case 1:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_8016524C, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_8016524C, D_800DC4DC->unk_0BC, 1, 0);
break;
default:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 10, 0);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 10, 0);
break;
}
break;
@@ -1102,18 +1102,18 @@ void func_8003D080(void) {
case 2:
switch (gModeSelection) {
case 0:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 1, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 1, 1);
break;
case 3:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 9, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 9, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 9, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 9, 1);
break;
default:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 1, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 1, 1);
break;
}
break;
@@ -1121,23 +1121,23 @@ void func_8003D080(void) {
case 3:
if (gModeSelection == 3) {
ptr = &D_800DC4E4;
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 9, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 9, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 9, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 9, 1);
ptr++;
func_8001C4D0(ptr->unk_014, ptr->unk_018, ptr->unk_01C, ptr->unk_02E, 9, 2);
func_8001C4D0(ptr->posX, ptr->posY, ptr->posZ, ptr->unk_02E, 9, 2);
ptr++;
if (gPlayerCountSelection1 == 4) {
func_8001C4D0(ptr->unk_014, ptr->unk_018, ptr->unk_01C, ptr->unk_02E, 9, 3);
func_8001C4D0(ptr->posX, ptr->posY, ptr->posZ, ptr->unk_02E, 9, 3);
}
} else {
ptr = &D_800DC4E4;
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 1, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 1, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 1, 1);
ptr++;
func_8001C4D0(ptr->unk_014, ptr->unk_018, ptr->unk_01C, ptr->unk_02E, 1, 2);
func_8001C4D0(ptr->posX, ptr->posY, ptr->posZ, ptr->unk_02E, 1, 2);
ptr++;
if (gPlayerCountSelection1 == 4) {
func_8001C4D0(ptr->unk_014, ptr->unk_018, ptr->unk_01C, ptr->unk_02E, 1, 3);
func_8001C4D0(ptr->posX, ptr->posY, ptr->posZ, ptr->unk_02E, 1, 3);
}
}
break;
@@ -1145,23 +1145,23 @@ void func_8003D080(void) {
} else {
switch (D_800DC52C) {
case 0:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 3, 0);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 3, 0);
break;
case 1:
case 2:
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 3, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 3, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 3, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 3, 1);
break;
case 3:
ptr = &D_800DC4E4;
func_8001C4D0(D_800DC4DC->posX, D_800DC4DC->posY, D_800DC4DC->posZ, D_800DC4DC->unk_0BC, 3, 0);
func_8001C4D0(D_800DC4E0->unk_014, D_800DC4E0->unk_018, D_800DC4E0->unk_01C, D_800DC4E0->unk_02E, 3, 1);
func_8001C4D0(D_800DC4DC->unk_0A4, D_800DC4DC->unk_0A8, D_800DC4DC->unk_0AC, D_800DC4DC->unk_0BC, 3, 0);
func_8001C4D0(D_800DC4E0->posX, D_800DC4E0->posY, D_800DC4E0->posZ, D_800DC4E0->unk_02E, 3, 1);
ptr++;
func_8001C4D0(ptr->unk_014, ptr->unk_018, ptr->unk_01C, ptr->unk_02E, 3, 2);
func_8001C4D0(ptr->posX, ptr->posY, ptr->posZ, ptr->unk_02E, 3, 2);
ptr++;
func_8001C4D0(ptr->unk_014, ptr->unk_018, ptr->unk_01C, ptr->unk_02E, 3, 3);
func_8001C4D0(ptr->posX, ptr->posY, ptr->posZ, ptr->unk_02E, 3, 3);
break;
}
}
@@ -1230,8 +1230,8 @@ void func_8003DB5C(void) {
Player *player = D_800DC4DC;
s32 i;
func_8001C4D0(player->unk_014, player->unk_018, player->unk_01C, player->unk_02E, 3, 0);
func_8001C4D0(player->unk_014, player->unk_018, player->unk_01C, player->unk_02E, 3, 1);
func_8001C4D0(player->posX, player->posY, player->posZ, player->unk_02E, 3, 0);
func_8001C4D0(player->posX, player->posY, player->posZ, player->unk_02E, 3, 1);
for (i = 0; i < 8; i++, player++) {
func_80027A20(player, i, 1, 0);
+7 -7
View File
@@ -263,7 +263,7 @@ void func_8008C528(Player *player, s8 arg1) {
player->unk_0F4 = 0.0f;
player->unk_0EC = D_800E3790[temp_v1];
player->posY = 0;
player->unk_0A8 = 0;
player->unk_0BC = player->unk_0BC | 0x400;
player->unk_0BC = player->unk_0BC & ~0x10;
player->unk_0C0 = 0;
@@ -281,13 +281,13 @@ void func_8008C528(Player *player, s8 arg1) {
void func_8008C62C(Player *player, s8 arg1) {
func_80031F48(player, 5.0f);
player->posY += (s16)0xA0;
player->unk_0A8 += (s16)0xA0;
player->unk_042 += (s16)0x71C;
if (player->posY >= 0x2000) {
player->posY = 0;
if (player->unk_0A8 >= 0x2000) {
player->unk_0A8 = 0;
player->unk_236 = (s16) (player->unk_236 - 1);
if (player->unk_236 == 0) {
player->posY = 0x2000;
player->unk_0A8 = 0x2000;
func_8008C6D0(player, arg1);
if (gModeSelection == 3) {
func_8006B8B4(player, arg1);
@@ -301,7 +301,7 @@ void func_8008C6D0(Player *player, s8 arg1) {
player->unk_206 = 0;
player->unk_0C4 = 0;
player->unk_0BC = (s32) (player->unk_0BC & ~0x400);
player->posY = 0;
player->unk_0A8 = 0;
player->unk_0C0 = 0;
player->unk_07C = 0;
player->unk_236 = 0;
@@ -364,7 +364,7 @@ void func_8008C8C4(Player *player, s8 arg1) {
player->unk_02E = player->unk_0AE;
player->posY = 0;
player->unk_0A8 = 0;
player->unk_07C = 0;
player->unk_0C0 = 0;
player->unk_0BC &= ~0x800;
+2 -6
View File
@@ -36,8 +36,6 @@ extern u16 D_800DC5B0;
extern u16 D_800DC5B8;
extern s32 D_800E86A0;
extern struct Controller *D_800DC4CC;
extern s32 D_8018EE08;
extern u16 D_800DC51C;
extern s32 D_80150118;
@@ -49,7 +47,7 @@ extern s32 D_800DC530;
extern s32 D_8018D2AC;
extern s32 D_800DC52C;
extern s16 gCurrentCourseId;
extern u16 D_80162DD6;
extern u16 D_80162DD4[];
extern u16 D_8015F890;
extern u32 D_800DC5AC;
extern u16 gEnableDebugMode;
@@ -107,8 +105,6 @@ UNUSED s32 D_802BA03C;
s16 D_802BA040[4];
u16 D_802BA048;
// Likely bss memed need to declare controllers likely in main.c
void func_8028DF00(void) {
struct Controller *controllers = &gControllers[0];
s32 i;
@@ -622,7 +618,7 @@ GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028EDA8.s")
f32 func_8028EE8C(s32 i) {
f32 temp_f14;
temp_f14 = D_8015F8D8 - gPlayers[i].unk_01C;
return gCourseTimer - ((D_802B9254 * temp_f14) / (temp_f14 + (gPlayers[i].unk_028 - D_8015F8D8)));
return gCourseTimer - ((D_802B9254 * temp_f14) / (temp_f14 + (gPlayers[i].rotZ - D_8015F8D8)));
}
*/
+261
View File
@@ -0,0 +1,261 @@
#include <ultra64.h>
#include <PR/os.h>
#include <macros.h>
#include "types.h"
#include <common_structs.h>
extern s32 D_800DDB40;
/*
void func_80296A50(s32 arg0, s32 arg3) {
void *sp1C;
s16 temp_t3;
s16 temp_t7;
s16 temp_v0;
s32 temp_a2;
s32 temp_a2_2;
s32 temp_a2_3;
s32 temp_a2_4;
u16 temp_t1;
void *phi_a1;
u16 phi_a2;
void *phi_a1_2;
u16 phi_a2_2;
s32 phi_a2_3;
void *phi_a1_3;
u16 phi_a2_4;
s32 phi_a2_5;
void *phi_a1_4;
u16 phi_a2_6;
s32 phi_a3;
temp_t1 = D_8015F900;
if ((s32) temp_t1 < 0x64) {
phi_a1 = (temp_t1 * 0x70) + &D_8015F9B8;
phi_a2 = temp_t1;
loop_2:
if ((arg0 != phi_a1) && ((phi_a1->unk2 & 0xF) == 0) && (phi_a1->unk0 == 7)) {
if (phi_a1->unk6 == 2) {
sp1C = phi_a1;
func_8000EE58(phi_a2, phi_a1, phi_a2, 2);
}
D_8015F6FE = (u16) (D_8015F6FE - 1);
func_8029E854(phi_a1, phi_a1);
return;
}
temp_a2 = phi_a2 + 1;
phi_a1 += 0x70;
phi_a2 = (u16) temp_a2;
if (temp_a2 >= 0x64) {
goto block_10;
}
goto loop_2;
}
block_10:
phi_a2_3 = (s32) D_8015F900;
if ((s32) D_8015F900 < 0x64) {
phi_a1_2 = ((s32) D_8015F900 * 0x70) + &D_8015F9B8;
phi_a2_2 = (u16) (s32) D_8015F900;
loop_12:
if ((arg0 != phi_a1_2) && ((phi_a1_2->unk2 & 0xF) == 0) && (phi_a1_2->unk0 == 8) && (temp_t3 = phi_a1_2->unk6, (((u32) (temp_t3 - 2) < 8U) != 0))) {
switch (temp_t3) { // switch 1
case 2: // switch 1
case 3: // switch 1
case 4: // switch 1
case 5: // switch 1
case 8: // switch 1
case 9: // switch 1
sp1C = phi_a1_2;
func_8000EE58(phi_a2_2, phi_a1_2, phi_a2_2);
// fallthrough
case 7: // switch 1
D_8015F6FE = (u16) (D_8015F6FE - 1);
func_8029E854(phi_a1_2, phi_a1_2);
return;
}
} else {
default: // switch 1
temp_a2_2 = phi_a2_2 + 1;
phi_a1_2 += 0x70;
phi_a2_2 = (u16) temp_a2_2;
if (temp_a2_2 >= 0x64) {
phi_a2_3 = (s32) temp_t1;
goto block_21;
}
goto loop_12;
}
} else {
block_21:
phi_a2_5 = phi_a2_3;
phi_a3 = arg3;
if (phi_a2_3 < 0x64) {
phi_a1_3 = (phi_a2_3 * 0x70) + &D_8015F9B8;
phi_a2_4 = (u16) phi_a2_3;
loop_23:
if ((arg0 != phi_a1_3) && (phi_a1_3->unk0 == 7)) {
temp_v0 = phi_a1_3->unk6;
if (temp_v0 != 2) {
if (temp_v0 != 7) {
goto block_30;
}
goto block_29;
}
sp1C = phi_a1_3;
func_8000EE58(phi_a2_4, phi_a1_3, phi_a2_4, 2);
block_29:
D_8015F6FE = (u16) (D_8015F6FE - 1);
func_8029E854(phi_a1_3, phi_a1_3);
return;
}
block_30:
temp_a2_3 = phi_a2_4 + 1;
phi_a1_3 += 0x70;
phi_a2_4 = (u16) temp_a2_3;
if (temp_a2_3 >= 0x64) {
phi_a2_5 = (s32) temp_t1;
phi_a3 = 2;
goto block_32;
}
goto loop_23;
}
block_32:
if (phi_a2_5 < 0x64) {
phi_a1_4 = (phi_a2_5 * 0x70) + &D_8015F9B8;
phi_a2_6 = (u16) phi_a2_5;
loop_34:
if ((arg0 != phi_a1_4) && (phi_a1_4->unk0 == 8) && (temp_t7 = phi_a1_4->unk6, (((u32) (temp_t7 - 2) < 8U) != 0))) {
switch (temp_t7) { // switch 2
case 2: // switch 2
case 3: // switch 2
case 4: // switch 2
case 5: // switch 2
case 8: // switch 2
case 9: // switch 2
sp1C = phi_a1_4;
func_8000EE58(phi_a2_6, phi_a1_4, phi_a2_6, phi_a3);
// fallthrough
case 7: // switch 2
D_8015F6FE = (u16) (D_8015F6FE - 1);
func_8029E854(phi_a1_4, phi_a1_4);
return;
}
} else {
default: // switch 2
temp_a2_4 = phi_a2_6 + 1;
phi_a1_4 += 0x70;
phi_a2_6 = (u16) temp_a2_4;
if (temp_a2_4 >= 0x64) {
// Duplicate return node #41. Try simplifying control flow for better match
return;
}
goto loop_34;
}
}
}
}
*/
GLOBAL_ASM("asm/non_matchings/code_80296A50/func_80296A50.s")
GLOBAL_ASM("asm/non_matchings/code_80296A50/func_80296D10.s")
// 801646F0 // 80161B68
// Actor leave screen
/*
void func_80297230(Camera *arg0, Item *arg1) {
switch((arg0 - D_800DDB40) / 0xB8) { // / 0xB8
case 0:
arg1->unk2 = (s16) (arg1->unk2 & 0xFFFE);
break;
case 1:
arg1->unk2 = (s16) (arg1->unk2 & 0xFFFD);
break;
case 2:
arg1->unk2 = (s16) (arg1->unk2 & 0xFFFB);
break;
case 3:
arg1->unk2 = (s16) (arg1->unk2 & 0xFFF7);
break;
}
}
*/
GLOBAL_ASM("asm/non_matchings/code_80296A50/func_80297230.s")
/*
void func_802972B8(Camera *arg0, Item *arg1) {
switch((arg0 - D_800DDB40) / 0xB8) {
case 0:
arg1->unk2 = (s16) (arg1->unk2 | 1);
break;
case 1:
arg1->unk2 = (s16) (arg1->unk2 | 2);
break;
case 2:
arg1->unk2 = (s16) (arg1->unk2 | 4);
break;
case 3:
arg1->unk2 = (s16) (arg1->unk2 | 8);
break;
}
}
*/
GLOBAL_ASM("asm/non_matchings/code_80296A50/func_802972B8.s")
/*
void func_80297340(void *arg0) {
? sp38;
s16 sp36;
void *temp_v0;
void *temp_v0_2;
void *temp_v0_3;
void *temp_v0_4;
void *temp_v0_5;
void *temp_v0_6;
sp36 = (s16) (s32) D_8015F8D0.unk8;
if ((D_800DC50C != 9) && (func_802B5520(&sp38, &D_8015F8D0), (func_802B4FF8(&sp38, 0) != 0))) {
if ((f32) sp36 < arg0->unk8) {
if (D_800DC5BC != 0) {
temp_v0 = gDisplayListHead;
gDisplayListHead = (void *) (temp_v0 + 8);
temp_v0->unk0 = 0xF8000000;
temp_v0->unk4 = (s32) ((D_801625EC << 0x18) | ((D_801625F4 & 0xFF) << 0x10) | ((D_801625F0 & 0xFF) << 8) | 0xFF);
temp_v0_2 = gDisplayListHead;
gDisplayListHead = (void *) (temp_v0_2 + 8);
temp_v0_2->unk0 = 0x6000000;
temp_v0_2->unk4 = &D_0D001C20;
return;
}
temp_v0_3 = gDisplayListHead;
gDisplayListHead = (void *) (temp_v0_3 + 8);
temp_v0_3->unk4 = 0xD001B90;
temp_v0_3->unk0 = 0x6000000;
return;
}
if (D_800DC5BC != 0) {
temp_v0_4 = gDisplayListHead;
gDisplayListHead = (void *) (temp_v0_4 + 8);
temp_v0_4->unk0 = 0xF8000000;
temp_v0_4->unk4 = (s32) ((D_801625EC << 0x18) | ((D_801625F4 & 0xFF) << 0x10) | ((D_801625F0 & 0xFF) << 8) | 0xFF);
temp_v0_5 = gDisplayListHead;
gDisplayListHead = (void *) (temp_v0_5 + 8);
temp_v0_5->unk0 = 0x6000000;
temp_v0_5->unk4 = &D_0D001C88;
return;
}
temp_v0_6 = gDisplayListHead;
gDisplayListHead = (void *) (temp_v0_6 + 8);
temp_v0_6->unk4 = 0xD001BD8;
temp_v0_6->unk0 = 0x6000000;
// Duplicate return node #9. Try simplifying control flow for better match
}
}
void func_802976D8(void *arg0) {
arg0->unk0 = 0x4000;
arg0->unk2 = 0;
arg0->unk4 = 0;
}
*/
GLOBAL_ASM("asm/non_matchings/code_80296A50/func_80297340.s")
GLOBAL_ASM("asm/non_matchings/code_80296A50/code_80296A50.s")
+18 -52
View File
@@ -33,70 +33,36 @@ extern void *D_80162D64;
u32 D_800DC670 = 0;
u32 crashScreenFont[34] = {
u8 crashScreenFont[][8] = {
#include "textures/crash_screen/crash_screen_font.ia1.inc.c"
};
u16 D_800DC6FC[10] = {
32, 2048, 512, 1024, 256, 16, 32, 16384, 32768, 65535
// 0x0020, 0x0800, 0x0200, 0x0400, 0x0100, 0x0010, 0x0020, 0x4000, 0x8000, 0xffff
};
/*
// similar to sm64's crash_screen_draw_glyph
void func_800040C0(uintptr_t framebuffer, s32 x, s32 y, u32 glyph) {
s32 temp_v0;
u32 *data;
u16 *ptr;
s32 temp_a0;
s32 phi_v1;
s32 phi_v0;
s32 phi_a0;
//phi_v0 = frameBuffer;
//temp_v0 = glyph * 7;
ptr = framebuffer; //+ y * 320 + x;
data = crashScreenFont[glyph * 8];
temp_v0 = 0;
while(temp_v0 != 8) {
phi_v1 = (s32)*data;
phi_a0 = 5;
for (temp_a0 = 0; temp_a0 >= 0; temp_a0++) {
if (phi_v1 & 1) {
framebuffer += ((((y +phi_v0) * 320) + x + phi_a0) * 2);
}
//ptr++;
phi_a0--;
*data += *data >> 1;
//phi_a0 = temp_a0;
}
//phi_v0++;
//phi_v0 = temp_v0;
data += 1;
}
}
*/
/*
void func_800040C0(s32 x, s32 y, s32 w, s32 h) {
u16 *ptr;
void crash_screen_draw_glyph(u16 *framebuffer, s32 x, s32 y, s32 glyph) {
s32 data;
s32 ptr;
s32 i, j;
ptr = gCrashScreen.framebuffer + gCrashScreen.width * y + x;
for (i = 0; i < h; i++) {
for (j = 0; j < w; j++) {
// 0xe738 = 0b1110011100111000
*ptr = ((*ptr & 0xe738) >> 2) | 1;
ptr++;
for(i = 0; i < 8; i++) {
data = crashScreenFont[glyph][i];
for (j = 5; j >= 0; j--) {
ptr = (y + i) * 320 + (x + j);
if (data & 1) {
framebuffer[ptr] = 0xffff;
}
data = data >> 1;
}
ptr += gCrashScreen.width - w;
}
}
*/
GLOBAL_ASM("asm/non_matchings/crash_screen/func_800040C0.s")
GLOBAL_ASM("asm/non_matchings/crash_screen/crash_screen.s")
/*
@@ -399,4 +365,4 @@ void start_debug_thread(void) {
osStartThread(&D_80162790);
}
*/
*/
+22
View File
@@ -0,0 +1,22 @@
#include <ultra64.h>
#include "config.h"
u8 D_802BA290[22768];
u8 D_802BFB80[77824];
u8 D_802D2B80[32768]; // Luigi raceway course path ghost
u8 D_802DAB80[20480];
u16 D_802DFB80[37376];
u16 D_802F1F80[16382];
u16 gZBuffer[SCREEN_WIDTH * SCREEN_HEIGHT];
#ifdef AVOID_UB
u16 gFramebuffers[3][SCREEN_WIDTH * SCREEN_HEIGHT];
#else
u16 gFramebuffer0[SCREEN_WIDTH * SCREEN_HEIGHT];
u16 gFramebuffer1[SCREEN_WIDTH * SCREEN_HEIGHT];
u16 gFramebuffer2[SCREEN_WIDTH * SCREEN_HEIGHT];
#endif
+34
View File
@@ -0,0 +1,34 @@
#ifndef FRAMEBUFFERS_H
#define FRAMEBUFFERS_H
#include <PR/ultratypes.h>
#include "config.h"
extern u8 D_802BA290[22768];
extern u8 D_802BFB80[77824];
extern u8 D_802D2B80[32768];
extern u8 D_802DAB80[20480];
extern u16 D_802DFB80[37376];
extern u16 D_802F1F80[16382];
extern u16 gZBuffer[SCREEN_WIDTH * SCREEN_HEIGHT];
// NOTE: This UB fix from sm64 implemented in mk64,
// in-case it has the same issue.
// untested. Unconfirmed if this applies to mk64.
// level_script.c assumes that the frame buffers are adjacent, while game.c's
// -g codegen implies that they are separate variables. This is impossible to
// reconcile without undefined behavior. Avoid that when possible.
#ifdef AVOID_UB
extern u16 gFramebuffers[3][SCREEN_WIDTH * SCREEN_HEIGHT];
#define gFramebuffer0 gFramebuffers[0]
#define gFramebuffer1 gFramebuffers[1]
#define gFramebuffer2 gFramebuffers[2]
#else
extern u16 gFramebuffer0[SCREEN_WIDTH * SCREEN_HEIGHT];
extern u16 gFramebuffer1[SCREEN_WIDTH * SCREEN_HEIGHT];
extern u16 gFramebuffer2[SCREEN_WIDTH * SCREEN_HEIGHT];
#endif
#endif // FRAMEBUFFERS_H
+82 -133
View File
@@ -25,8 +25,14 @@ void profiler_log_vblank_time(void);
void create_thread(OSThread *thread, OSId id, void (*entry)(void *), void *arg, void *sp, OSPri pri);
void create_debug_thread(void);
void start_debug_thread(void);
struct SPTask *create_next_audio_frame_task(void);
extern void dma_copy(u8 *dest, u8 *arg1, u32 size);
extern s32 func_802A7D70(u8 *arg0, u8 *arg1);
extern void func_802A7CF0(u32 arg0, u32 arg1);
extern s32 D_800DC524;
extern s32 D_800DC52C;
extern OSThread gIdleThread;
@@ -137,21 +143,23 @@ extern u8 _data_segment2SegmentRomEnd[];
extern u8 _common_texturesSegmentRomStart[];
extern u8 _common_texturesSegmentRomEnd[];
extern u8 _data_802BA370SegmentRomStart[];
extern OSMesg *D_8014F098;
extern OSIoMesg *D_8014F0A0;
extern OSMesg D_8014F098;
extern OSIoMesg D_8014F0A0;
extern u32 gHeapEndPtr;
extern u32 *D_801978D0;
extern OSContPad *gControllerPads[4];
extern OSMesgQueue gSIEventMesgQueue;
extern OSMesg gSIEventMesgBuf[3];
extern u32 D_801502B4;
extern u32 D_802F9F80;
extern u32 gZBuffer;
extern s32 D_8031F780;
extern s32 D_80344F80[];
extern s32 D_8036A780;
extern s32 gFramebuffer0;
extern s32 gFramebuffer1;
extern s32 gFramebuffer2;
extern s32 D_8015AB80;
extern s32 D_801589D0;
@@ -273,65 +281,48 @@ void init_controllers(void) {
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit ffee479fae41a1cdc3e454e9b9d75bbd226a160f
void func_80000934(s32 arg0) {
s32 temp_a2;
u16 temp_a1;
u16 temp_t4;
void *temp_v0;
void *temp_v1;
u16 phi_a1;
struct Controller *controller = &gControllers[arg0];
u16 phi_a0;
u16 phi_a0_2;
u16 phi_a0_3;
u16 phi_a0_4;
if (sController1Unplugged == 0) {
// potantial sizeof structs?
temp_v1 = (arg0 * 6) + &gControllerPads;
temp_v0 = (arg0 * 0x10) + &gControllers;
temp_v0->unk0 = (s16) temp_v1->unk2;
temp_v0->unk2 = (s16) temp_v1->unk3;
temp_t4 = temp_v1->unk0 | 0x2000;
phi_a1 = temp_v1->unk0;
if ((temp_v1->unk0 & 4) != 0) {
temp_v1->unk0 = temp_t4;
phi_a1 = temp_t4 & 0xFFFF;
}
temp_v0->unk6 = (s16) ((phi_a1 ^ temp_v0->unk4) & phi_a1);
temp_v0->unk8 = (s16) ((temp_v1->unk0 ^ temp_v0->unk4) & temp_v0->unk4);
temp_v0->unk4 = (u16) temp_v1->unk0;
phi_a0_4 = (u16)0U;
if ((s32) temp_v0->unk0 < -0x32) {
phi_a0_4 = (u16)0x200U;
}
phi_a0_3 = phi_a0_4;
if ((s32) temp_v0->unk0 >= 0x33) {
phi_a0_3 = (phi_a0_4 | 0x100) & 0xFFFF;
}
phi_a0_2 = phi_a0_3;
if ((s32) temp_v0->unk2 < -0x32) {
phi_a0_2 = (phi_a0_3 | 0x400) & 0xFFFF;
}
phi_a0 = phi_a0_2;
if ((s32) temp_v0->unk2 >= 0x33) {
phi_a0 = (phi_a0_2 | 0x800) & 0xFFFF;
}
temp_a1 = temp_v0->unkA;
temp_v0->unkA = phi_a0;
temp_a2 = phi_a0 ^ temp_a1;
temp_v0->unkC = (s16) (phi_a0 & temp_a2);
temp_v0->unkE = (s16) (temp_a1 & temp_a2);
if (sController1Unplugged != 0) {
return;
}
controller->rawStickX = gControllerPads[arg0]->stick_x;
controller->rawStickY = gControllerPads[arg0]->stick_y;
if ((gControllerPads[arg0]->button & 4) != 0) {
gControllerPads[arg0]->button |= Z_TRIG;
gControllerPads[arg0]->button |= Z_TRIG;
}
controller->buttonPressed = ((gControllerPads[arg0]->button ^ controller->button) & gControllerPads[arg0]->button);
controller->buttonDepressed = ((gControllerPads[arg0]->button ^ controller->button) & controller->button);
controller->button = &gControllerPads[arg0]->button;
phi_a0 = 0;
if (controller->rawStickX < -50) {
phi_a0 |= L_JPAD;
}
if (controller->rawStickX > 50) {
phi_a0 |= R_JPAD;
}
if (controller->rawStickY < -50) {
phi_a0 |= D_JPAD;
}
if (controller->rawStickY > 50) {
phi_a0 |= U_JPAD;
}
controller->stickPressed = phi_a0 & (phi_a0 ^ controller->stickDirection);
controller->stickDepressed = controller->stickDirection & (phi_a0 ^ controller->stickDirection);
controller->stickDirection = phi_a0;
}
#else
GLOBAL_ASM("asm/non_matchings/main/func_80000934.s")
#endif
#ifdef MIPS_TO_C
// generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b
void *read_controllers(void) {
? sp1C;
void read_controllers(void) {
OSMesg sp1C;
osContStartReadData(&gSIEventMesgQueue);
osRecvMesg(&gSIEventMesgQueue, &sp1C, 1);
@@ -340,20 +331,16 @@ void *read_controllers(void) {
func_80000934(1);
func_80000934(2);
func_80000934(3);
D_800DC4CC->unk4 = (s16) (((D_800DC4BC->unk4 | D_800DC4C0->unk4) | D_800DC4C4->unk4) | D_800DC4C8->unk4);
D_800DC4CC->unk6 = (s16) (((D_800DC4BC->unk6 | D_800DC4C0->unk6) | D_800DC4C4->unk6) | D_800DC4C8->unk6);
D_800DC4CC->unk8 = (s16) (((D_800DC4BC->unk8 | D_800DC4C0->unk8) | D_800DC4C4->unk8) | D_800DC4C8->unk8);
D_800DC4CC->unkA = (s16) (((D_800DC4BC->unkA | D_800DC4C0->unkA) | D_800DC4C4->unkA) | D_800DC4C8->unkA);
D_800DC4CC->unkC = (s16) (((D_800DC4BC->unkC | D_800DC4C0->unkC) | D_800DC4C4->unkC) | D_800DC4C8->unkC);
D_800DC4CC->unkE = (s16) (((D_800DC4BC->unkE | D_800DC4C0->unkE) | D_800DC4C4->unkE) | D_800DC4C8->unkE);
return &D_800DC4CC;
D_800DC4CC->button = (s16) (((D_800DC4BC->button | D_800DC4C0->button) | D_800DC4C4->button) | D_800DC4C8->button);
D_800DC4CC->buttonPressed = (s16) (((D_800DC4BC->buttonPressed | D_800DC4C0->buttonPressed) | D_800DC4C4->buttonPressed) | D_800DC4C8->buttonPressed);
D_800DC4CC->buttonDepressed = (s16) (((D_800DC4BC->buttonDepressed | D_800DC4C0->buttonDepressed) | D_800DC4C4->buttonDepressed) | D_800DC4C8->buttonDepressed);
D_800DC4CC->stickDirection = (s16) (((D_800DC4BC->stickDirection | D_800DC4C0->stickDirection) | D_800DC4C4->stickDirection) | D_800DC4C8->stickDirection);
D_800DC4CC->stickPressed = (s16) (((D_800DC4BC->stickPressed | D_800DC4C0->stickPressed) | D_800DC4C4->stickPressed) | D_800DC4C8->stickPressed);
D_800DC4CC->stickDepressed = (s16) (((D_800DC4BC->stickDepressed | D_800DC4C0->stickDepressed) | D_800DC4C4->stickDepressed) | D_800DC4C8->stickDepressed);
}
#else
GLOBAL_ASM("asm/non_matchings/main/read_controllers.s")
#endif
void func_80000BEC(void) {
D_801502B4 = VIRTUAL_TO_PHYSICAL(&D_802F9F80);
D_801502B4 = VIRTUAL_TO_PHYSICAL(&gZBuffer);
}
// send_sp_task_message from SM64
@@ -464,64 +451,31 @@ void func_800010CC(void) {
osInvalDCache(SEG_8028DF00, 0x2C470);
}
// Similar to dma_read in SM64
#ifdef MIPS_TO_C
//generated by mips_to_c commit ffee479fae41a1cdc3e454e9b9d75bbd226a160f
void dma_copy(s32 arg0, s32 arg1, u32 arg2) {
s32 temp_s1;
s32 temp_s2;
u32 temp_s0;
s32 phi_s2;
s32 phi_s1;
u32 phi_s0;
u32 phi_s0_2;
s32 phi_s2_2;
s32 phi_s1_2;
void dma_copy(u8 *dest, u8 *arg1, u32 size) {
osInvalDCache(arg2);
phi_s0_2 = arg2;
phi_s2_2 = arg1;
phi_s1_2 = arg0;
if (arg2 >= 0x101U) {
phi_s2 = arg1;
phi_s1 = arg0;
phi_s0 = arg2;
loop_2:
osPiStartDma(&D_8014F0A0, 0, 0, phi_s2, phi_s1, 0x100, &D_8014EF58);
osInvalDCache(dest, size);
while(size > 0x100) {
osPiStartDma(&D_8014F0A0, 0, 0, (unsigned long)arg1, dest, 0x100, &D_8014EF58);
osRecvMesg(&D_8014EF58, &D_8014F098, 1);
temp_s0 = phi_s0 - 0x100;
temp_s2 = phi_s2 + 0x100;
temp_s1 = phi_s1 + 0x100;
phi_s2 = temp_s2;
phi_s1 = temp_s1;
phi_s0 = temp_s0;
phi_s0_2 = temp_s0;
phi_s2_2 = temp_s2;
phi_s1_2 = temp_s1;
if (temp_s0 >= 0x101U) {
goto loop_2;
}
size -= 0x100;
arg1 += 0x100;
dest += 0x100;
}
if (phi_s0_2 != 0) {
osPiStartDma(&D_8014F0A0, 0, 0, phi_s2_2, phi_s1_2, phi_s0_2, &D_8014EF58);
if (size != 0) {
osPiStartDma(&D_8014F0A0, 0, 0, (unsigned long)arg1, dest, size, &D_8014EF58);
osRecvMesg(&D_8014EF58, &D_8014F098, 1);
}
}
#else
GLOBAL_ASM("asm/non_matchings/main/dma_copy.s")
#endif
// Resembles setup_game_memory from SM64
#ifdef NON_MATCHING
void init_game(void) {
s32 sp38;//0x38(sp)
u32 *sp2C;
s32 temp_t7;
s32 sp40;
UNUSED u32 pad[2];
u32 sp2C;
u32 sp40;
s32 texture_seg;
//u32 temp_a1;
UNUSED s16 unknown_padding;
s32 sp38;
UNUSED s32 unknown_padding;
func_800010CC();
gHeapEndPtr = SEG_8028DF00;
set_segment_base_addr(0, 0x80000000);
@@ -531,16 +485,14 @@ void init_game(void) {
osPiStartDma(&D_8014F0A0, 0, 0, &_data_802BA370SegmentRomStart, SEG_802BA370, 0x5810, &D_8014EF58);
osRecvMesg(&D_8014EF58, &D_8014F098, 1);
set_segment_base_addr(2, func_802A7D70(&_data_segment2SegmentRomStart, &_data_segment2SegmentRomEnd));
texture_seg = ALIGN16((u32)&_common_texturesSegmentRomEnd - (u32)&_common_texturesSegmentRomStart);
sp2C = SEG_8028DF00 - texture_seg;
osPiStartDma(&D_8014F0A0, 0, 0, &_common_texturesSegmentRomStart, SEG_8028DF00 - texture_seg, texture_seg, &D_8014EF58);
sp2C = (u32)&_common_texturesSegmentRomEnd - (u32)&_common_texturesSegmentRomStart;
sp2C = ALIGN16(sp2C);
texture_seg = SEG_8028DF00-sp2C;
osPiStartDma(&D_8014F0A0, 0, 0, &_common_texturesSegmentRomStart, texture_seg, sp2C, &D_8014EF58);
osRecvMesg(&D_8014EF58, &D_8014F098, 1);
//need to match this
sp40 = texture_seg + 4;
sp40 = ALIGN16(sp2C[1]);
sp40 = *(u32 *)(texture_seg + 4);
sp40 = ALIGN16(sp40);
sp38 = gPrevLoadedAddress;
mio0decode(texture_seg, sp38);
set_segment_base_addr(0xD, sp38);
@@ -548,9 +500,6 @@ void init_game(void) {
gPrevLoadedAddress += sp40;
D_8015F734 = gPrevLoadedAddress;
}
#else
GLOBAL_ASM("asm/non_matchings/main/init_game.s")
#endif
void func_80001404(void) {
D_800DC524 = 0;
@@ -1134,18 +1083,18 @@ GLOBAL_ASM("asm/non_matchings/main/func_800022DC.s")
void thread3_video(void *arg0) {
u64 *temp_v0;
s32 i;
gPhysicalFramebuffers[0] = (uintptr_t *) &D_8031F780;
gPhysicalFramebuffers[1] = (uintptr_t *) &D_80344F80;
gPhysicalFramebuffers[2] = (uintptr_t *) &D_8036A780;
//phi_v0 = &D_80344F80;
gPhysicalFramebuffers[0] = (uintptr_t *) &gFramebuffer0;
gPhysicalFramebuffers[1] = (uintptr_t *) &gFramebuffer1;
gPhysicalFramebuffers[2] = (uintptr_t *) &gFramebuffer2;
//phi_v0 = &gFramebuffer1;
//loop_1:
// potential unrolled loop?
temp_v0 = &D_80344F80[0];
for (i = 0; i < D_8036A780; i++) {
temp_v0 = &gFramebuffer1;
for (i = 0; i < gFramebuffer2; i++) {
temp_v0[i] = 0;
}
//if (D_80344F80 != &D_8036A780) {
//if (gFramebuffer1 != &gFramebuffer2) {
// goto loop_1;
//}
setup_mesg_queues();
+595
View File
@@ -0,0 +1,595 @@
#include <ultra64.h>
#include <macros.h>
#include <types.h>
#include <common_structs.h>
extern s32 mio0encode(s32 input, s32, s32);
extern s32 func_80040174(void *, s32, s32);
extern s32 func_800B4E24(s32 arg0);
extern void func_80005AE8(Player *ply);
u32 *D_80162D80;
s16 D_80162D84;
s16 D_80162D86;
u16 D_80162D88;
u32 D_80162D8C;
s16 D_80162D90;
u32 *D_80162D94;
u16 D_80162D98;
u32 D_80162D9C;
s16 D_80162DA0;
u32 *D_80162DA4;
u16 D_80162DA8;
s32 D_80162DAC;
s16 D_80162DB0;
u32 *D_80162DB4;
s16 D_80162DB8;
u32 *D_80162DBC;
u16 D_80162DC0;
u32 D_80162DC4;
s32 D_80162DC8;
s32 D_80162DCC;
s32 D_80162DD0;
u16 D_80162DD4;
u16 D_80162DD6;
u16 D_80162DD8;
s32 D_80162DDC;
s32 D_80162DE0;
s32 D_80162DE4;
s32 D_80162DE8;
s32 D_80162DEC;
s32 D_80162DF0;
s32 D_80162DF4;
s32 D_80162DF8;
s32 D_80162DFC;
s32 D_80162E00;
extern u8 D_802BFB80[77824];
extern u8 D_802D2B80[32768];
extern u8 D_802DAB80[20480];
u32 *D_800DC710 = &D_802D2B80[0];
u32 *D_800DC714 = &D_802DAB80[0];
extern OSIoMesg *D_8014F0A0;
extern u8 _kart_texturesSegmentRomStart;
extern OSMesgQueue D_8014EF58;
extern OSMesg D_8014F098;
extern s16 gCurrentCourseId;
extern s32 gModeSelection;
extern s32 D_800DC52C;
extern u16 D_8015F890;
extern s32 lapCount[];
extern s32 D_8018CA78;
extern Player *D_800DC4DC;
extern Player* D_800DC4E0;
extern Player *D_800DC4E4;
extern struct Controller *D_800DC4D0;
extern struct Controller *D_800DC4D4;
extern struct Controller *D_800DC4D8;
extern struct Controller *D_800DC4BC;
extern StaffGhost *d_mario_raceway_staff_ghost;
extern StaffGhost *d_royal_raceway_staff_ghost;
extern StaffGhost *d_luigi_raceway_staff_ghost;
extern s32 D_80164394;
extern s32 D_80164398;
void func_80004EF0(void) {
D_80162DA4 = &D_802D2B80[0];
osInvalDCache(&D_80162DA4[0], 0x4000);
osPiStartDma(&D_8014F0A0, 0, 0, (D_80162DC4 & 0xFFFFFF) + &_kart_texturesSegmentRomStart, D_80162DA4, 0x4000, &D_8014EF58);
osRecvMesg(&D_8014EF58, &D_8014F098, 1);
D_80162D9C = (*D_80162DA4 & 0xFF0000);
D_80162DA0 = 0;
}
void func_80004FB0(void) {
D_80162DB4 = &D_802BFB80[(D_80162DD0 << 0xf) + 0x3000];
D_80162DAC = *D_80162DB4 & 0xFF0000;
D_80162DB0 = 0;
}
void func_80004FF8(void) {
D_80162D94 = &D_802BFB80[(D_80162DC8 << 0xF) + 0x3000];
D_80162D8C = (s32) *D_80162D94 & 0xFF0000;
D_80162D90 = 0;
}
/**
* Activates staff ghost if time trial lap time is lower enough
*
*/
void set_staff_ghost(void) {
u32 temp_v0; // Appears to be player total lap time.
switch(gCurrentCourseId) {
case COURSE_MARIO_RACEWAY:
temp_v0 = func_800B4E24(0) & 0xfffff;
if (temp_v0 <= 9000) {
D_80162DD6 = 0;
D_80162DF4 = 0;
} else {
D_80162DD6 = 1;
D_80162DF4 = 1;
}
D_80162DC4 = &d_mario_raceway_staff_ghost;
D_80162DE4 = 0;
break;
case COURSE_ROYAL_RACEWAY:
temp_v0 = func_800B4E24(0) & 0xfffff;
if (temp_v0 <= 16000) {
D_80162DD6 = 0;
D_80162DF4 = 0;
} else {
D_80162DD6 = 1;
D_80162DF4 = 1;
}
D_80162DC4 = &d_royal_raceway_staff_ghost;
D_80162DE4 = 6;
break;
case COURSE_LUIGI_RACEWAY:
temp_v0 = func_800B4E24(0) & 0xfffff;
if (temp_v0 <= 11200) {
D_80162DD6 = 0;
D_80162DF4 = 0;
} else {
D_80162DD6 = 1;
D_80162DF4 = 1;
}
D_80162DC4 = &d_luigi_raceway_staff_ghost;
D_80162DE4 = 1;
break;
default:
D_80162DD6 = 1;
D_80162DF4 = 1;
}
}
s32 func_800051C4(void) {
s32 phi_v0;
if (D_80162D84 != 0) {
// func_80040174 in mio0_decode.s
func_80040174(D_80162D80, (D_80162D84 * 4) + 0x20, D_800DC710);
phi_v0 = mio0encode(D_800DC710, (D_80162D84 * 4) + 0x20, D_800DC714);
return phi_v0 + 0x1e;
}
}
void func_8000522C(void) {
D_80162D94 = &D_802BFB80[(D_80162DC8 << 0xF) + 0x3000];
mio0decode(D_800DC714, D_80162D94);
D_80162D8C = (s32) (*D_80162D94 & 0xFF0000);
D_80162D90 = 0;
D_80162E00 = 1;
}
void func_800052A4(void) {
s16 temp_v0;
if (D_80162DC8 == 1) {
D_80162DC8 = 0;
D_80162DCC = 1;
} else {
D_80162DC8 = 1;
D_80162DCC = 0;
}
temp_v0 = D_80162DB8;
D_80162D80 = (void *) &D_802BFB80[(D_80162DC8 << 0xF) + 0x3000];
D_80162D84 = temp_v0;
D_80162D86 = temp_v0;
}
void func_80005310(void) {
// if time trials
if (gModeSelection == 1) {
set_staff_ghost();
if (D_80162DC0 != gCurrentCourseId) {
D_80162DD4 = 1;
}
D_80162DC0 = (u16) gCurrentCourseId;
D_80162DF0 = 0;
D_80162DEC = 0;
D_80162DF8 = 0;
if (gModeSelection == 1 && D_800DC52C == 0) {
if (D_8015F890 == 1) {
func_80004FB0();
if (D_80162DD8 == 0) {
func_80004FF8();
}
if (D_80162DD6 == 0) {
func_80004EF0();
}
} else {
D_80162DD8 = 1U;
D_80162DBC = &D_802BFB80[(D_80162DCC << 0xF) + 0x3000];
D_80162DBC[0] = -1;
D_80162DB8 = 0;
D_80162DDC = 0;
func_80091EE4(&D_80162DC0);
if (D_80162DD4 == 0) {
func_80004FF8();
}
if (D_80162DD6 == 0) {
func_80004EF0();
}
}
}
}
}
s32 func_8000546C(void) {
u32 temp_a0;
u32 temp_a1;
UNUSED u16 unk;
u16 temp_v1;
s16 phi_v1;
s16 phi_v0 = 0;
if (D_80162DB0 >= 0x1000) {
D_800DC4DC->unk_000 = 0x3800;
return;
}
temp_a0 = D_80162DB4[D_80162DB0];
temp_a1 = temp_a0 & 0xFF;
if (temp_a1 < 0x80U) {
phi_v1 = (s16) (temp_a1 & 0xFF);
} else {
phi_v1 = (s16) (temp_a1 | (~0xFF));
}
temp_a1 = (u32) (temp_a0 & 0xFF00) >> 8;
D_800DC4D8->rawStickX = phi_v1;
if (temp_a1 < 0x80U) {
phi_v1 = (s16) (temp_a1 & 0xFF);
} else {
phi_v1 = (s16) (temp_a1 | (~0xFF));
}
D_800DC4D8->rawStickY = phi_v1;
if (temp_a0 & 0x80000000) {
phi_v0 |= A_BUTTON;
}
if (temp_a0 & 0x40000000) {
phi_v0 |= B_BUTTON;
}
if (temp_a0 & 0x20000000) {
phi_v0 |= Z_TRIG;
}
if (temp_a0 & 0x10000000) {
phi_v0 |= R_TRIG;
}
temp_v1 = D_800DC4D8->buttonPressed & 0x1F0F;
D_800DC4D8->buttonPressed = (phi_v0 & (phi_v0 ^ D_80162DA8)) | temp_v1;
temp_v1 = D_800DC4D8->buttonDepressed & 0x1F0F;
D_800DC4D8->buttonDepressed = (D_80162DA8 & (phi_v0 ^ D_80162DA8)) | temp_v1;
D_80162DA8 = phi_v0;
D_800DC4D8->button = phi_v0;
if (D_80162DAC == 0) {
D_80162DB0++;
D_80162DAC = (s32) (D_80162DB4[D_80162DB0] & 0xFF0000);
} else {
D_80162DAC += 0xFFFF0000;
}
}
void func_8000561C(void) {
u32 temp_a0;
u32 temp_v0;
UNUSED u16 unk;
u16 temp_v1;
s16 phi_v1;
s16 phi_a2 = 0;
if (D_80162DA0 >= 0x1000) {
func_80005AE8(D_800DC4E4);
return;
}
temp_a0 = D_80162DA4[D_80162DA0];
temp_v0 = temp_a0 & 0xFF;
if (temp_v0 < 0x80U) {
phi_v1 = (s16) (temp_v0 & 0xFF);
} else {
phi_v1 = (s16) (temp_v0 | (~0xFF));
}
temp_v0 = (u32) (temp_a0 & 0xFF00) >> 8;
D_800DC4D4->rawStickX = phi_v1;
if (temp_v0 < 0x80U) {
phi_v1 = (s16) (temp_v0 & 0xFF);
} else {
phi_v1 = (s16) (temp_v0 | (~0xFF));
}
D_800DC4D4->rawStickY = phi_v1;
if (temp_a0 & 0x80000000) {
phi_a2 = A_BUTTON;
}
if (temp_a0 & 0x40000000) {
phi_a2 |= B_BUTTON;
}
if (temp_a0 & 0x20000000) {
phi_a2 |= Z_TRIG;
}
if (temp_a0 & 0x10000000) {
phi_a2 |= R_TRIG;
}
temp_v1 = D_800DC4D4->buttonPressed & 0x1F0F;
D_800DC4D4->buttonPressed = (phi_a2 & (phi_a2 ^ D_80162D98)) | temp_v1;
temp_v1 = D_800DC4D4->buttonDepressed & 0x1F0F;
D_800DC4D4->buttonDepressed = (D_80162D98 & (phi_a2 ^ D_80162D98)) | temp_v1;
D_80162D98 = phi_a2;
D_800DC4D4->button = phi_a2;
if (D_80162D9C == 0) {
D_80162DA0++;
D_80162D9C = (s32) (D_80162DA4[D_80162DA0] & 0xFF0000);
} else {
D_80162D9C += (s32) 0xFFFF0000;
}
}
void func_800057DC(void) {
u32 temp_a0;
u32 temp_v0;
UNUSED u16 unk;
u16 temp_v1;
s16 phi_v1;
s16 phi_a2 = 0;
if (D_80162D90 >= 0x1000) {
func_80005AE8(D_800DC4E0);
return;
}
temp_a0 = D_80162D94[D_80162D90];
temp_v0 = temp_a0 & 0xFF;
if (temp_v0 < 0x80U) {
phi_v1 = (s16) (temp_v0 & 0xFF);
} else {
phi_v1 = (s16) (temp_v0 | ~0xFF);
}
temp_v0 = (u32) (temp_a0 & 0xFF00) >> 8;
D_800DC4D0->rawStickX = phi_v1;
if (temp_v0 < 0x80U) {
phi_v1 = (s16) (temp_v0 & 0xFF);
} else {
phi_v1 = (s16) (temp_v0 | (~0xFF));
}
D_800DC4D0->rawStickY = phi_v1;
if (temp_a0 & 0x80000000) {
phi_a2 |= A_BUTTON;
}
if (temp_a0 & 0x40000000) {
phi_a2 |= B_BUTTON;
}
if (temp_a0 & 0x20000000) {
phi_a2 |= Z_TRIG;
}
if (temp_a0 & 0x10000000) {
phi_a2 |= R_TRIG;
}
temp_v1 = D_800DC4D0->buttonPressed & 0x1F0F;
D_800DC4D0->buttonPressed = (phi_a2 & (phi_a2 ^ D_80162D88)) | temp_v1;
temp_v1 = D_800DC4D0->buttonDepressed & 0x1F0F;
D_800DC4D0->buttonDepressed = (D_80162D88 & (phi_a2 ^ D_80162D88)) | temp_v1;
D_80162D88 = phi_a2;
D_800DC4D0->button = phi_a2;
if (D_80162D8C == 0) {
D_80162D90++;
D_80162D8C = (s32) (D_80162D94[D_80162D90] & 0xFF0000);
} else {
D_80162D8C += (s32) 0xFFFF0000;
}
}
/*
void func_8000599C(void) {
s16 temp_a2;
u32 temp_v0;
u32 temp_v1;
u32 temp_v2;
u32 *temp_t0;
u32 temp_a0_2;
u32 temp_a3;
u32 phi_a3;
if (D_80162DB8 >= 0x1000) {
D_80162DF8 = 1;
return;
}
temp_v1 &= 0xff;
temp_v2 &= 0xff << 8;
//temp_v1 = D_800DC4DC->unk_0CA;
//if (((temp_v1 & 2) != 0) || ((temp_v1 & 8) != 0)) {
//}
temp_a2 = D_800DC4BC->button;
phi_a3 = 0;
if (temp_a2 & A_BUTTON) {
phi_a3 |= 0x80000000;
}
if (temp_a2 & B_BUTTON) {
phi_a3 |= 0x40000000;
}
if (temp_a2 & Z_TRIG) {
phi_a3 |= 0x20000000;
}
if (temp_a2 & R_TRIG) {
phi_a3 |= 0x10000000;
}
phi_a3 |= temp_v1;
phi_a3 |= temp_v2;
temp_v0 = (D_800DC4BC->rawStickY & 0xFF) << 8;
temp_a3 = phi_a3 | (D_800DC4BC->rawStickX & 0xFF) | temp_v0;
temp_a0_2 = &D_80162DBC[D_80162DB8];;
if (*D_80162DBC == -1) {
*temp_t0 = temp_a3;
} else {
if ((temp_a0_2 & 0xFF00FFFF) == temp_a3) {
if ((temp_a0_2 & 0xFF0000) == 0xFF0000) {
D_80162DB8++;
D_80162DBC[D_80162DB8] = temp_a3;
} else {
*temp_t0 += 0x10000;
}
} else {
D_80162DB8++;
D_80162DBC[D_80162DB8] = temp_a3;
}
}
}
*/
GLOBAL_ASM("asm/non_matchings/code_80004EF0/func_8000599C.s")
// sets player to AI? (unconfirmed)
void func_80005AE8(Player *ply) {
if (((ply->unk_000 & 0x100) != 0) && (ply != D_800DC4DC)) {
ply->unk_000 = 0x3800U;
}
}
#ifdef NON_MATCHING
void func_80005B18(void) {
s16 *temp_v0_2;
s16 *temp_v0_3;
s32 temp_v0;
u16 *phi_a3;
if (gModeSelection == 1) {
temp_v0 = lapCount[0];
//phi_a3 = &D_80162DD4;
if ((lapCount[0] == 3) && (D_80162DDC == 0) && D_80162DF8 != 1) {
//if (D_80162DF8 != 1) {
if (D_80162DD4 == 1) {
D_80162DD0 = D_80162DCC;
func_800052A4(); //gModeSelection, &D_80162DDC, 3, &D_80162DD4);
D_80162DD4 = 0;
D_80162DDC = 1;
D_80162DE0 = D_800DC4DC->unk_254;
D_80162DE8 = D_800DC4DC->unk_254;
D_80162E00 = 0;
D_80162DFC = D_8018CA78;
func_80005AE8(D_800DC4E0); // (u16) &D_80162DDC);
func_80005AE8(D_800DC4E4);
} else {
if (lapCount[4] != 3) {
D_80162DD0 = D_80162DCC;
func_800052A4(); // gModeSelection, &D_80162DDC, 3, &D_80162DD4);
D_80162DDC = 1;
D_80162DE0 = D_800DC4DC->unk_254;
D_80162DFC = D_8018CA78;
D_80162E00 = 0;
D_80162DE8 = D_800DC4DC->unk_254;
func_80005AE8(D_800DC4E0); // (u16) &D_80162DDC);
func_80005AE8(D_800DC4E4);
return;
}
}
D_80162D80 = (void *) ((D_80162DC8 << 0xF) + 0x3000 + &D_802BFB80);
D_80162D84 = D_80162D86;
D_80162DD0 = D_80162DCC;
D_80162DE8 = D_800DC4DC->unk_254;
D_80162DD8 = 0;
D_80162DD4 = 0;
D_80162DDC = 1;
func_80005AE8(D_800DC4E0); // (u16) &D_80162DDC, 3, &D_80162DD4);
func_80005AE8(D_800DC4E4);
return;
}
if ((lapCount[0] == 3) && (D_80162DDC == 0) && (D_80162DF8 == 1)) {
D_80162D80 = (void *) ((D_80162DC8 << 0xF) + 0x3000 + &D_802BFB80);
D_80162D84 = D_80162D86;
D_80162DDC = 1;
}
if (( D_800DC4DC->unk_000 & 0x800) == 0x800) {
func_80005AE8(D_800DC4E0); // (u16) &D_80162DDC, 3, phi_a3);
func_80005AE8(D_800DC4E4);
return;
};
D_80162DEC++;
if (D_80162DEC > 100) {
D_80162DEC = 100;
}
if ((gModeSelection == 1) && (D_800DC52C == 0)) {
if ((D_80162DD4 == 0) && (lapCount[4] != 3)) {
func_800057DC(); //gModeSelection, &D_80162DDC, 3, &D_80162DD4);
}
if ((D_80162DD6 == 0) && (3 != lapCount[8])) {
func_8000561C();
}
if (( D_800DC4DC->unk_000 & 0x800) == 0) {
func_8000599C();
}
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80004EF0/func_80005B18.s")
#endif
void func_80005E6C(void) {
if ((gModeSelection == 1) && (gModeSelection == 1) && (D_800DC52C == 0)) {
if ((D_80162DD8 == 0) && (D_80164394 != 3)) {
func_800057DC(); //3
}
if ((D_80162DD6 == 0) && (D_80164398 != 3)) {
func_8000561C(); //2
}
if ((D_800DC4DC->unk_000 & 0x800) != 0x800) {
func_8000546C(); //1
return;
}
func_80005AE8(D_800DC4E0);
func_80005AE8(D_800DC4E4);
}
}
void func_80005F44(void) {
if (D_8015F890 == 1) {
func_80005E6C();
return;
}
if (D_80162DF0 == 0) {
func_80005B18();
return;
}
D_80162DF8 = 1;
}
-14
View File
@@ -762,20 +762,6 @@ D_80287B20 = 0x80287B20;
D_802BFB80 = 0x802BFB80; /* unused? End of game_data_802BA370.s */
D_802D2B80 = 0x802D2B80;
D_802DAB80 = 0x802DAB80;
D_802DFB80 = 0x802DFB80;
D_802F1F80 = 0x802F1F80;
D_802F9F80 = 0x802F9F80;
D_8031F780 = 0x8031F780;
D_80344F80 = 0x80344F80;
D_8036A780 = 0x8036A780;
gGfxSPTaskOutputBuffer = 0x8038FF80;
gGfxSPTaskOutputBufferSize = 0x803AF780;
D_803AF790 = 0x803AF790;
D_803AFBB0 = 0x803AFBB0;
D_803AFBC0 = 0x803AFBC0;