diff --git a/asm/nonmatchings/code_316C00/func_802AE000_316C00.s b/asm/nonmatchings/code_316C00/func_802AE000_316C00.s new file mode 100644 index 0000000000..37913e9fa0 --- /dev/null +++ b/asm/nonmatchings/code_316C00/func_802AE000_316C00.s @@ -0,0 +1,110 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802AE000_316C00 +/* 316C00 802AE000 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 316C04 802AE004 AFB40028 */ sw $s4, 0x28($sp) +/* 316C08 802AE008 3C144BF1 */ lui $s4, 0x4bf1 +/* 316C0C 802AE00C 36945BF6 */ ori $s4, $s4, 0x5bf6 +/* 316C10 802AE010 AFB30024 */ sw $s3, 0x24($sp) +/* 316C14 802AE014 3C137013 */ lui $s3, 0x7013 +/* 316C18 802AE018 2673BC11 */ addiu $s3, $s3, -0x43ef +/* 316C1C 802AE01C AFB00018 */ sw $s0, 0x18($sp) +/* 316C20 802AE020 0000802D */ daddu $s0, $zero, $zero +/* 316C24 802AE024 3C05B000 */ lui $a1, 0xb000 +/* 316C28 802AE028 34A50574 */ ori $a1, $a1, 0x574 +/* 316C2C 802AE02C 3C04800A */ lui $a0, %hi(carthandle) +/* 316C30 802AE030 8C84A638 */ lw $a0, %lo(carthandle)($a0) +/* 316C34 802AE034 27A60010 */ addiu $a2, $sp, 0x10 +/* 316C38 802AE038 AFB20020 */ sw $s2, 0x20($sp) +/* 316C3C 802AE03C 0200902D */ daddu $s2, $s0, $zero +/* 316C40 802AE040 AFB5002C */ sw $s5, 0x2c($sp) +/* 316C44 802AE044 3C158006 */ lui $s5, %hi(osEPiReadIo) +/* 316C48 802AE048 26B50DC0 */ addiu $s5, $s5, %lo(osEPiReadIo) +/* 316C4C 802AE04C AFBF003C */ sw $ra, 0x3c($sp) +/* 316C50 802AE050 AFBE0038 */ sw $fp, 0x38($sp) +/* 316C54 802AE054 AFB70034 */ sw $s7, 0x34($sp) +/* 316C58 802AE058 AFB60030 */ sw $s6, 0x30($sp) +/* 316C5C 802AE05C 02A0F809 */ jalr $s5 +/* 316C60 802AE060 AFB1001C */ sw $s1, 0x1c($sp) +/* 316C64 802AE064 3C110031 */ lui $s1, 0x31 +/* 316C68 802AE068 26316A70 */ addiu $s1, $s1, 0x6a70 +/* 316C6C 802AE06C 8FA20010 */ lw $v0, 0x10($sp) +/* 316C70 802AE070 3C030031 */ lui $v1, 0x31 +/* 316C74 802AE074 24636C00 */ addiu $v1, $v1, 0x6c00 +/* 316C78 802AE078 0282A023 */ subu $s4, $s4, $v0 +/* 316C7C 802AE07C 0223102B */ sltu $v0, $s1, $v1 +/* 316C80 802AE080 1040002B */ beqz $v0, .L802AE130 +/* 316C84 802AE084 241E0023 */ addiu $fp, $zero, 0x23 +/* 316C88 802AE088 24170003 */ addiu $s7, $zero, 3 +/* 316C8C 802AE08C 0060B02D */ daddu $s6, $v1, $zero +.L802AE090: +/* 316C90 802AE090 0220282D */ daddu $a1, $s1, $zero +/* 316C94 802AE094 3C04800A */ lui $a0, %hi(carthandle) +/* 316C98 802AE098 8C84A638 */ lw $a0, %lo(carthandle)($a0) +/* 316C9C 802AE09C 02A0F809 */ jalr $s5 +/* 316CA0 802AE0A0 27A60010 */ addiu $a2, $sp, 0x10 +/* 316CA4 802AE0A4 8FA30010 */ lw $v1, 0x10($sp) +/* 316CA8 802AE0A8 2407000F */ addiu $a3, $zero, 0xf +/* 316CAC 802AE0AC 3065FFFF */ andi $a1, $v1, 0xffff +/* 316CB0 802AE0B0 00032402 */ srl $a0, $v1, 0x10 +/* 316CB4 802AE0B4 00A41021 */ addu $v0, $a1, $a0 +/* 316CB8 802AE0B8 02028021 */ addu $s0, $s0, $v0 +/* 316CBC 802AE0BC 00121682 */ srl $v0, $s2, 0x1a +/* 316CC0 802AE0C0 1447000F */ bne $v0, $a3, .L802AE100 +/* 316CC4 802AE0C4 00031682 */ srl $v0, $v1, 0x1a +/* 316CC8 802AE0C8 24070009 */ addiu $a3, $zero, 9 +/* 316CCC 802AE0CC 50470003 */ beql $v0, $a3, .L802AE0DC +/* 316CD0 802AE0D0 00031542 */ srl $v0, $v1, 0x15 +/* 316CD4 802AE0D4 145E000A */ bne $v0, $fp, .L802AE100 +/* 316CD8 802AE0D8 00031542 */ srl $v0, $v1, 0x15 +.L802AE0DC: +/* 316CDC 802AE0DC 3043001F */ andi $v1, $v0, 0x1f +/* 316CE0 802AE0E0 00121402 */ srl $v0, $s2, 0x10 +/* 316CE4 802AE0E4 3042001F */ andi $v0, $v0, 0x1f +/* 316CE8 802AE0E8 14620005 */ bne $v1, $v0, .L802AE100 +/* 316CEC 802AE0EC 3082001F */ andi $v0, $a0, 0x1f +/* 316CF0 802AE0F0 14620003 */ bne $v1, $v0, .L802AE100 +/* 316CF4 802AE0F4 3242FFFF */ andi $v0, $s2, 0xffff +/* 316CF8 802AE0F8 02058023 */ subu $s0, $s0, $a1 +/* 316CFC 802AE0FC 02028023 */ subu $s0, $s0, $v0 +.L802AE100: +/* 316D00 802AE100 8FA40010 */ lw $a0, 0x10($sp) +/* 316D04 802AE104 00041682 */ srl $v0, $a0, 0x1a +/* 316D08 802AE108 14570006 */ bne $v0, $s7, .L802AE124 +/* 316D0C 802AE10C 26310004 */ addiu $s1, $s1, 4 +/* 316D10 802AE110 3083FFFF */ andi $v1, $a0, 0xffff +/* 316D14 802AE114 00041402 */ srl $v0, $a0, 0x10 +/* 316D18 802AE118 3042FC00 */ andi $v0, $v0, 0xfc00 +/* 316D1C 802AE11C 00621821 */ addu $v1, $v1, $v0 +/* 316D20 802AE120 02038023 */ subu $s0, $s0, $v1 +.L802AE124: +/* 316D24 802AE124 0236102B */ sltu $v0, $s1, $s6 +/* 316D28 802AE128 1440FFD9 */ bnez $v0, .L802AE090 +/* 316D2C 802AE12C 0080902D */ daddu $s2, $a0, $zero +.L802AE130: +/* 316D30 802AE130 3C02FFDB */ lui $v0, 0xffdb +/* 316D34 802AE134 34426641 */ ori $v0, $v0, 0x6641 +/* 316D38 802AE138 02021021 */ addu $v0, $s0, $v0 +/* 316D3C 802AE13C 02821023 */ subu $v0, $s4, $v0 +/* 316D40 802AE140 02629821 */ addu $s3, $s3, $v0 +/* 316D44 802AE144 00131F02 */ srl $v1, $s3, 0x1c +/* 316D48 802AE148 24020008 */ addiu $v0, $zero, 8 +/* 316D4C 802AE14C 14620003 */ bne $v1, $v0, .L802AE15C +/* 316D50 802AE150 00000000 */ nop +/* 316D54 802AE154 0260F809 */ jalr $s3 +/* 316D58 802AE158 00000000 */ nop +.L802AE15C: +/* 316D5C 802AE15C 8FBF003C */ lw $ra, 0x3c($sp) +/* 316D60 802AE160 8FBE0038 */ lw $fp, 0x38($sp) +/* 316D64 802AE164 8FB70034 */ lw $s7, 0x34($sp) +/* 316D68 802AE168 8FB60030 */ lw $s6, 0x30($sp) +/* 316D6C 802AE16C 8FB5002C */ lw $s5, 0x2c($sp) +/* 316D70 802AE170 8FB40028 */ lw $s4, 0x28($sp) +/* 316D74 802AE174 8FB30024 */ lw $s3, 0x24($sp) +/* 316D78 802AE178 8FB20020 */ lw $s2, 0x20($sp) +/* 316D7C 802AE17C 8FB1001C */ lw $s1, 0x1c($sp) +/* 316D80 802AE180 8FB00018 */ lw $s0, 0x18($sp) +/* 316D84 802AE184 03E00008 */ jr $ra +/* 316D88 802AE188 27BD0040 */ addiu $sp, $sp, 0x40 +/* 316D8C 802AE18C 00000000 */ nop diff --git a/src/code_316C00.c b/src/code_316C00.c new file mode 100644 index 0000000000..e680528418 --- /dev/null +++ b/src/code_316C00.c @@ -0,0 +1,3 @@ +#include "common.h" + +INCLUDE_ASM(s32, "code_316C00", func_802AE000_316C00); diff --git a/tools/splat.yaml b/tools/splat.yaml index 594f07dc84..44842ae94f 100644 --- a/tools/splat.yaml +++ b/tools/splat.yaml @@ -405,10 +405,16 @@ segments: files: - [0x3169f0, c, code_3169f0] - [0x316a70, c, code_316a70] - - [0x316c00, bin] # 0x802AE000 + - type: code + start: 0x316C00 + vram: 0x802AE000 + overlay: True + files: + - [0x316C00, c] - type: code start: 0x316D90 vram: 0x802AE000 + overlay: True files: - [0x316d90, c, code_316d90] - type: code diff --git a/undefined_syms_auto.txt b/undefined_syms_auto.txt index 2afe4237f0..d60422f4b8 100644 --- a/undefined_syms_auto.txt +++ b/undefined_syms_auto.txt @@ -930,8 +930,8 @@ D_8010F6B8 = 0x8010F6B8; update_entities = 0x8010F6D0; D_80147474 = 0x80147474; func_80147474 = 0x80147474; -D_80147574 = 0x80147574; func_80147574 = 0x80147574; +D_80147574 = 0x80147574; func_80147650 = 0x80147650; D_8014B7F0 = 0x8014B7F0; D_8014C248 = 0x8014C248; @@ -1678,8 +1678,8 @@ D_80241428 = 0x80241428; D_80241430 = 0x80241430; func_80241438_8535A8 = 0x80241438; D_8024143C = 0x8024143C; -func_80241440_B855C0 = 0x80241440; func_80241440_8ED260 = 0x80241440; +func_80241440_B855C0 = 0x80241440; D_80241448 = 0x80241448; func_80241470_95C670 = 0x80241470; D_80241478 = 0x80241478; @@ -1886,8 +1886,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; @@ -1900,8 +1900,8 @@ 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; @@ -1955,8 +1955,8 @@ D_80242AC4 = 0x80242AC4; D_80242ACC = 0x80242ACC; D_80242AD0 = 0x80242AD0; D_80242B7E = 0x80242B7E; -func_80242B90_A1DC90 = 0x80242B90; func_80242B90_803410 = 0x80242B90; +func_80242B90_A1DC90 = 0x80242B90; D_80242B98 = 0x80242B98; D_80242B9C = 0x80242B9C; pause_set_cursor_opacity = 0x80242BA0; @@ -1968,8 +1968,8 @@ D_80242BF8 = 0x80242BF8; func_80242C00_BB0540 = 0x80242C00; D_80242C08 = 0x80242C08; D_80242C0E = 0x80242C0E; -D_80242C30 = 0x80242C30; func_80242C30_B37800 = 0x80242C30; +D_80242C30 = 0x80242C30; D_80242C38 = 0x80242C38; D_80242C40 = 0x80242C40; func_80242C48_9122F8 = 0x80242C48; @@ -2032,8 +2032,8 @@ D_80243078 = 0x80243078; D_80243080 = 0x80243080; func_80243088_8551F8 = 0x80243088; D_8024308C = 0x8024308C; -func_80243090_C395C0 = 0x80243090; func_80243090_8B3100 = 0x80243090; +func_80243090_C395C0 = 0x80243090; D_80243098 = 0x80243098; func_8024309C_95E29C = 0x8024309C; D_802430A0 = 0x802430A0; @@ -4296,7 +4296,7 @@ D_802AD6A8 = 0x802AD6A8; D_802AD6AA = 0x802AD6AA; D_802AD6C0 = 0x802AD6C0; D_802AD6D4 = 0x802AD6D4; -func_802AE000 = 0x802AE000; +func_802AE000_316D90 = 0x802AE000; D_802B70B4 = 0x802B70B4; D_802B7140 = 0x802B7140; D_802B72C0 = 0x802B72C0;