単発技に派生をつける方法

長いです… でもコレが出来るようになると 改造の幅が広がるので
がんばりましょう。

今回も例を出しながら説明いたします。
例題 カズヤの最風からLPで雷神拳に派生
まず最風を出しいつものように36F870へ飛び
最風の技アドレスを調べて 最風の技アドレスへと飛びます
→DAA874
最風の技アドレスへ飛んだらそこから+20~23バイトに記述されている
派生アドレスをメモ
メモ1,09589690
そして派生アドレスへ飛んで見ましょう
→D89690
飛んだ先は以下のような感じになっていると思います
0D89686 -- -- -- -- -- -- -- -- -- -- 00 00 00
0D89693 00 DC 6D 57 09 01 80 00 00 F4 D2 59 09
0D896A0 01 00 FF 00 01 00 01 00 00 80 00 00 64
0D896AD 66 57 09 01 80 00 00 B0 D2 59 09 24 00
0D896BA FF 00 24 00 50 00 -- -- -- -- -- -- --
ここで見てもらいたいのは、最風の派生アドレスの開始地点と終了地点です。
開始地点はこのアドレスへ飛んできた箇所なのですぐわかりますが
終了地点は技によって何バイト先になるのかはコロコロ変わります
見分けるポイントはこの部分

0D896AD 66 57 09 01 80 00 00 B0 D2 59 09 24 00
0D896BA FF 00 24 00 50 00 -- -- -- -- -- -- --

太文字で記入してある箇所です
大まかな目安としてFFと記述されている場所を見つける
次にその手前の数値、24の数値を減少させて最風の硬直が短くなっていれば
その場所から次に50 00と記入されている箇所までが
最風の派生アドレス終了地点ということになります。

0D896A0 01 00 FF 00 01 00 01 00 00 80 00 00 64
この付近にもFFという数値があるが その手前の数値が01なので
硬直フレームが01ってことはまず無いので除外してさらに先を見ていきました。

そして今回メモするのは開始地点のアドレス(メモ1)と
終了地点までのバイト数です
今回の場合48バイト(30h)


これで、最風の終了処理のデータがどこにあり、何バイトあるのかがわかりました。
次は、新たに派生を付けるので 派生のデータを調べる必要があります。
調べる技は 派生がついている技なら何でも良いのですが
今回は例として
魔神連震殴打(4RPRKLP)の2発目の派生データを見ていきましょう

まず、魔神連震殴打2発目まで出して恒例036F870へ飛び
技アドレスを調べ、技アドレスへ飛びましょう。
→DAA57C
技アドレスへ飛んだらそこから+20~23バイトに記述されている
派生アドレスをメモ
メモ2,09589420
そして派生アドレスへ飛んで見ましょう
→D89420
飛んだ先をエディタで見る下記のようになっていると思います。
0D89416 -- -- -- -- -- -- -- -- -- -- 00 00 01
0D89423 20 64 66 57 09 E6 01 00 00 D4 D2 59 09
0D89430 01 00 23 00 1F 00 50 00 00 80 00 00 64
0D8943D 66 57 09 01 80 00 00 B0 D2 59 09 35 00
0D8944A FF 00 35 00 50 00 -- -- -- -- -- -- --

今回は魔神連震殴打2発目の派生データを見ているので
魔神連震殴打3発目をだす派生データが何処にあるのかを見つけます。
見つけるポイントは魔神連震殴打3発目のコマンド(LP)の部分
LPのコマンドは2001なのでエディタ上で 01 20 となっている場所を
探します
0D89416 -- -- -- -- -- -- -- -- -- -- 00 00 01
0D89423 20 64 66 57 09 E6 01 00 00 D4 D2 59 09
この部分ですね。
この部分が派生アドレス詳細の、コマンド2の部分になります。
つまりその直前の00 00 の部分がコマンド1の部分で派生データの最初のデータです
飛んできた場所と同じD89420ですね。
派生データの書式はコマンド1部分、コマンド2部分~と始まり
区切りの0050の部分までの合計24バイト(18h)です
0D89416 -- -- -- -- -- -- -- -- -- -- 00 00 01
0D89423 20 64 66 57 09 E6 01 00 00 D4 D2 59 09
0D89430 01 00 23 00 1F 00 50 00 -- -- -- -- --

ここまでで調べたのは
  • 最風の終了処理データの位置と長さ
D89690から30h
  • 魔神連震殴打2発目の派生データと長さ
D89420から18h


次は空きアドレスを調べます。
まず 空きアドレスって何?って人のために説明しますと
メモリエディターを見て行き データが
00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00
.
.

のように 00で埋め尽くされている場所を探します

今回は例として0x013DD000
このあたりを使っていきましょうか
13DCFFE -- -- 00 00 00 00 00 00 00 00 00 00 00
13DD00B 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD018 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD025 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD032 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD03F 00 00 00 00 00 00 00 00 00 00 00 00 00

この空きアドレスをどのように使うかといいますと
オリジナルの派生アドレス記述スペースとして利用します

ここからはコピーコードを駆使します

0x5aaaaaaa 0xnnnnnnnn
0xbbbbbbbb 0x00000000
アドレスaaaaaaaからbbbbbbbbbにnnnnnnnnバイト分コピーする
CWCheatCodeまとめWikiから引用。

まず魔神連震殴打2発目の派生データ18hを13DD0000へコピーすると
以下のようになります
13DCFFE -- -- 00 00 01 20 64 66 57 09 E6 01 00
13DD00B 00 D4 D2 59 09 01 00 23 00 1F 00 50 00
13DD018 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD025 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD032 00 00 00 00 00 00 00 00 00 00 00 00 00
13DD03F 00 00 00 00 00 00 00 00 00 00 00 00 00
コードにすると
0x50D89420 0x00000018
0x013DD000 0x00000000

次に最風の終了データ30hをこの続き13DD0018にコピーします。
13DCFFE -- -- 00 00 01 20 64 66 57 09 E6 01 00
13DD00B 00 D4 D2 59 09 01 00 23 00 1F 00 50 00
13DD018 00 00 00 00 DC 6D 57 09 01 80 00 00 F4
13DD025 D2 59 09 01 00 FF 00 01 00 01 00 00 80
13DD032 00 00 64 66 57 09 01 80 00 00 B0 D2 59
13DD03F 09 24 00 FF 00 24 00 50 00 00 00 00 00
コードにすると
0x50D89690 0x00000030
0x013DD018 0x00000000

これで13DD000から始まる派生データは
LP入力で魔神連震殴打3発目がでて、終了処理は最風の派生データになりました。
ここまでをひとまずコード化すると。

0xE006000E 0x0036F7EE 1P仕様キャラがカズヤの時
0xE0050100 0x0036F96E ロード中ではない時
0xE0040000 0x013DD042 未コピー状態の時(013DD042にはコピー後数値が入る)
0x50D89420 0x00000018 魔神連震殴打2発目の派生データ18hを
0x013DD000 0x00000000 013DD000へコピーする
0x50D89690 0x00000030 最風終了データ30hを
0x013DD018 0x00000000 013DD018へコピーする

次にLPで派生する技番号 今のままでは魔神連震殴打3発目が出るので
コレを雷神拳の技番号へ変更しましょう
このあたりは次に出る技の変更と同じです。
13DCFFE -- -- 00 00 01 20 64 66 57 09 AC 01 00
13DD00B 00 D4 D2 59 09 01 00 23 00 1F 00 50 00
13DD018 00 00 00 00 DC 6D 57 09 01 80 00 00 F4
13DD025 D2 59 09 01 00 FF 00 01 00 01 00 00 80
13DD032 00 00 64 66 57 09 01 80 00 00 B0 D2 59
13DD03F 09 24 00 FF 00 24 00 50 00 00 00 00 00
→0x113DD008 0x000001AC



これで新派生データが出来たので、あとはリンクさせるだけです
今回の場合、最風からの派生を今作った派生にしたいので
まずは 最風の技アドレスへ飛びます
→DAA874
最風の技アドレスへ飛んだらそこから+20~23バイトに記述されている
派生アドレスを09589690から今作った派生アドレスへ変更しますが
単純に09589690→013DD000ではダメです
ここはアドレス表記なのでそのルールに基づき13DD000へ飛ばすためには
13DD000+8800000の数値を記入しなくてはいけません。
なので入力する数値は
09BDD000です。
0DAA86D -- -- -- -- -- -- -- 81 EA 56 09 8D EA
0DAA87A 56 09 FC A5 6A 09 42 08 08 00 12 05 2C
0DAA887 00 00 D0 BD 09 01 80 00 00 4F 68 00 00
→0x10DAA888 0x0000D000
 0x10DAA88A 0x000009BD

これで最風中LPで雷神拳に派生が完了です
雷神拳の出が遅かったら
13DCFFE -- -- 00 00 01 20 64 66 57 09 AC 01 00
13DD00B 00 D4 D2 59 09 01 00 23 00 1F 00 50 00
13DD018 00 00 00 00 DC 6D 57 09 01 80 00 00 F4
13DD025 D2 59 09 01 00 FF 00 01 00 01 00 00 80
13DD032 00 00 64 66 57 09 01 80 00 00 B0 D2 59
13DD03F 09 24 00 FF 00 24 00 50 00 00 00 00 00
ここの数値を減少させてやることで微調整も可能です。

最終的にコードは
0xE00A000E 0x0036F7EE 1P仕様キャラがカズヤの時
0xE0090100 0x0036F96E ロード中ではない時
0xE0040000 0x013DD042 未コピー状態の時(013DD042にはコピー後数値が入る)
0x50D89420 0x00000018 魔神連震殴打2発目の派生データ18hを
0x013DD000 0x00000000 013DD000へコピーする
0x50D89690 0x00000030 最風終了データ30hを
0x013DD018 0x00000000 013DD018へコピーする
0x113DD008 0x000001AC 派生技を魔神連震殴打3発目から雷神拳へ変更
0x113DD014 0x00000016 雷神拳の派生フレームを微調整
0x10DAA888 0x0000D000 オリジナル派生データを
0x10DAA88A 0x000009BD 最風の派生アドレスに設定

タグ:

+ タグ編集
  • タグ:
最終更新:2008年10月04日 11:44