********************************************************************* MPS [Multi Pointer Searcher] For PSP PSP専用 ポインターコード 作成・サーチ 支援ツール (旧 ポインター解析補助ツール) ********************************************************************** ====================================================================== このソフトは何? ====================================================================== ゲーム(改造コード)でアドレス変動するコードの解析(コード化)を補助するPSP専用のツールです アドレスが変動しない場合はこのツールを使う必要はありません。 ポインター解析ソフトなので その仕組み(単体・多重ポインター)を理解していないとこのソフトは使いこなせないと思われます 下のサイトや、変動アドレス ポインターコード 等で調べれば色々出てくるのでそれらを参考に http://www.geocities.co.jp/Playtown/8052/  (ページ上部の "入門講座" "新実践改造講座" "旧実践改造講座" を見れば大体は仕組みが分かるハズ) HP固定、HP MAX等のコードをせっかく見つけたのに毎回アドレスが変動してしまってサーチしないといけない そんな時にポインターコードを利用すると、変動するアドレスに対応する(サーチ不要な)コードが作れます このソフトはポインターコード作成に必要な 基本アドレスとオフセット値を探してコード化を補助します 単体ポインター、多重ポインターの両方に対応してます (オフセット値も +/- 対応) ダンプファイルをバイナリエディタ等で比較してひたすら探すより かなり効率が上がると思う 本当はボタン一発押しの全自動解析にしたかったけど それだと検索範囲が狭い高速設定でも解析が終わるのに数日〜数ヶ月はかかりそうな爆遅仕様になったので 選択・指定して絞り込みながらポインタ−を追っていく解析方法に変更 ====================================================================== ツールの特徴、便利機能 ====================================================================== ●特徴 ・ +/- のオフセットに対応しているので最終的には必ずコード化可能(基本アドレスを見つけられる) ※バグがなければ ・解析対象 オフセットの符号、範囲を任意に指定可能 ・解析結果の保存、前回から再開機能 ・ツール上の各項目にマウスポインタを合わせると使用法、設定法をホップアップで分かりやすく表示 ・コード化ボタンで(CWC用)コード自動生成 ・任意の項目から解析をやり直せる復元機能 ・解析中にリスト内で選択した項目を記憶、過去に解析(選択)したことのあるものは#マークで強調表示 ・ダンプファイルを多く指定するほどより正確な解析結果が得られる 絞り込み解析機能 ・ソースコード付属 ====================================================================== 動作条件 ====================================================================== OS :Vista 、XP  (←のは確認済みのなので その他 2000とかでも動くかも) Microsoft .NET Framework 2.0 のインストール必須 ダウンロードは下のリンクから http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=ja ====================================================================== 使い方 ====================================================================== 1、PSPのゲーム中に それぞれサーチ条件の異なる複数のダンプファイル、サーチ結果のアドレスを用意 2、このツールを起動 3、各項目を設定 (設定方法は各項目説明を参照)   ※アドレスとファイルの指定項目は特によく確認してから設定して下さい    そこの指定が間違っていると どれだけ解析しても間違った結果しか得られません 4、ダンプファイルを最低2個(ファイルとアドレスを)正しく設定すると開始ボタンが押せるようになる 5、開始ボタンを押して解析開始  → 何もヒットしなかった (設定を変えて最初から再解析)     ↓    解析結果リストに何かヒットした (★印がつく基本アドレス候補がない場合は"解析結果リスト"内からさらにアドレスを選択して続けて解析)     ↓  解析結果リスト内に★印がついたアドレスがヒットした     ↓   コード化ボタンが有効になるのでコードを自動生成     ↓    動作確認 → うまく動作しない → そのコードは不完全なので(基本アドレスとオフセットの組み合わせが間違っているので)     ↓                違う条件で再解析して新たな★印に到達するアドレスを見つけながら   ちゃんと動作             最終的に正しく動作するコード(正しい基本アドレスとオフセットの組み合わせ)を探す     ↓   OK,コード公開等 お好きに ====================================================================== 各項目の説明 ======================================================================  ※ 解析に使うファイルの指定数が3個〜だと解析結果リストおよび    実行履歴のアドレス表示はファイル1,2のもののみに省略されます  ●対象  (初回以降の解析時にも常に変更可能)   ・オフセット(最小、最大) = 解析対象にするオフセット値  最小値(左)、最大値(右)   ・オフセット 符号 = 解析対象にするオフセットの符号、基本的には +/- を指定。              任意で +/- , + , + に変更可能  ●設定 (ダンプファイルを3つ以上指定すると 絞り込み解析が自動的に行われます)  ※ 絞り込み解析を利用するには最低3つのダンプファイル指定が必須で    ダンプファイルを3つ以上指定した場合は自動的に絞り込み解析が行われるので設定は不要です    2個の場合は絞り込み解析は行われません     ### 絞り込み解析を利用するとダンプファイル2個で解析したものよりさらに正確な結果を得られます ### ### 多重ポインターを探す場合は3つ以上ダンプファイルを指定して解析することを推薦 ###   File No = 横にある上下のつまみ(▲▼)でファイル番号(個数)を指定します        ファイル、アドレスを正しく指定してから▲のつまみを押すと次のファイルが指定出来るようになります        つまみ上下させるとファイル、アドレスの内容がFile Noに対応したものに更新されます        ※解析を開始するには最低でもダンプファイル2つ分(File No)のファイル情報(ファイル、アドレス)を正しく指定する必要があります   ファイル = ファイル番号に対応したダンプファイルを指定します          ※ダンプファイルをツール上にドラッグ&ドロップすることでダイレクトに指定可能です   アドレス = ファイル番号のダンプファイルに対応したサーチ結果アドレスを指定します         ※クリップボードにアドレスらしきものがあった場合、自動入力されます   ※ Ver 2.00〜はダンプファイルを複数指定出来るように仕様変更したため     Ver 1.00系とはファイルやアドレスの指定法が変更されてます  ●オプション (機能の有効・無効を指定します)   ・解析終了後、アクティブにして通知    有効にすると解析終了後、ウィンドウをアクディブにして知らせます   ・初期化してもファイル設定は残す    有効にしたまま初期化ボタンを押すとファイル設定を残したまま初期化出来ます   ・可能性の低い候補を除外  (上級者向け)    この機能はポインターコードの仕組みをよく理解している人向けの設定です    通常(よく分からない人)は無効のまま解析して下さい    ########## 解析結果リストから除外対象となる候補の説明 ##########    解析結果リストに★印がつかない候補がある場合 (全ファイルのオフセット値 一致アドレスが共通しないものが残った場合)    解析を続行しても最終的に基本アドレスにたどり着ける可能性の低い候補を除外します        ポインターコードはその仕組み上 ほとんどの場合    基本アドレスにたどり着けるそれぞれのオフセット値 一致アドレスは 全体的に近い領域に現れるという性質があります        この除外機能では、全ファイルのオフセット値 一致アドレスのうち    一定の近い領域内に当てはまらないアドレスが一つでもある候補を除外します                例えば MPO OPS+ アイテム変更コード[3重ポインター] を ダンプファイル4つ指定で解析して    最終的に基本アドレスにたどり着けた解析結果 それぞれのオフセット値 一致アドレスは        解析1回目 1=0x299510 2=0x299620 3=0x299620 4=0x299950    解析2回目 1=0x13C10B4 2=0x13421D4 3=0x1377EB4 4=0x12A3D44    解析3回目 1=0x1CA96C 2=0x1CA96C 3=0x1CA96C 4=0x1CA96C  (解析最後=基本アドレス)        という感じになり、解析N回目の結果はどれも    それぞれのオフセット値 一致アドレスは全体的に見て近い領域内に出現しています    (解析1回目なら 0x299510 〜 0x299950 、解析2回目なら 0x12A3D44〜0x13C10B4)                【--- 比較方法 ---】    それぞれのオフセット値 一致アドレスに ”範囲” で指定された値を +/- した近い領域に    次のファイルのオフセット値 一致アドレスがあるかどうかを ファイルの最初から最後まで順に(ファイル数分)確認して    一つでも領域内に当てはまらないものがあった場合は除外します                【比較例 除外されない】    "範囲"の指定値=0x100000    4つファイルを指定してそれぞれのオフセット値 一致アドレスが 1=0x13C10B4 2=0x13421D4 3=0x1377EB4 4=0x12A3D44 の場合        1=0x13C10B4 +/- 0x100000 の領域 → 2=0x13421D4  結果:OK (ファイル1,2を比較)    2=0x13421D4 +/- 0x100000 の領域 → 3=0x1377EB4  結果:OK (ファイル2,3を比較)    3=0x1377EB4 +/- 0x100000 の領域 → 4=0x12A3D44  結果:OK (ファイル3,4を比較)    全てのオフセット値 一致アドレスが "範囲" で指定された領域内だったので除外されない    【比較例 除外される】    "範囲"の指定値=0x100000    4つファイルを指定してそれぞれのオフセット値 一致アドレスが 1=0x123456 2=0x112345 3=0x567890 4=0x111112 の場合        1=0x123456 +/- 0x100000 の領域 → 2=0x112345  結果:OK (ファイル1,2を比較)    2=0x112345 +/- 0x100000 の領域 → 3=0x567890  結果:NG (ファイル2,3を比較)    3=0x567890 +/- 0x100000 の領域 → 4=0x111112  結果:NG (ファイル3,4を比較)    "範囲" で指定された領域内に当てはまらないものが一つでもあるので除外される            【--- 範囲で指定する値について ---】    ゲームの特徴を調べて”範囲”に最適な値を設定するとより良い解析結果が得られます    ほとんどの場合 デフォルト値の 0x100000 を指定しておけばある程度 可能性の低い候補を除外出来ると思う    しかしデフォルト値のままだと一部ゲームで解析結果から基本アドレスにたどり着ける候補が除外されてしまうこともあるので    目的や状況に合わせて任意に設定(調節)可能にしてあります            ※デフォルト値の 0x100000 のままだと基本アドレスに到達可能な候補も除外されてしまったゲーム    今までに確認しているもの = God Of War Chains of OlympusのHPのアドレス(3重ポインター)解析時        ###################################################################################          ●開始ボタン = (続けて)解析を開始する (設定項目でファイルが2個以上指定されてると押せるようになる)  ●中断ボタン = 解析開始後 処理を中断して解析をやり直すことが出来ます  ●ステータス   解析開始後の進行状況を 中断ボタン横にあるメーター(プログレスバー)と併用しながら   解析終了までの残りステップ数を詳細表示します  ●解析結果リスト   解析結果をリスト化、ヒットなしだと何も表示されません (解析結果リストの表示例) " 0x1A6240 = 0x1CAC10 [ - 0x1858 ]  " "# 0x1A6250 = 0x1A6250 [ + 0xA28 ] ★1" " 0x1A6250 = 0x1CABD0 [ + 0xA28 ]  "   -------------------------------------------------------------------------------   =前後にある16進数のアドレスはオフセットが一致したアドレス   前がファイル1、後ろがファイル2      ※ファイル指定数が3〜の場合は表示が省略される    しかし解析結果リスト横にある詳細ボタンで省略されたところを含めた    全ファイルの一致アドレスを確認可能      # = 過去に解析(選択)したことがあるものだと#マークが付く   ★1 = 解析の結果、全ファイルのアドレスが一致する基本アドレス候補だと★印が付く      横の数字は個数   []内= 共通オフセット値 +/- は符号   -------------------------------------------------------------------------------  ●詳細ボタン (ファイルを3個以上指定して解析した場合に操作可能になります)   ファイル数を3個以上指定して解析した場合   解析結果リストのオフセット 一致アドレス表示はファイル1,2のものだけに省略されますが   このボタンを押すことによってファイル1〜ファイル数分 全部の一致アドレスを確認出来ます  ●実行履歴   実行結果が随時追加されていく   "N回目開始〜"の文字を含む項目をダブルクリックするとダイレクトに”復元”機能を使用可能 (実行履歴の表示例) "プログラム起動 " " " "--- Start --- " " 1回目開始 各ファイルの初期値 " " 1回目終了 Hit = 3  ★ = 0 " " 2回目開始 0x299510 = 0x299620 [ + 0x10 ] # = 0 " " 2回目終了 Hit = 9  ★ = 0 " " 3回目開始 0x13C10B4 = 0x13421D4 [ + 0x40 ] # = 8 " " 3回目終了 Hit = 13 "   ※Ver2.0から表示されている   "N回目開始 0xAAAAAAAA- 0xBBBBBBBB [+ 0xCC] # = 数字"   の  # = 数字 の部分は復元用に使われる目印で無関係な情報です   アドレスやオフセット値ではありません   また、ファイル指定数が3〜の場合でも表示されるアドレス部分はファイル1,2のみに省略されます ■機能    ●復元ボタン(※ 実行履歴から "N回目開始〜"の文字を含む項目を選択した場合のみ押せるようになる)   実行履歴から "N回目開始〜"の文字を含む項目を選択後ボタンを押すと   選択項目の状態(解析結果)を復元して、その状態から解析を再開出来ます     ●初期化ボタン   全てを初期化して起動時の状態にします   オプションで”初期化してもファイル設定は残す”をチェック(有効)にしていると   ファイルを指定した情報はクリアされません   ※初期化すると実行履歴や解析結果(リスト)は破棄されます ■解析結果    ●開くボタン (※違う Verで保存したファイルは読み込めないようにしてあります)   フォルダ (ファイル) から前回の状態を読み込み作業を再開します  ●保存ボタン   現在の状態をファイルに保存して作業を中断 または 次回起動時に再開出来るようにします   保存ボタンを押した後に出てくる画面で 任意のフォルダ名を指定して保存して下さい ■コード作成  ●←、→ボタン   ★印が複数ある場合は ←、→ ボタンで前・後の★印を自動選択出来ます  ●コード化ボタン(解析結果リストに★印 [基本アドレス候補] がないとボタンは押せないようになってます)   解析して基本アドレスが見つかった場合、★印を含む項目を解析リストから選択後にコード化ボタンを押すと   参照先フォルダ内に Code フォルダを自動作成して   その中に全体的な解析結果を Code[基本アドレス + オフセット値].txt として出力します ====================================================================== 解析結果を保存した時に作られる各ファイル説明 ====================================================================== 数字.cfg = 解析リスト復元用のファイル (ファイル名の数字部分はループカウンタ値) set数字.cfg = 再開時に状態を復元するための環境設定記憶ファイル (ファイル名の数字部分はツールのVer情報) try.cfg = 解析結果リストで解析(選択)した項目を記憶したファイル listbox.cfg = 実行履歴の内容を記憶したファイル 数字.file = ダンプファイル、アドレスの各設定を記憶したファイル (ファイル名の数字部分はファイル数(個目)) ====================================================================== ポインターコードの仕組み説明 (簡易的) ====================================================================== 単体ポインターを Metal Gear Solid OPS Plus のコードを例に説明 ミッション中の配達済みアイテム 全てMAX _C0 Send ITEM ALL MAX _L 0x601772B0 0x00000063 _L 0x00000001 0x00002202 _L 0x601772B0 0x000000C0 _L 0x00000002 0x00002202 _L 0x10002203 0x00000000 ポインター値 格納アドレス(基本アドレス) = 0x1772B0 そこから4バイト分がポインター値 = 0x1772B0〜0x1772B3 その4バイト分のポインター値を確認すると 0x1772B0 から 9C B2 9E 08 のようになってる (値は毎回変動) それらを32bitのデータとして表すと 0x089EB29C になる PSPはポインター値に 0x8800000 加算して管理してるから 実際の値は 0x089EB29C - 0x8800000 = 0x1EB29C になる 結果 0x1EB29C がポインターが指し示してるアドレス そのポインターが指し示してるアドレスにオフセット分を加算すると 目的のデータ(配達済みアイテムの先頭アドレス)が存在するアドレスになる つまり 0x1EB29C(基本アドレス) + 0x2202 (オフセット値) = 0x1ED49E これが単体ポインターの基本的な仕組み 多重ポインターを God Of War HPのアドレス (3重) を例に説明 ※フォルダ内にある "多重ポインター解析 成功例.jpg" で実際にツールで解析した結果がみれます [[[0x346B00]+0xA8]+0x68]+0x64 0x346B00 = 基本アドレス (変動しない) []内 =ポインターが指し示すアドレス (数値から-0x8800000 引くと実アドレスになる) +0x?? =オフセット値 単体ポインターの仕組みが分かれば多重も理解出来ると思います 多重ポインター = 変動しない基本アドレスを元に さらにいくつかのアドレスが変動するポインターを経由している ====================================================================== ポインター(基本アドレス)を見つけるコツ ======================================================================  Ver2.0〜はダンプファイルを3個以上指定して解析すると  絞り込み解析が行われてより正確な結果を得られるのでそれを試す  解析結果が出た場合はオフセット値が小さいものを選んで解析していくと  ある程度のゲームは数回のループで数個に絞り込めて  基本アドレスにたどり着ける  ゲームによってはリストに多数の候補が残る場合があるので根気よく調べてみる  沢山結果が出た場合でも その中に答え(基本アドレス)がある場合もあるから注意  あやしいなと思うアドレスが出たらとにかく解析  基本アドレスにたどり着けるオフセット値が以上に大きい場合もあるので  一概にこれが最適とは言えない  ゲームをよく解析して特徴を見つけるのが一番です ====================================================================== ソフトの仕様 ====================================================================== 指定するダンプファイルの指定数が多い または オフセットの対象範囲が大きいほど 1回あたりの解析時間は長くなります オフセットは +/- に対応しているので最終的には必ず基本アドレスを見つけられる (プログラムにバグがなければ) 解析中に作成される一時ファイル・復元用ファイルは参照先フォルダ内にtmpフォルダとして作られる (ツール終了後は自動削除) ソフト作成経験があまりない主が作った物なのでデバッグは相当してあるけど致命的なバグ満載かもしれない 【不要な文字を入力した際に出る音の On/Off 切り替え】 このツールの同じフォルダ内にある setting.ini ファイルをメモ帳等で開いて、 SOUND=1 の箇所を SOUND=0 に書き換えて上書き保存 【起動時に行われるアップデートチェックの On/Off 切り替え】 このツールの同じフォルダ内にある setting.ini ファイルをメモ帳等で開いて、 CHECK_UPDATE=1 の箇所を CHECK_UPDATE=0 に書き換えて上書き保存 ====================================================================== このツールでの検証結果 ====================================================================== ("+0xA8" 等の+/-が付く値はオフセット値、[]内はポインター参照先アドレス 0x8800000 を引くと実アドレスになる) GoW HPのアドレス (3重ポインター)  [[[0x346B00]+0xA8]+0x68]+0x64 MGS OPS+ 配達済みアイテムの先頭アドレス (単体ポインター)  [0x1772B0]+0x2202 MGS OPS+ グレネード連射用のモーションアドレス (2重ポインター)  [[0x299DF8]+0xF8]+0x16C ■変更履歴 Ver2.71 ・解析ステップ1〜2の処理を約15%高速化 ・解析結果リストの表示処理を高速化 ・開始、中断、再開、各エラー時にサウンドを鳴らすようにした  (setting.ini = SOUND で切り替え可能) ・ツールを起動する為に必要なソフトウエア [ランタイム] を  Microsoft .NET Framework 3.5 → Microsoft .NET Framework 2.0に変更  (既にツールを使っていた人には無関係) ・ソースコード更新 Ver2.70 ・処理(解析)速度を約2倍 高速化  (疑似マルチスレッドだったので完全なマルチスレッド化) ・解析中にツール右上の×ボタンから終了出来るようにした ・ファイル設定を残したまま初期化した場合は、選択済み項目記憶ファイル[try.cfg]を残すようにした ・解析前、解析中にある操作をすると 一部コントロール(開始ボタン、復元機能)が誤動作する不具合修正 ・ソースコードを更新 (ツール、クラスライブラリとも) Ver2.62 ・解析結果リストを復元せず"復元"機能を使用した場合、  以降 解析結果リストが操作出来なくなる不具合を修正 (今まで見落としていた不具合) ・Ver2.61での変更が原因で選択済み項目記憶ファイル[try.cfg]が正しく出力されなくなっていた不具合を修正 ・一部の環境でアップデートチェックを有効にしていると起動に失敗する不具合を修正 ・配布用 ソースコード更新 (ツール、クラスライブラリとも) Ver2.61 ・CWCheatでは2Byte文字は表示出来ないのでコード作成画面のコード名に入力出来ないようにした ・コード作成画面で指定したBit数に応じて値を桁合わせするようにした ・Multi Pointer Searcherのソースコードを最適化  (イベントを共通化、処理の簡略化) ・クラスライブラリ(api.dll)のソースコードを最適化  (メソッドの機能別にクラス分け、各メソッドにドキュメントを記述) Ver2.60 ・リアルタイムに入力文字をチェックするコードの正規表現指定が間違っていたため  まだ一部の不要な文字が入力出来てしまう問題を修正 (場合によってはツールが強制終了していた) ・コードの一部をクラスライブラリ化してソースコードを追加 (開発者向け) ・ソースコードを更新 (Ver 2.60) Ver2.55 ・アドレス指定項目に不要な文字を入力するとツールが強制終了してしまう不具合を修正 ・コード作成時にファイルを開くを選択した場合、関連付けられたアプリケーションで開くようにした ・不要な文字を入力した際に出る音のOn/Offを切り替え可能にした  (切り替え方はReadMe 説明文 "ソフトの仕様" の項目を参照) ・起動時にアップデートチェックするようにした ※ 有効無効切り替え可能  (切り替え方はReadMe 説明文 "ソフトの仕様" の項目を参照) ・配布用 ソースコードを更新(Ver 2.55のものに) Ver2.54 ・コード化後に保存されるファイルに拡張子が付加されない不具合を修正 ・一部フォントを見やすいものに変更 ・値が入力可能な項目で一番左の桁を入力しようとすると  カーソル位置が常に2桁目になって入力しずらい問題を修正 ・リアルタイムに入力値をチェックする部分のコードを最適化 ・不要な文字が入力(自動補正)されたら音(システムサウンド)を鳴らすようにした ・アドレス指定をする箇所は最大値以上(0x17FFFFF)の値を入力出来ないようにした ・配布用 ソースコードを更新(Ver 2.54のものに) Ver2.53 ・コード保存時 ファイル名に自動付加される情報を  日付から コード化時に選択されていた基本アドレスとオフセットにした ・解析結果保存時にフォルダ名を自由に指定して保存出来るようにした ・配布用 ソースコードを更新(Ver 2.53のものに) Ver2.52 ・解析結果保存時に”MPS解析ファイル[日付]"というフォルダを自動作成して保存するようにした  ※保存時の状態は作成されたフォルダ内に自動作成される 情報.txt に書かれている ・コード作成時に参照先フォルダ内に Code フォルダを自動作成して、"Code[日付].txt" として保存するようにした ・参照先と同じフォルダ内に解析結果を保存出来るようにした (フォルダを自動作成するようにしたため) ・配布用 ソースコードを更新(Ver 2.52のものに) Ver2.51 ・ある一定の条件で中断ボタンを押すと開始ボタンが押せなくなる不具合修正 ・可能性の低い候補を除外 の各設定項目が誤動作または不要な時に操作可能になってしまう不具合修正 ・ファイル設定 重複時に出るエラーメッセージの誤記を修正 ・配布用 ソースコードを更新(Ver 2.51のものに) Ver2.50 ・解析結果から可能性の低い候補を除外する機能を追加 (オプション=可能性の低い候補を除外) ・開始前にファイル設定が重複していないかどうかを確認するようにした  (重複していた場合は解析を開始出来ないようにした) ・実行履歴が更新されたら自動スクロールするようにした ・実行履歴でダブルクリックした項目をダイレクトに復元出来るようにした ・実行履歴に基本アドレスのヒット数(★印の数)も表示するようにした ・オプションにあった ”アドレス末尾の値が同じものだけ” の機能を廃止  (ポインターコードの仕組み上 必ず末尾が一致するのもだけが基本アドレスにたどり着けるので それのみを対象にした) ・オプションにあった ”解析結果リストも復元” 機能を復元時に表示される画面に統合(移動) ・初期化ボタンをいつでも操作可能にした (ファイル指定数を間違えた時などに初期化出来なかったので) ・ファイル設定を残したまま初期化出来るオプションを追加 (ファイル指定数を後で追加したい場合など) ・解析(選択)済み項目記憶ファイル [try.cfg] に不要な項目が追加されないようにした ・解析結果リストを復元した場合はリスト内の選択項目も再現するようにした ・解析結果リスト内の★印横に個数を表示するようにした ・復元ボタン、コード作成内の自動選択ボタン(←、→)が操作可能な状態でも  状況に合わせて不必要な時は操作出来ないようにした ・解析回数と同じ項目を復元した場合は解析結果リストを無意味に更新しないようにした ・コードを最適化 (高速化) ・一部機能の廃止・追加・変更にともなって ReadMe 該当箇所の説明文を修正 ・配布用 ソースコードを更新(Ver 2.50のものに) Ver2.42 ・★印が複数残った場合、コード化する時に選択を容易に出来るよう自動選択ボタン(←、→)を追加 ・ファイルから再開時、ダンプファイルの有無等 チェックを厳密に行うようにした ・解析項目選択ファイル [try.cfg] をツール終了時に自動更新する際、  確認画面がファイルがなくても表示される問題を修正 ・1回目の解析結果をリストを復元しないで"復元"した場合、エラーが出て強制終了する問題を修正 Ver2.41 ・コード作成画面に ”作成後、Code.txtを開く” の項目を追加 ・参照先に設定されているフォルダを素早く開けるように ”開く” ボタンを追加 ・アドレス項目 入力文字制限変更で不足していたところを修正 ・違うVerの解析結果保存ファイル(set.cfg)を読み込むと強制終了する問題を修正 ・解析結果のヒット数が0の状態を保存したファイル  またはヒット数が0の項目を復元しようとするとツールが強制終了してしまう問題を修正 ・配布用 ソースコードを更新(Ver 2.41のものに) Ver2.40 ・解析部分を最適化して処理速度を高速化 (解析条件にもよるが 最低でも2倍くらいは高速化) ・中断機能(ボタン)を解析処理を中断出来る完全なものにした  (今までは解析開始後に中断ボタンを押すとソフト終了しか出来ない中途半端な仕様だった) ・クリップボードからのアドレス自動入力に対応 (クリップボードにアドレスらしきものがあった場合) ・ドラッグ&ドロップでファイル指定時に ツール全体で受け取るようにした ・アドレス設定項目を "0x" とあわせて最大9文字までに入力制限変更 (最大値は 0x17FFFFF なので) ・配布用 ソースコードを更新 (Ver 2.40のものに) Ver2.30 (最終リリース) ・ソースコードを整理(構造化)中に見つかった不具合をまとめて修正 ・アドレス、数値を設定するテキストボックスには許可された文字以外入力不可にした  これにより数値入力項目で16進数以外の文字を入力してしまうと強制終了してしまう問題を改善 ・ポインター数に関係なくコードの自動生成が可能になった (ポインター数が5個でも10個でも いくつでもコード化可能)  (以前までは書式を理解していなくてポインター数が3つまでならコード化可能だった) ・配布用 ソースコードを更新 (Ver 2.30のものに) Ver2.20β2 ・βリリース後に見つかった不具合を修正、正式版に向けて最終調整中 Ver2.20β ・解析結果リストと実行履歴内の文字を桁合わせして見やすくした ・Ver2.10での変更が原因でコード化出来なくなっていた問題修正 ・解析状況を表示するプログレスバー上にあった状況表示ラベルを"ステータス"として分離 ・新規追加したステータスの項目で解析開始後の状況をステップ数に分けて詳細表示するようにした ・解析するたびに結果リストから選択した項目を記憶して、  復元機能で解析結果リストを復元したとき リスト内で以前に解析したことがある項目は"#"を表示するようにした ・オフセットの符号+/-を指定した場合、オフセット値が0で全ファイルのアドレスが共通すると  +/- それぞれ同じ結果が2つ残る問題を修正 (片方は破棄) ・ソースコードを大幅修正して 各処理を細かく構造化した Ver2.10 ・絞り込み解析時の進行状況(プログレスバー)表示を詳細化 ・解析結果の保存先フォルダで自動削除されるファイルを *.file *.cfg のみにした ・コード整理中に見つかった細かい不具合を多々修正 ・ソースコードを付属 (Ver2.10 ベースに) Ver2.02 ・マイナスのオフセットを含む解析結果をコード化すると正しいコードが作成されない問題を修正 Ver2.01 ・ファイル指定時にCWC以外のダンプファイルも指定出来るようにした (フィルター追加) ・ファイル指定時に状態をチェックするようにした ・解析が終わったらウィンドウをアクティブに出来る設定をオプションに追加 ・解析開始時に最終的な設定状況をチェック & 表示して確認画面を出すようにした ・正しくコードが作成されない時がある問題を修正 ・正しくファイルが指定されていなくても解析開始が出来てしまう問題を修正 Ver2.0 ・ファイル2個以上使用して絞り込み解析に対応  3個以上ファイル指定して解析すると解析結果リストから共通しないオフセットをさらに除外して より良い結果が得られる ※ゲームによって効果があるかないかに差が出る ・ツール名を”ポインター解析補助ツール"から"MPS [Multi Pointer Searcher] For PSP"に変更 ・アドレス範囲手動設定機能を廃止 ・解析後に状況を知らせるプログレスバーの表示を詳細にした ・ファイル2個以上使用した場合 解析結果リストで3個目〜の一致アドレス表示が省略されるので  必要に応じて確認出来るように ”詳細” ボタンを配置 ・読込速度を調整 (バッファを増やしたので多少早くなったかも) ・解析時は一時フォルダを利用するようにした(再開時にファイルが上書きされる問題に対処) ・終了時に不要な一時ファイルをしっかり削除するようにした ・実行履歴の表示方法を変更 (1回目は初期アドレス非表示に) ・機能の廃止・追加に伴ってGUIを変更、ReadMeの項目説明欄を修正 Ver1.61 ・2重ポインターをコード化して生成されるコードのオフセット値(順番)がおかしくなる問題を修正 ・初期化ボタンで初期化出来ていない項目があったので修正 ・ソフトを2起動するとエラーの原因になるので禁止した Ver1.6 ・★印を含む解析結果リストをファイルに保存・読み込むと文字化けしてコード化出来なくなる問題を修正 ・2回目以降にオプションのリストを復元しないを選択して復元ボタンを押すと  実行履歴のオフセット表示がおかしくなってコード化すると異常終了する問題修正 ・保存機能で参照先と同じフォルダに保存すると解析ファイルが消失するので出来ないように戻した ・コード化機能でコード名も指定出来るようにした ・アドレスや値を設定する項目に入力できる文字数を制限した (0xとあわせて最大10文字まで) ・ソースコードをVer1.6の物に差し替え Ver 1.5 ・ファイル読込処理を高速化 (1回あたりの解析時間を従来より1分くらい短縮) ・一時ファイルの拡張子を*.cfgに統一 ・コード化ボタンでCWC用のコード生成機能を追加 (ポインター数が1〜3の時だけ 4〜はいまいち書式が不明なため未サポート) ・終了時に一時ファイルが残らないように削除するようにした ・解析結果を保存時にオプションの選択状態も記録するようにした ・解析結果を参照先と同じフォルダに保存出来るようにした ・不要なボタンが有効・無効になってしまうのを修正 ・ツール下部にあった"読込先"の名称を"参照先"に変更 ・オフセット値(最小〜最大)に0を設定出来るようにした、そのためデフォルト値を0xFFFFに ・ソースコード配布 (利用時にはフォルダ内の"ソースコードの利用について"を必ず参照) Ver 1.4 ・マイナスのオフセットを使うポインターにも対応 (+/- の同時解析にも対応) ・ツール上の各項目にマウスカーソルを合わせた時に説明を出すようにした  (ツールに対するアクセシビリティ向上) ・オプションにあった"保存場所"の項目を廃止 ・解析状況をファイルとして出力。好きなときに再開・中断出来るようにした ・途中で設定を初期化可能にする"初期化" 機能を追加 ・コード化機能を追加 (コード生成はまだ未サポート) ・初期設定時にファイル1,2のアドレス先頭に0xがない場合、1回目〜の項目で復元が出来なくなる問題を修正 ・基本アドレスが見つかった時に表示される印を●から★に変更 ・間違えて押すと初期化されたりして解析に支障が出るボタンは確認画面を表示するようにした ・機能の削除・追加に伴ってReadMe 項目説明欄を更新 (誤字も修正) ver 1.3 ・多重ポインターが解析出来ない重大バグ修正  "動作確認済み フォルダ内にある画像 解析成功例 参照"   (バグにより以前のVerまでは単体ポインターのみしか解析出来なかった) ・解析アルゴリズム変更に伴って、アドレス設定は基本的に無効にした ・アドレス設定の無効化に伴って、上級者向けに手動で設定できるようにチェックボックスを配置 ・解析中に重要な項目が変更・操作可能になっていたので修正 ・復元機能を繰り返し使うと動作や履歴がおかしくなるバグ修正 ・解析後 ヒット数0のまま新たに解析開始した場合は実行履歴を整理するようにした (復元機能の誤動作防止もかねて) ・”ポインターコードの仕組み”についての説明をReadMeに追記 ・追加機能が増えたので ReadMe の "各項目の説明" に追記 ver 1.2 ・ver 1.1で正しく解析出来なくなっていた致命的バグ修正 ・それに伴って1.1の読み込み高速化は保留 ・復元時に解析結果リストも復元出来る機能追加 (オプション=復元時に解析結果リストも復元) ・エラー時の警告を詳細化 ・解析後 リスト内に基本アドレスの可能性が高いものは●印で強調するようにした (警告も出る) ・その他 コントロール関係の仕様変更・バグ修正 ver 1.1 ・基本アドレスが見つからない状況(解析結果)でもヒットしました等のメッセージが出ていたバグ修正 ・検索開始時にファイル指定欄、コンボボックス、開始ボタン等が操作出来てしまうバグを修正 ・情報が正しく設定されていないとリスト内の解析結果が消えてしまうバグ修正 ・検索範囲を指定出来るように変更 (範囲指定で検索高速化) ・検索範囲の終了値の自動設定 を追加 (これは終了値を指定出来るようになったものの まだマイナスのオフセットに未対応な為) ・履歴の保存機能を追加 ・履歴のリストから任意の実行結果(アドレス)を選択してそこから検索を再開できる 復元 機能を追加 ・ファイル読み込み速度をかなり高速化 ・プログラムの簡略化 ・プログレスメーターの表示を詳細化 ・検索終了時に基本アドレスに到達出来た場合のみメッセージで通知するように変更 ・ReadMe説明文を項目追加に伴って少し変更 ver 1.0 ・初回リリース