papermario/ver/us/asm/nonmatchings/341d0/func_800598A0.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

159 lines
7.6 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
glabel jtbl_80098970
.word L800598D0_34CD0, L800598FC_34CFC, L8005994C_34D4C, L80059928_34D28, L80059970_34D70, L80059994_34D94, L800599F0_34DF0, L80059A6C_34E6C
glabel D_80098990
.double 173123.404906676, 0.0
.section .text
glabel func_800598A0
/* 34CA0 800598A0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 34CA4 800598A4 00063400 */ sll $a2, $a2, 0x10
/* 34CA8 800598A8 00063403 */ sra $a2, $a2, 0x10
/* 34CAC 800598AC 2CC20008 */ sltiu $v0, $a2, 8
/* 34CB0 800598B0 1040007D */ beqz $v0, .L80059AA8
/* 34CB4 800598B4 AFBF0010 */ sw $ra, 0x10($sp)
/* 34CB8 800598B8 00061080 */ sll $v0, $a2, 2
/* 34CBC 800598BC 3C01800A */ lui $at, %hi(jtbl_80098970)
/* 34CC0 800598C0 00220821 */ addu $at, $at, $v0
/* 34CC4 800598C4 8C228970 */ lw $v0, %lo(jtbl_80098970)($at)
/* 34CC8 800598C8 00400008 */ jr $v0
/* 34CCC 800598CC 00000000 */ nop
glabel L800598D0_34CD0
/* 34CD0 800598D0 00051400 */ sll $v0, $a1, 0x10
/* 34CD4 800598D4 00021403 */ sra $v0, $v0, 0x10
/* 34CD8 800598D8 00021840 */ sll $v1, $v0, 1
/* 34CDC 800598DC 00621821 */ addu $v1, $v1, $v0
/* 34CE0 800598E0 8C82000C */ lw $v0, 0xc($a0)
/* 34CE4 800598E4 00031900 */ sll $v1, $v1, 4
/* 34CE8 800598E8 00621821 */ addu $v1, $v1, $v0
/* 34CEC 800598EC 2402FFF8 */ addiu $v0, $zero, -8
/* 34CF0 800598F0 00E21024 */ and $v0, $a3, $v0
/* 34CF4 800598F4 080166AA */ j .L80059AA8
/* 34CF8 800598F8 AC620000 */ sw $v0, ($v1)
glabel L800598FC_34CFC
/* 34CFC 800598FC 00051400 */ sll $v0, $a1, 0x10
/* 34D00 80059900 00021403 */ sra $v0, $v0, 0x10
/* 34D04 80059904 00021840 */ sll $v1, $v0, 1
/* 34D08 80059908 00621821 */ addu $v1, $v1, $v0
/* 34D0C 8005990C 8C82000C */ lw $v0, 0xc($a0)
/* 34D10 80059910 00031900 */ sll $v1, $v1, 4
/* 34D14 80059914 00621821 */ addu $v1, $v1, $v0
/* 34D18 80059918 2402FFF8 */ addiu $v0, $zero, -8
/* 34D1C 8005991C 00E21024 */ and $v0, $a3, $v0
/* 34D20 80059920 080166AA */ j .L80059AA8
/* 34D24 80059924 AC620004 */ sw $v0, 4($v1)
glabel L80059928_34D28
/* 34D28 80059928 00051400 */ sll $v0, $a1, 0x10
/* 34D2C 8005992C 00021403 */ sra $v0, $v0, 0x10
/* 34D30 80059930 00021840 */ sll $v1, $v0, 1
/* 34D34 80059934 00621821 */ addu $v1, $v1, $v0
/* 34D38 80059938 8C82000C */ lw $v0, 0xc($a0)
/* 34D3C 8005993C 00031900 */ sll $v1, $v1, 4
/* 34D40 80059940 00621821 */ addu $v1, $v1, $v0
/* 34D44 80059944 080166AA */ j .L80059AA8
/* 34D48 80059948 A4670008 */ sh $a3, 8($v1)
glabel L8005994C_34D4C
/* 34D4C 8005994C 00051400 */ sll $v0, $a1, 0x10
/* 34D50 80059950 00021403 */ sra $v0, $v0, 0x10
/* 34D54 80059954 00021840 */ sll $v1, $v0, 1
/* 34D58 80059958 00621821 */ addu $v1, $v1, $v0
/* 34D5C 8005995C 8C82000C */ lw $v0, 0xc($a0)
/* 34D60 80059960 00031900 */ sll $v1, $v1, 4
/* 34D64 80059964 00621821 */ addu $v1, $v1, $v0
/* 34D68 80059968 080166AA */ j .L80059AA8
/* 34D6C 8005996C A467000A */ sh $a3, 0xa($v1)
glabel L80059970_34D70
/* 34D70 80059970 00051400 */ sll $v0, $a1, 0x10
/* 34D74 80059974 00021403 */ sra $v0, $v0, 0x10
/* 34D78 80059978 00021840 */ sll $v1, $v0, 1
/* 34D7C 8005997C 00621821 */ addu $v1, $v1, $v0
/* 34D80 80059980 8C82000C */ lw $v0, 0xc($a0)
/* 34D84 80059984 00031900 */ sll $v1, $v1, 4
/* 34D88 80059988 00621821 */ addu $v1, $v1, $v0
/* 34D8C 8005998C 080166AA */ j .L80059AA8
/* 34D90 80059990 A467000C */ sh $a3, 0xc($v1)
glabel L80059994_34D94
/* 34D94 80059994 00051400 */ sll $v0, $a1, 0x10
/* 34D98 80059998 00021403 */ sra $v0, $v0, 0x10
/* 34D9C 8005999C 00021840 */ sll $v1, $v0, 1
/* 34DA0 800599A0 00621821 */ addu $v1, $v1, $v0
/* 34DA4 800599A4 00031900 */ sll $v1, $v1, 4
/* 34DA8 800599A8 44870000 */ mtc1 $a3, $f0
/* 34DAC 800599AC 00000000 */ nop
/* 34DB0 800599B0 46800020 */ cvt.s.w $f0, $f0
/* 34DB4 800599B4 3C01447A */ lui $at, 0x447a
/* 34DB8 800599B8 44811000 */ mtc1 $at, $f2
/* 34DBC 800599BC 8C82000C */ lw $v0, 0xc($a0)
/* 34DC0 800599C0 3C048008 */ lui $a0, %hi(D_80078E50)
/* 34DC4 800599C4 8C848E50 */ lw $a0, %lo(D_80078E50)($a0)
/* 34DC8 800599C8 46020003 */ div.s $f0, $f0, $f2
/* 34DCC 800599CC 46000021 */ cvt.d.s $f0, $f0
/* 34DD0 800599D0 46200000 */ add.d $f0, $f0, $f0
/* 34DD4 800599D4 00621821 */ addu $v1, $v1, $v0
/* 34DD8 800599D8 C4820008 */ lwc1 $f2, 8($a0)
/* 34DDC 800599DC 468010A1 */ cvt.d.w $f2, $f2
/* 34DE0 800599E0 46220003 */ div.d $f0, $f0, $f2
/* 34DE4 800599E4 46200020 */ cvt.s.d $f0, $f0
/* 34DE8 800599E8 080166AA */ j .L80059AA8
/* 34DEC 800599EC E4600010 */ swc1 $f0, 0x10($v1)
glabel L800599F0_34DF0
/* 34DF0 800599F0 00051400 */ sll $v0, $a1, 0x10
/* 34DF4 800599F4 00021403 */ sra $v0, $v0, 0x10
/* 34DF8 800599F8 00021840 */ sll $v1, $v0, 1
/* 34DFC 800599FC 00621821 */ addu $v1, $v1, $v0
/* 34E00 80059A00 00031900 */ sll $v1, $v1, 4
/* 34E04 80059A04 44870000 */ mtc1 $a3, $f0
/* 34E08 80059A08 00000000 */ nop
/* 34E0C 80059A0C 46800020 */ cvt.s.w $f0, $f0
/* 34E10 80059A10 46000021 */ cvt.d.s $f0, $f0
/* 34E14 80059A14 8C82000C */ lw $v0, 0xc($a0)
/* 34E18 80059A18 3C01800A */ lui $at, %hi(D_80098990)
/* 34E1C 80059A1C D4228990 */ ldc1 $f2, %lo(D_80098990)($at)
/* 34E20 80059A20 00622021 */ addu $a0, $v1, $v0
/* 34E24 80059A24 8C830004 */ lw $v1, 4($a0)
/* 34E28 80059A28 8C820000 */ lw $v0, ($a0)
/* 34E2C 80059A2C 00621823 */ subu $v1, $v1, $v0
/* 34E30 80059A30 44832000 */ mtc1 $v1, $f4
/* 34E34 80059A34 00000000 */ nop
/* 34E38 80059A38 46802121 */ cvt.d.w $f4, $f4
/* 34E3C 80059A3C 04610006 */ bgez $v1, .L80059A58
/* 34E40 80059A40 46220083 */ div.d $f2, $f0, $f2
/* 34E44 80059A44 3C0141F0 */ lui $at, 0x41f0
/* 34E48 80059A48 44810800 */ mtc1 $at, $f1
/* 34E4C 80059A4C 44800000 */ mtc1 $zero, $f0
/* 34E50 80059A50 00000000 */ nop
/* 34E54 80059A54 46202100 */ add.d $f4, $f4, $f0
.L80059A58:
/* 34E58 80059A58 46241002 */ mul.d $f0, $f2, $f4
/* 34E5C 80059A5C 00000000 */ nop
/* 34E60 80059A60 46200020 */ cvt.s.d $f0, $f0
/* 34E64 80059A64 080166AA */ j .L80059AA8
/* 34E68 80059A68 E480001C */ swc1 $f0, 0x1c($a0)
glabel L80059A6C_34E6C
/* 34E6C 80059A6C 00051400 */ sll $v0, $a1, 0x10
/* 34E70 80059A70 00021403 */ sra $v0, $v0, 0x10
/* 34E74 80059A74 00021840 */ sll $v1, $v0, 1
/* 34E78 80059A78 00621821 */ addu $v1, $v1, $v0
/* 34E7C 80059A7C 8C82000C */ lw $v0, 0xc($a0)
/* 34E80 80059A80 00031900 */ sll $v1, $v1, 4
/* 34E84 80059A84 00621021 */ addu $v0, $v1, $v0
/* 34E88 80059A88 8C420020 */ lw $v0, 0x20($v0)
/* 34E8C 80059A8C 10400006 */ beqz $v0, .L80059AA8
/* 34E90 80059A90 00000000 */ nop
/* 34E94 80059A94 A4470000 */ sh $a3, ($v0)
/* 34E98 80059A98 8C82000C */ lw $v0, 0xc($a0)
/* 34E9C 80059A9C 00621021 */ addu $v0, $v1, $v0
/* 34EA0 80059AA0 0C016374 */ jal func_80058DD0
/* 34EA4 80059AA4 8C440020 */ lw $a0, 0x20($v0)
.L80059AA8:
/* 34EA8 80059AA8 8FBF0010 */ lw $ra, 0x10($sp)
/* 34EAC 80059AAC 0000102D */ daddu $v0, $zero, $zero
/* 34EB0 80059AB0 03E00008 */ jr $ra
/* 34EB4 80059AB4 27BD0018 */ addiu $sp, $sp, 0x18