mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +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>
268 lines
13 KiB
ArmAsm
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
|