Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesSome links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
A Raspberry Pi Pico can run an NES/Famicom emulator and display the result on a modern HDMI television—but not from the Pico alone. The project combines an RP2040 or RP2350 board with external DVI-compatible video hardware, microSD storage, emulator firmware, and a controller.
The original project has also evolved. The current pico-infonesPlus repository supports Pico, Pico 2, and several RP2040/RP2350 boards, with ROM browsing, save data, save states, PAL/Dendy modes, PSRAM support, and Famicom Disk System support on RP2350.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
SANOOV Raspberry Pi Zero 2W Kit | $111.99 | Buy on Amazon |
| 2 |
|
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM | $159.99 | Buy on Amazon |
What this Pico NES emulator actually is
This is a compact, dedicated NES/Famicom console built around a microcontroller. It reads legally obtained .nes ROM files from a microSD card, shows them in an on-screen menu, accepts several controller types, and outputs digital video to an HDMI display through compatible DVI/HDMI hardware.
The project’s lineage is:
- Jay Kumogata created the original InfoNES emulator for Linux.
- Shuichi Takano ported InfoNES to the Raspberry Pi Pico/RP2040 and added controller and DVI/HDMI output support.
- Frank Hoedemakers expanded the project with SD-card storage, ROM browsing, and the menu system.
The original 2023 coverage described a notable Pico experiment. The maintained project is now a broader microcontroller-based retro-console platform.
#1 Best Overall
- Powerful Performance: Equipped with a quad-core 64-bit ARM Cortex-A53 processor, the Raspberry Pi Zero 2 W delivers a significant performance boost compared to its predecessor. And built-in Wi-Fi and Bluetooth support enable easy wireless communication and Internet access for your projects, five Times Faster.
- SANOOV Basic Starter Kit for Pi Zero 2 W Include: 1. Raspberry Pi Zero 2 W Board 2.Mini HDMI to Standard HDMI adapter 3.Micro-USB to Standard USB OTG Adapter 4.Aluminum Heatsink 5.40 Pin Header.NOTICE: The kit does NOT include , supply power, case, SD card, keyboard, mouse or monitor.
- SANOOV for Raspberry Pi Zero 2 W features: 1GHz quad-core, 64-bit ARM Cortex-A53 CPU VideoCore IV GPU 512MB LPDDR2 DRAM 802.11b/g/n wireless LAN Bluetooth 4.2 / Bluetooth Low Energy (BLE) MicroSD card slot Mini HDMI and USB 2.0 OTG ports Micro USB power HAT-compatible 40-pin header Composite video and reset pins via solder test points CSI camera connector.
- Video Output & Efficient Cooling: Supports 1080p30 video output via the mini HDMI port, making it ideal for multimedia applications and streaming.The aluminum heatsink helps dissipate heat, ensuring stable performance even under heavy workloads.
- Compact Size: The tiny size of the Raspberry Pi Zero 2 W makes it perfect for space-constrained projects and embedded applications.Ideal for a variety of uses, including IoT projects, home automation, media centers, educational tools, and more.
How a Pico produces HDMI-compatible video
A bare Pico has no conventional HDMI connector or HDMI transmitter. The emulator uses the Pico’s programmable hardware to generate a DVI-compatible digital-video signal, while a breakout board supplies the physical interface and connector. An HDMI display can normally accept this signal through suitable HDMI cabling.
That means “Pico HDMI output” should not be interpreted as modern GPU-style HDMI. This project does not provide features such as HDR, HDCP, audio return channel, or general-purpose high-resolution graphics. It produces the video signal required for this retro-gaming application.
The simplest video component is the Adafruit DVI Breakout for HDMI Source Devices. Some supported boards, including the Adafruit Feather RP2040 with DVI and Adafruit Fruit Jam, integrate more of the required hardware.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Current hardware options
| Configuration | Difficulty | Best for |
|---|---|---|
| Pico or Pico 2 plus Adafruit DVI and microSD breakouts | Moderate | Learning, experimentation, and replaceable parts |
| Feather RP2040 with DVI | Moderate | A more compact RP2040 build |
| Adafruit Fruit Jam | Lower | Fewer separate modules and a more integrated build |
| Pico Plus 2 plus compatible DVI hardware | Moderate | PSRAM-enabled Pico-class builds |
| Custom PCB | Higher | A permanent console with controller ports and an enclosure |
| Pimoroni Pico DV Demo Base | Historically easy | Existing owners only; it is discontinued |
Other documented options include Waveshare RP2040-PiZero and RP2350-PiZero boards, Adafruit Metro RP2350, SpotPear HDMI boards, and Murmulator M1/M2 boards. Check the current project documentation before buying because firmware files, USB arrangements, storage wiring, and controller support vary by board.
The Pimoroni Pico DV Demo Base should not be treated as the default recommendation for a new build: the current project identifies it as discontinued and no longer sold by Pimoroni.
The straightforward breadboard build
For the clearest first project, use:
- Raspberry Pi Pico, Pico W, Pico 2, or a compatible supported board.
- Adafruit DVI Breakout.
- Adafruit Micro-SD Breakout Board+.
- MicroSD card, breadboard, jumper wires, and headers.
- HDMI cable and USB power/data cables.
- A compatible controller.
This is not plug-and-play. Expect to solder headers, follow the project’s board-specific DVI wiring, and verify power connections carefully.
MicroSD wiring
For the standard Adafruit microSD configuration, the maintained repository specifies:
| SD signal | Pico connection |
|---|---|
| CS | GPIO5 |
| CLK/SCK | GPIO2 |
| DI/MOSI | GPIO3 |
| DO/MISO | GPIO4 |
| 3V | Pico 3V3 OUT, pin 36 |
| GND | Ground |
The breadboard setup also connects Pico pin 38 to the ground rail. Do not infer the DVI pinout from a generic Pico diagram: use the complete wiring for your exact board and firmware in the project repository.
Flashing the emulator firmware
For a standard Pico/Pico 2 with the Adafruit DVI and SD breakouts:
- Download the board-specific UF2 file from the project’s releases.
- Use
piconesPlus_AdafruitDVISD_pico_arm.uf2for a standard Pico or the corresponding Pico W file. - Use
piconesPlus_AdafruitDVISD_pico2_arm.uf2for Pico 2 or the corresponding Pico 2 W file. - Hold the board’s BOOTSEL button while connecting it to a computer over USB.
- Release the button when the
RPI-RP2drive appears. - Drag the correct UF2 file onto
RPI-RP2. - The board reboots. Connect the display hardware, SD card, controller, and power.
For a Feather RP2040 with DVI, use piconesPlus_AdafruitFeatherDVI_arm.uf2. Connect it over USB-C, hold BOOTSEL, press RESET, release when RPI-RP2 appears, and copy the UF2. The repository provides separate firmware files for other supported boards.
Make sure the firmware matches the processor and board. An RP2040 UF2 is not interchangeable with an RP2350 build, and the project generally recommends ARM firmware for normal RP2350 use.
Recommended Free Tools
Preparing the SD card and ROMs
- Format the microSD card as FAT32 or exFAT.
- Create
/roms/NES. - Copy legally obtained NES ROM files with the
.nesextension into that directory. - Use subdirectories if desired.
- Insert the card and select a game from the on-screen browser.
If /roms/NES is absent, the browser can fall back to the card’s root directory. The project can also use optional metadata files for game information and artwork. Save data is automatically persisted to the SD card.
Users are responsible for obtaining ROMs and any BIOS files lawfully. The fact that NES ROMs are small does not grant permission to download or distribute copyrighted game catalogs.
Controllers and multiplayer
Documented controller options include original NES controllers, original SNES controllers on supported NES ports, Sony DualShock 4, DualSense, XInput controllers, compatible Xbox-style and 8BitDo devices, keyboards, and selected Genesis, PlayStation Classic, and Wii Classic controllers.
Rank #2
- Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
- Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
- CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
- CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
- CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
Two-player arrangements can include two NES controllers, two USB controllers through a supported hub, or one USB controller plus one NES controller. The exact arrangement depends on the board and firmware:
- USB controllers can introduce input lag.
- Some builds need a USB OTG Y-cable for simultaneous power and controller connectivity.
- Not every USB hub or PIO-USB arrangement is supported.
- Some boards require a source build with an additional USB-host or PIO-USB mode enabled.
For authentic controller ports, the custom PCB or another documented port-equipped configuration is the better choice. Do not apply one board’s controller wiring to every Pico board.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Performance, PSRAM, and overclocking
The emulator overclocks the Pico to achieve sufficient performance. The maintainer warns that overclocking can reduce the board’s lifespan, and incorrect wiring, voltage, or peripherals can damage hardware.
PSRAM is helpful but not mandatory. Without it, launching a game can involve writing the ROM to flash and rebooting, which may take several seconds. Recently used games may launch faster if already present in flash. With PSRAM, supported boards can load ROMs directly from the SD card into external RAM and reduce startup time.
RP2350 boards with PSRAM, along with configurations such as Pico Plus 2 and Fruit Jam, are therefore better choices when quick game launching matters. A regular Pico remains viable for basic operation.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
NTSC, PAL, and Dendy compatibility
The current project documents NTSC, PAL, and Dendy support on RP2040 and RP2350, but region timing is not identical:
- RP2040 boards run PAL/Dendy games at 60 Hz rather than native 50 Hz because of hardware constraints.
- RP2350 supports native-speed PAL and Dendy operation according to the project’s compatibility information.
- Timing differences can affect gameplay speed, audio pitch, and compatibility.
This should not be described as universal compatibility with every NES game. Mapper support, timing, region, peripherals, and enhancement hardware can all matter.
Features added beyond the original report
The maintained project now includes features that were absent from the short original article:
- Save states.
- Automatic battery-backed SRAM persistence.
- A recently played list for the last 20 games.
- Famicom Disk System support on RP2350.
- NSF music playback.
- WAV playback in the menu on RP2350.
- NES Zapper support in a specific custom-PCB configuration.
- Multi-emulator boot support through
pico-bootLoaderon RP2350.
Famicom Disk System games require a user-supplied BIOS at /bios/fds-bios.rom and are playable only on RP2350 according to the project documentation.
Troubleshooting
| Symptom | What to check |
|---|---|
| No signal | Confirm the correct UF2, DVI wiring, HDMI input, cable, and stable power. On some Waveshare boards, press RUN once after flashing or powering on. |
| It does not boot | Re-enter BOOTSEL mode and flash the firmware matching the exact RP2040/RP2350 board. |
| SD card missing | Use FAT32 or exFAT, verify CS/SCK/MOSI/MISO, 3.3V, ground, and the .nes extension. Try /roms/NES and then the root directory. |
| USB controller fails | Check power, the required OTG Y-cable, hub compatibility, and whether the board needs a PIO-USB firmware variant. |
| RP2350 with PSRAM locks up | Some non-Winbond flash boards need the documented one-time QE-bit fix. Flash FLASH_QE_SET_1.uf2 in BOOTSEL mode, then flash the emulator normally. Never run the QE-setting UF2 twice. |
| Games launch slowly | This is expected on configurations without PSRAM because ROMs may be staged through flash and the board may reboot. |
The QE-bit procedure is especially important: repeating it can require a flash erase using a universal flash-nuke image. Affected boards may also be limited to a 252 MHz overclock instead of 378 MHz.
Is this project worth building?
Build it if you want a small, open-source engineering project, a dedicated NES appliance, original-style controller support, or a practical demonstration of what RP2040/RP2350 hardware can do.
Choose a conventional Raspberry Pi 4, Pi 5, or Pi Zero 2 W retro-gaming setup if you want easier installation, broader emulator support, simpler controller pairing, and fewer wiring decisions. Choose FPGA hardware if timing accuracy and latency matter more than cost and flexibility. Choose original hardware if cartridge compatibility and authentic operation are the priority.
The Pico project’s appeal is not that it replaces every other NES solution. It is that a tiny microcontroller can boot directly into a focused emulator, browse games from removable storage, and drive a modern display with surprisingly little hardware.
Quick Recap
Further project references
- Current pico-infonesPlus repository
- Original project coverage
- Original Pico InfoNES port
- Custom PCB files
- Project-linked 3D-printed case
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

