CT increment routine?

From Final Fantasy Hacktics Wiki
Jump to: navigation, search
jumped to from 18189c
0018370c: 3c028019 lui r2,0x8019
00183710: 8c42f51c lw r2,-0x0ae4(r2)
00183714: 27bdff58 addiu r29,r29,0xff58
00183718: afbe00a0 sw r30,0x00a0(r29)
0018371c: 0000f021 addu r30,r0,r0
00183720: afb60098 sw r22,0x0098(r29)
00183724: 0000b021 addu r22,r0,r0
00183728: afa40060 sw r4,0x0060(r29)
0018372c: 8fa30060 lw r3,0x0060(r29)
00183730: 340400ff ori r4,r0,0x00ff
00183734: afa50068 sw r5,0x0068(r29)
00183738: 3405ffff ori r5,r0,0xffff
0018373c: afbf00a4 sw r31,0x00a4(r29)
00183740: afb7009c sw r23,0x009c(r29)
00183744: afb50094 sw r21,0x0094(r29)
00183748: afb40090 sw r20,0x0090(r29)
0018374c: afb3008c sw r19,0x008c(r29)
00183750: afb20088 sw r18,0x0088(r29)
00183754: afb10084 sw r17,0x0084(r29)
00183758: afb00080 sw r16,0x0080(r29)
0018375c: 38420009 xori r2,r2,0x0009
00183760: 2c420001 sltiu r2,r2,0x0001
00183764: afa20070 sw r2,0x0070(r29)
00183768: a0640000 sb r4,0x0000(r3)
0018376c: a0640001 sb r4,0x0001(r3)
00183770: a4650002 sh r5,0x0002(r3)
00183774: 26d60001 addiu r22,r22,0x0001
00183778: 2ac20028 slti r2,r22,0x0028
0018377c: 1440fffa bne r2,r0,0x00183768		loop runs 28 times
00183780: 24630004 addiu r3,r3,0x0004
00183784: 8fa90068 lw r9,0x0068(r29)
00183788: 34020002 ori r2,r0,0x0002
0018378c: 1122000a beq r9,r2,0x001837b8
00183790: 0000b021 addu r22,r0,r 0
00183794: 0c060445 jal 0x00181114		check whose turn it is load unit  data pointer
00183798: 00000000 nop
0018379c: 00408821 addu r17,r2,r0
001837a0: 12200005 beq r17,r0,0x001837b8	check if unit exists
001837a4: 00002821 addu r5,r0,r0
001837a8: 9224018a lbu r4,0x018a(r17)		load unit ID
001837ac: 8fa70060 lw r7,0x0060(r29)
001837b0: 0c060eb3 jal 0x00183acc		manipulates Unit ID depending on last skillset/attack used
001837b4: 00003021 addu r6,r0,r0
001837b8: afa00078 sw r0,0x0078(r29)		
001837bc: 8fa90078 lw r9,0x0078(r29)		clear r9
001837c0: 3c028019 lui r2,0x8019
001837c4: 244208cc addiu r2,r2,0x08cc		r2 = unit data pointer
001837c8: 01228821 addu r17,r9,r2		
001837cc: 0c060d6a jal 0x001835a8
001837d0: 02202021 addu r4,r17,r0		r4 = 1908c c
001837d4: 144000a8 bne r2,r0,0x00183a78		unit targetability tests?, r2=0 if  targetable
001837d8: 00000000 nop
001837dc: 9222005b lbu r2,0x005b(r17)		load status 4
001837e0: 00000000 nop
001837e4: 30420002 andi r2,r2,0x0002		
001837e8: 10400002 beq r2,r0,0x001837f4		jump if unit is not stopped
001837ec: 0000a821 addu r21,r0,r0
001837f0: 92350063 lbu r21,0x0063(r17)		r21 = stop CT
001837f4: 9222005c lbu r2,0x005c(r17)		load status 5
001837f8: 00000000 nop
001837fc: 30420010 andi r2,r2,0x0010		
00183800: 10400007 beq r2,r0,0x00183820		jump if unit is not sleep
00183804: 00000000 nop
00183808: 92230068 lbu r3,0x0068(r17)		r3 = sleep CT
0018380c: 00000000 nop
00183810: 02a3102b sltu r2,r21,r3		r2 = 1 if stop CT < sleep CT
00183814: 10400002 beq r2,r0,0x00183820		
00183818: 00000000 nop
0018381c: 0060a821 addu r21,r3,r0		r21 = sleep CT
00183820: 9223015d lbu r3,0x015d(r17)		load current ability CT
00183824: 340200ff ori r2,r0,0x00ff		r2 = ff
00183828: 306400ff andi r4,r3,0x00ff		
0018382c: 1082002f beq r4,r2,0x001838ec		jump if current ability CT != ff? (no ability  charging when this routine ran, r4 = ff)
00183830: 34020001 ori r2,r0,0x0001		r2=01
00183834: 8fa90068 lw r9,0x0068(r29)
00183838: 00000000 nop
0018383c: 1122002c beq r9,r2,0x001838f0
00183840: 00000000 nop
00183844: 14800007 bne r4,r0,0x00183864
00183848: 02a39021 addu r18,r21,r3
0018384c: 92220186 lbu r2,0x0186(r17)		load characters turn byte into r2
00183850: 00000000 nop
00183854: 10400003 beq r2,r0,0x00183864		jump if not characters turn
00183858: 34020003 ori r2,r0,0x0003		r2 = 03
0018385c: 11220005 beq r9,r2,0x00183874		
00183860: 02c02021 addu r4,r22,r0
00183864: 8fa90070 lw r9,0x0070(r29)
00183868: 00000000 nop
0018386c: 02499021 addu r18,r18,r9
00183870: 02c02021 addu r4,r22,r0
00183874: 34050001 ori r5,r0,0x0001		r5= 1
00183878: 00123200 sll r6,r18,0x08
0018387c: 8fa70060 lw r7,0x0060(r29)
00183880: 0c060eb3 jal 0x00183acc		
00183884: 30c6ff00 andi r6,r6,0xff00
00183888: 92230058 lbu r3,0x0058(r17)		load status 1
0018388c: 00000000 nop
00183890: 30630001 andi r3,r3,0x0001
00183894: 10600015 beq r3,r0,0x001838ec		branch if unit not performing
00183898: 03c2f021 addu r30,r30,r2
0018389c: 0c0179de jal 0x0005e778		?
001838a0: 02202021 addu r4,r17,r0
001838a4: 0000a021 addu r20,r0,r 0
001838a8: 9222018b lbu r2,0x018b(r17)		Unit ID (without "Unit Exists"  check)
001838ac: 00000000 nop
001838b0: 00529021 addu r18,r2,r18
001838b4: 3246ffff andi r6,r18,0xffff
001838b8: 2cc20100 sltiu r2,r6,0x0100
001838bc: 1040000b beq r2,r0,0x001838ec
001838c0: 02c02021 addu r4,r22,r0
001838c4: 00063200 sll r6,r6,0x08
001838c8: 34050001 ori r5,r0,0x0001
001838cc: 8fa70060 lw r7,0x0060(r29)
001838d0: 0c060eb3 jal 0x00183acc
001838d4: 30c6ff00 andi r6,r6,0xff00
001838d8: 03c2f021 addu r30,r30,r2
001838dc: 26940001 addiu r20,r20,0x0001
001838e0: 2a820027 slti r2,r20,0x0027		27 time loop, same as another  routine?
001838e4: 1440fff0 bne r2,r0,0x001838a8
001838e8: 00000000 nop
001838ec: 8fa90068 lw r9,0x0068(r29)
001838f0: 34020002 ori r2,r0,0x0002
001838f4: 11220060 beq r9,r2,0x00183a78
001838f8: 00000000 nop
001838fc: 00009821 addu r19,r0,r0
00183900: 9223005b lbu r3,0x005b(r17)		
00183904: 92240051 lbu r4,0x0051(r17)
00183908: 30620004 andi r2,r3,0x0004
0018390c: 1040000a beq r2,r0,0x00183938		branch if unit not slow
00183910: 00008021 addu r16,r0,r0
00183914: 92330062 lbu r19,0x0062(r17)		r19 = slow CT
00183918: 30820004 andi r2,r4,0x0004
0018391c: 10400003 beq r2,r0,0x0018392c		branch if unit not innate: slow?
00183920: 02759823 subu r19,r19,r21		r19 = slow CT - sleep CT?
00183924: 34130200 ori r19,r0,0x0200		r19 = 200
00183928: 02759823 subu r19,r19,r21		
0018392c: 06610003 bgez r19,0x0018393c
00183930: 30620008 andi r2,r3,0x0008
00183934: 00009821 addu r19,r0,r0
00183938: 30620008 andi r2,r3,0x0008
0018393c: 10400009 beq r2,r0,0x00183964
00183940: 30820008 andi r2,r4,0x0008
00183944: 92300061 lbu r16,0x0061(r17)		load haste CT
00183948: 10400003 beq r2,r0,0x00183958
0018394c: 02158023 subu r16,r16,r21
00183950: 34100200 ori r16,r0,0x0200
00183954: 02158023 subu r16,r16,r21
00183958: 06010002 bgez r16,0x00183964
0018395c: 00000000 nop
00183960: 00008021 addu r16,r0,r0
00183964: 92370038 lbu r23,0x0038(r17)		load Speed	
00183968: 00000000 nop
0018396c: 16e00002 bne r23,r0,0x00183978
00183970: 02a09021 addu r18,r21,r0
00183974: 34170001 ori r23,r0,0x0001
00183978: 92310039 lbu r17,0x0039(r17)		load CT	
0018397c: 08060e7a j 0x001839e8
00183980: 0000a021 addu r20,r0,r0
00183984: 1260000a beq r19,r0,0x001839b0
00183988: 02e01821 addu r3,r23,r0
0018398c: 306200ff andi r2,r3,0x00ff
00183990: 00021842 srl r3,r2,0x01
00183994: 14600002 bne r3,r0,0x001839a0
00183998: 2673ffff addiu r19,r19,0xffff
0018399c: 34030001 ori r3,r0,0x0001
001839a0: 1200000b beq r16,r0,0x001839d0
001839a4: 306200ff andi r2,r3,0x00ff
001839a8: 08060e74 j 0x001839d0
001839ac: 2610ffff addiu r16,r16,0xffff
001839b0: 12000007 beq r16,r0,0x001839d0
001839b4: 306200ff andi r2,r3,0x00ff
001839b8: 2610ffff addiu r16,r16,0xffff
001839bc: 306300ff andi r3,r3,0x00ff
001839c0: 00031040 sll r2,r3,0x01
001839c4: 00431021 addu r2,r2,r3
001839c8: 00021842 srl r3,r2,0x01
001839cc: 306200ff andi r2,r3,0x00ff
001839d0: 02221021 addu r2,r17,r2
001839d4: 00408821 addu r17,r2,r0
001839d8: 3242ffff andi r2,r18,0xffff
001839dc: 2c4201f5 sltiu r2,r2,0x01f5
001839e0: 10400007 beq r2,r0,0x00183a00
001839e4: 3246ffff andi r6,r18,0xffff
001839e8: 3222ffff andi r2,r17,0xffff
001839ec: 2c420064 sltiu r2,r2,0x0064
001839f0: 1440ffe4 bne r2,r0,0x00183984
001839f4: 26520001 addiu r18,r18,0x0001
001839f8: 2652ffff addiu r18,r18,0xffff
001839fc: 3246ffff andi r6,r18,0xffff
00183a00: 2cc20100 sltiu r2,r6,0x0100
00183a04: 1040001c beq r2,r0,0x00183a78
00183a08: 3c0251eb lui r2,0x51eb
00183a0c: 3442851f ori r2,r2,0x851f
00183a10: 3228ffff andi r8,r17,0xffff
00183a14: 01020019 multu r8,r2
00183a18: 02c02021 addu r4,r22,r0
00183a1c: 00002821 addu r5,r0,r0
00183a20: 8fa70060 lw r7,0x0060(r29)
00183a24: 00063200 sll r6,r6,0x08
00183a28: 24c60064 addiu r6,r6,0x0064
00183a2c: 00001810 mfhi r3
00183a30: 00031942 srl r3,r3,0x05
00183a34: 00031040 sll r2,r3,0x01
00183a38: 00431021 addu r2,r2,r3
00183a3c: 000210c0 sll r2,r2,0x03
00183a40: 00431021 addu r2,r2,r3
00183a44: 00021080 sll r2,r2,0x02
00183a48: 01024023 subu r8,r8,r2
00183a4c: 01008821 addu r17,r8,r0
00183a50: 00c83023 subu r6,r6,r8
00183a54: 0c060eb3 jal 0x00183acc		unit ID routine
00183a58: 30c6ffff andi r6,r6,0xffff
00183a5c: 10400006 beq r2,r0,0x00183a78
00183a60: 00000000 nop
00183a64: 03c2f021 addu r30,r30,r2
00183a68: 26940001 addiu r20,r20,0x0001
00183a6c: 2a820028 slti r2,r20,0x0028
00183a70: 1440ffde bne r2,r0,0x001839ec
00183a74: 3222ffff andi r2,r17,0xffff
00183a78: 26d60001 addiu r22,r22,0x0001
00183a7c: 8fa90078 lw r9,0x0078(r29)
00183a80: 2ac20015 slti r2,r22,0x0015
00183a84: 252901c0 addiu r9,r9,0x01c0
00183a88: 1440ff4c bne r2,r0,0x001837bc
00183a8c: afa90078 sw r9,0x0078(r29)
00183a90: 2fc20001 sltiu r2,r30,0x0001
00183a94: 00021023 subu r2,r0,r2
00183a98: 8fbf00a4 lw r31,0x00a4(r29)
00183a9c: 8fbe00a0 lw r30,0x00a0(r29)
00183aa0: 8fb7009c lw r23,0x009c(r29)
00183aa4: 8fb60098 lw r22,0x0098(r29)
00183aa8: 8fb50094 lw r21,0x0094(r29)
00183aac: 8fb40090 lw r20,0x0090(r29)
00183ab0: 8fb3008c lw r19,0x008c(r29)
00183ab4: 8fb20088 lw r18,0x0088(r29)
00183ab8: 8fb10084 lw r17,0x0084(r29)
00183abc: 8fb00080 lw r16,0x0080(r29)
00183ac0: 27bd00a8 addiu r29,r29,0x00a8
00183ac4: 03e00008 jr r31