papermario/ver/us/asm/nonmatchings/sprite/spr_load_npc_sprite.s
Ethan Roseman 647db26552
Mass function rename from Star Rod + a couple funcs (#298)
* .

* yaml update

* git subrepo pull --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "cd690f725d"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "cd690f725d"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* separate main bss syms

* renames and one match

* SR symbol rename

* fix symbol_addrs

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "5fa8aa24ca"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "5fa8aa24ca"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* remove old artifacts
2021-06-30 11:27:12 +09:00

126 lines
6.5 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel spr_load_npc_sprite
/* 1011DC 802DE0EC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 1011E0 802DE0F0 AFB50024 */ sw $s5, 0x24($sp)
/* 1011E4 802DE0F4 00A0A82D */ daddu $s5, $a1, $zero
/* 1011E8 802DE0F8 00041403 */ sra $v0, $a0, 0x10
/* 1011EC 802DE0FC AFB40020 */ sw $s4, 0x20($sp)
/* 1011F0 802DE100 30547FFF */ andi $s4, $v0, 0x7fff
/* 1011F4 802DE104 000437C2 */ srl $a2, $a0, 0x1f
/* 1011F8 802DE108 0000202D */ daddu $a0, $zero, $zero
/* 1011FC 802DE10C AFB3001C */ sw $s3, 0x1c($sp)
/* 101200 802DE110 3C13802E */ lui $s3, %hi(D_802DFA48)
/* 101204 802DE114 2673FA48 */ addiu $s3, $s3, %lo(D_802DFA48)
/* 101208 802DE118 0260182D */ daddu $v1, $s3, $zero
/* 10120C 802DE11C AFBF0028 */ sw $ra, 0x28($sp)
/* 101210 802DE120 AFB20018 */ sw $s2, 0x18($sp)
/* 101214 802DE124 AFB10014 */ sw $s1, 0x14($sp)
/* 101218 802DE128 AFB00010 */ sw $s0, 0x10($sp)
.L802DE12C:
/* 10121C 802DE12C 8C620000 */ lw $v0, ($v1)
/* 101220 802DE130 10400005 */ beqz $v0, .L802DE148
/* 101224 802DE134 00000000 */ nop
/* 101228 802DE138 24840001 */ addiu $a0, $a0, 1
/* 10122C 802DE13C 28820033 */ slti $v0, $a0, 0x33
/* 101230 802DE140 1440FFFA */ bnez $v0, .L802DE12C
/* 101234 802DE144 24630014 */ addiu $v1, $v1, 0x14
.L802DE148:
/* 101238 802DE148 3C03802E */ lui $v1, %hi(D_802DF530)
/* 10123C 802DE14C 2463F530 */ addiu $v1, $v1, %lo(D_802DF530)
/* 101240 802DE150 8C620000 */ lw $v0, ($v1)
/* 101244 802DE154 0044102A */ slt $v0, $v0, $a0
/* 101248 802DE158 54400001 */ bnel $v0, $zero, .L802DE160
/* 10124C 802DE15C AC640000 */ sw $a0, ($v1)
.L802DE160:
/* 101250 802DE160 24020033 */ addiu $v0, $zero, 0x33
/* 101254 802DE164 14820003 */ bne $a0, $v0, .L802DE174
/* 101258 802DE168 00141880 */ sll $v1, $s4, 2
/* 10125C 802DE16C 080B78A2 */ j .L802DE288
/* 101260 802DE170 2402FFFF */ addiu $v0, $zero, -1
.L802DE174:
/* 101264 802DE174 3C02802E */ lui $v0, %hi(spr_npcSprites)
/* 101268 802DE178 2442F5B0 */ addiu $v0, $v0, %lo(spr_npcSprites)
/* 10126C 802DE17C 00628821 */ addu $s1, $v1, $v0
/* 101270 802DE180 8E220000 */ lw $v0, ($s1)
/* 101274 802DE184 1040000E */ beqz $v0, .L802DE1C0
/* 101278 802DE188 0080902D */ daddu $s2, $a0, $zero
/* 10127C 802DE18C 3C03802E */ lui $v1, %hi(spr_npcSpriteInstanceCount)
/* 101280 802DE190 2463F958 */ addiu $v1, $v1, %lo(spr_npcSpriteInstanceCount)
/* 101284 802DE194 02831821 */ addu $v1, $s4, $v1
/* 101288 802DE198 90620000 */ lbu $v0, ($v1)
/* 10128C 802DE19C 24420001 */ addiu $v0, $v0, 1
/* 101290 802DE1A0 A0620000 */ sb $v0, ($v1)
/* 101294 802DE1A4 00121080 */ sll $v0, $s2, 2
/* 101298 802DE1A8 00521021 */ addu $v0, $v0, $s2
/* 10129C 802DE1AC 00021080 */ sll $v0, $v0, 2
/* 1012A0 802DE1B0 8E300000 */ lw $s0, ($s1)
/* 1012A4 802DE1B4 00531021 */ addu $v0, $v0, $s3
/* 1012A8 802DE1B8 080B7882 */ j .L802DE208
/* 1012AC 802DE1BC AC500008 */ sw $s0, 8($v0)
.L802DE1C0:
/* 1012B0 802DE1C0 2684FFFF */ addiu $a0, $s4, -1
/* 1012B4 802DE1C4 24020001 */ addiu $v0, $zero, 1
/* 1012B8 802DE1C8 3C01802E */ lui $at, %hi(spr_npcSpriteInstanceCount)
/* 1012BC 802DE1CC 00340821 */ addu $at, $at, $s4
/* 1012C0 802DE1D0 A022F958 */ sb $v0, %lo(spr_npcSpriteInstanceCount)($at)
/* 1012C4 802DE1D4 0C0B7AC3 */ jal spr_load_sprite
/* 1012C8 802DE1D8 0000282D */ daddu $a1, $zero, $zero
/* 1012CC 802DE1DC 0040802D */ daddu $s0, $v0, $zero
/* 1012D0 802DE1E0 00121080 */ sll $v0, $s2, 2
/* 1012D4 802DE1E4 00521021 */ addu $v0, $v0, $s2
/* 1012D8 802DE1E8 00021080 */ sll $v0, $v0, 2
/* 1012DC 802DE1EC 00531021 */ addu $v0, $v0, $s3
/* 1012E0 802DE1F0 AC500008 */ sw $s0, 8($v0)
/* 1012E4 802DE1F4 12A00004 */ beqz $s5, .L802DE208
/* 1012E8 802DE1F8 AE300000 */ sw $s0, ($s1)
/* 1012EC 802DE1FC 0200202D */ daddu $a0, $s0, $zero
/* 1012F0 802DE200 0C0B7C03 */ jal spr_load_npc_extra_anims
/* 1012F4 802DE204 02A0282D */ daddu $a1, $s5, $zero
.L802DE208:
/* 1012F8 802DE208 8E040008 */ lw $a0, 8($s0)
/* 1012FC 802DE20C 0C0B7CB6 */ jal spr_allocate_components
/* 101300 802DE210 00000000 */ nop
/* 101304 802DE214 0040882D */ daddu $s1, $v0, $zero
/* 101308 802DE218 00121080 */ sll $v0, $s2, 2
/* 10130C 802DE21C 00521021 */ addu $v0, $v0, $s2
/* 101310 802DE220 00021080 */ sll $v0, $v0, 2
/* 101314 802DE224 3C01802E */ lui $at, %hi(D_802DFA4C)
/* 101318 802DE228 00220821 */ addu $at, $at, $v0
/* 10131C 802DE22C AC31FA4C */ sw $s1, %lo(D_802DFA4C)($at)
/* 101320 802DE230 8E230000 */ lw $v1, ($s1)
/* 101324 802DE234 2402FFFF */ addiu $v0, $zero, -1
/* 101328 802DE238 10620009 */ beq $v1, $v0, .L802DE260
/* 10132C 802DE23C 0040982D */ daddu $s3, $v0, $zero
.L802DE240:
/* 101330 802DE240 8E300000 */ lw $s0, ($s1)
/* 101334 802DE244 0C04E9C1 */ jal func_8013A704
/* 101338 802DE248 24040001 */ addiu $a0, $zero, 1
/* 10133C 802DE24C 26310004 */ addiu $s1, $s1, 4
/* 101340 802DE250 AE02004C */ sw $v0, 0x4c($s0)
/* 101344 802DE254 8E220000 */ lw $v0, ($s1)
/* 101348 802DE258 1453FFF9 */ bne $v0, $s3, .L802DE240
/* 10134C 802DE25C 00000000 */ nop
.L802DE260:
/* 101350 802DE260 0240102D */ daddu $v0, $s2, $zero
/* 101354 802DE264 3C03802E */ lui $v1, %hi(D_802DFA48)
/* 101358 802DE268 2463FA48 */ addiu $v1, $v1, %lo(D_802DFA48)
/* 10135C 802DE26C 00022080 */ sll $a0, $v0, 2
/* 101360 802DE270 00822021 */ addu $a0, $a0, $v0
/* 101364 802DE274 00042080 */ sll $a0, $a0, 2
/* 101368 802DE278 00832021 */ addu $a0, $a0, $v1
/* 10136C 802DE27C 2403FFFF */ addiu $v1, $zero, -1
/* 101370 802DE280 AC940000 */ sw $s4, ($a0)
/* 101374 802DE284 AC83000C */ sw $v1, 0xc($a0)
.L802DE288:
/* 101378 802DE288 8FBF0028 */ lw $ra, 0x28($sp)
/* 10137C 802DE28C 8FB50024 */ lw $s5, 0x24($sp)
/* 101380 802DE290 8FB40020 */ lw $s4, 0x20($sp)
/* 101384 802DE294 8FB3001C */ lw $s3, 0x1c($sp)
/* 101388 802DE298 8FB20018 */ lw $s2, 0x18($sp)
/* 10138C 802DE29C 8FB10014 */ lw $s1, 0x14($sp)
/* 101390 802DE2A0 8FB00010 */ lw $s0, 0x10($sp)
/* 101394 802DE2A4 03E00008 */ jr $ra
/* 101398 802DE2A8 27BD0030 */ addiu $sp, $sp, 0x30