0017F8B0:93A900B8 lbu t1,$00b8(sp) アビリティコード読み?(t1に入ってる?) 0017F8B4:00000000 nop 0017F8B8:2522FFFB addiu v0,t1,$fffb v0=t1+fffb→v0にアビリティコード−5が入ってる? 0017F8BC:304200FF andi v0,v0,$00ff v0レジスタの下位8ビット以外をすべてクリア 0017F8C0:080618B1 j $001862c4 新規ルーチンへ 0017F8C4:00000000 nop 0017F8C8:00000000 nop 0017F8CC:00000000 nop 0017F8D0:00000000 nop 0017F8D4:00000000 nop 001862C4:01201821 addu v1,t1,zero v1=t1+zero→v1にアビリティコードが入ってる? 001862C8:2465FFB8 addiu a1,v1,$ffb8 a1=v1+ffb8→a1にアビリティコード−72が入ってる? 001862CC:30A500FF andi a1,a1,$00ff a1レジスタの下位8ビット以外をすべてクリア 001862D0:2CA50005 sltiu a1,a1,$0005 a1≧$0005ならa1=0 a1<$0005ならa1=1 001862D4:14A00004 bne a1,zero,$001862e8 a1と0が等しくなければ(聖魔法(4c)以前なら?)※1へ? 001862D8:00000000 nop 001862DC:2C420013 sltiu v0,v0,$0013 v0≧$0013ならv0=0 v0<$0013ならv0=1 つまり基本技〜踊るか判定 001862E0:1040E57D beq v0,zero,$0017f8d8 v0と0が等しければ$0017f8d8へ つまり↑以外なら$0017f8d8へ 001862E4:00000000 nop 001862E8:93A200B8 lbu v0,$00b8(sp)  ※1 アビリティコード読み?(v0に入ってる?) 001862EC:00000000 nop 001862F0:2D230018 sltiu v1,t1,$0018 t1≧$0018ならv1=0 t1<$0018ならv1=1 001862F4:14600013 bne v1,zero,00186344 v1と0が等しくなければ(踊る以前なら)※2へ 001862F8:00000000 nop 001862FC:34030048 ori v1,zero,$0048 v1=$0048 00186300:14430002 bne v0,v1,$0018630c v0(アビリティコード)がv1($0048)と等しくなければ2つ先へ飛ぶ 00186304:34030049 ori v1,zero,$0049 v1=$0049 00186308:3405000C ori a1,zero,$000c a1=$000c アビリティコード48を風水士(ジョブID:0C)のジョブアビリティと認識 0018630C:14430002 bne v0,v1,$00186318 v0(アビリティコード)がv1($0049)と等しくなければ2つ先へ飛ぶ 00186310:3403004A ori v1,zero,$004a v1=$004a 00186314:3405000D ori a1,zero,$000d a1=$000d アビリティコード49を竜騎士(ジョブID:0D)のジョブアビリティと認識 00186318:14430002 bne v0,v1,$00186324 v0(アビリティコード)がv1($004A)と等しくなければ2つ先へ飛ぶ 0018631C:3403004B ori v1,zero,$004b v1=$004b 00186320:3405000E ori a1,zero,$000e a1=$000e アビリティコード4Aを侍(ジョブID:0E)のジョブアビリティと認識 00186324:14430002 bne v0,v1,$00186330 v0(アビリティコード)がv1($004B)と等しくなければ2つ先へ飛ぶ 00186328:3403004C ori v1,zero,$004c v1=$004c 0018632C:3405000F ori a1,zero,$000f a1=$000f アビリティコード4Bを忍者(ジョブID:0F)のジョブアビリティと認識 00186330:14430002 bne v0,v1,$0018633c v0(アビリティコード)がv1($004C)と等しくなければ2つ先へ飛ぶ 00186334:00000000 nop 00186338:34050010 ori a1,zero,$0010 a1=$0010 アビリティコード4Cを算術士(ジョブID:10)のジョブアビリティと認識 0018633C:0805FE42 j $0017f908 00186340:00000000 nop 00186344:0805FE42 j $0017f908  ※2 00186348:2445FFFB addiu a1,v0,$fffb a1=v0+$fffb→a1にアビリティコード−5が入っている? 0018634C:00000000 nop 見習い連動を解決するためには、上記のプログラムに変更した後、さらにBNE2などでSLPS007.70のジョブ特性項目を変更する必要がある。  風水師のジョブアビリティをクレティアンの全魔法(48h)に  竜騎士のジョブアビリティを幻獣(49h)に  侍のジョブアビリティをオルランドゥの全剣技(4Ah)に  忍者のジョブアビリティを破壊魔剣(4Bh)に  算術士のアビリティを聖魔法(4Ch)に これで連動を発生させることなくジョブアビリティを変更することができる。 利用するアビリティを変えたい場合はアドレス1862FCh(オフセット67000h)以降に出てくる48〜4Cの部分を変えればよい。  例えば侍のアビリティにティータのまほう(23h)を使用したい場合は、侍のジョブアビリティにまほうを設定し、  BATTLE.BINアドレス186310h(オフセット67000h)の4Aを23に変更する。 また、例えば侍のジョブアビリティだけ変えたくないという場合はSLPSのジョブアビリティを変更せずそのままにしておけば利用可能。 7スレ目のレス564が「飛ばす処理も飛ばした先の処理も(改変パッチと)同じにしたがだめだ」と言っていたのは ジョブアビリティを変更していなかったから(ジョブアビリティが自動で入れ替わると誤解していたから)だと思われる。 ちなみに、プログラムを読んだ限りだと、利用できるのは19hのガッツから4Chの聖魔法までの模様。 (4Dh以降だと1862E0hで元のプログラムに飛ばされ、17h以前だと1862F4hで変更プログラムをスルーさせられてしまうため) 厳密に言うと18hのものまねも利用可能になっていそうだが、あれ自体が改造しても連動を発生させてしまうアビリティであるためたぶん無意味。 なお、この実証はオープニング戦闘を利用してちょっと試した程度のものであるため、100%正しいとは限らないことを付け加えておく。