papermario/ver/jp/asm/nonmatchings/2570/func_8002722C.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

268 lines
13 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8002722C
/* 262C 8002722C 27BDFF88 */ addiu $sp, $sp, -0x78
/* 2630 80027230 0080582D */ daddu $t3, $a0, $zero
/* 2634 80027234 AFA5007C */ sw $a1, 0x7c($sp)
/* 2638 80027238 0000282D */ daddu $a1, $zero, $zero
/* 263C 8002723C 27A90018 */ addiu $t1, $sp, 0x18
/* 2640 80027240 27A80038 */ addiu $t0, $sp, 0x38
/* 2644 80027244 27A70058 */ addiu $a3, $sp, 0x58
/* 2648 80027248 8BAC007C */ lwl $t4, 0x7c($sp)
/* 264C 8002724C 9BAC007F */ lwr $t4, 0x7f($sp)
/* 2650 80027250 ABAC0008 */ swl $t4, 8($sp)
/* 2654 80027254 BBAC000B */ swr $t4, 0xb($sp)
/* 2658 80027258 8BAC007C */ lwl $t4, 0x7c($sp)
/* 265C 8002725C 9BAC007F */ lwr $t4, 0x7f($sp)
/* 2660 80027260 ABAC0000 */ swl $t4, ($sp)
/* 2664 80027264 BBAC0003 */ swr $t4, 3($sp)
.L80027268:
/* 2668 80027268 01251021 */ addu $v0, $t1, $a1
/* 266C 8002726C 01051821 */ addu $v1, $t0, $a1
/* 2670 80027270 00E52021 */ addu $a0, $a3, $a1
/* 2674 80027274 24A50001 */ addiu $a1, $a1, 1
/* 2678 80027278 A0400000 */ sb $zero, ($v0)
/* 267C 8002727C 28A20020 */ slti $v0, $a1, 0x20
/* 2680 80027280 A0600000 */ sb $zero, ($v1)
/* 2684 80027284 1440FFF8 */ bnez $v0, .L80027268
/* 2688 80027288 A0800000 */ sb $zero, ($a0)
/* 268C 8002728C 0000282D */ daddu $a1, $zero, $zero
/* 2690 80027290 240A0008 */ addiu $t2, $zero, 8
/* 2694 80027294 27A90018 */ addiu $t1, $sp, 0x18
/* 2698 80027298 27A80038 */ addiu $t0, $sp, 0x38
/* 269C 8002729C 27A70058 */ addiu $a3, $sp, 0x58
/* 26A0 800272A0 0160202D */ daddu $a0, $t3, $zero
.L800272A4:
/* 26A4 800272A4 90820003 */ lbu $v0, 3($a0)
/* 26A8 800272A8 144A0010 */ bne $v0, $t2, .L800272EC
/* 26AC 800272AC 24A50001 */ addiu $a1, $a1, 1
/* 26B0 800272B0 90830000 */ lbu $v1, ($a0)
/* 26B4 800272B4 01231821 */ addu $v1, $t1, $v1
/* 26B8 800272B8 90620000 */ lbu $v0, ($v1)
/* 26BC 800272BC 24420001 */ addiu $v0, $v0, 1
/* 26C0 800272C0 A0620000 */ sb $v0, ($v1)
/* 26C4 800272C4 90830001 */ lbu $v1, 1($a0)
/* 26C8 800272C8 01031821 */ addu $v1, $t0, $v1
/* 26CC 800272CC 90620000 */ lbu $v0, ($v1)
/* 26D0 800272D0 24420001 */ addiu $v0, $v0, 1
/* 26D4 800272D4 A0620000 */ sb $v0, ($v1)
/* 26D8 800272D8 90830002 */ lbu $v1, 2($a0)
/* 26DC 800272DC 00E31821 */ addu $v1, $a3, $v1
/* 26E0 800272E0 90620000 */ lbu $v0, ($v1)
/* 26E4 800272E4 24420001 */ addiu $v0, $v0, 1
/* 26E8 800272E8 A0620000 */ sb $v0, ($v1)
.L800272EC:
/* 26EC 800272EC 28A20006 */ slti $v0, $a1, 6
/* 26F0 800272F0 1440FFEC */ bnez $v0, .L800272A4
/* 26F4 800272F4 24840004 */ addiu $a0, $a0, 4
/* 26F8 800272F8 0000282D */ daddu $a1, $zero, $zero
/* 26FC 800272FC 27A40018 */ addiu $a0, $sp, 0x18
/* 2700 80027300 00851821 */ addu $v1, $a0, $a1
.L80027304:
/* 2704 80027304 90620000 */ lbu $v0, ($v1)
/* 2708 80027308 50400004 */ beql $v0, $zero, .L8002731C
/* 270C 8002730C 24A50001 */ addiu $a1, $a1, 1
/* 2710 80027310 2442FFFF */ addiu $v0, $v0, -1
/* 2714 80027314 08009CCA */ j .L80027328
/* 2718 80027318 A0620000 */ sb $v0, ($v1)
.L8002731C:
/* 271C 8002731C 28A20020 */ slti $v0, $a1, 0x20
/* 2720 80027320 1440FFF8 */ bnez $v0, .L80027304
/* 2724 80027324 00851821 */ addu $v1, $a0, $a1
.L80027328:
/* 2728 80027328 28A20020 */ slti $v0, $a1, 0x20
/* 272C 8002732C 10400009 */ beqz $v0, .L80027354
/* 2730 80027330 27A30018 */ addiu $v1, $sp, 0x18
/* 2734 80027334 00651021 */ addu $v0, $v1, $a1
.L80027338:
/* 2738 80027338 90420000 */ lbu $v0, ($v0)
/* 273C 8002733C 14400005 */ bnez $v0, .L80027354
/* 2740 80027340 00000000 */ nop
/* 2744 80027344 24A50001 */ addiu $a1, $a1, 1
/* 2748 80027348 28A20020 */ slti $v0, $a1, 0x20
/* 274C 8002734C 1440FFFA */ bnez $v0, .L80027338
/* 2750 80027350 00651021 */ addu $v0, $v1, $a1
.L80027354:
/* 2754 80027354 93A20000 */ lbu $v0, ($sp)
/* 2758 80027358 00A2102A */ slt $v0, $a1, $v0
/* 275C 8002735C 54400001 */ bnel $v0, $zero, .L80027364
/* 2760 80027360 A3A50000 */ sb $a1, ($sp)
.L80027364:
/* 2764 80027364 0000282D */ daddu $a1, $zero, $zero
/* 2768 80027368 27A40038 */ addiu $a0, $sp, 0x38
/* 276C 8002736C 00851821 */ addu $v1, $a0, $a1
.L80027370:
/* 2770 80027370 90620000 */ lbu $v0, ($v1)
/* 2774 80027374 50400004 */ beql $v0, $zero, .L80027388
/* 2778 80027378 24A50001 */ addiu $a1, $a1, 1
/* 277C 8002737C 2442FFFF */ addiu $v0, $v0, -1
/* 2780 80027380 08009CE5 */ j .L80027394
/* 2784 80027384 A0620000 */ sb $v0, ($v1)
.L80027388:
/* 2788 80027388 28A20020 */ slti $v0, $a1, 0x20
/* 278C 8002738C 1440FFF8 */ bnez $v0, .L80027370
/* 2790 80027390 00851821 */ addu $v1, $a0, $a1
.L80027394:
/* 2794 80027394 28A20020 */ slti $v0, $a1, 0x20
/* 2798 80027398 10400009 */ beqz $v0, .L800273C0
/* 279C 8002739C 27A30038 */ addiu $v1, $sp, 0x38
/* 27A0 800273A0 00651021 */ addu $v0, $v1, $a1
.L800273A4:
/* 27A4 800273A4 90420000 */ lbu $v0, ($v0)
/* 27A8 800273A8 14400005 */ bnez $v0, .L800273C0
/* 27AC 800273AC 00000000 */ nop
/* 27B0 800273B0 24A50001 */ addiu $a1, $a1, 1
/* 27B4 800273B4 28A20020 */ slti $v0, $a1, 0x20
/* 27B8 800273B8 1440FFFA */ bnez $v0, .L800273A4
/* 27BC 800273BC 00651021 */ addu $v0, $v1, $a1
.L800273C0:
/* 27C0 800273C0 93A20001 */ lbu $v0, 1($sp)
/* 27C4 800273C4 00A2102A */ slt $v0, $a1, $v0
/* 27C8 800273C8 54400001 */ bnel $v0, $zero, .L800273D0
/* 27CC 800273CC A3A50001 */ sb $a1, 1($sp)
.L800273D0:
/* 27D0 800273D0 0000282D */ daddu $a1, $zero, $zero
/* 27D4 800273D4 27A40058 */ addiu $a0, $sp, 0x58
/* 27D8 800273D8 00851821 */ addu $v1, $a0, $a1
.L800273DC:
/* 27DC 800273DC 90620000 */ lbu $v0, ($v1)
/* 27E0 800273E0 50400004 */ beql $v0, $zero, .L800273F4
/* 27E4 800273E4 24A50001 */ addiu $a1, $a1, 1
/* 27E8 800273E8 2442FFFF */ addiu $v0, $v0, -1
/* 27EC 800273EC 08009D00 */ j .L80027400
/* 27F0 800273F0 A0620000 */ sb $v0, ($v1)
.L800273F4:
/* 27F4 800273F4 28A20020 */ slti $v0, $a1, 0x20
/* 27F8 800273F8 1440FFF8 */ bnez $v0, .L800273DC
/* 27FC 800273FC 00851821 */ addu $v1, $a0, $a1
.L80027400:
/* 2800 80027400 28A20020 */ slti $v0, $a1, 0x20
/* 2804 80027404 10400009 */ beqz $v0, .L8002742C
/* 2808 80027408 27A30058 */ addiu $v1, $sp, 0x58
/* 280C 8002740C 00651021 */ addu $v0, $v1, $a1
.L80027410:
/* 2810 80027410 90420000 */ lbu $v0, ($v0)
/* 2814 80027414 14400005 */ bnez $v0, .L8002742C
/* 2818 80027418 00000000 */ nop
/* 281C 8002741C 24A50001 */ addiu $a1, $a1, 1
/* 2820 80027420 28A20020 */ slti $v0, $a1, 0x20
/* 2824 80027424 1440FFFA */ bnez $v0, .L80027410
/* 2828 80027428 00651021 */ addu $v0, $v1, $a1
.L8002742C:
/* 282C 8002742C 93A20002 */ lbu $v0, 2($sp)
/* 2830 80027430 00A2102A */ slt $v0, $a1, $v0
/* 2834 80027434 54400001 */ bnel $v0, $zero, .L8002743C
/* 2838 80027438 A3A50002 */ sb $a1, 2($sp)
.L8002743C:
/* 283C 8002743C 2405001F */ addiu $a1, $zero, 0x1f
/* 2840 80027440 27A30018 */ addiu $v1, $sp, 0x18
/* 2844 80027444 00651021 */ addu $v0, $v1, $a1
.L80027448:
/* 2848 80027448 90420000 */ lbu $v0, ($v0)
/* 284C 8002744C 14400004 */ bnez $v0, .L80027460
/* 2850 80027450 00000000 */ nop
/* 2854 80027454 24A5FFFF */ addiu $a1, $a1, -1
/* 2858 80027458 04A1FFFB */ bgez $a1, .L80027448
/* 285C 8002745C 00651021 */ addu $v0, $v1, $a1
.L80027460:
/* 2860 80027460 93A20008 */ lbu $v0, 8($sp)
/* 2864 80027464 0045102A */ slt $v0, $v0, $a1
/* 2868 80027468 54400001 */ bnel $v0, $zero, .L80027470
/* 286C 8002746C A3A50008 */ sb $a1, 8($sp)
.L80027470:
/* 2870 80027470 2405001F */ addiu $a1, $zero, 0x1f
/* 2874 80027474 27A30038 */ addiu $v1, $sp, 0x38
/* 2878 80027478 00651021 */ addu $v0, $v1, $a1
.L8002747C:
/* 287C 8002747C 90420000 */ lbu $v0, ($v0)
/* 2880 80027480 14400004 */ bnez $v0, .L80027494
/* 2884 80027484 00000000 */ nop
/* 2888 80027488 24A5FFFF */ addiu $a1, $a1, -1
/* 288C 8002748C 04A1FFFB */ bgez $a1, .L8002747C
/* 2890 80027490 00651021 */ addu $v0, $v1, $a1
.L80027494:
/* 2894 80027494 93A20009 */ lbu $v0, 9($sp)
/* 2898 80027498 0045102A */ slt $v0, $v0, $a1
/* 289C 8002749C 54400001 */ bnel $v0, $zero, .L800274A4
/* 28A0 800274A0 A3A50009 */ sb $a1, 9($sp)
.L800274A4:
/* 28A4 800274A4 2405001F */ addiu $a1, $zero, 0x1f
/* 28A8 800274A8 27A30058 */ addiu $v1, $sp, 0x58
/* 28AC 800274AC 00651021 */ addu $v0, $v1, $a1
.L800274B0:
/* 28B0 800274B0 90420000 */ lbu $v0, ($v0)
/* 28B4 800274B4 14400004 */ bnez $v0, .L800274C8
/* 28B8 800274B8 00000000 */ nop
/* 28BC 800274BC 24A5FFFF */ addiu $a1, $a1, -1
/* 28C0 800274C0 04A1FFFB */ bgez $a1, .L800274B0
/* 28C4 800274C4 00651021 */ addu $v0, $v1, $a1
.L800274C8:
/* 28C8 800274C8 93A2000A */ lbu $v0, 0xa($sp)
/* 28CC 800274CC 0045102A */ slt $v0, $v0, $a1
/* 28D0 800274D0 54400001 */ bnel $v0, $zero, .L800274D8
/* 28D4 800274D4 A3A5000A */ sb $a1, 0xa($sp)
.L800274D8:
/* 28D8 800274D8 93A20008 */ lbu $v0, 8($sp)
/* 28DC 800274DC 93A30000 */ lbu $v1, ($sp)
/* 28E0 800274E0 93A4007C */ lbu $a0, 0x7c($sp)
/* 28E4 800274E4 00431021 */ addu $v0, $v0, $v1
/* 28E8 800274E8 00441023 */ subu $v0, $v0, $a0
/* 28EC 800274EC A3A20010 */ sb $v0, 0x10($sp)
/* 28F0 800274F0 93A20009 */ lbu $v0, 9($sp)
/* 28F4 800274F4 93A30001 */ lbu $v1, 1($sp)
/* 28F8 800274F8 93A4007D */ lbu $a0, 0x7d($sp)
/* 28FC 800274FC 00431021 */ addu $v0, $v0, $v1
/* 2900 80027500 00441023 */ subu $v0, $v0, $a0
/* 2904 80027504 A3A20011 */ sb $v0, 0x11($sp)
/* 2908 80027508 93A2000A */ lbu $v0, 0xa($sp)
/* 290C 8002750C 93A30002 */ lbu $v1, 2($sp)
/* 2910 80027510 93A4007E */ lbu $a0, 0x7e($sp)
/* 2914 80027514 00431021 */ addu $v0, $v0, $v1
/* 2918 80027518 00441023 */ subu $v0, $v0, $a0
/* 291C 8002751C A3A20012 */ sb $v0, 0x12($sp)
/* 2920 80027520 93A2007C */ lbu $v0, 0x7c($sp)
/* 2924 80027524 93A4007F */ lbu $a0, 0x7f($sp)
/* 2928 80027528 00440018 */ mult $v0, $a0
/* 292C 8002752C 24030008 */ addiu $v1, $zero, 8
/* 2930 80027530 00002812 */ mflo $a1
/* 2934 80027534 93A20010 */ lbu $v0, 0x10($sp)
/* 2938 80027538 00641823 */ subu $v1, $v1, $a0
/* 293C 8002753C 00430018 */ mult $v0, $v1
/* 2940 80027540 00001012 */ mflo $v0
/* 2944 80027544 00A21021 */ addu $v0, $a1, $v0
/* 2948 80027548 000210C3 */ sra $v0, $v0, 3
/* 294C 8002754C A3A20010 */ sb $v0, 0x10($sp)
/* 2950 80027550 93A2007D */ lbu $v0, 0x7d($sp)
/* 2954 80027554 00440018 */ mult $v0, $a0
/* 2958 80027558 00002812 */ mflo $a1
/* 295C 8002755C 93A20011 */ lbu $v0, 0x11($sp)
/* 2960 80027560 00000000 */ nop
/* 2964 80027564 00430018 */ mult $v0, $v1
/* 2968 80027568 00001012 */ mflo $v0
/* 296C 8002756C 00A21021 */ addu $v0, $a1, $v0
/* 2970 80027570 000210C3 */ sra $v0, $v0, 3
/* 2974 80027574 A3A20011 */ sb $v0, 0x11($sp)
/* 2978 80027578 93A2007E */ lbu $v0, 0x7e($sp)
/* 297C 8002757C 00440018 */ mult $v0, $a0
/* 2980 80027580 00002012 */ mflo $a0
/* 2984 80027584 93A20012 */ lbu $v0, 0x12($sp)
/* 2988 80027588 00000000 */ nop
/* 298C 8002758C 00430018 */ mult $v0, $v1
/* 2990 80027590 00001012 */ mflo $v0
/* 2994 80027594 00821021 */ addu $v0, $a0, $v0
/* 2998 80027598 000210C3 */ sra $v0, $v0, 3
/* 299C 8002759C A3A20012 */ sb $v0, 0x12($sp)
/* 29A0 800275A0 93A20010 */ lbu $v0, 0x10($sp)
/* 29A4 800275A4 93A40011 */ lbu $a0, 0x11($sp)
/* 29A8 800275A8 93A30012 */ lbu $v1, 0x12($sp)
/* 29AC 800275AC 000212C0 */ sll $v0, $v0, 0xb
/* 29B0 800275B0 00042180 */ sll $a0, $a0, 6
/* 29B4 800275B4 00441021 */ addu $v0, $v0, $a0
/* 29B8 800275B8 00031840 */ sll $v1, $v1, 1
/* 29BC 800275BC 00431021 */ addu $v0, $v0, $v1
/* 29C0 800275C0 24420001 */ addiu $v0, $v0, 1
/* 29C4 800275C4 A4C20000 */ sh $v0, ($a2)
/* 29C8 800275C8 03E00008 */ jr $ra
/* 29CC 800275CC 27BD0078 */ addiu $sp, $sp, 0x78