A bare-metal NES emulator
for Raspberry Pi.

With no unnecessary layers and highly responsive input.

The game list
Game list
A game paused, with the in-game menu open
In-game menu
The options menu
Options
Download

For RPi 3 & 4 · Free · GPLv3

Enjoying it? Buy me a crema caffè

Accurate

Powered by Nestopia, a highly accurate NES emulator supporting hundreds of mappers, battery saves, palettes and optional sprite limit removal.

Low latency

Gamepads are polled every millisecond. Beam racing keeps video output in sync with the HDMI signal for near-instant response.

Pixel-perfect

Crisp, square pixels at 1080p or 720p, or grandma's TV look with blargg's NTSC filter (S-Video, composite, RF). Optional scanlines, all lag-free.

Fast boot

A lightweight bare-metal system that gets you into the game in just a few seconds.

Streamlined

Save states, screenshots, lazy finger (turbo A and B). All driven from the gamepad.

Toaster mode

Got just one game on your SD card? nes-pi boots straight into it!

Get started in 3 steps

  1. Download the nes-pi package and extract its contents to the root of a FAT32-formatted microSD card.
  2. Copy your .nes game files into the nespi folder. No BIOS needed.
  3. Connect a USB gamepad and an HDMI display (on a Pi 4: HDMI 0, the port next to the power socket), insert the card and power on your Raspberry Pi.

Games are not included.

Controls

The first time you connect a pad, nes-pi asks you to press the buttons you want as A, B, Start and Select. Button hints are shown on screen in the menus. Then, in game:

Select
NES Select
Select, held 1s
In-game menu: save and load state, reset, game list, power off
Select + A
Screenshot
Select + B
Lazy finger (hold A or B to repeat) on/off
Select + Down
Status line on/off
Select + Up
Credits

The second pad you connect is Player 2.

nes-pi is free. Learn more about the project. If you enjoy it, you can buy me a crema caffè :)

Buy me a coffee

You might also like neo-pi, a bare-metal NEO·GEO emulator.