papermario/ver/us/asm/nonmatchings/415D90/func_802A45D8.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

90 lines
4.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802A45D8
/* 419368 802A45D8 3C03802B */ lui $v1, %hi(D_802AD608)
/* 41936C 802A45DC 2463D608 */ addiu $v1, $v1, %lo(D_802AD608)
/* 419370 802A45E0 3C06802B */ lui $a2, %hi(D_802AD673)
/* 419374 802A45E4 90C6D673 */ lbu $a2, %lo(D_802AD673)($a2)
/* 419378 802A45E8 3C04802B */ lui $a0, %hi(D_802AD66C)
/* 41937C 802A45EC 2484D66C */ addiu $a0, $a0, %lo(D_802AD66C)
/* 419380 802A45F0 3C01802B */ lui $at, %hi(D_802AD604)
/* 419384 802A45F4 A020D604 */ sb $zero, %lo(D_802AD604)($at)
/* 419388 802A45F8 A0600000 */ sb $zero, ($v1)
/* 41938C 802A45FC 3C01802B */ lui $at, %hi(D_802AD605)
/* 419390 802A4600 A026D605 */ sb $a2, %lo(D_802AD605)($at)
/* 419394 802A4604 3C01802B */ lui $at, %hi(D_802AD606)
/* 419398 802A4608 A026D606 */ sb $a2, %lo(D_802AD606)($at)
/* 41939C 802A460C 90870003 */ lbu $a3, 3($a0)
/* 4193A0 802A4610 3C09802B */ lui $t1, %hi(D_802AD60A)
/* 4193A4 802A4614 2529D60A */ addiu $t1, $t1, %lo(D_802AD60A)
/* 4193A8 802A4618 00071600 */ sll $v0, $a3, 0x18
/* 4193AC 802A461C 00021603 */ sra $v0, $v0, 0x18
/* 4193B0 802A4620 28420007 */ slti $v0, $v0, 7
/* 4193B4 802A4624 14400003 */ bnez $v0, .L802A4634
/* 4193B8 802A4628 A1270000 */ sb $a3, ($t1)
/* 4193BC 802A462C 24020006 */ addiu $v0, $zero, 6
/* 4193C0 802A4630 A1220000 */ sb $v0, ($t1)
.L802A4634:
/* 4193C4 802A4634 3C08802B */ lui $t0, %hi(D_802AD609)
/* 4193C8 802A4638 2508D609 */ addiu $t0, $t0, %lo(D_802AD609)
/* 4193CC 802A463C 8C8A0000 */ lw $t2, ($a0)
/* 4193D0 802A4640 24020006 */ addiu $v0, $zero, 6
/* 4193D4 802A4644 A1020000 */ sb $v0, ($t0)
/* 4193D8 802A4648 0142102A */ slt $v0, $t2, $v0
/* 4193DC 802A464C 54400001 */ bnel $v0, $zero, .L802A4654
/* 4193E0 802A4650 A1070000 */ sb $a3, ($t0)
.L802A4654:
/* 4193E4 802A4654 240200FF */ addiu $v0, $zero, 0xff
/* 4193E8 802A4658 3C01802B */ lui $at, %hi(D_802AD624)
/* 4193EC 802A465C AC22D624 */ sw $v0, %lo(D_802AD624)($at)
/* 4193F0 802A4660 24020001 */ addiu $v0, $zero, 1
/* 4193F4 802A4664 00C0202D */ daddu $a0, $a2, $zero
/* 4193F8 802A4668 3C01802B */ lui $at, %hi(D_802AD60B)
/* 4193FC 802A466C A022D60B */ sb $v0, %lo(D_802AD60B)($at)
/* 419400 802A4670 00041600 */ sll $v0, $a0, 0x18
/* 419404 802A4674 00022E03 */ sra $a1, $v0, 0x18
/* 419408 802A4678 04A20001 */ bltzl $a1, .L802A4680
/* 41940C 802A467C A0640000 */ sb $a0, ($v1)
.L802A4680:
/* 419410 802A4680 81020000 */ lb $v0, ($t0)
/* 419414 802A4684 00A2102A */ slt $v0, $a1, $v0
/* 419418 802A4688 14400005 */ bnez $v0, .L802A46A0
/* 41941C 802A468C 00000000 */ nop
/* 419420 802A4690 91220000 */ lbu $v0, ($t1)
/* 419424 802A4694 2442FFFF */ addiu $v0, $v0, -1
/* 419428 802A4698 00C21023 */ subu $v0, $a2, $v0
/* 41942C 802A469C A0620000 */ sb $v0, ($v1)
.L802A46A0:
/* 419430 802A46A0 90630000 */ lbu $v1, ($v1)
/* 419434 802A46A4 24620006 */ addiu $v0, $v1, 6
/* 419438 802A46A8 A1020000 */ sb $v0, ($t0)
/* 41943C 802A46AC 00021600 */ sll $v0, $v0, 0x18
/* 419440 802A46B0 00021603 */ sra $v0, $v0, 0x18
/* 419444 802A46B4 0142102A */ slt $v0, $t2, $v0
/* 419448 802A46B8 54400001 */ bnel $v0, $zero, .L802A46C0
/* 41944C 802A46BC A1070000 */ sb $a3, ($t0)
.L802A46C0:
/* 419450 802A46C0 00031E00 */ sll $v1, $v1, 0x18
/* 419454 802A46C4 00031E03 */ sra $v1, $v1, 0x18
/* 419458 802A46C8 00032023 */ negu $a0, $v1
/* 41945C 802A46CC 00041040 */ sll $v0, $a0, 1
/* 419460 802A46D0 00441021 */ addu $v0, $v0, $a0
/* 419464 802A46D4 00021080 */ sll $v0, $v0, 2
/* 419468 802A46D8 00441021 */ addu $v0, $v0, $a0
/* 41946C 802A46DC 00A31823 */ subu $v1, $a1, $v1
/* 419470 802A46E0 3C01802B */ lui $at, %hi(D_802AD60C)
/* 419474 802A46E4 A422D60C */ sh $v0, %lo(D_802AD60C)($at)
/* 419478 802A46E8 00031040 */ sll $v0, $v1, 1
/* 41947C 802A46EC 00431021 */ addu $v0, $v0, $v1
/* 419480 802A46F0 00021080 */ sll $v0, $v0, 2
/* 419484 802A46F4 00431021 */ addu $v0, $v0, $v1
/* 419488 802A46F8 3C01802B */ lui $at, %hi(D_802AD60E)
/* 41948C 802A46FC A422D60E */ sh $v0, %lo(D_802AD60E)($at)
/* 419490 802A4700 3C01802B */ lui $at, %hi(D_802AD607)
/* 419494 802A4704 A020D607 */ sb $zero, %lo(D_802AD607)($at)
/* 419498 802A4708 3C01802B */ lui $at, %hi(D_802AD6D4)
/* 41949C 802A470C AC20D6D4 */ sw $zero, %lo(D_802AD6D4)($at)
/* 4194A0 802A4710 03E00008 */ jr $ra
/* 4194A4 802A4714 00000000 */ nop