これらのデバイスは、ROM 上の指定された場所のデータを書き換える動作をします。

***目次 [#ab6dcdb0]
-[[Pro Action Replay (ハードウェア)>#ha7c9ff5]]
-[[Gold Finger (ソフトウェア)>#n488ed76]]
-[[Game Genie (ハードウェア)>#le7e3be9]]
-[[CPU アドレスと ROM アドレスの変換>#a6e23fc9]]

**Pro Action Replay (ハードウェア) [#ha7c9ff5]
コードフォーマット : AAAAAADD (8 文字)

A - アドレス
D - データ

コードは 16 進数で指定します。
アドレス値は ROM の場所ではなく、CPU からアクセスする際のアドレスを指定します。

**Gold Finger (ソフトウェア) [#n488ed76]
コードフォーマット : AAAAADDDDDDCCW (14 文字)

A - アドレス
D - データ
C - チェックサム
W - 何を変えるか (DRAM か SRAM)

これは ROM コピー機のためのコードで、16 進数で指定します。
アドレスは ROM のアドレスを指します。
データ値は 2 個一組で使用し、3つ分のサイズがあります。
使用されないデータ値は、 "XX" を入れます。

アドレス値はベースアドレスで、最初にデータ値の 1 つ目を入れ、
アドレス値 + 1 に 2 つ目を、 アドレス値 + 2 に 3 つ目を入れます。
XX が入っている場合は使いません。

W値は、ROM イメージと セーブデータの入った SRAM のどちらを
変更するかを指定します。
0 が DRAM、 1 が SRAM です。

**Game Genie (ハードウェア) [#le7e3be9]
コードフォーマット : DDAA-AAAA (8 文字)

A - アドレス
D - データ

これは解読が難しいコードです。
まず、コードの値から実際の値をテーブルで引き、変換する必要があります。

|~Genie Hex|D|F|4|7|0|9|1|5|6|B|C|8|A|2|3|E|
|~Normal  Hex|0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|

次に、値を実際のアドレスに置き換えます。

|エンコードされた 24 bit アドレス|ijklqrst opabcduv wxefghmn|
|デコード済み 24 bit アドレス|abcdefgh ijklmnop qrstuvwx|
|~エンコードされた 24 bit アドレス|ijklqrst opabcduv wxefghmn|
|~デコード済み 24 bit アドレス|abcdefgh ijklmnop qrstuvwx|

8bit encoded data:     ABCDEFGH
8bit data: ABCDEFGH

エンコードされたアドレスの 23 ビット目 (デコードされたアドレスの 15 ビット目) は
常に 1 になります。

**CPU アドレスと ROM アドレスの変換 [#a6e23fc9]
ROMaddress = (CPUaddress & 0x7FFF) | ((CPUaddress & 0xFF0000) << 1)
CPUaddress = (ROMaddress & 0x7FFF) | ((ROMaddress & 0x7F8000) >> 1) | 0x8000

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS