ファミコンカセットずらし検証

Ver.2013/11/04 (WordPress移行)
dq1

Download : カセットずらし対応版NesterJ(nesterjz.zip)

※オリジナルソースコードはScrew氏作『NesterJ』が元となっています。
https://www.dcn.ne.jp/~otim2/nesterj/

カセットずらし対応版NesterJは、オリジナルのNesterJのVRAMアクセス制御に関する
“Nes_ppu.cpp”
“Nes_ppu.h”
に対して以下のルーチンを追加したものです。

1.キーボード(フルキー)の”2″キーを押すごとにカセットの右側を持ち上げて
CHR-Dピンを1つずつ切断。

2.キーボード(フルキー)の”1″キーを押すごとにカセットの右側を戻して
CHR-Dピンを1つずつ接続。

3.キーボード(フルキー)の”3″キーを押すと全ピンを接続。

4.これらのキーを押すごとにタイトルバーの内容を書き換えて
ピンの接続状況(cData)を表示。

5.cData:00FF(初期状態から”1″キーを1回)の時だけVRAM書き換えを無効化できる。

これらを組み合わせることで、カセットずらしの多くをエミュレータ上で再現できます。


解析にあたり以下のサイトを参考にしました。

・playoffline 世界初”カセットずらし”をエミュレートしてみる (閉鎖)
https://www.playoffline.com/fc/slide/index.html

・Famicom / Pegasus cartridge connector pinout
https://nesdev.icequake.net/fam_pinout.txt


カセットずらしの例

1.ドラゴンクエスト1
フィールド上で適当な回数”2″を押して画面をバグらせて、
モンスター出現と同時に”3″で全ピン接続すると、
モンスターのステータスがバグった状態になる。
(”cData:0013″までカセットをずらすと超強いパターンが多い?)。

2.ドラゴンボール3
タイトル画面で”2″キーを一回押して(cData:0001)ゲームを開始し、
最初のシーンで”3″で全ピンを接続。
このまま進行するとニセ悟空との対戦シーンになる。
※カセットずらしの代名詞「いきなりエンディング」は
エミュやFC互換機では再現できない。

3.マリオブラザーズ(初代)
タイトル画面で”1″キーを押して(cData:00FF)でゲームを始めて
“3”キーで全ピンを接続すると、タイトル画面のままゲームが始まる
(足場判定が無いので落下し続けるしかない)。
通常通りゲームを始めて、足場を叩くと同時に”1″キーを押して
cData:00FFにすると、足場が膨らんだまま戻らなくなる
(そこに触れるとマリオも敵も吹っ飛ぶ)。

4.妖怪道中記
“1”キーを押してcData:00FFの状態でスクロールすると背景を処理できず、
真っ暗な背景をロードすることになり、当たり判定の無い中を進むことが出来る。
もしかすると本来突破できない壁を越えることも出来るかも?


他に「こんなカセットずらしが出来たよ!」という方はTwitterID : Imaha486に教えてくださいませませ。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です