単発技に派生をつける方法
長いです… でもコレが出来るようになると 改造の幅が広がるので
がんばりましょう。
今回も例を出しながら説明いたします。
例題 カズヤの最風から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
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