アクションオーバーライドの作り方

2015.11.03 22:22|スマブラX改造 PSA参考
PSACompressor v0.20 以降で、普通に作れるようになったのでもういらないかもしれないけど一応残しておきます。
この方法はアクションオーバーライドがないキャラにのみ有効です。
また、BrawlBoxでMoveDefのデータを弄っている場合はせっかくアクションオーバーライドを作成してもBrawlBoxで保存後に消されてしまうので注意してください。(BrawlBoxで圧縮しないと容量がどうしても、という場合はこちらの記事を参考にしてみてください。)

必用なものは
Smash Attacks(主が使ったのはPSA2.70)
BrawlBox(v0.67b~0.68b推奨。実際に使って編集するわけではなく確認用に必須。)
バイナリエディタ(主が使ったのはxedit)

まず、BrawlBoxを使ってMisc SectionのOffsetを確認する必要があります。(10進数になっているので使用時は16進数に直してください。)
※ここからの説明で出てくる数値は全て16進数になります。

まず、PSAでオーバーライドしたい数だけサブルーチンを作ってオーバーライド記述内容を書き込んでください。
この時1回1回アクションIDと書き込んだOffsetを確認(メモ1)するのを忘れずに。
全て記述し終えたら最後にアクションの数も確認しておきましょう。

次にもう一つサブルーチンを作り、"0007XX00"というようなイベントを作ります。
XXはオーバーライドを作った数+1。ちなみに上4桁は基本的に何でもいいです。
(+1ではなく+2以上でも可。イベントを切り離して容量を減らすなんてこともできるかも。値を確認するときは注意。)
そして編集。パラメータに順に確認した値を入れていくことになります。
重要なのは、全てのTypeをPointerにしておくこと。
最後のものの値は何でもいいので値を入れておきましょう("00000000"はダメ)。
そして、Paams Offset(パラメータを編集している時に時に表示されるOffset)を確認(メモ2)する。
さらに、Paams Offsetをオーバーライドの数だけ+8してそこからさらに+4した値も確認(メモ3)する。
EntryとExitの2つを作る場合はNoEventをもう一つ作って同じようにやっていくといいでしょう。

完了したら保存し、同じファイルをバイナリエディタで開きます。

確認したMisc SectionのOffsetを検索して見つけたら、そこから+40した値のOffsetを確認。オーバーライドが全くないキャラは"00000000 00000000"が、Entryのオーバーライドだけあるキャラは、そこから+4したOffsetが"00000000"になっているので、メモ2の値に変更します。(+40がEntry、+44がExitのオーバーライド)
さらに変更した値のアドレスを-80した値を確認(メモ4)します。

では続いてメモ1とメモ2の値を使い、アクションオーバーライドを完成させます。
まずメモ2の値を+80したアドレスに飛びます。そしてメモ1のアクションIDを書き込みます。
パラメータを1つ余分に作ったため、書き込み終えても1つ余ると思います。
この余った"00000002 ????????"は"FFFFFFFF 00000000"に変更しましょう。(オーバーライド終点の印)

この後一度保存して終了し、BrawlBoxで作ったはずのOverrideがあるか確認してもいいかもしれません。
できでない場合はどこがおかしいか確認しましょう。
確認できてもこのままでは実機でフリーズするのでOffsetが0になっている値を変更してもフリーズしなくする方法を使います。

この記事を参考にするのもアリですが今回ここまでの説明であえて余分なデータを作ったのでそれを利用しましょう。
メモ3とメモ4の値を使います。
まずはバイナリエディタでメモ3値を検索します。そして削除し、メモ4の値を追加します。
追加時に値が小さい順になっているので注意してください。小さい順になるように値を追加しないと、もしかしたら不具合が発生するかもしれません。

後でアクションを追加したくなった場合は、"0007XX00"の値を修正する必要があります。
この場合はこの処理はいらないので、"0007XX00"の最後のパラメータはValueにしておきましょう。

もし、このアクションオーバーライドに名称を付けるのであればまだやることがあります。(ここでは省略しますが)
名称を付けても付けなくても正常に動くと思われるのであまり気にする必要はないと思います。

これで実機でのフリーズが起きないはずです。もしフリーズが起きるのならどこかミスがあります。(キャラを選んで戦闘開始時にフリーズする場合はOffsetが0になっている値を変更してもフリーズしなくする方法の所でミスをしている可能性大。)
スポンサーサイト



コメント

非公開コメント

プロフィール

ICLPX

Author:ICLPX
主にスマブラXの改造をやっています。
更新ペースはその時によってバラバラです。
質問などがあれば気軽に書き込んでください。
かなり過去に書いた記事も更新することがあります。

最新記事

最新コメント

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

この人とブロともになる

QRコード

QR