diff --git a/Makefile b/Makefile index 8bb28927..d15e2944 100755 --- a/Makefile +++ b/Makefile @@ -257,10 +257,10 @@ ALL_ASSETS_BUILT += $(patsubst $(UCODE_IN_DIR)/%.bin,$(UCODE_OUT_DIR)/%.bin,$(UC ####################### LIBULTRA ######################### $(BUILD_DIR)/lib/%.o: OPT_FLAGS := -O2 -$(BUILD_DIR)/lib/%.o: MIPSISET := -mips2 $(BUILD_DIR)/lib/src/al/%.o: OPT_FLAGS := -O3 $(BUILD_DIR)/lib/src/os/%.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/os/osViMgr.o: OPT_FLAGS := -O2 +$(BUILD_DIR)/lib/src/os/osCreatePiManager.o: OPT_FLAGS := -O2 $(BUILD_DIR)/lib/src/unknown_0C91A0.o : OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/unknown_0D29F0.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/unknown_0CDE90.o: OPT_FLAGS := -O1 @@ -272,6 +272,9 @@ $(BUILD_DIR)/lib/src/osEepromWrite.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osEepromRead.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osSetTimer.o: OPT_FLAGS := -O1 +$(BUILD_DIR)/lib/%.o: MIPSISET := -mips2 +$(BUILD_DIR)/lib/src/mips1/%.o: MIPSISET := -mips1 + # asm-processor currently does not support -O3, so this is my workaround. $(BUILD_DIR)/lib/src/al/global_asm/%.o: OPT_FLAGS := -O2 diff --git a/asm/non_matchings/camera/func_80065EA0.s b/asm/non_matchings/camera/func_80065EA0.s index 21e75683..a27e86f8 100644 --- a/asm/non_matchings/camera/func_80065EA0.s +++ b/asm/non_matchings/camera/func_80065EA0.s @@ -57,8 +57,8 @@ glabel func_80065EA0 /* 066B64 80065F64 AC200D1C */ sw $zero, %lo(D_80120D1C)($at) /* 066B68 80065F68 3C018012 */ lui $at, %hi(D_80120D20) # $at, 0x8012 /* 066B6C 80065F6C AC200D20 */ sw $zero, %lo(D_80120D20)($at) -/* 066B70 80065F70 3C018012 */ lui $at, %hi(D_80120CE0) # $at, 0x8012 -/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(D_80120CE0)($at) +/* 066B70 80065F70 3C018012 */ lui $at, %hi(gNumberOfViewports) # $at, 0x8012 +/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(gNumberOfViewports)($at) /* 066B78 80065F78 3C018012 */ lui $at, %hi(D_80120D0C) # $at, 0x8012 /* 066B7C 80065F7C AC200D0C */ sw $zero, %lo(D_80120D0C)($at) /* 066B80 80065F80 3C018012 */ lui $at, %hi(D_80120D18) # $at, 0x8012 diff --git a/asm/non_matchings/camera/func_80066CDC.s b/asm/non_matchings/camera/func_80066CDC.s index f86f8bcd..4f327457 100644 --- a/asm/non_matchings/camera/func_80066CDC.s +++ b/asm/non_matchings/camera/func_80066CDC.s @@ -14,8 +14,8 @@ glabel func_80066CDC /* 06790C 80066D0C 3C1F8012 */ lui $ra, %hi(D_80120CE4) # $ra, 0x8012 /* 067910 80066D10 10400008 */ beqz $v0, .L80066D34 /* 067914 80066D14 27FF0CE4 */ addiu $ra, %lo(D_80120CE4) # addiu $ra, $ra, 0xce4 -/* 067918 80066D18 3C0E8012 */ lui $t6, %hi(D_80120CE0) # $t6, 0x8012 -/* 06791C 80066D1C 8DCE0CE0 */ lw $t6, %lo(D_80120CE0)($t6) +/* 067918 80066D18 3C0E8012 */ lui $t6, %hi(gNumberOfViewports) # $t6, 0x8012 +/* 06791C 80066D1C 8DCE0CE0 */ lw $t6, %lo(gNumberOfViewports)($t6) /* 067920 80066D20 240F0001 */ li $t7, 1 /* 067924 80066D24 15C00003 */ bnez $t6, .L80066D34 /* 067928 80066D28 00000000 */ nop @@ -32,7 +32,7 @@ glabel func_80066CDC /* 067950 80066D50 3C1F8012 */ lui $ra, %hi(D_80120CE4) # $ra, 0x8012 /* 067954 80066D54 00024402 */ srl $t0, $v0, 0x10 /* 067958 80066D58 27FF0CE4 */ addiu $ra, %lo(D_80120CE4) # addiu $ra, $ra, 0xce4 -/* 06795C 80066D5C 3C038012 */ lui $v1, %hi(D_80120CE0) # $v1, 0x8012 +/* 06795C 80066D5C 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012 /* 067960 80066D60 00083842 */ srl $a3, $t0, 1 /* 067964 80066D64 0000C012 */ mflo $t8 /* 067968 80066D68 0158C821 */ addu $t9, $t2, $t8 @@ -142,7 +142,7 @@ glabel func_80066CDC /* 067B04 80066F04 100002C9 */ b .L80067A2C /* 067B08 80066F08 AFF80000 */ sw $t8, ($ra) .L80066F0C: -/* 067B0C 80066F0C 8C630CE0 */ lw $v1, %lo(D_80120CE0)($v1) +/* 067B0C 80066F0C 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1) /* 067B10 80066F10 24040002 */ li $a0, 2 /* 067B14 80066F14 14640002 */ bne $v1, $a0, .L80066F20 /* 067B18 80066F18 3049FFFF */ andi $t1, $v0, 0xffff diff --git a/asm/non_matchings/camera/func_80067A3C.s b/asm/non_matchings/camera/func_80067A3C.s index 593dd1e7..e2670e92 100644 --- a/asm/non_matchings/camera/func_80067A3C.s +++ b/asm/non_matchings/camera/func_80067A3C.s @@ -3,8 +3,8 @@ glabel func_80067A3C /* 068640 80067A40 AFBF0014 */ sw $ra, 0x14($sp) /* 068644 80067A44 0C01E948 */ jal get_video_width_and_height_as_s32 /* 068648 80067A48 AFA40018 */ sw $a0, 0x18($sp) -/* 06864C 80067A4C 3C038012 */ lui $v1, %hi(D_80120CE0) # $v1, 0x8012 -/* 068650 80067A50 8C630CE0 */ lw $v1, %lo(D_80120CE0)($v1) +/* 06864C 80067A4C 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012 +/* 068650 80067A50 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1) /* 068654 80067A54 8FAD0018 */ lw $t5, 0x18($sp) /* 068658 80067A58 1060008F */ beqz $v1, .L80067C98 /* 06865C 80067A5C 304FFFFF */ andi $t7, $v0, 0xffff diff --git a/asm/non_matchings/camera/func_80069F28.s b/asm/non_matchings/camera/func_80069F28.s index 71355d63..d136f1a7 100644 --- a/asm/non_matchings/camera/func_80069F28.s +++ b/asm/non_matchings/camera/func_80069F28.s @@ -22,8 +22,8 @@ glabel D_800E7098 .text glabel func_80069F28 -/* 06AB28 80069F28 3C038012 */ lui $v1, %hi(D_80120CE0) # $v1, 0x8012 -/* 06AB2C 80069F2C 8C630CE0 */ lw $v1, %lo(D_80120CE0)($v1) +/* 06AB28 80069F28 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012 +/* 06AB2C 80069F2C 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1) /* 06AB30 80069F30 3C0E8012 */ lui $t6, %hi(D_80120AC0) # $t6, 0x8012 /* 06AB34 80069F34 04600009 */ bltz $v1, .L80069F5C /* 06AB38 80069F38 25C20AC0 */ addiu $v0, $t6, %lo(D_80120AC0) diff --git a/asm/non_matchings/camera/func_8006A1C4.s b/asm/non_matchings/camera/func_8006A1C4.s index 57a2c809..ad2c9a24 100644 --- a/asm/non_matchings/camera/func_8006A1C4.s +++ b/asm/non_matchings/camera/func_8006A1C4.s @@ -118,13 +118,13 @@ glabel func_8006A1C4 /* 06AF68 8006A368 248410E0 */ addiu $a0, %lo(D_801210E0) # addiu $a0, $a0, 0x10e0 .L8006A36C: /* 06AF6C 8006A36C 3C0A800E */ lui $t2, %hi(D_800DD300) # $t2, 0x800e -/* 06AF70 8006A370 3C09800E */ lui $t1, %hi(D_800DD304) # $t1, 0x800e +/* 06AF70 8006A370 3C09800E */ lui $t1, %hi(gButtonMask) # $t1, 0x800e /* 06AF74 8006A374 3C068012 */ lui $a2, %hi(D_80121110+24) # $a2, 0x8012 /* 06AF78 8006A378 3C028012 */ lui $v0, %hi(D_80121110) # $v0, 0x8012 /* 06AF7C 8006A37C 3C088012 */ lui $t0, %hi(D_80121140) # $t0, 0x8012 /* 06AF80 8006A380 3C078012 */ lui $a3, %hi(D_80121148) # $a3, 0x8012 /* 06AF84 8006A384 3C0B8012 */ lui $t3, %hi(D_80121150) # $t3, 0x8012 -/* 06AF88 8006A388 9529D304 */ lhu $t1, %lo(D_800DD304)($t1) +/* 06AF88 8006A388 9529D304 */ lhu $t1, %lo(gButtonMask)($t1) /* 06AF8C 8006A38C 8D4AD300 */ lw $t2, %lo(D_800DD300)($t2) /* 06AF90 8006A390 256B1150 */ addiu $t3, %lo(D_80121150) # addiu $t3, $t3, 0x1150 /* 06AF94 8006A394 24E71148 */ addiu $a3, %lo(D_80121148) # addiu $a3, $a3, 0x1148 diff --git a/asm/non_matchings/controller_pak/func_8007306C.s b/asm/non_matchings/controller_pak/func_8007306C.s index 2f458182..3b710778 100644 --- a/asm/non_matchings/controller_pak/func_8007306C.s +++ b/asm/non_matchings/controller_pak/func_8007306C.s @@ -8,7 +8,7 @@ glabel func_8007306C /* 073C84 80073084 0C01BA65 */ jal func_8006E994 /* 073C88 80073088 AFB00018 */ sw $s0, 0x18($sp) /* 073C8C 8007308C 27A40048 */ addiu $a0, $sp, 0x48 -/* 073C90 80073090 0C01AC89 */ jal func_8006B224 +/* 073C90 80073090 0C01AC89 */ jal get_number_of_levels_and_worlds /* 073C94 80073094 27A50044 */ addiu $a1, $sp, 0x44 /* 073C98 80073098 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 /* 073C9C 8007309C 3C028012 */ lui $v0, %hi(D_801241F4) # $v0, 0x8012 diff --git a/asm/non_matchings/controller_pak/func_800732E8.s b/asm/non_matchings/controller_pak/func_800732E8.s index e3d13327..a4f0ba48 100644 --- a/asm/non_matchings/controller_pak/func_800732E8.s +++ b/asm/non_matchings/controller_pak/func_800732E8.s @@ -7,7 +7,7 @@ glabel func_800732E8 /* 073EFC 800732FC AFB1001C */ sw $s1, 0x1c($sp) /* 073F00 80073300 AFB00018 */ sw $s0, 0x18($sp) /* 073F04 80073304 27A5003C */ addiu $a1, $sp, 0x3c -/* 073F08 80073308 0C01AC89 */ jal func_8006B224 +/* 073F08 80073308 0C01AC89 */ jal get_number_of_levels_and_worlds /* 073F0C 8007330C 27A40040 */ addiu $a0, $sp, 0x40 /* 073F10 80073310 8FAE004C */ lw $t6, 0x4c($sp) /* 073F14 80073314 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 diff --git a/asm/non_matchings/controller_pak/func_80073588.s b/asm/non_matchings/controller_pak/func_80073588.s index e148410a..6a835110 100644 --- a/asm/non_matchings/controller_pak/func_80073588.s +++ b/asm/non_matchings/controller_pak/func_80073588.s @@ -12,7 +12,7 @@ glabel func_80073588 /* 0741B0 800735B0 0C01B9DC */ jal func_8006E770 /* 0741B4 800735B4 AFA5002C */ sw $a1, 0x2c($sp) /* 0741B8 800735B8 27A40040 */ addiu $a0, $sp, 0x40 -/* 0741BC 800735BC 0C01AC89 */ jal func_8006B224 +/* 0741BC 800735BC 0C01AC89 */ jal get_number_of_levels_and_worlds /* 0741C0 800735C0 27A5003C */ addiu $a1, $sp, 0x3c /* 0741C4 800735C4 8FAF002C */ lw $t7, 0x2c($sp) /* 0741C8 800735C8 8FB9004C */ lw $t9, 0x4c($sp) diff --git a/asm/non_matchings/controller_pak/func_800738A4.s b/asm/non_matchings/controller_pak/func_800738A4.s index a9acb3bb..4fc58b74 100644 --- a/asm/non_matchings/controller_pak/func_800738A4.s +++ b/asm/non_matchings/controller_pak/func_800738A4.s @@ -9,7 +9,7 @@ glabel func_800738A4 /* 0744C0 800738C0 AFB1001C */ sw $s1, 0x1c($sp) /* 0744C4 800738C4 AFB00018 */ sw $s0, 0x18($sp) /* 0744C8 800738C8 27A50044 */ addiu $a1, $sp, 0x44 -/* 0744CC 800738CC 0C01AC89 */ jal func_8006B224 +/* 0744CC 800738CC 0C01AC89 */ jal get_number_of_levels_and_worlds /* 0744D0 800738D0 27A40048 */ addiu $a0, $sp, 0x48 /* 0744D4 800738D4 8FAE0054 */ lw $t6, 0x54($sp) /* 0744D8 800738D8 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 diff --git a/asm/non_matchings/controller_pak/func_8007431C.s b/asm/non_matchings/controller_pak/func_8007431C.s index d6c9009e..3afa7a2e 100644 --- a/asm/non_matchings/controller_pak/func_8007431C.s +++ b/asm/non_matchings/controller_pak/func_8007431C.s @@ -12,7 +12,7 @@ glabel func_8007431C /* 074F44 80074344 00402025 */ move $a0, $v0 /* 074F48 80074348 1040005D */ beqz $v0, .L800744C0 /* 074F4C 8007434C 27A40044 */ addiu $a0, $sp, 0x44 -/* 074F50 80074350 0C01AC89 */ jal func_8006B224 +/* 074F50 80074350 0C01AC89 */ jal get_number_of_levels_and_worlds /* 074F54 80074354 27A50040 */ addiu $a1, $sp, 0x40 /* 074F58 80074358 8FAE0044 */ lw $t6, 0x44($sp) /* 074F5C 8007435C 00008025 */ move $s0, $zero diff --git a/asm/non_matchings/menu/MenuBootLoop.s b/asm/non_matchings/menu/MenuBootLoop.s index 6027bf97..68cdeb1c 100644 --- a/asm/non_matchings/menu/MenuBootLoop.s +++ b/asm/non_matchings/menu/MenuBootLoop.s @@ -111,7 +111,7 @@ glabel menu_boot_loop /* 089394 80088794 AFAD0010 */ sw $t5, 0x10($sp) /* 089398 80088798 24A5F7DC */ addiu $a1, %lo(D_800DF7DC) # addiu $a1, $a1, -0x824 /* 08939C 8008879C 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 -/* 0893A0 800887A0 0C01E2AE */ jal func_80078AB8 +/* 0893A0 800887A0 0C01E2AE */ jal render_textured_rectangle /* 0893A4 800887A4 240600A0 */ li $a2, 160 /* 0893A8 800887A8 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012 /* 0893AC 800887AC 0C01ECF4 */ jal func_8007B3D0 diff --git a/asm/non_matchings/menu/draw_menu_element.s b/asm/non_matchings/menu/draw_menu_element.s index c44e8178..16917f3b 100644 --- a/asm/non_matchings/menu/draw_menu_element.s +++ b/asm/non_matchings/menu/draw_menu_element.s @@ -234,7 +234,7 @@ glabel L80082524 /* 08314C 8008254C 02403025 */ move $a2, $s2 /* 083150 80082550 24150001 */ li $s5, 1 /* 083154 80082554 026A3821 */ addu $a3, $s3, $t2 -/* 083158 80082558 0C01E2AE */ jal func_80078AB8 +/* 083158 80082558 0C01E2AE */ jal render_textured_rectangle /* 08315C 8008255C AFAE001C */ sw $t6, 0x1c($sp) /* 083160 80082560 8FA40070 */ lw $a0, 0x70($sp) /* 083164 80082564 100000B1 */ b .L8008282C diff --git a/asm/non_matchings/menu/func_80081218.s b/asm/non_matchings/menu/func_80081218.s index 5e116124..4b518dd1 100644 --- a/asm/non_matchings/menu/func_80081218.s +++ b/asm/non_matchings/menu/func_80081218.s @@ -2,7 +2,7 @@ glabel func_80081218 /* 081E18 80081218 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 081E1C 8008121C AFBF0014 */ sw $ra, 0x14($sp) /* 081E20 80081220 27A40034 */ addiu $a0, $sp, 0x34 -/* 081E24 80081224 0C01AC89 */ jal func_8006B224 +/* 081E24 80081224 0C01AC89 */ jal get_number_of_levels_and_worlds /* 081E28 80081228 27A50030 */ addiu $a1, $sp, 0x30 /* 081E2C 8008122C 8FA20034 */ lw $v0, 0x34($sp) /* 081E30 80081230 8FAF0030 */ lw $t7, 0x30($sp) diff --git a/asm/non_matchings/menu/func_8008377C.s b/asm/non_matchings/menu/func_8008377C.s index 2317e23c..c05c791b 100644 --- a/asm/non_matchings/menu/func_8008377C.s +++ b/asm/non_matchings/menu/func_8008377C.s @@ -67,7 +67,7 @@ glabel func_8008377C /* 08447C 8008387C AFAA0014 */ sw $t2, 0x14($sp) /* 084480 80083880 AFA90010 */ sw $t1, 0x10($sp) /* 084484 80083884 240600A0 */ li $a2, 160 -/* 084488 80083888 0C01E2AE */ jal func_80078AB8 +/* 084488 80083888 0C01E2AE */ jal render_textured_rectangle /* 08448C 8008388C 24070034 */ li $a3, 52 .L80083890: /* 084490 80083890 0C01BD32 */ jal func_8006F4C8 diff --git a/asm/non_matchings/menu/func_80084854.s b/asm/non_matchings/menu/func_80084854.s index 813324e0..612abf22 100644 --- a/asm/non_matchings/menu/func_80084854.s +++ b/asm/non_matchings/menu/func_80084854.s @@ -174,7 +174,7 @@ glabel func_80084854 /* 0856E8 80084AE8 AFAD0010 */ sw $t5, 0x10($sp) /* 0856EC 80084AEC 02002825 */ move $a1, $s0 /* 0856F0 80084AF0 02402025 */ move $a0, $s2 -/* 0856F4 80084AF4 0C01E2AE */ jal func_80078AB8 +/* 0856F4 80084AF4 0C01E2AE */ jal render_textured_rectangle /* 0856F8 80084AF8 24070078 */ li $a3, 120 /* 0856FC 80084AFC 3C06800E */ lui $a2, %hi(gMusicVolumeSliderValue) # $a2, 0x800e /* 085700 80084B00 8CC6FAC4 */ lw $a2, %lo(gMusicVolumeSliderValue)($a2) @@ -190,7 +190,7 @@ glabel func_80084854 /* 085728 80084B28 AFA80010 */ sw $t0, 0x10($sp) /* 08572C 80084B2C 02402025 */ move $a0, $s2 /* 085730 80084B30 02002825 */ move $a1, $s0 -/* 085734 80084B34 0C01E2AE */ jal func_80078AB8 +/* 085734 80084B34 0C01E2AE */ jal render_textured_rectangle /* 085738 80084B38 240700A0 */ li $a3, 160 /* 08573C 80084B3C 0C01ECF4 */ jal func_8007B3D0 /* 085740 80084B40 02402025 */ move $a0, $s2 diff --git a/asm/non_matchings/menu/func_800853D0.s b/asm/non_matchings/menu/func_800853D0.s index d0047b0b..c8c39bc1 100644 --- a/asm/non_matchings/menu/func_800853D0.s +++ b/asm/non_matchings/menu/func_800853D0.s @@ -443,7 +443,7 @@ glabel L80085828 /* 08663C 80085A3C AFB90010 */ sw $t9, 0x10($sp) /* 086640 80085A40 01402825 */ move $a1, $t2 /* 086644 80085A44 24C6003C */ addiu $a2, $a2, 0x3c -/* 086648 80085A48 0C01E2AE */ jal func_80078AB8 +/* 086648 80085A48 0C01E2AE */ jal render_textured_rectangle /* 08664C 80085A4C 24E70006 */ addiu $a3, $a3, 6 .L80085A50: /* 086650 80085A50 8FAD0060 */ lw $t5, 0x60($sp) diff --git a/asm/non_matchings/menu/func_80085B9C.s b/asm/non_matchings/menu/func_80085B9C.s index 5453afa8..224fc97a 100644 --- a/asm/non_matchings/menu/func_80085B9C.s +++ b/asm/non_matchings/menu/func_80085B9C.s @@ -133,7 +133,7 @@ glabel L80085C30 /* 086968 80085D68 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 08696C 80085D6C 02202825 */ move $a1, $s1 /* 086970 80085D70 240600A0 */ li $a2, 160 -/* 086974 80085D74 0C01E2AE */ jal func_80078AB8 +/* 086974 80085D74 0C01E2AE */ jal render_textured_rectangle /* 086978 80085D78 02003825 */ move $a3, $s0 /* 08697C 80085D7C 26520001 */ addiu $s2, $s2, 1 /* 086980 80085D80 24010002 */ li $at, 2 diff --git a/asm/non_matchings/menu/func_80088938.s b/asm/non_matchings/menu/func_80088938.s index fbcffa09..3bd480e6 100644 --- a/asm/non_matchings/menu/func_80088938.s +++ b/asm/non_matchings/menu/func_80088938.s @@ -319,7 +319,7 @@ glabel func_80088938 /* 089A04 80088E04 AFAC0010 */ sw $t4, 0x10($sp) /* 089A08 80088E08 24A5043C */ addiu $a1, %lo(D_800E043C) # addiu $a1, $a1, 0x43c /* 089A0C 80088E0C 240600A0 */ li $a2, 160 -/* 089A10 80088E10 0C01E2AE */ jal func_80078AB8 +/* 089A10 80088E10 0C01E2AE */ jal render_textured_rectangle /* 089A14 80088E14 26A70008 */ addiu $a3, $s5, 8 /* 089A18 80088E18 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012 /* 089A1C 80088E1C 0C01ECF4 */ jal func_8007B3D0 diff --git a/asm/non_matchings/menu/func_8008A56C.s b/asm/non_matchings/menu/func_8008A56C.s index efa4c67a..e4e166dd 100644 --- a/asm/non_matchings/menu/func_8008A56C.s +++ b/asm/non_matchings/menu/func_8008A56C.s @@ -223,7 +223,7 @@ glabel func_8008A56C /* 08B4B4 8008A8B4 AFAF0010 */ sw $t7, 0x10($sp) /* 08B4B8 8008A8B8 24A5043C */ addiu $a1, %lo(D_800E043C) # addiu $a1, $a1, 0x43c /* 08B4BC 8008A8BC 240600A0 */ li $a2, 160 -/* 08B4C0 8008A8C0 0C01E2AE */ jal func_80078AB8 +/* 08B4C0 8008A8C0 0C01E2AE */ jal render_textured_rectangle /* 08B4C4 8008A8C4 26470008 */ addiu $a3, $s2, 8 .L8008A8C8: /* 08B4C8 8008A8C8 8FBF004C */ lw $ra, 0x4c($sp) diff --git a/asm/non_matchings/menu/func_8008FA54.s b/asm/non_matchings/menu/func_8008FA54.s index 5968b6b2..938f9fda 100644 --- a/asm/non_matchings/menu/func_8008FA54.s +++ b/asm/non_matchings/menu/func_8008FA54.s @@ -293,7 +293,7 @@ glabel func_8008FA54 /* 090A88 8008FE88 AFAD001C */ sw $t5, 0x1c($sp) /* 090A8C 8008FE8C AFA00018 */ sw $zero, 0x18($sp) /* 090A90 8008FE90 AFA00014 */ sw $zero, 0x14($sp) -/* 090A94 8008FE94 0C01E2AE */ jal func_80078AB8 +/* 090A94 8008FE94 0C01E2AE */ jal render_textured_rectangle /* 090A98 8008FE98 AFA00010 */ sw $zero, 0x10($sp) /* 090A9C 8008FE9C 860E0000 */ lh $t6, ($s0) /* 090AA0 8008FEA0 860F0002 */ lh $t7, 2($s0) @@ -310,7 +310,7 @@ glabel func_8008FA54 /* 090ACC 8008FECC AFA90018 */ sw $t1, 0x18($sp) /* 090AD0 8008FED0 AFA80014 */ sw $t0, 0x14($sp) /* 090AD4 8008FED4 AFB80010 */ sw $t8, 0x10($sp) -/* 090AD8 8008FED8 0C01E2AE */ jal func_80078AB8 +/* 090AD8 8008FED8 0C01E2AE */ jal render_textured_rectangle /* 090ADC 8008FEDC 02602025 */ move $a0, $s3 .L8008FEE0: /* 090AE0 8008FEE0 26310001 */ addiu $s1, $s1, 1 diff --git a/asm/non_matchings/menu/func_80090F30.s b/asm/non_matchings/menu/func_80090F30.s index 91a23d47..aded1ab9 100644 --- a/asm/non_matchings/menu/func_80090F30.s +++ b/asm/non_matchings/menu/func_80090F30.s @@ -478,7 +478,7 @@ glabel func_80090F30 /* 092238 80091638 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 09223C 8009163C 24060088 */ li $a2, 136 /* 092240 80091640 24E70072 */ addiu $a3, $a3, 0x72 -/* 092244 80091644 0C01E2AE */ jal func_80078AB8 +/* 092244 80091644 0C01E2AE */ jal render_textured_rectangle /* 092248 80091648 AFAA001C */ sw $t2, 0x1c($sp) /* 09224C 8009164C 1000003A */ b .L80091738 /* 092250 80091650 00000000 */ nop @@ -496,7 +496,7 @@ glabel func_80090F30 /* 09227C 8009167C 24060088 */ li $a2, 136 /* 092280 80091680 0000A825 */ move $s5, $zero /* 092284 80091684 24E70072 */ addiu $a3, $a3, 0x72 -/* 092288 80091688 0C01E2AE */ jal func_80078AB8 +/* 092288 80091688 0C01E2AE */ jal render_textured_rectangle /* 09228C 8009168C AFB8001C */ sw $t8, 0x1c($sp) /* 092290 80091690 8FB70080 */ lw $s7, 0x80($sp) /* 092294 80091694 3C10800E */ lui $s0, %hi(D_800E0648) # $s0, 0x800e @@ -520,7 +520,7 @@ glabel func_80090F30 /* 0922D8 800916D8 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 0922DC 800916DC 24060068 */ li $a2, 104 /* 0922E0 800916E0 02E03825 */ move $a3, $s7 -/* 0922E4 800916E4 0C01E2AE */ jal func_80078AB8 +/* 0922E4 800916E4 0C01E2AE */ jal render_textured_rectangle /* 0922E8 800916E8 AFA8001C */ sw $t0, 0x1c($sp) /* 0922EC 800916EC 1000000E */ b .L80091728 /* 0922F0 800916F0 26B50001 */ addiu $s5, $s5, 1 @@ -535,7 +535,7 @@ glabel func_80090F30 /* 092310 80091710 AFAA0010 */ sw $t2, 0x10($sp) /* 092314 80091714 24060068 */ li $a2, 104 /* 092318 80091718 02E03825 */ move $a3, $s7 -/* 09231C 8009171C 0C01E2AE */ jal func_80078AB8 +/* 09231C 8009171C 0C01E2AE */ jal render_textured_rectangle /* 092320 80091720 AFAD001C */ sw $t5, 0x1c($sp) /* 092324 80091724 26B50001 */ addiu $s5, $s5, 1 .L80091728: @@ -616,7 +616,7 @@ glabel func_80090F30 /* 092438 80091838 AFAF0010 */ sw $t7, 0x10($sp) /* 09243C 8009183C 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 092440 80091840 030E3821 */ addu $a3, $t8, $t6 -/* 092444 80091844 0C01E2AE */ jal func_80078AB8 +/* 092444 80091844 0C01E2AE */ jal render_textured_rectangle /* 092448 80091848 AFA8001C */ sw $t0, 0x1c($sp) /* 09244C 8009184C 26B50001 */ addiu $s5, $s5, 1 /* 092450 80091850 02B7082A */ slt $at, $s5, $s7 @@ -686,7 +686,7 @@ glabel func_80090F30 /* 09253C 8009193C AFB80010 */ sw $t8, 0x10($sp) /* 092540 80091940 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 092544 80091944 02E03825 */ move $a3, $s7 -/* 092548 80091948 0C01E2AE */ jal func_80078AB8 +/* 092548 80091948 0C01E2AE */ jal render_textured_rectangle /* 09254C 8009194C AFB9001C */ sw $t9, 0x1c($sp) /* 092550 80091950 1000002A */ b .L800919FC /* 092554 80091954 00000000 */ nop @@ -712,7 +712,7 @@ glabel func_80090F30 /* 0925A0 800919A0 AFAE0010 */ sw $t6, 0x10($sp) /* 0925A4 800919A4 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 0925A8 800919A8 02E03825 */ move $a3, $s7 -/* 0925AC 800919AC 0C01E2AE */ jal func_80078AB8 +/* 0925AC 800919AC 0C01E2AE */ jal render_textured_rectangle /* 0925B0 800919B0 AFA9001C */ sw $t1, 0x1c($sp) /* 0925B4 800919B4 10000011 */ b .L800919FC /* 0925B8 800919B8 00000000 */ nop @@ -732,7 +732,7 @@ glabel func_80090F30 /* 0925EC 800919EC 25810001 */ addiu $at, $t4, 1 /* 0925F0 800919F0 00016843 */ sra $t5, $at, 1 .L800919F4: -/* 0925F4 800919F4 0C01E2AE */ jal func_80078AB8 +/* 0925F4 800919F4 0C01E2AE */ jal render_textured_rectangle /* 0925F8 800919F8 AFAD001C */ sw $t5, 0x1c($sp) .L800919FC: /* 0925FC 800919FC 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e @@ -784,7 +784,7 @@ glabel func_80090F30 /* 0926A4 80091AA4 AFA80018 */ sw $t0, 0x18($sp) /* 0926A8 80091AA8 AFAA0014 */ sw $t2, 0x14($sp) /* 0926AC 80091AAC AFA90010 */ sw $t1, 0x10($sp) -/* 0926B0 80091AB0 0C01E2AE */ jal func_80078AB8 +/* 0926B0 80091AB0 0C01E2AE */ jal render_textured_rectangle /* 0926B4 80091AB4 AFAB001C */ sw $t3, 0x1c($sp) /* 0926B8 80091AB8 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e /* 0926BC 80091ABC 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) @@ -810,7 +810,7 @@ glabel func_80090F30 /* 092708 80091B08 000DC080 */ sll $t8, $t5, 2 /* 09270C 80091B0C 00B82821 */ addu $a1, $a1, $t8 /* 092710 80091B10 8CA50648 */ lw $a1, %lo(D_800E0648)($a1) -/* 092714 80091B14 0C01E2AE */ jal func_80078AB8 +/* 092714 80091B14 0C01E2AE */ jal render_textured_rectangle /* 092718 80091B18 AFA9001C */ sw $t1, 0x1c($sp) /* 09271C 80091B1C 3C02800E */ lui $v0, %hi(gNumberOfActivePlayers) # $v0, 0x800e /* 092720 80091B20 8C42F4BC */ lw $v0, %lo(gNumberOfActivePlayers)($v0) @@ -842,7 +842,7 @@ glabel func_80090F30 /* 092784 80091B84 AFAF0018 */ sw $t7, 0x18($sp) /* 092788 80091B88 AFAE0014 */ sw $t6, 0x14($sp) /* 09278C 80091B8C AFB80010 */ sw $t8, 0x10($sp) -/* 092790 80091B90 0C01E2AE */ jal func_80078AB8 +/* 092790 80091B90 0C01E2AE */ jal render_textured_rectangle /* 092794 80091B94 AFB9001C */ sw $t9, 0x1c($sp) /* 092798 80091B98 3C028012 */ lui $v0, %hi(gPlayerSelectVehicle+1) # $v0, 0x8012 /* 09279C 80091B9C 804269C1 */ lb $v0, %lo(gPlayerSelectVehicle+1)($v0) @@ -867,7 +867,7 @@ glabel func_80090F30 /* 0927E4 80091BE4 AFAD0018 */ sw $t5, 0x18($sp) /* 0927E8 80091BE8 AFAC0014 */ sw $t4, 0x14($sp) /* 0927EC 80091BEC AFAB0010 */ sw $t3, 0x10($sp) -/* 0927F0 80091BF0 0C01E2AE */ jal func_80078AB8 +/* 0927F0 80091BF0 0C01E2AE */ jal render_textured_rectangle /* 0927F4 80091BF4 AFB8001C */ sw $t8, 0x1c($sp) .L80091BF8: /* 0927F8 80091BF8 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012 @@ -1175,7 +1175,7 @@ glabel func_80090F30 /* 092C70 80092070 248463A0 */ addiu $a0, %lo(D_801263A0) # addiu $a0, $a0, 0x63a0 /* 092C74 80092074 240600CC */ li $a2, 204 /* 092C78 80092078 24E7007A */ addiu $a3, $a3, 0x7a -/* 092C7C 8009207C 0C01E2AE */ jal func_80078AB8 +/* 092C7C 8009207C 0C01E2AE */ jal render_textured_rectangle /* 092C80 80092080 AFAF001C */ sw $t7, 0x1c($sp) /* 092C84 80092084 3C048012 */ lui $a0, %hi(D_801263A0) # $a0, 0x8012 /* 092C88 80092088 0C01ECF4 */ jal func_8007B3D0 diff --git a/asm/non_matchings/menu/func_80092E94.s b/asm/non_matchings/menu/func_80092E94.s index 81cd42f9..a8465f7c 100644 --- a/asm/non_matchings/menu/func_80092E94.s +++ b/asm/non_matchings/menu/func_80092E94.s @@ -118,7 +118,7 @@ glabel func_80092E94 /* 093C60 80093060 02402025 */ move $a0, $s2 /* 093C64 80093064 240600CC */ li $a2, 204 /* 093C68 80093068 AFAA001C */ sw $t2, 0x1c($sp) -/* 093C6C 8009306C 0C01E2AE */ jal func_80078AB8 +/* 093C6C 8009306C 0C01E2AE */ jal render_textured_rectangle /* 093C70 80093070 24E7007A */ addiu $a3, $a3, 0x7a .L80093074: /* 093C74 80093074 0C0310BB */ jal set_text_font @@ -287,7 +287,7 @@ glabel func_80092E94 /* 093EF8 800932F8 24A505B4 */ addiu $a1, %lo(D_800E05B4) # addiu $a1, $a1, 0x5b4 /* 093EFC 800932FC 02402025 */ move $a0, $s2 /* 093F00 80093300 24060088 */ li $a2, 136 -/* 093F04 80093304 0C01E2AE */ jal func_80078AB8 +/* 093F04 80093304 0C01E2AE */ jal render_textured_rectangle /* 093F08 80093308 24E70072 */ addiu $a3, $a3, 0x72 /* 093F0C 8009330C 8FB90060 */ lw $t9, 0x60($sp) /* 093F10 80093310 00008025 */ move $s0, $zero @@ -332,7 +332,7 @@ glabel func_80092E94 /* 093FA4 800933A4 AFA90010 */ sw $t1, 0x10($sp) /* 093FA8 800933A8 02402025 */ move $a0, $s2 /* 093FAC 800933AC 24060068 */ li $a2, 104 -/* 093FB0 800933B0 0C01E2AE */ jal func_80078AB8 +/* 093FB0 800933B0 0C01E2AE */ jal render_textured_rectangle /* 093FB4 800933B4 02203825 */ move $a3, $s1 /* 093FB8 800933B8 1000000E */ b .L800933F4 /* 093FBC 800933BC 26310018 */ addiu $s1, $s1, 0x18 @@ -347,7 +347,7 @@ glabel func_80092E94 /* 093FDC 800933DC 02402025 */ move $a0, $s2 /* 093FE0 800933E0 24060068 */ li $a2, 104 /* 093FE4 800933E4 02203825 */ move $a3, $s1 -/* 093FE8 800933E8 0C01E2AE */ jal func_80078AB8 +/* 093FE8 800933E8 0C01E2AE */ jal render_textured_rectangle /* 093FEC 800933EC AFA2001C */ sw $v0, 0x1c($sp) /* 093FF0 800933F0 26310018 */ addiu $s1, $s1, 0x18 .L800933F4: @@ -378,7 +378,7 @@ glabel func_80092E94 /* 094050 80093450 AFA90014 */ sw $t1, 0x14($sp) /* 094054 80093454 AFB90010 */ sw $t9, 0x10($sp) /* 094058 80093458 24060095 */ li $a2, 149 -/* 09405C 8009345C 0C01E2AE */ jal func_80078AB8 +/* 09405C 8009345C 0C01E2AE */ jal render_textured_rectangle /* 094060 80093460 02203825 */ move $a3, $s1 /* 094064 80093464 0C01ECF4 */ jal func_8007B3D0 /* 094068 80093468 02402025 */ move $a0, $s2 diff --git a/asm/non_matchings/menu/func_80096978.s b/asm/non_matchings/menu/func_80096978.s index f346d0e3..ea0a7e0f 100644 --- a/asm/non_matchings/menu/func_80096978.s +++ b/asm/non_matchings/menu/func_80096978.s @@ -148,7 +148,7 @@ glabel func_80096978 /* 0977A4 80096BA4 02203825 */ move $a3, $s1 /* 0977A8 80096BA8 AFA20018 */ sw $v0, 0x18($sp) /* 0977AC 80096BAC AFA20014 */ sw $v0, 0x14($sp) -/* 0977B0 80096BB0 0C01E2AE */ jal func_80078AB8 +/* 0977B0 80096BB0 0C01E2AE */ jal render_textured_rectangle /* 0977B4 80096BB4 AFA20010 */ sw $v0, 0x10($sp) /* 0977B8 80096BB8 3C08800E */ lui $t0, %hi(gNumberOfActivePlayers) # $t0, 0x800e /* 0977BC 80096BBC 8D08F4BC */ lw $t0, %lo(gNumberOfActivePlayers)($t0) diff --git a/asm/non_matchings/menu/func_80099E8C.s b/asm/non_matchings/menu/func_80099E8C.s index 7ea87bc9..1d1e9c75 100644 --- a/asm/non_matchings/menu/func_80099E8C.s +++ b/asm/non_matchings/menu/func_80099E8C.s @@ -304,7 +304,7 @@ glabel func_80099E8C /* 09AF00 8009A300 AFAF0010 */ sw $t7, 0x10($sp) /* 09AF04 8009A304 02E02025 */ move $a0, $s7 /* 09AF08 8009A308 24C60028 */ addiu $a2, $a2, 0x28 -/* 09AF0C 8009A30C 0C01E2AE */ jal func_80078AB8 +/* 09AF0C 8009A30C 0C01E2AE */ jal render_textured_rectangle /* 09AF10 8009A310 01D23821 */ addu $a3, $t6, $s2 /* 09AF14 8009A314 8FAA0070 */ lw $t2, 0x70($sp) /* 09AF18 8009A318 24010001 */ li $at, 1 @@ -561,7 +561,7 @@ glabel func_80099E8C /* 09B2E0 8009A6E0 26470003 */ addiu $a3, $s2, 3 /* 09B2E4 8009A6E4 AFA00010 */ sw $zero, 0x10($sp) /* 09B2E8 8009A6E8 AFA00014 */ sw $zero, 0x14($sp) -/* 09B2EC 8009A6EC 0C01E2AE */ jal func_80078AB8 +/* 09B2EC 8009A6EC 0C01E2AE */ jal render_textured_rectangle /* 09B2F0 8009A6F0 AFA00018 */ sw $zero, 0x18($sp) /* 09B2F4 8009A6F4 240F00FF */ li $t7, 255 /* 09B2F8 8009A6F8 241800FF */ li $t8, 255 @@ -574,7 +574,7 @@ glabel func_80099E8C /* 09B314 8009A714 02E02025 */ move $a0, $s7 /* 09B318 8009A718 02002825 */ move $a1, $s0 /* 09B31C 8009A71C 2406009F */ li $a2, 159 -/* 09B320 8009A720 0C01E2AE */ jal func_80078AB8 +/* 09B320 8009A720 0C01E2AE */ jal render_textured_rectangle /* 09B324 8009A724 26470001 */ addiu $a3, $s2, 1 /* 09B328 8009A728 3C028012 */ lui $v0, %hi(D_801263D8) # $v0, 0x8012 /* 09B32C 8009A72C 8C4263D8 */ lw $v0, %lo(D_801263D8)($v0) @@ -591,7 +591,7 @@ glabel func_80099E8C /* 09B354 8009A754 24070036 */ li $a3, 54 /* 09B358 8009A758 AFA00010 */ sw $zero, 0x10($sp) /* 09B35C 8009A75C AFA00014 */ sw $zero, 0x14($sp) -/* 09B360 8009A760 0C01E2AE */ jal func_80078AB8 +/* 09B360 8009A760 0C01E2AE */ jal render_textured_rectangle /* 09B364 8009A764 AFA00018 */ sw $zero, 0x18($sp) /* 09B368 8009A768 240A00FF */ li $t2, 255 /* 09B36C 8009A76C 240B00FF */ li $t3, 255 @@ -604,7 +604,7 @@ glabel func_80099E8C /* 09B388 8009A788 02E02025 */ move $a0, $s7 /* 09B38C 8009A78C 02002825 */ move $a1, $s0 /* 09B390 8009A790 2406009F */ li $a2, 159 -/* 09B394 8009A794 0C01E2AE */ jal func_80078AB8 +/* 09B394 8009A794 0C01E2AE */ jal render_textured_rectangle /* 09B398 8009A798 24070034 */ li $a3, 52 .L8009A79C: /* 09B39C 8009A79C 0C01ECF4 */ jal func_8007B3D0 diff --git a/asm/non_matchings/menu/menu_23_loop.s b/asm/non_matchings/menu/menu_23_loop.s index 0f7565b7..184d448e 100644 --- a/asm/non_matchings/menu/menu_23_loop.s +++ b/asm/non_matchings/menu/menu_23_loop.s @@ -120,7 +120,7 @@ glabel menu_23_loop /* 09BAB4 8009AEB4 AFB90010 */ sw $t9, 0x10($sp) /* 09BAB8 8009AEB8 02A02025 */ move $a0, $s5 /* 09BABC 8009AEBC 24060018 */ li $a2, 24 -/* 09BAC0 8009AEC0 0C01E2AE */ jal func_80078AB8 +/* 09BAC0 8009AEC0 0C01E2AE */ jal render_textured_rectangle /* 09BAC4 8009AEC4 02403825 */ move $a3, $s2 /* 09BAC8 8009AEC8 8E6B0000 */ lw $t3, ($s3) /* 09BACC 8009AECC 26100001 */ addiu $s0, $s0, 1 diff --git a/asm/non_matchings/menu/menu_credits_loop.s b/asm/non_matchings/menu/menu_credits_loop.s index 5e0fb133..f92285ce 100644 --- a/asm/non_matchings/menu/menu_credits_loop.s +++ b/asm/non_matchings/menu/menu_credits_loop.s @@ -127,7 +127,7 @@ glabel menu_credits_loop /* 09C0F4 8009B4F4 00006812 */ mflo $t5 /* 09C0F8 8009B4F8 000D7403 */ sra $t6, $t5, 0x10 /* 09C0FC 8009B4FC 01D23821 */ addu $a3, $t6, $s2 -/* 09C100 8009B500 0C01E2AE */ jal func_80078AB8 +/* 09C100 8009B500 0C01E2AE */ jal render_textured_rectangle /* 09C104 8009B504 24E7FFEC */ addiu $a3, $a3, -0x14 /* 09C108 8009B508 26100004 */ addiu $s0, $s0, 4 /* 09C10C 8009B50C 1616FFDE */ bne $s0, $s6, .L8009B488 diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 945af59d..c5829c0e 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -16,7 +16,7 @@ glabel menu_track_select_init /* 08F3D8 8008E7D8 00000000 */ nop /* 08F3DC 8008E7DC 0040A025 */ move $s4, $v0 /* 08F3E0 8008E7E0 27A4007C */ addiu $a0, $sp, 0x7c -/* 08F3E4 8008E7E4 0C01AC89 */ jal func_8006B224 +/* 08F3E4 8008E7E4 0C01AC89 */ jal get_number_of_levels_and_worlds /* 08F3E8 8008E7E8 27A50078 */ addiu $a1, $sp, 0x78 /* 08F3EC 8008E7EC 0C0078A7 */ jal get_misc_asset /* 08F3F0 8008E7F0 2404001A */ li $a0, 26 diff --git a/asm/non_matchings/unknown_005740/func_80008438.s b/asm/non_matchings/unknown_005740/func_80008438.s index 39392fb4..06d32afd 100644 --- a/asm/non_matchings/unknown_005740/func_80008438.s +++ b/asm/non_matchings/unknown_005740/func_80008438.s @@ -26,7 +26,7 @@ glabel func_80008438 /* 009084 80008484 AFA40268 */ sw $a0, 0x268($sp) /* 009088 80008488 AFA5026C */ sw $a1, 0x26c($sp) /* 00908C 8000848C AFA60270 */ sw $a2, 0x270($sp) -/* 009090 80008490 0C019884 */ jal func_80066210 +/* 009090 80008490 0C019884 */ jal get_viewport_count /* 009094 80008494 AFA0024C */ sw $zero, 0x24c($sp) /* 009098 80008498 0C01994B */ jal func_8006652C /* 00909C 8000849C 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/unknown_00BC20/func_80012F94.s b/asm/non_matchings/unknown_00BC20/func_80012F94.s index 5e739917..c1b1353a 100644 --- a/asm/non_matchings/unknown_00BC20/func_80012F94.s +++ b/asm/non_matchings/unknown_00BC20/func_80012F94.s @@ -80,7 +80,7 @@ glabel func_80012F94 /* 013C88 80013088 AFAA0024 */ sw $t2, 0x24($sp) /* 013C8C 8001308C 0C0078A7 */ jal get_misc_asset /* 013C90 80013090 E7AE002C */ swc1 $f14, 0x2c($sp) -/* 013C94 80013094 0C019884 */ jal func_80066210 +/* 013C94 80013094 0C019884 */ jal get_viewport_count /* 013C98 80013098 AFA20038 */ sw $v0, 0x38($sp) /* 013C9C 8001309C 00027880 */ sll $t7, $v0, 2 /* 013CA0 800130A0 8FA50038 */ lw $a1, 0x38($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_80018CE0.s b/asm/non_matchings/unknown_00BC20/func_80018CE0.s index 95d2a5dc..5eedec74 100644 --- a/asm/non_matchings/unknown_00BC20/func_80018CE0.s +++ b/asm/non_matchings/unknown_00BC20/func_80018CE0.s @@ -31,7 +31,7 @@ glabel func_80018CE0 /* 019954 80018D54 00000000 */ nop /* 019958 80018D58 156001E9 */ bnez $t3, .L80019500 /* 01995C 80018D5C 8FBF006C */ lw $ra, 0x6c($sp) -/* 019960 80018D60 0C019884 */ jal func_80066210 +/* 019960 80018D60 0C019884 */ jal get_viewport_count /* 019964 80018D64 00000000 */ nop /* 019968 80018D68 144001E4 */ bnez $v0, .L800194FC /* 01996C 80018D6C 3C0C8012 */ lui $t4, %hi(D_8011AE60) # $t4, 0x8012 diff --git a/asm/non_matchings/unknown_00BC20/func_8001F23C.s b/asm/non_matchings/unknown_00BC20/func_8001F23C.s index 721b30f9..5ad0a9e5 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001F23C.s +++ b/asm/non_matchings/unknown_00BC20/func_8001F23C.s @@ -55,7 +55,7 @@ glabel func_8001F23C /* 01FF0C 8001F30C 2673AD3E */ addiu $s3, %lo(D_8011AD3E) # addiu $s3, $s3, -0x52c2 /* 01FF10 8001F310 8E220064 */ lw $v0, 0x64($s1) /* 01FF14 8001F314 82780000 */ lb $t8, ($s3) -/* 01FF18 8001F318 0C019884 */ jal func_80066210 +/* 01FF18 8001F318 0C019884 */ jal get_viewport_count /* 01FF1C 8001F31C A0580044 */ sb $t8, 0x44($v0) /* 01FF20 8001F320 0C01B067 */ jal func_8006C19C /* 01FF24 8001F324 00409025 */ move $s2, $v0 diff --git a/asm/non_matchings/unknown_00BC20/render_3d_model.s b/asm/non_matchings/unknown_00BC20/render_3d_model.s index 5525e77e..07a364d7 100644 --- a/asm/non_matchings/unknown_00BC20/render_3d_model.s +++ b/asm/non_matchings/unknown_00BC20/render_3d_model.s @@ -99,7 +99,7 @@ glabel render_3d_model /* 012E3C 8001223C 00000000 */ nop /* 012E40 80012240 00004825 */ move $t1, $zero .L80012244: -/* 012E44 80012244 0C019884 */ jal func_80066210 +/* 012E44 80012244 0C019884 */ jal get_viewport_count /* 012E48 80012248 AFA900A0 */ sw $t1, 0xa0($sp) /* 012E4C 8001224C 8FA900A0 */ lw $t1, 0xa0($sp) /* 012E50 80012250 10400002 */ beqz $v0, .L8001225C diff --git a/asm/non_matchings/unknown_0255E0/func_800289B8.s b/asm/non_matchings/unknown_0255E0/func_800289B8.s index 6d7d0fe0..b1cb104a 100644 --- a/asm/non_matchings/unknown_0255E0/func_800289B8.s +++ b/asm/non_matchings/unknown_0255E0/func_800289B8.s @@ -65,7 +65,7 @@ glabel func_800289B8 .L80028AB4: /* 0296B4 80028AB4 AFA30024 */ sw $v1, 0x24($sp) /* 0296B8 80028AB8 A7A40030 */ sh $a0, 0x30($sp) -/* 0296BC 80028ABC 0C019884 */ jal func_80066210 +/* 0296BC 80028ABC 0C019884 */ jal get_viewport_count /* 0296C0 80028AC0 AFA70020 */ sw $a3, 0x20($sp) /* 0296C4 80028AC4 8FA30024 */ lw $v1, 0x24($sp) /* 0296C8 80028AC8 87A40030 */ lh $a0, 0x30($sp) diff --git a/asm/non_matchings/unknown_0255E0/func_8002D8DC.s b/asm/non_matchings/unknown_0255E0/func_8002D8DC.s index eec621d1..c958ac95 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002D8DC.s +++ b/asm/non_matchings/unknown_0255E0/func_8002D8DC.s @@ -51,7 +51,7 @@ glabel func_8002D8DC /* 02E59C 8002D99C 3C018012 */ lui $at, %hi(D_8011D368) # $at, 0x8012 /* 02E5A0 8002D9A0 AC20D368 */ sw $zero, %lo(D_8011D368)($at) /* 02E5A4 8002D9A4 3C018012 */ lui $at, %hi(D_8011D36C) # $at, 0x8012 -/* 02E5A8 8002D9A8 0C019884 */ jal func_80066210 +/* 02E5A8 8002D9A8 0C019884 */ jal get_viewport_count /* 02E5AC 8002D9AC AC20D36C */ sw $zero, %lo(D_8011D36C)($at) /* 02E5B0 8002D9B0 0040B025 */ move $s6, $v0 /* 02E5B4 8002D9B4 27A40094 */ addiu $a0, $sp, 0x94 diff --git a/asm/non_matchings/unknown_0255E0/func_8002E234.s b/asm/non_matchings/unknown_0255E0/func_8002E234.s index 969ef5e9..ade10c62 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002E234.s +++ b/asm/non_matchings/unknown_0255E0/func_8002E234.s @@ -90,7 +90,7 @@ glabel func_8002E234 /* 02EF64 8002E364 01F0C021 */ addu $t8, $t7, $s0 /* 02EF68 8002E368 13200006 */ beqz $t9, .L8002E384 /* 02EF6C 8002E36C A438D0CC */ sh $t8, %lo(D_8011D0CC)($at) -/* 02EF70 8002E370 0C019884 */ jal func_80066210 +/* 02EF70 8002E370 0C019884 */ jal get_viewport_count /* 02EF74 8002E374 E7B2006C */ swc1 $f18, 0x6c($sp) /* 02EF78 8002E378 C7B2006C */ lwc1 $f18, 0x6c($sp) /* 02EF7C 8002E37C 1C400004 */ bgtz $v0, .L8002E390 diff --git a/asm/non_matchings/unknown_0255E0/func_80030A74.s b/asm/non_matchings/unknown_0255E0/func_80030A74.s index b795346d..8f39fd06 100644 --- a/asm/non_matchings/unknown_0255E0/func_80030A74.s +++ b/asm/non_matchings/unknown_0255E0/func_80030A74.s @@ -18,7 +18,7 @@ glabel func_80030A74 /* 0316B4 80030AB4 AFBF0040 */ sw $ra, 0x40($sp) /* 0316B8 80030AB8 0C01A75F */ jal func_80069D7C /* 0316BC 80030ABC AFAB0044 */ sw $t3, 0x44($sp) -/* 0316C0 80030AC0 0C019884 */ jal func_80066210 +/* 0316C0 80030AC0 0C019884 */ jal get_viewport_count /* 0316C4 80030AC4 00409825 */ move $s3, $v0 /* 0316C8 80030AC8 8FAB0044 */ lw $t3, 0x44($sp) /* 0316CC 80030ACC 8FBF0040 */ lw $ra, 0x40($sp) diff --git a/asm/non_matchings/unknown_032760/func_800370D4.s b/asm/non_matchings/unknown_032760/func_800370D4.s index 8596ad78..38f62ca9 100644 --- a/asm/non_matchings/unknown_032760/func_800370D4.s +++ b/asm/non_matchings/unknown_032760/func_800370D4.s @@ -4,7 +4,7 @@ glabel func_800370D4 /* 037CDC 800370DC AFB10018 */ sw $s1, 0x18($sp) /* 037CE0 800370E0 00808825 */ move $s1, $a0 /* 037CE4 800370E4 AFB00014 */ sw $s0, 0x14($sp) -/* 037CE8 800370E8 0C019884 */ jal func_80066210 +/* 037CE8 800370E8 0C019884 */ jal get_viewport_count /* 037CEC 800370EC AFA50074 */ sw $a1, 0x74($sp) /* 037CF0 800370F0 18400005 */ blez $v0, .L80037108 /* 037CF4 800370F4 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_80038710.s b/asm/non_matchings/unknown_032760/func_80038710.s index 53389f7f..77ad3f43 100644 --- a/asm/non_matchings/unknown_032760/func_80038710.s +++ b/asm/non_matchings/unknown_032760/func_80038710.s @@ -11,7 +11,7 @@ glabel func_80038710 /* 039334 80038734 A60F0006 */ sh $t7, 6($s0) /* 039338 80038738 1440001D */ bnez $v0, .L800387B0 /* 03933C 8003873C AFB80034 */ sw $t8, 0x34($sp) -/* 039340 80038740 0C019884 */ jal func_80066210 +/* 039340 80038740 0C019884 */ jal get_viewport_count /* 039344 80038744 00000000 */ nop /* 039348 80038748 14400008 */ bnez $v0, .L8003876C /* 03934C 8003874C 24030001 */ li $v1, 1 diff --git a/asm/non_matchings/unknown_043920/func_8004447C.s b/asm/non_matchings/unknown_043920/func_8004447C.s index 707f9f3f..e66eb731 100644 --- a/asm/non_matchings/unknown_043920/func_8004447C.s +++ b/asm/non_matchings/unknown_043920/func_8004447C.s @@ -350,7 +350,7 @@ glabel L800446AC /* 045568 80044968 10400011 */ beqz $v0, .L800449B0 /* 04556C 8004496C 00000000 */ nop /* 045570 80044970 A7A60050 */ sh $a2, 0x50($sp) -/* 045574 80044974 0C019884 */ jal func_80066210 +/* 045574 80044974 0C019884 */ jal get_viewport_count /* 045578 80044978 A7A8004A */ sh $t0, 0x4a($sp) /* 04557C 8004497C 87A60050 */ lh $a2, 0x50($sp) /* 045580 80044980 87A8004A */ lh $t0, 0x4a($sp) diff --git a/asm/non_matchings/unknown_043920/func_800452A0.s b/asm/non_matchings/unknown_043920/func_800452A0.s index 38712808..bcd426d0 100644 --- a/asm/non_matchings/unknown_043920/func_800452A0.s +++ b/asm/non_matchings/unknown_043920/func_800452A0.s @@ -155,7 +155,7 @@ glabel func_800452A0 /* 0460AC 800454AC 00000000 */ nop /* 0460B0 800454B0 10400007 */ beqz $v0, .L800454D0 /* 0460B4 800454B4 24010002 */ li $at, 2 -/* 0460B8 800454B8 0C019884 */ jal func_80066210 +/* 0460B8 800454B8 0C019884 */ jal get_viewport_count /* 0460BC 800454BC 00000000 */ nop /* 0460C0 800454C0 14400003 */ bnez $v0, .L800454D0 /* 0460C4 800454C4 24010002 */ li $at, 2 diff --git a/asm/non_matchings/unknown_043920/func_80048E64.s b/asm/non_matchings/unknown_043920/func_80048E64.s index ac090e74..9a872b92 100644 --- a/asm/non_matchings/unknown_043920/func_80048E64.s +++ b/asm/non_matchings/unknown_043920/func_80048E64.s @@ -17,7 +17,7 @@ glabel func_80048E64 /* 049A8C 80048E8C AFAE0024 */ sw $t6, 0x24($sp) /* 049A90 80048E90 AFA60068 */ sw $a2, 0x68($sp) /* 049A94 80048E94 E7AE0048 */ swc1 $f14, 0x48($sp) -/* 049A98 80048E98 0C019884 */ jal func_80066210 +/* 049A98 80048E98 0C019884 */ jal get_viewport_count /* 049A9C 80048E9C E7B20044 */ swc1 $f18, 0x44($sp) /* 049AA0 80048EA0 24060001 */ li $a2, 1 /* 049AA4 80048EA4 8FA70068 */ lw $a3, 0x68($sp) @@ -141,7 +141,7 @@ glabel func_80048E64 /* 049C48 80049048 E7AC0028 */ swc1 $f12, 0x28($sp) /* 049C4C 8004904C E7AE0048 */ swc1 $f14, 0x48($sp) /* 049C50 80049050 E7B0002C */ swc1 $f16, 0x2c($sp) -/* 049C54 80049054 0C019884 */ jal func_80066210 +/* 049C54 80049054 0C019884 */ jal get_viewport_count /* 049C58 80049058 E7B20044 */ swc1 $f18, 0x44($sp) /* 049C5C 8004905C 8FA70068 */ lw $a3, 0x68($sp) /* 049C60 80049060 44805800 */ mtc1 $zero, $f11 diff --git a/asm/non_matchings/unknown_043920/func_8004C2B0.s b/asm/non_matchings/unknown_043920/func_8004C2B0.s index 8b7490a0..129977ca 100644 --- a/asm/non_matchings/unknown_043920/func_8004C2B0.s +++ b/asm/non_matchings/unknown_043920/func_8004C2B0.s @@ -45,7 +45,7 @@ glabel func_8004C2B0 /* 04CF1C 8004C31C AFA70058 */ sw $a3, 0x58($sp) /* 04CF20 8004C320 E7AE0034 */ swc1 $f14, 0x34($sp) /* 04CF24 8004C324 E7B00020 */ swc1 $f16, 0x20($sp) -/* 04CF28 8004C328 0C019884 */ jal func_80066210 +/* 04CF28 8004C328 0C019884 */ jal get_viewport_count /* 04CF2C 8004C32C E7B20030 */ swc1 $f18, 0x30($sp) /* 04CF30 8004C330 8FA70058 */ lw $a3, 0x58($sp) /* 04CF34 8004C334 C7AE0034 */ lwc1 $f14, 0x34($sp) diff --git a/asm/non_matchings/unknown_043920/func_8004D590.s b/asm/non_matchings/unknown_043920/func_8004D590.s index 1ed44005..0ab8906c 100644 --- a/asm/non_matchings/unknown_043920/func_8004D590.s +++ b/asm/non_matchings/unknown_043920/func_8004D590.s @@ -25,7 +25,7 @@ glabel func_8004D590 /* 04E1E8 8004D5E8 030FC823 */ subu $t9, $t8, $t7 /* 04E1EC 8004D5EC A4D90196 */ sh $t9, 0x196($a2) /* 04E1F0 8004D5F0 E7AE0094 */ swc1 $f14, 0x94($sp) -/* 04E1F4 8004D5F4 0C019884 */ jal func_80066210 +/* 04E1F4 8004D5F4 0C019884 */ jal get_viewport_count /* 04E1F8 8004D5F8 AFA600B0 */ sw $a2, 0xb0($sp) /* 04E1FC 8004D5FC 24040001 */ li $a0, 1 /* 04E200 8004D600 C7AE0094 */ lwc1 $f14, 0x94($sp) diff --git a/asm/non_matchings/unknown_043920/func_8004DE38.s b/asm/non_matchings/unknown_043920/func_8004DE38.s index 6ca91f3b..eedaca7f 100644 --- a/asm/non_matchings/unknown_043920/func_8004DE38.s +++ b/asm/non_matchings/unknown_043920/func_8004DE38.s @@ -31,7 +31,7 @@ glabel func_8004DE38 /* 04EA40 8004DE40 AFB10028 */ sw $s1, 0x28($sp) /* 04EA44 8004DE44 00808825 */ move $s1, $a0 /* 04EA48 8004DE48 AFB00024 */ sw $s0, 0x24($sp) -/* 04EA4C 8004DE4C 0C019884 */ jal func_80066210 +/* 04EA4C 8004DE4C 0C019884 */ jal get_viewport_count /* 04EA50 8004DE50 AFA500B4 */ sw $a1, 0xb4($sp) /* 04EA54 8004DE54 244E0001 */ addiu $t6, $v0, 1 /* 04EA58 8004DE58 3C01800E */ lui $at, %hi(D_800DCB98) # $at, 0x800e diff --git a/asm/non_matchings/unknown_043920/func_80050A28.s b/asm/non_matchings/unknown_043920/func_80050A28.s index 855d81ca..9d10ac72 100644 --- a/asm/non_matchings/unknown_043920/func_80050A28.s +++ b/asm/non_matchings/unknown_043920/func_80050A28.s @@ -1131,7 +1131,7 @@ glabel func_80050A28 .L800519E4: /* 0525E4 800519E4 A20001EE */ sb $zero, 0x1ee($s0) .L800519E8: -/* 0525E8 800519E8 0C019884 */ jal func_80066210 +/* 0525E8 800519E8 0C019884 */ jal get_viewport_count /* 0525EC 800519EC AFA90064 */ sw $t1, 0x64($sp) /* 0525F0 800519F0 8FA90064 */ lw $t1, 0x64($sp) /* 0525F4 800519F4 28410002 */ slti $at, $v0, 2 diff --git a/asm/non_matchings/unknown_043920/func_8005492C.s b/asm/non_matchings/unknown_043920/func_8005492C.s index bcaf035a..6124668d 100644 --- a/asm/non_matchings/unknown_043920/func_8005492C.s +++ b/asm/non_matchings/unknown_043920/func_8005492C.s @@ -213,7 +213,7 @@ glabel func_8005492C /* 0557E8 80054BE8 A0A001EE */ sb $zero, 0x1ee($a1) .L80054BEC: /* 0557EC 80054BEC AFA5004C */ sw $a1, 0x4c($sp) -/* 0557F0 80054BF0 0C019884 */ jal func_80066210 +/* 0557F0 80054BF0 0C019884 */ jal get_viewport_count /* 0557F4 80054BF4 AFA70048 */ sw $a3, 0x48($sp) /* 0557F8 80054BF8 8FA5004C */ lw $a1, 0x4c($sp) /* 0557FC 80054BFC 8FA70048 */ lw $a3, 0x48($sp) diff --git a/asm/non_matchings/unknown_043920/func_800581E8.s b/asm/non_matchings/unknown_043920/func_800581E8.s index 6971b13d..bc6da2b0 100644 --- a/asm/non_matchings/unknown_043920/func_800581E8.s +++ b/asm/non_matchings/unknown_043920/func_800581E8.s @@ -18,7 +18,7 @@ glabel func_800581E8 /* 058E0C 8005820C AFAE001C */ sw $t6, 0x1c($sp) /* 058E10 80058210 AFA60070 */ sw $a2, 0x70($sp) /* 058E14 80058214 E7B00054 */ swc1 $f16, 0x54($sp) -/* 058E18 80058218 0C019884 */ jal func_80066210 +/* 058E18 80058218 0C019884 */ jal get_viewport_count /* 058E1C 8005821C E7A40050 */ swc1 $f4, 0x50($sp) /* 058E20 80058220 24040001 */ li $a0, 1 /* 058E24 80058224 8FA70070 */ lw $a3, 0x70($sp) diff --git a/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s b/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s index 4a78b9f1..3328c7b4 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s @@ -12,8 +12,8 @@ glabel func_8006A6B0 /* 06B2D8 8006A6D8 AFA20044 */ sw $v0, 0x44($sp) /* 06B2DC 8006A6DC 0C01DB16 */ jal load_asset_section_from_rom /* 06B2E0 8006A6E0 24040016 */ li $a0, 22 -/* 06B2E4 8006A6E4 3C138012 */ lui $s3, %hi(D_80121160) # $s3, 0x8012 -/* 06B2E8 8006A6E8 26731160 */ addiu $s3, %lo(D_80121160) # addiu $s3, $s3, 0x1160 +/* 06B2E4 8006A6E4 3C138012 */ lui $s3, %hi(gTempAssetTable) # $s3, 0x8012 +/* 06B2E8 8006A6E8 26731160 */ addiu $s3, %lo(gTempAssetTable) # addiu $s3, $s3, 0x1160 /* 06B2EC 8006A6EC AE620000 */ sw $v0, ($s3) /* 06B2F0 8006A6F0 3C028012 */ lui $v0, %hi(D_801211C0) # $v0, 0x8012 /* 06B2F4 8006A6F4 3C038012 */ lui $v1, %hi(D_80121180) # $v1, 0x8012 @@ -27,8 +27,8 @@ glabel func_8006A6B0 /* 06B310 8006A710 1462FFFB */ bne $v1, $v0, .L8006A700 /* 06B314 8006A714 AC60FFFC */ sw $zero, -4($v1) /* 06B318 8006A718 8E630000 */ lw $v1, ($s3) -/* 06B31C 8006A71C 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 -/* 06B320 8006A720 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B31C 8006A71C 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 +/* 06B320 8006A720 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B324 8006A724 00007080 */ sll $t6, $zero, 2 /* 06B328 8006A728 AD400000 */ sw $zero, ($t2) /* 06B32C 8006A72C 006E7821 */ addu $t7, $v1, $t6 @@ -54,15 +54,15 @@ glabel func_8006A6B0 /* 06B374 8006A774 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff /* 06B378 8006A778 0C01C327 */ jal allocate_from_main_pool_safe /* 06B37C 8006A77C 00182040 */ sll $a0, $t8, 1 -/* 06B380 8006A780 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 -/* 06B384 8006A784 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B380 8006A780 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 +/* 06B384 8006A784 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B388 8006A788 8FB90044 */ lw $t9, 0x44($sp) /* 06B38C 8006A78C 8D4C0000 */ lw $t4, ($t2) /* 06B390 8006A790 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B394 8006A794 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 +/* 06B394 8006A794 3C098012 */ lui $t1, %hi(gNumberOfWorlds) # $t1, 0x8012 /* 06B398 8006A798 3C108012 */ lui $s0, %hi(gCurrentLevelHeader) # $s0, 0x8012 /* 06B39C 8006A79C 26101168 */ addiu $s0, %lo(gCurrentLevelHeader) # addiu $s0, $s0, 0x1168 -/* 06B3A0 8006A7A0 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 +/* 06B3A0 8006A7A0 25291174 */ addiu $t1, %lo(gNumberOfWorlds) # addiu $t1, $t1, 0x1174 /* 06B3A4 8006A7A4 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B3A8 8006A7A8 240BFFFF */ li $t3, -1 /* 06B3AC 8006A7AC AD020000 */ sw $v0, ($t0) @@ -82,15 +82,15 @@ glabel func_8006A6B0 /* 06B3E0 8006A7E0 0C01DB9A */ jal load_asset_to_address /* 06B3E4 8006A7E4 240700C4 */ li $a3, 196 /* 06B3E8 8006A7E8 8E050000 */ lw $a1, ($s0) -/* 06B3EC 8006A7EC 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 -/* 06B3F0 8006A7F0 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 +/* 06B3EC 8006A7EC 3C098012 */ lui $t1, %hi(gNumberOfWorlds) # $t1, 0x8012 +/* 06B3F0 8006A7F0 25291174 */ addiu $t1, %lo(gNumberOfWorlds) # addiu $t1, $t1, 0x1174 /* 06B3F4 8006A7F4 8D2F0000 */ lw $t7, ($t1) /* 06B3F8 8006A7F8 80A40000 */ lb $a0, ($a1) /* 06B3FC 8006A7FC 8FA3002C */ lw $v1, 0x2c($sp) /* 06B400 8006A800 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B404 8006A804 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 +/* 06B404 8006A804 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 /* 06B408 8006A808 01E4082A */ slt $at, $t7, $a0 -/* 06B40C 8006A80C 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B40C 8006A80C 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B410 8006A810 10200002 */ beqz $at, .L8006A81C /* 06B414 8006A814 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B418 8006A818 AD240000 */ sw $a0, ($t1) @@ -154,14 +154,14 @@ glabel func_8006A6B0 /* 06B4F4 8006A8F4 AD240000 */ sw $a0, ($t1) /* 06B4F8 8006A8F8 0C01C327 */ jal allocate_from_main_pool_safe /* 06B4FC 8006A8FC 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 06B500 8006A900 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 -/* 06B504 8006A904 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 +/* 06B500 8006A900 3C098012 */ lui $t1, %hi(gNumberOfWorlds) # $t1, 0x8012 +/* 06B504 8006A904 25291174 */ addiu $t1, %lo(gNumberOfWorlds) # addiu $t1, $t1, 0x1174 /* 06B508 8006A908 8D2F0000 */ lw $t7, ($t1) /* 06B50C 8006A90C 3C048012 */ lui $a0, %hi(D_80121178) # $a0, 0x8012 /* 06B510 8006A910 24841178 */ addiu $a0, %lo(D_80121178) # addiu $a0, $a0, 0x1178 /* 06B514 8006A914 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B518 8006A918 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 -/* 06B51C 8006A91C 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B518 8006A918 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 +/* 06B51C 8006A91C 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B520 8006A920 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B524 8006A924 AC820000 */ sw $v0, ($a0) /* 06B528 8006A928 19E0000B */ blez $t7, .L8006A958 @@ -193,10 +193,10 @@ glabel func_8006A6B0 /* 06B584 8006A984 00000000 */ nop /* 06B588 8006A988 8C8F0000 */ lw $t7, ($a0) /* 06B58C 8006A98C 804D0000 */ lb $t5, ($v0) -/* 06B590 8006A990 3C068012 */ lui $a2, %hi(D_80121170) # $a2, 0x8012 +/* 06B590 8006A990 3C068012 */ lui $a2, %hi(gNumberOfLevelHeaders) # $a2, 0x8012 /* 06B594 8006A994 01EDC821 */ addu $t9, $t7, $t5 /* 06B598 8006A998 A3310000 */ sb $s1, ($t9) -/* 06B59C 8006A99C 8CC61170 */ lw $a2, %lo(D_80121170)($a2) +/* 06B59C 8006A99C 8CC61170 */ lw $a2, %lo(gNumberOfLevelHeaders)($a2) /* 06B5A0 8006A9A0 00000000 */ nop .L8006A9A4: /* 06B5A4 8006A9A4 26310001 */ addiu $s1, $s1, 1 @@ -311,8 +311,8 @@ glabel func_8006A6B0 /* 06B73C 8006AB3C 8E640000 */ lw $a0, ($s3) /* 06B740 8006AB40 0C01C450 */ jal free_from_memory_pool /* 06B744 8006AB44 00000000 */ nop -/* 06B748 8006AB48 3C04800E */ lui $a0, %hi(D_800DD324) # $a0, 0x800e -/* 06B74C 8006AB4C 8C84D324 */ lw $a0, %lo(D_800DD324)($a0) +/* 06B748 8006AB48 3C04800E */ lui $a0, %hi(gFunc80068158Length) # $a0, 0x800e +/* 06B74C 8006AB4C 8C84D324 */ lw $a0, %lo(gFunc80068158Length)($a0) /* 06B750 8006AB50 00001825 */ move $v1, $zero /* 06B754 8006AB54 18800009 */ blez $a0, .L8006AB7C /* 06B758 8006AB58 00001025 */ move $v0, $zero @@ -326,12 +326,12 @@ glabel func_8006A6B0 /* 06B774 8006AB74 1420FFFB */ bnez $at, .L8006AB64 /* 06B778 8006AB78 006D1821 */ addu $v1, $v1, $t5 .L8006AB7C: -/* 06B77C 8006AB7C 3C19800E */ lui $t9, %hi(D_800DD320) # $t9, 0x800e -/* 06B780 8006AB80 8F39D320 */ lw $t9, %lo(D_800DD320)($t9) +/* 06B77C 8006AB7C 3C19800E */ lui $t9, %hi(gFunc80068158Checksum) # $t9, 0x800e +/* 06B780 8006AB80 8F39D320 */ lw $t9, %lo(gFunc80068158Checksum)($t9) /* 06B784 8006AB84 00000000 */ nop /* 06B788 8006AB88 10790004 */ beq $v1, $t9, .L8006AB9C /* 06B78C 8006AB8C 8FBF0024 */ lw $ra, 0x24($sp) -/* 06B790 8006AB90 0C01A9A8 */ jal func_8006A6A0 +/* 06B790 8006AB90 0C01A9A8 */ jal disable_button_mask /* 06B794 8006AB94 00000000 */ nop /* 06B798 8006AB98 8FBF0024 */ lw $ra, 0x24($sp) .L8006AB9C: @@ -341,381 +341,3 @@ glabel func_8006A6B0 /* 06B7A8 8006ABA8 8FB30020 */ lw $s3, 0x20($sp) /* 06B7AC 8006ABAC 03E00008 */ jr $ra /* 06B7B0 8006ABB0 27BD0058 */ addiu $sp, $sp, 0x58 - -/* 06B7B4 8006ABB4 04810003 */ bgez $a0, .L8006ABC4 -/* 06B7B8 8006ABB8 3C0E8012 */ lui $t6, %hi(D_80121170) # $t6, 0x8012 -/* 06B7BC 8006ABBC 03E00008 */ jr $ra -/* 06B7C0 8006ABC0 24020E10 */ li $v0, 3600 - -.L8006ABC4: -/* 06B7C4 8006ABC4 8DCE1170 */ lw $t6, %lo(D_80121170)($t6) -/* 06B7C8 8006ABC8 3C0F8012 */ lui $t7, %hi(D_80121178+4) # $t7, 0x8012 -/* 06B7CC 8006ABCC 008E082A */ slt $at, $a0, $t6 -/* 06B7D0 8006ABD0 14200003 */ bnez $at, .L8006ABE0 -/* 06B7D4 8006ABD4 0004C080 */ sll $t8, $a0, 2 -/* 06B7D8 8006ABD8 03E00008 */ jr $ra -/* 06B7DC 8006ABDC 24020E10 */ li $v0, 3600 - -.L8006ABE0: -/* 06B7E0 8006ABE0 8DEF117C */ lw $t7, %lo(D_80121178+4)($t7) -/* 06B7E4 8006ABE4 0304C023 */ subu $t8, $t8, $a0 -/* 06B7E8 8006ABE8 0018C040 */ sll $t8, $t8, 1 -/* 06B7EC 8006ABEC 01F8C821 */ addu $t9, $t7, $t8 -/* 06B7F0 8006ABF0 87220004 */ lh $v0, 4($t9) -/* 06B7F4 8006ABF4 00000000 */ nop -/* 06B7F8 8006ABF8 03E00008 */ jr $ra -/* 06B7FC 8006ABFC 00000000 */ nop - -/* 06B800 8006AC00 AFA50004 */ sw $a1, 4($sp) -/* 06B804 8006AC04 00057600 */ sll $t6, $a1, 0x18 -/* 06B808 8006AC08 AFA60008 */ sw $a2, 8($sp) -/* 06B80C 8006AC0C 0006C600 */ sll $t8, $a2, 0x18 -/* 06B810 8006AC10 00183603 */ sra $a2, $t8, 0x18 -/* 06B814 8006AC14 04810003 */ bgez $a0, .L8006AC24 -/* 06B818 8006AC18 000E2E03 */ sra $a1, $t6, 0x18 -/* 06B81C 8006AC1C 10000002 */ b .L8006AC28 -/* 06B820 8006AC20 00002025 */ move $a0, $zero -.L8006AC24: -/* 06B824 8006AC24 24840001 */ addiu $a0, $a0, 1 -.L8006AC28: -/* 06B828 8006AC28 24010040 */ li $at, 64 -/* 06B82C 8006AC2C 10A1004B */ beq $a1, $at, .L8006AD5C -/* 06B830 8006AC30 2402FFFF */ li $v0, -1 -/* 06B834 8006AC34 2402FFFF */ li $v0, -1 -/* 06B838 8006AC38 14C20017 */ bne $a2, $v0, .L8006AC98 -/* 06B83C 8006AC3C 00000000 */ nop -/* 06B840 8006AC40 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B844 8006AC44 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B848 8006AC48 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B84C 8006AC4C 0082082A */ slt $at, $a0, $v0 -/* 06B850 8006AC50 10200073 */ beqz $at, .L8006AE20 -/* 06B854 8006AC54 00044880 */ sll $t1, $a0, 2 -/* 06B858 8006AC58 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06B85C 8006AC5C 01244823 */ subu $t1, $t1, $a0 -/* 06B860 8006AC60 00094840 */ sll $t1, $t1, 1 -/* 06B864 8006AC64 01091821 */ addu $v1, $t0, $t1 -.L8006AC68: -/* 06B868 8006AC68 806A0001 */ lb $t2, 1($v1) -/* 06B86C 8006AC6C 00000000 */ nop -/* 06B870 8006AC70 14AA0003 */ bne $a1, $t2, .L8006AC80 -/* 06B874 8006AC74 00000000 */ nop -/* 06B878 8006AC78 03E00008 */ jr $ra -/* 06B87C 8006AC7C 00801025 */ move $v0, $a0 - -.L8006AC80: -/* 06B880 8006AC80 24840001 */ addiu $a0, $a0, 1 -/* 06B884 8006AC84 0082082A */ slt $at, $a0, $v0 -/* 06B888 8006AC88 1420FFF7 */ bnez $at, .L8006AC68 -/* 06B88C 8006AC8C 24630006 */ addiu $v1, $v1, 6 -/* 06B890 8006AC90 10000064 */ b .L8006AE24 -/* 06B894 8006AC94 2402FFFF */ li $v0, -1 -.L8006AC98: -/* 06B898 8006AC98 14A20016 */ bne $a1, $v0, .L8006ACF4 -/* 06B89C 8006AC9C 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B8A0 8006ACA0 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B8A4 8006ACA4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 -/* 06B8A8 8006ACA8 0082082A */ slt $at, $a0, $v0 -/* 06B8AC 8006ACAC 1020005C */ beqz $at, .L8006AE20 -/* 06B8B0 8006ACB0 00046080 */ sll $t4, $a0, 2 -/* 06B8B4 8006ACB4 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) -/* 06B8B8 8006ACB8 01846023 */ subu $t4, $t4, $a0 -/* 06B8BC 8006ACBC 000C6040 */ sll $t4, $t4, 1 -/* 06B8C0 8006ACC0 016C1821 */ addu $v1, $t3, $t4 -.L8006ACC4: -/* 06B8C4 8006ACC4 806D0000 */ lb $t5, ($v1) -/* 06B8C8 8006ACC8 00000000 */ nop -/* 06B8CC 8006ACCC 14CD0003 */ bne $a2, $t5, .L8006ACDC -/* 06B8D0 8006ACD0 00000000 */ nop -/* 06B8D4 8006ACD4 03E00008 */ jr $ra -/* 06B8D8 8006ACD8 00801025 */ move $v0, $a0 - -.L8006ACDC: -/* 06B8DC 8006ACDC 24840001 */ addiu $a0, $a0, 1 -/* 06B8E0 8006ACE0 0082082A */ slt $at, $a0, $v0 -/* 06B8E4 8006ACE4 1420FFF7 */ bnez $at, .L8006ACC4 -/* 06B8E8 8006ACE8 24630006 */ addiu $v1, $v1, 6 -/* 06B8EC 8006ACEC 1000004D */ b .L8006AE24 -/* 06B8F0 8006ACF0 2402FFFF */ li $v0, -1 -.L8006ACF4: -/* 06B8F4 8006ACF4 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B8F8 8006ACF8 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B8FC 8006ACFC 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 -/* 06B900 8006AD00 0082082A */ slt $at, $a0, $v0 -/* 06B904 8006AD04 10200046 */ beqz $at, .L8006AE20 -/* 06B908 8006AD08 00047880 */ sll $t7, $a0, 2 -/* 06B90C 8006AD0C 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) -/* 06B910 8006AD10 01E47823 */ subu $t7, $t7, $a0 -/* 06B914 8006AD14 000F7840 */ sll $t7, $t7, 1 -/* 06B918 8006AD18 01CF1821 */ addu $v1, $t6, $t7 -.L8006AD1C: -/* 06B91C 8006AD1C 80780001 */ lb $t8, 1($v1) -/* 06B920 8006AD20 00000000 */ nop -/* 06B924 8006AD24 14B80007 */ bne $a1, $t8, .L8006AD44 -/* 06B928 8006AD28 00000000 */ nop -/* 06B92C 8006AD2C 80790000 */ lb $t9, ($v1) -/* 06B930 8006AD30 00000000 */ nop -/* 06B934 8006AD34 14D90003 */ bne $a2, $t9, .L8006AD44 -/* 06B938 8006AD38 00000000 */ nop -/* 06B93C 8006AD3C 03E00008 */ jr $ra -/* 06B940 8006AD40 00801025 */ move $v0, $a0 - -.L8006AD44: -/* 06B944 8006AD44 24840001 */ addiu $a0, $a0, 1 -/* 06B948 8006AD48 0082082A */ slt $at, $a0, $v0 -/* 06B94C 8006AD4C 1420FFF3 */ bnez $at, .L8006AD1C -/* 06B950 8006AD50 24630006 */ addiu $v1, $v1, 6 -/* 06B954 8006AD54 10000033 */ b .L8006AE24 -/* 06B958 8006AD58 2402FFFF */ li $v0, -1 -.L8006AD5C: -/* 06B95C 8006AD5C 14C20017 */ bne $a2, $v0, .L8006ADBC -/* 06B960 8006AD60 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B964 8006AD64 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B968 8006AD68 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B96C 8006AD6C 0082082A */ slt $at, $a0, $v0 -/* 06B970 8006AD70 1020002B */ beqz $at, .L8006AE20 -/* 06B974 8006AD74 00044880 */ sll $t1, $a0, 2 -/* 06B978 8006AD78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06B97C 8006AD7C 01244823 */ subu $t1, $t1, $a0 -/* 06B980 8006AD80 00094840 */ sll $t1, $t1, 1 -/* 06B984 8006AD84 01091821 */ addu $v1, $t0, $t1 -.L8006AD88: -/* 06B988 8006AD88 806A0001 */ lb $t2, 1($v1) -/* 06B98C 8006AD8C 00000000 */ nop -/* 06B990 8006AD90 314B0040 */ andi $t3, $t2, 0x40 -/* 06B994 8006AD94 11600003 */ beqz $t3, .L8006ADA4 -/* 06B998 8006AD98 00000000 */ nop -/* 06B99C 8006AD9C 03E00008 */ jr $ra -/* 06B9A0 8006ADA0 00801025 */ move $v0, $a0 - -.L8006ADA4: -/* 06B9A4 8006ADA4 24840001 */ addiu $a0, $a0, 1 -/* 06B9A8 8006ADA8 0082082A */ slt $at, $a0, $v0 -/* 06B9AC 8006ADAC 1420FFF6 */ bnez $at, .L8006AD88 -/* 06B9B0 8006ADB0 24630006 */ addiu $v1, $v1, 6 -/* 06B9B4 8006ADB4 1000001B */ b .L8006AE24 -/* 06B9B8 8006ADB8 2402FFFF */ li $v0, -1 -.L8006ADBC: -/* 06B9BC 8006ADBC 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B9C0 8006ADC0 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B9C4 8006ADC4 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 -/* 06B9C8 8006ADC8 0082082A */ slt $at, $a0, $v0 -/* 06B9CC 8006ADCC 10200014 */ beqz $at, .L8006AE20 -/* 06B9D0 8006ADD0 00046880 */ sll $t5, $a0, 2 -/* 06B9D4 8006ADD4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) -/* 06B9D8 8006ADD8 01A46823 */ subu $t5, $t5, $a0 -/* 06B9DC 8006ADDC 000D6840 */ sll $t5, $t5, 1 -/* 06B9E0 8006ADE0 018D1821 */ addu $v1, $t4, $t5 -.L8006ADE4: -/* 06B9E4 8006ADE4 806E0001 */ lb $t6, 1($v1) -/* 06B9E8 8006ADE8 00000000 */ nop -/* 06B9EC 8006ADEC 31CF0040 */ andi $t7, $t6, 0x40 -/* 06B9F0 8006ADF0 11E00007 */ beqz $t7, .L8006AE10 -/* 06B9F4 8006ADF4 00000000 */ nop -/* 06B9F8 8006ADF8 80780000 */ lb $t8, ($v1) -/* 06B9FC 8006ADFC 00000000 */ nop -/* 06BA00 8006AE00 14D80003 */ bne $a2, $t8, .L8006AE10 -/* 06BA04 8006AE04 00000000 */ nop -/* 06BA08 8006AE08 03E00008 */ jr $ra -/* 06BA0C 8006AE0C 00801025 */ move $v0, $a0 - -.L8006AE10: -/* 06BA10 8006AE10 24840001 */ addiu $a0, $a0, 1 -/* 06BA14 8006AE14 0082082A */ slt $at, $a0, $v0 -/* 06BA18 8006AE18 1420FFF2 */ bnez $at, .L8006ADE4 -/* 06BA1C 8006AE1C 24630006 */ addiu $v1, $v1, 6 -.L8006AE20: -/* 06BA20 8006AE20 2402FFFF */ li $v0, -1 -.L8006AE24: -/* 06BA24 8006AE24 03E00008 */ jr $ra -/* 06BA28 8006AE28 00000000 */ nop - -/* 06BA2C 8006AE2C 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06BA30 8006AE30 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06BA34 8006AE34 AFA50004 */ sw $a1, 4($sp) -/* 06BA38 8006AE38 00057600 */ sll $t6, $a1, 0x18 -/* 06BA3C 8006AE3C AFA60008 */ sw $a2, 8($sp) -/* 06BA40 8006AE40 0006C600 */ sll $t8, $a2, 0x18 -/* 06BA44 8006AE44 0082082A */ slt $at, $a0, $v0 -/* 06BA48 8006AE48 00183603 */ sra $a2, $t8, 0x18 -/* 06BA4C 8006AE4C 14200002 */ bnez $at, .L8006AE58 -/* 06BA50 8006AE50 000E2E03 */ sra $a1, $t6, 0x18 -/* 06BA54 8006AE54 00402025 */ move $a0, $v0 -.L8006AE58: -/* 06BA58 8006AE58 24010040 */ li $at, 64 -/* 06BA5C 8006AE5C 10A10040 */ beq $a1, $at, .L8006AF60 -/* 06BA60 8006AE60 2484FFFF */ addiu $a0, $a0, -1 -/* 06BA64 8006AE64 2402FFFF */ li $v0, -1 -/* 06BA68 8006AE68 14C20013 */ bne $a2, $v0, .L8006AEB8 -/* 06BA6C 8006AE6C 00000000 */ nop -/* 06BA70 8006AE70 04800066 */ bltz $a0, .L8006B00C -/* 06BA74 8006AE74 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06BA78 8006AE78 00044880 */ sll $t1, $a0, 2 -/* 06BA7C 8006AE7C 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06BA80 8006AE80 01244823 */ subu $t1, $t1, $a0 -/* 06BA84 8006AE84 00094840 */ sll $t1, $t1, 1 -/* 06BA88 8006AE88 01091021 */ addu $v0, $t0, $t1 -.L8006AE8C: -/* 06BA8C 8006AE8C 804A0001 */ lb $t2, 1($v0) -/* 06BA90 8006AE90 00000000 */ nop -/* 06BA94 8006AE94 14AA0003 */ bne $a1, $t2, .L8006AEA4 -/* 06BA98 8006AE98 00000000 */ nop -/* 06BA9C 8006AE9C 03E00008 */ jr $ra -/* 06BAA0 8006AEA0 00801025 */ move $v0, $a0 - -.L8006AEA4: -/* 06BAA4 8006AEA4 2484FFFF */ addiu $a0, $a0, -1 -/* 06BAA8 8006AEA8 0481FFF8 */ bgez $a0, .L8006AE8C -/* 06BAAC 8006AEAC 2442FFFA */ addiu $v0, $v0, -6 -/* 06BAB0 8006AEB0 10000057 */ b .L8006B010 -/* 06BAB4 8006AEB4 2402FFFF */ li $v0, -1 -.L8006AEB8: -/* 06BAB8 8006AEB8 14A20013 */ bne $a1, $v0, .L8006AF08 -/* 06BABC 8006AEBC 00000000 */ nop -/* 06BAC0 8006AEC0 04800052 */ bltz $a0, .L8006B00C -/* 06BAC4 8006AEC4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 -/* 06BAC8 8006AEC8 00046080 */ sll $t4, $a0, 2 -/* 06BACC 8006AECC 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) -/* 06BAD0 8006AED0 01846023 */ subu $t4, $t4, $a0 -/* 06BAD4 8006AED4 000C6040 */ sll $t4, $t4, 1 -/* 06BAD8 8006AED8 016C1021 */ addu $v0, $t3, $t4 -.L8006AEDC: -/* 06BADC 8006AEDC 804D0000 */ lb $t5, ($v0) -/* 06BAE0 8006AEE0 00000000 */ nop -/* 06BAE4 8006AEE4 14CD0003 */ bne $a2, $t5, .L8006AEF4 -/* 06BAE8 8006AEE8 00000000 */ nop -/* 06BAEC 8006AEEC 03E00008 */ jr $ra -/* 06BAF0 8006AEF0 00801025 */ move $v0, $a0 - -.L8006AEF4: -/* 06BAF4 8006AEF4 2484FFFF */ addiu $a0, $a0, -1 -/* 06BAF8 8006AEF8 0481FFF8 */ bgez $a0, .L8006AEDC -/* 06BAFC 8006AEFC 2442FFFA */ addiu $v0, $v0, -6 -/* 06BB00 8006AF00 10000043 */ b .L8006B010 -/* 06BB04 8006AF04 2402FFFF */ li $v0, -1 -.L8006AF08: -/* 06BB08 8006AF08 04800040 */ bltz $a0, .L8006B00C -/* 06BB0C 8006AF0C 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 -/* 06BB10 8006AF10 00047880 */ sll $t7, $a0, 2 -/* 06BB14 8006AF14 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) -/* 06BB18 8006AF18 01E47823 */ subu $t7, $t7, $a0 -/* 06BB1C 8006AF1C 000F7840 */ sll $t7, $t7, 1 -/* 06BB20 8006AF20 01CF1021 */ addu $v0, $t6, $t7 -.L8006AF24: -/* 06BB24 8006AF24 80580001 */ lb $t8, 1($v0) -/* 06BB28 8006AF28 00000000 */ nop -/* 06BB2C 8006AF2C 14B80007 */ bne $a1, $t8, .L8006AF4C -/* 06BB30 8006AF30 00000000 */ nop -/* 06BB34 8006AF34 80590000 */ lb $t9, ($v0) -/* 06BB38 8006AF38 00000000 */ nop -/* 06BB3C 8006AF3C 14D90003 */ bne $a2, $t9, .L8006AF4C -/* 06BB40 8006AF40 00000000 */ nop -/* 06BB44 8006AF44 03E00008 */ jr $ra -/* 06BB48 8006AF48 00801025 */ move $v0, $a0 - -.L8006AF4C: -/* 06BB4C 8006AF4C 2484FFFF */ addiu $a0, $a0, -1 -/* 06BB50 8006AF50 0481FFF4 */ bgez $a0, .L8006AF24 -/* 06BB54 8006AF54 2442FFFA */ addiu $v0, $v0, -6 -/* 06BB58 8006AF58 1000002D */ b .L8006B010 -/* 06BB5C 8006AF5C 2402FFFF */ li $v0, -1 -.L8006AF60: -/* 06BB60 8006AF60 2402FFFF */ li $v0, -1 -/* 06BB64 8006AF64 14C20014 */ bne $a2, $v0, .L8006AFB8 -/* 06BB68 8006AF68 00000000 */ nop -/* 06BB6C 8006AF6C 04800027 */ bltz $a0, .L8006B00C -/* 06BB70 8006AF70 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06BB74 8006AF74 00044880 */ sll $t1, $a0, 2 -/* 06BB78 8006AF78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06BB7C 8006AF7C 01244823 */ subu $t1, $t1, $a0 -/* 06BB80 8006AF80 00094840 */ sll $t1, $t1, 1 -/* 06BB84 8006AF84 01091021 */ addu $v0, $t0, $t1 -.L8006AF88: -/* 06BB88 8006AF88 804A0001 */ lb $t2, 1($v0) -/* 06BB8C 8006AF8C 00000000 */ nop -/* 06BB90 8006AF90 314B0040 */ andi $t3, $t2, 0x40 -/* 06BB94 8006AF94 11600003 */ beqz $t3, .L8006AFA4 -/* 06BB98 8006AF98 00000000 */ nop -/* 06BB9C 8006AF9C 03E00008 */ jr $ra -/* 06BBA0 8006AFA0 00801025 */ move $v0, $a0 - -.L8006AFA4: -/* 06BBA4 8006AFA4 2484FFFF */ addiu $a0, $a0, -1 -/* 06BBA8 8006AFA8 0481FFF7 */ bgez $a0, .L8006AF88 -/* 06BBAC 8006AFAC 2442FFFA */ addiu $v0, $v0, -6 -/* 06BBB0 8006AFB0 10000017 */ b .L8006B010 -/* 06BBB4 8006AFB4 2402FFFF */ li $v0, -1 -.L8006AFB8: -/* 06BBB8 8006AFB8 04800014 */ bltz $a0, .L8006B00C -/* 06BBBC 8006AFBC 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 -/* 06BBC0 8006AFC0 00046880 */ sll $t5, $a0, 2 -/* 06BBC4 8006AFC4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) -/* 06BBC8 8006AFC8 01A46823 */ subu $t5, $t5, $a0 -/* 06BBCC 8006AFCC 000D6840 */ sll $t5, $t5, 1 -/* 06BBD0 8006AFD0 018D1021 */ addu $v0, $t4, $t5 -.L8006AFD4: -/* 06BBD4 8006AFD4 804E0001 */ lb $t6, 1($v0) -/* 06BBD8 8006AFD8 00000000 */ nop -/* 06BBDC 8006AFDC 31CF0040 */ andi $t7, $t6, 0x40 -/* 06BBE0 8006AFE0 11E00007 */ beqz $t7, .L8006B000 -/* 06BBE4 8006AFE4 00000000 */ nop -/* 06BBE8 8006AFE8 80580000 */ lb $t8, ($v0) -/* 06BBEC 8006AFEC 00000000 */ nop -/* 06BBF0 8006AFF0 14D80003 */ bne $a2, $t8, .L8006B000 -/* 06BBF4 8006AFF4 00000000 */ nop -/* 06BBF8 8006AFF8 03E00008 */ jr $ra -/* 06BBFC 8006AFFC 00801025 */ move $v0, $a0 - -.L8006B000: -/* 06BC00 8006B000 2484FFFF */ addiu $a0, $a0, -1 -/* 06BC04 8006B004 0481FFF3 */ bgez $a0, .L8006AFD4 -/* 06BC08 8006B008 2442FFFA */ addiu $v0, $v0, -6 -.L8006B00C: -/* 06BC0C 8006B00C 2402FFFF */ li $v0, -1 -.L8006B010: -/* 06BC10 8006B010 03E00008 */ jr $ra -/* 06BC14 8006B014 00000000 */ nop - -/* 06BC18 8006B018 00047600 */ sll $t6, $a0, 0x18 -/* 06BC1C 8006B01C 000E7E03 */ sra $t7, $t6, 0x18 -/* 06BC20 8006B020 05E00009 */ bltz $t7, .L8006B048 -/* 06BC24 8006B024 AFA40000 */ sw $a0, ($sp) -/* 06BC28 8006B028 29E10010 */ slti $at, $t7, 0x10 -/* 06BC2C 8006B02C 10200006 */ beqz $at, .L8006B048 -/* 06BC30 8006B030 000FC080 */ sll $t8, $t7, 2 -/* 06BC34 8006B034 3C028012 */ lui $v0, %hi(D_80121180) # $v0, 0x8012 -/* 06BC38 8006B038 00581021 */ addu $v0, $v0, $t8 -/* 06BC3C 8006B03C 8C421180 */ lw $v0, %lo(D_80121180)($v0) -/* 06BC40 8006B040 03E00008 */ jr $ra -/* 06BC44 8006B044 00000000 */ nop - -.L8006B048: -/* 06BC48 8006B048 00001025 */ move $v0, $zero -/* 06BC4C 8006B04C 03E00008 */ jr $ra -/* 06BC50 8006B050 00000000 */ nop - -/* 06BC54 8006B054 3C058012 */ lui $a1, %hi(D_80121170) # $a1, 0x8012 -/* 06BC58 8006B058 8CA51170 */ lw $a1, %lo(D_80121170)($a1) -/* 06BC5C 8006B05C AFA40000 */ sw $a0, ($sp) -/* 06BC60 8006B060 00047600 */ sll $t6, $a0, 0x18 -/* 06BC64 8006B064 000E2603 */ sra $a0, $t6, 0x18 -/* 06BC68 8006B068 18A0000E */ blez $a1, .L8006B0A4 -/* 06BC6C 8006B06C 00001825 */ move $v1, $zero -/* 06BC70 8006B070 3C068012 */ lui $a2, %hi(D_80121178+4) # $a2, 0x8012 -/* 06BC74 8006B074 00053880 */ sll $a3, $a1, 2 -/* 06BC78 8006B078 00E53823 */ subu $a3, $a3, $a1 -/* 06BC7C 8006B07C 8CC6117C */ lw $a2, %lo(D_80121178+4)($a2) -/* 06BC80 8006B080 00073840 */ sll $a3, $a3, 1 -/* 06BC84 8006B084 00001025 */ move $v0, $zero -.L8006B088: -/* 06BC88 8006B088 80D80000 */ lb $t8, ($a2) -/* 06BC8C 8006B08C 24420006 */ addiu $v0, $v0, 6 -/* 06BC90 8006B090 14980002 */ bne $a0, $t8, .L8006B09C -/* 06BC94 8006B094 0047082A */ slt $at, $v0, $a3 -/* 06BC98 8006B098 24630001 */ addiu $v1, $v1, 1 -.L8006B09C: -/* 06BC9C 8006B09C 1420FFFA */ bnez $at, .L8006B088 -/* 06BCA0 8006B0A0 24C60006 */ addiu $a2, $a2, 6 -.L8006B0A4: -/* 06BCA4 8006B0A4 03E00008 */ jr $ra -/* 06BCA8 8006B0A8 00601025 */ move $v0, $v1 - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006AC00.s b/asm/non_matchings/unknown_06B2B0/func_8006AC00.s new file mode 100644 index 00000000..a55a7512 --- /dev/null +++ b/asm/non_matchings/unknown_06B2B0/func_8006AC00.s @@ -0,0 +1,159 @@ +# Unused +glabel func_8006AC00 +/* 06B800 8006AC00 AFA50004 */ sw $a1, 4($sp) +/* 06B804 8006AC04 00057600 */ sll $t6, $a1, 0x18 +/* 06B808 8006AC08 AFA60008 */ sw $a2, 8($sp) +/* 06B80C 8006AC0C 0006C600 */ sll $t8, $a2, 0x18 +/* 06B810 8006AC10 00183603 */ sra $a2, $t8, 0x18 +/* 06B814 8006AC14 04810003 */ bgez $a0, .L8006AC24 +/* 06B818 8006AC18 000E2E03 */ sra $a1, $t6, 0x18 +/* 06B81C 8006AC1C 10000002 */ b .L8006AC28 +/* 06B820 8006AC20 00002025 */ move $a0, $zero +.L8006AC24: +/* 06B824 8006AC24 24840001 */ addiu $a0, $a0, 1 +.L8006AC28: +/* 06B828 8006AC28 24010040 */ li $at, 64 +/* 06B82C 8006AC2C 10A1004B */ beq $a1, $at, .L8006AD5C +/* 06B830 8006AC30 2402FFFF */ li $v0, -1 +/* 06B834 8006AC34 2402FFFF */ li $v0, -1 +/* 06B838 8006AC38 14C20017 */ bne $a2, $v0, .L8006AC98 +/* 06B83C 8006AC3C 00000000 */ nop +/* 06B840 8006AC40 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B844 8006AC44 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B848 8006AC48 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06B84C 8006AC4C 0082082A */ slt $at, $a0, $v0 +/* 06B850 8006AC50 10200073 */ beqz $at, .L8006AE20 +/* 06B854 8006AC54 00044880 */ sll $t1, $a0, 2 +/* 06B858 8006AC58 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06B85C 8006AC5C 01244823 */ subu $t1, $t1, $a0 +/* 06B860 8006AC60 00094840 */ sll $t1, $t1, 1 +/* 06B864 8006AC64 01091821 */ addu $v1, $t0, $t1 +.L8006AC68: +/* 06B868 8006AC68 806A0001 */ lb $t2, 1($v1) +/* 06B86C 8006AC6C 00000000 */ nop +/* 06B870 8006AC70 14AA0003 */ bne $a1, $t2, .L8006AC80 +/* 06B874 8006AC74 00000000 */ nop +/* 06B878 8006AC78 03E00008 */ jr $ra +/* 06B87C 8006AC7C 00801025 */ move $v0, $a0 +.L8006AC80: +/* 06B880 8006AC80 24840001 */ addiu $a0, $a0, 1 +/* 06B884 8006AC84 0082082A */ slt $at, $a0, $v0 +/* 06B888 8006AC88 1420FFF7 */ bnez $at, .L8006AC68 +/* 06B88C 8006AC8C 24630006 */ addiu $v1, $v1, 6 +/* 06B890 8006AC90 10000064 */ b .L8006AE24 +/* 06B894 8006AC94 2402FFFF */ li $v0, -1 +.L8006AC98: +/* 06B898 8006AC98 14A20016 */ bne $a1, $v0, .L8006ACF4 +/* 06B89C 8006AC9C 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B8A0 8006ACA0 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B8A4 8006ACA4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 +/* 06B8A8 8006ACA8 0082082A */ slt $at, $a0, $v0 +/* 06B8AC 8006ACAC 1020005C */ beqz $at, .L8006AE20 +/* 06B8B0 8006ACB0 00046080 */ sll $t4, $a0, 2 +/* 06B8B4 8006ACB4 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) +/* 06B8B8 8006ACB8 01846023 */ subu $t4, $t4, $a0 +/* 06B8BC 8006ACBC 000C6040 */ sll $t4, $t4, 1 +/* 06B8C0 8006ACC0 016C1821 */ addu $v1, $t3, $t4 +.L8006ACC4: +/* 06B8C4 8006ACC4 806D0000 */ lb $t5, ($v1) +/* 06B8C8 8006ACC8 00000000 */ nop +/* 06B8CC 8006ACCC 14CD0003 */ bne $a2, $t5, .L8006ACDC +/* 06B8D0 8006ACD0 00000000 */ nop +/* 06B8D4 8006ACD4 03E00008 */ jr $ra +/* 06B8D8 8006ACD8 00801025 */ move $v0, $a0 +.L8006ACDC: +/* 06B8DC 8006ACDC 24840001 */ addiu $a0, $a0, 1 +/* 06B8E0 8006ACE0 0082082A */ slt $at, $a0, $v0 +/* 06B8E4 8006ACE4 1420FFF7 */ bnez $at, .L8006ACC4 +/* 06B8E8 8006ACE8 24630006 */ addiu $v1, $v1, 6 +/* 06B8EC 8006ACEC 1000004D */ b .L8006AE24 +/* 06B8F0 8006ACF0 2402FFFF */ li $v0, -1 +.L8006ACF4: +/* 06B8F4 8006ACF4 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B8F8 8006ACF8 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B8FC 8006ACFC 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 +/* 06B900 8006AD00 0082082A */ slt $at, $a0, $v0 +/* 06B904 8006AD04 10200046 */ beqz $at, .L8006AE20 +/* 06B908 8006AD08 00047880 */ sll $t7, $a0, 2 +/* 06B90C 8006AD0C 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) +/* 06B910 8006AD10 01E47823 */ subu $t7, $t7, $a0 +/* 06B914 8006AD14 000F7840 */ sll $t7, $t7, 1 +/* 06B918 8006AD18 01CF1821 */ addu $v1, $t6, $t7 +.L8006AD1C: +/* 06B91C 8006AD1C 80780001 */ lb $t8, 1($v1) +/* 06B920 8006AD20 00000000 */ nop +/* 06B924 8006AD24 14B80007 */ bne $a1, $t8, .L8006AD44 +/* 06B928 8006AD28 00000000 */ nop +/* 06B92C 8006AD2C 80790000 */ lb $t9, ($v1) +/* 06B930 8006AD30 00000000 */ nop +/* 06B934 8006AD34 14D90003 */ bne $a2, $t9, .L8006AD44 +/* 06B938 8006AD38 00000000 */ nop +/* 06B93C 8006AD3C 03E00008 */ jr $ra +/* 06B940 8006AD40 00801025 */ move $v0, $a0 +.L8006AD44: +/* 06B944 8006AD44 24840001 */ addiu $a0, $a0, 1 +/* 06B948 8006AD48 0082082A */ slt $at, $a0, $v0 +/* 06B94C 8006AD4C 1420FFF3 */ bnez $at, .L8006AD1C +/* 06B950 8006AD50 24630006 */ addiu $v1, $v1, 6 +/* 06B954 8006AD54 10000033 */ b .L8006AE24 +/* 06B958 8006AD58 2402FFFF */ li $v0, -1 +.L8006AD5C: +/* 06B95C 8006AD5C 14C20017 */ bne $a2, $v0, .L8006ADBC +/* 06B960 8006AD60 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B964 8006AD64 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B968 8006AD68 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06B96C 8006AD6C 0082082A */ slt $at, $a0, $v0 +/* 06B970 8006AD70 1020002B */ beqz $at, .L8006AE20 +/* 06B974 8006AD74 00044880 */ sll $t1, $a0, 2 +/* 06B978 8006AD78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06B97C 8006AD7C 01244823 */ subu $t1, $t1, $a0 +/* 06B980 8006AD80 00094840 */ sll $t1, $t1, 1 +/* 06B984 8006AD84 01091821 */ addu $v1, $t0, $t1 +.L8006AD88: +/* 06B988 8006AD88 806A0001 */ lb $t2, 1($v1) +/* 06B98C 8006AD8C 00000000 */ nop +/* 06B990 8006AD90 314B0040 */ andi $t3, $t2, 0x40 +/* 06B994 8006AD94 11600003 */ beqz $t3, .L8006ADA4 +/* 06B998 8006AD98 00000000 */ nop +/* 06B99C 8006AD9C 03E00008 */ jr $ra +/* 06B9A0 8006ADA0 00801025 */ move $v0, $a0 +.L8006ADA4: +/* 06B9A4 8006ADA4 24840001 */ addiu $a0, $a0, 1 +/* 06B9A8 8006ADA8 0082082A */ slt $at, $a0, $v0 +/* 06B9AC 8006ADAC 1420FFF6 */ bnez $at, .L8006AD88 +/* 06B9B0 8006ADB0 24630006 */ addiu $v1, $v1, 6 +/* 06B9B4 8006ADB4 1000001B */ b .L8006AE24 +/* 06B9B8 8006ADB8 2402FFFF */ li $v0, -1 +.L8006ADBC: +/* 06B9BC 8006ADBC 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B9C0 8006ADC0 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B9C4 8006ADC4 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 +/* 06B9C8 8006ADC8 0082082A */ slt $at, $a0, $v0 +/* 06B9CC 8006ADCC 10200014 */ beqz $at, .L8006AE20 +/* 06B9D0 8006ADD0 00046880 */ sll $t5, $a0, 2 +/* 06B9D4 8006ADD4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) +/* 06B9D8 8006ADD8 01A46823 */ subu $t5, $t5, $a0 +/* 06B9DC 8006ADDC 000D6840 */ sll $t5, $t5, 1 +/* 06B9E0 8006ADE0 018D1821 */ addu $v1, $t4, $t5 +.L8006ADE4: +/* 06B9E4 8006ADE4 806E0001 */ lb $t6, 1($v1) +/* 06B9E8 8006ADE8 00000000 */ nop +/* 06B9EC 8006ADEC 31CF0040 */ andi $t7, $t6, 0x40 +/* 06B9F0 8006ADF0 11E00007 */ beqz $t7, .L8006AE10 +/* 06B9F4 8006ADF4 00000000 */ nop +/* 06B9F8 8006ADF8 80780000 */ lb $t8, ($v1) +/* 06B9FC 8006ADFC 00000000 */ nop +/* 06BA00 8006AE00 14D80003 */ bne $a2, $t8, .L8006AE10 +/* 06BA04 8006AE04 00000000 */ nop +/* 06BA08 8006AE08 03E00008 */ jr $ra +/* 06BA0C 8006AE0C 00801025 */ move $v0, $a0 +.L8006AE10: +/* 06BA10 8006AE10 24840001 */ addiu $a0, $a0, 1 +/* 06BA14 8006AE14 0082082A */ slt $at, $a0, $v0 +/* 06BA18 8006AE18 1420FFF2 */ bnez $at, .L8006ADE4 +/* 06BA1C 8006AE1C 24630006 */ addiu $v1, $v1, 6 +.L8006AE20: +/* 06BA20 8006AE20 2402FFFF */ li $v0, -1 +.L8006AE24: +/* 06BA24 8006AE24 03E00008 */ jr $ra +/* 06BA28 8006AE28 00000000 */ nop diff --git a/asm/non_matchings/unknown_06B2B0/func_8006AE2C.s b/asm/non_matchings/unknown_06B2B0/func_8006AE2C.s new file mode 100644 index 00000000..a58f1ef0 --- /dev/null +++ b/asm/non_matchings/unknown_06B2B0/func_8006AE2C.s @@ -0,0 +1,142 @@ +# Unused. +glabel func_8006AE2C +/* 06BA2C 8006AE2C 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06BA30 8006AE30 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06BA34 8006AE34 AFA50004 */ sw $a1, 4($sp) +/* 06BA38 8006AE38 00057600 */ sll $t6, $a1, 0x18 +/* 06BA3C 8006AE3C AFA60008 */ sw $a2, 8($sp) +/* 06BA40 8006AE40 0006C600 */ sll $t8, $a2, 0x18 +/* 06BA44 8006AE44 0082082A */ slt $at, $a0, $v0 +/* 06BA48 8006AE48 00183603 */ sra $a2, $t8, 0x18 +/* 06BA4C 8006AE4C 14200002 */ bnez $at, .L8006AE58 +/* 06BA50 8006AE50 000E2E03 */ sra $a1, $t6, 0x18 +/* 06BA54 8006AE54 00402025 */ move $a0, $v0 +.L8006AE58: +/* 06BA58 8006AE58 24010040 */ li $at, 64 +/* 06BA5C 8006AE5C 10A10040 */ beq $a1, $at, .L8006AF60 +/* 06BA60 8006AE60 2484FFFF */ addiu $a0, $a0, -1 +/* 06BA64 8006AE64 2402FFFF */ li $v0, -1 +/* 06BA68 8006AE68 14C20013 */ bne $a2, $v0, .L8006AEB8 +/* 06BA6C 8006AE6C 00000000 */ nop +/* 06BA70 8006AE70 04800066 */ bltz $a0, .L8006B00C +/* 06BA74 8006AE74 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06BA78 8006AE78 00044880 */ sll $t1, $a0, 2 +/* 06BA7C 8006AE7C 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06BA80 8006AE80 01244823 */ subu $t1, $t1, $a0 +/* 06BA84 8006AE84 00094840 */ sll $t1, $t1, 1 +/* 06BA88 8006AE88 01091021 */ addu $v0, $t0, $t1 +.L8006AE8C: +/* 06BA8C 8006AE8C 804A0001 */ lb $t2, 1($v0) +/* 06BA90 8006AE90 00000000 */ nop +/* 06BA94 8006AE94 14AA0003 */ bne $a1, $t2, .L8006AEA4 +/* 06BA98 8006AE98 00000000 */ nop +/* 06BA9C 8006AE9C 03E00008 */ jr $ra +/* 06BAA0 8006AEA0 00801025 */ move $v0, $a0 +.L8006AEA4: +/* 06BAA4 8006AEA4 2484FFFF */ addiu $a0, $a0, -1 +/* 06BAA8 8006AEA8 0481FFF8 */ bgez $a0, .L8006AE8C +/* 06BAAC 8006AEAC 2442FFFA */ addiu $v0, $v0, -6 +/* 06BAB0 8006AEB0 10000057 */ b .L8006B010 +/* 06BAB4 8006AEB4 2402FFFF */ li $v0, -1 +.L8006AEB8: +/* 06BAB8 8006AEB8 14A20013 */ bne $a1, $v0, .L8006AF08 +/* 06BABC 8006AEBC 00000000 */ nop +/* 06BAC0 8006AEC0 04800052 */ bltz $a0, .L8006B00C +/* 06BAC4 8006AEC4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 +/* 06BAC8 8006AEC8 00046080 */ sll $t4, $a0, 2 +/* 06BACC 8006AECC 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) +/* 06BAD0 8006AED0 01846023 */ subu $t4, $t4, $a0 +/* 06BAD4 8006AED4 000C6040 */ sll $t4, $t4, 1 +/* 06BAD8 8006AED8 016C1021 */ addu $v0, $t3, $t4 +.L8006AEDC: +/* 06BADC 8006AEDC 804D0000 */ lb $t5, ($v0) +/* 06BAE0 8006AEE0 00000000 */ nop +/* 06BAE4 8006AEE4 14CD0003 */ bne $a2, $t5, .L8006AEF4 +/* 06BAE8 8006AEE8 00000000 */ nop +/* 06BAEC 8006AEEC 03E00008 */ jr $ra +/* 06BAF0 8006AEF0 00801025 */ move $v0, $a0 +.L8006AEF4: +/* 06BAF4 8006AEF4 2484FFFF */ addiu $a0, $a0, -1 +/* 06BAF8 8006AEF8 0481FFF8 */ bgez $a0, .L8006AEDC +/* 06BAFC 8006AEFC 2442FFFA */ addiu $v0, $v0, -6 +/* 06BB00 8006AF00 10000043 */ b .L8006B010 +/* 06BB04 8006AF04 2402FFFF */ li $v0, -1 +.L8006AF08: +/* 06BB08 8006AF08 04800040 */ bltz $a0, .L8006B00C +/* 06BB0C 8006AF0C 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 +/* 06BB10 8006AF10 00047880 */ sll $t7, $a0, 2 +/* 06BB14 8006AF14 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) +/* 06BB18 8006AF18 01E47823 */ subu $t7, $t7, $a0 +/* 06BB1C 8006AF1C 000F7840 */ sll $t7, $t7, 1 +/* 06BB20 8006AF20 01CF1021 */ addu $v0, $t6, $t7 +.L8006AF24: +/* 06BB24 8006AF24 80580001 */ lb $t8, 1($v0) +/* 06BB28 8006AF28 00000000 */ nop +/* 06BB2C 8006AF2C 14B80007 */ bne $a1, $t8, .L8006AF4C +/* 06BB30 8006AF30 00000000 */ nop +/* 06BB34 8006AF34 80590000 */ lb $t9, ($v0) +/* 06BB38 8006AF38 00000000 */ nop +/* 06BB3C 8006AF3C 14D90003 */ bne $a2, $t9, .L8006AF4C +/* 06BB40 8006AF40 00000000 */ nop +/* 06BB44 8006AF44 03E00008 */ jr $ra +/* 06BB48 8006AF48 00801025 */ move $v0, $a0 +.L8006AF4C: +/* 06BB4C 8006AF4C 2484FFFF */ addiu $a0, $a0, -1 +/* 06BB50 8006AF50 0481FFF4 */ bgez $a0, .L8006AF24 +/* 06BB54 8006AF54 2442FFFA */ addiu $v0, $v0, -6 +/* 06BB58 8006AF58 1000002D */ b .L8006B010 +/* 06BB5C 8006AF5C 2402FFFF */ li $v0, -1 +.L8006AF60: +/* 06BB60 8006AF60 2402FFFF */ li $v0, -1 +/* 06BB64 8006AF64 14C20014 */ bne $a2, $v0, .L8006AFB8 +/* 06BB68 8006AF68 00000000 */ nop +/* 06BB6C 8006AF6C 04800027 */ bltz $a0, .L8006B00C +/* 06BB70 8006AF70 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06BB74 8006AF74 00044880 */ sll $t1, $a0, 2 +/* 06BB78 8006AF78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06BB7C 8006AF7C 01244823 */ subu $t1, $t1, $a0 +/* 06BB80 8006AF80 00094840 */ sll $t1, $t1, 1 +/* 06BB84 8006AF84 01091021 */ addu $v0, $t0, $t1 +.L8006AF88: +/* 06BB88 8006AF88 804A0001 */ lb $t2, 1($v0) +/* 06BB8C 8006AF8C 00000000 */ nop +/* 06BB90 8006AF90 314B0040 */ andi $t3, $t2, 0x40 +/* 06BB94 8006AF94 11600003 */ beqz $t3, .L8006AFA4 +/* 06BB98 8006AF98 00000000 */ nop +/* 06BB9C 8006AF9C 03E00008 */ jr $ra +/* 06BBA0 8006AFA0 00801025 */ move $v0, $a0 +.L8006AFA4: +/* 06BBA4 8006AFA4 2484FFFF */ addiu $a0, $a0, -1 +/* 06BBA8 8006AFA8 0481FFF7 */ bgez $a0, .L8006AF88 +/* 06BBAC 8006AFAC 2442FFFA */ addiu $v0, $v0, -6 +/* 06BBB0 8006AFB0 10000017 */ b .L8006B010 +/* 06BBB4 8006AFB4 2402FFFF */ li $v0, -1 +.L8006AFB8: +/* 06BBB8 8006AFB8 04800014 */ bltz $a0, .L8006B00C +/* 06BBBC 8006AFBC 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 +/* 06BBC0 8006AFC0 00046880 */ sll $t5, $a0, 2 +/* 06BBC4 8006AFC4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) +/* 06BBC8 8006AFC8 01A46823 */ subu $t5, $t5, $a0 +/* 06BBCC 8006AFCC 000D6840 */ sll $t5, $t5, 1 +/* 06BBD0 8006AFD0 018D1021 */ addu $v0, $t4, $t5 +.L8006AFD4: +/* 06BBD4 8006AFD4 804E0001 */ lb $t6, 1($v0) +/* 06BBD8 8006AFD8 00000000 */ nop +/* 06BBDC 8006AFDC 31CF0040 */ andi $t7, $t6, 0x40 +/* 06BBE0 8006AFE0 11E00007 */ beqz $t7, .L8006B000 +/* 06BBE4 8006AFE4 00000000 */ nop +/* 06BBE8 8006AFE8 80580000 */ lb $t8, ($v0) +/* 06BBEC 8006AFEC 00000000 */ nop +/* 06BBF0 8006AFF0 14D80003 */ bne $a2, $t8, .L8006B000 +/* 06BBF4 8006AFF4 00000000 */ nop +/* 06BBF8 8006AFF8 03E00008 */ jr $ra +/* 06BBFC 8006AFFC 00801025 */ move $v0, $a0 +.L8006B000: +/* 06BC00 8006B000 2484FFFF */ addiu $a0, $a0, -1 +/* 06BC04 8006B004 0481FFF3 */ bgez $a0, .L8006AFD4 +/* 06BC08 8006B008 2442FFFA */ addiu $v0, $v0, -6 +.L8006B00C: +/* 06BC0C 8006B00C 2402FFFF */ li $v0, -1 +.L8006B010: +/* 06BC10 8006B010 03E00008 */ jr $ra +/* 06BC14 8006B014 00000000 */ nop diff --git a/asm/non_matchings/unknown_06B2B0/func_8006BDDC.s b/asm/non_matchings/unknown_06B2B0/func_8006BDDC.s deleted file mode 100644 index fe82ec3a..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006BDDC.s +++ /dev/null @@ -1,83 +0,0 @@ -glabel func_8006BDDC -/* 06C9DC 8006BDDC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 06C9E0 8006BDE0 AFBF0014 */ sw $ra, 0x14($sp) -/* 06C9E4 8006BDE4 00802825 */ move $a1, $a0 -/* 06C9E8 8006BDE8 04800007 */ bltz $a0, .L8006BE08 -/* 06C9EC 8006BDEC 00001825 */ move $v1, $zero -/* 06C9F0 8006BDF0 3C0E8012 */ lui $t6, %hi(D_80121170) # $t6, 0x8012 -/* 06C9F4 8006BDF4 8DCE1170 */ lw $t6, %lo(D_80121170)($t6) -/* 06C9F8 8006BDF8 3C0F8012 */ lui $t7, %hi(D_8012116C) # $t7, 0x8012 -/* 06C9FC 8006BDFC 008E082A */ slt $at, $a0, $t6 -/* 06CA00 8006BE00 14200003 */ bnez $at, .L8006BE10 -/* 06CA04 8006BE04 00000000 */ nop -.L8006BE08: -/* 06CA08 8006BE08 10000038 */ b .L8006BEEC -/* 06CA0C 8006BE0C 00001025 */ move $v0, $zero -.L8006BE10: -/* 06CA10 8006BE10 8DEF116C */ lw $t7, %lo(D_8012116C)($t7) -/* 06CA14 8006BE14 0005C080 */ sll $t8, $a1, 2 -/* 06CA18 8006BE18 01F8C821 */ addu $t9, $t7, $t8 -/* 06CA1C 8006BE1C 8F240000 */ lw $a0, ($t9) -/* 06CA20 8006BE20 A3A3001B */ sb $v1, 0x1b($sp) -/* 06CA24 8006BE24 0C027AC8 */ jal get_language -/* 06CA28 8006BE28 AFA4001C */ sw $a0, 0x1c($sp) -/* 06CA2C 8006BE2C 93A3001B */ lbu $v1, 0x1b($sp) -/* 06CA30 8006BE30 8FA4001C */ lw $a0, 0x1c($sp) -/* 06CA34 8006BE34 24010001 */ li $at, 1 -/* 06CA38 8006BE38 10410007 */ beq $v0, $at, .L8006BE58 -/* 06CA3C 8006BE3C 24010002 */ li $at, 2 -/* 06CA40 8006BE40 10410011 */ beq $v0, $at, .L8006BE88 -/* 06CA44 8006BE44 24010003 */ li $at, 3 -/* 06CA48 8006BE48 1041001C */ beq $v0, $at, .L8006BEBC -/* 06CA4C 8006BE4C 00000000 */ nop -/* 06CA50 8006BE50 10000026 */ b .L8006BEEC -/* 06CA54 8006BE54 00801025 */ move $v0, $a0 -.L8006BE58: -/* 06CA58 8006BE58 90820000 */ lbu $v0, ($a0) -/* 06CA5C 8006BE5C 24840001 */ addiu $a0, $a0, 1 -/* 06CA60 8006BE60 2C480001 */ sltiu $t0, $v0, 1 -/* 06CA64 8006BE64 11000004 */ beqz $t0, .L8006BE78 -/* 06CA68 8006BE68 00000000 */ nop -/* 06CA6C 8006BE6C 24630001 */ addiu $v1, $v1, 1 -/* 06CA70 8006BE70 306900FF */ andi $t1, $v1, 0xff -/* 06CA74 8006BE74 01201825 */ move $v1, $t1 -.L8006BE78: -/* 06CA78 8006BE78 1860FFF7 */ blez $v1, .L8006BE58 -/* 06CA7C 8006BE7C 00000000 */ nop -/* 06CA80 8006BE80 1000001A */ b .L8006BEEC -/* 06CA84 8006BE84 00801025 */ move $v0, $a0 -.L8006BE88: -/* 06CA88 8006BE88 90820000 */ lbu $v0, ($a0) -/* 06CA8C 8006BE8C 24840001 */ addiu $a0, $a0, 1 -/* 06CA90 8006BE90 2C4A0001 */ sltiu $t2, $v0, 1 -/* 06CA94 8006BE94 11400005 */ beqz $t2, .L8006BEAC -/* 06CA98 8006BE98 28610002 */ slti $at, $v1, 2 -/* 06CA9C 8006BE9C 24630001 */ addiu $v1, $v1, 1 -/* 06CAA0 8006BEA0 306B00FF */ andi $t3, $v1, 0xff -/* 06CAA4 8006BEA4 01601825 */ move $v1, $t3 -/* 06CAA8 8006BEA8 28610002 */ slti $at, $v1, 2 -.L8006BEAC: -/* 06CAAC 8006BEAC 1420FFF6 */ bnez $at, .L8006BE88 -/* 06CAB0 8006BEB0 00000000 */ nop -/* 06CAB4 8006BEB4 1000000D */ b .L8006BEEC -/* 06CAB8 8006BEB8 00801025 */ move $v0, $a0 -.L8006BEBC: -/* 06CABC 8006BEBC 90820000 */ lbu $v0, ($a0) -/* 06CAC0 8006BEC0 24840001 */ addiu $a0, $a0, 1 -/* 06CAC4 8006BEC4 2C4C0001 */ sltiu $t4, $v0, 1 -/* 06CAC8 8006BEC8 11800005 */ beqz $t4, .L8006BEE0 -/* 06CACC 8006BECC 28610003 */ slti $at, $v1, 3 -/* 06CAD0 8006BED0 24630001 */ addiu $v1, $v1, 1 -/* 06CAD4 8006BED4 306D00FF */ andi $t5, $v1, 0xff -/* 06CAD8 8006BED8 01A01825 */ move $v1, $t5 -/* 06CADC 8006BEDC 28610003 */ slti $at, $v1, 3 -.L8006BEE0: -/* 06CAE0 8006BEE0 1420FFF6 */ bnez $at, .L8006BEBC -/* 06CAE4 8006BEE4 00000000 */ nop -/* 06CAE8 8006BEE8 00801025 */ move $v0, $a0 -.L8006BEEC: -/* 06CAEC 8006BEEC 8FBF0014 */ lw $ra, 0x14($sp) -/* 06CAF0 8006BEF0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 06CAF4 8006BEF4 03E00008 */ jr $ra -/* 06CAF8 8006BEF8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s b/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s index 7ec9491d..478f18f4 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s @@ -60,8 +60,8 @@ glabel func_8006BFC8 .L8006C098: /* 06CC98 8006C098 0C01DB16 */ jal load_asset_section_from_rom /* 06CC9C 8006C09C 24040001 */ li $a0, 1 -/* 06CCA0 8006C0A0 3C088012 */ lui $t0, %hi(D_80121160) # $t0, 0x8012 -/* 06CCA4 8006C0A4 25081160 */ addiu $t0, %lo(D_80121160) # addiu $t0, $t0, 0x1160 +/* 06CCA0 8006C0A0 3C088012 */ lui $t0, %hi(gTempAssetTable) # $t0, 0x8012 +/* 06CCA4 8006C0A4 25081160 */ addiu $t0, %lo(gTempAssetTable) # addiu $t0, $t0, 0x1160 /* 06CCA8 8006C0A8 AD020000 */ sw $v0, ($t0) /* 06CCAC 8006C0AC 8C580000 */ lw $t8, ($v0) /* 06CCB0 8006C0B0 2404FFFF */ li $a0, -1 @@ -104,8 +104,8 @@ glabel func_8006BFC8 /* 06CD38 8006C138 00002025 */ move $a0, $zero /* 06CD3C 8006C13C 0C01DB9A */ jal load_asset_to_address /* 06CD40 8006C140 00402825 */ move $a1, $v0 -/* 06CD44 8006C144 3C048012 */ lui $a0, %hi(D_80121160) # $a0, 0x8012 -/* 06CD48 8006C148 8C841160 */ lw $a0, %lo(D_80121160)($a0) +/* 06CD44 8006C144 3C048012 */ lui $a0, %hi(gTempAssetTable) # $a0, 0x8012 +/* 06CD48 8006C148 8C841160 */ lw $a0, %lo(gTempAssetTable)($a0) /* 06CD4C 8006C14C 0C01C450 */ jal free_from_memory_pool /* 06CD50 8006C150 00000000 */ nop /* 06CD54 8006C154 8FBF001C */ lw $ra, 0x1c($sp) diff --git a/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s b/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s index 950ba6f2..9ede803c 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s @@ -357,7 +357,7 @@ glabel L8006D1C0 /* 06DDC4 8006D1C4 0C01E015 */ jal func_80078054 /* 06DDC8 8006D1C8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 /* 06DDCC 8006D1CC 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06DDD0 8006D1D0 0C01DC14 */ jal func_80077050 +/* 06DDD0 8006D1D0 0C01DC14 */ jal render_borders_for_multiplayer /* 06DDD4 8006D1D4 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 /* 06DDD8 8006D1D8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 /* 06DDDC 8006D1DC 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s b/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s index 10f53bfc..97cff690 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s @@ -6,7 +6,7 @@ glabel func_8006E3BC /* 06EFCC 8006E3CC 0C027055 */ jal reset_character_id_slots /* 06EFD0 8006E3D0 00000000 */ nop /* 06EFD4 8006E3D4 27A40018 */ addiu $a0, $sp, 0x18 -/* 06EFD8 8006E3D8 0C01AC89 */ jal func_8006B224 +/* 06EFD8 8006E3D8 0C01AC89 */ jal get_number_of_levels_and_worlds /* 06EFDC 8006E3DC 27A5001C */ addiu $a1, $sp, 0x1c /* 06EFE0 8006E3E0 8FA70018 */ lw $a3, 0x18($sp) /* 06EFE4 8006E3E4 8FAF001C */ lw $t7, 0x1c($sp) diff --git a/asm/non_matchings/unknown_06B2B0/func_8006E770.s b/asm/non_matchings/unknown_06B2B0/func_8006E770.s index 9419a91f..188f77c9 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006E770.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006E770.s @@ -6,7 +6,7 @@ glabel func_8006E770 /* 06F380 8006E780 00A08825 */ move $s1, $a1 /* 06F384 8006E784 AFBF001C */ sw $ra, 0x1c($sp) /* 06F388 8006E788 27A5003C */ addiu $a1, $sp, 0x3c -/* 06F38C 8006E78C 0C01AC89 */ jal func_8006B224 +/* 06F38C 8006E78C 0C01AC89 */ jal get_number_of_levels_and_worlds /* 06F390 8006E790 27A40038 */ addiu $a0, $sp, 0x38 /* 06F394 8006E794 0C0078A7 */ jal get_misc_asset /* 06F398 8006E798 24040017 */ li $a0, 23 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006EFB8.s b/asm/non_matchings/unknown_06B2B0/func_8006EFB8.s deleted file mode 100644 index 8f267c98..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006EFB8.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_8006EFB8 -/* 06FBB8 8006EFB8 3C0EA400 */ lui $t6, 0xa400 -/* 06FBBC 8006EFBC 8DCF0000 */ lw $t7, ($t6) -/* 06FBC0 8006EFC0 2401FFFF */ li $at, -1 -/* 06FBC4 8006EFC4 11E10003 */ beq $t7, $at, .L8006EFD4 -/* 06FBC8 8006EFC8 24020001 */ li $v0, 1 -/* 06FBCC 8006EFCC 03E00008 */ jr $ra -/* 06FBD0 8006EFD0 00001025 */ move $v0, $zero -.L8006EFD4: -/* 06FBD4 8006EFD4 03E00008 */ jr $ra -/* 06FBD8 8006EFD8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006F4EC.s b/asm/non_matchings/unknown_06B2B0/func_8006F4EC.s deleted file mode 100644 index 33ece7fd..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006F4EC.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_8006F4EC -/* 0700EC 8006F4EC 3C0EA400 */ lui $t6, %hi(SP_IMEM) # $t6, 0xa400 -/* 0700F0 8006F4F0 8DCF1000 */ lw $t7, %lo(SP_IMEM)($t6) -/* 0700F4 8006F4F4 240117D7 */ li $at, 6103 -/* 0700F8 8006F4F8 11E10003 */ beq $t7, $at, .L8006F508 -/* 0700FC 8006F4FC 24020001 */ li $v0, 1 -/* 070100 8006F500 03E00008 */ jr $ra -/* 070104 8006F504 00001025 */ move $v0, $zero - -.L8006F508: -/* 070108 8006F508 03E00008 */ jr $ra -/* 07010C 8006F50C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/load_level.s b/asm/non_matchings/unknown_06B2B0/load_level.s index f846ffb0..954c738a 100644 --- a/asm/non_matchings/unknown_06B2B0/load_level.s +++ b/asm/non_matchings/unknown_06B2B0/load_level.s @@ -50,8 +50,8 @@ glabel load_level /* 06BEF8 8006B2F8 AFA20040 */ sw $v0, 0x40($sp) /* 06BEFC 8006B2FC 0C01DB16 */ jal load_asset_section_from_rom /* 06BF00 8006B300 24040016 */ li $a0, 22 -/* 06BF04 8006B304 3C098012 */ lui $t1, %hi(D_80121160) # $t1, 0x8012 -/* 06BF08 8006B308 25291160 */ addiu $t1, %lo(D_80121160) # addiu $t1, $t1, 0x1160 +/* 06BF04 8006B304 3C098012 */ lui $t1, %hi(gTempAssetTable) # $t1, 0x8012 +/* 06BF08 8006B308 25291160 */ addiu $t1, %lo(gTempAssetTable) # addiu $t1, $t1, 0x1160 /* 06BF0C 8006B30C AD220000 */ sw $v0, ($t1) /* 06BF10 8006B310 8C4B0000 */ lw $t3, ($v0) /* 06BF14 8006B314 2408FFFF */ li $t0, -1 @@ -279,8 +279,8 @@ glabel load_level /* 06C248 8006B648 00187880 */ sll $t7, $t8, 2 /* 06C24C 8006B64C 0C01C450 */ jal free_from_memory_pool /* 06C250 8006B650 AFAF0034 */ sw $t7, 0x34($sp) -/* 06C254 8006B654 3C0D8012 */ lui $t5, %hi(D_80121160) # $t5, 0x8012 -/* 06C258 8006B658 8DAD1160 */ lw $t5, %lo(D_80121160)($t5) +/* 06C254 8006B654 3C0D8012 */ lui $t5, %hi(gTempAssetTable) # $t5, 0x8012 +/* 06C258 8006B658 8DAD1160 */ lw $t5, %lo(gTempAssetTable)($t5) /* 06C25C 8006B65C 8FAB0034 */ lw $t3, 0x34($sp) /* 06C260 8006B660 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff /* 06C264 8006B664 01AB1021 */ addu $v0, $t5, $t3 @@ -297,8 +297,8 @@ glabel load_level /* 06C290 8006B690 0C01DB9A */ jal load_asset_to_address /* 06C294 8006B694 02003025 */ move $a2, $s0 .L8006B698: -/* 06C298 8006B698 3C048012 */ lui $a0, %hi(D_80121160) # $a0, 0x8012 -/* 06C29C 8006B69C 8C841160 */ lw $a0, %lo(D_80121160)($a0) +/* 06C298 8006B698 3C048012 */ lui $a0, %hi(gTempAssetTable) # $a0, 0x8012 +/* 06C29C 8006B69C 8C841160 */ lw $a0, %lo(gTempAssetTable)($a0) /* 06C2A0 8006B6A0 0C01C450 */ jal free_from_memory_pool /* 06C2A4 8006B6A4 00000000 */ nop /* 06C2A8 8006B6A8 8E240000 */ lw $a0, ($s1) diff --git a/asm/non_matchings/unknown_06B2B0/render.s b/asm/non_matchings/unknown_06B2B0/render.s deleted file mode 100644 index 757a6710..00000000 --- a/asm/non_matchings/unknown_06B2B0/render.s +++ /dev/null @@ -1,331 +0,0 @@ -glabel render -/* 06D20C 8006C60C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 06D210 8006C610 AFBF0014 */ sw $ra, 0x14($sp) -/* 06D214 8006C614 24040000 */ li $a0, 0 -/* 06D218 8006C618 0C033498 */ jal osSetTime -/* 06D21C 8006C61C 24050000 */ li $a1, 0 -/* 06D220 8006C620 3C0E800E */ lui $t6, %hi(D_800DD380) # $t6, 0x800e -/* 06D224 8006C624 8DCED380 */ lw $t6, %lo(D_800DD380)($t6) -/* 06D228 8006C628 24010008 */ li $at, 8 -/* 06D22C 8006C62C 15C1001F */ bne $t6, $at, .L8006C6AC -/* 06D230 8006C630 3C0F8012 */ lui $t7, %hi(D_801234E8) # $t7, 0x8012 -/* 06D234 8006C634 8DEF34E8 */ lw $t7, %lo(D_801234E8)($t7) -/* 06D238 8006C638 3C198012 */ lui $t9, %hi(D_801211F0) # $t9, 0x8012 -/* 06D23C 8006C63C 000FC080 */ sll $t8, $t7, 2 -/* 06D240 8006C640 0338C821 */ addu $t9, $t9, $t8 -/* 06D244 8006C644 8F3911F0 */ lw $t9, %lo(D_801211F0)($t9) -/* 06D248 8006C648 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D24C 8006C64C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D250 8006C650 00002825 */ move $a1, $zero -/* 06D254 8006C654 00003025 */ move $a2, $zero -/* 06D258 8006C658 0C01E8B4 */ jal func_8007A2D0 -/* 06D25C 8006C65C AC990000 */ sw $t9, ($a0) -/* 06D260 8006C660 3C068012 */ lui $a2, %hi(gVideoCurrFramebuffer) # $a2, 0x8012 -/* 06D264 8006C664 8CC662D4 */ lw $a2, %lo(gVideoCurrFramebuffer)($a2) -/* 06D268 8006C668 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D26C 8006C66C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D270 8006C670 0C01E8B4 */ jal func_8007A2D0 -/* 06D274 8006C674 24050001 */ li $a1, 1 -/* 06D278 8006C678 3C068012 */ lui $a2, %hi(gVideoLastDepthBuffer) # $a2, 0x8012 -/* 06D27C 8006C67C 8CC662E0 */ lw $a2, %lo(gVideoLastDepthBuffer)($a2) -/* 06D280 8006C680 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D284 8006C684 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D288 8006C688 0C01E8B4 */ jal func_8007A2D0 -/* 06D28C 8006C68C 24050002 */ li $a1, 2 -/* 06D290 8006C690 3C068012 */ lui $a2, %hi(gVideoCurrFramebuffer) # $a2, 0x8012 -/* 06D294 8006C694 8CC662D4 */ lw $a2, %lo(gVideoCurrFramebuffer)($a2) -/* 06D298 8006C698 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D29C 8006C69C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D2A0 8006C6A0 24050004 */ li $a1, 4 -/* 06D2A4 8006C6A4 0C01E8B4 */ jal func_8007A2D0 -/* 06D2A8 8006C6A8 24C6FB00 */ addiu $a2, $a2, -0x500 -.L8006C6AC: -/* 06D2AC 8006C6AC 3C03800E */ lui $v1, %hi(D_800DD3F0) # $v1, 0x800e -/* 06D2B0 8006C6B0 8063D3F0 */ lb $v1, %lo(D_800DD3F0)($v1) -/* 06D2B4 8006C6B4 00000000 */ nop -/* 06D2B8 8006C6B8 14600014 */ bnez $v1, .L8006C70C -/* 06D2BC 8006C6BC 3C088012 */ lui $t0, %hi(D_801234E8) # $t0, 0x8012 -/* 06D2C0 8006C6C0 8D0834E8 */ lw $t0, %lo(D_801234E8)($t0) -/* 06D2C4 8006C6C4 3C048012 */ lui $a0, %hi(D_801211F0) # $a0, 0x8012 -/* 06D2C8 8006C6C8 00084880 */ sll $t1, $t0, 2 -/* 06D2CC 8006C6CC 00892021 */ addu $a0, $a0, $t1 -/* 06D2D0 8006C6D0 3C058012 */ lui $a1, %hi(D_801211F8) # $a1, 0x8012 -/* 06D2D4 8006C6D4 8CA511F8 */ lw $a1, %lo(D_801211F8)($a1) -/* 06D2D8 8006C6D8 8C8411F0 */ lw $a0, %lo(D_801211F0)($a0) -/* 06D2DC 8006C6DC 0C01DD14 */ jal setupOSTasks -/* 06D2E0 8006C6E0 00003025 */ move $a2, $zero -/* 06D2E4 8006C6E4 3C078012 */ lui $a3, %hi(D_801234E8) # $a3, 0x8012 -/* 06D2E8 8006C6E8 24E734E8 */ addiu $a3, %lo(D_801234E8) # addiu $a3, $a3, 0x34e8 -/* 06D2EC 8006C6EC 8CEA0000 */ lw $t2, ($a3) -/* 06D2F0 8006C6F0 3C03800E */ lui $v1, %hi(D_800DD3F0) # $v1, 0x800e -/* 06D2F4 8006C6F4 254B0001 */ addiu $t3, $t2, 1 -/* 06D2F8 8006C6F8 ACEB0000 */ sw $t3, ($a3) -/* 06D2FC 8006C6FC 316D0001 */ andi $t5, $t3, 1 -/* 06D300 8006C700 ACED0000 */ sw $t5, ($a3) -/* 06D304 8006C704 8063D3F0 */ lb $v1, %lo(D_800DD3F0)($v1) -/* 06D308 8006C708 00000000 */ nop -.L8006C70C: -/* 06D30C 8006C70C 3C078012 */ lui $a3, %hi(D_801234E8) # $a3, 0x8012 -/* 06D310 8006C710 10600004 */ beqz $v1, .L8006C724 -/* 06D314 8006C714 24E734E8 */ addiu $a3, %lo(D_801234E8) # addiu $a3, $a3, 0x34e8 -/* 06D318 8006C718 246EFFFF */ addiu $t6, $v1, -1 -/* 06D31C 8006C71C 3C01800E */ lui $at, %hi(D_800DD3F0) # $at, 0x800e -/* 06D320 8006C720 A02ED3F0 */ sb $t6, %lo(D_800DD3F0)($at) -.L8006C724: -/* 06D324 8006C724 8CE20000 */ lw $v0, ($a3) -/* 06D328 8006C728 3C188012 */ lui $t8, %hi(D_801211F0) # $t8, 0x8012 -/* 06D32C 8006C72C 00027880 */ sll $t7, $v0, 2 -/* 06D330 8006C730 030FC021 */ addu $t8, $t8, $t7 -/* 06D334 8006C734 8F1811F0 */ lw $t8, %lo(D_801211F0)($t8) -/* 06D338 8006C738 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D33C 8006C73C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D340 8006C740 3C198012 */ lui $t9, %hi(D_80121200) # $t9, 0x8012 -/* 06D344 8006C744 032FC821 */ addu $t9, $t9, $t7 -/* 06D348 8006C748 AC980000 */ sw $t8, ($a0) -/* 06D34C 8006C74C 8F391200 */ lw $t9, %lo(D_80121200)($t9) -/* 06D350 8006C750 3C088012 */ lui $t0, %hi(D_80121210) # $t0, 0x8012 -/* 06D354 8006C754 3C018012 */ lui $at, %hi(D_80121208) # $at, 0x8012 -/* 06D358 8006C758 010F4021 */ addu $t0, $t0, $t7 -/* 06D35C 8006C75C 8D081210 */ lw $t0, %lo(D_80121210)($t0) -/* 06D360 8006C760 3C098012 */ lui $t1, %hi(D_80121220) # $t1, 0x8012 -/* 06D364 8006C764 AC391208 */ sw $t9, %lo(D_80121208)($at) -/* 06D368 8006C768 3C018012 */ lui $at, %hi(D_80121218) # $at, 0x8012 -/* 06D36C 8006C76C 012F4821 */ addu $t1, $t1, $t7 -/* 06D370 8006C770 8D291220 */ lw $t1, %lo(D_80121220)($t1) -/* 06D374 8006C774 AC281218 */ sw $t0, %lo(D_80121218)($at) -/* 06D378 8006C778 3C018012 */ lui $at, %hi(D_80121228) # $at, 0x8012 -/* 06D37C 8006C77C 00002825 */ move $a1, $zero -/* 06D380 8006C780 00003025 */ move $a2, $zero -/* 06D384 8006C784 0C01E8B4 */ jal func_8007A2D0 -/* 06D388 8006C788 AC291228 */ sw $t1, %lo(D_80121228)($at) -/* 06D38C 8006C78C 3C068012 */ lui $a2, %hi(gVideoLastFramebuffer) # $a2, 0x8012 -/* 06D390 8006C790 8CC662D8 */ lw $a2, %lo(gVideoLastFramebuffer)($a2) -/* 06D394 8006C794 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D398 8006C798 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D39C 8006C79C 0C01E8B4 */ jal func_8007A2D0 -/* 06D3A0 8006C7A0 24050001 */ li $a1, 1 -/* 06D3A4 8006C7A4 3C068012 */ lui $a2, %hi(gVideoLastDepthBuffer) # $a2, 0x8012 -/* 06D3A8 8006C7A8 8CC662E0 */ lw $a2, %lo(gVideoLastDepthBuffer)($a2) -/* 06D3AC 8006C7AC 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3B0 8006C7B0 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3B4 8006C7B4 0C01E8B4 */ jal func_8007A2D0 -/* 06D3B8 8006C7B8 24050002 */ li $a1, 2 -/* 06D3BC 8006C7BC 3C068012 */ lui $a2, %hi(gVideoLastFramebuffer) # $a2, 0x8012 -/* 06D3C0 8006C7C0 8CC662D8 */ lw $a2, %lo(gVideoLastFramebuffer)($a2) -/* 06D3C4 8006C7C4 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3C8 8006C7C8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3CC 8006C7CC 24050004 */ li $a1, 4 -/* 06D3D0 8006C7D0 0C01E8B4 */ jal func_8007A2D0 -/* 06D3D4 8006C7D4 24C6FB00 */ addiu $a2, $a2, -0x500 -/* 06D3D8 8006C7D8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3DC 8006C7DC 0C01E037 */ jal func_800780DC -/* 06D3E0 8006C7E0 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3E4 8006C7E4 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3E8 8006C7E8 0C01E015 */ jal func_80078054 -/* 06D3EC 8006C7EC 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3F0 8006C7F0 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3F4 8006C7F4 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06D3F8 8006C7F8 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06D3FC 8006C7FC 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D400 8006C800 0C01DEE7 */ jal func_80077B9C -/* 06D404 8006C804 24060001 */ li $a2, 1 -/* 06D408 8006C808 3C04800E */ lui $a0, %hi(D_800DD37C) # $a0, 0x800e -/* 06D40C 8006C80C 3C05800E */ lui $a1, %hi(D_800DD404) # $a1, 0x800e -/* 06D410 8006C810 8CA5D404 */ lw $a1, %lo(D_800DD404)($a1) -/* 06D414 8006C814 8C84D37C */ lw $a0, %lo(D_800DD37C)($a0) -/* 06D418 8006C818 0C01A871 */ jal func_8006A1C4 -/* 06D41C 8006C81C 00000000 */ nop -/* 06D420 8006C820 3C01800E */ lui $at, %hi(D_800DD37C) # $at, 0x800e -/* 06D424 8006C824 0C02DDB7 */ jal func_800B76DC -/* 06D428 8006C828 AC22D37C */ sw $v0, %lo(D_800DD37C)($at) -/* 06D42C 8006C82C 10400006 */ beqz $v0, .L8006C848 -/* 06D430 8006C830 00000000 */ nop -/* 06D434 8006C834 0C02DE04 */ jal render_epc_lock_up_display -/* 06D438 8006C838 00000000 */ nop -/* 06D43C 8006C83C 240A0005 */ li $t2, 5 -/* 06D440 8006C840 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 -/* 06D444 8006C844 AC2A34EC */ sw $t2, %lo(D_801234EC)($at) -.L8006C848: -/* 06D448 8006C848 3C0B800E */ lui $t3, %hi(D_800DD3A0) # $t3, 0x800e -/* 06D44C 8006C84C 816BD3A0 */ lb $t3, %lo(D_800DD3A0)($t3) -/* 06D450 8006C850 00000000 */ nop -/* 06D454 8006C854 1160000D */ beqz $t3, .L8006C88C -/* 06D458 8006C858 3C030098 */ lui $v1, (0x00989680 >> 16) # lui $v1, 0x98 -/* 06D45C 8006C85C 00001025 */ move $v0, $zero -/* 06D460 8006C860 34639680 */ ori $v1, (0x00989680 & 0xFFFF) # ori $v1, $v1, 0x9680 -.L8006C864: -/* 06D464 8006C864 24420004 */ addiu $v0, $v0, 4 -/* 06D468 8006C868 1443FFFE */ bne $v0, $v1, .L8006C864 -/* 06D46C 8006C86C 00000000 */ nop -/* 06D470 8006C870 3C010131 */ lui $at, (0x01312D01 >> 16) # lui $at, 0x131 -/* 06D474 8006C874 34212D01 */ ori $at, (0x01312D01 & 0xFFFF) # ori $at, $at, 0x2d01 -/* 06D478 8006C878 0041082A */ slt $at, $v0, $at -/* 06D47C 8006C87C 14200003 */ bnez $at, .L8006C88C -/* 06D480 8006C880 3C04800E */ lui $a0, %hi(D_800E7134) # $a0, 0x800e -/* 06D484 8006C884 0C02D7B7 */ jal render_printf -/* 06D488 8006C888 24847134 */ addiu $a0, %lo(D_800E7134) # addiu $a0, $a0, 0x7134 -.L8006C88C: -/* 06D48C 8006C88C 3C028012 */ lui $v0, %hi(D_801234EC) # $v0, 0x8012 -/* 06D490 8006C890 8C4234EC */ lw $v0, %lo(D_801234EC)($v0) -/* 06D494 8006C894 2401FFFF */ li $at, -1 -/* 06D498 8006C898 1041000B */ beq $v0, $at, .L8006C8C8 -/* 06D49C 8006C89C 00000000 */ nop -/* 06D4A0 8006C8A0 10400012 */ beqz $v0, .L8006C8EC -/* 06D4A4 8006C8A4 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D4A8 8006C8A8 24010001 */ li $at, 1 -/* 06D4AC 8006C8AC 1041000A */ beq $v0, $at, .L8006C8D8 -/* 06D4B0 8006C8B0 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D4B4 8006C8B4 24010005 */ li $at, 5 -/* 06D4B8 8006C8B8 10410011 */ beq $v0, $at, .L8006C900 -/* 06D4BC 8006C8BC 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D4C0 8006C8C0 10000012 */ b .L8006C90C -/* 06D4C4 8006C8C4 00000000 */ nop -.L8006C8C8: -/* 06D4C8 8006C8C8 0C01BD0F */ jal func_8006F43C -/* 06D4CC 8006C8CC 00000000 */ nop -/* 06D4D0 8006C8D0 1000000E */ b .L8006C90C -/* 06D4D4 8006C8D4 00000000 */ nop -.L8006C8D8: -/* 06D4D8 8006C8D8 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D4DC 8006C8DC 0C01B73E */ jal func_8006DCF8 -/* 06D4E0 8006C8E0 00000000 */ nop -/* 06D4E4 8006C8E4 10000009 */ b .L8006C90C -/* 06D4E8 8006C8E8 00000000 */ nop -.L8006C8EC: -/* 06D4EC 8006C8EC 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D4F0 8006C8F0 0C01B33C */ jal func_8006CCF0 -/* 06D4F4 8006C8F4 00000000 */ nop -/* 06D4F8 8006C8F8 10000004 */ b .L8006C90C -/* 06D4FC 8006C8FC 00000000 */ nop -.L8006C900: -/* 06D500 8006C900 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D504 8006C904 0C02DDF5 */ jal func_800B77D4 -/* 06D508 8006C908 00000000 */ nop -.L8006C90C: -/* 06D50C 8006C90C 3C04800E */ lui $a0, %hi(D_800DD404+3) # $a0, 0x800e -/* 06D510 8006C910 9084D407 */ lbu $a0, %lo(D_800DD404+3)($a0) -/* 06D514 8006C914 0C000340 */ jal func_80000D00 -/* 06D518 8006C918 00000000 */ nop -/* 06D51C 8006C91C 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D520 8006C920 0C02D7DE */ jal func_800B5F78 -/* 06D524 8006C924 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D528 8006C928 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D52C 8006C92C 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06D530 8006C930 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 -/* 06D534 8006C934 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06D538 8006C938 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06D53C 8006C93C 0C0315BF */ jal func_800C56FC -/* 06D540 8006C940 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D544 8006C944 0C031588 */ jal func_800C5620 -/* 06D548 8006C948 24040004 */ li $a0, 4 -/* 06D54C 8006C94C 0C031525 */ jal func_800C5494 -/* 06D550 8006C950 24040004 */ li $a0, 4 -/* 06D554 8006C954 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D558 8006C958 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D55C 8006C95C 0C030125 */ jal func_800C0494 -/* 06D560 8006C960 00000000 */ nop -/* 06D564 8006C964 10400007 */ beqz $v0, .L8006C984 -/* 06D568 8006C968 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D56C 8006C96C 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06D570 8006C970 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 -/* 06D574 8006C974 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06D578 8006C978 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06D57C 8006C97C 0C030172 */ jal render_fade_transition -/* 06D580 8006C980 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -.L8006C984: -/* 06D584 8006C984 3C0C8012 */ lui $t4, %hi(D_80123520) # $t4, 0x8012 -/* 06D588 8006C988 8D8C3520 */ lw $t4, %lo(D_80123520)($t4) -/* 06D58C 8006C98C 00000000 */ nop -/* 06D590 8006C990 29810008 */ slti $at, $t4, 8 -/* 06D594 8006C994 14200009 */ bnez $at, .L8006C9BC -/* 06D598 8006C998 00000000 */ nop -/* 06D59C 8006C99C 0C01BD32 */ jal func_8006F4C8 -/* 06D5A0 8006C9A0 00000000 */ nop -/* 06D5A4 8006C9A4 10400005 */ beqz $v0, .L8006C9BC -/* 06D5A8 8006C9A8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D5AC 8006C9AC 3C05800E */ lui $a1, %hi(D_800DD404) # $a1, 0x800e -/* 06D5B0 8006C9B0 8CA5D404 */ lw $a1, %lo(D_800DD404)($a1) -/* 06D5B4 8006C9B4 0C020A7E */ jal func_800829F8 -/* 06D5B8 8006C9B8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -.L8006C9BC: -/* 06D5BC 8006C9BC 3C028012 */ lui $v0, %hi(D_801211F8) # $v0, 0x8012 -/* 06D5C0 8006C9C0 8C4211F8 */ lw $v0, %lo(D_801211F8)($v0) -/* 06D5C4 8006C9C4 3C018012 */ lui $at, %hi(D_801211F8) # $at, 0x8012 -/* 06D5C8 8006C9C8 244D0008 */ addiu $t5, $v0, 8 -/* 06D5CC 8006C9CC AC2D11F8 */ sw $t5, %lo(D_801211F8)($at) -/* 06D5D0 8006C9D0 3C0EE900 */ lui $t6, 0xe900 -/* 06D5D4 8006C9D4 AC4E0000 */ sw $t6, ($v0) -/* 06D5D8 8006C9D8 AC400004 */ sw $zero, 4($v0) -/* 06D5DC 8006C9DC 3C028012 */ lui $v0, %hi(D_801211F8) # $v0, 0x8012 -/* 06D5E0 8006C9E0 8C4211F8 */ lw $v0, %lo(D_801211F8)($v0) -/* 06D5E4 8006C9E4 3C18B800 */ lui $t8, 0xb800 -/* 06D5E8 8006C9E8 244F0008 */ addiu $t7, $v0, 8 -/* 06D5EC 8006C9EC AC2F11F8 */ sw $t7, %lo(D_801211F8)($at) -/* 06D5F0 8006C9F0 AC400004 */ sw $zero, 4($v0) -/* 06D5F4 8006C9F4 0C019984 */ jal func_80066610 -/* 06D5F8 8006C9F8 AC580000 */ sw $t8, ($v0) -/* 06D5FC 8006C9FC 3C19800E */ lui $t9, %hi(D_800DD3F0) # $t9, 0x800e -/* 06D600 8006CA00 8339D3F0 */ lb $t9, %lo(D_800DD3F0)($t9) -/* 06D604 8006CA04 24010001 */ li $at, 1 -/* 06D608 8006CA08 1321000A */ beq $t9, $at, .L8006CA34 -/* 06D60C 8006CA0C 3C08800E */ lui $t0, %hi(D_800DD38C) # $t0, 0x800e -/* 06D610 8006CA10 8108D38C */ lb $t0, %lo(D_800DD38C)($t0) -/* 06D614 8006CA14 00000000 */ nop -/* 06D618 8006CA18 15000008 */ bnez $t0, .L8006CA3C -/* 06D61C 8006CA1C 00000000 */ nop -/* 06D620 8006CA20 0C01DE95 */ jal func_80077A54 -/* 06D624 8006CA24 00000000 */ nop -/* 06D628 8006CA28 3C01800E */ lui $at, %hi(D_800DD380) # $at, 0x800e -/* 06D62C 8006CA2C 10000003 */ b .L8006CA3C -/* 06D630 8006CA30 AC22D380 */ sw $v0, %lo(D_800DD380)($at) -.L8006CA34: -/* 06D634 8006CA34 3C01800E */ lui $at, %hi(D_800DD3F0) # $at, 0x800e -/* 06D638 8006CA38 A020D3F0 */ sb $zero, %lo(D_800DD3F0)($at) -.L8006CA3C: -/* 06D63C 8006CA3C 3C01800E */ lui $at, %hi(D_800DD38C) # $at, 0x800e -/* 06D640 8006CA40 0C01C466 */ jal func_80071198 -/* 06D644 8006CA44 A020D38C */ sb $zero, %lo(D_800DD38C)($at) -/* 06D648 8006CA48 3C098012 */ lui $t1, %hi(gIsPaused) # $t1, 0x8012 -/* 06D64C 8006CA4C 81293515 */ lb $t1, %lo(gIsPaused)($t1) -/* 06D650 8006CA50 00000000 */ nop -/* 06D654 8006CA54 15200003 */ bnez $t1, .L8006CA64 -/* 06D658 8006CA58 00000000 */ nop -/* 06D65C 8006CA5C 0C019948 */ jal func_80066520 -/* 06D660 8006CA60 00000000 */ nop -.L8006CA64: -/* 06D664 8006CA64 3C0A800E */ lui $t2, %hi(D_800DD3F0) # $t2, 0x800e -/* 06D668 8006CA68 814AD3F0 */ lb $t2, %lo(D_800DD3F0)($t2) -/* 06D66C 8006CA6C 24010002 */ li $at, 2 -/* 06D670 8006CA70 1541000D */ bne $t2, $at, .L8006CAA8 -/* 06D674 8006CA74 3C0B8000 */ lui $t3, %hi(osTvType) # $t3, 0x8000 -/* 06D678 8006CA78 8D6B0300 */ lw $t3, %lo(osTvType)($t3) -/* 06D67C 8006CA7C 3C020002 */ lui $v0, (0x00025800 >> 16) # lui $v0, 2 -/* 06D680 8006CA80 15600003 */ bnez $t3, .L8006CA90 -/* 06D684 8006CA84 34425800 */ ori $v0, (0x00025800 & 0xFFFF) # ori $v0, $v0, 0x5800 -/* 06D688 8006CA88 3C020002 */ lui $v0, (0x00029400 >> 16) # lui $v0, 2 -/* 06D68C 8006CA8C 34429400 */ ori $v0, (0x00029400 & 0xFFFF) # ori $v0, $v0, 0x9400 -.L8006CA90: -/* 06D690 8006CA90 3C058012 */ lui $a1, %hi(gVideoCurrFramebuffer) # $a1, 0x8012 -/* 06D694 8006CA94 8CA562D4 */ lw $a1, %lo(gVideoCurrFramebuffer)($a1) -/* 06D698 8006CA98 3C048012 */ lui $a0, %hi(gVideoLastFramebuffer) # $a0, 0x8012 -/* 06D69C 8006CA9C 8C8462D8 */ lw $a0, %lo(gVideoLastFramebuffer)($a0) -/* 06D6A0 8006CAA0 0C01C2C1 */ jal func_80070B04 -/* 06D6A4 8006CAA4 00A23021 */ addu $a2, $a1, $v0 -.L8006CAA8: -/* 06D6A8 8006CAA8 3C04800E */ lui $a0, %hi(D_800DD380) # $a0, 0x800e -/* 06D6AC 8006CAAC 8C84D380 */ lw $a0, %lo(D_800DD380)($a0) -/* 06D6B0 8006CAB0 0C01EA63 */ jal func_8007A98C -/* 06D6B4 8006CAB4 00000000 */ nop -/* 06D6B8 8006CAB8 3C01800E */ lui $at, %hi(D_800DD404) # $at, 0x800e -/* 06D6BC 8006CABC AC22D404 */ sw $v0, %lo(D_800DD404)($at) -/* 06D6C0 8006CAC0 28410007 */ slti $at, $v0, 7 -/* 06D6C4 8006CAC4 14200003 */ bnez $at, .L8006CAD4 -/* 06D6C8 8006CAC8 240C0006 */ li $t4, 6 -/* 06D6CC 8006CACC 3C01800E */ lui $at, %hi(D_800DD404) # $at, 0x800e -/* 06D6D0 8006CAD0 AC2CD404 */ sw $t4, %lo(D_800DD404)($at) -.L8006CAD4: -/* 06D6D4 8006CAD4 8FBF0014 */ lw $ra, 0x14($sp) -/* 06D6D8 8006CAD8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 06D6DC 8006CADC 03E00008 */ jr $ra -/* 06D6E0 8006CAE0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/thread3_main.s b/asm/non_matchings/unknown_06B2B0/thread3_main.s deleted file mode 100644 index 0571cb97..00000000 --- a/asm/non_matchings/unknown_06B2B0/thread3_main.s +++ /dev/null @@ -1,49 +0,0 @@ -glabel thread3_main -/* 06CF30 8006C330 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 06CF34 8006C334 AFBF0014 */ sw $ra, 0x14($sp) -/* 06CF38 8006C338 0C01B0F8 */ jal func_8006C3E0 -/* 06CF3C 8006C33C AFA40018 */ sw $a0, 0x18($sp) -/* 06CF40 8006C340 3C04800E */ lui $a0, %hi(D_800DD37C) # $a0, 0x800e -/* 06CF44 8006C344 8C84D37C */ lw $a0, %lo(D_800DD37C)($a0) -/* 06CF48 8006C348 0C01A871 */ jal func_8006A1C4 -/* 06CF4C 8006C34C 00002825 */ move $a1, $zero -/* 06CF50 8006C350 3C01800E */ lui $at, %hi(D_800DD37C) # $at, 0x800e -/* 06CF54 8006C354 AC22D37C */ sw $v0, %lo(D_800DD37C)($at) -/* 06CF58 8006C358 3C018012 */ lui $at, %hi(D_80123520) # $at, 0x8012 -/* 06CF5C 8006C35C AC203520 */ sw $zero, %lo(D_80123520)($at) -/* 06CF60 8006C360 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 -/* 06CF64 8006C364 240EFFFF */ li $t6, -1 -/* 06CF68 8006C368 AC2E34EC */ sw $t6, %lo(D_801234EC)($at) -.L8006C36C: -/* 06CF6C 8006C36C 0C01BAB0 */ jal func_8006EAC0 -/* 06CF70 8006C370 00000000 */ nop -/* 06CF74 8006C374 1040000E */ beqz $v0, .L8006C3B0 -/* 06CF78 8006C378 00000000 */ nop -/* 06CF7C 8006C37C 0C01C9C2 */ jal func_80072708 -/* 06CF80 8006C380 00000000 */ nop -/* 06CF84 8006C384 0C000A9D */ jal audioStopThread -/* 06CF88 8006C388 00000000 */ nop -/* 06CF8C 8006C38C 0C031CEF */ jal stop_thread30 -/* 06CF90 8006C390 00000000 */ nop -/* 06CF94 8006C394 3C0400AA */ lui $a0, (0x00AAAA82 >> 16) # lui $a0, 0xaa -/* 06CF98 8006C398 0C033490 */ jal __osSpSetStatus -/* 06CF9C 8006C39C 3484AA82 */ ori $a0, (0x00AAAA82 & 0xFFFF) # ori $a0, $a0, 0xaa82 -/* 06CFA0 8006C3A0 0C033494 */ jal func_800CD250 -/* 06CFA4 8006C3A4 240401D6 */ li $a0, 470 -.L8006C3A8: -/* 06CFA8 8006C3A8 1000FFFF */ b .L8006C3A8 -/* 06CFAC 8006C3AC 00000000 */ nop -.L8006C3B0: -/* 06CFB0 8006C3B0 0C01B183 */ jal render -/* 06CFB4 8006C3B4 00000000 */ nop -/* 06CFB8 8006C3B8 0C01978C */ jal func_80065E30 -/* 06CFBC 8006C3BC 00000000 */ nop -/* 06CFC0 8006C3C0 1000FFEA */ b .L8006C36C -/* 06CFC4 8006C3C4 00000000 */ nop -/* 06CFC8 8006C3C8 00000000 */ nop -/* 06CFCC 8006C3CC 00000000 */ nop -/* 06CFD0 8006C3D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 06CFD4 8006C3D4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 06CFD8 8006C3D8 03E00008 */ jr $ra -/* 06CFDC 8006C3DC 00000000 */ nop - diff --git a/asm/non_matchings/unknown_077C50/func_80077268.s b/asm/non_matchings/unknown_077C50/func_80077268.s index 996dfddc..dedc6018 100644 --- a/asm/non_matchings/unknown_077C50/func_80077268.s +++ b/asm/non_matchings/unknown_077C50/func_80077268.s @@ -45,7 +45,7 @@ glabel func_80077268 /* 077F14 80077314 AFA60028 */ sw $a2, 0x28($sp) /* 077F18 80077318 AFA50024 */ sw $a1, 0x24($sp) /* 077F1C 8007731C AFAA0020 */ sw $t2, 0x20($sp) -/* 077F20 80077320 0C019884 */ jal func_80066210 +/* 077F20 80077320 0C019884 */ jal get_viewport_count /* 077F24 80077324 AFA40030 */ sw $a0, 0x30($sp) /* 077F28 80077328 8FA40030 */ lw $a0, 0x30($sp) /* 077F2C 8007732C 8FAA0020 */ lw $t2, 0x20($sp) diff --git a/asm/non_matchings/unknown_077C50/func_80077050.s b/asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s similarity index 98% rename from asm/non_matchings/unknown_077C50/func_80077050.s rename to asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s index 6a2f6c25..16f7ec2c 100644 --- a/asm/non_matchings/unknown_077C50/func_80077050.s +++ b/asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s @@ -1,4 +1,4 @@ -glabel func_80077050 +glabel render_borders_for_multiplayer /* 077C50 80077050 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 077C54 80077054 AFBF001C */ sw $ra, 0x1c($sp) /* 077C58 80077058 AFB00018 */ sw $s0, 0x18($sp) @@ -27,7 +27,7 @@ glabel func_80077050 /* 077CB4 800770B4 000451C2 */ srl $t2, $a0, 7 /* 077CB8 800770B8 AFAA0024 */ sw $t2, 0x24($sp) /* 077CBC 800770BC AFA50038 */ sw $a1, 0x38($sp) -/* 077CC0 800770C0 0C019884 */ jal func_80066210 +/* 077CC0 800770C0 0C019884 */ jal get_viewport_count /* 077CC4 800770C4 AFA40034 */ sw $a0, 0x34($sp) /* 077CC8 800770C8 8FA80034 */ lw $t0, 0x34($sp) /* 077CCC 800770CC 8FA90038 */ lw $t1, 0x38($sp) diff --git a/asm/non_matchings/unknown_078050/func_80077A54.s b/asm/non_matchings/unknown_078050/func_80077A54.s deleted file mode 100644 index 82c62bd9..00000000 --- a/asm/non_matchings/unknown_078050/func_80077A54.s +++ /dev/null @@ -1,65 +0,0 @@ -glabel func_80077A54 -/* 078654 80077A54 3C0E800E */ lui $t6, %hi(D_800DE4DC) # $t6, 0x800e -/* 078658 80077A58 8DCEE4DC */ lw $t6, %lo(D_800DE4DC)($t6) -/* 07865C 80077A5C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 078660 80077A60 AFBF0014 */ sw $ra, 0x14($sp) -/* 078664 80077A64 15C00003 */ bnez $t6, .L80077A74 -/* 078668 80077A68 AFA0001C */ sw $zero, 0x1c($sp) -/* 07866C 80077A6C 1000000B */ b .L80077A9C -/* 078670 80077A70 00001025 */ move $v0, $zero -.L80077A74: -/* 078674 80077A74 3C048012 */ lui $a0, %hi(D_80125ED8) # $a0, 0x8012 -/* 078678 80077A78 24845ED8 */ addiu $a0, %lo(D_80125ED8) # addiu $a0, $a0, 0x5ed8 -/* 07867C 80077A7C 27A5001C */ addiu $a1, $sp, 0x1c -/* 078680 80077A80 0C0322EC */ jal osRecvMesg -/* 078684 80077A84 24060001 */ li $a2, 1 -/* 078688 80077A88 8FAF001C */ lw $t7, 0x1c($sp) -/* 07868C 80077A8C 3C01800E */ lui $at, %hi(D_800DE4DC) # $at, 0x800e -/* 078690 80077A90 AC20E4DC */ sw $zero, %lo(D_800DE4DC)($at) -/* 078694 80077A94 8DE20004 */ lw $v0, 4($t7) -/* 078698 80077A98 00000000 */ nop -.L80077A9C: -/* 07869C 80077A9C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0786A0 80077AA0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0786A4 80077AA4 03E00008 */ jr $ra -/* 0786A8 80077AA8 00000000 */ nop - -/* 0786AC 80077AAC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0786B0 80077AB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0786B4 80077AB4 AFA40018 */ sw $a0, 0x18($sp) -/* 0786B8 80077AB8 AFA5001C */ sw $a1, 0x1c($sp) -/* 0786BC 80077ABC 0C034628 */ jal osWritebackDCacheAll -/* 0786C0 80077AC0 AFA60020 */ sw $a2, 0x20($sp) -/* 0786C4 80077AC4 0C034634 */ jal func_800D18D0 -/* 0786C8 80077AC8 00000000 */ nop -/* 0786CC 80077ACC 304E0100 */ andi $t6, $v0, 0x100 -/* 0786D0 80077AD0 11C00007 */ beqz $t6, .L80077AF0 -/* 0786D4 80077AD4 8FA7001C */ lw $a3, 0x1c($sp) -.L80077AD8: -/* 0786D8 80077AD8 0C034634 */ jal func_800D18D0 -/* 0786DC 80077ADC 00000000 */ nop -/* 0786E0 80077AE0 304F0100 */ andi $t7, $v0, 0x100 -/* 0786E4 80077AE4 15E0FFFC */ bnez $t7, .L80077AD8 -/* 0786E8 80077AE8 00000000 */ nop -/* 0786EC 80077AEC 8FA7001C */ lw $a3, 0x1c($sp) -.L80077AF0: -/* 0786F0 80077AF0 8FA40018 */ lw $a0, 0x18($sp) -/* 0786F4 80077AF4 0C034638 */ jal osDpSetNextBuffer -/* 0786F8 80077AF8 000737C3 */ sra $a2, $a3, 0x1f -/* 0786FC 80077AFC 0C034634 */ jal func_800D18D0 -/* 078700 80077B00 00000000 */ nop -/* 078704 80077B04 30590100 */ andi $t9, $v0, 0x100 -/* 078708 80077B08 13200007 */ beqz $t9, .L80077B28 -/* 07870C 80077B0C 8FBF0014 */ lw $ra, 0x14($sp) -.L80077B10: -/* 078710 80077B10 0C034634 */ jal func_800D18D0 -/* 078714 80077B14 00000000 */ nop -/* 078718 80077B18 30480100 */ andi $t0, $v0, 0x100 -/* 07871C 80077B1C 1500FFFC */ bnez $t0, .L80077B10 -/* 078720 80077B20 00000000 */ nop -/* 078724 80077B24 8FBF0014 */ lw $ra, 0x14($sp) -.L80077B28: -/* 078728 80077B28 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07872C 80077B2C 03E00008 */ jr $ra -/* 078730 80077B30 00000000 */ nop - diff --git a/asm/non_matchings/unknown_078050/func_80077B5C.s b/asm/non_matchings/unknown_078050/func_80077B5C.s deleted file mode 100644 index 69407966..00000000 --- a/asm/non_matchings/unknown_078050/func_80077B5C.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_80077B5C -/* 07875C 80077B5C 00047200 */ sll $t6, $a0, 8 -/* 078760 80077B60 0005C0C0 */ sll $t8, $a1, 3 -/* 078764 80077B64 331907C0 */ andi $t9, $t8, 0x7c0 -/* 078768 80077B68 31CFF800 */ andi $t7, $t6, 0xf800 -/* 07876C 80077B6C 00064883 */ sra $t1, $a2, 2 -/* 078770 80077B70 312A003E */ andi $t2, $t1, 0x3e -/* 078774 80077B74 01F94025 */ or $t0, $t7, $t9 -/* 078778 80077B78 010A5825 */ or $t3, $t0, $t2 -/* 07877C 80077B7C 356C0001 */ ori $t4, $t3, 1 -/* 078780 80077B80 3C03800E */ lui $v1, %hi(D_800DE4BC) # $v1, 0x800e -/* 078784 80077B84 2463E4BC */ addiu $v1, %lo(D_800DE4BC) # addiu $v1, $v1, -0x1b44 -/* 078788 80077B88 000C6C00 */ sll $t5, $t4, 0x10 -/* 07878C 80077B8C AC6C0000 */ sw $t4, ($v1) -/* 078790 80077B90 018D7025 */ or $t6, $t4, $t5 -/* 078794 80077B94 03E00008 */ jr $ra -/* 078798 80077B98 AC6E0000 */ sw $t6, ($v1) - diff --git a/asm/non_matchings/unknown_078050/func_80078054.s b/asm/non_matchings/unknown_078050/func_80078054.s deleted file mode 100644 index 5c48012d..00000000 --- a/asm/non_matchings/unknown_078050/func_80078054.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_80078054 -/* 078C54 80078054 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 078C58 80078058 AFBF0014 */ sw $ra, 0x14($sp) -/* 078C5C 8007805C 0C01E948 */ jal get_video_width_and_height_as_s32 -/* 078C60 80078060 AFA40018 */ sw $a0, 0x18($sp) -/* 078C64 80078064 8FA50018 */ lw $a1, 0x18($sp) -/* 078C68 80078068 2458FFFF */ addiu $t8, $v0, -1 -/* 078C6C 8007806C 8CA30000 */ lw $v1, ($a1) -/* 078C70 80078070 33190FFF */ andi $t9, $t8, 0xfff -/* 078C74 80078074 246E0008 */ addiu $t6, $v1, 8 -/* 078C78 80078078 3C01FF10 */ lui $at, 0xff10 -/* 078C7C 8007807C ACAE0000 */ sw $t6, ($a1) -/* 078C80 80078080 03214025 */ or $t0, $t9, $at -/* 078C84 80078084 3C090100 */ lui $t1, 0x100 -/* 078C88 80078088 AC690004 */ sw $t1, 4($v1) -/* 078C8C 8007808C AC680000 */ sw $t0, ($v1) -/* 078C90 80078090 8CA30000 */ lw $v1, ($a1) -/* 078C94 80078094 3C0BFE00 */ lui $t3, 0xfe00 -/* 078C98 80078098 246A0008 */ addiu $t2, $v1, 8 -/* 078C9C 8007809C ACAA0000 */ sw $t2, ($a1) -/* 078CA0 800780A0 3C0C0200 */ lui $t4, 0x200 -/* 078CA4 800780A4 AC6C0004 */ sw $t4, 4($v1) -/* 078CA8 800780A8 AC6B0000 */ sw $t3, ($v1) -/* 078CAC 800780AC 8CA30000 */ lw $v1, ($a1) -/* 078CB0 800780B0 3C0F800E */ lui $t7, %hi(D_800DE520) # $t7, 0x800e -/* 078CB4 800780B4 246D0008 */ addiu $t5, $v1, 8 -/* 078CB8 800780B8 ACAD0000 */ sw $t5, ($a1) -/* 078CBC 800780BC 25EFE520 */ addiu $t7, %lo(D_800DE520) # addiu $t7, $t7, -0x1ae0 -/* 078CC0 800780C0 3C0E0600 */ lui $t6, 0x600 -/* 078CC4 800780C4 AC6E0000 */ sw $t6, ($v1) -/* 078CC8 800780C8 AC6F0004 */ sw $t7, 4($v1) -/* 078CCC 800780CC 8FBF0014 */ lw $ra, 0x14($sp) -/* 078CD0 800780D0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 078CD4 800780D4 03E00008 */ jr $ra -/* 078CD8 800780D8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_078050/func_800780DC.s b/asm/non_matchings/unknown_078050/func_800780DC.s deleted file mode 100644 index 6c349b17..00000000 --- a/asm/non_matchings/unknown_078050/func_800780DC.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_800780DC -/* 078CDC 800780DC 8C830000 */ lw $v1, ($a0) -/* 078CE0 800780E0 3C18800E */ lui $t8, %hi(D_800DE4E0) # $t8, 0x800e -/* 078CE4 800780E4 246E0008 */ addiu $t6, $v1, 8 -/* 078CE8 800780E8 AC8E0000 */ sw $t6, ($a0) -/* 078CEC 800780EC 2718E4E0 */ addiu $t8, %lo(D_800DE4E0) # addiu $t8, $t8, -0x1b20 -/* 078CF0 800780F0 3C0F0600 */ lui $t7, 0x600 -/* 078CF4 800780F4 AC6F0000 */ sw $t7, ($v1) -/* 078CF8 800780F8 03E00008 */ jr $ra -/* 078CFC 800780FC AC780004 */ sw $t8, 4($v1) - diff --git a/asm/non_matchings/unknown_078050/func_80078190.s b/asm/non_matchings/unknown_078050/func_80078190.s index e18fff4a..9b5aad22 100644 --- a/asm/non_matchings/unknown_078050/func_80078190.s +++ b/asm/non_matchings/unknown_078050/func_80078190.s @@ -396,39 +396,3 @@ glabel func_80078190 /* 07936C 8007876C 8FB00018 */ lw $s0, 0x18($sp) /* 079370 80078770 03E00008 */ jr $ra /* 079374 80078774 27BD0040 */ addiu $sp, $sp, 0x40 - -/* 079378 80078778 00047E03 */ sra $t7, $a0, 0x18 -/* 07937C 8007877C 3C018012 */ lui $at, %hi(D_80125F30) # $at, 0x8012 -/* 079380 80078780 A02F5F30 */ sb $t7, %lo(D_80125F30)($at) -/* 079384 80078784 3C018012 */ lui $at, %hi(D_80125F31) # $at, 0x8012 -/* 079388 80078788 0004CC03 */ sra $t9, $a0, 0x10 -/* 07938C 8007878C A0395F31 */ sb $t9, %lo(D_80125F31)($at) -/* 079390 80078790 3C018012 */ lui $at, %hi(D_80125F32) # $at, 0x8012 -/* 079394 80078794 00044A03 */ sra $t1, $a0, 8 -/* 079398 80078798 A0295F32 */ sb $t1, %lo(D_80125F32)($at) -/* 07939C 8007879C 3C018012 */ lui $at, %hi(D_80125F33) # $at, 0x8012 -/* 0793A0 800787A0 A0245F33 */ sb $a0, %lo(D_80125F33)($at) -/* 0793A4 800787A4 3C018012 */ lui $at, %hi(D_80125F34) # $at, 0x8012 -/* 0793A8 800787A8 00056603 */ sra $t4, $a1, 0x18 -/* 0793AC 800787AC A02C5F34 */ sb $t4, %lo(D_80125F34)($at) -/* 0793B0 800787B0 3C018012 */ lui $at, %hi(D_80125F35) # $at, 0x8012 -/* 0793B4 800787B4 00057403 */ sra $t6, $a1, 0x10 -/* 0793B8 800787B8 A02E5F35 */ sb $t6, %lo(D_80125F35)($at) -/* 0793BC 800787BC 3C018012 */ lui $at, %hi(D_80125F36) # $at, 0x8012 -/* 0793C0 800787C0 0005C203 */ sra $t8, $a1, 8 -/* 0793C4 800787C4 A0385F36 */ sb $t8, %lo(D_80125F36)($at) -/* 0793C8 800787C8 3C018012 */ lui $at, %hi(D_80125F37) # $at, 0x8012 -/* 0793CC 800787CC A0255F37 */ sb $a1, %lo(D_80125F37)($at) -/* 0793D0 800787D0 3C018012 */ lui $at, %hi(D_80125F38) # $at, 0x8012 -/* 0793D4 800787D4 AC265F38 */ sw $a2, %lo(D_80125F38)($at) -/* 0793D8 800787D8 3C018012 */ lui $at, %hi(D_80125F3C) # $at, 0x8012 -/* 0793DC 800787DC AC275F3C */ sw $a3, %lo(D_80125F3C)($at) -/* 0793E0 800787E0 3C01800E */ lui $at, %hi(D_800DE4CC) # $at, 0x800e -/* 0793E4 800787E4 24080001 */ li $t0, 1 -/* 0793E8 800787E8 03E00008 */ jr $ra -/* 0793EC 800787EC AC28E4CC */ sw $t0, %lo(D_800DE4CC)($at) - -/* 0793F0 800787F0 3C01800E */ lui $at, %hi(D_800DE4CC) # $at, 0x800e -/* 0793F4 800787F4 03E00008 */ jr $ra -/* 0793F8 800787F8 AC20E4CC */ sw $zero, %lo(D_800DE4CC)($at) - diff --git a/asm/non_matchings/unknown_078050/func_80077B9C.s b/asm/non_matchings/unknown_078050/render_background.s similarity index 99% rename from asm/non_matchings/unknown_078050/func_80077B9C.s rename to asm/non_matchings/unknown_078050/render_background.s index 5c4004b3..43213722 100644 --- a/asm/non_matchings/unknown_078050/func_80077B9C.s +++ b/asm/non_matchings/unknown_078050/render_background.s @@ -1,4 +1,4 @@ -glabel func_80077B9C +glabel render_background /* 07879C 80077B9C 27BDFF60 */ addiu $sp, $sp, -0xa0 /* 0787A0 80077BA0 AFBF0024 */ sw $ra, 0x24($sp) /* 0787A4 80077BA4 AFB00020 */ sw $s0, 0x20($sp) diff --git a/asm/non_matchings/unknown_078050/func_80078AB8.s b/asm/non_matchings/unknown_078050/render_textured_rectangle.s similarity index 99% rename from asm/non_matchings/unknown_078050/func_80078AB8.s rename to asm/non_matchings/unknown_078050/render_textured_rectangle.s index 70fcc6d0..19081e13 100644 --- a/asm/non_matchings/unknown_078050/func_80078AB8.s +++ b/asm/non_matchings/unknown_078050/render_textured_rectangle.s @@ -1,4 +1,4 @@ -glabel func_80078AB8 +glabel render_textured_rectangle /* 0796B8 80078AB8 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 0796BC 80078ABC AFBF002C */ sw $ra, 0x2c($sp) /* 0796C0 80078AC0 AFBE0028 */ sw $fp, 0x28($sp) diff --git a/asm/non_matchings/unknown_079F50/func_8007957C.s b/asm/non_matchings/unknown_079F50/func_8007957C.s deleted file mode 100644 index 52d55ce9..00000000 --- a/asm/non_matchings/unknown_079F50/func_8007957C.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_8007957C -/* 07A17C 8007957C 03E00008 */ jr $ra -/* 07A180 80079580 24820040 */ addiu $v0, $a0, 0x40 - -/* 07A184 80079584 3C01800E */ lui $at, %hi(D_800DE740) # $at, 0x800e -/* 07A188 80079588 C424E740 */ lwc1 $f4, %lo(D_800DE740)($at) -/* 07A18C 8007958C 3C01800E */ lui $at, %hi(D_800DE748) # $at, 0x800e -/* 07A190 80079590 E4840000 */ swc1 $f4, ($a0) -/* 07A194 80079594 C426E748 */ lwc1 $f6, %lo(D_800DE748)($at) -/* 07A198 80079598 3C01800E */ lui $at, %hi(D_800DE74C) # $at, 0x800e -/* 07A19C 8007959C E4A60000 */ swc1 $f6, ($a1) -/* 07A1A0 800795A0 C428E74C */ lwc1 $f8, %lo(D_800DE74C)($at) -/* 07A1A4 800795A4 03E00008 */ jr $ra -/* 07A1A8 800795A8 E4C80000 */ swc1 $f8, ($a2) - diff --git a/asm/non_matchings/unknown_079F50/func_80079760.s b/asm/non_matchings/unknown_079F50/func_80079760.s deleted file mode 100644 index 68c548e5..00000000 --- a/asm/non_matchings/unknown_079F50/func_80079760.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel func_80079760 -/* 07A360 80079760 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 07A364 80079764 AFBF0014 */ sw $ra, 0x14($sp) -/* 07A368 80079768 AFA00020 */ sw $zero, 0x20($sp) -/* 07A36C 8007976C AFA0001C */ sw $zero, 0x1c($sp) -/* 07A370 80079770 8C8E0264 */ lw $t6, 0x264($a0) -/* 07A374 80079774 240F0001 */ li $t7, 1 -/* 07A378 80079778 11C00002 */ beqz $t6, .L80079784 -/* 07A37C 8007977C 27A50020 */ addiu $a1, $sp, 0x20 -/* 07A380 80079780 AC8F0284 */ sw $t7, 0x284($a0) -.L80079784: -/* 07A384 80079784 8C980284 */ lw $t8, 0x284($a0) -/* 07A388 80079788 27A6001C */ addiu $a2, $sp, 0x1c -/* 07A38C 8007978C 13000009 */ beqz $t8, .L800797B4 -/* 07A390 80079790 00000000 */ nop -/* 07A394 80079794 8C990274 */ lw $t9, 0x274($a0) -/* 07A398 80079798 00000000 */ nop -/* 07A39C 8007979C 13200005 */ beqz $t9, .L800797B4 -/* 07A3A0 800797A0 00000000 */ nop -/* 07A3A4 800797A4 0C01E820 */ jal func_8007A080 -/* 07A3A8 800797A8 00000000 */ nop -/* 07A3AC 800797AC 10000013 */ b .L800797FC -/* 07A3B0 800797B0 8FBF0014 */ lw $ra, 0x14($sp) -.L800797B4: -/* 07A3B4 800797B4 8C880274 */ lw $t0, 0x274($a0) -/* 07A3B8 800797B8 8C8B0278 */ lw $t3, 0x278($a0) -/* 07A3BC 800797BC 2D090001 */ sltiu $t1, $t0, 1 -/* 07A3C0 800797C0 00095040 */ sll $t2, $t1, 1 -/* 07A3C4 800797C4 2D6C0001 */ sltiu $t4, $t3, 1 -/* 07A3C8 800797C8 014C3825 */ or $a3, $t2, $t4 -/* 07A3CC 800797CC AFA70024 */ sw $a3, 0x24($sp) -/* 07A3D0 800797D0 0C01E835 */ jal __scSchedule -/* 07A3D4 800797D4 AFA40028 */ sw $a0, 0x28($sp) -/* 07A3D8 800797D8 8FA70024 */ lw $a3, 0x24($sp) -/* 07A3DC 800797DC 8FA40028 */ lw $a0, 0x28($sp) -/* 07A3E0 800797E0 10470006 */ beq $v0, $a3, .L800797FC -/* 07A3E4 800797E4 8FBF0014 */ lw $ra, 0x14($sp) -/* 07A3E8 800797E8 8FA50020 */ lw $a1, 0x20($sp) -/* 07A3EC 800797EC 8FA6001C */ lw $a2, 0x1c($sp) -/* 07A3F0 800797F0 0C01E7EA */ jal __scExec -/* 07A3F4 800797F4 00000000 */ nop -/* 07A3F8 800797F8 8FBF0014 */ lw $ra, 0x14($sp) -.L800797FC: -/* 07A3FC 800797FC 27BD0028 */ addiu $sp, $sp, 0x28 -/* 07A400 80079800 03E00008 */ jr $ra -/* 07A404 80079804 00000000 */ nop - -/* 07A408 80079808 03E00008 */ jr $ra -/* 07A40C 8007980C 00000000 */ nop - -/* 07A410 80079810 03E00008 */ jr $ra -/* 07A414 80079814 00000000 */ nop - diff --git a/asm/non_matchings/unknown_079F50/func_8007A080.s b/asm/non_matchings/unknown_079F50/func_8007A080.s deleted file mode 100644 index c07daf3d..00000000 --- a/asm/non_matchings/unknown_079F50/func_8007A080.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel func_8007A080 -/* 07AC80 8007A080 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 07AC84 8007A084 AFBF0014 */ sw $ra, 0x14($sp) -/* 07AC88 8007A088 8C820274 */ lw $v0, 0x274($a0) -/* 07AC8C 8007A08C 24010001 */ li $at, 1 -/* 07AC90 8007A090 8C4E0010 */ lw $t6, 0x10($v0) -/* 07AC94 8007A094 00000000 */ nop -/* 07AC98 8007A098 15C1000B */ bne $t6, $at, .L8007A0C8 -/* 07AC9C 8007A09C 8FBF0014 */ lw $ra, 0x14($sp) -/* 07ACA0 8007A0A0 8C4F0004 */ lw $t7, 4($v0) -/* 07ACA4 8007A0A4 00000000 */ nop -/* 07ACA8 8007A0A8 35F80010 */ ori $t8, $t7, 0x10 -/* 07ACAC 8007A0AC 0C03486C */ jal osGetTime -/* 07ACB0 8007A0B0 AC580004 */ sw $t8, 4($v0) -/* 07ACB4 8007A0B4 3C018012 */ lui $at, %hi(D_8012611C) # $at, 0x8012 -/* 07ACB8 8007A0B8 AC226118 */ sw $v0, %lo(D_80126118)($at) -/* 07ACBC 8007A0BC 0C034890 */ jal osSpTaskYield -/* 07ACC0 8007A0C0 AC23611C */ sw $v1, %lo(D_8012611C)($at) -/* 07ACC4 8007A0C4 8FBF0014 */ lw $ra, 0x14($sp) -.L8007A0C8: -/* 07ACC8 8007A0C8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 07ACCC 8007A0CC 03E00008 */ jr $ra -/* 07ACD0 8007A0D0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_079F50/func_8007A2D0.s b/asm/non_matchings/unknown_079F50/func_8007A2D0.s deleted file mode 100644 index ab50d7da..00000000 --- a/asm/non_matchings/unknown_079F50/func_8007A2D0.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_8007A2D0 -/* 07AED0 8007A2D0 00057880 */ sll $t7, $a1, 2 -/* 07AED4 8007A2D4 8C830000 */ lw $v1, ($a0) -/* 07AED8 8007A2D8 31F8FFFF */ andi $t8, $t7, 0xffff -/* 07AEDC 8007A2DC 0018CA00 */ sll $t9, $t8, 8 -/* 07AEE0 8007A2E0 3C01BC00 */ lui $at, 0xbc00 -/* 07AEE4 8007A2E4 03214025 */ or $t0, $t9, $at -/* 07AEE8 8007A2E8 3C018000 */ lui $at, 0x8000 -/* 07AEEC 8007A2EC 246E0008 */ addiu $t6, $v1, 8 -/* 07AEF0 8007A2F0 AC8E0000 */ sw $t6, ($a0) -/* 07AEF4 8007A2F4 00C15021 */ addu $t2, $a2, $at -/* 07AEF8 8007A2F8 35090006 */ ori $t1, $t0, 6 -/* 07AEFC 8007A2FC AC690000 */ sw $t1, ($v1) -/* 07AF00 8007A300 03E00008 */ jr $ra -/* 07AF04 8007A304 AC6A0004 */ sw $t2, 4($v1) - -/* 07AF08 8007A308 00000000 */ nop -/* 07AF0C 8007A30C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s b/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s index cb3ad7c2..6829b672 100644 --- a/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s +++ b/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s @@ -4,7 +4,7 @@ glabel func_8009ECF0 /* 09F8F8 8009ECF8 AFB20020 */ sw $s2, 0x20($sp) /* 09F8FC 8009ECFC AFB1001C */ sw $s1, 0x1c($sp) /* 09F900 8009ED00 AFB00018 */ sw $s0, 0x18($sp) -/* 09F904 8009ED04 0C019884 */ jal func_80066210 +/* 09F904 8009ED04 0C019884 */ jal get_viewport_count /* 09F908 8009ED08 AFA40028 */ sw $a0, 0x28($sp) /* 09F90C 8009ED0C 3C038012 */ lui $v1, %hi(D_80126D0C) # $v1, 0x8012 /* 09F910 8009ED10 24636D0C */ addiu $v1, %lo(D_80126D0C) # addiu $v1, $v1, 0x6d0c diff --git a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s index abc55436..77f26038 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s @@ -588,7 +588,7 @@ glabel func_800A01A0 /* 0A1644 800A0A44 1000001E */ b .L800A0AC0 /* 0A1648 800A0A48 00000000 */ nop .L800A0A4C: -/* 0A164C 800A0A4C 0C019884 */ jal func_80066210 +/* 0A164C 800A0A4C 0C019884 */ jal get_viewport_count /* 0A1650 800A0A50 00000000 */ nop /* 0A1654 800A0A54 14400017 */ bnez $v0, .L800A0AB4 /* 0A1658 800A0A58 8FA40028 */ lw $a0, 0x28($sp) @@ -646,7 +646,7 @@ glabel func_800A01A0 /* 0A1718 800A0B18 AFA90010 */ sw $t1, 0x10($sp) /* 0A171C 800A0B1C 24846CFC */ addiu $a0, %lo(D_80126CFC) # addiu $a0, $a0, 0x6cfc /* 0A1720 800A0B20 00003025 */ move $a2, $zero -/* 0A1724 800A0B24 0C01E2AE */ jal func_80078AB8 +/* 0A1724 800A0B24 0C01E2AE */ jal render_textured_rectangle /* 0A1728 800A0B28 00003825 */ move $a3, $zero .L800A0B2C: /* 0A172C 800A0B2C 3C0B8012 */ lui $t3, %hi(D_80126CFC) # $t3, 0x8012 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A26C8.s b/asm/non_matchings/unknown_09F8F0/func_800A26C8.s index 26edad5d..352eaf03 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A26C8.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A26C8.s @@ -2,7 +2,7 @@ glabel func_800A26C8 /* 0A32C8 800A26C8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0A32CC 800A26CC AFBF0014 */ sw $ra, 0x14($sp) /* 0A32D0 800A26D0 AFA40020 */ sw $a0, 0x20($sp) -/* 0A32D4 800A26D4 0C019884 */ jal func_80066210 +/* 0A32D4 800A26D4 0C019884 */ jal get_viewport_count /* 0A32D8 800A26D8 AFA50024 */ sw $a1, 0x24($sp) /* 0A32DC 800A26DC 14400024 */ bnez $v0, .L800A2770 /* 0A32E0 800A26E0 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s b/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s index 3c664d16..2ba55d0e 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s @@ -217,7 +217,7 @@ glabel func_800A3CE4 /* 0A4C30 800A4030 24010004 */ li $at, 4 /* 0A4C34 800A4034 15C1001A */ bne $t6, $at, .L800A40A0 /* 0A4C38 800A4038 8FB9005C */ lw $t9, 0x5c($sp) -/* 0A4C3C 800A403C 0C019884 */ jal func_80066210 +/* 0A4C3C 800A403C 0C019884 */ jal get_viewport_count /* 0A4C40 800A4040 00000000 */ nop /* 0A4C44 800A4044 28410002 */ slti $at, $v0, 2 /* 0A4C48 800A4048 14200006 */ bnez $at, .L800A4064 diff --git a/asm/non_matchings/unknown_09F8F0/func_800A8474.s b/asm/non_matchings/unknown_09F8F0/func_800A8474.s index 09d10dfa..4ab434a8 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A8474.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A8474.s @@ -1271,7 +1271,7 @@ glabel func_800A8474 /* 0AA2FC 800A96FC AFAF0010 */ sw $t7, 0x10($sp) /* 0AA300 800A9700 02802025 */ move $a0, $s4 /* 0AA304 800A9704 00003025 */ move $a2, $zero -/* 0AA308 800A9708 0C01E2AE */ jal func_80078AB8 +/* 0AA308 800A9708 0C01E2AE */ jal render_textured_rectangle /* 0AA30C 800A970C 00003825 */ move $a3, $zero .L800A9710: /* 0AA310 800A9710 8E8B0000 */ lw $t3, ($s4) diff --git a/asm/non_matchings/unknown_09F8F0/func_800AA600.s b/asm/non_matchings/unknown_09F8F0/func_800AA600.s index 5c448e23..07132549 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800AA600.s +++ b/asm/non_matchings/unknown_09F8F0/func_800AA600.s @@ -320,7 +320,7 @@ glabel func_800AA600 /* 0AB694 800AAA94 27A50088 */ addiu $a1, $sp, 0x88 /* 0AB698 800AAA98 00003025 */ move $a2, $zero /* 0AB69C 800AAA9C 00003825 */ move $a3, $zero -/* 0AB6A0 800AAAA0 0C01E2AE */ jal func_80078AB8 +/* 0AB6A0 800AAAA0 0C01E2AE */ jal render_textured_rectangle /* 0AB6A4 800AAAA4 AFA3001C */ sw $v1, 0x1c($sp) /* 0AB6A8 800AAAA8 1000000A */ b .L800AAAD4 /* 0AB6AC 800AAAAC 00000000 */ nop @@ -332,7 +332,7 @@ glabel func_800AA600 /* 0AB6C0 800AAAC0 AFAD0010 */ sw $t5, 0x10($sp) /* 0AB6C4 800AAAC4 24846CFC */ addiu $a0, %lo(D_80126CFC) # addiu $a0, $a0, 0x6cfc /* 0AB6C8 800AAAC8 AFAE0018 */ sw $t6, 0x18($sp) -/* 0AB6CC 800AAACC 0C01E2AE */ jal func_80078AB8 +/* 0AB6CC 800AAACC 0C01E2AE */ jal render_textured_rectangle /* 0AB6D0 800AAAD0 AFA3001C */ sw $v1, 0x1c($sp) .L800AAAD4: /* 0AB6D4 800AAAD4 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 @@ -480,7 +480,7 @@ glabel func_800AA600 /* 0AB8FC 800AACFC AFAB0014 */ sw $t3, 0x14($sp) /* 0AB900 800AAD00 27A50058 */ addiu $a1, $sp, 0x58 /* 0AB904 800AAD04 00003025 */ move $a2, $zero -/* 0AB908 800AAD08 0C01E2AE */ jal func_80078AB8 +/* 0AB908 800AAD08 0C01E2AE */ jal render_textured_rectangle /* 0AB90C 800AAD0C 00003825 */ move $a3, $zero /* 0AB910 800AAD10 3C048012 */ lui $a0, %hi(D_80126CFC) # $a0, 0x8012 /* 0AB914 800AAD14 0C01ECF4 */ jal func_8007B3D0 diff --git a/asm/non_matchings/unknown_09F8F0/func_800ACA20.s b/asm/non_matchings/unknown_09F8F0/func_800ACA20.s index 6a3d762c..7d1719bc 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800ACA20.s +++ b/asm/non_matchings/unknown_09F8F0/func_800ACA20.s @@ -29,7 +29,7 @@ glabel func_800ACA20 /* 0AD68C 800ACA8C 00000000 */ nop /* 0AD690 800ACA90 17200122 */ bnez $t9, .L800ACF1C /* 0AD694 800ACA94 8FBF005C */ lw $ra, 0x5c($sp) -/* 0AD698 800ACA98 0C019884 */ jal func_80066210 +/* 0AD698 800ACA98 0C019884 */ jal get_viewport_count /* 0AD69C 800ACA9C 00000000 */ nop /* 0AD6A0 800ACAA0 1440011D */ bnez $v0, .L800ACF18 /* 0AD6A4 800ACAA4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 diff --git a/asm/non_matchings/unknown_09F8F0/func_800AD40C.s b/asm/non_matchings/unknown_09F8F0/func_800AD40C.s index 52dbc821..56252cb2 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800AD40C.s +++ b/asm/non_matchings/unknown_09F8F0/func_800AD40C.s @@ -4,7 +4,7 @@ glabel func_800AD40C /* 0AE014 800AD414 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0AE018 800AD418 11C00020 */ beqz $t6, .L800AD49C /* 0AE01C 800AD41C AFBF001C */ sw $ra, 0x1c($sp) -/* 0AE020 800AD420 0C019884 */ jal func_80066210 +/* 0AE020 800AD420 0C019884 */ jal get_viewport_count /* 0AE024 800AD424 00000000 */ nop /* 0AE028 800AD428 1440001C */ bnez $v0, .L800AD49C /* 0AE02C 800AD42C 00002025 */ move $a0, $zero diff --git a/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s b/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s index e1f97c3b..60553068 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s +++ b/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s @@ -5,7 +5,7 @@ glabel func_800AD4B8 /* 0AE0C4 800AD4C4 00809025 */ move $s2, $a0 /* 0AE0C8 800AD4C8 AFB30020 */ sw $s3, 0x20($sp) /* 0AE0CC 800AD4CC AFB10018 */ sw $s1, 0x18($sp) -/* 0AE0D0 800AD4D0 0C019884 */ jal func_80066210 +/* 0AE0D0 800AD4D0 0C019884 */ jal get_viewport_count /* 0AE0D4 800AD4D4 AFB00014 */ sw $s0, 0x14($sp) /* 0AE0D8 800AD4D8 14400058 */ bnez $v0, .L800AD63C /* 0AE0DC 800AD4DC 3C0E800E */ lui $t6, %hi(D_800E2C5C) # $t6, 0x800e diff --git a/asm/non_matchings/waves/func_800BA8E4.s b/asm/non_matchings/waves/func_800BA8E4.s index be804801..62edbff3 100644 --- a/asm/non_matchings/waves/func_800BA8E4.s +++ b/asm/non_matchings/waves/func_800BA8E4.s @@ -103,7 +103,7 @@ glabel func_800BA8E4 /* 0BB66C 800BAA6C 31CF000F */ andi $t7, $t6, 0xf /* 0BB670 800BAA70 15E00010 */ bnez $t7, .L800BAAB4 /* 0BB674 800BAA74 27FF9FC8 */ addiu $ra, %lo(D_80129FC8) # addiu $ra, $ra, -0x6038 -/* 0BB678 800BAA78 0C019884 */ jal func_80066210 +/* 0BB678 800BAA78 0C019884 */ jal get_viewport_count /* 0BB67C 800BAA7C 00000000 */ nop /* 0BB680 800BAA80 3C1F8013 */ lui $ra, %hi(D_80129FC8) # $ra, 0x8013 /* 0BB684 800BAA84 1C40000B */ bgtz $v0, .L800BAAB4 diff --git a/include/structs.h b/include/structs.h index 49a1df9e..a109c376 100644 --- a/include/structs.h +++ b/include/structs.h @@ -64,9 +64,8 @@ typedef struct TextureHeader { // 0x40 = U clamp flag. 0 = Wrap, 1 = Clamp // 0x80 = V clamp flag. 0 = Wrap, 1 = Clamp /* 0x08 */ s16 ciPaletteOffset; - /* 0x0A */ u8 unkA; - /* 0x0B */ u8 numberOfCommands; // initialized in RAM; Number of commands in the texture display list. (Usually 0x07) - /* 0x0C */ s32* cmd; // initialized in RAM; Pointer to texture display list. + /* 0x0A */ s16 numberOfCommands; // initialized in RAM; Number of commands in the texture display list. (Usually 0x07) + /* 0x0C */ s32* cmd; // initialized in RAM; Pointer to texture display list. /* 0x10 */ u8 unk10; /* 0x11 */ u8 unk11; /* 0x12 */ u16 numOfTextures; // For animated textures, static textures are just 0x01. Each texture has it's own header. @@ -82,6 +81,13 @@ typedef struct TextureHeader { /* 0x1F */ u8 unk1F; } TextureHeader; +// Probably not unqiue to the boot menu. +typedef struct DrawTexture { + TextureHeader *texture; // Pointer to texture to draw. + s16 xOffset; // Offset from the center of the screen. + s16 yOffset; // Offset from the center of the screen. +} DrawTexture; + /* Size: 0x18 bytes */ typedef struct Racer { /* 0x00 */ u32 trophy_points; @@ -157,7 +163,7 @@ typedef struct Settings { /* 0x06BA */ u16 courseTimes[3][65]; } Settings; -/* Size: 0xC8 bytes */ +/* Size: 0xC4 bytes */ typedef struct LevelHeader { /* 0x00 */ s8 world; /* 0x01 */ u8 unk1; @@ -190,8 +196,8 @@ typedef struct LevelHeader { /* 0x4A */ u8 unk4A; /* 0x4B */ s8 laps; /* 0x4C */ s8 race_type; - /* 0x4D */ u8 vehicle; - /* 0x4E */ u8 available_vehicles; + /* 0x4D */ s8 vehicle; + /* 0x4E */ s8 available_vehicles; /* 0x4F */ u8 unk4F[3]; @@ -222,7 +228,8 @@ typedef struct LevelHeader { /* 0xAA */ u16 unkAA; /* 0xAC */ s8 *unkAC; - /* 0xB0 */ u8 padB0[0x3]; + /* 0xB0 */ s16 unkB0; + /* 0xB2 */ u8 unkB2; /* 0xB3 */ u8 unkB3; /* 0xB3 */ u8 unkB4; /* 0xB3 */ u8 unkB5; @@ -236,7 +243,6 @@ typedef struct LevelHeader { /* 0xC1 */ u8 unkC1; /* 0xC2 */ u8 unkC2; /* 0xC3 */ u8 unkC3; - /* 0xC4 */ u8 padC4[0x4]; } LevelHeader; /* Size: 0x50 bytes */ diff --git a/asm/non_matchings/unknown_079F50/func_80079B44.s b/lib/asm/non_matchings/sched/__scHandleRSP.s similarity index 99% rename from asm/non_matchings/unknown_079F50/func_80079B44.s rename to lib/asm/non_matchings/sched/__scHandleRSP.s index 414613e5..c19d3d20 100644 --- a/asm/non_matchings/unknown_079F50/func_80079B44.s +++ b/lib/asm/non_matchings/sched/__scHandleRSP.s @@ -3,7 +3,7 @@ glabel D_800E796C .float 468750.0 .text -glabel func_80079B44 +glabel __scHandleRSP /* 07A744 80079B44 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 07A748 80079B48 AFBF001C */ sw $ra, 0x1c($sp) /* 07A74C 80079B4C AFB00018 */ sw $s0, 0x18($sp) @@ -149,4 +149,3 @@ glabel func_80079B44 /* 07A950 80079D50 8FB00018 */ lw $s0, 0x18($sp) /* 07A954 80079D54 03E00008 */ jr $ra /* 07A958 80079D58 27BD0038 */ addiu $sp, $sp, 0x38 - diff --git a/asm/non_matchings/unknown_079F50/__scMain.s b/lib/asm/non_matchings/sched/__scMain.s similarity index 99% rename from asm/non_matchings/unknown_079F50/__scMain.s rename to lib/asm/non_matchings/sched/__scMain.s index 66cab200..dbdb3495 100644 --- a/asm/non_matchings/unknown_079F50/__scMain.s +++ b/lib/asm/non_matchings/sched/__scMain.s @@ -45,7 +45,7 @@ glabel __scMain /* 07A250 80079650 1000FFEC */ b .L80079604 /* 07A254 80079654 02602025 */ move $a0, $s3 .L80079658: -/* 07A258 80079658 0C01E6D1 */ jal func_80079B44 +/* 07A258 80079658 0C01E6D1 */ jal __scHandleRSP /* 07A25C 8007965C 02402025 */ move $a0, $s2 /* 07A260 80079660 1000FFE8 */ b .L80079604 /* 07A264 80079664 02602025 */ move $a0, $s3 diff --git a/asm/non_matchings/unknown_079F50/__scSchedule.s b/lib/asm/non_matchings/sched/__scSchedule.s similarity index 100% rename from asm/non_matchings/unknown_079F50/__scSchedule.s rename to lib/asm/non_matchings/sched/__scSchedule.s diff --git a/asm/non_matchings/unknown_079F50/__scTaskComplete.s b/lib/asm/non_matchings/sched/__scTaskComplete.s similarity index 100% rename from asm/non_matchings/unknown_079F50/__scTaskComplete.s rename to lib/asm/non_matchings/sched/__scTaskComplete.s diff --git a/asm/non_matchings/unknown_079F50/func_80079818.s b/lib/asm/non_matchings/sched/func_80079818.s similarity index 100% rename from asm/non_matchings/unknown_079F50/func_80079818.s rename to lib/asm/non_matchings/sched/func_80079818.s diff --git a/src/osCreatePiManager.c b/lib/src/mips1/os/osCreatePiManager.c similarity index 92% rename from src/osCreatePiManager.c rename to lib/src/mips1/os/osCreatePiManager.c index 7d92ad9f..ebcba87b 100644 --- a/src/osCreatePiManager.c +++ b/lib/src/mips1/os/osCreatePiManager.c @@ -1,9 +1,9 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x800C6000 */ -// osCreatePiManager is compiled with -mips1, so it belongs in the source folder I think. - -#include "osCreatePiManager.h" +#include "types.h" +#include "libultra_internal.h" +#include "stacks.h" extern OSMesgQueue piAccessQueue; //piAccessQueue extern u32 __osPiAccessQueueEnabled; //__osPiAccessQueueEnabled diff --git a/src/unknown_079F50.c b/lib/src/mips1/sc/sched.c similarity index 74% rename from src/unknown_079F50.c rename to lib/src/mips1/sc/sched.c index 12ca8e90..b48aec28 100644 --- a/src/unknown_079F50.c +++ b/lib/src/mips1/sc/sched.c @@ -1,10 +1,9 @@ /* The comment below is needed for this file to be picked up by generate_ld */ /* RAM_POS: 0x80079350 */ -#include "unknown_079F50.h" - #include "types.h" #include "macros.h" +#include "f3ddkr.h" #include "libultra_internal.h" #define OS_SC_RETRACE_MSG 1 @@ -57,6 +56,7 @@ typedef struct { OSScTask *curRDPTask; u32 frameCount; s32 doAudio; + s32 unk284; } OSSched; typedef struct{ @@ -70,10 +70,10 @@ typedef struct{ s32 D_800DE730[] = { 0, 0 }; s32 D_800DE738[] = { 0, 8 }; -s32 D_800DE740 = 0; // Currently unknown, might be a different type. -s32 D_800DE744 = 0; // Currently unknown, might be a different type. -s32 D_800DE748 = 0; // Currently unknown, might be a different type. -s32 D_800DE74C = 0; // Currently unknown, might be a different type. +f32 D_800DE740 = 0; +f32 D_800DE744 = 0; +f32 D_800DE748 = 0; +f32 D_800DE74C = 0; s32 D_800DE750 = 0; // Currently unknown, might be a different type. u32 D_800DE754 = 0; @@ -109,20 +109,20 @@ const char D_800E7958[] = "\tdata_size\t\t= %u\n"; /*********************************/ -extern OSViMode osViModeTable[];//osViModeTable; +extern OSViMode osViModeTable[]; /************ .bss ************/ s32 D_80126110; s32 D_80126114; -s32 D_80126118; -s32 D_8012611C; +OSTime D_80126118; s32 D_80126120; s32 D_80126124; s32 D_80126128[18]; /*******************************/ +void func_8007A080(OSSched *sc); void __scMain(void); void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp); @@ -201,77 +201,46 @@ OSMesgQueue *osScGetCmdQ(OSSched *sc){ return &sc->cmdQ; } -GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_8007957C.s") -GLOBAL_ASM("asm/non_matchings/unknown_079F50/__scMain.s") -GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079760.s") -GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079818.s") - - -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_80079B44.s") -#else -extern f32 D_800DE740; -extern f32 D_800DE744; -extern f32 D_800DE748; -extern f32 D_800DE74C; -extern u32 D_800DE750; -extern u32 D_80126124; -void func_80079B44(OSSched *sc){ - OSScTask *t, *sp = 0, *dp = 0; - s32 state; - u32 delta; - f32 tmp1; - - - //assert(sc->curRSPTask); - - t = sc->curRSPTask; - sc->curRSPTask = 0; - - if (t->list.t.type == 2) { - D_80126124 = osGetCount(); - delta = D_80126124 - D_80126120; - tmp1 = (f32) delta; - if(delta < 0){ - tmp1 += 4294967296.0; - } - D_800DE74C = tmp1*60.0f/468750.0f; - D_800DE744 = D_800DE744 + D_800DE74C; - if(D_800DE740 < D_800DE74C){ - D_800DE740 = D_800DE74C; - } - if(D_800DE750%1000 == 1 || D_800DE750%1000 == 2){ - D_800DE748 = D_800DE744/500.0f; - D_800DE744 = 0.0f; - D_800DE740 = 0.0f; - } - } - if(t->state & 0x10){ - if(osSpTaskYielded(&(t->list))){ - t->state |= 0x20; - if ((t->flags & 0x07) == -3) { - - /* push the task back on the list */ - t->next = sc->gfxListHead; - sc->gfxListHead = t; - if (sc->gfxListTail == 0) - sc->gfxListTail = t; - } - } - else{ - t->state &= -3; - } - } - else { - t->state &= -3; - __scTaskComplete(sc, t); - } - - state = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0); - if ( (__scSchedule (sc, &sp, &dp, state)) != state) - __scExec(sc, sp, dp); +s32 func_8007957C(s32 arg0) { + return arg0 + 0x40; } -#endif + +// Unused. +void func_80079584(f32 *arg0, f32 *arg1, f32 *arg2) { + *arg0 = D_800DE740; + *arg1 = D_800DE748; + *arg2 = D_800DE74C; +} + +GLOBAL_ASM("lib/asm/non_matchings/sched/__scMain.s") + +void func_80079760(OSSched *sc) { + s32 sp24; + s32 sp20; + s32 sp1C; + + sp20 = 0; + sp1C = 0; + if (sc->audioListHead != 0) { + sc->unk284 = 1; + } + if ((sc->unk284 != 0) && (sc->curRSPTask != 0)) { + func_8007A080(sc); + } else { + sp24 = ((sc->curRSPTask == 0) << 1) | (sc->curRDPTask == 0); + if (__scSchedule(sc, &sp20, &sp1C, sp24) != sp24) { + __scExec(sc, sp20, sp1C); + } + } +} + +void dummy_80079808() { +} +void dummy_80079810() { +} + +GLOBAL_ASM("lib/asm/non_matchings/sched/func_80079818.s") +GLOBAL_ASM("lib/asm/non_matchings/sched/__scHandleRSP.s") void __scHandleRDP(OSSched *sc){ OSScTask *t, *sp = 0, *dp = 0; @@ -306,9 +275,7 @@ OSScTask *__scTaskReady(OSScTask *t){ return 0; } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_079F50/__scTaskComplete.s") -#else +#if 0 s32 __scTaskComplete(OSSched *sc, OSScTask *t) { int rv; int firsttime = 1; @@ -343,6 +310,8 @@ s32 __scTaskComplete(OSSched *sc, OSScTask *t) { return 0; } +#else +GLOBAL_ASM("lib/asm/non_matchings/sched/__scTaskComplete.s") #endif void __scAppendList(OSSched *sc, OSScTask *t) { @@ -375,8 +344,7 @@ void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp){ D_80126120 = osGetCount(); } - //sp->state &= ~(OS_SC_YIELD | OS_SC_YIELDED); - sp->state &= -49; + sp->state &= ~0x30; osSpTaskLoad(&sp->list); osSpTaskStartGo(&sp->list); D_800DE754 = 0; @@ -388,25 +356,22 @@ void __scExec(OSSched *sc, OSScTask *sp, OSScTask *dp){ } if (dp && (dp != sp)) { - osDpSetNextBuffer(dp->list.t.output_buff, - *dp->list.t.output_buff_size); + osDpSetNextBuffer(dp->list.t.output_buff, *dp->list.t.output_buff_size); sc->curRDPTask = dp; } } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_8007A080.s") -#else -extern OSTime D_80126118; void func_8007A080(OSSched *sc) { if (sc->curRSPTask->list.t.type == M_GFXTASK) { - - //sc->curRSPTask->state |= OS_SC_YIELD; sc->curRSPTask->state |= 0x10; - D_80126118 = osGetTime(); //TODO extra lui + D_80126118 = osGetTime(); osSpTaskYield(); } } -#endif -GLOBAL_ASM("asm/non_matchings/unknown_079F50/__scSchedule.s") -GLOBAL_ASM("asm/non_matchings/unknown_079F50/func_8007A2D0.s") + +GLOBAL_ASM("lib/asm/non_matchings/sched/__scSchedule.s") + +// This might need to be moved into it's own file. +void set_rsp_segment(Gfx **dlist, s32 segment, s32 base) { + gSPSegment((*dlist)++, segment, base + 0x80000000) +} diff --git a/src/camera.c b/src/camera.c index 50b37641..6444d3ba 100644 --- a/src/camera.c +++ b/src/camera.c @@ -90,7 +90,7 @@ u8 D_800DD2F8[8] = { s32 D_800DD300 = 0; // Currently unknown, might be a different type. -s16 D_800DD304 = -1; +s16 gButtonMask = 0xFFFF; /*******************************/ @@ -121,7 +121,7 @@ typedef struct unk80120AC0 { } unk80120AC0; unk80120AC0 D_80120AC0[8]; -s32 D_80120CE0; +s32 gNumberOfViewports; s32 D_80120CE4; s32 D_80120CE8; s32 D_80120CEC; @@ -209,7 +209,7 @@ void func_80065EA0(void) { D_80120CE4 = 0; D_80120D1C = 0; D_80120D20[0] = 0; - D_80120CE0 = 0; + gNumberOfViewports = 0; D_80120D0C = 0; D_80120D18 = 0; D_80120D15 = 0; @@ -271,8 +271,8 @@ s32* func_80066204(void) { return &D_801210A0; } -s32 func_80066210(void) { - return D_80120CE0; +s32 get_viewport_count(void) { + return gNumberOfViewports; } s32 func_80066220(void) { @@ -374,21 +374,21 @@ void func_80066520(void) { s32 func_8006652C(s32 arg0) { if ((arg0 >= 0) && (arg0 < 4)) { - D_80120CE0 = arg0; + gNumberOfViewports = arg0; } else { - D_80120CE0 = 0; + gNumberOfViewports = 0; } - switch(D_80120CE0) { - case 0: + switch(gNumberOfViewports) { + case VIEWPORTS_COUNT_1_PLAYER: D_80120CE8 = 1; break; - case 1: + case VIEWPORTS_COUNT_2_PLAYERS: D_80120CE8 = 2; break; - case 2: + case VIEWPORTS_COUNT_3_PLAYERS: D_80120CE8 = 3; break; - case 3: + case VIEWPORTS_COUNT_4_PLAYERS: D_80120CE8 = 4; break; } @@ -573,7 +573,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { u32 phi_t5; u32 phi_t4; - if (func_8000E184() && !D_80120CE0) { + if (func_8000E184() && !gNumberOfViewports) { D_80120CE4 = 1; } widthAndHeight = get_video_width_and_height_as_s32(); @@ -593,8 +593,8 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { return; } temp_t1 = widthAndHeight & 0xFFFF; - if (D_80120CE0 == 2) { - D_80120CE0 = 3; + if (gNumberOfViewports == VIEWPORTS_COUNT_3_PLAYERS) { + gNumberOfViewports = VIEWPORTS_COUNT_4_PLAYERS; } temp_a2 = temp_t1 >> 1; sp54 = temp_a2; @@ -603,8 +603,8 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { sp58 = 0x91; } - switch(D_80120CE0) { - case 0: + switch(gNumberOfViewports) { + case VIEWPORTS_COUNT_1_PLAYER: phi_t3 = sp58; if (osTvType == 0) { phi_t3 = sp58 - 0x12; @@ -612,7 +612,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { gDPSetScissor((*dlist)++, SCISSOR_INTERLACE, 0, 0, temp_t1, temp_t0) sp4C = temp_a2; break; - case 1: + case VIEWPORTS_COUNT_2_PLAYERS: if (D_80120CE4 == 0) { temp_v0_6 = temp_t0 >> 2; phi_t3 = temp_v0_6; @@ -626,7 +626,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { } sp4C = temp_a2; break; - case 2: + case VIEWPORTS_COUNT_3_PLAYERS: if (D_80120CE4 == 0) { gDPSetScissor((*dlist)++, SCISSOR_INTERLACE, 0, 0, temp_a2 - (temp_t1 >> 8), temp_t0) phi_a1 = temp_t1 >> 2; @@ -637,7 +637,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { sp4C = phi_a1; phi_t3 = sp58; break; - case 3: + case VIEWPORTS_COUNT_4_PLAYERS: sp58 = sp58 >> 1; sp54 = temp_a2 >> 1; switch(D_80120CE4) { @@ -789,7 +789,7 @@ void func_80069E14(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { f32 temp_f2; s32 i; - for (i = 0; i <= D_80120CE0; i++) { + for (i = 0; i <= gNumberOfViewports; i++) { temp_f0 = arg0 - D_80120AC0[i].x_position; temp_f2 = arg1 - D_80120AC0[i].y_position; temp_f14 = arg2 - D_80120AC0[i].z_position; @@ -892,6 +892,7 @@ s32 func_8006A624(s8 arg0) { return arg0; } -void func_8006A6A0(void) { - D_800DD304 = 0; +// Used when anti-cheat/anti-tamper has failed in func_8006A6B0() +void disable_button_mask(void) { + gButtonMask = 0; } diff --git a/src/camera.h b/src/camera.h index f6580a20..79b17c3f 100644 --- a/src/camera.h +++ b/src/camera.h @@ -23,6 +23,13 @@ #define CAMERA_MAX_FOV 90.0f #define CAMERA_SCALE 1.0f +enum ViewportCount { + VIEWPORTS_COUNT_1_PLAYER, + VIEWPORTS_COUNT_2_PLAYERS, + VIEWPORTS_COUNT_3_PLAYERS, + VIEWPORTS_COUNT_4_PLAYERS +}; + extern s8 D_800DD060; /* Size: 0x34 bytes. */ @@ -62,6 +69,6 @@ extern u8 D_800DD2F8[8]; extern s32 D_800DD300; -extern s16 D_800DD304; +extern s16 gButtonMask; #endif \ No newline at end of file diff --git a/src/menu.c b/src/menu.c index 2f7d26fd..351ee3ba 100644 --- a/src/menu.c +++ b/src/menu.c @@ -378,7 +378,7 @@ s16 D_800DF7C4[12] = { 0x58, 0x59, 0x5A, -1 }; -MenuBootDrawTexture D_800DF7DC[12] = { +DrawTexture D_800DF7DC[12] = { { NULL, -75, -32 }, { NULL, -60, -32 }, { NULL, -45, -32 }, @@ -1843,7 +1843,7 @@ void func_800828B8(void) { Settings *settings; settings = get_settings(); - func_8006B224(&num, &j); + get_number_of_levels_and_worlds(&num, &j); for(i = 0; i < num; i++) { settings->courseFlagsPtr[i] = 0; @@ -2030,9 +2030,9 @@ s32 menu_options_loop(s32 arg0) { // Change language s32 temp_v0 = get_language(); if ((temp_v0 >> 0x1F) == 0 && temp_v0 == 0) { - set_language(2); // Sets language to french + set_language(FRENCH); } else { - set_language(0); // Sets language to english + set_language(ENGLISH); } func_80001D04(0xEB, 0); } else if (D_800DF460 == 1 && analogX != 0) { @@ -2570,7 +2570,7 @@ s32 menu_boot_loop(s32 arg0) { } if (phi_v1 < 0x12C) { - func_80078AB8(&D_801263A0, &D_800DF7DC, 0xA0, phi_v1, 0xFF, 0xFF, 0xFF, 0xFF); + render_textured_rectangle(&D_801263A0, &D_800DF7DC, 0xA0, phi_v1, 0xFF, 0xFF, 0xFF, 0xFF); func_8007B3D0(&D_801263A0); } @@ -3156,7 +3156,7 @@ void menu_file_select_init(void) { s32 sp38; s32 sp34; - func_8006B224(&sp38, &sp34); + get_number_of_levels_and_worlds(&sp38, &sp34); func_8009C674(D_800E0398); func_8009C8A4(D_800E03A4); func_8007FFEC(6); @@ -4557,16 +4557,16 @@ s64 func_8009EB08(void) { * 0 = English, 1 = German, 2 = French, 3 = Japanese */ s32 get_language(void) { - s32 language = 0; // English + s32 language = ENGLISH; switch(D_80126448 & 0xC) { - case 4: // German - language = 1; + case 4: + language = GERMAN; break; - case 8: // French - language = 2; + case 8: + language = FRENCH; break; - case 12: // "Japanese" - language = 3; + case 12: + language = JAPANESE; break; } return language; @@ -4581,13 +4581,13 @@ void set_language(s32 language) { s64 langFlag = 0; // English switch(language) { - case 1: // German + case GERMAN: langFlag = 4; break; - case 2: // French + case FRENCH: langFlag = 8; break; - case 3: // "Japanese" + case JAPANESE: langFlag = 12; break; } diff --git a/src/menu.h b/src/menu.h index 69dcfb31..146a34ce 100644 --- a/src/menu.h +++ b/src/menu.h @@ -70,6 +70,13 @@ typedef enum MENU_ID { MENU_CAUTION } MENU_ID; +enum Language { + ENGLISH, + GERMAN, + FRENCH, + JAPANESE +}; + extern s8 D_800DF450; extern f32 D_800DF454; extern s32 D_800DF458; @@ -186,20 +193,13 @@ extern s32 D_800DF7AC; // Version text shown on the title screen? See 1:15 in https://www.youtube.com/watch?v=OHSCLcA74ao. extern char gVersionDisplayText[20]; -// Probably not unqiue to the boot menu. -typedef struct MenuBootDrawTexture { - u32* texture; // Pointer to texture to draw. TODO: Make structure for texture header. - s16 xOffset; // Offset from the center of the screen. - s16 yOffset; // Offset from the center of the screen. -} MenuBootDrawTexture; - extern s16 D_800DF7C4[12]; -extern MenuBootDrawTexture D_800DF7DC[12]; +extern DrawTexture D_800DF7DC[12]; /* Size: 0x30 bytes */ typedef struct unk800DF83C { - char* unk0; // Pointer to ascii text. + char *unk0; // Pointer to ascii text. f32 unk4; f32 unk8; f32 unkC; diff --git a/src/osCreatePiManager.h b/src/osCreatePiManager.h deleted file mode 100644 index 908eb021..00000000 --- a/src/osCreatePiManager.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _PI_MANAGER_H_ -#define _PI_MANAGER_H_ - -#include "types.h" -#include "libultra_internal.h" -#include "stacks.h" - -extern OSThread piThread; -extern s32 D_8012A9B0[64]; -extern OSMesgQueue piEventQueue; -extern OSMesg piEventBuf[2]; - -void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt); - -#endif \ No newline at end of file diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index ddaf2fe1..ee9b3aab 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -30,12 +30,15 @@ const char D_800E7148[] = "Swapping\n"; /************ .data ************/ -s8 D_800DD310 = 0; // Currently unknown, might be a different type. +s8 *D_800DD310 = NULL; // Currently unknown, might be a different type. s8 D_800DD314 = -1; s8 D_800DD318 = 0; s32 D_800DD31C = 0; -s32 D_800DD320 = 0x585E; -s32 D_800DD324 = 0x154; + +// Updated automatically from calc_func_checksums.py +s32 gFunc80068158Checksum = 0x585E; +s32 gFunc80068158Length = 0x154; + s16 D_800DD328 = 0; s16 D_800DD32C = 0; @@ -113,21 +116,25 @@ extern s32 D_800DFD94; /************ .bss ************/ -s32 *D_80121160; +s32 *gTempAssetTable; s32 D_80121164; LevelHeader *gCurrentLevelHeader; -s32 D_8012116C; -s32 D_80121170; -s32 D_80121174; +u8 **D_8012116C; +s32 gNumberOfLevelHeaders; +s32 gNumberOfWorlds; -// Unknown size -typedef struct unk80121178 { +s8 *D_80121178; + +/* Size: 6 bytes */ +typedef struct unk8012117C { s8 unk0; s8 unk1; s8 unk2; - s8 pad3[3]; -} unk80121178; -unk80121178 *D_80121178[2]; + s8 unk3; + s16 unk4; +} unk8012117C; +unk8012117C *D_8012117C; + s32 D_80121180[16]; s32 D_801211C0[2]; @@ -207,18 +214,135 @@ void func_80004A60(s32, s32); void menu_init(s32); void render(void); +Settings *get_settings(void); +s32 is_in_tracks_mode(void); +s32 *load_asset_section_from_rom(s32); +void load_asset_to_address(u32, s32*, s32, s32); +void free_from_memory_pool(s32*); + +#ifdef NON_MATCHING + +void func_80068158(Gfx**, s32, s32, s32, s32); + +void func_8006A6B0(void) { + s32 i, count, checksumCount; + s32 temp; + u8* sp44; + sp44 = allocate_from_main_pool_safe(sizeof(LevelHeader), COLOR_TAG_YELLOW); + gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); + for(i = 0; i < 16; i++) { + D_80121180[i] = 0; + } + gNumberOfLevelHeaders = 0; + while (gTempAssetTable[gNumberOfLevelHeaders] != -1) { + gNumberOfLevelHeaders++; + } + gNumberOfLevelHeaders--; + D_8012117C = allocate_from_main_pool_safe(gNumberOfLevelHeaders * sizeof(unk8012117C), COLOR_TAG_YELLOW); + gNumberOfWorlds = -1; + gCurrentLevelHeader = sp44; + for (i = 0; i < gNumberOfLevelHeaders; i++) { + load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, gTempAssetTable[i], sizeof(LevelHeader)); + if (gNumberOfWorlds < gCurrentLevelHeader->world) { + gNumberOfWorlds = gCurrentLevelHeader->world; + } + if (gCurrentLevelHeader->race_type >= 0 && gCurrentLevelHeader->race_type < 16) { + D_80121180[gCurrentLevelHeader->race_type]++; + } + D_8012117C[i].unk0 = gCurrentLevelHeader->world; + D_8012117C[i].unk1 = gCurrentLevelHeader->race_type; + D_8012117C[i].unk2 = gCurrentLevelHeader->available_vehicles << 4; + D_8012117C[i].unk2 |= gCurrentLevelHeader->vehicle & 0xF; + D_8012117C[i].unk3 = 1; + D_8012117C[i].unk4 = gCurrentLevelHeader->unkB0; + } + gNumberOfWorlds++; + D_80121178 = allocate_from_main_pool_safe(gNumberOfWorlds, COLOR_TAG_YELLOW); + for (i = 0; i < gNumberOfWorlds; i++) { + D_80121178[i] = -1; + } + for (i = 0; i < gNumberOfLevelHeaders; i++) { + if (D_8012117C[i].unk1 == 5) { + D_80121178[D_8012117C[i].unk0] = i; + } + } + free_from_memory_pool(gTempAssetTable); + free_from_memory_pool(sp44); + + gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_NAMES_TABLE); + count = 0; + while (gTempAssetTable[count] != -1) { + count++; + } + count--; + temp = gTempAssetTable[count] - gTempAssetTable[0]; + // Minor issue here. + D_8012116C = allocate_from_main_pool_safe(count * sizeof(s32), COLOR_TAG_YELLOW); + D_800DD310 = allocate_from_main_pool_safe(temp, COLOR_TAG_YELLOW); + load_asset_to_address(ASSET_LEVEL_NAMES, D_800DD310, 0, temp); + for(i = 0; i < count; i++) { + D_8012116C[i] = &D_800DD310[gTempAssetTable[i]]; + } + free_from_memory_pool(gTempAssetTable); + + // Anti-piracy/Anti-tamper check. + checksumCount = 0; + for(i = 0; i < gFunc80068158Length; i++) { + checksumCount += ((u8*)&func_80068158)[i]; + } + if (checksumCount != gFunc80068158Checksum) { + // Disables button inputs in some parts of the game if the checksum doesn't match. + disable_button_mask(); + } +} +#else GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006A6B0.s") +#endif + +// Unused. +s16 func_8006ABB4(s32 arg0) { + if (arg0 < 0) { + return 0xE10; + } + if (arg0 >= gNumberOfLevelHeaders) { + return 0xE10; + } + return D_8012117C[arg0].unk4; +} + +GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006AC00.s") +GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006AE2C.s") + +// Unused. +s32 func_8006B018(s8 arg0) { + if ((arg0 >= 0) && (arg0 < 16)) { + return D_80121180[arg0]; + } + return 0; +} + +// Unused. +s32 func_8006B054(s8 arg0) { + s32 out, i; + out = 0; + for(i = 0; i < gNumberOfLevelHeaders; i++) { + if (arg0 == D_8012117C[i].unk0) { + out++; + } + } + return out; +} s32 func_8006B0AC(s32 arg0) { - if (arg0 > 0 && arg0 < D_80121170) { - return D_80121178[1][arg0].unk2 & 0xF; + if (arg0 > 0 && arg0 < gNumberOfLevelHeaders) { + return D_8012117C[arg0].unk2 & 0xF; } return 0; } s32 func_8006B0F8(s32 arg0) { - if (arg0 > 0 && arg0 < D_80121170) { - s32 temp = D_80121178[1][arg0].unk2; + if (arg0 > 0 && arg0 < gNumberOfLevelHeaders) { + s32 temp = D_8012117C[arg0].unk2; if(temp != 0) { return (temp >> 4) & 0xF; } @@ -227,15 +351,15 @@ s32 func_8006B0F8(s32 arg0) { } s8 func_8006B14C(s32 arg0) { - if (arg0 >= 0 && arg0 < D_80121170) { - return D_80121178[1][arg0].unk1; + if (arg0 >= 0 && arg0 < gNumberOfLevelHeaders) { + return D_8012117C[arg0].unk1; } return -1; } s8 func_8006B190(s32 arg0) { - if (arg0 >= 0 && arg0 < D_80121170) { - return D_80121178[1][arg0].unk0; + if (arg0 >= 0 && arg0 < gNumberOfLevelHeaders) { + return D_8012117C[arg0].unk0; } return 0; } @@ -243,7 +367,7 @@ s8 func_8006B190(s32 arg0) { s32 func_8006B1D4(s32 arg0) { s8* temp; - if (arg0 < 0 || arg0 >= D_80121174) { + if (arg0 < 0 || arg0 >= gNumberOfWorlds) { arg0 = 0; } temp = get_misc_asset(0x1B); @@ -251,12 +375,11 @@ s32 func_8006B1D4(s32 arg0) { return temp[arg0]; } -void func_8006B224(s32* arg0, s32* arg1) { - *arg0 = D_80121170; - *arg1 = D_80121174; +void get_number_of_levels_and_worlds(s32* outLevelCount, s32* outWorldCount) { + *outLevelCount = gNumberOfLevelHeaders; + *outWorldCount = gNumberOfWorlds; } - s32 func_8006B240(void) { return D_800DD31C; } @@ -315,17 +438,17 @@ void load_level(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } settings = get_settings(); - D_80121160 = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); + gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); phi_v1 = 0; - while (-1 != D_80121160[phi_v1]) { + while (-1 != gTempAssetTable[phi_v1]) { phi_v1++; } phi_v1--; if (arg0 >= phi_v1) { arg0 = 0; } - offset = D_80121160[arg0]; - size = D_80121160[arg0 + 1] - offset; + offset = gTempAssetTable[arg0]; + size = gTempAssetTable[arg0 + 1] - offset; gCurrentLevelHeader = (LevelHeader*)allocate_from_main_pool_safe(size, COLOR_TAG_YELLOW); load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, offset, size); D_800DD330 = 0; @@ -392,12 +515,12 @@ void load_level(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { D_800DD32C = 0; if (sp44 != arg0) { free_from_memory_pool(gCurrentLevelHeader); - offset = D_80121160[arg0]; - size = D_80121160[arg0 + 1] - offset; + offset = gTempAssetTable[arg0]; + size = gTempAssetTable[arg0 + 1] - offset; gCurrentLevelHeader = allocate_from_main_pool_safe(size, COLOR_TAG_YELLOW); load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, offset, size); } - free_from_memory_pool(D_80121160); + free_from_memory_pool(gTempAssetTable); func_8006BFC8(&gCurrentLevelHeader->unk20); func_8000CBC0(); D_80121164 = arg0; @@ -553,10 +676,43 @@ LevelHeader* get_current_level_header(void) { /* Unused? */ u8 func_8006BDC0(void) { - return D_80121170 - 1; + return gNumberOfLevelHeaders - 1; } -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006BDDC.s") +u8 *func_8006BDDC(s32 arg0) { + u8 *text; + u8 numberOfNullPointers = 0; + + if(arg0 < 0 || arg0 >= gNumberOfLevelHeaders) { + return NULL; + } + + text = D_8012116C[arg0]; + switch(get_language()) { + case GERMAN: + while(numberOfNullPointers < 1) { + if(*(text++) == 0) { + numberOfNullPointers++; + } + } + break; + case FRENCH: + while(numberOfNullPointers < 2) { + if(*(text++) == 0) { + numberOfNullPointers++; + } + } + break; + case JAPANESE: + while(numberOfNullPointers < 3) { + if(*(text++) == 0) { + numberOfNullPointers++; + } + } + break; + } + return text; +} void func_8006BEFC(void) { func_8006C164(); @@ -578,23 +734,21 @@ void func_8006BEFC(void) { } } -Settings *get_settings(void); -s32 *load_asset_section_from_rom(s32); - #ifdef NON_MATCHING void func_8006BFC8(s8 *arg0) { s32 temp, temp2; s16 phi_v1; - s8 phi_s0 = 0; + s8 phi_s0; + Settings *settings; + phi_s0 = 0; if (!is_in_tracks_mode()) { - Settings *settings = get_settings(); - // Regalloc issue: temp3 should be a3, not v1. - s32 temp3 = settings->courseFlagsPtr[settings->courseId]; - if (temp3 & 2) { + settings = get_settings(); + // Regalloc issue here + if (settings->courseFlagsPtr[settings->courseId] & 2) { phi_s0 = 1; } - if (temp3 & 4) { + if (settings->courseFlagsPtr[settings->courseId] & 4) { phi_s0 = 2; } } else { @@ -617,20 +771,20 @@ void func_8006BFC8(s8 *arg0) { if (func_8006DA0C() == 1) { phi_s0 = 5; } - D_80121160 = load_asset_section_from_rom(ASSET_UNKNOWN_0_TABLE); + gTempAssetTable = load_asset_section_from_rom(ASSET_UNKNOWN_0_TABLE); phi_v1 = 0; - while (-1 != (s32)D_80121160[phi_v1]) { + while (-1 != (s32)gTempAssetTable[phi_v1]) { phi_v1++; } phi_v1--; if (phi_s0 >= phi_v1) { phi_s0 = 0; } - temp2 = D_80121160[phi_s0]; - temp = D_80121160[phi_s0 + 1] - temp2; + temp2 = gTempAssetTable[phi_s0]; + temp = gTempAssetTable[phi_s0 + 1] - temp2; D_801211C0[0] = allocate_from_main_pool_safe(temp, COLOR_TAG_YELLOW); load_asset_to_address(ASSET_UNKNOWN_0, D_801211C0[0], temp2, temp); - free_from_memory_pool(D_80121160); + free_from_memory_pool(gTempAssetTable); } #else GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006BFC8.s") @@ -786,17 +940,19 @@ void func_8006C3E0(void) { GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006C3E0.s") #endif -#ifdef NON_MATCHING void render(void) { s32 phi_v0; s32 phi_v0_2; + s32 temp, temp2; + + osSetTime(0); if (D_800DD380 == 8) { D_801211F8 = D_801211F0[D_801234E8]; - func_8007A2D0(&D_801211F8, 0, 0); - func_8007A2D0(&D_801211F8, 1, gVideoCurrFramebuffer); - func_8007A2D0(&D_801211F8, 2, gVideoLastDepthBuffer); - func_8007A2D0(&D_801211F8, 4, gVideoCurrFramebuffer - 0x500); + set_rsp_segment(&D_801211F8, 0, 0); + set_rsp_segment(&D_801211F8, 1, gVideoCurrFramebuffer); + set_rsp_segment(&D_801211F8, 2, gVideoLastDepthBuffer); + set_rsp_segment(&D_801211F8, 4, gVideoCurrFramebuffer - 0x500); } if (D_800DD3F0 == 0) { setupOSTasks(D_801211F0[D_801234E8], D_801211F8, 0); @@ -812,13 +968,13 @@ void render(void) { D_80121218 = D_80121210[D_801234E8]; D_80121228 = D_80121220[D_801234E8]; - func_8007A2D0(&D_801211F8, 0, 0, &D_801234E8); - func_8007A2D0(&D_801211F8, 1, gVideoLastFramebuffer); - func_8007A2D0(&D_801211F8, 2, gVideoLastDepthBuffer); - func_8007A2D0(&D_801211F8, 4, gVideoLastFramebuffer - 0x500); + set_rsp_segment(&D_801211F8, 0, 0, &D_801234E8); + set_rsp_segment(&D_801211F8, 1, gVideoLastFramebuffer); + set_rsp_segment(&D_801211F8, 2, gVideoLastDepthBuffer); + set_rsp_segment(&D_801211F8, 4, gVideoLastFramebuffer - 0x500); func_800780DC(&D_801211F8); func_80078054(&D_801211F8); - func_80077B9C(&D_801211F8, &D_80121208, 1); + render_background(&D_801211F8, &D_80121208, 1); D_800DD37C = func_8006A1C4(D_800DD37C, D_800DD404); if (func_800B76DC() != 0) { render_epc_lock_up_display(); @@ -838,12 +994,12 @@ void render(void) { case -1: func_8006F43C(); break; - case 0: - func_8006CCF0(D_800DD404); - break; case 1: func_8006DCF8(D_800DD404); break; + case 0: + func_8006CCF0(D_800DD404); + break; case 5: func_800B77D4(D_800DD404); break; @@ -888,16 +1044,13 @@ void render(void) { func_80070B04(gVideoLastFramebuffer, gVideoCurrFramebuffer, gVideoCurrFramebuffer + phi_v0_2); } - D_800DD404 = func_8007A98C(D_800DD380); - - // Can't get this to match. - if (D_800DD404 >= 7) { - D_800DD404 = 6; + temp = func_8007A98C(D_800DD380); + D_800DD404 = temp; + temp2 = 6; + if (temp > temp2) { + D_800DD404 = temp2; } } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/render.s") -#endif void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) { D_80123500 = arg0 - 1; @@ -920,7 +1073,7 @@ void load_level_2(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleI func_80065EA0(); func_800C3048(); load_level(levelId, numberOfPlayers, entranceId, vehicleId, D_80123508); - func_8009ECF0(func_80066210()); + func_8009ECF0(get_viewport_count()); func_800AE728(8, 0x10, 0x96, 0x64, 0x32, 0); func_8001BF20(); osSetTime(0); @@ -1050,7 +1203,7 @@ void load_level_3(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleI func_80065EA0(); func_800C3048(); load_level(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId); - func_8009ECF0(func_80066210()); + func_8009ECF0(get_viewport_count()); func_800AE728(4, 4, 0x6E, 0x30, 0x20, 0); func_8001BF20(); osSetTime(0); @@ -1079,7 +1232,7 @@ void func_8006DC58(s32 arg0) { func_80024D54(&D_801211F8, &D_80121208, &D_80121218, &D_80121228, arg0); func_800C3440(arg0); func_80078054(&D_801211F8); - func_80077050(&D_801211F8); + render_borders_for_multiplayer(&D_801211F8); func_80077268(&D_801211F8); } } @@ -1143,7 +1296,7 @@ void func_8006E994(Settings* settings) { s32 sp20; s32 sp1C; - func_8006B224(&sp1C, &sp20); + get_number_of_levels_and_worlds(&sp1C, &sp20); settings->newGame = 1; for (i = 0; i < sp20; i++) { @@ -1257,17 +1410,13 @@ void func_8006ECE0(void) { GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006ECFC.s") -#ifdef NON_MATCHING -extern s32 D_A4000000; s32 func_8006EFB8(void) { - if (D_A4000000 != -1) { // regalloc issue with D_A4000000 + // Have to use literal here for this function to match. + if (*((s32*)0xA4000000) != -1) { return 0; } return 1; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006EFB8.s") -#endif #if 1 GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006EFDC.s") @@ -1453,14 +1602,10 @@ s32 func_8006F4C8(void) { } } -#ifdef NON_MATCHING -extern s32 SP_IMEM; s32 func_8006F4EC(void) { - if (SP_IMEM != 0x17D7) { // Same regalloc issue as func_8006EFB8 + // Have to use a literal here for the function to match. + if (*((s32*)0xA4001000) != 0x17D7) { return 0; } return 1; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006F4EC.s") -#endif diff --git a/src/unknown_06B2B0.h b/src/unknown_06B2B0.h index aa163905..275c7e74 100644 --- a/src/unknown_06B2B0.h +++ b/src/unknown_06B2B0.h @@ -12,12 +12,12 @@ typedef struct unknown800DD408 { u16 unk6; } unknown800DD408; -extern s8 D_800DD310; +extern s8 *D_800DD310; extern s8 D_800DD314; extern s8 D_800DD318; extern s32 D_800DD31C; -extern s32 D_800DD320; -extern s32 D_800DD324; +extern s32 gFunc80068158Checksum; +extern s32 gFunc80068158Length; extern s16 D_800DD328; extern s16 D_800DD32C; @@ -63,7 +63,6 @@ extern s32 D_800DD3EC; extern s8 D_800DD3F0; extern s16 D_800DD3F4[8]; -extern s32 D_800DD404; extern unknown800DD408 D_800DD408; extern s32 D_800DD40C; diff --git a/src/unknown_077C50.c b/src/unknown_077C50.c index 4c400c0c..d5b196b2 100644 --- a/src/unknown_077C50.c +++ b/src/unknown_077C50.c @@ -3,8 +3,85 @@ #include "unknown_077C50.h" +#include "camera.h" #include "types.h" #include "macros.h" +#include "structs.h" +#include "f3ddkr.h" -GLOBAL_ASM("asm/non_matchings/unknown_077C50/func_80077050.s") +#ifdef NON_MATCHING + +// Draws the borders/negative space for multiplayer. Has regalloc issues +void render_borders_for_multiplayer(Gfx **dlist) { + u32 widthAndHeight, width, height; + u32 temp0, temp1, temp2, temp3; + LevelHeader *levelHeader; + widthAndHeight = get_video_width_and_height_as_s32(); + width = widthAndHeight & 0xFFFF; + temp0 = width >> 8; + height = widthAndHeight >> 16; + temp1 = height >> 7; + gDPSetCycleType((*dlist)++, G_CYC_FILL) + gDPSetFillColor((*dlist)++, 0x00010001) // Black fill color + switch(get_viewport_count()){ + case VIEWPORTS_COUNT_2_PLAYERS: + // Draws a solid horizontal black line in the middle of the screen. + gDPFillRectangle((*dlist)++, 0, (height >> 1) - temp1, width, ((height >> 1) - temp1) + temp1) + break; + case VIEWPORTS_COUNT_3_PLAYERS: + levelHeader = get_current_level_header(); + // Draw black square in the bottom-right corner. + if (func_800A8458() || (levelHeader->race_type & 0x40)) { + gDPFillRectangle((*dlist)++, width >> 1, height >> 1, width, height) + } + // There is no break statement here. This is intentional. + case VIEWPORTS_COUNT_4_PLAYERS: + temp2 = (width >> 1) - temp0; + // Draws 2 black lines in the middle of the screen. One vertical, another horizontal. + gDPFillRectangle((*dlist)++, 0, (height >> 1) - temp1, width, ((height >> 1) - temp1) + temp1) + gDPFillRectangle((*dlist)++, temp2, 0, temp2 + temp0, height) + break; + } + return; +} +#else +GLOBAL_ASM("asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s") +#endif + +#if 0 +void func_80077268(Gfx **dlist) { + u32 temp_a2_2; + u32 temp_v0_3; + u32 temp_v0_4; + u32 height; + u32 width; + u32 temp_t2; + u32 widthAndHeight; + u32 ra; + + widthAndHeight = get_video_width_and_height_as_s32(); + height = widthAndHeight >> 16; + width = widthAndHeight & 0xFFFF; + gDPSetCycleType((*dlist)++, G_CYC_1CYCLE) + gDPSetCombineMode((*dlist)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE) + gDPSetRenderMode((*dlist)++, G_RM_XLU_SURF, G_RM_XLU_SURF2) + gDPSetPrimColor((*dlist)++, 0, 0, 0, 0, 0, 0) + // Issues with this block. + switch(get_viewport_count()){ + case VIEWPORTS_COUNT_2_PLAYERS: + temp_v0_4 = (height >> 1) - (temp_t2 >> 1); + gDPFillRectangle((*dlist)++, 0, temp_v0_4, width, temp_v0_4 + temp_t2) + break; + case VIEWPORTS_COUNT_3_PLAYERS: + case VIEWPORTS_COUNT_4_PLAYERS: + temp_v0_3 = (height >> 1) - (temp_t2 >> 1); + temp_a2_2 = (width >> 1) - (ra >> 1); + gDPFillRectangle((*dlist)++, 0, temp_v0_3, width, temp_v0_3 + temp_t2) + gDPFillRectangle((*dlist)++, temp_a2_2, 0, temp_a2_2 + ra, height) + break; + } +} + +#else GLOBAL_ASM("asm/non_matchings/unknown_077C50/func_80077268.s") +#endif diff --git a/src/unknown_078050.c b/src/unknown_078050.c index e6dbb8ac..5afbc593 100644 --- a/src/unknown_078050.c +++ b/src/unknown_078050.c @@ -4,6 +4,7 @@ #include "unknown_078050.h" #include "types.h" +#include "structs.h" #include "macros.h" #include "libultra_internal.h" @@ -24,7 +25,12 @@ u32 D_800DE4C4 = 0; u32 D_800DE4C8 = 0; s32 D_800DE4CC = 0; -u32 D_800DE4D0 = 0; +typedef union { + void (*function)(Gfx*, s32); + void *ptr; +} unk800DE4D0; + +unk800DE4D0 D_800DE4D0 = { 0 }; s32 D_800DE4D4 = 0; s32 D_800DE4D8 = 0; s32 D_800DE4DC = 0; @@ -154,14 +160,14 @@ OSMesg D_80125EF0; s32 D_80125EF8[6]; OSMesg D_80125F10; s32 D_80125F18[6]; -s8 D_80125F30; -s8 D_80125F31; -s8 D_80125F32; -s8 D_80125F33; -s8 D_80125F34; -s8 D_80125F35; -s8 D_80125F36; -s8 D_80125F37; +u8 D_80125F30; +u8 D_80125F31; +u8 D_80125F32; +u8 D_80125F33; +u8 D_80125F34; +u8 D_80125F35; +u8 D_80125F36; +u8 D_80125F37; s32 D_80125F38; s32 D_80125F3C; s32 D_80125F40[56]; @@ -171,7 +177,23 @@ u32 D_80126100; /*******************************/ GLOBAL_ASM("asm/non_matchings/unknown_078050/setupOSTasks.s") -GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80077A54.s") + +s32 func_80077A54(void) { + OSMesg *sp1C = NULL; + if (D_800DE4DC == 0) { + return 0; + } + osRecvMesg(&D_80125ED8, &sp1C, 1); + D_800DE4DC = 0; + return sp1C[1]; +} + +void func_80077AAC(void *bufPtr, s32 arg1, s32 arg2) { + osWritebackDCacheAll(); + while (func_800D18D0() & 0x100) {} + osDpSetNextBuffer(bufPtr, arg1); + while (func_800D18D0() & 0x100) {} +} void func_80077B34(u8 arg0, u8 arg1, u8 arg2){ D_800DE4B0 = arg0; @@ -179,38 +201,90 @@ void func_80077B34(u8 arg0, u8 arg1, u8 arg2){ D_800DE4B8 = arg2; } -GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80077B5C.s") -GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80077B9C.s") -GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80078054.s") - - - -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_078050/func_800780DC.s") -#else -typedef struct{ - u32 unk00; - u32* unk04; -} struct_800780DC_a0; - -void func_800780DC(struct_800780DC_a0** arg0){ - u32* tmp2= D_800DE4E0; - struct_800780DC_a0* tmp = *arg0; - - - *arg0 = *arg0 + 1; - tmp->unk00 = 0x6000000; - tmp->unk04 = tmp2; +void func_80077B5C(s32 red, s32 green, s32 blue) { + D_800DE4BC = ((red << 8) & 0xF800) | ((green * 8) & 0x7C0) | ((blue >> 2) & 0x3E) | 1; + D_800DE4BC |= (D_800DE4BC << 0x10); } + +#ifdef NON_MATCHING +// Stack issues +void render_background(Gfx **dlist, s32 arg1, s32 arg2) { + s32 sp90; + s32 sp8C; + s32 sp88; + s32 sp84; + s32 w, h; + s32 rgba16Color; + s32 widthAndHeight; + + widthAndHeight = get_video_width_and_height_as_s32(); + w = widthAndHeight & 0xFFFF; + h = widthAndHeight >> 0x10; + + gDPPipeSync((*dlist)++) + gDPSetScissor((*dlist)++, 0, 0, 0, w - 1, h - 1) + gDPSetCycleType((*dlist)++, G_CYC_FILL) + gDPSetColorImage((*dlist)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, w, 0x02000000) + gDPSetFillColor((*dlist)++, 0xFFFCFFFC) + gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1) + gDPPipeSync((*dlist)++) + gDPSetColorImage((*dlist)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, w, 0x01000000) + if (arg2) { + if (func_80066910(0)) { + if (D_800DE4CC) { + func_800787FC(dlist); + } else if (D_800DE4C4 != 0) { + func_80078190(dlist); + } else if (D_800DE4D0.ptr != NULL) { + D_800DE4D0.function(dlist, arg1); + } else { + gDPSetFillColor((*dlist)++, D_800DE4BC) + gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1) + } + if (func_80066BA8(0, &sp90, &sp8C, &sp88, &sp84)) { + gDPSetCycleType((*dlist)++, G_CYC_1CYCLE) + gDPSetPrimColor((*dlist)++, 0, 0, D_800DE4B0, D_800DE4B4, D_800DE4B8, 0xFF) + gDPSetCombineMode((*dlist)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE) + gDPSetRenderMode((*dlist)++, G_RM_OPA_SURF, G_RM_OPA_SURF2) + gDPFillRectangle((*dlist)++, sp84, sp88, sp8C, sp90) + } + } else if (D_800DE4CC) { + func_800787FC(dlist); + } else if (D_800DE4C4 != 0) { + func_80078190(dlist); + } else if (D_800DE4D0.ptr != NULL) { + D_800DE4D0.function(dlist, arg1); + } else { + // Also has an issue here. + rgba16Color = ((D_800DE4B0 << 8) & 0xF800) | ((D_800DE4B4 * 8) & 0x7C0) | ((D_800DE4B8 >> 2) & 0x3E) | 1; + rgba16Color |= rgba16Color << 0x10; + gDPSetFillColor((*dlist)++, rgba16Color) + gDPFillRectangle((*dlist)++, 0, 0, w - 1, h - 1) + } + } + gDPPipeSync((*dlist)++) + func_80067A3C(dlist); +} +#else +GLOBAL_ASM("asm/non_matchings/unknown_078050/render_background.s") #endif +void func_80078054(Gfx **dlist) { + s32 width = get_video_width_and_height_as_s32() & 0xFFF; + gDPSetColorImage((*dlist)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, width, 0x01000000) + gDPSetDepthImage((*dlist)++, 0x2000000) + gSPDisplayList((*dlist)++, D_800DE520) +} + +void func_800780DC(Gfx** dlist){ + gSPDisplayList((*dlist)++, D_800DE4E0) +} void func_80078100(void){ D_80126100 = func_8007957C(); osCreateMesgQueue(&D_80125EA0, &D_80125EB8,1); osCreateMesgQueue(&D_80125EC0, &D_80125EF0,8); osCreateMesgQueue(&D_80125ED8, &D_80125F10,8); - } void func_80078170(u32 arg0, u32 arg1, u32 arg2){ @@ -219,13 +293,76 @@ void func_80078170(u32 arg0, u32 arg1, u32 arg2){ D_800DE4C0 = arg2 << 2; } - GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80078190.s") + +// Unused +void func_80078778(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + D_80125F30 = (arg0 >> 24) & 0xFF; + D_80125F31 = (arg0 >> 16) & 0xFF; + D_80125F32 = (arg0 >> 8) & 0xFF; + D_80125F33 = arg0 & 0xFF; + D_80125F34 = (arg1 >> 24) & 0xFF; + D_80125F35 = (arg1 >> 16) & 0xFF; + D_80125F36 = (arg1 >> 8) & 0xFF; + D_80125F37 = arg1 & 0xFF; + D_80125F38 = arg2; + D_80125F3C = arg3; + D_800DE4CC = 1; +} + +// Unused +void func_800787F0(void) { + D_800DE4CC = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_078050/func_800787FC.s") void func_80078AAC(u32 arg0){ - D_800DE4D0 = arg0; + D_800DE4D0.ptr = arg0; } -GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80078AB8.s") +#ifdef NON_MATCHING + +// Regalloc & stack issues. +void render_textured_rectangle(Gfx **dlist, DrawTexture *arg1, s32 arg2, s32 arg3, u8 red, u8 green, u8 blue, u8 alpha) { + TextureHeader *tex; + DrawTexture *phi_t2; + s32 x0, y0; + s32 x1, y1; + s32 u, v; + + gSPDisplayList((*dlist)++, D_800DE628) + gDPSetPrimColor((*dlist)++, 0, 0, red, green, blue, alpha) + tex = arg1->texture; + while (tex != NULL) { + x0 = (arg1->xOffset * 4) + (arg2 * 4); + y0 = (arg1->yOffset * 4) + (arg3 * 4); + x1 = (tex->width * 4) + x0; + y1 = (tex->height * 4) + y0; + if (x1 > 0) { + u = 0; + if (y1 > 0) { + v = 0; + if (x0 < 0) { + u = -(x0 * 8); + x0 = 0; + } + if (y0 < 0) { + v = -(y0 * 8); + y0 = 0; + } + gDkrDmaDisplayList((*dlist)++, tex->cmd + 0x80000000, tex->numberOfCommands) + gSPTextureRectangle((*dlist)++, x0, y0, x1, y1, 0, u, v, 1024, 1024) + } + } + arg1++; + tex = arg1->texture; + } + gDPPipeSync((*dlist)++) + gDPSetPrimColor((*dlist)++, 0, 0, 255, 255, 255, 255) +} +#else +GLOBAL_ASM("asm/non_matchings/unknown_078050/render_textured_rectangle.s") +#endif + GLOBAL_ASM("asm/non_matchings/unknown_078050/func_80078D00.s") diff --git a/src/unknown_078050.h b/src/unknown_078050.h index 6c4561bf..077300ae 100644 --- a/src/unknown_078050.h +++ b/src/unknown_078050.h @@ -16,7 +16,6 @@ extern u32 D_800DE4C4; extern u32 D_800DE4C8; extern s32 D_800DE4CC; -extern u32 D_800DE4D0; extern s32 D_800DE4D4; extern s32 D_800DE4D8; extern s32 D_800DE4DC; diff --git a/src/unknown_079F50.h b/src/unknown_079F50.h deleted file mode 100644 index 32ed2261..00000000 --- a/src/unknown_079F50.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _UNKNOWN_079F50_H_ -#define _UNKNOWN_079F50_H_ - -#include "types.h" - -// Unsure about if this is an array or struct. -extern s32 D_800DE730[]; -extern s32 D_800DE738[]; - -extern s32 D_800DE740; -extern s32 D_800DE744; -extern s32 D_800DE748; -extern s32 D_800DE74C; - -extern s32 D_800DE750; -extern u32 D_800DE754; -extern u32 D_800DE758; -extern s32 D_800DE75C; - -extern s32 D_800DE760; -extern s32 D_800DE764; - -#endif diff --git a/src/unknown_0ABDF0.c b/src/unknown_0ABDF0.c index 1199b309..3f067980 100644 --- a/src/unknown_0ABDF0.c +++ b/src/unknown_0ABDF0.c @@ -292,7 +292,7 @@ void func_800AD2C4(s32 arg0, s32 arg1, f32 arg2) { #ifdef NON_MATCHING void func_800AD40C(void) { s16 a, b; - if (D_800E2C5C && !func_80066210()) { + if (D_800E2C5C && !get_viewport_count()) { a = ((-D_800E2C60 * 38) >> 16) + 1018; b = ((-D_800E2C60 * 20) >> 16) + 1023; func_80030664(0, a, b, 28, 15, 36); diff --git a/tools/asm_processor/build.py b/tools/asm_processor/build.py index 396c3829..78aa7fb6 100755 --- a/tools/asm_processor/build.py +++ b/tools/asm_processor/build.py @@ -32,8 +32,8 @@ opt_flags = [x for x in compile_args if x in ['-g3', '-g', '-O1', '-O2', '-frame preprocessed_file = tempfile.NamedTemporaryFile(prefix='preprocessed', suffix='.c', delete=False) try: - # Only want to apply -mips1 flag to the main source files. Not the lib files. - if ('-O2' in opt_flags) and (not 'lib/' in in_file): + # Only want to apply -mips1 flag to certain files + if ('-O2' in opt_flags) and ((not 'lib/' in in_file) or ('lib/src/mips1' in in_file)): opt_flags.append('-mips1') asmproc_flags = opt_flags + [in_file, '--input-enc', 'utf-8', '--output-enc', 'euc-jp'] compile_cmdline = compiler + compile_args + ['-I', in_dir, '-o', out_file, preprocessed_file.name] diff --git a/tools/python/calc_func_checksums.py b/tools/python/calc_func_checksums.py index 86530d13..7111832b 100644 --- a/tools/python/calc_func_checksums.py +++ b/tools/python/calc_func_checksums.py @@ -14,7 +14,7 @@ FUNCTIONS_TO_CALC = [ ('func_80019808', 'D_800DC690'), ('func_80024D54', 'D_800DCEA0'), ('func_8003B4BC', 'D_800DCDD0'), - ('func_80068158', 'D_800DD320') + ('func_80068158', 'gFunc80068158Checksum') ] def getMatches(string, regex):