HOME 2024/01/09  

NES on FPGAそんなベタなファミコンはイヤだ!

このディスプレイは使いやすかったよ。Ver.Upしたヤツ買ったけど縮小センタリングしてくれなかった。

 ファミコン互換機を自作して、プロセッサ、グラフィック、 サウンドについてのアーキテクチャやディジタル信号処理の基礎を体得! ここでは、実装で確認したファミコンに関する情報と、 実装についての解説を公開しています。

 トリプルプレイってやつ?

NEXT GENERATION ! SNES on FPGA

_
仕様

[NES] [CPU] [PPU] [APU] [PAD] [カートリッジ] [参考文献]

_
構成

・初代 Spartan-IIE300版 -ファミコンするならFPGA-
ビデオ出力 VGA 解像度640x480 最大512色 /サウンド出力 モノラルorステレオ、NSF再生機能(内蔵音源のみ)、ΔΣ型1ビットDAC、φ3.5mmステレオミニ端子 /ゲームコントローラ プレイステーションDUALSHOCK2、フォースフィードバック(振動)対応、2Play対応、マイク未対応 /ゲーム速度 ノーマルor低速モード /IF カートリッジコネクタ(3.3-5V変換)、RS-232C /ハードウェア記述言語 SFL、VHDL、Verilog HDL /開発環境 Windows2000、Cygwin、PARTHENON、VC++6.0、 SFL2VHDL、Pentium4 2.4GHz、メモリ512MB、Xilinx ISE 7.1、 CQ出版社 Spartan-IIE300評価キット

・二代目 DE1ボード CycloneII 2C20版 -サウンドマネジメント-
ビデオ出力 VGA 最大4096色 /サウンド出力 16bit Audio CODEC /NSF再生機能 NSFファイル最大1MB、拡張音源内蔵(N106、MMC5、FDS、VRC6、SN5B、VRC7)、複数曲対応 /IF SDメモリーカード(最大1GB、FAT16、ファイル数たくさん)、PC上のNSF Playerからのデータ送信 /ハードウェア記述言語 SFL+、VHDL、Verilog HDL /開発環境 sflp、sfl2vl、Athlon64 4000+、メモリ1GB、Altera QuartusII 7.2、 Terasic DE1 Board (拡張及び変更点についてのみ)

・DE0ボード移植版 -今更感あるよな-
Cyclone III 3C16 /サウンド出力 GPIO /NSF再生機能 /IF SDメモリーカード、USB経由でPCから転送 /開発環境 Windows7、Core i5 3320M、メモリ4→16GB、Altera QuartusII 12.1sp1、 Terasic DE0 Board

・1chipMSX移植版 -ようやくですよ-
Cyclone 1C12 /サウンド出力 /NSF再生・サウンドグラフィック機能 /IF SDメモリーカード /ジョイパッド、PS/2キーボード /開発環境 Windows10、Core i5-9600K、メモリ32GB、Altera QuartusII 11.0sp1、 1chip MSX

・Tang Nano シリーズ移植版 -20th Anniversaryには財布に優しい世界を-
Tang Nano 4K、9K、20K /HDMI出力+Audio /microSDHCメモリカードとFAT32サポート /USB-UART経由のROM転送とキー入力 /開発環境 Gowin EDA Designer 1.9.9.03、 Sipeed Tang Nano 9K

 ファミ…コン…?

_
実装

[はじめに] [開発環境] [NES] [CPU] [PPU] [APU] [RAM・ROM] [カートリッジコネクタ] [VGA] [PSPAD] [SDカード・FATファイルシステム] [NSF Player] [FM音源VM2413] [feat. 1chipMSX] [feat. TangNanoシリーズ] [その他] [動作確認] [紀行史] [おわりに]

_
動作

NES on FPGA feat. DE1 [youtube]

NSF Player on FPGA feat. DE1 [youtube]

_
配布

NES on FPGA feat. DE0-CV
 Terasic社製FPGAボード「DE0-CV」で.nes .nsfを実行します。 32MB〜2GBのmicroSDカードをFAT16にフォーマットして使用してください。 もしくはWindowsPCから送信できます。
 Ver.20190810 VRC7のプリセット値を修正。
 Ver.20190703 逆位相サラウンド実装。
 Ver.20181223 USB経由で.nes .nsfを送信できるようにしました。
 Ver.20170913 FAT16コアを修正。PS/2キーボードサポート。

NES on FPGA feat. DE1
 Terasic社製FPGAボード「DE1」で.nes .nsfを実行します。 32MB〜2GBのSDカードをFAT16にフォーマットして使用してください。 もしくはWindowsPCから送信できます。
 Ver.20190810 VRC7のプリセット値を修正。
 Ver.20190703 PS/2キーボードでの操作をサポート。
 Ver.20181223 USB経由で.nes .nsfを送信できるようにしました。

NSF Player on FPGA feat. DE0
 Terasic社製FPGAボード「DE0」でNSFファイルを再生します。 NSFファイルはSDカードから読み込み、もしくはWindowsPCから送信できます。 標準IOピンから出力しますので、ローパスフィルタを付けてアンプに接続してください。
 Ver.20190810 VRC7のプリセット値を修正。
 Ver.20190703 逆位相サラウンド実装。
 Ver.20171126 USB経由でNSFファイルを送信できるようにしました。
 Ver.20170624 DE0にLCDが実装されている場合、曲名と作成者を表示するようにしました。
 Ver.20170104 SuperNSFのようなDMCストリーム形式をサポートしました。
 Ver.20160103 ピンアサインを拡張基板EXT-1向けに変更しました。 また、NSD.LibやFamiTrackerで作成したNSFをサポートしました。

_
履歴

2024.1.9TangNano4K,9K,20Kに移植
2022.9.161chipMSXに移植
2013.1.13IGS MMC3 実装
2012.12.5Tatio X1-005 実装
2012.12.2Konami VRC2 type B 実装
2012.11.22Bandai chip 実装
2012.9.15Namcot 106/163 実装
2009.10.8Konami VRC3 実装
2009.10.4Konami VRC4 実装
2009.9.28Sunsoft FME-7 実装
2009.9.22Nintendo MMC4 実装
2009.6.8Nintendo MMC3 実装
2008.11.6Nintendo MMC1 実装
2008.5.4VRC7音源実装 最初で最後のFM音源
2008.4.18SUNSOFT5B音源実装 炸裂ゆめたろー
2008.4.13VRC6音源実装 グロウズ□△
2008.4.5FDS音源実装 ビブラートきかせて
2008.3.28NAMCO106音源実装 カスタムオロチ
2008.3.2MMC5音源実装 ドリアーップ!
2008.2.25NSF再生サポート
2008.2.4SDメモリカードからのブートに対応
2006.11.25Altera DE1に移行
2006.8.15sflp SFLプリプロセッサで記述しやすく
2005.3.15カートリッジコネクタVer.3製作 5V対応
2004.10.6APU追加 やっぱりサウンドがないとね
2004.9.25カートリッジコネクタVer.2製作 複数ゲームに対応
2004.9.20PSパッド用インタフェース実装
2004.9.12PPU(スプライト)実装 マリオFPGAに立つ
2004.8.19FPGAにてマリオのタイトル画面を表示
2004.8.13secondsにてマリオのタイトル画面の描画を確認
2004.8.10カートリッジコネクタVer.1製作 要はマリオ直接続
2004.8.8PPU(バックグラウンド)実装
2004.7.30CPU(6502)をSFLで記述
2004.7.22エミュレータを作成し動作を確認
2004.5.3参考資料を集める
1991.7.30ファミリーコンピュータを親から買ってもらう
1983.7.15ファミリーコンピュータ発売
!

だいぶ再現性は上がってきたので、 実機じゃ無理なこと、やっちゃいましょう。

拡張音源内蔵してもSNESの半分の規模にもならない… ってことはもっと実装できるってことですね! マルチコア化?とか。

NSFプレイヤーとして使ってくれる人っていますかねぇ誰か誰か。

しかしTerasicのボードかっこいいな。

もう最近は新しい言語を習得するためなどでカジュアルにNESエミュを実装する人が増えましたね。

_
注意

 ここで公開している情報は実装によって動作を確認していますが、 想定外の動作により機器の破損につながるおそれもあります。 実装および運用は自身の判断にて行ってください。

! 時がくればあるいは。


*ファミリーコンピュータ、ファミコン、NINTENDO ENTERTAINMENT SYSTEM は任天堂の登録商標です。

E-mail

Copyright(C)2004-2024 pgate1 All Rights Reserved.