mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
3315d6010f
* all non-world rodata migrated * data disasm * kinda working * updated yaml * bloop * linker header * configure 2.0 * bin * mass rename to remove code_ * pause rename * battle partner stuff * whew * more renames * more renames * more renaming * it builds! * updates * remove main prefix * one more thing * crc, yay0 * .data, .rodata, .bss * img * dead_atan2 * it buildsgit add -A * split battle/partner/6FAD10 * rm &s on sleepy_sheep syms * sha1sum ninja rule description * OK but commented out PaperMarioMapFS and PaperMarioNpcSprites * uncomment * fix mapfs * match func_8003CFB4 * . * clean up and name npc_iter_no_op * npc.c * enable cc warnings * name npc_find_near * use singular options.asset_path * smores * cc_dsl only when needed * kinda fix configure for splat refactor2 * ok! * new msg format * remove old msg format docs * slight bug fixes, splat adjustment * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "cfc140bb76" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "cfc140bb76" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "85349befcd" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "85349befcd" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Update symbol addrs * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "a44631e194" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "a44631e194" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" Co-authored-by: Alex Bates <hi@imalex.xyz>
225 lines
11 KiB
ArmAsm
225 lines
11 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_8003AAF8
|
|
/* 15EF8 8003AAF8 27BDFF08 */ addiu $sp, $sp, -0xf8
|
|
/* 15EFC 8003AAFC F7BC00E8 */ sdc1 $f28, 0xe8($sp)
|
|
/* 15F00 8003AB00 4480E000 */ mtc1 $zero, $f28
|
|
/* 15F04 8003AB04 F7BA00E0 */ sdc1 $f26, 0xe0($sp)
|
|
/* 15F08 8003AB08 3C01800A */ lui $at, %hi(D_800984A0)
|
|
/* 15F0C 8003AB0C D43A84A0 */ ldc1 $f26, %lo(D_800984A0)($at)
|
|
/* 15F10 8003AB10 AFB000A0 */ sw $s0, 0xa0($sp)
|
|
/* 15F14 8003AB14 0080802D */ daddu $s0, $a0, $zero
|
|
/* 15F18 8003AB18 AFB300AC */ sw $s3, 0xac($sp)
|
|
/* 15F1C 8003AB1C 0000982D */ daddu $s3, $zero, $zero
|
|
/* 15F20 8003AB20 AFB500B4 */ sw $s5, 0xb4($sp)
|
|
/* 15F24 8003AB24 0260A82D */ daddu $s5, $s3, $zero
|
|
/* 15F28 8003AB28 AFB100A4 */ sw $s1, 0xa4($sp)
|
|
/* 15F2C 8003AB2C 27B10060 */ addiu $s1, $sp, 0x60
|
|
/* 15F30 8003AB30 AFB700BC */ sw $s7, 0xbc($sp)
|
|
/* 15F34 8003AB34 27B70020 */ addiu $s7, $sp, 0x20
|
|
/* 15F38 8003AB38 AFB400B0 */ sw $s4, 0xb0($sp)
|
|
/* 15F3C 8003AB3C 0260A02D */ daddu $s4, $s3, $zero
|
|
/* 15F40 8003AB40 AFBF00C0 */ sw $ra, 0xc0($sp)
|
|
/* 15F44 8003AB44 AFB600B8 */ sw $s6, 0xb8($sp)
|
|
/* 15F48 8003AB48 AFB200A8 */ sw $s2, 0xa8($sp)
|
|
/* 15F4C 8003AB4C F7BE00F0 */ sdc1 $f30, 0xf0($sp)
|
|
/* 15F50 8003AB50 F7B800D8 */ sdc1 $f24, 0xd8($sp)
|
|
/* 15F54 8003AB54 F7B600D0 */ sdc1 $f22, 0xd0($sp)
|
|
/* 15F58 8003AB58 F7B400C8 */ sdc1 $f20, 0xc8($sp)
|
|
/* 15F5C 8003AB5C 8E160020 */ lw $s6, 0x20($s0)
|
|
/* 15F60 8003AB60 3C013FF0 */ lui $at, 0x3ff0
|
|
/* 15F64 8003AB64 4481F800 */ mtc1 $at, $f31
|
|
/* 15F68 8003AB68 4480F000 */ mtc1 $zero, $f30
|
|
/* 15F6C 8003AB6C 82D20001 */ lb $s2, 1($s6)
|
|
/* 15F70 8003AB70 2652FFFF */ addiu $s2, $s2, -1
|
|
.L8003AB74:
|
|
/* 15F74 8003AB74 06410002 */ bgez $s2, .L8003AB80
|
|
/* 15F78 8003AB78 26730001 */ addiu $s3, $s3, 1
|
|
/* 15F7C 8003AB7C 24120013 */ addiu $s2, $zero, 0x13
|
|
.L8003AB80:
|
|
/* 15F80 8003AB80 82C20001 */ lb $v0, 1($s6)
|
|
/* 15F84 8003AB84 1242009C */ beq $s2, $v0, .L8003ADF8
|
|
/* 15F88 8003AB88 2A620003 */ slti $v0, $s3, 3
|
|
/* 15F8C 8003AB8C 5440FFF9 */ bnel $v0, $zero, .L8003AB74
|
|
/* 15F90 8003AB90 2652FFFF */ addiu $s2, $s2, -1
|
|
/* 15F94 8003AB94 0000982D */ daddu $s3, $zero, $zero
|
|
/* 15F98 8003AB98 26B50001 */ addiu $s5, $s5, 1
|
|
/* 15F9C 8003AB9C 2AA20004 */ slti $v0, $s5, 4
|
|
/* 15FA0 8003ABA0 10400095 */ beqz $v0, .L8003ADF8
|
|
/* 15FA4 8003ABA4 26940014 */ addiu $s4, $s4, 0x14
|
|
/* 15FA8 8003ABA8 24050007 */ addiu $a1, $zero, 7
|
|
/* 15FAC 8003ABAC 240600FF */ addiu $a2, $zero, 0xff
|
|
/* 15FB0 8003ABB0 00121080 */ sll $v0, $s2, 2
|
|
/* 15FB4 8003ABB4 02C21021 */ addu $v0, $s6, $v0
|
|
/* 15FB8 8003ABB8 C4540004 */ lwc1 $f20, 4($v0)
|
|
/* 15FBC 8003ABBC C4560054 */ lwc1 $f22, 0x54($v0)
|
|
/* 15FC0 8003ABC0 C45800A4 */ lwc1 $f24, 0xa4($v0)
|
|
/* 15FC4 8003ABC4 00C0102D */ daddu $v0, $a2, $zero
|
|
/* 15FC8 8003ABC8 AFA20010 */ sw $v0, 0x10($sp)
|
|
/* 15FCC 8003ABCC 24020078 */ addiu $v0, $zero, 0x78
|
|
/* 15FD0 8003ABD0 00541023 */ subu $v0, $v0, $s4
|
|
/* 15FD4 8003ABD4 AFA20014 */ sw $v0, 0x14($sp)
|
|
/* 15FD8 8003ABD8 AFA00018 */ sw $zero, 0x18($sp)
|
|
/* 15FDC 8003ABDC 8E040024 */ lw $a0, 0x24($s0)
|
|
/* 15FE0 8003ABE0 0C0448F9 */ jal func_801123E4
|
|
/* 15FE4 8003ABE4 00C0382D */ daddu $a3, $a2, $zero
|
|
/* 15FE8 8003ABE8 4405A000 */ mfc1 $a1, $f20
|
|
/* 15FEC 8003ABEC 4406B000 */ mfc1 $a2, $f22
|
|
/* 15FF0 8003ABF0 4407C000 */ mfc1 $a3, $f24
|
|
/* 15FF4 8003ABF4 C6140034 */ lwc1 $f20, 0x34($s0)
|
|
/* 15FF8 8003ABF8 0C019E38 */ jal func_800678E0
|
|
/* 15FFC 8003ABFC 27A40020 */ addiu $a0, $sp, 0x20
|
|
/* 16000 8003AC00 C6000048 */ lwc1 $f0, 0x48($s0)
|
|
/* 16004 8003AC04 461C0032 */ c.eq.s $f0, $f28
|
|
/* 16008 8003AC08 00000000 */ nop
|
|
/* 1600C 8003AC0C 4501000B */ bc1t .L8003AC3C
|
|
/* 16010 8003AC10 00000000 */ nop
|
|
/* 16014 8003AC14 E7BC0010 */ swc1 $f28, 0x10($sp)
|
|
/* 16018 8003AC18 8E050048 */ lw $a1, 0x48($s0)
|
|
/* 1601C 8003AC1C 4406E000 */ mfc1 $a2, $f28
|
|
/* 16020 8003AC20 3C073F80 */ lui $a3, 0x3f80
|
|
/* 16024 8003AC24 0C019EC0 */ jal func_80067B00
|
|
/* 16028 8003AC28 0220202D */ daddu $a0, $s1, $zero
|
|
/* 1602C 8003AC2C 0220202D */ daddu $a0, $s1, $zero
|
|
/* 16030 8003AC30 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 16034 8003AC34 0C019D78 */ jal func_800675E0
|
|
/* 16038 8003AC38 00A0302D */ daddu $a2, $a1, $zero
|
|
.L8003AC3C:
|
|
/* 1603C 8003AC3C C6000044 */ lwc1 $f0, 0x44($s0)
|
|
/* 16040 8003AC40 461C0032 */ c.eq.s $f0, $f28
|
|
/* 16044 8003AC44 00000000 */ nop
|
|
/* 16048 8003AC48 4501000B */ bc1t .L8003AC78
|
|
/* 1604C 8003AC4C 00000000 */ nop
|
|
/* 16050 8003AC50 E7BC0010 */ swc1 $f28, 0x10($sp)
|
|
/* 16054 8003AC54 8E050048 */ lw $a1, 0x48($s0)
|
|
/* 16058 8003AC58 4406E000 */ mfc1 $a2, $f28
|
|
/* 1605C 8003AC5C 3C073F80 */ lui $a3, 0x3f80
|
|
/* 16060 8003AC60 0C019EC0 */ jal func_80067B00
|
|
/* 16064 8003AC64 0220202D */ daddu $a0, $s1, $zero
|
|
/* 16068 8003AC68 0220202D */ daddu $a0, $s1, $zero
|
|
/* 1606C 8003AC6C 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 16070 8003AC70 0C019D78 */ jal func_800675E0
|
|
/* 16074 8003AC74 00A0302D */ daddu $a2, $a1, $zero
|
|
.L8003AC78:
|
|
/* 16078 8003AC78 C600004C */ lwc1 $f0, 0x4c($s0)
|
|
/* 1607C 8003AC7C 461C0032 */ c.eq.s $f0, $f28
|
|
/* 16080 8003AC80 00000000 */ nop
|
|
/* 16084 8003AC84 4501000B */ bc1t .L8003ACB4
|
|
/* 16088 8003AC88 00000000 */ nop
|
|
/* 1608C 8003AC8C E7BC0010 */ swc1 $f28, 0x10($sp)
|
|
/* 16090 8003AC90 8E050048 */ lw $a1, 0x48($s0)
|
|
/* 16094 8003AC94 4406E000 */ mfc1 $a2, $f28
|
|
/* 16098 8003AC98 3C073F80 */ lui $a3, 0x3f80
|
|
/* 1609C 8003AC9C 0C019EC0 */ jal func_80067B00
|
|
/* 160A0 8003ACA0 0220202D */ daddu $a0, $s1, $zero
|
|
/* 160A4 8003ACA4 0220202D */ daddu $a0, $s1, $zero
|
|
/* 160A8 8003ACA8 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 160AC 8003ACAC 0C019D78 */ jal func_800675E0
|
|
/* 160B0 8003ACB0 00A0302D */ daddu $a2, $a1, $zero
|
|
.L8003ACB4:
|
|
/* 160B4 8003ACB4 C6000054 */ lwc1 $f0, 0x54($s0)
|
|
/* 160B8 8003ACB8 46000021 */ cvt.d.s $f0, $f0
|
|
/* 160BC 8003ACBC 463A0002 */ mul.d $f0, $f0, $f26
|
|
/* 160C0 8003ACC0 00000000 */ nop
|
|
/* 160C4 8003ACC4 463E0032 */ c.eq.d $f0, $f30
|
|
/* 160C8 8003ACC8 00000000 */ nop
|
|
/* 160CC 8003ACCC 45000014 */ bc1f .L8003AD20
|
|
/* 160D0 8003ACD0 00000000 */ nop
|
|
/* 160D4 8003ACD4 C6000058 */ lwc1 $f0, 0x58($s0)
|
|
/* 160D8 8003ACD8 C6020320 */ lwc1 $f2, 0x320($s0)
|
|
/* 160DC 8003ACDC 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 160E0 8003ACE0 00000000 */ nop
|
|
/* 160E4 8003ACE4 46000021 */ cvt.d.s $f0, $f0
|
|
/* 160E8 8003ACE8 463A0002 */ mul.d $f0, $f0, $f26
|
|
/* 160EC 8003ACEC 00000000 */ nop
|
|
/* 160F0 8003ACF0 463E0032 */ c.eq.d $f0, $f30
|
|
/* 160F4 8003ACF4 00000000 */ nop
|
|
/* 160F8 8003ACF8 45000009 */ bc1f .L8003AD20
|
|
/* 160FC 8003ACFC 00000000 */ nop
|
|
/* 16100 8003AD00 C600005C */ lwc1 $f0, 0x5c($s0)
|
|
/* 16104 8003AD04 46000021 */ cvt.d.s $f0, $f0
|
|
/* 16108 8003AD08 463A0002 */ mul.d $f0, $f0, $f26
|
|
/* 1610C 8003AD0C 00000000 */ nop
|
|
/* 16110 8003AD10 463E0032 */ c.eq.d $f0, $f30
|
|
/* 16114 8003AD14 00000000 */ nop
|
|
/* 16118 8003AD18 4501001C */ bc1t .L8003AD8C
|
|
/* 1611C 8003AD1C 00000000 */ nop
|
|
.L8003AD20:
|
|
/* 16120 8003AD20 C6060054 */ lwc1 $f6, 0x54($s0)
|
|
/* 16124 8003AD24 460031A1 */ cvt.d.s $f6, $f6
|
|
/* 16128 8003AD28 463A3182 */ mul.d $f6, $f6, $f26
|
|
/* 1612C 8003AD2C 00000000 */ nop
|
|
/* 16130 8003AD30 C604005C */ lwc1 $f4, 0x5c($s0)
|
|
/* 16134 8003AD34 46002121 */ cvt.d.s $f4, $f4
|
|
/* 16138 8003AD38 463A2102 */ mul.d $f4, $f4, $f26
|
|
/* 1613C 8003AD3C 00000000 */ nop
|
|
/* 16140 8003AD40 C6000058 */ lwc1 $f0, 0x58($s0)
|
|
/* 16144 8003AD44 C6020320 */ lwc1 $f2, 0x320($s0)
|
|
/* 16148 8003AD48 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 1614C 8003AD4C 00000000 */ nop
|
|
/* 16150 8003AD50 46000021 */ cvt.d.s $f0, $f0
|
|
/* 16154 8003AD54 463A0002 */ mul.d $f0, $f0, $f26
|
|
/* 16158 8003AD58 00000000 */ nop
|
|
/* 1615C 8003AD5C 462031A0 */ cvt.s.d $f6, $f6
|
|
/* 16160 8003AD60 46202120 */ cvt.s.d $f4, $f4
|
|
/* 16164 8003AD64 44053000 */ mfc1 $a1, $f6
|
|
/* 16168 8003AD68 44072000 */ mfc1 $a3, $f4
|
|
/* 1616C 8003AD6C 46200020 */ cvt.s.d $f0, $f0
|
|
/* 16170 8003AD70 44060000 */ mfc1 $a2, $f0
|
|
/* 16174 8003AD74 0C019DE8 */ jal func_800677A0
|
|
/* 16178 8003AD78 0220202D */ daddu $a0, $s1, $zero
|
|
/* 1617C 8003AD7C 0220202D */ daddu $a0, $s1, $zero
|
|
/* 16180 8003AD80 27A50020 */ addiu $a1, $sp, 0x20
|
|
/* 16184 8003AD84 0C019D78 */ jal func_800675E0
|
|
/* 16188 8003AD88 00A0302D */ daddu $a2, $a1, $zero
|
|
.L8003AD8C:
|
|
/* 1618C 8003AD8C 8E030000 */ lw $v1, ($s0)
|
|
/* 16190 8003AD90 3C024000 */ lui $v0, 0x4000
|
|
/* 16194 8003AD94 00621024 */ and $v0, $v1, $v0
|
|
/* 16198 8003AD98 5440000E */ bnel $v0, $zero, .L8003ADD4
|
|
/* 1619C 8003AD9C AFB70010 */ sw $s7, 0x10($sp)
|
|
/* 161A0 8003ADA0 3C020100 */ lui $v0, 0x100
|
|
/* 161A4 8003ADA4 00621024 */ and $v0, $v1, $v0
|
|
/* 161A8 8003ADA8 5440FF72 */ bnel $v0, $zero, .L8003AB74
|
|
/* 161AC 8003ADAC 2652FFFF */ addiu $s2, $s2, -1
|
|
/* 161B0 8003ADB0 4600A20D */ trunc.w.s $f8, $f20
|
|
/* 161B4 8003ADB4 44054000 */ mfc1 $a1, $f8
|
|
/* 161B8 8003ADB8 0000302D */ daddu $a2, $zero, $zero
|
|
/* 161BC 8003ADBC AFB70010 */ sw $s7, 0x10($sp)
|
|
/* 161C0 8003ADC0 8E040024 */ lw $a0, 0x24($s0)
|
|
/* 161C4 8003ADC4 0C0447CA */ jal func_80111F28
|
|
/* 161C8 8003ADC8 00C0382D */ daddu $a3, $a2, $zero
|
|
/* 161CC 8003ADCC 0800EADD */ j .L8003AB74
|
|
/* 161D0 8003ADD0 2652FFFF */ addiu $s2, $s2, -1
|
|
.L8003ADD4:
|
|
/* 161D4 8003ADD4 3C044000 */ lui $a0, 0x4000
|
|
/* 161D8 8003ADD8 34840001 */ ori $a0, $a0, 1
|
|
/* 161DC 8003ADDC 4600A20D */ trunc.w.s $f8, $f20
|
|
/* 161E0 8003ADE0 44054000 */ mfc1 $a1, $f8
|
|
/* 161E4 8003ADE4 0000302D */ daddu $a2, $zero, $zero
|
|
/* 161E8 8003ADE8 0C0445E4 */ jal func_80111790
|
|
/* 161EC 8003ADEC 00C0382D */ daddu $a3, $a2, $zero
|
|
/* 161F0 8003ADF0 0800EADD */ j .L8003AB74
|
|
/* 161F4 8003ADF4 2652FFFF */ addiu $s2, $s2, -1
|
|
.L8003ADF8:
|
|
/* 161F8 8003ADF8 0C00F41F */ jal func_8003D07C
|
|
/* 161FC 8003ADFC 0200202D */ daddu $a0, $s0, $zero
|
|
/* 16200 8003AE00 8FBF00C0 */ lw $ra, 0xc0($sp)
|
|
/* 16204 8003AE04 8FB700BC */ lw $s7, 0xbc($sp)
|
|
/* 16208 8003AE08 8FB600B8 */ lw $s6, 0xb8($sp)
|
|
/* 1620C 8003AE0C 8FB500B4 */ lw $s5, 0xb4($sp)
|
|
/* 16210 8003AE10 8FB400B0 */ lw $s4, 0xb0($sp)
|
|
/* 16214 8003AE14 8FB300AC */ lw $s3, 0xac($sp)
|
|
/* 16218 8003AE18 8FB200A8 */ lw $s2, 0xa8($sp)
|
|
/* 1621C 8003AE1C 8FB100A4 */ lw $s1, 0xa4($sp)
|
|
/* 16220 8003AE20 8FB000A0 */ lw $s0, 0xa0($sp)
|
|
/* 16224 8003AE24 D7BE00F0 */ ldc1 $f30, 0xf0($sp)
|
|
/* 16228 8003AE28 D7BC00E8 */ ldc1 $f28, 0xe8($sp)
|
|
/* 1622C 8003AE2C D7BA00E0 */ ldc1 $f26, 0xe0($sp)
|
|
/* 16230 8003AE30 D7B800D8 */ ldc1 $f24, 0xd8($sp)
|
|
/* 16234 8003AE34 D7B600D0 */ ldc1 $f22, 0xd0($sp)
|
|
/* 16238 8003AE38 D7B400C8 */ ldc1 $f20, 0xc8($sp)
|
|
/* 1623C 8003AE3C 03E00008 */ jr $ra
|
|
/* 16240 8003AE40 27BD00F8 */ addiu $sp, $sp, 0xf8
|