gocha / Memory Watch Help

私製Memory Watchも徐々にその必要性を失いつつあります。そのうち完全に需要がなくなることを祈りつつ、簡単な説明をMemory Searchからこちらに移動しておきます。

gocha製watchツールの使い方

Snes9x Watch等のgocha製のwatchツールの使い方を簡単に説明します。執筆現在、Snes9x用のツールとVisualBoyAdvance用のツールがあります。非常にテキトーなノリで作られたツールですが、いろいろな方のTASに役立っているようです。

何はともあれ、使ってみるのであればまずはwatchを起動してみましょう(VisualBoyAdvance用のツールは、GBA用とGB系用にファイルが分けられていることに注意)。

設定ファイルの編集方法

watchのウィンドウをアクティブにしてEnterキーを押すと、設定ファイルがテキストエディタで開かれるはずです(関連付け設定に依存)。これを必要に応じて編集し、F5キーでリロードさせることで、設定の追加・変更を反映させられます(設定変更後はリロードを忘れないこと)。

「;」や「//」が先頭に書かれた行はコメントです。「/*」と「*/」の行に囲まれた部分もコメントです。コメントは設定に影響を及ぼしません。説明書きや設定封じに使われます。

エミュレータ検出設定の調整

エミュレータを起動した状態で、画面上部に「[Process 0]」などと表示されるようならOKです。さらに何かゲームが読み込まれているとき、画面下部に「Kirby's Dream Course (CG )」などと、その情報らしきものが表示されていればさらにOKです。この項目を読む必要はありません。

残念ながらエミュレータからうまくデータが読めない場合には、エミュレータを検出するための設定を変更する必要があります。

:target:snes9x+v9.exe:793FA0:0000:000C:0014:B028:B03F:7B3374
:target:SNES9x 1.43 v9+bugfix.exe:798C90:0000:000C:0014:B028:B03F:7B8064
:target:snes9x+v7.exe:790838:0000:000C:0014:B028:B03F:7AFC0C
;:target:snes9x-1.51.exe:6C70E8:0024:002C:0034:B165:B17C:6E7D34
:target:snes9x-1.51.exe:6C70E8:0024:002C:0034:B14E:B17C:6E7D34
;:target:snes9x-1.502.exe:669BE8:0000:000C:0014:B03F:B056:688EBC
:target:snes9x-1.502.exe:669BE8:0000:000C:0014:B028:B056:688EBC
:target:snes9x-1.4.3.exe:85C1A0:0000:000C:0014:B028:B03F:85BB0C
:target:snes9x-1.4.3.wip1.exe:84A5A0:0000:000C:0014:B028:B03F:849F14
:target:Snes9X1.43.ep9r8.exe:80DDD0:0000:000C:0014:B030:B047:5489B4

// default - version 1.51
:target:snes9x*.exe:6C70E8:0024:002C:0034:B14E:B17C:6E7D34

~cnf0.txtと名前のついた設定ファイルには、こんな感じの怪しげな行が並んでいるかと思われます。「このファイル名の実行ファイルはこの設定で処理して」という記述群です。たとえば上の例では「snes9x*.exe」は1.51用の設定になっていますが、使用している「snes9x.exe」が1.43v9であったとしたら、設定とかみ合わずにうまく検出できません。適当にファイル名を調整するなどして、正しく検出されるようにしてください。

元々書かれている一覧の中に自分の使っているバージョンが無い場合、解析して設定行を付け足さなければいけません(数値の意味はマニュアル参照)。これにはプログラムの解析能力が必要となります。ただ、最新のSnes9x betaに関しては、メニューのHelpにある「Copy Settings for S9XWATCH」から設定をコピーすることが出来ます。

監視変数の設定

エミュレータ検出設定が整っていれば、あとは監視変数の設定を書いていけばOKです。以下は設定記述の例です。

※最新のMemory Watch betaを使う場合、アドレスの頭に「$」をつけないといけないので注意。

[Kirby's Dream Course]

7E6ADE,1u,LR Press
----
7ED9B6,2b,Fly Shot
7ED9B4,2s,Shot Dir
7E6B50,1u,Shot L/R
7E6B52,1u,Shot U/D
7E6B3A,1u,Shot Meter

iniファイルのように[]でセクションを区切ります。画面下部に表示されるゲーム名(またはID)を記述することで、対象ゲームを記述します。

ゲーム名の下には「アドレス,種類,変数名」という形の行を連ねます。種類はSnes9x内蔵のwatch互換で、1文字目がサイズ(1~4)、2文字目が型(u=unsigned:符号なし、s=signed:符号あり、h=hexadecimal:16進数、b=bool:真偽値)です。また、3文字目に*をつけるとビッグエンディアンとして処理します(必要になることは稀)。変数名は英数字15文字程度でつけてください。

「----」はセパレータで、空行表示されます。意味のまとまりごとに監視変数を分離したいときに使います。

たくさん書くと変数が表示しきれなくなります。そのような場合、少し別の設定項目を変更する必要があります。

その他の主な設定

設定ファイルの上の方を見ると、いろいろな設定項目があります。主なものをいくつか紹介します。

  • watchmax: 表示変数の最大数。変数が表示しきれなくなったらこの値を上げると、ウィンドウの高さが伸びる。
  • procmax: 表示エミュレータの最大数。並行して異なるエミュレータの値を見たいとき以外は1でよい。
  • graph: グラフ表示の有無。trueにすると棒グラフらしきものが出るが、falseにすると値のみの表示になる。
  • fontsize: フォントサイズ。字の大きさを調整するために使う。単位はおそらくpt。
  • fontfamily: 表示フォント名。表示の都合上、等幅フォントでなければならない。日本語フォント可能。
  • col*系: 画面の色設定。詳しくは付属のテキトーなマニュアルなどで熟知すべし。

その他、詳しくは付属のテキトーなマニュアルをご覧ください。