Set move/act based on skillset
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) 00075390: 00000000 nop 00075394: 14510008 bne r2,r17,0x000753b8 00075398: 34020001 ori r2,r0,0x0001 0007539c: 8e020134 lw r2,0x0134(r16) 000753a0: 00000000 nop 000753a4: 9042018a lbu r2,0x018a(r2) 000753a8: 2604015c addiu r4,r16,0x015c 000753ac: 0c05f0ee jal 0x0017c3b8 call attack preparation (ability selected) 000753b0: a202015c sb r2,0x015c(r16) store acting unit ID? 000753b4: 34020001 ori r2,r0,0x0001 000753b8: a20201b4 sb r2,0x01b4(r16) store ?? 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) 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 ?? 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 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
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
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,0x 00075594 branch if range > 2 00075580: 00000000 nop 00075584: 0460000a bltz r3,0x 000755b0 branch if range = 0xff 00075588: 00000000 nop 0007558c: 0801d568 j 0x 000755a0 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