カートリッジ > ROM プロテクションスキーム

たくさんの SNES ゲームに実装されている、コピー機を使わせないようにするための FastROM、 PAL/NTSC、 SRAMサイズチェックを迂回する方法について書く。

注:必ずしも全ての文字列を置換する必要はない。

目次

SlowROM チェック

新しいカートリッジは、ほとんどがアクセス時間 120ns の ROM を使用しているが、 ROM コピー機では 200ns のものもある。これらの組み合わせでは バックアップした ROM を正しく動作させることができない。

ROM コードの SlowROM チェックを迂回することで、 SlowROM のコピー機でも FastROM のゲームを動作させることができる。 次の文字列を置換することで SlowROM チェックを迂回するようにできる。

検索する値 置換する値
A9 01 8D 0D 42 A9 00 8D 0D 42
A9 01 8E 0D 42 A9 00 8E 0D 42
A2 01 8D 0D 42 A2 00 8D 0D 42
A2 01 8E 0D 42 A2 00 8E 0D 42
A9 01 00 8D 0D 42 A9 00 00 8D 0D 42
A9 01 8F 0D 42 00 A9 00 8F 0D 42 00

PAL/NTSC チェック

まだその国で発売されていないゲームを他の国で買ったりすることができないようにするために、 たくさんのゲームでビデオシステムの組み合わせが正しいかを検出するコードが実装されている。 次の文字列を置換することで PAL/NTSC チェックを迂回することができる。

検索する値 置換する値
3F 21 29 10 C9 10 F0 3F 21 29 10 C9 10 80
3F 21 89 10 C9 10 F0 3F 21 89 10 C9 10 80
3F 21 29 10 F0 3F 21 29 10 80
3F 21 00 89 10 F0 3F 21 00 89 10 80
3F 21 00 29 10 F0 3F 21 00 29 10 80
3F 21 89 10 00 F0 3F 21 89 10 00 80
3F 21 29 10 00 F0 3F 21 29 10 00 80
AD 3F 21 29 10 00 D0 AD 3F 21 29 10 00 80
AF 3F 21 00 29 10 D0 AF 3F 21 00 29 10 80
AF 3F 21 00 29 10 00 D0 AF 3F 21 00 29 10 00 EA EA
AD 3F 21 29 10 D0 AD 3F 21 29 10 EA EA
AD 3F 21 29 10 F0 AD 3F 21 29 10 80
AD 3F 21 89 10 D0 AD 3F 21 89 10 80
AD 3F 21 29 10 C9 00 F0 AD 3F 21 29 10 C9 00 80
AF 3F 21 00 29 10 00 F0 AF 3F 21 00 29 10 00 80
AF 3F 21 00 89 10 00 F0 AF 3F 21 00 89 10 00 80

SRAM サイズチェック

いくつかのゲームは、コピー保護のために SRAM のサイズチェックを入れている。 ほとんどのコピー機は、256kbits の SRAM を積んでいる。 新しいコピー機は、このチェックを回避する。

xx は何が入るか分からない箇所で、 括弧に囲まれた範囲は、どちらか一方の値を取る。

検索する値 (8F, 9F) xx xx 70 (CF, DF) xx xx 70 D0
置換する値 (8F, 9F) xx xx 70 (CF, DF) xx xx 70 EA EA (SRAM サイズ = 64kbit の時)
(8F, 9F) xx xx 70 (CF, DF) xx xx 70 80 (SRAM サイズ <> 64kbit の時)
検索する値 (8F, 9F) xx xx (30, 31, 32, 33) (CF, DF) xx xx (30, 31, 32, 33) D0
置換する値 (8F, 9F) xx xx (30, 31, 32, 33) (CF, DF) xx xx (30, 31, 32, 33) 80
検索する値 (8F, 9F) xx xx (30, 31, 32, 33) (CF, DF) xx xx (30, 31, 32, 33) F0
置換する値 (8F, 9F) xx xx (30, 31, 32, 33) (CF, DF) xx xx (30, 31, 32, 33) EA EA
検索する値 (8F, 9F) xx xx (30, 31, 32, 33) AF xx xx (30, 31, 32, 33) C9 xx xx D0
置換する値 (8F, 9F) xx xx (30, 31, 32, 33) AF xx xx (30, 31, 32, 33) C9 xx xx 80

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2017年02月20日 18:33