Decide what to do based on skillset/ability selections
Jump to navigation
Jump to search
00074f5c: 27bdffe0 addiu r29,r29,0xffe0 00074f60: afbf0018 sw r31,0x0018(r29) 00074f64: afb10014 sw r17,0x0014(r29) 00074f68: 0c04f55e jal 0x0013d578 make some determination, return value 00074f6c: afb00010 sw r16,0x0010(r29) 00074f70: 14400003 bne r2,r0,0x00074f80 00074f74: 00000000 nop 00074f78: 0c01c31e jal 0x00070c78 00074f7c: 00000000 nop 00074f80: 3c028004 lui r2,0x8004 00074f84: 8c42594c lw r2,0x594c(r2) load ?? (input for this frame? 0x0100 is select button?) 00074f88: 00000000 nop 00074f8c: 30420100 andi r2,r2,0x0100 00074f90: 10400003 beq r2,r0,0x00074fa0 branch if select not pressed 00074f94: 00000000 nop 00074f98: 0c01c56a jal 0x000715a8 help message? 00074f9c: 00000000 nop 00074fa0: 0c01d2eb jal 0x00074bac 00074bac - 00074bf4 - Graphic loading master routine? (contains lots of different graphic loading things.) 00074fa4: 00000000 nop 00074fa8: 0c011298 jal 0x00044a60 00074fac: 00000000 nop 00074fb0: 3c058004 lui r5,0x8004 00074fb4: 8ca55944 lw r5,0x5944(r5) 00074fb8: 0c04fd48 jal 0x0013f520 data setting from menu selections 00074fbc: 00402021 addu r4,r2,r0 00074fc0: 0c04fe5e jal 0x0013f978 get 169828 data? 00074fc4: 00000000 nop 00074fc8: 0c01e875 jal 0x0007a1d4 get casting units misc data 00074fcc: 00408021 addu r16,r2,r0 00074fd0: 00408821 addu r17,r2,r0 00074fd4: 8e030000 lw r3,0x0000(r16) load 169828 00074fd8: 3402000e ori r2,r0,0x000e 00074fdc: 106200b0 beq r3,r2,0x000752a0 branch if executing attack (0x0e) 00074fe0: 2862000f slti r2,r3,0x000f 00074fe4: 10400014 beq r2,r0,0x00075038 00074fe8: 34020002 ori r2,r0,0x0002 00074fec: 106200a8 beq r3,r2,0x00075290 00074ff0: 28620003 slti r2,r3,0x0003 00074ff4: 10400007 beq r2,r0,0x00075014 00074ff8: 00000000 nop 00074ffc: 1060001c beq r3,r0,0x00075070 00075000: 34020001 ori r2,r0,0x0001 00075004: 1062002e beq r3,r2,0x000750c0 00075008: 00000000 nop 0007500c: 0801d4be j 0x000752f8 00075010: 00000000 nop 00075014: 3402000c ori r2,r0,0x000c 00075018: 106200a1 beq r3,r2,0x000752a0 0007501c: 2862000d slti r2,r3,0x000d 00075020: 104000a4 beq r2,r0,0x000752b4 00075024: 34020007 ori r2,r0,0x0007 00075028: 106200ab beq r3,r2,0x000752d8 0007502c: 00000000 nop 00075030: 0801d4be j 0x000752f8 00075034: 00000000 nop 00075038: 34020012 ori r2,r0,0x0012 0007503c: 106200ac beq r3,r2,0x000752f0 00075040: 28620013 slti r2,r3,0x0013 00075044: 10400005 beq r2,r0,0x0007505c 00075048: 3402000f ori r2,r0,0x000f 0007504c: 10620099 beq r3,r2,0x000752b4 00075050: 00000000 nop 00075054: 0801d4b2 j 0x000752c8 00075058: 00000000 nop 0007505c: 34020019 ori r2,r0,0x0019 00075060: 1062000d beq r3,r2,0x00075098 00075064: 00000000 nop 00075068: 0801d4be j 0x000752f8 go to end 0007506c: 00000000 nop r17 = misc data 00075070: 92220130 lbu r2,0x0130(r17) load ?? 00075074: 00000000 nop 00075078: 10400007 beq r2,r0,0x00075098 0007507c: 00000000 nop 00075080: 92240131 lbu r4,0x0131(r17) load some unit id? 00075084: 0c01e9b9 jal 0x0007a6e4 00075088: 00000000 nop 0007508c: 90420004 lbu r2,0x0004(r2) load palette? if r2 is unit data 00075090: 0801d428 j 0x000750a0 00075094: 00000000 nop 00075098: 3c028009 lui r2,0x8009 0007509c: 8c426118 lw r2,0x6118(r2) load casting units id 000750a0: 3c018009 lui r1,0x8009 000750a4: ac22611c sw r2,0x611c(r1) casting units misc id 000750a8: 0c01a1e5 jal 0x00068794 clear at list ID 000750ac: 00000000 nop 000750b0: 0c01c5f3 jal 0x000717cc ?? 000750b4: 00000000 nop 000750b8: 0801d4be j 0x000752f8 go to end 000750bc: 00000000 nop 000750c0: 0c01a1e5 jal 0x00068794 clear acting unit ID 000750c4: 00000000 nop 000750c8: 92020005 lbu r2,0x0005(r16) load skillset used 000750cc: 00000000 nop 000750d0: 2443ffff addiu r3,r2,0xffff r3 = skillset id - 1 000750d4: 2c620018 sltiu r2,r3,0x0018 r2 = skillset id < 25 000750d8: 1040003f beq r2,r0,0x000751d8 if id > 25, treat as a "normal" action skillset (goto 751d8) 000750dc: 00031080 sll r2,r3,0x02 r2 = (skillset id - 1) * 4 000750e0: 3c018006 lui r1,0x8006 000750e4: 00220821 addu r1,r1,r2 r1 = lookup address, including skillset id offset 000750e8: 8c227590 lw r2,0x7590(r1) load the data table value at that address 000750ec: 00000000 nop (see reference below, starting at 0x00067590) 000750f0: 00400008 jr r2 jump to the right place, based on skillset id 000750f4: 00000000 nop 00067590: 800751d8 attack 00067594: 800750f8 defend 00067598: 80075150 eq. change 0006759c: 800751c8 blank 000675a0: 800751d8 000675a4: 800751d8 000675a8: 800751d8 000675ac: 800751d8 000675b0: 800751d8 000675b4: 800751d8 000675b8: 800751d8 000675bc: 800751d8 000675c0: 800751d8 000675c4: 800751d8 000675c8: 800751d8 000675cc: 800751d8 000675d0: 800751d8 000675d4: 800751d8 000675d8: 800751d8 000675dc: 800751d8 000675e0: 800751d8 000675e4: 800751d8 000675e8: 800751d8 000675ec: 800751c8 dance 000675f0: 80075558 mimic 000750f8: 8e020000 lw r2,0x0000(r16) 000750fc: 8e030004 lw r3,0x0004(r16) 00075100: 8e040008 lw r4,0x0008(r16) 00075104: 8e05000c lw r5,0x000c(r16) 00075108: ae220158 sw r2,0x0158(r17) store ?? 0007510c: ae23015c sw r3,0x015c(r17) store target ID 00075110: ae240160 sw r4,0x0160(r17) 00075114: ae250164 sw r5,0x0164(r17) 00075118: 8e020010 lw r2,0x0010(r16) 0007511c: 8e030014 lw r3,0x0014(r16) 00075120: ae220168 sw r2,0x0168(r17) 00075124: ae23016c sw r3,0x016c(r17) 00075128: 8e220134 lw r2,0x0134(r17) r2 = unit data 0007512c: 00000000 nop 00075130: 9044018a lbu r4,0x018a(r2) load unit ID 00075134: 0c060f80 jal 0x00183e00 enable/disable acting status 00075138: 00000000 nop 0007513c: 9222013c lbu r2,0x013c(r17) load ?? 00075140: 92240004 lbu r4,0x0004(r17) load unit id? 00075144: 34420002 ori r2,r2,0x0002 00075148: 0801d46b j 0x000751ac 0007514c: a222013c sb r2,0x013c(r17) store 0x02 flag 00075150: 8e020000 lw r2,0x0000(r16) 00075154: 8e030004 lw r3,0x0004(r16) 00075158: 8e040008 lw r4,0x0008(r16) 0007515c: 8e05000c lw r5,0x000c(r16) 00075160: ae220158 sw r2,0x0158(r17) 00075164: ae23015c sw r3,0x015c(r17) 00075168: ae240160 sw r4,0x0160(r17) 0007516c: ae250164 sw r5,0x0164(r17) 00075170: 8e020010 lw r2,0x0010(r16) 00075174: 8e030014 lw r3,0x0014(r16) 00075178: ae220168 sw r2,0x0168(r17) 0007517c: ae23016c sw r3,0x016c(r17) 00075180: 9222013c lbu r2,0x013c(r17) 00075184: 8e240134 lw r4,0x0134(r17) 00075188: 34420002 ori r2,r2,0x0002 0007518c: 0c060f78 jal 0x00183de0 enable/disable acting status 00075190: a222013c sb r2,0x013c(r17) atore 02 flag 00075194: 8e220134 lw r2,0x0134(r17) load unit data 00075198: 00000000 nop 0007519c: 9044018a lbu r4,0x018a(r2) load unit ID 000751a0: 0c0667b2 jal 0x00199ec8 000751a4: 00000000 nop 000751a8: 92240004 lbu r4,0x0004(r17) defend, eq change 000751ac: 0c01a38c jal 0x00068e30 000751b0: 00000000 nop 000751b4: 8e220134 lw r2,0x0134(r17) load unit data 000751b8: 00000000 nop 000751bc: 9044018a lbu r4,0x018a(r2) load unit ID 000751c0: 0c060eea jal 0x00183ba8 set move/act for defend/eq change 000751c4: 00000000 nop 000751c8: 0c01c723 jal 0x00071c8c 000751cc: 00000000 nop 000751d0: 0801d4be j 0x000752f8 jump to end 000751d4: 00000000 nop All but defend, eq change, mimic, dance, blank 000751d8: 8e020000 lw r2,0x0000(r16) 000751dc: 8e030004 lw r3,0x0004(r16) 000751e0: 8e040008 lw r4,0x0008(r16) 000751e4: 8e05000c lw r5,0x000c(r16) 000751e8: ae220158 sw r2,0x0158(r17) Store in misc data 000751ec: ae23015c sw r3,0x015c(r17) 000751f0: ae240160 sw r4,0x0160(r17) 000751f4: ae250164 sw r5,0x0164(r17) 000751f8: 8e020010 lw r2,0x0010(r16) 000751fc: 8e030014 lw r3,0x0014(r16) 00075200: ae220168 sw r2,0x0168(r17) 00075204: ae23016c sw r3,0x016c(r17) 00075208: 2630015c addiu r16,r17,0x015c 0007520c: 8e220134 lw r2,0x0134(r17) load unit data 00075210: 02002021 addu r4,r16,r0 00075214: 9043018a lbu r3,0x018a(r2) load unit ID 00075218: 34020005 ori r2,r0,0x0005 0007521c: a2220166 sb r2,0x0166(r17) store tile-specific ability 00075220: 0c05f0ee jal 0x0017c3b8 call attack preparation 00075224: a223015c sb r3,0x015c(r17) store target ID 00075228: 9622015e lhu r2,0x015e(r17) load ability ID 0007522c: 02002021 addu r4,r16,r0 00075230: 0c05ea30 jal 0x0017a8c0 calculate ability range 00075234: a6220138 sh r2,0x0138(r17) store type of action? 00075238: 00401821 addu r3,r2,r0 0007523c: 34020002 ori r2,r0,0x0002 00075240: 1062000f beq r3,r2,0x00075280 branch if return value = 02 00075244: ae230174 sw r3,0x0174(r17) store ?? 00075248: 28620003 slti r2,r3,0x0003 0007524c: 10400005 beq r2,r0,0x00075264 branch if return value >= 3 00075250: 00000000 nop 00075254: 0460000a bltz r3,0x00075280 branch if return value less than zero 00075258: 00000000 nop 0007525c: 0801d49c j 0x00075270 00075260: 00000000 nop 00075264: 34020003 ori r2,r0,0x0003 00075268: 14620005 bne r3,r2,0x00075280 branch if return value is not 03 0007526c: 00000000 nop 00075270: 0c01cad4 jal 0x00072b50 Go to range targeting 00075274: 00000000 nop 00075278: 0801d4be j 0x000752f8 go to end 0007527c: 00000000 nop 00075280: 0c01d0c2 jal 0x00074308 00075284: 00000000 nop 00075288: 0801d4be j 0x000752f8 0007528c: 00000000 nop 00075290: 0c01c951 jal 0x00072544 00075294: 00000000 nop 00075298: 0801d4be j 0x000752f8 0007529c: 00000000 nop 000752a0: 92020000 lbu r2,0x0000(r16) 000752a4: 0c01d1ee jal 0x000747b8 000752a8: a22201b6 sb r2,0x01b6(r17) 000752ac: 0801d4be j 0x000752f8 000752b0: 00000000 nop 000752b4: 92020000 lbu r2,0x0000(r16) 000752b8: 0c01d272 jal 0x000749c8 000752bc: a22201b6 sb r2,0x01b6(r17) store ??? 000752c0: 0801d4be j 0x000752f8 000752c4: 00000000 nop 000752c8: 0c01c301 jal 0x00070c04 000752cc: 00000000 nop 000752d0: 0801d4be j 0x000752f8 000752d4: 00000000 nop 000752d8: 0c01a1e9 jal 0x000687a4 000752dc: 00000000 nop 000752e0: 0c01c402 jal 0x00071008 000752e4: 00000000 nop 000752e8: 0801d4be j 0x000752f8 000752ec: 00000000 nop 000752f0: 0c01c2df jal 0x00070b7c Store ENTD flags into misc data w/o control flag 000752f4: 02202021 addu r4,r17,r0 000752f8: 8fbf0018 lw r31,0x0018(r29) 000752fc: 8fb10014 lw r17,0x0014(r29) 00075300: 8fb00010 lw r16,0x0010(r29) 00075304: 27bd0020 addiu r29,r29,0x0020 00075308: 03e00008 jr r31 0007530c: 00000000 nop