papermario/ver/jp/asm/nonmatchings/33E80/func_80059C44.s
Ethan Roseman 3315d6010f
Splat refactor (#257)
* 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>
2021-04-13 16:47:52 +09:00

212 lines
11 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80059C44
/* 35044 80059C44 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 35048 80059C48 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 3504C 80059C4C 3C014080 */ lui $at, 0x4080
/* 35050 80059C50 4481A000 */ mtc1 $at, $f20
/* 35054 80059C54 AFB10014 */ sw $s1, 0x14($sp)
/* 35058 80059C58 24110001 */ addiu $s1, $zero, 1
/* 3505C 80059C5C AFB20018 */ sw $s2, 0x18($sp)
/* 35060 80059C60 0000902D */ daddu $s2, $zero, $zero
/* 35064 80059C64 AFB50024 */ sw $s5, 0x24($sp)
/* 35068 80059C68 3C15800B */ lui $s5, %hi(D_800B1D60)
/* 3506C 80059C6C 26B51D60 */ addiu $s5, $s5, %lo(D_800B1D60)
/* 35070 80059C70 AFB00010 */ sw $s0, 0x10($sp)
/* 35074 80059C74 3C10800A */ lui $s0, %hi(D_8009A64C)
/* 35078 80059C78 2610A64C */ addiu $s0, $s0, %lo(D_8009A64C)
/* 3507C 80059C7C AFB40020 */ sw $s4, 0x20($sp)
/* 35080 80059C80 24140002 */ addiu $s4, $zero, 2
/* 35084 80059C84 AFB3001C */ sw $s3, 0x1c($sp)
/* 35088 80059C88 3413FFFE */ ori $s3, $zero, 0xfffe
/* 3508C 80059C8C AFBF0028 */ sw $ra, 0x28($sp)
/* 35090 80059C90 00121080 */ sll $v0, $s2, 2
.L80059C94:
/* 35094 80059C94 3C0E800B */ lui $t6, %hi(D_800B4378)
/* 35098 80059C98 01C27021 */ addu $t6, $t6, $v0
/* 3509C 80059C9C 8DCE4378 */ lw $t6, %lo(D_800B4378)($t6)
/* 350A0 80059CA0 51C000A5 */ beql $t6, $zero, .L80059F38
/* 350A4 80059CA4 26520001 */ addiu $s2, $s2, 1
/* 350A8 80059CA8 8DC30000 */ lw $v1, ($t6)
/* 350AC 80059CAC 30620001 */ andi $v0, $v1, 1
/* 350B0 80059CB0 504000A1 */ beql $v0, $zero, .L80059F38
/* 350B4 80059CB4 26520001 */ addiu $s2, $s2, 1
/* 350B8 80059CB8 30620008 */ andi $v0, $v1, 8
/* 350BC 80059CBC 5040009E */ beql $v0, $zero, .L80059F38
/* 350C0 80059CC0 26520001 */ addiu $s2, $s2, 1
/* 350C4 80059CC4 3C028007 */ lui $v0, %hi(D_8007417C)
/* 350C8 80059CC8 8C42417C */ lw $v0, %lo(D_8007417C)($v0)
/* 350CC 80059CCC 80420070 */ lb $v0, 0x70($v0)
/* 350D0 80059CD0 10400005 */ beqz $v0, .L80059CE8
/* 350D4 80059CD4 30620004 */ andi $v0, $v1, 4
/* 350D8 80059CD8 50400097 */ beql $v0, $zero, .L80059F38
/* 350DC 80059CDC 26520001 */ addiu $s2, $s2, 1
/* 350E0 80059CE0 0801673C */ j .L80059CF0
/* 350E4 80059CE4 00000000 */ nop
.L80059CE8:
/* 350E8 80059CE8 54400093 */ bnel $v0, $zero, .L80059F38
/* 350EC 80059CEC 26520001 */ addiu $s2, $s2, 1
.L80059CF0:
/* 350F0 80059CF0 8DC20010 */ lw $v0, 0x10($t6)
/* 350F4 80059CF4 8C4F0018 */ lw $t7, 0x18($v0)
/* 350F8 80059CF8 3C028006 */ lui $v0, %hi(func_80059930)
/* 350FC 80059CFC 24429930 */ addiu $v0, $v0, %lo(func_80059930)
/* 35100 80059D00 51E2008D */ beql $t7, $v0, .L80059F38
/* 35104 80059D04 26520001 */ addiu $s2, $s2, 1
/* 35108 80059D08 12200088 */ beqz $s1, .L80059F2C
/* 3510C 80059D0C 3C04DC08 */ lui $a0, 0xdc08
/* 35110 80059D10 34840008 */ ori $a0, $a0, 8
/* 35114 80059D14 3C06D9FF */ lui $a2, 0xd9ff
/* 35118 80059D18 34C6FFFF */ ori $a2, $a2, 0xffff
/* 3511C 80059D1C 3C050020 */ lui $a1, 0x20
/* 35120 80059D20 34A50405 */ ori $a1, $a1, 0x405
/* 35124 80059D24 3C07DB04 */ lui $a3, 0xdb04
/* 35128 80059D28 34E70004 */ ori $a3, $a3, 4
/* 3512C 80059D2C 3C08DB04 */ lui $t0, 0xdb04
/* 35130 80059D30 3508000C */ ori $t0, $t0, 0xc
/* 35134 80059D34 3C09DB04 */ lui $t1, 0xdb04
/* 35138 80059D38 35290014 */ ori $t1, $t1, 0x14
/* 3513C 80059D3C 3C0ADB04 */ lui $t2, 0xdb04
/* 35140 80059D40 8E0B0000 */ lw $t3, ($s0)
/* 35144 80059D44 354A001C */ ori $t2, $t2, 0x1c
/* 35148 80059D48 0160182D */ daddu $v1, $t3, $zero
/* 3514C 80059D4C 256B0008 */ addiu $t3, $t3, 8
/* 35150 80059D50 AE0B0000 */ sw $t3, ($s0)
/* 35154 80059D54 3C0D8007 */ lui $t5, %hi(D_800773E0)
/* 35158 80059D58 8DAD73E0 */ lw $t5, %lo(D_800773E0)($t5)
/* 3515C 80059D5C 3C02E700 */ lui $v0, 0xe700
/* 35160 80059D60 AC620000 */ sw $v0, ($v1)
/* 35164 80059D64 25620008 */ addiu $v0, $t3, 8
/* 35168 80059D68 AC600004 */ sw $zero, 4($v1)
/* 3516C 80059D6C AE020000 */ sw $v0, ($s0)
/* 35170 80059D70 AD640000 */ sw $a0, ($t3)
/* 35174 80059D74 3C04ED00 */ lui $a0, 0xed00
/* 35178 80059D78 000D1080 */ sll $v0, $t5, 2
/* 3517C 80059D7C 004D1021 */ addu $v0, $v0, $t5
/* 35180 80059D80 00021080 */ sll $v0, $v0, 2
/* 35184 80059D84 004D1023 */ subu $v0, $v0, $t5
/* 35188 80059D88 000218C0 */ sll $v1, $v0, 3
/* 3518C 80059D8C 00431021 */ addu $v0, $v0, $v1
/* 35190 80059D90 000210C0 */ sll $v0, $v0, 3
/* 35194 80059D94 00556021 */ addu $t4, $v0, $s5
/* 35198 80059D98 258200A0 */ addiu $v0, $t4, 0xa0
/* 3519C 80059D9C AD620004 */ sw $v0, 4($t3)
/* 351A0 80059DA0 25620010 */ addiu $v0, $t3, 0x10
/* 351A4 80059DA4 AE020000 */ sw $v0, ($s0)
/* 351A8 80059DA8 3C02D900 */ lui $v0, 0xd900
/* 351AC 80059DAC AD620008 */ sw $v0, 8($t3)
/* 351B0 80059DB0 25620018 */ addiu $v0, $t3, 0x18
/* 351B4 80059DB4 AD60000C */ sw $zero, 0xc($t3)
/* 351B8 80059DB8 AE020000 */ sw $v0, ($s0)
/* 351BC 80059DBC 25620020 */ addiu $v0, $t3, 0x20
/* 351C0 80059DC0 AD660010 */ sw $a2, 0x10($t3)
/* 351C4 80059DC4 AD650014 */ sw $a1, 0x14($t3)
/* 351C8 80059DC8 AE020000 */ sw $v0, ($s0)
/* 351CC 80059DCC 8583000E */ lh $v1, 0xe($t4)
/* 351D0 80059DD0 25620028 */ addiu $v0, $t3, 0x28
/* 351D4 80059DD4 AE020000 */ sw $v0, ($s0)
/* 351D8 80059DD8 44831000 */ mtc1 $v1, $f2
/* 351DC 80059DDC 00000000 */ nop
/* 351E0 80059DE0 468010A0 */ cvt.s.w $f2, $f2
/* 351E4 80059DE4 46141082 */ mul.s $f2, $f2, $f20
/* 351E8 80059DE8 00000000 */ nop
/* 351EC 80059DEC 85830010 */ lh $v1, 0x10($t4)
/* 351F0 80059DF0 25620030 */ addiu $v0, $t3, 0x30
/* 351F4 80059DF4 AE020000 */ sw $v0, ($s0)
/* 351F8 80059DF8 25620038 */ addiu $v0, $t3, 0x38
/* 351FC 80059DFC 44830000 */ mtc1 $v1, $f0
/* 35200 80059E00 00000000 */ nop
/* 35204 80059E04 46800020 */ cvt.s.w $f0, $f0
/* 35208 80059E08 46140002 */ mul.s $f0, $f0, $f20
/* 3520C 80059E0C 00000000 */ nop
/* 35210 80059E10 AE020000 */ sw $v0, ($s0)
/* 35214 80059E14 4600110D */ trunc.w.s $f4, $f2
/* 35218 80059E18 44032000 */ mfc1 $v1, $f4
/* 3521C 80059E1C 00000000 */ nop
/* 35220 80059E20 30630FFF */ andi $v1, $v1, 0xfff
/* 35224 80059E24 00031B00 */ sll $v1, $v1, 0xc
/* 35228 80059E28 4600010D */ trunc.w.s $f4, $f0
/* 3522C 80059E2C 44022000 */ mfc1 $v0, $f4
/* 35230 80059E30 00000000 */ nop
/* 35234 80059E34 30420FFF */ andi $v0, $v0, 0xfff
/* 35238 80059E38 00441025 */ or $v0, $v0, $a0
/* 3523C 80059E3C 00621825 */ or $v1, $v1, $v0
/* 35240 80059E40 AD630018 */ sw $v1, 0x18($t3)
/* 35244 80059E44 8583000E */ lh $v1, 0xe($t4)
/* 35248 80059E48 8585000A */ lh $a1, 0xa($t4)
/* 3524C 80059E4C 85840010 */ lh $a0, 0x10($t4)
/* 35250 80059E50 8586000C */ lh $a2, 0xc($t4)
/* 35254 80059E54 25620040 */ addiu $v0, $t3, 0x40
/* 35258 80059E58 AE020000 */ sw $v0, ($s0)
/* 3525C 80059E5C AD670020 */ sw $a3, 0x20($t3)
/* 35260 80059E60 AD740024 */ sw $s4, 0x24($t3)
/* 35264 80059E64 AD680028 */ sw $t0, 0x28($t3)
/* 35268 80059E68 00651821 */ addu $v1, $v1, $a1
/* 3526C 80059E6C 44831000 */ mtc1 $v1, $f2
/* 35270 80059E70 00000000 */ nop
/* 35274 80059E74 468010A0 */ cvt.s.w $f2, $f2
/* 35278 80059E78 46141082 */ mul.s $f2, $f2, $f20
/* 3527C 80059E7C 00000000 */ nop
/* 35280 80059E80 AD74002C */ sw $s4, 0x2c($t3)
/* 35284 80059E84 AD690030 */ sw $t1, 0x30($t3)
/* 35288 80059E88 00862021 */ addu $a0, $a0, $a2
/* 3528C 80059E8C 44840000 */ mtc1 $a0, $f0
/* 35290 80059E90 00000000 */ nop
/* 35294 80059E94 46800020 */ cvt.s.w $f0, $f0
/* 35298 80059E98 46140002 */ mul.s $f0, $f0, $f20
/* 3529C 80059E9C 00000000 */ nop
/* 352A0 80059EA0 AD730034 */ sw $s3, 0x34($t3)
/* 352A4 80059EA4 4600110D */ trunc.w.s $f4, $f2
/* 352A8 80059EA8 44032000 */ mfc1 $v1, $f4
/* 352AC 80059EAC 00000000 */ nop
/* 352B0 80059EB0 30630FFF */ andi $v1, $v1, 0xfff
/* 352B4 80059EB4 00031B00 */ sll $v1, $v1, 0xc
/* 352B8 80059EB8 4600010D */ trunc.w.s $f4, $f0
/* 352BC 80059EBC 44022000 */ mfc1 $v0, $f4
/* 352C0 80059EC0 00000000 */ nop
/* 352C4 80059EC4 30420FFF */ andi $v0, $v0, 0xfff
/* 352C8 80059EC8 00621825 */ or $v1, $v1, $v0
/* 352CC 80059ECC AD63001C */ sw $v1, 0x1c($t3)
/* 352D0 80059ED0 AD6A0038 */ sw $t2, 0x38($t3)
/* 352D4 80059ED4 AD73003C */ sw $s3, 0x3c($t3)
/* 352D8 80059ED8 95820000 */ lhu $v0, ($t4)
/* 352DC 80059EDC 30420010 */ andi $v0, $v0, 0x10
/* 352E0 80059EE0 14400012 */ bnez $v0, .L80059F2C
/* 352E4 80059EE4 0000882D */ daddu $s1, $zero, $zero
/* 352E8 80059EE8 3C04DA38 */ lui $a0, 0xda38
/* 352EC 80059EEC 34840007 */ ori $a0, $a0, 7
/* 352F0 80059EF0 25620048 */ addiu $v0, $t3, 0x48
/* 352F4 80059EF4 AE020000 */ sw $v0, ($s0)
/* 352F8 80059EF8 3C02DB0E */ lui $v0, 0xdb0e
/* 352FC 80059EFC AD620040 */ sw $v0, 0x40($t3)
/* 35300 80059F00 95830038 */ lhu $v1, 0x38($t4)
/* 35304 80059F04 25620050 */ addiu $v0, $t3, 0x50
/* 35308 80059F08 AE020000 */ sw $v0, ($s0)
/* 3530C 80059F0C 000D1180 */ sll $v0, $t5, 6
/* 35310 80059F10 AD630044 */ sw $v1, 0x44($t3)
/* 35314 80059F14 3C03800A */ lui $v1, %hi(D_8009A654)
/* 35318 80059F18 8C63A654 */ lw $v1, %lo(D_8009A654)($v1)
/* 3531C 80059F1C 24420030 */ addiu $v0, $v0, 0x30
/* 35320 80059F20 AD640048 */ sw $a0, 0x48($t3)
/* 35324 80059F24 00621821 */ addu $v1, $v1, $v0
/* 35328 80059F28 AD63004C */ sw $v1, 0x4c($t3)
.L80059F2C:
/* 3532C 80059F2C 01E0F809 */ jalr $t7
/* 35330 80059F30 01C0202D */ daddu $a0, $t6, $zero
/* 35334 80059F34 26520001 */ addiu $s2, $s2, 1
.L80059F38:
/* 35338 80059F38 2A420060 */ slti $v0, $s2, 0x60
/* 3533C 80059F3C 5440FF55 */ bnel $v0, $zero, .L80059C94
/* 35340 80059F40 00121080 */ sll $v0, $s2, 2
/* 35344 80059F44 8FBF0028 */ lw $ra, 0x28($sp)
/* 35348 80059F48 8FB50024 */ lw $s5, 0x24($sp)
/* 3534C 80059F4C 8FB40020 */ lw $s4, 0x20($sp)
/* 35350 80059F50 8FB3001C */ lw $s3, 0x1c($sp)
/* 35354 80059F54 8FB20018 */ lw $s2, 0x18($sp)
/* 35358 80059F58 8FB10014 */ lw $s1, 0x14($sp)
/* 3535C 80059F5C 8FB00010 */ lw $s0, 0x10($sp)
/* 35360 80059F60 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 35364 80059F64 03E00008 */ jr $ra
/* 35368 80059F68 27BD0038 */ addiu $sp, $sp, 0x38