v0.4
CHANGELOG
A resident .uf2 bootloader / front-end for the RP2350 retro-emulator family (pico-infonesPlus, pico-pcePlus, pico-genesisPlus, pico-smsplus, pico-peanutGB, …).
General Info
Binaries for each configuration and PCB design are at the end of this page.
v0.4
A release of both halves: the loader and the SD card. The loader picks up the current shared
menu and support code, and every application on the card is rebuilt from its latest release. The
headline is Sega Genesis/Mega Drive, which now runs at full speed on HSTX boards.
Do you need to update? Yes, both parts — download the new
pico-bootLoader_sdcard.zip
below and replace the/emufolder on your card, and re-flash the board with the loader.uf2
for your hardware. The card is where nearly all of this release is: Genesis went from
struggling to full speed, every emulator gained a recently played list, and DVI-only
monitors that stayed black now show a picture. Your ROMs, save states and artwork are
untouched — only/emuis replaced.
The loader
- DVI-only monitors show a picture again. In DVI mode, some older screens that accept DVI but not HDMI stayed black.
- Steadier start-up. The board lets its power settle before switching to the higher clock speed.
What's new on the card
All ten applications are rebuilt from their newest releases — the exact versions are in the table
at the end of this page and in /emu/versions.txt on the card. Every emulator picks up the same
shared fixes the loader did, and two things the loader has no use for:
- A recently played list. The last 20 games you started, newest first, kept separately for
each emulator. Open it with X in the ROM browser — that is button 3 on any pad: X on a SNES
controller, Y on XInput, Triangle on PlayStation, C on Genesis — or from the new Recently
played entry at the top of the settings menu, which is the route for pads without a button 3.
In the list A starts the game, SELECT removes it, START shows its artwork and B
closes the list. Each list is plain text at the root of the card (/recent_NES.txt,
/recent_SNES.txtand so on), so it survives a reboot and can be edited or deleted on a PC. A
game that is no longer on the card is reported as missing rather than started. A damaged list
simply comes up empty — unlike the settings file, nothing else is reset. - No more waiting for a re-flash you don't need. On boards without PSRAM, starting a game
always rewrote it into flash, even when that exact game was already there. The emulator now
records what it wrote and skips programming when the selected game is exactly the image already
in flash — verified with a checksum, not just a file name — which saves several seconds of black
screen every time you restart the same title. That game is marked [READY] in the recently
played list.
Sega Genesis/Mega Drive is transformed. pico-genesisPlus v0.14 rebuilds the emulator core:
- Full speed on HSTX boards, including in games with heavy sound — a Raspberry Pi Pico 2 or
Pimoroni Pico Plus 2 (on the PicoNES PCB or on a breadboard), the Adafruit Fruit Jam, the
Adafruit Metro RP2350 and the Murmulator M2. Sound is now produced on the second processor
core, which leaves far more room for the game itself. - Sound works properly at last — music, noise effects, the "SEGAAA!" voice and the audio of
SGDK games, without dropouts in busy scenes. - Games can save your progress, PAL (European) games run at the right speed, 256-wide games
fill the screen, and starting one game after another is stable. - Still slow on boards without HSTX — the Pimoroni Pico DV Demo Base, Waveshare RP2350-Zero /
PicoNES Mini, Waveshare RP2350-USB-A / PicoNES Micro, the Spotpear HDMI board and the
Murmulator M1. Putting the picture on screen takes so much of the board's attention that too
little is left for the emulator. The games are playable but the action, music and sound all
drag, and this is not something that can be tuned away.
The rest:
- Nintendo Entertainment System (v0.47) gains beta support for the NES Zapper light gun in
controller port 2. It needs the custom PicoNES PCB (design v2.1 or later) and so is only in the
piconesPlusbuild for the Adafruit DVI + MicroSD breakout / PicoNES PCB — on every other board
those two pins are already in use, and the Murmulator M1 and M2 leave them unconnected
entirely. There is nothing to switch on; the gun is detected when plugged in, and a normal pad
in port 2 keeps working alongside it. Two things to know before buying one: games need the
LCD-lag correction patches from neslcdmod.com, and an original
Nintendo Zapper does not work on a flat panel — it is built around the bright flash of a CRT.
A third-party gun made for modern displays is required; the Tomee Zapp Gun is what this was
developed and tested with. See
NES Zapper for patching
and calibration. Also in this release: a.nesfile claiming mapper 31 correctly reports
"unsupported" again instead of booting into the NSF player, and the framerate overlay now shows
a resync counter (R<n>) — a steadily rising number means the display is struggling to hold
sync. - Doom! (v0.2) and Duke Nukem 3D (v0.3) — a new BOOTSEL Mode item at the bottom of
the Options menu restarts the board as the USB firmware drive, so you can re-flash it without
unplugging it and holding the BOOT button. - Super Nintendo, PC Engine, Master System/Game Gear, Game Boy and Videopac — the shared menu
and controller work above; the emulator cores themselves are unchanged. On the SNES the 504 MHz
overclock option is now documented as not advised, and the 378 MHz default is unchanged. - Controllers. A SNES pad wired straight to a NES controller port now uses A and B as you
would expect, in games as well as in the menu — previously the pad reported B and Y where a NES
pad has A and B, so physical A did nothing at all and "choose" landed on B. In the menu A
chooses, B goes back and X opens the recently played list, as on USB and Wii pads; on a
Genesis pad C opens it. The Controller Test now names the buttons for the kind of pad it
detects and shows the raw data the pad sends, which makes an adapter cable that quietly
converts the signal easy to spot, and leaving that screen no longer drops into the screensaver.
v0.3
A release about the hardware around the bootloader rather than the bootloader
itself. Nothing in the loader's behaviour changed since v0.2.
Do you need to update? Nothing here changes what the board does. The
loader.uf2s differ from v0.2 only in the version shown in the menu title
and on the help screen, and the SD-card archive is a rebuild of the same
emulators from their current release tags — they behave as before, they just
report a version instead of an older one. Re-flashing and replacing/emu
are both optional; the interesting part of this release is the documentation
and the PCB gerbers below.
Added
- The three custom PCB designs are documented and shipped with the release.
The README has a Custom PCBs
chapter covering all of them — PicoNES (HW_CONFIG 2), PicoNES Mini (6) and
PicoNES Micro (9) — with the parts each one needs, how the board is mounted,
which loader binary to flash and the matching 3D-printed case. The Gerber
archives are now release assets alongside the binaries:pico_nesPCB_v2.6.zip,
Gerber_PicoNES_Mini_PCB_v2.0.zipandGerber_PicoNES_Micro_v1.2.zip. - PicoNES PCB design v2.6 takes a Pimoroni Pico Plus 2. The design gained
through-holes, so instead of soldering the board flat you can fit male headers
and plug in a Pico 2, Pico 2 W or a Pimoroni Pico Plus 2. On HW_CONFIG 2 the
Pimoroni Pico Plus 2 is what unlocks the entries that need PSRAM — Duke Nukem
3D, PCEngine CD anddoom_tiny_full— and its 16 MB of flash gives the
full 15.5 MB application partition instead of 3.5 MB. No separate binary is
needed: the loader reads the flash size and detects PSRAM at boot, so the
existingpico2image covers both. When the Pico is mounted on headers, print
the latest top cover from Thingiverse — the older ones assume a board
soldered flat and leave no room for the USB cable. - The README opens with the list of boards the loader runs on, each entry
linking to its binary in
Supported hardware
and, where one exists, to its PCB design.
Changed
duke3d_gameis built from pico-duke3D's first release tag,v0.1. The game itself is unchanged — relative to what v0.2 shipped, the tag adds only a build fix for gcc 14 and a controller diagnostic that is compiled out by default.piconesPlusis built from pico-infonesPlusv0.45. That release carries
the PCB v2.6 design and nothing else: its emulator binaries are the ones
v0.44shipped, which is what was on the v0.2 card.- The SNES emulator is no longer shipped for a board that cannot run it.
pico-snesPlus needs 8 MB of PSRAM and supports only HW_CONFIG 2, 8, 13 and 14,
but the v0.2 archive also carried apicosnesPlus.uf2for the Adafruit Metro
RP2350 (HW_CONFIG 5). That build cannot work on the board, soemu/5/no
longer contains one and the entry disappears from the picker there.
v0.2
The first release with the SD-card archive, artwork themes, on-screen help and Duke Nukem 3D.
See the v0.2 release notes
for the full list.
Getting started
For board-by-board wiring, supported display modes and more refer to the pico-infonesPlus documentation. The set of supported boards and their pinouts is identical between the two projects.
- Flash the bootloader. Download the loader
.uf2for your board. Hold
BOOTSEL, connect the board over USB, and copy the.uf2onto the
RP2350drive. See Supported hardware in the README. - Prepare the SD card. Download
pico-bootLoader_sdcard.zipfrom the same
Releases page and unpack it onto a FAT32- or exFAT-formatted card. The
archive contains the emulators, the Doom port, the menu artwork, and a
sample configuration file. - Run it. Insert the card and power on the board. The menu appears.
Metadata
Download the full metadata pack here and extract it to the root of the SD card. This should create a /metadata folder on the card.
Emulator versions in pico-bootLoader_sdcard.zip
| Emulator | Repository | Version | pico_shared |
|---|---|---|---|
piconesPlus |
pico-infonesPlus | v0.47 | 3e19ce0 |
picopcePlus |
pico-pcePlus | v0.5 | 3e19ce0 |
PicoPeanutGB |
pico-peanutGB | v0.13 | 3e19ce0 |
picosmsPlus |
pico-smsplus | v0.28 | 3e19ce0 |
picogenesisPlus |
pico-genesisPlus | v0.14 | 3e19ce0 |
picoPacPlus |
pico-pacPlus | v0.4 | 3e19ce0 |
doom_tiny |
pico-doom | v0.2 | – |
doom_tiny_full |
pico-doom | v0.2 | – |
picosnesPlus |
pico-snesPlus | v0.4 | 3e19ce0 |
duke3d_game |
pico-duke3D | v0.3 | – |