PSAのバイナリ構造について。

ネタが無かったので止まってました。
生存報告も兼ね覚書。


ずいぶん前にですが、Zeusの着キャンコードを新しくすることになったので、
とりあえず試行錯誤していると、ある法則を見つけました。

最初のグループに引数をまとめ、
それを後ろのイベントがあるグループから呼び出す

というものです。

アイテムを弄るときにイベントのアドレスへ飛んでも
その場所に引数がなかったのはこのためです。


※この方法を応用すれば、アイテムやFighter.pacの
イベントを変えることができます。


引数の記述形式は16進数で8+8の16桁です。

0x1は
00000000 00000001
です。

1.0は
00000001 0000EA60
になります。

もう意味が分かった方もいるかもしれませんが、
最初8桁はデータタイプを数値化したものです。

つまり、
0 Value
1 Scalar
2 Pointer
3 Boolean
4 (4)
5 Variable
6 Requirement
になります。

次はデータそのものですが、
2つ目の例のように1.0=1ではありません。

求め方は簡単です。
PSAで入力したいデータを入力してからValueにするだけです。

LA-Float[100]なら
PSAでイベントモディファーを開いてデータタイプをVariableにし、
LA・Float・100と選択します。
そこからデータタイプをValueにすると
「11000064」という数値が出てくるはずです。

それが右8桁の数値になります。

引数が2つ以上ある場合は下に続けて書いていけばよいです。
イベントIDにある引数の数だけ呼び出されるからです。


そして、後ろの方からその引数を呼び出します。

イベントの記述形式も8+8の16桁です。
左8桁にイベントID、右には引数のアドレスを書きます。

アドレスはサブルーチン同様1行(16桁)で8になります。
つまり次の行の引数を使うためには+8すればよいです。

引数が無い場合は00000000でよいです。

最終的には以下のような感じになると思います。

00000001 000493E0
00000000 00000002
00020100 00000000 (この行からイベント)
06050100 00000008

PSAの記述になると
Asynchronous Timer: flames=5
Body Collision: Intangeble
となります。


次は引数が複数ある例です。

00000001 000493E0
00000000 00000003
00000001 000927C0
00020100 00000000 (この行からイベント)
1E000200 00000008

PSAの記述になると
Asynchronous Timer: flames=5
Super/Heavy Armor: 0-3, 1-927C0,
となります。

Mainなどの記述画面で引数名が開発時未設定だったものは、
バイナリの記述に近い表示がされます。


続いて応用です。

00000000 00000003
00000001 000927C0
00020100 00000008 (この行からイベント)
1E000200 00000000

これだと、
Asynchronous Timer: flames=10
Super/Heavy Armor: 0-3, 1-927C0,
になります。

つまり、Asynchronous Timerの引数に
Super/Heavy Armorの引数の一部を流用していることになります。

また、今の例は極端でしたが、同じ引数を使うイベントは
同じアドレスを指定することで引数行を追加しなくて済みます。

こんなところでしょうかね。


因みにFighter.pacはCommon3に入っているので、
RiivolutionでなくGeckoでも変更をすることができると思います。

アイテムも同上です。


質問などありましたらコメントどうぞ。

ではでは


---/// 追記 ///---

common3のFighter.pacを差し替えてみたところ、
きちんと変更箇所が確認されました。やったね。
(下スマアクションで上スマのサブアクションを行う)

これでコードなどを使って変更していた部分もある程度
ファイル側で変更できるようになるのかしら。

コメントの投稿


幻想のコメントにする

どう返信していいのかわからないので、
返信がほしい場合は公開か別のメッセージツールでお願いします

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
管理人について
魔理沙大好き
名前:KAI
 HN:カイにゃん,青黒符とか

やってること
・スマブラ(U/X/64)
・スマブラハック(Zeus/PM/他)
・スプラトゥーン
 WiiU@Project_KAInyan
 Wiimm@2024-6360-7598

・東方
・DTM
・絵
・プログラム/Webデザイン
・モデリング
・Key/Gt/Bs/Dr/その他楽器
詳細


KAIへのコンタクト
Skype:kai.marth
Twitter:@Project_KAINyan

お好きな名前で呼んでくださいね
ブログのヒット数
記事の種類
記事の数=バーの長さ
最新記事
最新コメント
魔理沙があなたに
言いたいことがあるようです。
サイトリンク
ブログリンク