index > バイナリ編集 > コマンド辞書
 
バイナリ編集 - コマンド辞書
■ ポケモンエメラルドスクリプトまとめ 製作:ひま氏

目次

00 01 02 03 04 05 06 07 09 0F(メッセージ) 16 19 21 25 29

2A 2B 30 31 4F(移動) 50 5A 69 6A 6B 6C A0 B6 B7 DC


------------------------------------------------------------
@@@@@@とかXXXXとかには実際は何かしらの値が入ります
2バイト以上に渡る値は1バイト毎に逆順に入力することに注意
例1:152→ 52 01
例2:21B9E6→ E6 B9 21

[800D]とかいうのは800D番目のメモリ上の領域(変数)を表す

□ 00
  何もせずに次へ

□ 01
  何もせずに次へ

□ 02 (end)

  スクリプトの終点

□ 03 (return)

  コマンド04(call) により呼び出されたスクリプトから
  呼び出し元に戻る

□ 04 @@ @@ @@ 08 (call)

  Offset @@@@@@ にあるスクリプトを呼び出す

□ 05 @@ @@ @@ 08 (goto)

  Offset @@@@@@ にあるスクリプトまで移動する

□ 06 ** @@ @@ @@ 08 (if goto)

  直前にある判定文(コマンド21(compare)等)の結果が条件をみたすとき
  Offset @@@@@@ にあるスクリプトに移動する

  ** は条件判定にかかわる。
  確認はしていないが
  commands.htmlに↓こんな記述がある

   00 - Lower (<<), also FALSE
   01 - Equal (==), also TRUE  確認済
   02 - Bigger (>>)
   03 - Lower or equal (>=)
   04 - Bigger or equal (<=)
   05 - Not equal (!=)

  用例:
    $20C8D3 ダンバルを拾うイベントより

    0F 00 F7 CA 20 08 メッセージ表示
    09 05 はい/いいえ
    21 0D 80 00 00 ↑の結果と 0(いいえ)を比較
    06 01 ED C8 20 08 ↑の結果が "イコール" だったら分岐

□ 07 ** @@ @@ @@ 08 (if call)

  ほとんど06と同じだが、こちらは移動の際 04(call)のような挙動をとる。
  つまり移動先から03(return)で戻ってくる。

□ 09 ** (callstd/boxset)

  メッセージボックスを表示する
  メッセージ内容は直前にコマンド0F(msgbox)で指定する

  **の値に応じて様々な効果が出る
    01 - (特殊)「(アイテム名)を手に入れた!」と表示
    04 - ボタンを押してもメッセージボックスをすぐには閉じない
    05 - はい/いいえの選択肢を選ばせる。
    結果は[800D]に格納される(はい…1 いいえ…0)
     06 - 標準 ふつうにメッセージボックスを表示

□ 0F 00 @@ @@ @@ 08 (msgbox/message)

  メッセージを表示する準備
  Offset @@@@@@ に格納された文章を読み込む
  →コマンド09で表示

  00の部分に何かしらの値が入ることもありそう(見たことないが)

□ 16 XX XX NN NN (setvar)

  メモリ上の領域[XXXX]に数値[NNNN]を代入する

□ 19 XX XX YY YY (copyvar)

  メモリ上の領域[XXXX]に領域[YYYY]に格納された値を代入する

□ 21 XX XX NN NN (compare)

  メモリ上の領域[XXXX]の値と、数値[NNNN]を比較する
  結果がどう保持されるのかよくわからないが
  直後のif文の条件になれる

□ 25 XX XX (special)

  XX XX の値によっていろいろ起こる

   98 00 - ロープウェイに乗る
   9A 00 - 時計合わせ
   9B 00 - 時計を見る
   9C 00 - キモリ、アチャモ、ミズゴロウから一匹選択
   9D 00 - ミツルがラルトスを捕まえる
   9E 00 - ポケモンにニックネームをつける
   9F 00 - 手持ちポケから一匹選択
   A1 00 - きのみブレンダー
   A2 00 - コインが たりません><

   37 01 - コマンドB6 で指定したポケモンと戦闘 カイグラ仕様
   38 01 - コマンドB6 で指定したポケモンと戦闘 レジ系仕様

□ 29 XX XX (setflag)

  フラグ XX XX をONにする(People IDを持つイベントは以降表示されなくなる)

  XX XXは People No を逆順に(93 00の場合、00 93)

□ 2A XX XX (clearflag)

  フラグ XX XX をOFFにする(People IDを持つイベントを表示される)

  XX XXは People No を逆順に(93 00の場合、00 93)

□ 2B XX XX (checkflag)

  フラグチェック。
  フラグ XX XX が立っているなら
  [800D]に1を代入。そうでなければ0を代入する

□ 30 A1 XX XX 02 00 (cry)

  XXXX番のポケモンの泣き声を鳴らす

  A1 変えると鳴らない
  02 00 変えても違いがわからない

□ 31 ** ** (fanfare)

  ファンファーレを鳴らす
  ** **が
  70 01 - ポケセン
  71 01 - ちゃーちゃちゃー ちゃちゃちゃーちゃちゃー ちゃーちゃーー
  72 01 - チャーンチャララチャンチャンチャンチャーン
  73 01 - ちゃーらーらー ちゃちゃちゃちゃちゃちゃちゃー
  74 01 - てってれれーー てってってってー
  etc
  その他 - ててててーん

□ 4F ** @@ @@ @@ 08 (applymovement)

  キャラクターの移動(動作指定)

  PeopleNo が ** のキャラクターを
  Offset @@@@@@ に格納されたデータに従って移動させる

  ** に FF を指定すると、主人公が移動する

  このコマンドで動作を指定しても、直ちに移動が行われるのではなく、
  次にコマンド 50(pause) を実行したときに移動が行われる
  このとき、複数のキャラクターの動作を指定しておけば一斉に移動する

□ 50 00 00 (pause)

  コマンド 4F(applymovement)で指定された動作を実行。
  完了するまでウェイト

□ 5A (faceplayer)

  イベントが主人公の方を向く

□ 69 (lock)
6A (lock)

  主人公の操作をロックする。ほとんどのイベントの始めに必要
  2種類あるが違いは不明

□ 6B (release)
6C (release)

  主人公の操作ロックを解除する
  69 は 6B で
  6A は 6C で解除される

□ A0 (checkgender)

  主人公の性別を調べる。
  [800D]に 1(男)か 0(女)を代入

□ B6 XX XX ** YY YY

  ポケモンとの戦闘の準備
  ポケモンコード XXXX
  Lv **
  所持アイテムYYYY

  次にコマンドB7やコマンド25(の一部のもの)が実行された時、戦闘開始

□ B7

  コマンドB6 で指定したポケモンと戦闘

□ DC **

  **の部分が
  01 - 画面をまっ暗にする
  00 - まっ暗になった画面を元に戻す

  

バイナリ編集 目次
 
ポケモン改造ツール
・バイナリ編集
改造Tips
倉庫
Uploader
・掲示板
リンク


Copyright © 2005-2008 Poketool.com. All Rights Reserved.