papermario/ver/us/asm/nonmatchings/28910_len_5090/func_8004EAD4.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

86 lines
4.3 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8004EAD4
/* 29ED4 8004EAD4 0000402D */ daddu $t0, $zero, $zero
/* 29ED8 8004EAD8 0100582D */ daddu $t3, $t0, $zero
/* 29EDC 8004EADC 0100482D */ daddu $t1, $t0, $zero
/* 29EE0 8004EAE0 240C0001 */ addiu $t4, $zero, 1
/* 29EE4 8004EAE4 240A025C */ addiu $t2, $zero, 0x25c
/* 29EE8 8004EAE8 30A5FFFF */ andi $a1, $a1, 0xffff
/* 29EEC 8004EAEC 8C82006C */ lw $v0, 0x6c($a0)
/* 29EF0 8004EAF0 00052880 */ sll $a1, $a1, 2
/* 29EF4 8004EAF4 00A22821 */ addu $a1, $a1, $v0
/* 29EF8 8004EAF8 AC850070 */ sw $a1, 0x70($a0)
.L8004EAFC:
/* 29EFC 8004EAFC 8CA30000 */ lw $v1, ($a1)
/* 29F00 8004EB00 24A50004 */ addiu $a1, $a1, 4
/* 29F04 8004EB04 008A3021 */ addu $a2, $a0, $t2
/* 29F08 8004EB08 00031402 */ srl $v0, $v1, 0x10
/* 29F0C 8004EB0C 10400034 */ beqz $v0, .L8004EBE0
/* 29F10 8004EB10 ACC20000 */ sw $v0, ($a2)
/* 29F14 8004EB14 30620100 */ andi $v0, $v1, 0x100
/* 29F18 8004EB18 54400031 */ bnel $v0, $zero, .L8004EBE0
/* 29F1C 8004EB1C ACC00000 */ sw $zero, ($a2)
/* 29F20 8004EB20 3062E000 */ andi $v0, $v1, 0xe000
/* 29F24 8004EB24 00021342 */ srl $v0, $v0, 0xd
/* 29F28 8004EB28 A0C20054 */ sb $v0, 0x54($a2)
/* 29F2C 8004EB2C 000311C2 */ srl $v0, $v1, 7
/* 29F30 8004EB30 30420001 */ andi $v0, $v0, 1
/* 29F34 8004EB34 A0C20058 */ sb $v0, 0x58($a2)
/* 29F38 8004EB38 30621E00 */ andi $v0, $v1, 0x1e00
/* 29F3C 8004EB3C 00023A42 */ srl $a3, $v0, 9
/* 29F40 8004EB40 10E0001B */ beqz $a3, .L8004EBB0
/* 29F44 8004EB44 A0C00059 */ sb $zero, 0x59($a2)
/* 29F48 8004EB48 00071040 */ sll $v0, $a3, 1
/* 29F4C 8004EB4C 00471021 */ addu $v0, $v0, $a3
/* 29F50 8004EB50 00021140 */ sll $v0, $v0, 5
/* 29F54 8004EB54 244201FC */ addiu $v0, $v0, 0x1fc
/* 29F58 8004EB58 00821821 */ addu $v1, $a0, $v0
/* 29F5C 8004EB5C 24E2FFFF */ addiu $v0, $a3, -1
/* 29F60 8004EB60 0049102B */ sltu $v0, $v0, $t1
/* 29F64 8004EB64 5040001E */ beql $v0, $zero, .L8004EBE0
/* 29F68 8004EB68 ACC00000 */ sw $zero, ($a2)
/* 29F6C 8004EB6C 90620051 */ lbu $v0, 0x51($v1)
/* 29F70 8004EB70 A0C20051 */ sb $v0, 0x51($a2)
/* 29F74 8004EB74 90620052 */ lbu $v0, 0x52($v1)
/* 29F78 8004EB78 A0C20052 */ sb $v0, 0x52($a2)
/* 29F7C 8004EB7C 90620053 */ lbu $v0, 0x53($v1)
/* 29F80 8004EB80 A0C20053 */ sb $v0, 0x53($a2)
/* 29F84 8004EB84 8CC20000 */ lw $v0, ($a2)
/* 29F88 8004EB88 8C830070 */ lw $v1, 0x70($a0)
/* 29F8C 8004EB8C ACCC0028 */ sw $t4, 0x28($a2)
/* 29F90 8004EB90 A0C70059 */ sb $a3, 0x59($a2)
/* 29F94 8004EB94 00431021 */ addu $v0, $v0, $v1
/* 29F98 8004EB98 ACC20000 */ sw $v0, ($a2)
/* 29F9C 8004EB9C 90820233 */ lbu $v0, 0x233($a0)
/* 29FA0 8004EBA0 54400001 */ bnel $v0, $zero, .L8004EBA8
/* 29FA4 8004EBA4 A0CC005A */ sb $t4, 0x5a($a2)
.L8004EBA8:
/* 29FA8 8004EBA8 08013AF8 */ j .L8004EBE0
/* 29FAC 8004EBAC 240B0001 */ addiu $t3, $zero, 1
.L8004EBB0:
/* 29FB0 8004EBB0 90C20054 */ lbu $v0, 0x54($a2)
/* 29FB4 8004EBB4 00821021 */ addu $v0, $a0, $v0
/* 29FB8 8004EBB8 9042022A */ lbu $v0, 0x22a($v0)
/* 29FBC 8004EBBC A0C80052 */ sb $t0, 0x52($a2)
/* 29FC0 8004EBC0 01024021 */ addu $t0, $t0, $v0
/* 29FC4 8004EBC4 A0C20051 */ sb $v0, 0x51($a2)
/* 29FC8 8004EBC8 8CC20000 */ lw $v0, ($a2)
/* 29FCC 8004EBCC A0C80053 */ sb $t0, 0x53($a2)
/* 29FD0 8004EBD0 8C830070 */ lw $v1, 0x70($a0)
/* 29FD4 8004EBD4 ACCC0028 */ sw $t4, 0x28($a2)
/* 29FD8 8004EBD8 00431021 */ addu $v0, $v0, $v1
/* 29FDC 8004EBDC ACC20000 */ sw $v0, ($a2)
.L8004EBE0:
/* 29FE0 8004EBE0 25290001 */ addiu $t1, $t1, 1
/* 29FE4 8004EBE4 29220010 */ slti $v0, $t1, 0x10
/* 29FE8 8004EBE8 1440FFC4 */ bnez $v0, .L8004EAFC
/* 29FEC 8004EBEC 254A0060 */ addiu $t2, $t2, 0x60
/* 29FF0 8004EBF0 11600002 */ beqz $t3, .L8004EBFC
/* 29FF4 8004EBF4 A088021B */ sb $t0, 0x21b($a0)
/* 29FF8 8004EBF8 A0800233 */ sb $zero, 0x233($a0)
.L8004EBFC:
/* 29FFC 8004EBFC 03E00008 */ jr $ra
/* 2A000 8004EC00 00000000 */ nop