Skip to content

Releases: PicoPlus-devel/pico-bootLoader

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 26 Sep 09:06

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.6.3

An SD-card update: a new version of the Master System / Game Gear emulator,
which now also appears in the Handheld category. The loader itself is
unchanged since v0.6.

Do you need to update? Only the card. Replace the /emu folder on it with
the one in the new pico-bootLoader_sdcard.zip. The board does not have to be
re-flashed, and your ROMs, save states and everything else outside /emu are
untouched.

Game Gear in the Handheld category

The Master System / Game Gear emulator now also appears in the Handheld
category, as Game Gear, with its own artwork in both themes. It is the same
emulator as the one under Console, so Master System and Game Gear games can
be started from either place.

Updated emulator

  • Master System / Game Gear
    v0.31:
    more homebrew games and Game Gear betas now start, among them Pong Master,
    Snail2, Bomberman Boom, Ultima III and the Batman & Robin and
    The Lion King betas.

Every other application is the same version as in v0.6.2. The exact version of
every application is in the table at the end of this page and in
/emu/versions.txt.

v0.6.2

New versions of ten applications, most of them with a setting for TVs that cut
off the edges of the screen. See the
v0.6.2 release notes.

v0.6.1

A new version of the NES emulator, with a setting to switch off the
8-sprites-per-line limit, and a fix for games that failed to start a second time
on boards without PSRAM. See the
v0.6.1 release notes.

v0.6

A release of both halves, the loader and the SD card, and the first since v0.4:
there was no v0.5. The menu gains categories, an options menu and USB drive
mode; the card gains the TI-99/4A, OutRun and the ColecoVision, and newer
versions of five emulators.

Do you need to update? Yes, both parts. Re-flash the board with the
loader .uf2 for your hardware, and replace the /emu folder on your card
with the one in the new pico-bootLoader_sdcard.zip. Your ROMs, save states
and everything else outside /emu are untouched.

The loader

Categories. The menu can now group applications instead of showing them all
in one long list. It opens on a set of categories — Arcade, Computer, Console,
Handheld, Ports and Settings — and opening one shows what is in it.

  • LEFT / RIGHT (UP / DOWN in the text menu) moves between categories.
  • The first button (A on a NES pad) opens the highlighted category, and
    starts an application once you are inside one.
  • The second button (B) goes back to the categories.
  • Settings opens the options menu described below.

A category that has nothing in it still appears, and says so when you open it.
Categories come from a categories.txt file on the card, with one list file
per category, so you decide what goes where; delete it and the menu is the
single list it always was. The README explains how to build your own
arrangement.

Additional theme and category artwork were done Gavin Knight. Thanks Gavin!

SELECT opens an options menu instead of switching the menu mode directly.
Move through it with UP / DOWN, confirm with A and return with B:

  • Help — the help screen, still also reachable with START.
  • Menu mode — switch between the text list and the artwork view.
  • Enter BOOTSEL mode — restart the board as the RP2350 drive, so the
    loader itself can be updated without unplugging the board and holding the
    BOOTSEL button.
  • USB drive mode — show the SD card on your computer over USB, so you can
    add applications, ROMs or artwork without taking the card out. Eject the
    drive on the computer when you are done and the menu comes back.

On some boards a USB game controller uses the same port as the cable to your
computer, so only one of the two can be plugged in at a time: the Pimoroni Pico
DV Demo Base, the Adafruit DVI + microSD breakouts and the PicoNES PCB, the
Waveshare RP2350-Zero PCB and the Murmulator M2. On those, operate the menu with
a controller on a NES/SNES port or a Wii Classic controller. Boards with a
separate controller port are not affected.

The menu remembers where you were. Whichever category and application you
were last on is where the menu comes back the next time you switch the board on.

Applications appear in the order you list them, instead of in the card's
own, effectively arbitrary, file order. A list may now hold 32 applications
instead of 16.

PSRAM is recognised reliably at start-up. The check could occasionally miss
the chip, and the board then behaved as if it had none.

Pico 2 W boards use the ordinary Pico 2 binary. The separate Pico 2 W
builds are gone: all they added was the on-board LED, whose driver left no room
for USB drive mode. On a Pico 2 W the LED no longer blinks.

New on the card

TI-99/4A fills the new Computer category and runs on every board. Put your
cartridges in /roms/TI99 on the card, as .rpk files or as the classic .bin
sets, and the console files 994aROM.bin and 994aGROM.bin in /bios — the
emulator does not run without those two. A USB keyboard works as the TI
keyboard, and TI BASIC is there without a cartridge. Without PSRAM the disk
drives are unavailable and cartridges are limited to 32 KB.

OutRun, a port of SEGA's arcade game, fills the new Arcade category. It runs
on the Adafruit Fruit Jam, the Adafruit DVI + microSD breakouts or the PicoNES
PCB, the Murmulator M2, and the Adafruit Feather RP2350 with a TLV320DAC3100,
and needs PSRAM on all four. The game ROMs are copyright SEGA and not included:
copy the unzipped MAME outrun (revision B) set to /roms/ORUN. The game takes
a few seconds at every start to prepare them, and tells you on screen if any are
missing.

ColecoVision joins the Console category on the Adafruit Fruit Jam. It is
ColecoJam by Dan Cogliano
(@cogliano) — a big thank you to Dan for this
emulator and for making it available here. Put the BIOS, COLECO.BIN, and your
games (.ROM files) in /coleco on the card. Neither is included.

Updated emulators

All five below now have USB drive mode in their own settings menu, opened
with SELECT from the game list, so games can be copied onto the card without
taking it out. Each version links to that emulator's own release notes.

  • Nintendo Entertainment System
    v0.50:
    new mappers and fixes for dozens of games, among them Mike Tyson's
    Punch-Out!!
    , Castlevania III and Romance of the Three Kingdoms II. Saved
    games in battery-backed MMC5 cartridges are kept, and no more than 8 sprites
    per line are shown, as on a real NES.
  • Super Nintendo
    v0.5:
    Super Mario RPG no longer freezes during battles.
  • PC Engine
    v0.6:
    a save state of a CD game can now be loaded after leaving the game and
    starting it again.
  • Master System / Game Gear
    v0.29:
    also plays Sega SG-1000 games — .sg files, with a lowercase extension,
    next to your Master System and Game Gear ROMs.
  • Genesis / Mega Drive
    v0.15:
    USB drive mode only; the emulator itself is unchanged.

Videopac, Game Boy, Doom! and Duke Nukem 3D are the same versions as
before. The exact version of every application on the card is in the table at
the end of this page and in /emu/versions.txt.

Note

/boot.txt gains three new settings that record your position in the menu. An
older bootloader does not know them and will report BOOT.TXT INVALID if you
put the card back in a board running one; delete the VIEW, CATEGORY and
APP lines to use it there again.

v0.4

Sega Genesis at full speed on HSTX boards, a recently played list in every
emulator, and DVI-only monitors working again. See the
v0.4 release notes.

v0.3

Documentation and Gerber files for the three custom PCBs; the loader itself did
not change. See the
v0.3 release notes.

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.

  1. Flash the bootloader. Download the loader .uf2 for your board. Hold
    BOOTSEL, connect the board over USB, and copy the .uf2 onto the
    RP2350 drive. See Supported hardware in the README.
  2. Prepare the SD card. Download pico-bootLoader_sdcard.zip from 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.
  3. Run it. ...
Read more

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:01

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.6.2

An SD-card update with new versions of ten applications. Most of them get a new
setting for TVs that cut off the edges of the screen. The loader itself is
unchanged since v0.6.

Do you need to update? Only the card. Replace the /emu folder on it with
the one in the new pico-bootLoader_sdcard.zip. The board does not have to be
re-flashed, and your ROMs, save states and everything else outside /emu are
untouched.

New in the settings menu

All applications on the card except the ColecoVision, Doom! and Duke Nukem 3D:

  • Overscan fix in menu, for TVs that cut off the edges of the screen. It
    leaves the top and bottom rows of the menus blank, and optionally the first
    and last columns too. Games are not affected. The loader's own menu does not
    have this setting yet.
  • More options on one page. The color palette only appears while a menu
    color option is selected, so less scrolling is needed.
  • SELECT jumps to SAVE, so a changed setting can be saved straight away.
  • The Controller Test screen shows the controller outline and the list of
    controllers correctly again.

Updated emulators

  • Nintendo Entertainment System
    v0.52:
    fixes for many games, among them 1942, Pin Bot, High Speed, Seicross
    and Ganbare Goemon Gaiden 2. Dragon Ball Z II and III and several other
    Japanese games no longer stay on a black screen, and can now save. On boards
    without PSRAM, Famicom Disk System saves are kept in one file per game;
    existing saves are picked up automatically.
  • Master System / Game Gear
    v0.30:
    Codemasters games such as Micro Machines and the Dizzy games now work, and
    most MSX conversions and Korean releases start instead of showing a black
    screen. Fewer crashes and black screens in other games, among them Ecco the
    Dolphin
    on Game Gear.
  • Videopac
    v0.5 and
    Game Boy
    v0.14:
    USB drive mode in their own settings menu, as the other emulators got in
    v0.6.
  • ColecoVision
    1.5:
    pressing button 1 during a game returns to the cartridge menu without a
    restart. The cartridge menu shows the ColecoJam logo and the version number,
    and a screensaver after two minutes without input.
  • Super Nintendo
    v0.6,
    PC Engine
    v0.7,
    Genesis / Mega Drive
    v0.16,
    TI-99/4A
    v0.2 and
    OutRun
    v0.3:
    the settings menu changes above only.

Doom!, Doom Full! and Duke Nukem 3D are the same versions as before. The
exact version of every application is in the table at the end of this page and
in /emu/versions.txt.

v0.6.1

A new version of the NES emulator, with a setting to switch off the
8-sprites-per-line limit, and a fix for games that failed to start a second time
on boards without PSRAM. See the
v0.6.1 release notes.

v0.6

A release of both halves, the loader and the SD card, and the first since v0.4:
there was no v0.5. The menu gains categories, an options menu and USB drive
mode; the card gains the TI-99/4A, OutRun and the ColecoVision, and newer
versions of five emulators.

Do you need to update? Yes, both parts. Re-flash the board with the
loader .uf2 for your hardware, and replace the /emu folder on your card
with the one in the new pico-bootLoader_sdcard.zip. Your ROMs, save states
and everything else outside /emu are untouched.

The loader

Categories. The menu can now group applications instead of showing them all
in one long list. It opens on a set of categories — Arcade, Computer, Console,
Handheld, Ports and Settings — and opening one shows what is in it.

  • LEFT / RIGHT (UP / DOWN in the text menu) moves between categories.
  • The first button (A on a NES pad) opens the highlighted category, and
    starts an application once you are inside one.
  • The second button (B) goes back to the categories.
  • Settings opens the options menu described below.

A category that has nothing in it still appears, and says so when you open it.
Categories come from a categories.txt file on the card, with one list file
per category, so you decide what goes where; delete it and the menu is the
single list it always was. The README explains how to build your own
arrangement.

Additional theme and category artwork were done Gavin Knight. Thanks Gavin!

SELECT opens an options menu instead of switching the menu mode directly.
Move through it with UP / DOWN, confirm with A and return with B:

  • Help — the help screen, still also reachable with START.
  • Menu mode — switch between the text list and the artwork view.
  • Enter BOOTSEL mode — restart the board as the RP2350 drive, so the
    loader itself can be updated without unplugging the board and holding the
    BOOTSEL button.
  • USB drive mode — show the SD card on your computer over USB, so you can
    add applications, ROMs or artwork without taking the card out. Eject the
    drive on the computer when you are done and the menu comes back.

On some boards a USB game controller uses the same port as the cable to your
computer, so only one of the two can be plugged in at a time: the Pimoroni Pico
DV Demo Base, the Adafruit DVI + microSD breakouts and the PicoNES PCB, the
Waveshare RP2350-Zero PCB and the Murmulator M2. On those, operate the menu with
a controller on a NES/SNES port or a Wii Classic controller. Boards with a
separate controller port are not affected.

The menu remembers where you were. Whichever category and application you
were last on is where the menu comes back the next time you switch the board on.

Applications appear in the order you list them, instead of in the card's
own, effectively arbitrary, file order. A list may now hold 32 applications
instead of 16.

PSRAM is recognised reliably at start-up. The check could occasionally miss
the chip, and the board then behaved as if it had none.

Pico 2 W boards use the ordinary Pico 2 binary. The separate Pico 2 W
builds are gone: all they added was the on-board LED, whose driver left no room
for USB drive mode. On a Pico 2 W the LED no longer blinks.

New on the card

TI-99/4A fills the new Computer category and runs on every board. Put your
cartridges in /roms/TI99 on the card, as .rpk files or as the classic .bin
sets, and the console files 994aROM.bin and 994aGROM.bin in /bios — the
emulator does not run without those two. A USB keyboard works as the TI
keyboard, and TI BASIC is there without a cartridge. Without PSRAM the disk
drives are unavailable and cartridges are limited to 32 KB.

OutRun, a port of SEGA's arcade game, fills the new Arcade category. It runs
on the Adafruit Fruit Jam, the Adafruit DVI + microSD breakouts or the PicoNES
PCB, the Murmulator M2, and the Adafruit Feather RP2350 with a TLV320DAC3100,
and needs PSRAM on all four. The game ROMs are copyright SEGA and not included:
copy the unzipped MAME outrun (revision B) set to /roms/ORUN. The game takes
a few seconds at every start to prepare them, and tells you on screen if any are
missing.

ColecoVision joins the Console category on the Adafruit Fruit Jam. It is
ColecoJam by Dan Cogliano
(@cogliano) — a big thank you to Dan for this
emulator and for making it available here. Put the BIOS, COLECO.BIN, and your
games (.ROM files) in /coleco on the card. Neither is included.

Updated emulators

All five below now have USB drive mode in their own settings menu, opened
with SELECT from the game list, so games can be copied onto the card without
taking it out. Each version links to that emulator's own release notes.

  • Nintendo Entertainment System
    v0.50:
    new mappers and fixes for dozens of games, among them Mike Tyson's
    Punch-Out!!
    , Castlevania III and Romance of the Three Kingdoms II. Saved
    games in battery-backed MMC5 cartridges are kept, and no more than 8 sprites
    per line are shown, as on a real NES.
  • Super Nintendo
    v0.5:
    Super Mario RPG no longer freezes during battles.
  • PC Engine
    v0.6:
    a save state of a CD game can now be loaded after leaving the game and
    starting it again.
  • Master System / Game Gear
    v0.29:
    also plays Sega SG-1000 games — .sg files, with a lowercase extension,
    next to your Master System and Game Gear ROMs.
  • Genesis / Mega Drive
    v0.15:
    USB drive mode only; the emulator itself is unchanged.

Videopac, Game Boy, Doom! and Duke Nukem 3D are the same versions as
before. The exact version of every appli...

Read more

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 14:08

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.6.1

An SD-card update: a new version of the NES emulator, and a memory fix that every
application on the card benefits from. The loader itself is unchanged since v0.6.

Do you need to update? Only the card. Replace the /emu folder on it with
the one in the new pico-bootLoader_sdcard.zip. The board does not have to be
re-flashed, and your ROMs, save states and everything else outside /emu are
untouched.

Updated emulator

  • Nintendo Entertainment System
    v0.51:
    the 8-sprites-per-line limit introduced in v0.50 can now be switched off in the
    settings menu, under Sprite Limit (8 per line). The limit is what a real NES
    does, but it makes some games flicker; turning it off reduces the flicker. It
    stays on by default, because games such as Felix the Cat need it. Your
    existing settings keep the limit on.

    Two fixes as well. The Arkanoid paddle was stuck at the right of the screen
    and ignored the D-pad on the custom PCB and on the Adafruit breadboard setup.
    And games that use the sound chip's sample channel as a timer now run: Over
    Obj
    no longer shows a black screen, although a black bar still appears in the
    middle of the screen while playing it.

All applications

Every application on the card was rebuilt, so all of them pick up one fix in the
shared code: on boards without PSRAM, a game that had already been copied to the
board could fail to start the second time with an out-of-memory error. It was
reported on the NES emulator, with games such as Castlevania III and Just
Breed
, but the cause was shared and so is the fix. Boards with PSRAM were not
affected.

Apart from the NES, no emulator changed version; the exact version of each
application is in the table at the end of this page and in /emu/versions.txt.

v0.6

A release of both halves, the loader and the SD card, and the first since v0.4:
there was no v0.5. The menu gains categories, an options menu and USB drive
mode; the card gains the TI-99/4A, OutRun and the ColecoVision, and newer
versions of five emulators.

Do you need to update? Yes, both parts. Re-flash the board with the
loader .uf2 for your hardware, and replace the /emu folder on your card
with the one in the new pico-bootLoader_sdcard.zip. Your ROMs, save states
and everything else outside /emu are untouched.

The loader

Categories. The menu can now group applications instead of showing them all
in one long list. It opens on a set of categories — Arcade, Computer, Console,
Handheld, Ports and Settings — and opening one shows what is in it.

  • LEFT / RIGHT (UP / DOWN in the text menu) moves between categories.
  • The first button (A on a NES pad) opens the highlighted category, and
    starts an application once you are inside one.
  • The second button (B) goes back to the categories.
  • Settings opens the options menu described below.

A category that has nothing in it still appears, and says so when you open it.
Categories come from a categories.txt file on the card, with one list file
per category, so you decide what goes where; delete it and the menu is the
single list it always was. The README explains how to build your own
arrangement.

Additional theme and category artwork were done Gavin Knight. Thanks Gavin!

SELECT opens an options menu instead of switching the menu mode directly.
Move through it with UP / DOWN, confirm with A and return with B:

  • Help — the help screen, still also reachable with START.
  • Menu mode — switch between the text list and the artwork view.
  • Enter BOOTSEL mode — restart the board as the RP2350 drive, so the
    loader itself can be updated without unplugging the board and holding the
    BOOTSEL button.
  • USB drive mode — show the SD card on your computer over USB, so you can
    add applications, ROMs or artwork without taking the card out. Eject the
    drive on the computer when you are done and the menu comes back.

On some boards a USB game controller uses the same port as the cable to your
computer, so only one of the two can be plugged in at a time: the Pimoroni Pico
DV Demo Base, the Adafruit DVI + microSD breakouts and the PicoNES PCB, the
Waveshare RP2350-Zero PCB and the Murmulator M2. On those, operate the menu with
a controller on a NES/SNES port or a Wii Classic controller. Boards with a
separate controller port are not affected.

The menu remembers where you were. Whichever category and application you
were last on is where the menu comes back the next time you switch the board on.

Applications appear in the order you list them, instead of in the card's
own, effectively arbitrary, file order. A list may now hold 32 applications
instead of 16.

PSRAM is recognised reliably at start-up. The check could occasionally miss
the chip, and the board then behaved as if it had none.

Pico 2 W boards use the ordinary Pico 2 binary. The separate Pico 2 W
builds are gone: all they added was the on-board LED, whose driver left no room
for USB drive mode. On a Pico 2 W the LED no longer blinks.

New on the card

TI-99/4A fills the new Computer category and runs on every board. Put your
cartridges in /roms/TI99 on the card, as .rpk files or as the classic .bin
sets, and the console files 994aROM.bin and 994aGROM.bin in /bios — the
emulator does not run without those two. A USB keyboard works as the TI
keyboard, and TI BASIC is there without a cartridge. Without PSRAM the disk
drives are unavailable and cartridges are limited to 32 KB.

OutRun, a port of SEGA's arcade game, fills the new Arcade category. It runs
on the Adafruit Fruit Jam, the Adafruit DVI + microSD breakouts or the PicoNES
PCB, the Murmulator M2, and the Adafruit Feather RP2350 with a TLV320DAC3100,
and needs PSRAM on all four. The game ROMs are copyright SEGA and not included:
copy the unzipped MAME outrun (revision B) set to /roms/ORUN. The game takes
a few seconds at every start to prepare them, and tells you on screen if any are
missing.

ColecoVision joins the Console category on the Adafruit Fruit Jam. It is
ColecoJam by Dan Cogliano
(@cogliano) — a big thank you to Dan for this
emulator and for making it available here. Put the BIOS, COLECO.BIN, and your
games (.ROM files) in /coleco on the card. Neither is included.

Updated emulators

All five below now have USB drive mode in their own settings menu, opened
with SELECT from the game list, so games can be copied onto the card without
taking it out. Each version links to that emulator's own release notes.

  • Nintendo Entertainment System
    v0.50:
    new mappers and fixes for dozens of games, among them Mike Tyson's
    Punch-Out!!
    , Castlevania III and Romance of the Three Kingdoms II. Saved
    games in battery-backed MMC5 cartridges are kept, and no more than 8 sprites
    per line are shown, as on a real NES.
  • Super Nintendo
    v0.5:
    Super Mario RPG no longer freezes during battles.
  • PC Engine
    v0.6:
    a save state of a CD game can now be loaded after leaving the game and
    starting it again.
  • Master System / Game Gear
    v0.29:
    also plays Sega SG-1000 games — .sg files, with a lowercase extension,
    next to your Master System and Game Gear ROMs.
  • Genesis / Mega Drive
    v0.15:
    USB drive mode only; the emulator itself is unchanged.

Videopac, Game Boy, Doom! and Duke Nukem 3D are the same versions as
before. The exact version of every application on the card is in the table at
the end of this page and in /emu/versions.txt.

Note

/boot.txt gains three new settings that record your position in the menu. An
older bootloader does not know them and will report BOOT.TXT INVALID if you
put the card back in a board running one; delete the VIEW, CATEGORY and
APP lines to use it there again.

v0.4

Sega Genesis at full speed on HSTX boards, a recently played list in every
emulator, and DVI-only monitors working again. See the
v0.4 release notes.

v0.3

Documentation and Gerber files for the three custom PCBs; the loader itself did
not change. See the
v0.3 release notes.

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.

  1. Flash the bootloader. Download the loader .uf2 for your board. Hold
    BOOTSEL, connect the board over USB, and copy the .uf2 onto the
    RP2350 drive. See Supported hardware in the README.
  2. Prepare the SD card. Download pico-bootLoader_sdcard.zip from the same
    Releases page and unpack it onto a FAT32- or ex...
Read more

v0.6

Choose a tag to compare

@github-actions github-actions released this 18 Sep 15:30

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.6

A release of both halves, the loader and the SD card, and the first since v0.4:
there was no v0.5. The menu gains categories, an options menu and USB drive
mode; the card gains the TI-99/4A, OutRun and the ColecoVision, and newer
versions of five emulators.

Do you need to update? Yes, both parts. Re-flash the board with the
loader .uf2 for your hardware, and replace the /emu folder on your card
with the one in the new pico-bootLoader_sdcard.zip. Your ROMs, save states
and everything else outside /emu are untouched.

The loader

Categories. The menu can now group applications instead of showing them all
in one long list. It opens on a set of categories — Arcade, Computer, Console,
Handheld, Ports and Settings — and opening one shows what is in it.

  • LEFT / RIGHT (UP / DOWN in the text menu) moves between categories.
  • The first button (A on a NES pad) opens the highlighted category, and
    starts an application once you are inside one.
  • The second button (B) goes back to the categories.
  • Settings opens the options menu described below.

Additional theme and category artwork were done Gavin Knight. Thanks Gavin!

A category that has nothing in it still appears, and says so when you open it.
Categories come from a categories.txt file on the card, with one list file
per category, so you decide what goes where; delete it and the menu is the
single list it always was. The README explains how to build your own
arrangement.

SELECT opens an options menu instead of switching the menu mode directly.
Move through it with UP / DOWN, confirm with A and return with B:

  • Help — the help screen, still also reachable with START.
  • Menu mode — switch between the text list and the artwork view.
  • Enter BOOTSEL mode — restart the board as the RP2350 drive, so the
    loader itself can be updated without unplugging the board and holding the
    BOOTSEL button.
  • USB drive mode — show the SD card on your computer over USB, so you can
    add applications, ROMs or artwork without taking the card out. Eject the
    drive on the computer when you are done and the menu comes back.

On some boards a USB game controller uses the same port as the cable to your
computer, so only one of the two can be plugged in at a time: the Pimoroni Pico
DV Demo Base, the Adafruit DVI + microSD breakouts and the PicoNES PCB, the
Waveshare RP2350-Zero PCB and the Murmulator M2. On those, operate the menu with
a controller on a NES/SNES port or a Wii Classic controller. Boards with a
separate controller port are not affected.

The menu remembers where you were. Whichever category and application you
were last on is where the menu comes back the next time you switch the board on.

Applications appear in the order you list them, instead of in the card's
own, effectively arbitrary, file order. A list may now hold 32 applications
instead of 16.

PSRAM is recognised reliably at start-up. The check could occasionally miss
the chip, and the board then behaved as if it had none.

Pico 2 W boards use the ordinary Pico 2 binary. The separate Pico 2 W
builds are gone: all they added was the on-board LED, whose driver left no room
for USB drive mode. On a Pico 2 W the LED no longer blinks.

New on the card

TI-99/4A fills the new Computer category and runs on every board. Put your
cartridges in /roms/TI99 on the card, as .rpk files or as the classic .bin
sets, and the console files 994aROM.bin and 994aGROM.bin in /bios — the
emulator does not run without those two. A USB keyboard works as the TI
keyboard, and TI BASIC is there without a cartridge. Without PSRAM the disk
drives are unavailable and cartridges are limited to 32 KB.

OutRun, a port of SEGA's arcade game, fills the new Arcade category. It runs
on the Adafruit Fruit Jam, the Adafruit DVI + microSD breakouts or the PicoNES
PCB, the Murmulator M2, and the Adafruit Feather RP2350 with a TLV320DAC3100,
and needs PSRAM on all four. The game ROMs are copyright SEGA and not included:
copy the unzipped MAME outrun (revision B) set to /roms/ORUN. The game takes
a few seconds at every start to prepare them, and tells you on screen if any are
missing.

ColecoVision joins the Console category on the Adafruit Fruit Jam. It is
ColecoJam by Dan Cogliano
(@cogliano) — a big thank you to Dan for this
emulator and for making it available here. Put the BIOS, COLECO.BIN, and your
games (.ROM files) in /coleco on the card. Neither is included.

Updated emulators

All five below now have USB drive mode in their own settings menu, opened
with SELECT from the game list, so games can be copied onto the card without
taking it out. Each version links to that emulator's own release notes.

  • Nintendo Entertainment System
    v0.50:
    new mappers and fixes for dozens of games, among them Mike Tyson's
    Punch-Out!!
    , Castlevania III and Romance of the Three Kingdoms II. Saved
    games in battery-backed MMC5 cartridges are kept, and no more than 8 sprites
    per line are shown, as on a real NES.
  • Super Nintendo
    v0.5:
    Super Mario RPG no longer freezes during battles.
  • PC Engine
    v0.6:
    a save state of a CD game can now be loaded after leaving the game and
    starting it again.
  • Master System / Game Gear
    v0.29:
    also plays Sega SG-1000 games — .sg files, with a lowercase extension,
    next to your Master System and Game Gear ROMs.
  • Genesis / Mega Drive
    v0.15:
    USB drive mode only; the emulator itself is unchanged.

Videopac, Game Boy, Doom! and Duke Nukem 3D are the same versions as
before. The exact version of every application on the card is in the table at
the end of this page and in /emu/versions.txt.

Note

/boot.txt gains three new settings that record your position in the menu. An
older bootloader does not know them and will report BOOT.TXT INVALID if you
put the card back in a board running one; delete the VIEW, CATEGORY and
APP lines to use it there again.

v0.4

Sega Genesis at full speed on HSTX boards, a recently played list in every
emulator, and DVI-only monitors working again. See the
v0.4 release notes.

v0.3

Documentation and Gerber files for the three custom PCBs; the loader itself did
not change. See the
v0.3 release notes.

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.

  1. Flash the bootloader. Download the loader .uf2 for your board. Hold
    BOOTSEL, connect the board over USB, and copy the .uf2 onto the
    RP2350 drive. See Supported hardware in the README.
  2. Prepare the SD card. Download pico-bootLoader_sdcard.zip from 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.
  3. 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
picoOutRun pico-outrun v0.2 63e983c
pico994A pico-994A v0.1 63e983c
piconesPlus pico-infonesPlus v0.50 63e983c
picosnesPlus pico-snesPlus v0.5 63e983c
picopcePlus pico-pcePlus v0.6 63e983c
picosmsPlus pico-smsplus v0.29 63e983c
picogenesisPlus pico-genesisPlus v0.15 63e983c
picoPacPlus pico-pacPlus v0.4 63e983c
colecojam cogliano/Adafruit_ColecoJam 1.3 –
PicoPeanutGB pico-peanutGB v0.13 63e983c
doom_tiny [pico-doom](https://github.com/PicoPlus-devel/pico-...
Read more

v0.4

Choose a tag to compare

@github-actions github-actions released this 26 Aug 07:36

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 /emu folder 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 /emu is 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.txt and 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
    piconesPlus build 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 .nes file 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.zip and Gerber_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 and doom_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
    existing pico2 image 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_game is 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.
  • piconesPlus is built from pico-infonesPlus v0.45. That release carries
    the PCB v2.6 design and nothing else: its emulator binaries are the ones
    v0.44 shipped, 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 a picosnesPlus.uf2 for the Adafruit Metro
    RP2350 (HW_CONFIG 5). That build cannot work on the board, so emu/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-inf...

Read more

v0.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 12:06

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.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.zip and Gerber_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 and doom_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
    existing pico2 image 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_game is 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.
  • piconesPlus is built from pico-infonesPlus v0.45. That release carries
    the PCB v2.6 design and nothing else: its emulator binaries are the ones
    v0.44 shipped, 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 a picosnesPlus.uf2 for the Adafruit Metro
    RP2350 (HW_CONFIG 5). That build cannot work on the board, so emu/5/ no
    longer contains one and the entry disappears from the picker there.

v0.2

Added

  • Duke Nukem 3D, a native RP2350 port from
    pico-duke3D, joins the menu as
    duke3d_game. It runs on the Adafruit Fruit Jam (HW_CONFIG 8), the Adafruit
    DVI + MicroSD breakout combination (2) and the Murmulator M2 (13), and needs
    PSRAM on all three. DUKE3D.GRP streams from /roms/duke3d/ on the SD card,
    so there is no companion data image to flash.
  • Artwork themes. The graphical menu can carry up to ten sets of artwork in
    <BASEDIR>/assets/themes/0 … themes/9. Press UP or DOWN in the
    graphical menu to cycle through the themes present on the card; the choice is
    saved immediately and restored on the next boot. A theme need not be
    complete — any application it has no image for falls back to theme 0.
  • On-screen help. Press START in either menu mode for a full-screen
    summary of the controls, the meaning of the * and ! markers, and the
    current mode, theme, board configuration and index file.
  • Rejected-.uf2 error screen. When pre-flight validation refuses a file,
    the loader now says why in plain language instead of flashing a terse notice
    for three seconds. It names the actual problem — linked at the wrong address
    (the address is shown), built for the wrong chip or architecture, too large
    for the board's flash, corrupt, or an incomplete copy — and, where relevant,
    gives the build flags needed to produce an image the loader accepts. The page
    stays up until a button is pressed. Nothing is erased at that point, so the
    menu is still there afterwards.
  • GUI and THEME keys in boot.txt, holding the menu mode and the active
    theme.

Changed

  • The SD-card archive no longer leaves a menu entry without artwork. It still
    ships the small .444/.555 caches in preference to the source images, but
    where a theme has no cache for an entry its .png/.jpg now ships instead and
    the first boot converts it.
  • build_emulators.sh builds Doom from pico-doom main, which carries the
    build scripts for both variants since the full-version merge.
  • Menu artwork moved from <BASEDIR>/assets to
    <BASEDIR>/assets/themes/0. Existing cards are migrated automatically on the
    first boot — the cached .444/.555 files move too, so nothing is
    re-converted, and the screensaver/ folder is left where it is. The move is
    resumable if it is interrupted.
  • boot.txt is now written by the bootloader. Only the GUI= and THEME=
    lines are rewritten; comments, ordering, spacing and every other key are
    preserved. The file is created on the first change if it does not exist,
    carrying the effective value of all keys. Updates go through a temporary file
    that is re-parsed before being renamed into place, so a power cut cannot
    corrupt the configuration. A card that cannot be written is not an error: the
    change applies for the session and the help screen says it was not saved.
  • The .guimode file is gone, folded into boot.txt's GUI key. An
    existing .guimode is read once, migrated, and deleted.
  • Menu footer and text-mode hints updated for the new controls.
  • Boards without PSRAM now convert artwork for every theme at boot rather than
    one folder, since the converter cannot run once the menu is up. The first boot
    after adding a theme is correspondingly slower.
  • pico-bootLoader_sdcard.zip is a release asset again. The archive carries
    the emulators, the Doom port and its WAD, the artwork themes, the screensaver
    sprites, a sample boot.txt and a new versions.txt recording which release
    tag each emulator was built from. Unpack it at the root of the card.
  • Release tags now say what changed. v0.N is a bootloader firmware release
    (re-flash the board and refresh the card); v0.N.M ships the same firmware with
    refreshed emulator binaries, so only /emu on the card needs replacing. Each
    release lists the emulator versions its archive contains.
  • Doom's WAD is named doom1-whx.uf2 in emulators.txt, matching what the
    build actually produces. Earlier cards declared doom1-whx-for-fruitjam.uf2,
    which the loader could never find, so it launched Doom without flashing the
    WAD.

Fixed

  • A standalone build could be flashed and leave the board unbootable. An
    application linked at 0x10000000 but larger than the 512 KB bootloader
    region straddles the partition boundary: validation skipped every block below
    0x10080000 and accepted the tail, so the loader wrote a fragment from the
    middle of the image into the start of the application partition. The progress
    bar ran to 100 %, the flashed app then had no usable vector table, and the
    board rebooted into the menu with no explanation. Any block below the
    partition now rejects the whole file up front, before anything is erased, and
    the new error screen names the address it was linked at. Builds smaller than
    512 KB were already rejected, which is why this only showed up with larger
    applications.

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.

  1. Flash the bootloader. Download the loader .uf2 for your board. Hold
    BOOTSEL, connect the board over USB, and copy the .uf2 onto the
    RP2350 drive. See Supported Hardware in the README.
  2. Prepare the SD card. Download pico-bootLoader_sdcard.zip from 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.
  3. 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.45 ed6d94e
picopcePlus pico-pcePlus v0.3 ed6d94e
PicoPeanutGB pico-peanutGB v0.11 ed6d94e
...
Read more

v0.2

Choose a tag to compare

@github-actions github-actions released this 07 Aug 12:13

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.2

Added

  • Duke Nukem 3D, a native RP2350 port from
    pico-duke3D, joins the menu as
    duke3d_game. It runs on the Adafruit Fruit Jam (HW_CONFIG 8), the Adafruit
    DVI + MicroSD breakout combination (2) and the Murmulator M2 (13), and needs
    PSRAM on all three. DUKE3D.GRP streams from /roms/duke3d/ on the SD card,
    so there is no companion data image to flash.
  • Artwork themes. The graphical menu can carry up to ten sets of artwork in
    <BASEDIR>/assets/themes/0 … themes/9. Press UP or DOWN in the
    graphical menu to cycle through the themes present on the card; the choice is
    saved immediately and restored on the next boot. A theme need not be
    complete — any application it has no image for falls back to theme 0.
  • On-screen help. Press START in either menu mode for a full-screen
    summary of the controls, the meaning of the * and ! markers, and the
    current mode, theme, board configuration and index file.
  • Rejected-.uf2 error screen. When pre-flight validation refuses a file,
    the loader now says why in plain language instead of flashing a terse notice
    for three seconds. It names the actual problem — linked at the wrong address
    (the address is shown), built for the wrong chip or architecture, too large
    for the board's flash, corrupt, or an incomplete copy — and, where relevant,
    gives the build flags needed to produce an image the loader accepts. The page
    stays up until a button is pressed. Nothing is erased at that point, so the
    menu is still there afterwards.
  • GUI and THEME keys in boot.txt, holding the menu mode and the active
    theme.

Changed

  • The SD-card archive no longer leaves a menu entry without artwork. It still
    ships the small .444/.555 caches in preference to the source images, but
    where a theme has no cache for an entry its .png/.jpg now ships instead and
    the first boot converts it.
  • build_emulators.sh builds Doom from pico-doom main, which carries the
    build scripts for both variants since the full-version merge.
  • Menu artwork moved from <BASEDIR>/assets to
    <BASEDIR>/assets/themes/0. Existing cards are migrated automatically on the
    first boot — the cached .444/.555 files move too, so nothing is
    re-converted, and the screensaver/ folder is left where it is. The move is
    resumable if it is interrupted.
  • boot.txt is now written by the bootloader. Only the GUI= and THEME=
    lines are rewritten; comments, ordering, spacing and every other key are
    preserved. The file is created on the first change if it does not exist,
    carrying the effective value of all keys. Updates go through a temporary file
    that is re-parsed before being renamed into place, so a power cut cannot
    corrupt the configuration. A card that cannot be written is not an error: the
    change applies for the session and the help screen says it was not saved.
  • The .guimode file is gone, folded into boot.txt's GUI key. An
    existing .guimode is read once, migrated, and deleted.
  • Menu footer and text-mode hints updated for the new controls.
  • Boards without PSRAM now convert artwork for every theme at boot rather than
    one folder, since the converter cannot run once the menu is up. The first boot
    after adding a theme is correspondingly slower.
  • pico-bootLoader_sdcard.zip is a release asset again. The archive carries
    the emulators, the Doom port and its WAD, the artwork themes, the screensaver
    sprites, a sample boot.txt and a new versions.txt recording which release
    tag each emulator was built from. Unpack it at the root of the card.
  • Release tags now say what changed. v0.N is a bootloader firmware release
    (re-flash the board and refresh the card); v0.N.M ships the same firmware with
    refreshed emulator binaries, so only /emu on the card needs replacing. Each
    release lists the emulator versions its archive contains.
  • Doom's WAD is named doom1-whx.uf2 in emulators.txt, matching what the
    build actually produces. Earlier cards declared doom1-whx-for-fruitjam.uf2,
    which the loader could never find, so it launched Doom without flashing the
    WAD.

Fixed

  • A standalone build could be flashed and leave the board unbootable. An
    application linked at 0x10000000 but larger than the 512 KB bootloader
    region straddles the partition boundary: validation skipped every block below
    0x10080000 and accepted the tail, so the loader wrote a fragment from the
    middle of the image into the start of the application partition. The progress
    bar ran to 100 %, the flashed app then had no usable vector table, and the
    board rebooted into the menu with no explanation. Any block below the
    partition now rejects the whole file up front, before anything is erased, and
    the new error screen names the address it was linked at. Builds smaller than
    512 KB were already rejected, which is why this only showed up with larger
    applications.

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.

  1. Flash the bootloader. Download the loader .uf2 for your board. Hold
    BOOTSEL, connect the board over USB, and copy the .uf2 onto the
    RP2350 drive. See Supported Hardware in the README.
  2. Prepare the SD card. Download pico-bootLoader_sdcard.zip from 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.
  3. 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.44 c0971c5
picopcePlus pico-pcePlus v0.3 c0971c5
PicoPeanutGB pico-peanutGB v0.11 c0971c5
picosmsPlus pico-smsplus v0.26 c0971c5
picogenesisPlus pico-genesisPlus v0.13 c0971c5
picoPacPlus pico-pacPlus v0.2 c0971c5
doom_tiny pico-doom v0.1 –
doom_tiny_full pico-doom v0.1 –
picosnesPlus pico-snesPlus v0.2 c0971c5
duke3d_game pico-duke3D fix/audio-production-rate@1700c41 –

Initial release

Choose a tag to compare

@fhoedemakers fhoedemakers released this 11 Jul 05:30
ae4a997

CHANGELOG

Update 18/7/2026 - Added pico-snesPlus emulator to pico-bootLoader_sdcard.zip

Initial release of 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.

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.

  1. Flash the bootloader. Download the loader .uf2 for your board. Hold
    BOOTSEL, connect the board over USB, and copy the .uf2 onto the
    RP2350 drive. See Supported Hardware in the README.
  2. Prepare the SD card. Download pico-bootLoader_sdcard.zip from 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.
  3. 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.