FAMIRGBその後

FAMIRGBはその後、特に進展がなく放置プレイになっておりました。


ちゃんとした設計書や回路図を残さずに作ってしまったので、仕事やらなんやらが忙しくなってしばらく触っていない期間があったのですが、
回路がどうなっているのかすっかり忘れてしまったのでした。


敗因は、ドキュメントを残さなかったことですね。


敗因として考えられるのはほかにもあり、RAMとROMを除けば汎用ロジックICだけで回路を構成したのですが、
そこにこだわってしまい、失敗した感があります。
変なところにこだわらず、もっと実現しやすい方法で実装していったほうが当然、完成する確立を高められたはずです。


1年ぐらい放置してましたが、、FAMIRGBのことは完全に忘れていたわけではなく、たまに頭によぎることがあり、
もっと違ういいやり方はなかったかなと考えることがありました。
たとえば、一部の処理を1チップマイコンで肩代わりさせるとかは当たり前に出てくる発想だと思います。
パレットRAMへの書き込みデータをCPUバスから拾う回路は、1チップマイコンでやらせると、
汎用ロジックICのカウンタ4個+αが、IC1個で済ますことができるはずです。
でもちょっと微妙。
それだけのことでマイコンを持ち込むのも微妙です。

PIC32MX

1チップマイコンはAVRマイコンがいくつかと、ライタが手持ちにはあるので、使うならそれかなと思っていました。
でも、8ビットコアのAVRマイコンで、それなりに高速なデジタル信号を扱うのはけっこう厳しいんですよね。
ファミコンとはいえ、ドットクロックは5.4MHzぐらいなので、高速アナログ信号といっていい領域です。
8ビットのAVRマイコンの中で高速なものは20MHz動作のものがありますが、それでも5.4MHzの信号を扱うのはなかなか厳しいです。


で、最近知ったのがPIC32MXという1チップマイコンです。
これは32ビットコアのマイコンで、MIPS32アーキテクチャらしいです。
MIPSというと、プレステ1のCPUがMIPSでしたよね。
たしかプレステのCPUは33MHzぐらいのクロックだったはず。
PIC32MXは40MHzでも動きます。なんとプレステ1より高クロック。
そして秋月電子では190円〜320円で売っています。激安です。
しかも趣味の電子工作にもやさしいDIPパッケージです。


PIC32MXのいいところはそこだけじゃないんです。
こいつはDMAコントローラを内蔵しているのが味噌です。
PIC32MXではDMAコントローラのおかげで、1チップマイコン内のメモリの内容を、CPUを経由せずに、IOポートから出力したりすることができます。
逆に、外部よりIOポートに入力された信号を、CPUを経由せずに、1チップマイコンのメモリに書き込むこともできます。


DMAコントローラが無い1チップマイコンで、数MHzの信号を扱おうと思うと、ほとんど全てのCPUパワーを
IOポートの制御に取られてしまいます。
メモリから読み込んだ値をIOポートに出力することを繰り返す事以外は何もできなくなるわけです。


PIC32MXならばDMAのおかげで、たとえばファミコンのCPUバスの内容を読み取りながらも、PIC32MXのCPUは別なことを色々できるわけです。
これはなかなか面白いですね。
NESRGBとは違ったアプローチで、RGB出力の可能性も出てきた気がします。
たとえば、ファミコンのPPUに子亀のようにPIC32MXをかぶせて、PPUの各端子の信号を盗み見て、PIC32MXでPPUの処理をエミュレーションすることも可能でしょう。
NESRGBはPPUを取り外して実装する必要がありましたが、この方式だと上からかぶせるだけでOKになります。かなり簡単になります。
もっと言うと、カセットを指すコネクタに出ている信号だけでも十分そうです。
つまり、ファミコン本体は無改造で、スーパーゲームボーイのような感じで、RGB信号を出すカセットアダプタが実現できるのではないかと妄想
しております。

今後、詳細をつめていこうと思います。