0x801929D0 Agrias *require sword 0x80063001 Platinum Sword *item type 0x80060470 Stasis Sword *Require Sword 00001000 (0x08) AI ROUTINE (catch r18, return r2) 0x8019A90C --main jal 0x80?????? nop --start lbu r2,0x0184(r21) nop --end j 0x0019A930 andi r2,r2,0x0008 MENU ROUTINE (catch r2 div 0x0E, return r2) 0x801819F4 --main j 0x80?????? nop --start lbu r3,0x0184(r16) nop --end or r3, r2, r0 andi r2,r3,0x0004 j 0x801818B0 nop --- Boolean 1 : Requires Sword Boolean 2 : Requires Materia Blade Boolean 3-6: Blank 5-2 r1 = start r2 = return r3-r4 = double 1 r5-r6 = double 2 r7-r8 = double 3 r9-r10 = double 4 AA AA AA AA BB BB BB BB CC CC CC CC DD DD DD DD DD EE EE EE EE EE FF GG HH HH (x63) A = Unit must wear at least one of those item type B = Unit must wear all of those item types C = Unit must NOT wear this item type D = Unit must wear those item ID E = Unit must be afflicted by those statuses F = Unit must be this job G = Unit must have this secondary skillset H = Unit must have this R/S/M equipped or innate ==================== mthi r31 jal 0x801542B0 ==================== mtlo r1 lui r1, 0x8015 addiu r1, r1, 0x3B8C sw r3, 0x0008(r1) sw r4, 0x000C(r1) sw r5, 0x0010(r1) sw r6, 0x0014(r1) sw r7, 0x0018(r1) sw r8, 0x001C(r1) sw r9, 0x0020(r1) sw r10, 0x0024(r1) sw r11, 0x0028(r1) sw r12, 0x002C(r1) sw r13, 0x0030(r1) sw r14, 0x0034(r1) sw r15, 0x0038(r1) sw r16, 0x003C(r1) mflo r3 sw r3, 0x0040(r1) mfhi r3 sw r3, 0x0044(r1) -------------------- ori r5, r0, 0x000E lui r4, 0x8018 addiu r4, r4, 0x18A4 beq r3, r4, 0x???? //GOTO A mult r18, r5 mflo r2 lui r3, 0x8006 //A addiu r3, r3, 0xEBF0 //abilities tab 1 addiu r4, r3, 0x1000 //abilities tab 2 lb r3, 0x0007(r3) lb r4, 0x0006(r4) andi r3, r3, 0x001E andi r4, r4, 0x000C sll r3, r3, 0x02 srl r4, r4, 0x01 addu r2, r4, r3 ori r5, r0 0x001C mult r2, r5 //new table row mflo r2 lui r3, 0x8015 addiu r3, r3, 0x3BB8 add r2, r3, r2 //r2= custom table address lui r3, 0x8009 lbu r3, 0x6118(r3) ori r4, r0, 0x0620 mult r3, r4 mflo r4 lui r3, 0x8019 addiu r3, r3, 0x062C addu r3, r3, r4 //r3= current unit's stat table address addiu r4, r3, 0x001A //item ID (head) lui r8, 0x8006 addiu r8, r8, 0x2F24 ori r9, 0x000C mult r4, r9 mflo r9 addiu r9, r8, r9 lbu r9, 0x0005(r9) ori r10, 0x0008 div r9, r10 mfhi r9 //byte num mflo r10 //bit num ori r11, r0, 0x0007 subu r10, r11, r10 //inverse boolean order addu r9, r1, r9 //set edit byte lbu r11, 0x0000(r9) or r11, r11, r10 //stack sb r11 0x0000(r9) //store item type byte r1 = base new sector address r2 = custom table address r3 = current unit's stat table address r4 = item counter address r5 = item type counter address r6 = item counter r7 = item type counter r8 = r9 = r16 = equipement types mthi -------------------- load all words back into registers (r1) mflo r1 ==================== $itemaddr = $olditemaddr $nitemaddr = $oldnitemaddr $nitems = 0 while $nitems<5 load $nitemb; $items = 0; $nitems++; $nitemb++; while $items<7 load $itemb; if $itemb = 0 break; if $itemb = $nitemb doublebreak; $items++; $itemb++; if $items = 5 GOTO END; 0x8005C660 5C910 ori r, r0, 0x0000 nop nop nop 00000234 00000000 00000000 00000000 0x80153f57 154207 0000000000 0000000000 0000000000 0000000000 0000000000 00 00 0000 AI ROUTINE 0x8019A90C 19ABBC j 0x801542F4 nop nop 8E500508 00000000 00000000 Split punch 0x153F57 Stasis Sword 0x153F74 MENU ROUTINE 0x801819F4 181CA4 j 0x80154304 nop 92500508 00000000 0x801542F4 1545A4