Difference between revisions of "Some Knockback Handling"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
 
(No difference)

Latest revision as of 16:43, 3 January 2016

Some Knockback Handling 0x6cc94: 0006cc94 - 0006d05c

	0006c2bc: 0006c2bc - 0006c31c
	0006af7c: 0006af7c - 0006b95c
	0006be8c: 0006be8c - 0006c020
	0006cbb8: 0006cbb8 - 0006cc90
	0006c94c: 0006c94c - 0006ca38
	0017c158: Calculate Height Data
	0007cff8: 0007cff8 - 0007d09c
	0007a25c: Get Misc Data of unit that matches register inputs
	0017c158: Calculate Height Data
	0007cff8: 0007cff8 - 0007d09c
	000692bc: Set Animation/Facing for Mounted Units
	0006a20c: 0006a20c - 0006a37c
	0006a380: 0006a380 - 0006a534
	00069254: Set some data for Mounted Units
	0006aa80: 0006aa80 - 0006ad14
	0006a7c0: 0006a7c0 - 0006aa7c
	0006a538: 0006a538 - 0006a7bc

0006cc94: 27bdffe0 addiu r29,r29,0xffe0			
0006cc98: afb00010 sw r16,0x0010(r29)			Store 0x0 onto Stack
0006cc9c: 00808021 addu r16,r4,r0
0006cca0: afbf0018 sw r31,0x0018(r29)			Store 0x0 onto Stack
0006cca4: 0c01b0af jal 0x0006c2bc			0006c2bc - 0006c31c
0006cca8: afb10014 sw r17,0x0014(r29)			Store 0x0 onto Stack
0006ccac: 02002021 addu r4,r16,r0
0006ccb0: 0c01abdf jal 0x0006af7c			0006af7c - 0006b95c
0006ccb4: 00408821 addu r17,r2,r0
0006ccb8: 3c038009 lui r3,0x8009			
0006ccbc: 8c6360e4 lw r3,0x60e4(r3)			Load Main battle control variable
0006ccc0: 34020034 ori r2,r0,0x0034			r2 = (0x34) 52
0006ccc4: 10620003 beq r3,r2,0x0006ccd4			Branch if Main battle control variable == 34 (52)
0006ccc8: 02002021 addu r4,r16,r0
0006cccc: 0c01afa3 jal 0x0006be8c			0006be8c - 0006c020
0006ccd0: 02202821 addu r5,r17,r0
0006ccd4: 02202021 addu r4,r17,r0
0006ccd8: 0c01b2ee jal 0x0006cbb8			0006cbb8 - 0006cc90
0006ccdc: 02002821 addu r5,r16,r0
0006cce0: 104000d9 beq r2,r0,0x0006d048			Branch if 34 (52) == 0x0
0006cce4: 02202021 addu r4,r17,r0

0006cce8: 0c01b253 jal 0x0006c94c			0006c94c - 0006ca38
0006ccec: 02002821 addu r5,r16,r0
0006ccf0: 3c028009 lui r2,0x8009			
0006ccf4: 9042621c lbu r2,0x621c(r2)			???
0006ccf8: 00000000 nop
0006ccfc: 30420003 andi r2,r2,0x0003			Unit misc ID when selected by cursor & 0x3
0006cd00: 144000c9 bne r2,r0,0x0006d028			Branch if ??? & 0x3 != 0x0
0006cd04: 02002021 addu r4,r16,r0

0006cd08: 9205011e lbu r5,0x011e(r16)			Load ???
0006cd0c: 00000000 nop
0006cd10: 10a00021 beq r5,r0,0x0006cd98			Branch if  == 0x0
0006cd14: 00000000 nop

0006cd18: 3c048009 lui r4,0x8009			
0006cd1c: 24846238 addiu r4,r4,0x6238			Exception
0006cd20: 0c05f056 jal 0x0017c158			Calculate Height Data
0006cd24: 24a5ffff addiu r5,r5,0xffff

0006cd28: 3c028009 lui r2,0x8009			
0006cd2c: 9042623b lbu r2,0x623b(r2)			Load ???
0006cd30: 00000000 nop
0006cd34: 30420080 andi r2,r2,0x0080			 & 0x80
0006cd38: 10400011 beq r2,r0,0x0006cd80			Branch if  & 0x80 == 0x0
0006cd3c: 00000000 nop

0006cd40: 3c048009 lui r4,0x8009			
0006cd44: 8c846220 lw r4,0x6220(r4)			Load Target/Attacker Tile pointer
0006cd48: 00000000 nop
0006cd4c: 90820003 lbu r2,0x0003(r4)			load height
0006cd50: 92030097 lbu r3,0x0097(r16)			Load Main battle control variable
0006cd54: 3042001f andi r2,r2,0x001f			 height halves
0006cd58: 00430018 mult r2,r3				height halves*??
0006cd5c: 90820002 lbu r2,0x0002(r4)			load height whole numbers
0006cd60: 00000000 nop
0006cd64: 00021040 sll r2,r2,0x01			Shift left 1 bits (*0x2) (*2)
0006cd68: 00001812 mflo r3				0x0
0006cd6c: 00431021 addu r2,r2,r3
0006cd70: 3c018009 lui r1,0x8009			
0006cd74: a0226230 sb r2,0x6230(r1)			store total height
0006cd78: 0801b37c j 0x0006cdf0			
0006cd7c: 00000000 nop

0006cd80: 3c028009 lui r2,0x8009			
0006cd84: 9042623e lbu r2,0x623e(r2)			Load ???
0006cd88: 3c018009 lui r1,0x8009			
0006cd8c: a0226230 sb r2,0x6230(r1)			store height?
0006cd90: 0801b37c j 0x0006cdf0			
0006cd94: 00000000 nop

0006cd98: 3c058009 lui r5,0x8009			
0006cd9c: 8ca56220 lw r5,0x6220(r5)			Load Target/Attacker Tile pointer
0006cda0: 00000000 nop
0006cda4: 90a20003 lbu r2,0x0003(r5)			load height
0006cda8: 92030097 lbu r3,0x0097(r16)			load ??
0006cdac: 3042001f andi r2,r2,0x001f			 
0006cdb0: 00430018 mult r2,r3				get halves
0006cdb4: 90a20002 lbu r2,0x0002(r5)			Load Target/Attacker Tile pointer
0006cdb8: 00000000 nop
0006cdbc: 00021040 sll r2,r2,0x01			Shift left 1 bits (*0x2) (*2)
0006cdc0: 00001812 mflo r3				0x0
0006cdc4: 00431021 addu r2,r2,r3			r2 = height
0006cdc8: 3c018009 lui r1,0x8009			
0006cdcc: a0226230 sb r2,0x6230(r1)			Store height
0006cdd0: 0c01f3fe jal 0x0007cff8			0007cff8 - 0007d09c
0006cdd4: 02002021 addu r4,r16,r0
0006cdd8: 3c038009 lui r3,0x8009			
0006cddc: 90636230 lbu r3,0x6230(r3)			Load ???
0006cde0: 00000000 nop
0006cde4: 00621821 addu r3,r3,r2
0006cde8: 3c018009 lui r1,0x8009			
0006cdec: a0236230 sb r3,0x6230(r1)			Store 0x0 +  +  into 0x80096230
0006cdf0: 3c028009 lui r2,0x8009			
0006cdf4: 9042621c lbu r2,0x621c(r2)			load ??
0006cdf8: 00000000 nop
0006cdfc: 30420010 andi r2,r2,0x0010			
0006ce00: 10400033 beq r2,r0,0x0006ced0			Branch if not 0x10 
0006ce04: 00000000 nop

0006ce08: 92040080 lbu r4,0x0080(r16)			load X coordinate
0006ce0c: 92050081 lbu r5,0x0081(r16)			load Y coordinate
0006ce10: 92060082 lbu r6,0x0082(r16)			load map level
0006ce14: 0c01e897 jal 0x0007a25c			Get Misc Data of unit that matches register inputs
0006ce18: 00000000 nop
0006ce1c: 8c430134 lw r3,0x0134(r2)			Load unit data
0006ce20: 3c018009 lui r1,0x8009			
0006ce24: ac226234 sw r2,0x6234(r1)			store unit misc data?
0006ce28: 9062018a lbu r2,0x018a(r3)			load unit id w/ exists check?
0006ce2c: 00000000 nop
0006ce30: 24420001 addiu r2,r2,0x0001
0006ce34: a202011e sb r2,0x011e(r16)			store unit id w/ exists check into 0x11e
0006ce38: 3c028009 lui r2,0x8009			
0006ce3c: 8c426234 lw r2,0x6234(r2)			load unit misc ID
0006ce40: 00000000 nop
0006ce44: 8c420134 lw r2,0x0134(r2)			load unit data
0006ce48: 00000000 nop
0006ce4c: 9045018a lbu r5,0x018a(r2)			Load ID and exists check
0006ce50: 3c048009 lui r4,0x8009			
0006ce54: 24846238 addiu r4,r4,0x6238			80096238
0006ce58: 0c05f056 jal 0x0017c158			Calculate Height Data
0006ce5c: 00000000 nop
0006ce60: 3c028009 lui r2,0x8009			
0006ce64: 9042623b lbu r2,0x623b(r2)			Load ???
0006ce68: 00000000 nop
0006ce6c: 30420080 andi r2,r2,0x0080			 & 0x80
0006ce70: 10400011 beq r2,r0,0x0006ceb8			Branch if  & 0x80 == 0x0
0006ce74: 00000000 nop
0006ce78: 3c048009 lui r4,0x8009			
0006ce7c: 8c846224 lw r4,0x6224(r4)			Load Target/Attacker Tile Pointer
0006ce80: 00000000 nop
0006ce84: 90820003 lbu r2,0x0003(r4)			Load Target/Attacker Tile Pointer
0006ce88: 92030096 lbu r3,0x0096(r16)			Load ???
0006ce8c: 3042001f andi r2,r2,0x001f			 & 0x1F
0006ce90: 00430018 mult r2,r3				 & 0x1F * 
0006ce94: 90820002 lbu r2,0x0002(r4)			Load Target/Attacker Tile Pointer
0006ce98: 00000000 nop
0006ce9c: 00021040 sll r2,r2,0x01			Shift left 1 bits (*0x2) (*2)
0006cea0: 00001812 mflo r3				0x0
0006cea4: 00431021 addu r2,r2,r3
0006cea8: 3c018009 lui r1,0x8009			r2 = height
0006ceac: a022622c sb r2,0x622c(r1)			store total height
0006ceb0: 0801b3cb j 0x0006cf2c			
0006ceb4: 00000000 nop

0006ceb8: 3c028009 lui r2,0x8009			
0006cebc: 9042623e lbu r2,0x623e(r2)			Load ???
0006cec0: 3c018009 lui r1,0x8009			
0006cec4: a022622c sb r2,0x622c(r1)			Store  into 0x8009622C
0006cec8: 0801b3cb j 0x0006cf2c			
0006cecc: 00000000 nop

0006ced0: a200011e sb r0,0x011e(r16)			Store 0x0 into 0x11E
0006ced4: 3c058009 lui r5,0x8009			
0006ced8: 8ca56224 lw r5,0x6224(r5)			Load Target/Attacker Tile Pointer
0006cedc: 00000000 nop
0006cee0: 90a20003 lbu r2,0x0003(r5)			Load Target/Attacker Tile Pointer
0006cee4: 92030096 lbu r3,0x0096(r16)			Load ???
0006cee8: 3042001f andi r2,r2,0x001f			 & 0x1F
0006ceec: 00430018 mult r2,r3				 & 0x1F * 
0006cef0: 90a20002 lbu r2,0x0002(r5)			Load Target/Attacker Tile Pointer
0006cef4: 00000000 nop
0006cef8: 00021040 sll r2,r2,0x01			Shift left 1 bits (*0x2) (*2)
0006cefc: 00001812 mflo r3				0x0
0006cf00: 00431021 addu r2,r2,r3
0006cf04: 3c018009 lui r1,0x8009			
0006cf08: a022622c sb r2,0x622c(r1)			Store 0x0 +  into 0x8009622C
0006cf0c: 0c01f3fe jal 0x0007cff8			0007cff8 - 0007d09c
0006cf10: 02002021 addu r4,r16,r0
0006cf14: 3c038009 lui r3,0x8009			
0006cf18: 90636230 lbu r3,0x6230(r3)			load height
0006cf1c: 00000000 nop
0006cf20: 00621821 addu r3,r3,r2			add ??
0006cf24: 3c018009 lui r1,0x8009			
0006cf28: a0236230 sb r3,0x6230(r1)			store new height
0006cf2c: 3c038009 lui r3,0x8009			
0006cf30: 90636230 lbu r3,0x6230(r3)			load height
0006cf34: 3c048009 lui r4,0x8009			
0006cf38: 9084622c lbu r4,0x622c(r4)			load height
0006cf3c: 24620001 addiu r2,r3,0x0001			 height++
0006cf40: 0044102a slt r2,r2,r4				Set if height reached other height
0006cf44: 14400020 bne r2,r0,0x0006cfc8			Branch if so
0006cf48: 24620007 addiu r2,r3,0x0007			height + 0x07

0006cf4c: 0c01a4af jal 0x000692bc			Set Animation/Facing for Mounted Units
0006cf50: 02002021 addu r4,r16,r0
0006cf54: 3c028009 lui r2,0x8009			
0006cf58: 9042621c lbu r2,0x621c(r2)			Load ???
0006cf5c: 00000000 nop
0006cf60: 000210c2 srl r2,r2,0x03			Shift right 3 bits (/0x8) (/8)r2 = Unit misc ID when selected by cursor >> 3 * 0x3 (3)
0006cf64: 30430001 andi r3,r2,0x0001			Unit misc ID when selected by cursor >> 3 & 0x1
0006cf68: 10600005 beq r3,r0,0x0006cf80			Branch if Unit misc ID when selected by cursor >> 3 & 0x1 == 0x0
0006cf6c: 34020001 ori r2,r0,0x0001			r2 = (0x1) 1
0006cf70: 1062000c beq r3,r2,0x0006cfa4			Branch if Unit misc ID when selected by cursor >> 3 & 0x1 == 1 (1)
0006cf74: 00000000 nop
0006cf78: 0801b412 j 0x0006d048			
0006cf7c: 00000000 nop

0006cf80: 3c058009 lui r5,0x8009			
0006cf84: 8ca56220 lw r5,0x6220(r5)			Load Target/Attacker Tile pointer
0006cf88: 3c068009 lui r6,0x8009			
0006cf8c: 8cc66224 lw r6,0x6224(r6)			Load Target/Attacker Tile Pointer
0006cf90: 0c01a883 jal 0x0006a20c			0006a20c - 0006a37c
0006cf94: 02002021 addu r4,r16,r0
0006cf98: 34020006 ori r2,r0,0x0006			r2 = (0x6) 6
0006cf9c: 0801b412 j 0x0006d048			
0006cfa0: a202007f sb r2,0x007f(r16)			save new control variable

0006cfa4: 3c058009 lui r5,0x8009			
0006cfa8: 8ca56220 lw r5,0x6220(r5)			Load Target/Attacker Tile pointer
0006cfac: 3c068009 lui r6,0x8009			
0006cfb0: 8cc66224 lw r6,0x6224(r6)			Load Target/Attacker Tile Pointer
0006cfb4: 0c01a8e0 jal 0x0006a380			0006a380 - 0006a534
0006cfb8: 02002021 addu r4,r16,r0
0006cfbc: 3402000e ori r2,r0,0x000e			r2 = (0xE) 14
0006cfc0: 0801b412 j 0x0006d048			
0006cfc4: a202007f sb r2,0x007f(r16)			save new control variable

if 80096230 height reached 8009622c height
0006cfc8: 0044102a slt r2,r2,r4			Set if E (14) < 0x0
0006cfcc: 1440000d bne r2,r0,0x0006d004			Branch if so
0006cfd0: 02002021 addu r4,r16,r0
0006cfd4: 0c01a495 jal 0x00069254			Set some data for Mounted Units
0006cfd8: 02002021 addu r4,r16,r0
0006cfdc: 02002021 addu r4,r16,r0
0006cfe0: 3c058009 lui r5,0x8009			
0006cfe4: 8ca56220 lw r5,0x6220(r5)			Load Target/Attacker Tile pointer
0006cfe8: 3c068009 lui r6,0x8009			
0006cfec: 8cc66224 lw r6,0x6224(r6)			Load Target/Attacker Tile Pointer
0006cff0: 34022000 ori r2,r0,0x2000			r2 = (0x2000) 8192
0006cff4: 0c01aaa0 jal 0x0006aa80			0006aa80 - 0006ad14
0006cff8: ae02003c sw r2,0x003c(r16)			Store 2000 (8192) into 0x3C
0006cffc: 0801b412 j 0x0006d048			
0006d000: a200011e sb r0,0x011e(r16)			Store 0x0 into 0x11E

0006d004: 3c058009 lui r5,0x8009			
0006d008: 8ca56220 lw r5,0x6220(r5)			Load Target/Attacker Tile pointer
0006d00c: 3c068009 lui r6,0x8009			
0006d010: 8cc66224 lw r6,0x6224(r6)			Load Target/Attacker Tile Pointer
0006d014: 34022000 ori r2,r0,0x2000			r2 = (0x2000) 8192
0006d018: 0c01a9f0 jal 0x0006a7c0			0006a7c0 - 0006aa7c
0006d01c: ae02003c sw r2,0x003c(r16)			Store 2000 (8192) into 0x3C
0006d020: 0801b412 j 0x0006d048			
0006d024: a200011e sb r0,0x011e(r16)			Store 0x0 into 0x11E

0006d028: 3c058009 lui r5,0x8009			
0006d02c: 8ca56220 lw r5,0x6220(r5)			Load Target/Attacker Tile pointer
0006d030: 3c068009 lui r6,0x8009			
0006d034: 8cc66224 lw r6,0x6224(r6)			Load Target/Attacker Tile Pointer
0006d038: 34022000 ori r2,r0,0x2000			r2 = (0x2000) 8192
0006d03c: 0c01a94e jal 0x0006a538			0006a538 - 0006a7bc
0006d040: ae02003c sw r2,0x003c(r16)			Store 2000 (8192) into 0x3C
0006d044: a200011e sb r0,0x011e(r16)			Store 0x0 into 0x11E

0006d048: 8fbf0018 lw r31,0x0018(r29)			Load Stack + 0x18
0006d04c: 8fb10014 lw r17,0x0014(r29)			Load Stack + 0x14
0006d050: 8fb00010 lw r16,0x0010(r29)			Load Stack + 0x10
0006d054: 27bd0020 addiu r29,r29,0x0020			
0006d058: 03e00008 jr r31			Jump to Address
0006d05c: 00000000 nop