ワザポン サーチツール

DSハッカー

<注意>
ページの内容あるいは使用方法に関して「(株)ゲームテック」に問い合わせることは絶対にしないでください。

<ゲーム改造ツールとは?>

ゲーム改造ツール(ワザポンなど)はゲームプレイヤーのキャラクタを無敵にしたり、通常は取得できないようなアイテムを簡単に取得したり、楽をしてゲームのエンディングにたどり着いたりするための、ゲームをより楽しむための便利な道具です。

<改造コードとは?>

ゲーム改造ツール(ワザポンなど)は改造コードと呼ばれる16進数のデータを使用して、特別な効果を得られるようにしています。改造コードはマスターコードと呼ばれるゲーム全体で共通して使用されるコードと、ワザコードと呼ばれる特定の効果を得るためのコードに分類されます。改造コードはゲームのタイトル、バージョン毎に必要になります。

<サーチツールとは?>

サーチツールはゲーム動作中のゲームのワークエリア(変数領域)の内容を取得して、ゲームの進行状況でどのように変化するかを調べるツールです。特定のワークエリアのアドレスと書き込まれる内容を調べることで、改造コードを作成することが出来ます。


<必要なもの>

カメレオンUSB、DS−RAMアダプタはこちらのページから購入できます

<使い方>
DS本体とカメロンUSB+DS-RAMアダプタを接続します。
更にカメレオンUSBとPCをUSBケーブルで接続します。

サーチを行うゲームのマスターコードに、サーチツール用のプログラムを常駐させるコード「00000002 00000000」を追加します。
(注意:サーチを行うゲームのマスターコードが必要です。ワザポン用のマスターコードは、雑誌やワザポンのユーザ登録を行うと無料でメール配信される「ワザポンウラワザ通信」などを参照してください。マスターコードのサーチツールの公開は現在検討中です。)


ワザポンの最初のメニュー画面からゲームを起動します。

ゲームが開始されたら、Windowsのコマンドプロンプト(DOS窓)からサーチツール(wzpmon.exe)を起動します。

(サーチツールで2000000番地のメモリーをダンプ(表示)したところ)

あとはサーチツールのコマンドを使用してコードをサーチします。

ゲームがハングしたりすると、USBの通信キューにごみがたまり、正常に通信できなくなる場合があります。
そのような場合はUSBケーブルを抜き差ししてから、再度wzpmonを実行してみてください。

サーチツールの終了方法は、ESCキーを押してから「Ctrl + C」で終了してください。


<サーチツールのコマンド>

サーチ系

SCL addr1 addr1 サーチクリア(Clear)addr1からaddr2をサーチ対象エリアに設定して、今までのサーチ結果を破棄します。
通常この後に数値サーチを行います。addr1 addr2を省略するとメモリ全体(02000000-023fffff)を範囲とします。
サーチ範囲はサーチが絞りこまれることで自動的に狭まります。(サーチ範囲が広いとメモリ読み出しに時間がかかる)
SCG addr1 addr1 サーチクリアとメモリゲット(Clear & Get)addr1からaddr2をサーチ対象エリアに設定して、今までのサーチ結果を破棄します。同時にメモリー内容の取得も行います。
通常この後に増減・不動サーチなどを行います。addr1 addr2を省略するとメモリ全体(02000000-023fffff)を範囲とします。
サーチ範囲はサーチが絞りこまれることで自動的に狭まります。(サーチ範囲が広いとメモリ読み出しに時間がかかる)
SL ヒットリスト表示。サーチ結果の全表示を行います。
(サーチコマンドでヒットが10件以下の場合は自動で表示します)
SVD n 10進数値nをサーチします。(Value Decimal)
SVH n 16進数値nをサーチします。(Valu Hex)
SUP 増加したものをサーチします。(UP)
SDW 減少したものをサーチします。(Down)
SUC 不動のものをサーチします。(Un Changed)
SCH 変化したものをサーチします。(Change)
SM1 サーチ対象をバイト
SM2 サーチ対象をハーフワード(2byte)
SM4 サーチ対象をワード(4byte)
SMS サーチ対象を符号付で
SMU サーチ対象を符号無しで

メモリダンプコマンド

D addr len SMnコマンドで設定しているサーチ対象のバイト長でaddrからlenバイトダンプします。
lenは省略すると100hバイトです。
DB addr len バイトダンプ
DH addr len ハーフワード
DW addr len ワードダンプ

メモリエディトコマンド

E addr val1 val2 val3 ... SMnコマンドで設定しているサーチ対象のバイト長でaddrからval1,...を書き込みます。
EB addr val1 val2 val3 ... バイトエディット
EH addr val1 val2 val3 ... ハーフワードエディット
EW addr val1 val2 val3 ... ワードエディト

wzpmon.exeのコマンドはこれで全てです。
これでは不十分、あるいはGUIでサーチをしたいという人もいると思います。
そんな方にはwzpmonソースコード(Visual C++ 4.0用)を公開しますので、
独自の機能を追加してより使いやすいものにしてください。


<ワザポンのコード体系>

マスターコードセクション

1行目 xxxxxxxx yyyyyyyy ゲームをフックするアドレスxxxxxxxxはロード時のアドレス、yyyyyyyyは展開時のアドレスになります。
dipstarなどで使用できるマスターコードアドレスはxxxxxxxxとyyyyyyyyを同じにします。
2行目以降 00000000 yyyyyyyy コードの常駐アドレスをyyyyyyyyに変更します。(デフォルトは23fe000)
2行目以降 00000001 yyyyyyyy コードが有効になるまでの呼び出し回数の指定。(デフォルトは00000200)
2行目以降 00000002 00000000 サーチツール用のプログラムを常駐させる
2行目以降 00000003 yyyyyyyy ARM7の開始アドレスをyyyyyyyyに変更
2行目以降 00000004 yyyyyyyy ARM9の開始アドレスをyyyyyyyyに変更

マスターコードには以下のコードを書くことが出来ます。

条件判定コード(3,4,5,6,7,8,9,A)
マスターコードセクションの条件判定コードは、全ての技コードに対して有効です。
つまり、ここに書かれた条件判定が不成立の場合は全ての技コードが実行されません。
(ゲームの開始を判定するコードなどを置くと効果的です)

書き込みコマンド(0,1,2,E)
マスターコードセクションの書き込みコマンドは、ゲームロード直後に実行されます。
ゲーム開始後は実行されませんので、固定的なパッチなどに使用できます。
(コードは常駐されませんので、常駐エリアの節約になります)


<コード一覧>

0xxxxxxx yyyyyyyy メモリ[xxxxxxx]に32bit値yyyyyyyyを書き込む
1xxxxxxx 0000yyyy メモリ[xxxxxxx]に16bit値yyyyを書き込む
2xxxxxxx 000000yy メモリ[xxxxxxx]に8bit値yyを書き込む
(条件文は不成立の場合条件文以下のコードは実行しない)
3xxxxxxx yyyyyyyy 32bit if(yyyyyyyy > [xxxxxxx])
4xxxxxxx yyyyyyyy 32bit if(yyyyyyyy < [xxxxxxx])
5xxxxxxx yyyyyyyy 32bit if(yyyyyyyy == [xxxxxxx])
6xxxxxxx yyyyyyyy 32bit if(yyyyyyyy != [xxxxxxx])
7xxxxxxx zzzzyyyy 16bit if((~zzzz & [xxxxxxx])>yyyy)
8xxxxxxx zzzzyyyy 16bit if((~zzzz & [xxxxxxx])<yyyy)
9xxxxxxx zzzzyyyy 16bit if((~zzzz & [xxxxxxx])==yyyy)
Axxxxxxx zzzzyyyy 16bit if((~zzzz & [xxxxxxx])!=yyyy)
Bxxxxxxx 00000000 メモリ[xxxxxxx]にあるアドレスをオフセットとして以降の書き込みコマンドを実行(ポインタ書き込み)
D2000000 yyyyyyyy オフセットをyyyyyyyyに設定。以降の書き込みコマンドに使用される。
Exxxxxxx yyyyyyyy
aaaaaaaa bbbbbbbb
..
メモリ[xxxxxxx]からyyyyyyyy byte(8の倍数) 以降に続くデータ(aaaaaaaa ...)を書き込む
Fxxxxxxx yyyyyyyy yyyyyyyy byteを [zzzzzzzz] から [xxxxxxx] にコピーする(zzzzzzzzはオフセット)