papermario/ver/us/asm/nonmatchings/364300/func_E0062220.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

173 lines
8.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0062220
/* 364520 E0062220 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 364524 E0062224 AFB3001C */ sw $s3, 0x1c($sp)
/* 364528 E0062228 0080982D */ daddu $s3, $a0, $zero
/* 36452C E006222C AFBF0020 */ sw $ra, 0x20($sp)
/* 364530 E0062230 AFB20018 */ sw $s2, 0x18($sp)
/* 364534 E0062234 AFB10014 */ sw $s1, 0x14($sp)
/* 364538 E0062238 AFB00010 */ sw $s0, 0x10($sp)
/* 36453C E006223C F7B80038 */ sdc1 $f24, 0x38($sp)
/* 364540 E0062240 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 364544 E0062244 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 364548 E0062248 8E64000C */ lw $a0, 0xc($s3)
/* 36454C E006224C 8C820028 */ lw $v0, 0x28($a0)
/* 364550 E0062250 8C830024 */ lw $v1, 0x24($a0)
/* 364554 E0062254 24420001 */ addiu $v0, $v0, 1
/* 364558 E0062258 2463FFFF */ addiu $v1, $v1, -1
/* 36455C E006225C AC820028 */ sw $v0, 0x28($a0)
/* 364560 E0062260 04610005 */ bgez $v1, .LE0062278
/* 364564 E0062264 AC830024 */ sw $v1, 0x24($a0)
/* 364568 E0062268 0C080128 */ jal func_E02004A0
/* 36456C E006226C 0260202D */ daddu $a0, $s3, $zero
/* 364570 E0062270 08018920 */ j .LE0062480
/* 364574 E0062274 00000000 */ nop
.LE0062278:
/* 364578 E0062278 8C920028 */ lw $s2, 0x28($a0)
/* 36457C E006227C 2A42000B */ slti $v0, $s2, 0xb
/* 364580 E0062280 14400009 */ bnez $v0, .LE00622A8
/* 364584 E0062284 00000000 */ nop
/* 364588 E0062288 3C01E006 */ lui $at, %hi(D_E00628D0)
/* 36458C E006228C D42228D0 */ ldc1 $f2, %lo(D_E00628D0)($at)
/* 364590 E0062290 C4800034 */ lwc1 $f0, 0x34($a0)
/* 364594 E0062294 46800021 */ cvt.d.w $f0, $f0
/* 364598 E0062298 46220002 */ mul.d $f0, $f0, $f2
/* 36459C E006229C 00000000 */ nop
/* 3645A0 E00622A0 4620038D */ trunc.w.d $f14, $f0
/* 3645A4 E00622A4 E48E0034 */ swc1 $f14, 0x34($a0)
.LE00622A8:
/* 3645A8 E00622A8 8E620008 */ lw $v0, 8($s3)
/* 3645AC E00622AC 24110001 */ addiu $s1, $zero, 1
/* 3645B0 E00622B0 0222102A */ slt $v0, $s1, $v0
/* 3645B4 E00622B4 10400072 */ beqz $v0, .LE0062480
/* 3645B8 E00622B8 24840040 */ addiu $a0, $a0, 0x40
/* 3645BC E00622BC 24900008 */ addiu $s0, $a0, 8
/* 3645C0 E00622C0 3C01E006 */ lui $at, %hi(D_E00628D8)
/* 3645C4 E00622C4 D43428D8 */ ldc1 $f20, %lo(D_E00628D8)($at)
/* 3645C8 E00622C8 3C01E006 */ lui $at, %hi(D_E00628E0)
/* 3645CC E00622CC D43628E0 */ ldc1 $f22, %lo(D_E00628E0)($at)
/* 3645D0 E00622D0 3C0142B4 */ lui $at, 0x42b4
/* 3645D4 E00622D4 4481C000 */ mtc1 $at, $f24
.LE00622D8:
/* 3645D8 E00622D8 2A42000B */ slti $v0, $s2, 0xb
/* 3645DC E00622DC 1440002B */ bnez $v0, .LE006238C
/* 3645E0 E00622E0 2A42000A */ slti $v0, $s2, 0xa
/* 3645E4 E00622E4 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 3645E8 E00622E8 3C013FF0 */ lui $at, 0x3ff0
/* 3645EC E00622EC 44816800 */ mtc1 $at, $f13
/* 3645F0 E00622F0 44806000 */ mtc1 $zero, $f12
/* 3645F4 E00622F4 460052A1 */ cvt.d.s $f10, $f10
/* 3645F8 E00622F8 462A6301 */ sub.d $f12, $f12, $f10
/* 3645FC E00622FC 46346302 */ mul.d $f12, $f12, $f20
/* 364600 E0062300 00000000 */ nop
/* 364604 E0062304 C6080018 */ lwc1 $f8, 0x18($s0)
/* 364608 E0062308 3C014019 */ lui $at, 0x4019
/* 36460C E006230C 3421999A */ ori $at, $at, 0x999a
/* 364610 E0062310 44812000 */ mtc1 $at, $f4
/* 364614 E0062314 00000000 */ nop
/* 364618 E0062318 46082101 */ sub.s $f4, $f4, $f8
/* 36461C E006231C 46002121 */ cvt.d.s $f4, $f4
/* 364620 E0062320 46342102 */ mul.d $f4, $f4, $f20
/* 364624 E0062324 00000000 */ nop
/* 364628 E0062328 C6060028 */ lwc1 $f6, 0x28($s0)
/* 36462C E006232C 3C0142C8 */ lui $at, 0x42c8
/* 364630 E0062330 44811000 */ mtc1 $at, $f2
/* 364634 E0062334 00000000 */ nop
/* 364638 E0062338 46061081 */ sub.s $f2, $f2, $f6
/* 36463C E006233C 3C01E006 */ lui $at, %hi(D_E00628E8)
/* 364640 E0062340 D42028E8 */ ldc1 $f0, %lo(D_E00628E8)($at)
/* 364644 E0062344 460010A1 */ cvt.d.s $f2, $f2
/* 364648 E0062348 46201082 */ mul.d $f2, $f2, $f0
/* 36464C E006234C 00000000 */ nop
/* 364650 E0062350 3C01E006 */ lui $at, %hi(D_E00628F0)
/* 364654 E0062354 D42028F0 */ ldc1 $f0, %lo(D_E00628F0)($at)
/* 364658 E0062358 46201082 */ mul.d $f2, $f2, $f0
/* 36465C E006235C 00000000 */ nop
/* 364660 E0062360 462C5280 */ add.d $f10, $f10, $f12
/* 364664 E0062364 46004221 */ cvt.d.s $f8, $f8
/* 364668 E0062368 46244200 */ add.d $f8, $f8, $f4
/* 36466C E006236C 460031A1 */ cvt.d.s $f6, $f6
/* 364670 E0062370 462052A0 */ cvt.s.d $f10, $f10
/* 364674 E0062374 46204220 */ cvt.s.d $f8, $f8
/* 364678 E0062378 46223180 */ add.d $f6, $f6, $f2
/* 36467C E006237C E60A0014 */ swc1 $f10, 0x14($s0)
/* 364680 E0062380 E6080018 */ swc1 $f8, 0x18($s0)
/* 364684 E0062384 462031A0 */ cvt.s.d $f6, $f6
/* 364688 E0062388 E6060028 */ swc1 $f6, 0x28($s0)
.LE006238C:
/* 36468C E006238C 10400029 */ beqz $v0, .LE0062434
/* 364690 E0062390 00000000 */ nop
/* 364694 E0062394 C60C0014 */ lwc1 $f12, 0x14($s0)
/* 364698 E0062398 3C0140E0 */ lui $at, 0x40e0
/* 36469C E006239C 44814000 */ mtc1 $at, $f8
/* 3646A0 E00623A0 00000000 */ nop
/* 3646A4 E00623A4 460C4201 */ sub.s $f8, $f8, $f12
/* 3646A8 E00623A8 46004221 */ cvt.d.s $f8, $f8
/* 3646AC E00623AC 46364202 */ mul.d $f8, $f8, $f22
/* 3646B0 E00623B0 00000000 */ nop
/* 3646B4 E00623B4 C60A0018 */ lwc1 $f10, 0x18($s0)
/* 3646B8 E00623B8 3C013F80 */ lui $at, 0x3f80
/* 3646BC E00623BC 44812000 */ mtc1 $at, $f4
/* 3646C0 E00623C0 00000000 */ nop
/* 3646C4 E00623C4 460A2101 */ sub.s $f4, $f4, $f10
/* 3646C8 E00623C8 46002121 */ cvt.d.s $f4, $f4
/* 3646CC E00623CC 46342102 */ mul.d $f4, $f4, $f20
/* 3646D0 E00623D0 00000000 */ nop
/* 3646D4 E00623D4 C6060028 */ lwc1 $f6, 0x28($s0)
/* 3646D8 E00623D8 3C014120 */ lui $at, 0x4120
/* 3646DC E00623DC 44811000 */ mtc1 $at, $f2
/* 3646E0 E00623E0 00000000 */ nop
/* 3646E4 E00623E4 46061081 */ sub.s $f2, $f2, $f6
/* 3646E8 E00623E8 460010A1 */ cvt.d.s $f2, $f2
/* 3646EC E00623EC 46361082 */ mul.d $f2, $f2, $f22
/* 3646F0 E00623F0 00000000 */ nop
/* 3646F4 E00623F4 3C01E006 */ lui $at, %hi(D_E00628F8)
/* 3646F8 E00623F8 D42028F8 */ ldc1 $f0, %lo(D_E00628F8)($at)
/* 3646FC E00623FC 46201082 */ mul.d $f2, $f2, $f0
/* 364700 E0062400 00000000 */ nop
/* 364704 E0062404 46006321 */ cvt.d.s $f12, $f12
/* 364708 E0062408 46286300 */ add.d $f12, $f12, $f8
/* 36470C E006240C 460052A1 */ cvt.d.s $f10, $f10
/* 364710 E0062410 46245280 */ add.d $f10, $f10, $f4
/* 364714 E0062414 460031A1 */ cvt.d.s $f6, $f6
/* 364718 E0062418 46206320 */ cvt.s.d $f12, $f12
/* 36471C E006241C 462052A0 */ cvt.s.d $f10, $f10
/* 364720 E0062420 46223180 */ add.d $f6, $f6, $f2
/* 364724 E0062424 E60C0014 */ swc1 $f12, 0x14($s0)
/* 364728 E0062428 E60A0018 */ swc1 $f10, 0x18($s0)
/* 36472C E006242C 462031A0 */ cvt.s.d $f6, $f6
/* 364730 E0062430 E6060028 */ swc1 $f6, 0x28($s0)
.LE0062434:
/* 364734 E0062434 C60C0024 */ lwc1 $f12, 0x24($s0)
/* 364738 E0062438 0C080144 */ jal func_E0200510
/* 36473C E006243C 46186300 */ add.s $f12, $f12, $f24
/* 364740 E0062440 C6020028 */ lwc1 $f2, 0x28($s0)
/* 364744 E0062444 46020002 */ mul.s $f0, $f0, $f2
/* 364748 E0062448 00000000 */ nop
/* 36474C E006244C C60C0024 */ lwc1 $f12, 0x24($s0)
/* 364750 E0062450 46186300 */ add.s $f12, $f12, $f24
/* 364754 E0062454 0C080140 */ jal func_E0200500
/* 364758 E0062458 E600FFFC */ swc1 $f0, -4($s0)
/* 36475C E006245C C6020028 */ lwc1 $f2, 0x28($s0)
/* 364760 E0062460 46020002 */ mul.s $f0, $f0, $f2
/* 364764 E0062464 00000000 */ nop
/* 364768 E0062468 26310001 */ addiu $s1, $s1, 1
/* 36476C E006246C E6000000 */ swc1 $f0, ($s0)
/* 364770 E0062470 8E620008 */ lw $v0, 8($s3)
/* 364774 E0062474 0222102A */ slt $v0, $s1, $v0
/* 364778 E0062478 1440FF97 */ bnez $v0, .LE00622D8
/* 36477C E006247C 26100040 */ addiu $s0, $s0, 0x40
.LE0062480:
/* 364780 E0062480 8FBF0020 */ lw $ra, 0x20($sp)
/* 364784 E0062484 8FB3001C */ lw $s3, 0x1c($sp)
/* 364788 E0062488 8FB20018 */ lw $s2, 0x18($sp)
/* 36478C E006248C 8FB10014 */ lw $s1, 0x14($sp)
/* 364790 E0062490 8FB00010 */ lw $s0, 0x10($sp)
/* 364794 E0062494 D7B80038 */ ldc1 $f24, 0x38($sp)
/* 364798 E0062498 D7B60030 */ ldc1 $f22, 0x30($sp)
/* 36479C E006249C D7B40028 */ ldc1 $f20, 0x28($sp)
/* 3647A0 E00624A0 03E00008 */ jr $ra
/* 3647A4 E00624A4 27BD0040 */ addiu $sp, $sp, 0x40