Xilinx FPGA Spartan-6 XC6SLX16 NES clone in ALINX AX309
http://www.neko.ne.jp/~freewing/fpga/xilinx_spartan_6_nes_ax309/
Nexys 3 Spartan-6 FPGA board用の実装を ALINX AX309 cloneで動く様に改変したものです。
オリジナルの https://github.com/brianbennett/fpga_nes に brianbennett#34 のdenghongcai@021a890のパッチを適用しています。
Development Environment:
- ISE 14.7 WebPack (free)
- Visual Studio 2017 Community (free)
[Windows PC] nesdbg.exe -- (38400bps) -- [Nexys 3 Spartan-6 FPGA board] -- VGA display (RGB332,640x480,31KHz)
+-- [actual NES Controller(4021 shift register)]
- denghongcai改造版 https://github.com/denghongcai/fpga_nes
[Windows PC] nesdbg.exe -- (256000bps) -- [Nexys 3 Spartan-6 FPGA board] -- VGA display (RGB444,640x480,31KHz)
+-- USB joypad
- FREE WING改造版 https://github.com/FREEWING-JP/fpga_nes
[Windows PC] nesdbg.exe -- (256000bps) -- [ALINX AX309 clone Spartan-6 FPGA board] -- VGA display (RGB444,640x480,31KHz)
+-- USB joypad
-
fpga_nes is "Only mapper 0 is supported."
Mapper 0 = PRG = 16/32KB、CHR = 8KB -
Transfer .nes Image
Launch nesdbg.exe
rem Launch nesdbg.exe
rem 123 as COM port COM123
nesdbg.exe 123
rem Select File and Load ROM...
- FREE WING改造版 https://github.com/FREEWING-JP/fpga_nes/tree/feature/support_usb_gamepad with USB GamePad ver.
[Windows PC] nesdbg.exe -- (256000bps) -- [ALINX AX309 clone Spartan-6 FPGA board] -- VGA display (RGB444,640x480,31KHz)
+-- USB joypad (Low Speed only)
Copy
./hw/src/usb_gamepad_module.ngc
to
./hw/ise/
Before Synthesize .
http://www.neko.ne.jp/~freewing/fpga/usb_host_fpga/ Support Low Speed USB Gamepad only .
![usb 1](https://raw.githubusercontent.com/FREEWING-JP/fpga_nes/feature/support_usb_gamepad/assets/usb_host_fpga_schematics.png)
![usb 2](https://raw.githubusercontent.com/FREEWING-JP/fpga_nes/feature/support_usb_gamepad/assets/usb_host_fpga_18.jpg)
I don't have 15k ohm resistor . So I use 22k ohm .
![usb 3](https://raw.githubusercontent.com/FREEWING-JP/fpga_nes/feature/support_usb_gamepad/assets/usb_connector_pin_assign.jpg)
![usb 4](https://raw.githubusercontent.com/FREEWING-JP/fpga_nes/feature/support_usb_gamepad/assets/buffalo_bsgp815gy_usb_gamepad_1.jpg)
BUFFALO model BSGP815GY CLASSIC USB GAMEPAD
![usb 5](https://raw.githubusercontent.com/FREEWING-JP/fpga_nes/feature/support_usb_gamepad/assets/usb_host_fpga_receive_3.png)
USB Protocol wave form .
fpga_nes is an fpga-targeted Nintento Entertainment System emulator written in Verilog. It is currently under development, and is most notably missing support for mappers and the DMC sound channel. At this point, it runs most NROM games capably (e.g., Super Mario Brothers, Excitebike).
In addition, this project includes a C++ Windows application called NesDbg, which communicates with the FPGA over USB UART to load ROMs, run unit tests, readwrite memory, etc.
Hardware Setup:
- Nexys 3 Spartan-6 FPGA board. ($119 / $199)
- Micro-USB connection for FPGA power and programming.
- VGA display connection for NES video output.
- Micro-USB connection for communication between NES and NesDbg software.
- PmodBB Bread Board for a solderless joypad connection. ($20)
- NES Joypad Adapter to accept input from joypads. ($5)
- 2 NES Joypads to accept user input. (2 * $5)
- PmodAMP1 to amplify NES PWM audio output. ($20)
- Speaker to play the NES sound. ($6)
Development Environment:
- ISE 14.1 WebPack (free)
- Visual Studio 2010 Express (free)