海外版パーフェクトダーク用の改造コードを日本語版パーフェクトダークでも使えるように変換するやり方です。
必要なもの
- N64エミュレータ:Project64 1.6
- プロセスメモリエディタ:MECC
- 海外版パーフェクトダークのROM:Perfect Dark (U) (V1.1)
- 日本語版パーフェクトダークのROM:Perfect Dark (J)
概要
日本語版PDは海外版PDがベースとなっているため、アドレスは違っていても値の並ぶパターンはほとんど同じです。
そのため、海外版PDの値の並ぶパターンを日本語版PDでサーチすれば変換する事ができます。
MECCを使うことでメモリの検索を行うことができます。
デフォルトでMECCのサーチに対応しているプロセスが「Project64 1.6」のため、古いバージョンですが、1.6を使用しています。
ベースアドレスの検索と設定を行えば、最新版の「Project64 v2系」やそれ以外のエミュレータでも対応可能です。
事前知識
改造コードの構造
改造コードの構造を簡単に理解しておく必要があります。
先頭2桁は改造コードの命令コード、次の6桁がアドレス、次の4桁が値という構造になっています。
他にも様々なタイプがありますが、以下の基本形は把握しておきましょう。
- 80xxxxxx 00yy:1バイト書き込み
→アドレス「xxxxxx」に値「yy」を書き込みます。 - 81xxxxxx yyzz:2バイト書き込み
→アドレス「xxxxxx」に値「yyzz」を書き込みます。
偶数アドレスを指定する必要があります。
メモリの並び順の違い
メモリに格納する値の管理方法の違いにより、値の並び順が異なります。
N64実機はメモリをビッグエンディアンで管理していますが、Project64ではリトルエンディアンで管理しています。
そのため、Project64をプロセスメモリエディタで見ると、4ByteごとにN64実機とは値の並び順が逆になります。
N64実機での値の並び(ビッグエンディアン)
0 1 2 3 | 4 5 6 7 | 8 9 A B | C D E F
Project64での値の並び(リトルエンディアン)
3 2 1 0 | 7 6 5 4 | B A 9 8 | F E D C
改造コードはN64実機のアドレスに合わせて作成する必要があるため、ビッグエンディアンで見た時のアドレスに変換する必要があります。
ただし、今回使用するMECCでは「4Byte表示」にすることで、N64実機の値と同じ並びで見ることができるようになるため、常に「4Byte表示」にしておけば特に気にする必要はありません。
やり方
以下の海外版PD用改造コードを日本語版PD用に変換してみましょう。
敵動かないコード「8022EE80 0020」
- Project64 1.6で海外版パーフェクトダークを起動し、一時停止状態にします。
- MECCを起動します。
- 「—プロセス選択—」から「Project64.exe」を選択します。
- 「—アプリケーション選択—」から「Project64 Version 1.6」を選択します。
- 「メモリエディタ」タブを選択します。
- 移動欄に「22EE80」と入力し、改造コードのアドレス「22EE80」に移動します。
- 値を右クリックして、「4Byte表示」を選択します。
- 「4Byte表示」にすることで、リトルエンディアンのメモリの並びを変換した実際の4Byteの値が表示されます。
その結果、値の並びがN64実機と同様となります。
例えば、アドレス「22EE80」に「8F」が来ているので、N64実機での「22EE80」の値は「8F」と考えることができます。 - アドレス「22EE80」前後の値の並びをキャプチャします。
この後、日本語版パーフェクトダークにて値を検索するのですが、検索はリトルエンディアンのメモリの並びを変換した実際の4Byteの値で実施する必要があります。
そのため「4Byte表示」の状態で確認できる「8F190000」をメモしておきます。 - Project64で日本語版パーフェクトダークを起動し、一時停止状態にします。
- MECCにて、メモリエディタの検索方法を「入力」、バイトサイズを「4Byte」、基数を「16進数」に設定します。
- 先ほどメモした値「8F190000」を検索します。
- 検索値に一致したアドレスが表示されます。
ダブルクリックすることで、そのアドレスに移動することができます。
検索候補が複数表示される場合は1つずつ確認していきます。 - 9でキャプチャした値の並びと一致するアドレスが見つかります。
そのアドレスが日本語版での改造コードのアドレス候補となります。 - 海外版PD用改造コードのアドレス部分を入れ替え、日本語版用PD改造コードを作成します。
海外版 :8022EE80 0020
日本語版:8022EEE0 0020 - 作成した改造コードをProject64 1.6で実行し、効果があるか確認します。
効果がない場合は、別の候補を利用して改造コードを作成します。
※Project64 1.6の場合:
「オプション」→「設定」→「オプション」タブにて「高度な設定を隠す」のチェックを外すと、「システム」→「チート」を選択できます。