カートリッジコネクタ
NESカートリッジをFPGAと接続するためのカードエッジコネクタ実装部分です。
_
|
カードエッジコネクタを入手できたので評価ボードに接続しました。
このカードエッジコネクタをNESカートリッジで使用するためには、
コネクタを固定するためのアームを切り取らなければならず、
カートリッジの抜き差しの度に裏の半田にクラックが発生しないか心配です。
| ! |
NESの刺しかたとは異なります。 ファミコンの刺しかたです。 |
イサリヨクラリ@isariyokurari さんにDE1ボード用のカートリッジ接続基板を作って頂きました! SFLでマッパー回路を実装するのも面白いけど、やっぱり実際のカセットとおしゃべりできるといいよね! ということで、表面実装のはんだ付けを応援したり、 ちゃんとROM読み出せるかテスト回路を送ったりして出来上がったのです。 レベルシフトICとして、8ビットバスを2つ扱えるファミコンカートリッジアクセスのためにあるようなICが使われています。
手元に届いてからは、まずマリオでPRG-ROMのリードアクセスとCHR-ROMのリードアクセスを確認して、
問題なく動作。ROMだからこれはシンプル。
そして次はMMC3を使用してるマリオ3。
これはバンク切り替えのためにPRGバスへのライトアクセスと、
MMC3を動かすためのクロックとしてPhi2信号が必要。
参照できる明確な波形が無かったので、とりあえずなんとなくでタイミングを調整してなんとかマリオ3もプレイできました。
ただしIRQの発生タイミングが3ラインほど上下したりするけど、
このあたりはPPUの実装がまだ実機と異なる部分があるためのようです。
そして最後に、CHR-RAMを使用しているゲームのためにCHRバスへのライトアクセス。
ゲームとしてはFF3やDQ4など。
これもカンでタイミング調整してプレイできました。
ついでにセーブメモリの読み書きに関しても問題なさそう。
前の持ち主の形跡が残るセーブデータや、ラストダンジョンのセーブデータがあったり。
セーブデータって貴重なものなので、吸い出して保存しておくのです。
それからカートリッジからのサウンド出力はイヤホンジャックに接続されているので拡張サウンドもサポート。
VRC7チップを使ってるラグランジュポイントのサウンドを聴くことができました。
NES on FPGA+カートリッジ接続基板:各種MMCの動作とセーブデータの読み込みなど動作確認できた。カセットが1個動くともうそれでおおかた問題なさそうね(手元の一部)。もう何も怖くない。 pic.twitter.com/wTKZpUyiI1
— かんな丸 (@pgate1) 2017年1月28日
注意しなきゃいけなかったのが、 ミネルバトンサーガはUSBバスパワー電源だけでは足りないせいか、 DE1ボードの電源アダプタも接続しないと動かなかった。 あと、DE1ボードで使えたのでコネクタ配置が同じDE0ボードでも使えるかな? と思ったら、DE0のGPIOピンのいくつかはI/O固定のピンがあり、 ユーザピンとして使用できない模様。これはちょっと残念なので、 次の版があればそのピンは避けてもらおう。
MMC5のジャストブリードが動かないけど、これもPPUの問題なので調査して動かしたいところ。