BAKUTEN工房 では『家電のケンちゃん』『BEEP ゲームグッズ通販』で 委託販売 を行っています

NES DOOMを作成してファミコン実機で動かしてみた

ファミコン
スポンサーリンク
スポンサーリンク

一年ぐらい前にリリースされていたNES DOOM

rasteri/PiPU
Project to use a Raspberry Pi as a NES graphics accelerator - rasteri/PiPU

作成説明動画もYouTubeにあります

 

前に見たときは凄いなぁと思ってましたが作成までには至らず…

今回部材も揃ったのでNES向けでしたがファミコン用に作成してみました。

サイトの説明どおりに進めていきます。

作成に必要な物は…

1:MAP#00(マッパー0)のカセット

2:Raspberry Pi 3 Model A+

3:microSDカード(8GB以上)

4:FX2LP CY7C68013A USB Development Board

5:miniUSBケーブル

6:UV-EPROM(27C256等)

7:ROMライタ(TL866CSやTOP3100等)

8:EPROMイレーサー(またはそれに代わる機器)

Raspberry Pi 3 Model A+ と FX2LP CY7C68013A USB Development Board はAmazonで購入出来ます。

Amazon | Raspberry Pi 3 Model A+ | Raspberry Pi | インターフェースカード 通販
Raspberry Pi 3 Model A+がインターフェースカードストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
Amazon.co.jp: SODIAL(R)開発ボードUSB2.0 EZ-USB FX2LP CY7C68013A: パソコン・周辺機器
Amazon.co.jp: SODIAL(R)開発ボードUSB2.0 EZ-USB FX2LP CY7C68013A: パソコン・周辺機器
Amazon | iBUFFALO USB2.0ケーブル (A to miniB) スリムタイプ ブラック 1m BSUAMNSM210BK | バッファロー | USBケーブル 通販
iBUFFALO USB2.0ケーブル (A to miniB) スリムタイプ ブラック 1m BSUAMNSM210BKがUSBケーブルストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。
Amazon.co.jp : TL866

 

MAP#00のカセットは何でもいいですが、PRGROMが32KBの方が加工が少なくて楽です。

※現在NesCartDBのサイトにつながらないのでリンクはINTERNET ARCHIVEになっています。

NesCartDB - Search Results

 

UV-EPROMを1個準備してください。

UV-EPROMは27C256等で問題ありませんが、書き込まれた内容を消去する必要があります。

ROMイレーサー等が必要ですが紫外線をあてれば消去は可能なので方法は検索してみてください。

aitendoにお安いROMイレーサーがあるようです。

ロムイレーサー
●概要●仕様・機能紫外線消去式、10分ほどでROMのデータを6〜8個まとめて消去できる、小型・軽量で持ち運びにも便利、引き出しの寸法:95x57x10mm、動作電源:AC100V、表記価格:1

 

ピンアサインはこちらを参考に…

これらのデバイスを書き込むためのROMライタも必要です。

 

 

準備が出来たらまずUV-EPROMにROMイメージを書き込みます
rasteri/PiPU
Project to use a Raspberry Pi as a NES graphics accelerator - rasteri/PiPU

こちらのサイトから PiPU-v0.1.zip をダウンロードします。

PiPU-v0.1.zip を解凍してromフォルダに入ってる DOOMNTSC.nes.prg.bin がそれです。

 

ROMライタで書き込みが終わったら用意したMAP#00基板にハンダ付けします。

MAP#00基板のROMはすべて取り外してください。

PRGROMが32KB以外の16KBの基板はPRGROMの27pinVCCにつながっているのでカットします。

カットしたPRGROMの27pinからエッジコネクタの35pin(CPU A14)に配線します。

PRGROMが32KBの場合はカットなど加工せずそのままUV-EPROMをハンダ付けしてください。

 

※ICソケットを付けてますがテストの為です、そのままハンダ付けしてください。

 

ハンダ付けが終わったら実機で動作確認します(基板の前後を間違えないように)

画面が真っ黒で音楽がずっと鳴ってれば問題ないです。


 

Raspberry Pi 3 Model A+に使用するSDカードイメージを作成します

ダウンロードした PiPU-v0.1.zip を解凍して、osフォルダに入ってる sdcard.img.gz がそれです。

sdcard.img.gz を解凍すると sdcard.img がSDカードイメージです。

SDカードイメージをSDカードへ書き込むために USBWriter を使います。

ダウンロードはこちらから…

USBWriter
Download USBWriter for free. USBWriter lets you write an image file to an USB drive on Windows. USBWriter is tiny Windows tool that lets you write an image file...

 

ダウンロードした USBWriter-1.3.zip を解凍して USBWriter.exe を実行します。

Source file で sdcard.img を選択、Target device でSDカードを選択して Write で書き込み開始です。

書き込みが終わったmicroSDカードをRaspberry Pi 3 Model A+に挿してまずは完了です。

 

FX2LP CY7C68013A(以下 CY7C68013A) に書き込みします

FX2LP開発キット CY3684Setup.exe をダウンロードします

https://www.cypress.com/file/135301/download

CY3684Setup.exe を実行してインストールします。

 

CY7C68013A の基板上に JP2 がありますがこれが EEPROMの有効無効ジャンパです。

JP2 をショートさせるとEEPROMを無効にします(外すとEEPROM有効です)

JP2 をショートさせたままPCにminiUSBケーブルで接続します。

※LEDが点かない場合は基板上の電源スイッチを押してください。

CY7C68013A のドライバーをインストールしますがドライバーの場所は

C:\ Cycles \ USB \ CY3684_EZ-USB_FX2LP_DVK \ 1.1 \ Drivers

にありますのでドライバーの場所を指定します。

ドライバーのインストールが終わったら USB ControlCenter を起動します。

C:\ Cycles \ USB \ CY3684_EZ-USB_FX2LP_DVK \ 1.1 \ Windows Applications \ Application Source files \ c_sharp \ controlcenter \ bin \ Release \ CyControl.exe

にインストールされていますので CyControl.exe を実行します。

CY7C68013A のドライバーがインストールされていれば画像のような表示になります。

表示が違う場合はドライバーを再インストールしてください。

Vend_Ax.hex を CY7C68013A に書き込みます。

ダウンロードした PiPU-v0.1.zip を解凍してfx2フォルダに入ってる Vend_Ax.hex がそれです。

Program->FX2->RAM で Vend_Ax.hex を選択します。

選択後に書き込みが始まり左下に Programming Succeeded と表示されれば完了です。

 

次に slave.iic を CY7C68013A に書き込みます。

CY7C68013A の電源は切らずにそのまま JP2 のジャンパを外してEEPROMを有効にします。

ダウンロードした PiPU-v0.1.zip を解凍してfx2フォルダに入ってる slave.iic がそれです。

Program->FX2->64KB EEPROM で slave.iic を選択します。

選択後に書き込みが始まり左下に Programming Succeeded と表示されれば完了です。

基板上の電源スイッチを切って再度入れてください。

書き換えが成功していれば画像のような表示になります。

JP2 のジャンパはこの後は外したままで使用します。

これで CY7C68013A の準備は完了です。

 

CY7C68013A と MAP#00基板の配線を行います

サイトにも記載されていますが…以下抜粋

Note that a number of FX2 boards I’ve ordered have had slightly wrong pin labelling – RDY0 and RDY1 were swapped. I would advise double-checking these pins are connected to the correct pins on the FX2 chip itself. RDY0 should be pin 8 and RDY1 should be pin 9.

RDY1 と RDY0 のシルク表示とチップまでの配線が違う場合があるようです。

本来は RDY0 が  CY7C68013Aチップの 8pinRDY1 が 9pin につながっているようです。

テスターなどでチェックして、もし逆であれば以下の RDY1 と RDY0 の配線を入れ替えてください。

※私がAmazonで購入した CY7C68013A は配線が違っていました。

FX2LP CY7C68013A pinCHRROM pin 
GND, PA414pinGND
PA1, PA2, PA5, RDY0(RDY1)22pinPPU /RD
RDY1(RDY0)エッジコネクタ47pinPPU /WR
PB011pinPPU D0
PB112pinPPU D1
PB213pinPPU D2
PB315pinPPU D3
PB416pinPPU D4
PB517pinPPU D5
PB618pinPPU D6
PB719pinPPU D7

上記を参考に CHRROM と CY7C68013A を配線します。

CY7C68013A の RDY1(RDY0) だけはMAP#00基板のエッジコネクタ47pinに配線してください。

 

MAP#00基板のエッジコネクタ48pin49pinがつながっているのでパターンカットします。

次に48pinVCC(+5V)へ配線します。

 

Raspberry Pi 3 Model A+ に電源を配線します

MAP#00基板から VCC(+5V) と GND を Raspberry Pi に配線します。

 

 

miniUSBケーブルで Raspberry Pi と CY7C68013A を接続します。

最後に配線に問題が無いか確認して実機で動作確認。

 

 

最初は画面が真っ黒で音楽が鳴り始め10秒ほどで画面が出てくれば完成です!!

効果音とかが無くBGMだけで寂しいですが…ファミコン実機でヌルヌル動くの凄いですよ。

ケースにおさめたいけど何がいいかなぁ…と思案中です。

コメント

  1. これ fake じゃなくて本当に動きますか?
    アドレスバスすらつながっていなくてどうやって適切なデータを出力するタイミングをとっているのかとか、本体側のパッド入力をどこでどうやって受け渡しているのかとか不明なので fake っぽく思ったのですが。

    • コメントありがとうございます。
      どういう仕組みか私も疑問だらけですけどちゃんと操作もできますし実機で動きますよ。疑問だったら製作者に聞いてみてはどうでしょう?
      あとfakeだったら製作記事書かないですし…是非作って試してください。

      • なんだか失礼な言い方になってしまったようでスミマセンでした。

        rasteriさんの動画をみてみながらもう一度考えてみたんですが、データバスはPPUへの出力だけじゃなくPPUからの入力もしてるような感じでした。
        NMIのタイミングでパッド入力のデータをスプライトデータか何かの形でPPUへ渡すことで、タイミングの基準もわかるような気がしてきました。

        CY7C68013Aの配送が数ヶ月先の可能性があるのとPi3AはもってないのでPi3Bで代用する予定(そもそも日本のファミコンのカートリッジには3Aでも全然入らないでしょうし)だったりしますが制作に挑戦してみようと思います。

        有益な情報ありがとうございました。

タイトルとURLをコピーしました