ここはマニア向けの項目です。できるだけ効率良くサーチしたい人はどうぞ。

ダイレクトモード

emuhasteのコンフィグファイル構文では、
「どうしてもコンフィグファイルではベースアドレスを検出できない」
ようなシーンに出会うことが多々あると思います。
例えば「キー 0C2DFE27 を探し、見つかったアドレス+4バイトにある値をアドレスとしてロード〜」など、
変則的なアドレス配置には太刀打ちできないわけですね。
そこでemuhasteではコマンドラインから以下の引数を指定して起動することが出来ます。

> emuhaste.exe プロセス名 実開始アドレス 仮想開始アドレス 領域サイズ コメント

つまりコンフィグファイルの PROCESS_NAME・BASE_ADDR・VIRTUAL_ADDR・MEMORY_SIZE・COMMENTを
一発で指定して起動することが可能で、この状態を「ダイレクトモード」と言います。
なので、ベースアドレスを検出する外部プログラムを組んで、emuhasteに引数として渡せば、
事実上「どんなエミュレータでもサーチは可能」ということになります。

カスタムスナップメニュー

通常、[SNAP PROCESS]を実行するとコンフィグファイルで指定されたプロセスを検索しますが、
CTRLを押しながら[SNAP PROCESS]をクリックでCUSTOM SNAP MENUが開きます。

・対象プロセスの変更(Target Process)
上図の"PCSX2 0.9.6.EXE"では、アンオフィシャルビルド版やプログラム名の違うバージョンでは
通常のスナップだと「対象プロセスが見つかりません」と表示してエラーで止まってしまいますが、
カスタムスナップメニューで対象プロセスを手動で変更することが可能です。
ただし、コンフィグファイル作者が「あえてバージョンチェックのために」固定している場合もあるので、
使用するときは注意してください。

・BASE_TRY回数変更
NDSエミュでのポケモンなど一部ゲームではメモリ上に捕捉パターンと同じ内容が
2重にレイアウトされてしまい、うまくSNAPが利かなくなる場合があるため、
ここでBASE_TRY回数を1→2や、または2→1のように変更して対処します。

・同名プロセスのスキップ回数
Jpcspなどのように JAVA.EXE といった複数のアプリから利用される実行プログラムの場合、
いくつも同名プロセスが存在していると捕捉に失敗する可能性があるため、
ここでスキップ回数を1,2,3..と変更していくとうまくいくようになる(かもしれません)。
本来はトラブルを避けるため、同名のプログラムを全て終了してから作業するべきです。

・サーチフラグを初期化しない(Not initialize the Memorymap&Search info)
通常、スナップ時にサーチ情報やメモリレイアウトは全て初期化されてしまいますが、
これをチェックしておくと、それまでの検索結果などを引き継いだままサーチを継続できます。
サーチ&改造コードの動作検証中にエミュレータがクラッシュしてしまった場合も、
再びエミュレータでゲームを読み込んでから引き継ぎスナップをすることでサーチを継続できます。
ただし、サーチフラグ情報だけでなくバッファ内容も保持されたままなので、使い方を誤ると相当危険です。

・サーチ範囲のメモリ属性をWriteに変更(Memory Attribute [Write] hack)
プログラムによっては外部からの改竄を禁止するため、メモリマップの一部を
リードオンリー属性にすることがありますが、このチェックを入れておくと強制的に
書き込めるように属性を変更します。言うまでもなく、使い方を誤ると危険です。