papermario/ver/us/asm/nonmatchings/182B30/func_802549F4.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

164 lines
7.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802549F4
/* 1832D4 802549F4 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 1832D8 802549F8 AFB20018 */ sw $s2, 0x18($sp)
/* 1832DC 802549FC 0080902D */ daddu $s2, $a0, $zero
/* 1832E0 80254A00 AFBF0020 */ sw $ra, 0x20($sp)
/* 1832E4 80254A04 AFB3001C */ sw $s3, 0x1c($sp)
/* 1832E8 80254A08 AFB10014 */ sw $s1, 0x14($sp)
/* 1832EC 80254A0C AFB00010 */ sw $s0, 0x10($sp)
/* 1832F0 80254A10 8E4401F4 */ lw $a0, 0x1f4($s2)
/* 1832F4 80254A14 8C820000 */ lw $v0, ($a0)
/* 1832F8 80254A18 8C9300C0 */ lw $s3, 0xc0($a0)
/* 1832FC 80254A1C 30420001 */ andi $v0, $v0, 1
/* 183300 80254A20 14400084 */ bnez $v0, .L80254C34
/* 183304 80254A24 00000000 */ nop
/* 183308 80254A28 8C820094 */ lw $v0, 0x94($a0)
/* 18330C 80254A2C 10400081 */ beqz $v0, .L80254C34
/* 183310 80254A30 00000000 */ nop
/* 183314 80254A34 827107D9 */ lb $s1, 0x7d9($s3)
/* 183318 80254A38 C4800058 */ lwc1 $f0, 0x58($a0)
/* 18331C 80254A3C 00111840 */ sll $v1, $s1, 1
/* 183320 80254A40 02631821 */ addu $v1, $s3, $v1
/* 183324 80254A44 4600010D */ trunc.w.s $f4, $f0
/* 183328 80254A48 44022000 */ mfc1 $v0, $f4
/* 18332C 80254A4C 00000000 */ nop
/* 183330 80254A50 A46207FC */ sh $v0, 0x7fc($v1)
/* 183334 80254A54 C480005C */ lwc1 $f0, 0x5c($a0)
/* 183338 80254A58 4600010D */ trunc.w.s $f4, $f0
/* 18333C 80254A5C 44022000 */ mfc1 $v0, $f4
/* 183340 80254A60 00000000 */ nop
/* 183344 80254A64 A462081C */ sh $v0, 0x81c($v1)
/* 183348 80254A68 C4800060 */ lwc1 $f0, 0x60($a0)
/* 18334C 80254A6C 4600010D */ trunc.w.s $f4, $f0
/* 183350 80254A70 44022000 */ mfc1 $v0, $f4
/* 183354 80254A74 00000000 */ nop
/* 183358 80254A78 A462083C */ sh $v0, 0x83c($v1)
/* 18335C 80254A7C C640018C */ lwc1 $f0, 0x18c($s2)
/* 183360 80254A80 4600010D */ trunc.w.s $f4, $f0
/* 183364 80254A84 44022000 */ mfc1 $v0, $f4
/* 183368 80254A88 00000000 */ nop
/* 18336C 80254A8C A46207DC */ sh $v0, 0x7dc($v1)
/* 183370 80254A90 86420168 */ lh $v0, 0x168($s2)
/* 183374 80254A94 C6420188 */ lwc1 $f2, 0x188($s2)
/* 183378 80254A98 44820000 */ mtc1 $v0, $f0
/* 18337C 80254A9C 00000000 */ nop
/* 183380 80254AA0 46800020 */ cvt.s.w $f0, $f0
/* 183384 80254AA4 46020002 */ mul.s $f0, $f0, $f2
/* 183388 80254AA8 00000000 */ nop
/* 18338C 80254AAC 02718021 */ addu $s0, $s3, $s1
/* 183390 80254AB0 4600010D */ trunc.w.s $f4, $f0
/* 183394 80254AB4 44022000 */ mfc1 $v0, $f4
/* 183398 80254AB8 00000000 */ nop
/* 18339C 80254ABC A202085C */ sb $v0, 0x85c($s0)
/* 1833A0 80254AC0 8642016A */ lh $v0, 0x16a($s2)
/* 1833A4 80254AC4 C6420188 */ lwc1 $f2, 0x188($s2)
/* 1833A8 80254AC8 44820000 */ mtc1 $v0, $f0
/* 1833AC 80254ACC 00000000 */ nop
/* 1833B0 80254AD0 46800020 */ cvt.s.w $f0, $f0
/* 1833B4 80254AD4 46020002 */ mul.s $f0, $f0, $f2
/* 1833B8 80254AD8 00000000 */ nop
/* 1833BC 80254ADC 4600010D */ trunc.w.s $f4, $f0
/* 1833C0 80254AE0 44022000 */ mfc1 $v0, $f4
/* 1833C4 80254AE4 00000000 */ nop
/* 1833C8 80254AE8 A202086C */ sb $v0, 0x86c($s0)
/* 1833CC 80254AEC C64C015C */ lwc1 $f12, 0x15c($s2)
/* 1833D0 80254AF0 0C00A6C9 */ jal clamp_angle
/* 1833D4 80254AF4 2610087C */ addiu $s0, $s0, 0x87c
/* 1833D8 80254AF8 3C013F00 */ lui $at, 0x3f00
/* 1833DC 80254AFC 44811000 */ mtc1 $at, $f2
/* 1833E0 80254B00 00000000 */ nop
/* 1833E4 80254B04 46020002 */ mul.s $f0, $f0, $f2
/* 1833E8 80254B08 00000000 */ nop
/* 1833EC 80254B0C 3C014F00 */ lui $at, 0x4f00
/* 1833F0 80254B10 44811000 */ mtc1 $at, $f2
/* 1833F4 80254B14 00000000 */ nop
/* 1833F8 80254B18 4600103E */ c.le.s $f2, $f0
/* 1833FC 80254B1C 00000000 */ nop
/* 183400 80254B20 45030005 */ bc1tl .L80254B38
/* 183404 80254B24 46020001 */ sub.s $f0, $f0, $f2
/* 183408 80254B28 4600010D */ trunc.w.s $f4, $f0
/* 18340C 80254B2C 44032000 */ mfc1 $v1, $f4
/* 183410 80254B30 080952D4 */ j .L80254B50
/* 183414 80254B34 A2030000 */ sb $v1, ($s0)
.L80254B38:
/* 183418 80254B38 3C028000 */ lui $v0, 0x8000
/* 18341C 80254B3C 4600010D */ trunc.w.s $f4, $f0
/* 183420 80254B40 44032000 */ mfc1 $v1, $f4
/* 183424 80254B44 00000000 */ nop
/* 183428 80254B48 00621825 */ or $v1, $v1, $v0
/* 18342C 80254B4C A2030000 */ sb $v1, ($s0)
.L80254B50:
/* 183430 80254B50 0C00A6C9 */ jal clamp_angle
/* 183434 80254B54 C64C0160 */ lwc1 $f12, 0x160($s2)
/* 183438 80254B58 3C013F00 */ lui $at, 0x3f00
/* 18343C 80254B5C 44811000 */ mtc1 $at, $f2
/* 183440 80254B60 00000000 */ nop
/* 183444 80254B64 46020002 */ mul.s $f0, $f0, $f2
/* 183448 80254B68 00000000 */ nop
/* 18344C 80254B6C 02711021 */ addu $v0, $s3, $s1
/* 183450 80254B70 3C014F00 */ lui $at, 0x4f00
/* 183454 80254B74 44811000 */ mtc1 $at, $f2
/* 183458 80254B78 00000000 */ nop
/* 18345C 80254B7C 4600103E */ c.le.s $f2, $f0
/* 183460 80254B80 00000000 */ nop
/* 183464 80254B84 45010005 */ bc1t .L80254B9C
/* 183468 80254B88 2444088C */ addiu $a0, $v0, 0x88c
/* 18346C 80254B8C 4600010D */ trunc.w.s $f4, $f0
/* 183470 80254B90 44032000 */ mfc1 $v1, $f4
/* 183474 80254B94 080952EE */ j .L80254BB8
/* 183478 80254B98 A0830000 */ sb $v1, ($a0)
.L80254B9C:
/* 18347C 80254B9C 46020001 */ sub.s $f0, $f0, $f2
/* 183480 80254BA0 3C028000 */ lui $v0, 0x8000
/* 183484 80254BA4 4600010D */ trunc.w.s $f4, $f0
/* 183488 80254BA8 44032000 */ mfc1 $v1, $f4
/* 18348C 80254BAC 00000000 */ nop
/* 183490 80254BB0 00621825 */ or $v1, $v1, $v0
/* 183494 80254BB4 A0830000 */ sb $v1, ($a0)
.L80254BB8:
/* 183498 80254BB8 0C00A6C9 */ jal clamp_angle
/* 18349C 80254BBC C64C0164 */ lwc1 $f12, 0x164($s2)
/* 1834A0 80254BC0 3C013F00 */ lui $at, 0x3f00
/* 1834A4 80254BC4 44811000 */ mtc1 $at, $f2
/* 1834A8 80254BC8 00000000 */ nop
/* 1834AC 80254BCC 46020002 */ mul.s $f0, $f0, $f2
/* 1834B0 80254BD0 00000000 */ nop
/* 1834B4 80254BD4 02711021 */ addu $v0, $s3, $s1
/* 1834B8 80254BD8 3C014F00 */ lui $at, 0x4f00
/* 1834BC 80254BDC 44811000 */ mtc1 $at, $f2
/* 1834C0 80254BE0 00000000 */ nop
/* 1834C4 80254BE4 4600103E */ c.le.s $f2, $f0
/* 1834C8 80254BE8 00000000 */ nop
/* 1834CC 80254BEC 45010005 */ bc1t .L80254C04
/* 1834D0 80254BF0 2444089C */ addiu $a0, $v0, 0x89c
/* 1834D4 80254BF4 4600010D */ trunc.w.s $f4, $f0
/* 1834D8 80254BF8 44032000 */ mfc1 $v1, $f4
/* 1834DC 80254BFC 08095308 */ j .L80254C20
/* 1834E0 80254C00 A0830000 */ sb $v1, ($a0)
.L80254C04:
/* 1834E4 80254C04 46020001 */ sub.s $f0, $f0, $f2
/* 1834E8 80254C08 3C028000 */ lui $v0, 0x8000
/* 1834EC 80254C0C 4600010D */ trunc.w.s $f4, $f0
/* 1834F0 80254C10 44032000 */ mfc1 $v1, $f4
/* 1834F4 80254C14 00000000 */ nop
/* 1834F8 80254C18 00621825 */ or $v1, $v1, $v0
/* 1834FC 80254C1C A0830000 */ sb $v1, ($a0)
.L80254C20:
/* 183500 80254C20 26310001 */ addiu $s1, $s1, 1
/* 183504 80254C24 2A220010 */ slti $v0, $s1, 0x10
/* 183508 80254C28 50400001 */ beql $v0, $zero, .L80254C30
/* 18350C 80254C2C 0000882D */ daddu $s1, $zero, $zero
.L80254C30:
/* 183510 80254C30 A27107D9 */ sb $s1, 0x7d9($s3)
.L80254C34:
/* 183514 80254C34 8FBF0020 */ lw $ra, 0x20($sp)
/* 183518 80254C38 8FB3001C */ lw $s3, 0x1c($sp)
/* 18351C 80254C3C 8FB20018 */ lw $s2, 0x18($sp)
/* 183520 80254C40 8FB10014 */ lw $s1, 0x14($sp)
/* 183524 80254C44 8FB00010 */ lw $s0, 0x10($sp)
/* 183528 80254C48 03E00008 */ jr $ra
/* 18352C 80254C4C 27BD0028 */ addiu $sp, $sp, 0x28