Difference between revisions of "Set Unit Xmod, Y Mod and Height data from unit ID"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0008c468: 27bdffe0 addiu r29,r29,0xffe0 0008c46c: afb10014 sw r17,0x0014(r29) 0008c470: 00a08821 addu r17,r5,r0 0008c474: 3084ffff andi r4,r4,0...")
 
Line 1: Line 1:
<font face='Courier New'>
 
 
 
  0008c468: 27bdffe0 addiu r29,r29,0xffe0
 
  0008c468: 27bdffe0 addiu r29,r29,0xffe0
 
  0008c46c: afb10014 sw r17,0x0014(r29)
 
  0008c46c: afb10014 sw r17,0x0014(r29)
  0008c470: 00a08821 addu r17,r5,r0
+
  0008c470: 00a08821 addu r17,r5,r0 r17 = Stack Pointer
  0008c474: 3084ffff andi r4,r4,0xffff
+
  0008c474: 3084ffff andi r4,r4,0xffff r4 = Unit's ID
 
  0008c478: afbf0018 sw r31,0x0018(r29)
 
  0008c478: afbf0018 sw r31,0x0018(r29)
  0008c47c: 0c01e9c9 jal 0x0007a724
+
  0008c47c: 0c01e9c9 jal 0x0007a724 Find Misc Unit Data Pointer
 
  0008c480: afb00010 sw r16,0x0010(r29)
 
  0008c480: afb00010 sw r16,0x0010(r29)
  0008c484: 00408021 addu r16,r2,r0
+
  0008c484: 00408021 addu r16,r2,r0 r16 = Unit's Misc Unit Data Pointer
  0008c488: 1200001d beq r16,r0,0x0008c500
+
  0008c488: 1200001d beq r16,r0,0x0008c500 Branch if Pointer doesn't exist
  0008c48c: 00001021 addu r2,r0,r0
+
  0008c48c: 00001021 addu r2,r0,r0 r2 = 0 (Fail)
  0008c490: 8e020134 lw r2,0x0134(r16)
+
  0008c490: 8e020134 lw r2,0x0134(r16) Load Unit's Data Pointer
  0008c494: 00000000 nop
+
  0008c494: 00000000 nop (getting the tile pointer here is useless since it's overwritten)
  0008c498: 90440047 lbu r4,0x0047(r2)
+
  0008c498: 90440047 lbu r4,0x0047(r2) Load Unit's X
  0008c49c: 94460048 lhu r6,0x0048(r2)
+
  0008c49c: 94460048 lhu r6,0x0048(r2) Load Unit's Y + Map Level
  0008c4a0: 90450048 lbu r5,0x0048(r2)
+
  0008c4a0: 90450048 lbu r5,0x0048(r2) Load Unit's Y
  0008c4a4: 0c060fed jal 0x00183fb4
+
  0008c4a4: 0c060fed jal 0x00183fb4 Get Tile's Data Pointer
  0008c4a8: 000633c2 srl r6,r6,0x0f
+
  0008c4a8: 000633c2 srl r6,r6,0x0f r6 = Unit's Map Level
  0008c4ac: 8e020134 lw r2,0x0134(r16)
+
  0008c4ac: 8e020134 lw r2,0x0134(r16) Load Unit's Data Pointer
 
  0008c4b0: 00000000 nop
 
  0008c4b0: 00000000 nop
  0008c4b4: 90430047 lbu r3,0x0047(r2)
+
  0008c4b4: 90430047 lbu r3,0x0047(r2) Load Unit's X
 
  0008c4b8: 00000000 nop
 
  0008c4b8: 00000000 nop
  0008c4bc: 000310c0 sll r2,r3,0x03
+
  0008c4bc: 000310c0 sll r2,r3,0x03 X * 8
  0008c4c0: 00431023 subu r2,r2,r3
+
  0008c4c0: 00431023 subu r2,r2,r3 X * 7
  0008c4c4: 00021080 sll r2,r2,0x02
+
  0008c4c4: 00021080 sll r2,r2,0x02 X * 28
  0008c4c8: 2442000e addiu r2,r2,0x000e
+
  0008c4c8: 2442000e addiu r2,r2,0x000e X * 28 + 14
  0008c4cc: a6220000 sh r2,0x0000(r17)
+
  0008c4cc: a6220000 sh r2,0x0000(r17) Store X Mod to Stack
  0008c4d0: 8e020134 lw r2,0x0134(r16)
+
  0008c4d0: 8e020134 lw r2,0x0134(r16) Load Unit's Data Pointer
 
  0008c4d4: 00000000 nop
 
  0008c4d4: 00000000 nop
  0008c4d8: 90430048 lbu r3,0x0048(r2)
+
  0008c4d8: 90430048 lbu r3,0x0048(r2) Load Unit's Y
  0008c4dc: 02002021 addu r4,r16,r0
+
  0008c4dc: 02002021 addu r4,r16,r0 r4 = Unit's Misc Data Pointer
  0008c4e0: 000310c0 sll r2,r3,0x03
+
  0008c4e0: 000310c0 sll r2,r3,0x03 Y * 8
  0008c4e4: 00431023 subu r2,r2,r3
+
  0008c4e4: 00431023 subu r2,r2,r3 Y * 7
  0008c4e8: 00021080 sll r2,r2,0x02
+
  0008c4e8: 00021080 sll r2,r2,0x02 Y * 28
  0008c4ec: 2442000e addiu r2,r2,0x000e
+
  0008c4ec: 2442000e addiu r2,r2,0x000e Y * 28 + 14
 
  0008c4f0: 0c01f547 jal 0x0007d51c
 
  0008c4f0: 0c01f547 jal 0x0007d51c
  0008c4f4: a6220004 sh r2,0x0004(r17)
+
  0008c4f4: a6220004 sh r2,0x0004(r17) Store Y Mod to Stack
 
  0008c4f8: a6220002 sh r2,0x0002(r17)
 
  0008c4f8: a6220002 sh r2,0x0002(r17)
 
  0008c4fc: 34020001 ori r2,r0,0x0001
 
  0008c4fc: 34020001 ori r2,r0,0x0001
Line 45: Line 43:
 
  0008c510: 03e00008 jr r31
 
  0008c510: 03e00008 jr r31
 
  0008c514: 00000000 nop
 
  0008c514: 00000000 nop
</font>
 

Revision as of 03:52, 17 June 2016

0008c468: 27bdffe0 addiu r29,r29,0xffe0
0008c46c: afb10014 sw r17,0x0014(r29)
0008c470: 00a08821 addu r17,r5,r0		r17 = Stack Pointer
0008c474: 3084ffff andi r4,r4,0xffff		r4 = Unit's ID
0008c478: afbf0018 sw r31,0x0018(r29)
0008c47c: 0c01e9c9 jal 0x0007a724		Find Misc Unit Data Pointer
0008c480: afb00010 sw r16,0x0010(r29)
0008c484: 00408021 addu r16,r2,r0		r16 = Unit's Misc Unit Data Pointer
0008c488: 1200001d beq r16,r0,0x0008c500	Branch if Pointer doesn't exist
0008c48c: 00001021 addu r2,r0,r0		r2 = 0 (Fail)
0008c490: 8e020134 lw r2,0x0134(r16)		Load Unit's Data Pointer
0008c494: 00000000 nop				(getting the tile pointer here is useless since it's overwritten)
0008c498: 90440047 lbu r4,0x0047(r2)		Load Unit's X
0008c49c: 94460048 lhu r6,0x0048(r2)		Load Unit's Y + Map Level
0008c4a0: 90450048 lbu r5,0x0048(r2)		Load Unit's Y
0008c4a4: 0c060fed jal 0x00183fb4		Get Tile's Data Pointer
0008c4a8: 000633c2 srl r6,r6,0x0f		r6 = Unit's Map Level
0008c4ac: 8e020134 lw r2,0x0134(r16)		Load Unit's Data Pointer
0008c4b0: 00000000 nop
0008c4b4: 90430047 lbu r3,0x0047(r2)		Load Unit's X
0008c4b8: 00000000 nop
0008c4bc: 000310c0 sll r2,r3,0x03		X * 8
0008c4c0: 00431023 subu r2,r2,r3		X * 7
0008c4c4: 00021080 sll r2,r2,0x02		X * 28
0008c4c8: 2442000e addiu r2,r2,0x000e		X * 28 + 14
0008c4cc: a6220000 sh r2,0x0000(r17)		Store X Mod to Stack
0008c4d0: 8e020134 lw r2,0x0134(r16)		Load Unit's Data Pointer
0008c4d4: 00000000 nop
0008c4d8: 90430048 lbu r3,0x0048(r2)		Load Unit's Y
0008c4dc: 02002021 addu r4,r16,r0		r4 = Unit's Misc Data Pointer
0008c4e0: 000310c0 sll r2,r3,0x03		Y * 8
0008c4e4: 00431023 subu r2,r2,r3		Y * 7
0008c4e8: 00021080 sll r2,r2,0x02		Y * 28
0008c4ec: 2442000e addiu r2,r2,0x000e		Y * 28 + 14
0008c4f0: 0c01f547 jal 0x0007d51c
0008c4f4: a6220004 sh r2,0x0004(r17)		Store Y Mod to Stack
0008c4f8: a6220002 sh r2,0x0002(r17)
0008c4fc: 34020001 ori r2,r0,0x0001
0008c500: 8fbf0018 lw r31,0x0018(r29)
0008c504: 8fb10014 lw r17,0x0014(r29)
0008c508: 8fb00010 lw r16,0x0010(r29)
0008c50c: 27bd0020 addiu r29,r29,0x0020
0008c510: 03e00008 jr r31
0008c514: 00000000 nop