Jump

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
00195a90: 92020e2e lbu r2,0x0e2e(r16)    	; Load ?
00195a94: 00000000 nop
00195a98: 16a2000e bne r21,r2,0x 00195ad4	; Branch if ? != Unit's ID
00195a9c: 34020064 ori r2,r0,0x0064      	; r2 = 100
00195aa0: 8e0317f8 lw r3,0x17f8(r16)     	; Load Target's? Pointer
00195aa4: 00000000 nop
00195aa8: 90640039 lbu r4,0x0039(r3)     	; Load Target's? CT
00195aac: 90630038 lbu r3,0x0038(r3)     	; Load Target's? SP
00195ab0: 00441023 subu r2,r2,r4         	; r2 = 100 - CT
00195ab4: 0043001a div r2,r3             	; (100 - CT) / SP
00195ab8: 00001012 mflo r2               	; r2 = (100 - CT) / SP
00195abc: 00000000 nop
00195ac0: 00021fc2 srl r3,r2,0x1f
00195ac4: 00431021 addu r2,r2,r3
00195ac8: 00021043 sra r2,r2,0x01        	; ((100 - CT) / SP) / 2
00195acc: 080656d7 j 0x 00195b5c
00195ad0: a2020001 sb r2,0x0001(r16)     	; Store CT? = ((100 - CT) / SP) / 2
00195ad4: 92450039 lbu r5,0x0039(r18)    	; Load Unit's CT
00195ad8: 00000000 nop
00195adc: 2ca20065 sltiu r2,r5,0x0065
00195ae0: 14400005 bne r2,r0,0x 00195af8 	; Branch if CT < 101
00195ae4: 34040064 ori r4,r0,0x0064      	; r4 = 100
00195ae8: a2000001 sb r0,0x0001(r16)     	; Store CT? = 0
00195aec: 92420039 lbu r2,0x0039(r18)    	; Load Unit's CT
00195af0: 080656cb j 0x 00195b2c
00195af4: 2444ff9c addiu r4,r2,0xff9c    	; CT - 100
00195af8: 92430038 lbu r3,0x0038(r18)    	; Load Unit's SP
00195afc: 00851023 subu r2,r4,r5         	; 100 - CT
00195b00: 0043001a div r2,r3             	; (100 - CT) / SP
00195b04: 00001012 mflo r2               	; r2 = (100 - CT) / SP
00195b08: 00000000 nop
00195b0c: a2020001 sb r2,0x0001(r16)     	; Store CT? = (100 - CT) / SP
00195b10: 92430039 lbu r3,0x0039(r18)    	; Load Unit's CT
00195b14: 92420038 lbu r2,0x0038(r18)    	; Load Unit's SP
00195b18: 00832023 subu r4,r4,r3         	; 100 - CT
00195b1c: 0082001a div r4,r2             	; (100 - CT) / SP
00195b20: 00001810 mfhi r3               	; r3 = (100 - CT) / SP
00195b24: 00000000 nop
00195b28: 00432023 subu r4,r2,r3         	; SP - (100 - CT) / SP
00195b2c: 34020064 ori r2,r0,0x0064      	; r2 = 100
00195b30: 92430038 lbu r3,0x0038(r18)    	; Load SP
00195b34: 00441023 subu r2,r2,r4         	; 100 - (SP - (100 - CT) / SP)
00195b38: 0043001a div r2,r3             	; (100 - (SP - (100 - CT) / SP)) / SP
00195b3c: 00001012 mflo r2               	; r2 = "
00195b40: 00000000 nop
00195b44: 00021fc2 srl r3,r2,0x1f
00195b48: 00431021 addu r2,r2,r3
00195b4c: 92030001 lbu r3,0x0001(r16)    	; Load CT?
00195b50: 00021043 sra r2,r2,0x01        	; ((100 - (SP - (100 - CT) / SP)) / SP) / 2
00195b54: 00621821 addu r3,r3,r2         	; CT? + "
00195b58: a2030001 sb r3,0x0001(r16)     	; Store new CT?
00195b5c: 16200003 bne r17,r0,0x 00195b6c	; Branch if Ability ID != 0
00195b60: 2622fe76 addiu r2,r17,0xfe76   	; r2 = Ability ID - 0x18a (Level Jump 2)
00195b64: 080656df j 0x 00195b7c
00195b68: 34020001 ori r2,r0,0x0001      	; r2 = 1
00195b6c: 00021040 sll r2,r2,0x01        	; ID * 2
00195b70: 3c018006 lui r1,0x8006
00195b74: 00220821 addu r1,r1,r2
00195b78: 9022102c lbu r2,0x102c(r1)     	; Load Jump's Range
00195b7c: 00000000 nop
00195b80: a2020004 sb r2,0x0004(r16)     	; Store Range = Jump's Range
00195b84: 02151021 addu r2,r16,r21
00195b88: 9042198c lbu r2,0x198c(r2)     	; Load Unit's Battle ID
00195b8c: 00000000 nop
00195b90: 000210c0 sll r2,r2,0x03        	; ID * 8
00195b94: 24421778 addiu r2,r2,0x1778
00195b98: 0806565d j 0x 00195974         	; Attack
00195b9c: 02021821 addu r3,r16,r2        	; r3 = Unit's Weapon? Attack Data