Giter Site home page Giter Site logo

nes260's Introduction

NES260 - NES emulator for Xilinx KV260 FPGA board

This is a port of fpganes to the KV260 FPGA board.

Current status:

  • Most of the small games works (<64K), like Super Mario Bros, Adventure Island, Gradius, Battle City.
  • Video works well through HDMI.
  • Audio is done through a separate PMod module (IceSugar Audio).
  • Game loading and controller is handled through a python GUI on PC.

Running NES260

Download the binary release zip file. Inside there's a BOOT.bin image for booting the KV260 board, and nes260.py for running on Windows.

KV260's boot process is different from most FPGA boards. It always boots from on-board QSPI flash and there's no switches/jumpers for other ways. So easiest way to boot BOOT.bin is to program it to QSPI flash. Follow Xilinx's instructions to do it. (You will need an Ethernet cable). If you have Xilinx's Vitis/Vivado development tools installed, you can actually switch to SD bootmode. The MicroSD card preparation is as simple as formating it as FAT and copy the BOOT.BIN to it.

If you see a grey screen after boot, then NES260 is ready for loading .nes ROMs. Connect KV260 to PC with USB cable and run pc/nes26.py with python to load games (pip install pyserial itertools inputs kaitaistruct importlib, then python nes26.py). USB game controller should be connected to the PC (not KV260). My Xbox 360 controllers work fine.

To get audio, connect a IceSugar Audio 1.2 module to the PMOD port. It provides both a small speaker and a 3.5mm jack.

Interested in retro-gaming or learning FPGA programming?

You can,

  • Read my notes on some technical details on how NES260 works, and compile/build the project yourself. The required Xilinx tools are free.
  • Get the KV260 board. KV260 is currently available from Xilinx at $199. It is not cheap. But it is a powerful board with basically a Xilinx Ultrascale+ ZU5EV SoC. Similar boards sell for twice the price or more. You can learn a lot with it if you have programming experience.
  • Check out the most mature FPGA gaming project Mister. You can find many Youtube videos on FPGA gaming. Mister supports a ton of consoles from Atari all the way to Playstation 1.
  • Why make NES260 when there's already Mister? Actually Xilinx KV260 is much more powerful than the board Mister uses (Intel DE10-nano), and at roughly the same price. So it has potential for FPGA retro-gaming. The board was just released in 2021 and I haven't seen an emulator built with it. So here it goes.
  • Also check out another FPGA project of mine, neoapple2.

Video demo

NES260 demo

Feng Zhou, 2022-7

nes260's People

Contributors

zf3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nes260's Issues

Bitstream Error

Running generate bitstream resulted in an error message. Have you seen this?

[DRC INBB-3] Black Box Instances: Cell 'mac/DSP48A1_inst' of type 'DSP48A1' has undefined contents and is considered a black box. The contents of this cell must be defined for opt_design to complete successfully.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.