NES EMULATOR
pico-infonesPlus
NES emulator for RP2040 / RP2350 microcontroller boards (Raspberry Pi Pico, Pico 2 and compatible). Provides SD card ROM browsing, on-screen menu, HDMI/DVI video output, controller support, optional PSRAM use for faster ROM loading, FDS support with user-supplied BIOS, and prebuilt UF2 binaries for many boards.

WHY IT MATTERS
Why pico-infonesPlus?
pico-infonesPlus adapts the InfoNES core to tiny RP2040/RP2350 microcontroller boards and adds a full SD-card browser/menu, HDMI/DVI video output support, controller compatibility (USB and legacy NES/SNES), save-state/ battery-backed SRAM support, and optional features for newer RP2350-based boards (PSRAM, USB drive mode, multi-emulator bootloader). It targets compact, DIY hardware builds where a Pico-style board drives an HDMI display and reads ROMs from microSD.
BEST FOR
Best for
Hobbyists building compact RP2040/RP2350-based NES consoles (Raspberry Pi Pico, Pico 2, Adafruit/Waveshare/Pimoroni compatible boards), users who want on-board SD browsing and HDMI/DVI output, and makers who need prebuilt UF2 images for specific development boards.
The people behind pico-infonesPlus
History & upstream
pico-infonesPlus is a fork/extension of InfoNES (original NES emulator) and of earlier Pico ports (e.g., pico-infones). The project integrates a long list of hardware-specific adaptations and configuration options to run NES ROMs from an SD card on RP2040/RP2350 devices, and it has an active GitHub repository with many commits, a history file and frequent releases. The repository documents contributors and links to related pico-* emulator projects (Game Boy, SMS, Genesis) and to a pico-bootLoader that can host multiple emulators on RP2350 platforms. The README documents supported boards, controller wiring, PSRAM behaviour, FDS BIOS handling, and other hardware-specific notes.
What pico-infonesPlus supports
- Raspberry Pi Pico (RP2040) — HDMI/DVI breakout + SD card
- Raspberry Pi Pico 2 / Pico 2 W (RP2350) — supports PSRAM, USB drive mode on some boards
- Adafruit DVI/Feather RP2040 boards and compatible DVI/HDMI breakouts
- Waveshare RP2040 / RP2350 PiZero development boards
- Pimoroni Pico Plus 2 and other boards with compatible pinouts
- USB gamepads (XInput, DualShock 4, DualSense and many USB controllers) and legacy NES/SNES controllers (hardware permitting)
Download and availability
OFFICIAL DOWNLOADS
Get pico-infonesPlus
Official prebuilt binaries and UF2 images are published on the project's GitHub Releases page. Choose the UF2 or binary matching your board (RP2040 vs RP2350 and specific breakout/PCB). For custom configurations or to enable optional features (extra USB port, pio-usb) build from source with the provided CMake files.
Get pico-infonesPlus ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗pico-infonesPlus setup guide
Setup note: Practical setup checklist — follow the README and the release notes for the UF2 image that matches your board. Below are the core steps and hardware-specific notes pulled from the project documentation.
- 1) Choose the correct prebuilt image or build from source: Open the project's Releases page and download the UF2/binary for your exact board (RP2040 vs RP2350 and the named breakout/custom PCB). If you need USB-drive mode, a second USB port, or pio-usb support, check release notes and build options — those are sometimes available only in custom builds or by compiling from source.
- 2) Prepare the microSD card: Format the card as FAT32 or exFAT. Create /roms/NES (the browser starts there); subfolders are supported. Copy your NES ROM files there. If you plan to use Famicom Disk System images, create a /bios folder and place a user-supplied FDS BIOS named fds-bios.rom (the emulator does not include any BIOS files).
- 3) Flash the board: Put your Pico or compatible board into UF2 bootloader mode and copy the downloaded UF2 file. For RP2350 boards that support pico-bootLoader, follow that project's instructions to add pico-infonesPlus alongside other emulators if desired.
- 4) Wiring and video output: Connect the board to a DVI/HDMI breakout or use a development board with built-in DVI/HDMI. The README lists tested breakout boards and exact wiring for Adafruit Feather DVI, Pimoroni pico DV breakout, Waveshare boards and custom PCBs. Pay special attention to GPIO usage for HDMI and controller pins as documented; some pin conflicts can affect controller polling or video if pins 32+ are used.
- 5) Controllers and input: USB controllers (XInput-style, PS4/PS5 controllers) are supported on many boards; some configurations require a powered USB hub or a second USB port. Legacy NES/SNES controllers are supported on configurations that expose NES ports (some PCBs require soldering). The emulator can auto-detect NES vs SNES controllers in supported setups. See the Gamecontroller Support section for exact wiring and list of tested controllers.
- 6) PSRAM and performance: RP2350 boards with PSRAM can load ROMs into PSRAM for immediate execution (fast startup). Boards without PSRAM flash the ROM into on-board flash at first run, causing a several-second delay while flashing; subsequent runs are faster. The README explains PSRAM detection and a one-time fix for some flash/PSRAM chip combinations.
- 7) Optional features: USB-drive mode, NSF/WAV playback and Zapper: USB-drive mode presents the SD card to a host computer — check which builds enable it (RP2350-only for pio-usb). The emulator supports NSF audio playback in the menu and WAV playback on RP2350. Beta NES Zapper (light gun) support exists for a particular custom PCB and requires LCD-lag-corrected ROM patches and a compatible third-party gun; original hardware or flat-panel displays will not work without modifications.
- 8) Save files and SRAM: Save data and manual save states are persisted to the SD card. The emulator documents battery-backed SRAM behaviour and where saves are stored on the card. Do not expect any commercial game, BIOS, or other copyrighted firmware to be included with the project — supply your own legally-obtained ROMs and BIOS files.
Software reminder: Follow the project's README and release notes for board-specific UF2 images and wiring. The repository includes CMake build files to compile from source for custom options; building requires the Raspberry Pi Pico SDK and toolchain. The emulator does not include FDS BIOS or commercial game ROMs.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for pico-infonesPlus as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation
