【広告】楽天市場から大感謝祭を開催中26日1時59分まで

掲示板

解析話でもやりこみでも、適当にお使いください。

ホームページへ戻る

名前
Eメール
題名
内容
URL
削除キー 項目の保存

[1441] 題名: 名前:管理人 MAIL URL 投稿日:2012年02月08日 (水) 16時45分

>>301>>966
詳細な情報ありがとうございます

うーん‥‥要はF0で呼べるメッセージはアレか
ID200以降のメッセージを呼び出すのに使うのか

しかしこれ‥‥理屈でどうこうなるものじゃないよなあ
少なくとも
■イベントID
■メッセージID
■フラグID
の3つは把握してないとどうにもならない

メッセージIDしかメモってないな‥‥

ん?
結局FFが先頭ってどういう意味なんですかね?
59943hのやつみたいな


[1440] 題名:解釈違いがあったので訂正&追記してます; 名前:966 MAIL URL 投稿日:2012年02月08日 (水) 05時12分

>>301
お世話になってます。
これで更なる改悪が出来そうです(笑

>例: 08 FF 02 FF 01 73 74
>→ フラグ08 が立っていない場合は
分岐する会話の最初の1バイトはそれか…

>メッセージ表示 (F0)の場合は のどのデータをメッセージIDとして利用するかを
>先頭からのバイト数で指定
そうかバイト数か!
調べた結果イベントパラメータの先頭からではなく、
パラメータ末尾に並んでるメッセージIDの位置を指定するようです。

↑私が読み違えてました。
スクリプト末尾のデータをevent_paramsとされているのですから301氏ので間違いないですorz

例:ドワーフの角の前のNPC(#97)
1C FF 01 57 FF 02 1E FF 03 FF 04 CE CF D0 CD
                      ~~~~~~~~~~~~~~ここがevent_paramsですね;
フラグ1Cがオフでイベント01、(コードの中身が F0 00 FF)
フラグ57がオフでイベント02、(F0 01 FF)
フラグ1Eがオフでイベント03、(F0 02 FF)
フラグ1Eがオンでイベント04 (F0 03 FF)
実際にイベント04で表示されるメッセージは#CD

-----------------------
後、前に書いたかどうか忘れてしまいましたので書いておきます。

■1400-14FF(1410-):浮遊大陸側。NPCのID毎のグラフィック番号です。
■1500-15FF(1510-):下の世界側。同上。

以下NPCのグラフィックの対応
■00:たまねぎ剣士
      :
  以下#3Fまで、1C000(1C010)以降に入ってるキャラグラフィックの順番です。
      :
■3F:クリスタルの下半分。

■40:炎
      :
  以下#57迄、14000(14010)以降に入ってるキャラグラフィックの順番です。

これはyyなんかで開いたデータを見ながら設定するのがオススメ。


[1439] 題名:301氏のお陰で纏まった(自分の脳みその中では)! 名前:966 MAIL URL 投稿日:2012年02月08日 (水) 03時57分

BボタンによるNPCへのアイテム使用に関して。

まず使えるアイテムは98-AFの18種。アイテムIDマイナス98を取得して、これをインデックスにする。
あとは以下がイベントスクリプトへのオフセット
58000-5802F(58010-5803F): 浮遊大陸
58030-5805F(58040-5806F): 下の世界

スクリプトは最初の1バイトがアイテム使用の有効なNPCで、
後は$59943-の扱いとほぼ同一と思われます。

■例:浮遊大陸でポーションを使用するケース
 (A6 - 98)*2 = 1C
 5881C(5882C):1CA3
 5A31C(5A32C)がポーション使用時のイベントスクリプト:05 FF 79
 →NPC #05(ポーションクレクレ爺さん)に使用可能で、イベント#79が発生。


■キーアイテムは入手時にフラグが立ちます。
  本来Bボタンで使用する時に付近にこのフラグで会話が分岐するNPCorイベントがある場合等は、
  分岐時のイベントをアイテム使用時のイベントに差し替える事で、会話のみでイベントを進行させる事が出来ます。
  あとは入手時や使用時の所持個数±1の処理をカットすればフラグ処理化が完了します。

■現時点でフラグ化可能な事が解ってるアイテム
  ・ネプトの目(ネプト像前に立った時のイベントが分岐型、ネプト竜が眠った後はこのパネルのイベントは起こらない)
  ・ドワーフの角(角を使用するNPC(見た目透明)が、イベント後入れ替わる)
  ・時の歯車(ハイン撃破後配置されるシドの会話イベントが、飛空挺完成前後の分岐型)
  ・ノアのリュート(オウムの会話が分岐型)

■例:時の歯車の場合
  ・ハイン戦後再配置されるシドのNPC番号:#C0
  ・58390(583A0):5F9C
  ・59C5F(59C6F):04 FF 01 FF 02
   → エンタープライズ完成前はイベント#01、完成後はイベント#02
   → 弄りたいのは完成前なので、01を弄れば良い
  ・時の歯車のアイテムID#9C
  ・58808(58818):A313
  ・5A313(5A323):C0 04 FF B4 (NPC番号と条件となるフラグが 59C5F のスクリプトと同じ)
   → 使用可能NPC#C0、イベントB4
  ・59C5F:04 FF B4 FF 03 としてやればオーケーです。

間違っていた記述なので削除^^;

アイテム入手時、使用時イベントの所持数±1のカットは省略。
E7 XX や F6 XX で検索かければすぐ見つかります。

98-AF以外のアイテムを使用させることもプログラム改変で可能なのは確認済みです。


[1438] 題名: 名前:301 MAIL URL 投稿日:2012年02月07日 (火) 23時41分

山括弧を使った上削除キーを入れ忘れたので #1437 は見なかったことにしてください。

以下内容同じ↓

NPC番号をインデックスとして↓からオフセット取得
58200-583ff: "event_script" オフセット(基点:58000) 浮遊大陸
58400-585ff: "event_script" オフセット(基点:58000) 下の世界

オフセットが指す "event_script" は以下の構造を取る可変データ (* は0個以上、 +は1個以上)
( "test_flag"* 'FF' "event_index" )+ "event_params"*
"test_flag": 1byte. イベント発動条件となるフラグ。メモリ$6040 から1bitごとにあるフラグのindex。ゲーム進行状態と連動。
"event_index": 1byte. 発動するイベントの番号。00 はイベントなしを表す。(詳細は後述)
"event_params": 1byte. 発動するイベント固有のパラメータ
メッセージ表示 (F0)の場合は文字列テーブルのindexに利用。

例: 08 FF 02 FF 01 73 74
→ フラグ08 が立っていない場合はイベント番号02を発動
さもなければイベント番号01を発動。残りの73 74 は付帯するパラメータ。

実際のイベント内容は "event_index" をインデックスとして↓からオフセット取得
58600-587ff: "event_content" オフセット(基点58000)(上下共通)

オフセットが指す "event_content" は以下のようなデータ(ここまでしか解析していない)
"event_command" "event_command_params"*

"event_command": 記事#1435 や #1436 で言及されている命令。
"event_command_params": 命令によって解釈の異なるパラメータ。
(メッセージ表示 (F0)の場合は "event_params" のどのデータをメッセージIDとして利用するかを先頭からのバイト数で指定。

例: F0 00
→ "event_params" の 最初のバイトをメッセージIDとしてメッセージ表示


[1437] 題名:5年前のソースコードから 名前:301 MAIL URL 投稿日:2012年02月07日 (火) 23時36分

ドキュメントしていないイベント関連のネタを書いてみます。情報の確度8割。

NPC番号をインデックスとして↓からオフセット取得
58200-583ff: オフセット(基点:58000) 浮遊大陸
58400-585ff: オフセット(基点:58000) 下の世界

オフセットが指す は以下の構造を取る可変データ (* は0個以上、 +は1個以上)
( * 'FF' )+ *
: 1byte. イベント発動条件となるフラグ。メモリ$6040 から1bitごとにあるフラグのindex。ゲーム進行状態と連動。
: 1byte. 発動するイベントの番号。00 はイベントなしを表す。(詳細は後述)
: 1byte. 発動するイベント固有のパラメータ
メッセージ表示 (F0)の場合は文字列テーブルのindexに利用。

例: 08 FF 02 FF 01 73 74
→ フラグ08 が立っていない場合はイベント番号02を発動
さもなければイベント番号01を発動。残りの73 74 は付帯するパラメータ。

実際のイベント内容は をインデックスとして↓からオフセット取得
58600-587ff: オフセット(基点58000)(上下共通)

オフセットが指す は以下のようなデータ(ここまでしか解析していない)
*

: 記事#1435 や #1436 で言及されている命令。
: 命令によって解釈の異なるパラメータ。
(メッセージ表示 (F0)の場合は のどのデータをメッセージIDとして利用するかを先頭からのバイト数で指定。

例: F0 00
の 最初のバイトをメッセージIDとしてメッセージ表示


[1436] 題名:ダッシュに2P側パッドを押させるゲーム 名前:966 MAIL URL 投稿日:2012年02月07日 (火) 21時12分

58000-581FF(58010-5820F): 
ここはNPCの配置データへのオフセットじゃないかと思ってます。
NPC配置IDはワープパネルのパラメータに有りますし。
上下の世界共通で255種のようで、1/4程は使われてないですね。

>59943(+10h)からイベントの内容が並んでいる?
>FF 終了命令?(FFから開始してるものもあったりしてよくわからない)
おそらく、59943-(59953-)と、5A3F5-(5A405-)で、データの扱いが全く異なるようです。
管理人氏が書いてくれた命令表は恐らく5A3F5-(5A405-)の物でしょうね。

調べたことが断片的すぎてイミフだったり、
プログラムとかド素人なんで他人に解るような言葉で解説する事が難しかったりで悲しい今日この頃。
自分のメモなんて大半は自分にしか理解出来ない謎の言語でかかれてますから…w


以下命令表を管理人氏のヤツに追加で。

X0-X3: NPC#0Xが右左下上に一歩移動。何番のNPCまで対応してるかは不明(00と01は確認済み)
      この命令は連続して書き込む事で、複数のNPCを同時に動かせる。
X4-X7: NPC#0Xが右左下上に向きだけを変える。
X8:    NPC#0Xを出現させる。(座標などはNPC配置データにあるものが初期値だと思われる)
X9:    NPC#0Xを消去。

C0-C3:右左下上にPCが一歩移動
C4-C7: 右左下上にPCが向きだけを変更。(首を左右に振る演出とかで使ったり)
C8:   

E7 XX:  これは#XXのアイテムの所持数-1の様です。(ギサールや魔法の鍵等でも使う)
EF XX: 演出XX番を実行。
      (例:#0Dだと回復の泉や暗闇の雲等の光が集中するエフェクト)
F8 3F: ミュージックスピードアップ?(ラストバトル前)


[1435] 題名: 名前:管理人 MAIL URL 投稿日:2012年02月07日 (火) 17時51分

処理を追ったりとか
そういうことができないので、ほとんど力業での調査です


[1434] 題名: 名前:管理人 MAIL URL 投稿日:2012年02月07日 (火) 17時11分

メモが色々どっかいってしまった‥‥

58000〜58A7F(+10h)がイベントのオフセットアドレス
オフセットアドレスの内訳は
イベント配置指定
不明
イベント内容指定
に分かれている?

58A80(+10h)からイベントの配置指定設定
■配置するイベントID
■配置座標x
■配置座標y
■イベントの初期向き、移動タイプの指定
の4byteで構成

これがほぼ全てのマップ分並んでいる
(一部ないマップ、どこか判別不能なマップあり)

59943(+10h)からイベントの内容が並んでいる?
イベント命令は
C9 キャラクタ表示消去
D1 雷SE+画面フラッシュ
D8 強制タイトル直行(要はリセットボタン)
DA ダンス
DB オープニング表示
DC エンディング(宇宙)
DD エンディング(ラストカット以降)
E2 フラッシュ
E7 xx 指定したアイテムをアイテム欄から消去
E8 xx 状態変化(消去する状態異常を指定)
EA xx yy ギル加算
EE xx NPCを加算(同じを再びID指定で消去)
F0 xx メッセージ表示???
F1 xx メッセージ表示
F2 xx フラグセット
F3 xx フラグクリア
F6 xx アイテム加算
F7 xx 戦闘
F8 xx 曲の変更
F9 フィールドにワープ?
FA 別マップにワープ?
FC xx ウェイト
FD 現在マップからの脱出?
FF 終了命令?(FFから開始してるものもあったりしてよくわからない)

とりあえず今書けるのはこれぐらいか


[1433] 題名: 名前:管理人 MAIL URL 投稿日:2012年02月06日 (月) 17時55分

>>966
私もよくは把握できてません

帰ったら知ってる範囲で書いてみようかな


[1432] 題名: 名前:966 MAIL URL 投稿日:2012年02月03日 (金) 22時53分

>イベントデータの整理
こっちはBボタンでのアイテム使用関係とかをちょこちょこ調査したり、
個々のイベント処理の一部カット位なら出来ますが、
コード一つごとの意味とかまでは全然進めないですね。
どのイベントが何番とかも整理してません。




Number
Pass

ThinkPadを買おう!
レンタカーの回送ドライバー
【広告】楽天市場から大感謝祭を開催中26日1時59分まで
無料で掲示板を作ろう   情報の外部送信について
このページを通報する 管理人へ連絡
SYSTEM BY せっかく掲示板