papermario/ver/jp/asm/nonmatchings/2570/func_80027984.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

135 lines
6.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80027984
/* 2D84 80027984 27BDFF98 */ addiu $sp, $sp, -0x68
/* 2D88 80027988 AFB50054 */ sw $s5, 0x54($sp)
/* 2D8C 8002798C 0080A82D */ daddu $s5, $a0, $zero
/* 2D90 80027990 AFB60058 */ sw $s6, 0x58($sp)
/* 2D94 80027994 00A0B02D */ daddu $s6, $a1, $zero
/* 2D98 80027998 AFB3004C */ sw $s3, 0x4c($sp)
/* 2D9C 8002799C 24130001 */ addiu $s3, $zero, 1
/* 2DA0 800279A0 27A80018 */ addiu $t0, $sp, 0x18
/* 2DA4 800279A4 AFA80038 */ sw $t0, 0x38($sp)
/* 2DA8 800279A8 24080140 */ addiu $t0, $zero, 0x140
/* 2DAC 800279AC AFBF0064 */ sw $ra, 0x64($sp)
/* 2DB0 800279B0 AFBE0060 */ sw $fp, 0x60($sp)
/* 2DB4 800279B4 AFB7005C */ sw $s7, 0x5c($sp)
/* 2DB8 800279B8 AFB40050 */ sw $s4, 0x50($sp)
/* 2DBC 800279BC AFB20048 */ sw $s2, 0x48($sp)
/* 2DC0 800279C0 AFB10044 */ sw $s1, 0x44($sp)
/* 2DC4 800279C4 AFB00040 */ sw $s0, 0x40($sp)
/* 2DC8 800279C8 AFA60070 */ sw $a2, 0x70($sp)
/* 2DCC 800279CC AFA8003C */ sw $t0, 0x3c($sp)
.L800279D0:
/* 2DD0 800279D0 24120002 */ addiu $s2, $zero, 2
/* 2DD4 800279D4 267EFFFF */ addiu $fp, $s3, -1
/* 2DD8 800279D8 26770001 */ addiu $s7, $s3, 1
.L800279DC:
/* 2DDC 800279DC 8FA8003C */ lw $t0, 0x3c($sp)
/* 2DE0 800279E0 01121021 */ addu $v0, $t0, $s2
/* 2DE4 800279E4 0002A040 */ sll $s4, $v0, 1
/* 2DE8 800279E8 02961021 */ addu $v0, $s4, $s6
/* 2DEC 800279EC 94420000 */ lhu $v0, ($v0)
/* 2DF0 800279F0 00021082 */ srl $v0, $v0, 2
/* 2DF4 800279F4 3042000F */ andi $v0, $v0, 0xf
/* 2DF8 800279F8 2C420008 */ sltiu $v0, $v0, 8
/* 2DFC 800279FC 10400043 */ beqz $v0, .L80027B0C
/* 2E00 80027A00 02A0202D */ daddu $a0, $s5, $zero
/* 2E04 80027A04 02C0282D */ daddu $a1, $s6, $zero
/* 2E08 80027A08 03C0302D */ daddu $a2, $fp, $zero
/* 2E0C 80027A0C 2650FFFF */ addiu $s0, $s2, -1
/* 2E10 80027A10 8FA80038 */ lw $t0, 0x38($sp)
/* 2E14 80027A14 0200382D */ daddu $a3, $s0, $zero
/* 2E18 80027A18 0C009C73 */ jal func_800271CC
/* 2E1C 80027A1C AFA80010 */ sw $t0, 0x10($sp)
/* 2E20 80027A20 02A0202D */ daddu $a0, $s5, $zero
/* 2E24 80027A24 02C0282D */ daddu $a1, $s6, $zero
/* 2E28 80027A28 03C0302D */ daddu $a2, $fp, $zero
/* 2E2C 80027A2C 26510001 */ addiu $s1, $s2, 1
/* 2E30 80027A30 0220382D */ daddu $a3, $s1, $zero
/* 2E34 80027A34 27A2001C */ addiu $v0, $sp, 0x1c
/* 2E38 80027A38 0C009C73 */ jal func_800271CC
/* 2E3C 80027A3C AFA20010 */ sw $v0, 0x10($sp)
/* 2E40 80027A40 02A0202D */ daddu $a0, $s5, $zero
/* 2E44 80027A44 02C0282D */ daddu $a1, $s6, $zero
/* 2E48 80027A48 0260302D */ daddu $a2, $s3, $zero
/* 2E4C 80027A4C 2647FFFE */ addiu $a3, $s2, -2
/* 2E50 80027A50 27A20020 */ addiu $v0, $sp, 0x20
/* 2E54 80027A54 0C009C73 */ jal func_800271CC
/* 2E58 80027A58 AFA20010 */ sw $v0, 0x10($sp)
/* 2E5C 80027A5C 02A0202D */ daddu $a0, $s5, $zero
/* 2E60 80027A60 02C0282D */ daddu $a1, $s6, $zero
/* 2E64 80027A64 0260302D */ daddu $a2, $s3, $zero
/* 2E68 80027A68 26470002 */ addiu $a3, $s2, 2
/* 2E6C 80027A6C 27A20024 */ addiu $v0, $sp, 0x24
/* 2E70 80027A70 0C009C73 */ jal func_800271CC
/* 2E74 80027A74 AFA20010 */ sw $v0, 0x10($sp)
/* 2E78 80027A78 02A0202D */ daddu $a0, $s5, $zero
/* 2E7C 80027A7C 02C0282D */ daddu $a1, $s6, $zero
/* 2E80 80027A80 02E0302D */ daddu $a2, $s7, $zero
/* 2E84 80027A84 0200382D */ daddu $a3, $s0, $zero
/* 2E88 80027A88 27A20028 */ addiu $v0, $sp, 0x28
/* 2E8C 80027A8C 0C009C73 */ jal func_800271CC
/* 2E90 80027A90 AFA20010 */ sw $v0, 0x10($sp)
/* 2E94 80027A94 02A0202D */ daddu $a0, $s5, $zero
/* 2E98 80027A98 02C0282D */ daddu $a1, $s6, $zero
/* 2E9C 80027A9C 02E0302D */ daddu $a2, $s7, $zero
/* 2EA0 80027AA0 0220382D */ daddu $a3, $s1, $zero
/* 2EA4 80027AA4 27A2002C */ addiu $v0, $sp, 0x2c
/* 2EA8 80027AA8 0C009C73 */ jal func_800271CC
/* 2EAC 80027AAC AFA20010 */ sw $v0, 0x10($sp)
/* 2EB0 80027AB0 02A0202D */ daddu $a0, $s5, $zero
/* 2EB4 80027AB4 02C0282D */ daddu $a1, $s6, $zero
/* 2EB8 80027AB8 0260302D */ daddu $a2, $s3, $zero
/* 2EBC 80027ABC 0240382D */ daddu $a3, $s2, $zero
/* 2EC0 80027AC0 27A20030 */ addiu $v0, $sp, 0x30
/* 2EC4 80027AC4 0C009C73 */ jal func_800271CC
/* 2EC8 80027AC8 AFA20010 */ sw $v0, 0x10($sp)
/* 2ECC 80027ACC 8FA40038 */ lw $a0, 0x38($sp)
/* 2ED0 80027AD0 8FA80070 */ lw $t0, 0x70($sp)
/* 2ED4 80027AD4 93A50030 */ lbu $a1, 0x30($sp)
/* 2ED8 80027AD8 93A20031 */ lbu $v0, 0x31($sp)
/* 2EDC 80027ADC 93A30032 */ lbu $v1, 0x32($sp)
/* 2EE0 80027AE0 01143021 */ addu $a2, $t0, $s4
/* 2EE4 80027AE4 00052E00 */ sll $a1, $a1, 0x18
/* 2EE8 80027AE8 00021400 */ sll $v0, $v0, 0x10
/* 2EEC 80027AEC 00A22825 */ or $a1, $a1, $v0
/* 2EF0 80027AF0 00031A00 */ sll $v1, $v1, 8
/* 2EF4 80027AF4 93A20033 */ lbu $v0, 0x33($sp)
/* 2EF8 80027AF8 00A32825 */ or $a1, $a1, $v1
/* 2EFC 80027AFC 0C009C8B */ jal func_8002722C
/* 2F00 80027B00 00A22825 */ or $a1, $a1, $v0
/* 2F04 80027B04 08009ECA */ j .L80027B28
/* 2F08 80027B08 26520001 */ addiu $s2, $s2, 1
.L80027B0C:
/* 2F0C 80027B0C 02951021 */ addu $v0, $s4, $s5
/* 2F10 80027B10 8FA80070 */ lw $t0, 0x70($sp)
/* 2F14 80027B14 94420000 */ lhu $v0, ($v0)
/* 2F18 80027B18 02881821 */ addu $v1, $s4, $t0
/* 2F1C 80027B1C 34420001 */ ori $v0, $v0, 1
/* 2F20 80027B20 A4620000 */ sh $v0, ($v1)
/* 2F24 80027B24 26520001 */ addiu $s2, $s2, 1
.L80027B28:
/* 2F28 80027B28 2A42013E */ slti $v0, $s2, 0x13e
/* 2F2C 80027B2C 1440FFAB */ bnez $v0, .L800279DC
/* 2F30 80027B30 00000000 */ nop
/* 2F34 80027B34 26730001 */ addiu $s3, $s3, 1
/* 2F38 80027B38 8FA8003C */ lw $t0, 0x3c($sp)
/* 2F3C 80027B3C 2A6200EF */ slti $v0, $s3, 0xef
/* 2F40 80027B40 25080140 */ addiu $t0, $t0, 0x140
/* 2F44 80027B44 1440FFA2 */ bnez $v0, .L800279D0
/* 2F48 80027B48 AFA8003C */ sw $t0, 0x3c($sp)
/* 2F4C 80027B4C 8FBF0064 */ lw $ra, 0x64($sp)
/* 2F50 80027B50 8FBE0060 */ lw $fp, 0x60($sp)
/* 2F54 80027B54 8FB7005C */ lw $s7, 0x5c($sp)
/* 2F58 80027B58 8FB60058 */ lw $s6, 0x58($sp)
/* 2F5C 80027B5C 8FB50054 */ lw $s5, 0x54($sp)
/* 2F60 80027B60 8FB40050 */ lw $s4, 0x50($sp)
/* 2F64 80027B64 8FB3004C */ lw $s3, 0x4c($sp)
/* 2F68 80027B68 8FB20048 */ lw $s2, 0x48($sp)
/* 2F6C 80027B6C 8FB10044 */ lw $s1, 0x44($sp)
/* 2F70 80027B70 8FB00040 */ lw $s0, 0x40($sp)
/* 2F74 80027B74 03E00008 */ jr $ra
/* 2F78 80027B78 27BD0068 */ addiu $sp, $sp, 0x68