Difference between revisions of "Mark Unit's VRAM Slot as Unoccupied"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
Line 4: Line 4:
 
  00085ba4: 340900ff ori r9,r0,0x00ff
 
  00085ba4: 340900ff ori r9,r0,0x00ff
 
  00085ba8: 3c06800a lui r6,0x800a
 
  00085ba8: 3c06800a lui r6,0x800a
  00085bac: 24c677c4 addiu r6,r6,0x77c4 #unit ID to animate?
+
  00085bac: 24c677c4 addiu r6,r6,0x77c4 #
 
  00085bb0: 00003821 addu r7,r0,r0
 
  00085bb0: 00003821 addu r7,r0,r0
  00085bb4: 8cc50000 lw r5,0x0000(r6) #0x800a77c4 and 0x800aed28
+
  00085bb4: 8cc50000 lw r5,0x0000(r6) #VRAM slot's Unit's ID (first slot: 4, second slot: 5)
 
  00085bb8: 00000000 nop
 
  00085bb8: 00000000 nop
  00085bbc: 24a2ff02 addiu r2,r5,0xff02 #r2 = r5 - 0xfe
+
  00085bbc: 24a2ff02 addiu r2,r5,0xff02 #
  00085bc0: 2c420002 sltiu r2,r2,0x0002 #true if r5 is either fe or ff
+
  00085bc0: 2c420002 sltiu r2,r2,0x0002 #check if r5 is either fe or ff
  00085bc4: 1440000b bne r2,r0,0x00085bf4 #end if so
+
  00085bc4: 1440000b bne r2,r0,0x00085bf4 #end if slot contains no unit
 
  00085bc8: 25080001 addiu r8,r8,0x0001 #counter + 1
 
  00085bc8: 25080001 addiu r8,r8,0x0001 #counter + 1
 
  00085bcc: 90830004 lbu r3,0x0004(r4) #Load unit misc ID
 
  00085bcc: 90830004 lbu r3,0x0004(r4) #Load unit misc ID
 
  00085bd0: 30a2001f andi r2,r5,0x001f
 
  00085bd0: 30a2001f andi r2,r5,0x001f
  00085bd4: 14430007 bne r2,r3,0x00085bf4 #branch if unit ID to animate does not match 0x800a77c4
+
  00085bd4: 14430007 bne r2,r3,0x00085bf4 #loop if current unit is not the unit in this VRAM slot
 
  00085bd8: 30a20040 andi r2,r5,0x0040
 
  00085bd8: 30a20040 andi r2,r5,0x0040
  00085bdc: 14400005 bne r2,r0,0x00085bf4 #branch if flag 0x40 is checked?
+
  00085bdc: 14400005 bne r2,r0,0x00085bf4 #loop if VRAM slot ID is marked as persists?
 
  00085be0: 00000000 nop
 
  00085be0: 00000000 nop
  00085be4: acc90000 sw r9,0x0000(r6) #store unit no longer exists (if 0x40 not checked)
+
  00085be4: acc90000 sw r9,0x0000(r6) #Mark VRAM slot empty
 
  00085be8: 3c01800a lui r1,0x800a
 
  00085be8: 3c01800a lui r1,0x800a
 
  00085bec: 00270821 addu r1,r1,r7
 
  00085bec: 00270821 addu r1,r1,r7
  00085bf0: ac2077cc sw r0,0x77cc(r1) #clear 0x800a77cc + loop counter * 0x7564
+
  00085bf0: ac2077cc sw r0,0x77cc(r1) #mark VRAM slot as empty (second check)
  00085bf4: 24c67564 addiu r6,r6,0x7564 #next unit?
+
  00085bf4: 24c67564 addiu r6,r6,0x7564 #next VRAM slot (4 and 5 checked)
  00085bf8: 29020002 slti r2,r8,0x0002 #repeat only once more
+
  00085bf8: 29020002 slti r2,r8,0x0002 #
  00085bfc: 1440ffed bne r2,r0,0x00085bb4 #perform routine twice
+
  00085bfc: 1440ffed bne r2,r0,0x00085bb4 #loop for VRAM slots 4 and 5
  00085c00: 24e77564 addiu r7,r7,0x7564 #0x0000, 0x7564 for loops
+
  00085c00: 24e77564 addiu r7,r7,0x7564 #size of VRAM data table
 
  00085c04: 03e00008 jr r31
 
  00085c04: 03e00008 jr r31
 
  00085c08: 00000000 nop
 
  00085c08: 00000000 nop
 
</font>
 
</font>

Revision as of 05:13, 15 November 2022

00085ba0: 00004021 addu r8,r0,r0
00085ba4: 340900ff ori r9,r0,0x00ff
00085ba8: 3c06800a lui r6,0x800a
00085bac: 24c677c4 addiu r6,r6,0x77c4			#
00085bb0: 00003821 addu r7,r0,r0
00085bb4: 8cc50000 lw r5,0x0000(r6)			#VRAM slot's Unit's ID (first slot: 4, second slot: 5)
00085bb8: 00000000 nop
00085bbc: 24a2ff02 addiu r2,r5,0xff02			#
00085bc0: 2c420002 sltiu r2,r2,0x0002			#check if r5 is either fe or ff
00085bc4: 1440000b bne r2,r0,0x00085bf4		#end if slot contains no unit
00085bc8: 25080001 addiu r8,r8,0x0001			#counter + 1
00085bcc: 90830004 lbu r3,0x0004(r4)			#Load unit misc ID
00085bd0: 30a2001f andi r2,r5,0x001f
00085bd4: 14430007 bne r2,r3,0x00085bf4		#loop if current unit is not the unit in this VRAM slot
00085bd8: 30a20040 andi r2,r5,0x0040
00085bdc: 14400005 bne r2,r0,0x00085bf4		#loop if VRAM slot ID is marked as persists?
00085be0: 00000000 nop
00085be4: acc90000 sw r9,0x0000(r6)			#Mark VRAM slot empty
00085be8: 3c01800a lui r1,0x800a
00085bec: 00270821 addu r1,r1,r7
00085bf0: ac2077cc sw r0,0x77cc(r1)			#mark VRAM slot as empty (second check)
00085bf4: 24c67564 addiu r6,r6,0x7564			#next VRAM slot (4 and 5 checked)
00085bf8: 29020002 slti r2,r8,0x0002			#
00085bfc: 1440ffed bne r2,r0,0x00085bb4		#loop for VRAM slots 4 and 5
00085c00: 24e77564 addiu r7,r7,0x7564			#size of VRAM data table
00085c04: 03e00008 jr r31
00085c08: 00000000 nop