Set move/act based on skillset

From Final Fantasy Hacktics Wiki
Revision as of 11:52, 25 May 2015 by Choto (talk | contribs)
Jump to navigation Jump to search
00075310: 27bdffe0 addiu r29,r29,0xffe0
00075314: afbf0018 sw r31,0x0018(r29)
00075318: afb10014 sw r17,0x0014(r29)
0007531c: 0c01d2eb jal 0x00074bac
00075320: afb00010 sw r16,0x0010(r29)
00075324: 0c011298 jal 0x00044a60 
00075328: 00000000 nop
0007532c: 3c058004 lui r5,0x8004
00075330: 8ca55944 lw r5,0x5944(r5)
00075334: 0c04fd48 jal 0x0013f520
00075338: 00402021 addu r4,r2,r0
0007533c: 0c01e886 jal 0x0007a218				get misc unit data
00075340: 00000000 nop
00075344: 00408021 addu r16,r2,r0				
00075348: 96020008 lhu r2,0x0008(r16)		
0007534c: 00000000 nop
00075350: 2c42001f sltiu r2,r2,0x001f
00075354: 1440001b bne r2,r0,0x000753c4
00075358: 00000000 nop
0007535c: 920201b4 lbu r2,0x01b4(r16)		
00075360: 00000000 nop
00075364: 14400017 bne r2,r0,0x000753c4
00075368: 34020002 ori r2,r0,0x0002
0007536c: 8e030134 lw r3,0x0134(r16)		get unit data
00075370: 3c018004 lui r1,0x8004
00075374: ac225980 sw r2,0x5980(r1)
00075378: 9064018a lbu r4,0x018a(r3)		load unit ID
0007537c: 0c064f94 jal 0x00193e50		AI Ability/Movement Decision
00075380: 26050158 addiu r5,r16,0x0158		r5 = 0x158 in misc. data
00075384: 1440000f bne r2,r0,0x000753c4
00075388: 34110001 ori r17,r0,0x0001
0007538c: 8e020158 lw r2,0x0158(r16)           load AI progression?
00075390: 00000000 nop
00075394: 14510008 bne r2,r17,0x000753b8       branch if not 1
00075398: 34020001 ori r2,r0,0x0001
0007539c: 8e020134 lw r2,0x0134(r16)           load unit data
000753a0: 00000000 nop
000753a4: 9042018a lbu r2,0x018a(r2)           load unit ID
000753a8: 2604015c addiu r4,r16,0x015c         r4 = AI move data
000753ac: 0c05f0ee jal 0x0017c3b8			call attack preparation (ability selected)
000753b0: a202015c sb r2,0x015c(r16)		store Target ID?
000753b4: 34020001 ori r2,r0,0x0001
000753b8: a20201b4 sb r2,0x01b4(r16)		store move has been selected?
000753bc: 3c018004 lui r1,0x8004
000753c0: ac315980 sw r17,0x5980(r1)
000753c4: 96020008 lhu r2,0x0008(r16)		
000753c8: 00000000 nop
000753cc: 24430001 addiu r3,r2,0x0001
000753d0: 2c42001f sltiu r2,r2,0x001f
000753d4: 14400083 bne r2,r0,0x 000755e4
000753d8: a6030008 sh r3,0x0008(r16)		increment 0x08 in misc data
000753dc: 920201b4 lbu r2,0x01b4(r16)		
000753e0: 00000000 nop
000753e4: 1040007f beq r2,r0,0x 000755e4
000753e8: 34020001 ori r2,r0,0x0001
000753ec: 8e030158 lw r3,0x0158(r16)           load move selected byte
000753f0: 00000000 nop
000753f4: 10620020 beq r3,r2,0x 00075478       
000753f8: 28620002 slti r2,r3,0x0002
000753fc: 10400005 beq r2,r0,0x 00075414
00075400: 00000000 nop
00075404: 1060000a beq r3,r0,0x 00075430
00075408: 00000000 nop
0007540c: 0801d579 j 0x 000755e4				jump to end
00075410: 00000000 nop
00075414: 34020002 ori r2,r0,0x0002
00075418: 10620069 beq r3,r2,0x 000755c0
0007541c: 34020019 ori r2,r0,0x0019
00075420: 1062000d beq r3,r2,0x 00075458
00075424: 00000000 nop
00075428: 0801d579 j 0x 000755e4				jump to end
0007542c: 00000000 nop
00075430: 92020130 lbu r2,0x0130(r16)
00075434: 00000000 nop
00075438: 10400007 beq r2,r0,0x 00075458
0007543c: 00000000 nop
00075440: 92040131 lbu r4,0x0131(r16)		load ID?
00075444: 0c01e9b9 jal 0x0007a6e4			find current unit misc data
00075448: 00000000 nop
0007544c: 90420004 lbu r2,0x0004(r2)		load misc ID?
00075450: 0801d518 j 0x 00075460
00075454: 00000000 nop
00075458: 3c028009 lui r2,0x8009
0007545c: 8c426118 lw r2,0x6118(r2)			load misc ID?
00075460: 3c018009 lui r1,0x8009
00075464: ac22611c sw r2,0x611c(r1)			store misc ID
00075468: 0c01c5f3 jal 0x000717cc			Movement being made?
0007546c: 00000000 nop
00075470: 0801d579 j 0x 000755e4				jump to end
00075474: 00000000 nop
00075478: 9202015d lbu r2,0x015d(r16)		load skillset used?
0007547c: 00000000 nop
00075480: 2443ffff addiu r3,r2,0xffff
00075484: 2c620018 sltiu r2,r3,0x0018		set if not special skillset
00075488: 10400033 beq r2,r0,0x 00075558		branch if IS special skillset
0007548c: 00031080 sll r2,r3,0x02
00075490: 3c018006 lui r1,0x8006
00075494: 00220821 addu r1,r1,r2
00075498: 8c2275f0 lw r2,0x75f0(r1)
0007549c: 00000000 nop
000754a0: 00400008 jr r2


						000675f0: 80075558 lb r7,0x5558(r0)		attack
						000675f4: 800754a8 lb r7,0x54a8(r0)		defend
						000675f8: 800754ec lb r7,0x54ec(r0)		equip change
						000675fc: 8007553c lb r7,0x553c(r0)		
						00067600: 80075558 lb r7,0x5558(r0)		basic skill
						00067604: 80075558 lb r7,0x5558(r0)		item
						00067608: 80075558 lb r7,0x5558(r0)		battle skill
						0006760c: 80075558 lb r7,0x5558(r0)
						00067610: 80075558 lb r7,0x5558(r0)
						00067614: 80075558 lb r7,0x5558(r0)
						00067618: 80075558 lb r7,0x5558(r0)
						0006761c: 80075558 lb r7,0x5558(r0)
						00067620: 80075558 lb r7,0x5558(r0)
						00067624: 80075558 lb r7,0x5558(r0)
						00067628: 80075558 lb r7,0x5558(r0)
						0006762c: 80075558 lb r7,0x5558(r0)
						00067630: 80075558 lb r7,0x5558(r0)
						00067634: 80075558 lb r7,0x5558(r0)
						00067638: 80075558 lb r7,0x5558(r0)
						0006763c: 80075558 lb r7,0x5558(r0)
						00067640: 80075558 lb r7,0x5558(r0)
						00067644: 80075558 lb r7,0x5558(r0) 
						00067648: 80075558 lb r7,0x5558(r0)
						0006764c: 8007553c lb r7,0x553c(r0)		mimic

000754a4: 00000000 nop
Defend
000754a8: 8e020134 lw r2,0x0134(r16)
000754ac: 00000000 nop
000754b0: 9044018a lbu r4,0x018a(r2)
000754b4: 0c060f80 jal 0x00183e00				enable Defend status
000754b8: 00000000 nop
000754bc: 9202013c lbu r2,0x013c(r16)			load ??
000754c0: 92040004 lbu r4,0x0004(r16)			load misc ID
000754c4: 34420002 ori r2,r2,0x0002				set 0x02 flag
000754c8: 0c01a38c jal 0x00068e30
000754cc: a202013c sb r2,0x013c(r16)			store new flags
000754d0: 8e020134 lw r2,0x0134(r16)			load unit data
000754d4: 00000000 nop
000754d8: 9044018a lbu r4,0x018a(r2)			load unit ID
000754dc: 0c060eea jal 0x00183ba8				move/act setting
000754e0: 00000000 nop
000754e4: 0801d577 j 0x 000755dc
000754e8: 00000000 nop
Equip Change
000754ec: 9202013c lbu r2,0x013c(r16)
000754f0: 8e040134 lw r4,0x0134(r16)
000754f4: 34420002 ori r2,r2,0x0002
000754f8: 0c060f78 jal 0x00183de0				status enable/disabling
000754fc: a202013c sb r2,0x013c(r16)
00075500: 8e020134 lw r2,0x0134(r16)
00075504: 00000000 nop
00075508: 9044018a lbu r4,0x018a(r2)
0007550c: 0c0667b2 jal 0x00199ec8				usable ability/ENTD calculations
00075510: 00000000 nop
00075514: 92040004 lbu r4,0x0004(r16)
00075518: 0c01a38c jal 0x00068e30			
0007551c: 00000000 nop
00075520: 8e020134 lw r2,0x0134(r16)
00075524: 00000000 nop
00075528: 9044018a lbu r4,0x018a(r2)
0007552c: 0c060eea jal 0x00183ba8				move/act setting
00075530: 00000000 nop
00075534: 0801d577 j 0x 000755dc
00075538: 00000000 nop
Mimic, Blank
0007553c: 8e020134 lw r2,0x0134(r16)
00075540: 00000000 nop
00075544: 9044018a lbu r4,0x018a(r2)
00075548: 0c060eea jal 0x00183ba8				move/act setting
0007554c: 00000000 nop
00075550: 0801d577 j 0x 000755dc
00075554: 00000000 nop
anything but defend/equip change
00075558: 9602015e lhu r2,0x015e(r16)			load used ability
0007555c: 2604015c addiu r4,r16,0x015c
00075560: 0c05ea30 jal 0x0017a8c0				calculate ability range
00075564: a6020138 sh r2,0x0138(r16)			store used ability
00075568: 00401821 addu r3,r2,r0
0007556c: 34020002 ori r2,r0,0x0002
00075570: 1062000f beq r3,r2,0x 000755b0			branch if range = 2
00075574: ae030174 sw r3,0x0174(r16)			store range?
00075578: 28620003 slti r2,r3,0x0003
0007557c: 10400005 beq r2,r0,0x00075594			branch if range > 2
00075580: 00000000 nop
00075584: 0460000a bltz r3,0x000755b0			branch if range = 0xff
00075588: 00000000 nop
0007558c: 0801d568 j 0x000755a0
00075590: 00000000 nop

Range > 2

00075594: 34020003 ori r2,r0,0x0003
00075598: 14620005 bne r3,r2,0x 000755b0			branch if range isn't 3
0007559c: 00000000 nop
000755a0: 0c01cad4 jal 0x00072b50			
000755a4: 00000000 nop
000755a8: 0801d579 j 0x 000755e4
000755ac: 00000000 nop
Range = 2, or (range > 2, but not 3)
000755b0: 0c01d0c2 jal 0x00074308
000755b4: 00000000 nop
000755b8: 0801d579 j 0x 000755e4
000755bc: 00000000 nop
000755c0: 9202013c lbu r2,0x013c(r16)
000755c4: 8e030134 lw r3,0x0134(r16)
000755c8: 34420003 ori r2,r2,0x0003
000755cc: a202013c sb r2,0x013c(r16)			set 0x03 flag
000755d0: 9064018a lbu r4,0x018a(r3)
000755d4: 0c060f1b jal 0x00183c6c				end of turn routine
000755d8: 00000000 nop
000755dc: 0c01c723 jal 0x00071c8c
000755e0: 00000000 nop
000755e4: 8fbf0018 lw r31,0x0018(r29)
000755e8: 8fb10014 lw r17,0x0014(r29)
000755ec: 8fb00010 lw r16,0x0010(r29)
000755f0: 27bd0020 addiu r29,r29,0x0020
000755f4: 03e00008 jr r31
000755f8: 00000000 nop