NESTang is an open source project to recreate the Nintendo Entertainment System (NES) with Sipeed Tang FPGA boards, including Sipeed Tang Primer 25K, Tang Nano 20K and Tang Primer 20K.
Main features,
- 720p HDMI output with sound.
- Cycle accurate gameplay quality has been achieved since the NES circuits have been almost entirely replicated.
- Rom loading from MicroSD cards with easy-to-use menu system.
- Playstation 2 controllers support and experimental USB gamepads support.
The Tang Primer 25K is the latest small-form-factor FPGA board from Sipeed. It features a modular design that is easily extensible with pmod and sdram modules. Here is what you need to run NESTang,
- The Tang Primer 25K with 4 modules: sdram, dvi, ds2 and sd, with the modules plugged in as follows (pmod positions are important as pins are fixed),
- NESTang program v0.8rc or later, downloaded to the board with Gowin programmer.
- A MicroSD card to hold ROMS, formatted in FAT32. Then put the .nes roms in the root dir.
- Windows does not allow FAT32 on cards >32GB, here's a work-around.
- The roms may appear out of order. If you want them to show in alpabetical or other specific order, you can use DriveSort.
- Connect one or two DualShock2 controllers to the DS2 pmod. Or you can connect one USB gamepad to use the experimental USB gamepad support. The board only has one USB port. So use DS2 if you want two players.
- Insert the MicroSD card, connect an HDMI monitor or TV, and enjoy your games.
The Tang Nano 20K is a popular FPGA board for putting 20K LUTs and HDMI output into a tiny dongle. The board also features FPGA-gaming-friendly SDRAM memory. Here's what you need to run NESTang:
- The Tang Nano 20K board.
- Sipeed ps2 controller adapters connected to the board's pin 15-20 on both sides. Releases since 0.6 also support USB gamepads.
- Playstation or USB controllers connected to the adapters.
- HDMI cable to connect the board to a monitor.
- Latest NESTang program downloaded from github and transferred to the board using either openFPGALoader or Gowin programmer.
- A MicroSD card to hold ROMS, formatted in FAT32. Then put the .nes roms in the root dir.
- Windows does not allow FAT32 on cards >32GB, here's a work-around.
- The roms may appear out of order. If you want them to show in alpabetical or other specific order, you can use DriveSort.
- Insert the MicroSD card and power up the board to start playing your favorite games!
See setup instructions for tang primer 20k
If you want to generate the bitstream from source, see Build Instructions.
Usb_hid_host was development so NESTang could support USB gamepads. Follow the link if you want to use it for your FPGA projects. It supports keyboards and mice too.
See NESTang changes.md.
Here are what I may work on when I get time. No promise though. Suggestions and pull requests are welcome!
- Cheats support.
- Saves and loads.
- fpganes by Ludvig Strigeus.
- hdl-util/hdmi by Sameer Puri.
- NES for Tang Nano 9K by hi631
nand2mario (nand2mario at outlook.com
)
Since 2022.9