papermario/ver/us/asm/nonmatchings/a5dd0_len_114e0/func_8011B7C0.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

124 lines
5.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8011B7C0
/* B1EC0 8011B7C0 3084FFFF */ andi $a0, $a0, 0xffff
/* B1EC4 8011B7C4 3C0A800A */ lui $t2, %hi(D_8009A5F4)
/* B1EC8 8011B7C8 8D4AA5F4 */ lw $t2, %lo(D_8009A5F4)($t2)
/* B1ECC 8011B7CC 00041080 */ sll $v0, $a0, 2
/* B1ED0 8011B7D0 004A3821 */ addu $a3, $v0, $t2
/* B1ED4 8011B7D4 90E30000 */ lbu $v1, ($a3)
/* B1ED8 8011B7D8 286200FF */ slti $v0, $v1, 0xff
/* B1EDC 8011B7DC 10400004 */ beqz $v0, .L8011B7F0
/* B1EE0 8011B7E0 2408FFFF */ addiu $t0, $zero, -1
/* B1EE4 8011B7E4 0060402D */ daddu $t0, $v1, $zero
/* B1EE8 8011B7E8 08046E10 */ j .L8011B840
/* B1EEC 8011B7EC 0100482D */ daddu $t1, $t0, $zero
.L8011B7F0:
/* B1EF0 8011B7F0 2484FFFF */ addiu $a0, $a0, -1
/* B1EF4 8011B7F4 90EB0001 */ lbu $t3, 1($a3)
/* B1EF8 8011B7F8 04800011 */ bltz $a0, .L8011B840
/* B1EFC 8011B7FC 00041080 */ sll $v0, $a0, 2
/* B1F00 8011B800 240CFFFF */ addiu $t4, $zero, -1
/* B1F04 8011B804 004A3821 */ addu $a3, $v0, $t2
.L8011B808:
/* B1F08 8011B808 90E20001 */ lbu $v0, 1($a3)
/* B1F0C 8011B80C 0162102A */ slt $v0, $t3, $v0
/* B1F10 8011B810 1040000C */ beqz $v0, .L8011B844
/* B1F14 8011B814 28C20002 */ slti $v0, $a2, 2
/* B1F18 8011B818 90E30000 */ lbu $v1, ($a3)
/* B1F1C 8011B81C 286200FF */ slti $v0, $v1, 0xff
/* B1F20 8011B820 50400005 */ beql $v0, $zero, .L8011B838
/* B1F24 8011B824 2484FFFF */ addiu $a0, $a0, -1
/* B1F28 8011B828 510C0001 */ beql $t0, $t4, .L8011B830
/* B1F2C 8011B82C 0060402D */ daddu $t0, $v1, $zero
.L8011B830:
/* B1F30 8011B830 0060482D */ daddu $t1, $v1, $zero
/* B1F34 8011B834 2484FFFF */ addiu $a0, $a0, -1
.L8011B838:
/* B1F38 8011B838 0481FFF3 */ bgez $a0, .L8011B808
/* B1F3C 8011B83C 24E7FFFC */ addiu $a3, $a3, -4
.L8011B840:
/* B1F40 8011B840 28C20002 */ slti $v0, $a2, 2
.L8011B844:
/* B1F44 8011B844 10400016 */ beqz $v0, .L8011B8A0
/* B1F48 8011B848 0120202D */ daddu $a0, $t1, $zero
/* B1F4C 8011B84C 0104102A */ slt $v0, $t0, $a0
/* B1F50 8011B850 14400011 */ bnez $v0, .L8011B898
/* B1F54 8011B854 00054827 */ nor $t1, $zero, $a1
/* B1F58 8011B858 3C038015 */ lui $v1, %hi(gCurrentModelListPtr)
/* B1F5C 8011B85C 8C6312CC */ lw $v1, %lo(gCurrentModelListPtr)($v1)
/* B1F60 8011B860 00041080 */ sll $v0, $a0, 2
/* B1F64 8011B864 00433821 */ addu $a3, $v0, $v1
.L8011B868:
/* B1F68 8011B868 10C00004 */ beqz $a2, .L8011B87C
/* B1F6C 8011B86C 8CE30000 */ lw $v1, ($a3)
/* B1F70 8011B870 94620000 */ lhu $v0, ($v1)
/* B1F74 8011B874 08046E21 */ j .L8011B884
/* B1F78 8011B878 00491024 */ and $v0, $v0, $t1
.L8011B87C:
/* B1F7C 8011B87C 94620000 */ lhu $v0, ($v1)
/* B1F80 8011B880 00451025 */ or $v0, $v0, $a1
.L8011B884:
/* B1F84 8011B884 A4620000 */ sh $v0, ($v1)
/* B1F88 8011B888 24840001 */ addiu $a0, $a0, 1
/* B1F8C 8011B88C 0104102A */ slt $v0, $t0, $a0
/* B1F90 8011B890 1040FFF5 */ beqz $v0, .L8011B868
/* B1F94 8011B894 24E70004 */ addiu $a3, $a3, 4
.L8011B898:
/* B1F98 8011B898 03E00008 */ jr $ra
/* B1F9C 8011B89C 00000000 */ nop
.L8011B8A0:
/* B1FA0 8011B8A0 19200011 */ blez $t1, .L8011B8E8
/* B1FA4 8011B8A4 0000202D */ daddu $a0, $zero, $zero
/* B1FA8 8011B8A8 240B0003 */ addiu $t3, $zero, 3
/* B1FAC 8011B8AC 00055027 */ nor $t2, $zero, $a1
/* B1FB0 8011B8B0 3C078015 */ lui $a3, %hi(gCurrentModelListPtr)
/* B1FB4 8011B8B4 8CE712CC */ lw $a3, %lo(gCurrentModelListPtr)($a3)
.L8011B8B8:
/* B1FB8 8011B8B8 14CB0004 */ bne $a2, $t3, .L8011B8CC
/* B1FBC 8011B8BC 8CE30000 */ lw $v1, ($a3)
/* B1FC0 8011B8C0 94620000 */ lhu $v0, ($v1)
/* B1FC4 8011B8C4 08046E35 */ j .L8011B8D4
/* B1FC8 8011B8C8 004A1024 */ and $v0, $v0, $t2
.L8011B8CC:
/* B1FCC 8011B8CC 94620000 */ lhu $v0, ($v1)
/* B1FD0 8011B8D0 00451025 */ or $v0, $v0, $a1
.L8011B8D4:
/* B1FD4 8011B8D4 A4620000 */ sh $v0, ($v1)
/* B1FD8 8011B8D8 24840001 */ addiu $a0, $a0, 1
/* B1FDC 8011B8DC 0089102A */ slt $v0, $a0, $t1
/* B1FE0 8011B8E0 1440FFF5 */ bnez $v0, .L8011B8B8
/* B1FE4 8011B8E4 24E70004 */ addiu $a3, $a3, 4
.L8011B8E8:
/* B1FE8 8011B8E8 25040001 */ addiu $a0, $t0, 1
/* B1FEC 8011B8EC 28820100 */ slti $v0, $a0, 0x100
/* B1FF0 8011B8F0 1040FFE9 */ beqz $v0, .L8011B898
/* B1FF4 8011B8F4 24090003 */ addiu $t1, $zero, 3
/* B1FF8 8011B8F8 00054027 */ nor $t0, $zero, $a1
/* B1FFC 8011B8FC 3C038015 */ lui $v1, %hi(gCurrentModelListPtr)
/* B2000 8011B900 8C6312CC */ lw $v1, %lo(gCurrentModelListPtr)($v1)
/* B2004 8011B904 00041080 */ sll $v0, $a0, 2
/* B2008 8011B908 00433821 */ addu $a3, $v0, $v1
.L8011B90C:
/* B200C 8011B90C 8CE30000 */ lw $v1, ($a3)
/* B2010 8011B910 5060000A */ beql $v1, $zero, .L8011B93C
/* B2014 8011B914 24840001 */ addiu $a0, $a0, 1
/* B2018 8011B918 14C90004 */ bne $a2, $t1, .L8011B92C
/* B201C 8011B91C 00000000 */ nop
/* B2020 8011B920 94620000 */ lhu $v0, ($v1)
/* B2024 8011B924 08046E4D */ j .L8011B934
/* B2028 8011B928 00481024 */ and $v0, $v0, $t0
.L8011B92C:
/* B202C 8011B92C 94620000 */ lhu $v0, ($v1)
/* B2030 8011B930 00451025 */ or $v0, $v0, $a1
.L8011B934:
/* B2034 8011B934 A4620000 */ sh $v0, ($v1)
/* B2038 8011B938 24840001 */ addiu $a0, $a0, 1
.L8011B93C:
/* B203C 8011B93C 28820100 */ slti $v0, $a0, 0x100
/* B2040 8011B940 1440FFF2 */ bnez $v0, .L8011B90C
/* B2044 8011B944 24E70004 */ addiu $a3, $a3, 4
/* B2048 8011B948 03E00008 */ jr $ra
/* B204C 8011B94C 00000000 */ nop