papermario/ver/jp/asm/nonmatchings/23330/func_800498B4.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

152 lines
7.7 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800498B4
/* 24CB4 800498B4 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 24CB8 800498B8 AFB40048 */ sw $s4, 0x48($sp)
/* 24CBC 800498BC 0080A02D */ daddu $s4, $a0, $zero
/* 24CC0 800498C0 AFBF004C */ sw $ra, 0x4c($sp)
/* 24CC4 800498C4 AFB30044 */ sw $s3, 0x44($sp)
/* 24CC8 800498C8 AFB20040 */ sw $s2, 0x40($sp)
/* 24CCC 800498CC AFB1003C */ sw $s1, 0x3c($sp)
/* 24CD0 800498D0 AFB00038 */ sw $s0, 0x38($sp)
/* 24CD4 800498D4 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 24CD8 800498D8 8E920148 */ lw $s2, 0x148($s4)
/* 24CDC 800498DC 00A0982D */ daddu $s3, $a1, $zero
/* 24CE0 800498E0 86440008 */ lh $a0, 8($s2)
/* 24CE4 800498E4 0C00E9EB */ jal func_8003A7AC
/* 24CE8 800498E8 00C0882D */ daddu $s1, $a2, $zero
/* 24CEC 800498EC 8E630014 */ lw $v1, 0x14($s3)
/* 24CF0 800498F0 0460004F */ bltz $v1, .L80049A30
/* 24CF4 800498F4 0040802D */ daddu $s0, $v0, $zero
/* 24CF8 800498F8 0220202D */ daddu $a0, $s1, $zero
/* 24CFC 800498FC AFA00010 */ sw $zero, 0x10($sp)
/* 24D00 80049900 8E660024 */ lw $a2, 0x24($s3)
/* 24D04 80049904 8E670028 */ lw $a3, 0x28($s3)
/* 24D08 80049908 0C012359 */ jal func_80048D64
/* 24D0C 8004990C 0240282D */ daddu $a1, $s2, $zero
/* 24D10 80049910 10400047 */ beqz $v0, .L80049A30
/* 24D14 80049914 00000000 */ nop
/* 24D18 80049918 3C02800F */ lui $v0, %hi(D_800F7CC0)
/* 24D1C 8004991C 8C427CC0 */ lw $v0, %lo(D_800F7CC0)($v0)
/* 24D20 80049920 C60C0038 */ lwc1 $f12, 0x38($s0)
/* 24D24 80049924 C602003C */ lwc1 $f2, 0x3c($s0)
/* 24D28 80049928 C6040040 */ lwc1 $f4, 0x40($s0)
/* 24D2C 8004992C 46006006 */ mov.s $f0, $f12
/* 24D30 80049930 8C460028 */ lw $a2, 0x28($v0)
/* 24D34 80049934 8C470030 */ lw $a3, 0x30($v0)
/* 24D38 80049938 46002386 */ mov.s $f14, $f4
/* 24D3C 8004993C E7A00028 */ swc1 $f0, 0x28($sp)
/* 24D40 80049940 E7A2002C */ swc1 $f2, 0x2c($sp)
/* 24D44 80049944 0C00A710 */ jal func_80029C40
/* 24D48 80049948 E7A40030 */ swc1 $f4, 0x30($sp)
/* 24D4C 8004994C C6620018 */ lwc1 $f2, 0x18($s3)
/* 24D50 80049950 46000506 */ mov.s $f20, $f0
/* 24D54 80049954 E7B40014 */ swc1 $f20, 0x14($sp)
/* 24D58 80049958 E7A20010 */ swc1 $f2, 0x10($sp)
/* 24D5C 8004995C 860200A8 */ lh $v0, 0xa8($s0)
/* 24D60 80049960 27A50028 */ addiu $a1, $sp, 0x28
/* 24D64 80049964 44820000 */ mtc1 $v0, $f0
/* 24D68 80049968 00000000 */ nop
/* 24D6C 8004996C 46800020 */ cvt.s.w $f0, $f0
/* 24D70 80049970 E7A00018 */ swc1 $f0, 0x18($sp)
/* 24D74 80049974 860200A6 */ lh $v0, 0xa6($s0)
/* 24D78 80049978 27A6002C */ addiu $a2, $sp, 0x2c
/* 24D7C 8004997C 44820000 */ mtc1 $v0, $f0
/* 24D80 80049980 00000000 */ nop
/* 24D84 80049984 46800020 */ cvt.s.w $f0, $f0
/* 24D88 80049988 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 24D8C 8004998C 8E040080 */ lw $a0, 0x80($s0)
/* 24D90 80049990 0C037709 */ jal func_800DDC24
/* 24D94 80049994 27A70030 */ addiu $a3, $sp, 0x30
/* 24D98 80049998 14400025 */ bnez $v0, .L80049A30
/* 24D9C 8004999C 0200202D */ daddu $a0, $s0, $zero
/* 24DA0 800499A0 240502F4 */ addiu $a1, $zero, 0x2f4
/* 24DA4 800499A4 3C060020 */ lui $a2, 0x20
/* 24DA8 800499A8 0C01245C */ jal func_80049170
/* 24DAC 800499AC E614000C */ swc1 $f20, 0xc($s0)
/* 24DB0 800499B0 0000202D */ daddu $a0, $zero, $zero
/* 24DB4 800499B4 0200282D */ daddu $a1, $s0, $zero
/* 24DB8 800499B8 0000302D */ daddu $a2, $zero, $zero
/* 24DBC 800499BC 84A300A8 */ lh $v1, 0xa8($a1)
/* 24DC0 800499C0 3C013F80 */ lui $at, 0x3f80
/* 24DC4 800499C4 44810000 */ mtc1 $at, $f0
/* 24DC8 800499C8 3C014000 */ lui $at, 0x4000
/* 24DCC 800499CC 44811000 */ mtc1 $at, $f2
/* 24DD0 800499D0 3C01C1A0 */ lui $at, 0xc1a0
/* 24DD4 800499D4 44812000 */ mtc1 $at, $f4
/* 24DD8 800499D8 2402000F */ addiu $v0, $zero, 0xf
/* 24DDC 800499DC AFA2001C */ sw $v0, 0x1c($sp)
/* 24DE0 800499E0 44833000 */ mtc1 $v1, $f6
/* 24DE4 800499E4 00000000 */ nop
/* 24DE8 800499E8 468031A0 */ cvt.s.w $f6, $f6
/* 24DEC 800499EC 44073000 */ mfc1 $a3, $f6
/* 24DF0 800499F0 27A20034 */ addiu $v0, $sp, 0x34
/* 24DF4 800499F4 AFA20020 */ sw $v0, 0x20($sp)
/* 24DF8 800499F8 E7A00010 */ swc1 $f0, 0x10($sp)
/* 24DFC 800499FC E7A20014 */ swc1 $f2, 0x14($sp)
/* 24E00 80049A00 0C01BF9C */ jal func_8006FE70
/* 24E04 80049A04 E7A40018 */ swc1 $f4, 0x18($sp)
/* 24E08 80049A08 8E420018 */ lw $v0, 0x18($s2)
/* 24E0C 80049A0C 9442002A */ lhu $v0, 0x2a($v0)
/* 24E10 80049A10 30420001 */ andi $v0, $v0, 1
/* 24E14 80049A14 10400003 */ beqz $v0, .L80049A24
/* 24E18 80049A18 2402000A */ addiu $v0, $zero, 0xa
/* 24E1C 80049A1C 080126B2 */ j .L80049AC8
/* 24E20 80049A20 AE820070 */ sw $v0, 0x70($s4)
.L80049A24:
/* 24E24 80049A24 2402000C */ addiu $v0, $zero, 0xc
/* 24E28 80049A28 080126B2 */ j .L80049AC8
/* 24E2C 80049A2C AE820070 */ sw $v0, 0x70($s4)
.L80049A30:
/* 24E30 80049A30 8602008C */ lh $v0, 0x8c($s0)
/* 24E34 80049A34 14400024 */ bnez $v0, .L80049AC8
/* 24E38 80049A38 00000000 */ nop
/* 24E3C 80049A3C 9602008E */ lhu $v0, 0x8e($s0)
/* 24E40 80049A40 2442FFFF */ addiu $v0, $v0, -1
/* 24E44 80049A44 A602008E */ sh $v0, 0x8e($s0)
/* 24E48 80049A48 00021400 */ sll $v0, $v0, 0x10
/* 24E4C 80049A4C 1C40001E */ bgtz $v0, .L80049AC8
/* 24E50 80049A50 00000000 */ nop
/* 24E54 80049A54 8E820074 */ lw $v0, 0x74($s4)
/* 24E58 80049A58 2442FFFF */ addiu $v0, $v0, -1
/* 24E5C 80049A5C 10400019 */ beqz $v0, .L80049AC4
/* 24E60 80049A60 AE820074 */ sw $v0, 0x74($s4)
/* 24E64 80049A64 8E420018 */ lw $v0, 0x18($s2)
/* 24E68 80049A68 9442002A */ lhu $v0, 0x2a($v0)
/* 24E6C 80049A6C 30420010 */ andi $v0, $v0, 0x10
/* 24E70 80049A70 14400007 */ bnez $v0, .L80049A90
/* 24E74 80049A74 00000000 */ nop
/* 24E78 80049A78 C600000C */ lwc1 $f0, 0xc($s0)
/* 24E7C 80049A7C 3C014334 */ lui $at, 0x4334
/* 24E80 80049A80 44816000 */ mtc1 $at, $f12
/* 24E84 80049A84 0C00A6B9 */ jal func_80029AE4
/* 24E88 80049A88 460C0300 */ add.s $f12, $f0, $f12
/* 24E8C 80049A8C E600000C */ swc1 $f0, 0xc($s0)
.L80049A90:
/* 24E90 80049A90 8E640008 */ lw $a0, 8($s3)
/* 24E94 80049A94 000417C2 */ srl $v0, $a0, 0x1f
/* 24E98 80049A98 00822021 */ addu $a0, $a0, $v0
/* 24E9C 80049A9C 00042043 */ sra $a0, $a0, 1
/* 24EA0 80049AA0 0C00A66F */ jal func_800299BC
/* 24EA4 80049AA4 24840001 */ addiu $a0, $a0, 1
/* 24EA8 80049AA8 8E630008 */ lw $v1, 8($s3)
/* 24EAC 80049AAC 000327C2 */ srl $a0, $v1, 0x1f
/* 24EB0 80049AB0 00641821 */ addu $v1, $v1, $a0
/* 24EB4 80049AB4 00031843 */ sra $v1, $v1, 1
/* 24EB8 80049AB8 00621821 */ addu $v1, $v1, $v0
/* 24EBC 80049ABC 080126B2 */ j .L80049AC8
/* 24EC0 80049AC0 A603008E */ sh $v1, 0x8e($s0)
.L80049AC4:
/* 24EC4 80049AC4 AE800070 */ sw $zero, 0x70($s4)
.L80049AC8:
/* 24EC8 80049AC8 8FBF004C */ lw $ra, 0x4c($sp)
/* 24ECC 80049ACC 8FB40048 */ lw $s4, 0x48($sp)
/* 24ED0 80049AD0 8FB30044 */ lw $s3, 0x44($sp)
/* 24ED4 80049AD4 8FB20040 */ lw $s2, 0x40($sp)
/* 24ED8 80049AD8 8FB1003C */ lw $s1, 0x3c($sp)
/* 24EDC 80049ADC 8FB00038 */ lw $s0, 0x38($sp)
/* 24EE0 80049AE0 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 24EE4 80049AE4 03E00008 */ jr $ra
/* 24EE8 80049AE8 27BD0058 */ addiu $sp, $sp, 0x58