diff --git a/asm/nonmatchings/code_E20110/func_802B7000_E20110.s b/asm/nonmatchings/code_E20110/func_802B7000_E20110.s new file mode 100644 index 0000000000..28b81aaa0a --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B7000_E20110.s @@ -0,0 +1,53 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B7000_E20110 +/* E20110 802B7000 3C014387 */ lui $at, 0x4387 +/* E20114 802B7004 44810000 */ mtc1 $at, $f0 +/* E20118 802B7008 00000000 */ nop +/* E2011C 802B700C 460C003E */ c.le.s $f0, $f12 +/* E20120 802B7010 00000000 */ nop +/* E20124 802B7014 45000009 */ bc1f .L802B703C +/* E20128 802B7018 240200FF */ addiu $v0, $zero, 0xff +/* E2012C 802B701C 3C0143B4 */ lui $at, 0x43b4 +/* E20130 802B7020 44810000 */ mtc1 $at, $f0 +/* E20134 802B7024 00000000 */ nop +/* E20138 802B7028 460C0001 */ sub.s $f0, $f0, $f12 +/* E2013C 802B702C 4600010D */ trunc.w.s $f4, $f0 +/* E20140 802B7030 44032000 */ mfc1 $v1, $f4 +/* E20144 802B7034 080ADC2B */ j .L802B70AC +/* E20148 802B7038 00431023 */ subu $v0, $v0, $v1 +.L802B703C: +/* E2014C 802B703C 3C014334 */ lui $at, 0x4334 +/* E20150 802B7040 44811000 */ mtc1 $at, $f2 +/* E20154 802B7044 00000000 */ nop +/* E20158 802B7048 460C103E */ c.le.s $f2, $f12 +/* E2015C 802B704C 00000000 */ nop +/* E20160 802B7050 45000006 */ bc1f .L802B706C +/* E20164 802B7054 00000000 */ nop +/* E20168 802B7058 46026001 */ sub.s $f0, $f12, $f2 +/* E2016C 802B705C 4600010D */ trunc.w.s $f4, $f0 +/* E20170 802B7060 44032000 */ mfc1 $v1, $f4 +/* E20174 802B7064 080ADC2B */ j .L802B70AC +/* E20178 802B7068 00431023 */ subu $v0, $v0, $v1 +.L802B706C: +/* E2017C 802B706C 3C0142B4 */ lui $at, 0x42b4 +/* E20180 802B7070 44810000 */ mtc1 $at, $f0 +/* E20184 802B7074 00000000 */ nop +/* E20188 802B7078 460C003E */ c.le.s $f0, $f12 +/* E2018C 802B707C 00000000 */ nop +/* E20190 802B7080 45000006 */ bc1f .L802B709C +/* E20194 802B7084 240200FF */ addiu $v0, $zero, 0xff +/* E20198 802B7088 460C1001 */ sub.s $f0, $f2, $f12 +/* E2019C 802B708C 4600010D */ trunc.w.s $f4, $f0 +/* E201A0 802B7090 44032000 */ mfc1 $v1, $f4 +/* E201A4 802B7094 080ADC2B */ j .L802B70AC +/* E201A8 802B7098 00431023 */ subu $v0, $v0, $v1 +.L802B709C: +/* E201AC 802B709C 4600610D */ trunc.w.s $f4, $f12 +/* E201B0 802B70A0 44032000 */ mfc1 $v1, $f4 +/* E201B4 802B70A4 00000000 */ nop +/* E201B8 802B70A8 00431023 */ subu $v0, $v0, $v1 +.L802B70AC: +/* E201BC 802B70AC 03E00008 */ jr $ra +/* E201C0 802B70B0 00431023 */ subu $v0, $v0, $v1 diff --git a/asm/nonmatchings/code_E20110/func_802B70B4_E201C4.s b/asm/nonmatchings/code_E20110/func_802B70B4_E201C4.s new file mode 100644 index 0000000000..d0621cdc75 --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B70B4_E201C4.s @@ -0,0 +1,83 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B70B4_E201C4 +/* E201C4 802B70B4 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* E201C8 802B70B8 AFB10014 */ sw $s1, 0x14($sp) +/* E201CC 802B70BC 3C118011 */ lui $s1, %hi(gPlayerStatus) +/* E201D0 802B70C0 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) +/* E201D4 802B70C4 AFBF0018 */ sw $ra, 0x18($sp) +/* E201D8 802B70C8 AFB00010 */ sw $s0, 0x10($sp) +/* E201DC 802B70CC 8E220004 */ lw $v0, 4($s1) +/* E201E0 802B70D0 30420010 */ andi $v0, $v0, 0x10 +/* E201E4 802B70D4 1040003F */ beqz $v0, .L802B71D4 +/* E201E8 802B70D8 00000000 */ nop +/* E201EC 802B70DC 3C10802B */ lui $s0, %hi(D_802B7CB8) +/* E201F0 802B70E0 26107CB8 */ addiu $s0, $s0, %lo(D_802B7CB8) +/* E201F4 802B70E4 8E040000 */ lw $a0, ($s0) +/* E201F8 802B70E8 0C00A580 */ jal mem_clear +/* E201FC 802B70EC 24050028 */ addiu $a1, $zero, 0x28 +/* E20200 802B70F0 8E030000 */ lw $v1, ($s0) +/* E20204 802B70F4 C6200028 */ lwc1 $f0, 0x28($s1) +/* E20208 802B70F8 2402FFFF */ addiu $v0, $zero, -1 +/* E2020C 802B70FC 3C018011 */ lui $at, %hi(D_8010C950) +/* E20210 802B7100 AC22C950 */ sw $v0, %lo(D_8010C950)($at) +/* E20214 802B7104 E4600000 */ swc1 $f0, ($v1) +/* E20218 802B7108 862200B0 */ lh $v0, 0xb0($s1) +/* E2021C 802B710C C620002C */ lwc1 $f0, 0x2c($s1) +/* E20220 802B7110 44821000 */ mtc1 $v0, $f2 +/* E20224 802B7114 00000000 */ nop +/* E20228 802B7118 468010A0 */ cvt.s.w $f2, $f2 +/* E2022C 802B711C 8E220004 */ lw $v0, 4($s1) +/* E20230 802B7120 46020080 */ add.s $f2, $f0, $f2 +/* E20234 802B7124 30421000 */ andi $v0, $v0, 0x1000 +/* E20238 802B7128 3C014000 */ lui $at, 0x4000 +/* E2023C 802B712C 44810000 */ mtc1 $at, $f0 +/* E20240 802B7130 14400004 */ bnez $v0, .L802B7144 +/* E20244 802B7134 24630004 */ addiu $v1, $v1, 4 +/* E20248 802B7138 3C014100 */ lui $at, 0x4100 +/* E2024C 802B713C 44810000 */ mtc1 $at, $f0 +/* E20250 802B7140 00000000 */ nop +.L802B7144: +/* E20254 802B7144 46001000 */ add.s $f0, $f2, $f0 +/* E20258 802B7148 3C04802B */ lui $a0, %hi(D_802B7CB8) +/* E2025C 802B714C 24847CB8 */ addiu $a0, $a0, %lo(D_802B7CB8) +/* E20260 802B7150 E4600000 */ swc1 $f0, ($v1) +/* E20264 802B7154 8C820000 */ lw $v0, ($a0) +/* E20268 802B7158 C6200030 */ lwc1 $f0, 0x30($s1) +/* E2026C 802B715C 3C013ECC */ lui $at, 0x3ecc +/* E20270 802B7160 3421CCCD */ ori $at, $at, 0xcccd +/* E20274 802B7164 44811000 */ mtc1 $at, $f2 +/* E20278 802B7168 A0400023 */ sb $zero, 0x23($v0) +/* E2027C 802B716C 3C038007 */ lui $v1, %hi(gCurrentCameraID) +/* E20280 802B7170 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1) +/* E20284 802B7174 E4400008 */ swc1 $f0, 8($v0) +/* E20288 802B7178 E4420010 */ swc1 $f2, 0x10($v0) +/* E2028C 802B717C 3C02802B */ lui $v0, %hi(func_802B7728_E20838) +/* E20290 802B7180 24427728 */ addiu $v0, $v0, %lo(func_802B7728_E20838) +/* E20294 802B7184 3C018011 */ lui $at, %hi(D_8010C958) +/* E20298 802B7188 AC22C958 */ sw $v0, %lo(D_8010C958)($at) +/* E2029C 802B718C 00031080 */ sll $v0, $v1, 2 +/* E202A0 802B7190 00431021 */ addu $v0, $v0, $v1 +/* E202A4 802B7194 00021080 */ sll $v0, $v0, 2 +/* E202A8 802B7198 00431023 */ subu $v0, $v0, $v1 +/* E202AC 802B719C 000218C0 */ sll $v1, $v0, 3 +/* E202B0 802B71A0 00431021 */ addu $v0, $v0, $v1 +/* E202B4 802B71A4 000210C0 */ sll $v0, $v0, 3 +/* E202B8 802B71A8 3C01800B */ lui $at, %hi(D_800B1DEC) +/* E202BC 802B71AC 00220821 */ addu $at, $at, $v0 +/* E202C0 802B71B0 C4201DEC */ lwc1 $f0, %lo(D_800B1DEC)($at) +/* E202C4 802B71B4 240200FF */ addiu $v0, $zero, 0xff +/* E202C8 802B71B8 8C830000 */ lw $v1, ($a0) +/* E202CC 802B71BC 46000007 */ neg.s $f0, $f0 +/* E202D0 802B71C0 A0620024 */ sb $v0, 0x24($v1) +/* E202D4 802B71C4 E460000C */ swc1 $f0, 0xc($v1) +/* E202D8 802B71C8 8C830000 */ lw $v1, ($a0) +/* E202DC 802B71CC 240200FF */ addiu $v0, $zero, 0xff +/* E202E0 802B71D0 AC62001C */ sw $v0, 0x1c($v1) +.L802B71D4: +/* E202E4 802B71D4 8FBF0018 */ lw $ra, 0x18($sp) +/* E202E8 802B71D8 8FB10014 */ lw $s1, 0x14($sp) +/* E202EC 802B71DC 8FB00010 */ lw $s0, 0x10($sp) +/* E202F0 802B71E0 03E00008 */ jr $ra +/* E202F4 802B71E4 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_E20110/func_802B71E8_E202F8.s b/asm/nonmatchings/code_E20110/func_802B71E8_E202F8.s new file mode 100644 index 0000000000..a847debe49 --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B71E8_E202F8.s @@ -0,0 +1,159 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B71E8_E202F8 +/* E202F8 802B71E8 3C028011 */ lui $v0, %hi(gPlayerStatus+0x4) +/* E202FC 802B71EC 8C42EFCC */ lw $v0, %lo(gPlayerStatus+0x4)($v0) +/* E20300 802B71F0 27BDFF28 */ addiu $sp, $sp, -0xd8 +/* E20304 802B71F4 AFBF00D0 */ sw $ra, 0xd0($sp) +/* E20308 802B71F8 AFB500CC */ sw $s5, 0xcc($sp) +/* E2030C 802B71FC AFB400C8 */ sw $s4, 0xc8($sp) +/* E20310 802B7200 AFB300C4 */ sw $s3, 0xc4($sp) +/* E20314 802B7204 AFB200C0 */ sw $s2, 0xc0($sp) +/* E20318 802B7208 AFB100BC */ sw $s1, 0xbc($sp) +/* E2031C 802B720C 30420010 */ andi $v0, $v0, 0x10 +/* E20320 802B7210 10400086 */ beqz $v0, .L802B742C +/* E20324 802B7214 AFB000B8 */ sw $s0, 0xb8($sp) +/* E20328 802B7218 27B00038 */ addiu $s0, $sp, 0x38 +/* E2032C 802B721C 3C14802B */ lui $s4, %hi(D_802B7CB8) +/* E20330 802B7220 26947CB8 */ addiu $s4, $s4, %lo(D_802B7CB8) +/* E20334 802B7224 8E820000 */ lw $v0, ($s4) +/* E20338 802B7228 0200202D */ daddu $a0, $s0, $zero +/* E2033C 802B722C 8C450010 */ lw $a1, 0x10($v0) +/* E20340 802B7230 3C150001 */ lui $s5, 1 +/* E20344 802B7234 00A0302D */ daddu $a2, $a1, $zero +/* E20348 802B7238 0C019DF0 */ jal guScaleF +/* E2034C 802B723C 00A0382D */ daddu $a3, $a1, $zero +/* E20350 802B7240 3C038007 */ lui $v1, %hi(gCurrentCameraID) +/* E20354 802B7244 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1) +/* E20358 802B7248 27B10078 */ addiu $s1, $sp, 0x78 +/* E2035C 802B724C 00031080 */ sll $v0, $v1, 2 +/* E20360 802B7250 00431021 */ addu $v0, $v0, $v1 +/* E20364 802B7254 00021080 */ sll $v0, $v0, 2 +/* E20368 802B7258 00431023 */ subu $v0, $v0, $v1 +/* E2036C 802B725C 000218C0 */ sll $v1, $v0, 3 +/* E20370 802B7260 00431021 */ addu $v0, $v0, $v1 +/* E20374 802B7264 000210C0 */ sll $v0, $v0, 3 +/* E20378 802B7268 8E830000 */ lw $v1, ($s4) +/* E2037C 802B726C 3C01800B */ lui $at, %hi(D_800B1DEC) +/* E20380 802B7270 00220821 */ addu $at, $at, $v0 +/* E20384 802B7274 C4221DEC */ lwc1 $f2, %lo(D_800B1DEC)($at) +/* E20388 802B7278 C464000C */ lwc1 $f4, 0xc($v1) +/* E2038C 802B727C 44800000 */ mtc1 $zero, $f0 +/* E20390 802B7280 46022101 */ sub.s $f4, $f4, $f2 +/* E20394 802B7284 3C073F80 */ lui $a3, 0x3f80 +/* E20398 802B7288 44060000 */ mfc1 $a2, $f0 +/* E2039C 802B728C 44052000 */ mfc1 $a1, $f4 +/* E203A0 802B7290 0220202D */ daddu $a0, $s1, $zero +/* E203A4 802B7294 0C019EC8 */ jal guRotateF +/* E203A8 802B7298 AFA60010 */ sw $a2, 0x10($sp) +/* E203AC 802B729C 0200202D */ daddu $a0, $s0, $zero +/* E203B0 802B72A0 0220282D */ daddu $a1, $s1, $zero +/* E203B4 802B72A4 0C019D80 */ jal guMtxCatF +/* E203B8 802B72A8 0200302D */ daddu $a2, $s0, $zero +/* E203BC 802B72AC 8E820000 */ lw $v0, ($s4) +/* E203C0 802B72B0 36B51630 */ ori $s5, $s5, 0x1630 +/* E203C4 802B72B4 8C450000 */ lw $a1, ($v0) +/* E203C8 802B72B8 8C460004 */ lw $a2, 4($v0) +/* E203CC 802B72BC 8C470008 */ lw $a3, 8($v0) +/* E203D0 802B72C0 0C019E40 */ jal guTranslateF +/* E203D4 802B72C4 0220202D */ daddu $a0, $s1, $zero +/* E203D8 802B72C8 0200202D */ daddu $a0, $s0, $zero +/* E203DC 802B72CC 0220282D */ daddu $a1, $s1, $zero +/* E203E0 802B72D0 0C019D80 */ jal guMtxCatF +/* E203E4 802B72D4 0220302D */ daddu $a2, $s1, $zero +/* E203E8 802B72D8 0220202D */ daddu $a0, $s1, $zero +/* E203EC 802B72DC 3C108007 */ lui $s0, %hi(D_800741F0) +/* E203F0 802B72E0 261041F0 */ addiu $s0, $s0, %lo(D_800741F0) +/* E203F4 802B72E4 3C13800A */ lui $s3, %hi(D_8009A674) +/* E203F8 802B72E8 2673A674 */ addiu $s3, $s3, %lo(D_8009A674) +/* E203FC 802B72EC 96050000 */ lhu $a1, ($s0) +/* E20400 802B72F0 8E620000 */ lw $v0, ($s3) +/* E20404 802B72F4 00052980 */ sll $a1, $a1, 6 +/* E20408 802B72F8 00B52821 */ addu $a1, $a1, $s5 +/* E2040C 802B72FC 0C019D40 */ jal guMtxF2L +/* E20410 802B7300 00452821 */ addu $a1, $v0, $a1 +/* E20414 802B7304 3C03DA38 */ lui $v1, 0xda38 +/* E20418 802B7308 34630002 */ ori $v1, $v1, 2 +/* E2041C 802B730C 0000202D */ daddu $a0, $zero, $zero +/* E20420 802B7310 0080282D */ daddu $a1, $a0, $zero +/* E20424 802B7314 0080302D */ daddu $a2, $a0, $zero +/* E20428 802B7318 3C12800A */ lui $s2, %hi(D_8009A66C) +/* E2042C 802B731C 2652A66C */ addiu $s2, $s2, %lo(D_8009A66C) +/* E20430 802B7320 0080382D */ daddu $a3, $a0, $zero +/* E20434 802B7324 8E480000 */ lw $t0, ($s2) +/* E20438 802B7328 96020000 */ lhu $v0, ($s0) +/* E2043C 802B732C 0100482D */ daddu $t1, $t0, $zero +/* E20440 802B7330 25080008 */ addiu $t0, $t0, 8 +/* E20444 802B7334 AE480000 */ sw $t0, ($s2) +/* E20448 802B7338 AD230000 */ sw $v1, ($t1) +/* E2044C 802B733C 24430001 */ addiu $v1, $v0, 1 +/* E20450 802B7340 3042FFFF */ andi $v0, $v0, 0xffff +/* E20454 802B7344 00021180 */ sll $v0, $v0, 6 +/* E20458 802B7348 A6030000 */ sh $v1, ($s0) +/* E2045C 802B734C 8E630000 */ lw $v1, ($s3) +/* E20460 802B7350 00551021 */ addu $v0, $v0, $s5 +/* E20464 802B7354 00621821 */ addu $v1, $v1, $v0 +/* E20468 802B7358 25020008 */ addiu $v0, $t0, 8 +/* E2046C 802B735C AD230004 */ sw $v1, 4($t1) +/* E20470 802B7360 AE420000 */ sw $v0, ($s2) +/* E20474 802B7364 3C02DE00 */ lui $v0, 0xde00 +/* E20478 802B7368 AD020000 */ sw $v0, ($t0) +/* E2047C 802B736C 3C02802B */ lui $v0, %hi(D_802B7C40) +/* E20480 802B7370 24427C40 */ addiu $v0, $v0, %lo(D_802B7C40) +/* E20484 802B7374 AD020004 */ sw $v0, 4($t0) +/* E20488 802B7378 3C02802B */ lui $v0, %hi(D_802B7A20) +/* E2048C 802B737C 24427A20 */ addiu $v0, $v0, %lo(D_802B7A20) +/* E20490 802B7380 AFA20020 */ sw $v0, 0x20($sp) +/* E20494 802B7384 3C02802B */ lui $v0, %hi(D_802B7C20) +/* E20498 802B7388 24427C20 */ addiu $v0, $v0, %lo(D_802B7C20) +/* E2049C 802B738C AFA20024 */ sw $v0, 0x24($sp) +/* E204A0 802B7390 24020020 */ addiu $v0, $zero, 0x20 +/* E204A4 802B7394 A7A20028 */ sh $v0, 0x28($sp) +/* E204A8 802B7398 A7A2002A */ sh $v0, 0x2a($sp) +/* E204AC 802B739C 2402FFF0 */ addiu $v0, $zero, -0x10 +/* E204B0 802B73A0 A7A2002C */ sh $v0, 0x2c($sp) +/* E204B4 802B73A4 2402001A */ addiu $v0, $zero, 0x1a +/* E204B8 802B73A8 A7A2002E */ sh $v0, 0x2e($sp) +/* E204BC 802B73AC 240200FF */ addiu $v0, $zero, 0xff +/* E204C0 802B73B0 A3A20030 */ sb $v0, 0x30($sp) +/* E204C4 802B73B4 24020440 */ addiu $v0, $zero, 0x440 +/* E204C8 802B73B8 AFA00010 */ sw $zero, 0x10($sp) +/* E204CC 802B73BC AFA00014 */ sw $zero, 0x14($sp) +/* E204D0 802B73C0 0C04EAA7 */ jal func_8013AA9C +/* E204D4 802B73C4 AFA20018 */ sw $v0, 0x18($sp) +/* E204D8 802B73C8 0000202D */ daddu $a0, $zero, $zero +/* E204DC 802B73CC 8E820000 */ lw $v0, ($s4) +/* E204E0 802B73D0 24050006 */ addiu $a1, $zero, 6 +/* E204E4 802B73D4 90460024 */ lbu $a2, 0x24($v0) +/* E204E8 802B73D8 240200FF */ addiu $v0, $zero, 0xff +/* E204EC 802B73DC AFA20014 */ sw $v0, 0x14($sp) +/* E204F0 802B73E0 24020448 */ addiu $v0, $zero, 0x448 +/* E204F4 802B73E4 AFA20018 */ sw $v0, 0x18($sp) +/* E204F8 802B73E8 00C0382D */ daddu $a3, $a2, $zero +/* E204FC 802B73EC 0C04EAA7 */ jal func_8013AA9C +/* E20500 802B73F0 AFA60010 */ sw $a2, 0x10($sp) +/* E20504 802B73F4 0000202D */ daddu $a0, $zero, $zero +/* E20508 802B73F8 27A50020 */ addiu $a1, $sp, 0x20 +/* E2050C 802B73FC 0080302D */ daddu $a2, $a0, $zero +/* E20510 802B7400 0C04EBDC */ jal func_8013AF70 +/* E20514 802B7404 0220382D */ daddu $a3, $s1, $zero +/* E20518 802B7408 3C04D838 */ lui $a0, 0xd838 +/* E2051C 802B740C 8E420000 */ lw $v0, ($s2) +/* E20520 802B7410 34840002 */ ori $a0, $a0, 2 +/* E20524 802B7414 0040182D */ daddu $v1, $v0, $zero +/* E20528 802B7418 24420008 */ addiu $v0, $v0, 8 +/* E2052C 802B741C AE420000 */ sw $v0, ($s2) +/* E20530 802B7420 24020040 */ addiu $v0, $zero, 0x40 +/* E20534 802B7424 AC640000 */ sw $a0, ($v1) +/* E20538 802B7428 AC620004 */ sw $v0, 4($v1) +.L802B742C: +/* E2053C 802B742C 8FBF00D0 */ lw $ra, 0xd0($sp) +/* E20540 802B7430 8FB500CC */ lw $s5, 0xcc($sp) +/* E20544 802B7434 8FB400C8 */ lw $s4, 0xc8($sp) +/* E20548 802B7438 8FB300C4 */ lw $s3, 0xc4($sp) +/* E2054C 802B743C 8FB200C0 */ lw $s2, 0xc0($sp) +/* E20550 802B7440 8FB100BC */ lw $s1, 0xbc($sp) +/* E20554 802B7444 8FB000B8 */ lw $s0, 0xb8($sp) +/* E20558 802B7448 03E00008 */ jr $ra +/* E2055C 802B744C 27BD00D8 */ addiu $sp, $sp, 0xd8 diff --git a/asm/nonmatchings/code_E20110/func_802B7450_E20560.s b/asm/nonmatchings/code_E20110/func_802B7450_E20560.s new file mode 100644 index 0000000000..4fc23b0ec7 --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B7450_E20560.s @@ -0,0 +1,117 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B7450_E20560 +/* E20560 802B7450 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* E20564 802B7454 3C028016 */ lui $v0, %hi(gCollisionStatus) +/* E20568 802B7458 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus) +/* E2056C 802B745C AFB10014 */ sw $s1, 0x14($sp) +/* E20570 802B7460 3C118011 */ lui $s1, %hi(gPlayerStatus) +/* E20574 802B7464 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) +/* E20578 802B7468 AFB20018 */ sw $s2, 0x18($sp) +/* E2057C 802B746C 2412FFFF */ addiu $s2, $zero, -1 +/* E20580 802B7470 AFBF001C */ sw $ra, 0x1c($sp) +/* E20584 802B7474 AFB00010 */ sw $s0, 0x10($sp) +/* E20588 802B7478 84500012 */ lh $s0, 0x12($v0) +/* E2058C 802B747C 8E2500C8 */ lw $a1, 0xc8($s1) +/* E20590 802B7480 56120030 */ bnel $s0, $s2, .L802B7544 +/* E20594 802B7484 32024000 */ andi $v0, $s0, 0x4000 +/* E20598 802B7488 84440002 */ lh $a0, 2($v0) +/* E2059C 802B748C 04800010 */ bltz $a0, .L802B74D0 +/* E205A0 802B7490 30824000 */ andi $v0, $a0, 0x4000 +/* E205A4 802B7494 1040000F */ beqz $v0, .L802B74D4 +/* E205A8 802B7498 3C020200 */ lui $v0, 0x200 +/* E205AC 802B749C 0C0441A9 */ jal get_entity_type +/* E205B0 802B74A0 0080802D */ daddu $s0, $a0, $zero +/* E205B4 802B74A4 2443FFFD */ addiu $v1, $v0, -3 +/* E205B8 802B74A8 2C620031 */ sltiu $v0, $v1, 0x31 +/* E205BC 802B74AC 10400038 */ beqz $v0, .L802B7590 +/* E205C0 802B74B0 00031080 */ sll $v0, $v1, 2 +/* E205C4 802B74B4 3C01802B */ lui $at, %hi(D_802B7CC0) +/* E205C8 802B74B8 00220821 */ addu $at, $at, $v0 +/* E205CC 802B74BC 8C227CC0 */ lw $v0, %lo(D_802B7CC0)($at) +/* E205D0 802B74C0 00400008 */ jr $v0 +/* E205D4 802B74C4 00000000 */ nop +/* E205D8 802B74C8 080ADD64 */ j .L802B7590 +/* E205DC 802B74CC 2410FFFF */ addiu $s0, $zero, -1 +.L802B74D0: +/* E205E0 802B74D0 3C020200 */ lui $v0, 0x200 +.L802B74D4: +/* E205E4 802B74D4 8E230000 */ lw $v1, ($s1) +/* E205E8 802B74D8 34422000 */ ori $v0, $v0, 0x2000 +/* E205EC 802B74DC 00621824 */ and $v1, $v1, $v0 +/* E205F0 802B74E0 3C020200 */ lui $v0, 0x200 +/* E205F4 802B74E4 1462000F */ bne $v1, $v0, .L802B7524 +/* E205F8 802B74E8 3C03F7FF */ lui $v1, 0xf7ff +/* E205FC 802B74EC 10A0000C */ beqz $a1, .L802B7520 +/* E20600 802B74F0 3C031000 */ lui $v1, 0x1000 +/* E20604 802B74F4 8CA20000 */ lw $v0, ($a1) +/* E20608 802B74F8 00431024 */ and $v0, $v0, $v1 +/* E2060C 802B74FC 10400009 */ beqz $v0, .L802B7524 +/* E20610 802B7500 3C03F7FF */ lui $v1, 0xf7ff +/* E20614 802B7504 80A200A4 */ lb $v0, 0xa4($a1) +/* E20618 802B7508 862300C6 */ lh $v1, 0xc6($s1) +/* E2061C 802B750C 34502000 */ ori $s0, $v0, 0x2000 +/* E20620 802B7510 14700029 */ bne $v1, $s0, .L802B75B8 +/* E20624 802B7514 3C03F7FF */ lui $v1, 0xf7ff +/* E20628 802B7518 080ADD74 */ j .L802B75D0 +/* E2062C 802B751C 24020001 */ addiu $v0, $zero, 1 +.L802B7520: +/* E20630 802B7520 3C03F7FF */ lui $v1, 0xf7ff +.L802B7524: +/* E20634 802B7524 3463FFFF */ ori $v1, $v1, 0xffff +/* E20638 802B7528 0000102D */ daddu $v0, $zero, $zero +/* E2063C 802B752C 8E240000 */ lw $a0, ($s1) +/* E20640 802B7530 2405FFFF */ addiu $a1, $zero, -1 +/* E20644 802B7534 A62500C6 */ sh $a1, 0xc6($s1) +/* E20648 802B7538 00832024 */ and $a0, $a0, $v1 +/* E2064C 802B753C 080ADD74 */ j .L802B75D0 +/* E20650 802B7540 AE240000 */ sw $a0, ($s1) +.L802B7544: +/* E20654 802B7544 14400007 */ bnez $v0, .L802B7564 +/* E20658 802B7548 32022000 */ andi $v0, $s0, 0x2000 +/* E2065C 802B754C 14400010 */ bnez $v0, .L802B7590 +/* E20660 802B7550 00000000 */ nop +/* E20664 802B7554 0C05173A */ jal func_80145CE8 +/* E20668 802B7558 0200202D */ daddu $a0, $s0, $zero +/* E2066C 802B755C 080ADD5B */ j .L802B756C +/* E20670 802B7560 00000000 */ nop +.L802B7564: +/* E20674 802B7564 0C0394BE */ jal func_800E52F8 +/* E20678 802B7568 00000000 */ nop +.L802B756C: +/* E2067C 802B756C 14400008 */ bnez $v0, .L802B7590 +/* E20680 802B7570 3C04F7FF */ lui $a0, 0xf7ff +/* E20684 802B7574 3484FFFF */ ori $a0, $a0, 0xffff +/* E20688 802B7578 8E230000 */ lw $v1, ($s1) +/* E2068C 802B757C 0000102D */ daddu $v0, $zero, $zero +/* E20690 802B7580 A63200C6 */ sh $s2, 0xc6($s1) +/* E20694 802B7584 00641824 */ and $v1, $v1, $a0 +/* E20698 802B7588 080ADD74 */ j .L802B75D0 +/* E2069C 802B758C AE230000 */ sw $v1, ($s1) +.L802B7590: +/* E206A0 802B7590 862200C6 */ lh $v0, 0xc6($s1) +/* E206A4 802B7594 14500008 */ bne $v0, $s0, .L802B75B8 +/* E206A8 802B7598 3C03F7FF */ lui $v1, 0xf7ff +/* E206AC 802B759C 8E220000 */ lw $v0, ($s1) +/* E206B0 802B75A0 3C030800 */ lui $v1, 0x800 +/* E206B4 802B75A4 00431024 */ and $v0, $v0, $v1 +/* E206B8 802B75A8 10400007 */ beqz $v0, .L802B75C8 +/* E206BC 802B75AC 0000102D */ daddu $v0, $zero, $zero +/* E206C0 802B75B0 080ADD74 */ j .L802B75D0 +/* E206C4 802B75B4 00000000 */ nop +.L802B75B8: +/* E206C8 802B75B8 8E220000 */ lw $v0, ($s1) +/* E206CC 802B75BC 3463FFFF */ ori $v1, $v1, 0xffff +/* E206D0 802B75C0 00431024 */ and $v0, $v0, $v1 +/* E206D4 802B75C4 AE220000 */ sw $v0, ($s1) +.L802B75C8: +/* E206D8 802B75C8 A63000C6 */ sh $s0, 0xc6($s1) +/* E206DC 802B75CC 24020001 */ addiu $v0, $zero, 1 +.L802B75D0: +/* E206E0 802B75D0 8FBF001C */ lw $ra, 0x1c($sp) +/* E206E4 802B75D4 8FB20018 */ lw $s2, 0x18($sp) +/* E206E8 802B75D8 8FB10014 */ lw $s1, 0x14($sp) +/* E206EC 802B75DC 8FB00010 */ lw $s0, 0x10($sp) +/* E206F0 802B75E0 03E00008 */ jr $ra +/* E206F4 802B75E4 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_E20110/func_802B75E8_E206F8.s b/asm/nonmatchings/code_E20110/func_802B75E8_E206F8.s new file mode 100644 index 0000000000..8b1805286a --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B75E8_E206F8.s @@ -0,0 +1,87 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B75E8_E206F8 +/* E206F8 802B75E8 3C05802B */ lui $a1, %hi(D_802B7CB8) +/* E206FC 802B75EC 24A57CB8 */ addiu $a1, $a1, %lo(D_802B7CB8) +/* E20700 802B75F0 8CA30000 */ lw $v1, ($a1) +/* E20704 802B75F4 90620021 */ lbu $v0, 0x21($v1) +/* E20708 802B75F8 90640022 */ lbu $a0, 0x22($v1) +/* E2070C 802B75FC 00441021 */ addu $v0, $v0, $a0 +/* E20710 802B7600 A0620021 */ sb $v0, 0x21($v1) +/* E20714 802B7604 8CA30000 */ lw $v1, ($a1) +/* E20718 802B7608 80620021 */ lb $v0, 0x21($v1) +/* E2071C 802B760C 3C068011 */ lui $a2, %hi(gPlayerStatus) +/* E20720 802B7610 24C6EFC8 */ addiu $a2, $a2, %lo(gPlayerStatus) +/* E20724 802B7614 28420005 */ slti $v0, $v0, 5 +/* E20728 802B7618 14400006 */ bnez $v0, .L802B7634 +/* E2072C 802B761C 2402FFFF */ addiu $v0, $zero, -1 +/* E20730 802B7620 A0620022 */ sb $v0, 0x22($v1) +/* E20734 802B7624 8CA30000 */ lw $v1, ($a1) +/* E20738 802B7628 24020004 */ addiu $v0, $zero, 4 +/* E2073C 802B762C A0620021 */ sb $v0, 0x21($v1) +/* E20740 802B7630 8CA30000 */ lw $v1, ($a1) +.L802B7634: +/* E20744 802B7634 80620021 */ lb $v0, 0x21($v1) +/* E20748 802B7638 2842FFFC */ slti $v0, $v0, -4 +/* E2074C 802B763C 10400005 */ beqz $v0, .L802B7654 +/* E20750 802B7640 24020001 */ addiu $v0, $zero, 1 +/* E20754 802B7644 A0620022 */ sb $v0, 0x22($v1) +/* E20758 802B7648 8CA30000 */ lw $v1, ($a1) +/* E2075C 802B764C 2402FFFC */ addiu $v0, $zero, -4 +/* E20760 802B7650 A0620021 */ sb $v0, 0x21($v1) +.L802B7654: +/* E20764 802B7654 8CA40000 */ lw $a0, ($a1) +/* E20768 802B7658 C4C00028 */ lwc1 $f0, 0x28($a2) +/* E2076C 802B765C C4820000 */ lwc1 $f2, ($a0) +/* E20770 802B7660 46020001 */ sub.s $f0, $f0, $f2 +/* E20774 802B7664 3C013F2A */ lui $at, 0x3f2a +/* E20778 802B7668 34217EFA */ ori $at, $at, 0x7efa +/* E2077C 802B766C 44812000 */ mtc1 $at, $f4 +/* E20780 802B7670 00000000 */ nop +/* E20784 802B7674 46040182 */ mul.s $f6, $f0, $f4 +/* E20788 802B7678 00000000 */ nop +/* E2078C 802B767C 46061080 */ add.s $f2, $f2, $f6 +/* E20790 802B7680 E4820000 */ swc1 $f2, ($a0) +/* E20794 802B7684 C4C00030 */ lwc1 $f0, 0x30($a2) +/* E20798 802B7688 C4820008 */ lwc1 $f2, 8($a0) +/* E2079C 802B768C 46020001 */ sub.s $f0, $f0, $f2 +/* E207A0 802B7690 46040182 */ mul.s $f6, $f0, $f4 +/* E207A4 802B7694 00000000 */ nop +/* E207A8 802B7698 80830021 */ lb $v1, 0x21($a0) +/* E207AC 802B769C 46061080 */ add.s $f2, $f2, $f6 +/* E207B0 802B76A0 C4840004 */ lwc1 $f4, 4($a0) +/* E207B4 802B76A4 44833000 */ mtc1 $v1, $f6 +/* E207B8 802B76A8 00000000 */ nop +/* E207BC 802B76AC 468031A0 */ cvt.s.w $f6, $f6 +/* E207C0 802B76B0 E4820008 */ swc1 $f2, 8($a0) +/* E207C4 802B76B4 84C200B0 */ lh $v0, 0xb0($a2) +/* E207C8 802B76B8 C4C0002C */ lwc1 $f0, 0x2c($a2) +/* E207CC 802B76BC 44821000 */ mtc1 $v0, $f2 +/* E207D0 802B76C0 00000000 */ nop +/* E207D4 802B76C4 468010A0 */ cvt.s.w $f2, $f2 +/* E207D8 802B76C8 8CC20004 */ lw $v0, 4($a2) +/* E207DC 802B76CC 46020080 */ add.s $f2, $f0, $f2 +/* E207E0 802B76D0 30421000 */ andi $v0, $v0, 0x1000 +/* E207E4 802B76D4 3C014000 */ lui $at, 0x4000 +/* E207E8 802B76D8 44810000 */ mtc1 $at, $f0 +/* E207EC 802B76DC 54400005 */ bnel $v0, $zero, .L802B76F4 +/* E207F0 802B76E0 46001000 */ add.s $f0, $f2, $f0 +/* E207F4 802B76E4 3C014100 */ lui $at, 0x4100 +/* E207F8 802B76E8 44810000 */ mtc1 $at, $f0 +/* E207FC 802B76EC 00000000 */ nop +/* E20800 802B76F0 46001000 */ add.s $f0, $f2, $f0 +.L802B76F4: +/* E20804 802B76F4 46060000 */ add.s $f0, $f0, $f6 +/* E20808 802B76F8 46040001 */ sub.s $f0, $f0, $f4 +/* E2080C 802B76FC 3C013E80 */ lui $at, 0x3e80 +/* E20810 802B7700 44811000 */ mtc1 $at, $f2 +/* E20814 802B7704 00000000 */ nop +/* E20818 802B7708 46020182 */ mul.s $f6, $f0, $f2 +/* E2081C 802B770C 00000000 */ nop +/* E20820 802B7710 3C02802B */ lui $v0, %hi(D_802B7CB8) +/* E20824 802B7714 8C427CB8 */ lw $v0, %lo(D_802B7CB8)($v0) +/* E20828 802B7718 C4400004 */ lwc1 $f0, 4($v0) +/* E2082C 802B771C 46060000 */ add.s $f0, $f0, $f6 +/* E20830 802B7720 03E00008 */ jr $ra +/* E20834 802B7724 E4400004 */ swc1 $f0, 4($v0) diff --git a/asm/nonmatchings/code_E20110/func_802B7728_E20838.s b/asm/nonmatchings/code_E20110/func_802B7728_E20838.s new file mode 100644 index 0000000000..f7c2780e9e --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B7728_E20838.s @@ -0,0 +1,187 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B7728_E20838 +/* E20838 802B7728 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* E2083C 802B772C AFB00010 */ sw $s0, 0x10($sp) +/* E20840 802B7730 241000FF */ addiu $s0, $zero, 0xff +/* E20844 802B7734 AFBF0018 */ sw $ra, 0x18($sp) +/* E20848 802B7738 0C0ADD7A */ jal func_802B75E8_E206F8 +/* E2084C 802B773C AFB10014 */ sw $s1, 0x14($sp) +/* E20850 802B7740 3C03802B */ lui $v1, %hi(D_802B7CB8) +/* E20854 802B7744 24637CB8 */ addiu $v1, $v1, %lo(D_802B7CB8) +/* E20858 802B7748 8C640000 */ lw $a0, ($v1) +/* E2085C 802B774C 3C118011 */ lui $s1, %hi(gPlayerStatus) +/* E20860 802B7750 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) +/* E20864 802B7754 90850023 */ lbu $a1, 0x23($a0) +/* E20868 802B7758 24020001 */ addiu $v0, $zero, 1 +/* E2086C 802B775C 10A20026 */ beq $a1, $v0, .L802B77F8 +/* E20870 802B7760 28A20002 */ slti $v0, $a1, 2 +/* E20874 802B7764 10400005 */ beqz $v0, .L802B777C +/* E20878 802B7768 24020002 */ addiu $v0, $zero, 2 +/* E2087C 802B776C 10A00009 */ beqz $a1, .L802B7794 +/* E20880 802B7770 00000000 */ nop +/* E20884 802B7774 080ADE4A */ j .L802B7928 +/* E20888 802B7778 00000000 */ nop +.L802B777C: +/* E2088C 802B777C 10A20027 */ beq $a1, $v0, .L802B781C +/* E20890 802B7780 24020003 */ addiu $v0, $zero, 3 +/* E20894 802B7784 10A20033 */ beq $a1, $v0, .L802B7854 +/* E20898 802B7788 00000000 */ nop +/* E2089C 802B778C 080ADE4A */ j .L802B7928 +/* E208A0 802B7790 00000000 */ nop +.L802B7794: +/* E208A4 802B7794 C4800010 */ lwc1 $f0, 0x10($a0) +/* E208A8 802B7798 3C01802B */ lui $at, %hi(D_802B7D88) +/* E208AC 802B779C D4227D88 */ ldc1 $f2, %lo(D_802B7D88)($at) +/* E208B0 802B77A0 3C01802B */ lui $at, %hi(D_802B7D90) +/* E208B4 802B77A4 D4247D90 */ ldc1 $f4, %lo(D_802B7D90)($at) +/* E208B8 802B77A8 46000021 */ cvt.d.s $f0, $f0 +/* E208BC 802B77AC 46220000 */ add.d $f0, $f0, $f2 +/* E208C0 802B77B0 AC80000C */ sw $zero, 0xc($a0) +/* E208C4 802B77B4 46200020 */ cvt.s.d $f0, $f0 +/* E208C8 802B77B8 460000A1 */ cvt.d.s $f2, $f0 +/* E208CC 802B77BC 4622203E */ c.le.d $f4, $f2 +/* E208D0 802B77C0 00000000 */ nop +/* E208D4 802B77C4 45000058 */ bc1f .L802B7928 +/* E208D8 802B77C8 E4800010 */ swc1 $f0, 0x10($a0) +/* E208DC 802B77CC 90820023 */ lbu $v0, 0x23($a0) +/* E208E0 802B77D0 3C013F0C */ lui $at, 0x3f0c +/* E208E4 802B77D4 3421CCCD */ ori $at, $at, 0xcccd +/* E208E8 802B77D8 44810000 */ mtc1 $at, $f0 +/* E208EC 802B77DC 24420001 */ addiu $v0, $v0, 1 +/* E208F0 802B77E0 E4800010 */ swc1 $f0, 0x10($a0) +/* E208F4 802B77E4 A0820023 */ sb $v0, 0x23($a0) +/* E208F8 802B77E8 8C630000 */ lw $v1, ($v1) +/* E208FC 802B77EC 2402000C */ addiu $v0, $zero, 0xc +/* E20900 802B77F0 080ADE4A */ j .L802B7928 +/* E20904 802B77F4 AC620014 */ sw $v0, 0x14($v1) +.L802B77F8: +/* E20908 802B77F8 8C820014 */ lw $v0, 0x14($a0) +/* E2090C 802B77FC AC80000C */ sw $zero, 0xc($a0) +/* E20910 802B7800 2442FFFF */ addiu $v0, $v0, -1 +/* E20914 802B7804 1C400048 */ bgtz $v0, .L802B7928 +/* E20918 802B7808 AC820014 */ sw $v0, 0x14($a0) +/* E2091C 802B780C 90820023 */ lbu $v0, 0x23($a0) +/* E20920 802B7810 24420001 */ addiu $v0, $v0, 1 +/* E20924 802B7814 080ADE4A */ j .L802B7928 +/* E20928 802B7818 A0820023 */ sb $v0, 0x23($a0) +.L802B781C: +/* E2092C 802B781C C48C000C */ lwc1 $f12, 0xc($a0) +/* E20930 802B7820 3C014120 */ lui $at, 0x4120 +/* E20934 802B7824 44810000 */ mtc1 $at, $f0 +/* E20938 802B7828 00000000 */ nop +/* E2093C 802B782C 46006300 */ add.s $f12, $f12, $f0 +/* E20940 802B7830 3C0143B4 */ lui $at, 0x43b4 +/* E20944 802B7834 44810000 */ mtc1 $at, $f0 +/* E20948 802B7838 00000000 */ nop +/* E2094C 802B783C 460C003E */ c.le.s $f0, $f12 +/* E20950 802B7840 00000000 */ nop +/* E20954 802B7844 45030001 */ bc1tl .L802B784C +/* E20958 802B7848 46006301 */ sub.s $f12, $f12, $f0 +.L802B784C: +/* E2095C 802B784C 080ADE47 */ j .L802B791C +/* E20960 802B7850 E48C000C */ swc1 $f12, 0xc($a0) +.L802B7854: +/* E20964 802B7854 C48C000C */ lwc1 $f12, 0xc($a0) +/* E20968 802B7858 3C0141C8 */ lui $at, 0x41c8 +/* E2096C 802B785C 44810000 */ mtc1 $at, $f0 +/* E20970 802B7860 00000000 */ nop +/* E20974 802B7864 46006300 */ add.s $f12, $f12, $f0 +/* E20978 802B7868 3C0143B4 */ lui $at, 0x43b4 +/* E2097C 802B786C 44810000 */ mtc1 $at, $f0 +/* E20980 802B7870 00000000 */ nop +/* E20984 802B7874 460C003E */ c.le.s $f0, $f12 +/* E20988 802B7878 00000000 */ nop +/* E2098C 802B787C 45030001 */ bc1tl .L802B7884 +/* E20990 802B7880 46006301 */ sub.s $f12, $f12, $f0 +.L802B7884: +/* E20994 802B7884 8C82001C */ lw $v0, 0x1c($a0) +/* E20998 802B7888 E48C000C */ swc1 $f12, 0xc($a0) +/* E2099C 802B788C 2442FFE7 */ addiu $v0, $v0, -0x19 +/* E209A0 802B7890 04410002 */ bgez $v0, .L802B789C +/* E209A4 802B7894 AC82001C */ sw $v0, 0x1c($a0) +/* E209A8 802B7898 AC80001C */ sw $zero, 0x1c($a0) +.L802B789C: +/* E209AC 802B789C 3C01428C */ lui $at, 0x428c +/* E209B0 802B78A0 44810000 */ mtc1 $at, $f0 +/* E209B4 802B78A4 00000000 */ nop +/* E209B8 802B78A8 460C003E */ c.le.s $f0, $f12 +/* E209BC 802B78AC 00000000 */ nop +/* E209C0 802B78B0 45000008 */ bc1f .L802B78D4 +/* E209C4 802B78B4 00000000 */ nop +/* E209C8 802B78B8 3C0142DC */ lui $at, 0x42dc +/* E209CC 802B78BC 44810000 */ mtc1 $at, $f0 +/* E209D0 802B78C0 00000000 */ nop +/* E209D4 802B78C4 4600603E */ c.le.s $f12, $f0 +/* E209D8 802B78C8 00000000 */ nop +/* E209DC 802B78CC 4501000F */ bc1t .L802B790C +/* E209E0 802B78D0 00000000 */ nop +.L802B78D4: +/* E209E4 802B78D4 3C01437A */ lui $at, 0x437a +/* E209E8 802B78D8 44810000 */ mtc1 $at, $f0 +/* E209EC 802B78DC 00000000 */ nop +/* E209F0 802B78E0 460C003E */ c.le.s $f0, $f12 +/* E209F4 802B78E4 00000000 */ nop +/* E209F8 802B78E8 4500000C */ bc1f .L802B791C +/* E209FC 802B78EC 00000000 */ nop +/* E20A00 802B78F0 3C014391 */ lui $at, 0x4391 +/* E20A04 802B78F4 44810000 */ mtc1 $at, $f0 +/* E20A08 802B78F8 00000000 */ nop +/* E20A0C 802B78FC 4600603E */ c.le.s $f12, $f0 +/* E20A10 802B7900 00000000 */ nop +/* E20A14 802B7904 45000005 */ bc1f .L802B791C +/* E20A18 802B7908 00000000 */ nop +.L802B790C: +/* E20A1C 802B790C 3C02802B */ lui $v0, %hi(func_802B79C8_E20AD8) +/* E20A20 802B7910 244279C8 */ addiu $v0, $v0, %lo(func_802B79C8_E20AD8) +/* E20A24 802B7914 3C018011 */ lui $at, %hi(D_8010C958) +/* E20A28 802B7918 AC22C958 */ sw $v0, %lo(D_8010C958)($at) +.L802B791C: +/* E20A2C 802B791C 0C0ADC00 */ jal func_802B7000_E20110 +/* E20A30 802B7920 00000000 */ nop +/* E20A34 802B7924 0040802D */ daddu $s0, $v0, $zero +.L802B7928: +/* E20A38 802B7928 3C02802B */ lui $v0, %hi(D_802B7CB8) +/* E20A3C 802B792C 8C427CB8 */ lw $v0, %lo(D_802B7CB8)($v0) +/* E20A40 802B7930 A0500024 */ sb $s0, 0x24($v0) +/* E20A44 802B7934 0C0ADD14 */ jal func_802B7450_E20560 +/* E20A48 802B7938 823000B4 */ lb $s0, 0xb4($s1) +/* E20A4C 802B793C 1040000A */ beqz $v0, .L802B7968 +/* E20A50 802B7940 00000000 */ nop +/* E20A54 802B7944 82220015 */ lb $v0, 0x15($s1) +/* E20A58 802B7948 14400007 */ bnez $v0, .L802B7968 +/* E20A5C 802B794C 00000000 */ nop +/* E20A60 802B7950 8E220000 */ lw $v0, ($s1) +/* E20A64 802B7954 30420020 */ andi $v0, $v0, 0x20 +/* E20A68 802B7958 14400003 */ bnez $v0, .L802B7968 +/* E20A6C 802B795C 2E020003 */ sltiu $v0, $s0, 3 +/* E20A70 802B7960 14400005 */ bnez $v0, .L802B7978 +/* E20A74 802B7964 00000000 */ nop +.L802B7968: +/* E20A78 802B7968 3C03802B */ lui $v1, %hi(D_802B7CB8) +/* E20A7C 802B796C 8C637CB8 */ lw $v1, %lo(D_802B7CB8)($v1) +/* E20A80 802B7970 24020003 */ addiu $v0, $zero, 3 +/* E20A84 802B7974 A0620023 */ sb $v0, 0x23($v1) +.L802B7978: +/* E20A88 802B7978 862400C6 */ lh $a0, 0xc6($s1) +/* E20A8C 802B797C 962200C6 */ lhu $v0, 0xc6($s1) +/* E20A90 802B7980 0480000C */ bltz $a0, .L802B79B4 +/* E20A94 802B7984 30424000 */ andi $v0, $v0, 0x4000 +/* E20A98 802B7988 1040000A */ beqz $v0, .L802B79B4 +/* E20A9C 802B798C 00000000 */ nop +/* E20AA0 802B7990 0C04417A */ jal get_entity_by_index +/* E20AA4 802B7994 00000000 */ nop +/* E20AA8 802B7998 8C420000 */ lw $v0, ($v0) +/* E20AAC 802B799C 30421000 */ andi $v0, $v0, 0x1000 +/* E20AB0 802B79A0 14400004 */ bnez $v0, .L802B79B4 +/* E20AB4 802B79A4 24020003 */ addiu $v0, $zero, 3 +/* E20AB8 802B79A8 3C03802B */ lui $v1, %hi(D_802B7CB8) +/* E20ABC 802B79AC 8C637CB8 */ lw $v1, %lo(D_802B7CB8)($v1) +/* E20AC0 802B79B0 A0620023 */ sb $v0, 0x23($v1) +.L802B79B4: +/* E20AC4 802B79B4 8FBF0018 */ lw $ra, 0x18($sp) +/* E20AC8 802B79B8 8FB10014 */ lw $s1, 0x14($sp) +/* E20ACC 802B79BC 8FB00010 */ lw $s0, 0x10($sp) +/* E20AD0 802B79C0 03E00008 */ jr $ra +/* E20AD4 802B79C4 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/asm/nonmatchings/code_E20110/func_802B79C8_E20AD8.s b/asm/nonmatchings/code_E20110/func_802B79C8_E20AD8.s new file mode 100644 index 0000000000..30482426d3 --- /dev/null +++ b/asm/nonmatchings/code_E20110/func_802B79C8_E20AD8.s @@ -0,0 +1,26 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802B79C8_E20AD8 +/* E20AD8 802B79C8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* E20ADC 802B79CC AFBF0010 */ sw $ra, 0x10($sp) +/* E20AE0 802B79D0 0C0ADD7A */ jal func_802B75E8_E206F8 +/* E20AE4 802B79D4 00000000 */ nop +/* E20AE8 802B79D8 3C04800F */ lui $a0, %hi(gPlayerStatusPtr) +/* E20AEC 802B79DC 8C847B30 */ lw $a0, %lo(gPlayerStatusPtr)($a0) +/* E20AF0 802B79E0 2402FFFF */ addiu $v0, $zero, -1 +/* E20AF4 802B79E4 A48200C6 */ sh $v0, 0xc6($a0) +/* E20AF8 802B79E8 8C820004 */ lw $v0, 4($a0) +/* E20AFC 802B79EC 2403FFEF */ addiu $v1, $zero, -0x11 +/* E20B00 802B79F0 3C018011 */ lui $at, %hi(D_8010C958) +/* E20B04 802B79F4 AC20C958 */ sw $zero, %lo(D_8010C958)($at) +/* E20B08 802B79F8 AC8000C8 */ sw $zero, 0xc8($a0) +/* E20B0C 802B79FC 00431024 */ and $v0, $v0, $v1 +/* E20B10 802B7A00 AC820004 */ sw $v0, 4($a0) +/* E20B14 802B7A04 0C03BCF5 */ jal func_800EF3D4 +/* E20B18 802B7A08 0000202D */ daddu $a0, $zero, $zero +/* E20B1C 802B7A0C 0C03BCE9 */ jal func_800EF3A4 +/* E20B20 802B7A10 00000000 */ nop +/* E20B24 802B7A14 8FBF0010 */ lw $ra, 0x10($sp) +/* E20B28 802B7A18 03E00008 */ jr $ra +/* E20B2C 802B7A1C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/src/code_E20110.c b/src/code_E20110.c new file mode 100644 index 0000000000..a77be08fed --- /dev/null +++ b/src/code_E20110.c @@ -0,0 +1,15 @@ +#include "common.h" + +INCLUDE_ASM(s32, "code_E20110", func_802B7000_E20110); + +INCLUDE_ASM(s32, "code_E20110", func_802B70B4_E201C4); + +INCLUDE_ASM(s32, "code_E20110", func_802B71E8_E202F8); + +INCLUDE_ASM(s32, "code_E20110", func_802B7450_E20560); + +INCLUDE_ASM(s32, "code_E20110", func_802B75E8_E206F8); + +INCLUDE_ASM(s32, "code_E20110", func_802B7728_E20838); + +INCLUDE_ASM(s32, "code_E20110", func_802B79C8_E20AD8); diff --git a/tools/splat.yaml b/tools/splat.yaml index b13da7226f..d8ef183779 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -8270,14 +8270,13 @@ segments: files: - [0xE1E460, c] - [0xE1EC20, bin] - - [0xE20110, bin] # replace with following commented out section once vram is discovered - # - type: code - # overlay: True - # start: 0xE20110 - # vram: 0 # unknown - # files: - # - [0xE20110, c] - # - [0xE20B30, bin] # may or may not be part of this overlay, perhaps split further + - type: code + overlay: True + start: 0xE20110 + vram: 0x802B7000 # this is a guess, may be wrong + files: + - [0xE20110, c] + - [0xE20B30, bin] - type: code overlay: True start: 0xE20EB0 @@ -8421,6 +8420,7 @@ segments: files: - [0xE2A6B0, c] - [0xE2B420, bin] + - [0xE2B530, bin] - [0xEA0900, bin] - [0xF007C0, bin, Battle_Fanfare_02] # BGM start - [0xF02160, bin, Hey_You_03] diff --git a/undefined_syms_auto.txt b/undefined_syms_auto.txt index 7eb31c1366..b59522050f 100644 --- a/undefined_syms_auto.txt +++ b/undefined_syms_auto.txt @@ -934,10 +934,10 @@ D_8010F250 = 0x8010F250; gPlayerData = 0x8010F290; D_8010F6B8 = 0x8010F6B8; update_entities = 0x8010F6D0; -D_80147474 = 0x80147474; func_80147474 = 0x80147474; -func_80147574 = 0x80147574; +D_80147474 = 0x80147474; D_80147574 = 0x80147574; +func_80147574 = 0x80147574; func_80147650 = 0x80147650; D_8014B7F0 = 0x8014B7F0; D_8014C248 = 0x8014C248; @@ -1779,8 +1779,8 @@ D_8024161C = 0x8024161C; func_8024162C_9F606C = 0x8024162C; D_80241650 = 0x80241650; func_80241658_8B16C8 = 0x80241658; -func_80241680_8537F0 = 0x80241680; func_80241680_BE0410 = 0x80241680; +func_80241680_8537F0 = 0x80241680; D_80241684 = 0x80241684; D_80241688 = 0x80241688; D_8024168B = 0x8024168B; @@ -1803,8 +1803,8 @@ D_802417D8 = 0x802417D8; D_802417E4 = 0x802417E4; D_802417E8 = 0x802417E8; func_802417EC_C5BF2C = 0x802417EC; -D_80241800 = 0x80241800; func_80241800_8B1870 = 0x80241800; +D_80241800 = 0x80241800; D_80241810 = 0x80241810; D_80241820 = 0x80241820; func_80241850_A2BA90 = 0x80241850; @@ -1820,8 +1820,8 @@ D_80241A00 = 0x80241A00; func_80241A78_BA61F8 = 0x80241A78; func_80241AC8_D2D7F8 = 0x80241AC8; func_80241AD4_B4C544 = 0x80241AD4; -func_80241AE0_9F6520 = 0x80241AE0; func_80241AE0_DCE7B0 = 0x80241AE0; +func_80241AE0_9F6520 = 0x80241AE0; D_80241AE8 = 0x80241AE8; func_80241AEC_80236C = 0x80241AEC; func_80241AF0_A6FED0 = 0x80241AF0; @@ -1900,8 +1900,8 @@ func_80242000_C48BE0 = 0x80242000; D_80242000 = 0x80242000; D_80242008 = 0x80242008; D_80242010 = 0x80242010; -D_80242030 = 0x80242030; func_80242030_8EDE50 = 0x80242030; +D_80242030 = 0x80242030; D_80242038 = 0x80242038; func_80242040_8B20B0 = 0x80242040; D_80242048 = 0x80242048; @@ -1966,8 +1966,8 @@ D_80242518 = 0x80242518; D_80242520 = 0x80242520; D_80242528 = 0x80242528; D_80242530 = 0x80242530; -D_80242538 = 0x80242538; func_80242538_D223C8 = 0x80242538; +D_80242538 = 0x80242538; D_8024253C = 0x8024253C; func_80242540_A09440 = 0x80242540; func_80242558_A1D658 = 0x80242558; @@ -1980,15 +1980,15 @@ D_802425E4 = 0x802425E4; D_802425E8 = 0x802425E8; D_80242610 = 0x80242610; D_80242614 = 0x80242614; -func_80242618_A18838 = 0x80242618; D_80242618 = 0x80242618; +func_80242618_A18838 = 0x80242618; D_80242630 = 0x80242630; D_8024264C = 0x8024264C; D_80242670 = 0x80242670; D_80242678 = 0x80242678; func_80242680_802F00 = 0x80242680; -D_80242688 = 0x80242688; func_80242688_C79368 = 0x80242688; +D_80242688 = 0x80242688; D_802426B0 = 0x802426B0; D_802426B8 = 0x802426B8; func_802426C8_7ED3D8 = 0x802426C8; @@ -2048,8 +2048,8 @@ D_80242BF8 = 0x80242BF8; func_80242C00_BB0540 = 0x80242C00; D_80242C08 = 0x80242C08; D_80242C0E = 0x80242C0E; -func_80242C30_B37800 = 0x80242C30; D_80242C30 = 0x80242C30; +func_80242C30_B37800 = 0x80242C30; D_80242C38 = 0x80242C38; D_80242C40 = 0x80242C40; func_80242C48_9122F8 = 0x80242C48; @@ -4646,16 +4646,23 @@ D_802B7930 = 0x802B7930; D_802B79A8 = 0x802B79A8; D_802B79B0 = 0x802B79B0; D_802B79B8 = 0x802B79B8; +D_802B7A20 = 0x802B7A20; D_802B7BA0 = 0x802B7BA0; D_802B7BC0 = 0x802B7BC0; D_802B7BE0 = 0x802B7BE0; D_802B7C00 = 0x802B7C00; +D_802B7C20 = 0x802B7C20; +D_802B7C40 = 0x802B7C40; D_802B7C60 = 0x802B7C60; D_802B7C78 = 0x802B7C78; D_802B7C80 = 0x802B7C80; D_802B7CA0 = 0x802B7CA0; +D_802B7CB8 = 0x802B7CB8; +D_802B7CC0 = 0x802B7CC0; D_802B7D18 = 0x802B7D18; D_802B7D20 = 0x802B7D20; +D_802B7D88 = 0x802B7D88; +D_802B7D90 = 0x802B7D90; D_802B9E00 = 0x802B9E00; D_802BCE30 = 0x802BCE30; D_802BCE32 = 0x802BCE32;