000773f8 - 0007775c

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

xxx DUPLICATED here : ?_0x773f8 xxx

000773f8: 27bdffc0 addiu r29,r29,0xffc0
000773fc: afbf0038 sw r31,0x0038(r29)
00077400: afb30034 sw r19,0x0034(r29)
00077404: afb20030 sw r18,0x0030(r29)
00077408: afb1002c sw r17,0x002c(r29)
0007740c: 0c021ad1 jal 0x00086b44                 00086b44 - 00086dc0
00077410: afb00028 sw r16,0x0028(r29)
00077414: 3c038009 lui r3,0x8009
00077418: 8c6360f0 lw r3,0x60f0(r3)
0007741c: 34020001 ori r2,r0,0x0001
00077420: 1062000d beq r3,r2,0x00077458
00077424: 00000000 nop
00077428: 0c021c67 jal 0x0008719c                 0008719c - 000871f0 
0007742c: 00000000 nop
00077430: 0c023c4c jal 0x0008f130                 0008f130 - 0008f204
00077434: 00000000 nop
00077438: 0c022d10 jal 0x0008b440                 0008b440 - 0008b4b4
0007743c: 00000000 nop
00077440: 0c022db9 jal 0x0008b6e4                 0008b6e4 - 0008b7b0
00077444: 00000000 nop
00077448: 0c022e5a jal 0x0008b968                 0008b968 - 0008b9dc
0007744c: 00000000 nop
00077450: 0c022ee5 jal 0x0008bb94                 0008bb94 - 0008bc08
00077454: 00000000 nop
00077458: 0c021b71 jal 0x00086dc4                 00086dc4 - 00086f28
0007745c: 00000000 nop
00077460: 0c023c82 jal 0x0008f208                 0008f208 - 0008f31c
00077464: 00000000 nop
00077468: 0c01d2da jal 0x00074b68                 00074b68 - 00074ba8
0007746c: 00000000 nop
00077470: 0c01e875 jal 0x0007a1d4                 Get casting unit's misc data
00077474: 00000000 nop
00077478: 00409021 addu r18,r2,r0
0007747c: 96420008 lhu r2,0x0008(r18)
00077480: 3c038004 lui r3,0x8004
00077484: 94635980 lhu r3,0x5980(r3)
00077488: 9244018d lbu r4,0x018d(r18)
0007748c: 00431021 addu r2,r2,r3
00077490: 10800018 beq r4,r0,0x000774f4
00077494: a6420008 sh r2,0x0008(r18)
00077498: 10800016 beq r4,r0,0x000774f4
0007749c: 00008821 addu r17,r0,r0
000774a0: 02511021 addu r2,r18,r17
000774a4: 9044018e lbu r4,0x018e(r2)			load unit ID from target list
000774a8: 0c01e9c9 jal 0x0007a724                  Find Misc Unit Data Pointer (checking for specific unit)?
000774ac: 00000000 nop
000774b0: 00408021 addu r16,r2,r0			pointer to target in r16
000774b4: 1200000a beq r16,r0,0x000774e0		branch if none
000774b8: 26310001 addiu r17,r17,0x0001		target counter ++
000774bc: 0c01b6c4 jal 0x0006db10                  Attack animation handling?
000774c0: 02002021 addu r4,r16,r0			process attack animation handling for target
000774c4: 9202007f lbu r2,0x007f(r16)			load target's offset from tile centre
000774c8: 3c038009 lui r3,0x8009
000774cc: 8c63612c lw r3,0x612c(r3)			
000774d0: 00000000 nop
000774d4: 00431025 or r2,r2,r3
000774d8: 3c018009 lui r1,0x8009
000774dc: ac22612c sw r2,0x612c(r1)			store new?
000774e0: 9242018d lbu r2,0x018d(r18)			load limit for target list
000774e4: 00000000 nop
000774e8: 0222102a slt r2,r17,r2
000774ec: 1440ffed bne r2,r0,0x000774a4		branch if more targets still
000774f0: 02511021 addu r2,r18,r17			
000774f4: 96440138 lhu r4,0x0138(r18)			Used attack
000774f8: 00000000 nop
000774fc: 10800056 beq r4,r0,0x00077658		Branch if attack (0x00)
00077500: 34020200 ori r2,r0,0x0200			
00077504: 10820054 beq r4,r2,0x00077658		Branch if fall damage (0x200)
00077508: 34020094 ori r2,r0,0x0094			
0007750c: 10820052 beq r4,r2,0x00077658		Branch if throw stone
00077510: 00000000 nop
00077514: 0c068605 jal 0x001a1814                  Load Ability Effect
00077518: 00000000 nop
0007751c: 14400007 bne r2,r0,0x0007753c		Branch if failed to load effect
00077520: 00000000 nop
00077524: 96420138 lhu r2,0x0138(r18)			used attack
00077528: 00000000 nop
0007752c: 2442fe6a addiu r2,r2,0xfe6a			-0x196
00077530: 2c420008 sltiu r2,r2,0x0008			set if aim attack
00077534: 10400003 beq r2,r0,0x00077544		branch if not aim attack
00077538: 00000000 nop
0007753c: 0c01c190 jal 0x00070640                  00070640 - 000707c0 - if aim? important?
00077540: 00000000 nop
00077544: 3c028009 lui r2,0x8009
00077548: 8c42612c lw r2,0x612c(r2)
0007754c: 00000000 nop
00077550: 1440007b bne r2,r0,0x00077740		branch if ? != 0
00077554: 00000000 nop
00077558: 924202bc lbu r2,0x02bc(r18)			flag to display numbers for attack
0007755c: 00000000 nop
00077560: 14400077 bne r2,r0,0x00077740		branch if set?
00077564: 00000000 nop
00077568: 964201e2 lhu r2,0x01e2(r18)			load wait time for current unit's animation
0007756c: 00000000 nop
00077570: 10400007 beq r2,r0,0x00077590		branch if 0
00077574: 00000000 nop
00077578: 964201dc lhu r2,0x01dc(r18)			load current unit's animation
0007757c: 00000000 nop
00077580: 00021042 srl r2,r2,0x01
00077584: 2c42003c sltiu r2,r2,0x003c			set if < 0x78 (come OOONNNNNNNNN really? this is a manipulatable byte in a SEQ's data and you just... come on)
00077588: 1040006d beq r2,r0,0x00077740		branch if not an attacking animation (hardcoded)
0007758c: 00000000 nop
00077590: 0c011018 jal 0x00044060                  00044060 - 00044088 <- numerical display?
00077594: 00000000 nop
00077598: 9242018d lbu r2,0x018d(r18)			target list limit
0007759c: 00000000 nop
000775a0: 10400065 beq r2,r0,0x00077738		branch to display battle message if 0
000775a4: 00000000 nop
000775a8: 10400063 beq r2,r0,0x00077738		branch to if 0
000775ac: 00008821 addu r17,r0,r0
000775b0: 02511021 addu r2,r18,r17
000775b4: 9044018e lbu r4,0x018e(r2)			load target ID
000775b8: 0c01e9c9 jal 0x0007a724                  Find Misc Unit Data Pointer (checking for specific unit)?
000775bc: 00000000 nop
000775c0: 00408021 addu r16,r2,r0
000775c4: 1200001d beq r16,r0,0x0007763c
000775c8: 00000000 nop
000775cc: 96420138 lhu r2,0x0138(r18)			load used ability
000775d0: 00000000 nop
000775d4: 2442fe5a addiu r2,r2,0xfe5a			
000775d8: 2c420020 sltiu r2,r2,0x0020			check if reaction
000775dc: 10400014 beq r2,r0,0x00077630		branch if not?
000775e0: 00000000 nop
000775e4: 96440138 lhu r4,0x0138(r18)			load reaction's ability effect
000775e8: 0c068605 jal 0x001a1814                  Load Ability Effect
000775ec: 00000000 nop
000775f0: 10400012 beq r2,r0,0x0007763c		branch if failed
000775f4: 00000000 nop
000775f8: 96420138 lhu r2,0x0138(r18)
000775fc: 00000000 nop
00077600: 00021840 sll r3,r2,0x01
00077604: 00621821 addu r3,r3,r2
00077608: 3c018009 lui r1,0x8009
0007760c: 00230821 addu r1,r1,r3
00077610: 90223e11 lbu r2,0x3e11(r1)			load ability's execution animation
00077614: 00000000 nop
00077618: 10400008 beq r2,r0,0x0007763c		branch if 0
0007761c: 02402021 addu r4,r18,r0
00077620: 0c01dced jal 0x000773b4                  000773b4 - 000773f4
00077624: 02002821 addu r5,r16,r0			parse attacker and target misc. data pointers.
00077628: 0801dd8f j 0x0007763c
0007762c: 00000000 nop

if not reaction?

00077630: 92040004 lbu r4,0x0004(r16)			parse unit misc. ID?
00077634: 0c01a38c jal 0x00068e30                  Reset game if special keycode is pressed
00077638: 00000000 nop
0007763c: 9242018d lbu r2,0x018d(r18)			load target
00077640: 26310001 addiu r17,r17,0x0001
00077644: 0222102a slt r2,r17,r2
00077648: 1440ffda bne r2,r0,0x000775b4		loop
0007764c: 02511021 addu r2,r18,r17
00077650: 0801ddce j 0x00077738
00077654: 00000000 nop

if attack, throw stone, fall damage:

00077658: 0c01c190 jal 0x00070640                  00070640 - 000707c0
0007765c: 00000000 nop
00077660: 0c011298 jal 0x00044a60                  Find Address for Polygons by Depth
00077664: 00000000 nop
00077668: 3c058004 lui r5,0x8004
0007766c: 8ca55944 lw r5,0x5944(r5)
00077670: 0c04fd48 jal 0x0013f520
00077674: 00402021 addu r4,r2,r0
00077678: 3c028009 lui r2,0x8009
0007767c: 8c42612c lw r2,0x612c(r2)
00077680: 00000000 nop
00077684: 1440002e bne r2,r0,0x00077740
00077688: 00000000 nop
0007768c: 924202bc lbu r2,0x02bc(r18)
00077690: 00000000 nop
00077694: 1440002a bne r2,r0,0x00077740
00077698: 00000000 nop
0007769c: 964201e2 lhu r2,0x01e2(r18)
000776a0: 00000000 nop
000776a4: 10400007 beq r2,r0,0x000776c4
000776a8: 00000000 nop
000776ac: 964201dc lhu r2,0x01dc(r18)
000776b0: 00000000 nop
000776b4: 00021042 srl r2,r2,0x01
000776b8: 2c42003c sltiu r2,r2,0x003c
000776bc: 10400020 beq r2,r0,0x00077740
000776c0: 00000000 nop
000776c4: 9242018d lbu r2,0x018d(r18)
000776c8: 00000000 nop
000776cc: 1040001a beq r2,r0,0x00077738
000776d0: 00000000 nop
000776d4: 10400018 beq r2,r0,0x00077738
000776d8: 00008821 addu r17,r0,r0
000776dc: 34130200 ori r19,r0,0x0200
000776e0: 02511021 addu r2,r18,r17

<loop>

000776e4: 9044018e lbu r4,0x018e(r2)
000776e8: 0c01e9c9 jal 0x0007a724
000776ec: 00000000 nop
000776f0: 00408021 addu r16,r2,r0
000776f4: 1200000b beq r16,r0,0x00077724
000776f8: 00000000 nop
000776fc: 96420138 lhu r2,0x0138(r18)
00077700: 00000000 nop
00077704: 14530004 bne r2,r19,0x00077718
00077708: 00000000 nop
0007770c: 92040004 lbu r4,0x0004(r16)
00077710: 0c01a2f5 jal 0x00068bd4
00077714: 00000000 nop
00077718: 92040004 lbu r4,0x0004(r16)
0007771c: 0c01a38c jal 0x00068e30
00077720: 00000000 nop
00077724: 9242018d lbu r2,0x018d(r18)             load target list limit
00077728: 26310001 addiu r17,r17,0x0001
0007772c: 0222102a slt r2,r17,r2
00077730: 1440ffec bne r2,r0,0x000776e4           loop if still not at
00077734: 02511021 addu r2,r18,r17

</loop>

00077738: 0c01ccb2 jal 0x000732c8                 Battle Message Display
0007773c: 00000000 nop
00077740: 8fbf0038 lw r31,0x0038(r29)
00077744: 8fb30034 lw r19,0x0034(r29)
00077748: 8fb20030 lw r18,0x0030(r29)
0007774c: 8fb1002c lw r17,0x002c(r29)
00077750: 8fb00028 lw r16,0x0028(r29)
00077754: 27bd0040 addiu r29,r29,0x0040
00077758: 03e00008 jr r31
0007775c: 00000000 nop