diff --git a/Makefile b/Makefile index a4b2a3e57..8a85fb56d 100644 --- a/Makefile +++ b/Makefile @@ -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 \ diff --git a/README.md b/README.md index 3be6927a5..f516b8942 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/asm/bss_80004EF0.s b/asm/bss_80004EF0.s deleted file mode 100644 index 03d0c265e..000000000 --- a/asm/bss_80004EF0.s +++ /dev/null @@ -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 diff --git a/asm/bss_80005FD0.s b/asm/bss_80005FD0.s index 6e9dcc65b..4ddff8189 100644 --- a/asm/bss_80005FD0.s +++ b/asm/bss_80005FD0.s @@ -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 \ No newline at end of file +.skip 220 diff --git a/asm/bss_8028DF00.s b/asm/bss_8028DF00.s index ae36f2df3..a20460013 100644 --- a/asm/bss_8028DF00.s +++ b/asm/bss_8028DF00.s @@ -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 diff --git a/asm/non_matchings/code_80004EF0/func_8000599C.s b/asm/non_matchings/code_80004EF0/func_8000599C.s new file mode 100644 index 000000000..c801d3f54 --- /dev/null +++ b/asm/non_matchings/code_80004EF0/func_8000599C.s @@ -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 diff --git a/asm/non_matchings/code_80004EF0/func_80005B18.s b/asm/non_matchings/code_80004EF0/func_80005B18.s new file mode 100644 index 000000000..8fdea790f --- /dev/null +++ b/asm/non_matchings/code_80004EF0/func_80005B18.s @@ -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 diff --git a/asm/code_80296A50.s b/asm/non_matchings/code_80296A50/code_80296A50.s similarity index 93% rename from asm/code_80296A50.s rename to asm/non_matchings/code_80296A50/code_80296A50.s index 60286eafd..89f85f381 100644 --- a/asm/code_80296A50.s +++ b/asm/non_matchings/code_80296A50/code_80296A50.s @@ -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) diff --git a/asm/non_matchings/code_80296A50/func_80296A50.s b/asm/non_matchings/code_80296A50/func_80296A50.s new file mode 100644 index 000000000..de3c9ffed --- /dev/null +++ b/asm/non_matchings/code_80296A50/func_80296A50.s @@ -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 diff --git a/asm/non_matchings/code_80296A50/func_80296D10.s b/asm/non_matchings/code_80296A50/func_80296D10.s new file mode 100644 index 000000000..4bfd26e9c --- /dev/null +++ b/asm/non_matchings/code_80296A50/func_80296D10.s @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code_80296A50/func_80297230.s b/asm/non_matchings/code_80296A50/func_80297230.s new file mode 100644 index 000000000..b0e5174a1 --- /dev/null +++ b/asm/non_matchings/code_80296A50/func_80297230.s @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code_80296A50/func_802972B8.s b/asm/non_matchings/code_80296A50/func_802972B8.s new file mode 100644 index 000000000..392cb0af7 --- /dev/null +++ b/asm/non_matchings/code_80296A50/func_802972B8.s @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code_80296A50/func_80297340.s b/asm/non_matchings/code_80296A50/func_80297340.s new file mode 100644 index 000000000..580c12556 --- /dev/null +++ b/asm/non_matchings/code_80296A50/func_80297340.s @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/crash_screen/crash_screen.s b/asm/non_matchings/crash_screen/crash_screen.s index 5c4c28247..20ae71df4 100644 --- a/asm/non_matchings/crash_screen/crash_screen.s +++ b/asm/non_matchings/crash_screen/crash_screen.s @@ -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 diff --git a/asm/non_matchings/crash_screen/func_800040C0.s b/asm/non_matchings/crash_screen/func_800040C0.s deleted file mode 100644 index 99aec93dd..000000000 --- a/asm/non_matchings/crash_screen/func_800040C0.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/main/dma_copy.s b/asm/non_matchings/main/dma_copy.s deleted file mode 100644 index 618478d83..000000000 --- a/asm/non_matchings/main/dma_copy.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/main/init_game.s b/asm/non_matchings/main/init_game.s deleted file mode 100644 index 657a7c220..000000000 --- a/asm/non_matchings/main/init_game.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/main/read_controllers.s b/asm/non_matchings/main/read_controllers.s deleted file mode 100644 index 19532d3fa..000000000 --- a/asm/non_matchings/main/read_controllers.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/main/thread3_video.s b/asm/non_matchings/main/thread3_video.s index ac8ea5d03..6e3c34373 100644 --- a/asm/non_matchings/main/thread3_video.s +++ b/asm/non_matchings/main/thread3_video.s @@ -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 diff --git a/courses/flower_cup/mario_raceway/staff_ghost.inc.c b/courses/flower_cup/mario_raceway/staff_ghost.inc.c new file mode 100644 index 000000000..942478974 --- /dev/null +++ b/courses/flower_cup/mario_raceway/staff_ghost.inc.c @@ -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}, + diff --git a/courses/mushroom_cup/luigi_raceway/staff_ghost.inc.c b/courses/mushroom_cup/luigi_raceway/staff_ghost.inc.c new file mode 100644 index 000000000..3773deff7 --- /dev/null +++ b/courses/mushroom_cup/luigi_raceway/staff_ghost.inc.c @@ -0,0 +1,1049 @@ + {0x00, 1, 0, 1}, + {0x00, 5, 0, 2}, + {0x00, 0, 0, 1}, + {0x00, 44, 0, 0}, + {0x00, 72, 0, 1}, + {0x80, 0, 0, 2}, + {0x80, 0, 254, 0}, + {0x80, 2, 254, 1}, + {0x80, 19, 254, 0}, + {0x80, 9, 254, 255}, + {0x80, 163, 254, 0}, + {0x80, 0, 254, 252}, + {0x80, 0, 254, 251}, + {0x80, 0, 254, 245}, + {0x80, 0, 254, 239}, + {0x80, 0, 254, 234}, + {0x80, 0, 254, 230}, + {0x80, 0, 254, 225}, + {0x80, 6, 254, 223}, + {0x90, 0, 254, 213}, + {0x90, 0, 254, 199}, + {0x90, 0, 255, 189}, + {0x90, 2, 255, 188}, + {0x90, 0, 0, 188}, + {0x90, 0, 7, 194}, + {0x90, 0, 10, 1}, + {0x90, 0, 11, 19}, + {0x90, 0, 15, 60}, + {0x90, 14, 18, 81}, + {0x90, 0, 23, 64}, + {0x90, 0, 34, 219}, + {0x90, 0, 44, 185}, + {0x90, 1, 44, 187}, + {0x90, 0, 47, 190}, + {0x90, 0, 39, 242}, + {0x90, 0, 32, 44}, + {0x90, 23, 32, 79}, + {0x90, 0, 38, 36}, + {0x90, 0, 50, 203}, + {0x90, 0, 57, 189}, + {0x90, 0, 57, 188}, + {0x90, 0, 50, 218}, + {0x90, 0, 31, 40}, + {0x90, 0, 32, 44}, + {0x80, 0, 32, 44}, + {0x80, 0, 29, 32}, + {0x80, 0, 16, 10}, + {0x80, 0, 3, 0}, + {0x80, 5, 1, 1}, + {0x80, 0, 255, 224}, + {0x80, 1, 255, 180}, + {0x90, 4, 255, 180}, + {0x90, 0, 3, 184}, + {0x90, 0, 6, 1}, + {0x90, 0, 6, 33}, + {0x90, 0, 7, 83}, + {0x90, 8, 7, 81}, + {0x90, 0, 15, 48}, + {0x90, 0, 24, 202}, + {0x90, 0, 29, 182}, + {0x90, 1, 29, 184}, + {0x90, 0, 34, 205}, + {0x90, 0, 21, 24}, + {0x90, 0, 21, 70}, + {0x90, 0, 21, 80}, + {0x90, 13, 21, 81}, + {0x90, 0, 25, 48}, + {0x90, 0, 34, 220}, + {0x90, 0, 45, 184}, + {0x90, 1, 45, 186}, + {0x90, 0, 45, 191}, + {0x90, 0, 28, 21}, + {0x90, 0, 27, 79}, + {0x90, 9, 27, 78}, + {0x80, 0, 27, 78}, + {0x80, 0, 26, 78}, + {0x80, 0, 21, 43}, + {0x80, 0, 9, 11}, + {0x80, 0, 2, 0}, + {0x80, 0, 1, 255}, + {0x80, 0, 1, 254}, + {0x80, 0, 1, 208}, + {0x80, 0, 5, 178}, + {0x90, 6, 5, 180}, + {0x90, 0, 9, 222}, + {0x90, 0, 4, 15}, + {0x90, 0, 4, 84}, + {0x90, 8, 4, 82}, + {0x90, 0, 6, 77}, + {0x90, 0, 16, 224}, + {0x90, 0, 22, 181}, + {0x90, 0, 22, 182}, + {0x90, 0, 23, 183}, + {0x90, 0, 20, 253}, + {0x90, 0, 14, 71}, + {0x90, 0, 9, 83}, + {0x90, 15, 9, 82}, + {0x90, 0, 20, 247}, + {0x90, 0, 35, 184}, + {0x90, 0, 36, 185}, + {0x90, 0, 37, 189}, + {0x90, 0, 25, 22}, + {0x90, 0, 17, 82}, + {0x90, 15, 17, 81}, + {0x80, 0, 17, 65}, + {0x80, 0, 255, 0}, + {0x80, 0, 255, 253}, + {0x80, 0, 255, 237}, + {0x80, 0, 0, 211}, + {0x80, 1, 3, 194}, + {0x80, 0, 3, 195}, + {0x80, 0, 5, 214}, + {0x80, 0, 5, 246}, + {0x80, 0, 5, 251}, + {0x80, 0, 5, 230}, + {0x80, 0, 5, 191}, + {0x80, 0, 6, 181}, + {0x80, 4, 6, 180}, + {0x80, 0, 8, 187}, + {0x80, 2, 9, 195}, + {0x80, 0, 9, 221}, + {0x80, 0, 5, 253}, + {0x80, 2, 0, 2}, + {0x80, 2, 0, 1}, + {0x80, 0, 0, 254}, + {0x80, 0, 0, 247}, + {0x80, 0, 0, 231}, + {0x80, 0, 0, 214}, + {0x80, 0, 0, 201}, + {0x80, 0, 0, 194}, + {0x80, 0, 1, 193}, + {0x80, 0, 1, 195}, + {0x80, 0, 4, 227}, + {0x80, 0, 4, 252}, + {0x80, 1, 3, 255}, + {0x80, 0, 3, 254}, + {0x80, 0, 3, 249}, + {0x80, 0, 3, 241}, + {0x80, 0, 3, 239}, + {0x80, 0, 3, 238}, + {0x80, 0, 3, 237}, + {0x80, 0, 3, 222}, + {0x80, 0, 3, 203}, + {0x80, 2, 4, 194}, + {0x80, 0, 7, 223}, + {0x80, 0, 6, 252}, + {0x80, 0, 5, 254}, + {0x80, 1, 4, 254}, + {0x80, 1, 2, 254}, + {0x80, 29, 1, 254}, + {0x80, 16, 1, 255}, + {0x80, 0, 4, 8}, + {0x90, 0, 11, 44}, + {0x90, 0, 11, 79}, + {0x90, 3, 11, 82}, + {0x90, 0, 11, 37}, + {0x90, 0, 0, 255}, + {0x90, 0, 0, 214}, + {0x90, 0, 4, 180}, + {0x90, 21, 5, 181}, + {0x90, 0, 8, 184}, + {0x90, 0, 10, 17}, + {0x90, 1, 13, 81}, + {0x90, 0, 7, 246}, + {0x90, 0, 12, 180}, + {0x90, 1, 13, 180}, + {0x90, 0, 12, 180}, + {0x90, 13, 11, 180}, + {0x90, 0, 14, 184}, + {0x90, 0, 20, 20}, + {0x90, 0, 24, 80}, + {0x90, 0, 24, 79}, + {0x90, 0, 30, 39}, + {0x90, 0, 24, 245}, + {0x80, 0, 22, 239}, + {0x80, 0, 11, 250}, + {0x80, 12, 0, 2}, + {0x80, 0, 0, 4}, + {0x80, 0, 3, 20}, + {0x80, 0, 4, 36}, + {0x80, 1, 5, 41}, + {0x80, 0, 5, 32}, + {0x80, 0, 4, 5}, + {0x80, 2, 1, 1}, + {0x80, 0, 1, 2}, + {0x80, 0, 1, 8}, + {0x80, 0, 4, 32}, + {0x80, 1, 5, 36}, + {0x80, 0, 5, 33}, + {0x80, 0, 5, 23}, + {0x80, 0, 5, 14}, + {0x80, 3, 5, 10}, + {0x80, 0, 5, 15}, + {0x80, 0, 7, 22}, + {0x80, 0, 8, 28}, + {0x80, 5, 8, 29}, + {0x80, 0, 9, 29}, + {0x90, 0, 13, 47}, + {0x90, 0, 15, 64}, + {0x90, 0, 16, 75}, + {0x90, 1, 16, 76}, + {0x90, 0, 16, 63}, + {0x90, 0, 4, 0}, + {0x90, 0, 4, 240}, + {0x90, 0, 4, 194}, + {0x90, 0, 6, 180}, + {0x90, 24, 6, 179}, + {0xb0, 0, 11, 181}, + {0xb0, 0, 30, 208}, + {0xb0, 0, 37, 234}, + {0xa0, 0, 36, 238}, + {0xa0, 0, 35, 239}, + {0xa0, 0, 29, 240}, + {0x80, 0, 24, 244}, + {0x80, 0, 21, 255}, + {0x80, 0, 20, 4}, + {0x80, 0, 20, 23}, + {0x80, 0, 30, 53}, + {0x80, 0, 36, 76}, + {0x80, 4, 36, 77}, + {0x80, 0, 30, 29}, + {0x80, 0, 21, 17}, + {0x80, 4, 20, 16}, + {0x80, 0, 20, 23}, + {0x80, 0, 26, 49}, + {0x80, 0, 29, 71}, + {0x80, 5, 30, 72}, + {0x80, 0, 30, 69}, + {0x80, 0, 26, 27}, + {0x80, 0, 12, 4}, + {0x80, 1, 8, 255}, + {0x80, 0, 7, 255}, + {0x80, 1, 6, 255}, + {0x80, 1, 5, 255}, + {0x80, 2, 5, 254}, + {0x80, 11, 4, 254}, + {0x80, 0, 4, 247}, + {0x80, 0, 6, 239}, + {0x80, 0, 8, 228}, + {0x80, 2, 8, 224}, + {0x80, 0, 8, 238}, + {0x80, 0, 7, 254}, + {0x80, 0, 4, 0}, + {0x80, 3, 3, 0}, + {0x80, 0, 3, 255}, + {0x80, 0, 3, 241}, + {0x80, 0, 5, 228}, + {0x80, 0, 6, 217}, + {0x80, 2, 6, 215}, + {0x80, 0, 7, 219}, + {0x80, 1, 8, 225}, + {0x80, 0, 9, 229}, + {0x80, 0, 10, 235}, + {0x80, 0, 10, 237}, + {0x80, 4, 10, 238}, + {0x80, 6, 10, 239}, + {0x80, 6, 10, 238}, + {0x80, 0, 10, 231}, + {0x80, 0, 10, 222}, + {0x80, 0, 10, 209}, + {0x80, 0, 10, 196}, + {0x80, 0, 11, 184}, + {0x90, 3, 11, 180}, + {0x90, 0, 14, 182}, + {0x90, 0, 23, 240}, + {0x90, 0, 15, 17}, + {0x90, 0, 21, 37}, + {0x90, 0, 22, 67}, + {0x90, 13, 24, 80}, + {0x90, 0, 25, 56}, + {0x90, 0, 24, 218}, + {0x90, 0, 28, 182}, + {0x90, 3, 27, 184}, + {0x90, 0, 30, 240}, + {0x90, 0, 25, 33}, + {0x90, 14, 27, 79}, + {0x90, 0, 28, 56}, + {0x90, 0, 27, 212}, + {0x90, 0, 34, 183}, + {0x90, 1, 34, 185}, + {0x90, 0, 22, 8}, + {0x90, 0, 19, 21}, + {0x80, 0, 19, 25}, + {0x80, 0, 15, 16}, + {0x80, 0, 2, 255}, + {0x80, 1, 255, 255}, + {0x80, 0, 255, 234}, + {0x80, 0, 0, 200}, + {0x80, 0, 1, 179}, + {0x80, 0, 1, 178}, + {0x90, 9, 1, 178}, + {0x90, 0, 2, 178}, + {0x90, 0, 22, 246}, + {0x90, 0, 25, 61}, + {0x90, 0, 25, 79}, + {0x90, 7, 25, 78}, + {0x90, 0, 14, 236}, + {0x90, 1, 20, 181}, + {0x90, 2, 19, 181}, + {0x90, 0, 19, 193}, + {0x90, 0, 18, 29}, + {0x90, 0, 20, 81}, + {0x90, 10, 20, 79}, + {0x90, 0, 20, 38}, + {0x90, 0, 21, 195}, + {0x90, 0, 24, 182}, + {0x90, 1, 24, 184}, + {0x90, 0, 31, 239}, + {0x90, 0, 31, 77}, + {0x90, 9, 32, 77}, + {0x80, 0, 24, 23}, + {0x80, 0, 6, 254}, + {0x80, 0, 5, 253}, + {0x80, 0, 5, 252}, + {0x80, 0, 5, 243}, + {0x80, 0, 2, 192}, + {0x80, 0, 1, 178}, + {0x90, 8, 1, 179}, + {0x90, 0, 13, 0}, + {0x90, 0, 15, 50}, + {0x90, 0, 17, 80}, + {0x90, 5, 17, 79}, + {0x90, 0, 17, 78}, + {0x90, 0, 12, 253}, + {0x90, 0, 15, 179}, + {0x90, 3, 16, 182}, + {0x90, 0, 19, 219}, + {0x90, 0, 18, 54}, + {0x90, 0, 18, 80}, + {0x90, 14, 18, 79}, + {0x90, 0, 16, 19}, + {0x90, 0, 12, 195}, + {0x90, 0, 15, 182}, + {0x90, 0, 18, 183}, + {0x90, 0, 25, 254}, + {0x90, 0, 24, 81}, + {0x90, 10, 23, 79}, + {0x80, 3, 23, 79}, + {0x80, 0, 23, 78}, + {0x80, 0, 20, 26}, + {0x80, 0, 14, 16}, + {0x80, 0, 10, 13}, + {0x80, 0, 3, 1}, + {0x80, 2, 0, 255}, + {0x80, 0, 0, 253}, + {0x80, 0, 0, 243}, + {0x80, 0, 0, 235}, + {0x80, 0, 0, 216}, + {0x80, 0, 0, 192}, + {0x80, 0, 0, 190}, + {0x80, 0, 0, 191}, + {0x80, 0, 0, 212}, + {0x80, 0, 0, 239}, + {0x80, 0, 0, 0}, + {0x80, 5, 0, 1}, + {0x80, 0, 0, 4}, + {0x80, 0, 1, 17}, + {0x80, 1, 2, 23}, + {0x80, 0, 2, 7}, + {0x80, 132, 1, 0}, + {0x80, 0, 1, 252}, + {0x80, 0, 1, 227}, + {0x80, 1, 1, 220}, + {0x80, 0, 2, 243}, + {0x80, 0, 1, 1}, + {0x80, 118, 1, 2}, + {0x80, 22, 1, 1}, + {0x80, 0, 1, 0}, + {0x80, 0, 1, 248}, + {0x80, 0, 1, 227}, + {0x80, 0, 1, 195}, + {0x90, 0, 3, 181}, + {0x90, 3, 2, 180}, + {0x90, 0, 8, 183}, + {0x90, 0, 19, 243}, + {0x90, 0, 13, 11}, + {0x90, 0, 24, 42}, + {0x90, 0, 28, 79}, + {0x90, 19, 29, 77}, + {0x90, 0, 26, 247}, + {0x90, 0, 38, 183}, + {0x90, 1, 38, 185}, + {0x90, 0, 34, 246}, + {0x90, 0, 32, 60}, + {0x90, 0, 34, 79}, + {0x90, 24, 34, 78}, + {0x90, 0, 30, 70}, + {0x90, 0, 10, 250}, + {0x90, 0, 18, 184}, + {0x90, 2, 22, 183}, + {0x90, 0, 18, 255}, + {0x90, 0, 22, 67}, + {0x90, 0, 22, 80}, + {0x90, 0, 22, 78}, + {0x80, 0, 21, 72}, + {0x80, 0, 15, 19}, + {0x80, 0, 6, 9}, + {0x80, 0, 4, 8}, + {0x80, 0, 1, 2}, + {0x80, 4, 1, 1}, + {0x80, 0, 0, 246}, + {0x80, 0, 0, 178}, + {0x80, 0, 0, 179}, + {0x90, 7, 0, 180}, + {0x90, 0, 12, 2}, + {0x90, 0, 16, 83}, + {0x90, 0, 16, 79}, + {0x90, 13, 16, 80}, + {0x90, 0, 16, 79}, + {0x90, 0, 14, 255}, + {0x90, 0, 17, 182}, + {0x90, 3, 19, 183}, + {0x90, 0, 24, 5}, + {0x90, 0, 29, 79}, + {0x90, 16, 29, 78}, + {0x90, 0, 29, 75}, + {0x90, 0, 31, 216}, + {0x90, 0, 39, 184}, + {0x90, 0, 39, 185}, + {0x90, 0, 42, 230}, + {0x90, 0, 33, 51}, + {0x90, 0, 34, 58}, + {0x90, 0, 31, 38}, + {0x80, 0, 0, 255}, + {0x80, 3, 254, 255}, + {0x80, 0, 254, 235}, + {0x80, 0, 254, 221}, + {0x80, 0, 254, 218}, + {0x80, 0, 254, 207}, + {0x80, 0, 254, 189}, + {0x80, 0, 254, 180}, + {0x80, 1, 254, 178}, + {0x90, 2, 254, 178}, + {0x90, 0, 3, 198}, + {0x90, 0, 6, 2}, + {0x90, 0, 5, 4}, + {0x90, 0, 11, 41}, + {0x90, 0, 15, 79}, + {0x90, 7, 14, 81}, + {0x90, 0, 7, 254}, + {0x90, 0, 5, 208}, + {0x90, 0, 5, 180}, + {0x90, 1, 5, 181}, + {0x90, 7, 4, 181}, + {0x90, 0, 6, 183}, + {0x90, 0, 16, 20}, + {0x90, 0, 25, 80}, + {0x90, 22, 24, 79}, + {0x90, 0, 22, 60}, + {0x90, 0, 12, 204}, + {0x90, 0, 12, 181}, + {0x90, 2, 12, 182}, + {0x90, 0, 28, 226}, + {0x90, 0, 27, 67}, + {0x90, 21, 29, 77}, + {0x90, 0, 14, 253}, + {0x90, 1, 17, 182}, + {0x90, 1, 16, 182}, + {0x90, 0, 11, 233}, + {0x90, 0, 10, 80}, + {0x90, 4, 10, 81}, + {0x80, 0, 10, 81}, + {0x80, 0, 10, 69}, + {0x80, 0, 5, 6}, + {0x80, 10, 254, 0}, + {0x80, 0, 254, 252}, + {0x80, 0, 254, 217}, + {0x80, 0, 254, 204}, + {0x80, 0, 254, 197}, + {0x80, 1, 255, 196}, + {0x80, 0, 3, 207}, + {0x80, 0, 5, 254}, + {0x80, 3, 2, 2}, + {0x80, 39, 1, 2}, + {0x80, 0, 6, 18}, + {0x90, 0, 11, 59}, + {0x90, 0, 14, 81}, + {0x90, 2, 13, 81}, + {0x90, 0, 13, 67}, + {0x90, 0, 7, 6}, + {0x90, 0, 255, 0}, + {0x90, 0, 0, 234}, + {0x90, 0, 0, 178}, + {0x90, 17, 0, 180}, + {0x90, 0, 5, 181}, + {0x90, 0, 19, 5}, + {0x90, 0, 24, 80}, + {0x90, 0, 26, 77}, + {0x90, 0, 25, 68}, + {0x90, 0, 18, 222}, + {0x90, 0, 18, 180}, + {0x90, 0, 18, 183}, + {0x90, 0, 17, 182}, + {0x90, 10, 16, 182}, + {0x90, 4, 15, 182}, + {0x90, 0, 18, 183}, + {0x90, 0, 26, 2}, + {0x90, 0, 30, 78}, + {0x90, 0, 31, 76}, + {0x90, 0, 31, 55}, + {0x90, 0, 20, 237}, + {0x90, 0, 20, 224}, + {0x90, 0, 20, 223}, + {0x90, 0, 17, 242}, + {0x80, 0, 3, 2}, + {0x80, 1, 0, 2}, + {0x80, 0, 0, 0}, + {0x80, 0, 0, 228}, + {0x80, 0, 0, 216}, + {0x80, 0, 0, 190}, + {0x80, 0, 0, 178}, + {0x80, 3, 0, 180}, + {0x80, 0, 3, 249}, + {0x80, 0, 2, 7}, + {0x80, 0, 11, 23}, + {0x80, 0, 16, 30}, + {0x80, 0, 22, 62}, + {0x80, 2, 24, 80}, + {0x80, 0, 22, 41}, + {0x80, 0, 15, 16}, + {0x80, 0, 7, 6}, + {0x80, 0, 2, 3}, + {0x80, 2, 1, 3}, + {0x80, 1, 1, 2}, + {0x80, 2, 1, 1}, + {0x80, 18, 1, 2}, + {0x80, 0, 1, 3}, + {0x80, 0, 6, 29}, + {0x90, 0, 12, 83}, + {0x90, 1, 12, 80}, + {0x90, 0, 12, 64}, + {0x90, 0, 1, 255}, + {0x90, 0, 2, 232}, + {0x90, 0, 2, 183}, + {0x90, 20, 2, 180}, + {0x90, 0, 13, 212}, + {0x90, 0, 19, 230}, + {0xb0, 0, 22, 233}, + {0xb0, 0, 26, 233}, + {0xb0, 0, 29, 233}, + {0xa0, 1, 31, 233}, + {0xa0, 1, 32, 233}, + {0xa0, 0, 32, 250}, + {0xa0, 0, 31, 1}, + {0x80, 0, 30, 1}, + {0x80, 1, 29, 1}, + {0x80, 0, 29, 22}, + {0x80, 0, 32, 46}, + {0x80, 0, 35, 65}, + {0x80, 3, 35, 66}, + {0x80, 4, 36, 66}, + {0x80, 0, 36, 64}, + {0x80, 0, 25, 20}, + {0x80, 0, 10, 255}, + {0x80, 0, 10, 250}, + {0x80, 0, 13, 239}, + {0x80, 1, 15, 236}, + {0x80, 0, 14, 239}, + {0x80, 0, 13, 244}, + {0x80, 0, 9, 1}, + {0x80, 0, 8, 3}, + {0x80, 2, 7, 3}, + {0x80, 0, 7, 8}, + {0x80, 0, 9, 22}, + {0x80, 0, 12, 38}, + {0x80, 0, 16, 58}, + {0x80, 1, 17, 62}, + {0x80, 0, 16, 32}, + {0x80, 0, 8, 7}, + {0x80, 0, 4, 0}, + {0x80, 0, 3, 0}, + {0x80, 1, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 0, 4, 14}, + {0x80, 0, 11, 52}, + {0x80, 1, 13, 68}, + {0x80, 0, 13, 29}, + {0x80, 0, 1, 0}, + {0x80, 1, 255, 0}, + {0x80, 0, 1, 245}, + {0x80, 0, 3, 215}, + {0x80, 0, 5, 192}, + {0x80, 0, 6, 189}, + {0x80, 0, 6, 192}, + {0x80, 0, 6, 254}, + {0x80, 34, 254, 1}, + {0x80, 0, 254, 0}, + {0x80, 0, 254, 253}, + {0x80, 0, 254, 236}, + {0x80, 0, 254, 207}, + {0x90, 0, 254, 177}, + {0x90, 5, 254, 178}, + {0x90, 0, 12, 255}, + {0x90, 0, 15, 34}, + {0x90, 0, 22, 78}, + {0x90, 8, 22, 81}, + {0x90, 0, 22, 80}, + {0x90, 0, 12, 232}, + {0x90, 0, 16, 180}, + {0x90, 2, 16, 182}, + {0x90, 0, 17, 183}, + {0x90, 0, 23, 7}, + {0x90, 0, 31, 76}, + {0x90, 12, 30, 79}, + {0x90, 0, 28, 25}, + {0x90, 0, 28, 205}, + {0x90, 0, 32, 183}, + {0x90, 1, 32, 185}, + {0x90, 0, 35, 197}, + {0x90, 0, 35, 41}, + {0x90, 0, 41, 78}, + {0x90, 8, 41, 77}, + {0x90, 0, 39, 58}, + {0x80, 0, 19, 11}, + {0x80, 0, 12, 253}, + {0x80, 0, 11, 253}, + {0x80, 0, 10, 254}, + {0x80, 0, 8, 254}, + {0x80, 0, 8, 225}, + {0x80, 0, 8, 180}, + {0x80, 1, 8, 179}, + {0x90, 7, 8, 179}, + {0x90, 0, 12, 187}, + {0x90, 0, 18, 21}, + {0x90, 0, 25, 77}, + {0x90, 7, 25, 79}, + {0x90, 0, 25, 75}, + {0x90, 0, 20, 227}, + {0x90, 0, 23, 181}, + {0x90, 1, 23, 183}, + {0x90, 0, 25, 247}, + {0x90, 0, 28, 55}, + {0x90, 1, 30, 74}, + {0x90, 6, 32, 76}, + {0x90, 0, 24, 220}, + {0x90, 0, 31, 182}, + {0x90, 5, 31, 184}, + {0x90, 0, 32, 184}, + {0x90, 0, 45, 222}, + {0x90, 0, 43, 59}, + {0x90, 16, 46, 76}, + {0x80, 0, 36, 32}, + {0x80, 0, 10, 0}, + {0x80, 0, 8, 1}, + {0x80, 0, 8, 0}, + {0x80, 0, 8, 245}, + {0x80, 0, 6, 197}, + {0x80, 0, 5, 179}, + {0x90, 8, 5, 181}, + {0x90, 0, 19, 253}, + {0x90, 0, 26, 59}, + {0x90, 0, 31, 79}, + {0x90, 6, 31, 78}, + {0x90, 0, 17, 252}, + {0x90, 6, 20, 182}, + {0x90, 0, 23, 189}, + {0x90, 0, 31, 30}, + {0x90, 0, 39, 76}, + {0x90, 14, 39, 75}, + {0x90, 0, 28, 228}, + {0x90, 0, 39, 184}, + {0x90, 0, 40, 186}, + {0x90, 0, 45, 228}, + {0x90, 0, 37, 78}, + {0x90, 20, 37, 75}, + {0x80, 10, 37, 75}, + {0x80, 0, 35, 60}, + {0x80, 0, 7, 254}, + {0x80, 0, 5, 247}, + {0x80, 0, 7, 206}, + {0x80, 0, 10, 182}, + {0x80, 4, 9, 181}, + {0x80, 0, 11, 188}, + {0x80, 0, 9, 252}, + {0x80, 0, 255, 0}, + {0x80, 7, 255, 1}, + {0x80, 0, 255, 241}, + {0x80, 0, 255, 222}, + {0x80, 1, 255, 216}, + {0x80, 0, 255, 252}, + {0x80, 15, 255, 2}, + {0x80, 0, 255, 1}, + {0x80, 0, 255, 255}, + {0x80, 0, 255, 243}, + {0x80, 0, 255, 224}, + {0x80, 0, 255, 221}, + {0x80, 0, 255, 222}, + {0x80, 0, 0, 255}, + {0x80, 89, 255, 1}, + {0x80, 0, 255, 2}, + {0x80, 0, 0, 7}, + {0x80, 0, 3, 16}, + {0x80, 0, 5, 25}, + {0x80, 1, 6, 29}, + {0x80, 0, 5, 21}, + {0x80, 0, 3, 3}, + {0x80, 3, 1, 1}, + {0x80, 0, 1, 3}, + {0x80, 0, 1, 10}, + {0x80, 0, 5, 41}, + {0x80, 0, 8, 45}, + {0x80, 0, 7, 45}, + {0x80, 0, 6, 22}, + {0x80, 7, 254, 255}, + {0x80, 0, 254, 241}, + {0x80, 0, 254, 220}, + {0x80, 0, 254, 218}, + {0x80, 0, 254, 226}, + {0x80, 117, 254, 1}, + {0x80, 1, 254, 0}, + {0x80, 0, 254, 255}, + {0x80, 0, 254, 252}, + {0x80, 0, 254, 242}, + {0x80, 0, 254, 213}, + {0x80, 0, 254, 177}, + {0x90, 6, 254, 179}, + {0x90, 0, 255, 180}, + {0x90, 0, 12, 0}, + {0x90, 0, 14, 28}, + {0x90, 0, 23, 79}, + {0x90, 26, 24, 79}, + {0x90, 0, 20, 59}, + {0x90, 0, 8, 219}, + {0x90, 0, 8, 181}, + {0x90, 1, 8, 180}, + {0x90, 0, 10, 9}, + {0x90, 0, 11, 82}, + {0x90, 17, 10, 82}, + {0x90, 0, 8, 38}, + {0x90, 0, 8, 201}, + {0x90, 0, 10, 180}, + {0x90, 0, 16, 182}, + {0x90, 0, 12, 18}, + {0x90, 0, 14, 66}, + {0x90, 1, 15, 69}, + {0x80, 1, 15, 69}, + {0x80, 0, 14, 65}, + {0x80, 0, 6, 34}, + {0x80, 4, 254, 0}, + {0x80, 0, 254, 242}, + {0x80, 1, 251, 178}, + {0x90, 7, 251, 178}, + {0x90, 0, 8, 214}, + {0x90, 0, 16, 41}, + {0x90, 15, 19, 79}, + {0x90, 0, 2, 242}, + {0x90, 1, 6, 178}, + {0x90, 2, 5, 178}, + {0x90, 0, 11, 200}, + {0x90, 0, 18, 43}, + {0x90, 0, 19, 80}, + {0x90, 12, 19, 81}, + {0x90, 0, 13, 238}, + {0x90, 0, 18, 198}, + {0x90, 0, 18, 194}, + {0x90, 0, 25, 223}, + {0x90, 0, 23, 57}, + {0x90, 0, 24, 77}, + {0x90, 0, 24, 78}, + {0x80, 0, 24, 78}, + {0x80, 0, 16, 43}, + {0x80, 1, 12, 18}, + {0x80, 0, 11, 18}, + {0x80, 0, 9, 17}, + {0x80, 0, 8, 15}, + {0x80, 0, 4, 9}, + {0x80, 0, 1, 3}, + {0x80, 0, 1, 2}, + {0x80, 0, 255, 220}, + {0x80, 0, 253, 178}, + {0x80, 0, 253, 180}, + {0x90, 5, 253, 180}, + {0x90, 0, 7, 197}, + {0x90, 0, 14, 18}, + {0x90, 0, 25, 80}, + {0x90, 14, 24, 78}, + {0x90, 0, 11, 236}, + {0x90, 0, 12, 180}, + {0x90, 0, 12, 181}, + {0x90, 4, 12, 182}, + {0x90, 0, 18, 6}, + {0x90, 0, 26, 79}, + {0x90, 12, 26, 78}, + {0x90, 0, 26, 68}, + {0x90, 0, 17, 221}, + {0x90, 0, 18, 181}, + {0x90, 1, 18, 183}, + {0x90, 0, 23, 240}, + {0x90, 0, 29, 78}, + {0x90, 19, 28, 77}, + {0x90, 0, 17, 13}, + {0x90, 0, 8, 244}, + {0x90, 0, 8, 225}, + {0x90, 2, 8, 222}, + {0x80, 0, 8, 219}, + {0x80, 0, 8, 208}, + {0x80, 1, 8, 204}, + {0x80, 0, 8, 225}, + {0x80, 0, 4, 2}, + {0x80, 1, 3, 2}, + {0x80, 2, 2, 2}, + {0x80, 2, 1, 2}, + {0x80, 6, 1, 1}, + {0x80, 0, 1, 252}, + {0x80, 0, 1, 229}, + {0x80, 0, 0, 217}, + {0x80, 0, 0, 210}, + {0x80, 1, 0, 206}, + {0x80, 0, 0, 221}, + {0x80, 0, 0, 229}, + {0x80, 4, 0, 230}, + {0x80, 0, 0, 243}, + {0x80, 48, 1, 1}, + {0x80, 0, 2, 7}, + {0x80, 0, 8, 29}, + {0x80, 0, 12, 57}, + {0x90, 0, 16, 70}, + {0x90, 0, 18, 80}, + {0x90, 0, 17, 80}, + {0x90, 0, 17, 79}, + {0x90, 0, 12, 16}, + {0x90, 0, 1, 255}, + {0x90, 0, 3, 233}, + {0x90, 0, 2, 196}, + {0x90, 0, 2, 181}, + {0x90, 19, 2, 180}, + {0x90, 0, 9, 214}, + {0x90, 0, 17, 35}, + {0x90, 0, 23, 80}, + {0x90, 0, 22, 79}, + {0x90, 0, 12, 230}, + {0x90, 0, 11, 180}, + {0x90, 0, 11, 181}, + {0x90, 13, 11, 182}, + {0x90, 0, 11, 192}, + {0x90, 0, 18, 25}, + {0x90, 0, 26, 79}, + {0x90, 0, 26, 78}, + {0x90, 0, 16, 250}, + {0x90, 0, 20, 216}, + {0x90, 0, 20, 212}, + {0x90, 0, 18, 240}, + {0x90, 0, 4, 2}, + {0x80, 0, 3, 1}, + {0x80, 19, 255, 1}, + {0x80, 0, 254, 2}, + {0x80, 0, 0, 9}, + {0x80, 0, 2, 26}, + {0x80, 4, 4, 30}, + {0x80, 4, 5, 30}, + {0x80, 0, 7, 31}, + {0x80, 0, 14, 47}, + {0x80, 0, 19, 81}, + {0x90, 3, 20, 78}, + {0x90, 0, 20, 66}, + {0x90, 0, 9, 5}, + {0x90, 0, 4, 255}, + {0x90, 0, 4, 238}, + {0x90, 0, 4, 186}, + {0x90, 27, 4, 180}, + {0x90, 12, 3, 180}, + {0x90, 0, 4, 194}, + {0x90, 0, 8, 9}, + {0x90, 0, 12, 21}, + {0xa0, 0, 14, 14}, + {0xa0, 0, 22, 1}, + {0xa0, 0, 29, 0}, + {0xa0, 0, 30, 0}, + {0xa0, 0, 30, 5}, + {0xa0, 0, 30, 23}, + {0x80, 0, 33, 39}, + {0x80, 0, 37, 53}, + {0x80, 0, 38, 58}, + {0x80, 0, 41, 60}, + {0x80, 0, 50, 75}, + {0x80, 4, 50, 72}, + {0x80, 0, 47, 63}, + {0x80, 0, 31, 27}, + {0x80, 0, 17, 10}, + {0x80, 0, 12, 4}, + {0x80, 1, 8, 1}, + {0x80, 0, 8, 246}, + {0x80, 0, 8, 228}, + {0x80, 0, 8, 193}, + {0x80, 1, 8, 186}, + {0x80, 0, 9, 196}, + {0x80, 0, 8, 2}, + {0x80, 11, 3, 2}, + {0x80, 1, 2, 2}, + {0x80, 23, 1, 2}, + {0x80, 0, 1, 4}, + {0x80, 0, 1, 11}, + {0x80, 0, 1, 12}, + {0x80, 0, 1, 11}, + {0x80, 0, 1, 7}, + {0x80, 6, 1, 5}, + {0x80, 0, 1, 4}, + {0x80, 11, 1, 3}, + {0x80, 1, 0, 3}, + {0x80, 2, 0, 2}, + {0x80, 0, 0, 1}, + {0x80, 0, 255, 252}, + {0x80, 0, 252, 228}, + {0x80, 0, 248, 186}, + {0x90, 6, 247, 178}, + {0x90, 0, 250, 182}, + {0x90, 0, 7, 5}, + {0x90, 0, 19, 77}, + {0x90, 1, 20, 78}, + {0x90, 15, 20, 79}, + {0x90, 0, 19, 70}, + {0x90, 0, 7, 204}, + {0x90, 0, 7, 181}, + {0x90, 5, 6, 180}, + {0x90, 0, 13, 212}, + {0x90, 0, 24, 77}, + {0x90, 0, 24, 79}, + {0x90, 7, 24, 80}, + {0x90, 0, 22, 60}, + {0x90, 0, 11, 217}, + {0x90, 0, 10, 181}, + {0x90, 0, 10, 182}, + {0x90, 0, 10, 192}, + {0x90, 0, 19, 56}, + {0x90, 0, 22, 77}, + {0x90, 10, 22, 78}, + {0x80, 0, 18, 53}, + {0x80, 0, 2, 4}, + {0x80, 2, 254, 0}, + {0x80, 0, 254, 251}, + {0x80, 0, 244, 194}, + {0x80, 0, 244, 180}, + {0x80, 0, 244, 181}, + {0x90, 6, 244, 181}, + {0x90, 1, 245, 181}, + {0x90, 0, 4, 204}, + {0x90, 0, 14, 29}, + {0x90, 0, 20, 80}, + {0x90, 6, 20, 79}, + {0x90, 0, 20, 70}, + {0x90, 0, 9, 224}, + {0x90, 0, 5, 178}, + {0x90, 4, 5, 180}, + {0x90, 0, 20, 0}, + {0x90, 0, 26, 73}, + {0x90, 0, 29, 76}, + {0x90, 4, 28, 76}, + {0x90, 0, 27, 43}, + {0x90, 0, 15, 220}, + {0x90, 0, 15, 185}, + {0x90, 0, 15, 187}, + {0x90, 0, 17, 11}, + {0x90, 0, 23, 77}, + {0x90, 9, 23, 81}, + {0x80, 1, 23, 81}, + {0x80, 0, 19, 47}, + {0x80, 0, 1, 255}, + {0x80, 0, 254, 1}, + {0x80, 0, 254, 252}, + {0x80, 0, 254, 241}, + {0x80, 0, 254, 232}, + {0x80, 0, 254, 221}, + {0x80, 2, 254, 178}, + {0x90, 7, 254, 178}, + {0x90, 0, 12, 201}, + {0x90, 0, 19, 22}, + {0x90, 0, 28, 79}, + {0x90, 9, 28, 77}, + {0x90, 0, 12, 255}, + {0x90, 0, 13, 185}, + {0x90, 1, 13, 180}, + {0x90, 0, 23, 221}, + {0x90, 0, 29, 44}, + {0x90, 0, 35, 77}, + {0x90, 1, 35, 76}, + {0x90, 0, 35, 75}, + {0x90, 0, 35, 65}, + {0x90, 0, 29, 25}, + {0x90, 0, 23, 222}, + {0x90, 0, 24, 183}, + {0x90, 0, 24, 182}, + {0x90, 0, 31, 197}, + {0x90, 0, 26, 39}, + {0x90, 0, 28, 77}, + {0x90, 23, 28, 79}, + {0x80, 7, 28, 79}, + {0x80, 0, 11, 4}, + {0x80, 0, 4, 226}, + {0x80, 0, 4, 190}, + {0x80, 2, 4, 180}, + {0x80, 0, 4, 246}, + {0x80, 4, 1, 2}, + {0x80, 0, 3, 16}, + {0x80, 0, 12, 82}, + {0x80, 2, 11, 80}, + {0x80, 0, 1, 21}, + {0x80, 1, 255, 255}, + {0x80, 0, 253, 239}, + {0x80, 0, 252, 208}, + {0x80, 1, 252, 196}, + {0x80, 0, 252, 241}, + {0x80, 3, 1, 2}, + {0x80, 0, 253, 240}, + {0x80, 0, 252, 200}, + {0x80, 0, 252, 180}, + {0x80, 0, 252, 179}, + {0x80, 0, 252, 231}, + {0x80, 0, 254, 3}, + {0x80, 5, 254, 255}, + {0x80, 0, 255, 24}, + {0x80, 0, 2, 83}, + {0x80, 0, 3, 83}, + {0x80, 0, 2, 64}, + {0x80, 0, 255, 4}, + {0x80, 0, 0, 3}, + {0x80, 2, 0, 2}, + {0x80, 0, 1, 22}, + {0x80, 0, 4, 54}, + {0x80, 0, 5, 68}, + {0x80, 0, 5, 56}, + {0x80, 0, 2, 11}, + {0x80, 0, 254, 0}, + {0x80, 6, 254, 1}, + {0x80, 0, 254, 233}, + {0x80, 0, 254, 212}, + {0x80, 0, 254, 203}, + {0x80, 0, 254, 204}, + {0x80, 0, 253, 239}, + {0x80, 0, 255, 2}, + {0x80, 5, 254, 2}, + {0x80, 0, 254, 1}, + {0x80, 0, 254, 253}, + {0x80, 0, 254, 234}, + {0x80, 0, 254, 228}, + {0x80, 0, 254, 220}, + {0x80, 0, 254, 221}, + {0x80, 0, 254, 247}, + {0x80, 5, 254, 255}, + {0x80, 0, 254, 251}, + {0x80, 0, 254, 224}, + {0x80, 0, 254, 198}, + {0x80, 0, 254, 197}, + {0x80, 0, 254, 240}, + {0x00, 0, 0, 0}, + {0x00, 0, 0, 0}, + {0x00, 0, 0, 0}, + + + diff --git a/courses/staff_ghosts.inc.c b/courses/staff_ghosts.inc.c new file mode 100644 index 000000000..e66011de4 --- /dev/null +++ b/courses/staff_ghosts.inc.c @@ -0,0 +1,29 @@ +#include +#include +#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 +}; + diff --git a/courses/star_cup/royal_raceway/staff_ghost.inc.c b/courses/star_cup/royal_raceway/staff_ghost.inc.c new file mode 100644 index 000000000..ff0a2dfe5 --- /dev/null +++ b/courses/star_cup/royal_raceway/staff_ghost.inc.c @@ -0,0 +1,1908 @@ + {0x00, 122, 255, 0}, + {0x80, 91, 255, 0}, + {0x80, 12, 0, 0}, + {0x80, 7, 255, 0}, + {0x80, 0, 0, 247}, + {0x80, 0, 254, 206}, + {0x80, 0, 254, 180}, + {0x90, 4, 254, 180}, + {0x90, 0, 3, 242}, + {0x90, 0, 9, 26}, + {0x90, 0, 15, 76}, + {0x90, 4, 15, 75}, + {0x90, 5, 14, 75}, + {0x90, 3, 13, 75}, + {0x90, 0, 9, 59}, + {0x90, 0, 253, 214}, + {0x90, 0, 253, 181}, + {0x90, 0, 253, 180}, + {0x90, 0, 253, 182}, + {0x90, 0, 2, 2}, + {0x90, 0, 3, 58}, + {0x90, 7, 1, 78}, + {0x90, 0, 0, 251}, + {0x90, 1, 254, 180}, + {0x90, 0, 255, 180}, + {0x90, 0, 3, 0}, + {0x90, 0, 2, 53}, + {0x90, 2, 1, 78}, + {0x90, 0, 1, 70}, + {0x90, 0, 255, 20}, + {0x80, 0, 255, 1}, + {0x80, 6, 0, 0}, + {0x80, 0, 0, 2}, + {0x80, 0, 2, 32}, + {0x80, 3, 3, 77}, + {0x80, 0, 3, 74}, + {0x80, 0, 4, 58}, + {0x80, 0, 6, 35}, + {0x80, 1, 2, 2}, + {0x80, 22, 1, 2}, + {0x80, 0, 1, 0}, + {0x80, 0, 0, 227}, + {0x80, 0, 254, 181}, + {0x90, 4, 254, 181}, + {0x90, 0, 255, 228}, + {0x90, 0, 3, 13}, + {0x90, 0, 7, 76}, + {0x90, 14, 7, 77}, + {0x90, 0, 6, 75}, + {0x90, 0, 254, 242}, + {0x90, 0, 252, 179}, + {0x90, 2, 252, 180}, + {0x90, 0, 253, 206}, + {0x90, 0, 0, 8}, + {0x90, 0, 2, 77}, + {0x90, 1, 1, 78}, + {0x90, 0, 254, 252}, + {0x90, 0, 246, 194}, + {0x90, 9, 246, 182}, + {0x90, 0, 246, 186}, + {0x90, 0, 246, 194}, + {0x90, 1, 247, 194}, + {0x90, 0, 250, 203}, + {0x90, 0, 253, 222}, + {0x90, 0, 253, 237}, + {0x90, 1, 253, 243}, + {0x90, 0, 253, 215}, + {0x90, 0, 251, 187}, + {0x90, 3, 251, 180}, + {0x90, 0, 254, 211}, + {0x90, 0, 4, 47}, + {0x90, 0, 8, 77}, + {0x90, 0, 6, 77}, + {0x90, 0, 246, 234}, + {0x90, 12, 239, 182}, + {0x90, 0, 1, 255}, + {0x90, 0, 11, 77}, + {0x90, 1, 13, 76}, + {0x90, 0, 8, 68}, + {0x90, 0, 247, 205}, + {0x90, 3, 250, 181}, + {0x90, 0, 250, 185}, + {0x90, 0, 3, 34}, + {0x90, 0, 8, 76}, + {0x90, 9, 7, 76}, + {0x80, 11, 7, 76}, + {0x90, 6, 7, 76}, + {0x90, 0, 5, 51}, + {0x90, 0, 254, 240}, + {0x90, 9, 254, 180}, + {0x90, 0, 255, 205}, + {0x90, 0, 11, 48}, + {0x90, 0, 16, 75}, + {0x90, 0, 15, 75}, + {0x90, 2, 14, 75}, + {0x90, 14, 13, 75}, + {0x90, 0, 12, 75}, + {0x90, 0, 11, 75}, + {0x80, 1, 10, 75}, + {0x90, 18, 10, 75}, + {0x80, 0, 10, 75}, + {0x90, 6, 10, 75}, + {0x80, 0, 0, 67}, + {0x80, 0, 255, 3}, + {0x80, 0, 254, 0}, + {0x80, 0, 253, 247}, + {0x80, 0, 247, 211}, + {0x80, 0, 243, 182}, + {0x80, 0, 243, 181}, + {0x80, 0, 243, 195}, + {0x80, 0, 253, 252}, + {0x80, 0, 1, 255}, + {0x80, 2, 0, 255}, + {0x80, 22, 0, 0}, + {0x80, 4, 1, 0}, + {0x80, 0, 1, 1}, + {0x80, 0, 1, 3}, + {0x80, 0, 1, 7}, + {0x80, 0, 3, 30}, + {0x90, 0, 6, 66}, + {0x90, 3, 5, 76}, + {0x90, 0, 5, 74}, + {0x90, 0, 3, 0}, + {0x90, 0, 255, 240}, + {0x90, 15, 254, 180}, + {0x90, 0, 254, 181}, + {0x90, 0, 255, 252}, + {0x90, 0, 1, 27}, + {0x90, 0, 1, 57}, + {0x90, 0, 1, 59}, + {0x90, 0, 1, 5}, + {0x90, 0, 253, 225}, + {0x90, 8, 251, 181}, + {0x90, 0, 251, 218}, + {0x90, 0, 3, 18}, + {0x90, 0, 3, 57}, + {0x90, 3, 3, 66}, + {0x90, 0, 3, 60}, + {0x90, 5, 3, 57}, + {0x90, 0, 3, 55}, + {0x90, 0, 3, 42}, + {0x90, 0, 3, 27}, + {0x90, 0, 3, 11}, + {0x90, 0, 3, 3}, + {0x90, 9, 3, 2}, + {0x90, 0, 2, 1}, + {0x80, 0, 254, 246}, + {0x80, 0, 248, 208}, + {0x80, 0, 245, 181}, + {0x80, 2, 245, 182}, + {0x80, 0, 245, 187}, + {0x80, 0, 245, 235}, + {0x80, 23, 0, 0}, + {0x80, 0, 1, 0}, + {0x80, 0, 1, 2}, + {0x80, 0, 1, 4}, + {0x80, 0, 1, 10}, + {0x80, 0, 3, 32}, + {0x90, 0, 5, 53}, + {0x90, 0, 5, 65}, + {0x90, 0, 5, 68}, + {0x90, 0, 5, 69}, + {0x90, 0, 5, 68}, + {0x90, 0, 3, 2}, + {0x90, 0, 0, 255}, + {0x90, 0, 0, 231}, + {0x90, 0, 0, 214}, + {0x90, 0, 0, 201}, + {0x90, 0, 0, 192}, + {0x90, 0, 0, 184}, + {0x90, 0, 0, 182}, + {0x90, 3, 0, 181}, + {0x90, 0, 0, 187}, + {0x90, 0, 0, 242}, + {0x90, 0, 1, 2}, + {0x90, 0, 4, 35}, + {0x90, 2, 7, 76}, + {0x90, 0, 2, 3}, + {0x90, 0, 0, 248}, + {0x90, 0, 254, 208}, + {0x90, 0, 253, 182}, + {0x90, 8, 252, 180}, + {0x90, 0, 252, 196}, + {0x90, 0, 0, 2}, + {0x90, 0, 1, 19}, + {0x90, 1, 2, 38}, + {0x90, 0, 2, 1}, + {0x90, 0, 255, 236}, + {0x90, 0, 254, 184}, + {0x90, 7, 253, 180}, + {0x90, 0, 253, 181}, + {0x90, 0, 254, 230}, + {0x90, 5, 2, 0}, + {0x80, 10, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 1, 2, 3}, + {0x80, 1, 2, 5}, + {0x80, 6, 2, 6}, + {0x80, 0, 2, 4}, + {0x80, 3, 2, 3}, + {0x80, 6, 2, 2}, + {0x80, 0, 2, 255}, + {0x80, 0, 254, 227}, + {0x80, 0, 254, 179}, + {0x90, 3, 254, 180}, + {0x90, 0, 254, 210}, + {0x90, 0, 1, 2}, + {0x90, 0, 2, 24}, + {0x90, 0, 5, 77}, + {0x90, 11, 6, 77}, + {0x90, 0, 3, 50}, + {0x90, 0, 251, 218}, + {0x90, 1, 251, 180}, + {0x90, 0, 252, 180}, + {0x90, 0, 254, 250}, + {0x90, 0, 3, 39}, + {0x90, 0, 2, 77}, + {0x90, 5, 2, 78}, + {0x90, 0, 2, 70}, + {0x90, 0, 251, 232}, + {0x90, 0, 252, 181}, + {0x90, 0, 252, 180}, + {0x90, 0, 253, 180}, + {0x90, 0, 255, 247}, + {0x90, 0, 3, 42}, + {0x90, 0, 5, 77}, + {0x90, 14, 3, 77}, + {0x80, 0, 3, 56}, + {0x80, 0, 3, 1}, + {0x80, 27, 2, 0}, + {0x80, 0, 2, 255}, + {0x80, 0, 1, 246}, + {0x80, 0, 0, 226}, + {0x80, 0, 255, 214}, + {0x80, 0, 255, 213}, + {0x80, 0, 255, 240}, + {0x80, 31, 2, 0}, + {0x80, 0, 2, 10}, + {0x80, 0, 2, 58}, + {0x80, 0, 3, 77}, + {0x90, 3, 3, 77}, + {0x90, 0, 3, 59}, + {0x90, 0, 253, 250}, + {0x90, 0, 254, 195}, + {0x90, 9, 254, 181}, + {0x90, 0, 254, 182}, + {0x90, 0, 255, 252}, + {0x90, 0, 3, 17}, + {0x90, 0, 2, 65}, + {0x90, 1, 2, 78}, + {0x90, 0, 2, 65}, + {0x90, 0, 254, 248}, + {0x90, 0, 252, 194}, + {0x90, 4, 252, 180}, + {0x90, 0, 252, 194}, + {0x90, 0, 0, 0}, + {0x90, 0, 0, 8}, + {0x90, 0, 2, 39}, + {0x90, 0, 3, 67}, + {0x90, 1, 3, 70}, + {0x90, 0, 2, 70}, + {0x90, 0, 2, 64}, + {0x90, 0, 2, 38}, + {0x90, 3, 2, 30}, + {0x90, 0, 2, 24}, + {0x90, 6, 2, 20}, + {0x90, 0, 2, 24}, + {0x90, 0, 2, 29}, + {0x90, 0, 2, 36}, + {0x90, 0, 2, 42}, + {0x90, 0, 2, 48}, + {0x90, 0, 2, 52}, + {0x90, 14, 2, 53}, + {0x90, 0, 2, 54}, + {0x90, 0, 2, 55}, + {0x90, 15, 2, 56}, + {0x90, 0, 2, 44}, + {0x90, 0, 2, 8}, + {0x90, 0, 2, 1}, + {0x80, 8, 2, 1}, + {0x80, 0, 2, 7}, + {0x80, 0, 2, 30}, + {0x80, 0, 2, 50}, + {0x80, 9, 2, 55}, + {0x80, 0, 2, 47}, + {0x80, 0, 2, 10}, + {0x80, 3, 2, 0}, + {0x80, 0, 2, 255}, + {0x80, 0, 0, 240}, + {0x80, 0, 255, 216}, + {0x80, 0, 255, 207}, + {0x80, 0, 255, 205}, + {0x80, 0, 255, 206}, + {0x80, 0, 255, 229}, + {0x80, 0, 255, 0}, + {0x80, 3, 0, 1}, + {0x80, 0, 0, 247}, + {0x80, 0, 0, 230}, + {0x80, 3, 0, 226}, + {0x80, 0, 0, 222}, + {0x80, 1, 0, 216}, + {0x80, 0, 0, 228}, + {0x80, 2, 0, 240}, + {0x80, 0, 0, 246}, + {0x80, 0, 0, 254}, + {0x80, 36, 0, 255}, + {0x80, 0, 0, 253}, + {0x80, 0, 0, 247}, + {0x80, 0, 0, 236}, + {0x80, 0, 0, 231}, + {0x80, 0, 0, 230}, + {0x80, 0, 0, 234}, + {0x80, 0, 0, 252}, + {0x80, 4, 0, 0}, + {0x80, 0, 0, 255}, + {0x80, 0, 0, 247}, + {0x80, 0, 0, 236}, + {0x80, 0, 0, 224}, + {0x80, 1, 0, 222}, + {0x80, 0, 0, 243}, + {0x80, 10, 0, 1}, + {0x80, 0, 0, 253}, + {0x80, 0, 0, 239}, + {0x80, 4, 0, 232}, + {0x80, 0, 0, 248}, + {0x80, 8, 0, 0}, + {0x80, 0, 0, 249}, + {0x80, 0, 0, 234}, + {0x80, 0, 0, 225}, + {0x80, 0, 0, 224}, + {0x80, 0, 0, 225}, + {0x80, 0, 0, 249}, + {0x80, 42, 0, 0}, + {0x80, 0, 1, 0}, + {0x80, 1, 1, 1}, + {0x80, 0, 1, 2}, + {0x80, 2, 1, 3}, + {0x80, 0, 1, 4}, + {0x80, 0, 1, 6}, + {0x80, 0, 1, 9}, + {0x80, 2, 1, 11}, + {0x80, 0, 1, 8}, + {0x80, 2, 1, 2}, + {0x80, 0, 1, 4}, + {0x80, 5, 1, 5}, + {0x80, 0, 1, 7}, + {0x80, 4, 1, 8}, + {0x80, 13, 1, 9}, + {0x80, 3, 1, 10}, + {0x80, 0, 1, 11}, + {0x80, 13, 1, 13}, + {0x80, 0, 1, 12}, + {0x80, 0, 1, 7}, + {0x80, 6, 1, 6}, + {0x80, 1, 1, 5}, + {0x80, 2, 1, 4}, + {0x80, 4, 1, 3}, + {0x80, 90, 1, 2}, + {0x80, 0, 1, 1}, + {0x80, 0, 1, 252}, + {0x80, 0, 255, 215}, + {0x90, 4, 254, 180}, + {0x90, 0, 254, 181}, + {0x90, 0, 2, 0}, + {0x90, 0, 3, 31}, + {0x90, 0, 9, 77}, + {0x90, 12, 7, 76}, + {0x90, 0, 0, 252}, + {0x90, 0, 253, 187}, + {0x90, 1, 253, 180}, + {0x90, 0, 254, 249}, + {0x90, 0, 3, 44}, + {0x90, 5, 3, 77}, + {0x90, 0, 1, 47}, + {0x90, 0, 254, 244}, + {0x90, 0, 253, 184}, + {0x90, 5, 253, 180}, + {0x90, 0, 253, 185}, + {0x90, 0, 253, 216}, + {0x90, 0, 254, 234}, + {0x90, 1, 254, 237}, + {0x90, 0, 254, 228}, + {0x90, 0, 254, 212}, + {0x90, 0, 254, 204}, + {0x90, 1, 254, 203}, + {0x90, 0, 254, 222}, + {0x90, 1, 254, 232}, + {0x90, 0, 254, 221}, + {0x90, 0, 254, 205}, + {0x90, 0, 254, 200}, + {0x90, 1, 254, 199}, + {0x90, 0, 254, 203}, + {0x90, 0, 254, 204}, + {0x90, 1, 254, 205}, + {0x90, 0, 254, 208}, + {0x90, 0, 254, 212}, + {0x90, 0, 254, 217}, + {0x90, 0, 254, 223}, + {0x90, 0, 254, 228}, + {0x90, 0, 254, 229}, + {0x90, 4, 254, 230}, + {0x90, 0, 254, 227}, + {0x90, 0, 254, 220}, + {0x90, 0, 254, 208}, + {0x90, 0, 254, 206}, + {0x90, 0, 254, 207}, + {0x90, 0, 254, 233}, + {0x80, 0, 0, 255}, + {0x80, 2, 0, 1}, + {0x80, 0, 1, 2}, + {0x80, 0, 1, 8}, + {0x80, 0, 1, 30}, + {0x80, 0, 1, 42}, + {0x80, 0, 2, 53}, + {0x80, 0, 2, 61}, + {0x80, 0, 2, 65}, + {0x90, 0, 2, 68}, + {0x90, 0, 3, 74}, + {0x90, 4, 3, 77}, + {0x90, 0, 3, 50}, + {0x90, 0, 254, 242}, + {0x90, 0, 253, 180}, + {0x90, 9, 253, 181}, + {0x90, 0, 254, 237}, + {0x90, 0, 4, 44}, + {0x90, 0, 9, 77}, + {0x90, 0, 7, 77}, + {0x90, 0, 7, 71}, + {0x90, 0, 254, 252}, + {0x90, 0, 251, 208}, + {0x90, 4, 251, 180}, + {0x90, 0, 1, 246}, + {0x90, 0, 1, 5}, + {0x90, 1, 2, 14}, + {0x90, 0, 2, 5}, + {0x80, 8, 2, 0}, + {0x80, 0, 255, 244}, + {0x80, 0, 252, 212}, + {0x80, 0, 247, 184}, + {0x80, 4, 247, 180}, + {0x90, 15, 247, 180}, + {0x80, 1, 246, 180}, + {0x80, 0, 245, 180}, + {0x90, 3, 245, 180}, + {0x80, 4, 245, 180}, + {0x90, 17, 245, 180}, + {0x90, 0, 245, 181}, + {0x90, 0, 245, 213}, + {0x80, 0, 254, 0}, + {0x80, 0, 2, 1}, + {0x80, 0, 2, 13}, + {0x80, 0, 3, 40}, + {0x80, 0, 7, 75}, + {0x80, 0, 9, 75}, + {0x80, 7, 8, 75}, + {0x90, 4, 8, 75}, + {0x80, 2, 8, 75}, + {0x90, 2, 8, 75}, + {0x90, 12, 8, 76}, + {0xb0, 0, 8, 76}, + {0xa0, 0, 11, 76}, + {0xa0, 0, 14, 76}, + {0xa0, 0, 15, 76}, + {0x80, 0, 15, 71}, + {0x80, 0, 5, 39}, + {0x80, 0, 2, 0}, + {0x80, 0, 255, 251}, + {0x80, 0, 251, 217}, + {0x80, 9, 247, 180}, + {0x90, 3, 247, 180}, + {0x90, 0, 0, 213}, + {0x90, 0, 4, 13}, + {0x90, 0, 18, 74}, + {0x90, 10, 19, 75}, + {0x90, 9, 18, 75}, + {0x90, 0, 17, 73}, + {0x90, 0, 2, 231}, + {0x90, 1, 1, 180}, + {0x90, 0, 1, 181}, + {0x90, 0, 2, 255}, + {0x90, 0, 2, 51}, + {0x90, 8, 2, 77}, + {0x90, 0, 2, 255}, + {0x90, 0, 255, 185}, + {0x90, 1, 253, 179}, + {0x90, 0, 255, 192}, + {0x90, 0, 2, 12}, + {0x90, 0, 11, 77}, + {0x90, 1, 11, 76}, + {0x90, 0, 10, 75}, + {0x90, 0, 2, 1}, + {0x90, 0, 255, 243}, + {0x90, 0, 255, 193}, + {0x90, 3, 255, 179}, + {0x90, 0, 255, 185}, + {0x90, 0, 255, 234}, + {0x90, 4, 0, 1}, + {0x90, 0, 1, 250}, + {0x90, 0, 1, 230}, + {0x90, 0, 1, 215}, + {0x90, 0, 1, 212}, + {0x90, 0, 1, 217}, + {0x90, 0, 1, 252}, + {0x90, 4, 1, 1}, + {0x80, 4, 1, 1}, + {0x80, 0, 3, 11}, + {0x80, 0, 6, 42}, + {0x80, 0, 8, 73}, + {0x80, 1, 9, 76}, + {0x80, 0, 8, 75}, + {0x80, 0, 5, 37}, + {0x80, 9, 3, 0}, + {0x80, 0, 2, 252}, + {0x80, 0, 1, 245}, + {0x80, 0, 1, 240}, + {0x80, 0, 1, 228}, + {0x80, 0, 255, 204}, + {0x80, 1, 255, 195}, + {0x80, 0, 255, 217}, + {0x80, 0, 255, 0}, + {0x80, 96, 0, 1}, + {0x80, 0, 0, 254}, + {0x80, 0, 0, 215}, + {0x90, 3, 253, 181}, + {0x90, 0, 253, 199}, + {0x90, 0, 0, 6}, + {0x90, 0, 2, 54}, + {0x90, 17, 6, 77}, + {0x90, 0, 2, 9}, + {0x90, 0, 255, 206}, + {0x90, 1, 255, 179}, + {0x90, 0, 255, 246}, + {0x90, 0, 2, 27}, + {0x90, 0, 2, 77}, + {0x90, 10, 2, 78}, + {0x90, 0, 2, 253}, + {0x90, 0, 254, 209}, + {0x90, 0, 254, 201}, + {0x90, 0, 2, 236}, + {0x90, 0, 1, 19}, + {0x90, 13, 2, 78}, + {0x90, 0, 2, 69}, + {0x80, 0, 2, 24}, + {0x80, 8, 2, 0}, + {0x80, 0, 2, 255}, + {0x80, 0, 1, 250}, + {0x80, 0, 0, 232}, + {0x80, 0, 0, 215}, + {0x80, 1, 0, 206}, + {0x80, 0, 0, 224}, + {0x80, 14, 0, 1}, + {0x80, 0, 0, 0}, + {0x80, 0, 0, 240}, + {0x80, 0, 253, 199}, + {0x80, 0, 251, 181}, + {0x90, 4, 251, 181}, + {0x90, 0, 251, 196}, + {0x90, 0, 3, 3}, + {0x90, 0, 3, 46}, + {0x90, 0, 7, 77}, + {0x90, 15, 6, 77}, + {0x90, 0, 5, 62}, + {0x90, 0, 254, 234}, + {0x90, 0, 254, 181}, + {0x90, 0, 254, 179}, + {0x90, 0, 254, 193}, + {0x90, 0, 1, 6}, + {0x90, 0, 1, 63}, + {0x90, 7, 1, 77}, + {0x90, 0, 1, 43}, + {0x90, 0, 253, 232}, + {0x90, 0, 253, 181}, + {0x90, 3, 253, 180}, + {0x90, 0, 253, 200}, + {0x90, 0, 253, 232}, + {0x90, 0, 253, 234}, + {0x90, 0, 253, 218}, + {0x90, 0, 253, 195}, + {0x90, 0, 253, 185}, + {0x90, 1, 253, 184}, + {0x90, 0, 253, 188}, + {0x90, 0, 253, 201}, + {0x90, 0, 253, 204}, + {0x90, 0, 253, 210}, + {0x90, 4, 253, 212}, + {0x90, 0, 253, 213}, + {0x90, 3, 253, 214}, + {0x90, 0, 253, 220}, + {0x90, 0, 253, 226}, + {0x90, 0, 253, 227}, + {0x90, 10, 254, 228}, + {0x90, 0, 254, 226}, + {0x90, 0, 254, 223}, + {0x90, 0, 254, 221}, + {0x90, 0, 254, 220}, + {0x90, 0, 254, 217}, + {0x90, 0, 254, 216}, + {0x90, 4, 254, 215}, + {0x90, 0, 254, 217}, + {0x90, 0, 254, 239}, + {0x90, 0, 3, 1}, + {0x80, 0, 3, 1}, + {0x80, 0, 3, 3}, + {0x80, 0, 3, 7}, + {0x80, 0, 3, 13}, + {0x80, 0, 3, 18}, + {0x80, 2, 3, 19}, + {0x80, 0, 3, 39}, + {0x80, 0, 3, 70}, + {0x80, 2, 3, 77}, + {0x90, 6, 3, 77}, + {0x90, 0, 3, 61}, + {0x90, 0, 255, 247}, + {0x90, 0, 254, 187}, + {0x90, 7, 254, 180}, + {0x90, 0, 254, 192}, + {0x90, 0, 1, 6}, + {0x90, 0, 7, 78}, + {0x90, 12, 9, 77}, + {0x90, 15, 8, 77}, + {0x90, 1, 7, 77}, + {0x80, 2, 7, 77}, + {0x90, 16, 7, 77}, + {0x80, 0, 1, 42}, + {0x80, 5, 0, 0}, + {0x80, 1, 0, 255}, + {0x80, 29, 0, 0}, + {0x80, 0, 1, 1}, + {0x80, 0, 2, 22}, + {0x80, 0, 3, 66}, + {0x90, 4, 3, 76}, + {0x90, 0, 1, 1}, + {0x90, 0, 251, 215}, + {0x90, 27, 249, 181}, + {0x90, 0, 249, 207}, + {0x90, 0, 1, 22}, + {0x90, 0, 1, 78}, + {0x90, 8, 1, 77}, + {0x90, 0, 1, 68}, + {0x90, 0, 249, 227}, + {0x90, 2, 247, 180}, + {0x90, 0, 247, 191}, + {0x90, 0, 0, 2}, + {0x90, 0, 2, 35}, + {0x90, 3, 2, 78}, + {0x90, 0, 2, 76}, + {0x90, 0, 2, 37}, + {0x90, 10, 0, 0}, + {0x80, 7, 0, 0}, + {0x80, 0, 0, 253}, + {0x80, 0, 0, 240}, + {0x80, 0, 0, 231}, + {0x80, 0, 0, 229}, + {0x80, 0, 0, 232}, + {0x80, 0, 0, 0}, + {0x80, 16, 0, 1}, + {0x80, 0, 1, 7}, + {0x80, 0, 4, 67}, + {0x90, 2, 3, 77}, + {0x90, 0, 3, 75}, + {0x90, 0, 2, 0}, + {0x90, 0, 0, 241}, + {0x90, 0, 254, 188}, + {0x90, 17, 254, 180}, + {0x90, 0, 254, 181}, + {0x90, 0, 0, 255}, + {0x90, 0, 2, 28}, + {0x90, 1, 1, 59}, + {0x90, 0, 1, 40}, + {0x90, 0, 1, 252}, + {0x90, 0, 254, 218}, + {0x90, 0, 253, 185}, + {0x90, 6, 253, 180}, + {0x90, 0, 254, 201}, + {0x90, 0, 2, 3}, + {0x90, 0, 5, 35}, + {0x90, 2, 8, 76}, + {0x90, 0, 5, 28}, + {0x90, 0, 0, 0}, + {0x90, 4, 0, 255}, + {0x90, 0, 0, 251}, + {0x90, 0, 254, 214}, + {0x90, 0, 253, 180}, + {0x90, 0, 252, 180}, + {0x80, 2, 252, 180}, + {0x80, 0, 251, 188}, + {0x80, 0, 251, 236}, + {0x80, 3, 0, 0}, + {0x80, 0, 1, 0}, + {0x80, 0, 5, 14}, + {0x80, 0, 11, 62}, + {0x80, 3, 13, 75}, + {0x80, 0, 13, 73}, + {0x80, 0, 12, 44}, + {0x80, 0, 0, 255}, + {0x80, 12, 0, 2}, + {0x80, 0, 0, 1}, + {0x80, 0, 0, 0}, + {0x80, 0, 0, 241}, + {0x80, 0, 255, 200}, + {0x80, 0, 253, 180}, + {0x80, 0, 253, 179}, + {0x90, 3, 253, 179}, + {0x90, 0, 253, 214}, + {0x90, 0, 1, 5}, + {0x90, 0, 2, 32}, + {0x90, 0, 6, 72}, + {0x90, 12, 7, 76}, + {0x90, 0, 3, 2}, + {0x90, 0, 1, 220}, + {0x90, 0, 1, 181}, + {0x90, 0, 1, 179}, + {0x90, 0, 1, 199}, + {0x90, 0, 2, 4}, + {0x90, 0, 5, 55}, + {0x90, 7, 6, 77}, + {0x90, 0, 3, 6}, + {0x90, 0, 0, 203}, + {0x90, 1, 0, 180}, + {0x90, 0, 1, 196}, + {0x90, 0, 3, 5}, + {0x90, 0, 6, 46}, + {0x90, 15, 8, 77}, + {0x80, 0, 8, 77}, + {0x80, 0, 8, 52}, + {0x80, 0, 0, 0}, + {0x80, 2, 0, 1}, + {0x80, 0, 0, 250}, + {0x80, 0, 0, 231}, + {0x80, 0, 0, 217}, + {0x80, 0, 0, 215}, + {0x80, 0, 0, 226}, + {0x80, 5, 0, 1}, + {0x80, 0, 0, 252}, + {0x80, 0, 255, 222}, + {0x80, 0, 255, 206}, + {0x80, 0, 255, 203}, + {0x80, 0, 255, 211}, + {0x80, 0, 255, 254}, + {0x80, 0, 0, 1}, + {0x80, 0, 0, 251}, + {0x80, 0, 0, 230}, + {0x80, 0, 0, 224}, + {0x80, 0, 0, 227}, + {0x80, 0, 2, 0}, + {0x80, 6, 3, 0}, + {0x80, 0, 2, 254}, + {0x80, 1, 2, 252}, + {0x80, 0, 2, 254}, + {0x80, 27, 2, 255}, + {0x80, 0, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 0, 3, 14}, + {0x80, 0, 5, 51}, + {0x80, 0, 6, 75}, + {0x90, 3, 7, 75}, + {0x90, 0, 3, 7}, + {0x90, 0, 255, 250}, + {0x90, 0, 255, 201}, + {0x90, 17, 255, 179}, + {0x90, 0, 0, 212}, + {0x90, 0, 1, 26}, + {0x90, 10, 4, 78}, + {0x90, 0, 2, 19}, + {0x90, 0, 252, 214}, + {0x90, 0, 252, 180}, + {0x90, 1, 252, 179}, + {0x90, 0, 254, 226}, + {0x90, 0, 2, 16}, + {0x90, 0, 2, 61}, + {0x90, 7, 2, 78}, + {0x90, 0, 2, 62}, + {0x90, 0, 2, 22}, + {0x90, 2, 2, 0}, + {0x90, 0, 2, 1}, + {0x90, 0, 2, 7}, + {0x90, 0, 2, 33}, + {0x90, 0, 2, 55}, + {0x90, 0, 2, 73}, + {0x90, 3, 2, 76}, + {0x90, 1, 2, 74}, + {0x90, 0, 2, 73}, + {0x90, 0, 2, 72}, + {0x90, 0, 2, 66}, + {0x90, 0, 2, 48}, + {0x90, 0, 2, 16}, + {0x90, 1, 2, 5}, + {0x90, 0, 2, 6}, + {0x90, 0, 2, 16}, + {0x90, 0, 2, 35}, + {0x90, 0, 2, 52}, + {0x90, 0, 2, 65}, + {0x90, 2, 2, 70}, + {0x90, 0, 2, 61}, + {0x90, 0, 2, 43}, + {0x90, 0, 2, 32}, + {0x90, 0, 2, 21}, + {0x90, 0, 2, 9}, + {0x90, 2, 2, 2}, + {0x90, 0, 2, 3}, + {0x90, 0, 2, 6}, + {0x90, 0, 2, 16}, + {0x90, 0, 2, 30}, + {0x90, 4, 2, 36}, + {0x90, 7, 2, 37}, + {0x90, 0, 2, 36}, + {0x90, 0, 2, 33}, + {0x90, 0, 2, 23}, + {0x80, 0, 2, 1}, + {0x80, 6, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 3, 2, 3}, + {0x80, 29, 2, 2}, + {0x80, 0, 2, 0}, + {0x80, 0, 2, 249}, + {0x80, 0, 1, 238}, + {0x80, 1, 1, 232}, + {0x80, 0, 1, 235}, + {0x80, 0, 1, 0}, + {0x80, 1, 1, 1}, + {0x80, 0, 1, 0}, + {0x80, 0, 1, 241}, + {0x80, 0, 1, 228}, + {0x80, 0, 1, 226}, + {0x80, 0, 1, 230}, + {0x80, 0, 1, 255}, + {0x80, 1, 1, 0}, + {0x80, 0, 1, 251}, + {0x80, 0, 1, 243}, + {0x80, 0, 1, 238}, + {0x80, 0, 1, 235}, + {0x80, 0, 1, 229}, + {0x80, 0, 1, 213}, + {0x80, 0, 1, 207}, + {0x80, 0, 1, 211}, + {0x80, 0, 1, 250}, + {0x80, 10, 1, 1}, + {0x80, 1, 1, 2}, + {0x80, 0, 1, 3}, + {0x80, 2, 1, 5}, + {0x80, 255, 1, 0}, + {0x80, 6, 1, 0}, + {0x90, 0, 252, 230}, + {0x90, 0, 248, 180}, + {0x90, 3, 247, 181}, + {0x90, 0, 247, 191}, + {0x90, 0, 3, 4}, + {0x90, 0, 3, 40}, + {0x90, 12, 6, 77}, + {0x90, 0, 252, 249}, + {0x90, 0, 249, 180}, + {0x90, 1, 249, 181}, + {0x90, 0, 255, 239}, + {0x90, 0, 3, 37}, + {0x90, 0, 7, 77}, + {0x90, 4, 7, 76}, + {0x90, 0, 3, 18}, + {0x90, 0, 254, 242}, + {0x90, 0, 254, 192}, + {0x90, 3, 254, 179}, + {0x90, 0, 254, 180}, + {0x90, 0, 254, 196}, + {0x90, 0, 254, 205}, + {0x90, 2, 254, 209}, + {0x90, 0, 254, 212}, + {0x90, 0, 254, 222}, + {0x90, 0, 254, 231}, + {0x90, 1, 255, 238}, + {0x90, 0, 255, 240}, + {0x90, 0, 255, 242}, + {0x90, 0, 255, 243}, + {0x90, 3, 255, 244}, + {0x90, 0, 255, 238}, + {0x90, 0, 255, 232}, + {0x90, 0, 255, 230}, + {0x90, 0, 255, 229}, + {0x90, 0, 255, 219}, + {0x90, 0, 255, 208}, + {0x90, 0, 255, 200}, + {0x90, 3, 255, 197}, + {0x90, 8, 255, 198}, + {0x90, 0, 255, 199}, + {0x90, 0, 255, 218}, + {0x90, 0, 255, 253}, + {0x80, 0, 2, 1}, + {0x80, 3, 1, 2}, + {0x80, 5, 1, 1}, + {0x80, 1, 1, 2}, + {0x80, 0, 1, 7}, + {0x80, 0, 6, 37}, + {0x80, 0, 9, 70}, + {0x80, 1, 10, 76}, + {0x90, 7, 10, 76}, + {0x90, 0, 9, 41}, + {0x90, 0, 0, 220}, + {0x90, 0, 254, 180}, + {0x90, 1, 254, 179}, + {0x90, 0, 254, 204}, + {0x90, 0, 2, 21}, + {0x90, 0, 9, 76}, + {0x90, 6, 8, 77}, + {0x90, 0, 7, 69}, + {0x90, 0, 251, 239}, + {0x90, 7, 251, 180}, + {0x80, 3, 251, 180}, + {0x80, 0, 251, 189}, + {0x80, 0, 254, 239}, + {0x80, 1, 1, 1}, + {0x80, 0, 1, 252}, + {0x80, 0, 0, 228}, + {0x80, 0, 254, 204}, + {0x80, 0, 251, 180}, + {0x80, 1, 251, 181}, + {0x90, 5, 251, 181}, + {0x90, 0, 2, 235}, + {0x90, 0, 9, 28}, + {0x90, 0, 19, 75}, + {0x90, 1, 18, 75}, + {0x90, 0, 11, 52}, + {0x90, 0, 254, 252}, + {0x90, 0, 251, 186}, + {0x90, 7, 247, 181}, + {0x80, 2, 247, 181}, + {0x90, 4, 247, 181}, + {0x80, 3, 247, 181}, + {0x90, 15, 247, 181}, + {0x90, 0, 248, 181}, + {0x90, 0, 1, 255}, + {0x80, 0, 8, 43}, + {0x80, 0, 19, 74}, + {0x80, 2, 18, 74}, + {0x90, 8, 18, 74}, + {0x80, 2, 18, 74}, + {0x90, 15, 18, 74}, + {0x80, 0, 21, 68}, + {0xa0, 0, 35, 55}, + {0xa0, 1, 44, 52}, + {0x80, 0, 33, 33}, + {0x80, 0, 12, 10}, + {0x80, 2, 0, 0}, + {0x80, 0, 0, 254}, + {0x80, 0, 0, 250}, + {0x80, 0, 0, 240}, + {0x80, 0, 251, 211}, + {0x80, 0, 243, 182}, + {0x80, 3, 242, 181}, + {0x90, 6, 242, 181}, + {0x90, 0, 244, 185}, + {0x90, 0, 5, 12}, + {0x90, 0, 18, 74}, + {0x90, 20, 18, 75}, + {0x90, 0, 10, 40}, + {0x90, 0, 0, 212}, + {0x90, 1, 1, 185}, + {0x90, 0, 2, 243}, + {0x90, 6, 1, 77}, + {0x90, 0, 1, 39}, + {0x90, 0, 251, 198}, + {0x90, 8, 252, 179}, + {0x90, 0, 253, 196}, + {0x90, 0, 3, 255}, + {0x90, 0, 3, 2}, + {0x90, 0, 8, 15}, + {0x90, 0, 9, 15}, + {0x90, 0, 8, 10}, + {0x90, 0, 1, 0}, + {0x90, 19, 0, 0}, + {0x80, 5, 0, 0}, + {0x80, 2, 1, 0}, + {0x80, 0, 1, 2}, + {0x80, 0, 1, 4}, + {0x80, 0, 2, 8}, + {0x80, 0, 3, 13}, + {0x80, 0, 3, 14}, + {0x80, 0, 3, 15}, + {0x80, 0, 4, 25}, + {0x80, 0, 5, 39}, + {0x80, 0, 6, 48}, + {0x80, 2, 6, 49}, + {0x80, 0, 6, 34}, + {0x80, 0, 6, 16}, + {0x80, 2, 6, 11}, + {0x80, 0, 6, 17}, + {0x80, 0, 6, 24}, + {0x80, 2, 6, 27}, + {0x80, 0, 4, 5}, + {0x80, 89, 3, 0}, + {0x80, 0, 2, 252}, + {0x80, 0, 255, 208}, + {0x90, 3, 253, 180}, + {0x90, 0, 254, 201}, + {0x90, 0, 2, 22}, + {0x90, 0, 4, 78}, + {0x90, 16, 5, 78}, + {0x90, 0, 5, 77}, + {0x90, 0, 255, 14}, + {0x90, 0, 251, 213}, + {0x90, 1, 251, 179}, + {0x90, 0, 251, 183}, + {0x90, 0, 1, 2}, + {0x90, 0, 3, 54}, + {0x90, 10, 3, 78}, + {0x90, 0, 1, 33}, + {0x90, 0, 250, 200}, + {0x90, 1, 250, 179}, + {0x90, 0, 254, 203}, + {0x90, 0, 2, 15}, + {0x90, 0, 2, 76}, + {0x90, 8, 2, 78}, + {0x80, 0, 2, 67}, + {0x80, 0, 2, 12}, + {0x80, 6, 2, 0}, + {0x80, 0, 2, 253}, + {0x80, 0, 254, 215}, + {0x80, 2, 254, 180}, + {0x80, 0, 254, 196}, + {0x80, 0, 3, 3}, + {0x80, 28, 1, 0}, + {0x80, 0, 255, 241}, + {0x80, 0, 248, 180}, + {0x90, 2, 246, 181}, + {0x90, 0, 246, 183}, + {0x90, 0, 2, 0}, + {0x90, 0, 6, 39}, + {0x90, 0, 12, 76}, + {0x90, 11, 11, 76}, + {0x90, 0, 2, 2}, + {0x90, 0, 255, 201}, + {0x90, 1, 253, 180}, + {0x90, 0, 0, 212}, + {0x90, 0, 2, 22}, + {0x90, 0, 7, 77}, + {0x90, 7, 7, 76}, + {0x90, 0, 1, 51}, + {0x90, 0, 255, 249}, + {0x90, 0, 254, 185}, + {0x90, 9, 254, 181}, + {0x90, 0, 254, 183}, + {0x90, 0, 254, 200}, + {0x90, 0, 255, 228}, + {0x90, 0, 255, 243}, + {0x90, 1, 0, 245}, + {0x90, 0, 255, 223}, + {0x90, 0, 255, 191}, + {0x90, 5, 254, 180}, + {0x90, 0, 254, 188}, + {0x90, 0, 254, 209}, + {0x90, 0, 254, 221}, + {0x90, 0, 254, 220}, + {0x90, 0, 254, 203}, + {0x90, 2, 254, 192}, + {0x90, 0, 254, 202}, + {0x90, 0, 255, 222}, + {0x90, 1, 0, 232}, + {0x90, 1, 0, 233}, + {0x90, 0, 0, 232}, + {0x90, 0, 0, 227}, + {0x90, 3, 0, 224}, + {0x90, 0, 0, 225}, + {0x90, 0, 0, 227}, + {0x90, 0, 0, 229}, + {0x90, 0, 0, 237}, + {0x90, 0, 0, 255}, + {0x90, 0, 0, 1}, + {0x80, 11, 0, 1}, + {0x80, 0, 1, 1}, + {0x80, 0, 1, 23}, + {0x80, 2, 3, 77}, + {0x90, 4, 3, 77}, + {0x90, 0, 1, 2}, + {0x90, 0, 1, 211}, + {0x90, 6, 255, 180}, + {0x90, 0, 255, 203}, + {0x90, 0, 3, 5}, + {0x90, 0, 3, 58}, + {0x90, 36, 3, 77}, + {0x80, 3, 3, 77}, + {0x90, 12, 3, 77}, + {0x90, 0, 3, 70}, + {0x80, 0, 3, 19}, + {0x80, 5, 2, 0}, + {0x80, 0, 255, 237}, + {0x80, 0, 252, 214}, + {0x80, 0, 251, 192}, + {0x80, 0, 251, 190}, + {0x80, 0, 251, 211}, + {0x80, 0, 0, 0}, + {0x80, 23, 3, 0}, + {0x80, 0, 3, 1}, + {0x80, 0, 3, 10}, + {0x80, 0, 3, 54}, + {0x90, 3, 3, 77}, + {0x90, 0, 3, 12}, + {0x90, 0, 254, 240}, + {0x90, 0, 254, 187}, + {0x90, 13, 253, 180}, + {0x90, 0, 253, 186}, + {0x90, 0, 3, 7}, + {0x90, 0, 6, 77}, + {0x90, 1, 7, 77}, + {0x90, 0, 5, 54}, + {0x90, 0, 255, 252}, + {0x90, 0, 1, 191}, + {0x90, 7, 1, 179}, + {0x90, 0, 1, 192}, + {0x90, 0, 3, 1}, + {0x90, 0, 8, 35}, + {0x90, 1, 12, 75}, + {0x90, 0, 12, 66}, + {0x90, 0, 1, 0}, + {0x90, 3, 0, 0}, + {0x90, 0, 1, 1}, + {0x90, 0, 2, 6}, + {0x90, 0, 3, 18}, + {0x90, 0, 5, 58}, + {0x90, 3, 5, 76}, + {0x90, 0, 2, 44}, + {0x90, 0, 2, 1}, + {0x90, 0, 2, 0}, + {0x90, 0, 2, 1}, + {0x90, 0, 2, 11}, + {0x90, 0, 2, 43}, + {0x90, 0, 2, 69}, + {0x90, 1, 2, 73}, + {0x90, 0, 2, 32}, + {0x90, 4, 1, 0}, + {0x80, 6, 1, 0}, + {0x80, 28, 1, 1}, + {0x80, 0, 1, 12}, + {0x80, 0, 3, 46}, + {0x80, 0, 3, 77}, + {0x90, 2, 3, 77}, + {0x90, 0, 3, 48}, + {0x90, 0, 255, 255}, + {0x90, 0, 255, 243}, + {0x90, 0, 254, 206}, + {0x90, 13, 251, 180}, + {0x90, 0, 251, 182}, + {0x90, 0, 255, 254}, + {0x90, 0, 1, 24}, + {0x90, 1, 3, 74}, + {0x90, 0, 3, 41}, + {0x90, 0, 255, 248}, + {0x90, 0, 255, 195}, + {0x90, 12, 254, 180}, + {0x90, 0, 254, 198}, + {0x90, 0, 3, 1}, + {0x90, 0, 3, 17}, + {0x90, 0, 4, 39}, + {0x90, 1, 5, 44}, + {0x90, 0, 5, 42}, + {0x90, 0, 5, 31}, + {0x90, 0, 5, 12}, + {0x90, 8, 3, 2}, + {0x90, 0, 3, 6}, + {0x90, 0, 3, 8}, + {0x90, 0, 3, 9}, + {0x80, 0, 3, 11}, + {0x80, 0, 3, 12}, + {0x80, 0, 3, 19}, + {0x80, 0, 3, 30}, + {0x80, 0, 3, 39}, + {0x80, 1, 3, 41}, + {0x80, 0, 3, 39}, + {0x80, 0, 3, 4}, + {0x80, 0, 3, 0}, + {0x80, 0, 3, 1}, + {0x80, 0, 3, 10}, + {0x80, 0, 3, 48}, + {0x80, 2, 3, 76}, + {0x80, 0, 0, 40}, + {0x80, 0, 254, 1}, + {0x80, 14, 0, 0}, + {0x80, 0, 0, 252}, + {0x80, 0, 0, 239}, + {0x80, 0, 254, 196}, + {0x80, 0, 251, 181}, + {0x90, 4, 251, 181}, + {0x90, 0, 253, 189}, + {0x90, 0, 4, 4}, + {0x90, 0, 10, 56}, + {0x90, 0, 15, 75}, + {0x90, 3, 14, 75}, + {0x90, 7, 13, 75}, + {0x90, 0, 4, 9}, + {0x90, 0, 1, 208}, + {0x90, 1, 0, 180}, + {0x90, 0, 0, 201}, + {0x90, 0, 2, 12}, + {0x90, 0, 2, 71}, + {0x90, 5, 2, 77}, + {0x90, 0, 2, 23}, + {0x90, 0, 255, 222}, + {0x90, 1, 255, 179}, + {0x90, 0, 1, 208}, + {0x90, 0, 2, 22}, + {0x90, 0, 5, 76}, + {0x90, 15, 5, 77}, + {0x80, 0, 5, 57}, + {0x80, 0, 3, 2}, + {0x80, 1, 3, 0}, + {0x80, 0, 1, 252}, + {0x80, 0, 255, 229}, + {0x80, 0, 255, 205}, + {0x80, 0, 255, 200}, + {0x80, 0, 255, 210}, + {0x80, 0, 1, 0}, + {0x80, 5, 2, 1}, + {0x80, 0, 2, 254}, + {0x80, 0, 254, 233}, + {0x80, 0, 254, 216}, + {0x80, 1, 254, 196}, + {0x80, 0, 254, 233}, + {0x80, 0, 2, 0}, + {0x80, 14, 1, 0}, + {0x80, 0, 1, 1}, + {0x80, 0, 1, 4}, + {0x80, 0, 1, 18}, + {0x80, 0, 2, 30}, + {0x80, 0, 2, 31}, + {0x80, 0, 2, 30}, + {0x80, 9, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 0, 2, 2}, + {0x80, 12, 2, 3}, + {0x80, 0, 2, 5}, + {0x80, 0, 2, 30}, + {0x80, 0, 2, 67}, + {0x80, 0, 2, 77}, + {0x90, 4, 2, 77}, + {0x90, 0, 2, 39}, + {0x90, 0, 1, 254}, + {0x90, 0, 255, 209}, + {0x90, 0, 253, 180}, + {0x90, 13, 252, 180}, + {0x90, 0, 252, 183}, + {0x90, 0, 254, 250}, + {0x90, 0, 1, 29}, + {0x90, 0, 2, 70}, + {0x90, 0, 2, 71}, + {0x90, 0, 2, 44}, + {0x90, 0, 255, 247}, + {0x90, 0, 251, 194}, + {0x90, 14, 250, 180}, + {0x90, 0, 251, 208}, + {0x90, 0, 3, 13}, + {0x90, 0, 3, 68}, + {0x90, 7, 4, 77}, + {0x90, 0, 4, 68}, + {0x90, 0, 4, 36}, + {0x90, 0, 4, 16}, + {0x90, 1, 4, 13}, + {0x90, 0, 4, 21}, + {0x90, 0, 4, 36}, + {0x90, 0, 4, 52}, + {0x90, 0, 4, 63}, + {0x90, 0, 4, 72}, + {0x90, 0, 4, 75}, + {0x90, 9, 4, 76}, + {0x90, 0, 4, 62}, + {0x90, 0, 4, 31}, + {0x90, 1, 4, 22}, + {0x90, 0, 4, 32}, + {0x90, 0, 4, 48}, + {0x90, 0, 3, 62}, + {0x90, 0, 3, 71}, + {0x90, 5, 3, 76}, + {0x90, 0, 3, 70}, + {0x90, 0, 3, 46}, + {0x90, 0, 3, 16}, + {0x90, 2, 3, 3}, + {0x90, 0, 3, 5}, + {0x90, 0, 3, 6}, + {0x90, 0, 3, 8}, + {0x90, 0, 3, 13}, + {0x90, 0, 3, 22}, + {0x90, 0, 3, 32}, + {0x90, 0, 3, 53}, + {0x90, 0, 3, 59}, + {0x90, 1, 3, 60}, + {0x90, 0, 3, 47}, + {0x90, 0, 3, 38}, + {0x90, 0, 3, 22}, + {0x90, 0, 3, 0}, + {0x80, 77, 3, 0}, + {0x80, 0, 1, 249}, + {0x80, 0, 0, 229}, + {0x80, 1, 0, 222}, + {0x80, 0, 0, 251}, + {0x80, 13, 0, 1}, + {0x80, 0, 0, 251}, + {0x80, 0, 255, 226}, + {0x80, 1, 255, 220}, + {0x80, 0, 255, 222}, + {0x80, 0, 255, 243}, + {0x80, 3, 0, 255}, + {0x80, 0, 0, 241}, + {0x80, 0, 0, 235}, + {0x80, 0, 0, 239}, + {0x80, 41, 0, 1}, + {0x80, 199, 0, 2}, + {0x80, 0, 0, 0}, + {0x80, 0, 253, 213}, + {0x90, 4, 249, 180}, + {0x90, 0, 249, 187}, + {0x90, 0, 0, 5}, + {0x90, 0, 2, 43}, + {0x90, 15, 9, 77}, + {0x90, 0, 1, 29}, + {0x90, 0, 249, 197}, + {0x90, 1, 249, 180}, + {0x90, 0, 249, 191}, + {0x90, 0, 3, 6}, + {0x90, 0, 3, 70}, + {0x90, 3, 5, 76}, + {0x90, 0, 1, 66}, + {0x90, 0, 251, 241}, + {0x90, 0, 248, 181}, + {0x90, 6, 248, 180}, + {0x90, 0, 248, 187}, + {0x90, 1, 248, 189}, + {0x90, 0, 248, 186}, + {0x90, 1, 248, 184}, + {0x90, 0, 251, 213}, + {0x90, 0, 255, 252}, + {0x90, 1, 2, 1}, + {0x90, 0, 2, 255}, + {0x90, 0, 255, 230}, + {0x90, 0, 247, 187}, + {0x90, 7, 244, 182}, + {0x90, 0, 246, 199}, + {0x90, 0, 253, 242}, + {0x90, 5, 2, 1}, + {0x90, 0, 2, 251}, + {0x90, 0, 254, 219}, + {0x90, 0, 249, 181}, + {0x90, 3, 248, 182}, + {0x90, 0, 249, 190}, + {0x90, 0, 255, 239}, + {0x90, 1, 2, 1}, + {0x80, 1, 2, 1}, + {0x80, 0, 2, 19}, + {0x80, 0, 2, 63}, + {0x80, 0, 2, 76}, + {0x80, 3, 3, 76}, + {0x90, 5, 3, 76}, + {0x90, 0, 3, 39}, + {0x90, 0, 251, 224}, + {0x90, 8, 247, 180}, + {0x90, 0, 250, 217}, + {0x90, 0, 4, 31}, + {0x90, 0, 11, 76}, + {0x90, 0, 10, 75}, + {0x90, 0, 10, 60}, + {0x90, 0, 1, 251}, + {0x90, 0, 254, 188}, + {0x90, 3, 254, 180}, + {0x90, 0, 254, 194}, + {0x90, 0, 6, 6}, + {0x90, 0, 13, 49}, + {0x90, 1, 17, 68}, + {0x80, 0, 3, 0}, + {0x80, 14, 2, 0}, + {0x80, 0, 2, 255}, + {0x80, 0, 253, 221}, + {0x80, 0, 248, 182}, + {0x80, 0, 247, 180}, + {0x90, 4, 247, 180}, + {0x80, 2, 247, 180}, + {0x90, 14, 247, 180}, + {0x90, 0, 246, 180}, + {0x80, 0, 245, 180}, + {0x80, 1, 244, 180}, + {0x90, 2, 244, 180}, + {0x80, 5, 244, 180}, + {0x90, 11, 244, 180}, + {0x80, 0, 244, 203}, + {0x80, 0, 254, 24}, + {0x80, 0, 1, 78}, + {0x80, 3, 0, 78}, + {0x90, 3, 0, 78}, + {0x80, 6, 0, 78}, + {0x90, 4, 0, 78}, + {0x80, 3, 0, 78}, + {0x90, 3, 0, 79}, + {0x90, 2, 0, 78}, + {0x80, 0, 0, 78}, + {0xa0, 3, 0, 78}, + {0x80, 0, 0, 78}, + {0x80, 0, 3, 51}, + {0x80, 0, 255, 253}, + {0x80, 0, 255, 209}, + {0x80, 9, 249, 181}, + {0x80, 0, 254, 248}, + {0x90, 0, 0, 5}, + {0x90, 1, 1, 15}, + {0x90, 0, 1, 1}, + {0x90, 0, 252, 235}, + {0x90, 0, 251, 230}, + {0x90, 0, 2, 1}, + {0x90, 0, 17, 73}, + {0x90, 0, 19, 74}, + {0x90, 7, 18, 74}, + {0x90, 0, 18, 69}, + {0x90, 0, 16, 64}, + {0x90, 0, 9, 11}, + {0x90, 0, 254, 184}, + {0x90, 0, 0, 179}, + {0x90, 1, 255, 179}, + {0x90, 0, 9, 13}, + {0x90, 0, 15, 75}, + {0x90, 12, 15, 76}, + {0x90, 0, 11, 69}, + {0x90, 0, 255, 217}, + {0x90, 1, 254, 180}, + {0x90, 0, 254, 181}, + {0x90, 0, 255, 246}, + {0x90, 0, 4, 55}, + {0x90, 3, 7, 77}, + {0x90, 0, 2, 17}, + {0x90, 0, 254, 192}, + {0x90, 5, 253, 180}, + {0x90, 0, 253, 192}, + {0x90, 0, 253, 227}, + {0x90, 0, 255, 247}, + {0x90, 1, 255, 250}, + {0x90, 0, 255, 248}, + {0x90, 4, 255, 241}, + {0x90, 0, 255, 243}, + {0x90, 0, 0, 253}, + {0x90, 1, 0, 255}, + {0x90, 0, 0, 243}, + {0x90, 0, 255, 206}, + {0x90, 0, 254, 190}, + {0x90, 0, 254, 189}, + {0x90, 0, 254, 222}, + {0x90, 0, 2, 1}, + {0x90, 0, 0, 1}, + {0x80, 3, 0, 1}, + {0x80, 0, 1, 1}, + {0x80, 0, 3, 24}, + {0x80, 0, 5, 55}, + {0x80, 0, 5, 71}, + {0x80, 2, 5, 72}, + {0x80, 0, 5, 57}, + {0x80, 0, 1, 0}, + {0x80, 0, 255, 36}, + {0x80, 1, 255, 37}, + {0x80, 0, 255, 254}, + {0x80, 103, 255, 255}, + {0x80, 0, 255, 238}, + {0x80, 0, 255, 177}, + {0x90, 0, 254, 173}, + {0x90, 3, 255, 173}, + {0x90, 0, 255, 195}, + {0x90, 0, 1, 2}, + {0x90, 0, 2, 44}, + {0x90, 13, 6, 74}, + {0x90, 0, 255, 254}, + {0x90, 0, 251, 175}, + {0x90, 0, 250, 173}, + {0x90, 0, 251, 173}, + {0x90, 0, 1, 189}, + {0x90, 0, 1, 18}, + {0x90, 2, 4, 74}, + {0x90, 0, 1, 56}, + {0x90, 0, 255, 246}, + {0x90, 0, 251, 197}, + {0x90, 5, 252, 174}, + {0x90, 0, 253, 174}, + {0x90, 0, 254, 174}, + {0x90, 0, 254, 183}, + {0x90, 1, 254, 195}, + {0x90, 0, 254, 191}, + {0x90, 1, 254, 185}, + {0x90, 0, 254, 189}, + {0x90, 0, 0, 225}, + {0x90, 0, 1, 246}, + {0x90, 2, 1, 251}, + {0x90, 0, 0, 248}, + {0x90, 0, 254, 232}, + {0x90, 0, 254, 207}, + {0x90, 0, 254, 189}, + {0x90, 1, 254, 185}, + {0x90, 0, 254, 198}, + {0x90, 4, 254, 205}, + {0x90, 0, 254, 210}, + {0x90, 0, 254, 215}, + {0x90, 0, 255, 217}, + {0x90, 0, 255, 223}, + {0x90, 0, 255, 241}, + {0x90, 5, 255, 254}, + {0x80, 0, 255, 254}, + {0x80, 4, 0, 254}, + {0x80, 0, 0, 1}, + {0x80, 0, 1, 19}, + {0x80, 0, 0, 51}, + {0x80, 3, 2, 74}, + {0x90, 4, 2, 74}, + {0x90, 0, 2, 48}, + {0x90, 0, 255, 250}, + {0x90, 0, 252, 205}, + {0x90, 0, 252, 175}, + {0x90, 7, 252, 174}, + {0x90, 0, 255, 206}, + {0x90, 0, 0, 16}, + {0x90, 0, 3, 71}, + {0x90, 0, 3, 73}, + {0x90, 0, 3, 70}, + {0x90, 0, 0, 253}, + {0x90, 0, 249, 213}, + {0x90, 0, 249, 174}, + {0x90, 2, 250, 176}, + {0x90, 0, 252, 238}, + {0x90, 0, 1, 41}, + {0x90, 1, 1, 74}, + {0x90, 0, 1, 72}, + {0x90, 0, 0, 254}, + {0x90, 0, 254, 254}, + {0x90, 0, 255, 254}, + {0x80, 11, 0, 254}, + {0x80, 0, 253, 238}, + {0x80, 0, 252, 209}, + {0x80, 0, 252, 186}, + {0x80, 0, 251, 174}, + {0x90, 4, 251, 174}, + {0x80, 3, 251, 174}, + {0x90, 0, 251, 174}, + {0x90, 2, 250, 174}, + {0x80, 0, 250, 174}, + {0x80, 0, 248, 174}, + {0x80, 0, 247, 174}, + {0x80, 0, 247, 175}, + {0x90, 4, 247, 175}, + {0x80, 3, 247, 175}, + {0x90, 4, 247, 175}, + {0x80, 2, 246, 175}, + {0x90, 8, 246, 175}, + {0x90, 0, 245, 177}, + {0x80, 0, 247, 202}, + {0x80, 0, 248, 204}, + {0x80, 0, 247, 201}, + {0x80, 0, 246, 190}, + {0x80, 0, 245, 187}, + {0x80, 0, 245, 189}, + {0x80, 0, 0, 253}, + {0x80, 0, 0, 62}, + {0x80, 4, 0, 74}, + {0x90, 3, 0, 74}, + {0x80, 5, 0, 74}, + {0x90, 2, 0, 74}, + {0x80, 4, 0, 74}, + {0x90, 3, 0, 74}, + {0xb0, 3, 0, 74}, + {0x80, 5, 0, 74}, + {0x80, 0, 0, 52}, + {0x80, 0, 0, 254}, + {0x80, 0, 250, 229}, + {0x80, 0, 250, 192}, + {0x80, 0, 247, 176}, + {0x80, 0, 248, 176}, + {0xa0, 0, 248, 176}, + {0xa0, 0, 253, 175}, + {0xa0, 0, 255, 175}, + {0xa0, 0, 3, 176}, + {0x80, 0, 0, 176}, + {0x80, 0, 249, 178}, + {0x80, 0, 251, 180}, + {0x80, 0, 251, 190}, + {0x80, 0, 252, 216}, + {0x80, 0, 252, 237}, + {0x80, 0, 252, 240}, + {0x90, 0, 252, 221}, + {0x90, 0, 247, 175}, + {0x90, 0, 244, 176}, + {0x90, 1, 245, 176}, + {0x90, 0, 1, 255}, + {0x90, 0, 6, 73}, + {0x90, 1, 8, 73}, + {0x90, 0, 7, 74}, + {0x90, 0, 6, 74}, + {0x90, 4, 5, 74}, + {0x90, 16, 4, 74}, + {0x90, 0, 3, 74}, + {0x90, 0, 254, 250}, + {0x90, 0, 248, 173}, + {0x90, 1, 247, 174}, + {0x90, 0, 253, 204}, + {0x90, 0, 0, 28}, + {0x90, 2, 4, 73}, + {0x90, 0, 3, 73}, + {0x90, 2, 2, 73}, + {0x90, 0, 0, 62}, + {0x90, 0, 250, 212}, + {0x90, 11, 247, 175}, + {0x90, 0, 1, 199}, + {0x90, 0, 10, 247}, + {0x90, 0, 6, 0}, + {0x90, 0, 4, 0}, + {0x90, 0, 3, 0}, + {0x90, 0, 2, 0}, + {0x90, 0, 1, 0}, + {0x90, 0, 1, 255}, + {0x90, 0, 1, 0}, + {0x90, 0, 1, 255}, + {0x90, 0, 0, 254}, + {0x90, 0, 255, 250}, + {0x90, 1, 254, 250}, + {0x90, 0, 255, 251}, + {0x90, 0, 254, 250}, + {0x90, 0, 244, 229}, + {0x80, 0, 240, 219}, + {0x80, 0, 242, 228}, + {0x80, 0, 254, 255}, + {0x80, 6, 0, 255}, + {0x80, 0, 1, 0}, + {0x80, 0, 1, 11}, + {0x80, 0, 1, 26}, + {0x80, 0, 1, 41}, + {0x80, 0, 3, 57}, + {0x80, 2, 4, 70}, + {0x80, 0, 4, 51}, + {0x80, 0, 1, 0}, + {0x80, 0, 255, 255}, + {0x90, 0, 0, 200}, + {0x90, 0, 2, 183}, + {0x90, 2, 2, 182}, + {0x80, 0, 2, 182}, + {0x80, 0, 2, 218}, + {0x80, 0, 1, 253}, + {0x80, 0, 2, 254}, + {0x80, 0, 1, 244}, + {0x80, 0, 1, 190}, + {0x80, 2, 1, 181}, + {0x80, 0, 1, 188}, + {0x80, 3, 1, 190}, + {0x80, 1, 1, 191}, + {0x80, 0, 1, 193}, + {0x80, 0, 1, 234}, + {0x80, 0, 1, 0}, + {0x80, 0, 1, 2}, + {0x80, 0, 1, 21}, + {0x80, 0, 3, 62}, + {0x80, 2, 3, 77}, + {0x90, 7, 3, 77}, + {0x90, 0, 3, 73}, + {0x90, 0, 3, 57}, + {0x90, 5, 3, 44}, + {0x90, 0, 3, 47}, + {0x90, 0, 3, 53}, + {0x90, 0, 3, 58}, + {0x90, 1, 3, 59}, + {0x90, 2, 3, 60}, + {0x90, 0, 3, 42}, + {0x90, 0, 2, 1}, + {0x90, 4, 2, 0}, + {0x90, 0, 1, 252}, + {0x90, 0, 1, 246}, + {0x90, 0, 1, 234}, + {0x80, 0, 0, 217}, + {0x80, 0, 0, 184}, + {0x80, 4, 0, 179}, + {0x90, 2, 0, 179}, + {0x90, 2, 0, 180}, + {0x90, 0, 0, 182}, + {0x90, 0, 0, 200}, + {0x90, 0, 1, 241}, + {0x90, 0, 1, 243}, + {0x90, 0, 1, 239}, + {0x90, 0, 0, 207}, + {0x90, 0, 1, 183}, + {0x90, 14, 1, 181}, + {0x90, 0, 1, 191}, + {0x90, 0, 1, 198}, + {0x90, 0, 1, 199}, + {0x90, 0, 1, 188}, + {0x90, 6, 1, 180}, + {0x80, 13, 1, 180}, + {0x80, 0, 1, 182}, + {0x80, 0, 1, 225}, + {0x80, 0, 1, 2}, + {0x80, 0, 1, 1}, + {0x80, 0, 1, 16}, + {0x80, 0, 5, 59}, + {0x80, 0, 6, 76}, + {0x90, 10, 6, 76}, + {0x80, 2, 6, 76}, + {0x80, 0, 6, 73}, + {0x80, 2, 6, 72}, + {0x80, 0, 5, 69}, + {0x80, 0, 4, 54}, + {0x80, 0, 4, 34}, + {0x80, 1, 4, 29}, + {0x80, 1, 3, 29}, + {0x80, 0, 3, 44}, + {0x80, 0, 4, 59}, + {0x80, 0, 5, 70}, + {0x80, 4, 5, 72}, + {0x80, 0, 3, 48}, + {0xa0, 0, 3, 19}, + {0xa0, 1, 3, 18}, + {0xa0, 1, 3, 19}, + {0x80, 1, 3, 19}, + {0x80, 0, 3, 3}, + {0x80, 2, 2, 1}, + {0x80, 3, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 0, 3, 4}, + {0x80, 0, 3, 17}, + {0x80, 0, 3, 45}, + {0x80, 1, 3, 59}, + {0x80, 0, 3, 54}, + {0x80, 0, 3, 8}, + {0x80, 0, 1, 1}, + {0x80, 10, 2, 1}, + {0x80, 2, 2, 0}, + {0x80, 0, 2, 254}, + {0x80, 0, 1, 250}, + {0x80, 0, 1, 227}, + {0x80, 0, 0, 200}, + {0x90, 0, 1, 183}, + {0x90, 4, 2, 180}, + {0x90, 0, 1, 195}, + {0x90, 0, 1, 1}, + {0x90, 0, 2, 3}, + {0x90, 0, 2, 26}, + {0x90, 0, 2, 55}, + {0x90, 7, 2, 77}, + {0x90, 0, 3, 66}, + {0x90, 0, 255, 253}, + {0x90, 0, 0, 207}, + {0x90, 5, 2, 180}, + {0x90, 0, 2, 218}, + {0x90, 0, 2, 4}, + {0x90, 0, 2, 42}, + {0x90, 2, 3, 77}, + {0x90, 0, 3, 60}, + {0x90, 0, 255, 252}, + {0x90, 0, 0, 206}, + {0x90, 2, 1, 180}, + {0x90, 0, 1, 204}, + {0x90, 0, 1, 0}, + {0x90, 0, 1, 19}, + {0x90, 0, 2, 77}, + {0x90, 1, 3, 77}, + {0x90, 0, 3, 75}, + {0x90, 0, 0, 255}, + {0x90, 0, 1, 226}, + {0x90, 0, 2, 186}, + {0x90, 0, 3, 180}, + {0x90, 0, 3, 181}, + {0x90, 0, 2, 237}, + {0x90, 0, 1, 1}, + {0x90, 0, 2, 1}, + {0x90, 1, 2, 3}, + {0x90, 0, 2, 1}, + {0x90, 0, 1, 254}, + {0x80, 0, 2, 222}, + {0x80, 0, 2, 197}, + {0x80, 0, 2, 194}, + {0x80, 0, 2, 205}, + {0x80, 0, 1, 2}, + {0x80, 0, 2, 2}, + {0x80, 0, 2, 3}, + {0x80, 0, 2, 5}, + {0x80, 0, 2, 9}, + {0x80, 0, 2, 33}, + {0x80, 0, 6, 62}, + {0x80, 2, 6, 77}, + {0x80, 0, 6, 64}, + {0x80, 0, 4, 35}, + {0x80, 0, 3, 1}, + {0x80, 7, 2, 0}, + {0x80, 0, 2, 1}, + {0x80, 0, 3, 5}, + {0x80, 0, 5, 28}, + {0x80, 0, 5, 53}, + {0x80, 0, 5, 55}, + {0x80, 0, 5, 44}, + {0x80, 0, 1, 2}, + {0x80, 4, 2, 1}, + {0x80, 0, 0, 246}, + {0x80, 0, 0, 225}, + {0x80, 0, 0, 210}, + {0x80, 1, 0, 205}, + {0x80, 0, 0, 222}, + {0x80, 0, 0, 1}, + {0x80, 0, 2, 1}, + {0x90, 3, 1, 185}, + {0x90, 2, 0, 185}, + {0x90, 3, 0, 184}, + {0x90, 2, 1, 184}, + {0x80, 0, 0, 184}, + {0x80, 0, 0, 186}, + {0x80, 0, 0, 200}, + {0x80, 0, 0, 210}, + {0x80, 2, 0, 212}, + {0x80, 0, 1, 233}, + {0x80, 0, 1, 1}, + {0x80, 0, 2, 1}, + {0x80, 0, 3, 1}, + {0x80, 0, 3, 7}, + {0x80, 0, 3, 31}, + {0x80, 0, 3, 50}, + {0x80, 0, 3, 68}, + {0x80, 1, 4, 77}, + {0x90, 1, 4, 77}, + {0x90, 0, 4, 69}, + {0x90, 0, 3, 42}, + {0x90, 0, 3, 25}, + {0x90, 0, 3, 19}, + {0x90, 6, 3, 18}, + {0x90, 0, 3, 19}, + {0x90, 0, 3, 27}, + {0x90, 0, 3, 35}, + {0x90, 3, 4, 36}, + {0x90, 0, 4, 58}, + {0x90, 0, 4, 77}, + {0x80, 11, 4, 77}, + {0x80, 0, 4, 75}, + {0x80, 0, 4, 58}, + {0x80, 0, 3, 33}, + {0x80, 0, 3, 20}, + {0x80, 0, 3, 3}, + {0x80, 1, 2, 1}, + {0x80, 3, 2, 2}, + {0x80, 0, 2, 1}, + {0x80, 0, 1, 250}, + {0x80, 0, 0, 225}, + {0x80, 0, 0, 211}, + {0x80, 3, 0, 208}, + {0x80, 0, 0, 213}, + {0x80, 0, 255, 243}, + {0x80, 2, 1, 0}, + {0x80, 3, 2, 0}, + {0x80, 0, 2, 255}, + {0x80, 0, 1, 254}, + {0x80, 0, 1, 253}, + {0x80, 0, 1, 252}, + {0x80, 0, 1, 246}, + {0x80, 0, 0, 234}, + {0x80, 0, 0, 218}, + {0x80, 0, 0, 210}, + {0x80, 0, 0, 202}, + {0x80, 0, 0, 196}, + {0x90, 0, 0, 195}, + {0x90, 0, 0, 194}, + {0x90, 0, 0, 183}, + {0x90, 1, 0, 180}, + {0x90, 1, 0, 181}, + {0x90, 0, 0, 187}, + {0x90, 0, 2, 243}, + {0x90, 0, 1, 1}, + {0x90, 0, 3, 17}, + {0x90, 0, 5, 48}, + {0x90, 11, 7, 76}, + {0x90, 0, 7, 55}, + {0x90, 0, 1, 2}, + {0x90, 0, 1, 242}, + {0x90, 0, 2, 187}, + {0x90, 1, 2, 180}, + {0x90, 0, 2, 186}, + {0x90, 0, 3, 252}, + {0x90, 0, 2, 10}, + {0x90, 0, 5, 65}, + {0x90, 7, 7, 76}, + {0x90, 0, 10, 44}, + {0x90, 0, 3, 247}, + {0x90, 0, 4, 207}, + {0x90, 0, 4, 193}, + {0x90, 1, 4, 192}, + {0x90, 0, 2, 1}, + {0x90, 0, 5, 43}, + {0x90, 3, 6, 76}, + {0x90, 0, 6, 31}, + {0x90, 0, 2, 253}, + {0x90, 0, 2, 212}, + {0x90, 0, 2, 182}, + {0x90, 0, 2, 180}, + {0x80, 0, 2, 180}, + {0x80, 0, 1, 188}, + {0x80, 0, 1, 224}, + {0xa0, 0, 2, 242}, + {0xa0, 1, 2, 245}, + {0xa0, 0, 2, 250}, + {0x80, 2, 2, 254}, + {0x80, 0, 1, 244}, + {0x80, 0, 1, 238}, + {0x80, 0, 1, 223}, + {0x80, 0, 0, 211}, + {0x80, 1, 0, 208}, + {0x80, 0, 0, 209}, + {0x80, 0, 0, 211}, + {0x80, 0, 0, 226}, + {0x80, 0, 0, 247}, + {0x80, 0, 1, 253}, + {0x80, 0, 1, 252}, + {0x80, 0, 0, 240}, + {0x80, 0, 0, 222}, + {0x80, 1, 0, 216}, + {0x80, 0, 0, 209}, + {0x80, 1, 0, 207}, + {0x80, 7, 0, 213}, + {0x80, 0, 0, 218}, + {0x80, 0, 0, 240}, + {0x00, 0, 0, 0}, + {0x00, 0, 0, 0}, + diff --git a/data/data_0DD0A0_1.s b/data/data_0DD0A0_1.s index 0bee84e4c..657df1c1a 100644 --- a/data/data_0DD0A0_1.s +++ b/data/data_0DD0A0_1.s @@ -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 diff --git a/data/data_121DA0_2_1.s b/data/data_121DA0_2_1.s deleted file mode 100644 index e69de29bb..000000000 diff --git a/data/data_63E278.s b/data/data_63E278.s deleted file mode 100644 index f8733bb9f..000000000 --- a/data/data_63E278.s +++ /dev/null @@ -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 diff --git a/include/common_structs.h b/include/common_structs.h index 42c2ea6dc..9b60c0bea 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -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; diff --git a/include/segments.h b/include/segments.h index 328252a62..005ca89b2 100644 --- a/include/segments.h +++ b/include/segments.h @@ -5,5 +5,6 @@ #define SEG_80280000 0x80280000 #define SEG_8028DF00 0x8028DF00 #define SEG_802BA370 0x802BA370 +#define SEG_FRAMEBUFFERS 0x802BA290 #endif diff --git a/include/variables.h b/include/variables.h index a1a57bc2b..83a37f6fd 100644 --- a/include/variables.h +++ b/include/variables.h @@ -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 diff --git a/mk64.ld b/mk64.ld index 28eff89a3..8a18715b1 100644 --- a/mk64.ld +++ b/mk64.ld @@ -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) diff --git a/src/code_800393C0.c b/src/code_800393C0.c index aad30813c..1b6f637cc 100644 --- a/src/code_800393C0.c +++ b/src/code_800393C0.c @@ -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); diff --git a/src/code_8008C1D0.c b/src/code_8008C1D0.c index 0ebf01a73..85698391f 100644 --- a/src/code_8008C1D0.c +++ b/src/code_8008C1D0.c @@ -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; diff --git a/src/code_8028DF00.c b/src/code_8028DF00.c index 0b4f4c799..04a600d48 100644 --- a/src/code_8028DF00.c +++ b/src/code_8028DF00.c @@ -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))); } */ diff --git a/src/code_80296A50.c b/src/code_80296A50.c new file mode 100644 index 000000000..7aeed91fb --- /dev/null +++ b/src/code_80296A50.c @@ -0,0 +1,261 @@ +#include +#include +#include +#include "types.h" +#include + +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") \ No newline at end of file diff --git a/src/crash_screen.c b/src/crash_screen.c index 5d59b9225..eca23b645 100644 --- a/src/crash_screen.c +++ b/src/crash_screen.c @@ -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); } -*/ \ No newline at end of file +*/ diff --git a/src/framebuffers.c b/src/framebuffers.c new file mode 100644 index 000000000..dff76823f --- /dev/null +++ b/src/framebuffers.c @@ -0,0 +1,22 @@ +#include + +#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 \ No newline at end of file diff --git a/src/framebuffers.h b/src/framebuffers.h new file mode 100644 index 000000000..4dac3aa9a --- /dev/null +++ b/src/framebuffers.h @@ -0,0 +1,34 @@ +#ifndef FRAMEBUFFERS_H +#define FRAMEBUFFERS_H + +#include +#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 \ No newline at end of file diff --git a/src/main.c b/src/main.c index a9321e0cd..77a9895b1 100644 --- a/src/main.c +++ b/src/main.c @@ -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(); diff --git a/src/staff_ghosts.c b/src/staff_ghosts.c new file mode 100644 index 000000000..859cbdbb3 --- /dev/null +++ b/src/staff_ghosts.c @@ -0,0 +1,595 @@ +#include +#include +#include +#include + +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; +} diff --git a/undefined_syms.txt b/undefined_syms.txt index e48927d6f..fb937243d 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -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;