papermario/ver/jp/asm/nonmatchings/33E80/func_80059550.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

141 lines
7.1 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80059550
/* 34950 80059550 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 34954 80059554 00063400 */ sll $a2, $a2, 0x10
/* 34958 80059558 00063403 */ sra $a2, $a2, 0x10
/* 3495C 8005955C 2CC20008 */ sltiu $v0, $a2, 8
/* 34960 80059560 1040007D */ beqz $v0, .L80059758
/* 34964 80059564 AFBF0010 */ sw $ra, 0x10($sp)
/* 34968 80059568 00061080 */ sll $v0, $a2, 2
/* 3496C 8005956C 3C01800A */ lui $at, %hi(D_80098950)
/* 34970 80059570 00220821 */ addu $at, $at, $v0
/* 34974 80059574 8C228950 */ lw $v0, %lo(D_80098950)($at)
/* 34978 80059578 00400008 */ jr $v0
/* 3497C 8005957C 00000000 */ nop
/* 34980 80059580 00051400 */ sll $v0, $a1, 0x10
/* 34984 80059584 00021403 */ sra $v0, $v0, 0x10
/* 34988 80059588 00021840 */ sll $v1, $v0, 1
/* 3498C 8005958C 00621821 */ addu $v1, $v1, $v0
/* 34990 80059590 8C82000C */ lw $v0, 0xc($a0)
/* 34994 80059594 00031900 */ sll $v1, $v1, 4
/* 34998 80059598 00621821 */ addu $v1, $v1, $v0
/* 3499C 8005959C 2402FFF8 */ addiu $v0, $zero, -8
/* 349A0 800595A0 00E21024 */ and $v0, $a3, $v0
/* 349A4 800595A4 080165D6 */ j .L80059758
/* 349A8 800595A8 AC620000 */ sw $v0, ($v1)
/* 349AC 800595AC 00051400 */ sll $v0, $a1, 0x10
/* 349B0 800595B0 00021403 */ sra $v0, $v0, 0x10
/* 349B4 800595B4 00021840 */ sll $v1, $v0, 1
/* 349B8 800595B8 00621821 */ addu $v1, $v1, $v0
/* 349BC 800595BC 8C82000C */ lw $v0, 0xc($a0)
/* 349C0 800595C0 00031900 */ sll $v1, $v1, 4
/* 349C4 800595C4 00621821 */ addu $v1, $v1, $v0
/* 349C8 800595C8 2402FFF8 */ addiu $v0, $zero, -8
/* 349CC 800595CC 00E21024 */ and $v0, $a3, $v0
/* 349D0 800595D0 080165D6 */ j .L80059758
/* 349D4 800595D4 AC620004 */ sw $v0, 4($v1)
/* 349D8 800595D8 00051400 */ sll $v0, $a1, 0x10
/* 349DC 800595DC 00021403 */ sra $v0, $v0, 0x10
/* 349E0 800595E0 00021840 */ sll $v1, $v0, 1
/* 349E4 800595E4 00621821 */ addu $v1, $v1, $v0
/* 349E8 800595E8 8C82000C */ lw $v0, 0xc($a0)
/* 349EC 800595EC 00031900 */ sll $v1, $v1, 4
/* 349F0 800595F0 00621821 */ addu $v1, $v1, $v0
/* 349F4 800595F4 080165D6 */ j .L80059758
/* 349F8 800595F8 A4670008 */ sh $a3, 8($v1)
/* 349FC 800595FC 00051400 */ sll $v0, $a1, 0x10
/* 34A00 80059600 00021403 */ sra $v0, $v0, 0x10
/* 34A04 80059604 00021840 */ sll $v1, $v0, 1
/* 34A08 80059608 00621821 */ addu $v1, $v1, $v0
/* 34A0C 8005960C 8C82000C */ lw $v0, 0xc($a0)
/* 34A10 80059610 00031900 */ sll $v1, $v1, 4
/* 34A14 80059614 00621821 */ addu $v1, $v1, $v0
/* 34A18 80059618 080165D6 */ j .L80059758
/* 34A1C 8005961C A467000A */ sh $a3, 0xa($v1)
/* 34A20 80059620 00051400 */ sll $v0, $a1, 0x10
/* 34A24 80059624 00021403 */ sra $v0, $v0, 0x10
/* 34A28 80059628 00021840 */ sll $v1, $v0, 1
/* 34A2C 8005962C 00621821 */ addu $v1, $v1, $v0
/* 34A30 80059630 8C82000C */ lw $v0, 0xc($a0)
/* 34A34 80059634 00031900 */ sll $v1, $v1, 4
/* 34A38 80059638 00621821 */ addu $v1, $v1, $v0
/* 34A3C 8005963C 080165D6 */ j .L80059758
/* 34A40 80059640 A467000C */ sh $a3, 0xc($v1)
/* 34A44 80059644 00051400 */ sll $v0, $a1, 0x10
/* 34A48 80059648 00021403 */ sra $v0, $v0, 0x10
/* 34A4C 8005964C 00021840 */ sll $v1, $v0, 1
/* 34A50 80059650 00621821 */ addu $v1, $v1, $v0
/* 34A54 80059654 00031900 */ sll $v1, $v1, 4
/* 34A58 80059658 44870000 */ mtc1 $a3, $f0
/* 34A5C 8005965C 00000000 */ nop
/* 34A60 80059660 46800020 */ cvt.s.w $f0, $f0
/* 34A64 80059664 3C01447A */ lui $at, 0x447a
/* 34A68 80059668 44811000 */ mtc1 $at, $f2
/* 34A6C 8005966C 8C82000C */ lw $v0, 0xc($a0)
/* 34A70 80059670 3C048008 */ lui $a0, %hi(D_80078E20)
/* 34A74 80059674 8C848E20 */ lw $a0, %lo(D_80078E20)($a0)
/* 34A78 80059678 46020003 */ div.s $f0, $f0, $f2
/* 34A7C 8005967C 46000021 */ cvt.d.s $f0, $f0
/* 34A80 80059680 46200000 */ add.d $f0, $f0, $f0
/* 34A84 80059684 00621821 */ addu $v1, $v1, $v0
/* 34A88 80059688 C4820008 */ lwc1 $f2, 8($a0)
/* 34A8C 8005968C 468010A1 */ cvt.d.w $f2, $f2
/* 34A90 80059690 46220003 */ div.d $f0, $f0, $f2
/* 34A94 80059694 46200020 */ cvt.s.d $f0, $f0
/* 34A98 80059698 080165D6 */ j .L80059758
/* 34A9C 8005969C E4600010 */ swc1 $f0, 0x10($v1)
/* 34AA0 800596A0 00051400 */ sll $v0, $a1, 0x10
/* 34AA4 800596A4 00021403 */ sra $v0, $v0, 0x10
/* 34AA8 800596A8 00021840 */ sll $v1, $v0, 1
/* 34AAC 800596AC 00621821 */ addu $v1, $v1, $v0
/* 34AB0 800596B0 00031900 */ sll $v1, $v1, 4
/* 34AB4 800596B4 44870000 */ mtc1 $a3, $f0
/* 34AB8 800596B8 00000000 */ nop
/* 34ABC 800596BC 46800020 */ cvt.s.w $f0, $f0
/* 34AC0 800596C0 46000021 */ cvt.d.s $f0, $f0
/* 34AC4 800596C4 8C82000C */ lw $v0, 0xc($a0)
/* 34AC8 800596C8 3C01800A */ lui $at, %hi(D_80098970)
/* 34ACC 800596CC D4228970 */ ldc1 $f2, %lo(D_80098970)($at)
/* 34AD0 800596D0 00622021 */ addu $a0, $v1, $v0
/* 34AD4 800596D4 8C830004 */ lw $v1, 4($a0)
/* 34AD8 800596D8 8C820000 */ lw $v0, ($a0)
/* 34ADC 800596DC 00621823 */ subu $v1, $v1, $v0
/* 34AE0 800596E0 44832000 */ mtc1 $v1, $f4
/* 34AE4 800596E4 00000000 */ nop
/* 34AE8 800596E8 46802121 */ cvt.d.w $f4, $f4
/* 34AEC 800596EC 04610006 */ bgez $v1, .L80059708
/* 34AF0 800596F0 46220083 */ div.d $f2, $f0, $f2
/* 34AF4 800596F4 3C0141F0 */ lui $at, 0x41f0
/* 34AF8 800596F8 44810800 */ mtc1 $at, $f1
/* 34AFC 800596FC 44800000 */ mtc1 $zero, $f0
/* 34B00 80059700 00000000 */ nop
/* 34B04 80059704 46202100 */ add.d $f4, $f4, $f0
.L80059708:
/* 34B08 80059708 46241002 */ mul.d $f0, $f2, $f4
/* 34B0C 8005970C 00000000 */ nop
/* 34B10 80059710 46200020 */ cvt.s.d $f0, $f0
/* 34B14 80059714 080165D6 */ j .L80059758
/* 34B18 80059718 E480001C */ swc1 $f0, 0x1c($a0)
/* 34B1C 8005971C 00051400 */ sll $v0, $a1, 0x10
/* 34B20 80059720 00021403 */ sra $v0, $v0, 0x10
/* 34B24 80059724 00021840 */ sll $v1, $v0, 1
/* 34B28 80059728 00621821 */ addu $v1, $v1, $v0
/* 34B2C 8005972C 8C82000C */ lw $v0, 0xc($a0)
/* 34B30 80059730 00031900 */ sll $v1, $v1, 4
/* 34B34 80059734 00621021 */ addu $v0, $v1, $v0
/* 34B38 80059738 8C420020 */ lw $v0, 0x20($v0)
/* 34B3C 8005973C 10400006 */ beqz $v0, .L80059758
/* 34B40 80059740 00000000 */ nop
/* 34B44 80059744 A4470000 */ sh $a3, ($v0)
/* 34B48 80059748 8C82000C */ lw $v0, 0xc($a0)
/* 34B4C 8005974C 00621021 */ addu $v0, $v1, $v0
/* 34B50 80059750 0C0162A0 */ jal func_80058A80
/* 34B54 80059754 8C440020 */ lw $a0, 0x20($v0)
.L80059758:
/* 34B58 80059758 8FBF0010 */ lw $ra, 0x10($sp)
/* 34B5C 8005975C 0000102D */ daddu $v0, $zero, $zero
/* 34B60 80059760 03E00008 */ jr $ra
/* 34B64 80059764 27BD0018 */ addiu $sp, $sp, 0x18