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>
234 lines
12 KiB
ArmAsm
234 lines
12 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_80069E6C
|
|
/* 4526C 80069E6C 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
/* 45270 80069E70 AFB20030 */ sw $s2, 0x30($sp)
|
|
/* 45274 80069E74 00809021 */ addu $s2, $a0, $zero
|
|
/* 45278 80069E78 AFB40038 */ sw $s4, 0x38($sp)
|
|
/* 4527C 80069E7C 00A0A021 */ addu $s4, $a1, $zero
|
|
/* 45280 80069E80 AFB60040 */ sw $s6, 0x40($sp)
|
|
/* 45284 80069E84 00C0B021 */ addu $s6, $a2, $zero
|
|
/* 45288 80069E88 AFB70044 */ sw $s7, 0x44($sp)
|
|
/* 4528C 80069E8C 00E0B821 */ addu $s7, $a3, $zero
|
|
/* 45290 80069E90 32C200FF */ andi $v0, $s6, 0xff
|
|
/* 45294 80069E94 AFBF004C */ sw $ra, 0x4c($sp)
|
|
/* 45298 80069E98 AFBE0048 */ sw $fp, 0x48($sp)
|
|
/* 4529C 80069E9C AFB5003C */ sw $s5, 0x3c($sp)
|
|
/* 452A0 80069EA0 AFB30034 */ sw $s3, 0x34($sp)
|
|
/* 452A4 80069EA4 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* 452A8 80069EA8 14400011 */ bnez $v0, .L80069EF0
|
|
/* 452AC 80069EAC AFB00028 */ sw $s0, 0x28($sp)
|
|
/* 452B0 80069EB0 3C038009 */ lui $v1, %hi(D_80095864)
|
|
/* 452B4 80069EB4 90635864 */ lbu $v1, %lo(D_80095864)($v1)
|
|
/* 452B8 80069EB8 32E200FF */ andi $v0, $s7, 0xff
|
|
/* 452BC 80069EBC 1443000C */ bne $v0, $v1, .L80069EF0
|
|
/* 452C0 80069EC0 00000000 */ nop
|
|
/* 452C4 80069EC4 8E430008 */ lw $v1, 8($s2)
|
|
/* 452C8 80069EC8 3C028009 */ lui $v0, %hi(D_80095860)
|
|
/* 452CC 80069ECC 8C425860 */ lw $v0, %lo(D_80095860)($v0)
|
|
/* 452D0 80069ED0 14620007 */ bne $v1, $v0, .L80069EF0
|
|
/* 452D4 80069ED4 00000000 */ nop
|
|
/* 452D8 80069ED8 3C04800E */ lui $a0, %hi(D_800D9660)
|
|
/* 452DC 80069EDC 24849660 */ addiu $a0, $a0, %lo(D_800D9660)
|
|
/* 452E0 80069EE0 0C019188 */ jal func_80064620
|
|
/* 452E4 80069EE4 24060100 */ addiu $a2, $zero, 0x100
|
|
/* 452E8 80069EE8 0801A85D */ j .L8006A174
|
|
/* 452EC 80069EEC 00001021 */ addu $v0, $zero, $zero
|
|
.L80069EF0:
|
|
/* 452F0 80069EF0 92420065 */ lbu $v0, 0x65($s2)
|
|
/* 452F4 80069EF4 10400006 */ beqz $v0, .L80069F10
|
|
/* 452F8 80069EF8 02402021 */ addu $a0, $s2, $zero
|
|
/* 452FC 80069EFC 0C01A5AC */ jal func_800696B0
|
|
/* 45300 80069F00 00002821 */ addu $a1, $zero, $zero
|
|
/* 45304 80069F04 00401821 */ addu $v1, $v0, $zero
|
|
/* 45308 80069F08 1460009A */ bnez $v1, .L8006A174
|
|
/* 4530C 80069F0C 00000000 */ nop
|
|
.L80069F10:
|
|
/* 45310 80069F10 32E200FF */ andi $v0, $s7, 0xff
|
|
/* 45314 80069F14 14400002 */ bnez $v0, .L80069F20
|
|
/* 45318 80069F18 24150001 */ addiu $s5, $zero, 1
|
|
/* 4531C 80069F1C 8E550060 */ lw $s5, 0x60($s2)
|
|
.L80069F20:
|
|
/* 45320 80069F20 32C300FF */ andi $v1, $s6, 0xff
|
|
/* 45324 80069F24 24020001 */ addiu $v0, $zero, 1
|
|
/* 45328 80069F28 14620011 */ bne $v1, $v0, .L80069F70
|
|
/* 4532C 80069F2C 00008021 */ addu $s0, $zero, $zero
|
|
/* 45330 80069F30 00151040 */ sll $v0, $s5, 1
|
|
/* 45334 80069F34 00542821 */ addu $a1, $v0, $s4
|
|
/* 45338 80069F38 00002021 */ addu $a0, $zero, $zero
|
|
/* 4533C 80069F3C 24020080 */ addiu $v0, $zero, 0x80
|
|
/* 45340 80069F40 00551023 */ subu $v0, $v0, $s5
|
|
/* 45344 80069F44 00023040 */ sll $a2, $v0, 1
|
|
/* 45348 80069F48 18C00007 */ blez $a2, .L80069F68
|
|
/* 4534C 80069F4C 00001821 */ addu $v1, $zero, $zero
|
|
.L80069F50:
|
|
/* 45350 80069F50 90A20000 */ lbu $v0, ($a1)
|
|
/* 45354 80069F54 24840001 */ addiu $a0, $a0, 1
|
|
/* 45358 80069F58 00621821 */ addu $v1, $v1, $v0
|
|
/* 4535C 80069F5C 0086102A */ slt $v0, $a0, $a2
|
|
/* 45360 80069F60 1440FFFB */ bnez $v0, .L80069F50
|
|
/* 45364 80069F64 24A50001 */ addiu $a1, $a1, 1
|
|
.L80069F68:
|
|
/* 45368 80069F68 A2830001 */ sb $v1, 1($s4)
|
|
/* 4536C 80069F6C 00008021 */ addu $s0, $zero, $zero
|
|
.L80069F70:
|
|
/* 45370 80069F70 32DE00FF */ andi $fp, $s6, 0xff
|
|
/* 45374 80069F74 32E200FF */ andi $v0, $s7, 0xff
|
|
/* 45378 80069F78 000298C0 */ sll $s3, $v0, 3
|
|
/* 4537C 80069F7C 00101140 */ sll $v0, $s0, 5
|
|
.L80069F80:
|
|
/* 45380 80069F80 24080001 */ addiu $t0, $zero, 1
|
|
/* 45384 80069F84 17C80015 */ bne $fp, $t0, .L80069FDC
|
|
/* 45388 80069F88 02828821 */ addu $s1, $s4, $v0
|
|
/* 4538C 80069F8C 8E460054 */ lw $a2, 0x54($s2)
|
|
/* 45390 80069F90 AFA00010 */ sw $zero, 0x10($sp)
|
|
/* 45394 80069F94 8E440004 */ lw $a0, 4($s2)
|
|
/* 45398 80069F98 8E450008 */ lw $a1, 8($s2)
|
|
/* 4539C 80069F9C 02203821 */ addu $a3, $s1, $zero
|
|
/* 453A0 80069FA0 00D33021 */ addu $a2, $a2, $s3
|
|
/* 453A4 80069FA4 00D03021 */ addu $a2, $a2, $s0
|
|
/* 453A8 80069FA8 0C01A8E8 */ jal func_8006A3A0
|
|
/* 453AC 80069FAC 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* 453B0 80069FB0 8E460058 */ lw $a2, 0x58($s2)
|
|
/* 453B4 80069FB4 AFA00010 */ sw $zero, 0x10($sp)
|
|
/* 453B8 80069FB8 8E440004 */ lw $a0, 4($s2)
|
|
/* 453BC 80069FBC 8E450008 */ lw $a1, 8($s2)
|
|
/* 453C0 80069FC0 02203821 */ addu $a3, $s1, $zero
|
|
/* 453C4 80069FC4 00D33021 */ addu $a2, $a2, $s3
|
|
/* 453C8 80069FC8 00D03021 */ addu $a2, $a2, $s0
|
|
/* 453CC 80069FCC 0C01A8E8 */ jal func_8006A3A0
|
|
/* 453D0 80069FD0 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* 453D4 80069FD4 0801A800 */ j .L8006A000
|
|
/* 453D8 80069FD8 00401821 */ addu $v1, $v0, $zero
|
|
.L80069FDC:
|
|
/* 453DC 80069FDC 8E440004 */ lw $a0, 4($s2)
|
|
/* 453E0 80069FE0 8E460054 */ lw $a2, 0x54($s2)
|
|
/* 453E4 80069FE4 8E450008 */ lw $a1, 8($s2)
|
|
/* 453E8 80069FE8 02203821 */ addu $a3, $s1, $zero
|
|
/* 453EC 80069FEC 00D33021 */ addu $a2, $a2, $s3
|
|
/* 453F0 80069FF0 00D03021 */ addu $a2, $a2, $s0
|
|
/* 453F4 80069FF4 0C01A86C */ jal func_8006A1B0
|
|
/* 453F8 80069FF8 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* 453FC 80069FFC 00401821 */ addu $v1, $v0, $zero
|
|
.L8006A000:
|
|
/* 45400 8006A000 1460003D */ bnez $v1, .L8006A0F8
|
|
/* 45404 8006A004 26100001 */ addiu $s0, $s0, 1
|
|
/* 45408 8006A008 2A020008 */ slti $v0, $s0, 8
|
|
/* 4540C 8006A00C 1440FFDC */ bnez $v0, .L80069F80
|
|
/* 45410 8006A010 00101140 */ sll $v0, $s0, 5
|
|
/* 45414 8006A014 32C200FF */ andi $v0, $s6, 0xff
|
|
/* 45418 8006A018 5440004C */ bnel $v0, $zero, .L8006A14C
|
|
/* 4541C 8006A01C 02802021 */ addu $a0, $s4, $zero
|
|
/* 45420 8006A020 00003821 */ addu $a3, $zero, $zero
|
|
/* 45424 8006A024 00151040 */ sll $v0, $s5, 1
|
|
/* 45428 8006A028 00542821 */ addu $a1, $v0, $s4
|
|
/* 4542C 8006A02C 24020080 */ addiu $v0, $zero, 0x80
|
|
/* 45430 8006A030 00551023 */ subu $v0, $v0, $s5
|
|
/* 45434 8006A034 00023040 */ sll $a2, $v0, 1
|
|
/* 45438 8006A038 0066102A */ slt $v0, $v1, $a2
|
|
/* 4543C 8006A03C 10400007 */ beqz $v0, .L8006A05C
|
|
/* 45440 8006A040 00002021 */ addu $a0, $zero, $zero
|
|
.L8006A044:
|
|
/* 45444 8006A044 90A20000 */ lbu $v0, ($a1)
|
|
/* 45448 8006A048 24840001 */ addiu $a0, $a0, 1
|
|
/* 4544C 8006A04C 00E23821 */ addu $a3, $a3, $v0
|
|
/* 45450 8006A050 0086102A */ slt $v0, $a0, $a2
|
|
/* 45454 8006A054 1440FFFB */ bnez $v0, .L8006A044
|
|
/* 45458 8006A058 24A50001 */ addiu $a1, $a1, 1
|
|
.L8006A05C:
|
|
/* 4545C 8006A05C 92830001 */ lbu $v1, 1($s4)
|
|
/* 45460 8006A060 30E200FF */ andi $v0, $a3, 0xff
|
|
/* 45464 8006A064 10430038 */ beq $v0, $v1, .L8006A148
|
|
/* 45468 8006A068 32E200FF */ andi $v0, $s7, 0xff
|
|
/* 4546C 8006A06C 00008021 */ addu $s0, $zero, $zero
|
|
/* 45470 8006A070 000298C0 */ sll $s3, $v0, 3
|
|
/* 45474 8006A074 02808821 */ addu $s1, $s4, $zero
|
|
.L8006A078:
|
|
/* 45478 8006A078 8E440004 */ lw $a0, 4($s2)
|
|
/* 4547C 8006A07C 8E450008 */ lw $a1, 8($s2)
|
|
/* 45480 8006A080 8E460058 */ lw $a2, 0x58($s2)
|
|
/* 45484 8006A084 02203821 */ addu $a3, $s1, $zero
|
|
/* 45488 8006A088 26310020 */ addiu $s1, $s1, 0x20
|
|
/* 4548C 8006A08C 00D33021 */ addu $a2, $a2, $s3
|
|
/* 45490 8006A090 00D03021 */ addu $a2, $a2, $s0
|
|
/* 45494 8006A094 0C01A86C */ jal func_8006A1B0
|
|
/* 45498 8006A098 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* 4549C 8006A09C 26100001 */ addiu $s0, $s0, 1
|
|
/* 454A0 8006A0A0 2A020008 */ slti $v0, $s0, 8
|
|
/* 454A4 8006A0A4 1440FFF4 */ bnez $v0, .L8006A078
|
|
/* 454A8 8006A0A8 24030080 */ addiu $v1, $zero, 0x80
|
|
/* 454AC 8006A0AC 00151040 */ sll $v0, $s5, 1
|
|
/* 454B0 8006A0B0 00543021 */ addu $a2, $v0, $s4
|
|
/* 454B4 8006A0B4 00002021 */ addu $a0, $zero, $zero
|
|
/* 454B8 8006A0B8 00751823 */ subu $v1, $v1, $s5
|
|
/* 454BC 8006A0BC 00031840 */ sll $v1, $v1, 1
|
|
/* 454C0 8006A0C0 18600007 */ blez $v1, .L8006A0E0
|
|
/* 454C4 8006A0C4 00002821 */ addu $a1, $zero, $zero
|
|
.L8006A0C8:
|
|
/* 454C8 8006A0C8 90C20000 */ lbu $v0, ($a2)
|
|
/* 454CC 8006A0CC 24840001 */ addiu $a0, $a0, 1
|
|
/* 454D0 8006A0D0 00A22821 */ addu $a1, $a1, $v0
|
|
/* 454D4 8006A0D4 0083102A */ slt $v0, $a0, $v1
|
|
/* 454D8 8006A0D8 1440FFFB */ bnez $v0, .L8006A0C8
|
|
/* 454DC 8006A0DC 24C60001 */ addiu $a2, $a2, 1
|
|
.L8006A0E0:
|
|
/* 454E0 8006A0E0 92830001 */ lbu $v1, 1($s4)
|
|
/* 454E4 8006A0E4 30A200FF */ andi $v0, $a1, 0xff
|
|
/* 454E8 8006A0E8 10430005 */ beq $v0, $v1, .L8006A100
|
|
/* 454EC 8006A0EC 24020003 */ addiu $v0, $zero, 3
|
|
/* 454F0 8006A0F0 0801A85D */ j .L8006A174
|
|
/* 454F4 8006A0F4 00000000 */ nop
|
|
.L8006A0F8:
|
|
/* 454F8 8006A0F8 0801A85D */ j .L8006A174
|
|
/* 454FC 8006A0FC 00601021 */ addu $v0, $v1, $zero
|
|
.L8006A100:
|
|
/* 45500 8006A100 00008021 */ addu $s0, $zero, $zero
|
|
/* 45504 8006A104 32E200FF */ andi $v0, $s7, 0xff
|
|
/* 45508 8006A108 000298C0 */ sll $s3, $v0, 3
|
|
/* 4550C 8006A10C 02808821 */ addu $s1, $s4, $zero
|
|
.L8006A110:
|
|
/* 45510 8006A110 8E460054 */ lw $a2, 0x54($s2)
|
|
/* 45514 8006A114 AFA00010 */ sw $zero, 0x10($sp)
|
|
/* 45518 8006A118 8E440004 */ lw $a0, 4($s2)
|
|
/* 4551C 8006A11C 8E450008 */ lw $a1, 8($s2)
|
|
/* 45520 8006A120 02203821 */ addu $a3, $s1, $zero
|
|
/* 45524 8006A124 26310020 */ addiu $s1, $s1, 0x20
|
|
/* 45528 8006A128 00D33021 */ addu $a2, $a2, $s3
|
|
/* 4552C 8006A12C 00D03021 */ addu $a2, $a2, $s0
|
|
/* 45530 8006A130 0C01A8E8 */ jal func_8006A3A0
|
|
/* 45534 8006A134 30C6FFFF */ andi $a2, $a2, 0xffff
|
|
/* 45538 8006A138 26100001 */ addiu $s0, $s0, 1
|
|
/* 4553C 8006A13C 2A020008 */ slti $v0, $s0, 8
|
|
/* 45540 8006A140 1440FFF3 */ bnez $v0, .L8006A110
|
|
/* 45544 8006A144 00000000 */ nop
|
|
.L8006A148:
|
|
/* 45548 8006A148 02802021 */ addu $a0, $s4, $zero
|
|
.L8006A14C:
|
|
/* 4554C 8006A14C 3C05800E */ lui $a1, %hi(D_800D9660)
|
|
/* 45550 8006A150 24A59660 */ addiu $a1, $a1, %lo(D_800D9660)
|
|
/* 45554 8006A154 3C018009 */ lui $at, %hi(D_80095864)
|
|
/* 45558 8006A158 A0375864 */ sb $s7, %lo(D_80095864)($at)
|
|
/* 4555C 8006A15C 0C019188 */ jal func_80064620
|
|
/* 45560 8006A160 24060100 */ addiu $a2, $zero, 0x100
|
|
/* 45564 8006A164 8E430008 */ lw $v1, 8($s2)
|
|
/* 45568 8006A168 00001021 */ addu $v0, $zero, $zero
|
|
/* 4556C 8006A16C 3C018009 */ lui $at, %hi(D_80095860)
|
|
/* 45570 8006A170 AC235860 */ sw $v1, %lo(D_80095860)($at)
|
|
.L8006A174:
|
|
/* 45574 8006A174 8FBF004C */ lw $ra, 0x4c($sp)
|
|
/* 45578 8006A178 8FBE0048 */ lw $fp, 0x48($sp)
|
|
/* 4557C 8006A17C 8FB70044 */ lw $s7, 0x44($sp)
|
|
/* 45580 8006A180 8FB60040 */ lw $s6, 0x40($sp)
|
|
/* 45584 8006A184 8FB5003C */ lw $s5, 0x3c($sp)
|
|
/* 45588 8006A188 8FB40038 */ lw $s4, 0x38($sp)
|
|
/* 4558C 8006A18C 8FB30034 */ lw $s3, 0x34($sp)
|
|
/* 45590 8006A190 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* 45594 8006A194 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* 45598 8006A198 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* 4559C 8006A19C 03E00008 */ jr $ra
|
|
/* 455A0 8006A1A0 27BD0050 */ addiu $sp, $sp, 0x50
|
|
/* 455A4 8006A1A4 00000000 */ nop
|
|
/* 455A8 8006A1A8 00000000 */ nop
|
|
/* 455AC 8006A1AC 00000000 */ nop
|