/fpga_nes

FPGA-based Nintendo Entertainment System Emulator

Primary LanguageVerilogBSD 2-Clause "Simplified" LicenseBSD-2-Clause

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:

alt text

  1. Nexys 3 Spartan-6 FPGA board. ($119 / $199)
  2. Micro-USB connection for FPGA power and programming.
  3. VGA display connection for NES video output.
  4. Micro-USB connection for communication between NES and NesDbg software.
  5. PmodBB Bread Board for a solderless joypad connection. ($20)
  6. NES Joypad Adapter to accept input from joypads. ($5)
  7. 2 NES Joypads to accept user input. (2 * $5)
  8. PmodAMP1 to amplify NES PWM audio output. ($20)
  9. Speaker to play the NES sound. ($6)

Development Environment:

  1. ISE 14.1 WebPack (free)
  2. Visual Studio 2010 Express (free)

ZYBO Board Port:

This is under development by Greg Taylor. Some changes to the hardware setup:

  1. ZYBO Zynq-7000 FPGA board instead of Nexys 3. ($125 / $189)
  2. PmodUSBUART for UART connection to ZYBO FPGA. ($22)
  3. You do not need the PmodAMP1 as the ZYBO has a built in DAC.

Changes to development setup:

  1. Vivado 2015.1 WebPack (free) instead of ISE.