ファミコンの完全自作ROM&カセットを作ろう!!その1~立ちはだかるコンパイラの壁~

ファミコンのソフトを自作する。まさにファミコン少年なら一度は考えたことのある暴挙夢の企画なのですが、古今東西にて公開されている方法といえばそれはもう

「既存のカセットのロム改造」

なわけです。

違うんです。確かにROM焼いて書き込めばできるでしょう。しかしその前に覚えなきゃいけないことがあまりにもガラパゴスすぎます。Mapper1とかいうファミコンのカセットの規格(しかもナムコは例外&プラスチック封印されてたらできない)。おまけに容量が大ききくて改造がしやすいものとなると結構貴重なカセットをぶっ壊すスタイルになります。正直コレクター癖のある私としては「外道」に他なりません。やりましたけど。ドラクエ2のカセット犠牲にしました。失敗しましたよチクショーメ!!!

なので今回はそんなカセットの端子から基板までALL手作りをしてしまおうというのが規格内容なのです。これならもうカセットを壊す必要はありません。貴重で高いカセットが守られるし場合によっては新しい規格のカセットを作ることもできます。

⬛︎とりあえずプログラムROMオンリー基板を作ってみる

ファミコンのカセットは独特な仕様になっておりまして画像用のROMは別の回路でつながっており、基本的にCPUのROMとは共用しておりません。なので、極端な話普通のパソコンと同じ回路設計であるのならばCPU側のROMだけを組み立ててつないでも問題ないわけです。そしてその回路の一つの部分とか拡張ポートに向かって何らかの信号を送るプログラムを組めば、わざわざキャラクターROMの作成をしなくてもいいわけです。

そこで今回はとりあえずカセットの端子とROMをつなぐ回路を作成しました。
千石電商の地下で入手。前から気になってたけどついに使うときが・・・

今回使用したこの端子は2.52ピッチのもので、本来のファミコンのカセットよりもピン数が多いです。なので
鉄定規登場。

カッターでごり押しします。ないものは作る。
両側から切り続けて10分後・・・

無事に切れました。もうなんか紙フェノールの基板とは比べ物にならないくらい堅かったです。なにこれ。
L字型のものを用意すると基板が後でつけやすいです。

それでもってそこに同じピンピッチの二列ピンヘッダーをつなぎます。
お互いに干渉しないよう注意しましょう。

無事につけ終わったところでCPUからの信号を見てみましょう。下手なロックかかってて正規の基板じゃないと絶対動かないとかだったら困りますからね・・・
問題なく動作。結構高速で正直チカチカなんてしない。
無事にロックがかかってないことが確認できたので基板を取り付けることにします。最初はこのL字に直付けする予定だったのですが、それだと後で改造が大変なので別の基板とピンソケットで繋げられるようにしました。
最初の案。おそらくファミコン史上最もでかいカセットになるところだった。
でかすぎたのでサイズを縮小。ソケットを増やす。

その後ROMオンリーで繋げられる小さな基板を作成。抜き差ししやすいソケットを採用。実験用ですから
というわけでサクッと作ったこちら。まさかのR/W信号ピンが共通で、ROMの前で分岐して反転処理をしなくてはいけないのには驚きましたがまああとはROMとカセットのピンアサインに合わせて配線するだけだったので楽でした。(1敗)

あとはこれに6502のデータを書き込めばいいのですが・・・えー、あの有名なcc65が非常に使いずらいうえエミュレーターに特化しているためにただのHEXファイルすら吐き出さないというトラブルが発生し、全く実験で来ておりません!!!!!(まあこんなこと考える人いないってことなんでしょうけど・・・)

仕方がないので大昔に作って挫折したROMライターを設計しなおして専用書き込みプログラムでも作ろうかと考えております。できないことはないだろうけど、正直6502のアセンブラをすべて解読しないとなるとしんどいです。全然予期してない部分で躓きましたが、何とかするしかないとあきらめていっちょ製作しようと思います!!!!

コメント

このブログの人気の投稿

ファミコンの完全自作ROM&カセット作ろう!〜cc65で起動ROMをつくる〜

74HC595を使ってarduinoの16ビットパラレル出力に挑んでみた