FAMIRGB製作開始?
NESRGB相当の回路を作るのは、正直私には荷が重い。
電子工作といえば、公開されている回路図をそのまんま作ったことはあるが、
完全にオリジナル設計で作ったことは一度も無いのだ。
今回のFAMIRGBでは、標準ロジックICが20個以上の規模になりそうだ。
初めて設計するには複雑すぎる気がする。
こういう複雑なものを作るには、経験上、ちょっとずつ確実に事を進めるしかない。
電子工作で一番悲しいのは、
作ってはみたけどなぜか動かない、
うんともすんとも言わない、
測定器はアナログテスタしかなくて、
お手上げ状態ってやつではないだろうか。
まあ、私は何回かその状態になって、途中でぶん投げた経験が何度かある。
今回はそうならないように、
とにかく、
ちょっとずつ動作確認しながら、
回路が動作する状態を保ちつつ
少しずつ回路を追加していく感じでやってくことにする。
というわけで、ICが20個以上になると思われるFAMIRGBのうち、どこから作り始めるのが一番確実か考えた。
映像信号が何かしら出ていれば、テレビに映してCPUとPPUはちゃんと動いていることぐらいはわかる。
完全なゲーム画面のRGB信号にならないとしても、映像が出る状態を常に保ちたい。
CPUのバスに流れる信号をモディファイする回路は、しくじるとCPUもPPUもまともに動かなくなるだろう。
このへんは後回しにする。
PPUのEXT0〜EXT3からデジタルの映像信号を出すためには、PPUをスレーブモードに設定しないといけない。
具体的には、PPUのコントロールレジスタ1のbit6を1にすればいい。
これを回路的にやるのはけっこう大変だが、
あらかじめカセットのPRG-ROMのコードにパッチを当てておくことで実現すれば、簡単だ。
吸い出したカセットのPRG-ROMから、PPUのコントロールレジスタ1に値を書き込んでいるところを検索して、書き込んでいる値のbit6を1にした値に変更する。
それをEPROMに焼いて元のカセットに挿して動作させれば、回路的には何もしなくても、EXT0〜EXT3から映像信号が出てくるという目論見である。
完全な映像信号にするためには、これにEXT4の1ビットを足さないといけないのだが、それは難しいので、
とりあえずEXT0〜EXT3の信号をモノクロ8階調の映像信号とみなして、ディスプレイに映してみたい。
CLUTを通してないので、色をつけられないのでモノクロにしかならないが、ゲーム画面の輪郭ぐらいはなんとなく分かるのではないだろうか。
こんなのを作ってるくせに、うちにはもう21ピンRGBを入力できるモニターなどは
とっくの昔に無い。
昔は、NECのPC-TV454があったんだけど、捨てちゃった。
なので、今の回路は、アップスキャンコンバータの回路を組み込んで、VGAの信号(31kHz)として出力することを前提として、
最初から作ることにした。
もちろん、15KHzのRGBも別に出力できるようにはする。
写真中のNECのICが、15KHzから31KHzに変換するためのラインメモリである。
これなら、いつも使っているパソコンのモニタに映像を出力できる。
アップスキャンコンバータもファミコン内蔵にしてしまうと、クロック系の回路が簡単になるし、ADコンバータも不要になるので、
けっこう簡単に作れそうである。