Difference between revisions of "Effect code script 16 - check counter against 0x1c in temp effect data"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 001a2938: 00802821 addu r5,r4,r0 001a293c: 84a40006 lh r4,0x0006(r5) 001a2940: 8ca20008 lw r2,0x0008(r5) 001a2944: 00000000 nop 001a2948: 0082...")
 
m
 
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
 
   
 
   
  001a2938: 00802821 addu r5,r4,r0
+
  001a2938: 00802821 addu r5,r4,r0 temp eff. data
 
  001a293c: 84a40006 lh r4,0x0006(r5)
 
  001a293c: 84a40006 lh r4,0x0006(r5)
  001a2940: 8ca20008 lw r2,0x0008(r5)
+
  001a2940: 8ca20008 lw r2,0x0008(r5) pointer & counter
 
  001a2944: 00000000 nop
 
  001a2944: 00000000 nop
 
  001a2948: 00823021 addu r6,r4,r2
 
  001a2948: 00823021 addu r6,r4,r2
  001a294c: 90c20001 lbu r2,0x0001(r6)
+
  001a294c: 90c20001 lbu r2,0x0001(r6) load arg 1
  001a2950: 84c30002 lh r3,0x0002(r6)
+
  001a2950: 84c30002 lh r3,0x0002(r6) load arg 2
  001a2954: 00021182 srl r2,r2,0x06
+
  001a2954: 00021182 srl r2,r2,0x06 obtain arg 1
  001a2958: 00021040 sll r2,r2,0x01
+
  001a2958: 00021040 sll r2,r2,0x01 arg1 * 2
  001a295c: 00451021 addu r2,r2,r5
+
  001a295c: 00451021 addu r2,r2,r5 temp effect data + arg1 * 2
  001a2960: 84420014 lh r2,0x0014(r2)
+
  001a2960: 84420014 lh r2,0x0014(r2) load 0x14
 
  001a2964: 00000000 nop
 
  001a2964: 00000000 nop
 
  001a2968: 0043102a slt r2,r2,r3
 
  001a2968: 0043102a slt r2,r2,r3
  001a296c: 10400004 beq r2,r0,0x001a2980
+
  001a296c: 10400004 beq r2,r0,0x001a2980 branch when arg1's 0x14 temp effect data exceeds arg3
 
  001a2970: 27bdfff8 addiu r29,r29,0xfff8
 
  001a2970: 27bdfff8 addiu r29,r29,0xfff8
  001a2974: 94c20004 lhu r2,0x0004(r6)
+
  001a2974: 94c20004 lhu r2,0x0004(r6) load arg3
 
  001a2978: 08068a62 j 0x001a2988
 
  001a2978: 08068a62 j 0x001a2988
  001a297c: a4a20006 sh r2,0x0006(r5)
+
  001a297c: a4a20006 sh r2,0x0006(r5) set arg3 as script counter
  001a2980: 24820006 addiu r2,r4,0x0006
+
  001a2980: 24820006 addiu r2,r4,0x0006 if not yet exceeds, increment counter by 6
 
  001a2984: a4a20006 sh r2,0x0006(r5)
 
  001a2984: a4a20006 sh r2,0x0006(r5)
  001a2988: 34020001 ori r2,r0,0x0001 return r2 = 0x0001
+
  001a2988: 34020001 ori r2,r0,0x0001 return execute next instruction immediately
 
  001a298c: 27bd0008 addiu r29,r29,0x0008
 
  001a298c: 27bd0008 addiu r29,r29,0x0008
 
  001a2990: 03e00008 jr r31
 
  001a2990: 03e00008 jr r31
 
  001a2994: 00000000 nop
 
  001a2994: 00000000 nop
 
</font>
 
</font>

Latest revision as of 04:47, 21 January 2023

001a2938: 00802821 addu r5,r4,r0		temp eff. data
001a293c: 84a40006 lh r4,0x0006(r5)
001a2940: 8ca20008 lw r2,0x0008(r5)		pointer & counter
001a2944: 00000000 nop
001a2948: 00823021 addu r6,r4,r2
001a294c: 90c20001 lbu r2,0x0001(r6)		load arg 1
001a2950: 84c30002 lh r3,0x0002(r6)		load arg 2
001a2954: 00021182 srl r2,r2,0x06		obtain arg 1
001a2958: 00021040 sll r2,r2,0x01		arg1 * 2
001a295c: 00451021 addu r2,r2,r5		temp effect data + arg1 * 2
001a2960: 84420014 lh r2,0x0014(r2)		load 0x14
001a2964: 00000000 nop
001a2968: 0043102a slt r2,r2,r3
001a296c: 10400004 beq r2,r0,0x001a2980	branch when arg1's 0x14 temp effect data exceeds arg3
001a2970: 27bdfff8 addiu r29,r29,0xfff8
001a2974: 94c20004 lhu r2,0x0004(r6)		load arg3
001a2978: 08068a62 j 0x001a2988
001a297c: a4a20006 sh r2,0x0006(r5)		set arg3 as script counter
001a2980: 24820006 addiu r2,r4,0x0006		if not yet exceeds, increment counter by 6
001a2984: a4a20006 sh r2,0x0006(r5)
001a2988: 34020001 ori r2,r0,0x0001		return execute next instruction immediately
001a298c: 27bd0008 addiu r29,r29,0x0008
001a2990: 03e00008 jr r31
001a2994: 00000000 nop