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*系: 画面の色設定。詳しくは付属のテキトーなマニュアルなどで熟知すべし。
その他、詳しくは付属のテキトーなマニュアルをご覧ください。

